Bug 10409

Summary: Load address generated correctly, but applied incorrectly.
Product: binutils Reporter: Andrew Mahone <andrew.mahone>
Component: ldAssignee: unassigned
Status: NEW ---    
Severity: normal CC: bug-binutils
Priority: P2    
Version: 2.20   
Target Milestone: ---   
Host: i686-pc-linux-gnu Target: arm-elf-eabi
Build: i686-pc-linux-gnu Last reconfirmed:
Attachments: possible fix

Description Andrew Mahone 2009-07-17 10:53:04 UTC
I'm working on getting Rockbox (www.rockbox.org) to build with EABI on ARM
targets, mostly so that we can get away from using -mlong-calls on some targets
where memory mappings can't be arranged to avoid *some* long calls. Test builds
are being done with recent binutils snapshots. There were unexpected problems
with the vorbis codec that were eventually traced to a section being given the
wrong load address. iramcopy is supposed to be used as the load address for
.iram, and while iramcopy is calculated correctly (it's supposed to be
16-byte-aligned), the load address in the map file and in the resulting binary
is incorrect, resulting in the data and code destined for iram being shifted. I
haven't been able to create a small test case for this bug yet, I will add one
if I have any success.

Linker script:
OUTPUT_FORMAT(elf32-littlearm)
MEMORY
{
   PLUGIN_RAM : ORIGIN = (0x00000000 + ((32 * 0x100000) - 0x80000 - 0 -
0x100000)), LENGTH = 0x100000
   PLUGIN_IRAM : ORIGIN = 0x4000c000, LENGTH = 0x14000
}
SECTIONS
{
    .header : {
        _plugin_start_addr = .;
        plugin_start_addr = .;
        KEEP(*(.header))
    } > PLUGIN_RAM
    .text :
    {
        *(.text*)
        *(.glue_7)
        *(.glue_7t)
    } > PLUGIN_RAM
    .rodata :
    {
        *(.rodata*)
        . = ALIGN(0x4);
    } > PLUGIN_RAM
    .data :
    {
        *(.data*)
	. += 8;
    } > PLUGIN_RAM
    .ncdata . + 0x10000000 :
    {
        . = ALIGN(16);
        *(.ncdata*)
        . = ALIGN(16);
    } AT> PLUGIN_RAM
    iramcopy = . - 0x10000000;
    /DISCARD/ :
    {
        *(.eh_frame)
    }
    .iram 0x4000c000 : AT ( iramcopy)
    {
        iramstart = .;
        *(.icode)
        *(.irodata)
        *(.idata)
        iramend = .;
    } > PLUGIN_IRAM
    .ibss (NOLOAD) :
    {
        iedata = .;
        *(.ibss)
        . = ALIGN(0x4);
        iend = .;
    } > PLUGIN_IRAM
    .bss (NOLOAD) :
    {
     plugin_bss_start = .;
        *(.bss*)
        *(COMMON)
        . = ALIGN(0x4);
    } > PLUGIN_RAM
    .ncbss . + 0x10000000 (NOLOAD) :
    {
     . = ALIGN(16);
     *(.ncbss*)
        . = ALIGN(16);
    } AT> PLUGIN_RAM
    .pluginend . - 0x10000000 :
    {
        _plugin_end_addr = .;
        plugin_end_addr = .;
    }
    .comment 0 :
    {
        KEEP(*(.comment))
    }
}

Map:
Archive member included because of file (symbol)

