diff options
author | Ben Hutchings <ben@decadent.org.uk> | 2020-08-25 00:43:33 +0100 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2020-08-27 15:00:33 +0100 |
commit | ccc5c14c44f3fa76f61b8aae947cf3b853a6c833 (patch) | |
tree | 5fd58faa4a10ca2b4ca9a7041153e287dd1351b9 | |
parent | b0c39f5ac8913b841037f8a90d83e55402c0ac25 (diff) | |
download | klibc-ccc5c14c44f3fa76f61b8aae947cf3b853a6c833.tar.gz |
[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 <ben@decadent.org.uk>
-rw-r--r-- | usr/include/klibc/sysconfig.h | 3 | ||||
-rw-r--r-- | 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; } |