View | Details | Raw Unified | Return to bug 247283 | Differences between
and this patch

Collapse All | Expand All

(-)b/lang/ecl/Makefile (-3 / +3 lines)
Lines 2-9 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	ecl
4
PORTNAME=	ecl
5
PORTVERSION=	16.1.3
5
PORTVERSION=	20.4.24
6
PORTREVISION=	2
7
CATEGORIES=	lang lisp
6
CATEGORIES=	lang lisp
8
MASTER_SITES=	https://common-lisp.net/project/ecl/static/files/release/
7
MASTER_SITES=	https://common-lisp.net/project/ecl/static/files/release/
9
8
Lines 21-27 LIB_DEPENDS= libgmp.so:math/gmp \ Link Here
21
		libgc.so:devel/boehm-gc
20
		libgc.so:devel/boehm-gc
22
21
23
MAKE_JOBS_UNSAFE=	yes
22
MAKE_JOBS_UNSAFE=	yes
24
USES=		autoreconf gmake localbase perl5 tar:tgz
23
USES=		autoreconf gmake localbase perl5 tar:tgz makeinfo
25
USE_PERL5=	build
24
USE_PERL5=	build
26
GNU_CONFIGURE=	yes
25
GNU_CONFIGURE=	yes
27
AUTORECONF_WRKSRC=	${WRKSRC}/src
26
AUTORECONF_WRKSRC=	${WRKSRC}/src
Lines 30-35 CONFIGURE_ARGS= --with-system-gmp \ Link Here
30
		--enable-boehm=system \
29
		--enable-boehm=system \
31
		--enable-libatomic=system
30
		--enable-libatomic=system
32
USE_LDCONFIG=	yes
31
USE_LDCONFIG=	yes
32
INFO=		ecl
33
33
34
OPTIONS_DEFINE=	ASDF DFFI SAGE SOCKETS THREADS X11
34
OPTIONS_DEFINE=	ASDF DFFI SAGE SOCKETS THREADS X11
35
OPTIONS_DEFAULT=ASDF DFFI SAGE SOCKETS THREADS
35
OPTIONS_DEFAULT=ASDF DFFI SAGE SOCKETS THREADS
(-)b/lang/ecl/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1565942436
1
TIMESTAMP = 1592221665
2
SHA256 (ecl-16.1.3.tgz) = 76a585c616e8fa83a6b7209325a309da5bc0ca68e0658f396f49955638111254
2
SHA256 (ecl-20.4.24.tgz) = 670838edf258a936b522fdb620da336de7e575aa0d27e34841727252726d0f07
3
SIZE (ecl-16.1.3.tgz) = 7459212
3
SIZE (ecl-20.4.24.tgz) = 7815444
(-)b/lang/ecl/files/extra-patch-src_Makefile.in (-5 / +3 lines)
Lines 1-8 Link Here
1
Patch from SageMath
1
--- src/Makefile.in.orig	2020-04-24 10:54:52 UTC
2
3
--- src/Makefile.in.orig	2016-12-19 10:25:00 UTC
4
+++ src/Makefile.in
2
+++ src/Makefile.in
5
@@ -304,10 +304,14 @@ install:
3
@@ -220,10 +220,14 @@ install:
6
 	  if test -s $$i ; then \
4
 	  if test -s $$i ; then \
7
 	   if echo $$i | grep dll; then \
5
 	   if echo $$i | grep dll; then \
8
 	    $(INSTALL_LIBRARY) $$i $(DESTDIR)$(bindir); \
6
 	    $(INSTALL_LIBRARY) $$i $(DESTDIR)$(bindir); \
