David Holland <dholland-pkgtech%netbsd.org@localhost> writes: > On Sat, Dec 30, 2017 at 08:20:13PM -0500, Greg Troxel wrote: > > The logic for how we have to end up at a single version is in > > https://wiki.netbsd.org/pkgsrc/gcc/ > > If you can spot a flaw, please point it out. > > See what I just posted in the earlier thread: this doesn't actually > solve the non-local-reasoning problem, just makes it global. There's > no way for a user to decide what to set PKGSRC_GCC_VERSION or > PKGSRC_GXX_VERSION to based on the packages they want to build, other > than looking through everything by hand or via trial and error. True; this is not solved. I do not expect most users to set these. I expect defaults in platform.mk to be reasonable for most people. > This is not a trivial issue because on a small or slow system running > an older OS build (say, -7) large numbers of packages will still build > fine with the existing compiler, and having to build gcc again is a > showstopper. Whose show is actually stopped by what is an interesting question about which we have little data. > The non-local reasoning problem is Hard and maybe we can't solve it, > but if we're going to have a global setting we do need a way for users > to discover how to set it. Maybe the way to do this is to provide a > make target to report if a package won't work with a given setting, > and run this on the whole pkgsrc tree and post the results on the web > page. Such a make target sounds good. The other more reliable way is to do bulk builds with various settings. But I think we'll end up with a default and another reasonable choice, basically declining to build a compiler and foregoing the C++11 world. So far, I don't see why any other choice is reasonable. > In any event, we also need a way to reject bad combinations at build > time, as we can't rely on the shared library system to do this; we'll > end up creating broken executables that will run but summon nasal > demons. Yes. The proposal says that there will be one version of gcc used for all C++ packages. Packages that need something newer will just fail. > (then there's the question of how to bootstrap gcc safely...) Yes, that's a bit messy.
Attachment:
signature.asc
Description: PGP signature