GNU bug report logs - #62307
[PATCH core-updates 00/15] Update Hurd and fix build failures

Previous Next

Package: guix-patches;

Reported by: Josselin Poiret <dev <at> jpoiret.xyz>

Date: Mon, 20 Mar 2023 22:08:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ludovic Courtès <ludo <at> gnu.org>
To: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: 62307 <at> debbugs.gnu.org
Subject: [bug#62307] [PATCH core-updates 00/15] Update Hurd and fix build failures
Date: Wed, 22 Mar 2023 15:54:33 +0100
[Message part 1 (text/plain, inline)]
Hi,

Josselin Poiret <dev <at> jpoiret.xyz> skribis:

> * gnu/packages/base.scm (glibc/fix-for-hurd-cross): New variable.
> (glibc/hurd-headers): Inherit it.
> * gnu/packages/patches/glibc-hurd-add-freestanding-for-configure.patch:
> * gnu/packages/patches/glibc-hurd-add-freestanding-to-cppflags.patch: New files
> * gnu/local.mk (dist_patch_DATA): Register patches.

I’d like to keep this approach (defining a package variant and carrying
Hurd-specific patches) as a last resort.

If I’m not mistaken, we should be able to achieve the same result with a
patch like this one (untested):

[Message part 2 (text/x-patch, inline)]
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 2959616af6..9db12bcf9f 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -577,7 +577,20 @@ (define* (cross-libc* target
            ((#:configure-flags flags)
             `(cons ,(string-append "--host=" target)
                    ,(if (target-hurd? target)
-                        `(cons "--disable-werror" ,flags)
+                        `(cons* "--disable-werror"
+
+                                ;; 'configure' in glibc 2.35 omits to pass
+                                ;; '-ffreestanding' when detecting Mach
+                                ;; headers.  This is fixed in glibc commits
+                                ;; 8b8c768e3c701ed1993789bb46acb8a12c7a93df
+                                ;; and
+                                ;; 7685630b98ca2a3f5de86eadf130993e6cf998a0;
+                                ;; as a workaround, bypass those tests.
+                                "ac_cv_header_mach_mach_types_defs=yes"
+                                "ac_cv_header_mach_mach_types_h=yes"
+                                "ac_cv_header_mach_machine_ndr_def_h=yes"
+                                "libc_cv_mach_task_creation_time=yes"
+                                ,flags)
                         flags)))
            ((#:phases phases)
             `(modify-phases ,phases
[Message part 3 (text/plain, inline)]
How does that sound?

Thanks,
Ludo’.

This bug report was last modified 2 years and 110 days ago.

Previous Next


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