[devel] Re: I: how does dlsym work

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Пт Мар 25 01:48:34 MSK 2005


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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050325/8b345671/attachment-0001.bin>


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