* 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. |
||
|---|---|---|
| .. | ||
| alpha.h | ||
| arc.h | ||
| arm.h | ||
| avr.h | ||
| bfin.h | ||
| ChangeLog | ||
| ChangeLog-9103 | ||
| common.h | ||
| cr16.h | ||
| cr16c.h | ||
| cris.h | ||
| crx.h | ||
| d10v.h | ||
| d30v.h | ||
| dlx.h | ||
| dwarf.h | ||
| epiphany.h | ||
| external.h | ||
| fr30.h | ||
| frv.h | ||
| h8.h | ||
| hppa.h | ||
| i370.h | ||
| i386.h | ||
| i860.h | ||
| i960.h | ||
| ia64.h | ||
| internal.h | ||
| ip2k.h | ||
| iq2000.h | ||
| lm32.h | ||
| m32c.h | ||
| m32r.h | ||
| m68hc11.h | ||
| m68k.h | ||
| mcore.h | ||
| mep.h | ||
| microblaze.h | ||
| mips.h | ||
| mmix.h | ||
| mn10200.h | ||
| mn10300.h | ||
| moxie.h | ||
| msp430.h | ||
| mt.h | ||
| openrisc.h | ||
| or32.h | ||
| pj.h | ||
| ppc64.h | ||
| ppc.h | ||
| reloc-macros.h | ||
| rl78.h | ||
| rx.h | ||
| s390.h | ||
| score.h | ||
| sh.h | ||
| sparc.h | ||
| spu.h | ||
| tic6x-attrs.h | ||
| tic6x.h | ||
| tilegx.h | ||
| tilepro.h | ||
| v850.h | ||
| vax.h | ||
| vxworks.h | ||
| x86-64.h | ||
| xc16x.h | ||
| xgate.h | ||
| xstormy16.h | ||
| xtensa.h | ||