Subject: [clisp-list] more build problems with 2.31

From: [email-masked] (Don Cohen)
Date: Mon Sep 22 22:15:07 2003

This on more recent hardware and software, trying to simplify:

 wg:root /root/clisp-2.31>./configure --without-readline --without-unicode test4
 ...
 make
 ...
 ./lisp.run -B . -N locale -Efile UTF-8 -Eterminal UTF-8 -norc -m 750KW -x "(and (load \"init.lisp\") (sys::%saveinitmem) (ext::exit))"
 make: *** [interpreted.mem] Segmentation fault

First, I welcome ideas about how to debug such things.  Here's the
direction I went and the strange place it lead:

 wg:root /root/clisp-2.31/test4>strace -o/tmp/strace ./lisp.run -B . -N locale
 wg:root /root/clisp-2.31/test4>grep open /tmp/strace

trace system calls and see what files it opens on way to segfault

 open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
 open("/etc/ld.so.cache", O_RDONLY)      = 4
 open("/usr/lib/libreadline.so.3", O_RDONLY) = 4

For some reason still reading libreadline!
Any idea why?

 open("/lib/libncurses.so.5", O_RDONLY)  = 4
 open("/lib/libdl.so.2", O_RDONLY)       = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/lib/libtermcap.so.2", O_RDONLY)  = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/proc/27942/exe", O_RDONLY)       = 4
 open("/proc/self/maps", O_RDONLY)       = 5
 open("/proc/self/maps", O_RDONLY)       = 5

whereas in 2.27 which works on this machine:

 wg:root /root>grep open /tmp/strace
 open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
 open("/etc/ld.so.cache", O_RDONLY)      = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
 open("/etc/ld.so.cache", O_RDONLY)      = 4
 open("/lib/libncurses.so.4", O_RDONLY)  = 4

hmmm 2.27 uses .so.4 compared to .31 using .so.5

 open("/lib/libdl.so.2", O_RDONLY)       = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/lib/libc.so.6", O_RDONLY)        = 4
 open("/proc/28164/exe", O_RDONLY)       = 4
 open("/proc/self/maps", O_RDONLY)       = 5
 open("/usr/local/lib/clisp/base/lispinit.mem", O_RDONLY) = 5

so evidently the .31 crashed before reading lispinit.mem