mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
hurd: Fix static initialization with -fstack-protector-strong
When linked statically, TLS initialization is not achieved before mach_init and alike, so ssp accesses to tcbhead's stack_guard would crash. We can just avoid using ssp in the few functions needed before TLS is set up. * mach/Makefile (CFLAGS-mach_init.o, CFLAGS-RPC_vm_statistics.o, CFLAGS-RPC_vm_map.o, CFLAGS-RPC_vm_protect.o, CFLAGS-RPC_i386_set_gdt.o, CFLAGS-RPC_i386_set_ldt.o, CFLAGS-RPC_task_get_special_port.o): Add $(no-stack-protector). * hurd/Makefile (CFLAGS-hurdstartup.o, CFLAGS-RPC_exec_startup_get_info.o): Add $(no-stack-protector).
This commit is contained in:
parent
97e02ad233
commit
99ee4d26dc
@ -7,6 +7,12 @@
|
||||
stack_chk_fail_local.
|
||||
* mach/Versions (GLIBC_2.4): Add __stack_chk_fail.
|
||||
* hurd/Versions (GLIBC_2.4): Add __stack_chk_fail.
|
||||
* mach/Makefile (CFLAGS-mach_init.o, CFLAGS-RPC_vm_statistics.o,
|
||||
CFLAGS-RPC_vm_map.o, CFLAGS-RPC_vm_protect.o,
|
||||
CFLAGS-RPC_i386_set_gdt.o, CFLAGS-RPC_i386_set_ldt.o,
|
||||
CFLAGS-RPC_task_get_special_port.o): Add $(no-stack-protector).
|
||||
* hurd/Makefile (CFLAGS-hurdstartup.o,
|
||||
CFLAGS-RPC_exec_startup_get_info.o): Add $(no-stack-protector).
|
||||
|
||||
2017-08-25 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
|
@ -81,6 +81,10 @@ $(inlines:%=$(objpfx)%.c): $(objpfx)%-inlines.c: %.h
|
||||
echo '#include "$<"') > $@-new
|
||||
mv -f $@-new $@
|
||||
generated += $(inlines:=.c)
|
||||
|
||||
# Avoid ssp before TLS is initialized.
|
||||
CFLAGS-hurdstartup.o = $(no-stack-protector)
|
||||
CFLAGS-RPC_exec_startup_get_info.o = $(no-stack-protector)
|
||||
|
||||
include ../mach/Machrules
|
||||
include ../Rules
|
||||
|
@ -53,6 +53,15 @@ server-interfaces := mach/exc
|
||||
|
||||
# Clear any environment value.
|
||||
generated =
|
||||
|
||||
# Avoid ssp before TLS is initialized.
|
||||
CFLAGS-mach_init.o = $(no-stack-protector)
|
||||
CFLAGS-RPC_vm_statistics.o = $(no-stack-protector)
|
||||
CFLAGS-RPC_vm_map.o = $(no-stack-protector)
|
||||
CFLAGS-RPC_vm_protect.o = $(no-stack-protector)
|
||||
CFLAGS-RPC_i386_set_gdt.o = $(no-stack-protector)
|
||||
CFLAGS-RPC_i386_set_ldt.o = $(no-stack-protector)
|
||||
CFLAGS-RPC_task_get_special_port.o = $(no-stack-protector)
|
||||
|
||||
# Translate GNU names for CPUs into the names used in Mach header files.
|
||||
mach-machine = $(patsubst powerpc,ppc,$(base-machine))
|
||||
|
Loading…
Reference in New Issue
Block a user