2006-10-04 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 4 Oct 2006 11:50:43 +0000 (11:50 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 4 Oct 2006 11:50:43 +0000 (11:50 +0000)
* readelf.c (debug_apply_rela_addends): Don't ignore relocation
against symbols without type.

binutils/ChangeLog
binutils/readelf.c

index 812afc2eb83b3938057869577f6a1b471629f189..0509d7a654a8b515398faf5375ea66996611f2a8 100644 (file)
@@ -1,3 +1,8 @@
+2006-10-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * readelf.c (debug_apply_rela_addends): Don't ignore relocation
+       against symbols without type.
+
 2006-09-25 Pedro Alves <pedro_alves@portugalmail.pt>
 
        * nlmconv.c (main) : Use LITMEMCPY.
index b1f3fc63a581071c3b4615a9f07e6be010c79ae2..bb18415e7b92251fb1debffd7c12ee8e0d5448b0 100644 (file)
@@ -7747,6 +7747,10 @@ debug_apply_rela_addends (void *file,
 
              if (ELF32_R_SYM (rp->r_info) != 0
                  && ELF32_ST_TYPE (sym->st_info) != STT_SECTION
+                 /* Relocations against symbols without type can happen.
+                    Gcc -feliminate-dwarf2-dups may generate symbols
+                    without type for debug info.  */
+                 && ELF32_ST_TYPE (sym->st_info) != STT_NOTYPE
                  /* Relocations against object symbols can happen,
                     eg when referencing a global array.  For an
                     example of this see the _clz.o binary in libgcc.a.  */
@@ -7776,6 +7780,7 @@ debug_apply_rela_addends (void *file,
 
              if (ELF64_R_SYM (rp->r_info) != 0
                  && ELF64_ST_TYPE (sym->st_info) != STT_SECTION
+                 && ELF64_ST_TYPE (sym->st_info) != STT_NOTYPE
                  && ELF64_ST_TYPE (sym->st_info) != STT_OBJECT)
                {
                  warn (_("skipping unexpected symbol type %s in relocation in section .rela.%s\n"),