Error building GCC 6.1.0 libstdc++

Patrick Oppenlander pattyo.lists@gmail.com
Thu Jul 14 23:46:00 GMT 2016


Hi,

I'm running into a build problem when building GCC 6.1.0:


/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/./gcc/xgcc 
-shared-libgcc 
-B/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/./gcc 
-nostdinc++ 
-L/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/powerpc-eabispe/libstdc++-v3/src 
-L/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/powerpc-eabispe/libstdc++-v3/src/.libs 
-L/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/powerpc-eabispe/libstdc++-v3/libsupc++/.libs 
-B/home/patrick/src/e7/toolchain/stage2/powerpc-eabispe/bin/ 
-B/home/patrick/src/e7/toolchain/stage2/powerpc-eabispe/lib/ -isystem 
/home/patrick/src/e7/toolchain/stage2/powerpc-eabispe/include -isystem 
/home/patrick/src/e7/toolchain/stage2/powerpc-eabispe/sys-include 
-L/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/./ld    -x 
c++-header -nostdinc++ -g -O2 
-I/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/powerpc-eabispe/libstdc++-v3/include/powerpc-eabispe 
-I/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/powerpc-eabispe/libstdc++-v3/include 
-I/home/patrick/src/e7/toolchain/src/gcc-combined/libstdc++-v3/libsupc++ 
  -O2 -g 
/home/patrick/src/e7/toolchain/src/gcc-combined/libstdc++-v3/include/precompiled/extc++.h 
-o powerpc-eabispe/bits/extc++.h.gch/O2g.gch
In file included from 
/home/patrick/src/e7/toolchain/src/gcc-combined/libstdc++-v3/include/precompiled/extc++.h:69:0:
/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/powerpc-eabispe/libstdc++-v3/include/ext/throw_allocator.h:545:18: 
error: 'uniform_real_distribution' in namespace 'std' does not name a 
template type
      typedef std::uniform_real_distribution<double>  distribution_type;
                   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/patrick/src/e7/toolchain/build/gcc-6.1.0-stage2/powerpc-eabispe/libstdc++-v3/include/ext/throw_allocator.h:546:18: 
error: 'mt19937' in namespace 'std' does not name a type
      typedef std::mt19937     engine_type;
                   ^~~~~~~


I've done some analysis of this and it turns out to be an issue with the 
C library I'm using.

The configure test "checking for ISO C99 support to TR1 in <stdint.h>" 
is failing.

This stops _GLIBCXX_USE_C99_STDINT_TR1 from being defined which 
subsequently causes the above build failure because <random> doesn't 
include <bits/random.h> anymore.

Is this a bug in the build system? If _GLIBCXX_USE_C99_STDINT_TR1 is 
required then should the configure abort?

Alternatively, should libstdc++ still build without 
_GLIBCXX_USE_C99_STDINT_TR1?

		Patrick



More information about the Gcc mailing list