mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
Disable stack protector in early static initialization [BZ #7065]
The startup code in csu/, and the brk and sbrk functions are needed very early in initialization of a statically-linked program, before the stack guard is initialized; TLS initialization also uses memcpy, which cannot overrun its own stack. Mark all of these as -fno-stack-protector. We also finally introduce @libc_cv_ssp@ and @no_stack_protector@, both substituted by the configury changes made earlier, to detect the case when -fno-stack-protector is supported by the compiler, and unconditionally pass it in when this is the case, whether or not --enable-stack-protector is passed to configure. (This means that it'll even work when the compiler's been hacked to pass -fstack-protector by default, unless the hackage is so broken that it does so in a way that is impossible to override.)
This commit is contained in:
committed by
Florian Weimer
parent
de6591238b
commit
10c85e76c0
@ -73,6 +73,10 @@ CFLAGS-test-ffs.c = -fno-builtin
|
||||
CFLAGS-tst-inlcall.c = -fno-builtin
|
||||
CFLAGS-tst-xbzero-opt.c = -O3
|
||||
|
||||
# Called during TLS initialization.
|
||||
CFLAGS-memcpy.c = $(no-stack-protector)
|
||||
CFLAGS-wordcopy.c = $(no-stack-protector)
|
||||
|
||||
ifeq ($(run-built-tests),yes)
|
||||
$(objpfx)tst-svc-cmp.out: tst-svc.expect $(objpfx)tst-svc.out
|
||||
cmp $^ > $@; \
|
||||
|
Reference in New Issue
Block a user