binutils-gdb/ld/testsuite/ld-powerpc
Alan Modra df136d64fa PowerPC64 EH info for _notoc linkage stubs
This patch generates EH info for the new _notoc linkage stubs, to
support unwinding from asynchronous signal handlers.  Unwinding
through the __tls_get_addr_opt stub was already supported, but that
was just a single stub.  With multiple stubs the EH opcodes need to be
emitted and sized when iterating over stubs, so this is done when
emitting and sizing the stub code.  Emitting the CIEs and FDEs is done
when sizing the stubs, as we did before in order to have the linker
generated FDEs indexed in .eh_frame_hdr.  I moved the final tweaks to
FDEs from ppc64_elf_finish_dynamic_sections to ppc64_elf_build_stubs
simply because it's tidier to be done with them at that point.

bfd/
	* elf64-ppc.c (struct map_stub): Delete tls_get_addr_opt_bctrl.
	Add lr_restore, eh_size and eh_base.
	(eh_advance, eh_advance_size): New functions.
	(build_tls_get_addr_stub): Emit EH info for stub.
	(ppc_build_one_stub): Likewise for _notoc stubs.
	(ppc_size_one_stub): Size EH info for stub.
	(group_sections): Init new map_stub fields.
	(stub_eh_frame_size): Delete.
	(ppc64_elf_size_stubs): Size EH info for stubs.  Set up dummy EH
	program for stubs.
	(ppc64_elf_build_stubs): Reinit new map_stub fields.  Set FDE
	offset to stub section here..
	(ppc64_elf_finish_dynamic_sections): ..rather than here.
ld/
	* testsuite/ld-powerpc/notoc.s: Generate some cfi.
	* testsuite/ld-powerpc/notoc.d: Adjust.
	* testsuite/ld-powerpc/notoc.wf: New file.
	* testsuite/ld-powerpc/powerpc.exp: Run "ext" and "notoc" tests
	as run_ld_link_tests rather than run_dump_test.
