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
This commit is contained in:
Elliott Hughes 2014-07-08 19:22:57 -07:00
parent 006e0770ff
commit 996524383f
3 changed files with 8 additions and 18 deletions

View File

@ -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)

View File

@ -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

View File

@ -29,7 +29,6 @@
#include <private/bionic_asm.h>
ENTRY(_start)
/* Pass elfdata to __linker_init. */
mov %rsp, %rdi
call __linker_init