A couple of fixes to sbcl:

* Don't request job control in the shell scripts used during the build
   via the "-m" option; it will cause a backgrounded job to stall with
   SIGTTIN.
 * Add a Config.generic-netbsd, and collect common settings for all
   the various NetBSD configs there.
 * Do tty handling in sbcl the same way OpenBSD does, i.e. no TIOCNOTTY.
Bump PKGREVISION.
This commit is contained in:
he 2019-10-12 09:47:39 +00:00
parent efe1024dd7
commit 11f0f1a9f4
14 changed files with 289 additions and 2 deletions

View file

@ -1,7 +1,8 @@
# $NetBSD: Makefile,v 1.81 2019/10/01 22:15:57 rjs Exp $
# $NetBSD: Makefile,v 1.82 2019/10/12 09:47:39 he Exp $
DISTNAME= ${PKGNAME_NOREV}-source
PKGNAME= sbcl-1.5.7
PKGREVISION= 1
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sbcl/}
EXTRACT_SUFX= .tar.bz2

View file

@ -1,8 +1,20 @@
$NetBSD: distinfo,v 1.60 2019/10/01 22:15:57 rjs Exp $
$NetBSD: distinfo,v 1.61 2019/10/12 09:47:39 he Exp $
SHA1 (sbcl-1.5.7-source.tar.bz2) = b16ff3a0c0638bb685ff5f93106553c03a68d978
RMD160 (sbcl-1.5.7-source.tar.bz2) = 850176b451d83daf52e7b0d2f6095015c5122494
SHA512 (sbcl-1.5.7-source.tar.bz2) = 8dde1b0d400f93fed085f6b6c33b057c3dec4dfa83afb7431384add6628cb2f910cba006b2579cea547685aeb79fade5ad576b0a42e4f7e1f6c0c3f26acf226e
Size (sbcl-1.5.7-source.tar.bz2) = 6438048 bytes
SHA1 (patch-ab) = b087921f7317523fd78396518dfd2cb1c8e6d5f9
SHA1 (patch-make-genesis-2.sh) = 5d61f2662795c93aabfaa18ef686725d2ed9384a
SHA1 (patch-make-host-1.sh) = 7ecb23bf3cd4ee091a279503668a539a533b1196
SHA1 (patch-make-host-2.sh) = c0ac2f16a670a6db2ff69b863d1f990f7ba0bef0
SHA1 (patch-make-target-1.sh) = 9064623b0cba2fc6869f3d29ea090d55b7bdaf17
SHA1 (patch-make-target-2.sh) = 7b288c3c320adb89cefa78a2fc93223ea4b3b66f
SHA1 (patch-slam.sh) = 3edb599272f8f4827b0f5edc5a67d134856ca269
SHA1 (patch-src_runtime_Config.arm-netbsd) = 4282033c32b3ed533cd64e480827e865deaaa2a2
SHA1 (patch-src_runtime_Config.generic-netbsd) = 2720f0a9417395751278caa2df7ef9c9c8c9e3e0
SHA1 (patch-src_runtime_Config.ppc-netbsd) = 39851e2682d9bc4f7770769529dfc3b00664292f
SHA1 (patch-src_runtime_Config.sparc-netbsd) = 73397cb6e064250f99e91bcd94d84db5d19a523d
SHA1 (patch-src_runtime_Config.x86-64-netbsd) = 79d14015db51f61226b9e848d27f90e2538a84af
SHA1 (patch-src_runtime_Config.x86-netbsd) = 019c69d928d5ed80a2b4862a82008f50465eeda7
SHA1 (patch-src_runtime_run-program.c) = cc07799e5bbee2f827190e3b62fbca2f1d4528a3

View file

@ -0,0 +1,14 @@
$NetBSD: patch-make-genesis-2.sh,v 1.1 2019/10/12 09:47:40 he Exp $
Do not explicitly turn on job control, it will stall a bakcground job
with SIGTTIN.
--- make-genesis-2.sh.orig 2019-09-28 09:49:01.000000000 +0000
+++ make-genesis-2.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-set -em
+set -e
# This is a script to be run as part of make.sh. The only time you'd
# want to run it by itself is if you're trying to cross-compile the

View file

@ -0,0 +1,14 @@
$NetBSD: patch-make-host-1.sh,v 1.1 2019/10/12 09:47:40 he Exp $
Do not explicitly turn on job control, it will stall a bakcground job
with SIGTTIN.
--- make-host-1.sh.orig 2019-09-28 09:49:01.000000000 +0000
+++ make-host-1.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-set -em
+set -e
# This is a script to be run as part of make.sh. The only time you'd
# want to run it by itself is if you're trying to cross-compile the

View file

