From 79a85a298ab6cd6d7ba8087d6a67e4902788a034 Mon Sep 17 00:00:00 2001 From: Joshua Elsasser Date: Sat, 22 Sep 2012 11:40:50 -0700 Subject: [PATCH] Fix build on OpenBSD systems with PIE enabled by default in the C compiler. --- src/runtime/Config.generic-openbsd | 21 +++++++++++++++++++++ src/runtime/Config.ppc-openbsd | 3 +-- src/runtime/Config.x86-64-openbsd | 4 +--- src/runtime/Config.x86-openbsd | 4 +--- 4 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 src/runtime/Config.generic-openbsd diff --git a/src/runtime/Config.generic-openbsd b/src/runtime/Config.generic-openbsd new file mode 100644 index 0000000..b63d298 --- /dev/null +++ b/src/runtime/Config.generic-openbsd @@ -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 diff --git a/src/runtime/Config.ppc-openbsd b/src/runtime/Config.ppc-openbsd index fd165fb..1918e37 100644 --- a/src/runtime/Config.ppc-openbsd +++ b/src/runtime/Config.ppc-openbsd @@ -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 diff --git a/src/runtime/Config.x86-64-openbsd b/src/runtime/Config.x86-64-openbsd index 2077ec1..c2847e2 100644 --- a/src/runtime/Config.x86-64-openbsd +++ b/src/runtime/Config.x86-64-openbsd @@ -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 diff --git a/src/runtime/Config.x86-openbsd b/src/runtime/Config.x86-openbsd index 40f6fc9..56b741f 100644 --- a/src/runtime/Config.x86-openbsd +++ b/src/runtime/Config.x86-openbsd @@ -10,14 +10,12 @@ # 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 -- 1.7.10.4