[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