summaryrefslogtreecommitdiffstats
path: root/linker/arch
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-07-08 19:22:57 -0700
committerElliott Hughes <enh@google.com>2014-07-08 21:38:32 -0700
commit996524383f99cf513c181205cf61937faab85352 (patch)
tree96e6071474eda2e2e47f92b257271aaca3ca887f /linker/arch
parent006e0770ffaa57d88f407fad8d9b78ea0efa9c6a (diff)
downloadbionic-996524383f99cf513c181205cf61937faab85352.zip
bionic-996524383f99cf513c181205cf61937faab85352.tar.gz
bionic-996524383f99cf513c181205cf61937faab85352.tar.bz2
Don't zero r1 on entry to the dynamic linker.
There's no need: __linker_init only takes one argument. Also remove the arm __CTOR_LIST__; we use .init_array and .fini_array instead of .ctor and .dtor anyway, and I don't think we've ever supported the latter. Change-Id: Ifc91a5a90c6aa39d674bf0509a7af2e1ff0beddd
Diffstat (limited to 'linker/arch')
-rw-r--r--linker/arch/arm/begin.S22
-rw-r--r--linker/arch/arm64/begin.S3
-rw-r--r--linker/arch/x86_64/begin.S1
3 files changed, 8 insertions, 18 deletions
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/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