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)
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.
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?
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.
Please try out the fix against your sources. I don't have arm compilers readily available to test this out myself
Thanks, I'll try to get to rebuilding with this patch sometime this weekend.
Closed due to lack of feedback.