summaryrefslogtreecommitdiff
path: root/libexec/ld.so/Makefile
diff options
context:
space:
mode:
authorMartynas Venckus <martynas@cvs.openbsd.org>2014-02-16 01:16:39 +0000
committerMartynas Venckus <martynas@cvs.openbsd.org>2014-02-16 01:16:39 +0000
commitdb5574f3256a4a35b0d77f26add6d535a1f0e17e (patch)
tree096ef2b5759bdb57a19923d8b42bdfa9f284a5db /libexec/ld.so/Makefile
parentd7637c028a65b58de45efb5d0e690b558894f828 (diff)
Unbreak ld.so with ssp-strong/all on sparc64 and powerpc. With the
new SSP logic it additionally protects functions which have their local addresses taken of, and _dl_boot_bind() gets selected. We have to go through GOT to reach __guard_local, however it hasn't been relocated yet. So add boot.c and don't protect everything up to the point until it has been relocated and no longer needs the loff adjustment. OK matthew@. Full build done & tested by florian@.
Diffstat (limited to 'libexec/ld.so/Makefile')
-rw-r--r--libexec/ld.so/Makefile9
1 files changed, 6 insertions, 3 deletions
diff --git a/libexec/ld.so/Makefile b/libexec/ld.so/Makefile
index e25cefc7616..d2456c68bdf 100644
--- a/libexec/ld.so/Makefile
+++ b/libexec/ld.so/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.46 2013/12/31 04:07:34 guenther Exp $
+# $OpenBSD: Makefile,v 1.47 2014/02/16 01:16:38 martynas Exp $
SUBDIR=ldconfig ldd
MAN= ld.so.1
@@ -12,8 +12,8 @@ PROG= ld.so
VPATH=${.CURDIR}/../../lib/libc/string
-SRCS= ldasm.S loader.c resolve.c dlfcn.c dl_printf.c rtld_machine.c path.c
-SRCS+= util.c sod.c strsep.c strtol.c dir.c library_subr.c dl_prebind.c
+SRCS= ldasm.S boot.c loader.c resolve.c dlfcn.c dl_printf.c rtld_machine.c
+SRCS+= path.c util.c sod.c strsep.c strtol.c dir.c library_subr.c dl_prebind.c
SRCS+= dl_realpath.c dl_uname.c dl_dirname.c strlcat.c strlen.c trace.c
.if (${MACHINE_ARCH} == "i386")
SRCS+= library_mquery.c
@@ -48,3 +48,6 @@ $(PROG): $(test_prog)
.endif
.include <bsd.prog.mk>
+
+boot.o: boot.c
+ ${COMPILE.c} -fno-stack-protector ${.IMPSRC}