binutils-gdb/ld/testsuite
Alan Modra 05d0e962f0 R_PPC64_REL24_NOTOC support
R_PPC64_REL24_NOTOC is used on calls like "bl foo@notoc" to tell the
linker that linkage stubs for PLT calls or long branches can't use r2
for pic addressing.  Instead, new stubs that generate pc-relative
addresses are used.  One complication is that pc-relative offsets to
the PLT may need to be 64-bit in large programs, in contrast to the
toc-relative addressing used by older PLT linkage stubs where a 32-bit
offset is sufficient until the PLT itself exceeds 2G in size.

.eh_frame info to cover the _notoc stubs is yet to be implemented.

bfd/
	* elf64-ppc.c (ADDI_R12_R11, ADDI_R12_R12, LIS_R12),
	(ADDIS_R12_R11, ORIS_R12_R12_0, ORI_R12_R12_0),
	(SLDI_R12_R12_32, LDX_R12_R11_R12, ADD_R12_R11_R12): Define.
	(ppc64_elf_howto_raw): Add R_PPC64_REL24_NOTOC entry.
	(ppc64_elf_reloc_type_lookup): Support R_PPC64_REL24_NOTOC.
	(ppc_stub_type): Add ppc_stub_long_branch_notoc,
	ppc_stub_long_branch_both, ppc_stub_plt_branch_notoc,
	ppc_stub_plt_branch_both, ppc_stub_plt_call_notoc, and
	ppc_stub_plt_call_both.
	(is_branch_reloc): Add R_PPC64_REL24_NOTOC.
	(build_offset, size_offset): New functions.
	(plt_stub_size): Support plt_call_notoc and plt_call_both.
	(ppc_build_one_stub, ppc_size_one_stub): Support new stubs.
	(toc_adjusting_stub_needed): Handle R_PPC64_REL24_NOTOC.
	(ppc64_elf_size_stubs): Likewise, and new stubs.
	(ppc64_elf_build_stubs, ppc64_elf_relocate_section): Likewise.
	* reloc.c: Add BFD_RELOC_PPC64_REL24_NOTOC.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Regenerate.
gas/
	* config/tc-ppc.c (ppc_elf_suffix): Support @notoc.
	(ppc_force_relocation, ppc_fix_adjustable): Handle REL24_NOTOC.
ld/
	* testsuite/ld-powerpc/ext.d,
	* testsuite/ld-powerpc/ext.s,
	* testsuite/ld-powerpc/ext.lnk,
	* testsuite/ld-powerpc/notoc.d,
	* testsuite/ld-powerpc/notoc.s: New tests.
	* testsuite/ld-powerpc/powerpc.exp: Run them.
2018-08-05 12:11:51 +09:30
..
config
ld-aarch64 Fix spurious check-ld failures on aarch64-elf 2018-08-01 13:36:51 -07:00
ld-alpha Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ld-arc ld error/warning messages 2018-02-26 10:51:12 +10:30
ld-arm [ARM] Update bfd's Tag_CPU_arch knowledge 2018-07-02 11:22:20 +01:00
ld-auto-import
ld-avr
ld-bootstrap Fix parens in ld bootstrap.exp 2018-06-26 21:28:05 +09:30
ld-cdtest
ld-checks
ld-cris ELF dynsyms 2018-06-14 11:32:01 +09:30
ld-crx
ld-csky Add support for the C_SKY series of processors. 2018-07-30 12:24:14 +01:00
ld-cygwin
ld-d10v
ld-discard xgate testsuite fixes 2018-07-10 23:59:59 +09:30
ld-elf Add support for the C_SKY series of processors. 2018-07-30 12:24:14 +01:00
ld-elfcomm Remove sh5 and sh64 support 2018-04-16 15:29:39 +09:30
ld-elfvers various i386-aout and i386-coff target removal 2018-04-18 09:34:19 +09:30
ld-elfvsb various i386-aout and i386-coff target removal 2018-04-18 09:34:19 +09:30
ld-elfweak various i386-aout and i386-coff target removal 2018-04-18 09:34:19 +09:30
ld-fastcall
ld-frv Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ld-gc Revise "ld testsuite use of notarget" 2018-07-11 16:39:04 +09:30
ld-h8300 Remove h8300-coff support 2018-04-16 15:17:57 +09:30
ld-i386 x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed 2018-07-20 09:19:00 -07:00
ld-ia64 Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ld-ifunc ifunc.exp: Always build static_nonifunc_prog 2018-08-02 05:42:53 -07:00
ld-libs
ld-linkonce x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed 2018-07-20 09:19:00 -07:00
ld-m68hc11
ld-m68k Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ld-mep
ld-metag Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ld-mips-elf MIPS/LD/testsuite: Correct mips-elf.exp test ABI/emul/endian arrangement 2018-07-12 20:01:44 +01:00
ld-misc ld testsuite use of notarget 2018-07-10 23:58:29 +09:30
ld-mmix ld error/warning messages 2018-02-26 10:51:12 +10:30
ld-mn10300
ld-msp430-elf
ld-nds32
ld-nios2
ld-pe ld testsuite use of notarget 2018-07-10 23:58:29 +09:30
ld-pie
ld-plugin Disable the PR12982 test for HPPA targets. 2018-08-02 16:37:12 +01:00
ld-powerpc R_PPC64_REL24_NOTOC support 2018-08-05 12:11:51 +09:30
ld-pru Fix binary compatibility between GCC and the TI compiler for the PRU target. 2018-05-09 11:39:32 +01:00
ld-riscv-elf RISC-V: Handle out-of-range calls to undefined weak. 2018-06-03 15:42:29 -07:00
ld-s12z Add support for the Freescale s12z processor. 2018-05-18 15:26:18 +01:00
ld-s390 S/390: Improve partial relro support for 64 bit 2018-07-18 13:20:06 +02:00
ld-scripts x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed 2018-07-20 09:19:00 -07:00
ld-selective Remove sh5 and sh64 support 2018-04-16 15:29:39 +09:30
ld-sh Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ld-shared various i386-aout and i386-coff target removal 2018-04-18 09:34:19 +09:30
ld-size various i386-aout and i386-coff target removal 2018-04-18 09:34:19 +09:30
ld-sparc Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ld-spu
ld-srec Add support for the C_SKY series of processors. 2018-07-30 12:24:14 +01:00
ld-tic6x ld: Adjust tic6x tests 2018-05-21 20:41:24 -07:00
ld-tilegx
ld-tilepro
ld-undefined [ARM] FDPIC: Update testsuite so that many tests pass with arm*-uclinuxfdpiceabi. 2018-04-25 21:13:14 +00:00
ld-unique Add support for the C_SKY series of processors. 2018-07-30 12:24:14 +01:00
ld-v850
ld-vax-elf
ld-visium
ld-vxworks
ld-x86-64 x32: Align the .note.gnu.property section to 4 bytes 2018-08-03 15:47:26 -07:00
ld-xc16x
ld-xstormy16
ld-xtensa xtensa: ld: convert tests to run_dump_test 2018-07-23 12:06:40 -07:00
ld-z8k
lib x86: Add a GNU_PROPERTY_X86_ISA_1_USED note if needed 2018-07-20 09:19:00 -07:00
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-9303