From 2e6c45c59bcd40f1ae8466cbd32f4d263ff45619 Mon Sep 17 00:00:00 2001 From: Nick Alcock Date: Mon, 26 Dec 2016 10:09:06 +0100 Subject: Do not stack-protect sigreturn stubs [BZ #7065] These are called from the kernel with the stack at a carefully- chosen location so that the stack frame can be restored: they must not move the stack pointer lest garbage be restored into the registers. We explicitly inhibit protection for SPARC and for signal/sigreturn.c: other arches either define their sigreturn stubs in .S files, or (i386, x86_64, mips) use macros expanding to top-level asm blocks and explicit labels in the text section to mock up a "function" without telling the compiler that one is there at all. --- signal/Makefile | 2 ++ 1 file changed, 2 insertions(+) (limited to 'signal') diff --git a/signal/Makefile b/signal/Makefile index 9d29ff49f3..ccd6f51619 100644 --- a/signal/Makefile +++ b/signal/Makefile @@ -48,3 +48,5 @@ CFLAGS-sigsuspend.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-sigtimedwait.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-sigwait.c = -fexceptions -fasynchronous-unwind-tables CFLAGS-sigwaitinfo.c = -fexceptions -fasynchronous-unwind-tables + +CFLAGS-sigreturn.c = $(no-stack-protector) -- cgit v1.2.3