diff --git a/Makefile b/Makefile index d9280eb..8720afb 100644 --- a/Makefile +++ b/Makefile @@ -52,11 +52,12 @@ BYE:=bye #GCLVERSION=gcl-2.6.8pre #GCLVERSION=gcl-2.6.8pre2 #GCLVERSION=gcl-2.6.8pre3 -GCLVERSION=gcl-2.6.8pre4 +#GCLVERSION=gcl-2.6.8pre4 +GCLVERSION=gcl-2.6.8pre7 GCLDIR:=${LSP}/${GCLVERSION} -GCLOPTS="--enable-vssize=65536*2 --enable-locbfd --disable-dynsysbfd \ +GCLOPTS="--enable-vssize=65536*2 --disable-locbfd --disable-dynsysbfd \ --disable-statsysbfd --enable-maxpage=512*1024 --disable-xgcl \ - --disable-tkconfig" + --disable-tkconfig --enable-custreloc --disable-tkconfig LISP:=lsp ##### C related variables diff --git a/Makefile.pamphlet b/Makefile.pamphlet index 00dd9ba..466e01d 100644 --- a/Makefile.pamphlet +++ b/Makefile.pamphlet @@ -901,7 +901,8 @@ forget to erase the lsp/Makefile the wrong patches will be applied. #GCLVERSION=gcl-2.6.8pre #GCLVERSION=gcl-2.6.8pre2 #GCLVERSION=gcl-2.6.8pre3 -GCLVERSION=gcl-2.6.8pre4 +#GCLVERSION=gcl-2.6.8pre4 +GCLVERSION=gcl-2.6.8pre7 @ \subsubsection{The [[GCLOPTS]] configure variable} @@ -927,6 +928,12 @@ GCLOPTS="--enable-vssize=65536*2 --enable-locbfd --disable-dynsysbfd \ --disable-statsysbfd --enable-maxpage=512*1024 --disable-xgcl \ --disable-tkconfig" @ +For the gcl-2.6.8pre7 version we move to using the custreloc option. +<>= +GCLOPTS="--enable-vssize=65536*2 --disable-locbfd --disable-dynsysbfd \ + --disable-statsysbfd --enable-maxpage=512*1024 --disable-xgcl \ + --disable-tkconfig --enable-custreloc --disable-tkconfig" +@ For the MACOSX port we need the following options. The ``--disable-nls'' means that we will not be supporting natural language internationalization. The ``--enable-maxpage'' has been eliminated because it causes build failures. @@ -934,7 +941,7 @@ The ``--enable-machine'' parameter appears to be used by configure from the setting of the ``canonical'' variable, which is in turn set by a shell script. We need to add ``--enable-locbfd'' and ``--disable-dlopen'' due to the error ``unexec: not enough room for load commands for new \_\_DATA segments''. -<>= +<>= GCLOPTS="--enable-vssize=65536*2 --disable-nls --disable-locbfd \ --disable-statsysbfd --enable-custreloc --disable-tkconfig \ --enable-machine=powerpc-macosx --disable-xgcl --disable-dlopen" @@ -1178,6 +1185,7 @@ all: rootdirs noweb srcsetup lspdir srcdir <>= <> +<> <> all: rootdirs noweb srcsetup lspdir srcdir @@ -1248,7 +1256,7 @@ all: rootdirs noweb srcsetup lspdir srcdir <> PLF=MACOSXplatform CCF="-O2 -fno-strength-reduce -Wall -D_GNU_SOURCE -D${PLF} -I/usr/X11/include" -<> +<> <> @@ -1448,7 +1456,7 @@ AWK=awk PLF=MACOSXplatform CCF="-O2 -fno-strength-reduce -Wall -D_GNU_SOURCE -D${PLF} \ -I/usr/X11/include -I/usr/include -I/usr/include/sys" -<> +<> <> all: rootdirs noweb srcsetup lspdir srcdir diff --git a/changelog b/changelog index 64bea36..71ae4f5 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,12 @@ +20120407 tpd src/axiom-website/patches.html 20120407.01.c1m.patch +20120407 tpd lsp/Makefile.pamphlet move to GCL Version gcl-2.6.8pre7 +20120407 tpd Makefile.pamphlet move to GCL Version gcl-2.6.8pre7 +20120407 tpd Makefile move to GCL Version gcl-2.6.8pre7 +20120407 tpd zips/gcl-2.6.8pre7.h.linux.defs.patch port to pre7 +20120407 tpd zips/gcl-2.6.8pre7.o.read.d.patch port to pre7 +20120407 tpd zips/gcl-2.6.8pre7.unixport.init_gcl.lsp.in.patch port to pre7 +20120407 tpd zips/gcl-2.6.8pre7.unixport.makefile.patch port patch to pre7 +20120407 c1m zips/gcl-2.6.8pre7.tgz lisp fixes from Camm Maquire 20120402 tpd src/axiom-website/patches.html 20120402.04.tpd.patch 20120402 tpd src/axiom-website/download.html add debian binary 20120402 tpd src/axiom-website/patches.html 20120402.03.tpd.patch diff --git a/lsp/Makefile.pamphlet b/lsp/Makefile.pamphlet index 7eaf543..ad6d615 100644 --- a/lsp/Makefile.pamphlet +++ b/lsp/Makefile.pamphlet @@ -225,6 +225,16 @@ 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 ) @ +As of this version we no longer use the EXTRAS variable. +This has been changed to use the SYSTEM\_OBJS variable, per Camm (Apr 6,2012) +<>= + @(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 @@ -240,6 +250,12 @@ 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. @@ -331,6 +347,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. @@ -404,6 +425,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. @@ -636,6 +662,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. @@ -1350,6 +1384,48 @@ clean: @( cd ccl ; ${ENV} ${MAKE} clean ) @ +\subsection{The GCL-2.6.8pre7 stanza} +This stanza will be written when the GCLVERSION variable is +``gcl-2.6.8pre7''. It will overwrite the default version. See the +top level Makefile.pamphlet. +<>= +# gcl version 2.6.8pre7 +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 e231dba..d103f65 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -3870,5 +3870,7 @@ src/input/clements.input add example of spad code
faq fix FAQ 22: How do I check out the latest source?
20120402.04.tpd.patch src/axiom-website/download.html add debian binary
+20120407.01.c1m.patch +zips/gcl-2.6.8pre7.tgz lisp fixes from Camm Maquire
diff --git a/zips/gcl-2.6.8pre7.h.linux.defs.patch b/zips/gcl-2.6.8pre7.h.linux.defs.patch new file mode 100644 index 0000000..81950d1 --- /dev/null +++ b/zips/gcl-2.6.8pre7.h.linux.defs.patch @@ -0,0 +1,13 @@ +--- linux.defs 2004-07-15 12:28:43.000000000 -0400 ++++ linux.defs.tpd 2012-04-07 18:04:04.118182617 -0400 +@@ -8,6 +8,10 @@ + + # Machine dependent makefile definitions for intel 386,486 running linux + ++# 20120407000 tpd link Axiom's code per Camm's instruction ++SYSTEM_OBJS = ${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.8pre7.o.read.d.patch b/zips/gcl-2.6.8pre7.o.read.d.patch new file mode 100644 index 0000000..f53f1f7 --- /dev/null +++ b/zips/gcl-2.6.8pre7.o.read.d.patch @@ -0,0 +1,11 @@ +--- read.d 2012-01-04 14:42:07.000000000 -0500 ++++ read.d.tpd 2012-04-07 20:15:32.489298931 -0400 +@@ -2292,7 +2292,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.8pre7.tgz b/zips/gcl-2.6.8pre7.tgz new file mode 100644 index 0000000..0756d05 Binary files /dev/null and b/zips/gcl-2.6.8pre7.tgz differ diff --git a/zips/gcl-2.6.8pre7.unixport.init_gcl.lsp.in.patch b/zips/gcl-2.6.8pre7.unixport.init_gcl.lsp.in.patch new file mode 100644 index 0000000..b9832b0 --- /dev/null +++ b/zips/gcl-2.6.8pre7.unixport.init_gcl.lsp.in.patch @@ -0,0 +1,13 @@ +--- init_gcl.lsp.in 2010-08-13 11:49:47.000000000 -0400 ++++ init_gcl.lsp.in.tpd 2012-04-07 18:52:50.464693583 -0400 +@@ -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.8pre7.unixport.makefile.patch b/zips/gcl-2.6.8pre7.unixport.makefile.patch new file mode 100644 index 0000000..9a2129b --- /dev/null +++ b/zips/gcl-2.6.8pre7.unixport.makefile.patch @@ -0,0 +1,11 @@ +--- makefile 2010-11-05 09:26:31.000000000 -0400 ++++ makefile.tpd 2012-04-07 18:10:13.384013706 -0400 +@@ -18,7 +18,7 @@ + + LD_FLAGS=$(LDFLAGS) $(FIRST_FILE) + LD_LIBS_PRE=$(addprefix -u ,$(PATCHED_SYMBOLS)) +-LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp $(LAST_FILE) ++LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp ${OBJ}/${SYS}/lib/libspad.a $(LAST_FILE) + + ifeq ($(ARRS),) + ARRS:=ar rs