[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] GCL cygwin Axiom build

From: Camm Maguire
Subject: Re: [Gcl-devel] GCL cygwin Axiom build
Date: Tue, 22 Jul 2014 12:33:10 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux)

Hi Tim!  How do I get the sources to reproduce this?

As you might recall, we may have an old unresolved skew in the handling
of these extensions.  I put in place a #'compiler::link function a long
time ago to support adding these sorts of files without having to patch
GCL, and thereby enabling a build against an externally installed gcl.

In sum, in the Debian package I replace your gcl build under the
makefile target gcldir in lsp/Makefile.pamphlet with

        @echo 2 building ${GCLVERSION}
-       @tar -zxf ${ZIPS}/${GCLVERSION}.tgz
+       echo '(compiler::link (list (compile-file "${BOOKS}/tangle.lisp")) 
"${OUT}/lisp" (format nil "(progn (let ((*load-path* (cons ~S 
*load-path*))(si::*load-types* ~S)) (compiler::emit-fn t))(when (fboundp (quote 
si::sgc-on)) (si::sgc-on t))#-native-reloc(setq compiler::*default-system-p* 
t))" si::*system-directory* (quote (list #+native-reloc".o" ".lsp"))) 
"${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o 
${OBJ}/${SYS}/lib/libspad.a")' | gcl
        @echo 13 finished system build on `date` | tee >gcldir
Let me break out the link call with commentary:

(compiler::link ;;create a new lisp image ld and C objects prior to save-system
         (list (compile-file "${BOOKS}/tangle.lisp")) ;;list of compiled lisp 
          "${OUT}/lisp" ;; output image name
          (format nil ;; a command to run before the final save-system
              (let ((*load-path* (cons ~S *load-path*))(si::*load-types* ~S)) 
(compiler::emit-fn t))
              (when (fboundp (quote si::sgc-on)) (si::sgc-on t))
              #-native-reloc(setq compiler::*default-system-p* t))" 
                  si::*system-directory* (quote (list #+native-reloc".o" 
         ;; a string of C objects and libraries         
         "${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o 

I can explain how this works in detail if you are interested.  If you'd
like to use it, that should simplify things quite a bit.  If not, we can
still get the method based on patching GCL's makefiles to work -- it is
just that any edits to these files will require an update to the
patches, and this is somewhat fragile.  Should you wish to pursue this,
please point me at the sources and I'll try to spot the failure.

Take care,

address@hidden writes:

> Camm,
> The build fails loading the Axiom extensions. The log is at
> http://daly.axiom-developer.org/cygwinfail.txt
> If you recall there are two files, cfuns-c.o and sockio-c.o
> which are linked into the GCL image. The related patches are
> listed at the top of the cygwinfail.txt file.
> You made a change in the makefile related to library loads
> so it was unclear to me where libspad.a should be added.
> Tim

Camm Maguire                                        address@hidden
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]