/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o (ov_clear)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(oggmalloc.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o (ogg_malloc_init)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
(vorbis_block_init)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(framing.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
(ogg_page_continued)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
(vorbis_comment_init)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
(_mapping_P)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(res012.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
(residue2_exportbundle)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(sharedbook.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
(vorbis_staticbook_destroy)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(synthesis.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
(vorbis_synthesis)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(window.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
(_vorbis_window)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(bitwise.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
(oggpack_read)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(codebook.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
(vorbis_staticbook_unpack)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor0.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
(floor0_exportbundle)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor1.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
(floor1_exportbundle)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(mapping0.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
(mapping0_exportbundle)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o (codec_init)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(mapping0.o)
(mdct_backward)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct_arm.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
(mdct_butterfly_32)
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(setjmp_arm.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o (setjmp)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(res012.o)
(__aeabi_idivmod)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(sharedbook.o)
(__modsi3)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
                             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
(__aeabi_ldivmod)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
                             
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
(__gnu_ldivmod_helper)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
                             
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
(__divdi3)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
                             
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
(__udivdi3)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
                             
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
(__aeabi_uidivmod)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)
                             
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
(__umodsi3)
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)
                             
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
(__clz_tab)

Allocating common symbols
Common symbol       size              file

bufsize             0x4              
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
mem_ptr             0x4              
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
mp3buf              0x4              
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
mallocbuf           0x4              
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
rb_jump_buf         0x5c             
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
filebuf             0x4              
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)

Discarded input sections

 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/codec_crt0.o
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(oggmalloc.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(framing.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(framing.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
 .text          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(res012.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(res012.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(sharedbook.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(sharedbook.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(synthesis.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(synthesis.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(window.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(window.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(bitwise.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(bitwise.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(codebook.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(codebook.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor0.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor0.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor1.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor1.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(mapping0.o)
 .text          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.codec_malloc
                0x00000000       0x50
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.codec_calloc
                0x00000000       0x44
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.codec_free
                0x00000000        0x4
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.codec_realloc
                0x00000000       0x18
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.strlen   0x00000000       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.strcpy   0x00000000       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.strcat   0x00000000       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.strcmp   0x00000000       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text.memmove  0x00000000       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .text          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
 .text          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct_arm.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct_arm.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct_arm.o)
 .data          0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(setjmp_arm.o)
 .bss           0x00000000        0x0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(setjmp_arm.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)
 .text          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)
 .data          0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)
 .bss           0x00000000        0x0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)

Memory Configuration

Name             Origin             Length             Attributes
PLUGIN_RAM       0x01e80000         0x00100000
PLUGIN_IRAM      0x4000c000         0x00014000
*default*        0x00000000         0xffffffff

Linker script and memory map

LOAD /home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
LOAD /home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/codec_crt0.o
LOAD /home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a
LOAD /home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a
LOAD
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a

.header         0x01e80000       0x18
                0x01e80000                _plugin_start_addr = .
                0x01e80000                plugin_start_addr = .
 *(.header)
 .header        0x01e80000       0x18
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
                0x01e80000                __header

.text           0x01e80018     0xe760
 *(.text*)
 .text          0x01e80018      0x4c8
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
                0x01e80170                codec_main
 .text          0x01e804e0       0xb8
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/codec_crt0.o
                0x01e804e0                codec_start
                0x01e80584                __div0
 .text          0x01e80598     0x29d4
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
                0x01e82e90                ov_read_fixed
                0x01e812c8                ov_time_total
                0x01e82e2c                ov_info
                0x01e813a0                ov_raw_seek
                0x01e82704                ov_pcm_seek
                0x01e82b30                ov_time_seek
                0x01e81760                ov_open_callbacks
                0x01e81178                ov_clear
                0x01e81224                ov_pcm_total
                0x01e82cc0                ov_raw_tell
                0x01e81e0c                ov_pcm_seek_page
                0x01e82ce4                ov_time_tell
 .text          0x01e82f6c      0x1e8
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(oggmalloc.o)
                0x01e830f4                ogg_tmpmalloc_free
                0x01e830e4                ogg_tmpmalloc_pos
                0x01e82f6c                ogg_malloc_init
                0x01e8306c                ogg_calloc
                0x01e83118                iram_malloc
                0x01e830a4                ogg_tmpcalloc
                0x01e82fc4                ogg_malloc
                0x01e83024                ogg_tmpmalloc
                0x01e83104                iram_malloc_init
                0x01e830dc                ogg_realloc
 .text          0x01e83154      0x624
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
                0x01e8321c                _vorbis_block_ripcord
                0x01e832c0                vorbis_synthesis_restart
                0x01e8318c                _vorbis_block_alloc
                0x01e83378                vorbis_synthesis_init
                0x01e8373c                vorbis_synthesis_read
                0x01e83670                vorbis_dsp_clear
                0x01e83154                vorbis_block_init
                0x01e8329c                vorbis_block_clear
 .text          0x01e83778     0x14e4
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(framing.o)
                0x01e84554                ogg_stream_pagein
                0x01e840e4                ogg_sync_wrote
                0x01e83fbc                ogg_sync_reset
                0x01e83e74                ogg_page_granulepos
                0x01e84644                ogg_stream_reset
                0x01e84024                ogg_sync_bufferin
                0x01e84174                ogg_sync_pageseek
                0x01e83de4                ogg_page_continued
                0x01e846b8                ogg_stream_reset_serialno
                0x01e83f84                ogg_sync_create
                0x01e83f58                ogg_page_pageno
                0x01e84c0c                ogg_stream_packetout
                0x01e83db8                ogg_page_version
                0x01e83e44                ogg_page_eos
                0x01e83fec                ogg_sync_destroy
                0x01e846dc                ogg_packet_release
                0x01e844b8                ogg_stream_destroy
                0x01e84c14                ogg_stream_packetpeek
                0x01e84c1c                ogg_page_dup
                0x01e83e14                ogg_page_bos
                0x01e83f2c                ogg_page_serialno
                0x01e84140                ogg_page_release
                0x01e84494                ogg_stream_create
 .text          0x01e84c5c      0x76c
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
                0x01e84d18                vorbis_info_clear
                0x01e84e8c                vorbis_synthesis_headerin
                0x01e84cd8                vorbis_info_blocksize
                0x01e84ca8                vorbis_comment_clear
                0x01e84c9c                vorbis_comment_init
                0x01e84cec                vorbis_info_init
 .text          0x01e853c8      0xa40
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(res012.o)
                0x01e85ba8                res2_inverse
 .text          0x01e85e08      0xdf0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(sharedbook.o)
                0x01e85f18                vorbis_book_clear
                0x01e85e80                _book_maptype1_quantvals
                0x01e85f14                vorbis_staticbook_destroy
                0x01e85e08                _ilog
                0x01e85fd8                vorbis_book_init_decode
                0x01e85f08                vorbis_staticbook_clear
 .text          0x01e86bf8      0x2c8
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(synthesis.o)
                0x01e86e3c                vorbis_packet_blocksize
                0x01e86bf8                vorbis_synthesis
 .text          0x01e86ec0      0x1c0
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(window.o)
                0x01e86ec0                _vorbis_window
                0x01e86f64                _vorbis_apply_window
 .text          0x01e87080      0x610
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(bitwise.o)
                0x01e87080                oggpack_look_full
                0x01e87590                oggpack_readinit
                0x01e87368                oggpack_read
 .text          0x01e87690     0x4448
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(codebook.o)
                0x01e89dac                vorbis_book_decodev_add
                0x01e88e10                vorbis_book_decodevs_add
                0x01e8871c                vorbis_book_decode
                0x01e8ac1c                vorbis_book_decodev_set
                0x01e87690                vorbis_staticbook_unpack
                0x01e882ec                vorbis_book_decodevv_add
 .text          0x01e8bad8      0x974
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor0.o)
 .text          0x01e8c44c      0xa10
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor1.o)
 .text          0x01e8ce5c      0x824
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(mapping0.o)
 .text.codec_init
                0x01e8d680       0x44
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                0x01e8d680                codec_init
 .text.codec_set_replaygain
                0x01e8d6c4       0x6c
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                0x01e8d6c4                codec_set_replaygain
 .text.memcpy   0x01e8d730       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                0x01e8d730                memcpy
 .text.memset   0x01e8d754       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                0x01e8d754                memset
 .text.memcmp   0x01e8d778       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                0x01e8d778                memcmp
 .text.memchr   0x01e8d79c       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                0x01e8d79c                memchr
 .text.qsort    0x01e8d7c0       0x24
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                0x01e8d7c0                qsort
 .text          0x01e8d7e4       0x2c
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(setjmp_arm.o)
                0x01e8d7f8                longjmp
                0x01e8d7e4                setjmp
 .text          0x01e8d810      0x140
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
                0x01e8d810                __divsi3
                0x01e8d938                __aeabi_idivmod
 .text          0x01e8d950       0xe4
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
                0x01e8d950                __modsi3
 .text          0x01e8da34       0x1c
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
                0x01e8da34                __aeabi_ldivmod
 .text          0x01e8da50       0x80
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
                0x01e8da90                __gnu_uldivmod_helper
                0x01e8da50                __gnu_ldivmod_helper
 .text          0x01e8dad0      0x588
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
                0x01e8dad0                __divdi3
 .text          0x01e8e058      0x52c
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
                0x01e8e058                __udivdi3
 .text          0x01e8e584      0x110
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
                0x01e8e584                __udivsi3
                0x01e8e67c                __aeabi_uidivmod
 .text          0x01e8e694       0xcc
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)
                0x01e8e694                __umodsi3
 .text.stub     0x01e8e760       0x18 linker stubs
 *(.glue_7)
 .glue_7        0x00000000        0x0 linker stubs
 *(.glue_7t)
 .glue_7t       0x00000000        0x0 linker stubs

.vfp11_veneer   0x00000000        0x0 load address 0x01e8e778
 .vfp11_veneer  0x00000000        0x0 linker stubs

.v4_bx          0x00000000        0x0 load address 0x01e8e778
 .v4_bx         0x00000000        0x0 linker stubs

.rodata         0x01e8e778     0x8754
 *(.rodata*)
 .rodata        0x01e8e778      0x140
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
 .rodata.str1.4
                0x01e8e8b8        0x8
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
 .rodata        0x01e8e8c0     0x7f80
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(window.o)
 .rodata        0x01e96840      0x58c
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor0.o)
 .rodata        0x01e96dcc      0x100
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)
                0x01e96dcc                __clz_tab
                0x01e96ecc                . = ALIGN (0x4)

.data           0x01e96ecc        0xc
 *(.data*)
 .data          0x01e96ecc        0x4
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/codec_crt0.o
                0x01e96ecc                ci
                0x01e96ed8                . = (. + 0x8)
 *fill*         0x01e96ed0        0x8 00

.ncdata         0x11e96ed8        0x0 load address 0x01e96ed8
                0x11e96ee0                . = ALIGN (0x10)
 *(.ncdata*)
                0x11e96ee0                . = ALIGN (0x10)
                0x01e96ee0                iramcopy = (. - 0x10000000)

/DISCARD/
 *(.eh_frame)

.iram           0x4000c000     0x40d8 load address 0x01e96ed8
                0x4000c000                iramstart = .
 *(.icode)
 .icode         0x4000c000      0x69c
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
                0x4000c000                vorbis_synthesis_pcmout
                0x4000c078                vorbis_synthesis_blockin
 .icode         0x4000c69c      0xc28
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
                0x4000c69c                mdct_backward
 .icode         0x4000d2c4      0x4d8
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct_arm.o)
                0x4000d564                mdct_butterfly_generic_loop
                0x4000d3c0                mdct_butterfly_32
 *(.irodata)
 .irodata       0x4000d79c      0x400
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(framing.o)
 .irodata       0x4000db9c       0x18
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
                0x4000dba0                _residue_P
                0x4000db9c                _mapping_P
                0x4000dbac                _floor_P
 .irodata       0x4000dbb4       0x3c
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(res012.o)
                0x4000dbc8                residue1_exportbundle
                0x4000dbdc                residue0_exportbundle
                0x4000dbb4                residue2_exportbundle
 .irodata       0x4000dbf0       0x84
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(bitwise.o)
                0x4000dbf0                oggpack_mask
 .irodata       0x4000dc74       0x18
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor0.o)
                0x4000dc74                floor0_exportbundle
 .irodata       0x4000dc8c      0x418
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor1.o)
                0x4000dc8c                floor1_exportbundle
 .irodata       0x4000e0a4       0x14
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(mapping0.o)
                0x4000e0a4                mapping0_exportbundle
 .irodata       0x4000e0b8     0x2018
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
 .irodata.stub  0x400100d0        0x8 linker stubs
 *(.idata)
                0x400100d8                iramend = .

.ibss           0x400100e0     0xa420 load address 0x01e9afb8
                0x400100e0                iedata = .
 *(.ibss)
 .ibss          0x400100e0     0xa400
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(oggmalloc.o)
 .ibss          0x4001a4e0       0x18
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
 .ibss          0x4001a4f8        0x8
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(synthesis.o)
                0x4001a500                . = ALIGN (0x4)
                0x4001a500                iend = .

.bss            0x01e96ed8       0x7c
                0x01e96ed8                plugin_bss_start = .
 *(.bss*)
 .bss           0x01e96ed8        0x8
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(oggmalloc.o)
 .bss           0x01e96ee0        0x4
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(mapping0.o)
 *(COMMON)
 COMMON         0x01e96ee4       0x5c
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
                0x01e96ee4                rb_jump_buf
 COMMON         0x01e96f40       0x14
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
                0x01e96f40                bufsize
                0x01e96f44                mem_ptr
                0x01e96f48                mp3buf
                0x01e96f4c                mallocbuf
                0x01e96f50                filebuf
                0x01e96f54                . = ALIGN (0x4)

.ncbss          0x11e96f54        0xc load address 0x01e96f54
                0x11e96f60                . = ALIGN (0x10)
 *fill*         0x11e96f54        0xc 00
 *(.ncbss*)
                0x11e96f60                . = ALIGN (0x10)

.pluginend      0x01e96f60        0x0 load address 0x01e96f54
                0x01e96f60                _plugin_end_addr = .
                0x01e96f60                plugin_end_addr = .

.ARM.attributes
                0x00000000       0x20 load address 0x01e96f54
 .ARM.attributes
                0x00000000       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
 .ARM.attributes
                0x00000020       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/codec_crt0.o
 .ARM.attributes
                0x00000040       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
 .ARM.attributes
                0x00000060       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(oggmalloc.o)
 .ARM.attributes
                0x00000080       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
 .ARM.attributes
                0x000000a0       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(framing.o)
 .ARM.attributes
                0x000000c0       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
 .ARM.attributes
                0x000000e0       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
 .ARM.attributes
                0x00000100       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(res012.o)
 .ARM.attributes
                0x00000120       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(sharedbook.o)
 .ARM.attributes
                0x00000140       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(synthesis.o)
 .ARM.attributes
                0x00000160       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(window.o)
 .ARM.attributes
                0x00000180       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(bitwise.o)
 .ARM.attributes
                0x000001a0       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(codebook.o)
 .ARM.attributes
                0x000001c0       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor0.o)
 .ARM.attributes
                0x000001e0       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor1.o)
 .ARM.attributes
                0x00000200       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(mapping0.o)
 .ARM.attributes
                0x00000220       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .ARM.attributes
                0x00000240       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
 .ARM.attributes
                0x00000260       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct_arm.o)
 .ARM.attributes
                0x00000280       0x20
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(setjmp_arm.o)
 .ARM.attributes
                0x000002a0       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
 .ARM.attributes
                0x000002c0       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
 .ARM.attributes
                0x000002e0       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
 .ARM.attributes
                0x00000300       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .ARM.attributes
                0x00000320       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .ARM.attributes
                0x00000340       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .ARM.attributes
                0x00000360       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
 .ARM.attributes
                0x00000380       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)
 .ARM.attributes
                0x000003a0       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)

.comment        0x00000000      0x19e load address 0x01e96f54
 *(.comment)
 .comment       0x00000000       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.o
 .comment       0x00000012       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/codec_crt0.o
 .comment       0x00000024       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(vorbisfile.o)
 .comment       0x00000036       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(oggmalloc.o)
 .comment       0x00000048       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(block.o)
 .comment       0x0000005a       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(framing.o)
 .comment       0x0000006c       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(info.o)
 .comment       0x0000007e       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(registry.o)
 .comment       0x00000090       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(res012.o)
 .comment       0x000000a2       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(sharedbook.o)
 .comment       0x000000b4       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(synthesis.o)
 .comment       0x000000c6       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(window.o)
 .comment       0x000000d8       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(bitwise.o)
 .comment       0x000000ea       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(codebook.o)
 .comment       0x000000fc       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor0.o)
 .comment       0x0000010e       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(floor1.o)
 .comment       0x00000120       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libtremor.a(mapping0.o)
 .comment       0x00000132       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(codeclib.o)
 .comment       0x00000144       0x12
/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/libcodec.a(mdct2.o)
 .comment       0x00000156       0x12
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .comment       0x00000168       0x12
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .comment       0x0000017a       0x12
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .comment       0x0000018c       0x12
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)
OUTPUT(/home/chshrcat/build/rockbox-build/e200_firm/apps/codecs/vorbis.elf
elf32-littlearm)

.debug_line     0x00000000      0x4f0 load address 0x01e96f54
 .debug_line    0x00000000       0x95
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
 .debug_line    0x00000095       0x78
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
 .debug_line    0x0000010d       0x5d
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
 .debug_line    0x0000016a       0x63
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .debug_line    0x000001cd       0xf9
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .debug_line    0x000002c6       0xe4
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .debug_line    0x000003aa       0x89
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
 .debug_line    0x00000433       0x72
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)
 .debug_line    0x000004a5       0x4b
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)

.debug_info     0x00000000     0x118c load address 0x01e96f54
 .debug_info    0x00000000       0x87
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
 .debug_info    0x00000087       0x87
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
 .debug_info    0x0000010e       0x81
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
 .debug_info    0x0000018f       0xe6
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .debug_info    0x00000275      0x6c0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .debug_info    0x00000935      0x680
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .debug_info    0x00000fb5       0x87
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
 .debug_info    0x0000103c       0x87
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)
 .debug_info    0x000010c3       0xc9
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)

