public inbox for libc-stable@sourceware.org
 help / color / mirror / Atom feed
* Re: [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069]
  2018-01-01  0:00 [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069] Aurelien Jarno
@ 2018-01-01  0:00 ` DJ Delorie
  2018-01-01  0:00   ` Aurelien Jarno
  2018-01-01  0:00 ` Dmitry V. Levin
  2018-01-01  0:00 ` Joseph Myers
  2 siblings, 1 reply; 6+ messages in thread
From: DJ Delorie @ 2018-01-01  0:00 UTC (permalink / raw)
  To: Aurelien Jarno; +Cc: libc-alpha, libc-stable, andrew, darius, palmer


Could the #ifdef from b4a5d26d8835's kernel_sigaction.h be backported
instead?  It still wouldn't be a pristine backport (I'm not recommending
backporting *all* of b4a5d26d8835) but at least as branch-specific
'hack' it's closer to what's in master than a riscv-specific header.

Granted, this means a riscv-specific patch *might* affect other targets,
but if that's not an issue, I think something closer to master would be
preferred.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069]
  2018-01-01  0:00 ` DJ Delorie
@ 2018-01-01  0:00   ` Aurelien Jarno
  2018-01-01  0:00     ` DJ Delorie
  0 siblings, 1 reply; 6+ messages in thread
From: Aurelien Jarno @ 2018-01-01  0:00 UTC (permalink / raw)
  To: DJ Delorie; +Cc: libc-alpha, libc-stable, andrew, darius, palmer

On 2018-04-16 17:54, DJ Delorie wrote:
> 
> Could the #ifdef from b4a5d26d8835's kernel_sigaction.h be backported
> instead?  It still wouldn't be a pristine backport (I'm not recommending
> backporting *all* of b4a5d26d8835) but at least as branch-specific
> 'hack' it's closer to what's in master than a riscv-specific header.

We can backport that #ifdef from b4a5d26d8835, but it means we also need
to backport the new kernel_sigaction.h files for m68k, s390, sparc, tile
(if I haven't missed any), plus commit d8abfab7d46a to fix a regression
on s390.

So it seems more risky to me. Also note that this is not an installed
header, but just a compile time header.

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069]
@ 2018-01-01  0:00 Aurelien Jarno
  2018-01-01  0:00 ` DJ Delorie
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Aurelien Jarno @ 2018-01-01  0:00 UTC (permalink / raw)
  To: libc-alpha
  Cc: libc-stable, DJ Delorie, Andrew Waterman, Darius Rad,
	Palmer Dabbelt, Aurelien Jarno

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069]
  2018-01-01  0:00 [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069] Aurelien Jarno
  2018-01-01  0:00 ` DJ Delorie
@ 2018-01-01  0:00 ` Dmitry V. Levin
  2018-01-01  0:00 ` Joseph Myers
  2 siblings, 0 replies; 6+ messages in thread
From: Dmitry V. Levin @ 2018-01-01  0:00 UTC (permalink / raw)
  To: Aurelien Jarno
  Cc: libc-alpha, libc-stable, DJ Delorie, Andrew Waterman, Darius Rad,
	Palmer Dabbelt

[-- Attachment #1: Type: text/plain, Size: 1772 bytes --]

On Mon, Apr 16, 2018 at 10:41:32PM +0200, Aurelien Jarno wrote:
> 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;
> +};

I think this is OK given that b4a5d26d8835 cannot be easily backported to 2.27.


-- 
ldv

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069]
  2018-01-01  0:00 [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069] Aurelien Jarno
  2018-01-01  0:00 ` DJ Delorie
  2018-01-01  0:00 ` Dmitry V. Levin
@ 2018-01-01  0:00 ` Joseph Myers
  2 siblings, 0 replies; 6+ messages in thread
From: Joseph Myers @ 2018-01-01  0:00 UTC (permalink / raw)
  To: Aurelien Jarno
  Cc: libc-alpha, libc-stable, DJ Delorie, Andrew Waterman, Darius Rad,
	Palmer Dabbelt

On Mon, 16 Apr 2018, Aurelien Jarno wrote:

> 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.

I think there ought to be a relevant test added to the glibc testsuite (on 
master and backported) if there isn't one already, unless it's hard to 
test this issue for some reason.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069]
  2018-01-01  0:00   ` Aurelien Jarno
@ 2018-01-01  0:00     ` DJ Delorie
  0 siblings, 0 replies; 6+ messages in thread
From: DJ Delorie @ 2018-01-01  0:00 UTC (permalink / raw)
  To: Aurelien Jarno; +Cc: libc-alpha, libc-stable, andrew, darius, palmer


Aurelien Jarno <aurelien@aurel32.net> writes:
> So it seems more risky to me.

I agree.

> Also note that this is not an installed header, but just a compile
> time header.

So no user-visible ABI change, good.  Ok with me then :-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-04-20 17:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-01  0:00 [PATCH 2.27] RISC-V: fix struct kernel_sigaction to match the kernel version [BZ #23069] Aurelien Jarno
2018-01-01  0:00 ` DJ Delorie
2018-01-01  0:00   ` Aurelien Jarno
2018-01-01  0:00     ` DJ Delorie
2018-01-01  0:00 ` Dmitry V. Levin
2018-01-01  0:00 ` Joseph Myers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).