[Python-Dev] readline not getting built when .so symlink doesn't exist
Michael Hudson
mwh@python.net
04 Jun 2001 19:05:10 +0100
Skip Montanaro <skip@pobox.com> writes:
> I recently upgraded to Mandrake 8.0. I find that the readline
> module is no longer getting built. When building, it builds rgbimb
> followed immediately by crypt. Readline, which is tested for in
> between, is not built. Apparently, it can't find one of the
> libraries required to build it. On my system, both readline and
> termcap are in /lib. Neither has a static version available and
> neither as a plain .so file available. The .so file always has a
> version number tacked onto the end:
>
> % ls -l /lib/libtermcap* /lib/libreadline*
> lrwxrwxrwx 1 root root 18 May 29 10:53 /lib/libreadline.so.4 -> libreadline.so.4.1
> -rwxr-xr-x 1 root root 152440 Mar 25 01:26 /lib/libreadline.so.4.1
> lrwxrwxrwx 1 root root 19 May 29 10:53 /lib/libtermcap.so.2 -> libtermcap.so.2.0.8
> -rwxr-xr-x 1 root root 11608 Mar 26 10:32 /lib/libtermcap.so.2.0.8
>
> If I create the necessary .so symlinks it builds okay.
>
> Perhaps this is a bug in Mandrake 8.0 (it wouldn't be the first
> one), but if it is valid for shared libraries to be installed with
> only a version-numbered .so file, then it seems to me that distutils
> ought to handle that.
Hmm. Does compiling a proggie
$ gcc foo.c -lreadline
work? It doesn't here if I move libreadline.so & libreadline.a out of
the way.
If the C compiler isn't going to find readline, there ain't much point
distutils trying to find it...
> There are several programs in /usr/bin on my machine that seem to be
> dynamically linked to libreadline.
Those things will be directly linked to libreadline.so.whatever; I
believe the libfoo.so files are only for the (compile time) linker's
benefit.
> In addition, /usr/lib/python2.0/lib-dynload/readline.so exists,
> which suggests that the .so-without version number is valid as far
> as ld is concerned.
ld != ld.so.
Do you need a readline-devel package or something?
Cheers,
M.
--
It's actually a corruption of "starling". They used to be carried.
Since they weighed a full pound (hence the name), they had to be
carried by two starlings in tandem, with a line between them.
-- Alan J Rosenthal explains "Pounds Sterling" on asr