add support for init/finit (constructors and destructors)
[musl] / crt / i386 / crt1.s
index 4d5f572..66ee11a 100644 (file)
@@ -1,3 +1,5 @@
+.weak _init
+.weak _fini
 .text
 .global _start
 _start:
@@ -8,12 +10,13 @@ _start:
        pushl %esp
        pushl %esp
        pushl %edx
-       pushl %ebp
-       pushl %ebp
+       call 1f
+1:     addl $[_fini-.],(%esp)
+       call 1f
+1:     addl $[_init-.],(%esp)
        pushl %eax
        pushl %ecx
        call 1f
 1:     addl $[main-.],(%esp)
-       //pushl $main
        call __libc_start_main
 1:     jmp 1b