[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
26/27: gnu: glibc/hurd: Add patch for the 64bit Hurd, fixing "raise".
From: |
guix-commits |
Subject: |
26/27: gnu: glibc/hurd: Add patch for the 64bit Hurd, fixing "raise". |
Date: |
Tue, 3 Dec 2024 02:41:16 -0500 (EST) |
janneke pushed a commit to branch master
in repository guix.
commit 5ffbd2015cd9060046f6a5f64cc2f70eaf17f7d1
Author: Janneke Nieuwenhuizen <janneke@gnu.org>
AuthorDate: Fri Nov 22 15:27:36 2024 +0100
gnu: glibc/hurd: Add patch for the 64bit Hurd, fixing "raise".
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 ++-
.../patches/glibc-hurd64-gcc-14.2-tls-bug.patch | 28 ++++++++++++++++++++++
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index d1540afa24..99286e904a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1441,6 +1441,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 @@ command.")
(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@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
+
- 05/27: gnu: cross-libc: Support cross-building for the 64bit Hurd., (continued)
- 05/27: gnu: cross-libc: Support cross-building for the 64bit Hurd., guix-commits, 2024/12/03
- 02/27: gnu: mig: Update to 1.8+git20231217., guix-commits, 2024/12/03
- 08/27: gnu: grep: Fix build for the 64bit Hurd., guix-commits, 2024/12/03
- 10/27: gnu: libxcrypt: Support the 64bit Hurd., guix-commits, 2024/12/03
- 11/27: gnu: libstdc++: Support the 64bit Hurd., guix-commits, 2024/12/03
- 09/27: gnu: patch: Fix build for the 64bit Hurd., guix-commits, 2024/12/03
- 17/27: gnu: perl: Support [cross-]build with gcc-14 and the 64bit Hurd., guix-commits, 2024/12/03
- 25/27: gnu: gcc-14: Force libdir /lib instead of /lib64 for the 64bit Hurd., guix-commits, 2024/12/03
- 27/27: gnu: make-bootstrap: Update gcc-static to gcc-14, for the 64bit Hurd., guix-commits, 2024/12/03
- 21/27: gnu: libedit: Fix [cross-]build with gcc-14 for 32bit., guix-commits, 2024/12/03
- 26/27: gnu: glibc/hurd: Add patch for the 64bit Hurd, fixing "raise".,
guix-commits <=
- 18/27: gnu: texinfo-4: Fix [cross-]build with gcc-14 and the 64bit Hurd., guix-commits, 2024/12/03
- 16/27: gnu: libffi: Fix [cross-]build with gcc-14., guix-commits, 2024/12/03
- 13/27: gnu: bash: Avoid hang when cross-built for the Hurd., guix-commits, 2024/12/03
- 12/27: gnu: glibc/hurd: Add patches for the 64bit Hurd., guix-commits, 2024/12/03
- 14/27: gnu: git-minimal: Support [cross-]build with gcc-14 and the 64bit Hurd., guix-commits, 2024/12/03
- 23/27: gnu: guile-lzlib: Support [cross-]build with gcc-14 and the 64bit Hurd., guix-commits, 2024/12/03
- 20/27: gnu: netdde: Fix build with gcc-14., guix-commits, 2024/12/03
- 22/27: gnu: libssh: Fix [cross-]build with gcc-14 for 32bit., guix-commits, 2024/12/03
- 24/27: gnu: cross-base: Update %xgcc to gcc-14, to support the 64bit Hurd., guix-commits, 2024/12/03
- 19/27: gnu: hurd: Fix build with gcc-14., guix-commits, 2024/12/03