unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Bootstrapping path discovered for RISC-V 64bit
@ 2024-07-03 15:16 Ekaitz Zarraga
  2024-07-03 15:59 ` Efraim Flashner
  0 siblings, 1 reply; 2+ messages in thread
From: Ekaitz Zarraga @ 2024-07-03 15:16 UTC (permalink / raw)
  To: bug-guix@gnu.org, Andrius Štikonas, efraim@flashner.co.il,
	Jan Nieuwenhuizen, guix-devel\@gnu.org

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



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Bootstrapping path discovered for RISC-V 64bit
  2024-07-03 15:16 Bootstrapping path discovered for RISC-V 64bit Ekaitz Zarraga
@ 2024-07-03 15:59 ` Efraim Flashner
  0 siblings, 0 replies; 2+ messages in thread
From: Efraim Flashner @ 2024-07-03 15:59 UTC (permalink / raw)
  To: Ekaitz Zarraga
  Cc: 71921, Andrius Štikonas, Jan Nieuwenhuizen,
	guix-devel\@gnu.org

[-- Attachment #1: Type: text/plain, Size: 3171 bytes --]

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@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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-07-03 16:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-03 15:16 Bootstrapping path discovered for RISC-V 64bit Ekaitz Zarraga
2024-07-03 15:59 ` Efraim Flashner

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).