about summary refs log tree commit diff
path: root/crt/powerpc
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/powerpc
parent4e6b8eee7755a5aa7f866d0d0cd290653fd87a31 (diff)
downloadmusl-6fef8cafbd0f6f185897bc87feb1ff66e2e204e1.tar.gz
musl-6fef8cafbd0f6f185897bc87feb1ff66e2e204e1.tar.xz
musl-6fef8cafbd0f6f185897bc87feb1ff66e2e204e1.zip
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/powerpc')
-rw-r--r--crt/powerpc/crt1.s26
1 files changed, 0 insertions, 26 deletions
diff --git a/crt/powerpc/crt1.s b/crt/powerpc/crt1.s
deleted file mode 100644
index 7025430c..00000000
--- a/crt/powerpc/crt1.s
+++ /dev/null
@@ -1,26 +0,0 @@
-        .weak  _init
-        .weak  _fini
-        .global _start
-        .type   _start, %function
-_start:
-        mr      9, 1                  # Save the original stack pointer.
-        clrrwi  1, 1, 4               # Align the stack to 16 bytes.
-        lis     13, _SDA_BASE_@ha      # r13 points to the small data area.
-        addi    13, 13, _SDA_BASE_@l  
-        li      0, 0                   # Zero the frame pointer.
-        stwu    1, -16(1)             # The initial stack frame.
-        mtlr    0                      # Clear the link register.
-        stw     0, 0(1)               # And save it.
-        lis     3, main@ha             # Get main() ...
-        addi    3, 3, main@l
-        lwz     4, 0(9)               # and argc...
-        addi    5, 9, 4               # and argv ...
-        lis     6, _init@ha            # and _init() ...
-        addi    6, 6, _init@l
-        lis     7, _fini@ha            # and _fini() ...
-        addi    7, 7, _fini@l
-        li      8, 0                   # ldso_fini == NULL
-        bl       __libc_start_main      # Let's go!
-        b       .                       # Never gets here.
-        .end    _start
-        .size   _start, .-_start