.debug_abbrev   0x00000000      0x443 load address 0x01e96f54
 .debug_abbrev  0x00000000       0x14
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
 .debug_abbrev  0x00000014       0x14
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
 .debug_abbrev  0x00000028       0x14
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
 .debug_abbrev  0x0000003c       0x6e
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .debug_abbrev  0x000000aa      0x197
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .debug_abbrev  0x00000241      0x179
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .debug_abbrev  0x000003ba       0x14
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
 .debug_abbrev  0x000003ce       0x14
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)
 .debug_abbrev  0x000003e2       0x61
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)

.debug_aranges  0x00000000      0x100 load address 0x01e96f54
 .debug_aranges
                0x00000000       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divsi3.o)
 .debug_aranges
                0x00000020       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_modsi3.o)
 .debug_aranges
                0x00000040       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_aeabi_ldivmod.o)
 .debug_aranges
                0x00000060       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .debug_aranges
                0x00000080       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .debug_aranges
                0x000000a0       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .debug_aranges
                0x000000c0       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivsi3.o)
 .debug_aranges
                0x000000e0       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_umodsi3.o)

.debug_frame    0x00000000       0xc8 load address 0x01e96f54
 .debug_frame   0x00000000       0x58
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .debug_frame   0x00000058       0x38
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .debug_frame   0x00000090       0x38
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)

