diff options
Diffstat (limited to 'libc/sysdeps/linux/mips/crt0.S')
-rw-r--r-- | libc/sysdeps/linux/mips/crt0.S | 4 |
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 */ |