This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069]
- From: Aurelien Jarno <aurelien at aurel32 dot net>
- To: libc-alpha at sourceware dot org
- Cc: libc-stable at sourceware dot org, DJ Delorie <dj at redhat dot com>, Andrew Waterman <andrew at sifive dot com>, Darius Rad <darius at bluespec dot com>, Palmer Dabbelt <palmer at dabbelt dot com>, Aurelien Jarno <aurelien at aurel32 dot net>
- Date: Mon, 16 Apr 2018 22:41:32 +0200
- Subject: [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069]
The RISC-V kernel doesn't define SA_RESTORER, hence the kernel version
of struct sigaction doesn't have the sa_restorer field. The default
kernel_sigaction.h therefore can't be used.
This patch adds a RISC-V specific version of kernel_sigaction.h to fix
the issue. This fixes for example the libnih testsuite.
Note that this patch is not needed in master as the bug has been fixed
by commit b4a5d26d8835 ("linux: Consolidate sigaction implementation").
---
ChangeLog | 5 +++++
sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h | 7 +++++++
2 files changed, 12 insertions(+)
create mode 100644 sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h
diff --git a/ChangeLog b/ChangeLog
index 536fcf1c4f..f365475a47 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-04-16 Aurelien Jarno <aurelien@aurel32.net>
+
+ [BZ #23069]
+ * sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h: New file.
+
2018-03-29 Florian Weimer <fweimer@redhat.com>
* sysdeps/unix/sysv/linux/i386/tst-bz21269.c (do_test): Also
diff --git a/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h b/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h
new file mode 100644
index 0000000000..2a62bcc5bc
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/riscv/kernel_sigaction.h
@@ -0,0 +1,7 @@
+/* This is the sigaction structure from the RISC-V Linux 4.15 kernel. */
+
+struct kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned long sa_flags;
+ sigset_t sa_mask;
+};
--
2.16.3