http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46131
Rainer Orth <ro at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|wrong-code | Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2010.10.28 14:26:38 Component|middle-end |target AssignedTo|unassigned at gcc dot |ro at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #5 from Rainer Orth <ro at gcc dot gnu.org> 2010-10-28 14:26:38 UTC --- On second (or third) thought, the problem became obvious: emutls relies on a couple of libpthread functions. Since the OSF/1 linker doesn't support weak definitions, libgcc contains dummy definitions for them. For the TLS tests (and C++ EH, cf. PR target/46131) to work, the respective programs need to be linked with -pthread so the real functions are used instead. Manual testing indicated that this fixes the problem. I'll submit a proper patch shortly.