@ -0,0 +1,14 @@
$NetBSD: patch-make-host-2.sh,v 1.1 2019/10/12 09:47:40 he Exp $
Do not explicitly turn on job control, it will stall a bakcground job
with SIGTTIN.
--- make-host-2.sh.orig 2019-09-28 09:49:01.000000000 +0000
+++ make-host-2.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-set -em
+set -e
# This is a script to be run as part of make.sh. The only time you'd
# want to run it by itself is if you're trying to cross-compile the

View file

@ -0,0 +1,14 @@
$NetBSD: patch-make-target-1.sh,v 1.1 2019/10/12 09:47:40 he Exp $
Do not explicitly turn on job control, it will stall a bakcground job
with SIGTTIN.
--- make-target-1.sh.orig 2019-09-28 09:49:01.000000000 +0000
+++ make-target-1.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-set -em
+set -e
# This is a script to be run as part of make.sh. The only time you'd
# want to run it by itself is if you're trying to cross-compile the

View file

@ -0,0 +1,14 @@
$NetBSD: patch-make-target-2.sh,v 1.1 2019/10/12 09:47:40 he Exp $
Do not explicitly turn on job control, it will stall a bakcground job
with SIGTTIN.
--- make-target-2.sh.orig 2019-09-28 09:49:01.000000000 +0000
+++ make-target-2.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-set -em
+set -e
# --load argument skips compilation.
#

View file

@ -0,0 +1,19 @@
$NetBSD: patch-src_runtime_Config.arm-netbsd,v 1.1 2019/10/12 09:47:40 he Exp $
Use Config.generic-netbsd, don't override OS_LIBS, but add to it.
--- src/runtime/Config.arm-netbsd.orig 2019-09-28 09:49:01.000000000 +0000
+++ src/runtime/Config.arm-netbsd
@@ -9,10 +9,10 @@
# provided with absolutely no warranty. See the COPYING and CREDITS
# files for more information.
+include Config.generic-netbsd
include Config.arm-bsd
-ASSEM_SRC += ldso-stubs.S
-OS_LIBS = -lutil -larm
+OS_LIBS += -larm
ifdef LISP_FEATURE_SB_THREAD
OS_LIBS += -lpthread -lrt

View file

@ -0,0 +1,30 @@
$NetBSD: patch-src_runtime_Config.generic-netbsd,v 1.1 2019/10/12 09:47:40 he Exp $
Make a Config.generic-netbsd, put common NetBSD settings there.
--- src/runtime/Config.generic-netbsd.orig 2019-10-11 22:24:17.425396928 +0000
+++ src/runtime/Config.generic-netbsd
@@ -0,0 +1,23 @@
+# -*- makefile -*- for the C-level run-time support for SBCL
+
+# This software is part of the SBCL system. See the README file for
+# more information.
+#
+# This software is derived from the CMU CL system, which was
+# written at Carnegie Mellon University and released into the
+# public domain. The software is in the public domain and is
+# provided with absolutely no warranty. See the COPYING and CREDITS
+# files for more information.
+
+OS_SRC += bsd-os.c
+OS_LIBS += -lutil
+ASSEM_SRC += ldso-stubs.S
+
+ifdef LISP_FEATURE_SB_THREAD
+ OS_LIBS += -lpthread -lrt
+endif
+
+ifdef LISP_FEATURE_SB_CORE_COMPRESSION
+ OS_LIBS += -lz
+endif
+

View file

@ -0,0 +1,29 @@
$NetBSD: patch-src_runtime_Config.ppc-netbsd,v 1.1 2019/10/12 09:47:40 he Exp $
Use Config.generic-netbsd, don't override OS_LIBS, but add to it.
--- src/runtime/Config.ppc-netbsd.orig 2019-09-28 09:49:01.000000000 +0000
+++ src/runtime/Config.ppc-netbsd
@@ -9,17 +9,15 @@
# provided with absolutely no warranty. See the COPYING and CREDITS
# files for more information.
+include Config.generic-netbsd
+
LINKFLAGS += -dynamic -export-dynamic
CFLAGS = -g -Wall -O2
-ASSEM_SRC = ppc-assem.S ldso-stubs.S
-ARCH_SRC = ppc-arch.c
+ASSEM_SRC += ppc-assem.S
+ARCH_SRC += ppc-arch.c
-OS_SRC = bsd-os.c undefineds.c ppc-bsd-os.c
-OS_LIBS = # -ldl
-ifdef LISP_FEATURE_SB_CORE_COMPRESSION
- OS_LIBS += -lz
-endif
+OS_SRC += undefineds.c ppc-bsd-os.c
GC_SRC = fullcgc.c gencgc.c traceroot.c

View file

