mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-30 12:44:10 +08:00
4a403be0c1
Implement support for largetoc on XCOFF. R_TOCU and R_TOCL are referenced by the new BFD defines: BFD_RELOC_PPC_TOC16_HI and BFD_RELOC_PPC_TOC16_LO. A new toc storage class is added XMC_TE. In order to correctly handle R_TOCU, the logic behind xcoff_reloc_type_toc is changed to compute the whole TOC offset instead of just the difference between the "link" offset and the "assembly" offset. In gas, add a function to transform addis format used by AIX "addis RT, D(RA)" into the ELF format "addis RT, RA, SI". bfd/ * reloc.c (BFD_RELOC_PPC_TOC16_HI, BFD_RELOC_PPC_TOC16_LO): New relocations. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. * coff-rs6000.c (xcoff_calculate_relocation): Call xcoff_reloc_type_toc for R_TOCU and R_TOCL. (xcoff_howto_table): Remove src_mask for TOC relocations. Add R_TOCU and R_TOCL howtos. (_bfd_xcoff_reloc_type_lookup): Add cases for BFD_RELOC_PPC_TOC16_HI and BFD_RELOC_PPC_TOC16_LO. (xcoff_reloc_type_toc): Compute the whole offset. Implement R_TOCU and R_TOCL. * coff64-rs6000.c (xcoff64_calculate_relocation): Likewise. (xcoff64_howto_table): Likewise. (xcoff64_reloc_type_lookup): Likewise. gas/ * config/tc-ppc.c (ppc_xcoff_suffix): New function. (MAP, MAP32, MAP64): New macros for XCOFF. (ppc_xcoff_fixup_addis): New function. (ppc_is_toc_sym): Handle XMC_TE. (fixup_size): Add cases for BFD_RELOC_PPC_TOC16_HI and BFD_RELOC_PPC_TOC16_LO. (md_assemble): Call ppc_xcoff_fixup_addis for XCOFF. (ppc_change_csect): Handle XMC_TE. (ppc_tc): Enable .tc symbols to have only a XMC_TC or XMC_TE storage class. (ppc_symbol_new_hook): Handle XMC_TE. (ppc_frob_symbol): Likewise. (ppc_fix_adjustable): Likewise. (md_apply_fix): Handle BFD_RELOC_PPC_TOC16_HI and BFD_RELOC_PPC_TOC16_LO. ld/ * scripttempl/aix.sc: Add .te to .data section. * testsuite/ld-powerpc/aix52.exp: Add test structure for AIX7+. Add aix-largetoc-1 test. * testsuite/ld-powerpc/aix-largetoc-1-32.d: New test. * testsuite/ld-powerpc/aix-largetoc-1-64.d: New test. * testsuite/ld-powerpc/aix-largetoc-1.ex: New test. * testsuite/ld-powerpc/aix-largetoc-1.s: New test. |
||
---|---|---|
.. | ||
aix.sc | ||
alpha.sc | ||
alphavms.sc | ||
aout.sc | ||
arclinux.sc | ||
avr.sc | ||
crisaout.sc | ||
dlx.sc | ||
DWARF.sc | ||
elf32cr16.sc | ||
elf32crx.sc | ||
elf32msp430.sc | ||
elf32xc16x.sc | ||
elf32xc16xl.sc | ||
elf32xc16xs.sc | ||
elf64bpf.sc | ||
elf64hppa.sc | ||
elf_chaos.sc | ||
elf.sc | ||
elfarc.sc | ||
elfarcv2.sc | ||
elfd10v.sc | ||
elfd30v.sc | ||
elfm9s12z.sc | ||
elfm68hc11.sc | ||
elfm68hc12.sc | ||
elfmicroblaze.sc | ||
elfxgate.sc | ||
elfxtensa.sc | ||
epiphany_4x4.sc | ||
ft32.sc | ||
hppaelf.sc | ||
i386beos.sc | ||
i386go32.sc | ||
i386msdos.sc | ||
ia64vms.sc | ||
ip2k.sc | ||
iq2000.sc | ||
mcorepe.sc | ||
mep.sc | ||
mips.sc | ||
mipsbsd.sc | ||
mmo.sc | ||
moxie.sc | ||
nds32elf.sc | ||
pdp11.sc | ||
pe.sc | ||
pep.sc | ||
pj.sc | ||
pru.sc | ||
README | ||
sh.sc | ||
tic4xcoff.sc | ||
tic30coff.sc | ||
tic54xcoff.sc | ||
v850_rh850.sc | ||
v850.sc | ||
vanilla.sc | ||
visium.sc | ||
xstormy16.sc | ||
z80.sc | ||
z8000.sc |
The files in this directory are linker script templates.
genscripts.sh sets some shell variables, then sources
EMULATION.sc, to generate EMULATION.{x,xr,xu,xn,xbn} -- the script
files for default, -r, -Ur, -n, -N.
Copyright (C) 2012-2021 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.