GNU bug report logs - #74290
[PATCH 00/31] Add support for x86_64-gnu, aka the 64bit Hurd.

Previous Next

Package: guix-patches;

Reported by: Janneke Nieuwenhuizen <janneke <at> gnu.org>

Date: Sun, 10 Nov 2024 10:35:02 UTC

Severity: normal

Tags: patch

Done: Janneke Nieuwenhuizen <janneke <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Janneke Nieuwenhuizen <janneke <at> gnu.org>
To: 74290 <at> debbugs.gnu.org
Cc: Andreas Enge <andreas <at> enge.fr>, Ludovic Courtès <ludo <at> gnu.org>
Subject: [bug#74290] [PATCH v4 26/58] gnu: glibc/hurd: Add patch for the 64bit Hurd, fixing "raise".
Date: Sun, 24 Nov 2024 08:54:49 +0100
This fixes findutil's gnulib-tests's test-sigaction's raise call, by working
around an alleged gcc-14.2 optimization bug.  See
<https://lists.gnu.org/archive/html/bug-hurd/2024-11/msg00143.html>.

* gnu/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm (glibc/hurd): Use it.

Change-Id: I11e683f521f34dedeb7f739a2545f5d1d866922a
---
 gnu/local.mk                                  |  1 +
 gnu/packages/base.scm                         |  3 +-
 .../glibc-hurd64-gcc-14.2-tls-bug.patch       | 28 +++++++++++++++++++
 3 files changed, 31 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 3df0d4effa..6164ee45c7 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1439,6 +1439,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/glibc-hurd-mach-print.patch		\
   %D%/packages/patches/glibc-hurd-pthread_setcancelstate.patch	\
   %D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch	\
+  %D%/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch	\
   %D%/packages/patches/glibc-hurd64-fault.patch			\
   %D%/packages/patches/glibc-hurd64-intr-msg-clobber.patch	\
   %D%/packages/patches/glibc-hurd64-sgms-context.patch		\
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 80e53c2e52..cbce8bd634 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1598,7 +1598,8 @@ (define-public glibc/hurd
                 (search-patches "glibc-hurd-pthread_setcancelstate.patch"
                                 "glibc-hurd64-fault.patch"
                                 "glibc-hurd64-intr-msg-clobber.patch"
-                                "glibc-hurd64-sgms-context.patch")))))))
+                                "glibc-hurd64-sgms-context.patch"
+                                "glibc-hurd64-gcc-14.2-tls-bug.patch")))))))
 
 (define-public glibc/hurd-headers
   (package/inherit glibc/hurd
diff --git a/gnu/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch b/gnu/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch
new file mode 100644
index 0000000000..5823a230fd
--- /dev/null
+++ b/gnu/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch
@@ -0,0 +1,28 @@
+From 0b23ab98d25d880ee602af91e62aa39564510cac Mon Sep 17 00:00:00 2001
+From: Janneke Nieuwenhuizen <janneke <at> gnu.org>
+Date: Fri, 22 Nov 2024 16:26:08 +0100
+Subject: [PATCH] x86_64-hurd: sigreturn: Hack around gcc-14.2 optimization
+ bug.
+
+See: <https://lists.gnu.org/archive/html/bug-hurd/2024-11/msg00143.html>.
+
+* sysdeps/mach/hurd/x86_64/sigreturn.c (__sigreturn2): Add nop.
+---
+ sysdeps/mach/hurd/x86_64/sigreturn.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sysdeps/mach/hurd/x86_64/sigreturn.c b/sysdeps/mach/hurd/x86_64/sigreturn.c
+index 7a0193497d..256cc1268a 100644
+--- a/sysdeps/mach/hurd/x86_64/sigreturn.c
++++ b/sysdeps/mach/hurd/x86_64/sigreturn.c
+@@ -45,6 +45,7 @@ __sigreturn2 (struct hurd_sigstate *ss, uintptr_t *usp,
+     (void) __mach_port_mod_refs (__mach_task_self (), reply_port,
+                                  MACH_PORT_RIGHT_RECEIVE, -1);
+   THREAD_SETMEM (THREAD_SELF, reply_port, sc_reply_port);
++  asm ("nop"); // See <https://lists.gnu.org/archive/html/bug-hurd/2024-11/msg00143.html>.
+ 
+   asm volatile (
+                 /* Point the stack to the register dump.  */
+-- 
+2.46.0
+
-- 
2.46.0





This bug report was last modified 175 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.