On 04/26/2017 11:03 PM, Walter Dnes wrote:
> On Wed, Apr 26, 2017 at 06:01:20AM +0800, Bill Kenworthy wrote
> 
>> That flag isn't mentioned here.
> 
>   I checked the source code.  It forces the old ABI, so it should work,
> compiled with GCC 5.4.0, even on a Gcc 4.9.4 system...
> 
> [CentOS65][pmbuilder][~/pmmaster] grep -r GLIBCXX_USE_CXX11_ABI pmsrc
> pmsrc/configure:   CXXFLAGS="$CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
> pmsrc/configure:   HOST_CXXFLAGS="$HOST_CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
> pmsrc/configure.in:   CXXFLAGS="$CXXFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
> pmsrc/configure.in:   HOST_CXXFLAGS="$HOST_CXXFLAGS 
> -D_GLIBCXX_USE_CXX11_ABI=0"
> 

Walter,

That flag "-D_GLIBCXX_USE_CXX11_ABI=0" is a CPPFLAG. It is only
recognized by GCC 5.1.x and higher. And it only works on GCC built with
dual ABI support. Gentoo doesn't support the dual ABI builds.

Info links :
https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html
https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html#abi.versioning.__GLIBCXX__
https://gcc.gnu.org/onlinedocs/libstdc++/manual/configure.html

On my system, I went ahead with the switch to GCC 5.4.0.

The "-D_GLIBCXX_USE_CXX11_ABI=1" CPPFLAG forces GCC to check IF the new
ABI should be applied FIRST. NO FORCING the ABI on software that doesn't
use it.

Putting CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=1" in make.conf killed almost
all the erorrs in the revdep-rebuild process.

Putting that in as a CFLAGS or CXXFLAGS switch caused lots of errors in
revdep-rebuild.

Thought you might want to know.

Corbin

Reply via email to