aboutsummaryrefslogtreecommitdiff
path: root/bfd/reloc.c
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2003-01-20 11:46:33 +0000
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2003-01-20 11:46:33 +0000
commit5236c819d286710b9daa83f5d38573b84e442f67 (patch)
treeb66bcd33f67de05a798ac2ff0c804e0f953548dc /bfd/reloc.c
parentf1fc51dabb11f03e81b40bade427d7743745e1d8 (diff)
downloadbinutils-5236c819d286710b9daa83f5d38573b84e442f67.zip
binutils-5236c819d286710b9daa83f5d38573b84e442f67.tar.gz
binutils-5236c819d286710b9daa83f5d38573b84e442f67.tar.bz2
* bfd-in2.h: Regenerate.
* elf32-s390.c (elf_s390_adjust_gotplt): New prototype. (elf_howto_table): Rename R_390_GOTOFF to R_390_GOTOFF32. Add R_390_GOTOFF16, R_390_GOTOFF64, R_390_GOTPLT12, R_390_GOTPLT16, R_390_GOTPLT32, R_390_GOTPLT64, R_390_GOTPLTENT, R_390_PLTOFF16, R_390_PLTOFF32 and R_390_PLTOFF64. (elf_s390_reloc_type_lookup): Likewise. (struct elf_s390_link_hash_entry): Add gotplt_refcount to keep track of GOTPLT references to a function. (link_hash_newfunc): Initialize gotplt_refcount. (elf_s390_check_relocs): Move allocation of local_got_refcounts array and creation of the got section out of the main switch. Add support for the gotoff, gotplt and pltoff relocations. (elf_s390_gc_sweep_hook): Add reference counting for gotoff, gotplt and pltoff. (elf_s390_adjust_gotplt): New function. (elf_s390_adjust_dynamic_symbol): Adjust gotplt refcount for removed plt entries. (allocate_dynrelocs): Add comment. (elf_s390_relocate_section): Change r_type to unsigned. Add support for gotoff, gotplt and pltoff relocations. * elf64-s390.c: Same changes as for elf32-s390.c. * libbfd.h: Regenerate. * reloc.c: Add BFD_RELOC_390_GOTOFF64, BFD_RELOC_390_GOTPLT12, BFD_RELOC_390_GOTPLT16, BFD_RELOC_390_GOTPLT32, BFD_RELOC_390_GOTPLT64, BFD_RELOC_390_GOTPLTENT, BFD_RELOC_390_PLTOFF16, BFD_RELOC_390_PLTOFF32 and BFD_RELOC_390_PLTOFF64.
Diffstat (limited to 'bfd/reloc.c')
-rw-r--r--bfd/reloc.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 661ac4a..7e75770 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -3169,6 +3169,42 @@ ENUM
BFD_RELOC_390_GOTENT
ENUMDOC
32 bit rel. offset to GOT entry.
+ENUM
+ BFD_RELOC_390_GOTOFF64
+ENUMDOC
+ 64 bit offset to GOT.
+ENUM
+ BFD_RELOC_390_GOTPLT12
+ENUMDOC
+ 12-bit offset to symbol-entry within GOT, with PLT handling.
+ENUM
+ BFD_RELOC_390_GOTPLT16
+ENUMDOC
+ 16-bit offset to symbol-entry within GOT, with PLT handling.
+ENUM
+ BFD_RELOC_390_GOTPLT32
+ENUMDOC
+ 32-bit offset to symbol-entry within GOT, with PLT handling.
+ENUM
+ BFD_RELOC_390_GOTPLT64
+ENUMDOC
+ 64-bit offset to symbol-entry within GOT, with PLT handling.
+ENUM
+ BFD_RELOC_390_GOTPLTENT
+ENUMDOC
+ 32-bit rel. offset to symbol-entry within GOT, with PLT handling.
+ENUM
+ BFD_RELOC_390_PLTOFF16
+ENUMDOC
+ 16-bit rel. offset from the GOT to a PLT entry.
+ENUM
+ BFD_RELOC_390_PLTOFF32
+ENUMDOC
+ 32-bit rel. offset from the GOT to a PLT entry.
+ENUM
+ BFD_RELOC_390_PLTOFF64
+ENUMDOC
+ 64-bit rel. offset from the GOT to a PLT entry.
ENUM
BFD_RELOC_IP2K_FR9