.debug_loc      0x00000000     0x1543 load address 0x01e96f54
 .debug_loc     0x00000000      0x150
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .debug_loc     0x00000150      0xa61
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .debug_loc     0x00000bb1      0x992
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)

.debug_pubnames
                0x00000000       0xa4 load address 0x01e96f54
 .debug_pubnames
                0x00000000       0x45
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .debug_pubnames
                0x00000045       0x1f
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .debug_pubnames
                0x00000064       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
 .debug_pubnames
                0x00000084       0x20
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)

.debug_str      0x00000000      0x1c1 load address 0x01e96f54
 .debug_str     0x00000000       0xc7
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(bpabi.o)
 .debug_str     0x000000c7       0xf0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
                                0x1a6 (size before relaxing)
 .debug_str     0x000001b7        0xa
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
                                0x19d (size before relaxing)
 .debug_str     0x00000000      0x120
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_clz.o)

.debug_ranges   0x00000000      0x1d8 load address 0x01e96f54
 .debug_ranges  0x00000000       0xf0
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_divdi3.o)
 .debug_ranges  0x000000f0       0xe8
/home/chshrcat/rockbox-crossdev/4.0.3/arm-elf-eabi/lib/gcc/arm-elf-eabi/4.0.3/arm7tdmi/libgcc.a(_udivdi3.o)
Comment 1 Andrew Mahone 2009-07-17 11:00:02 UTC
I should add that only certain offsets produce this problem - it appears that it
triggers when the padding needed to reach the 16-byte alignment is 8 bytes. This
has been added in this case (. += 8), but depending on compile options it can
happen accidentally without that modification to the linker script.
Comment 2 Alan Modra 2010-01-13 03:09:45 UTC
I wonder why .ncdata has size zero in your map?  I would have expected

