binutils-gdb/ld/testsuite/ld-powerpc
Alan Modra f6c7c3e8b7 Referencing a function's address on PowerPC64 ELFv2
ELFv2 needs to create plt entries in a non-PIC executable for an
address reference to a function defined in a shared object.  It's
possible that an object file has no features that distinguish it as
ELFv1 or ELFv2, eg. an object only containing data.  Such files need
to be handled like those that are known to be ELFv2.
However, this unnecessarily creates plt entries for the analogous
ELFv1 case, so arrange to set output abi version earlier, and use the
output abi version to further distinguish ambiguous input files.

bfd/
	* elf64-ppc.c (ppc64_elf_check_relocs): Account for possibly
	needed plt entries when taking the address of functions for
	abiversion == 0 (ie. unknown) as well as abiversion == 2.
	Move opd setup and abiversion checks to..
	(ppc64_elf_before_check_relocs): ..here.  Renamed from
	ppc64_elf_process_dot_syms.  Set output abiversion from input and
	input abiversion from output, if either is not set.
	(ppc64_elf_merge_private_bfd_data): Don't merge flags here.
	(elf_backend_check_directives): Update.
ld/testsuite/
	* ld-powerpc/startv1.s, * ld-powerpc/startv2.s, * ld-powerpc/funref.s,
	* ld-powerpc/funv1.s, * ld-powerpc/funv2.s,
	* ld-powerpc/ambiguousv1.d, * ld-powerpc/ambiguousv2.d: New test files.
	* ld-powerpc/powerpc.exp: Run new tests.
