summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2009-06-28 23:51:39 +0000
committerkan <kan@FreeBSD.org>2009-06-28 23:51:39 +0000
commitf780ef8f1980f918f04365b9374ef3f0b5c8652b (patch)
tree601ae0a8f92e47fd15b2574968520ee80c372d0e /libexec
parent54f24c117ae26fcfb1000a0fe7ab5f376997f7f6 (diff)
downloadFreeBSD-src-f780ef8f1980f918f04365b9374ef3f0b5c8652b.zip
FreeBSD-src-f780ef8f1980f918f04365b9374ef3f0b5c8652b.tar.gz
Eliminate .text relocations in shared libraries compiled with stack protector.
Use libssp_nonshared library to pull __stack_chk_fail_local symbol into each library that needs it instead of pulling it from libc. GCC generates local calls to this function which result in absolute relocations put into position-independent code segment, making dynamic loader do extra work everys time given shared library is being relocated and making affected text pages non-shareable. Reviewed by: kib Approved by: re (kensmith)
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/Makefile2
1 files changed, 1 insertions, 1 deletions
diff --git a/libexec/rtld-elf/Makefile b/libexec/rtld-elf/Makefile
index 7c20398..5e9729c 100644
--- a/libexec/rtld-elf/Makefile
+++ b/libexec/rtld-elf/Makefile
@@ -22,7 +22,7 @@ MLINKS= rtld.1 ld-elf.so.1.1 \
CFLAGS+= -fpic -DPIC
LDFLAGS+= -shared -Wl,-Bsymbolic
DPADD= ${LIBC_PIC}
-LDADD= -lc_pic
+LDADD= -lc_pic -lssp_nonshared
.if ${MACHINE_ARCH} != "ia64"
.if ${MK_SYMVER} == "yes"
OpenPOWER on IntegriCloud