guix-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]