From 63c6b06fd1cf051ea57a9b22c9986c8421b10446 Mon Sep 17 00:00:00 2001 From: Thanassis Tsiodras Date: Tue, 6 Mar 2018 07:23:07 +0100 Subject: bsps/sparc: Fix global construction/destruction The KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) cannot be simplified to KEEP (*(SORT(.ctors*))) since .ctors < .ctors.* in lexicographical order. See spglobalcon02 test case. Close #3319. --- c/src/lib/libbsp/sparc/shared/startup/linkcmds.base | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'c/src/lib/libbsp/sparc') diff --git a/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base b/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base index 219a060572..c4a9b23002 100644 --- a/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base +++ b/c/src/lib/libbsp/sparc/shared/startup/linkcmds.base @@ -87,11 +87,13 @@ SECTIONS The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) - KEEP (*(SORT(.ctors*))) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) - KEEP (*(SORT(.dtors*))) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) _rodata_start = . ; *(.rodata*) -- cgit v1.2.3