2014-03-27 00:49:38 +10:30
..
aix52.exp Update copyright years 2014-03-05 22:16:15 +10:30
aix-abs-branch-1.dd
aix-abs-branch-1.ex
aix-abs-branch-1.im
aix-abs-branch-1.nd
aix-abs-branch-1.s
aix-abs-reloc-1.ex
aix-abs-reloc-1.im
aix-abs-reloc-1.nd
aix-abs-reloc-1.od
aix-abs-reloc-1.s
aix-core-sec-1.ex
aix-core-sec-1.hd XCOFF/AIX: Remove SEC_ALLOC flags for unmapped sections. 2013-05-10 13:08:24 +00:00
aix-core-sec-1.s
aix-core-sec-2.ex
aix-core-sec-2.hd XCOFF/AIX: Remove SEC_ALLOC flags for unmapped sections. 2013-05-10 13:08:24 +00:00
aix-core-sec-2.s
aix-core-sec-3.ex
aix-core-sec-3.hd XCOFF/AIX: Remove SEC_ALLOC flags for unmapped sections. 2013-05-10 13:08:24 +00:00
aix-core-sec-3.s
aix-export-1-all.dd
aix-export-1-full.dd
aix-export-1a.s
aix-export-1b.s
aix-export-2.nd
aix-export-2.s
aix-gc-1-32.dd
aix-gc-1-64.dd
aix-gc-1.ex
aix-gc-1.nd
aix-gc-1.s
aix-glink-1-32.d
aix-glink-1-32.dd
aix-glink-1-64.d
aix-glink-1-64.dd
aix-glink-1.ex
aix-glink-1.s
aix-glink-2-32.dd
aix-glink-2-64.dd
aix-glink-2a.ex
aix-glink-2a.s
aix-glink-2b.s
aix-glink-2c.ex
aix-glink-2c.s
aix-glink-2d.s
aix-glink-3-32.d
aix-glink-3-64.d
aix-glink-3.dd
aix-glink-3.s
aix-glink-3a.s
aix-glink-3b.s
aix-lineno-1.s
aix-lineno-1.txt
aix-lineno-1a.dd
aix-lineno-1a.nd
aix-lineno-1b.dd
aix-lineno-1b.nd
aix-no-dup-syms-1-dso.dnd
aix-no-dup-syms-1-dso.drd
aix-no-dup-syms-1-dso.nd
aix-no-dup-syms-1-dso.rd
aix-no-dup-syms-1-rel.nd
aix-no-dup-syms-1-rel.rd
aix-no-dup-syms-1.ex
aix-no-dup-syms-1.im
aix-no-dup-syms-1a.s
aix-no-dup-syms-1b.s
aix-ref-1-32.od
aix-ref-1-64.od
aix-ref-1.s
aix-rel-1.od
aix-rel-1.s
aix-toc-1-32.dd
aix-toc-1-64.dd
aix-toc-1.ex
aix-toc-1a.s
aix-toc-1b.s
aix-weak-1-dso.dnd
aix-weak-1-dso.hd
aix-weak-1-dso.nd
aix-weak-1-gcdso.dnd
aix-weak-1-gcdso.hd
aix-weak-1-gcdso.nd
aix-weak-1-rel.hd
aix-weak-1-rel.nd
aix-weak-1.ex
aix-weak-1a.s
aix-weak-1b.s
aix-weak-2a.ex
aix-weak-2a.nd
aix-weak-2a.s
aix-weak-2b.nd
aix-weak-2b.s
aix-weak-2c.ex
aix-weak-2c.nd
aix-weak-2c.od
aix-weak-2c.s
aix-weak-3-32.d
aix-weak-3-32.dd
aix-weak-3-64.d
aix-weak-3-64.dd
aix-weak-3a.ex
aix-weak-3a.s
aix-weak-3b.ex
aix-weak-3b.s
ambiguousv1.d Referencing a function's address on PowerPC64 ELFv2 2014-03-27 00:49:38 +10:30
ambiguousv2.d Referencing a function's address on PowerPC64 ELFv2 2014-03-27 00:49:38 +10:30
apuinfo1.s
apuinfo2.s
apuinfo-nul1.s
apuinfo-nul.rd
apuinfo-nul.s
apuinfo.rd
attr-gnu-4-0.s
attr-gnu-4-1.s
attr-gnu-4-2.s
attr-gnu-4-3.s
attr-gnu-4-4.s
attr-gnu-4-00.d
attr-gnu-4-01.d
attr-gnu-4-02.d
attr-gnu-4-03.d
attr-gnu-4-10.d
attr-gnu-4-11.d
attr-gnu-4-12.d
attr-gnu-4-13.d
attr-gnu-4-14.d
attr-gnu-4-20.d
attr-gnu-4-21.d
attr-gnu-4-22.d
attr-gnu-4-23.d
attr-gnu-4-24.d
attr-gnu-4-31.d
attr-gnu-4-32.d
attr-gnu-4-33.d
attr-gnu-4-34.d
attr-gnu-4-41.d
attr-gnu-8-1.s
attr-gnu-8-2.s
attr-gnu-8-3.s
attr-gnu-8-11.d
attr-gnu-8-23.d
attr-gnu-8-31.d
attr-gnu-12-1.s
attr-gnu-12-2.s
attr-gnu-12-11.d
attr-gnu-12-21.d
elfv2-2a.s Support R_PPC64_ADDR64_LOCAL 2014-03-05 19:57:39 +10:30
elfv2-2b.s Support R_PPC64_ADDR64_LOCAL 2014-03-05 19:57:39 +10:30
elfv2-2exe.d Support R_PPC64_ADDR64_LOCAL 2014-03-05 19:57:39 +10:30
elfv2-2so.d Support R_PPC64_ADDR64_LOCAL 2014-03-05 19:57:39 +10:30
elfv2.s Add PowerPC64 ELFv2 tests. 2013-10-30 13:44:10 +10:30
elfv2exe.d Edit ELFv2 global entry prologue to non-PIC 2013-11-04 10:21:32 +10:30
elfv2so.d Add PowerPC64 ELFv2 tests. 2013-10-30 13:44:10 +10:30
export-class.exp Update copyright years 2014-03-05 22:16:15 +10:30
funref.s Referencing a function's address on PowerPC64 ELFv2 2014-03-27 00:49:38 +10:30
funv1.s Referencing a function's address on PowerPC64 ELFv2 2014-03-27 00:49:38 +10:30
funv2.s Referencing a function's address on PowerPC64 ELFv2 2014-03-27 00:49:38 +10:30
oldtlslib.s
plt1.d include/opcode/ 2012-11-23 03:28:13 +00:00
plt1.s
powerpc-32-export-class.rd
powerpc-32-export-class.xd
powerpc-64-export-class.rd
powerpc-64-export-class.xd * ld-powerpc/export-class.exp (supports_ppc64): Delete. 2013-05-21 01:37:41 +00:00
powerpc.exp Referencing a function's address on PowerPC64 ELFv2 2014-03-27 00:49:38 +10:30
relax.d
relax.s
relaxr.d
relbrlt.d Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
relbrlt.s
reloc.d
reloc.s
sdadyn.d
sdadyn.s
sdalib.s
startv1.s Referencing a function's address on PowerPC64 ELFv2 2014-03-27 00:49:38 +10:30
startv2.s Referencing a function's address on PowerPC64 ELFv2 2014-03-27 00:49:38 +10:30
symtocbase-1.s
symtocbase-2.s
symtocbase.d * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tls32.d
tls32.g
tls32.s
tls32.t
tls.d Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tls.g Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tls.s Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tls.t * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tlsexe32.d
tlsexe32.g
tlsexe32.r
tlsexe32.t
tlsexe.d Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsexe.g Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsexe.r Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsexe.t
tlsexetoc.d Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsexetoc.g Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsexetoc.r Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsexetoc.t
tlslib32.s
tlslib.s
tlsmark32.d
tlsmark32.s
tlsmark.d
tlsmark.s
tlsopt1_32.d include/opcode/ 2012-11-23 03:28:13 +00:00
tlsopt1_32.s
tlsopt1.d include/opcode/ 2012-11-23 03:28:13 +00:00
tlsopt1.s
tlsopt2_32.d include/opcode/ 2012-11-23 03:28:13 +00:00
tlsopt2_32.s
tlsopt2.d include/opcode/ 2012-11-23 03:28:13 +00:00
tlsopt2.s
tlsopt3_32.d
tlsopt3_32.s
tlsopt3.d
tlsopt3.s
tlsopt4_32.d include/opcode/ 2012-11-23 03:28:13 +00:00
tlsopt4_32.s
tlsopt4.d include/opcode/ 2012-11-23 03:28:13 +00:00
tlsopt4.s
tlsso32.d
tlsso32.g
tlsso32.r
tlsso32.t
tlsso.d Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsso.g Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsso.r Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlsso.t
tlstoc.d Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlstoc.g Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlstoc.s Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlstoc.t * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tlstocso.d Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlstocso.g Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlstocso.r Change plt stubs to have destination in r12. 2013-10-30 13:35:47 +10:30
tlstocso.t * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tocopt2.d * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tocopt2.out
tocopt2.s
tocopt3.d * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tocopt3.s
tocopt4.d * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tocopt4a.s
tocopt4b.s
tocopt5.d * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tocopt5.s
tocopt.d * ld-powerpc/powerpc.exp: Substitute for le in options_regsub(ld). 2013-08-22 07:34:28 +00:00
tocopt.out
tocopt.s
vle-multiseg-1.d
vle-multiseg-1.ld Make assignments to dot keep an empty output section. 2014-01-22 11:58:29 +10:30
vle-multiseg-2.d
vle-multiseg-2.ld Make assignments to dot keep an empty output section. 2014-01-22 11:58:29 +10:30
vle-multiseg-3.d
vle-multiseg-3.ld Make assignments to dot keep an empty output section. 2014-01-22 11:58:29 +10:30
vle-multiseg-4.d
vle-multiseg-4.ld Make assignments to dot keep an empty output section. 2014-01-22 11:58:29 +10:30
vle-multiseg-5.d
vle-multiseg-5.ld
vle-multiseg-6.d
vle-multiseg-6.ld Make assignments to dot keep an empty output section. 2014-01-22 11:58:29 +10:30
vle-multiseg-6a.s
vle-multiseg-6b.s
vle-multiseg-6c.s
vle-multiseg-6d.s
vle-multiseg.s
vle-reloc-1.d
vle-reloc-1.s
vle-reloc-2.d
vle-reloc-2.s
vle-reloc-3.d Correct ld-powerpc/vle-reloc-2 test 2014-03-15 00:12:56 +10:30
vle-reloc-3.s
vle-reloc-def-1.s
vle-reloc-def-2.s
vle-reloc-def-3.s
vle.ld Fix overflow handling of VLE_SDA21 2014-03-14 15:01:53 +10:30
vxworks1-lib.dd
vxworks1-lib.nd
vxworks1-lib.rd
vxworks1-lib.s
vxworks1-lib.sd
vxworks1-lib.td
vxworks1-static.d
vxworks1.dd
vxworks1.ld
vxworks1.rd
vxworks1.s
vxworks2-static.sd
vxworks2.s
vxworks2.sd
vxworks-relax-2.rd
vxworks-relax-2.s
vxworks-relax.rd
vxworks-relax.s