diff options
author | kan <kan@FreeBSD.org> | 2009-07-14 21:19:13 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2009-07-14 21:19:13 +0000 |
commit | ef443476d9706035ac219f0280ef0b817dda7a6d (patch) | |
tree | 50c2540e7067c9b377ade1910cd0348aeab454e7 /libexec | |
parent | d81f73fcb520cff58dcafda0e644b91837b26a40 (diff) | |
download | FreeBSD-src-ef443476d9706035ac219f0280ef0b817dda7a6d.zip FreeBSD-src-ef443476d9706035ac219f0280ef0b817dda7a6d.tar.gz |
Second attempt at eliminating .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 every time given shared library is being relocated
and making affected text pages non-shareable.
Reviewed by: kib
Approved by: re (kib)
Diffstat (limited to 'libexec')
-rw-r--r-- | libexec/rtld-elf/Makefile | 2 |
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" |