Merge "Add locale aware APIs."
diff --git a/benchmarks/property_benchmark.cpp b/benchmarks/property_benchmark.cpp
index 6d17ec7..0b0c47f 100644
--- a/benchmarks/property_benchmark.cpp
+++ b/benchmarks/property_benchmark.cpp
@@ -156,3 +156,30 @@
StopBenchmarkTiming();
}
BENCHMARK(BM_property_find)->TEST_NUM_PROPS;
+
+static void BM_property_read(int iters, int nprops)
+{
+ StopBenchmarkTiming();
+
+ LocalPropertyTestState pa(nprops);
+
+ if (!pa.valid)
+ return;
+
+ srandom(iters * nprops);
+ const prop_info** pinfo = new const prop_info*[iters];
+ char propvalue[PROP_VALUE_MAX];
+
+ for (int i = 0; i < iters; i++) {
+ pinfo[i] = __system_property_find(pa.names[random() % nprops]);
+ }
+
+ StartBenchmarkTiming();
+ for (int i = 0; i < iters; i++) {
+ __system_property_read(pinfo[i], 0, propvalue);
+ }
+ StopBenchmarkTiming();
+
+ delete[] pinfo;
+}
+BENCHMARK(BM_property_read)->TEST_NUM_PROPS;
diff --git a/linker/arch/arm/begin.S b/linker/arch/arm/begin.S
index e259902..8cb599b 100644
--- a/linker/arch/arm/begin.S
+++ b/linker/arch/arm/begin.S
@@ -26,20 +26,12 @@
* SUCH DAMAGE.
*/
- .text
- .align 4
- .type _start,#function
- .globl _start
+#include <private/bionic_asm.h>
-_start:
- mov r0, sp
- mov r1, #0
- bl __linker_init
+ENTRY(_start)
+ mov r0, sp
+ bl __linker_init
- /* linker init returns the _entry address in the main image */
- mov pc, r0
-
- .section .ctors, "wa"
- .globl __CTOR_LIST__
-__CTOR_LIST__:
- .long -1
+ /* linker init returns the _entry address in the main image */
+ mov pc, r0
+END(_start)
diff --git a/linker/arch/arm64/begin.S b/linker/arch/arm64/begin.S
index c96ede7..a6ea583 100644
--- a/linker/arch/arm64/begin.S
+++ b/linker/arch/arm64/begin.S
@@ -30,8 +30,7 @@
ENTRY(_start)
mov x0, sp
- mov x1, xzr
- bl __linker_init
+ bl __linker_init
/* linker init returns the _entry address in the main image */
br x0
diff --git a/linker/arch/mips/begin.S b/linker/arch/mips/begin.S
index b782947..4a855e6 100644
--- a/linker/arch/mips/begin.S
+++ b/linker/arch/mips/begin.S
@@ -100,8 +100,3 @@
addu $sp, 4*4 /* restore sp */
j $t9
.end __start
-
- .section .ctors, "wa"
- .globl __CTOR_LIST__
-__CTOR_LIST__:
- .long -1
diff --git a/linker/arch/mips64/begin.S b/linker/arch/mips64/begin.S
index 9e741c0..6827a2c 100644
--- a/linker/arch/mips64/begin.S
+++ b/linker/arch/mips64/begin.S
@@ -120,9 +120,3 @@
move t9, v0
j t9
.end __start
-
-/* FIXME:Is this still needed? */
- .section .ctors, "wa"
- .globl __CTOR_LIST__
-__CTOR_LIST__:
- .long -1
diff --git a/linker/arch/x86_64/begin.S b/linker/arch/x86_64/begin.S
index aff4660..7945a31 100644
--- a/linker/arch/x86_64/begin.S
+++ b/linker/arch/x86_64/begin.S
@@ -29,7 +29,6 @@
#include <private/bionic_asm.h>
ENTRY(_start)
- /* Pass elfdata to __linker_init. */
mov %rsp, %rdi
call __linker_init