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.

Reply via email to