snažím se udělat patch na jeden bug v halui MDI commands, který se za specifických situací náhodně objevuje. Zdrojáky ohledně této problematiky mám nastudované a vím co chci zkusit.
Pokládal jsem tento dotazi na EN fóru, ale zatím nikdo nereagoval.
https://forum.linuxcnc.org/38-general-l ... =20#290799
Kdyby byl hypoteticky celý LCNC v jednom souboru, tak by nebyl problém vyzkoušet to co potřebuji. Ovšem žijeme v reálném světě.
Potřebuji eportovat proměnou "int halui_sent_mdi" z halui.cc do emctaskmain.cc.
Udělal jsem hlavičkový soubor halui.hh:
Kód: Vybrat vše
#ifndef HALUI_HH
#define HALUI_HH
extern int halui_sent_mdi;
#endif /* ifndef HALUI_HH */
Kód: Vybrat vše
#include "halui.hh"
...
int halui_sent_mdi = 0;
...
Kód: Vybrat vše
#include "../../halui.hh"
...
printf("emc task: halui_sent_mdi = %i zz912\n", halui_sent_mdi);
...
Kód: Vybrat vše
halui_sent_mdi[halui.cc] != halui_sent_mdi[emctaskmain.cc]
Kód: Vybrat vše
zdenek@cnc:~/linuxcnc/linuxcnc-2.9/src$ make
Reading 205/205 dependency files
Done reading dependencies
Reading 238/238 realtime dependency files
Done reading realtime dependencies
Linking milltask
c++ -std=gnu++17 -o ../bin/milltask objects/emc/motion/emcmotglb.o objects/emc/task/emctask.o objects/emc/task/emccanon.o objects/emc/task/emctaskmain.o objects/emc/motion/usrmotintf.o objects/emc/motion/emcmotutil.o objects/emc/task/taskintf.o objects/emc/motion/dbuf.o objects/emc/motion/stashf.o objects/emc/task/taskmodule.o objects/emc/task/taskclass.o objects/emc/task/backtrace.o ../lib/librs274.so.0 ../lib/liblinuxcnc.a ../lib/libnml.so.0 ../lib/liblinuxcncini.so.0 ../lib/libposemath.so.0 ../lib/liblinuxcnchal.so.0 ../lib/libpyplugin.so.0 ../lib/libtooldata.so.0 -L/home/zdenek/linuxcnc/linuxcnc-2.9/lib -Wl,-rpath,/home/zdenek/linuxcnc/linuxcnc-2.9/lib -ltirpc -lgpiod -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -lboost_python311 -L/usr/lib/x86_64-linux-gnu -lpython3.11 -ldl -lm
/usr/bin/ld: objects/emc/task/emctaskmain.o: warning: relocation against `halui_sent_mdi' in read-only section `.text'
/usr/bin/ld: objects/emc/task/emctaskmain.o: in function `mdi_execute_hook()':
/usr/include/x86_64-linux-gnu/bits/stdio2.h:86: undefined reference to `halui_sent_mdi'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
make: *** [emc/task/Submakefile:39: ../bin/milltask] Chyba 1
Zdeněk