PPC port cleaned up, static linking works well now.

This commit is contained in:
rofl0r 2012-11-09 23:36:55 +01:00
commit 1c8eb8bad7
55 changed files with 1373 additions and 1095 deletions

26
crt/powerpc/crt1.s Normal file
View file

@ -0,0 +1,26 @@
.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

View file

@ -1,27 +0,0 @@
#include <bits/asm.h>
.weak _init
.weak _fini
.global _start
.type _start, %function
_start:
mr r9, r1 // Save the original stack pointer.
clrrwi r1, r1, 4 // Align the stack to 16 bytes.
lis r13, _SDA_BASE_@ha // r13 points to the small data area.
addi r13, r13, _SDA_BASE_@l //
li r0, 0 // Zero the frame pointer.
stwu r1, -16(r1) // The initial stack frame.
mtlr r0 // Clear the link register.
stw r0, 0(r1) // And save it.
lis r3, main@ha // Get main() ...
addi r3, r3, main@l
lwz r4, 0(r9) // and argc...
addi r5, r9, 4 // and argv ...
lis r6, _init@ha // and _init() ...
addi r6, r6, _init@l
lis r7, _fini@ha // and _fini() ...
addi r7, r7, _fini@l
li r8, 0 // ldso_fini == NULL
bl __libc_start_main // Let's go!
b . // Never gets here.
.end _start
.size _start, .-_start