diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2018-12-11 16:52:47 -0200 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2018-12-19 08:52:43 -0200 |
commit | 27e039455d5ef0d30b835fb422fffafd42600fa4 (patch) | |
tree | 3b731b89c96c3fbb80d45da896fcd5d97b654f3e /sysdeps/unix/sysv/linux/x86_64 | |
parent | b4ce4476fc5d14fff413abe130b2ea7a7554f8d3 (diff) | |
download | glibc-27e039455d5ef0d30b835fb422fffafd42600fa4.tar.gz glibc-27e039455d5ef0d30b835fb422fffafd42600fa4.tar.xz glibc-27e039455d5ef0d30b835fb422fffafd42600fa4.zip |
m68k: Fix sigaction kernel definition (BZ #23967)
Commit b4a5d26d883 (linux: Consolidate sigaction implementation) added a wrong kernel_sigaction definition for m68k, meant for __NR_sigaction instead of __NR_rt_sigaction as used on generic Linux sigaction implementation. This patch fixes it by using the Linux generic definition meant for the RT kernel ABI. Checked the signal tests on emulated m68-linux-gnu (Aranym). It fixes the faulty signal/tst-sigaction and man works as expected. Adhemerval Zanella <adhemerval.zanella@linaro.org> James Clarke <jrtc27@jrtc27.com> [BZ #23967] * sysdeps/unix/sysv/linux/kernel_sigaction.h (HAS_SA_RESTORER): Define if SA_RESTORER is defined. (kernel_sigaction): Define sa_restorer if HAS_SA_RESTORER is defined. (SET_SA_RESTORER, RESET_SA_RESTORER): Define iff the macro are not already defined. * sysdeps/unix/sysv/linux/m68k/kernel_sigaction.h (SA_RESTORER, kernel_sigaction, SET_SA_RESTORER, RESET_SA_RESTORER): Remove definitions. (HAS_SA_RESTORER): Define. * sysdeps/unix/sysv/linux/sparc/kernel_sigaction.h (SA_RESTORER, SET_SA_RESTORER, RESET_SA_RESTORER): Remove definition. (HAS_SA_RESTORER): Define. * sysdeps/unix/sysv/linux/nios2/kernel_sigaction.h: Include generic kernel_sigaction after define SET_SA_RESTORER and RESET_SA_RESTORER. * sysdeps/unix/sysv/linux/powerpc/kernel_sigaction.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise. (cherry picked from commit 43a45c2d829f164c1fb94d5f44afe326fae946e1)
Diffstat (limited to 'sysdeps/unix/sysv/linux/x86_64')
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/sigaction.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigaction.c b/sysdeps/unix/sysv/linux/x86_64/sigaction.c index 4e6d9cc32e..9aa2c7f860 100644 --- a/sysdeps/unix/sysv/linux/x86_64/sigaction.c +++ b/sysdeps/unix/sysv/linux/x86_64/sigaction.c @@ -18,7 +18,6 @@ #include <signal.h> #define SA_RESTORER 0x04000000 -#include <kernel_sigaction.h> extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; @@ -29,6 +28,8 @@ extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; #define RESET_SA_RESTORER(act, kact) \ (act)->sa_restorer = (kact)->sa_restorer +#include <kernel_sigaction.h> + #include <sysdeps/unix/sysv/linux/sigaction.c> /* NOTE: Please think twice before making any changes to the bits of |