[packages/gcl/DEVEL-2.7] - updated to 2.7.1; i686 build stops randomly with "bind stack overflow" errors for me

qboosh qboosh at pld-linux.org
Mon Oct 20 19:03:42 CEST 2025


commit 035beeaa22a8f589e7ec780e6b0dad99b9720416
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Mon Oct 20 19:06:54 2025 +0200

    - updated to 2.7.1; i686 build stops randomly with "bind stack overflow" errors for me

 gcl-2.7.1-errata.patch |  10 ++++
 gcl-format.patch       |  11 ----
 gcl-info.patch         |  74 ++++++++++++++++++---------
 gcl-make.patch         |  66 ------------------------
 gcl.spec               | 136 ++++++++++++++++++++++++-------------------------
 5 files changed, 129 insertions(+), 168 deletions(-)
---
diff --git a/gcl.spec b/gcl.spec
index cb04b43..02249c3 100644
--- a/gcl.spec
+++ b/gcl.spec
@@ -1,38 +1,49 @@
+# NOTE: during build gcl0 processes take >1.7GB RAM each, so be careful with -j and low memory
 # TODO:
-# - package tk-demos?
 # - package emacs-lisp files (if building with xemacs)
 #
 # Conditional build:
-%bcond_without	xemacs	# don't build/package emacs-lisp parts
+%bcond_with	sse2	# x86-32 SSE2 instructions for math
+%bcond_without	xemacs	# emacs-lisp parts
 #
+%ifarch pentium4
+%define	with_sse2
+%endif
 %define	tk_ver	8.5
 Summary:	GNU Common Lisp system
 Summary(pl.UTF-8):	System GNU Common Lisp
 Name:		gcl
-Version:	2.6.10
+Version:	2.7.1
 Release:	1
 License:	LGPL v2
 Group:		Development/Languages
-Source0:	http://ftp.gnu.org/gnu/gcl/%{name}-%{version}.tar.gz
-# Source0-md5:	7cb9c388e9e77696f4e27e7a1d118524
-Patch0:		%{name}-make.patch
-Patch1:		%{name}-info.patch
-Patch2:		%{name}-format.patch
+Source0:	https://ftp.gnu.org/gnu/gcl/%{name}-%{version}.tar.gz
+# Source0-md5:	e947f9e97302200c1e85f77ffe357b9b
+Patch0:		%{name}-info.patch
+Patch1:		%{name}-2.7.1-errata.patch
 URL:		http://www.gnu.org/software/gcl/
 BuildRequires:	autoconf >= 2.61
-BuildRequires:	automake
+BuildRequires:	automake >= 1:1.16
+# -std=gnu17
+BuildRequires:	gcc >= 6:7
 BuildRequires:	gmp-devel >= 4.0
+BuildRequires:	libtirpc-devel
 BuildRequires:	readline-devel
+BuildRequires:	tcl-devel >= %{tk_ver}
 BuildRequires:	texinfo
 BuildRequires:	tk-devel >= %{tk_ver}
 %{?with_xemacs:BuildRequires:	xemacs}
+BuildRequires:	xorg-lib-libX11-devel
+%if %{with sse2}
+Requires:	cpuinfo(sse2)
+%endif
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
 The GNU Common Lisp system, based on KCL.
 
 %description -l pl.UTF-8
-System GNU Common Lisp, bazujący na KCL.
+System GNU Common Lisp, oparty na KCL.
 
 %package tk
 Summary:	Tcl/Tk bindings for GNU Common Lisp
@@ -47,58 +58,41 @@ Tcl/Tk bindings for GNU Common Lisp.
 Interfejs Tcl/Tk dla GNU Common Lisp.
 
 %prep
-%setup -q -n %{name}
+%setup -q
 %patch -P0 -p1
 %patch -P1 -p1
-%patch -P2 -p1
+
+%ifarch %{ix86}
+%if %{without sse2}
+%{__sed} -i -e 's/if ! add_arg_to_cflags -msse2 .*then/if true; then/' configure.ac
+%endif
+%endif
 
 %build
 %{__aclocal}
 %{__autoconf}
