diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ldso/arm/start.s | 5 | ||||
| -rw-r--r-- | src/ldso/i386/start.s | 13 | ||||
| -rw-r--r-- | src/ldso/x86_64/start.s | 1 | 
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  | 
