* On 2024-09-06 at 20:02 BST, Brook Milligan wrote:
On Sep 6, 2024, at 11:46 AM, Thomas Klausner <wiz%NetBSD.org@localhost> wrote: I'm thinking that we should perhaps switch to a model where we bootstrap including a compiler (perhaps allowing to choose any of the gcc packages, or just the newest one), and if a package wants a newer version than that bootstrapped (or the native) one, then the package is marked as broken.Perhaps this would also help pkgsrc on systems lacking a “good” native compiler. I see this regularly with HPC systems, where the native compiler is too old and installing one module or another is required to get anything useful.
pkgsrc already supports this - it's how I've produced packages on SmartOS (which does not include a compiler at all) for over 10 years:
* Using a temporary/bootstrap compiler, build the newest pkgsrc GCC that can be used to build all of pkgsrc (i.e. is at least the highest value of GCC_REQD).* Enable USE_PKGSRC_GCC_RUNTIME so that packages only require the smaller gcc-libs package and not the huge compiler package.
* Build all of pkgsrc using the One True Compiler.No mixing of runtime libraries, no need for always-libgcc hacks, no wasting time building multiple copies of GCC depending on what order you encounter GCC_REQD, everything Just Works. The drawback being you need to spend a bit of time upfront thinking about what compiler you are going to use for everything and making sure all of its dependencies are built by the bootstrap compiler or provided by external tools.
-- Jonathan Perkin - mnx.io - pkgsrc.smartos.org Open Source Complete Cloud www.tritondatacenter.com