From: Maciej W. Rozycki Date: Tue, 16 Jun 2009 02:14:12 +0000 (+0000) Subject: bfd/ X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=04981bc1fb2151ec0d6adf57793eea41779c2f34;p=deliverable%2Fbinutils-gdb.git bfd/ * elf32-vax.c (elf_vax_relocate_section): For symbol references from an executable to a shared library treat R_VAX_PC32 relocations as R_VAX_PLT32 ones. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 15ee34eef3..211e0a56fa 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2009-06-16 Maciej W. Rozycki + + * elf32-vax.c (elf_vax_relocate_section): For symbol references + from an executable to a shared library treat R_VAX_PC32 + relocations as R_VAX_PLT32 ones. + 2009-06-16 Maciej W. Rozycki * elf32-vax.c (elf_vax_instantiate_got_entries): Skip local diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c index 516734d30b..80c5046d28 100644 --- a/bfd/elf32-vax.c +++ b/bfd/elf32-vax.c @@ -1544,6 +1544,14 @@ elf_vax_relocate_section (bfd *output_bfd, } break; + case R_VAX_PC32: + /* If we are creating an executable and the function this + reloc refers to is in a shared lib, then we made a PLT + entry for this symbol and need to handle the reloc like + a PLT reloc. */ + if (info->shared) + goto r_vax_pc32_shared; + /* Fall through. */ case R_VAX_PLT32: /* Relocation is to the entry for this symbol in the procedure linkage table. */ @@ -1605,7 +1613,7 @@ elf_vax_relocate_section (bfd *output_bfd, case R_VAX_PC8: case R_VAX_PC16: - case R_VAX_PC32: + r_vax_pc32_shared: if (h == NULL || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT || h->forced_local)