summaryrefslogtreecommitdiff
path: root/crt
diff options
context:
space:
mode:
Diffstat (limited to 'crt')
-rw-r--r--crt/aarch64/crti.s2
-rw-r--r--crt/arm/crti.s2
-rw-r--r--crt/crt1.c4
-rw-r--r--crt/mips/crtn.s4
-rw-r--r--crt/mips64/crtn.s4
-rw-r--r--crt/mipsn32/crtn.s4
-rw-r--r--crt/rcrt1.c4
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}
diff --git a/crt/crt1.c b/crt/crt1.c
index 7b12665f..10601215 100644
--- a/crt/crt1.c
+++ b/crt/crt1.c
@@ -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);
}