aboutsummaryrefslogtreecommitdiffstats
path: root/libc
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2012-03-02 16:05:57 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-03-02 16:05:57 -0800
commit1fe109ecf3b1acd10d55091f3e0eed7efeca98f1 (patch)
treea9f19447aa5be60be335d46ac136e14e59db2495 /libc
parent079989259f257a29bb0734ed968d80a1e35c494f (diff)
parent93cb30813764b140f0adbaa620dcdbb1cae56dd8 (diff)
downloadandroid_bionic-1fe109ecf3b1acd10d55091f3e0eed7efeca98f1.tar.gz
android_bionic-1fe109ecf3b1acd10d55091f3e0eed7efeca98f1.tar.bz2
android_bionic-1fe109ecf3b1acd10d55091f3e0eed7efeca98f1.zip
Merge "Reference __dso_handle in PIC way"
Diffstat (limited to 'libc')
-rw-r--r--libc/arch-arm/bionic/crtbegin_so.S15
1 files changed, 8 insertions, 7 deletions
diff --git a/libc/arch-arm/bionic/crtbegin_so.S b/libc/arch-arm/bionic/crtbegin_so.S
index 9275b1e01..8123254ea 100644
--- a/libc/arch-arm/bionic/crtbegin_so.S
+++ b/libc/arch-arm/bionic/crtbegin_so.S
@@ -34,17 +34,18 @@
# standard.
#
__on_dlclose:
- adr r0, 0f
+ ldr r0, .L1
+.LPIC0:
+ add r0, pc
ldr r0, [r0]
b __cxa_finalize
+.L1:
+ .word __dso_handle-(.LPIC0+4)
-0:
- .long __dso_handle
-
- .section .init_array, "aw"
- .globl __INIT_ARRAY__
+ .section .init_array, "aw"
+ .globl __INIT_ARRAY__
__INIT_ARRAY__:
- .long -1
+ .long -1
.section .fini_array, "aw"
.globl __FINI_ARRAY__