summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ldso/arm/start.s5
-rw-r--r--src/ldso/i386/start.s13
-rw-r--r--src/ldso/x86_64/start.s1
3 files changed, 6 insertions, 13 deletions
diff --git a/src/ldso/arm/start.s b/src/ldso/arm/start.s
index 359711e1..25675782 100644
--- a/src/ldso/arm/start.s
+++ b/src/ldso/arm/start.s
@@ -3,12 +3,9 @@
_start:
ldr r0,[sp]
add r1,sp,#4
- ldr r2,2f
- add r2,pc,r2
-1: bl __dynlink
+ bl __dynlink
mov r1,r0
mov r0,#0
tst r1,#1
moveq pc,r1
bx r1
-2: .word _GLOBAL_OFFSET_TABLE_ - 1b - 4
diff --git a/src/ldso/i386/start.s b/src/ldso/i386/start.s
index 8e6a777d..f6d49291 100644
--- a/src/ldso/i386/start.s
+++ b/src/ldso/i386/start.s
@@ -2,16 +2,13 @@
.global _start
_start:
xor %ebp,%ebp
- pop %ecx
- mov %esp,%eax
+ pop %edi
+ mov %esp,%esi
and $-16,%esp
- mov %eax,%esi
- mov %ecx,%edi
push %ebp
- call 1f
-1: addl $_GLOBAL_OFFSET_TABLE_,(%esp)
- push %eax
- push %ecx
+ push %ebp
+ push %esi
+ push %edi
call __dynlink
mov %esi,%esp
push %edi
diff --git a/src/ldso/x86_64/start.s b/src/ldso/x86_64/start.s
index cb0a9e1f..65e238b7 100644
--- a/src/ldso/x86_64/start.s
+++ b/src/ldso/x86_64/start.s
@@ -3,7 +3,6 @@
_start:
mov (%rsp),%rdi
lea 8(%rsp),%rsi
- lea _GLOBAL_OFFSET_TABLE_(%rip),%rdx
call __dynlink
xor %edx,%edx
jmp *%rax