tech-pkg archive

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

Re: opal update

Rhialto <> writes:

> On Mon 19 Nov 2018 at 21:38:35 -0800, John Nemeth wrote:
>> On Nov 19, 10:08pm, Rhialto wrote:
>> } My suspicion from your messages is that they might be fixed (at least
>> } partially) with some options to force an older C++ dialect. auto_ptr is
>>      Any suggestions on what the options might be, or how to force
>> it in pkgsrc?
> The USE_LANGUAGES += c++ line can specify a few language versions. I
> suspect that my compiler defaults to c++ 2003, at least then I got the
> same error messages as I showed. With c++ 2011 I got more messages
> involving auto_ptr<>.

This is extremely messy.  Trying to separate things out:

  USE_LANGUAGES is about declaring the the languages used so that the
  selected compiler will be able to support them.  c++ means C++03.

  We may not be getting the "add --std" flags part right.  Generally, an
  upstream program that needs a particular language standard should be
  testing for useng --std=foo with autoconf and adding the flags or
  failing, independently of pkgsrc.  Certainly a package could build
  some code that is C++03 and some that is C++11 in the same package
  (perhaps different executables), and pkgsrc can't intuit that.

  Different compiler versions have different default langauge standards.
  I think this is a bug, which leads to programs not setting --std
  (perhaps because the author didn't need to on their box, because
  (making things up) they have gcc9 which defaults to c++14.
> Or maybe it needs older versions? The bulk of my errors were about some
> undefined method or other. But at least that should be fairly easy to
> find, compared to those excessively long template errors.

Look at the logs to see if there is --std=, always.  That should be the
primary mechanism to specify the language variant.  The USE_LANGUAGES is
really about forcing a compiler that can support the variant.

We have had long discussions about making USE_LANGUAGES do something,
either forcing a new version of gcc, or erroring out if the chosen
version doesn't support the requested language.  It's a very messy
problem and many, including me in particular, have not made that much
progress.  However Jason Bacon has build information for LTS Linux
systems that implements one of the proposed solutions:

Home | Main Index | Thread Index | Old Index