On Sun, Mar 20, 2005 at 12:26:29AM +0300, Dmitry V. Levin wrote: > On Sat, Mar 19, 2005 at 12:31:42AM +0300, Alexey Tourbin wrote: > > On Mon, Feb 14, 2005 at 03:43:35PM +0300, Dmitry V. Levin wrote: > > > Познавательное чтение для тех, кто пишет разные обёртки: > > > http://sources.redhat.com/ml/libc-alpha/2005-02/msg00054.html > > > и далее по треду. > > > > Есть такая беда. > > > > :r ~/RPM/SOURCES/perl-5.8.6-alt-rh-threads-lpthread.patch > > https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=101767 > > > > At least following libraries: > > /usr/lib/perl5/5.8.0/i386-linux-thread-multi/auto/threads/threads.so > > /usr/lib/perl5/5.8.0/i386-linux-thread-multi/auto/threads/shared/shared.so > > were not linked against -lpthread, even though they are using pthread_* > > functions provided only by libpthread. > > This results in the symbols being non-versioned, and thus > > pthread_create@GLIBC_2.0 being called instead of the expected > > pthread_create@@GLIBC_2.1 > > Другими словами, если приложение использует напрямую библиотеку FOO, то > необходимо линковать это приложение с FOO вне зависимости от того, > слинкованы ли с FOO другие используемые этим приложением библиотеки. Пожалуй, я поспешил с этим выводом. Проблема может возникнуть не со всеми приложениями, а только с разделяемыми библиотеками, которые используют напрямую библиотеку FOO, но не линкуются с ней. Такие библиотеки легко распознаются с помощью "ldd -r". К сожалению, некотрые создают такие незамкнутые библиотеки сознательно (например, в KDE и в тех же перловых модулях), и как ловить ошибки в них, я пока что не знаю. -- ldv