PPC port cleaned up, static linking works well now.
This commit is contained in:
parent
7669d1e334
commit
1c8eb8bad7
55 changed files with 1373 additions and 1095 deletions
26
crt/powerpc/crt1.s
Normal file
26
crt/powerpc/crt1.s
Normal 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
|
||||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue