summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/mips/crt0.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/sysdeps/linux/mips/crt0.S')
-rw-r--r--libc/sysdeps/linux/mips/crt0.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/mips/crt0.S b/libc/sysdeps/linux/mips/crt0.S
index fd1f4b9d4..052229819 100644
--- a/libc/sysdeps/linux/mips/crt0.S
+++ b/libc/sysdeps/linux/mips/crt0.S
@@ -30,6 +30,7 @@ __start:
addu a2, a0, 1 /* argv[0] program name (ordinal->cardinal) */
sll a2, a2, 2 /* multiple by 4 */
add a2, a2, a1 /* a2 now points to start of envp */
+#ifdef __UCLIBC_CTOR_DTOR__
la a3, _init /* a3 is address of _init */
addiu sp, sp, -24 /* 16 + 4 rounded up to multiple of 8 */
/* multiple of 8 for longlong/double support */
@@ -38,6 +39,9 @@ __start:
/* Ok, now run uClibc's main() -- shouldn't return */
jal __uClibc_start_main
+#else
+ jal __uClibc_main
+#endif
addiu sp, sp, 24 /* undo stack argument */