CFI-handling : Add a hook to allow target-specific Personality and LSDA indirections.
authorIain Sandoe <iain@sandoe.co.uk>
Mon, 16 Sep 2019 14:11:00 +0000 (15:11 +0100)
committerIain Sandoe <iain@sandoe.co.uk>
Wed, 11 Nov 2020 20:44:02 +0000 (20:44 +0000)
commit5d46ec3db21d8c8926f15a634b2d6570536db5f1
tree319e91edab9ba1c12a694b210053af3f339bdb9a
parent9227f81db7a0b38dd14ce4b48ca50c33cf8d5e1c
CFI-handling : Add a hook to allow target-specific Personality and LSDA indirections.

At present, the output of .cfi_personality and .cfi_lsda assumes
ELF semantics for indirections.  This isn't suitable for all targets
and is one blocker to moving Darwin to use .cfi_xxxx.

The patch adds a target hook that allows non-ELF targets to use
indirections appropriate to their needs.

gcc/ChangeLog:

* config/darwin-protos.h (darwin_make_eh_symbol_indirect): New.
* config/darwin.c (darwin_make_eh_symbol_indirect): New. Use
Mach-O semantics for personality and ldsa indirections.
* config/darwin.h (TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT): New.
* doc/tm.texi: Regenerate.
* doc/tm.texi.in: Add TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT hook.
* dwarf2out.c (dwarf2out_do_cfi_startproc): If the target defines
a hook for indirecting personality and ldsa references, use that
otherwise default to ELF semantics.
* target.def (make_eh_symbol_indirect): New target hook.
gcc/config/darwin-protos.h
gcc/config/darwin.c
gcc/config/darwin.h
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/dwarf2out.c
gcc/target.def