mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-18 21:46:35 +01:00
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
This commit is contained in:
parent
4d077bba89
commit
5ffbd2015c
3 changed files with 31 additions and 1 deletions
|
@ -1441,6 +1441,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/glibc-hurd-mach-print.patch \
|
%D%/packages/patches/glibc-hurd-mach-print.patch \
|
||||||
%D%/packages/patches/glibc-hurd-pthread_setcancelstate.patch \
|
%D%/packages/patches/glibc-hurd-pthread_setcancelstate.patch \
|
||||||
%D%/packages/patches/glibc-hurd-signal-sa-siginfo.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-fault.patch \
|
||||||
%D%/packages/patches/glibc-hurd64-intr-msg-clobber.patch \
|
%D%/packages/patches/glibc-hurd64-intr-msg-clobber.patch \
|
||||||
%D%/packages/patches/glibc-hurd64-sgms-context.patch \
|
%D%/packages/patches/glibc-hurd64-sgms-context.patch \
|
||||||
|
|
|
@ -1598,7 +1598,8 @@ (define-public glibc/hurd
|
||||||
(search-patches "glibc-hurd-pthread_setcancelstate.patch"
|
(search-patches "glibc-hurd-pthread_setcancelstate.patch"
|
||||||
"glibc-hurd64-fault.patch"
|
"glibc-hurd64-fault.patch"
|
||||||
"glibc-hurd64-intr-msg-clobber.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
|
(define-public glibc/hurd-headers
|
||||||
(package/inherit glibc/hurd
|
(package/inherit glibc/hurd
|
||||||
|
|
28
gnu/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch
Normal file
28
gnu/packages/patches/glibc-hurd64-gcc-14.2-tls-bug.patch
Normal file
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue