I'm preparing an update of lang/sbcl to 1.5.2, which should be
released in a day or two. Here is an update to a current git snapshot
if anyone wants to give it a try. I've already built and run the test
suite on all three arches but more testing never hurts.
The port itself is once again patches sbcl to run the contrib module
tests during 'regress' and not 'build'. This in combination with
upstream improvements should allow the threads flavor to be built by
default again, and now on macppc too.
Additionally, the non-threading options enabled by "./make.sh --fancy"
are now always enabled, namely core compression.
The only downside is that the base makeinfo will no longer build the
texinfo docs, so pull in print/texinfo instead.
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/sbcl/Makefile,v
retrieving revision 1.40
diff -u -u -r1.40 Makefile
--- Makefile 21 Mar 2019 22:06:53 -0000 1.40
+++ Makefile 28 Apr 2019 14:09:52 -0000
@@ -1,13 +1,12 @@
-# $OpenBSD: Makefile,v 1.40 2019/03/21 22:06:53 sthen Exp $
+# $OpenBSD: Makefile,v 1.37 2018/04/27 16:25:12 solene Exp $
# not yet ported to other arches
ONLY_FOR_ARCHS = amd64 i386 powerpc
USE_WXNEEDED = Yes
-REVISION = 0
COMMENT= compiler and runtime system for ANSI Common Lisp
-V = 1.4.8
+V = 1.5.1.401-ec954a7a7
DISTNAME= sbcl-${V}-source
PKGNAME= sbcl-${V}
WRKDIST= ${WRKDIR}/sbcl-${V}
@@ -15,28 +14,31 @@
CATEGORIES= lang
HOMEPAGE= http://www.sbcl.org/
-MAINTAINER = Joshua Elsasser <[email protected]>
+MAINTAINER = Joshua Elsasser <[email protected]>
# Public domain and BSD
PERMIT_PACKAGE_CDROM= Yes
-MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sbcl/}
+#MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sbcl/}
+MASTER_SITES= http://www.elsasser.org/openbsd/distfiles/
-WANTLIB= c m util
+WANTLIB= c m util z
PSEUDO_FLAVORS= native_bootstrap
-# XXX threads flavor does not work reliably it won't even pass its self-test
-# on amd64 all the time
FLAVORS= threads
FLAVOR?=
-EXTRA_PARAMS=
+MAKE_PARAMS = --prefix=${PREFIX}
+
.if ${FLAVOR:Mthreads}
-ONLY_FOR_ARCHS = amd64
-EXTRA_PARAMS+= --with-sb-thread
+ONLY_FOR_ARCHS = amd64 powerpc
+MAKE_PARAMS += --with-sb-thread
WANTLIB+= pthread
.endif
+# enable features from --fancy other than :sb-thread
+MAKE_PARAMS += --with-sb-core-compression \
+ --with-sb-xref-for-internals
.if ${FLAVOR:Mnative_bootstrap}
BUILD_DEPENDS+= lang/sbcl
@@ -46,12 +48,17 @@
BUILD_DEPENDS += lang/clisp
BOOTSTRAP_CMD = ${LOCALBASE}/bin/clisp -q -norc
.endif
+MAKE_PARAMS += --xc-host="${BOOTSTRAP_CMD}" ${EXTRA_PARAMS}
TEST_DEPENDS = devel/gmp
+# base makeinfo chokes on sbcl texinfo files
+BUILD_DEPENDS += print/texinfo
+
USE_GMAKE= Yes
PORTHOME= ${TMPDIR}
MAKE_ENV= GNUMAKE=${GMAKE} INSTALL_ROOT=${PREFIX} \
- MAN_DIR=${PREFIX}/man INFO_DIR=${PREFIX}/info
+ MAN_DIR=${PREFIX}/man INFO_DIR=${PREFIX}/info \
+ MAKEINFO=${PREFIX}/bin/gmakeinfo
# Upstream asks that packagers append something like this to the
# version to distinguish official tarballs from third-party packages.
@@ -66,8 +73,8 @@
sed -i 's/^"\([0-9.]*\)"$$/"\1.${LOCAL_VERSION}"/' ${VERSION_FILE}
do-build:
- cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} /bin/sh make.sh \
- --prefix=${PREFIX} --xc-host="${BOOTSTRAP_CMD}" ${EXTRA_PARAMS}
+ cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} SBCL_CONTRIB_TARGET=all \
+ /bin/sh make.sh ${MAKE_PARAMS}
cd ${WRKSRC}/doc/manual && touch sbcl.texinfo && \
${SETENV} ${MAKE_ENV} ${GMAKE} asdf.info sbcl.info
@@ -78,6 +85,8 @@
chown -R 0:0 ${PREFIX}/lib/sbcl
do-test:
+ cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} DONT_CLEAN_SBCL_CONTRIB=1 \
+ /bin/sh make-target-contrib.sh
cd ${WRKSRC}/tests && ${SETENV} ${MAKE_ENV} /bin/sh run-tests.sh
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/lang/sbcl/distinfo,v
retrieving revision 1.16
diff -u -u -r1.16 distinfo
--- distinfo 24 Jun 2018 18:33:36 -0000 1.16
+++ distinfo 28 Apr 2019 14:09:52 -0000
@@ -1,2 +1,2 @@
-SHA256 (sbcl-1.4.8-source.tar.bz2) =
ziS2K4hIJiHCKKT9bIAjUDMLYmPhsbmEYO60qB1/szU=
-SIZE (sbcl-1.4.8-source.tar.bz2) = 6040563
+SHA256 (sbcl-1.5.1.401-ec954a7a7-source.tar.bz2) =
pkP1gFzvEAOt9WltWpW7oEzUrfNyZYnF75qezC4zE8U=
+SIZE (sbcl-1.5.1.401-ec954a7a7-source.tar.bz2) = 6175896
Index: patches/patch-contrib_asdf_Makefile
===================================================================
RCS file: patches/patch-contrib_asdf_Makefile
diff -N patches/patch-contrib_asdf_Makefile
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-contrib_asdf_Makefile 28 Apr 2019 14:09:52 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Add an 'all' target to match other contrib modules.
+
+Index: contrib/asdf/Makefile
+--- contrib/asdf/Makefile.orig
++++ contrib/asdf/Makefile
+@@ -4,7 +4,7 @@ UIOP_FASL=$(DEST)/uiop.fasl
+ FASL=$(UIOP_FASL) $(ASDF_FASL)
+ FROB_READTABLE='(setf (sb-ext:readtable-base-char-preference *readtable*)
:both)'
+
+-fasl:: $(UIOP_FASL) $(ASDF_FASL)
++fasl all:: $(UIOP_FASL) $(ASDF_FASL)
+ $(UIOP_FASL):: uiop.lisp ../../output/sbcl.core
+ mkdir -p $(DEST)
+ $(SBCL) --eval $(FROB_READTABLE) --eval '(compile-file
#p"SYS:CONTRIB;ASDF;UIOP.LISP" :print nil :output-file (parse-native-namestring
"$@"))' </dev/null
Index: patches/patch-make-target-contrib_sh
===================================================================
RCS file: patches/patch-make-target-contrib_sh
diff -N patches/patch-make-target-contrib_sh
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-make-target-contrib_sh 28 Apr 2019 14:09:52 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+Allow contribs to be build without running tests.
+
+Index: make-target-contrib.sh
+--- make-target-contrib.sh.orig
++++ make-target-contrib.sh
+@@ -84,7 +84,7 @@ for i in $contribs_to_build; do
+ test -f obj/asdf-cache/$i/test-passed.test-report && rm
obj/asdf-cache/$i/test-passed.test-report
+ mkdir -p obj/asdf-cache/$i/
+ # hack to get exit codes right.
+- if $GNUMAKE -C contrib/$i test < /dev/null 2>&1 && touch
obj/asdf-cache/$i/test-passed.test-report ; then
++ if $GNUMAKE -C contrib/$i ${SBCL_CONTRIB_TARGET:-test} < /dev/null 2>&1
&& touch obj/asdf-cache/$i/test-passed.test-report ; then
+ :
+ else
+ exit $?
Index: patches/patch-src_runtime_Config_generic-openbsd
===================================================================
RCS file:
/cvs/ports/lang/sbcl/patches/patch-src_runtime_Config_generic-openbsd,v
retrieving revision 1.3
diff -u -u -r1.3 patch-src_runtime_Config_generic-openbsd
--- patches/patch-src_runtime_Config_generic-openbsd 8 Mar 2018 15:17:39
-0000 1.3
+++ patches/patch-src_runtime_Config_generic-openbsd 28 Apr 2019 14:09:52
-0000
@@ -1,23 +1,11 @@
$OpenBSD: patch-src_runtime_Config_generic-openbsd,v 1.3 2018/03/08 15:17:39
sthen Exp $
-clang-5.0.0 doesn't pass -export-dynamic to the linker, instead it
-passes a bogus -e export-dynamic to ld(1). Just use -Wl,--export-dynamic.
-
Don't try to guess (wrong) with clang. Just assume we have pie
Index: src/runtime/Config.generic-openbsd
--- src/runtime/Config.generic-openbsd.orig
+++ src/runtime/Config.generic-openbsd
-@@ -9,7 +9,7 @@
- # provided with absolutely no warranty. See the COPYING and CREDITS
- # files for more information.
-
--LINKFLAGS += -export-dynamic -Wl,-z,wxneeded
-+LINKFLAGS += -Wl,--export-dynamic -Wl,-z,wxneeded
- OS_LIBS += -lutil
-
- ifdef LISP_FEATURE_SB_THREAD
-@@ -17,9 +17,7 @@ CFLAGS += -pthread
+@@ -17,9 +17,7 @@ CFLAGS += -pthread -DOS_THREAD_STACK
OS_LIBS += -pthread
endif
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/lang/sbcl/pkg/PLIST,v
retrieving revision 1.11
diff -u -u -r1.11 PLIST
--- pkg/PLIST 8 Mar 2018 15:17:39 -0000 1.11
+++ pkg/PLIST 28 Apr 2019 14:09:52 -0000
@@ -9,6 +9,8 @@
lib/sbcl/contrib/sb-aclrepl.fasl
lib/sbcl/contrib/sb-bsd-sockets.asd
lib/sbcl/contrib/sb-bsd-sockets.fasl
+lib/sbcl/contrib/sb-capstone.asd
+lib/sbcl/contrib/sb-capstone.fasl
lib/sbcl/contrib/sb-cltl2.asd
lib/sbcl/contrib/sb-cltl2.fasl
lib/sbcl/contrib/sb-concurrency.asd
@@ -48,4 +50,3 @@
share/doc/sbcl/COPYING
share/doc/sbcl/CREDITS
share/doc/sbcl/NEWS
-share/doc/sbcl/html/