gcc/libgcc
Christophe Lyon 5d727a4b20 [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions
The main difference with existing support is that function addresses
are function descriptor addresses instead. This means that all code
dealing with function pointers now has to cope with function
descriptors instead.

For the same reason, Linux kernel helpers can no longer be called by
dereferencing their address, so we implement wrappers that directly
call the kernel helpers.

When restoring a function address, we also have to restore the FDPIC
register value (r9).

2019-09-10  Christophe Lyon  <christophe.lyon@st.com>
	Mickaël Guêné <mickael.guene@st.com>

	gcc/
	* ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5
	field.

	libgcc/
	* config/arm/linux-atomic.c (__kernel_cmpxchg): Add FDPIC support.
	(__kernel_dmb): Likewise.
	(__fdpic_cmpxchg): New function.
	(__fdpic_dmb): New function.
	* config/arm/unwind-arm.h (FDPIC_REGNUM): New define.
	(gnu_Unwind_Find_got): New function.
	(_Unwind_decode_typeinfo_ptr): Add FDPIC support.
	* unwind-arm-common.inc (UCB_PR_GOT): New.
	(funcdesc_t): New struct.
	(get_eit_entry): Add FDPIC support.
	(unwind_phase2): Likewise.
	(unwind_phase2_forced): Likewise.
	(__gnu_Unwind_RaiseException): Likewise.
	(__gnu_Unwind_Resume): Likewise.
	(__gnu_Unwind_Backtrace): Likewise.
	* unwind-pe.h (read_encoded_value_with_base): Likewise.

	libstdc++/
	* libsupc++/eh_personality.cc (get_ttype_entry): Add FDPIC
	support.


Co-Authored-By: Mickaël Guêné <mickael.guene@st.com>

From-SVN: r275568
2019-09-10 09:47:49 +02:00
..
config [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions 2019-09-10 09:47:49 +02:00
soft-fp soft-fp: Update soft-fp from glibc 2019-05-17 07:37:39 -07:00
ChangeLog [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions 2019-09-10 09:47:49 +02:00
config.host [ARM/FDPIC v6 02/24] [ARM] FDPIC: Handle arm*-*-uclinuxfdpiceabi in configure scripts 2019-09-10 09:37:00 +02:00
config.in re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace) 2018-02-28 09:59:15 +01:00
configure Add --disable-tm-clone-registry libgcc configure option. 2019-06-27 16:41:03 -07:00
configure.ac Add --disable-tm-clone-registry libgcc configure option. 2019-06-27 16:41:03 -07:00
crtstuff.c [ARM/FDPIC v6 05/24] [ARM] FDPIC: Fix __do_global_dtors_aux and frame_dummy generation 2019-09-10 09:43:37 +02:00
dfp-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
dfp-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
divmod.c Update copyright years. 2019-01-01 13:31:55 +01:00
empty.mk
emutls.c Update copyright years. 2019-01-01 13:31:55 +01:00
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c Update copyright years. 2019-01-01 13:31:55 +01:00
find-symver.awk Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
fixed-obj.mk
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c Update copyright years. 2019-01-01 13:31:55 +01:00
fp-bit.h Update copyright years. 2019-01-01 13:31:55 +01:00
gbl-ctors.h Update copyright years. 2019-01-01 13:31:55 +01:00
gcov.h Update copyright years. 2019-01-01 13:31:55 +01:00
gen-fixed.sh
generic-morestack-thread.c PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
generic-morestack.c PR middle-end/71924 - missing -Wreturn-local-addr returning alloca result 2019-07-08 22:15:42 -06:00
generic-morestack.h Update copyright years. 2019-01-01 13:31:55 +01:00
gstdint.h
gthr-posix.h PR c/88546 - Copy attribute unusable for weakrefs 2019-01-04 17:57:30 -07:00
gthr-single.h Update copyright years. 2019-01-01 13:31:55 +01:00
gthr.h Update copyright years. 2019-01-01 13:31:55 +01:00
libgcc-std.ver.in Update copyright years. 2019-01-01 13:31:55 +01:00
libgcc2.c extend.texi (__clear_cache): Correct signature. 2019-02-21 16:23:12 -07:00
libgcc2.h extend.texi (__clear_cache): Correct signature. 2019-02-21 16:23:12 -07:00
libgcov-driver-system.c Remove quite obvious dead assignments. 2019-06-27 10:25:21 +00:00
libgcov-driver.c Remove indirect call top N counter type. 2019-06-07 06:41:58 +00:00
libgcov-interface.c Update copyright years. 2019-01-01 13:31:55 +01:00
libgcov-merge.c Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
libgcov-profiler.c Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
libgcov-util.c Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
libgcov.h Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
Makefile.in Rename SINGE_VALUE to TOPN_VALUES counters. 2019-07-03 12:42:23 +00:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh Update copyright years. 2019-01-01 13:31:55 +01:00
mkmap-flat.awk Update copyright years. 2019-01-01 13:31:55 +01:00
mkmap-symver.awk PR other/16615 [1/5] 2019-01-09 16:37:45 -05:00
offloadstuff.c Update copyright years. 2019-01-01 13:31:55 +01:00
shared-object.mk
siditi-object.mk
static-object.mk
sync.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivhi3.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmod.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmodhi4.c Update copyright years. 2019-01-01 13:31:55 +01:00
udivmodsi4.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-arm-common.inc [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions 2019-09-10 09:47:49 +02:00
unwind-c.c re PR target/89093 (C++ exception handling clobbers d8 VFP register) 2019-04-23 12:03:41 +02:00
unwind-compat.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-compat.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde-dip.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2-fde.c [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key 2019-05-29 09:22:17 +00:00
unwind-dw2-fde.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-dw2.c [PATCH 3/3][GCC][AARCH64] Add support for pointer authentication B key 2019-05-29 09:22:17 +00:00
unwind-dw2.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-generic.h Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-pe.h [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions 2019-09-10 09:47:49 +02:00
unwind-seh.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind-sjlj.c Update copyright years. 2019-01-01 13:31:55 +01:00
unwind.inc Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_end.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_end_preinit.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_start.c Update copyright years. 2019-01-01 13:31:55 +01:00
vtv_start_preinit.c Update copyright years. 2019-01-01 13:31:55 +01:00