diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2017-08-27 22:26:49 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2017-08-27 22:29:43 +0200 |
commit | 99ee4d26dc07c3eadfbf6793db26ef9dfb1551e5 (patch) | |
tree | 44121c6237d1bfbf27d9508c51328207f94c8802 /mach | |
parent | 97e02ad23392f929862d6a04643e7f2fd91baebc (diff) | |
download | glibc-99ee4d26dc07c3eadfbf6793db26ef9dfb1551e5.tar.gz glibc-99ee4d26dc07c3eadfbf6793db26ef9dfb1551e5.tar.xz glibc-99ee4d26dc07c3eadfbf6793db26ef9dfb1551e5.zip |
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).
Diffstat (limited to 'mach')
-rw-r--r-- | mach/Makefile | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/mach/Makefile b/mach/Makefile index 127cad00ca..b4f18b1525 100644 --- a/mach/Makefile +++ b/mach/Makefile @@ -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)) |