gnu: make-bootstrap: Build with GCC 11 instead of GCC 7.

This fixes a glibc-for-bootstrap build issue on aarch64-linux.

* gnu/packages/make-bootstrap.scm (glibc-for-bootstrap)[native-inputs]:
Remove.
(gcc-for-bootstrap, package-with-relocatable-glibc)
(%gcc-static, %gcc-stripped): Depend on ‘gcc’ instead of ‘gcc-7’.

Reported-by: Ricardo Wurmus <rekado@elephly.net>
Change-Id: Ia7f62f9674873087aa20a9d7da8d25d94b215e5c
This commit is contained in:
Ludovic Courtès 2024-08-14 15:31:21 +02:00
parent c1fbcc7489
commit 9fe0e5b353
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

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