.fini_array sorting

Alan Modra amodra@gmail.com
Fri Feb 26 12:34:00 GMT 2010


See http://gcc.gnu.org/ml/gcc-patches/2010-02/msg01135.html

	* scripttempl/elf.sc (.fini_array): Place input .fini_array after
	.fini_array.*.
	* scripttempl/armbpabi.sc: Likewise.
	* scripttempl/elf32sh-symbian.sc: Likewise.
	* scripttempl/elf64hppa.sc: Likewise.
	* scripttempl/elfxtensa.sc: Likewise.

Index: ld/scripttempl/armbpabi.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/armbpabi.sc,v
retrieving revision 1.18
diff -u -p -r1.18 armbpabi.sc
--- ld/scripttempl/armbpabi.sc	10 Oct 2009 04:34:39 -0000	1.18
+++ ld/scripttempl/armbpabi.sc	26 Feb 2010 11:16:38 -0000
@@ -232,8 +232,8 @@ cat <<EOF
   .fini_array   ${RELOCATING-0} :
   {
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__fini_array_start = .);}}
-    KEEP (*(.fini_array))
     KEEP (*(SORT(.fini_array.*)))
+    KEEP (*(.fini_array))
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__fini_array_end = .);}}
   }
 
Index: ld/scripttempl/elf.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf.sc,v
retrieving revision 1.98
diff -u -p -r1.98 elf.sc
--- ld/scripttempl/elf.sc	9 Dec 2009 01:26:03 -0000	1.98
+++ ld/scripttempl/elf.sc	26 Feb 2010 11:16:39 -0000
@@ -465,8 +465,8 @@ cat <<EOF
   .fini_array   ${RELOCATING-0} :
   {
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}}
-    KEEP (*(.fini_array))
     KEEP (*(SORT(.fini_array.*)))
+    KEEP (*(.fini_array))
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}}
   }
   ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}}}
Index: ld/scripttempl/elf32sh-symbian.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf32sh-symbian.sc,v
retrieving revision 1.12
diff -u -p -r1.12 elf32sh-symbian.sc
--- ld/scripttempl/elf32sh-symbian.sc	10 Oct 2009 04:34:39 -0000	1.12
+++ ld/scripttempl/elf32sh-symbian.sc	26 Feb 2010 11:16:39 -0000
@@ -224,8 +224,8 @@ SECTIONS
   .fini_array   ${RELOCATING-0} :
   {
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__fini_array_start = .);}}
-    KEEP (*(.fini_array))
     KEEP (*(SORT(.fini_array.*)))
+    KEEP (*(.fini_array))
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (__fini_array_end = .);}}
   }
 
Index: ld/scripttempl/elf64hppa.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf64hppa.sc,v
retrieving revision 1.4
diff -u -p -r1.4 elf64hppa.sc
--- ld/scripttempl/elf64hppa.sc	10 Oct 2009 04:34:39 -0000	1.4
+++ ld/scripttempl/elf64hppa.sc	26 Feb 2010 11:16:39 -0000
@@ -438,8 +438,8 @@ cat <<EOF
   .fini_array   ${RELOCATING-0} :
   {
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}}
-    KEEP (*(.fini_array))
     KEEP (*(SORT(.fini_array.*)))
+    KEEP (*(.fini_array))
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}}
   }
   ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}}}
Index: ld/scripttempl/elfxtensa.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elfxtensa.sc,v
retrieving revision 1.20
diff -u -p -r1.20 elfxtensa.sc
--- ld/scripttempl/elfxtensa.sc	10 Oct 2009 04:34:39 -0000	1.20
+++ ld/scripttempl/elfxtensa.sc	26 Feb 2010 11:16:39 -0000
@@ -448,8 +448,8 @@ cat <<EOF
   .fini_array   ${RELOCATING-0} :
   {
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_start = .);}}
-    KEEP (*(.fini_array))
     KEEP (*(SORT(.fini_array.*)))
+    KEEP (*(.fini_array))
     ${RELOCATING+${CREATE_SHLIB-PROVIDE_HIDDEN (${USER_LABEL_PREFIX}__fini_array_end = .);}}
   }
   ${SMALL_DATA_CTOR-${RELOCATING+${CTOR}}}

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list