Hello Guix, I notice that out of GCC's supported languages (ada, c, c++, d, fortran, go, jit, lto, objc, obj-c++) we currently build all except ada, and five of them (d, fortran, go, objc, and obj-c++) are built separately. Most of GCC's build time is spent bootstrapping and building the actual compiler, rather than building the frontends, so we would save a lot of build time by building them all together.
We could also possibly reuse the 'core' parts of GCC between language frontends, saving some space. (This is what distros seem to do.) If we do this, I'm not sure whether it would be better to have each additional language as an output for gcc, or as a separate package. Currently, the only build-time difference between our GCC packages is that our package for 'jit' uses '--enable-host-shared', which "[specifies] that the host code should be built into position-independent machine code (with -fPIC), allowing it to be used within shared libraries, but yielding a slightly slower compiler" [0]. I don't think it would be too big of a hit to just turn that on unconditionally, but we could also keep 'jit' as a separately-built package. What do you all think? [0] https://gcc.gnu.org/install/configure.html -- Sarah