Subject: bug#71921: Bootstrapping path discovered for RISC-V 64bit

From: Ekaitz Zarraga <[email-masked]>
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