summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Thomas <matt@3am-software.com>2007-04-06 16:29:32 +0000
committerMatt Thomas <matt@3am-software.com>2007-04-06 16:29:32 +0000
commitc942cf62550628bb29f07ce31b17d840dbd859c5 (patch)
tree3b3abeba574e353b2281ddefa32c8c96558b210c
parentc619db2486196363b82fba1a844ef2ae5bf526bd (diff)
downloadbinutils-redhat-c942cf62550628bb29f07ce31b17d840dbd859c5.tar.gz
2007-04-03 Matt Thomas <matt@netbsd.org>
* elf32-vax.c (elf_vax_relocate_section): Do not emit a PCREL reloc in a shared object if it is not in a CODE section or if it is against a section symbol. This allows DWARF2 to use pcrel format.
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf32-vax.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 813c13dcaa..cfaa72ffb6 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+2007-04-03 Matt Thomas <matt@netbsd.org>
+
+ * elf32-vax.c (elf_vax_relocate_section): Do not emit a PCREL reloc
+ in a shared object if it is not in a CODE section or if it is against
+ a section symbol. This allows DWARF2 to use pcrel format.
+
2007-04-05 H.J. Lu <hongjiu.lu@intel.com>
PR ld/4304
diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c
index fce01e2157..7df71655b7 100644
--- a/bfd/elf32-vax.c
+++ b/bfd/elf32-vax.c
@@ -1625,8 +1625,9 @@ elf_vax_relocate_section (bfd *output_bfd,
&& ((r_type != R_VAX_PC8
&& r_type != R_VAX_PC16
&& r_type != R_VAX_PC32)
- || (!info->symbolic
- || !h->def_regular)))
+ || ((input_section->flags & SEC_CODE)
+ && (!info->symbolic
+ || (!h->def_regular && h->type != STT_SECTION)))))
{
Elf_Internal_Rela outrel;
bfd_byte *loc;