This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/41357] libgomp build fail
- From: "davek at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Sep 2009 14:07:19 -0000
- Subject: [Bug debug/41357] libgomp build fail
- References: <bug-41357-11815@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from davek at gcc dot gnu dot org 2009-09-15 14:07 -------
(In reply to comment #6)
> (In reply to comment #1)
> > The cause is that DW_TAG_variable references gomp_tls_data instead of
> > ___emutls_v.gomp_tls_data.
> >
>
> Here's an example:
No, that's not it, that's not it at all, sorry. Here's the relevant part of
the debug info from iter.s in the libgomp build dir, with a bit of surrounding
context:
.byte 0x1
.ascii "gomp_iter_dynamic_next_locked\0"
.byte 0x1
.byte 0x90
.byte 0x1
.long 0x7c3
.long LFB24
.long LFE24
.secrel32 LLST13
.long 0xc77
.uleb128 0x1d
.secrel32 LASF4
.byte 0x1
.byte 0x90
.long 0xbc2
.secrel32 LLST14
.uleb128 0x1e
.ascii "pend\0"
.byte 0x1
.byte 0x90
.long 0xbc2
.secrel32 LLST15
.uleb128 0x24
.ascii "thr\0"
.byte 0x1
.byte 0x92
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
.long 0xa79
.long _gomp_tls_data
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.uleb128 0x25
.ascii "ws\0"
.byte 0x1
.byte 0x93
.long 0x4e7
.byte 0x1
.byte 0x52
.uleb128 0x26
.secrel32 LASF5
.byte 0x1
.byte 0x94
.long 0xe0
.byte 0x1
.byte 0x51
.uleb128 0x20
.ascii "end\0"
Here's what objdump -W has to say about that:
<1><bc8>: Abbrev Number: 28 (DW_TAG_subprogram)
<bc9> DW_AT_external : 1
<bca> DW_AT_name : gomp_iter_dynamic_next_locked
<be8> DW_AT_decl_file : 1
<be9> DW_AT_decl_line : 144
<bea> DW_AT_prototyped : 1
<beb> DW_AT_type : <0x7c3>
<bef> DW_AT_low_pc : 0x250
<bf3> DW_AT_high_pc : 0x2a7
<bf7> DW_AT_frame_base : 0x1bc (location list)
<bfb> DW_AT_sibling : <0xc77>
<2><bff>: Abbrev Number: 29 (DW_TAG_formal_parameter)
<c00> DW_AT_name : (indirect string, offset: 0x20): pstart
<c04> DW_AT_decl_file : 1
<c05> DW_AT_decl_line : 144
<c06> DW_AT_type : <0xbc2>
<c0a> DW_AT_location : 0x200 (location list)
<2><c0e>: Abbrev Number: 30 (DW_TAG_formal_parameter)
<c0f> DW_AT_name : pend
<c14> DW_AT_decl_file : 1
<c15> DW_AT_decl_line : 144
<c16> DW_AT_type : <0xbc2>
<c1a> DW_AT_location : 0x214 (location list)
<2><c1e>: Abbrev Number: 36 (DW_TAG_variable)
<c1f> DW_AT_name : thr
<c23> DW_AT_decl_file : 1
<c24> DW_AT_decl_line : 146
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
<c25> DW_AT_type : <0xa79>
<c29> DW_AT_const_value : 0x0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (n.b. unrelocated value)
<2><c2d>: Abbrev Number: 37 (DW_TAG_variable)
<c2e> DW_AT_name : ws
<c31> DW_AT_decl_file : 1
<c32> DW_AT_decl_line : 147
<c33> DW_AT_type : <0x4e7>
<c37> DW_AT_location : 1 byte block: 52 (DW_OP_reg2)
<2><c39>: Abbrev Number: 38 (DW_TAG_variable)
<c3a> DW_AT_name : (indirect string, offset: 0x44): start
<c3e> DW_AT_decl_file : 1
<c3f> DW_AT_decl_line : 148
<c40> DW_AT_type : <0xe0>
<c44> DW_AT_location : 1 byte block: 51 (DW_OP_reg1)
<2><c46>: Abbrev Number: 32 (DW_TAG_variable)
<c47> DW_AT_name : end
<c4b> DW_AT_decl_file : 1
<c4c> DW_AT_decl_line : 148
<c4d> DW_AT_type : <0xe0>
<c51> DW_AT_location : 0x228 (location list)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41357