http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53675
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-06-15 19:43:30 UTC --- Created attachment 27627 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27627 Build log with new binutils Using a newer binutils (2.22) the errors about dwarf4 are gone, but the multiple definition errors remain. GCC still shouldn't be issuing DWARF4 info when the linker doesn't support it and --with-dwarf2 is used, but that's not the problem. Every file that includes <mutex> and uses std::call_once gets a multiple definition error for the lambda expression on line 815 ../src/c++11/.libs/libc++11convenience.a(future.o): In function `operator()': /home/jwakely/build/x86_64-unknown-netbsd5.1/libstdc++-v3/include/mutex:815: multiple definition of `void std::call_once<void (std::thread::*)(), std::reference_wrapper<std::thread> >(std::once_flag&, void (std::thread::*&&)(), std::reference_wrapper<std::thread>&&)::{lambda()#1}::_FUN()' .libs/compatibility-thread-c++0x.o:/home/jwakely/build/x86_64-unknown-netbsd5.1/libstdc++-v3/include/mutex:815: first defined here I'll try to reproduce this on other platforms by using --disable-tls, so that code path is taken.