summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1995-12-25 22:35:16 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1995-12-25 22:35:16 +0000
commit457b5cd1e18c6a0678b8a9963c43a45118ecb4a7 (patch)
tree602718053d43069863f29cbb9edb71318190f278
parente209ee9b1a8e81b436a9a15e69afc7ed6b83cb7c (diff)
As ld.so does relocation behind the compiler's back don't cache
function addresses in registers.
-rw-r--r--gnu/usr.bin/ld/rtld/Makefile3
1 files changed, 2 insertions, 1 deletions
diff --git a/gnu/usr.bin/ld/rtld/Makefile b/gnu/usr.bin/ld/rtld/Makefile
index 538281d964e..e4b295f7293 100644
--- a/gnu/usr.bin/ld/rtld/Makefile
+++ b/gnu/usr.bin/ld/rtld/Makefile
@@ -6,7 +6,8 @@ SRCS= mdprologue.S rtld.c malloc.c shlib.c etc.c md.c vfprintf.c
MAN= rtld.1
LDDIR?= $(.CURDIR)/..
#PICFLAG=-pic
-PICFLAG=-fpic
+# As there is relocation going on behind GCC's back, don't cache function addresses.
+PICFLAG=-fpic -fno-function-cse
CFLAGS+=-I$(LDDIR) -I$(.CURDIR) -I$(LDDIR)/$(MACHINE_ARCH) $(PICFLAG) -DRTLD -DLIBC_SCCS
LDFLAGS+=-Bshareable -Bsymbolic -assert nosymbolic
ASFLAGS+=-k