@ -0,0 +1,31 @@
$NetBSD: patch-src_runtime_Config.sparc-netbsd,v 1.1 2019/10/12 09:47:40 he Exp $
Use Config.generic-netbsd, don't override OS_LIBS, but add to it.
--- src/runtime/Config.sparc-netbsd.orig 2019-09-28 09:49:01.000000000 +0000
+++ src/runtime/Config.sparc-netbsd
@@ -9,19 +9,17 @@
# provided with absolutely no warranty. See the COPYING and CREDITS
# files for more information.
+include Config.generic-netbsd
+
CC = gcc
CFLAGS += -g -Wall -O2
LINKFLAGS += -v
NM = nm -t x -p
-ASSEM_SRC = sparc-assem.S ldso-stubs.S
-ARCH_SRC = sparc-arch.c undefineds.c
+ASSEM_SRC += sparc-assem.S
+ARCH_SRC += sparc-arch.c undefineds.c
-OS_SRC = bsd-os.c sparc-bsd-os.c
-OS_LIBS = # -ldl
-ifdef LISP_FEATURE_SB_CORE_COMPRESSION
- OS_LIBS += -lz
-endif
+OS_SRC += sparc-bsd-os.c
ifdef LISP_FEATURE_GENCGC
GC_SRC = fullcgc.c gencgc.c traceroot.c

View file

@ -0,0 +1,23 @@
$NetBSD: patch-src_runtime_Config.x86-64-netbsd,v 1.1 2019/10/12 09:47:40 he Exp $
Use Config.generic-netbsd, don't override OS_LIBS.
--- src/runtime/Config.x86-64-netbsd.orig 2019-09-28 09:49:01.000000000 +0000
+++ src/runtime/Config.x86-64-netbsd
@@ -9,15 +9,9 @@
# provided with absolutely no warranty. See the COPYING and CREDITS
# files for more information.
+include Config.generic-netbsd
include Config.x86-64-bsd
-ASSEM_SRC += ldso-stubs.S
-OS_LIBS += -lutil
-
-ifdef LISP_FEATURE_SB_THREAD
- OS_LIBS += -lpthread -lrt
-endif
-
# XXX why do all the other Configs set LINKFLAGS instead of LDFLAGS?
# LINKFLAGS is only used in src/runtime/GNUmakefile, this causes the
# dladdr test in tools-for-build/ to fail.

View file

@ -0,0 +1,19 @@
$NetBSD: patch-src_runtime_Config.x86-netbsd,v 1.1 2019/10/12 09:47:40 he Exp $
Use Config.generic-netbsd.
--- src/runtime/Config.x86-netbsd.orig 2019-09-28 09:49:01.000000000 +0000
+++ src/runtime/Config.x86-netbsd
@@ -9,10 +9,11 @@
# provided with absolutely no warranty. See the COPYING and CREDITS
# files for more information.
+include Config.generic-netbsd
include Config.x86-bsd
-ASSEM_SRC += ldso-stubs.S
OS_SRC += undefineds.c
+
LINKFLAGS += -dynamic -export-dynamic
CFLAGS = -g -Wall -O2 -fno-omit-frame-pointer

View file

@ -0,0 +1,53 @@
$NetBSD: patch-src_runtime_run-program.c,v 1.1 2019/10/12 09:47:40 he Exp $
Try to avoid doing the "open /dev/tty, TIOCNOTTY" dance.
Instead, do as on OpenBSD.
--- src/runtime/run-program.c.orig 2019-10-11 11:45:06.733855374 +0000
+++ src/runtime/run-program.c
@@ -30,7 +30,7 @@
#include <termios.h>
#include <errno.h>
-#ifdef LISP_FEATURE_OPENBSD
+#if defined(LISP_FEATURE_OPENBSD) || defined(LISP_FETURE_NETBSD)
#include <util.h>
#endif
@@ -58,7 +58,7 @@ int set_noecho(int fd)
return 1;
}
-#if defined(LISP_FEATURE_OPENBSD)
+#if defined(LISP_FEATURE_OPENBSD) || defined(LISP_FEATURE_NETBSD)
int
set_pty(char *pty_name)
@@ -71,7 +71,7 @@ set_pty(char *pty_name)
return (set_noecho(STDIN_FILENO));
}
-#else /* !LISP_FEATURE_OPENBSD */
+#else /* !LISP_FEATURE_OPENBSD && !LISP_FEATURE_NETBSD */
int
set_pty(char *pty_name)
@@ -95,7 +95,7 @@ set_pty(char *pty_name)
return (0);
}
-#endif /* !LISP_FEATURE_OPENBSD */
+#endif /* !LISP_FEATURE_OPENBSD && !LISP_FEATURE_NETBSD */
int wait_for_exec(int pid, int channel[2]) {
if ((-1 != pid) && (-1 != channel[1])) {
@@ -164,7 +164,8 @@ int spawn(char *program, char *argv[], i
* share stdin with our parent. In the latter case we claim
* control of the terminal. */
if (sin >= 0) {
-#if defined(LISP_FEATURE_HPUX) || defined(LISP_FEATURE_OPENBSD)
+#if defined(LISP_FEATURE_HPUX) || defined(LISP_FEATURE_OPENBSD) || \
+ defined(LISP_FEATURE_NETBSD)
setsid();
#elif defined(LISP_FEATURE_DARWIN)
setpgid(0, getpid());