Origin: https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=
ccc5c14c44f3fa76f61b8aae947cf3b853a6c833
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>
Gbp-Pq: Name 0001-klibc-signal-Note-another-reason-to-define-_KLIBC_NE.patch
*
* 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
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;
}