Fix build on OpenBSD systems with PIE enabled by default in the C compiler.
authorJoshua Elsasser <joshua@elsasser.org>
Sat, 22 Sep 2012 18:40:50 +0000 (11:40 -0700)
committerJoshua Elsasser <joshua@elsasser.org>
Sat, 22 Sep 2012 18:40:50 +0000 (11:40 -0700)
src/runtime/Config.generic-openbsd [new file with mode: 0644]
src/runtime/Config.ppc-openbsd
src/runtime/Config.x86-64-openbsd
src/runtime/Config.x86-openbsd

diff --git a/src/runtime/Config.generic-openbsd b/src/runtime/Config.generic-openbsd
new file mode 100644 (file)
index 0000000..b63d298
--- /dev/null
@@ -0,0 +1,21 @@
+# -*- 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.
+
+LINKFLAGS += -export-dynamic
+OS_LIBS += -lutil
+
+# If the compiler recognizes a -nopie flag then we're building on a
+# PIE-by-default system, so disable PIE.
+ifneq ($(shell $(CC) -dumpspecs 2>/dev/null | grep -e -nopie),)
+CFLAGS += -fno-pie
+LINKFLAGS += -nopie
+LDFLAGS += -nopie
+endif
index fd165fb..1918e37 100644 (file)
@@ -9,13 +9,12 @@
 # provided with absolutely no warranty. See the COPYING and CREDITS
 # files for more information.
 
-LINKFLAGS += -export-dynamic
+include Config.generic-openbsd
 
 ASSEM_SRC = ppc-assem.S ldso-stubs.S
 ARCH_SRC = ppc-arch.c
 
 OS_SRC = bsd-os.c ppc-bsd-os.c
-OS_LIBS = -lutil
 
 ifdef LISP_FEATURE_SB_CORE_COMPRESSION
   OS_LIBS += -lz
index 2077ec1..c2847e2 100644 (file)
@@ -10,8 +10,6 @@
 # files for more information.
 
 include Config.x86-64-bsd
+include Config.generic-openbsd
 
 ASSEM_SRC += ldso-stubs.S
-OS_LIBS += -lutil
-
-LINKFLAGS += -export-dynamic
index 40f6fc9..56b741f 100644 (file)
 # files for more information.
 
 include Config.x86-bsd
+include Config.generic-openbsd
 
 ASSEM_SRC += ldso-stubs.S
-OS_LIBS += -lutil
 
 # The -Z linker flag conflicts with the default address space
 # locations used. If you wish to link the runtime using -Z option then
 # please see the comments in src/compiler/x86/parms.lisp
 
-LINKFLAGS += -export-dynamic
-
 CFLAGS += -fno-omit-frame-pointer