[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A different way to bootstrap and build GCC
From: |
Stefan |
Subject: |
Re: A different way to bootstrap and build GCC |
Date: |
Sun, 24 Nov 2024 13:02:11 +0100 |
User-agent: |
Mozilla Thunderbird |
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).
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.
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.
Bye
Stefan