add ldd and main program loading support to dynamic linker
[musl] / src / ldso / i386 / start.s
index 47c2748..b16f8af 100644 (file)
@@ -1,19 +1,22 @@
 .text
 .global _start
 _start:
-       xorl %ebp,%ebp
-       popl %ecx
-       movl %esp,%eax
-       andl $-16,%esp
-       movl %eax,%esi
-       movl %ecx,%edi
-       pushl %ebp
-       call 1f
-1:     addl $_GLOBAL_OFFSET_TABLE_,(%esp)
-       pushl %eax
-       pushl %ecx
+       xor %ebp,%ebp
+       pop %edi
+       mov %esp,%esi
+       and $-16,%esp
+       push %ebp
+       push %ebp
+       push %esi
+       push %edi
        call __dynlink
-       movl %esi,%esp
-       pushl %edi
-       xorl %edx,%edx
+       mov %esi,%esp
+1:     dec %edi
+       pop %esi
+       cmp $-1,%esi
+       jz 1b
+       inc %edi
+       push %esi
+       push %edi
+       xor %edx,%edx
        jmp *%eax