http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50598
vincenzo Innocente <vincenzo.innocente at cern dot ch> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vincenzo.innocente at cern | |dot ch --- Comment #25 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2011-11-17 11:11:34 UTC --- confirm solved cat once.cpp #include<mutex> #include<iostream> int main() { std::once_flag flag; std::call_once(flag,[](){std::cout << "hi" << std::endl;}); return 0; } Vincenzos-MacBook-Pro:ExercisesBertinoro09 innocent$ c++ -v Using built-in specs. COLLECT_GCC=c++ COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin11.2.0/4.7.0/lto-wrapper Target: x86_64-apple-darwin11.2.0 Configured with: ./configure --enable-languages=c,c++,fortran --disable-multilib --disable-bootstrap --enable-lto -disable-libitm Thread model: posix gcc version 4.7.0 20111112 (experimental) (GCC) Vincenzos-MacBook-Pro:ExercisesBertinoro09 innocent$ c++ -Ofast -pthread -std=gnu++11 once.cpp Undefined symbols for architecture x86_64: "___emutls_v._ZSt15__once_callable", referenced from: _main in ccCeliaX.o ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status Vincenzos-MacBook-Pro:ExercisesBertinoro09 innocent$ c++ -v Using built-in specs. COLLECT_GCC=c++ COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin11.2.0/4.7.0/lto-wrapper Target: x86_64-apple-darwin11.2.0 Configured with: ./configure --enable-languages=c,c++,fortran --disable-multilib --disable-bootstrap --enable-lto -disable-libitm Thread model: posix gcc version 4.7.0 20111117 (experimental) (GCC) Vincenzos-MacBook-Pro:ExercisesBertinoro09 innocent$ c++ -Ofast -pthread -std=gnu++11 once.cpp