GNU bug report logs - #71921
Bootstrapping path discovered for RISC-V 64bit

Previous Next

Package: guix;

Reported by: Ekaitz Zarraga <ekaitz <at> elenq.tech>

Date: Wed, 3 Jul 2024 15:18:01 UTC

Severity: normal

To reply to this bug, email your comments to 71921 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#71921; Package guix. (Wed, 03 Jul 2024 15:18:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ekaitz Zarraga <ekaitz <at> elenq.tech>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Wed, 03 Jul 2024 15:18:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ekaitz Zarraga <ekaitz <at> elenq.tech>
To: "bug-guix <at> gnu.org" <bug-guix <at> gnu.org>,
 Andrius Štikonas <andrius <at> stikonas.eu>,
 "efraim <at> flashner.co.il" <efraim <at> flashner.co.il>,
 Jan Nieuwenhuizen <janneke <at> gnu.org>, "guix-devel\\@gnu.org"
 <guix-devel <at> gnu.org>
Subject: Bootstrapping path discovered for RISC-V 64bit
Date: Wed, 3 Jul 2024 17:16:55 +0200
Hi,

Thanks to NlNet we have found a bootstrapping path for RISC-V 64 and we 
created an alternative `commencement.scm` draft that builds from source 
up to a GCC-9.

At the moment, that GCC-9 does not provide C++ support in my Guix 
packages. I tried to add it but I had issues. We made it work for 
live-bootstrap (Andrius did), and now it's time to move that to Guix but 
it's getting a little bit difficult with GCC's build-system.

I'm opening this issue to make the handover to Guix. I have already 
worked with Efraim and he agreed to continue with this work until it's 
upstreamed. Also Janneke is working on a version of this commencement 
module that adds support for x86, so we could use that for everything 
instead of relying in two different bootstrapping paths.

This will take some time to integrate. There are a couple of packages 
that I didn't bootstrap yet (but it's possible to bootstrap them): 
`flex` and `bison`. Mostly because we wanted to fix 
<https://issues.guix.gnu.org/52311>, too.

The Gash package is replaced with a non-bootstrapped Bash because 
there's an issue in Gash that hangs the bootstrapping process. We have 
reported it upstream. We should use Gash once the issue is fixed.

Also, we only made the path until a modern GCC, not all the rest of it, 
that we should be able to reuse from the current `commencement.scm` module.

This is the link to the repo:

https://github.com/ekaitz-zarraga/commencement.scm

I'm more than open to help Guix include the RISC-V bootstrapping process 
upstream, so if you have any question, suggestion or anything else, feel 
free to directly contact me.

As a note, in this series of blogposts I shared the 2 year process until 
today, and almost everything is documented:

https://ekaitz.elenq.tech/tag/bootstrapping-gcc-in-risc-v.html

Also, I'd like to publicly thank everyone who took part in this process. 
Especially Andrius, for all those sleepless nights we spent fixing weird 
compiler errors.

Let's make this finally happen!

Ekaitz





Information forwarded to bug-guix <at> gnu.org:
bug#71921; Package guix. (Wed, 03 Jul 2024 16:01:01 GMT) Full text and rfc822 format available.

Message #8 received at 71921 <at> debbugs.gnu.org (full text, mbox):

From: Efraim Flashner <efraim <at> flashner.co.il>
To: Ekaitz Zarraga <ekaitz <at> elenq.tech>
Cc: "guix-devel\\@gnu.org" <guix-devel <at> gnu.org>, 71921 <at> debbugs.gnu.org,
 Jan Nieuwenhuizen <janneke <at> gnu.org>,
 Andrius Štikonas <andrius <at> stikonas.eu>
Subject: Re: Bootstrapping path discovered for RISC-V 64bit
Date: Wed, 3 Jul 2024 18:59:46 +0300
[Message part 1 (text/plain, inline)]
On Wed, Jul 03, 2024 at 05:16:55PM +0200, Ekaitz Zarraga wrote:
> Hi,
> 
> Thanks to NlNet we have found a bootstrapping path for RISC-V 64 and we
> created an alternative `commencement.scm` draft that builds from source up
> to a GCC-9.
> 
> At the moment, that GCC-9 does not provide C++ support in my Guix packages.
> I tried to add it but I had issues. We made it work for live-bootstrap
> (Andrius did), and now it's time to move that to Guix but it's getting a
> little bit difficult with GCC's build-system.
> 
> I'm opening this issue to make the handover to Guix. I have already worked
> with Efraim and he agreed to continue with this work until it's upstreamed.
> Also Janneke is working on a version of this commencement module that adds
> support for x86, so we could use that for everything instead of relying in
> two different bootstrapping paths.

It may be possible that we end up diverging slightly in parts of the
bootstrap; glibc didn't get support for riscv64 until relatively
recently, although we will have to see about combining your work on
backporting (successfully!) riscv64 support to gcc-4.6.4 with the
existing version of 4.6.4 in commencement.scm. In reality I foresee it
with more comments in commencement.scm and some conditionals to try to
keep the different architectures working within the same packages.

> This will take some time to integrate. There are a couple of packages that I
> didn't bootstrap yet (but it's possible to bootstrap them): `flex` and
> `bison`. Mostly because we wanted to fix
> <https://issues.guix.gnu.org/52311>, too.

Piece by piece, we'll get there :) Plus we have live-bootstrap to look
at for inspiration.

> The Gash package is replaced with a non-bootstrapped Bash because there's an
> issue in Gash that hangs the bootstrapping process. We have reported it
> upstream. We should use Gash once the issue is fixed.
> 
> Also, we only made the path until a modern GCC, not all the rest of it, that
> we should be able to reuse from the current `commencement.scm` module.
> 
> This is the link to the repo:
> 
> https://github.com/ekaitz-zarraga/commencement.scm
> 
> I'm more than open to help Guix include the RISC-V bootstrapping process
> upstream, so if you have any question, suggestion or anything else, feel
> free to directly contact me.
> 
> As a note, in this series of blogposts I shared the 2 year process until
> today, and almost everything is documented:
> 
> https://ekaitz.elenq.tech/tag/bootstrapping-gcc-in-risc-v.html
> 
> Also, I'd like to publicly thank everyone who took part in this process.
> Especially Andrius, for all those sleepless nights we spent fixing weird
> compiler errors.
> 
> Let's make this finally happen!
> 
> Ekaitz

So close!

I have a couple of changes I've worked on at
https://github.com/Millak/commencement.scm but I'm also still working on
getting that modern GCC to build.

-- 
Efraim Flashner   <efraim <at> flashner.co.il>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 106 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.