diff --git a/Makefile b/Makefile index 24b5a70..55d5c79 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,8 @@ LSP:=${SPD}/lsp #GCLVERSION=gcl-2.6.7 #GCLVERSION=gcl-2.6.8pre #GCLVERSION=gcl-2.6.8pre2 -GCLVERSION=gcl-2.6.8pre3 +#GCLVERSION=gcl-2.6.8pre3 +GCLVERSION=gcl-2.6.8pre4 AWK:=gawk GCLDIR:=${LSP}/${GCLVERSION} SRC:=${SPD}/src diff --git a/Makefile.pamphlet b/Makefile.pamphlet index ba90072..65347d2 100644 --- a/Makefile.pamphlet +++ b/Makefile.pamphlet @@ -809,7 +809,8 @@ forget to erase the lsp/Makefile the wrong patches will be applied. #GCLVERSION=gcl-2.6.7 #GCLVERSION=gcl-2.6.8pre #GCLVERSION=gcl-2.6.8pre2 -GCLVERSION=gcl-2.6.8pre3 +#GCLVERSION=gcl-2.6.8pre3 +GCLVERSION=gcl-2.6.8pre4 @ \subsubsection{The [[GCLOPTS]] configure variable} diff --git a/changelog b/changelog index e184168..864d216 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,12 @@ +20100420 tpd src/axiom-website/patches.html 20100420.01.tpd.patch +20100420 tpd zips/gcl-2.6.8pre4.unixport.makefile.patch +20100420 tpd zips/gcl-2.6.8pre4.unixport.init_gcl.lsp.in.patch +20100420 tpd zips/gcl-2.6.8pre4.o.read.d.patch added +20100420 tpd zips/gcl-2.6.8pre4.h.linux.defs.patch added +20100420 tpd zips/gcl-2.6.8pre4.tgz added, fix for ubuntu 9.10 +20100420 tpd lsp/Makefile.pamphlet GCLVERSION gcl-2.6.8pre4 +20100420 tpd Makefile.pamphlet GCLVERSION gcl-2.6.8pre4 +20100420 tpd Makefile GCLVERSION gcl-2.6.8pre4 20100419 tpd src/axiom-website/patches.html 20100419.05.tpd.patch 20100419 tpd books/bookvol4 document how to make graphs in algebra books 20100419 tpd src/axiom-website/patches.html 20100419.04.tpd.patch diff --git a/lsp/Makefile.pamphlet b/lsp/Makefile.pamphlet index 2670c7f..7eaf543 100644 --- a/lsp/Makefile.pamphlet +++ b/lsp/Makefile.pamphlet @@ -217,6 +217,14 @@ but, since no initialization is needed, we simply create empty files. touch ${OBJ}/${SYS}/lib/cfuns-c.ini ; \ touch ${OBJ}/${SYS}/lib/sockio-c.ini ) @ +<>= + @(cd ${GCLVERSION}/h ; \ + echo 3 applying EXTRAS patch to h/linux.defs ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.h.linux.defs.patch ) + @(echo 4 setup ini files for EXTRAS patch ; \ + touch ${OBJ}/${SYS}/lib/cfuns-c.ini ; \ + touch ${OBJ}/${SYS}/lib/sockio-c.ini ) +@ \subsubsection{read.d patch} The new read-char-no-hang change no longer returns EOF so we have no way to know when the browser is finished talking. This causes @@ -227,6 +235,11 @@ hangs waiting for a response. echo 100 applying read.d patch to o/read.d ; \ ${PATCH} <${SPD}/zips/${GCLVERSION}.o.read.d.patch ) @ +<>= + @(cd ${GCLVERSION}/o ; \ + echo 100 applying read.d patch to o/read.d ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.o.read.d.patch ) +@ \subsubsection{fortran patch} Communication over sockets (basically to the NAG fortran library) requires us to have XDR enabled. @@ -313,6 +326,11 @@ The for-loop change has been included in the sources. echo 6 applying libspad.a patch to unixport/makefile ; \ ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.makefile.patch ) @ +<>= + @(cd ${GCLVERSION}/unixport ; \ + echo 6 applying libspad.a patch to unixport/makefile ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.makefile.patch ) +@ \subsubsection{toploop patch} This patch turns off the banner display every time GCL starts. We could use the -batch flag but that would be a pervasive change. @@ -381,6 +399,11 @@ for the compiler will be. We eliminate this noise as well as the banner. echo 7 applying toploop patch to unixport/init_gcl.lsp ; \ ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.in.patch ) @ +<>= + @(cd ${GCLVERSION}/unixport ; \ + echo 7 applying toploop patch to unixport/init_gcl.lsp ; \ + ${PATCH} <${SPD}/zips/${GCLVERSION}.unixport.init_gcl.lsp.in.patch ) +@ \subsubsection{object to float patch} GCL 2.5.2 contains no reference to this function and it was removed. Axiom uses this function so we re-implement it here. @@ -605,6 +628,14 @@ file contains the proclaims for GCL's function definitions. echo 27 copy sys-proclaim.lisp to ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ; \ cp sys-proclaim.lisp ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ) @ +<>= + @(cd ${GCLVERSION}/cmpnew ; \ + echo 26 copy gcl_collectfn.lsp to ${OBJ}/${SYS}/lsp/collectfn.lsp ; \ + cp gcl_collectfn.lsp ${OBJ}/${SYS}/lsp/collectfn.lsp ) + @(cd ${GCLVERSION}/lsp ; \ + echo 27 copy sys-proclaim.lisp to ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ; \ + cp sys-proclaim.lisp ${OBJ}/${SYS}/lsp/sys-proclaim.lisp ) +@ \subsection{The GCL-2.5.2 stanza} \subsubsection{Configure and Make GCL} We enable several features of GCL. @@ -1277,6 +1308,48 @@ clean: @( cd ccl ; ${ENV} ${MAKE} clean ) @ +\subsection{The GCL-2.6.8pre4 stanza} +This stanza will be written when the GCLVERSION variable is +``gcl-2.6.8pre4''. It will overwrite the default version. See the +top level Makefile.pamphlet. +<>= +# gcl version 2.6.8pre4 +OUT=${OBJ}/${SYS}/bin + +all: + @echo 1 building ${LSP} ${GCLVERSION} + +gcldir: + @echo 2 building ${GCLVERSION} + @tar -zxf ${ZIPS}/${GCLVERSION}.tgz +<> +<> +<> +<> +<> +<> + @echo 13 finished system build on `date` | tee >gcldir + +ccldir: ${LSP}/ccl/Makefile + @echo 14 building CCL + @mkdir -p ${INT}/ccl + @mkdir -p ${OBJ}/${SYS}/ccl + @( cd ccl ; ${ENV} ${MAKE} ) + +${LSP}/ccl/Makefile: ${LSP}/ccl/Makefile.pamphlet + @echo 15 making ${LSP}/ccl/Makefile from ${LSP}/ccl/Makefile.pamphlet + @( cd ccl ; ${DOCUMENT} ${NOISE} Makefile ) + +document: + @echo 16 making docs in ${LSP} + @mkdir -p ${INT}/doc/lsp/ccl + @( cd ccl ; ${ENV} ${MAKE} document ) + +clean: + @echo 17 cleaning ${LSP}/ccl + @( cd ccl ; ${ENV} ${MAKE} clean ) + +@ \section{Gnu Common Lisp 2.5} GCL 2.5 requires a different Makefile. In particular, GCL 2.5 has a different method of building the lisp image. And, just to diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index d197cd1..26c6afd 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2647,5 +2647,7 @@ books/bookvol10.4 add FiniteFieldSquareFreeDecomposition
books/bookvol10.3 improve UnivariateTaylorSeriesCZero docs
20100419.05.tpd.patch books/bookvol4 document how to make graphs in algebra books
+20100420.01.tpd.patch +zips/gcl-2.6.8pre4.tgz added, fix for ubuntu 9.10
diff --git a/zips/gcl-2.6.8pre4.h.linux.defs.patch b/zips/gcl-2.6.8pre4.h.linux.defs.patch new file mode 100644 index 0000000..fdefaff --- /dev/null +++ b/zips/gcl-2.6.8pre4.h.linux.defs.patch @@ -0,0 +1,13 @@ +--- linux.defs Sun Jul 24 12:55:14 2005 ++++ linux.defs.tpd Sun Jul 24 13:55:26 2005 +@@ -8,6 +8,10 @@ + + # Machine dependent makefile definitions for intel 386,486 running linux + ++# 20031022000 tpd link Axiom's code into the image ++EXTRAS = ${OBJ}/${SYS}/lib/cfuns-c.o ${OBJ}/${SYS}/lib/sockio-c.o ++OFLAG = -O ++ + LBINDIR=/usr/local/bin + + #OFLAG = -g -Wall diff --git a/zips/gcl-2.6.8pre4.o.read.d.patch b/zips/gcl-2.6.8pre4.o.read.d.patch new file mode 100644 index 0000000..2c14c82 --- /dev/null +++ b/zips/gcl-2.6.8pre4.o.read.d.patch @@ -0,0 +1,11 @@ +--- read.tpd 2009-02-20 00:02:00.000000000 -0500 ++++ read.d 2009-02-20 00:02:52.000000000 -0500 +@@ -2272,7 +2272,7 @@ + else if (strm == Ct) + strm = symbol_value(sLAterminal_ioA); + check_type_stream(&strm); +- if (stream_at_end(strm)) { ++ if (!listen_stream(strm)) { + if (eof_errorp == Cnil) + @(return eof_value) + else diff --git a/zips/gcl-2.6.8pre4.tgz b/zips/gcl-2.6.8pre4.tgz new file mode 100644 index 0000000..65a3820 Binary files /dev/null and b/zips/gcl-2.6.8pre4.tgz differ diff --git a/zips/gcl-2.6.8pre4.unixport.init_gcl.lsp.in.patch b/zips/gcl-2.6.8pre4.unixport.init_gcl.lsp.in.patch new file mode 100644 index 0000000..553d963 --- /dev/null +++ b/zips/gcl-2.6.8pre4.unixport.init_gcl.lsp.in.patch @@ -0,0 +1,13 @@ +--- init_gcl.lsp.in 2006-10-25 17:17:05.000000000 -0400 ++++ init_gcl.lsp.in.tpd 2008-11-21 13:35:59.000000000 -0500 +@@ -85,8 +85,8 @@ + (cond ((si::get-command-arg "-batch") + (setq si::*top-level-hook* 'bye)) + ((si::get-command-arg "-f")) +- (t (format t si::*system-banner*) +- (format t "Temporary directory for compiler files set to ~a~%" *tmp-dir*))) ++ (t (format nil si::*system-banner*) ++ (format nil "Temporary directory for compiler files set to ~a~%" *tmp-dir*))) + (setq si::*ihs-top* 1) + (in-package 'system::user) (incf system::*ihs-top* 2) + (funcall system::*old-top-level*)) diff --git a/zips/gcl-2.6.8pre4.unixport.makefile.patch b/zips/gcl-2.6.8pre4.unixport.makefile.patch new file mode 100644 index 0000000..4af04b1 --- /dev/null +++ b/zips/gcl-2.6.8pre4.unixport.makefile.patch @@ -0,0 +1,12 @@ +--- makefile 2006-08-23 14:14:22.000000000 -0400 ++++ makefile.tpd 2008-11-21 13:31:06.000000000 -0500 +@@ -15,7 +15,8 @@ + PORTDIR = $(shell pwd) + + LD_LIBS_PRE=$(FIRST_FILE) $(addprefix -u ,$(PATCHED_SYMBOLS)) +-LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp $(LAST_FILE) ++# 20031022000 tpd link axiom's C library code ++LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp ${OBJ}/${SYS}/lib/libspad.a $(LAST_FILE) + + ifeq ($(ARRS),) + ARRS:=ar rs