Hi,

Before anything else, let me CC Andrius and Efraim.

I'll try to digest this slowly.

On 2025-09-02 20:12, Stefan wrote:
Hi!

You may heard about some tries from me to bootstrap GCC.  This is now working for x86_64¹.  There is a possibility that not much work is needed to get this working for more architectures as well.

I’d like to offer a lot of fixes and patches to GNU Mes 0.27², which enable to compile an upstream TCC form 2025-05-28 with minor fixes, mostly because of issues in NYACC when parsing macros.  Ekaitz, is there a chance that you could try to build this TCC on RISC-V?

Jan, I’d be happy to start a discussion with you on how to contribute these patches to GNU Mes.

I also found and fixed three problems with awk from GNU Gash-Utils³ while using it for more packages on the way to GCC.  Timothy, maybe you like to take a look?

The only binary blob in use is the pre-built Guile.  Maybe I’m cheating, but I use (default-guile) at the very beginning to build a Bootar package and to get the pre-built Guile.  From there on this pre-built Guile is used to start over and build Bootar again, then Gash and further.  I think (default-guile) is in use anyway, so why should we trust even more binary blobs?  I’m interested in your opinions on this.

Nearly all packages in the chain⁴ are up-to-date, I avoided old versions as much as possible.  Whenever troubles with early packages like Gash-Utils got too limiting, I added the original package like GNU sed. It could make sense to move some packages like GNU Tar up the chain to benefit from a speed improvement.  To prevent conflicts with existing package names I’m currently using upper-case package names with a bootstrap suffix.

Maxim, I’m sorry for this late “reply”.  The remaining effort to get it into this state was more than I guessed.  Unfortunately I did not look yet into your code.  My next step from here should be another GCC 15 making use of the GNU C Library.

I’d be happy to get some feedback.


Bye

Stefan


¹ <https://git.pub.solar/stefan/embedded-channel/src/branch/main/gcc-bootstrap.scm> ² <https://git.pub.solar/stefan/embedded-channel/src/commit/597fcbec2332c7b1f9a568ba4ccf53a12384d8ac/gcc-bootstrap.scm#L743> ³ <https://git.pub.solar/stefan/embedded-channel/src/commit/597fcbec2332c7b1f9a568ba4ccf53a12384d8ac/gcc-bootstrap.scm#L390>
⁴ BOOTAR@1b
   GUILE-bootstrap@2
   BOOTAR-bootstrap@1b
   GASH-bootstrap@0.3.1
   GASH-UTILS-bootstrap@0.2.0
   STAGE0-POSIX-bootstrap@1.7.0
   NYACC-bootstrap@1.09.1
   MES-bootstrap@0.27
   TCC-MES-bootstrap@0.9.28rc-2025-05-28
   MAKE-MES-bootstrap@4.4.1
   MUSL-static-bootstrap@1.2.5
   TCC-bootstrap0.9.28rc-2025-05-28
   BASH-bootstrap@5.3
   SED-bootstrap@4.9
   MAKE-bootstrap@4.4.1
   COREUTILS-bootstrap@9.7
   GETCONF-bootstrap@0.1
   BINUTILS-static-bootstrap@2.42
   FINDUTILS-bootstrap@4.10.0
   M4-bootstrap@1.4.20
   BISON-bootstrap@3.8.2
   FLEX-bootstrap@2.6.4
   GMP-bootstrap@6.3.0
   MPFR-bootstrap@4.2.1
   MPC-bootstrap@1.3.1
   GCC-4-bootstrap@4.6.4.1
   MUSL-bootstrap@1.2.5
   LD-WRAPPER-static-bootstrap@0
   GCC-10-bootstrap@10.4.0
   ZLIB-bootstrap@1.3.1
   BINUTILS-bootstrap@2.45
   LD-WRAPPER-bootstrap@0
   TAR-bootstrap@1.35
   GCC-15-bootstrap@15.2.0
   PYTHON-bootstrap@3.13.7
   GAWK-bootstrap@5.3.2
   GREP-bootstrap@3.12
   GZIP-bootstrap@1.14
   LINUX-HEADERS-bootstrap@4.19.88-2
   GLIBC-bootstrap@2.42


Reply via email to