Lines 16-21 Patch from SageMath Link Here
16
+	if [ "x@IMPLIB_NAME@" != "x" -a -f "@IMPLIB_NAME@" ]; then \
14
+	if [ "x@IMPLIB_NAME@" != "x" -a -f "@IMPLIB_NAME@" ]; then \
17
+	  $(INSTALL_LIBRARY) @IMPLIB_NAME@ $(DESTDIR)$(libdir); \
15
+	  $(INSTALL_LIBRARY) @IMPLIB_NAME@ $(DESTDIR)$(libdir); \
18
+	fi
16
+	fi
19
 	if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" ]; then \
17
 	if [ "x@SONAME3@" != "x" -a -f "@SONAME3@" -a "@SONAME@" != "@SONAME3@" ]; then \
20
 	  ( $(INSTALL_LIBRARY) @SONAME3@ $(DESTDIR)$(libdir) && \
18
 	  ( $(INSTALL_LIBRARY) @SONAME3@ $(DESTDIR)$(libdir) && \
21
 	    cd $(DESTDIR)$(libdir) && $(RM) -f @SONAME2@ @SONAME1@ @SONAME@ && \
19
 	    cd $(DESTDIR)$(libdir) && $(RM) -f @SONAME2@ @SONAME1@ @SONAME@ && \
(-)b/lang/ecl/files/extra-patch-src_aclocal.m4 (-11 / +11 lines)
Lines 1-6 Link Here
1
--- src/aclocal.m4.orig	2016-12-19 10:25:00 UTC
1
--- src/aclocal.m4.orig	2020-04-24 10:54:52 UTC
2
+++ src/aclocal.m4
2
+++ src/aclocal.m4
3
@@ -231,6 +231,8 @@ AC_SUBST(LIBPREFIX)dnl	Name components of a statically
3
@@ -246,6 +246,8 @@ AC_SUBST(LIBPREFIX)dnl	Name components of a statically
4
 AC_SUBST(LIBEXT)
4
 AC_SUBST(LIBEXT)
5
 AC_SUBST(SHAREDEXT)dnl	Name components of a dynamically linked library
5
 AC_SUBST(SHAREDEXT)dnl	Name components of a dynamically linked library
6
 AC_SUBST(SHAREDPREFIX)
6
 AC_SUBST(SHAREDPREFIX)
Lines 9-15 Link Here
9
 AC_SUBST(OBJEXT)dnl	These are set by autoconf
9
 AC_SUBST(OBJEXT)dnl	These are set by autoconf
10
 AC_SUBST(EXEEXT)
10
 AC_SUBST(EXEEXT)
11
 AC_SUBST(INSTALL_TARGET)dnl Which type of installation: flat directory or unix like.
11
 AC_SUBST(INSTALL_TARGET)dnl Which type of installation: flat directory or unix like.
12
@@ -240,6 +242,8 @@ ECL_GC_DIR=bdwgc
12
@@ -257,6 +259,8 @@ ECL_GC_DIR=bdwgc
13
 ECL_LDRPATH=''
13
 ECL_LDRPATH=''
14
 SHAREDEXT='so'
14
 SHAREDEXT='so'
15
 SHAREDPREFIX='lib'
15
 SHAREDPREFIX='lib'
Lines 18-33 Link Here
18
 LIBPREFIX='lib'
18
 LIBPREFIX='lib'
19
 LIBEXT='a'
19
 LIBEXT='a'
20
 PICFLAG='-fPIC'
20
 PICFLAG='-fPIC'
21
@@ -251,6 +255,8 @@ THREAD_OBJ="$THREAD_OBJ c/threads/process c/threads/qu
21
@@ -268,6 +272,8 @@ THREAD_OBJ="$THREAD_OBJ threads/process threads/queue 
22
 clibs='-lm'
22
 clibs='-lm'
23
 SONAME=''
23
 SONAME=''
24
 SONAME_LDFLAGS=''
24
 SONAME_LDFLAGS=''
25
+IMPLIB_NAME=''
25
+IMPLIB_NAME=''
26
+IMPLIB_LDFLAGS=''
26
+IMPLIB_LDFLAGS=''
27
 case "${host_os}" in
27
 case "${host_os}" in
28
         linux-androideabi)
28
         linux-android*)
29
                 thehost='android'
29
                 thehost='android'
