[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