[Bug middle-end/27950] [4.2 regression] undefined reference when compiling valgrind 3.2.0
seongbae dot park at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri Jun 23 18:44:00 GMT 2006
------- Comment #4 from seongbae dot park at gmail dot com 2006-06-23 18:43 -------
The problem is causedby the extra DW_AT_const_value.
4.1.0 generates the following dwarf entry for auxmap:
<1><a30c>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_name : (indirect string, offset: 0x35e): auxmap
DW_AT_decl_file : 1
DW_AT_decl_line : 362
DW_AT_type : <a318>
<1><a318>: Abbrev Number: 26 (DW_TAG_const_type)
whereas 4.2.0 generates:
<1><9c6e>: Abbrev Number: 70 (DW_TAG_variable)
DW_AT_name : (indirect string, offset: 0x16dd): auxmap_used
DW_AT_decl_file : 1
DW_AT_decl_line : 361
DW_AT_type : <9c69>
DW_AT_const_value : 0
and the bad relocation is the value of DW_AT_const_value.
In the asembly:
.uleb128 0x48
.long .LASF367
.byte 0x1
.value 0x16a
.long 0x9c8b
.long hacky_auxmaps
.uleb128 0x1b
Looks like the new feature to note the constant value of a symbol
(auxmap is initialized to &hacky_auxmaps[0] as shown above)
causes the relocation to be left against a static symbol.
--
seongbae dot park at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |seongbae dot park at gmail
| |dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27950
More information about the Gcc-bugs
mailing list