[Python-Dev] readline not getting built when .so symlink doesn't exist

Skip Montanaro skip@pobox.com (Skip Montanaro)
Mon, 4 Jun 2001 11:29:53 -0500

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.  There are several programs in /usr/bin on my machine that seem
to be dynamically linked to libreadline.  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.