30
@@ -366,10 +372,14 @@ case "${host_os}" in
30
@@ -385,10 +391,14 @@ case "${host_os}" in
31
                 shared='yes'
31
                 shared='yes'
32
                 THREAD_CFLAGS='-D_THREAD_SAFE'
32
                 THREAD_CFLAGS='-D_THREAD_SAFE'
33
                 THREAD_LIBS='-lpthread'
33
                 THREAD_LIBS='-lpthread'
Lines 45-58 Link Here
45
                 PICFLAG=''
45
                 PICFLAG=''
46
                 if test "x$host_cpu" = "xx86_64" ; then
46
                 if test "x$host_cpu" = "xx86_64" ; then
47
                    # Our GMP library is too old and does not support
47
                    # Our GMP library is too old and does not support
48
@@ -387,10 +397,14 @@ case "${host_os}" in
48
@@ -405,10 +415,14 @@ case "${host_os}" in
49
                 enable_threads='yes'
49
                 enable_threads='yes'
50
                 THREAD_CFLAGS='-D_THREAD_SAFE'
50
                 THREAD_CFLAGS='-D_THREAD_SAFE'
51
                 THREAD_GC_FLAGS='--enable-threads=win32'
51
                 THREAD_GC_FLAGS='--enable-threads=win32'
52
-                SHARED_LDFLAGS=''
52
-                SHARED_LDFLAGS="-Wl,--stack,${ECL_DEFAULT_C_STACK_SIZE}"
53
-                BUNDLE_LDFLAGS=''
53
-                BUNDLE_LDFLAGS="-Wl,--stack,${ECL_DEFAULT_C_STACK_SIZE}"
54
+                SHARED_LDFLAGS="-shared -Wl,--enable-auto-image-base ${LDFLAGS}"
54
+                SHARED_LDFLAGS="-shared -Wl,--stack,${ECL_DEFAULT_C_STACK_SIZE} -Wl,--enable-auto-image-base ${LDFLAGS}"
55
+                BUNDLE_LDFLAGS="-shared -Wl,--enable-auto-image-base ${LDFLAGS}"
55
+                BUNDLE_LDFLAGS="-shared -Wl,--stack,${ECL_DEFAULT_C_STACK_SIZE} -Wl,--enable-auto-image-base ${LDFLAGS}"
56
                 SHAREDPREFIX=''
56
                 SHAREDPREFIX=''
57
                 SHAREDEXT='dll'
57
                 SHAREDEXT='dll'
58
+                IMPLIB_PREFIX='lib'
58
+                IMPLIB_PREFIX='lib'
(-)a/lang/ecl/files/extra-patch-src_lsp_format.lsp (-78 lines)
Removed Link Here
1
--- src/lsp/format.lsp.orig	2016-12-19 10:25:00 UTC
2
+++ src/lsp/format.lsp
3
@@ -308,11 +308,14 @@
4
                   :start (format-directive-start struct)
5
                   :end (format-directive-end struct))))
6
 
7
+;; Patch borrowed from SageMath
8
+(defconstant +format-directive-limit+ (1+ (char-code #\~)))
9
+
10
 #+formatter
11
 (defparameter *format-directive-expanders*
12
-  (make-array char-code-limit :initial-element nil))
13
+  (make-array +format-directive-limit+ :initial-element nil))
14
 (defparameter *format-directive-interpreters*
15
-  (make-array char-code-limit :initial-element nil))
16
+  (make-array +format-directive-limit+ :initial-element nil))
17
 
18
 (defparameter *default-format-error-control-string* nil)
19
 (defparameter *default-format-error-offset* nil)
20
@@ -545,24 +548,24 @@
21
            (write-string directive stream)
22
            (interpret-directive-list stream (cdr directives) orig-args args))
