@@ -1625,6 +1625,7 @@ dist_patch_DATA = \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.0.patch \
%D%/packages/patches/libgeotiff-fix-tests-with-proj-9.3.1.patch \
%D%/packages/patches/libgeotiff-fix-tests-on-i386.patch \
+ %D%/packages/patches/libgpg-error-hurd64.patch \
%D%/packages/patches/libguestfs-syms.patch \
%D%/packages/patches/libobjc2-unbundle-robin-map.patch \
%D%/packages/patches/libvirt-add-install-prefix.patch \
@@ -22,7 +22,7 @@
;;; Copyright © 2021 Nikita Domnitskii <nikita@domnitskii.me>
;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
-;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
@@ -144,9 +144,25 @@ (define-public libgpg-error
;; configuration, as this is not correct for
;; all architectures.
(_ #t)))
- (#t #t)))))))
+ (#t #t)))))
+ #$@(if (target-hurd64?)
+ #~((add-after 'unpack 'apply-hurd64-patch
+ (lambda _
+ (let ((patch
+ #$(local-file
+ (search-patch
+ "libgpg-error-hurd64.patch"))))
+ (invoke "patch" "--force" "-p1" "-i" patch)))))
+ #~())))
((system-hurd?)
- #~((add-after 'unpack 'skip-tests
+ #~((add-after 'unpack 'apply-hurd64-patch
+ (lambda _
+ (let ((patch
+ #$(local-file
+ (search-patch
+ "libgpg-error-hurd64.patch"))))
+ (invoke "patch" "--force" "-p1" "-i" patch))))
+ (add-after 'unpack 'skip-tests
(lambda _
(substitute* "tests/t-syserror.c"
(("(^| )main *\\(.*" all)
new file mode 100644
@@ -0,0 +1,78 @@
+Upstream-status: Taken from upstream (1.48 series).
+
+From c62157c615a6379677c8f106bf9413d2611fd95e Mon Sep 17 00:00:00 2001
+From: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Sat, 6 May 2023 16:10:55 +0200
+Subject: [PATCH] core: Add hurd-amd64 support
+
+--
+This supports the x86_64-pc-gnu triplet
+
+Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
+---
+ src/Makefile.am | 1 +
+ src/mkheader.c | 2 ++
+ src/syscfg/lock-obj-pub.x86_64-unknown-gnu.h | 24 ++++++++++++++++++++
+ 3 files changed, 27 insertions(+)
+ create mode 100644 src/syscfg/lock-obj-pub.x86_64-unknown-gnu.h
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index c61adde..9389e99 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -67,6 +67,7 @@ lock_obj_pub = \
+ syscfg/lock-obj-pub.sparc-unknown-linux-gnu.h \
+ syscfg/lock-obj-pub.sparc64-unknown-linux-gnu.h \
+ syscfg/lock-obj-pub.x86_64-apple-darwin.h \
++ syscfg/lock-obj-pub.x86_64-unknown-gnu.h \
+ syscfg/lock-obj-pub.x86_64-unknown-kfreebsd-gnu.h \
+ syscfg/lock-obj-pub.x86_64-unknown-linux-gnu.h \
+ syscfg/lock-obj-pub.x86_64-unknown-linux-gnux32.h \
+diff --git a/src/mkheader.c b/src/mkheader.c
+index 8fbfbd6..cc0eaa3 100644
+--- a/src/mkheader.c
++++ b/src/mkheader.c
+@@ -108,6 +108,8 @@ canon_host_triplet (const char *triplet, int no_vendor_hack, char **r_os)
+ {"x86_64-pc-linux-gnuhardened1", "x86_64-unknown-linux-gnu" },
+ {"x86_64-pc-linux-gnu" },
+
++ {"x86_64-pc-gnu"},
++
+ {"powerpc-unknown-linux-gnuspe", "powerpc-unknown-linux-gnu" },
+
+ {"arm-unknown-linux-gnueabihf", "arm-unknown-linux-gnueabi" },
+diff --git a/src/syscfg/lock-obj-pub.x86_64-unknown-gnu.h b/src/syscfg/lock-obj-pub.x86_64-unknown-gnu.h
+new file mode 100644
+index 0000000..7c7e6f1
+--- /dev/null
++++ b/src/syscfg/lock-obj-pub.x86_64-unknown-gnu.h
+@@ -0,0 +1,24 @@
++## lock-obj-pub.x86_64-pc-gnu.h
++## File created by gen-posix-lock-obj - DO NOT EDIT
++## To be included by mkheader into gpg-error.h
++
++typedef struct
++{
++ long _vers;
++ union {
++ volatile char _priv[32];
++ long _x_align;
++ long *_xp_align;
++ } u;
++} gpgrt_lock_t;
++
++#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
++ 0,0,0,0,0,0,0,0, \
++ 0,0,0,0,0,0,0,0, \
++ 0,0,0,0,0,0,0,0}}}
++##
++## Local Variables:
++## mode: c
++## buffer-read-only: t
++## End:
++##
+
+base-commit: 7a42ff0ec971f4f2add28b0edad6cf381b5b8acc
+--
+2.46.0
+