summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2012-06-29 09:48:22 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-06-29 09:48:23 -0700
commit435a7da6d02083ba6583e1654db351991cf79578 (patch)
tree0f535b9ac7d7f90e66b73d0eaf96ae6907d4f12f
parent568cb2b2ef150704f52c5ec96d9e835b37ea6938 (diff)
parent556182feb40916842b52087f442ebcb4e877dbd7 (diff)
downloaddevelopment-ics-plus-aosp.tar.gz
Merge "Fix SEGV when unwinding stack pasts __libc_init"ics-plus-aosp
-rw-r--r--ndk/platforms/android-3/arch-arm/src/crtbegin_dynamic.S4
-rw-r--r--ndk/platforms/android-3/arch-arm/src/crtbegin_static.S4
-rw-r--r--ndk/platforms/android-9/arch-mips/src/crtbegin_dynamic.S2
-rw-r--r--ndk/platforms/android-9/arch-mips/src/crtbegin_static.S2
4 files changed, 10 insertions, 2 deletions
diff --git a/ndk/platforms/android-3/arch-arm/src/crtbegin_dynamic.S b/ndk/platforms/android-3/arch-arm/src/crtbegin_dynamic.S
index 6ca08458e..ec6d482d8 100644
--- a/ndk/platforms/android-3/arch-arm/src/crtbegin_dynamic.S
+++ b/ndk/platforms/android-3/arch-arm/src/crtbegin_dynamic.S
@@ -53,7 +53,9 @@ _start:
ldr r2, =main
adr r3, 1f
ldr r4, =__libc_init
- bx r4
+ blx r4
+ mov r0, #0
+ bx r0
1: .long __PREINIT_ARRAY__
.long __INIT_ARRAY__
diff --git a/ndk/platforms/android-3/arch-arm/src/crtbegin_static.S b/ndk/platforms/android-3/arch-arm/src/crtbegin_static.S
index ec13351eb..d9d12a786 100644
--- a/ndk/platforms/android-3/arch-arm/src/crtbegin_static.S
+++ b/ndk/platforms/android-3/arch-arm/src/crtbegin_static.S
@@ -53,7 +53,9 @@ _start:
ldr r2, =main
adr r3, 1f
ldr r4, =__libc_init
- bx r4
+ blx r4
+ mov r0, #0
+ bx r0
1: .long __PREINIT_ARRAY__
.long __INIT_ARRAY__
diff --git a/ndk/platforms/android-9/arch-mips/src/crtbegin_dynamic.S b/ndk/platforms/android-9/arch-mips/src/crtbegin_dynamic.S
index 7d1fac740..28f8fd551 100644
--- a/ndk/platforms/android-9/arch-mips/src/crtbegin_dynamic.S
+++ b/ndk/platforms/android-9/arch-mips/src/crtbegin_dynamic.S
@@ -64,6 +64,8 @@ _start:
la $a3, 1f
subu $sp, 32
la $t9, __libc_init
+ jalr $t9
+ move $t9, $0
j $t9
.end __start
diff --git a/ndk/platforms/android-9/arch-mips/src/crtbegin_static.S b/ndk/platforms/android-9/arch-mips/src/crtbegin_static.S
index 9f00811ea..893863c17 100644
--- a/ndk/platforms/android-9/arch-mips/src/crtbegin_static.S
+++ b/ndk/platforms/android-9/arch-mips/src/crtbegin_static.S
@@ -64,6 +64,8 @@ _start:
la $a3, 1f
subu $sp, 32
la $t9, __libc_init
+ jalr $t9
+ move $t9, $0
j $t9
.end __start