This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/27950] [4.2 regression] undefined reference when compiling valgrind 3.2.0
- From: "seongbae dot park at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Jun 2006 18:43:46 -0000
- Subject: [Bug middle-end/27950] [4.2 regression] undefined reference when compiling valgrind 3.2.0
- References: <bug-27950-12708@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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