Don't check relocations in excluded sections
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 21 Apr 2016 00:10:55 +0000 (17:10 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 21 Apr 2016 00:11:04 +0000 (17:11 -0700)
When checking relocations after gc-sections has run, the unused sections
have been removed.  Don't check relocations in excluded sections.

* elflink.c (_bfd_elf_link_check_relocs): Don't check relocations
in excluded sections

bfd/ChangeLog
bfd/elflink.c

index 73b0b4d..57bb506 100644 (file)
@@ -1,5 +1,10 @@
 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
 
+       * elflink.c (_bfd_elf_link_check_relocs): Don't check relocations
+       in excluded sections
+
+2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
+
        PR ld/19969
        * elf64-x86-64.c (check_relocs_failed): New.
        (elf_x86_64_need_pic): Moved before elf_x86_64_check_relocs.
index 5af334a..b432384 100644 (file)
@@ -3518,7 +3518,9 @@ _bfd_elf_link_check_relocs (bfd *abfd, struct bfd_link_info *info)
          Elf_Internal_Rela *internal_relocs;
          bfd_boolean ok;
 
+         /* Don't check relocations in excluded sections.  */
          if ((o->flags & SEC_RELOC) == 0
+             || (o->flags & SEC_EXCLUDE) != 0
              || o->reloc_count == 0
              || ((info->strip == strip_all || info->strip == strip_debugger)
                  && (o->flags & SEC_DEBUGGING) != 0)