[devel] Symbols' nightmare

Yury Aliaev =?iso-8859-1?q?mutab0r_=CE=C1_rambler=2Eru?=
Пн Окт 13 16:47:52 MSD 2003


Я всех приветствую!

Наверное, ещё никто не заметил, что в залитом мною в Дедала csound'е 
отключена сборка fltk-интерфейса. Причина следующая: собираем csound с 
оным интерфейсом, запускаем, и...

[mutabor на Digitalina mutabor]$ csound
csound: relocation error: /usr/lib/libcsound32.so: undefined symbol: 
__dso_handle

...опаньки! Методом рекурсивного самосходящегося тыка обнаружил, что 
данный противный символ родом из widgets.o (тот самый интерфейс):

[mutabor на Digitalina Csound-4.24.1-debug]$ objdump -t widgets.o | grep __dso
00000000         *UND*  00000000 __dso_handle

Однако в исходнике _нет_ ссылки на такую функцию/переменную:

[mutabor на Digitalina Csound-4.24.1-debug]$ cat widgets.cpp | grep __dso
[mutabor на Digitalina Csound-4.24.1-debug]$

При попытке отлова через дизассемблирование эта погань также не проявляется:

[mutabor на Digitalina Csound-4.24.1-debug]$ objdump -D widgets.o | grep __dso
[mutabor на Digitalina Csound-4.24.1-debug]$

Наконец, компилятор для создания widgets.o вызывается так:

g++ -pipe -Wall -O2 -fexpensive-optimizations -march=k6 -ffast-math 
-fomit-frame-pointer -finline-functions -funroll-loops 
-fno-strict-aliasing -fPIC -DPIC -g -I. -I. -I./include -I./opcodes 
-DWINDOWS -DSFIRCAM -DSYS5 -DLINUX -DHAVE_TERMIOS_H -DIV_VERSION -DPIPES 
-DMACROS -DHAVE_FLTK -D_REENTRANT -DHAVE_SSTREAM -DMYFLT=float 
-falign-functions=16 -falign-loops=16 -falign-jumps=16 
-frename-registers -fno-exceptions -fno-rtti -fno-unroll-loops -c 
widgets.cpp -o widgets.o

P.S. Слабые следы этого криминального символа были обнаружены в glibc'ах:

[mutabor на Digitalina lib]$ objdump -T libc-2.2.6.so | grep __dso
00000000  w   D  *UND*  00000000              __dso_handle

Поможите, люди добрые, если не победить глюка, то хотя бы разобраться в 
его природе!

С пожеланием удачи,
Юрий Аляев.




Подробная информация о списке рассылки Devel