2018-08-07 18:43:55 +09:30
..
addpcis.d
addpcis.s
aix52.exp Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +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
aix-core-sec-1.s
aix-core-sec-2.ex
aix-core-sec-2.hd
aix-core-sec-2.s
aix-core-sec-3.ex
aix-core-sec-3.hd
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 ld error/warning messages 2018-02-26 10:51:12 +10:30
aix-weak-3-32.dd
aix-weak-3-64.d ld error/warning messages 2018-02-26 10:51:12 +10:30
aix-weak-3-64.dd
aix-weak-3a.ex
aix-weak-3a.s
aix-weak-3b.ex
aix-weak-3b.s
ambiguousv1.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ambiguousv1b.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ambiguousv2.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
ambiguousv2b.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
apuinfo1.s
apuinfo2.s
apuinfo-nul1.s
apuinfo-nul.rd
apuinfo-nul.s
apuinfo-vle2.s
apuinfo-vle.rd
apuinfo-vle.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-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 Error for mismatched powerpc ABI tags 2018-07-05 10:21:37 +09:30
attr-gnu-4-13.d Error for mismatched powerpc ABI tags 2018-07-05 10:21:37 +09:30
attr-gnu-4-20.d
attr-gnu-4-21.d Error for mismatched powerpc ABI tags 2018-07-05 10:21:37 +09:30
attr-gnu-4-22.d
attr-gnu-4-23.d Error for mismatched powerpc ABI tags 2018-07-05 10:21:37 +09:30
attr-gnu-4-31.d Error for mismatched powerpc ABI tags 2018-07-05 10:21:37 +09:30
attr-gnu-4-32.d Error for mismatched powerpc ABI tags 2018-07-05 10:21:37 +09:30
attr-gnu-4-33.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 Error for mismatched powerpc ABI tags 2018-07-05 10:21:37 +09:30
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 Error for mismatched powerpc ABI tags 2018-07-05 10:21:37 +09:30
big.s Enhance powerpc ld -r --relax 2018-07-25 16:52:58 +09:30
defsym.d
defsym.s
dotsym1.d
dotsym2.d
dotsym3.d
dotsym4.d
dotsymref.s
elfv2-2a.s
elfv2-2b.s
elfv2-2exe.d
elfv2-2so.d
elfv2.s Implement PowerPC64 .localentry for value 1 2018-07-26 12:53:50 +09:30
elfv2exe.d Lose _r2off in powerpc64 stub names 2018-08-05 10:33:07 +09:30
elfv2so.d Implement PowerPC64 .localentry for value 1 2018-07-26 12:53:50 +09:30
export-class.exp Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
ext.d R_PPC64_REL24_NOTOC support 2018-08-05 12:11:51 +09:30
ext.lnk R_PPC64_REL24_NOTOC support 2018-08-05 12:11:51 +09:30
ext.s R_PPC64_REL24_NOTOC support 2018-08-05 12:11:51 +09:30
funref2.s
funref.s
funv1.s
funv2.s
nodotsym.s
notoc.d PowerPC64 EH info for _notoc linkage stubs 2018-08-07 18:43:55 +09:30
notoc.s PowerPC64 EH info for _notoc linkage stubs 2018-08-07 18:43:55 +09:30
notoc.wf PowerPC64 EH info for _notoc linkage stubs 2018-08-07 18:43:55 +09:30
oldtlslib.s
plt1.d
plt1.s
powerpc-32-export-class.rd
powerpc-32-export-class.xd
powerpc-64-export-class.rd
powerpc-64-export-class.xd
powerpc.exp PowerPC64 EH info for _notoc linkage stubs 2018-08-07 18:43:55 +09:30
ppc476-shared2.d powerpc common-page-size 2018-04-14 17:56:40 +09:30
ppc476-shared.d powerpc common-page-size 2018-04-14 17:56:40 +09:30
ppc476-shared.lnk Make ppc476 testcases more robust 2017-07-07 23:53:18 +09:30
ppc476-shared.s
relax.d
relax.s
relaxr.d Enhance powerpc ld -r --relax 2018-07-25 16:52:58 +09:30
relaxrl.d Enhance powerpc ld -r --relax 2018-07-25 16:52:58 +09:30
relbrlt.d Support PLT16 relocs against local symbols 2018-04-09 17:05:09 +09:30
relbrlt.s Support PLT16 relocs against local symbols 2018-04-09 17:05:09 +09:30
reloc.d
reloc.s
relocsort.d Change readelf so that when --wide is active a relocation's full name is displayed. 2017-10-05 13:25:44 +01:00
relocsort.s
sdabase2.d
sdabase2.t
sdabase.d
sdabase.s
sdabase.t
sdadyn.d
sdadyn.s
sdalib.s
startv1.s
startv2.s
symtocbase-1.s
symtocbase-2.s
symtocbase.d
tls32.d
tls32.g
tls32.s PowerPC TPREL16_HA/LO reloc optimization 2017-08-30 20:43:31 +09:30
tls32.t
tls.d PowerPC TPREL16_HA/LO reloc optimization 2017-08-30 20:43:31 +09:30
tls.g
tls.s PowerPC TPREL16_HA/LO reloc optimization 2017-08-30 20:43:31 +09:30
tls.t
tlsdll_32.s
tlsdll.s
tlsdll.ver
tlsexe32.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsexe32.g Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsexe32.r Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsexe32.t
tlsexe.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsexe.g
tlsexe.r Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsexe.t
tlsexetoc.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsexetoc.g
tlsexetoc.r Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsexetoc.t
tlsld32.d
tlsld32.s
tlsld.d PowerPC TPREL16_HA/LO reloc optimization 2017-08-30 20:43:31 +09:30
tlsld.s
tlslib32.s
tlslib.s
tlsmark32.d
tlsmark32.s
tlsmark.d PowerPC TPREL16_HA/LO reloc optimization 2017-08-30 20:43:31 +09:30
tlsmark.s
tlsopt1_32.d ppc32 tlsopt tests 2017-07-14 22:51:01 +09:30
tlsopt1_32.s ppc32 tlsopt tests 2017-07-14 22:51:01 +09:30
tlsopt1.d
tlsopt1.s
tlsopt2_32.d ppc32 tlsopt tests 2017-07-14 22:51:01 +09:30
tlsopt2_32.s ppc32 tlsopt tests 2017-07-14 22:51:01 +09:30
tlsopt2.d
tlsopt2.s
tlsopt3_32.d ppc32 tlsopt tests 2017-07-14 22:51:01 +09:30
tlsopt3_32.s ppc32 tlsopt tests 2017-07-14 22:51:01 +09:30
tlsopt3.d
tlsopt3.s
tlsopt4_32.d
tlsopt4_32.s ppc32 tlsopt tests 2017-07-14 22:51:01 +09:30
tlsopt4.d PowerPC TPREL16_HA/LO reloc optimization 2017-08-30 20:43:31 +09:30
tlsopt4.s
tlsopt5_32.d PowerPC PLT stub tidy 2018-01-17 18:51:04 +10:30
tlsopt5_32.s ppc32 tlsopt tests 2017-07-14 22:51:01 +09:30
tlsopt5.d PowerPC64 __tls_get_addr_opt stub .eh_frame fix 2018-08-01 12:14:22 +09:30
tlsopt5.s PowerPC64 __tls_get_addr_opt stub .eh_frame fix 2018-08-01 12:14:22 +09:30
tlsopt5.wf PowerPC64 __tls_get_addr_opt stub .eh_frame fix 2018-08-01 12:14:22 +09:30
tlsso32.d
tlsso32.g Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsso32.r Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsso32.t
tlsso.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsso.g
tlsso.r Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlsso.t
tlstoc.d PowerPC TPREL16_HA/LO reloc optimization 2017-08-30 20:43:31 +09:30
tlstoc.g
tlstoc.s
tlstoc.t
tlstocso.d Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlstocso.g Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlstocso.r Define various symbols conditionally in shared libraries 2018-06-08 20:17:34 +09:30
tlstocso.t
tocnovar.d
tocnovar.s
tocopt2.d
tocopt2.out
tocopt2.s
tocopt3.d
tocopt3.s
tocopt4.d
tocopt4a.s
tocopt4b.s
tocopt5.d
tocopt5.s
tocopt6-inc.s
tocopt6.d Lose _r2off in powerpc64 stub names 2018-08-05 10:33:07 +09:30
tocopt6a.s
tocopt6b.s
tocopt6c.s
tocopt7.d
tocopt7.out
tocopt7.s
tocopt8.d
tocopt8.s
tocopt.d
tocopt.out
tocopt.s
tocsave1.s
tocsave1a.d
tocsave1s.d
tocsave2.s
tocsave2a.d
tocsave2s.d
tocsavelib.s
tocvar.d
tocvar.s
vle-multiseg-1.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
vle-multiseg-1.ld
vle-multiseg-2.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
vle-multiseg-2.ld
vle-multiseg-3.d readelf ngettext fixes 2017-11-07 17:01:16 +10:30
vle-multiseg-3.ld
vle-multiseg-4.d
vle-multiseg-4.ld
vle-multiseg-5.d
vle-multiseg-5.ld
vle-multiseg-6.d
vle-multiseg-6.ld
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
vle-reloc-3.s
vle-reloc-def-1.s
vle-reloc-def-2.s
vle-reloc-def-3.s
vle.ld
vxworks1-lib.dd
vxworks1-lib.nd
vxworks1-lib.rd
vxworks1-lib.s
vxworks1-lib.sd
vxworks1-lib.td
vxworks1-static.d ld error/warning messages 2018-02-26 10:51:12 +10:30
vxworks1.dd
vxworks1.ld
vxworks1.rd
vxworks1.s
vxworks2-static.sd
vxworks2.s
vxworks2.sd
vxworks-relax-2.rd Re: Enhance powerpc ld -r --relax 2018-07-26 17:38:56 +09:30
vxworks-relax-2.s
vxworks-relax.rd
vxworks-relax.s