Andreas Krebbel 470b557aaf 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.
2012-07-13 15:47:27 +00:00
..
2010-04-15 10:26:09 +00:00
2010-01-06 05:25:24 +00:00
2011-06-02 13:43:24 +00:00
2012-06-23 22:23:47 +00:00
2010-04-15 10:26:09 +00:00
2010-06-10 08:31:20 +00:00
2012-04-09 16:27:18 +00:00
2010-04-15 10:26:09 +00:00
2012-01-07 02:53:16 +00:00
2012-06-19 00:03:49 +00:00
2012-06-08 19:01:23 +00:00
2009-06-01 19:40:44 +00:00
2009-06-01 19:40:44 +00:00
2011-01-03 21:05:58 +00:00
2010-06-10 18:30:24 +00:00
2010-04-15 10:26:09 +00:00
2011-09-28 20:01:45 +00:00
2009-10-07 02:57:27 +00:00
2010-04-15 10:26:09 +00:00
2010-04-15 10:26:09 +00:00
2010-04-15 10:26:09 +00:00
2010-11-17 02:03:43 +00:00
2012-04-10 17:07:35 +00:00
2011-09-28 20:01:45 +00:00
2011-07-25 17:11:48 +00:00
2011-01-03 21:05:58 +00:00
2010-04-15 10:26:09 +00:00