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>
32 lines
750 B
Makefile
32 lines
750 B
Makefile
#
|
|
# Copyright 2003 PathScale, Inc.
|
|
#
|
|
# Licensed under the GPL
|
|
#
|
|
|
|
obj-y = bugs.o delay.o fault.o ldt.o mem.o ptrace.o ptrace_user.o \
|
|
sigcontext.o signal.o syscalls.o syscall_table.o sysrq.o ksyms.o \
|
|
tls.o
|
|
|
|
obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o
|
|
obj-$(CONFIG_MODULES) += um_module.o
|
|
|
|
subarch-obj-y = lib/bitops.o lib/csum-partial.o lib/memcpy.o lib/thunk.o
|
|
subarch-obj-$(CONFIG_MODULES) += kernel/module.o
|
|
|
|
ldt-y = ../sys-i386/ldt.o
|
|
|
|
USER_OBJS := ptrace_user.o sigcontext.o stub_segv.o
|
|
|
|
USER_OBJS += user-offsets.s
|
|
extra-y += user-offsets.s
|
|
|
|
CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING)
|
|
|
|
extra-$(CONFIG_MODE_TT) += unmap.o
|
|
|
|
include arch/um/scripts/Makefile.rules
|
|
|
|
$(obj)/stub_segv.o $(obj)/unmap.o: \
|
|
_c_flags = $(call unprofile,$(CFLAGS))
|