Re: Perplexing issue with libreadline

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20 March 2017 at 18:13, Jonathan Wakely <jwakely.gcc@xxxxxxxxx> wrote:
> On 20 March 2017 at 16:12, David Bernier wrote:
>> 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.
>
> This has nothing to do with GCC.

Presumably you linked your program with -lreadline which will have
looked for a file called libreadline.so

If that is a symlink to libreadline.so.6.0 then that's what your
software will link to and depend on.

If you install the readline-devel package it should install a symlink
called libreadline.so that points to the libreadline.so.6 library
version installed by the system packagers.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux