[bug#63641,v2,5/8] gnu: Add libc-for-target and glibc/hurd.
Commit Message
Josselin Poiret via Guix-patches via writes:
Hello again!
> From: Josselin Poiret <dev@jpoiret.xyz>
>
[..]
> * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
> glibc-final): Use libc-for-target.
As discussed on IRC, I found that we're still building glibc-2.35 during
commencement. I overlooked that this recent patch of yours made these
changes in commencement, so I already made patches for this (attached).
So, apart from my earlier comments
[..]
> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
> index ab07fb37ab..a24c60ebf8 100644
> --- a/gnu/packages/commencement.scm
> +++ b/gnu/packages/commencement.scm
> @@ -2816,13 +2816,13 @@ (define (%boot1-inputs)
> ("binutils-cross" ,binutils-boot0)
> ,@(alist-delete "binutils" (%boot0-inputs))))
>
> -(define glibc-final-with-bootstrap-bash
> +(define/system-dependent glibc-final-with-bootstrap-bash
> ;; The final libc, "cross-built". If everything went well, the resulting
> ;; store path has no dependencies. Actually, the really-final libc is
> ;; built just below; the only difference is that this one uses the
> ;; bootstrap Bash.
> (package
> - (inherit glibc)
> + (inherit (libc-for-target))
> (name "glibc-intermediate")
> (outputs (delete "debug" (package-outputs glibc)))
We probably want this to be (libc-for-target), even though they're
bound to be similar, and more importantly,
> (source (bootstrap-origin (package-source glibc)))
I believe this needs to be (libc-for-target) to actually use glibc-2.37.
[..]
> + (let ((libc (libc-for-target)))
> + (package/inherit libc
> + (name "glibc")
> + (source (bootstrap-origin (package-source glibc)))
Likewise, I think we need to use "libc" here.
Greetings,
Janneke
Comments
Janneke Nieuwenhuizen writes:
Hi!
> Josselin Poiret via Guix-patches via writes:
>
> Hello again!
>
>> From: Josselin Poiret <dev@jpoiret.xyz>
>>
> [..]
>
>> * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
>> glibc-final): Use libc-for-target.
>
> As discussed on IRC, I found that we're still building glibc-2.35 during
> commencement. I overlooked that this recent patch of yours made these
> changes in commencement, so I already made patches for this (attached).
Even with these patches (on wip-hurd now), gcc-toolchain still depends
on glibc-2.35 for offload builds, as you can see when doing
./pre-inst-env guix build --system=i568-gnu -d gcc-toolchain
from GNU/Linux. When running this same build in a childhurd, the
glibc-2.35 dependency is gone. Note that gcc-final, i.e.
./pre-inst-env guix build --system=i568-gnu -d \
-e '(@@ (gnu packages commencement) gcc-final)'
does not depend ond glibc-2.35, but both glibc-final and
glibc-final-with-bootstrap-bash build 2.35 when using --system.
I've tried some things and don't know how to fix this.
Greetings,
Janneke
PS: I have patches for glibc-locales/hurd and glibc-utf8-locales/hurd
that seem to work OK, but I'm not sure if we even want/need those?
From 380aaa334c89af68f1183e5120dc238b18f0cd6e Mon Sep 17 00:00:00 2001
Message-Id: <380aaa334c89af68f1183e5120dc238b18f0cd6e.1685682827.git.janneke@gnu.org>
In-Reply-To: <ee989048c46b4123232aeb49c4b1bfe14cb10037.1685682827.git.janneke@gnu.org>
References: <ee989048c46b4123232aeb49c4b1bfe14cb10037.1685682827.git.janneke@gnu.org>
From: Janneke Nieuwenhuizen <janneke@gnu.org>
Date: Thu, 1 Jun 2023 23:40:49 +0200
Subject: [PATCH 2/2] gnu: commencement: glibc-final: Use libc-for-target for
source too.
* gnu/packages/commencement.scm (glibc-final)[source]: Use
libc (libc-for-target), instead of glibc.
---
gnu/packages/commencement.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -3072,7 +3072,7 @@ (define/system-dependent glibc-final
(let ((libc (libc-for-target)))
(package/inherit libc
(name "glibc")
- (source (bootstrap-origin (package-source glibc)))
+ (source (bootstrap-origin (package-source libc)))
(inputs `(("static-bash" ,static-bash-for-glibc)
,@(alist-delete
"static-bash"
--
2.40.1