diff options
Diffstat (limited to 'crt')
-rw-r--r-- | crt/aarch64/crti.s | 2 | ||||
-rw-r--r-- | crt/arm/crti.s | 2 | ||||
-rw-r--r-- | crt/crt1.c | 4 | ||||
-rw-r--r-- | crt/mips/crtn.s | 4 | ||||
-rw-r--r-- | crt/mips64/crtn.s | 4 | ||||
-rw-r--r-- | crt/mipsn32/crtn.s | 4 | ||||
-rw-r--r-- | crt/rcrt1.c | 4 |
7 files changed, 14 insertions, 10 deletions
diff --git a/crt/aarch64/crti.s b/crt/aarch64/crti.s index 775df0ac..3776fa64 100644 --- a/crt/aarch64/crti.s +++ b/crt/aarch64/crti.s @@ -1,6 +1,7 @@ .section .init .global _init .type _init,%function +.align 2 _init: stp x29,x30,[sp,-16]! mov x29,sp @@ -8,6 +9,7 @@ _init: .section .fini .global _fini .type _fini,%function +.align 2 _fini: stp x29,x30,[sp,-16]! mov x29,sp diff --git a/crt/arm/crti.s b/crt/arm/crti.s index 18dc1e41..cccda3ea 100644 --- a/crt/arm/crti.s +++ b/crt/arm/crti.s @@ -3,11 +3,13 @@ .section .init .global _init .type _init,%function +.align 2 _init: push {r0,lr} .section .fini .global _fini .type _fini,%function +.align 2 _fini: push {r0,lr} @@ -8,10 +8,10 @@ int main(); weak void _init(); weak void _fini(); -_Noreturn int __libc_start_main(int (*)(), int, char **, +int __libc_start_main(int (*)(), int, char **, void (*)(), void(*)(), void(*)()); -void _start_c(long *p) +hidden void _start_c(long *p) { int argc = p[0]; char **argv = (void *)(p+1); diff --git a/crt/mips/crtn.s b/crt/mips/crtn.s index 506a04b7..92eb3d0e 100644 --- a/crt/mips/crtn.s +++ b/crt/mips/crtn.s @@ -3,11 +3,11 @@ .section .init lw $gp,24($sp) lw $ra,28($sp) - j $ra + jr $ra addu $sp,$sp,32 .section .fini lw $gp,24($sp) lw $ra,28($sp) - j $ra + jr $ra addu $sp,$sp,32 diff --git a/crt/mips64/crtn.s b/crt/mips64/crtn.s index f3930b24..8f090ed3 100644 --- a/crt/mips64/crtn.s +++ b/crt/mips64/crtn.s @@ -3,11 +3,11 @@ .section .init ld $gp,16($sp) ld $ra,24($sp) - j $ra + jr $ra daddu $sp,$sp,32 .section .fini ld $gp,16($sp) ld $ra,24($sp) - j $ra + jr $ra daddu $sp,$sp,32 diff --git a/crt/mipsn32/crtn.s b/crt/mipsn32/crtn.s index dccd7e89..0679eac3 100644 --- a/crt/mipsn32/crtn.s +++ b/crt/mipsn32/crtn.s @@ -2,11 +2,11 @@ .section .init ld $gp, 16($sp) ld $ra, 24($sp) - j $ra + jr $ra addu $sp, $sp, 32 .section .fini ld $gp, 16($sp) ld $ra, 24($sp) - j $ra + jr $ra addu $sp, $sp, 32 diff --git a/crt/rcrt1.c b/crt/rcrt1.c index 7bb3322f..901dff68 100644 --- a/crt/rcrt1.c +++ b/crt/rcrt1.c @@ -5,10 +5,10 @@ int main(); weak void _init(); weak void _fini(); -_Noreturn int __libc_start_main(int (*)(), int, char **, +int __libc_start_main(int (*)(), int, char **, void (*)(), void(*)(), void(*)()); -hidden _Noreturn void __dls2(unsigned char *base, size_t *sp) +hidden void __dls2(unsigned char *base, size_t *sp) { __libc_start_main(main, *sp, (void *)(sp+1), _init, _fini, 0); } |