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