From da496b6a893802d10435f7361e28b1107a541069 Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Tue, 30 Dec 2014 04:05:12 +0000 Subject: [PATCH] revert stack changes, broken on hardware :( --- libctru/source/system/allocateHeaps.c | 7 ++--- libctru/source/system/ctru_exit.c | 2 +- libctru/source/system/initSystem.c | 2 +- libctru/source/system/init_exit_Wrappers.s | 35 ---------------------- 4 files changed, 5 insertions(+), 41 deletions(-) delete mode 100644 libctru/source/system/init_exit_Wrappers.s diff --git a/libctru/source/system/allocateHeaps.c b/libctru/source/system/allocateHeaps.c index d53625c..4009f8e 100644 --- a/libctru/source/system/allocateHeaps.c +++ b/libctru/source/system/allocateHeaps.c @@ -7,7 +7,6 @@ u32 __linear_heap; u32 __heapBase; extern u32 __heap_size, __linear_heap_size; -u32 __attribute__((weak)) __stacksize__ = 32 * 1024; void __attribute__((weak)) __system_allocateHeaps() { u32 tmp=0; @@ -19,7 +18,7 @@ void __attribute__((weak)) __system_allocateHeaps() { // Allocate the linear heap svcControlMemory(&__linear_heap, 0x0, 0x0, __linear_heap_size, MEMOP_ALLOC_LINEAR, 0x3); // Set up newlib heap - fake_heap_start = (char*)__heapBase + __stacksize__; - fake_heap_end = fake_heap_start + __heap_size - __stacksize__; + fake_heap_start = (char*)__heapBase; + fake_heap_end = fake_heap_start + __heap_size; -} +} \ No newline at end of file diff --git a/libctru/source/system/ctru_exit.c b/libctru/source/system/ctru_exit.c index f4c99f1..058ea7c 100644 --- a/libctru/source/system/ctru_exit.c +++ b/libctru/source/system/ctru_exit.c @@ -11,7 +11,7 @@ void __appExit(); void __libc_fini_array(void); -void __attribute__((weak)) __attribute__((noreturn)) __libctru_exit(int rc) +void __attribute__((weak)) __attribute__((noreturn)) __ctru_exit(int rc) { u32 tmp=0; diff --git a/libctru/source/system/initSystem.c b/libctru/source/system/initSystem.c index 47b1067..080d125 100644 --- a/libctru/source/system/initSystem.c +++ b/libctru/source/system/initSystem.c @@ -18,7 +18,7 @@ void __libc_init_array(void); void __ctru_exit(int rc); -void __attribute__((weak)) __ctru_initSystem(void (*retAddr)(void)) +void __attribute__((weak)) initSystem(void (*retAddr)(void)) { // Register newlib exit() syscall diff --git a/libctru/source/system/init_exit_Wrappers.s b/libctru/source/system/init_exit_Wrappers.s deleted file mode 100644 index 608f25f..0000000 --- a/libctru/source/system/init_exit_Wrappers.s +++ /dev/null @@ -1,35 +0,0 @@ - .text - .arm - .cpu mpcore - - .global initSystem - .type initSystem STT_FUNC -@--------------------------------------------------------------------------------- -initSystem: -@--------------------------------------------------------------------------------- - ldr r0, =saved_lr - str lr, [r0] - str sp, [r0,#4] - bl __ctru_initSystem - ldr r0,=fake_heap_start - ldr sp, [r0] - ldr r0, =saved_lr - ldr pc, [r0] - - .global __ctru_exit - .type __ctru_exit STT_FUNC -@--------------------------------------------------------------------------------- -__ctru_exit: -@--------------------------------------------------------------------------------- - ldr r1, =saved_stack - ldr sp, [r1] - b __libctru_exit - - .pool - - .bss - .align 2 -saved_lr: - .space 4 -saved_stack: - .space 4