aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAndreas Krebbel <Andreas.Krebbel@de.ibm.com>2012-07-13 15:47:27 +0000
committerAndreas Krebbel <Andreas.Krebbel@de.ibm.com>2012-07-13 15:47:27 +0000
commit470b557aaf678bdadcd05a04e8fd312ba6d2f098 (patch)
treee5cd03984d101b6c5a8d4c774cd7c73c4ca14b0a /ld
parent2c3fc38946973ec305b63248abdd170eda059f80 (diff)
downloadgdb-470b557aaf678bdadcd05a04e8fd312ba6d2f098.zip
gdb-470b557aaf678bdadcd05a04e8fd312ba6d2f098.tar.gz
gdb-470b557aaf678bdadcd05a04e8fd312ba6d2f098.tar.bz2
2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* elf64-s390.c: Include elf-s390-common.c. (R_390_IRELATIVE): New reloc. (elf_s390_reloc_type_lookup): Support R_390_IRELATIVE. (RELA_ENTRY_SIZE): New macro. (elf_s390_link_hash_entry): New fields ifunc_resolver_address and *ifunc_resolver_section. (struct plt_entry): New struct. (struct elf_s390_obj_tdata): New field local_plt. (elf_s390_local_plt): New macro. (struct elf_s390_link_hash_table): New field irelifunc. (ELF64): New macro. (link_hash_newfunc): Initialize new fields. (elf_s390_check_relocs): Handle IFUNC symbols. (elf_s390_adjust_dynamic_symbol): Don't do anything for IFUNC symbols. (allocate_dynrelocs): Call s390_elf_allocate_ifunc_dyn_relocs for IFUNC symbols. (elf_s390_size_dynamic_sections): Handle IFUNC symbols. (elf_s390_relocate_section): Likewise. (elf_s390_finish_dynamic_symbol): Likewise. (elf_s390_finish_dynamic_sections): Handle local IFUNC symbols. (elf_s390_finish_ifunc_symbol): New function. (elf_s390_gc_sweep_hook): Handle local plt entries. (elf_backend_add_symbol_hook): Define. * elf32-s390.c: See elf64-s390.c changes. * elf-s390-common.c: New file. * bfd-in2.h (BFD_RELOC_390_IRELATIVE): New enum field. * libbfd.h (BFD_RELOC_390_IRELATIVE): New entry for BFD_RELOC_390_IRELATIVE. * reloc.c (BFD_RELOC_390_IRELATIVE): Document new relocation. 2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * elf/s390.h (START_RELOC_NUMBERS): Define R_390_IRELATIVE reloc. 2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * emulparams/elf_s390.sh (IREL_IN_PLT): Define. * emulparams/elf64_s390.sh (IREL_IN_PLT): Define.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/emulparams/elf64_s390.sh1
-rw-r--r--ld/emulparams/elf_s390.sh1
3 files changed, 7 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index a952530..a6c9665 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * emulparams/elf_s390.sh (IREL_IN_PLT): Define.
+ * emulparams/elf64_s390.sh (IREL_IN_PLT): Define.
+
2012-07-13 Nick Clifton <nickc@redhat.com>
PR ld/14357
diff --git a/ld/emulparams/elf64_s390.sh b/ld/emulparams/elf64_s390.sh
index ae8f26e..61d4c02 100644
--- a/ld/emulparams/elf64_s390.sh
+++ b/ld/emulparams/elf64_s390.sh
@@ -12,6 +12,7 @@ TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
+IREL_IN_PLT=
# Treat a host that matches the target with the possible exception of "x"
# in the name as if it were native.
diff --git a/ld/emulparams/elf_s390.sh b/ld/emulparams/elf_s390.sh
index 218558b..8f35cf3 100644
--- a/ld/emulparams/elf_s390.sh
+++ b/ld/emulparams/elf_s390.sh
@@ -11,3 +11,4 @@ TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
+IREL_IN_PLT=