OSDN Git Service

Linker script support for constructor priorities.
authorEvgeniy Stepanov <eugenis@google.com>
Thu, 9 Feb 2012 15:25:34 +0000 (19:25 +0400)
committerEvgeniy Stepanov <eugenis@google.com>
Thu, 9 Feb 2012 15:25:34 +0000 (19:25 +0400)
Change-Id: Ib551019b291a152921431fa2b0b6031474ed6fed

core/armelf.x
core/armelflib.x

index d38dc1d..b484776 100644 (file)
@@ -93,10 +93,16 @@ SECTIONS
   .preinit_array     : { KEEP (*(.preinit_array)) }
   PROVIDE (__preinit_array_end = .);
   PROVIDE (__init_array_start = .);
-  .init_array     : { KEEP (*(.init_array)) }
+  .init_array     : {
+    KEEP (*(SORT(.init_array.*)))
+    KEEP (*(.init_array))
+  }
   PROVIDE (__init_array_end = .);
   PROVIDE (__fini_array_start = .);
-  .fini_array     : { KEEP (*(.fini_array)) }
+  .fini_array     : {
+    KEEP (*(.fini_array))
+    KEEP (*(SORT(.fini_array.*)))
+  }
   PROVIDE (__fini_array_end = .);
   .ctors          :
   {
index 0150e02..ec7abd5 100644 (file)
@@ -59,10 +59,16 @@ SECTIONS
   .preinit_array     : { KEEP (*(.preinit_array)) }
   PROVIDE (__preinit_array_end = .);
   PROVIDE (__init_array_start = .);
-  .init_array     : { KEEP (*(.init_array)) }
+  .init_array     : {
+     KEEP (*(SORT(.init_array.*)))
+     KEEP (*(.init_array))
+   }
   PROVIDE (__init_array_end = .);
   PROVIDE (__fini_array_start = .);
-  .fini_array     : { KEEP (*(.fini_array)) }
+  .fini_array     : {
+    KEEP (*(.fini_array))
+    KEEP (*(SORT(.fini_array.*)))
+  }
   PROVIDE (__fini_array_end = .);
   .ctors          :
   {