.ncdata         0x11e96ed8        0x8 load address 0x01e96ed8
                0x11e96ee0                . = ALIGN (0x10)
 *fill*         0x11e96ed8        0x8 00
 *(.ncdata*)
                0x11e96ee0                . = ALIGN (0x10)
                0x01e96ee0                iramcopy = (. - 0x10000000)

Note the fill and 0x8 for .ncdata section size.  This is what I got when I
cobbled together a testcase.  Hmm, my test didn't have any stubs.  Perhaps there
is a bug in the arm stub sizing?
Comment 3 Alan Modra 2010-01-13 04:33:40 UTC
Created attachment 4510 [details]
possible fix

I reckon this could be the same problem as one I fixed for ppc64 in
http://sourceware.org/ml/binutils/2005-09/msg00206.html where I removed
"stub_changed".  The logic involving "stub_changed" is suspect:  For example,
it's possible that a stub is needed on the first pass over sections, but isn't
on the second pass because addition of the first pass stubs changed section
placement sufficiently.
Comment 4 Alan Modra 2010-01-13 04:35:25 UTC
Please try out the fix against your sources.  I don't have arm compilers readily
available to test this out myself
Comment 5 Andrew Mahone 2010-05-22 07:08:44 UTC
Thanks, I'll try to get to rebuilding with this patch sometime this weekend.