From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <3F8A9EF8.9020807@rambler.ru> Date: Mon, 13 Oct 2003 16:47:52 +0400 From: Yury Aliaev Organization: =?KOI8-U?Q?=FE=D4=CF=20=D7=20=D7=D9=CD=C5=CE=C9=20=D4=C5=C2=C5=20=CD=CF=C5=CD=3F?= User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-GB; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1 X-Accept-Language: ru, en-gb MIME-Version: 1.0 To: devel Content-Type: text/plain; charset=KOI8-U; format=flowed Content-Transfer-Encoding: 8bit X-Auth-User: mutab0r, whoson: (null) Subject: [devel] Symbols' nightmare X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.2 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Oct 2003 16:13:25 -0000 Archived-At: List-Archive: List-Post: Я всех приветствую! Наверное, ещё никто не заметил, что в залитом мною в Дедала 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 Поможите, люди добрые, если не победить глюка, то хотя бы разобраться в его природе! С пожеланием удачи, Юрий Аляев.