From b94608ca10051e7911250aaa53f1435b0512018c Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 27 May 2012 14:49:55 -0400 Subject: cleanup dynamic linker start code cruft two actual issues: one is that __dynlink no longer wants/needs a GOT pointer argument, so the code to generate that argument can be removed. the other issue was that in the i386 code, argc/argv were being loaded into registers that would be call-clobbered, then copied to preserved registers, rather than just being loaded into the proper call-preserved registers to begin with. this cleanup is in preparation for adding new dynamic linker functionality (ability to explicitly invoke the dynamic linker to run a program). --- src/ldso/arm/start.s | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/ldso/arm/start.s') 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 -- cgit v1.2.1