From ccc5c14c44f3fa76f61b8aae947cf3b853a6c833 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 25 Aug 2020 00:43:33 +0100 Subject: [klibc] signal: Note another reason to define _KLIBC_NEEDS_SA_RESTORER On some architectures we should set SA_RESTORER to avoid the need for a signal trampoline and executable stack. Signed-off-by: Ben Hutchings --- usr/include/klibc/sysconfig.h | 3 ++- usr/klibc/sigaction.c | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/usr/include/klibc/sysconfig.h b/usr/include/klibc/sysconfig.h index c91d5b85a31059..4e38b1fd1e1ddd 100644 --- a/usr/include/klibc/sysconfig.h +++ b/usr/include/klibc/sysconfig.h @@ -154,7 +154,8 @@ * * Some architectures, like x86-64 and some i386 Fedora kernels, * do not provide a default sigreturn, and therefore must have - * SA_RESTORER set. + * SA_RESTORER set. On others, the default sigreturn requires an + * executable stack, which we should avoid. */ #ifndef _KLIBC_NEEDS_SA_RESTORER # define _KLIBC_NEEDS_SA_RESTORER 0 diff --git a/usr/klibc/sigaction.c b/usr/klibc/sigaction.c index 30ef39efab5215..966bc1c6f6c3a8 100644 --- a/usr/klibc/sigaction.c +++ b/usr/klibc/sigaction.c @@ -31,8 +31,6 @@ int sigaction(int sig, const struct sigaction *act, struct sigaction *oact) sa = *act; act = &sa; - /* The kernel can't be trusted to have a valid default - restorer */ sa.sa_flags |= SA_RESTORER; sa.sa_restorer = &__sigreturn; } -- cgit 1.2.3-korg