glibc/sysdeps
Nick Alcock 003a27e819 Initialize the stack guard earlier when linking statically [BZ #7065]
The address of the stack canary is stored in a per-thread variable,
which means that we must ensure that the TLS area is intialized before
calling any -fstack-protector'ed functions.  For dynamically linked
applications, we ensure this (in a later patch) by disabling
-fstack-protector for the whole dynamic linker, but for static
applications, the AT_ENTRY address is called directly by the kernel, so
we must deal with the problem differently.

In static appliations, __libc_setup_tls performs the TCB setup and TLS
initialization, so this commit arranges for it to be called early and
unconditionally.  The call (and the stack guard initialization) is
before the DL_SYSDEP_OSCHECK hook, which if set will probably call
functions which are stack-protected (it does on Linux and NaCL too).  We
also move apply_irel up, so that we can still safely call functions that
require ifuncs while in __libc_setup_tls (though if stack-protection is
enabled we still have to avoid calling functions that are not
stack-protected at this stage).
2016-12-26 10:08:34 +01:00
..
aarch64 Refactor long double information into bits/long-double.h. 2016-12-14 18:27:56 +00:00
alpha Refactor long double information into bits/long-double.h. 2016-12-14 18:27:56 +00:00
arm New string function explicit_bzero (from OpenBSD). 2016-12-16 16:21:54 -05:00
generic Initialize the stack guard earlier when linking statically [BZ #7065] 2016-12-26 10:08:34 +01:00
gnu
hppa Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
i386 Fix x86, x86_64 fmax, fmin sNaN handling, add tests (bug 20947). 2016-12-15 23:52:18 +00:00
ia64 Refactor long double information into bits/long-double.h. 2016-12-14 18:27:56 +00:00
ieee754 Add roundeven, roundevenf, roundevenl. 2016-12-21 01:48:27 +00:00
init_array
m68k Refactor long double information into bits/long-double.h. 2016-12-14 18:27:56 +00:00
mach Fix hurd __access_noerrno implementation. 2016-11-18 16:49:08 -02:00
microblaze Remove cached PID/TID in clone 2016-11-24 19:38:51 -02:00
mips Refactor long double information into bits/long-double.h. 2016-12-14 18:27:56 +00:00
nacl Add roundeven, roundevenf, roundevenl. 2016-12-21 01:48:27 +00:00
nios2 Remove cached PID/TID in clone 2016-11-24 19:38:51 -02:00
nptl Remove cached PID/TID in clone 2016-11-24 19:38:51 -02:00
posix
powerpc Fix powerpc64/power7 memchr for large input sizes 2016-12-16 11:30:20 -02:00
pthread
s390 Refactor long double information into bits/long-double.h. 2016-12-14 18:27:56 +00:00
sh Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
sparc Refactor long double information into bits/long-double.h. 2016-12-14 18:27:56 +00:00
tile Add missing hidden_def (__sigsetjmp). 2016-12-01 20:49:25 +00:00
unix This patch cleans up the strsep implementation and improves performance. 2016-12-21 15:16:29 +00:00
wordsize-32
wordsize-64
x86 Disable TSX on some Haswell processors. 2016-12-19 14:15:57 +03:00
x86_64 x86_64: tst-quad1pie, tst-quad2pie: compile with -fPIE [BZ #7065] 2016-12-21 12:04:12 +01:00