[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A different way to bootstrap and build GCC
From: |
Ekaitz Zarraga |
Subject: |
Re: A different way to bootstrap and build GCC |
Date: |
Sun, 24 Nov 2024 13:36:59 +0100 |
On 2024-11-24 13:02, Stefan wrote:
Hi Ekaitz!
Very interesting work. I'll read it with more detail tomorrow but at
the moment it feels very similar to what we did for RISC-V
Is there any obvious difference in the beginning of the chain that I'm
missing?
I use tcc-boot0 only to build the latest TCC with the latest musl, with
much less handcrafting (using make and normal installation). There are
less packages involved (no need for muls 1.1.24, patch, gzip, xz, flex,
bison).
I'll check in detail why we need those, but some are for the later GCC
build.
An important difference from my point of view is that I avoid (package
(inherit …) …). I believe that the bootstrap packages need to be the
independent base. For example in commencement.scm gcc-core-mesboot0
(version 2.95.3) inherits from gcc (version 11). So changes to a newer
gcc will change the way how to build an older version. This is
fragile. This tears in stuff, which is useless or even problematic for
the bootstrap.
Oh yes! I strongly agree with this. Our GCC's are too complex and that
gave us a lot of trouble. It's really hard to know where things are
coming from.
It's very fragile, indeed.
Well, finally my actual goal is to build GCC differently: There is no
need to patch in CROSS_C_INCLUDE_PATH etc. The include paths to
standard header files must not be provided through environment variables
at all. This is the cause of all the troubles people have with GCC in
Guix for both native and cross building. In the end only the one
gcc-12-strmov-store-file-names.patch is necessary, and this not even for
static builds during bootstrapping. Keeping (package (inherit …) …)
will tear in all the mistakes, which I try hard to avoid.
Yes. Very interesting. We can try to make something on this line.
Bye
Stefan
Thanks for the explanation.
Ekaitz