[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)