------- 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