summaryrefslogtreecommitdiff
path: root/crt/arm
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-10-14 17:08:34 -0400
committerRich Felker <dalias@aerifal.cx>2015-10-14 17:08:34 -0400
commit6fef8cafbd0f6f185897bc87feb1ff66e2e204e1 (patch)
tree367c666c981d3537e0c504a4df97e4f17d182c13 /crt/arm
parent4e6b8eee7755a5aa7f866d0d0cd290653fd87a31 (diff)
downloadmusl-6fef8cafbd0f6f185897bc87feb1ff66e2e204e1.tar.gz
remove hand-written crt1.s and Scrt1.s files for all archs
since commit c5e34dabbb47d8e97a4deccbb421e0cd93c0094b, crt1.c has provided a "mostly-C" implementation of the crt1 start file that avoids the need for arch-specific symbol referencing, PIC/PIE-specific code variants, etc. but for archs that had existing hand-written versions, the new code was initially unused, and later only used as the dynamic linker entry point. this commit switches all archs to using the new code. the code being removed was a recurring source of subtle errors, and was still broken at least on arm, where it failed to properly align the stack pointer before calling into C code.
Diffstat (limited to 'crt/arm')
-rw-r--r--crt/arm/Scrt1.s30
-rw-r--r--crt/arm/crt1.s17
2 files changed, 0 insertions, 47 deletions
diff --git a/crt/arm/Scrt1.s b/crt/arm/Scrt1.s
deleted file mode 100644
index a54859aa..00000000
--- a/crt/arm/Scrt1.s
+++ /dev/null
@@ -1,30 +0,0 @@
-.weak _init
-.weak _fini
-.global _start
-_start:
- mov fp,#0
- mov lr,#0
-
- ldr a2,[sp],#4
- mov a3,sp
- str fp,[sp,#-4]!
- str a1,[sp,#-4]!
-
- adr ip,2f
- ldr a4,2f+4
- add a4,a4,ip
- str a4,[sp,#-4]!
- ldr a4,2f+8
- add a4,a4,ip
-
- ldr a1,2f
- add ip,ip,a1
- ldr a1,2f+12
- ldr a1,[ip,a1]
-
- bl __libc_start_main(PLT)
-1: b 1b
-2: .word _GLOBAL_OFFSET_TABLE_-2b
- .word _fini-2b
- .word _init-2b
- .word main(GOT)
diff --git a/crt/arm/crt1.s b/crt/arm/crt1.s
deleted file mode 100644
index 90ef59f3..00000000
--- a/crt/arm/crt1.s
+++ /dev/null
@@ -1,17 +0,0 @@
-.weak _init
-.weak _fini
-.global _start
-.type _start,%function
-_start:
- mov fp,#0
- mov lr,#0
- ldr a2,[sp],#4
- mov a3,sp
- ldr a4,=_fini
- str fp,[sp,#-4]!
- str a1,[sp,#-4]!
- str a4,[sp,#-4]!
- ldr a4,=_init
- ldr a1,=main
- bl __libc_start_main
-1: b 1b