experimental dynamic linker!
[musl] / src / ldso / i386 / start.s
diff --git a/src/ldso/i386/start.s b/src/ldso/i386/start.s
new file mode 100644 (file)
index 0000000..47c2748
--- /dev/null
@@ -0,0 +1,19 @@
+.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
+       call __dynlink
+       movl %esi,%esp
+       pushl %edi
+       xorl %edx,%edx
+       jmp *%eax