summaryrefslogtreecommitdiff
path: root/dev-lisp/sbcl/files
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa+gentoo@gmail.com>2022-12-16 02:20:42 -0500
committerJohn Turner <jturner.usa+gentoo@gmail.com>2022-12-16 02:20:42 -0500
commit0b0f8d737e9522d8c2c805f09e0658bfd54e662f (patch)
tree396aa219d8bd5313537a173b0e8ee3ea203710e0 /dev-lisp/sbcl/files
parent93a3596e451d5446fd924dd66fe5f71b441d0145 (diff)
downloadebuilds-0b0f8d737e9522d8c2c805f09e0658bfd54e662f.tar.gz
dev-lisp/sbcl: (wip) bootstrap with ecls or already installed sbcl
Added a system-bootstrap flag that allows building SBCL from source with either ecl or an existing install of sbcl.
Diffstat (limited to 'dev-lisp/sbcl/files')
-rw-r--r--dev-lisp/sbcl/files/bsd-sockets-test-2.0.5.patch385
-rw-r--r--dev-lisp/sbcl/files/concurrency-test-2.0.1.patch12
-rw-r--r--dev-lisp/sbcl/files/etags-2.1.0.patch10
-rw-r--r--dev-lisp/sbcl/files/sb-posix-test-2.2.9.patch30
-rw-r--r--dev-lisp/sbcl/files/verbose-build-2.0.3.patch29
5 files changed, 466 insertions, 0 deletions
diff --git a/dev-lisp/sbcl/files/bsd-sockets-test-2.0.5.patch b/dev-lisp/sbcl/files/bsd-sockets-test-2.0.5.patch
new file mode 100644
index 0000000..3226e75
--- /dev/null
+++ b/dev-lisp/sbcl/files/bsd-sockets-test-2.0.5.patch
@@ -0,0 +1,385 @@
+diff -U3 -r sbcl-2.0.5.orig/contrib/sb-bsd-sockets/tests.lisp sbcl-2.0.5/contrib/sb-bsd-sockets/tests.lisp
+--- sbcl-2.0.5.orig/contrib/sb-bsd-sockets/tests.lisp 2020-05-31 20:16:48.000000000 +0700
++++ sbcl-2.0.5/contrib/sb-bsd-sockets/tests.lisp 2020-06-08 18:15:59.750860802 +0700
+@@ -18,16 +18,16 @@
+ (equalp (make-inet-address "242.1.211.3") #(242 1 211 3))
+ t)
+
+-(deftest make-inet6-address.1
+- (equalp (make-inet6-address "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
+- #(255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
+- t)
+-
+-(deftest unparse-inet6-address
+- (string= (sb-bsd-sockets::unparse-inet6-address
+- (make-inet6-address "fe80::abcd:1234"))
+- "fe80::abcd:1234")
+- t)
++;(deftest make-inet6-address.1
++; (equalp (make-inet6-address "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
++; #(255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255))
++; t)
++
++;(deftest unparse-inet6-address
++; (string= (sb-bsd-sockets::unparse-inet6-address
++; (make-inet6-address "fe80::abcd:1234"))
++; "fe80::abcd:1234")
++; t)
+
+ (deftest get-protocol-by-name/tcp
+ (integerp (get-protocol-by-name "tcp"))
+@@ -40,15 +40,15 @@
+ ;;; See https://bugs.launchpad.net/sbcl/+bug/659857
+ ;;; Apparently getprotobyname_r on FreeBSD says -1 and EINTR
+ ;;; for unknown protocols...
+-#-(and freebsd sb-thread)
+-#-(and dragonfly sb-thread)
+-(deftest get-protocol-by-name/error
+- (handler-case (get-protocol-by-name "nonexistent-protocol")
+- (unknown-protocol ()
+- t)
+- (:no-error ()
+- nil))
+- t)
++;#-(and freebsd sb-thread)
++;#-(and dragonfly sb-thread)
++;(deftest get-protocol-by-name/error
++; (handler-case (get-protocol-by-name "nonexistent-protocol")
++; (unknown-protocol ()
++; t)
++; (:no-error ()
++; nil))
++; t)
+
+ (eval-when (:compile-toplevel :execute)
+ (when (handler-case (make-instance 'inet-socket
+@@ -108,19 +108,19 @@
+ (:no-error nil))
+ t)
+
+-(deftest make-inet6-socket.smoke
+- (handler-case
+- (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
+- (> (socket-file-descriptor s) 1))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
+-
+-(deftest make-inet6-socket.keyword
+- (handler-case
+- (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp)))
+- (> (socket-file-descriptor s) 1))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
++;(deftest make-inet6-socket.smoke
++; (handler-case
++; (let ((s (make-instance 'inet6-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
++; (> (socket-file-descriptor s) 1))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
++
++;(deftest make-inet6-socket.keyword
++; (handler-case
++; (let ((s (make-instance 'inet6-socket :type :stream :protocol :tcp)))
++; (> (socket-file-descriptor s) 1))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (non-block-socket)
+@@ -129,54 +129,54 @@
+ (non-blocking-mode s))
+ t)
+
+-#+ipv4-support
+-(deftest inet-socket-bind
+- (let* ((tcp (get-protocol-by-name "tcp"))
+- (address (make-inet-address "127.0.0.1"))
+- (s1 (make-instance 'inet-socket :type :stream :protocol tcp))
+- (s2 (make-instance 'inet-socket :type :stream :protocol tcp)))
+- (unwind-protect
+- ;; Given the functions we've got so far, if you can think of a
+- ;; better way to make sure the bind succeeded than trying it
+- ;; twice, let me know
+- (progn
+- (socket-bind s1 address 0)
+- (handler-case
+- (let ((port (nth-value 1 (socket-name s1))))
+- (socket-bind s2 address port)
+- nil)
+- (address-in-use-error () t)))
+- (socket-close s1)
+- (socket-close s2)))
+- t)
+-
+-(deftest inet6-socket-bind
+- (handler-case
+- (let* ((tcp (get-protocol-by-name "tcp"))
+- (address (make-inet6-address "::1"))
+- (s1 (make-instance 'inet6-socket :type :stream :protocol tcp))
+- (s2 (make-instance 'inet6-socket :type :stream :protocol tcp)))
+- (unwind-protect
+- ;; Given the functions we've got so far, if you can think of a
+- ;; better way to make sure the bind succeeded than trying it
+- ;; twice, let me know
+- (handler-case
+- (socket-bind s1 address 0)
+- (socket-error ()
+- ;; This may mean no IPv6 support, can't fail a test
+- ;; because of that (address-family-not-supported doesn't catch that)
+- t)
+- (:no-error (x)
+- (declare (ignore x))
+- (handler-case
+- (let ((port (nth-value 1 (socket-name s1))))
+- (socket-bind s2 address port)
+- nil)
+- (address-in-use-error () t))))
+- (socket-close s1)
+- (socket-close s2)))
+- ((or address-family-not-supported protocol-not-supported-error) () t))
+- t)
++;#+ipv4-support
++;(deftest inet-socket-bind
++; (let* ((tcp (get-protocol-by-name "tcp"))
++; (address (make-inet-address "127.0.0.1"))
++; (s1 (make-instance 'inet-socket :type :stream :protocol tcp))
++; (s2 (make-instance 'inet-socket :type :stream :protocol tcp)))
++; (unwind-protect
++; ;; Given the functions we've got so far, if you can think of a
++; ;; better way to make sure the bind succeeded than trying it
++; ;; twice, let me know
++; (progn
++; (socket-bind s1 address 0)
++; (handler-case
++; (let ((port (nth-value 1 (socket-name s1))))
++; (socket-bind s2 address port)
++; nil)
++; (address-in-use-error () t)))
++; (socket-close s1)
++; (socket-close s2)))
++; t)
++
++;(deftest inet6-socket-bind
++; (handler-case
++; (let* ((tcp (get-protocol-by-name "tcp"))
++; (address (make-inet6-address "::1"))
++; (s1 (make-instance 'inet6-socket :type :stream :protocol tcp))
++; (s2 (make-instance 'inet6-socket :type :stream :protocol tcp)))
++; (unwind-protect
++; ;; Given the functions we've got so far, if you can think of a
++; ;; better way to make sure the bind succeeded than trying it
++; ;; twice, let me know
++; (handler-case
++; (socket-bind s1 address 0)
++; (socket-error ()
++; ;; This may mean no IPv6 support, can't fail a test
++; ;; because of that (address-family-not-supported doesn't catch that)
++; t)
++; (:no-error (x)
++; (declare (ignore x))
++; (handler-case
++; (let ((port (nth-value 1 (socket-name s1))))
++; (socket-bind s2 address port)
++; nil)
++; (address-in-use-error () t))))
++; (socket-close s1)
++; (socket-close s2)))
++; ((or address-family-not-supported protocol-not-supported-error) () t))
++; t)
+
+ #+ipv4-support
+ (deftest* (simple-sockopt-test)
+@@ -244,37 +244,37 @@
+ ;;; to look at /etc/syslog.conf or local equivalent to find out where
+ ;;; the message ended up
+
+-#-win32
+-(deftest simple-local-client
+- (progn
+- ;; SunOS (Solaris) and Darwin systems don't have a socket at
+- ;; /dev/log. We might also be building in a chroot or
+- ;; something, so don't fail this test just because the file is
+- ;; unavailable, or if it's a symlink to some weird character
+- ;; device.
+- (when (block nil
+- (handler-bind ((sb-posix:syscall-error
+- (lambda (e)
+- (declare (ignore e))
+- (return nil))))
+- (sb-posix:s-issock
+- (sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
+- (let ((s (make-instance 'local-socket :type :datagram)))
+- (format t "Connecting ~A... " s)
+- (finish-output)
+- (handler-case
+- (socket-connect s "/dev/log")
+- (sb-bsd-sockets::socket-error ()
+- (setq s (make-instance 'local-socket :type :stream))
+- (format t "failed~%Retrying with ~A... " s)
+- (finish-output)
+- (socket-connect s "/dev/log")))
+- (format t "ok.~%")
+- (let ((stream (socket-make-stream s :input t :output t :buffering :none)))
+- (format stream
+- "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
+- t)
+- t)
++;#-win32
++;(deftest simple-local-client
++; (progn
++; ;; SunOS (Solaris) and Darwin systems don't have a socket at
++; ;; /dev/log. We might also be building in a chroot or
++; ;; something, so don't fail this test just because the file is
++; ;; unavailable, or if it's a symlink to some weird character
++; ;; device.
++; (when (block nil
++; (handler-bind ((sb-posix:syscall-error
++; (lambda (e)
++; (declare (ignore e))
++; (return nil))))
++; (sb-posix:s-issock
++; (sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
++; (let ((s (make-instance 'local-socket :type :datagram)))
++; (format t "Connecting ~A... " s)
++; (finish-output)
++; (handler-case
++; (socket-connect s "/dev/log")
++; (sb-bsd-sockets::socket-error ()
++; (setq s (make-instance 'local-socket :type :stream))
++; (format t "failed~%Retrying with ~A... " s)
++; (finish-output)
++; (socket-connect s "/dev/log")))
++; (format t "ok.~%")
++; (let ((stream (socket-make-stream s :input t :output t :buffering :none)))
++; (format stream
++; "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
++; t)
++; t)
+
+ ;;; these require that the internet (or bits of it, at least) is available
+
+@@ -390,59 +390,59 @@
+ (format t "Received ~A bytes from ~A:~A - ~A ~%"
+ len address port (subseq buf 0 (min 10 len)))))))
+
+-#+(and ipv4-support sb-thread)
+-(deftest interrupt-io
+- (let (result
+- (sem (sb-thread:make-semaphore)))
+- (labels
+- ((client (port)
+- (setf result
+- (let ((s (make-instance 'inet-socket
+- :type :stream
+- :protocol :tcp)))
+- (socket-connect s #(127 0 0 1) port)
+- (let ((stream (socket-make-stream s
+- :input t
+- :output t
+- :buffering :none)))
+- (handler-case
+- (prog1
+- (catch 'stop
+- (sb-thread:signal-semaphore sem)
+- (read-char stream))
+- (close stream))
+- (error (c)
+- c))))))
+- (server ()
+- (let ((s (make-instance 'inet-socket
+- :type :stream
+- :protocol :tcp)))
+- (setf (sockopt-reuse-address s) t)
+- (socket-bind s (make-inet-address "127.0.0.1") 0)
+- (socket-listen s 5)
+- (multiple-value-bind (* port)
+- (socket-name s)
+- (let* ((client (sb-thread:make-thread
+- (lambda () (client port))))
+- (r (socket-accept s))
+- (stream (socket-make-stream r
+- :input t
+- :output t
+- :buffering :none)))
+- (socket-close s)
+- (sb-thread:wait-on-semaphore sem)
+- (sleep 0.1)
+- (sb-thread:interrupt-thread client
+- (lambda () (throw 'stop :ok)))
+- (unless (sb-ext:wait-for (null (sb-thread::thread-interruptions client)) :timeout 5)
+- (setf result :timeout))
+- (write-char #\x stream)
+- (close stream)
+- (socket-close r)
+- (sb-thread:join-thread client :timeout 5))))))
+- (server))
+- result)
+- :ok)
++;#+(and ipv4-support sb-thread)
++;(deftest interrupt-io
++; (let (result
++; (sem (sb-thread:make-semaphore)))
++; (labels
++; ((client (port)
++; (setf result
++; (let ((s (make-instance 'inet-socket
++; :type :stream
++; :protocol :tcp)))
++; (socket-connect s #(127 0 0 1) port)
++; (let ((stream (socket-make-stream s
++; :input t
++; :output t
++; :buffering :none)))
++; (handler-case
++; (prog1
++; (catch 'stop
++; (sb-thread:signal-semaphore sem)
++; (read-char stream))
++; (close stream))
++; (error (c)
++; c))))))
++; (server ()
++; (let ((s (make-instance 'inet-socket
++; :type :stream
++; :protocol :tcp)))
++; (setf (sockopt-reuse-address s) t)
++; (socket-bind s (make-inet-address "127.0.0.1") 0)
++; (socket-listen s 5)
++; (multiple-value-bind (* port)
++; (socket-name s)
++; (let* ((client (sb-thread:make-thread
++; (lambda () (client port))))
++; (r (socket-accept s))
++; (stream (socket-make-stream r
++; :input t
++; :output t
++; :buffering :none)))
++; (socket-close s)
++; (sb-thread:wait-on-semaphore sem)
++; (sleep 0.1)
++; (sb-thread:interrupt-thread client
++; (lambda () (throw 'stop :ok)))
++; (unless (sb-ext:wait-for (null (sb-thread::thread-interruptions client)) :timeout 5)
++; (setf result :timeout))
++; (write-char #\x stream)
++; (close stream)
++; (socket-close r)
++; (sb-thread:join-thread client :timeout 5))))))
++; (server))
++; result)
++; :ok)
+
+ (defmacro with-client-and-server (((socket-class &rest common-initargs)
+ (listen-socket-var &rest listen-address)
+@@ -505,8 +505,9 @@
+ (define-shutdown-test ,(make-name 'shutdown.client.ub8)
+ client server (unsigned-byte 8) ,direction)))))
+
+- (define-shutdown-tests :output)
+- (define-shutdown-tests :io))
++; (define-shutdown-tests :output)
++; (define-shutdown-tests :io)
++)
+
+ (defun poor-persons-random-address ()
+ (let ((base (expt 36 8)))
diff --git a/dev-lisp/sbcl/files/concurrency-test-2.0.1.patch b/dev-lisp/sbcl/files/concurrency-test-2.0.1.patch
new file mode 100644
index 0000000..e0a36a8
--- /dev/null
+++ b/dev-lisp/sbcl/files/concurrency-test-2.0.1.patch
@@ -0,0 +1,12 @@
+diff -r -U3 sbcl-2.0.1.orig/contrib/sb-concurrency/tests/test-frlock.lisp sbcl-2.0.1/contrib/sb-concurrency/tests/test-frlock.lisp
+--- sbcl-2.0.1.orig/contrib/sb-concurrency/tests/test-frlock.lisp 2020-01-27 04:26:30.000000000 +0700
++++ sbcl-2.0.1/contrib/sb-concurrency/tests/test-frlock.lisp 2020-01-30 21:53:57.750913923 +0700
+@@ -88,7 +88,7 @@
+ #+sb-thread
+ (deftest* (frlock.1)
+ (handler-case
+- (sb-ext:with-timeout 40
++ (sb-ext:with-timeout 240
+ (test-frlocks #+win32 :outer-write-pause #+win32 t ))
+ (sb-ext:timeout (c)
+ (error "~A" c)))
diff --git a/dev-lisp/sbcl/files/etags-2.1.0.patch b/dev-lisp/sbcl/files/etags-2.1.0.patch
new file mode 100644
index 0000000..8f14e50
--- /dev/null
+++ b/dev-lisp/sbcl/files/etags-2.1.0.patch
@@ -0,0 +1,10 @@
+diff -r -U2 sbcl-2.1.0.orig/src/runtime/GNUmakefile sbcl-2.1.0/src/runtime/GNUmakefile
+--- sbcl-2.1.0.orig/src/runtime/GNUmakefile 2020-12-29 17:05:25.000000000 +0700
++++ sbcl-2.1.0/src/runtime/GNUmakefile 2021-01-28 18:02:57.682523052 +0700
+@@ -12,5 +12,5 @@
+ .PHONY: all clean TAGS tags targets
+
+-all: targets tags
++all: targets
+ TARGET=sbcl
+
diff --git a/dev-lisp/sbcl/files/sb-posix-test-2.2.9.patch b/dev-lisp/sbcl/files/sb-posix-test-2.2.9.patch
new file mode 100644
index 0000000..f88f133
--- /dev/null
+++ b/dev-lisp/sbcl/files/sb-posix-test-2.2.9.patch
@@ -0,0 +1,30 @@
+diff -r -U2 sbcl-2.2.9.orig/contrib/sb-posix/posix-tests.lisp sbcl-2.2.9/contrib/sb-posix/posix-tests.lisp
+--- sbcl-2.2.9.orig/contrib/sb-posix/posix-tests.lisp 2022-09-29 14:43:33.000000000 +0700
++++ sbcl-2.2.9/contrib/sb-posix/posix-tests.lisp 2022-10-01 16:32:39.919563905 +0700
+@@ -166,15 +166,15 @@
+ #.sb-posix::einval)
+
+-(deftest rmdir.error.3
+- (handler-case
+- (sb-posix:rmdir #-win32 "/" #+win32 (sb-ext:posix-getenv "windir"))
+- (sb-posix:syscall-error (c)
+- (typep
+- (sb-posix:syscall-errno c)
+- `(member #+(or darwin openbsd freebsd) ,sb-posix:eisdir
+- #+win32 ,sb-posix::eacces #+win32 ,sb-posix::enotempty
+- #+sunos ,sb-posix::einval
+- #-(or darwin openbsd freebsd win32 sunos) ,sb-posix::ebusy))))
+- t)
++; (deftest rmdir.error.3
++; (handler-case
++; (sb-posix:rmdir #-win32 "/" #+win32 (sb-ext:posix-getenv "windir"))
++; (sb-posix:syscall-error (c)
++; (typep
++; (sb-posix:syscall-errno c)
++; `(member #+(or darwin openbsd freebsd) ,sb-posix:eisdir
++; #+win32 ,sb-posix::eacces #+win32 ,sb-posix::enotempty
++; #+sunos ,sb-posix::einval
++; #-(or darwin openbsd freebsd win32 sunos) ,sb-posix::ebusy))))
++; t)
+
+ (deftest rmdir.error.4
diff --git a/dev-lisp/sbcl/files/verbose-build-2.0.3.patch b/dev-lisp/sbcl/files/verbose-build-2.0.3.patch
new file mode 100644
index 0000000..263436a
--- /dev/null
+++ b/dev-lisp/sbcl/files/verbose-build-2.0.3.patch
@@ -0,0 +1,29 @@
+diff -U3 -r sbcl-2.0.3.orig/make.sh sbcl-2.0.3/make.sh
+--- sbcl-2.0.3.orig/make.sh 2020-03-29 03:58:29.000000000 +0700
++++ sbcl-2.0.3/make.sh 2020-04-04 19:56:16.510279232 +0700
+@@ -24,7 +24,7 @@
+ # thing" when run on the target machine, with the minor caveat that
+ # any --xc-host parameter should be suitable for the host machine
+ # instead of the target.
+-sh make-config.sh "$@" --check-host-lisp || exit $?
++sh -x make-config.sh "$@" --check-host-lisp || exit $?
+
+ . output/prefix.def
+ . output/build-config
+@@ -76,11 +76,11 @@
+ $@
+ fi
+ }
+-maybetime sh make-host-1.sh
+-maybetime sh make-target-1.sh
+-maybetime sh make-host-2.sh
+-maybetime sh make-target-2.sh
+-maybetime sh make-target-contrib.sh
++maybetime sh -x make-host-1.sh
++maybetime sh -x make-target-1.sh
++maybetime sh -x make-host-2.sh
++maybetime sh -x make-target-2.sh
++maybetime sh -x make-target-contrib.sh
+
+ # contrib/Makefile shouldn't be counted in NCONTRIBS.
+ # "find contrib/* -name Makefile" would still find contrib/./Makefile.