public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
* Building recent gcc (4.8.0) fails
@ 2013-04-09  9:31 jayjwa
  2013-04-09 11:26 ` Jonathan Wakely
  0 siblings, 1 reply; 3+ messages in thread
From: jayjwa @ 2013-04-09  9:31 UTC (permalink / raw)
  To: gcc-help

[-- Attachment #1: Type: TEXT/PLAIN, Size: 34457 bytes --]


I have been facing a problem while trying to build recent versions of GCC. My 
goal was to build gcc-4.8.0 which was the last stable release when I started. 
I have gcc-4.6.3 currently. As building 4.8.0 failed (with the below errors), 
I worked backwards to find a version that would build. Versions 4.7.x fail 
with errors related to -std=xxx. 4.6.3 was the last version that built, 
originally starting with gcc-4.6.0. I even tried a newer 4.9.x with same 
results as the 4.8.x branch. As I don't use a linux distribution, there is no 
place to download a package from. Two different machines, both targets 
i686-pc-linux-gnu, get the same errors. Since my current gcc-4.6.3 has built 
kernels and recently glibc, I think it is working OK. How can I get gcc-4.8.0 
(or latest stable) to build?

Compiling 4.7.0:

Configured with:

../gcc-4.7.0/configure --prefix=/usr --enable-shared --enable-static --enable-libada --enable-libssp --enable-lto --with-mpfr=/usr --with-gmp=/usr --disable-werror --enable-__cxa_atexit --enable-threads --enable-threads=posix --enable-tls --enable-objc-gc --enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-initfini-array --with-gnu-ld --with-ld=/usr/bin/ld --with-gnu-as --with-as=/usr/bin/as --with-gnu-ld --with-system-zlib --x-includes=/usr/X11R7/include --x-libraries=/usr/X11R7/lib --with-x --enable-java-awt=gtk,xlib --enable-java-gc=boehm --disable-browser-plugin --enable-gconf-peer --with-python-dir=/lib/python/site-packages --disable-libstdcxx-pch

make[3]: Entering directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3'
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc " "CC_FOR_TARGET=/usr/src/gcc-build-4.7.0/./gcc/xgcc -B/usr/src/gcc-build-4.7.0/./gcc/" "CFLAGS=-g -O2" "CXXFLAGS=-g -O2 -D_GNU_SOURCE" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-g -O2" "INSTALL=/usr/bin/ginstall -c" "INSTALL_DATA=/usr/bin/ginstall -c -m 644" "INSTALL_PROGRAM=/usr/bin/ginstall -c" "INSTALL_SCRIPT=/usr/bin/ginstall -c" "LDFLAGS=" "LIBCFLAGS=-g -O2" "LIBCFLAGS_FOR_TARGET=-g -O2" "MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 --split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "RUNTESTFLAGS=" "exec_prefix=/usr" "infodir=/usr/share/info" "libdir=/usr/lib" "includedir=/usr/include" "prefix=/usr" "tooldir=/usr/i686-pc-linux-gnu" "gxx_include_dir=/usr/include/c++/4.7.0" "AR=/usr/i686-pc-linux-gnu/bin/ar" "AS=/usr/src/gcc-build-4.7.0/./gcc/as" "LD=/usr/src/gcc-build-4.7.0/./gcc/collect-ld" "RANLIB=/usr/i686-pc-linux-gnu/bin/ranlib" "NM=/usr/src/gcc-build-4.7.0/./gcc/nm" "NM_FOR_BUI!
 LD=" "NM_FOR_TARGET=/usr/i686-pc-linux-gnu/bin/nm" "DESTDIR=" "WERROR=" all-recursive
make[4]: Entering directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3'
Making all in include
make[5]: Entering directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include'
Making all in libsupc++
make[5]: Entering directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/libsupc++'
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/libsupc++'
Making all in src
make[5]: Entering directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/src'
Making all in c++98
make[6]: Entering directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/src/c++98'
make[6]: Nothing to be done for `all'.
make[6]: Leaving directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/src/c++98'
Making all in c++11
make[6]: Entering directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/src/c++11'
/bin/sh ../../libtool --tag CXX --tag disable-shared  --mode=compile g++  -I/usr/src/gcc-4.7.0/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.7.0/libstdc++-v3/libsupc++  -prefer-pic -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi  -fdiagnostics-show-location=once   -ffunction-sections -fdata-sections  -frandom-seed=chrono.lo -std=gnu++11 -g -O2 -D_GNU_SOURCE -c -o chrono.lo ../../../../../gcc-4.7.0/libstdc++-v3/src/c++11/chrono.cc
libtool: compile:  g++ -I/usr/src/gcc-4.7.0/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.7.0/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=chrono.lo -std=gnu++11 -g -O2 -D_GNU_SOURCE -c ../../../../../gcc-4.7.0/libstdc++-v3/src/c++11/chrono.cc  -fPIC -DPIC -o chrono.o
cc1plus: error: unrecognized command line option '-std=gnu++11'
make[6]: *** [chrono.lo] Error 1
make[6]: Leaving directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/src/c++11'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/src'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3'
make[2]: *** [all-stage1-target-libstdc++-v3] Error 2
make[2]: Leaving directory `/usr/src/gcc-build-4.7.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/usr/src/gcc-build-4.7.0'
make: *** [all] Error 2
make died with exit status 2


Compiling 4.8.0:

Configured same as above except with ../gcc-4.7.0/configure changed to ../gcc-4.8.0/configure

Making all in libsupc++
make[5]: Entering directory `/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/libsupc++'
/bin/sh ../libtool --tag CXX --tag disable-shared   --mode=compile g++  -I/usr/src/gcc-4.8.0/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.8.0/libstdc++-v3/libsupc++  -prefer-pic -D_GLIBCXX_SHARED  -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi  -fdiagnostics-show-location=once    -ffunction-sections -fdata-sections  -frandom-seed=eh_alloc.lo -g -O2 -D_GNU_SOURCE  -c -o eh_alloc.lo ../../../../gcc-4.8.0/libstdc++-v3/libsupc++/eh_alloc.cc
libtool: compile:  g++ -I/usr/src/gcc-4.8.0/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.8.0/libstdc++-v3/libsupc++ -D_GLIBCXX_SHARED -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=eh_alloc.lo -g -O2 -D_GNU_SOURCE -c ../../../../gcc-4.8.0/libstdc++-v3/libsupc++/eh_alloc.cc  -fPIC -DPIC -D_GLIBCXX_SHARED -o eh_alloc.o
In file included from ../../../../gcc-4.8.0/libstdc++-v3/libsupc++/eh_alloc.cc:36:0:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: ISO C++ forbids initialization of member '_M_mutex' [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: making '_M_mutex' static [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: invalid in-class initialization of static data member of non-integral type '__gthread_mutex_t {aka pthread_mutex_t}'
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__mutex::lock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:152:30: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__mutex::unlock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:163:32: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function '__gthread_mutex_t* __gnu_cxx::__mutex::gthread_mutex()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:170:17: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: At global scope:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: ISO C++ forbids initialization of member '_M_mutex' [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: making '_M_mutex' static [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: invalid in-class initialization of static data member of non-integral type '__gthread_recursive_mutex_t {aka pthread_mutex_t}'
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__recursive_mutex::lock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:207:40: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__recursive_mutex::unlock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:218:42: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function '__gthread_recursive_mutex_t* __gnu_cxx::__recursive_mutex::gthread_recursive_mutex()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:225:15: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: At global scope:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: ISO C++ forbids initialization of member '_M_cond' [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: making '_M_cond' static [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: invalid in-class initialization of static data member of non-integral type '__gthread_cond_t {aka pthread_cond_t}'
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::broadcast()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:285:34: error: '_M_cond' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::wait(__gnu_cxx::__mutex*)':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:295:29: error: '_M_cond' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::wait_recursive(__gnu_cxx::__recursive_mutex*)':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:305:39: error: '_M_cond' was not declared in this scope
make[5]: *** [eh_alloc.lo] Error 1
make[5]: Leaving directory `/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/libsupc++'
make[4]: *** [all-recursive] Error 1

Adding -fpermissive flag to Makefile:

Making all in libsupc++
make[5]: Entering directory `/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/libsupc++'
/bin/sh ../libtool --tag CXX --tag disable-shared   --mode=compile g++  -I/usr/src/gcc-4.8.0/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.8.0/libstdc++-v3/libsupc++  -prefer-pic -D_GLIBCXX_SHARED   -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -std=c++0x  -fdiagnostics-show-location=once    -ffunction-sections -fdata-sections  -frandom-seed=eh_alloc.lo -g -O2 -D_GNU_SOURCE  -c -o eh_alloc.lo ../../../../gcc-4.8.0/libstdc++-v3/libsupc++/eh_alloc.cc
libtool: compile:  g++ -I/usr/src/gcc-4.8.0/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.8.0/libstdc++-v3/libsupc++ -D_GLIBCXX_SHARED -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -std=c++0x -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=eh_alloc.lo -g -O2 -D_GNU_SOURCE -c ../../../../gcc-4.8.0/libstdc++-v3/libsupc++/eh_alloc.cc  -fPIC -DPIC -D_GLIBCXX_SHARED -o eh_alloc.o
In file included from ../../../../gcc-4.8.0/libstdc++-v3/libsupc++/eh_alloc.cc:36:0:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: sorry, unimplemented: non-static data member initializers
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: 'constexpr' needed for in-class initialization of static data member '_M_mutex' of non-integral type
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__mutex::lock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:152:30: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__mutex::unlock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:163:32: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function '__gthread_mutex_t* __gnu_cxx::__mutex::gthread_mutex()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:170:17: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: At global scope:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: sorry, unimplemented: non-static data member initializers
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: 'constexpr' needed for in-class initialization of static data member '_M_mutex' of non-integral type
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__recursive_mutex::lock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:207:40: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__recursive_mutex::unlock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:218:42: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function '__gthread_recursive_mutex_t* __gnu_cxx::__recursive_mutex::gthread_recursive_mutex()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:225:15: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: At global scope:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: sorry, unimplemented: non-static data member initializers
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: 'constexpr' needed for in-class initialization of static data member '_M_cond' of non-integral type
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::broadcast()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:285:34: error: '_M_cond' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::wait(__gnu_cxx::__mutex*)':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:295:29: error: '_M_cond' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::wait_recursive(__gnu_cxx::__recursive_mutex*)':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:305:39: error: '_M_cond' was not declared in this scope
make[5]: *** [eh_alloc.lo] Error 1
make[5]: Leaving directory `/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/libsupc++'

With simple configure options:

../gcc-4.8.0/configure --prefix=/usr

make[5]: Entering directory `/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include'
mkdir -p ./i686-pc-linux-gnu/bits/extc++.h.gch
g++  -x c++-header -nostdinc++ -g -O2 -D_GNU_SOURCE -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.8.0/libstdc++-v3/libsupc++ -O2 -g /usr/src/gcc-4.8.0/libstdc++-v3/include/precompiled/extc++.h -o i686-pc-linux-gnu/bits/extc++.h.gch/O2g.gch
In file included from /usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/bitmap_allocator.h:37:0,
                  from /usr/src/gcc-4.8.0/libstdc++-v3/include/precompiled/extc++.h:36:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: ISO C++ forbids initialization of member '_M_mutex' [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: making '_M_mutex' static [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: invalid in-class initialization of static data member of non-integral type '__gthread_mutex_t {aka pthread_mutex_t}'
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__mutex::lock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:152:30: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__mutex::unlock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:163:32: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function '__gthread_mutex_t* __gnu_cxx::__mutex::gthread_mutex()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:170:17: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: At global scope:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: ISO C++ forbids initialization of member '_M_mutex' [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: making '_M_mutex' static [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: invalid in-class initialization of static data member of non-integral type '__gthread_recursive_mutex_t {aka pthread_mutex_t}'
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__recursive_mutex::lock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:207:40: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__recursive_mutex::unlock()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:218:42: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function '__gthread_recursive_mutex_t* __gnu_cxx::__recursive_mutex::gthread_recursive_mutex()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:225:15: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: At global scope:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: ISO C++ forbids initialization of member '_M_cond' [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: making '_M_cond' static [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: invalid in-class initialization of static data member of non-integral type '__gthread_cond_t {aka pthread_cond_t}'
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::broadcast()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:285:34: error: '_M_cond' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::wait(__gnu_cxx::__mutex*)':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:295:29: error: '_M_cond' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::wait_recursive(__gnu_cxx::__recursive_mutex*)':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:305:39: error: '_M_cond' was not declared in this scope
In file included from /usr/src/gcc-4.8.0/libstdc++-v3/include/precompiled/extc++.h:52:0:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope: At global scope:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:463:43: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:463:43: error: ISO C++ forbids initialization of member '_M_ref_count_lock' [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:463:43: error: making '_M_ref_count_lock' static [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:463:43: error: invalid in-class initialization of static data member of non-integral type '__gthread_mutex_t {aka pthread_mutex_t}'
In file included from /usr/src/gcc-4.8.0/libstdc++-v3/include/precompiled/extc++.h:52:0:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope: In member function 'void __gnu_cxx::_Refcount_Base::_M_incr()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:487:29: error: '_M_ref_count_lock' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope: In member function '__gnu_cxx::_Refcount_Base::_RC_t __gnu_cxx::_Refcount_Base::_M_decr()':
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:495:29: error: '_M_ref_count_lock' was not declared in this scope
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope: At global scope:
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:594:44: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:594:44: error: ISO C++ forbids initialization of member '_M_c_string_lock' [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:594:44: error: making '_M_c_string_lock' static [-fpermissive]
/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include/ext/rope:594:44: error: invalid in-class initialization of static data member of non-integral type '__gthread_mutex_t {aka pthread_mutex_t}'
make[5]: *** [i686-pc-linux-gnu/bits/extc++.h.gch/O2g.gch] Error 1
make[5]: Leaving directory `/usr/src/gcc-build-4.8.0/i686-pc-linux-gnu/libstdc++-v3/include'


Compiling gcc-4.9-20130324:


Making all in libsupc++
make[5]: Entering directory `/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/libsupc++'
/bin/sh ../libtool --tag CXX --tag disable-shared   --mode=compile g++  -I/usr/src/gcc-4.9-20130324/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.9-20130324/libstdc++-v3/libsupc++  -prefer-pic -D_GLIBCXX_SHARED  -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi  -fdiagnostics-show-location=once    -ffunction-sections -fdata-sections  -frandom-seed=eh_alloc.lo -g -O2 -D_GNU_SOURCE  -c -o eh_alloc.lo ../../../../gcc-4.9-20130324/libstdc++-v3/libsupc++/eh_alloc.cc
libtool: compile:  g++ -I/usr/src/gcc-4.9-20130324/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.9-20130324/libstdc++-v3/libsupc++ -D_GLIBCXX_SHARED -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=eh_alloc.lo -g -O2 -D_GNU_SOURCE -c ../../../../gcc-4.9-20130324/libstdc++-v3/libsupc++/eh_alloc.cc  -fPIC -DPIC -D_GLIBCXX_SHARED -o eh_alloc.o
In file included from ../../../../gcc-4.9-20130324/libstdc++-v3/libsupc++/eh_alloc.cc:36:0:
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: ISO C++ forbids initialization of member '_M_mutex' [-fpermissive]
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: making '_M_mutex' static [-fpermissive]
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:122:34: error: invalid in-class initialization of static data member of non-integral type '__gthread_mutex_t {aka pthread_mutex_t}'
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__mutex::lock()':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:152:30: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__mutex::unlock()':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:163:32: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function '__gthread_mutex_t* __gnu_cxx::__mutex::gthread_mutex()':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:170:17: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: At global scope:
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: ISO C++ forbids initialization of member '_M_mutex' [-fpermissive]
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: making '_M_mutex' static [-fpermissive]
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:177:44: error: invalid in-class initialization of static data member of non-integral type '__gthread_recursive_mutex_t {aka pthread_mutex_t}'
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__recursive_mutex::lock()':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:207:40: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__recursive_mutex::unlock()':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:218:42: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function '__gthread_recursive_mutex_t* __gnu_cxx::__recursive_mutex::gthread_recursive_mutex()':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:225:15: error: '_M_mutex' was not declared in this scope
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: At global scope:
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: a brace-enclosed initializer is not allowed here before '{' token
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: ISO C++ forbids initialization of member '_M_cond' [-fpermissive]
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: making '_M_cond' static [-fpermissive]
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:255:32: error: invalid in-class initialization of static data member of non-integral type '__gthread_cond_t {aka pthread_cond_t}'
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::broadcast()':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:285:34: error: '_M_cond' was not declared in this scope
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::wait(__gnu_cxx::__mutex*)':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:295:29: error: '_M_cond' was not declared in this scope
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h: In member function 'void __gnu_cxx::__cond::wait_recursive(__gnu_cxx::__recursive_mutex*)':
/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/include/ext/concurrence.h:305:39: error: '_M_cond' was not declared in this scope
make[5]: *** [eh_alloc.lo] Error 1
make[5]: Leaving directory `/usr/src/gcc-build-4.9/i686-pc-linux-gnu/libstdc++-v3/libsupc++'

Versions of gmp, mpc, etc.:

gmp-5.1.1
mpfr-3.1.2
mpc-1.0.1
binutils-2.23.1

glibc-2.17

GNU C Library (GNU libc) stable release version 2.17, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.6.3.
Compiled on a Linux 3.8.0 system on 2013-03-30.
Available extensions:
         crypt add-on version 2.1 by Michael Glad and others
         GNU Libidn by Simon Josefsson
         Native POSIX Threads Library by Ulrich Drepper et al
         BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

Kernel:

Linux vdrl 3.8.0 #1 SMP Thu Feb 21 00:23:09 EST 2013 i686 GNU/Linux

gcc-4.6.3

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-linux-gnu/4.6.3/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../gcc-4.6.3/configure --prefix=/usr --enable-shared
--enable-static --enable-libada --enable-libssp --enable-lto
--with-mpfr=/usr --with-gmp=/usr --disable-werror --enable-__cxa_atexit
--enable-threads --enable-threads=posix --enable-tls --enable-objc-gc
--enable-languages=ada,c,c++,fortran,java,objc,obj-c++
--enable-initfini-array --with-gnu-ld --with-ld=/usr/bin/ld --with-gnu-as
--with-as=/usr/bin/as --with-gnu-ld --with-system-zlib
--x-includes=/usr/X11R7/include --x-libraries=/usr/X11R7/lib --with-x
--enable-java-awt=gtk,xlib --enable-java-gc=boehm --disable-browser-plugin
--enable-gconf-peer --with-python-dir=/lib/python/site-packages
Thread model: posix
gcc version 4.6.3 (GCC)

The 4.7.x errors seem to be a matter of 4.6.x not understanding latest 
standards used in 4.8.x, but the _M_mutex errors present in 4.8.x and 4.9.x 
builds have me puzzled. Can someone point out my error in building 4.8.0?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Building recent gcc (4.8.0) fails
  2013-04-09  9:31 Building recent gcc (4.8.0) fails jayjwa
@ 2013-04-09 11:26 ` Jonathan Wakely
  2013-04-10  5:52   ` jayjwa
  0 siblings, 1 reply; 3+ messages in thread
From: Jonathan Wakely @ 2013-04-09 11:26 UTC (permalink / raw)
  To: jayjwa; +Cc: gcc-help

(Resending as plain text email)


On Apr 9, 2013 10:31 AM, "jayjwa"  wrote:
>
>
> I have been facing a problem while trying to build recent versions of GCC. My goal was to build gcc-4.8.0 which was the last stable release when I started. I have gcc-4.6.3 currently. As building 4.8.0 failed (with the below errors), I worked backwards to find a version that would build. Versions 4.7.x fail with errors related to -std=xxx. 4.6.3 was the last version that built, originally starting with gcc-4.6.0. I even tried a newer 4.9.x with same results as the 4.8.x branch. As I don't use a linux distribution, there is no place to download a package from. Two different machines, both targets i686-pc-linux-gnu, get the same errors. Since my current gcc-4.6.3 has built kernels and recently glibc, I think it is working OK. How can I get gcc-4.8.0 (or latest stable) to build?
>
> Compiling 4.7.0:

Why 4.7.0 not 4.7.2?


> Configured with:
>
> ../gcc-4.7.0/configure --prefix=/usr --enable-shared --enable-static --enable-libada --enable-libssp --enable-lto --with-mpfr=/usr --with-gmp=/usr

If the gmp and mpfr libs are in /usr then you don't need to tell gcc
how to find them.


> --disable-werror --enable-__cxa_atexit --enable-threads --enable-threads=posix

Why are you wasting time adding this option *twice* when it's the
default anyway?


> libtool: compile:  g++ -I/usr/src/gcc-4.7.0/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.7.0/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=chrono.lo -std=gnu++11 -g -O2 -D_GNU_SOURCE -c ../../../../../gcc-4.7.0/libstdc++-v3/src/c++11/chrono.cc  -fPIC -DPIC -o chrono.o
> cc1plus: error: unrecognized command line option '-std=gnu++11'

This implies that your existing gcc 4.6 is being used to build the
target libraries, which means you're doing something very, very wrong.

Why is the newly built 4.7.0 compiler not being used to compile its
target libraries?

How did you run 'make'?

Do you have any strange environment settings?


> Adding -fpermissive flag to Makefile:

Don't edit the makefiles by hand, that's not going to help


> The 4.7.x errors seem to be a matter of 4.6.x not understanding latest standards used in 4.8.x, but the _M_mutex errors present in 4.8.x and 4.9.x builds have me puzzled. Can someone point out my error in building 4.8.0?

It's the same problem in every case, you're using your existing GCC
4.6 to build code that should be built with the new xg++ in the build
dir.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Building recent gcc (4.8.0) fails
  2013-04-09 11:26 ` Jonathan Wakely
@ 2013-04-10  5:52   ` jayjwa
  0 siblings, 0 replies; 3+ messages in thread
From: jayjwa @ 2013-04-10  5:52 UTC (permalink / raw)
  To: gcc-help


On Tue, 9 Apr 2013, Jonathan Wakely wrote:

>> I have been facing a problem while trying to build recent versions of GCC. My goal was to build gcc-4.8.0
>>
>> Compiling 4.7.0:
>
> Why 4.7.0 not 4.7.2?

4.7.2 was also tried. That build attempt was omitted for space reasons as it 
had the same results as 4.7.0.


>> ../gcc-4.7.0/configure --prefix=/usr --enable-shared --enable-static --enable-libada --enable-libssp --enable-lto --with-mpfr=/usr --with-gmp=/usr
>
> If the gmp and mpfr libs are in /usr then you don't need to tell gcc
> how to find them.
>
>
>> --disable-werror --enable-__cxa_atexit --enable-threads --enable-threads=posix
>
> Why are you wasting time adding this option *twice* when it's the
> default anyway?

Force of habit of running 'configure --help' and copy/pasting output for 
options I think I'll need. Redundant options omitted in last build:

../gcc-4.8.0/configure --prefix=/usr --enable-shared --enable-static 
--enable-libada --enable-libssp --enable-lto --disable-werror 
--enable-__cxa_atexit --enable-tls --enable-objc-gc 
--enable-languages=ada,c,c++,fortran,java,objc,obj-c++ --enable-initfini-array 
--with-system-zlib --x-includes=/usr/X11R7/include 
--x-libraries=/usr/X11R7/lib --with-x --enable-java-awt=gtk,xlib 
--enable-java-gc=boehm --disable-browser-plugin --enable-gconf-peer 
--with-python-dir=/lib/python/site-packages --disable-libstdcxx-pch



>> libtool: compile:  g++ -I/usr/src/gcc-4.7.0/libstdc++-v3/../libgcc -I/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/usr/src/gcc-build-4.7.0/i686-pc-linux-gnu/libstdc++-v3/include -I/usr/src/gcc-4.7.0/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=chrono.lo -std=gnu++11 -g -O2 -D_GNU_SOURCE -c ../../../../../gcc-4.7.0/libstdc++-v3/src/c++11/chrono.cc  -fPIC -DPIC -o chrono.o
>> cc1plus: error: unrecognized command line option '-std=gnu++11'
>
> This implies that your existing gcc 4.6 is being used to build the
> target libraries, which means you're doing something very, very wrong.
>
> Why is the newly built 4.7.0 compiler not being used to compile its
> target libraries?

Another person also pointed this out as well and it got me thinking about 
environmental variables, which led to the solution.


> How did you run 'make'?


'make' and 'make bootstrap' were both tried.

> Do you have any strange environment settings?

No, but there IS a config.site file consisting of the following (minus 
comments):

host=i686-pc-linux-gnu
sysconfdir=/etc
sharedstatedir=/var/log
localstatedir=/var
localedir=/usr/share/locale
CC="gcc "
CXX="g++ "
F77="gfortran "
ac_cv_KERNEL_LOC="/boot/vmlinux"
ac_cv_MAIL_SPOOL_DIR="/var/spool/mail


autoconfig/configure pull this in, and from past builds of other things I know 
it can cause troubles. Moving this aside let the build complete successfully. 
What is truly odd is that it was present for 4.6.3 and all past builds with 
no issue. Perhaps CXX was getting reset at every run of 'configure' to 
"g++ " instead of it using the just-built, new g++. Why this occurred now and 
not at 4.6.3 or before in the past I'm not sure.

>> Adding -fpermissive flag to Makefile:
>
> Don't edit the makefiles by hand, that's not going to help

OK.

> It's the same problem in every case, you're using your existing GCC
> 4.6 to build code that should be built with the new xg++ in the build
> dir.

Once config.site was removed it built as expected. I'll run the test suit and 
then install. Thank you to all that helped.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-04-10  5:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-09  9:31 Building recent gcc (4.8.0) fails jayjwa
2013-04-09 11:26 ` Jonathan Wakely
2013-04-10  5:52   ` jayjwa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).