diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-03-26 21:40:46 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-03-30 12:44:18 +0200 |
commit | 065d766f09b4163b9c016583fbdfb9291a039439 (patch) | |
tree | adfd67f89adc59800d2721effab7c09a02754246 /gnu/packages | |
parent | d9dc32b8716e5213fa127587dce64a6bbe5daee8 (diff) |
gnu: glibc: Work around broken GNU Mach header detection.
* gnu/packages/base.scm (%glibc/hurd-configure-flags): New variable.
(glibc)[arguments]: Use it.
(glibc/hurd-headers)[arguments]: likewise.
* gnu/packages/cross-base.scm (cross-libc*): Likewise.
Co-authored-by: Josselin Poiret <dev@jpoiret.xyz>
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/base.scm | 19 | ||||
-rw-r--r-- | gnu/packages/cross-base.scm | 4 |
2 files changed, 19 insertions, 4 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 041f16b4fc..520c2093f3 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -755,6 +755,17 @@ the store.") (home-page "https://www.gnu.org/software/guix//") (license gpl3+))) +(define-public %glibc/hurd-configure-flags + ;; '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=no" + "libc_cv_mach_task_creation_time=yes")) + (define-public glibc ;; This is the GNU C Library, used on GNU/Linux and GNU/Hurd. Prior to ;; version 2.28, GNU/Hurd used a different glibc branch. @@ -854,7 +865,8 @@ the store.") ;; On GNU/Hurd we get discarded-qualifiers warnings for ;; 'device_write_inband' among other things. Ignore them. ,@(if (hurd-target?) - '("--disable-werror") + `("--disable-werror" + ,@%glibc/hurd-configure-flags) '())) #:tests? #f ; XXX @@ -1392,9 +1404,10 @@ command.") (arguments (substitute-keyword-arguments (package-arguments glibc) ;; We just pass the flags really needed to build the headers. - ((#:configure-flags _) + ((#:configure-flags flags) `(list "--enable-add-ons" - "--host=i586-pc-gnu")) + "--host=i586-pc-gnu" + ,@%glibc/hurd-configure-flags)) ((#:phases _) '(modify-phases %standard-phases (replace 'install diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 2959616af6..f86e8005c4 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -577,7 +577,9 @@ and the cross tool chain." ((#:configure-flags flags) `(cons ,(string-append "--host=" target) ,(if (target-hurd? target) - `(cons "--disable-werror" ,flags) + `(append (list "--disable-werror" + ,@%glibc/hurd-configure-flags) + ,flags) flags))) ((#:phases phases) `(modify-phases ,phases |