Hi, The following diff backports a commit (https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4) to fix a compiler bug.
This bug is on the way to update lang/sbcl to more recent version (I tested compiling sbcl-2.3.6 with ecl on amd64). While here, some smalls changes: - V isn't present in PLIST, no need to add it to SUBST_VARS - the licence is wrong: it is LGPLv2 or later - use --enable-gmp=system instead of --with-system-gmp to unify the way system libraries are configured Comments or OK ? -- Sebastien Marie diff /home/semarie/repos/openbsd/ports commit - d5e6a0c0580dc3232cdef998743855ad7ea2aaa7 path + /home/semarie/repos/openbsd/ports blob - a2867ce45cd5dfb740d810a62664d2b1f2cc5c8a file + lang/ecl/Makefile --- lang/ecl/Makefile +++ lang/ecl/Makefile @@ -5,13 +5,14 @@ HOMEPAGE = https://common-lisp.net/project/ecl/ DISTNAME = ecl-$V SHARED_LIBS += ecl 8.0 +REVISION = 0 + HOMEPAGE = https://common-lisp.net/project/ecl/ MAINTAINER = Timo Myyra <[email protected]> -SUBST_VARS = V EXTRACT_SUFX = .tgz -# GPLv2 or later +# LGPLv2 or later PERMIT_PACKAGE = Yes MASTER_SITES = ${HOMEPAGE}static/files/release/ @@ -27,7 +28,7 @@ CONFIGURE_ARGS += --enable-boehm=system \ CONFIGURE_ARGS += --enable-boehm=system \ --enable-libatomic=system \ - --with-system-gmp \ + --enable-gmp=system \ --with-gmp-prefix=${LOCALBASE} # etags gets picked up if it's installed, and dumps core while blob - /dev/null file + lang/ecl/patches/patch-src_cmp_cmpc-wt_lsp (mode 640) --- /dev/null +++ lang/ecl/patches/patch-src_cmp_cmpc-wt_lsp @@ -0,0 +1,25 @@ +backport https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4 + +Index: src/cmp/cmpc-wt.lsp +--- src/cmp/cmpc-wt.lsp.orig ++++ src/cmp/cmpc-wt.lsp +@@ -19,18 +19,7 @@ + (defun wt1 (form) + (cond ((not (floatp form)) + (typecase form +- (INTEGER +- (princ form *compiler-output1*) +- (princ +- (cond ((typep form (rep-type->lisp-type :int)) "") +- ((typep form (rep-type->lisp-type :unsigned-int)) "U") +- ((typep form (rep-type->lisp-type :long)) "L") +- ((typep form (rep-type->lisp-type :unsigned-long)) "UL") +- ((typep form (rep-type->lisp-type :long-long)) "LL") +- ((typep form (rep-type->lisp-type :unsigned-long-long)) "ULL") +- (t (baboon :format-control "wt1: The number ~A doesn't fit any integer type." form))) +- *compiler-output1*)) +- ((or STRING CHARACTER) ++ ((or INTEGER STRING CHARACTER) + (princ form *compiler-output1*)) + (VAR (wt-var form)) + (t (wt-loc form)))) blob - /dev/null file + lang/ecl/patches/patch-src_cmp_cmploc_lsp (mode 640) --- /dev/null +++ lang/ecl/patches/patch-src_cmp_cmploc_lsp @@ -0,0 +1,36 @@ +backport https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4 + +Index: src/cmp/cmploc.lsp +--- src/cmp/cmploc.lsp.orig ++++ src/cmp/cmploc.lsp +@@ -181,10 +181,30 @@ + (defun wt-temp (temp) + (wt "T" temp)) + ++(defun wt-fixnum (value &optional vv) ++ (declare (ignore vv)) ++ (princ value *compiler-output1*) ++ ;; Specify explicit type suffix as a workaround for MSVC. C99 ++ ;; standard compliant compilers don't need type suffixes and choose ++ ;; the correct type themselves. Note that we cannot savely use ++ ;; anything smaller than a long long here, because we might perform ++ ;; some other computation on the integer constant which could ++ ;; overflow if we use a smaller integer type (overflows in long long ++ ;; computations are taken care of by the compiler before we get to ++ ;; this point). ++ #+msvc (princ (cond ((typep value (rep-type->lisp-type :long-long)) "LL") ++ ((typep value (rep-type->lisp-type :unsigned-long-long)) "ULL") ++ (t (baboon :format-control ++ "wt-fixnum: The number ~A doesn't fit any integer type." ++ value))) ++ *compiler-output1*)) ++ + (defun wt-number (value &optional vv) ++ (declare (ignore vv)) + (wt value)) + + (defun wt-character (value &optional vv) ++ (declare (ignore vv)) + ;; We do not use the '...' format because this creates objects of type + ;; 'char' which have sign problems + (wt value)) blob - /dev/null file + lang/ecl/patches/patch-src_cmp_cmptables_lsp (mode 640) --- /dev/null +++ lang/ecl/patches/patch-src_cmp_cmptables_lsp @@ -0,0 +1,14 @@ +backport https://gitlab.com/embeddable-common-lisp/ecl/-/commit/f3d4cf4b66ab6c3cd8629ab6d0c7f7c50d7fd8a4 + +Index: src/cmp/cmptables.lsp +--- src/cmp/cmptables.lsp.orig ++++ src/cmp/cmptables.lsp +@@ -182,7 +182,7 @@ + + (temp . wt-temp) + (lcl . wt-lcl-loc) +- (fixnum-value . wt-number) ++ (fixnum-value . wt-fixnum) + (long-float-value . wt-number) + (double-float-value . wt-number) + (single-float-value . wt-number)
