[GiNaC-list] Re: I could not find libreadline

Alexei Sheplyakov varg at theor.jinr.ru
Sat Nov 17 18:44:01 CET 2007


Hello!

On Sat, Nov 17, 2007 at 03:32:06PM +0100, Bernd Speiser wrote:

> I am installing ginac 1.4.0 on an openSuSE 10.3 machine. I have 
> installed libreadline:

I don't thinks so (I'll give more details in a moment).

> Still, configuring ginac results in:
> 
> === The following minor problems have been detected by configure.
> === Please check the messages below before running "make".
> === (see the section 'Common Problems' in the INSTALL file)
> 
> == I could not find libreadline (needed by ginsh).

If you don't intend to use ginsh, you can safely ignore this warning.
Otherwise you need to install readline-devel package (it may be called
libreadline-dev, etc).

> In config.log, I find:

It would be nice to see the *complete* config.log, so I won't need to play
the guess game.

Well, here is more detailed explanation.

> # ll /lib/*readline*
> lrwxrwxrwx 1 root root     21 Nov 15 10:02 /lib/libreadline.so -> /lib/libreadline.so.5

Typically the /lib directory contains only important libraries necessary
for running basic *NIX programs. So this symlink looks suspicious. This
web page
http://www.novell.com/products/linuxpackages/opensuse/libreadline5.html
kind of confirms my naive expectations.

I guess you made this symlink yourself. But it is useless. First of all,
the linker (/usr/bin/ld) does not look for libraries in the /lib directory.
Secondly, the headers are still missing (ls /usr/include/readline to check).


So, you've decided to compile readline from the source. Your attempt
failed. Some libraries (i.e. libncurses) neccessary for readline are 
still missing, hence the error:

> configure:22950: checking for readline in -lreadline
> configure:22980: g++ -o conftest -g -O2   conftest.cc -lreadline    >&5
> /usr/local/lib/libreadline.so: undefined reference to `PC'
> /usr/local/lib/libreadline.so: undefined reference to `tgetflag'
> /usr/local/lib/libreadline.so: undefined reference to `tgetent'
> /usr/local/lib/libreadline.so: undefined reference to `UP'
> /usr/local/lib/libreadline.so: undefined reference to `tputs'
> /usr/local/lib/libreadline.so: undefined reference to `tgoto'
> /usr/local/lib/libreadline.so: undefined reference to `tgetnum'
> /usr/local/lib/libreadline.so: undefined reference to `BC'
> /usr/local/lib/libreadline.so: undefined reference to `tgetstr'
> collect2: ld returned 1 exit status

> lrwxrwxrwx 1 root root     23 Oct 13 09:59 /lib/libreadline.so.4 -> /lib/libreadline.so.5.2

Ouch! This one is definitely wrong. AFAIK version 4 of libreadline is
incompatible with version 5. If you ever happen to use some programs linked
with libreadline 4.x version, all bets are off. This symlink might cause
a lot of troubles, ranging from a bunch of cryptic warnings (emitted by
the runtime linker) to a segfault or a silent data corruption. If you made
this symlink yourself, you'd better remove it. Otherwise report this to
openSuSE maintainers.


Best regards,
	Alexei

-- 
All science is either physics or stamp collecting.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 827 bytes
Desc: Digital signature
Url : http://www.cebix.net/pipermail/ginac-list/attachments/20071117/8e169742/attachment.pgp


More information about the GiNaC-list mailing list