Search found 43 matches

by Dwedit
Wed Oct 19, 2011 7:49 pm
Forum: devkitARM
Topic: Using --gc-sections puts __data_end__ before __data_start__
Replies: 2
Views: 5613

Re: Using --gc-sections puts __data_end__ before __data_star

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 ...
by Dwedit
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 ...
by Dwedit
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!
by Dwedit
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)

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.
The division by zero handler it uses is completely blank, and can't possibly throw any exceptions.
by Dwedit
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 ...
by Dwedit
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 ...
by Dwedit
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 ...
by Dwedit
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 ...
by Dwedit
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.
by Dwedit
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 ...