[Ecls-list] executables produced with make-build break in cffi-grovel
Pascal J. Bourguignon
pjb at informatimago.com
Mon Sep 13 00:50:52 UTC 2010
Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com> writes:
> Hi again,
>
> sorry for the delay. This was not an easy problem and right now I am travelling a lot, but I believe I have found some causes and a solution.
>
> Problems:
> - Dependency on symbols from the C package
> - Dependency on symbols from ASDF (cffi-grovel)
> - Dependency on a directory from its project (cffi-grovel)
> - Dependency on the ASDF methods (cffi-grovel)
>
> Solutions:
> - C package is now built at boot time
> - A new package "prebuilt-asdf" can be listed as a dependency in your projects.
>
> For instance this now builds and runs
>
> (asdf:defsystem :foo
> :description "This ASDF system gathers all the packages of the IMCP Test-Server program."
> :depends-on ("iolib" "prebuilt-asdf")
> :components ((:file "test")))
>
> However the problems seem to signal an actual problem in the packages that use cffi-grovel, for this is listed as a runtime dependency and not as a compile-time dependency.
I must be doing something wrong, since the first thing the executable
does is to compile everything again (and of course, this fails since
there are compilation-time dependencies that are not available
anymore).
[pjb at mdi-development-1 localhost:10.0 |MDI| mdi]$ /home/pjb/.cache/common-lisp/mdi-development-1.lan.informatimago.com/ecl-10.7.1-linux-x86/home/pjb/firms/medicalis/src/mdi/subprojects/imcp/sources/es.medicalis.mdi.imcp.test-server
Starting client prologue
;;; Warning: Class ORAKAW-LL has been forward referenced.
;;; Loading #P"/usr/local/lib/ecl-10.7.1/cmp.fas"
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; End of Pass 1.
;;; Note:
;;; Invoking external command:
;;; gcc "-I/usr/local/include/" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -D_THREAD_SAFE -Dlinux -O2 -w -c "/tmp/ecl001F1ostY.c" -o "/tmp/ecl001F1ostY.o"
;;;
;;; Note:
;;; Invoking external command:
;;; gcc -o "/tmp/ecl001F1ostY.fas" -L"/usr/local/lib/" "/tmp/ecl001F1ostY.o" "-Wl,--rpath,/usr/local/lib/" -shared -lffi -lecl -lgmp -lpthread -ldl -lm
;;;
;;; Note:
;;; Invoking external command:
;;; gcc "-I/usr/local/include/" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -D_THREAD_SAFE -Dlinux -O2 -w -c "/tmp/ecl002K79pDV.c" -o "/tmp/ecl002K79pDV.o"
;;;
[... 1252 lines ...]
;;; Note:
;;; Invoking external command:
;;; gcc "-I/usr/local/include/" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -D_THREAD_SAFE -Dlinux -O2 -w -c "/tmp/ecl09fkKmyHB.c" -o "/tmp/ecl09fkKmyHB.o"
;;;
;;; Note:
;;; Invoking external command:
;;; gcc -o "/tmp/ecl09fkKmyHB.fas" -L"/usr/local/lib/" "/tmp/ecl09fkKmyHB.o" "-Wl,--rpath,/usr/local/lib/" -shared -lffi -lecl -lgmp -lpthread -ldl -lm
;;;
;;; Note:
;;; Invoking external command:
;;; gcc "-I/usr/local/include/" -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -fPIC -D_THREAD_SAFE -Dlinux -O2 -w -c "/tmp/ecl0a0dVLZsk.c" -o "/tmp/ecl0a0dVLZsk.o"
;;;
;;; Note:
;;; Invoking external command:
;;; gcc -o "/tmp/ecl0a0dVLZsk.fas" -L"/usr/local/lib/" "/tmp/ecl0a0dVLZsk.o" "-Wl,--rpath,/usr/local/lib/" -shared -lffi -lecl -lgmp -lpthread -ldl -lm
;;; ;;; Warning: What are the available external formats in ECL ?
Filesystem error with pathname #P"PACKAGES:/home/pjb/firms/medicalis/src/mdi/COM;INFORMATIMAGO;COMMON-LISP;HTML401.LISP".
Either
1) the file does not exist, or
2) we are not allow to access the file, or
3) the pathname points to a broken symbolic link.
No restarts available.
Broken at NIL. In: #<process SI:TOP-LEVEL 08a68fc0>.
COM.INFORMATIMAGO.COMMON-LISP.HTML>>
Isn't :monolithic t building a static executable?
(asdf:make-build :ES.MEDICALIS.MDI.IMCP.TEST-SERVER.program
:type :program
:monolithic t
:prologue-code '(progn
(princ "Starting client prologue") (terpri) (finish-output)
;; (require :asdf) ; replaced by "prebuilt-asdf"
)
;; :prologue-code "printf(\"Starting server prologue\\n\");fflush(stdout);"
:epilogue-code '(unwind-protect
(progn
(princ "Starting server") (terpri) (finish-output)
(ES.MEDICALIS.MDI.IMCP.TEST-SERVER:MAIN 10001))
(ext:quit 0)))
(asdf:defsystem :es.medicalis.mdi.imcp.test-server.program
:description "This ASDF system gathers all the packages of the IMCP Test-Server program."
:version "0.5"
:author "<PJB> Pascal Bourguignon <pascal.bourguignon at medicalis.es>"
:licence "Proprietary"
:depends-on ("prebuilt-asdf"
"split-sequence"
"alexandria" "babel" "iolib"
"com.informatimago.common-lisp"
"es.medicalis.mdi.common"
"es.medicalis.mdi.imcp")
:components ((:file "test-server")))
--
__Pascal Bourguignon__ http://www.informatimago.com/
More information about the ecl-devel
mailing list