aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2016-04-20 17:10:55 -0700
committerH.J. Lu <hjl.tools@gmail.com>2016-04-20 17:11:04 -0700
commit5ce03cea78d4d8bf00e29e4dfa4952d53f3b1064 (patch)
tree0bdfc4dd8ffda9077c60ddc5a176c46936da0147
parentfbf05aa70d7a6ad3dd92ca718faa4bb383b975ee (diff)
downloadfsf-binutils-gdb-5ce03cea78d4d8bf00e29e4dfa4952d53f3b1064.zip
fsf-binutils-gdb-5ce03cea78d4d8bf00e29e4dfa4952d53f3b1064.tar.gz
fsf-binutils-gdb-5ce03cea78d4d8bf00e29e4dfa4952d53f3b1064.tar.bz2
Don't check relocations in excluded sections
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
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 73b0b4d..57bb506 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 5af334a..b432384 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -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)