Also, there's another problem.
In crt0, it overwrites the SBSS section with junk data, because it's copying from __ewram_start__ to __ewram_end__, which is past the end of the SBSS section. It should be copying up to __sbss_start__ instead.
In the crt0.s file, change this ...
Search found 43 matches
- Wed Oct 19, 2011 7:49 pm
- Forum: devkitARM
- Topic: Using --gc-sections puts __data_end__ before __data_start__
- Replies: 2
- Views: 5613
- Wed Oct 19, 2011 7:24 pm
- Forum: devkitARM
- Topic: Using --gc-sections puts __data_end__ before __data_start__
- Replies: 2
- Views: 5613
Using --gc-sections puts __data_end__ before __data_start__
I was just spending the last few hours trying to track down a problem in devkitarm.
I was having a problem where "__data_start__" came in memory after "__data_end__", so when the crt0 code copies data into ram, it copies a negative number (big number) of bytes, and crashes.
After searching for the ...
I was having a problem where "__data_start__" came in memory after "__data_end__", so when the crt0 code copies data into ram, it copies a negative number (big number) of bytes, and crashes.
After searching for the ...
- Thu Oct 06, 2011 4:35 am
- Forum: devkitARM
- Topic: Linker is adding extra crap (Unreferenced library code)
- Replies: 15
- Views: 41539
Re: Linker is adding extra crap (Unreferenced library code)
Works perfectly now, big thanks!
- Tue Oct 04, 2011 5:27 pm
- Forum: devkitARM
- Topic: Linker is adding extra crap (Unreferenced library code)
- Replies: 15
- Views: 41539
Re: Linker is adding extra crap (Unreferenced library code)
The division by zero handler it uses is completely blank, and can't possibly throw any exceptions.tueidj wrote:I say leave it as is. If I want an exception when I divide by zero then I should get one. If someone else doesn't, they can write their own long division function.
- Tue Oct 04, 2011 2:04 am
- Forum: devkitARM
- Topic: Linker is adding extra crap (Unreferenced library code)
- Replies: 15
- Views: 41539
Re: Linker is adding extra crap (Unreferenced library code)
Here, I'm doing a 64-bit unsigned division. This is a call to the function __aeabi_uldivmod.
So it depends on these functions:
__aeabi_uldivmod from _aeabi_uldivmod.o
__aeabi_ldiv0 from _dvmd_tls.o (this appears to be a blank function, the only content is "bx lr", it's probably the division by 0 ...
So it depends on these functions:
__aeabi_uldivmod from _aeabi_uldivmod.o
__aeabi_ldiv0 from _dvmd_tls.o (this appears to be a blank function, the only content is "bx lr", it's probably the division by 0 ...
- Sun Oct 02, 2011 2:08 am
- Forum: devkitARM
- Topic: Linker is adding extra crap (Unreferenced library code)
- Replies: 15
- Views: 41539
Re: Linker is adding extra crap (Unreferenced library code)
I have now tried that, but it didn't work.
My makefile line now looks like
LDFLAGS = -g $(ARCH) -Wl,-Map,$(notdir $@).map,--gc-sections
EDIT:
When I look through "libgcc.a", I see this odd symbol table stuff in "bpabi.o".
There are references to "aeabi_unwind_cpp_pr0", but they do not appear in ...
My makefile line now looks like
LDFLAGS = -g $(ARCH) -Wl,-Map,$(notdir $@).map,--gc-sections
EDIT:
When I look through "libgcc.a", I see this odd symbol table stuff in "bpabi.o".
There are references to "aeabi_unwind_cpp_pr0", but they do not appear in ...
- Sat Oct 01, 2011 10:32 pm
- Forum: Off Topic
- Topic: NO$GBA hates the "push sp" instruction, libgcc uses it
- Replies: 5
- Views: 15238
Re: NO$GBA hates the "push sp" instruction, libgcc uses it
I have confirmed that including this ASM code makes 64-bit division compatible with NO$GBA:
.text
.align
.pool
.global __aeabi_ldivmod
.global __aeabi_uldivmod
__aeabi_ldivmod:
cmp r3, #0
cmpeq r2, #0
bne 0f
cmp r1, #0
cmpeq r0, #0
movlt r1, #-2147483648 @ 0x80000000
movlt r0, #0 ...
.text
.align
.pool
.global __aeabi_ldivmod
.global __aeabi_uldivmod
__aeabi_ldivmod:
cmp r3, #0
cmpeq r2, #0
bne 0f
cmp r1, #0
cmpeq r0, #0
movlt r1, #-2147483648 @ 0x80000000
movlt r0, #0 ...
- Sat Oct 01, 2011 10:14 pm
- Forum: devkitARM
- Topic: Linker is adding extra crap (Unreferenced library code)
- Replies: 15
- Views: 41539
Re: Linker is adding extra unreferenced library code
I'm sorry, it's just that these posts usually come immediately after I've been trying for about 4 hours to frantically figure out what's going on, and I'm really frustrated at the time I'm posting them.
I just really don't understand how code that isn't referenced anywhere ends up in the program ...
I just really don't understand how code that isn't referenced anywhere ends up in the program ...
- Fri Sep 30, 2011 6:54 pm
- Forum: Bug Reports
- Topic: Libgba: gba_compression.h doesn't have const source pointer
- Replies: 3
- Views: 8978
Re: Libgba: gba_compression.h doesn't have const source poin
I'm used to getting compiler errors when you try to promote a const u32* to a plain u32*. Is this a non-standard extension of GCC that a const pointer can be promoted to a non-const void pointer, or is it perfectly legal?
I do get warnings when it happens.
I do get warnings when it happens.
- Fri Sep 30, 2011 8:33 am
- Forum: devkitARM
- Topic: Linker is adding extra crap (Unreferenced library code)
- Replies: 15
- Views: 41539
Linker is adding extra crap (Unreferenced library code)
I'm having problems with unnecessary code getting linked into my project. I can't figure out where these symbols are coming from:
abort
_Unwind_decode_target2
__aeabi_unwind_cpp_pr0
restore_core_regs
__gnu_unwind_execute
__libc_init_array
After I disassemble my .elf file with objdump, I can't find ...
abort
_Unwind_decode_target2
__aeabi_unwind_cpp_pr0
restore_core_regs
__gnu_unwind_execute
__libc_init_array
After I disassemble my .elf file with objdump, I can't find ...