Hi all, Some time ago I built and installed GCC 4.8.2 via: $ ../gcc-4.8.1/configure --program-suffix=481 --enable-languages=c,c++,lto $ make bootstrap $ sudo make install Recently, I built and installed GCC 4.9.0: $ ../configure --program-suffix=490 --enable-languages=c,c++ --with-isl=/usr/local --with-cloog=/usr/local $ make bootstrap $ sudo make install Now building C++ programs using std::async/std::future with g++482 fails : $ g++482 -v -coverage -g -Wl,--build-id -L/usr/local/lib64 -L/usr/local/lib lookup.o api.a -static-libstdc++ -static-libgcc -l:libboost_date_time.a -o lookup Using built-in specs. COLLECT_GCC=g++482 COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc-4.8.2/configure --program-suffix=482 --enable-languages=c,c++,lto Thread model: posix gcc version 4.8.2 (GCC) COMPILER_PATH=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/:/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/:/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/ LIBRARY_PATH=/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-coverage' '-g' '-L/usr/local/lib64' '-L/usr/local/lib' '-static-libgcc' '-o' 'lookup' '-mtune=generic' '-march=x86-64' /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/collect2 --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o lookup /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/crtbegin.o -L/usr/local/boost/lib -L/usr/local/lib64 -L/usr/local/lib -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2 -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/../../.. --build-id lookup.o api.a -l:libboost_date_time.a -Bstatic -lstdc++ -Bdynamic -lm -lgcov -lgcc -lgcc_eh -lc -lgcc -lgcc_eh /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.8.2/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o /usr/local/include/c++/4.8.2/future:1439: error: undefined reference to 'std::__future_base::_State_base::~_State_base()' /usr/local/include/c++/4.8.2/future:1439: error: undefined reference to 'std::__future_base::_State_base::~_State_base()' /usr/local/include/c++/4.8.2/future:1439: error: undefined reference to 'std::__future_base::_State_base::~_State_base()' /usr/local/include/c++/4.8.2/future:1439: error: undefined reference to 'std::__future_base::_State_base::~_State_base()' /usr/local/include/c++/4.8.2/future:317: error: undefined reference to 'vtable for std::__future_base::_State_base' /usr/local/boost/lib/libboost_date_time.a(greg_month.o):greg_month.cpp:function non-virtual thunk to boost::exception_detail::error_info_injector<boost::gregorian::bad_month>::~error_info_injector(): warning: relocation refers to discarded section collect2: error: ld returned 1 exit status This seems to be due to libstdc++.a from 4.9.0 (which doesn't contain the string State_base) having overwritten the one from 4.8.2 (which does). This is the only binary which needs -static-libstdc++ -static-libgcc . Other binaries (using libstdc++.so) build correctly. Is this not a supported configuration? Do I have to give up on switching back and forth between 4.8.2 and 4.9.0? Csaba P.S. Please CC me, I'm not subscribed to the list. -- GCS a+ e++ d- C++ ULS$ L+$ !E- W++ P+++$ w++$ tv+ b++ DI D++ 5++ The Tao of math: The numbers you can count are not the real numbers. Life is complex, with real and imaginary parts. "Ok, it boots. Which means it must be bug-free and perfect. " -- Linus Torvalds "People disagree with me. I just ignore them." -- Linus Torvalds