[Ecls-list] static build on FreeBSD 5.5 failed
fumi
tscompor at gmail.com
Sat Jun 9 03:51:20 UTC 2007
Hello,
I have just compiled the latest sources from CVS on FreeBSD 5.5
and encountered some problems.
I tried to compile several times, each time with command lines:
$ rm -r build; rm Makefile
$ ./configure --disable-shared; gmake
First try failed at a line in build/Makefile.
I got the following messages and modified src/Makefile.in.
cp /usr/home/nimda/ecl/src/h/*.h ecl/
if grep 'undef ENABLE_DLOPEN' ecl/config.h; then cp c/external.h h; fi
/* #undef ENABLE_DLOPEN */
cp: c/external.h: No such file or directory
gmake[1]: *** [ecl/external.h] Error 1
gmake[1]: Leaving directory `/usr/home/nimda/ecl/build'
gmake: *** [all] Error 2
Index: src/Makefile.in
===================================================================
RCS file: /project/ecl/cvsroot/ecl/src/Makefile.in,v
retrieving revision 1.70
diff -u -r1.70 Makefile.in
--- src/Makefile.in 4 Jun 2007 18:43:32 -0000 1.70
+++ src/Makefile.in 9 Jun 2007 02:50:58 -0000
@@ -62,7 +62,7 @@
sed 's,__declspec(dllimport),,g' $(top_srcdir)/h/external.h > $@
ecl/external.h: c/ecl/external.h c/ecl/external.h
cp $(srcdir)/h/*.h ecl/
- if grep 'undef ENABLE_DLOPEN' ecl/config.h; then cp c/external.h h; fi
+ if grep 'undef ENABLE_DLOPEN' ecl/config.h; then cp c/ecl/external.h h; fi
bin/ecl$(EXE): ecl_min$(EXE) compile.lsp sysfun.lsp ecl/external.h BUILD-STAMP
if [ -f CROSS-COMPILER ]; then \
Second try failed at build/compile.lsp.
The messages were:
;;; Note: Invoking external command:
;;; gcc -o "/usr/home/nimda/ecl/build/bin/ecl" -L"/usr/local/lib/ecl/" "/usr/home/nimda/ecl/build/ECLINITmXhTeX.o" "-lsockets" "-lcmp" "-L./" libecl.a -leclgmp -leclgc -lm
/usr/home/nimda/ecl/build/ECLINITmXhTeX.o(.text+0x36): In function `init_ECL':
/usr/home/nimda/ecl/build/ECLINITmXhTeX.c:41: undefined reference to `init_lib_ECL_SOCKETS'
/usr/home/nimda/ecl/build/ECLINITmXhTeX.o(.text+0x49):/usr/home/nimda/ecl/build/ECLINITmXhTeX.c:42: undefined reference to `init_lib_ECL_CMP'
LAMBDA: Too many arguments to function CONTINUE.
Broken at TOP-LEVEL.No restarts available.
Top level.
SI>
sed -e 's, at libdir\\@,/usr/local/lib/,' \
-e 's, at includedir\\@,/usr/local/include/,' bin/ecl-config.pre > bin/ecl-config
gmake[1]: Leaving directory `/usr/home/nimda/ecl/build'
I found that build/libcmp.a contained init_lib_CMP and modified
src/cmp/cmpmain.lsp.
$ nm build/libcmp.a | grep init_lib
00000000 T init_lib_CMP
Index: src/cmp/cmpmain.lsp
===================================================================
RCS file: /project/ecl/cvsroot/ecl/src/cmp/cmpmain.lsp,v
retrieving revision 1.113
diff -u -r1.113 cmpmain.lsp
--- src/cmp/cmpmain.lsp 3 Jun 2007 17:41:54 -0000 1.113
+++ src/cmp/cmpmain.lsp 9 Jun 2007 02:51:06 -0000
@@ -216,7 +216,7 @@
c)
(t
#\p)))
- (disambiguation (c)
+ (disambiguation (kind)
(case kind
(:object "")
((:fasl :fas) "fas_")
@@ -355,7 +355,7 @@
(etypecase item
(symbol
(push (system-ld-flag item) ld-flags)
- (push (init-function-name item :kind :lib) submodules))
+ (push (init-function-name item :kind :lib :prefix nil) submodules))
((or string pathname)
(let* ((pathname (parse-namestring item))
(kind (guess-kind pathname)))
Third try was successful.
I'm not sure if I did something wrong or these are bugs.
Please tell me if there is a better way.
More information about the ecl-devel
mailing list