mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-05-04 20:06:43 +02:00
testing/sbcl: upgrade to 2.0.3
aarch64 support should be feasible on release 2.0.4, an issue with frlock was addressed here 899d5f2da8/, which should address the only standing issue prevent compilation on that architecture.
This commit is contained in:
parent
27acf85c37
commit
1bb702fb70
@ -1,66 +1,47 @@
|
||||
#2020/01/30 Patch has not yet been accepted upstream
|
||||
From 46e1d8be04a87e6a2cb1c8be14beb99fe3702133 Mon Sep 17 00:00:00 2001
|
||||
From be70a77e2b06e2442b38093adbe84b15ea065c8f Mon Sep 17 00:00:00 2001
|
||||
From: Eric Timmons <etimmons@mit.edu>
|
||||
Date: Sun, 2 Dec 2018 14:02:33 -0500
|
||||
Subject: [PATCH 1/4] Fix sb-bsd-sockets on musl libc
|
||||
Date: Sat, 1 Feb 2020 15:38:19 -0500
|
||||
Subject: [PATCH 1/5] Make sb-bsd-sockets robust to the absence of NETDB_*
|
||||
|
||||
Musl libc does not define NETDB_INTERNAL or NETDB_SUCCESS. Add a build time test
|
||||
to determine if these are defined. If they are defined, add the feature
|
||||
:os-provides-netdb-internal. If this feature is missing, sb-bsd-sockets defaults
|
||||
NETDB-INTERNAL to -1 and NETDB-SUCCESS to 0.
|
||||
NETDB_INTERNAL and NETDB_SUCCESS are not defined by all libc
|
||||
implementations (see: musl libc). If groveling fails for these values, set them
|
||||
to NIL which effectively disables the corresponding Lisp conditions from being
|
||||
signaled.
|
||||
---
|
||||
contrib/sb-bsd-sockets/constants.lisp | 4 ++--
|
||||
tools-for-build/grovel-features.sh | 2 ++
|
||||
tools-for-build/os-provides-netdb-internal-test.c | 12 ++++++++++++
|
||||
3 files changed, 16 insertions(+), 2 deletions(-)
|
||||
create mode 100644 tools-for-build/os-provides-netdb-internal-test.c
|
||||
contrib/sb-bsd-sockets/name-service.lisp | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/contrib/sb-bsd-sockets/constants.lisp b/contrib/sb-bsd-sockets/constants.lisp
|
||||
index 88f5bb7c4..23fd87277 100644
|
||||
--- a/contrib/sb-bsd-sockets/constants.lisp
|
||||
+++ b/contrib/sb-bsd-sockets/constants.lisp
|
||||
@@ -93,8 +93,8 @@
|
||||
(:integer EAFNOSUPPORT "EAFNOSUPPORT")
|
||||
(:integer EINPROGRESS "EINPROGRESS")
|
||||
diff --git a/contrib/sb-bsd-sockets/name-service.lisp b/contrib/sb-bsd-sockets/name-service.lisp
|
||||
index 34c7262ea..97b505a5e 100644
|
||||
--- a/contrib/sb-bsd-sockets/name-service.lisp
|
||||
+++ b/contrib/sb-bsd-sockets/name-service.lisp
|
||||
@@ -1,5 +1,16 @@
|
||||
(in-package :sb-bsd-sockets)
|
||||
|
||||
- (:integer NETDB-INTERNAL #+hpux "h_NETDB_INTERNAL" #-hpux "NETDB_INTERNAL" "See errno.")
|
||||
- (:integer NETDB-SUCCESS #+hpux "h_NETDB_SUCCESS" #-hpux "NETDB_SUCCESS" "No problem.")
|
||||
+ (:integer-no-check NETDB-INTERNAL #-os-provides-netdb-internal "-1" #+(and os-provides-netdb-internal hpux) "h_NETDB_INTERNAL" #+(and os-provides-netdb-internal (not hpux)) "NETDB_INTERNAL" "See errno.")
|
||||
+ (:integer-no-check NETDB-SUCCESS #-os-provides-netdb-internal "0" #+(and os-provides-netdb-internal hpux) "h_NETDB_SUCCESS" #+(and os-provides-netdb-internal (not hpux)) "NETDB_SUCCESS" "No problem.")
|
||||
(:integer HOST-NOT-FOUND "HOST_NOT_FOUND" "Authoritative Answer Host not found.")
|
||||
(:integer TRY-AGAIN "TRY_AGAIN" "Non-Authoritative Host not found, or SERVERFAIL.")
|
||||
(:integer NO-RECOVERY "NO_RECOVERY" "Non recoverable errors, FORMERR, REFUSED, NOTIMP.")
|
||||
diff --git a/tools-for-build/grovel-features.sh b/tools-for-build/grovel-features.sh
|
||||
index 8f0ee7ffa..4790c0f11 100644
|
||||
--- a/tools-for-build/grovel-features.sh
|
||||
+++ b/tools-for-build/grovel-features.sh
|
||||
@@ -33,6 +33,8 @@ featurep os-provides-getprotoby-r
|
||||
|
||||
featurep os-provides-poll
|
||||
|
||||
+featurep os-provides-netdb-internal
|
||||
+;; If we're unable to grovel for NETDB_INTERNAL and NETDB_SUCCESS (not every
|
||||
+;; libc sets them), set their constants to NIL. This effectively makes their
|
||||
+;; respective conditions unreachable.
|
||||
+#-win32
|
||||
+(eval-when (:compile-toplevel :load-toplevel :execute)
|
||||
+ (unless (constantp 'sockint::netdb-internal)
|
||||
+ (defconstant sockint::netdb-internal nil "See errno."))
|
||||
+ (unless (constantp 'sockint::netdb-success)
|
||||
+ (defconstant sockint::netdb-success nil "No problem.")))
|
||||
+
|
||||
if [ $sbcl_arch == arm ] ; then
|
||||
featurep arm-softfp
|
||||
fi
|
||||
diff --git a/tools-for-build/os-provides-netdb-internal-test.c b/tools-for-build/os-provides-netdb-internal-test.c
|
||||
new file mode 100644
|
||||
index 000000000..cab08cc41
|
||||
--- /dev/null
|
||||
+++ b/tools-for-build/os-provides-netdb-internal-test.c
|
||||
@@ -0,0 +1,12 @@
|
||||
+#include <netdb.h>
|
||||
+
|
||||
+int main ()
|
||||
+{
|
||||
+#if defined NETDB_INTERNAL && defined NETDB_SUCCESS
|
||||
+ return 104;
|
||||
+#elif defined h_NETDB_INTERNAL && defined h_NETDB_SUCCESS
|
||||
+ return 104;
|
||||
+#else
|
||||
+ return 0;
|
||||
+#endif
|
||||
+}
|
||||
(defclass host-ent ()
|
||||
((name :initarg :name :reader host-ent-name
|
||||
:documentation "The name of the host")
|
||||
@@ -195,7 +206,7 @@ (defun name-service-error (where &optional errno)
|
||||
(let ((*name-service-errno* (get-name-service-errno errno)))
|
||||
;; Comment next to NETDB_INTERNAL in netdb.h says "See errno.".
|
||||
;; This special case treatment hasn't actually been tested yet.
|
||||
- (if (and #-win32 (= *name-service-errno* sockint::NETDB-INTERNAL))
|
||||
+ (if (and #-win32 sockint::netdb-internal #-win32 (= *name-service-errno* sockint::NETDB-INTERNAL))
|
||||
(socket-error where)
|
||||
(let ((condition
|
||||
(condition-for-name-service-errno *name-service-errno*)))
|
||||
--
|
||||
2.24.1
|
||||
2.25.0
|
||||
|
||||
|
||||
@ -1,32 +1,30 @@
|
||||
#2020/01/30 Patch has not yet been accepted upstream
|
||||
From c81b8fe3e63b7267ac8f6aeea86811acd888e8e9 Mon Sep 17 00:00:00 2001
|
||||
From 51ee0c90068ef7d88a23d86579cc1f73c2f6055f Mon Sep 17 00:00:00 2001
|
||||
From: Eric Timmons <etimmons@mit.edu>
|
||||
Date: Sun, 2 Dec 2018 14:10:23 -0500
|
||||
Subject: [PATCH 2/4] Fix threads on musl libc
|
||||
Date: Sat, 1 Feb 2020 17:33:38 -0500
|
||||
Subject: [PATCH 2/5] Do not require _CS_GNU_LIBPTHREAD_VERSION at runtime
|
||||
start
|
||||
|
||||
Musl libc does not add any content to _CS_GNU_LIBPTHREAD_VERSION, causing the
|
||||
runtime check to make sure the thread implementation is NPTL to fail. There
|
||||
seems to be no way to test not NPTL at run time on musl, so if the configuration
|
||||
value is empty, just assume the thread implementation is good enough.
|
||||
If there is no content in confstr for _CS_GNU_LIBPTHREAD_VERSION (i.e., on a
|
||||
non GNU libc) then assume the thread implementation is good enough and let the
|
||||
user deal with any fallout.
|
||||
---
|
||||
src/runtime/linux-os.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
src/runtime/linux-os.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/runtime/linux-os.c b/src/runtime/linux-os.c
|
||||
index 89244e793..e98c68cc4 100644
|
||||
index 89244e793..0ff55653d 100644
|
||||
--- a/src/runtime/linux-os.c
|
||||
+++ b/src/runtime/linux-os.c
|
||||
@@ -186,8 +186,15 @@ isnptl (void)
|
||||
@@ -186,8 +186,13 @@ isnptl (void)
|
||||
if (strstr (buf, "NPTL")) {
|
||||
return 1;
|
||||
}
|
||||
+ else {
|
||||
+ return 0;
|
||||
+ }
|
||||
+ return 0;
|
||||
+ }
|
||||
+ else {
|
||||
+ /* If the configuration variable is empty, just assume we have a
|
||||
+ * good enough thread implementation. */
|
||||
+ /* This libc does not expose the libpthread version. Just assume we have
|
||||
+ * a good enough thread implementation. */
|
||||
+ return 1;
|
||||
}
|
||||
- return 0;
|
||||
@ -34,5 +32,5 @@ index 89244e793..e98c68cc4 100644
|
||||
#endif
|
||||
|
||||
--
|
||||
2.24.1
|
||||
2.25.0
|
||||
|
||||
|
||||
@ -1,28 +1,74 @@
|
||||
#2020/01/30 Patch has not yet been accepted upstream
|
||||
From 30403cfef2327e1df92b5e29201ee1ddf54a8dfd Mon Sep 17 00:00:00 2001
|
||||
From 87b1eca2b719fb5e2d6f10352dcdb86f4d389ca9 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Timmons <etimmons@mit.edu>
|
||||
Date: Sun, 2 Dec 2018 14:20:24 -0500
|
||||
Subject: [PATCH 3/4] Fix foreign tests on musl libc
|
||||
Date: Sat, 1 Feb 2020 17:33:59 -0500
|
||||
Subject: [PATCH 3/5] Teach foreign.test.sh about noop dlclose implementations
|
||||
|
||||
Musl libc's implementation of dlclose(3) is (intentionally) a noop (see:
|
||||
https://wiki.musl-libc.org/functional-differences-from-glibc.html). Add a build
|
||||
time test for this and a new feature :os-dlclose-is-noop. Additionally, use this
|
||||
feature to skip some regression tests if it is present.
|
||||
https://wiki.musl-libc.org/functional-differences-from-glibc.html). When
|
||||
running regression tests, test if dlclose is a noop and if so, skip all tests
|
||||
that depend on objects being unmapped.
|
||||
---
|
||||
tests/foreign.test.sh | 42 +++++++++++--------
|
||||
tools-for-build/Makefile | 3 ++
|
||||
tools-for-build/grovel-features.sh | 7 ++++
|
||||
.../os-dlclose-is-noop-test-helper.c | 1 +
|
||||
tools-for-build/os-dlclose-is-noop-test.c | 19 +++++++++
|
||||
5 files changed, 55 insertions(+), 17 deletions(-)
|
||||
create mode 100644 tools-for-build/os-dlclose-is-noop-test-helper.c
|
||||
create mode 100644 tools-for-build/os-dlclose-is-noop-test.c
|
||||
src/code/foreign-load.lisp | 2 +-
|
||||
tests/foreign.test.sh | 67 ++++++++++++++++++++++++++++----------
|
||||
2 files changed, 51 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/src/code/foreign-load.lisp b/src/code/foreign-load.lisp
|
||||
index ada107c36..4510f2ccf 100644
|
||||
--- a/src/code/foreign-load.lisp
|
||||
+++ b/src/code/foreign-load.lisp
|
||||
@@ -48,7 +48,7 @@ (defun load-shared-object (pathname &key dont-save)
|
||||
definitions; if a symbol was previously referenced through the object and
|
||||
is not present in the reloaded version an error will be signalled. Reloading
|
||||
may not work as expected if user or library-code has called dlopen(3) on the
|
||||
-same shared object.
|
||||
+same shared object or running on a system where dlclose(3) is a noop.
|
||||
|
||||
LOAD-SHARED-OBJECT interacts with SB-EXT:SAVE-LISP-AND-DIE:
|
||||
|
||||
diff --git a/tests/foreign.test.sh b/tests/foreign.test.sh
|
||||
index fabba1246..5574b1ef7 100755
|
||||
index fabba1246..53131bdd2 100755
|
||||
--- a/tests/foreign.test.sh
|
||||
+++ b/tests/foreign.test.sh
|
||||
@@ -250,16 +250,20 @@ cat > $TEST_FILESTEM.test.lisp <<EOF
|
||||
@@ -140,6 +140,28 @@ echo 'int late_foo = 43;' > $TEST_FILESTEM-c.c
|
||||
echo 'int late_bar() { return 14; }' >> $TEST_FILESTEM-c.c
|
||||
build_so $TEST_FILESTEM-c
|
||||
|
||||
+cat > $TEST_FILESTEM-noop-dlclose-test.c <<EOF
|
||||
+#include <dlfcn.h>
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+int dlclose_is_noop () {
|
||||
+ void * handle = dlopen("./$TEST_FILESTEM-noop-dlclose-test-helper.so", RTLD_NOW | RTLD_GLOBAL);
|
||||
+ dlclose(handle);
|
||||
+
|
||||
+ handle = dlopen("./$TEST_FILESTEM-noop-dlclose-test-helper.so", RTLD_NOW | RTLD_NOLOAD);
|
||||
+ if (handle != NULL) {
|
||||
+ return 1;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+EOF
|
||||
+build_so $TEST_FILESTEM-noop-dlclose-test
|
||||
+
|
||||
+cat > $TEST_FILESTEM-noop-dlclose-test-helper.c <<EOF
|
||||
+int sbcl_dlclose_test = 42;
|
||||
+EOF
|
||||
+build_so $TEST_FILESTEM-noop-dlclose-test-helper
|
||||
+
|
||||
## Foreign definitions & load
|
||||
|
||||
cat > $TEST_FILESTEM.base.lisp <<EOF
|
||||
@@ -246,20 +268,28 @@ cat > $TEST_FILESTEM.test.lisp <<EOF
|
||||
|
||||
(note "/initial assertions ok")
|
||||
|
||||
+ ;; determine if dlclose is a noop.
|
||||
+ (load-shared-object (truename "$TEST_FILESTEM-noop-dlclose-test.so"))
|
||||
+ (define-alien-routine dlclose-is-noop int)
|
||||
+ (defparameter *dlclose-noop-p* (plusp (dlclose-is-noop)))
|
||||
+
|
||||
;; test reloading object file with new definitions
|
||||
(assert (= 13 foo))
|
||||
(assert (= 42 (bar)))
|
||||
(note "/original definitions ok")
|
||||
@ -36,24 +82,23 @@ index fabba1246..5574b1ef7 100755
|
||||
- (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b2.so")
|
||||
- (rename-file "$TEST_FILESTEM-b.bak" "$TEST_FILESTEM-b.so")
|
||||
- (note "/renamed back to originals")
|
||||
+ #+os-dlclose-is-noop
|
||||
+ (note "/skipping reloading tests")
|
||||
+ #-os-dlclose-is-noop
|
||||
+ (progn
|
||||
+ (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b.bak")
|
||||
+ (rename-file "$TEST_FILESTEM-b2.so" "$TEST_FILESTEM-b.so")
|
||||
+ (load-shared-object (truename "$TEST_FILESTEM-b.so"))
|
||||
+ (note "/reloading ok")
|
||||
+ (assert (= 42 foo))
|
||||
+ (assert (= 13 (bar)))
|
||||
+ (note "/redefined versions ok")
|
||||
+ (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b2.so")
|
||||
+ (rename-file "$TEST_FILESTEM-b.bak" "$TEST_FILESTEM-b.so")
|
||||
+ (note "/renamed back to originals"))
|
||||
+ (if *dlclose-noop-p*
|
||||
+ (note "/skipping reloading tests")
|
||||
+ (progn
|
||||
+ (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b.bak")
|
||||
+ (rename-file "$TEST_FILESTEM-b2.so" "$TEST_FILESTEM-b.so")
|
||||
+ (load-shared-object (truename "$TEST_FILESTEM-b.so"))
|
||||
+ (note "/reloading ok")
|
||||
+ (assert (= 42 foo))
|
||||
+ (assert (= 13 (bar)))
|
||||
+ (note "/redefined versions ok")
|
||||
+ (rename-file "$TEST_FILESTEM-b.so" "$TEST_FILESTEM-b2.so")
|
||||
+ (rename-file "$TEST_FILESTEM-b.bak" "$TEST_FILESTEM-b.so")
|
||||
+ (note "/renamed back to originals")))
|
||||
|
||||
;; test late resolution
|
||||
#+linkage-table
|
||||
@@ -276,13 +280,17 @@ cat > $TEST_FILESTEM.test.lisp <<EOF
|
||||
@@ -276,13 +306,16 @@ cat > $TEST_FILESTEM.test.lisp <<EOF
|
||||
(load-shared-object (truename "$TEST_FILESTEM-c.so"))
|
||||
(assert (= 43 late-foo))
|
||||
(assert (= 14 (late-bar)))
|
||||
@ -64,81 +109,19 @@ index fabba1246..5574b1ef7 100755
|
||||
- (multiple-value-bind (val err) (ignore-errors (late-bar))
|
||||
- (assert (not val))
|
||||
- (assert (typep err 'undefined-alien-error)))
|
||||
+ #+os-dlclose-is-noop
|
||||
+ (note "/skipping unloading tests")
|
||||
+ #-os-dlclose-is-noop
|
||||
+ (progn
|
||||
+ (unload-shared-object (truename "$TEST_FILESTEM-c.so"))
|
||||
+ (multiple-value-bind (val err) (ignore-errors late-foo)
|
||||
+ (assert (not val))
|
||||
+ (assert (typep err 'undefined-alien-error)))
|
||||
+ (multiple-value-bind (val err) (ignore-errors (late-bar))
|
||||
+ (assert (not val))
|
||||
+ (assert (typep err 'undefined-alien-error))))
|
||||
+ (if *dlclose-noop-p*
|
||||
+ (note "/skipping linkage table unloading tests")
|
||||
+ (progn
|
||||
+ (unload-shared-object (truename "$TEST_FILESTEM-c.so"))
|
||||
+ (multiple-value-bind (val err) (ignore-errors late-foo)
|
||||
+ (assert (not val))
|
||||
+ (assert (typep err 'undefined-alien-error)))
|
||||
+ (multiple-value-bind (val err) (ignore-errors (late-bar))
|
||||
+ (assert (not val))
|
||||
+ (assert (typep err 'undefined-alien-error)))))
|
||||
(note "/linkage table ok"))
|
||||
|
||||
(sb-ext:exit :code $EXIT_LISP_WIN) ; success convention for Lisp program
|
||||
diff --git a/tools-for-build/Makefile b/tools-for-build/Makefile
|
||||
index 1be91e9df..434e03081 100644
|
||||
--- a/tools-for-build/Makefile
|
||||
+++ b/tools-for-build/Makefile
|
||||
@@ -16,6 +16,9 @@ LDLIBS:=$(OS_LIBS)
|
||||
|
||||
all: grovel-headers determine-endianness where-is-mcontext mmap-rwx
|
||||
|
||||
+os-dlclose-is-noop-test-helper.so: os-dlclose-is-noop-test-helper.c
|
||||
+ @$(CC) $(LDFLAGS) -shared $< -o $@ $(LOADLIBES) $(LDLIBS)
|
||||
+
|
||||
clean:
|
||||
rm -f *.o grovel-headers determine-endianness where-is-mcontext mmap-rwx
|
||||
rm -f *.exe
|
||||
diff --git a/tools-for-build/grovel-features.sh b/tools-for-build/grovel-features.sh
|
||||
index 4790c0f11..7d8e547b4 100644
|
||||
--- a/tools-for-build/grovel-features.sh
|
||||
+++ b/tools-for-build/grovel-features.sh
|
||||
@@ -38,3 +38,10 @@ featurep os-provides-netdb-internal
|
||||
if [ $sbcl_arch == arm ] ; then
|
||||
featurep arm-softfp
|
||||
fi
|
||||
+
|
||||
+# We need a helper shared library to test os-dlclose-is-noop
|
||||
+$GNUMAKE os-dlclose-is-noop-test-helper.so > /dev/null 2>&1
|
||||
+
|
||||
+featurep os-dlclose-is-noop
|
||||
+
|
||||
+rm -f os-dlclose-is-noop-test-helper.so
|
||||
diff --git a/tools-for-build/os-dlclose-is-noop-test-helper.c b/tools-for-build/os-dlclose-is-noop-test-helper.c
|
||||
new file mode 100644
|
||||
index 000000000..4be7a8e5b
|
||||
--- /dev/null
|
||||
+++ b/tools-for-build/os-dlclose-is-noop-test-helper.c
|
||||
@@ -0,0 +1 @@
|
||||
+int sbcl_dl_close_test = 42;
|
||||
diff --git a/tools-for-build/os-dlclose-is-noop-test.c b/tools-for-build/os-dlclose-is-noop-test.c
|
||||
new file mode 100644
|
||||
index 000000000..3678870d5
|
||||
--- /dev/null
|
||||
+++ b/tools-for-build/os-dlclose-is-noop-test.c
|
||||
@@ -0,0 +1,19 @@
|
||||
+/* test to build and run so that we know if we have a noop dlclose
|
||||
+ */
|
||||
+
|
||||
+#include <dlfcn.h>
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+int main ()
|
||||
+{
|
||||
+ void * handle = dlopen("./os-dlclose-is-noop-test-helper.so", RTLD_NOW | RTLD_GLOBAL);
|
||||
+ dlclose(handle);
|
||||
+
|
||||
+ handle = dlopen("./os-dlclose-is-noop-test-helper.so", RTLD_NOW | RTLD_NOLOAD);
|
||||
+
|
||||
+ if (handle != NULL) {
|
||||
+ return 104;
|
||||
+ } else {
|
||||
+ return 0;
|
||||
+ }
|
||||
+}
|
||||
--
|
||||
2.24.1
|
||||
2.25.0
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
#2020/01/30 Patch has not yet been accepted upstream
|
||||
From 8324ebd0b476dc267f4e315253d799701b04cc0f Mon Sep 17 00:00:00 2001
|
||||
From 5d7395cbd4eb952d4a988c4ee7ee3f5111a9f5a7 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Timmons <etimmons@mit.edu>
|
||||
Date: Sun, 24 Feb 2019 17:28:49 -0500
|
||||
Subject: [PATCH 4/4] Only include old memcpy version on glibc
|
||||
Date: Sat, 1 Feb 2020 17:34:10 -0500
|
||||
Subject: [PATCH 4/5] Only include old memcpy version on glibc
|
||||
|
||||
---
|
||||
src/runtime/memcpy.h | 2 ++
|
||||
@ -23,5 +23,5 @@ index a99c5fb7e..e3d104e3a 100644
|
||||
#endif
|
||||
+#endif
|
||||
--
|
||||
2.24.1
|
||||
2.25.0
|
||||
|
||||
|
||||
@ -3,11 +3,11 @@
|
||||
# Contributor: Will Sinatra <wpsinatra@gmail.com>
|
||||
# Maintainer: Will Sinatra <wpsinatra@gmail.com>
|
||||
pkgname=sbcl
|
||||
pkgver=2.0.1
|
||||
pkgrel=1
|
||||
pkgver=2.0.3
|
||||
pkgrel=0
|
||||
pkgdesc="Steel Bank Common Lisp"
|
||||
url="http://www.sbcl.org/"
|
||||
arch="x86_64 armv7" #aarch64 is WIP
|
||||
arch="x86_64 armv7" #aarch64 support inbound on 2.0.4
|
||||
license="custom"
|
||||
options="!check"
|
||||
checkdepends="ed"
|
||||
@ -18,36 +18,15 @@ source="$pkgname-$pkgver.tar.bz2::https://prdownloads.sourceforge.net/sbcl/sbcl-
|
||||
0002-Fix-threads-on-musl-libc.patch
|
||||
0003-Fix-foreign-tests-on-musl-libc.patch
|
||||
0004-Only-include-old-memcpy-version-on-glibc.patch
|
||||
Disable-fcntl.1-POSIX-test.patch
|
||||
Fix-ARM-build-using-ECL-host.patch
|
||||
march-armv5-removed.patch"
|
||||
|
||||
prepare() {
|
||||
#TODO: handle this properly
|
||||
|
||||
#Patches to build on musl libc, required universally, pending upstream
|
||||
patch -p1 -i "$srcdir"/0001-Fix-sb-bsd-sockets-on-musl-libc.patch
|
||||
patch -p1 -i "$srcdir"/0002-Fix-threads-on-musl-libc.patch
|
||||
patch -p1 -i "$srcdir"/0003-Fix-foreign-tests-on-musl-libc.patch
|
||||
patch -p1 -i "$srcdir"/0004-Only-include-old-memcpy-version-on-glibc.patch
|
||||
|
||||
#Arch specific patches required by platform
|
||||
case "$CARCH" in
|
||||
armv7)
|
||||
patch -p1 -i "$srcdir"/Disable-fcntl.1-POSIX-test.patch
|
||||
patch -p1 -i "$srcdir"/Fix-ARM-build-using-ECL-host.patch
|
||||
patch -p1 -i "$srcdir"/march-armv5-removed.patch ;;
|
||||
aarch64)
|
||||
patch -p1 -i "$srcdir"/Fix-ARM-build-using-ECL-host.patch ;;
|
||||
esac
|
||||
}
|
||||
|
||||
build() {
|
||||
all_arch_conf='--with-sb-test --with-sb-unicode --with-sb-core-compression'
|
||||
|
||||
case "$CARCH" in
|
||||
armv7) conf="$all_arch_conf" ;;
|
||||
aarch64) conf="--prefix=/usr" ;;
|
||||
aarch64) ;;
|
||||
*) conf="$all_arch_conf --with-sb-thread" ;;
|
||||
esac
|
||||
|
||||
@ -69,11 +48,10 @@ package() {
|
||||
"$pkgdir"/usr/share/info 2>/dev/null || true
|
||||
}
|
||||
|
||||
sha512sums="1d92589033e123c21377f820dbc22e27f2610a372c5545799bec7c247795ba4b8b65102c7fe739f4a15a84579ec72f63fb9f4b197db5c6da1f8d59bd35966bea sbcl-2.0.1.tar.bz2
|
||||
76ccb2206f0a9abd3f74859c9db3d8622e7006a62f867f6cf2398ce16256800a880111f5ea3911a315f6f82eb4b2b77dbeeb73f609ec065421b11978fd6fe18f 0001-Fix-sb-bsd-sockets-on-musl-libc.patch
|
||||
4caa863e5e44170b4ca8f9a3199886303e02821edbc0c7866ac1013681cfaeb76153856a28bff632f2f396d39ee05ac0e427393716209db8e3f0bc640f4816ec 0002-Fix-threads-on-musl-libc.patch
|
||||
7686f3110c1b6920790257d6b938b701afb4ea1710e0057c74f19f107affa0cfaaf2519215df9f9d5b6f326ee9feb1d935ffb8152390560f22e3188db9759065 0003-Fix-foreign-tests-on-musl-libc.patch
|
||||
02452684bccc200c0117252019679b0cf0403a90e5fb97f0981cb658888e73e7792efc47ae82f01cdaec128b1b3e356b0878fdb07cf04d7c5fdd0b2afd97186f 0004-Only-include-old-memcpy-version-on-glibc.patch
|
||||
cffecafd3f902d5f2be05fde3c0c5d0e0b0b8bb57d9561296ea9e630490c9a02c79ec616ca9c41de8d8be204e9e019df14e5d621adaa3dc444853f2cb5a6101c Disable-fcntl.1-POSIX-test.patch
|
||||
sha512sums="c29c115fff0e118e5c05959dd8d73ae876458daeb5ddde67ce485b10e6d1583b1f8a9597b54b45606696ab1b1eea5392dcb09357c83fce31323f2a5a154f2dd1 sbcl-2.0.3.tar.bz2
|
||||
0f5b3cac8fed2bac1bfa25f4116ef62e7226994318aff26a69bae6e29a7952e16fe930f14bba2a41b0e50c4cc3e30ce2a36dd8d0b85e6090d455ec6712f3a10a 0001-Fix-sb-bsd-sockets-on-musl-libc.patch
|
||||
36bbe64437763f7963dab7af3bcc26ab92ee10d6b12532be40706ce01a5fe29878d8ef9392037be8f09b357a6527e992d1698ea4cd1048050544b2e653edd5fa 0002-Fix-threads-on-musl-libc.patch
|
||||
9a1b20c07a1f43ea60d1bd0f4de2474c38441858a7de7351f046943d022c21803bd5d9eb05b5c684519a76dc623d9893af1967c3a26177e7447e05e30e61b18b 0003-Fix-foreign-tests-on-musl-libc.patch
|
||||
7c7d7b982814435463a7678ff59ab354426bcee62a3b7ba253d8da1391e68c614cd4d90970fbbfd68ea0927c2689b6c16f01b0e0185489329700ce21aaa5a92c 0004-Only-include-old-memcpy-version-on-glibc.patch
|
||||
6f49d1f1c6bd4e8d839e6b4ab3bb74cbdcce85ee83a0f1c5efab04d97b613a624f8874dadd7f6d981940ff28c468f00b74a56ff2afc53f41884d753ac7a5028f Fix-ARM-build-using-ECL-host.patch
|
||||
367454a75de122134fdbf1064182a96ee00cf0685db0922134fdbdfc0e0bb2c6a5cfb9878f23409eca48a443e0f19b291f8d380e3475176a4c8cea0c9768c2bd march-armv5-removed.patch"
|
||||
|
||||
@ -1,51 +0,0 @@
|
||||
#2020/01/30 Patch has not yet been accepted upstream
|
||||
From ffb221ca00fc501dc45afd50b73dbb756bc2c365 Mon Sep 17 00:00:00 2001
|
||||
From: Eric Timmons <etimmons@mit.edu>
|
||||
Date: Wed, 11 Dec 2019 09:11:17 -0800
|
||||
Subject: [PATCH] Disable fcntl.1 POSIX test
|
||||
|
||||
Seems to not work as expected on ARM with musl libc
|
||||
---
|
||||
contrib/sb-posix/posix-tests.lisp | 26 +++++++++++++-------------
|
||||
1 file changed, 13 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/contrib/sb-posix/posix-tests.lisp b/contrib/sb-posix/posix-tests.lisp
|
||||
index b194aa455..3a72b8fc7 100644
|
||||
--- a/contrib/sb-posix/posix-tests.lisp
|
||||
+++ b/contrib/sb-posix/posix-tests.lisp
|
||||
@@ -432,19 +432,19 @@ (deftest open.error.1
|
||||
#+win32
|
||||
#.sb-posix:eacces)
|
||||
|
||||
-#-(or (and (or x86-64 arm64 ppc64 alpha) (or linux sunos)) win32)
|
||||
-(deftest fcntl.1
|
||||
- (let ((fd (sb-posix:open "/dev/null" sb-posix::o-nonblock)))
|
||||
- (= (sb-posix:fcntl fd sb-posix::f-getfl) sb-posix::o-nonblock))
|
||||
- t)
|
||||
-;; On AMD64/Linux O_LARGEFILE is always set, even though the whole
|
||||
-;; flag makes no sense.
|
||||
-#+(and (or x86-64 arm64 ppc64 alpha) (or linux sunos))
|
||||
-(deftest fcntl.1
|
||||
- (let ((fd (sb-posix:open "/dev/null" sb-posix::o-nonblock)))
|
||||
- (/= 0 (logand (sb-posix:fcntl fd sb-posix::f-getfl)
|
||||
- sb-posix::o-nonblock)))
|
||||
- t)
|
||||
+;; #-(or (and (or x86-64 arm64 ppc64 alpha) (or linux sunos)) win32)
|
||||
+;; (deftest fcntl.1
|
||||
+;; (let ((fd (sb-posix:open "/dev/null" sb-posix::o-nonblock)))
|
||||
+;; (= (sb-posix:fcntl fd sb-posix::f-getfl) sb-posix::o-nonblock))
|
||||
+;; t)
|
||||
+;; ;; On AMD64/Linux O_LARGEFILE is always set, even though the whole
|
||||
+;; ;; flag makes no sense.
|
||||
+;; #+(and (or x86-64 arm64 ppc64 alpha) (or linux sunos))
|
||||
+;; (deftest fcntl.1
|
||||
+;; (let ((fd (sb-posix:open "/dev/null" sb-posix::o-nonblock)))
|
||||
+;; (/= 0 (logand (sb-posix:fcntl fd sb-posix::f-getfl)
|
||||
+;; sb-posix::o-nonblock)))
|
||||
+;; t)
|
||||
|
||||
#-(or hpux win32 netbsd) ; fix: cant handle c-vargs
|
||||
(deftest fcntl.flock.1
|
||||
--
|
||||
2.24.0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user