trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: April 2012

Re: [trinity-devel] Massive Build Failures on Arch - 13 prior building packages FAIL

From: Nix <nix@...>
Date: Fri, 06 Apr 2012 15:33:02 +0100
On 5 Apr 2012, David C. Rankin spake thusly:
>   I read that. What are you saying that we are being bitten by in there? Most of
> it was Greek, but the only thing I could draw from it is that some of the new
> C++11 implementation is now clashing with old code in TDE causing it to be
> interpreted by the compiler as something other than what it was designed to be.

Definitely not. The C++11 stuff only applies when the appropriate -std
option is specified, which it had bloody well better not be in this case
because C++11 and C++99 have different libstdc++ ABIs (e.g. the size of
an STL list<> is different).

> -> G++ now sets the predefined macro __cplusplus to the correct value, 199711L
> for C++98/03, and 201103L for C++11.

That's the same as always for C++98/03: only C++11 is different (which
couldn't be set to the right value before owing to lack of a time
machine).

> -> G++ now correctly implements the two-phase lookup rules such that an
> unqualified name used in a template must have an appropriate declaration found
> either in scope at the point of definition of the template or by
> argument-dependent lookup at the point of instantiation.

At last!

>   How you check for this stuff is way beyond me....

Wait for a failure, then move the errant definition up a bit. (This may
require creating new header files here and there, I suppose.)

It's just code motion, not rewriting. Not hard.

-- 
NULL && (void)