gcc/libgcc
Iain Sandoe 506e74f53a libgcc: Make heap trampoline support dynamic [PR113403].
In order to handle system security constraints during GCC build
and test and that most platform versions cannot link to libgcc_eh
since the unwinder there is incompatible with the system one.

1. We make the support functions weak definitions.
2. We include them as a CRT for platform conditions that do not
   allow libgcc_eh.
3. We ensure that the weak symbols are exported from DSOs (which
   includes exes on Darwin) so that the dynamic linker will
   pick one instance (which avoids duplication of trampoline
   caches).

	PR libgcc/113403

gcc/ChangeLog:

	* config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
	(REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
	* config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
	* config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
	* config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
	* config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.

libgcc/ChangeLog:

	* config.host: Build libheap_t.a for i686/x86_64 Darwin.
	* config/aarch64/heap-trampoline.c (HEAP_T_ATTR): New.
	(allocate_tramp_ctrl): Allow a target to build this as a weak def.
	(__gcc_nested_func_ptr_created): Likewise.
	* config/i386/heap-trampoline.c (HEAP_T_ATTR): New.
	(allocate_tramp_ctrl): Allow a target to build this as a weak def.
	(__gcc_nested_func_ptr_created): Likewise.
	* config/t-darwin: Build libheap_t.a (a CRT with heap trampoline
	support).
2024-01-30 09:33:09 +00:00
..
c++-minimal Update copyright years. 2024-01-03 12:19:35 +01:00
config libgcc: Make heap trampoline support dynamic [PR113403]. 2024-01-30 09:33:09 +00:00
soft-fp libgcc: Use may_alias attribute in bitint handlers 2024-01-12 10:10:20 +01:00
ChangeLog Daily bump. 2024-01-29 00:18:44 +00:00
config.host libgcc: Make heap trampoline support dynamic [PR113403]. 2024-01-30 09:33:09 +00:00
config.in libgcc: Fix config.in 2023-12-08 12:35:40 +00:00
configure libgcc: aarch64: Configure check for __getauxval 2023-12-08 11:29:06 +00:00
configure.ac libgcc: aarch64: Configure check for __getauxval 2023-12-08 11:29:06 +00:00
crtstuff.c Update copyright years. 2024-01-03 12:19:35 +01:00
dfp-bit.c Update copyright years. 2024-01-03 12:19:35 +01:00
dfp-bit.h Update copyright years. 2024-01-03 12:19:35 +01:00
divmod.c Update copyright years. 2024-01-03 12:19:35 +01:00
emutls.c Update copyright years. 2024-01-03 12:19:35 +01:00
enable-execute-stack-empty.c
enable-execute-stack-mprotect.c Update copyright years. 2024-01-03 12:19:35 +01:00
find-symver.awk Update copyright years. 2024-01-03 12:19:35 +01:00
fixed-bit.c Update copyright years. 2024-01-03 12:19:35 +01:00
fixed-bit.h Update copyright years. 2024-01-03 12:19:35 +01:00
fixed-obj.mk
floatunsidf.c
floatunsisf.c
floatunsitf.c
floatunsixf.c
fp-bit.c Update copyright years. 2024-01-03 12:19:35 +01:00
fp-bit.h Update copyright years. 2024-01-03 12:19:35 +01:00
gbl-ctors.h Update copyright years. 2024-01-03 12:19:35 +01:00
gcov.h Update copyright years. 2024-01-03 12:19:35 +01:00
gen-fixed.sh
generic-morestack-thread.c Update copyright years. 2024-01-03 12:19:35 +01:00
generic-morestack.c Update copyright years. 2024-01-03 12:19:35 +01:00
generic-morestack.h Update copyright years. 2024-01-03 12:19:35 +01:00
gstdint.h
gthr-posix.h Update copyright years. 2024-01-03 12:19:35 +01:00
gthr-single.h Update copyright years. 2024-01-03 12:19:35 +01:00
gthr.h Update copyright years. 2024-01-03 12:19:35 +01:00
hardcfr.c Update copyright years. 2024-01-03 12:19:35 +01:00
libgcc2.c libgcc: Use may_alias attribute in bitint handlers 2024-01-12 10:10:20 +01:00
libgcc2.h Fix __builtin_nested_func_ptr_{created,deleted} symbol versions [PR113402] 2024-01-28 10:59:34 +00:00
libgcc-std.ver.in Fix __builtin_nested_func_ptr_{created,deleted} symbol versions [PR113402] 2024-01-28 10:59:34 +00:00
libgcov-driver-system.c Update copyright years. 2024-01-03 12:19:35 +01:00
libgcov-driver.c Update copyright years. 2024-01-03 12:19:35 +01:00
libgcov-interface.c Update copyright years. 2024-01-03 12:19:35 +01:00
libgcov-merge.c Update copyright years. 2024-01-03 12:19:35 +01:00
libgcov-profiler.c Update copyright years. 2024-01-03 12:19:35 +01:00
libgcov-util.c Update copyright years. 2024-01-03 12:19:35 +01:00
libgcov.h Update copyright years. 2024-01-03 12:19:35 +01:00
Makefile.in Update copyright years. 2024-01-03 12:19:35 +01:00
memcmp.c
memcpy.c
memmove.c
memset.c
mkheader.sh Update copyright years. 2024-01-03 12:19:35 +01:00
mkmap-flat.awk Update copyright years. 2024-01-03 12:19:35 +01:00
mkmap-symver.awk Update copyright years. 2024-01-03 12:19:35 +01:00
offloadstuff.c Update copyright years. 2024-01-03 12:19:35 +01:00
shared-object.mk
siditi-object.mk
static-object.mk
strub.c Update copyright years. 2024-01-03 12:19:35 +01:00
sync.c Update copyright years. 2024-01-03 12:19:35 +01:00
udivhi3.c Update copyright years. 2024-01-03 12:19:35 +01:00
udivmod.c Update copyright years. 2024-01-03 12:19:35 +01:00
udivmodhi4.c Update copyright years. 2024-01-03 12:19:35 +01:00
udivmodsi4.c Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-arm-common.inc Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-c.c Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-compat.c Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-compat.h Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-dw2-btree.h Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-dw2-execute_cfa.h Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-dw2-fde-compat.c Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-dw2-fde-dip.c libgcc, nios2: Fix exception handling on nios2 with -fpic 2024-01-12 04:50:22 +00:00
unwind-dw2-fde.c Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-dw2-fde.h Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-dw2.c Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-dw2.h Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-generic.h Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-pe.h Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-seh.c Update copyright years. 2024-01-03 12:19:35 +01:00
unwind-sjlj.c Update copyright years. 2024-01-03 12:19:35 +01:00
unwind.inc Update copyright years. 2024-01-03 12:19:35 +01:00
vtv_end_preinit.c Update copyright years. 2024-01-03 12:19:35 +01:00
vtv_end.c Update copyright years. 2024-01-03 12:19:35 +01:00
vtv_start_preinit.c Update copyright years. 2024-01-03 12:19:35 +01:00
vtv_start.c Update copyright years. 2024-01-03 12:19:35 +01:00