libgcc: Dont define __do_global_dtors_aux if it will be empty

2019-12-09  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	* crtstuff.c (__do_global_dtors_aux): Wrap in #if so it's only defined
	if it will have contents.

From-SVN: r279123
This commit is contained in:
Jozef Lawrynowicz 2019-12-09 11:41:07 +00:00 committed by Jozef Lawrynowicz
parent 41f36f22f3
commit ad8b778345
2 changed files with 12 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2019-12-09 Jozef Lawrynowicz <jozef.l@mittosystems.com>
* crtstuff.c (__do_global_dtors_aux): Wrap in #if so it's only defined
if it will have contents.
2019-12-05 Georg-Johann Lay <avr@gjlay.de>
PR target/92055

View File

@ -364,8 +364,12 @@ extern void __cxa_finalize (void *) TARGET_ATTRIBUTE_WEAK;
On some systems, this routine is run more than once from the .fini,
when exit is called recursively, so we arrange to remember where in
the list we left off processing, and we resume at that point,
should we be re-invoked. */
should we be re-invoked.
This routine does not need to be run if none of the following clauses are
true, as it will not do anything, so can be removed. */
#if defined(CRTSTUFFS_O) || !defined(FINI_ARRAY_SECTION_ASM_OP) \
|| USE_TM_CLONE_REGISTRY || USE_EH_FRAME_REGISTRY
static void __attribute__((used))
__do_global_dtors_aux (void)
{
@ -451,6 +455,8 @@ __do_global_dtors_aux_1 (void)
CRT_CALL_STATIC_FUNCTION (__LIBGCC_INIT_SECTION_ASM_OP__,
__do_global_dtors_aux_1)
#endif
#endif /* defined(CRTSTUFFS_O) || !defined(FINI_ARRAY_SECTION_ASM_OP)
|| defined(USE_TM_CLONE_REGISTRY) || defined(USE_EH_FRAME_REGISTRY) */
#if defined(USE_EH_FRAME_REGISTRY) || USE_TM_CLONE_REGISTRY
/* Stick a call to __register_frame_info into the .init section. For some