These declarations prevent the priority given in the constructor/destructor attributes from taking effect, thus emitting the function pointers in the ordinary (lowest-priority) .init_array/.fini_array sections.
libgcc/ * config/vxcrtstuff.c: Remove constructor/destructor declarations. --- libgcc/config/vxcrtstuff.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/libgcc/config/vxcrtstuff.c b/libgcc/config/vxcrtstuff.c index 87fadda9ac5..c146e1be3be 100644 --- a/libgcc/config/vxcrtstuff.c +++ b/libgcc/config/vxcrtstuff.c @@ -88,9 +88,6 @@ __attribute__((section(__LIBGCC_EH_FRAME_SECTION_NAME__), aligned(4))) #endif /* USE_INITFINI_ARRAY */ -void EH_CTOR_NAME (void); -void EH_DTOR_NAME (void); - EH_CTOR_ATTRIBUTE void EH_CTOR_NAME (void) { static struct object object; -- 2.31.1