275e6e1ee2
To make some half-assembly stubs compile, disable various "hardened" GCC features: *) we can't make it build PIC code as we need %ebx to do syscalls and GCC wants it free for PIC *) we can't leave stack protection as the stub is moved (not relocated!) in memory so the RIP-relative access to the canary tries reading from an unmapped address and causes a segfault, since we move the stub of various megabytes (the exact amount will be decided at runtime) away from the link-time address. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Acked-by: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
22 lines
592 B
Makefile
22 lines
592 B
Makefile
#
|
|
# Copyright (C) 2002 - 2004 Jeff Dike (jdike@addtoit.com)
|
|
# Licensed under the GPL
|
|
#
|
|
|
|
obj-y := clone.o exec_kern.o mem.o mmu.o process_kern.o \
|
|
syscall.o tlb.o uaccess.o
|
|
|
|
USER_OBJS := clone.o
|
|
|
|
include arch/um/scripts/Makefile.rules
|
|
|
|
# clone.o is in the stub, so it can't be built with profiling
|
|
# GCC hardened also auto-enables -fpic, but we need %ebx so it can't work ->
|
|
# disable it
|
|
|
|
CFLAGS_clone.o := $(CFLAGS_NO_HARDENING)
|
|
|
|
# since we're setting c_flags we _must_ add $(CFLAGS_$(*F).o).
|
|
|
|
$(obj)/clone.o : c_flags = -Wp,-MD,$(depfile) $(call unprofile,$(USER_CFLAGS)) $(CFLAGS_$(*F).o)
|