gcc/libstdc++-v3
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 Update Solaris baselines for GCC 10.0 2019-09-02 08:31:07 +00:00
doc Update docs for recent <span> and constexpr lib changes. 2019-09-09 16:54:31 +00:00
include Optimise std::remove_cv and use more helper aliases 2019-09-10 08:35:36 +01:00
libsupc++ [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions 2019-09-10 09:47:49 +02:00
po
python
scripts
src Use __constinit keyword in libstdc++ sources 2019-09-02 12:31:34 +01:00
testsuite PR libstdc++/91711 fix failing test 2019-09-10 08:35:40 +01:00
acinclude.m4 PR libstdc++/41861 Add full steady_clock support to condition_variable 2019-09-04 23:43:29 +01:00
aclocal.m4
ChangeLog [ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptions 2019-09-10 09:47:49 +02:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
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-2016
ChangeLog-2017
ChangeLog-2018
config.h.in PR libstdc++/41861 Add full steady_clock support to condition_variable 2019-09-04 23:43:29 +01:00
configure Fix GCC_LINUX_FUTEX to work with C99 compilers 2019-09-06 12:27:36 +02:00
configure.ac PR libstdc++/41861 Add full steady_clock support to condition_variable 2019-09-04 23:43:29 +01:00
configure.host
crossconfig.m4 Remove Cell Broadband Engine SPU targets 2019-09-03 15:08:28 +00:00
fragment.am
linkage.m4
Makefile.am
Makefile.in
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.