guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [core-updates] aarch64: Cannot build glibc-2.39


From: Ludovic Courtès
Subject: Re: [core-updates] aarch64: Cannot build glibc-2.39
Date: Tue, 13 Aug 2024 18:52:01 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Ricardo Wurmus <rekado@elephly.net> skribis:

> Ricardo Wurmus <rekado@elephly.net> writes:
>
>> Ricardo Wurmus <rekado@elephly.net> writes:
>>
>>> I tried to deploy to my aarch64 system with Guix on core-updates.  This
>>> fails with a configure failure in the build of glibc 2.39.
>>
>> You can reproduce this like so:
>>
>>   ./pre-inst-env guix build -K --system=aarch64-linux -e \
>>       '((@@ (gnu packages make-bootstrap) glibc-for-bootstrap) (@ (gnu 
>> packages base) glibc))'
>
> I was able to build that glibc with this diff:

I’m testing this other patch below.  I can build ‘bootstrap-tarballs’
and ‘guile-initrd’ on x86_64-linux with it; the aarch64-linux build is
still ongoing and will take a while.

That would be a welcome simplification of all this.

Ludo’.

diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 63c84e93ef..13cf40d37b 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -87,12 +87,6 @@ (define glibc-for-bootstrap
                   "--enable-static-nss"
                   ,flags))))
 
-      ;; Make sure to build glibc with the same compiler version as the rest
-      ;; of the bootstrap.  Otherwise it fails to statically link on aarch64.
-      (native-inputs
-       `(("gcc" ,gcc-7)
-         ,@(package-native-inputs base)))
-
       ;; Remove the 'debug' output to allow bit-reproducible builds (when the
       ;; 'debug' output is used, ELF files end up with a .gnu_debuglink, which
       ;; includes a CRC of the corresponding debugging symbols; those symbols
@@ -103,13 +97,13 @@ (define gcc-for-bootstrap
   (mlambdaq (glibc)
     "Return a variant of GCC that uses the bootstrap variant of GLIBC."
     (package
-      (inherit gcc-7)
+      (inherit gcc)
       (outputs '("out")) ;all in one so libgcc_s is easily found
       (inputs
        `( ;; Distinguish the name so we can refer to it below.
          ("bootstrap-libc" ,(glibc-for-bootstrap glibc))
          ("libc:static" ,(glibc-for-bootstrap glibc) "static")
-         ,@(package-inputs gcc-7))))))
+         ,@(package-inputs gcc))))))
 
 (define (package-with-relocatable-glibc p)
   "Return a variant of P that uses the libc as defined by
@@ -148,7 +142,7 @@ (define (package-with-relocatable-glibc p)
                              (cons (search-path-specification
                                     (variable "CROSS_CPLUS_INCLUDE_PATH")
                                     (files '("include")))
-                                   (package-search-paths gcc-7)))))
+                                   (package-search-paths gcc)))))
             ("cross-binutils" ,(cross-binutils target))
             ,@(%final-inputs)))
         `(("libc" ,(glibc-for-bootstrap glibc))
@@ -472,11 +466,11 @@ (define (%glibc-stripped)
 (define %gcc-static
   ;; A statically-linked GCC, with stripped-down functionality.
   (package-with-relocatable-glibc
-   (package (inherit gcc-7)
+   (package (inherit gcc)
      (name "gcc-static")
      (outputs '("out"))                           ; all in one
      (arguments
-      (substitute-keyword-arguments (package-arguments gcc-7)
+      (substitute-keyword-arguments (package-arguments gcc)
         ((#:modules modules %default-gnu-modules)
          `((srfi srfi-1)
            (srfi srfi-26)
@@ -527,7 +521,7 @@ (define %gcc-static
      (inputs
       `(("zlib:static" ,zlib "static")
         ("isl:static" ,isl "static")
-        ,@(package-inputs gcc-7)))
+        ,@(package-inputs gcc)))
      (native-inputs
       (if (%current-target-system)
           `(;; When doing a Canadian cross, we need GMP/MPFR/MPC both
@@ -540,13 +534,13 @@ (define %gcc-static
             ("gmp-native" ,gmp)
             ("mpfr-native" ,mpfr)
             ("mpc-native" ,mpc)
-            ,@(package-native-inputs gcc-7))
-          (package-native-inputs gcc-7))))))
+            ,@(package-native-inputs gcc))
+          (package-native-inputs gcc))))))
 
 (define %gcc-stripped
   ;; The subset of GCC files needed for bootstrap.
   (package
-    (inherit gcc-7)
+    (inherit gcc)
     (name "gcc-stripped")
     (build-system trivial-build-system)
     (source #f)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]