[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