diff options
author | kan <kan@FreeBSD.org> | 2009-06-28 23:51:39 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2009-06-28 23:51:39 +0000 |
commit | f780ef8f1980f918f04365b9374ef3f0b5c8652b (patch) | |
tree | 601ae0a8f92e47fd15b2574968520ee80c372d0e /lib/libc/Makefile | |
parent | 54f24c117ae26fcfb1000a0fe7ab5f376997f7f6 (diff) | |
download | FreeBSD-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 'lib/libc/Makefile')
-rw-r--r-- | lib/libc/Makefile | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libc/Makefile b/lib/libc/Makefile index cf9ef3a..4f13f8e 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -26,7 +26,7 @@ PRECIOUSLIB= # DPADD+= ${LIBGCC} LDFLAGS+= -nodefaultlibs -LDADD+= -lgcc +LDADD+= -lgcc -lssp_nonshared # Define (empty) variables so that make doesn't give substitution # errors if the included makefiles don't change these: |