[Ecls-list] Can't build :dll on linux, latest ECL

Faré fahree at gmail.com
Wed Jun 8 11:08:52 UTC 2011


Peter Keller and I were trying to add ECL support to XCVB, last night,
and I think we managed to add all or most that's needed to XCVB, but
we stumbled upon a bug in ECL:

> (trace c::builder)
(C::BUILDER)
> (asdf:oos 'asdf::dll-op :alexandria)
1> (C::BUILDER :DLL
#P"/home/fare/.cache/common-lisp/ecl-11.1.1-63d83b07-linux-amd64/home/fare/cl/alexandria/libalexandria.so"
:LISP-FILES (#P"/home/fare/.cache/common-lisp/ecl-11.1.1-63d83b07-linux-amd64/home/fare/cl/alexandria/libalexandria.a"))
;;; Note:
;;;   Invoking external command:
;;;   gcc -I. -I/usr/local/stow/ecl/include/ -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -Dlinux -O2 -w -c
/tmp/fare/eclinitSGPsJI.c -o /tmp/fare/eclinitSGPsJI.o
;;; Note:
;;;   Invoking external command:
;;;   gcc -o /home/fare/.cache/common-lisp/ecl-11.1.1-63d83b07-linux-amd64/home/fare/cl/alexandria/libalexandria.so
-L/usr/local/stow/ecl/lib/ /tmp/fare/eclinitSGPsJI.o
(/home/fare/.cache/common-lisp/ecl-11.1.1-63d83b07-linux-amd64/home/fare/cl/alexandria/libalexandria.a)
-Wl,--rpath,/usr/local/stow/ecl/lib/ -shared -lecl -lgmp -lgc -lffi
-ldl -lm
Condition of type: SIMPLE-TYPE-ERROR
In function COPY-TO-SIMPLE-BASE-STRING, the value of the first argument is
  ("/home/fare/.cache/common-lisp/ecl-11.1.1-63d83b07-linux-amd64/home/fare/cl/alexandria/libalexandria.a")
which is not of the expected type STRING

Available restarts:

For reference, I debugged with:
(require :asdf) (require :cmp) (progn (setf *print-readably* nil)
(asdf:load-system :asdf) (ext:package-lock "C" nil) (ext:package-lock
"CL" nil) (proclaim '(optimize (safety 3) (debug 3) (speed 2))) (load
"/home/fare/src/ecl/src/cmp/cmpmain.lsp") (trace c::builder
c::compiler-cc c::linker-cc c::shared-cc) (asdf:oos 'asdf::lib-op
:alexandria) (asdf:oos 'asdf::dll-op :alexandria))

And the issue is that in defun builder, the line
       (shared-cc output-name (list o-name ld-flags)))
should be:
       (shared-cc output-name (cons o-name ld-flags)))
Or maybe list* instead of cons.

Broke on 9db8f32b from Dec 23 2010 - I guess it hasn't been exercised since.

NB: we have been using the latest ECL 11.1.1 from git, on debian
linux, x86 and amd64.

Can you fix that upstream?

Thanks a lot for ECL!

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
My best friend is the one who brings out the best in me. — Henry Ford




More information about the ecl-devel mailing list