------- Comment #5 from davek at gcc dot gnu dot org 2009-09-30 14:10 ------- (In reply to comment #4)
> It uses GCC's emulated TLS support (don't support HP's TLS implementation). > There were no libgomp failures prior to the change: > http://gcc.gnu.org/ml/gcc-testresults/2009-09/msg02555.html Right, thank you. > While I know that the change introduced the failures, I haven't tried > reverting the change with the current head. > > The same failures do not occur on the 32-bit hppa2.0w-hp-hpux11.11 target. > It also uses GCC's emulated TLS support. I would guess that this has > something to do with hppa64-hp-hpux11.11 using dwarf debug support and > hppa2.0w-hp-hpux11.11 using stabs. Hmm, that suggests a horrible workaround where we only copy the flags into the rtl in the case of dwarf debug info: Index: gcc/varasm.c =================================================================== --- gcc/varasm.c (revision 152317) +++ gcc/varasm.c (working copy) @@ -6416,6 +6416,7 @@ default_encode_section_info (tree decl, rtx rtl, i if (targetm.binds_local_p (decl)) flags |= SYMBOL_FLAG_LOCAL; if (TREE_CODE (decl) == VAR_DECL && DECL_THREAD_LOCAL_P (decl) + && (write_symbols == DWARF2_DEBUG || write_symbols == VMS_AND_DWARF2_DEBUG) && DECL_TLS_MODEL (decl) != TLS_MODEL_EMULATED) flags |= DECL_TLS_MODEL (decl) << SYMBOL_FLAG_TLS_SHIFT; else if (targetm.in_small_data_p (decl)) Would anyone like to give that a try and see if it does the job? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41485