summaryrefslogtreecommitdiffstats
path: root/bfd/elf32-cris.c
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2009-10-29 11:49:00 +0000
committerHans-Peter Nilsson <hp@axis.com>2009-10-29 11:49:00 +0000
commit5d5a918a3d663db5b79d97526295a4ac749a65d9 (patch)
tree452d283759c5165cc877114fc7eb47587ddb122d /bfd/elf32-cris.c
parent1b31b9e34a290fcd587142e062588c91b8e289f8 (diff)
downloadppe42-binutils-5d5a918a3d663db5b79d97526295a4ac749a65d9.tar.gz
ppe42-binutils-5d5a918a3d663db5b79d97526295a4ac749a65d9.zip
* elf32-cris.c (cris_elf_plt_sym_val): New function.
(elf_backend_plt_sym_val): Define.
Diffstat (limited to 'bfd/elf32-cris.c')
-rw-r--r--bfd/elf32-cris.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index ceea1b9273..ca858d0546 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -2704,6 +2704,21 @@ cris_elf_gc_sweep_hook (bfd *abfd,
return TRUE;
}
+/* The elf_backend_plt_sym_val hook function. */
+
+static bfd_vma
+cris_elf_plt_sym_val (bfd_vma i, const asection *plt,
+ const arelent *rel ATTRIBUTE_UNUSED)
+{
+ bfd_size_type plt_entry_size;
+
+ plt_entry_size
+ = (bfd_get_mach (plt->owner) == bfd_mach_cris_v32
+ ? PLT_ENTRY_SIZE_V32 : PLT_ENTRY_SIZE);
+
+ return plt->vma + (i + 1) * plt_entry_size;
+}
+
/* Make sure we emit a GOT entry if the symbol was supposed to have a PLT
entry but we found we will not create any. Called when we find we will
not have any PLT for this symbol, by for example
@@ -4312,6 +4327,7 @@ elf_cris_got_elt_size (bfd *abfd ATTRIBUTE_UNUSED,
#define elf_backend_relocate_section cris_elf_relocate_section
#define elf_backend_gc_mark_hook cris_elf_gc_mark_hook
#define elf_backend_gc_sweep_hook cris_elf_gc_sweep_hook
+#define elf_backend_plt_sym_val cris_elf_plt_sym_val
#define elf_backend_check_relocs cris_elf_check_relocs
#define elf_backend_grok_prstatus cris_elf_grok_prstatus
#define elf_backend_grok_psinfo cris_elf_grok_psinfo
OpenPOWER on IntegriCloud