-cp -f /usr/share/automake/config.* .
-GCC="%{__cc}"; export GCC
+%{__autoheader}
+%{__automake}
 %configure \
 	%{?with_xemacs:EMACS=/usr/bin/xemacs} \
-	--enable-dynsysgmp \
-	--enable-notify=no
+	--enable-tclconfig=%{_prefix}/lib \
+	--enable-tcltk \
+	--enable-tkconfig=%{_prefix}/lib
 
-%{__make}
+%{__make} \
+	SHELL=bash
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_infodir},%{_mandir}/man1}
-
-%{__make} install1 \
-	DESTDIR=$RPM_BUILD_ROOT \
-	INSTALL_LIB_DIR=%{_libdir}/gcl
-
-mv -f $RPM_BUILD_ROOT%{_libdir}/gcl/info/* $RPM_BUILD_ROOT%{_infodir}
-rmdir $RPM_BUILD_ROOT%{_libdir}/gcl/info
-
-install man/man1/gcl.1 $RPM_BUILD_ROOT%{_mandir}/man1
-
-ln -sf %{_libdir}/gcl/unixport/saved_gcl $RPM_BUILD_ROOT%{_bindir}/gcl.exe
 
-cat <<EOF > $RPM_BUILD_ROOT%{_bindir}/gcl
-#!/bin/sh
-exec %{_libdir}/gcl/unixport/saved_gcl \
-	-dir %{_libdir}/gcl/unixport/ \
-	-libdir %{_libdir}/gcl/ \
-	-eval '(setq si::*allow-gzipped-file* t)' \
-	"$@"
-EOF
+%{__make} install \
+	DESTDIR=$RPM_BUILD_ROOT
 
-cat <<EOF > $RPM_BUILD_ROOT%{_bindir}/gcl-tk
-#!/bin/sh
-exec %{_libdir}/gcl/unixport/saved_gcl \
-	-dir %{_libdir}/gcl/unixport/ \
-	-libdir %{_libdir}/gcl/ \
-	-eval '(setq si::*allow-gzipped-file* t)' \
-	-eval '(setq si::*tk-library* "/usr/lib/tk%{tk_ver}")' \
-	"$@"
-EOF
+cp -p $RPM_BUILD_ROOT%{_bindir}/{gcl,gcl-tk}
+%{__sed} -i -e '/setq.*tk-library/d' $RPM_BUILD_ROOT%{_bindir}/gcl
 
-%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/{dwdoc*,gcl-si*,gcl-tk*}
+install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+%{__mv} $RPM_BUILD_ROOT%{_docdir}/gcl/{gcl-tk,xgcl-2} $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -117,33 +111,39 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc readme faq ChangeLog
+%doc ChangeLog README
 %attr(755,root,root) %{_bindir}/gcl
-%attr(755,root,root) %{_bindir}/gcl.exe
-%dir %{_libdir}/gcl
-%{_libdir}/gcl/clcs
-%{_libdir}/gcl/cmpnew
-%{_libdir}/gcl/h
-%{_libdir}/gcl/lsp
-%{_libdir}/gcl/pcl
-%{_libdir}/gcl/xgcl-2
-%dir %{_libdir}/gcl/unixport
-%attr(755,root,root) %{_libdir}/gcl/unixport/saved_gcl
-%{_libdir}/gcl/unixport/*.lsp
-%{_libdir}/gcl/unixport/gcl.script
+%dir %{_libdir}/gcl-%{version}
+%{_libdir}/gcl-%{version}/clcs
+%{_libdir}/gcl-%{version}/cmpnew
+%{_libdir}/gcl-%{version}/h
+%{_libdir}/gcl-%{version}/lsp
+%{_libdir}/gcl-%{version}/pcl
+%{_libdir}/gcl-%{version}/xgcl-2
+%dir %{_libdir}/gcl-%{version}/unixport
+%attr(755,root,root) %{_libdir}/gcl-%{version}/unixport/saved_ansi_gcl
+%attr(755,root,root) %{_libdir}/gcl-%{version}/unixport/saved_gcl
+%{_libdir}/gcl-%{version}/unixport/*.lsp
+%{_libdir}/gcl-%{version}/unixport/gcl.script
+%{_libdir}/gcl-%{version}/unixport/libboot.so
 # to -devel?
-%{_libdir}/gcl/unixport/libgcl.a
-%{_libdir}/gcl/unixport/libgclp.a
+%{_libdir}/gcl-%{version}/unixport/libansi_gcl.a
+%{_libdir}/gcl-%{version}/unixport/libgcl.a
+%dir %{_examplesdir}/%{name}-%{version}
+%{_examplesdir}/%{name}-%{version}/xgcl-2
+%{_infodir}/gcl.info*
+%{_infodir}/gcl-dwdoc.info*
 %{_infodir}/gcl-si.info*
 %{_mandir}/man1/gcl.1*
 
 %files tk
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/gcl-tk
-%dir %{_libdir}/gcl/gcl-tk
-%attr(755,root,root) %{_libdir}/gcl/gcl-tk/gcltkaux
-%attr(755,root,root) %{_libdir}/gcl/gcl-tk/gcltksrv
-%{_libdir}/gcl/gcl-tk/*.o
-%{_libdir}/gcl/gcl-tk/*.tcl
-%{_libdir}/gcl/gcl-tk/tk-package.lsp
+%dir %{_libdir}/gcl-%{version}/gcl-tk
+%attr(755,root,root) %{_libdir}/gcl-%{version}/gcl-tk/gcltkaux
+%attr(755,root,root) %{_libdir}/gcl-%{version}/gcl-tk/gcltksrv
+%{_libdir}/gcl-%{version}/gcl-tk/*.o
+%{_libdir}/gcl-%{version}/gcl-tk/*.tcl
+%{_libdir}/gcl-%{version}/gcl-tk/tk-package.lsp
+%{_examplesdir}/%{name}-%{version}/gcl-tk
 %{_infodir}/gcl-tk.info*
diff --git a/gcl-2.7.1-errata.patch b/gcl-2.7.1-errata.patch
new file mode 100644
index 0000000..afa0259
--- /dev/null
+++ b/gcl-2.7.1-errata.patch
@@ -0,0 +1,10 @@
+--- gcl-2.7.1/o/alloc.c.orig	2025-04-10 18:57:51.833790576 -0600
++++ gcl-2.7.1/o/alloc.c	2025-04-11 13:55:15.362079513 -0600
+@@ -707,6 +707,7 @@ empty_relblock(void) {
+   for (;!rb_emptyp();) {
+     tm_table[t_relocatable].tm_adjgbccnt--;
+     expand_contblock_index_space();
++    expand_contblock_array();
+     GBC(t_relocatable);
+   }
+   sSAleaf_collection_thresholdA->s.s_dbind=o;
diff --git a/gcl-format.patch b/gcl-format.patch
deleted file mode 100644
index 654d186..0000000
--- a/gcl-format.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- gcl/gcl-tk/tkMain.c.orig	2013-11-11 15:55:48.000000000 +0100
-+++ gcl/gcl-tk/tkMain.c	2013-11-17 17:37:21.967828865 +0100
-@@ -121,7 +121,7 @@
- TCL_signal_error(x)
-      char *x;
- {char buf[300] ;
-- sprintf("error %s",x);
-+ sprintf(buf, "error %s",x);
-  Tcl_Eval(interp,buf);
-  dfprintf(stderr,x);
- }
diff --git a/gcl-info.patch b/gcl-info.patch
index 6556e71..af710d5 100644
--- a/gcl-info.patch
+++ b/gcl-info.patch
@@ -1,28 +1,56 @@
---- gcl/info/gcl-si.texi.orig	2013-11-17 16:07:03.788056245 +0100
-+++ gcl/info/gcl-si.texi	2013-11-17 16:08:48.101385200 +0100
-@@ -18,9 +18,9 @@
+--- gcl-2.7.1/info/gcl.texi.orig	2025-10-18 10:13:16.708023082 +0200
++++ gcl-2.7.1/info/gcl.texi	2025-10-18 10:13:53.791155519 +0200
+@@ -13,9 +13,9 @@ for Common Lisp.
+ Copyright 1994 William F. Schelter
  
+ @format
+-INFO-DIR-SECTION GNU Common Lisp
++INFO-DIR-SECTION Programming Languages:
+ START-INFO-DIR-ENTRY
+-* gcl: (gcl.info). GNU Common Lisp Manual
++* gcl: (gcl).				GNU Common Lisp Manual
+ END-INFO-DIR-ENTRY
+ @end format
+ @end ifinfo
+--- gcl-2.7.1/info/gcl-dwdoc.texi.orig	2025-04-10 20:21:26.186034518 +0200
++++ gcl-2.7.1/info/gcl-dwdoc.texi	2025-10-18 10:14:20.061013203 +0200
+@@ -27,9 +27,9 @@ Copyright 08 Oct 92; 08 Oct 93; 16 Nov 9
+ Copyright 2024 Camm Maguire
  
- @setchapternewpage odd
-- at dircategory GNU Common Lisp
-+ at dircategory Programming Languages:
- @direntry 
+ @format
+-INFO-DIR-SECTION GNU Common Lisp
++INFO-DIR-SECTION Programming Languages:
+ START-INFO-DIR-ENTRY
+-* gcl-dwdoc: (gcl-dwdoc.info). GNU Common Lisp Dwdoc
++* gcl-dwdoc: (gcl-dwdoc).		GNU Common Lisp Dwdoc
+ END-INFO-DIR-ENTRY
+ @end format
+ @end ifinfo
+--- gcl-2.7.1/info/gcl-si.texi.orig	2025-04-10 20:21:26.186034518 +0200
++++ gcl-2.7.1/info/gcl-si.texi	2025-10-18 10:12:08.745057936 +0200
+@@ -26,9 +26,9 @@ Copyright 1994 William F. Schelter
+ Copyright 2024 Camm Maguire
+ 
+ @format
+-INFO-DIR-SECTION GNU Common Lisp
++INFO-DIR-SECTION Programming Languages:
+ START-INFO-DIR-ENTRY
 -* gcl-si: (gcl-si.info). GNU Common Lisp System Internals
 +* gcl-si: (gcl-si).			GNU Common Lisp System Internals
- @end direntry
- 
- @ifinfo
---- gcl/info/gcl-tk.texi.orig	2013-11-17 16:07:03.988056236 +0100
-+++ gcl/info/gcl-tk.texi	2013-11-17 16:09:21.064717150 +0100
-@@ -18,9 +18,9 @@
- 
- 
- @setchapternewpage odd
-- at dircategory GNU Common Lisp
-+ at dircategory Programming Languages:
- @direntry 
--* gcl-tk: (gcl-tk.info). GNU TK Manual
-+* gcl-tk: (gcl-tk).			GNU TK Manual
- @end direntry
+ END-INFO-DIR-ENTRY
+ @end format
+ @end ifinfo
+--- gcl-2.7.1/info/gcl-tk.texi.orig	2025-04-02 01:21:17.342525456 +0200
++++ gcl-2.7.1/info/gcl-tk.texi	2025-10-18 10:15:41.060574390 +0200
+@@ -15,9 +15,9 @@ This is a Texinfo GCL TK Manual
+ Copyright 1994 William F. Schelter
  
- @ifinfo
+ @format
+-INFO-DIR-SECTION GNU Common Lisp
++INFO-DIR-SECTION Programming Languages:
+ START-INFO-DIR-ENTRY
+-* gcl-tk: (gcl-tk.info). GNU Common Lisp Tk Manual
++* gcl-tk: (gcl-tk).			GNU Common Lisp Tk Manual
+ END-INFO-DIR-ENTRY
+ @end format
+ @end ifinfo
diff --git a/gcl-make.patch b/gcl-make.patch
deleted file mode 100644
index 091f2db..0000000
--- a/gcl-make.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- gcl/makefile.orig	2013-11-11 15:55:48.000000000 +0100
-+++ gcl/makefile	2013-11-17 16:06:26.011391163 +0100
-@@ -64,27 +64,27 @@
- #	cp $(<D)/../include/$(@F) $@
- 
- $(PORTDIR)/saved_pre_gcl: $(HDIR)cmpinclude.h
--	(cd $(BINDIR); $(MAKE) all)
-+	$(MAKE) -C $(BINDIR) all
- 	$(MAKE) mpfiles
- 	rm -f o/cmpinclude.h ; cp h/cmpinclude.h o
--	(cd $(ODIR); $(MAKE) all)
-+	$(MAKE) -C $(ODIR) all
- 	$(MAKE) $<
- 	rm -f o/cmpinclude.h ; cp h/cmpinclude.h o
--	(cd $(ODIR); $(MAKE) all)
-+	$(MAKE) -C $(ODIR) all
- 	cd $(@D) && $(MAKE) $(@F)
- 
- $(PORTDIR)/saved_gcl: $(PORTDIR)/saved_pre_gcl $(HDIR)cmpinclude.h 
--	(cd $(LSPDIR); touch *.lsp ; $(MAKE) all)
--	(cd $(CMPDIR); touch *.lsp ; $(MAKE) all)
--	[ -z "$(X_LIBS)" ] || (cd xgcl-2 && $(MAKE) LISP=../$<)
-+	(cd $(LSPDIR); touch *.lsp) ; $(MAKE) -C $(LSPDIR) all
-+	(cd $(CMPDIR); touch *.lsp) ; $(MAKE) -C $(CMPDIR) all
-+	[ -z "$(X_LIBS)" ] || $(MAKE) -C xgcl-2 LISP=../$<
- 	cd $(@D) && $(MAKE) $(@F)
- 
- $(PORTDIR)/saved_pcl_gcl: $(PORTDIR)/saved_gcl
--	(cd $(PCLDIR); rm -f *.c; $(MAKE) all)
-+	(cd $(PCLDIR); rm -f *.c) ; $(MAKE) -C $(PCLDIR) all
- 	cd $(@D) && $(MAKE) $(@F)
- 
- $(PORTDIR)/saved_ansi_gcl: $(PORTDIR)/saved_pcl_gcl
--	(cd $(CLCSDIR); rm -f *.c; $(MAKE) all)
-+	(cd $(CLCSDIR); rm -f *.c) ; $(MAKE) -C $(CLCSDIR) all
- 	cd $(@D) && $(MAKE) $(@F)
- 
- ansi-tests/test_results: $(PORTDIR)/saved_ansi_gcl
-@@ -116,7 +116,7 @@
- mpfiles: $(MPFILES)
- 
- $(MPDIR)/libmport.a:
--	(cd mp ; $(MAKE) all)
-+	$(MAKE) -C mp all
- 
- $(GMPDIR)/libgmp.a: $(GMPDIR)/Makefile
- 	cd $(GMPDIR) && $(MAKE) && rm -f libgmp.a &&  ar qc libgmp.a *.o */*.o
-@@ -253,7 +253,7 @@
- OTHERS=$(HDIR)notcomp.h $(HDIR)rgbc.h $(HDIR)stacks.h 
- 
- $(HDIR)new_decl.h:
--	(cd o && $(MAKE) ../$@)
-+	$(MAKE) -C o ../$@
- 
- $(HDIR)cmpinclude.h: $(CMPINCLUDE_FILES) $(HDIR)config.h
- 	cat $(HDIR)config.h | sed -e "1,/Begin for cmpincl/d" -e "/End for cmpinclude/,50000d" > $(@F)
-@@ -278,7 +278,7 @@
- 	chmod a+rx configure
- 
- kcp:
--	(cd go ; $(MAKE)  "CFLAGS = -I../h -pg  -c -g ")
--	(cd unixport ; $(MAKE) gcp)
-+	$(MAKE) -C go "CFLAGS = -I../h -pg  -c -g "
-+	$(MAKE) -C unixport gcp
- 
- #.INTERMEDIATE: unixport/saved_pcl_gcl
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gcl.git/commitdiff/035beeaa22a8f589e7ec780e6b0dad99b9720416



More information about the pld-cvs-commit mailing list