aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 813c13d..cfaa72f 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 fce01e2..7df7165 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;