Current clisp distribution unbundled libffcall
and libsigsegv. Unfortunatly, many popular
Linux distributions do not include them.
When libffcall and/or libsigsegv are installed
in a nonstandard directory clisp-2.47 configure
can not find them. Giving --with-libsigsegv-prefix
(which is mentioned in unix/INSTALL) does not
help -- apparently this argument is ignored by
configure. For ffcall I was unable to find
official method to specify alternative location.
Also modifying CFLAGS and/or LDFLAGS did not
help: adding -I to CFLAGS allowed to find
header files, but when I modified LDFLAGS,
then configure was able to find the libraries,
but subconfigure in i18n failed, complaining
about modified LDFLAGS.
wfm --with-libffcall-prefix and --with-libsigsegv-prefix
please check config.log and investigate why the configure fails to detect the libraries.
this is now marked "pending" because we are waiting for your input
From config log:
configure:26222: checking for libsigsegv
configure:26252: gcc -o conftest -g -O2 conftest.c -lsigsegv >&5
conftest.c:60:21: error: sigsegv.h: No such file or directory
AFAICS configure contains no mechanizm to pass correct include and
library options for libsigsegv and libffcall to the compiler used for feature testing (gcc in this case). As I wrote in the original
report after appropriate setting of CFLAGS and LDFLAGS configure
finds libsigsegv and libffcall, but then fails later.
my config.log says:
configure:27208: checking for libsigsegv
configure:27238: gcc -o conftest -I/home/sds/top/Linux-x86_64/include conftest.c /home/sds/top/Linux-x86_6/lib/libsigsegv.a -lc >&5
configure:27245: $? = 0
configure:27267: result: yes
configure:27275: checking how to link with libsigsegv
configure:27277: result: /home/sds/top/Linux-x86_64/lib/libsigsegv.a -lc
I invoke configure with arguments
--with-libsigsegv-prefix=/home/sds/top/Linux-x86_64 --with-libffcall-prefix=/home/sds/top/Linux-x86_64
what is your exact configure command line?
I used the following configure line (in the root directory
of the source tree):
./configure --with-libffcall-prefix=/home/hebisch/lisp/pp4/usr --with-libsigsegv-prefix=/home/hebisch/lisp/pp4/usr >clogg 2>&1 &
libffcall and libsigsegv are in the specified directory:
-bash-3.2$ ls /home/hebisch/lisp/pp4/usr/include/
avcall.h sigsegv.h trampoline_r.h vacall_r.h
callback.h trampoline.h vacall.h
-bash-3.2$ ls /home/hebisch/lisp/pp4/usr/lib/
libavcall.a libcallback.a libsigsegv.a libtrampoline.a
libavcall.la libcallback.la libsigsegv.la libvacall.a
-bash-3.2$
I am lost.
first, please tell me your platform (uname -a; glibc version if linux).
second, please read your config.log very carefully and see where your prefixes are used.
also, look for "checking how to link with".
you might also want to try cvs head.
I am running Fedora 9 with self-compiled kernel.
uname -a
Linux localhost.localdomain 2.6.25.6 #7 PREEMPT Fri Jul 4 14:09:18 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
The system uses libc 2.8
/bin/sh --version
GNU bash, version 3.2.33(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
Concerning config.log: I see no indication that prefixes I gave
are used. "checking how to link with" lines seem to be the
same regardless if I give prefix argument or not:
configure:31697: checking for libsigsegv
configure:31756: result: no, consider installing GNU libsigsegv
configure:31809: checking how to link with libavcall
configure:32264: result: -lavcall
configure:32305: checking how to link with libcallback
configure:32760: result: -lcallback
configure:32813: checking avcall.h usability
configure:32830: gcc -c -g -O2 conftest.c >&5
conftest.c:120:20: error: avcall.h: No such file or directory
Actually, if I try configuring without giving prefix argument
config.log is essentially the same (I see changed command line,
changes to paths (since I configure in different directory)
and different value of STACK_ADDRESS_RANGE (this one simply
changes from run to run)).
did you try clisp cvs head?
cvs gives me the same result as 2.47
please edit the top-level configure script and add "set -xv" early on.
also, add "-xv" to the src/configure invocation:
--- configure.~1.139.~ 2008-11-19 17:23:00.000000000 -0500
+++ configure 2008-12-12 15:02:45.001616000 -0500
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/sh -xv
# Usage: configure [options] [dirname [cc]]
# Examples:
# configure obj
@@ -643,7 +643,7 @@ if test -n "$do_config"; then
fi
cd "${ABS_DIRNAME}";
echo "executing `pwd`/configure $*"
- ${CONFIG_SHELL} configure $subdir_srcdir_args \ + ${CONFIG_SHELL} -xv configure $subdir_srcdir_args \ $subdir_configure_args --cache-file=config.cache
fi
redirect output to a file and post a link to the file here.
you can also examine the file yourself to see why the options are not used.
OK. log at:
http://www.math.uni.wroc.pl/~hebisch/tmp/clogg
AFAICS problem is due to lib versus lib64 confusion: ffcall and libsigsegv installs libraries in /home/hebisch/lisp/pp4/usr/lib
but configure searches in /home/hebisch/lisp/pp4/usr/lib64
http://clisp.podval.org/impnotes/faq.html#faq-with-prefix
I see, this is known problem. However, telling users to
install library in specific directory does not look like
right solutions. AFAICS autoconf was hyped to be able to
find proper information via testing (instead of relying on
hardcoded details) and it does not look hard to add
apropriate test.
this is clearly an autoconf problem, specifically, a problem in the configure scripts of libffcall and libsigsegv.
there is absolutely nothing I can do about it.
please _DO_ complain to the autoconf maintainers.
The FAQ is now at https://clisp.sourceforge.io/impnotes/faq.html#faq-with-prefix.
The handling of these --with-lib... options has been improved over the last year, it should be nearly foolproof now.