Using thread local storage (e.g. OpenMP ThreadPrivate variables) on Darwin requires manually linking to TLS emutls, via either -lgcc_s.so.1 or -lgcc_eh
See the threads: http://gcc.gnu.org/ml/gcc/2008-12/msg00145.html http://gcc.gnu.org/ml/gcc/2008-12/msg00107.html >From the above threads, this is evidently quite a mess. However, as I was just bit by this I hoped it useful to have a bug tracking the issue. I just ran across this with a fresh bootstrap of gcc 4.4.0 on MacOSX 10.5.6 x86_64, configured as: "--program-suffix=-4.4 --enable-languages=c,c++,fortran" TLS works fine if I manually link to gcc_s.so.1 or gcc_eh as mentioned above. -- Summary: TLS emutls not linked to automatically on Darwin Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: other AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: fago at earthlink dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39888