Dave Korn wrote: > Hi all, and Ping! Alex :) > > Since the recent vta changes, libgomp build seems to be broken on at least > some platforms that rely on tls emulation. All references to tls variables in > the generated source are prefixed with "__emutls_v" by the action of > get_emutls_object_name() in varasm.c, but the debug information ends up with a > reference to the un-prefixed original version of the variable's name.
The problem appears to lie in the generation of the NOTE_VAR_LOCATION for a local variable in the affected function: > (gdb) call debug_tree(0x7fe190c0) > <var_decl 0x7fe190c0 gomp_tls_data > type <record_type 0x7fe7df90 gomp_thread asm_written type_0 BLK > size <integer_cst 0x7fe2a8e0 constant 416> > unit size <integer_cst 0x7fe87dc0 constant 52> > align 32 symtab 2145789512 alias set 7 canonical type 0x7fe7df90 > fields <field_decl 0x7fe18ca0 fn type <pointer_type 0x7fda5e10> > unsigned SI file /gnu/gcc/gcc/libgomp/libgomp.h line 327 col 10 > size <integer_cst 0x7fef0580 constant 32> > unit size <integer_cst 0x7fef0320 constant 4> > align 32 offset_align 128 > offset <integer_cst 0x7fef0340 constant 0> > bit offset <integer_cst 0x7fef0b60 constant 0> context > <record_type 0x7fe7df90 gomp_thread> chain <field_decl 0x7fe18d00 data>> > context <translation_unit_decl 0x7fcac550 D.3329> > pointer_to_this <pointer_type 0x7fe7e230> chain <type_decl 0x7fe7e000 > D.2396>> > addressable used public external tls-local-exec BLK file > /gnu/gcc/gcc/libgomp/libgomp.h line 361 col 36 size <integer_cst 0x7fe2a8e0 > 416> unit size <integer_cst 0x7fe87dc0 52> > align 32 > (mem/s/c:BLK (symbol_ref:SI ("gomp_tls_data") [flags 0x42] <var_decl > 0x7fe190c0 gomp_tls_data>) [7 gomp_tls_data+0 S52 A32]) chain <function_decl > 0x7fdfb000 gomp_new_icv>> > (gdb) Notice that in this var_decl, the DECL_TLS_MODEL is "tls-local-exec", but this is not reflected in the RTL, which has no tls model set in bits 3:5 of the flags. I'm now about to start digging into where this note is created; as before, if anyone has any pointers or theories, that would really help speed me on my way. cheers, DaveK