http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52765
Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2012-03-29 Ever Confirmed|0 |1 --- Comment #4 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-03-29 13:12:40 UTC --- Something seems fishy on x86_64-linux too, with the library built -O0 and -std=c++11 I see random segfaults. But since the problem seems simply that at -O0 we have these *additional* unwanted exports: 000000000008031e W std::complex<double>::imag() const 0000000000080310 W std::complex<double>::real() const 0000000000080394 W std::complex<long double>::imag() const 0000000000080386 W std::complex<long double>::real() const 00000000000802ac W std::complex<float>::imag() const 000000000008029e W std::complex<float>::real() const 00000000000802e4 W std::complex<double>::complex(double, double) 00000000000802e4 W std::complex<double>::complex(double, double) 0000000000080330 W std::complex<double>::operator=(double) 0000000000080358 W std::complex<long double>::complex(long double, long double) 0000000000080358 W std::complex<long double>::complex(long double, long double) 00000000000803a6 W std::complex<long double>::operator=(long double) 0000000000080276 W std::complex<float>::complex(float, float) 0000000000080276 W std::complex<float>::complex(float, float) 00000000000802be W std::complex<float>::operator=(float) I suppose the fix should be straightforward: just tighten the linker map and prevent that from happening.