pkgsrc-Users archive

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

Re: USE_LANGUAGES=c++11 but no C++ 11 compiler (NetBSD 7.1)



Edgar Fuß <ef%math.uni-bonn.de@localhost> writes:

>> But that means the user is to supply that GCC version, correct?
> Yes. The problem seems to basically be you can't mix C++ code (i.e., libraries) built with different gcc versions. So you need to stick with one version, at least for C++.
> The second problem is the one you re-found: There is no logic infering a gcc version from USE_LANGUAGES. But that's not all to complicated to fix (save you have to agree on which C++ versions certain gcc versions /really/ support).
> Then you may be unlucky that your base gcc is not good enough to build the target gcc, so you need an intermediate version. I don't know whether we want to deal with that.
>
> The current show-stopper seems to be that during the build of your
> one-and-only gcc, you a) obviously need to defeat the
> don't-use-any-other-gcc rule and b) you build an ever growing set of
> dependencies some of which you can't use for anything else than your
> new gcc beacuse they contain libraries written in C++ and are compiled
> with a different gcc than the packages to come.
>
> So I guess the only solution is to build a gcc during bootstrap, using a different PREFIX.

Indeed, that is more and more seeming like perhaps the right approach.

to the OP:

Jason Bacon has been publishing scripts to deal with this on some flavor
of GNU/Linux, basically excluding the gcc build from the dependency.
Links are in the discussion.

It may work to:

  start with an empty pkgsrc
  build gcc5 (or gcc6)
  set GCC_REQ=5 (6) in mk.conf

this is a hacky way to avoid the bootstrap issues.  It isn't 100% sound,
and it's hard to fit into our bulk builds, for a user on one machine,
it's pretty good.



There has indeed been a lack of progress.  That's a combination of this
being hard, and that NetBSD 7's compiler is mostly ok.  My impression is
that the biggest pain point is RHEL/Centos/etc. that are intentionally
shipping old compilers.




Home | Main Index | Thread Index | Old Index