This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Perplexing issue with libreadline


I have installed the PARI/gp calculator  software, which I compiled

with the readline library included to facilitate editing of lines at the console.


This morning I did an update of CentOS 6.8 x86_64, which is a "clone"

of Red Hat Enterprise Linux, minus the branding.


For that, I did:

# yum update


Now, gp complains about missing symbols.

The ldd command with options -d and -r gives the following:


$ ldd -d -r /usr/local/lib/libreadline.so.6     [ENTER ]

    linux-vdso.so.1 =>  (0x00007ffd4207e000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f5aae028000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003afc600000)
undefined symbol: PC    (/usr/local/lib/libreadline.so.6)
undefined symbol: UP    (/usr/local/lib/libreadline.so.6)
undefined symbol: BC    (/usr/local/lib/libreadline.so.6)
undefined symbol: tgetflag    (/usr/local/lib/libreadline.so.6)
undefined symbol: tgetent    (/usr/local/lib/libreadline.so.6)
undefined symbol: tputs    (/usr/local/lib/libreadline.so.6)
undefined symbol: tgoto    (/usr/local/lib/libreadline.so.6)
undefined symbol: tgetnum    (/usr/local/lib/libreadline.so.6)
undefined symbol: tgetstr    (/usr/local/lib/libreadline.so.6)


and then when I looked at the modification date I get this:

$ ls -l /usr/local/lib/libreadline.so.6   [ENTER ]

lrwxrwxrwx. 1 root root 18 Mar 20 10:54 /usr/local/lib/libreadline.so.6 -> libreadline.so.6.3

This means a change was made within the last 1 to 2 hours.

My fix for the gp readline problem is to do

a symbolic link with:

/lib64/libreadline.so.6  which has a symlink to /lib64/libreadline.so.6.0 :

$ ls -l /lib64/libreadline.so.6
lrwxrwxrwx. 1 root root 18 Feb 4 02:07 /lib64/libreadline.so.6 -> libreadline.so.6.0

$ ls -l /lib64/libreadline.so.6.0
-rwxr-xr-x. 1 root root 272008 Jun 22  2012 /lib64/libreadline.so.6.0

===

If I run the same `ldd' command on the old library

/lib64/libreadline.so.6.0

I get the following:

$ ldd -d -r /lib64/libreadline.so.6.0  [ ENTER ]

    linux-vdso.so.1 =>  (0x00007fffe08e3000)
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003b0fa00000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003afce00000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003afc600000)

It doesn't report any undefined symbols, which is why I

symlink to it so that `gp' will work.

I'd like to know why the Packagers continue to make

symlinks to:  /usr/local/lib/libreadline.so.6.3

which here using ldd -d -r shows up as having undefined symbols,

or in the alternative (supposing I'm creating problems with

my workaround for `gp' and librealine), how

to compile or re-compile the PARI/gp source code so that

it will not interfere with what the Packagers have fixed and

got running fine.


Thanks,


David Bernier



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]