summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2012-02-14 08:31:20 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-02-14 08:31:20 -0800
commitaeaf48812d4e6f8b8c5d9377be20968de84d9806 (patch)
treec7f91e7d1747077539f3ba2d33a99e98ba0941b1
parent93a1a0ec6b9c82a124173a414c64ab9d86f04556 (diff)
parent67772b810d5aef5bca8c0ccd4b3b6ef7e40a7749 (diff)
downloadbuild-aeaf48812d4e6f8b8c5d9377be20968de84d9806.zip
build-aeaf48812d4e6f8b8c5d9377be20968de84d9806.tar.gz
build-aeaf48812d4e6f8b8c5d9377be20968de84d9806.tar.bz2
Merge "Linker script support for constructor priorities."
-rw-r--r--core/armelf.x10
-rw-r--r--core/armelflib.x10
2 files changed, 16 insertions, 4 deletions
diff --git a/core/armelf.x b/core/armelf.x
index d38dc1d..b484776 100644
--- a/core/armelf.x
+++ b/core/armelf.x
@@ -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 :
{
diff --git a/core/armelflib.x b/core/armelflib.x
index 0150e02..ec7abd5 100644
--- a/core/armelflib.x
+++ b/core/armelflib.x
@@ -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 :
{