On Thu, Aug 29, 2002 at 11:24:03AM -0500, Rob Browning wrote: > Martin Grabmueller writes: > > >> This is strange. Guile 1.5 uses different names for its dynamically > >> linked libraries, as compared to 1.3.4. For example, libguilereadline > >> is now libguilereadline-v-12. There shouldn't be any conflict with > >> old libs. > > > > I haven't tried it again yet, but strace told me that Guile somehow > > tried to load the old libguilereadline.so, which in turn tried to load > > libguile.so.6, which didn't work and caused a nonsense `file not > > found' message from libtdl... > > Hmm -- can you find out which file guile is loading that's then > loading libguilereadline? I'm wondering if it's finding the wrong > readline.scm, or if somehow we're not loading the versioned > libguilereadline like I thought we were. I am working with a recent Guile CVS snapshot in /usr/local. I also have Guile 1.4 installed in /usr. I am unable to use readline in version 1.7; Guile aborts due to a SIGKILL signal. By contrast version 1.4 works ok. Below is a strace of Guile 1.7.0 that shows what files are read. The actual strace is much larger and I can mail it upon request. From what I can judge, libtool picks up the wrong version of the library. This may point to a bug in handling multiple versions of the same library in different locations. $ guile --version Guile 1.7.0 ... $ strace guile -c '(use-modules (ice-9 readline))' ... open("/usr/local/share/guile/1.7.0/ice-9/boot-9.scm", O_RDONLY) = 3 open("/usr/local/share/guile/1.7.0/ice-9/r4rs.scm", O_RDONLY) = 4 open("/usr/local/share/guile/1.7.0/ice-9/arrays.scm", O_RDONLY) = 4 open("/usr/local/share/guile/1.7.0/ice-9/posix.scm", O_RDONLY) = 4 open("/usr/local/share/guile/1.7.0/ice-9/networking.scm", O_RDONLY) = 4 open("/usr/local/share/guile/1.7.0/ice-9/readline.scm", O_RDONLY) = 3 open("/usr/local/share/guile/1.7.0/ice-9/session.scm", O_RDONLY) = 4 open("/usr/local/share/guile/1.7.0/ice-9/documentation.scm", O_RDONLY) = 5 open("/usr/local/share/guile/1.7.0/ice-9/rdelim.scm", O_RDONLY) = 6 open("/usr/local/share/guile/1.7.0/ice-9/regex.scm", O_RDONLY) = 5 open("/usr/local/share/guile/1.7.0/ice-9/buffered-input.scm", O_RDONLY) = 4 open("/lib/libguilereadline.la", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/libguilereadline.la", O_RDONLY) = 4 open("/usr/local/lib/libguilereadline.a", O_RDONLY) = 4 open("/usr/lib/libguilereadline.so.9", O_RDONLY) = 4 open("/usr/local/lib/libguile.so.9", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 4 open("/usr/lib/libguile.so.9", O_RDONLY) = 4 open("/usr/local/lib/libreadline.so.4", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib/libreadline.so.4", O_RDONLY) = 4 ... munmap(0x40286000, 42748) = 0 times({tms_utime=10, tms_stime=1, tms_cutime=0, tms_cstime=0}) = 12500784 times({tms_utime=10, tms_stime=1, tms_cutime=0, tms_cstime=0}) = 12500784 times({tms_utime=11, tms_stime=1, tms_cutime=0, tms_cstime=0}) = 12500785 brk(0x807d000) = 0x807d000 rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0 getpid() = 12287 kill(12287, SIGABRT) = 0 --- SIGABRT (Aborted) --- +++ killed by SIGABRT +++ The content of /usr/lib/libguilereadline.la is: # libguilereadline.la - a libtool library file # Generated by ltmain.sh - GNU libtool 1.4.2a (1.922.2.79 2001/11/28 21:50:31) # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='libguilereadline.so.9' # Names of this library. library_names='libguilereadline.so.9.0.0 libguilereadline.so.9 libguilereadline.so' # The name of the static archive. old_library='libguilereadline.a' # Libraries that this one depends upon. dependency_libs=' /usr/lib/libguile.la /usr/lib/libltdl.la -ldl /usr/lib/libqthreads.la -lpthread -lm -lreadline -lncurses' # Version information for libguilereadline. current=9 age=0 revision=0 # Is this an already installed library? installed=yes # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/lib' The content of /usr/local/lib/libguile-readline.la is: # libguilereadline.la - a libtool library file # Generated by ltmain.sh - GNU libtool 1.4.2a (1.922.2.100 2002/06/26 07:25:14) # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='libguilereadline.so.10' # Names of this library. library_names='libguilereadline.so.10.0.0 libguilereadline.so.10 libguilereadline.so' # The name of the static archive. old_library='libguilereadline.a' # Libraries that this one depends upon. dependency_libs=' /usr/local/lib/libguile.la /usr/lib/libltdl.la -ldl -lcrypt -lm -lreadline -lncurses' # Version information for libguilereadline. current=10 age=0 revision=0 # Is this an already installed library? installed=yes # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/local/lib'