tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkgsrc gcc discussion #3874



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



Home | Main Index | Thread Index | Old Index