Introduction to my new adventure bootstrapping GCC for RISC-V. Why, how, and who is going to pay for it.
Bootstrapping GCC in RISC-V
GCC internals — From a porting perspective
Deep diving into GCC’s internals from the perspective of someone who wants to port GCC for a new architecture.
ELF format — why not?
Some introduction to ELF as we’ll need to deal with this in the future.
Milestone — Minimal RISC-V support in GCC 4.6.4
Description of the changes for a minimal RISC-V support in GCC-4.6.4 and how did I reach this point.
Milestone — Source to Binary RISC-V support in GCC 4.6.4
Description of the changes applied from a minimal compiler that runs and generates assembly to something that is actually able to compile, interacting with binutils and having a working libgcc.
Adding TinyCC to the mix
Discussing what changes need to be done to make GCC compilable form a simpler C compiler, TinyCC.
Milestone – RISC-V support in Mes’s bootstrappable TinyCC
Bringing RISC-V support to the bootstrappable TinyCC Mes forked. Some problems and a look into the future.
More work, more people, more energy — thanks NlNet
Now it’s time to focus on combining all the previous work and making it production ready. NlNet for the rescue, again.
Milestone — MesCC builds TinyCC and fun C errors for everyone
We spent the last months making MesCC able to compile TinyCC and making the result of that compilation able to compile TinyCC. Many cool problems appeared, this is the summary of our work.
Mes released and bootstrappable TCC merged
Some merging and releasing has been done. So here we are.
GCC 4.6.4 with RISC-V support
We built GCC 4.6.4 with RISC-V support and C++ and all that in a Debian machine, in a VisionFive board. Here is how.
So we’ve got sidetracked…
We’ve got sidetracked, but it doesn’t really matter if we continue forward.
GCC 4.6.4 with RISC-V support in Guix
We built GCC 4.6.4 with RISC-V support and C++ and all that and we made it run in Guix, finally.
TinyCC to GCC gap is slowly closing
The sidetrack we took in the past started to give us some good news. Here there are some.
Milestone – Bootstrapped GCC 4.6.4 for RISC-V
So yeah, we bootstrapped GCC 4.6.4 for RISC-V. We even have C++ support!
Milestone (End?) - Bootstrapping path discovered
A RISC-V bootstrapping path path has been discovered. Now it’s time for the distros to catch up.
[Talk] Full Source Bootstrapping RISC-V on Guix
People from Guix London gave me the chance to describe this process.