Here's a quick update to the new release, minimally tested as a lang/sbcl build host. The patch removes files, don't forget patch -E
diff -ruN --exclude .git /usr/ports/lang/ecl/Makefile ./Makefile --- /usr/ports/lang/ecl/Makefile Tue Feb 18 15:29:40 2020 +++ ./Makefile Mon May 18 09:44:49 2020 @@ -5,10 +5,9 @@ BROKEN-mips64 = ecl_min fails -V = 16.1.3 +V = 20.4.24 DISTNAME = ecl-$V -SHARED_LIBS += ecl 6.0 -REVISION = 3 +SHARED_LIBS += ecl 7.0 HOMEPAGE = https://common-lisp.net/project/ecl/ MAINTAINER = Timo Myyra <timo.my...@bittivirhe.fi> @@ -21,12 +20,14 @@ MASTER_SITES = ${HOMEPAGE}static/files/release/ +COMPILER = base-clang ports-gcc USE_GMAKE = Yes CONFIGURE_STYLE = gnu TEST_TARGET = check CONFIGURE_ENV += CPPFLAGS=-I${LOCALBASE}/include \ ECLLIB_VERSION=${LIBecl_VERSION} \ - ecldir=${LOCALBASE}/lib/ecl + ecldir=${LOCALBASE}/lib/ecl \ + MAKEINFO=${PREFIX}/bin/gmakeinfo CONFIGURE_ARGS += --enable-boehm=system \ --enable-libatomic=system \ @@ -38,6 +39,8 @@ CONFIGURE_ENV += ETAGS=/usr/bin/true WANTLIB += atomic_ops c ffi gc gmp m pthread + +BUILD_DEPENDS += print/texinfo LIB_DEPENDS += devel/gmp \ devel/boehm-gc,-main \ diff -ruN --exclude .git /usr/ports/lang/ecl/distinfo ./distinfo --- /usr/ports/lang/ecl/distinfo Mon May 15 13:40:18 2017 +++ ./distinfo Mon May 18 09:44:49 2020 @@ -1,2 +1,2 @@ -SHA256 (ecl-16.1.3.tgz) = dqWFxhbo+oOmtyCTJaMJ2lvAymjgZY85b0mVVjgRElQ= -SIZE (ecl-16.1.3.tgz) = 7459212 +SHA256 (ecl-20.4.24.tgz) = Zwg47fJYqTa1Iv22INozbefldaoNJ+NIQXJyUnJtDwc= +SIZE (ecl-20.4.24.tgz) = 7815444 diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_Makefile_in ./patches/patch-src_Makefile_in --- /usr/ports/lang/ecl/patches/patch-src_Makefile_in Mon May 15 13:40:18 2017 +++ ./patches/patch-src_Makefile_in Sun Mar 22 08:45:49 2020 @@ -1,7 +1,8 @@ $OpenBSD: patch-src_Makefile_in,v 1.6 2016/12/20 20:12:29 juanfra Exp $ ---- src/Makefile.in.orig Mon Dec 19 21:24:59 2016 -+++ src/Makefile.in Mon Dec 19 21:27:43 2016 -@@ -296,30 +296,15 @@ install: +Index: src/Makefile.in +--- src/Makefile.in.orig ++++ src/Makefile.in +@@ -212,30 +212,15 @@ install: for i in `(cd ecl && find . -name '*.h')`; do echo $$i; \ $(INSTALL_DATA) ecl/$$i $(DESTDIR)$(includedir)/ecl/$$i; \ done @@ -18,7 +19,7 @@ - $(INSTALL_LIBRARY) $$i $(DESTDIR)$(libdir); \ - fi \ - done -- if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" ]; then \ +- if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" -a "@SONAME@" != "@SONAME3@" ]; then \ - ( $(INSTALL_LIBRARY) @SONAME3@ $(DESTDIR)$(libdir) && \ - cd $(DESTDIR)$(libdir) && $(RM) -f @SONAME2@ @SONAME1@ @SONAME@ && \ - $(LN_S) @SONAME3@ @SONAME2@ && \ @@ -27,12 +28,12 @@ - fi + ${INSTALL_LIBRARY} libecl.so $(DESTDIR)$(libdir)/$(LSP_LIBRARIES) + cd $(DESTDIR)$(libdir) && ln -sf $(LSP_LIBRARIES) libecl.so - $(INSTALL_PROGRAM) $(DPP) $(DESTDIR)$(ecldir) + $(INSTALL_PROGRAM) c/$(DPP) $(DESTDIR)$(ecldir) $(INSTALL_PROGRAM) $(ECL_MIN) $(DESTDIR)$(ecldir) for i in `cat modules`; do \ case $$i in \ - *.fas) $(INSTALL_PROGRAM) $$i $(DESTDIR)$(ecldir);; \ -+ *.fas) $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir);; \ ++ *.fas) $(INSTALL_SCRIPT) $$i $(DESTDIR)$(ecldir);; \ *) $(INSTALL_DATA) $$i $(DESTDIR)$(ecldir);; \ esac \ done diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_c_ffi_d ./patches/patch-src_c_ffi_d --- /usr/ports/lang/ecl/patches/patch-src_c_ffi_d Tue Feb 18 15:29:40 2020 +++ ./patches/patch-src_c_ffi_d Wed Dec 31 16:00:00 1969 @@ -1,26 +0,0 @@ -$OpenBSD: patch-src_c_ffi_d,v 1.1 2020/02/12 19:42:02 jasper Exp $ - -libffi for x86_64 doesn't define FFI_SYSV anymore for FFI_UNIX64 should used instead -fixed upstream with https://gitlab.com/embeddable-common-lisp/ecl/commit/b2f09b4809441a92d6c11a2b39d5399580e56ae7 - -Index: src/c/ffi.d ---- src/c/ffi.d.orig -+++ src/c/ffi.d -@@ -132,10 +132,15 @@ static struct { - {@':stdcall', FFI_STDCALL}, - #elif defined(X86_WIN64) - {@':win64', FFI_WIN64}, --#elif defined(X86_ANY) || defined(X86) || defined(X86_64) -+#elif defined(X86_ANY) || defined(X86) -+#if defined(X86_64) -+ {@':cdecl', FFI_UNIX64}, -+ {@':sysv', FFI_UNIX64}, -+ {@':unix64', FFI_UNIX64}, -+#else - {@':cdecl', FFI_SYSV}, - {@':sysv', FFI_SYSV}, -- {@':unix64', FFI_UNIX64}, -+#endif - #endif - }; - diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_c_numbers_atan_d ./patches/patch-src_c_numbers_atan_d --- /usr/ports/lang/ecl/patches/patch-src_c_numbers_atan_d Wed Dec 28 11:38:56 2016 +++ ./patches/patch-src_c_numbers_atan_d Wed Dec 31 16:00:00 1969 @@ -1,69 +0,0 @@ -$OpenBSD: patch-src_c_numbers_atan_d,v 1.1 2016/12/28 19:38:56 juanfra Exp $ -backport commit 5199c6acd1694211a47dd558220d13fd82265ce0 to fix maxima tests. ---- src/c/numbers/atan.d.orig Mon Dec 19 12:25:00 2016 -+++ src/c/numbers/atan.d Wed Dec 28 09:12:06 2016 -@@ -22,21 +22,23 @@ - static double - ecl_atan2_double(double y, double x) - { -- if (signbit(x)) { -+ if (x == 0) { - if (signbit(y)) { -- return -ECL_PI_D + atan(-y / -x); -+ return -ECL_PI2_D; - } else if (y == 0) { -- return ECL_PI_D; -+ /* Signals floating-point-invalid-operation. If not trapped, -+ produces NaN. */ -+ return x / y; - } else { -- return ECL_PI_D - atan(y / -x); -+ return ECL_PI2_D; - } -- } else if (x == 0) { -+ } else if (signbit(x)) { - if (signbit(y)) { -- return -ECL_PI2_D; -+ return -ECL_PI_D + atan(-y / -x); - } else if (y == 0) { -- return x / y; /* Produces a NaN */ -+ return ECL_PI_D; - } else { -- return ECL_PI2_D; -+ return ECL_PI_D - atan(y / -x); - } - } else { - if (signbit(y)) { -@@ -53,21 +55,24 @@ ecl_atan2_double(double y, double x) - static long double - ecl_atan2_long_double(long double y, long double x) - { -- if (signbit(x)) { -+ if (x == 0) { - if (signbit(y)) { -- return -ECL_PI_L + atanl(-y / -x); -+ return -ECL_PI2_L; - } else if (y == 0) { -- return ECL_PI_L; -+ /* Signals floating-point-invalid-operation. If not trapped, -+ produces NaN. */ -+ return x / y; - } else { -- return ECL_PI_L - atanl(y / -x); -+ return ECL_PI2_L; - } -- } else if (x == 0) { -+ } -+ else if (signbit(x)) { - if (signbit(y)) { -- return -ECL_PI2_L; -+ return -ECL_PI_L + atanl(-y / -x); - } else if (y == 0) { -- return x / y; /* Produces a NaN */ -+ return ECL_PI_L; - } else { -- return ECL_PI2_L; -+ return ECL_PI_L - atanl(y / -x); - } - } else { - if (signbit(y)) { diff -ruN --exclude .git /usr/ports/lang/ecl/patches/patch-src_configure ./patches/patch-src_configure --- /usr/ports/lang/ecl/patches/patch-src_configure Mon May 15 13:40:18 2017 +++ ./patches/patch-src_configure Sun Mar 22 08:44:02 2020 @@ -1,7 +1,8 @@ $OpenBSD: patch-src_configure,v 1.8 2016/12/20 20:12:29 juanfra Exp $ ---- src/configure.orig Mon Dec 19 21:30:13 2016 -+++ src/configure Mon Dec 19 21:31:37 2016 -@@ -4971,7 +4971,7 @@ LSP_FEATURES="(cons :android ${LSP_FEATURES})" +Index: src/configure +--- src/configure.orig ++++ src/configure +@@ -5050,7 +5050,7 @@ LSP_FEATURES="(cons :android ${LSP_FEATURES})" BUNDLE_LDFLAGS="-shared ${LDFLAGS}" ECL_LDRPATH="-Wl,--rpath,~A" clibs="-lpthread ${clibs}" @@ -10,7 +11,7 @@ SONAME_LDFLAGS="-Wl,-soname,SONAME" ;; solaris*) -@@ -9509,7 +9509,7 @@ if test ${enable_shared} = "yes"; then +@@ -9682,7 +9682,7 @@ if test ${enable_shared} = "yes"; then $as_echo "#define ENABLE_DLOPEN 1" >>confdefs.h diff -ruN --exclude .git /usr/ports/lang/ecl/pkg/PLIST ./pkg/PLIST --- /usr/ports/lang/ecl/pkg/PLIST Mon May 15 13:40:18 2017 +++ ./pkg/PLIST Sun Mar 22 11:08:19 2020 @@ -13,6 +13,7 @@ include/ecl/ecl-cmp.h include/ecl/ecl-inl.h include/ecl/ecl.h +include/ecl/ecl_atomics.h include/ecl/external.h include/ecl/gc/ include/ecl/gc/private/ @@ -26,26 +27,26 @@ include/ecl/number.h include/ecl/object.h include/ecl/page.h +include/ecl/stack-resize.h include/ecl/stacks.h +info/ecl.info.gz lib/ecl/ lib/ecl/COPYING lib/ecl/LICENSE -lib/ecl/asdf.fas +@bin lib/ecl/asdf.fas lib/ecl/cmp.asd -lib/ecl/cmp.fas +@bin lib/ecl/cmp.fas lib/ecl/deflate.asd -lib/ecl/deflate.fas -lib/ecl/defsystem.asd -lib/ecl/defsystem.fas +@bin lib/ecl/deflate.fas @bin lib/ecl/dpp lib/ecl/ecl-cdb.asd -lib/ecl/ecl-cdb.fas +@bin lib/ecl/ecl-cdb.fas lib/ecl/ecl-curl.asd -lib/ecl/ecl-curl.fas +@bin lib/ecl/ecl-curl.fas lib/ecl/ecl-help.asd -lib/ecl/ecl-help.fas +@bin lib/ecl/ecl-help.fas lib/ecl/ecl-quicklisp.asd -lib/ecl/ecl-quicklisp.fas +@bin lib/ecl/ecl-quicklisp.fas @bin lib/ecl/ecl_min lib/ecl/encodings/ lib/ecl/encodings/arabic @@ -203,37 +204,30 @@ lib/ecl/encodings/windows-cp949.bin lib/ecl/encodings/windows-cp950.bin lib/ecl/help.doc -lib/ecl/libasdf.a -lib/ecl/libcmp.a -lib/ecl/libdeflate.a -lib/ecl/libdefsystem.a -lib/ecl/libecl-cdb.a -lib/ecl/libecl-curl.a -lib/ecl/libecl-help.a -lib/ecl/libecl-quicklisp.a -lib/ecl/libpackage-locks.a -lib/ecl/libprofile.a -lib/ecl/libql-minitar.a -lib/ecl/librt.a -lib/ecl/libsb-bsd-sockets.a -lib/ecl/libserve-event.a -lib/ecl/libsockets.a +@static-lib lib/ecl/libasdf.a +@static-lib lib/ecl/libcmp.a +@static-lib lib/ecl/libdeflate.a +@static-lib lib/ecl/libecl-cdb.a +@static-lib lib/ecl/libecl-curl.a +@static-lib lib/ecl/libecl-help.a +@static-lib lib/ecl/libecl-quicklisp.a +@static-lib lib/ecl/libpackage-locks.a +@static-lib lib/ecl/libql-minitar.a +@static-lib lib/ecl/libsb-bsd-sockets.a +@static-lib lib/ecl/libserve-event.a +@static-lib lib/ecl/libsockets.a lib/ecl/package-locks.asd -lib/ecl/package-locks.fas +@bin lib/ecl/package-locks.fas lib/ecl/prebuilt-asdf.asd -lib/ecl/profile.asd -lib/ecl/profile.fas lib/ecl/ql-minitar.asd -lib/ecl/ql-minitar.fas -lib/ecl/rt.asd -lib/ecl/rt.fas +@bin lib/ecl/ql-minitar.fas lib/ecl/sb-bsd-sockets.asd -lib/ecl/sb-bsd-sockets.fas +@bin lib/ecl/sb-bsd-sockets.fas lib/ecl/serve-event.asd -lib/ecl/serve-event.fas +@bin lib/ecl/serve-event.fas lib/ecl/sockets.asd -lib/ecl/sockets.fas -lib/libecl.so +@bin lib/ecl/sockets.fas +@so lib/libecl.so @lib lib/libecl.so.${LIBecl_VERSION} @man man/man1/ecl-config.1 @man man/man1/ecl.1