PIE support for i386
[musl] / crt / i386 / Scrt1.s
diff --git a/crt/i386/Scrt1.s b/crt/i386/Scrt1.s
new file mode 100644 (file)
index 0000000..b0fbe10
--- /dev/null
@@ -0,0 +1,24 @@
+.weak _init
+.weak _fini
+.text
+.global _start
+_start:
+       xorl %ebp,%ebp
+       popl %ecx
+       movl %esp,%eax
+       andl $-16,%esp
+       pushl %esp
+       pushl %esp
+       pushl %edx
+       call 1f
+1:     addl $_GLOBAL_OFFSET_TABLE_,(%esp)
+       pop %ebx
+       call 1f
+1:     addl $[_fini-.],(%esp)
+       call 1f
+1:     addl $[_init-.],(%esp)
+       pushl %eax
+       pushl %ecx
+       pushl main@GOT(%ebx)
+       call __libc_start_main@plt
+1:     jmp 1b