With Mandrake 6.0, I have seen an "undefined symbol: BC" error
with several applications using libreadline.so.

For instance:

$ smbstatus
smbstatus: error in loading shared libraries: /usr/lib/libreadline.so.3: undefined 
symbol: BC
$ 

Apparently, this symbol was moved from one "so" to another one
after the calling applications were built.

Now, BC is defined in libncurses and libtermcap :

$ nm -o 2>/dev/null /usr/lib/lib*.so | grep ' BC'
/usr/lib/libcurses.so:0003e4ac B BC
/usr/lib/libncurses.so:0003e4ac B BC
/usr/lib/libreadline.so:         U BC
/usr/lib/libtermcap.so:00003820 B BC
$ 

(note that libcurses points to libncurses)

But smbstatus does not reference any of them :

$ ldd /usr/bin/smbstatus
        /lib/libNoVersion.so.1 => /lib/libNoVersion.so.1 (0x40015000)
        libreadline.so.3 => /usr/lib/libreadline.so.3 (0x40022000)
        libdl.so.2 => /lib/libdl.so.2 (0x40048000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004b000)
        libpam.so.0 => /lib/libpam.so.0 (0x40078000)
        libc.so.6 => /lib/libc.so.6 (0x40080000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$ 

I tried to force the usage of libncurses.so using the environment
variable which is mentioned in "man ld.so", but it does not work
either (but I am not sure to use it correctly) :

       LD_AOUT_PRELOAD
              The  name  of an additional, user-specified, shared
              library to be loaded after all others.  This can be
              used  to  selectively  override  functions in other
              shared libraries.

$ LD_AOUT_PRELOAD=/usr/lib/libncurses.so
$ export LD_AOUT_PRELOAD
$ smbstatus
smbstatus: error in loading shared libraries: /usr/lib/libreadline.so.3: undefined 
symbol: BC
$

I checked that smbstatus has no setuid bit which could prevent
this from working.

Any idea ?

-Thierry
__________________________________________________________________________

Thierry Lelegard, "The Jazzing Troll", Email: [EMAIL PROTECTED]
CANAL+, 25 rue Leblanc, 75906 Paris Cedex 15, France
Tel: +33 1 44 25 77 44   Mob: +33 6 03 00 65 75   Fax: +33 1 44 25 77 66
__________________________________________________________________________

Reply via email to