------- Comment #23 from iains at gcc dot gnu dot org 2010-05-24 17:27 ------- Created an attachment (id=20736) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20736&action=view) candidate solution
OK, so comment #22 is the work-around ... .. here is the current version of the "proper" solution - that makes the emutls vars recognized by OMP and LTO. This works for me for c, c++,Objc, ObjC++ and Fortran (i686 and x86_64 darwin, [ powerpc as well but not recently bootstrapped]) with one regression: gcc.dg/tls/asm-1.c -- would be good if someone more gimplifier experience could look at gimplify_asm () and see where there is a wrong assumption about arguments... There is a "latent" regression in c++ (if we enable all the tls_native tests applicable) - this is a case where there are two conflicting error messages - and I think the FE has got confused about whether the var is __thread or not and tries to create a static constructor for a failed case .. but not 100% sure about that. ==== TODO: The expansion of gimplification in tree-profile.c (not a regression currently, but one waiting to happen). ==== This is ready to kick around a bit -- could other affected targets test/give opinions etc? I guess we should get comments on whether this is too invasive... ... although, if that's felt to be the case I'd like suggestions as to where else to hook in.. :-) -- iains at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #20701|0 |1 is obsolete| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132