[devel] Unresolved symbols

Pavlov Konstantin =?iso-8859-1?q?thresh_=CE=C1_altlinux=2Eru?=
Пн Фев 20 23:44:10 MSK 2006


On Monday 20 February 2006 16:29, Dmitry V. Levin wrote:
> On Mon, Feb 20, 2006 at 04:02:17PM +0300, Pavlov Konstantin wrote:
> > Лично мне не хватает только понимания, как это исправлять.
>
> Вы спрашиваете, как исправлять архитектуру программы, в которой плагины
> используют символы из ELF executable?
Ну вот, к примеру:

thresh на snowflake lib/vlc/access $ ldd -r libdvdread_plugin.so
undefined symbol: __block_New   (./libdvdread_plugin.so)
undefined symbol: __var_Create  (./libdvdread_plugin.so)
undefined symbol: __msg_Generic (./libdvdread_plugin.so)
undefined symbol: __var_Get     (./libdvdread_plugin.so)
undefined symbol: vlc_dgettext  (./libdvdread_plugin.so)
undefined symbol: config_Duplicate      (./libdvdread_plugin.so)
undefined symbol: __config_GetPsz       (./libdvdread_plugin.so)
        linux-gate.so.1 =>  (0xffffe000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x3aaca000)
        libdvdread.so.3 => /usr/lib/libdvdread.so.3 (0x3ab1d000)
        libc.so.6 => /lib/libc.so.6 (0x3ab36000)
        /lib/ld-linux.so.2 (0x75555000)
        libdl.so.2 => /lib/libdl.so.2 (0x3ac4f000)
thresh на snowflake lib/vlc/access $ nm -D /usr/bin/vlc | grep __block_New
thresh на snowflake lib/vlc/access $ nm -D /usr/lib/libvlc.so | grep __block_New
000bcdd0 T __block_New
thresh на snowflake lib/vlc/access $ file /usr/lib/libvlc.so
/usr/lib/libvlc.so: ELF 32-bit LSB shared object, Intel 80386, version 1 
(SYSV), stripped
thresh на snowflake lib/vlc/access $ file /usr/bin/vlc
/usr/bin/vlc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for 
GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped

Это нормально? На момент подгрузки этого plugin'а в программе данные символы 
не являются unresolved.

-- 
Pavlov Konstantin,
ALT Linux Team,
jid: thresh на altlinux.org



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