tech-pkg archive

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

Re: First go at adding GCC_VERSIONS_ACCEPTED support



On 19/10/15 03:55, Greg Troxel wrote:
Thomas Klausner <wiz%NetBSD.org@localhost> writes:

On Thu, Oct 15, 2015 at 09:08:17AM -0400, Greg Troxel wrote:
   2) how to deal with mixed compilers and libs.  If there's a c++
   library, and it doesn't need C++11, and then a C++ porgram does and
   links to the library, is that sound?  What about the other way around?
How does this sound:

* we define, per operating system/version, a default c++ compiler,
   let's say gcc-4.9 (or whatever we think is the best version on that
   platform). this version is pulled in whenever c++ is defined in
   USE_LANGUAGES. It should support c++11.

* the user can override this default globally, before compiling packages
That's ok with me.

Then, we shouldn't need GCC_REQD in C++ packages, and we can use the
min/objectioable scheme in C, since we can mix?

I've thought about this approach a few times too. Probably allowing the user to override it addresses my minor concern that it might force some users to build a GCC on very purpose-specific systems where they may prefer not to.

GCC_REQD is sometimes used to avoid GCC bugs present in a range of versions, not just to ensure certain features are present. I think in principle that a package should be able to state an explicit GCC minimum, as well as relying on the default USE_LANGUAGES handling.

Assuming that we default to, say, GCC 4.9 for C++ - I think that means for most people PKGSRC_GCC_MIN should be 4.9 for C packages too. I.e. if we're expecting to build GCC 4.9 as soon as we hit a C++ package, maybe the default preference should be to use that version for C packages too, if and only if the native version isn't good enough for some package or other.

If there isn't a compelling reason to choose 4.9, I suggest 4.8 instead as a default. Grep says that nothing in Pkgsrc explicitly requires beyond 4.8 - though there are several that call for 4.8 as a minimum. GCC 4.8 is the current default native for Ubuntu and related long term support installations, so we will support at least those users a bit better if we don't force a 4.9 build on them.



Home | Main Index | Thread Index | Old Index