23
           (#-ecl format-directive #+ecl vector
24
+           (multiple-value-bind
25
+                 (new-directives new-args)
26
+               (let* ((code (char-code (format-directive-character directive)))
27
+                      (function
28
+                        (and (< code +format-directive-limit+)
29
+                             (svref *format-directive-interpreters* code)))
30
+                      (*default-format-error-offset*
31
+                        (1- (format-directive-end directive))))
32
+                 (unless function
33
+                   (error 'format-error
34
+                          :complaint "Unknown format directive."))
35
                  (multiple-value-bind
36
                        (new-directives new-args)
37
-                     (let ((function
38
-                            (svref *format-directive-interpreters*
39
-                                   (char-code (format-directive-character
40
-                                               directive))))
41
-                           (*default-format-error-offset*
42
-                            (1- (format-directive-end directive))))
43
-                       (unless function
44
-                         (error 'format-error
45
-                                :complaint "Unknown format directive."))
46
-                       (multiple-value-bind
47
-                             (new-directives new-args)
48
-                           (funcall function stream directive
49
-                                    (cdr directives) orig-args args)
50
-                         (values new-directives new-args)))
51
-                   (interpret-directive-list stream new-directives
52
-                                             orig-args new-args)))))
53
+                     (funcall function stream directive
54
+                              (cdr directives) orig-args args)
55
+                   (values new-directives new-args)))
56
+             (interpret-directive-list stream new-directives
57
+                                       orig-args new-args)))))
58
       args))
59
 
60
 
