aboutsummaryrefslogtreecommitdiff
path: root/ld/pe-dll.c
diff options
context:
space:
mode:
authorDave Korn <dave.korn@artimi.com>2011-10-13 02:34:36 +0000
committerDave Korn <dave.korn@artimi.com>2011-10-13 02:34:36 +0000
commit0432176d1e4adbcf2ba67cb67e3ec73f0d60d9cd (patch)
tree6a5f37f80b168b99327f2f10a6bf1b954acf194e /ld/pe-dll.c
parent7a9db077fcc7c9f877c7302619138134ed52e9e6 (diff)
downloadfsf-binutils-gdb-0432176d1e4adbcf2ba67cb67e3ec73f0d60d9cd.zip
fsf-binutils-gdb-0432176d1e4adbcf2ba67cb67e3ec73f0d60d9cd.tar.gz
fsf-binutils-gdb-0432176d1e4adbcf2ba67cb67e3ec73f0d60d9cd.tar.bz2
* pe-dll.c (generate_reloc): Don't emit a base reloc for an
underlying BFD reloc that will be discarded in eh_frame data.
Diffstat (limited to 'ld/pe-dll.c')
-rw-r--r--ld/pe-dll.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 7848063..ce0ab5d 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1395,6 +1395,15 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
else if (!blhe || blhe->type != bfd_link_hash_defined)
continue;
}
+ /* Nor for Dwarf FDE references to discarded sections. */
+ else if (bfd_is_abs_section (sym->section->output_section))
+ {
+ /* We only ignore relocs from .eh_frame sections, as
+ they are discarded by the final link rather than
+ resolved against the kept section. */
+ if (!strcmp (s->name, ".eh_frame"))
+ continue;
+ }
reloc_data[total_relocs].vma = sec_vma + relocs[i]->address;