61
@@ -634,11 +637,12 @@
62
        (values `(write-string ,directive stream)
63
                more-directives))
64
       (format-directive
65
-       (let ((expander
66
-              (aref *format-directive-expanders*
67
-                    (char-code (format-directive-character directive))))
68
-             (*default-format-error-offset*
69
-              (1- (format-directive-end directive))))
70
+       (let* ((code (char-code (format-directive-character directive)))
71
+              (expander
72
+                (and (< code +format-directive-limit+)
73
+                     (svref *format-directive-expanders* code)))
74
+              (*default-format-error-offset*
75
+                (1- (format-directive-end directive))))
76
          (if expander
77
              (funcall expander directive more-directives)
78
              (error 'format-error
(-)b/lang/ecl/files/patch-75877dd.c (+47 lines)
Added Link Here
1
From 75877dd8f0d534552284ba4380ba65baa74f028f Mon Sep 17 00:00:00 2001
2
From: Marius Gerbershagen
3
Date: Sun, 28 Jun 2020 11:02:15 +0200
4
Subject: [PATCH] fpe: fix ECL_WITH_LISP_FPE macro
5
6
We can't use ecl_process_env_unsafe() == NULL to check if ECL has
7
booted because the return value of ecl_process_env_unsafe is
8
unpredictable before ECL has booted. The reason is that
9
ecl_process_env_unsafe calls pthread_getspecific with an uninitialized
10
key stored in cl_env_key. But another call to pthread_setspecific
11
might have already registered a key which happens to be the same as
12
the not yet initialized cl_env_key, yielding a non-NULL value.
13
---
14
 src/h/impl/math_fenv.h | 17 ++++++++---------
15
 1 file changed, 8 insertions(+), 9 deletions(-)
16
17
diff --git a/src/h/impl/math_fenv.h b/src/h/impl/math_fenv.h
18
index 0a93c8e0a..9630f4c6c 100644
19
--- src/h/impl/math_fenv.h
20
+++ src/h/impl/math_fenv.h
21
@@ -72,15 +72,14 @@
22
 
23
 #if defined(HAVE_FENV_H) && !defined(ECL_AVOID_FPE_H)
24
 # if defined(HAVE_FEENABLEEXCEPT)
25
-#  define ECL_WITH_LISP_FPE_BEGIN do {                   \
26
-        fenv_t __fenv;                                   \
27
-        fegetenv(&__fenv);                               \
28
-        cl_env_ptr __the_env = ecl_process_env_unsafe(); \
29
-        if (__the_env) {                                 \
30
-                int bits = __the_env->trap_fpe_bits;     \
31
-                fedisableexcept(FE_ALL_EXCEPT & ~bits);  \
32
-                feenableexcept(FE_ALL_EXCEPT & bits);    \
33
-        }                                                \
34
+#  define ECL_WITH_LISP_FPE_BEGIN do {                       \
35
+        fenv_t __fenv;                                       \
36
+        fegetenv(&__fenv);                                   \
37
+        if (ecl_get_option(ECL_OPT_BOOTED) > 0) {            \
38
+                int bits = ecl_process_env()->trap_fpe_bits; \
39
+                fedisableexcept(FE_ALL_EXCEPT & ~bits);      \
40
+                feenableexcept(FE_ALL_EXCEPT & bits);        \
41
+        }                                                    \
42
         feclearexcept(FE_ALL_EXCEPT);
43
 # else
44
 #  define ECL_WITH_LISP_FPE_BEGIN do {                   \
45
-- 
46
GitLab
47
(-)b/lang/ecl/pkg-plist (-11 / +4 lines)
Lines 8-13 include/ecl/configpre-int.h Link Here
8
include/ecl/configpre.h
8
include/ecl/configpre.h
9
include/ecl/cons.h
9
include/ecl/cons.h
10
include/ecl/cs.h
10
include/ecl/cs.h
11
include/ecl/ecl_atomics.h
11
include/ecl/ecl-cmp.h
12
include/ecl/ecl-cmp.h
12
include/ecl/ecl-inl.h
13
include/ecl/ecl-inl.h
13
include/ecl/ecl.h
14
include/ecl/ecl.h
Lines 21-26 include/ecl/legacy.h Link Here
21
include/ecl/number.h
22
include/ecl/number.h
22
include/ecl/object.h
23
include/ecl/object.h
23
include/ecl/page.h
24
include/ecl/page.h
25
include/ecl/stack-resize.h
24
include/ecl/stacks.h
26
include/ecl/stacks.h
25
lib/ecl
27
lib/ecl
26
lib/ecl-%%VERSION%%/COPYING
28
lib/ecl-%%VERSION%%/COPYING
Lines 32-39 lib/ecl-%%VERSION%%/cmp.asd Link Here
32
lib/ecl-%%VERSION%%/cmp.fas
34
lib/ecl-%%VERSION%%/cmp.fas
33
%%SOCKETS%%lib/ecl-%%VERSION%%/deflate.asd
35
%%SOCKETS%%lib/ecl-%%VERSION%%/deflate.asd
34
%%SOCKETS%%lib/ecl-%%VERSION%%/deflate.fas
36
%%SOCKETS%%lib/ecl-%%VERSION%%/deflate.fas
35
lib/ecl-%%VERSION%%/defsystem.asd
36
lib/ecl-%%VERSION%%/defsystem.fas
37
lib/ecl-%%VERSION%%/dpp
37
lib/ecl-%%VERSION%%/dpp
38
lib/ecl-%%VERSION%%/ecl-cdb.asd
38
lib/ecl-%%VERSION%%/ecl-cdb.asd
39
lib/ecl-%%VERSION%%/ecl-cdb.fas
39
lib/ecl-%%VERSION%%/ecl-cdb.fas
Lines 202-228 lib/ecl-%%VERSION%%/help.doc Link Here
202
%%ASDF%%lib/ecl-%%VERSION%%/libasdf.a
202
%%ASDF%%lib/ecl-%%VERSION%%/libasdf.a
203
lib/ecl-%%VERSION%%/libcmp.a
203
lib/ecl-%%VERSION%%/libcmp.a
204
%%SOCKETS%%lib/ecl-%%VERSION%%/libdeflate.a
204
%%SOCKETS%%lib/ecl-%%VERSION%%/libdeflate.a
205
lib/ecl-%%VERSION%%/libdefsystem.a
206
lib/ecl-%%VERSION%%/libecl-cdb.a
205
lib/ecl-%%VERSION%%/libecl-cdb.a
207
%%SOCKETS%%lib/ecl-%%VERSION%%/libecl-curl.a
206
%%SOCKETS%%lib/ecl-%%VERSION%%/libecl-curl.a
208
lib/ecl-%%VERSION%%/libecl-help.a
207
lib/ecl-%%VERSION%%/libecl-help.a
209
%%SOCKETS%%lib/ecl-%%VERSION%%/libecl-quicklisp.a
208
%%SOCKETS%%lib/ecl-%%VERSION%%/libecl-quicklisp.a
210
lib/ecl-%%VERSION%%/libpackage-locks.a
209
lib/ecl-%%VERSION%%/libpackage-locks.a
211
lib/ecl-%%VERSION%%/libprofile.a
212
%%SOCKETS%%lib/ecl-%%VERSION%%/libql-minitar.a
210
%%SOCKETS%%lib/ecl-%%VERSION%%/libql-minitar.a
213
lib/ecl-%%VERSION%%/librt.a
214
%%SOCKETS%%lib/ecl-%%VERSION%%/libsb-bsd-sockets.a
211
%%SOCKETS%%lib/ecl-%%VERSION%%/libsb-bsd-sockets.a
215
lib/ecl-%%VERSION%%/libserve-event.a
212
lib/ecl-%%VERSION%%/libserve-event.a
216
lib/ecl-%%VERSION%%/package-locks.asd
213
lib/ecl-%%VERSION%%/package-locks.asd
217
lib/ecl-%%VERSION%%/package-locks.fas
214
lib/ecl-%%VERSION%%/package-locks.fas
218
%%ASDF%%lib/ecl-%%VERSION%%/prebuilt-asdf.asd
215
%%ASDF%%lib/ecl-%%VERSION%%/prebuilt-asdf.asd
219
%%SOCKETS%%lib/ecl-%%VERSION%%/libsockets.a
216
%%SOCKETS%%lib/ecl-%%VERSION%%/libsockets.a
220
lib/ecl-%%VERSION%%/profile.asd
221
lib/ecl-%%VERSION%%/profile.fas
222
%%SOCKETS%%lib/ecl-%%VERSION%%/ql-minitar.asd
217
%%SOCKETS%%lib/ecl-%%VERSION%%/ql-minitar.asd
223
%%SOCKETS%%lib/ecl-%%VERSION%%/ql-minitar.fas
218
%%SOCKETS%%lib/ecl-%%VERSION%%/ql-minitar.fas
224
lib/ecl-%%VERSION%%/rt.asd
225
lib/ecl-%%VERSION%%/rt.fas
226
%%SOCKETS%%lib/ecl-%%VERSION%%/sb-bsd-sockets.asd
219
%%SOCKETS%%lib/ecl-%%VERSION%%/sb-bsd-sockets.asd
227
%%SOCKETS%%lib/ecl-%%VERSION%%/sb-bsd-sockets.fas
220
%%SOCKETS%%lib/ecl-%%VERSION%%/sb-bsd-sockets.fas
228
lib/ecl-%%VERSION%%/serve-event.asd
221
lib/ecl-%%VERSION%%/serve-event.asd
Lines 230-238 lib/ecl-%%VERSION%%/serve-event.fas Link Here
230
%%SOCKETS%%lib/ecl-%%VERSION%%/sockets.asd
223
%%SOCKETS%%lib/ecl-%%VERSION%%/sockets.asd
231
%%SOCKETS%%lib/ecl-%%VERSION%%/sockets.fas
224
%%SOCKETS%%lib/ecl-%%VERSION%%/sockets.fas
232
lib/libecl.so
225
lib/libecl.so
233
lib/libecl.so.16
234
lib/libecl.so.16.1
235
lib/libecl.so.%%VERSION%%
226
lib/libecl.so.%%VERSION%%
227
lib/libecl.so.20
228
lib/libecl.so.20.4
236
man/man1/ecl-config.1.gz
229
man/man1/ecl-config.1.gz
237
man/man1/ecl.1.gz
230
man/man1/ecl.1.gz
238
@dir include/ecl/gc
231
@dir include/ecl/gc

Return to bug 247283