ALIGN directive showing different behavior than documented
Sandra Loosemore
sandra@codesourcery.com
Sat Aug 1 19:38:00 GMT 2015
On 08/01/2015 01:41 AM, Alan Modra wrote:
>
> The change in ALIGN behaviour only affected those ". = ALIGN (8)"
> statements, not the align on the section here:
> .cs3.internalram : ALIGN (8)
> Yet the LMA for .cs3.internalram has changed. This indicates to me
> that something before the snippet you posted caused the problem.
Hmmmm, yes. Backing up a bit, I see that this in the linker script:
.rodata : ALIGN (4)
{
...
__cs3_regions_end = .;
. = ALIGN (8);
_etext = .;
} >rom
gives this map output without the patch:
0xa00003b8 __cs3_regions_end = .
0xa00003b8 . = ALIGN (0x8)
0xa00003b8 _etext = .
and this with it:
0xa00003b8 __cs3_regions_end = .
0xa00003bc . = ALIGN (0x8)
*fill* 0xa00003b8 0x4
0xa00003bc _etext = .
That ALIGN directive is definitely doing the wrong thing -- "." is
already aligned and inserting the fill is making it unaligned. :-(
> I'm not sure how the LMA is going backwards. Even if
> .cs3.internalram.bss was stripped from the output, it still should
> have its LMA updated on each phase of lang_size_sections. Can you
> post a complete testcase?
It'll take me a while to reduce the example to something standalone (not
requiring libraries, etc), but I've attached the full linker script and
map files. This is for arm-none-eabi target, BTW, but I don't think
that should matter in terms of linker script processing.
-Sandra
-------------- next part --------------
/* Linker script for Freescale i.MX31 ADS
*
* Version: Sourcery CodeBench 2015.11-999999 - Preview
* Support: https://supportnet.mentor.com/
*
* Copyright (c) 2007-2010 CodeSourcery, Inc.
* Copyright (c) 2010-2015 Mentor Graphics, Inc.
*
* The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided
* that existing copyright notices are retained in all copies and that this
* notice is included verbatim in any distributions. No written agreement,
* license, or royalty fee is required for any of the authorized uses.
* Modifications to this software may be copyrighted by their authors
* and need not follow the licensing terms described here, provided that
* the new terms are clearly indicated on the first page of each file where
* they apply.
*/
OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
ENTRY(__cs3_reset)
SEARCH_DIR(.)
GROUP(-lgcc -lc -lcs3 -lcs3unhosted -lcs3arm)
MEMORY
{
ram (rwx) : ORIGIN = 0x80000000, LENGTH = 128M
rom (rx) : ORIGIN = 0xa0000000, LENGTH = 32M
internalram (rwx) : ORIGIN = 0x1ffc0000, LENGTH = 16K
}
/* These force the linker to search for particular symbols from
* the start of the link process and thus ensure the user's
* overrides are picked up
*/
EXTERN(__cs3_reset __cs3_reset_imx31)
EXTERN(__cs3_start_asm _start)
/* Bring in the interrupt routines & vector */
INCLUDE arm-names.inc
EXTERN(__cs3_interrupt_vector_arm)
EXTERN(__cs3_start_c main __cs3_stack __cs3_heap_end)
/* Provide fall-back values */
PROVIDE(__cs3_heap_start = _end);
PROVIDE(__cs3_heap_end = __cs3_region_start_ram + __cs3_region_size_ram);
PROVIDE(__cs3_region_num = (__cs3_regions_end - __cs3_regions) / 20);
PROVIDE(__cs3_stack = __cs3_region_start_ram + __cs3_region_size_ram);
SECTIONS
{
.text :
{
CREATE_OBJECT_SYMBOLS
__cs3_region_start_rom = .;
_ftext = .;
*(.cs3.region-head.rom)
ASSERT (. == __cs3_region_start_rom, ".cs3.region-head.rom not permitted");
__cs3_interrupt_vector = __cs3_interrupt_vector_arm;
*(.cs3.interrupt_vector)
/* Make sure we pulled in an interrupt vector. */
ASSERT (. != __cs3_interrupt_vector_arm, "No interrupt vector");
PROVIDE(__cs3_reset = __cs3_reset_imx31);
*(.cs3.reset)
_start = DEFINED(__cs3_start_asm) ? __cs3_start_asm : _start;
*(.text.cs3.init)
*(.text .text.* .gnu.linkonce.t.*)
*(.plt)
*(.gnu.warning)
*(.glue_7t) *(.glue_7) *(.vfp11_veneer)
*(.ARM.extab* .gnu.linkonce.armextab.*)
*(.gcc_except_table)
} >rom
.eh_frame_hdr : ALIGN (4)
{
KEEP (*(.eh_frame_hdr))
*(.eh_frame_entry .eh_frame_entry.*)
} >rom
.eh_frame : ALIGN (4)
{
KEEP (*(.eh_frame)) *(.eh_frame.*)
} >rom
/* .ARM.exidx is sorted, so has to go in its own output section. */
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx :
{
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
} >rom
PROVIDE_HIDDEN (__exidx_end = .);
.note.gnu.build-id : ALIGN (4)
{
KEEP (*(.note.gnu.build-id))
} >rom
.rodata : ALIGN (4)
{
*(.rodata .rodata.* .gnu.linkonce.r.*)
. = ALIGN(4);
KEEP(*(.init))
. = ALIGN(4);
__preinit_array_start = .;
KEEP (*(.preinit_array))
__preinit_array_end = .;
. = ALIGN(4);
__init_array_start = .;
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array))
__init_array_end = .;
. = ALIGN(4);
KEEP(*(.fini))
. = ALIGN(4);
__fini_array_start = .;
KEEP (*(.fini_array))
KEEP (*(SORT(.fini_array.*)))
__fini_array_end = .;
. = ALIGN(0x4);
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*crtend.o(.ctors))
. = ALIGN(0x4);
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*crtend.o(.dtors))
. = ALIGN(4);
__cs3_regions = .;
LONG (0)
LONG (__cs3_region_init_ram)
LONG (__cs3_region_start_ram)
LONG (__cs3_region_init_size_ram)
LONG (__cs3_region_zero_size_ram)
LONG (0)
LONG (__cs3_region_init_internalram)
LONG (__cs3_region_start_internalram)
LONG (__cs3_region_init_size_internalram)
LONG (__cs3_region_zero_size_internalram)
__cs3_regions_end = .;
. = ALIGN (8);
*(.rom)
*(.rom.b .bss.rom)
_etext = .;
} >rom
/* __cs3_region_end_rom is deprecated */
__cs3_region_end_rom = __cs3_region_start_rom + LENGTH(rom);
__cs3_region_size_rom = LENGTH(rom);
ASSERT (!(__cs3_region_init_ram & 7), "__cs3_region_init_ram not aligned")
ASSERT (!(__cs3_region_start_ram & 7), "__cs3_region_start_ram not aligned")
ASSERT (!(__cs3_region_init_size_ram & 7), "__cs3_region_init_size_ram not aligned")
ASSERT (!(__cs3_region_zero_size_ram & 7), "__cs3_region_zero_size_ram not aligned")
ASSERT (!(__cs3_region_init_internalram & 7), "__cs3_region_init_internalram not aligned")
ASSERT (!(__cs3_region_start_internalram & 7), "__cs3_region_start_internalram not aligned")
ASSERT (!(__cs3_region_init_size_internalram & 7), "__cs3_region_init_size_internalram not aligned")
ASSERT (!(__cs3_region_zero_size_internalram & 7), "__cs3_region_zero_size_internalram not aligned")
.cs3.internalram : ALIGN (8)
{
__cs3_region_start_internalram = .;
*(.cs3.region-head.internalram)
*(.internalram)
. = ALIGN (8);
} >internalram AT>rom
.cs3.internalram.bss :
{
*(.internalram.b .bss.internalram)
. = ALIGN (8);
} >internalram AT>rom
/* __cs3_region_end_internalram is deprecated */
__cs3_region_end_internalram = __cs3_region_start_internalram + LENGTH(internalram);
__cs3_region_size_internalram = LENGTH(internalram);
__cs3_region_init_internalram = LOADADDR (.cs3.internalram);
__cs3_region_init_size_internalram = LOADADDR (.cs3.internalram.bss) - LOADADDR (.cs3.internalram);
__cs3_region_zero_size_internalram = SIZEOF(.cs3.internalram.bss);
.data : ALIGN (8)
{
__cs3_region_start_ram = .;
*(.cs3.region-head.ram)
KEEP(*(.jcr))
*(.shdata)
*(.data .data.* .gnu.linkonce.d.*)
*(.got.plt) *(.got)
. = ALIGN (8);
*(.ram)
. = ALIGN (8);
_edata = .;
} >ram AT>rom
.bss : ALIGN (8)
{
*(.shbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
*(.ram.b .bss.ram)
. = ALIGN (8);
_end = .;
__end = .;
} >ram AT>rom
/* __cs3_region_end_ram is deprecated */
__cs3_region_end_ram = __cs3_region_start_ram + LENGTH(ram);
__cs3_region_size_ram = LENGTH(ram);
__cs3_region_init_ram = LOADADDR (.data);
__cs3_region_init_size_ram = _edata - ADDR (.data);
__cs3_region_zero_size_ram = _end - _edata;
.stab 0 (NOLOAD) : { *(.stab) }
.stabstr 0 (NOLOAD) : { *(.stabstr) }
/* DWARF debug sections.
* Symbols in the DWARF debugging sections are relative to
* the beginning of the section so we begin them at 0.
*/
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* DWARF 2.1 */
.debug_ranges 0 : { *(.debug_ranges) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
.ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
/DISCARD/ : { *(.note.GNU-stack) }
}
/* checksum: f01255f3d42744333476c5550788 */
-------------- next part --------------
Archive member included to satisfy reference by file (symbol)
./libcs3.a(start_c.o) (__cs3_start_c)
./libcs3.a(imx31-reset.o) (__cs3_reset_imx31)
./libcs3unhosted.a(unhosted-start.o)
./libcs3.a(imx31-reset.o) (_start)
./libcs3arm.a(arm-vector.o) (__cs3_interrupt_vector_arm)
./libcs3arm.a(arm_isr_interrupt.o)
./libcs3arm.a(arm-vector.o) (__cs3_isr_reserved)
./libcs3arm.a(arm_isr_undef.o)
./libcs3arm.a(arm-vector.o) (__cs3_isr_undef)
./libcs3arm.a(arm_isr_swi.o) ./libcs3arm.a(arm-vector.o) (__cs3_isr_swi)
./libcs3arm.a(arm_isr_pabort.o)
./libcs3arm.a(arm-vector.o) (__cs3_isr_pabort)
./libcs3arm.a(arm_isr_dabort.o)
./libcs3arm.a(arm-vector.o) (__cs3_isr_dabort)
./libcs3arm.a(arm_isr_irq.o) ./libcs3arm.a(arm-vector.o) (__cs3_isr_irq)
./libcs3arm.a(arm_isr_fiq.o) ./libcs3arm.a(arm-vector.o) (__cs3_isr_fiq)
/scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
./libcs3.a(start_c.o) (__libc_init_array)
Memory Configuration
Name Origin Length Attributes
ram 0x80000000 0x08000000 xrw
rom 0xa0000000 0x02000000 xr
internalram 0x1ffc0000 0x00004000 xrw
*default* 0x00000000 0xffffffff
Linker script and memory map
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
LOAD main.o
START GROUP
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/libgcc.a
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a
END GROUP
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
START GROUP
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/libgcc.a
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a
LOAD ./libcs3.a
LOAD ./libcs3unhosted.a
LOAD ./libcs3arm.a
END GROUP
[!provide] PROVIDE (__cs3_heap_start, _end)
0x88000000 PROVIDE (__cs3_heap_end, (__cs3_region_start_ram + __cs3_region_size_ram))
0x00000002 PROVIDE (__cs3_region_num, ((__cs3_regions_end - __cs3_regions) / 0x14))
0x88000000 PROVIDE (__cs3_stack, (__cs3_region_start_ram + __cs3_region_size_ram))
.text 0xa0000000 0x350
CREATE_OBJECT_SYMBOLS
0xa0000000 __cs3_region_start_rom = .
0xa0000000 _ftext = .
*(.cs3.region-head.rom)
0x00000001 ASSERT ((. == __cs3_region_start_rom), .cs3.region-head.rom not permitted)
0xa0000000 __cs3_interrupt_vector = __cs3_interrupt_vector_arm
*(.cs3.interrupt_vector)
.cs3.interrupt_vector
0xa0000000 0x40 ./libcs3arm.a(arm-vector.o)
0xa0000000 __cs3_interrupt_vector_arm
0x00000001 ASSERT ((. != __cs3_interrupt_vector_arm), No interrupt vector)
0xa0000040 PROVIDE (__cs3_reset, __cs3_reset_imx31)
*(.cs3.reset)
.cs3.reset 0xa0000040 0x4 ./libcs3.a(imx31-reset.o)
0xa0000040 __cs3_reset_imx31
[0xa00000d8] _start = DEFINED (__cs3_start_asm)?__cs3_start_asm:_start
*(.text.cs3.init)
.text.cs3.init
0xa0000044 0x94 ./libcs3.a(start_c.o)
0xa0000044 __cs3_start_c
.text.cs3.init
0xa00000d8 0xc ./libcs3unhosted.a(unhosted-start.o)
*(.text .text.* .gnu.linkonce.t.*)
.text 0xa00000e4 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
.text 0xa00000e4 0x108 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.text 0xa00001ec 0x0 main.o
.text.startup 0xa00001ec 0x8 main.o
0xa00001ec main
.text 0xa00001f4 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.text 0xa00001f4 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
.text 0xa00001f4 0x4c ./libcs3.a(start_c.o)
0xa00001f4 __cs3_premain
.text 0xa0000240 0x6c ./libcs3.a(imx31-reset.o)
.text 0xa00002ac 0x0 ./libcs3unhosted.a(unhosted-start.o)
.text 0xa00002ac 0x0 ./libcs3arm.a(arm-vector.o)
.text 0xa00002ac 0x4 ./libcs3arm.a(arm_isr_interrupt.o)
0xa00002ac __cs3_isr_interrupt
0xa00002ac __cs3_isr_reserved
.text 0xa00002b0 0x4 ./libcs3arm.a(arm_isr_undef.o)
0xa00002b0 __cs3_isr_undef
.text 0xa00002b4 0x4 ./libcs3arm.a(arm_isr_swi.o)
0xa00002b4 __cs3_isr_swi
.text 0xa00002b8 0x4 ./libcs3arm.a(arm_isr_pabort.o)
0xa00002b8 __cs3_isr_pabort
.text 0xa00002bc 0x4 ./libcs3arm.a(arm_isr_dabort.o)
0xa00002bc __cs3_isr_dabort
.text 0xa00002c0 0x4 ./libcs3arm.a(arm_isr_irq.o)
0xa00002c0 __cs3_isr_irq
.text 0xa00002c4 0x4 ./libcs3arm.a(arm_isr_fiq.o)
0xa00002c4 __cs3_isr_fiq
.text 0xa00002c8 0x88 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
0xa00002c8 __libc_init_array
*(.plt)
*(.gnu.warning)
*(.glue_7t)
.glue_7t 0xa0000350 0x0 linker stubs
*(.glue_7)
.glue_7 0xa0000350 0x0 linker stubs
*(.vfp11_veneer)
.vfp11_veneer 0xa0000350 0x0 linker stubs
*(.ARM.extab* .gnu.linkonce.armextab.*)
*(.gcc_except_table)
.v4_bx 0xa0000350 0x0
.v4_bx 0xa0000350 0x0 linker stubs
.iplt 0xa0000350 0x0
.iplt 0xa0000350 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.eh_frame_hdr
*(.eh_frame_hdr)
*(.eh_frame_entry .eh_frame_entry.*)
.eh_frame 0xa0000350 0x4
*(.eh_frame)
.eh_frame 0xa0000350 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.eh_frame 0xa0000350 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
*(.eh_frame.*)
[!provide] PROVIDE (__exidx_start, .)
.rel.dyn 0xa0000354 0x0
.rel.iplt 0xa0000354 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.ARM.exidx
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
[!provide] PROVIDE (__exidx_end, .)
.note.gnu.build-id
*(.note.gnu.build-id)
.rodata 0xa0000354 0x68
*(.rodata .rodata.* .gnu.linkonce.r.*)
0xa0000354 . = ALIGN (0x4)
*(.init)
.init 0xa0000354 0xc /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
0xa0000354 _init
.init 0xa0000360 0xc /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
0xa000036c . = ALIGN (0x4)
0xa000036c __preinit_array_start = .
*(.preinit_array)
.preinit_array
0xa000036c 0x4 ./libcs3.a(imx31-reset.o)
0xa0000370 __preinit_array_end = .
0xa0000370 . = ALIGN (0x4)
0xa0000370 __init_array_start = .
*(SORT(.init_array.*))
*(.init_array)
.init_array 0xa0000370 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
0xa0000374 __init_array_end = .
0xa0000374 . = ALIGN (0x4)
*(.fini)
.fini 0xa0000374 0xc /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
0xa0000374 _fini
.fini 0xa0000380 0xc /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
0xa000038c . = ALIGN (0x4)
0xa000038c __fini_array_start = .
*(.fini_array)
.fini_array 0xa000038c 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
*(SORT(.fini_array.*))
0xa0000390 __fini_array_end = .
0xa0000390 . = ALIGN (0x4)
*crtbegin.o(.ctors)
*(EXCLUDE_FILE(*crtend.o) .ctors)
*(SORT(.ctors.*))
*crtend.o(.ctors)
0xa0000390 . = ALIGN (0x4)
*crtbegin.o(.dtors)
*(EXCLUDE_FILE(*crtend.o) .dtors)
*(SORT(.dtors.*))
*crtend.o(.dtors)
0xa0000390 . = ALIGN (0x4)
0xa0000390 __cs3_regions = .
0xa0000390 0x4 LONG 0x0
0xa0000394 0x4 LONG 0xa00003c0 __cs3_region_init_ram
0xa0000398 0x4 LONG 0x80000000 __cs3_region_start_ram
0xa000039c 0x4 LONG 0x8 __cs3_region_init_size_ram
0xa00003a0 0x4 LONG 0x20 __cs3_region_zero_size_ram
0xa00003a4 0x4 LONG 0x0
0xa00003a8 0x4 LONG 0xa00003c0 __cs3_region_init_internalram
0xa00003ac 0x4 LONG 0x1ffc0000 __cs3_region_start_internalram
0xa00003b0 0x4 LONG 0xfffffffc __cs3_region_init_size_internalram
0xa00003b4 0x4 LONG 0x0 __cs3_region_zero_size_internalram
0xa00003b8 __cs3_regions_end = .
0xa00003bc . = ALIGN (0x8)
*fill* 0xa00003b8 0x4
*(.rom)
*(.rom.b .bss.rom)
0xa00003bc _etext = .
0xa2000000 __cs3_region_end_rom = (__cs3_region_start_rom + LENGTH (rom))
0x02000000 __cs3_region_size_rom = LENGTH (rom)
0x00000001 ASSERT (! ((__cs3_region_init_ram & 0x7)), __cs3_region_init_ram not aligned)
0x00000001 ASSERT (! ((__cs3_region_start_ram & 0x7)), __cs3_region_start_ram not aligned)
0x00000001 ASSERT (! ((__cs3_region_init_size_ram & 0x7)), __cs3_region_init_size_ram not aligned)
0x00000001 ASSERT (! ((__cs3_region_zero_size_ram & 0x7)), __cs3_region_zero_size_ram not aligned)
0x00000001 ASSERT (! ((__cs3_region_init_internalram & 0x7)), __cs3_region_init_internalram not aligned)
0x00000001 ASSERT (! ((__cs3_region_start_internalram & 0x7)), __cs3_region_start_internalram not aligned)
0x00000000 ASSERT (! ((__cs3_region_init_size_internalram & 0x7)), __cs3_region_init_size_internalram not aligned)
0x00000001 ASSERT (! ((__cs3_region_zero_size_internalram & 0x7)), __cs3_region_zero_size_internalram not aligned)
.cs3.internalram
0x1ffc0000 0x0 load address 0xa00003c0
0x1ffc0000 __cs3_region_start_internalram = .
*(.cs3.region-head.internalram)
*(.internalram)
0x1ffc0000 . = ALIGN (0x8)
.cs3.internalram.bss
0x1ffc0000 0x0 load address 0xa00003bc
*(.internalram.b .bss.internalram)
0x1ffc0000 . = ALIGN (0x8)
0x1ffc4000 __cs3_region_end_internalram = (__cs3_region_start_internalram + LENGTH (internalram))
0x00004000 __cs3_region_size_internalram = LENGTH (internalram)
0xa00003c0 __cs3_region_init_internalram = LOADADDR (.cs3.internalram)
0xfffffffc __cs3_region_init_size_internalram = (LOADADDR (.cs3.internalram.bss) - LOADADDR (.cs3.internalram))
0x00000000 __cs3_region_zero_size_internalram = SIZEOF (.cs3.internalram.bss)
.data 0x80000000 0x8 load address 0xa00003c0
0x80000000 __cs3_region_start_ram = .
*(.cs3.region-head.ram)
*(.jcr)
.jcr 0x80000000 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.jcr 0x80000000 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
*(.shdata)
*(.data .data.* .gnu.linkonce.d.*)
.data 0x80000004 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
.data 0x80000004 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
0x80000004 __dso_handle
.data 0x80000008 0x0 main.o
.data 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.data 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
.data 0x80000008 0x0 ./libcs3.a(start_c.o)
.data 0x80000008 0x0 ./libcs3.a(imx31-reset.o)
.data 0x80000008 0x0 ./libcs3unhosted.a(unhosted-start.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm-vector.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_interrupt.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_undef.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_swi.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_pabort.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_dabort.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_irq.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_fiq.o)
.data 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
*(.got.plt)
*(.got)
0x80000008 . = ALIGN (0x8)
*(.ram)
0x80000008 . = ALIGN (0x8)
0x80000008 _edata = .
.tm_clone_table
0x80000008 0x0 load address 0xa00003c8
.tm_clone_table
0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.tm_clone_table
0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.igot.plt 0x80000008 0x0 load address 0xa00003c8
.igot.plt 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.bss 0x80000008 0x20 load address 0xa00003c8
*(.shbss)
*(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
.bss 0x80000008 0x1c /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.bss 0x80000024 0x0 main.o
.bss 0x80000024 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.bss 0x80000024 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
.bss 0x80000024 0x0 ./libcs3.a(start_c.o)
.bss 0x80000024 0x0 ./libcs3.a(imx31-reset.o)
.bss 0x80000024 0x0 ./libcs3unhosted.a(unhosted-start.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm-vector.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_interrupt.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_undef.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_swi.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_pabort.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_dabort.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_irq.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_fiq.o)
.bss 0x80000024 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
*(COMMON)
0x80000028 . = ALIGN (0x8)
*fill* 0x80000024 0x4
*(.ram.b .bss.ram)
0x80000028 . = ALIGN (0x8)
0x80000028 _end = .
0x80000028 __end = .
0x88000000 __cs3_region_end_ram = (__cs3_region_start_ram + LENGTH (ram))
0x08000000 __cs3_region_size_ram = LENGTH (ram)
0xa00003c0 __cs3_region_init_ram = LOADADDR (.data)
0x00000008 __cs3_region_init_size_ram = (_edata - ADDR (.data))
0x00000020 __cs3_region_zero_size_ram = (_end - _edata)
.stab
*(.stab)
.stabstr
*(.stabstr)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x190
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 main.o
.debug_aranges
0x00000020 0x28 ./libcs3.a(start_c.o)
.debug_aranges
0x00000048 0x28 ./libcs3.a(imx31-reset.o)
.debug_aranges
0x00000070 0x20 ./libcs3unhosted.a(unhosted-start.o)
.debug_aranges
0x00000090 0x20 ./libcs3arm.a(arm-vector.o)
.debug_aranges
0x000000b0 0x20 ./libcs3arm.a(arm_isr_interrupt.o)
.debug_aranges
0x000000d0 0x20 ./libcs3arm.a(arm_isr_undef.o)
.debug_aranges
0x000000f0 0x20 ./libcs3arm.a(arm_isr_swi.o)
.debug_aranges
0x00000110 0x20 ./libcs3arm.a(arm_isr_pabort.o)
.debug_aranges
0x00000130 0x20 ./libcs3arm.a(arm_isr_dabort.o)
.debug_aranges
0x00000150 0x20 ./libcs3arm.a(arm_isr_irq.o)
.debug_aranges
0x00000170 0x20 ./libcs3arm.a(arm_isr_fiq.o)
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0x984
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x3e main.o
.debug_info 0x0000003e 0x222 ./libcs3.a(start_c.o)
.debug_info 0x00000260 0xb6 ./libcs3.a(imx31-reset.o)
.debug_info 0x00000316 0xb4 ./libcs3unhosted.a(unhosted-start.o)
.debug_info 0x000003ca 0xb9 ./libcs3arm.a(arm-vector.o)
.debug_info 0x00000483 0xb7 ./libcs3arm.a(arm_isr_interrupt.o)
.debug_info 0x0000053a 0xb7 ./libcs3arm.a(arm_isr_undef.o)
.debug_info 0x000005f1 0xb7 ./libcs3arm.a(arm_isr_swi.o)
.debug_info 0x000006a8 0xb7 ./libcs3arm.a(arm_isr_pabort.o)
.debug_info 0x0000075f 0xb7 ./libcs3arm.a(arm_isr_dabort.o)
.debug_info 0x00000816 0xb7 ./libcs3arm.a(arm_isr_irq.o)
.debug_info 0x000008cd 0xb7 ./libcs3arm.a(arm_isr_fiq.o)
.debug_abbrev 0x00000000 0x1f6
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x35 main.o
.debug_abbrev 0x00000035 0xfb ./libcs3.a(start_c.o)
.debug_abbrev 0x00000130 0x12 ./libcs3.a(imx31-reset.o)
.debug_abbrev 0x00000142 0x14 ./libcs3unhosted.a(unhosted-start.o)
.debug_abbrev 0x00000156 0x14 ./libcs3arm.a(arm-vector.o)
.debug_abbrev 0x0000016a 0x14 ./libcs3arm.a(arm_isr_interrupt.o)
.debug_abbrev 0x0000017e 0x14 ./libcs3arm.a(arm_isr_undef.o)
.debug_abbrev 0x00000192 0x14 ./libcs3arm.a(arm_isr_swi.o)
.debug_abbrev 0x000001a6 0x14 ./libcs3arm.a(arm_isr_pabort.o)
.debug_abbrev 0x000001ba 0x14 ./libcs3arm.a(arm_isr_dabort.o)
.debug_abbrev 0x000001ce 0x14 ./libcs3arm.a(arm_isr_irq.o)
.debug_abbrev 0x000001e2 0x14 ./libcs3arm.a(arm_isr_fiq.o)
.debug_line 0x00000000 0x56d
*(.debug_line)
.debug_line 0x00000000 0x5d main.o
.debug_line 0x0000005d 0x103 ./libcs3.a(start_c.o)
.debug_line 0x00000160 0x90 ./libcs3.a(imx31-reset.o)
.debug_line 0x000001f0 0x61 ./libcs3unhosted.a(unhosted-start.o)
.debug_line 0x00000251 0x6b ./libcs3arm.a(arm-vector.o)
.debug_line 0x000002bc 0x62 ./libcs3arm.a(arm_isr_interrupt.o)
.debug_line 0x0000031e 0x62 ./libcs3arm.a(arm_isr_undef.o)
.debug_line 0x00000380 0x62 ./libcs3arm.a(arm_isr_swi.o)
.debug_line 0x000003e2 0x62 ./libcs3arm.a(arm_isr_pabort.o)
.debug_line 0x00000444 0x63 ./libcs3arm.a(arm_isr_dabort.o)
.debug_line 0x000004a7 0x63 ./libcs3arm.a(arm_isr_irq.o)
.debug_line 0x0000050a 0x63 ./libcs3arm.a(arm_isr_fiq.o)
.debug_frame 0x00000000 0x94
*(.debug_frame)
.debug_frame 0x00000000 0x20 main.o
.debug_frame 0x00000020 0x40 ./libcs3.a(start_c.o)
.debug_frame 0x00000060 0x34 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
.debug_str 0x00000000 0x568
*(.debug_str)
.debug_str 0x00000000 0x22a main.o
0x22f (size before relaxing)
.debug_str 0x0000022a 0x33e ./libcs3.a(start_c.o)
0x367 (size before relaxing)
.debug_loc 0x00000000 0x146
*(.debug_loc)
.debug_loc 0x00000000 0x146 ./libcs3.a(start_c.o)
.debug_macinfo
*(.debug_macinfo)
.debug_ranges 0x00000000 0x60
*(.debug_ranges)
.debug_ranges 0x00000000 0x10 main.o
.debug_ranges 0x00000010 0x30 ./libcs3.a(start_c.o)
.debug_ranges 0x00000040 0x20 ./libcs3.a(imx31-reset.o)
.comment 0x00000000 0x42
.comment 0x00000000 0x42 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
0x43 (size before relaxing)
.comment 0x00000042 0x43 main.o
.comment 0x00000042 0x43 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.comment 0x00000042 0x43 ./libcs3.a(start_c.o)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.note.gnu.arm.ident
*(.note.gnu.arm.ident)
.ARM.attributes
0x00000000 0x31
*(.ARM.attributes)
.ARM.attributes
0x00000000 0x16 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
.ARM.attributes
0x00000016 0x30 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.ARM.attributes
0x00000046 0x30 main.o
.ARM.attributes
0x00000076 0x30 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.ARM.attributes
0x000000a6 0x18 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
.ARM.attributes
0x000000be 0x30 ./libcs3.a(start_c.o)
.ARM.attributes
0x000000ee 0x25 ./libcs3.a(imx31-reset.o)
.ARM.attributes
0x00000113 0x14 ./libcs3unhosted.a(unhosted-start.o)
.ARM.attributes
0x00000127 0x17 ./libcs3arm.a(arm-vector.o)
.ARM.attributes
0x0000013e 0x1a ./libcs3arm.a(arm_isr_interrupt.o)
.ARM.attributes
0x00000158 0x1a ./libcs3arm.a(arm_isr_undef.o)
.ARM.attributes
0x00000172 0x1a ./libcs3arm.a(arm_isr_swi.o)
.ARM.attributes
0x0000018c 0x1a ./libcs3arm.a(arm_isr_pabort.o)
.ARM.attributes
0x000001a6 0x1a ./libcs3arm.a(arm_isr_dabort.o)
.ARM.attributes
0x000001c0 0x1a ./libcs3arm.a(arm_isr_irq.o)
.ARM.attributes
0x000001da 0x1a ./libcs3arm.a(arm_isr_fiq.o)
.ARM.attributes
0x000001f4 0x30 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
/DISCARD/
*(.note.GNU-stack)
OUTPUT(check-imx31-rom.ld elf32-littlearm)
-------------- next part --------------
Archive member included to satisfy reference by file (symbol)
./libcs3.a(start_c.o) (__cs3_start_c)
./libcs3.a(imx31-reset.o) (__cs3_reset_imx31)
./libcs3unhosted.a(unhosted-start.o)
./libcs3.a(imx31-reset.o) (_start)
./libcs3arm.a(arm-vector.o) (__cs3_interrupt_vector_arm)
./libcs3arm.a(arm_isr_interrupt.o)
./libcs3arm.a(arm-vector.o) (__cs3_isr_reserved)
./libcs3arm.a(arm_isr_undef.o)
./libcs3arm.a(arm-vector.o) (__cs3_isr_undef)
./libcs3arm.a(arm_isr_swi.o) ./libcs3arm.a(arm-vector.o) (__cs3_isr_swi)
./libcs3arm.a(arm_isr_pabort.o)
./libcs3arm.a(arm-vector.o) (__cs3_isr_pabort)
./libcs3arm.a(arm_isr_dabort.o)
./libcs3arm.a(arm-vector.o) (__cs3_isr_dabort)
./libcs3arm.a(arm_isr_irq.o) ./libcs3arm.a(arm-vector.o) (__cs3_isr_irq)
./libcs3arm.a(arm_isr_fiq.o) ./libcs3arm.a(arm-vector.o) (__cs3_isr_fiq)
/scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
./libcs3.a(start_c.o) (__libc_init_array)
Memory Configuration
Name Origin Length Attributes
ram 0x80000000 0x08000000 xrw
rom 0xa0000000 0x02000000 xr
internalram 0x1ffc0000 0x00004000 xrw
*default* 0x00000000 0xffffffff
Linker script and memory map
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
LOAD main.o
START GROUP
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/libgcc.a
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a
END GROUP
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
START GROUP
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/libgcc.a
LOAD /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a
LOAD ./libcs3.a
LOAD ./libcs3unhosted.a
LOAD ./libcs3arm.a
END GROUP
[!provide] PROVIDE (__cs3_heap_start, _end)
0x88000000 PROVIDE (__cs3_heap_end, (__cs3_region_start_ram + __cs3_region_size_ram))
0x00000002 PROVIDE (__cs3_region_num, ((__cs3_regions_end - __cs3_regions) / 0x14))
0x88000000 PROVIDE (__cs3_stack, (__cs3_region_start_ram + __cs3_region_size_ram))
.text 0xa0000000 0x350
CREATE_OBJECT_SYMBOLS
0xa0000000 __cs3_region_start_rom = .
0xa0000000 _ftext = .
*(.cs3.region-head.rom)
0x00000001 ASSERT ((. == __cs3_region_start_rom), .cs3.region-head.rom not permitted)
0xa0000000 __cs3_interrupt_vector = __cs3_interrupt_vector_arm
*(.cs3.interrupt_vector)
.cs3.interrupt_vector
0xa0000000 0x40 ./libcs3arm.a(arm-vector.o)
0xa0000000 __cs3_interrupt_vector_arm
0x00000001 ASSERT ((. != __cs3_interrupt_vector_arm), No interrupt vector)
0xa0000040 PROVIDE (__cs3_reset, __cs3_reset_imx31)
*(.cs3.reset)
.cs3.reset 0xa0000040 0x4 ./libcs3.a(imx31-reset.o)
0xa0000040 __cs3_reset_imx31
[0xa00000d8] _start = DEFINED (__cs3_start_asm)?__cs3_start_asm:_start
*(.text.cs3.init)
.text.cs3.init
0xa0000044 0x94 ./libcs3.a(start_c.o)
0xa0000044 __cs3_start_c
.text.cs3.init
0xa00000d8 0xc ./libcs3unhosted.a(unhosted-start.o)
*(.text .text.* .gnu.linkonce.t.*)
.text 0xa00000e4 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
.text 0xa00000e4 0x108 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.text 0xa00001ec 0x0 main.o
.text.startup 0xa00001ec 0x8 main.o
0xa00001ec main
.text 0xa00001f4 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.text 0xa00001f4 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
.text 0xa00001f4 0x4c ./libcs3.a(start_c.o)
0xa00001f4 __cs3_premain
.text 0xa0000240 0x6c ./libcs3.a(imx31-reset.o)
.text 0xa00002ac 0x0 ./libcs3unhosted.a(unhosted-start.o)
.text 0xa00002ac 0x0 ./libcs3arm.a(arm-vector.o)
.text 0xa00002ac 0x4 ./libcs3arm.a(arm_isr_interrupt.o)
0xa00002ac __cs3_isr_interrupt
0xa00002ac __cs3_isr_reserved
.text 0xa00002b0 0x4 ./libcs3arm.a(arm_isr_undef.o)
0xa00002b0 __cs3_isr_undef
.text 0xa00002b4 0x4 ./libcs3arm.a(arm_isr_swi.o)
0xa00002b4 __cs3_isr_swi
.text 0xa00002b8 0x4 ./libcs3arm.a(arm_isr_pabort.o)
0xa00002b8 __cs3_isr_pabort
.text 0xa00002bc 0x4 ./libcs3arm.a(arm_isr_dabort.o)
0xa00002bc __cs3_isr_dabort
.text 0xa00002c0 0x4 ./libcs3arm.a(arm_isr_irq.o)
0xa00002c0 __cs3_isr_irq
.text 0xa00002c4 0x4 ./libcs3arm.a(arm_isr_fiq.o)
0xa00002c4 __cs3_isr_fiq
.text 0xa00002c8 0x88 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
0xa00002c8 __libc_init_array
*(.plt)
*(.gnu.warning)
*(.glue_7t)
.glue_7t 0xa0000350 0x0 linker stubs
*(.glue_7)
.glue_7 0xa0000350 0x0 linker stubs
*(.vfp11_veneer)
.vfp11_veneer 0xa0000350 0x0 linker stubs
*(.ARM.extab* .gnu.linkonce.armextab.*)
*(.gcc_except_table)
.v4_bx 0xa0000350 0x0
.v4_bx 0xa0000350 0x0 linker stubs
.iplt 0xa0000350 0x0
.iplt 0xa0000350 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.eh_frame_hdr
*(.eh_frame_hdr)
*(.eh_frame_entry .eh_frame_entry.*)
.eh_frame 0xa0000350 0x4
*(.eh_frame)
.eh_frame 0xa0000350 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.eh_frame 0xa0000350 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
*(.eh_frame.*)
[!provide] PROVIDE (__exidx_start, .)
.rel.dyn 0xa0000354 0x0
.rel.iplt 0xa0000354 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.ARM.exidx
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
[!provide] PROVIDE (__exidx_end, .)
.note.gnu.build-id
*(.note.gnu.build-id)
.rodata 0xa0000354 0x64
*(.rodata .rodata.* .gnu.linkonce.r.*)
0xa0000354 . = ALIGN (0x4)
*(.init)
.init 0xa0000354 0xc /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
0xa0000354 _init
.init 0xa0000360 0xc /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
0xa000036c . = ALIGN (0x4)
0xa000036c __preinit_array_start = .
*(.preinit_array)
.preinit_array
0xa000036c 0x4 ./libcs3.a(imx31-reset.o)
0xa0000370 __preinit_array_end = .
0xa0000370 . = ALIGN (0x4)
0xa0000370 __init_array_start = .
*(SORT(.init_array.*))
*(.init_array)
.init_array 0xa0000370 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
0xa0000374 __init_array_end = .
0xa0000374 . = ALIGN (0x4)
*(.fini)
.fini 0xa0000374 0xc /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
0xa0000374 _fini
.fini 0xa0000380 0xc /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
0xa000038c . = ALIGN (0x4)
0xa000038c __fini_array_start = .
*(.fini_array)
.fini_array 0xa000038c 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
*(SORT(.fini_array.*))
0xa0000390 __fini_array_end = .
0xa0000390 . = ALIGN (0x4)
*crtbegin.o(.ctors)
*(EXCLUDE_FILE(*crtend.o) .ctors)
*(SORT(.ctors.*))
*crtend.o(.ctors)
0xa0000390 . = ALIGN (0x4)
*crtbegin.o(.dtors)
*(EXCLUDE_FILE(*crtend.o) .dtors)
*(SORT(.dtors.*))
*crtend.o(.dtors)
0xa0000390 . = ALIGN (0x4)
0xa0000390 __cs3_regions = .
0xa0000390 0x4 LONG 0x0
0xa0000394 0x4 LONG 0xa00003b8 __cs3_region_init_ram
0xa0000398 0x4 LONG 0x80000000 __cs3_region_start_ram
0xa000039c 0x4 LONG 0x8 __cs3_region_init_size_ram
0xa00003a0 0x4 LONG 0x20 __cs3_region_zero_size_ram
0xa00003a4 0x4 LONG 0x0
0xa00003a8 0x4 LONG 0xa00003b8 __cs3_region_init_internalram
0xa00003ac 0x4 LONG 0x1ffc0000 __cs3_region_start_internalram
0xa00003b0 0x4 LONG 0x0 __cs3_region_init_size_internalram
0xa00003b4 0x4 LONG 0x0 __cs3_region_zero_size_internalram
0xa00003b8 __cs3_regions_end = .
0xa00003b8 . = ALIGN (0x8)
*(.rom)
*(.rom.b .bss.rom)
0xa00003b8 _etext = .
0xa2000000 __cs3_region_end_rom = (__cs3_region_start_rom + LENGTH (rom))
0x02000000 __cs3_region_size_rom = LENGTH (rom)
0x00000001 ASSERT (! ((__cs3_region_init_ram & 0x7)), __cs3_region_init_ram not aligned)
0x00000001 ASSERT (! ((__cs3_region_start_ram & 0x7)), __cs3_region_start_ram not aligned)
0x00000001 ASSERT (! ((__cs3_region_init_size_ram & 0x7)), __cs3_region_init_size_ram not aligned)
0x00000001 ASSERT (! ((__cs3_region_zero_size_ram & 0x7)), __cs3_region_zero_size_ram not aligned)
0x00000001 ASSERT (! ((__cs3_region_init_internalram & 0x7)), __cs3_region_init_internalram not aligned)
0x00000001 ASSERT (! ((__cs3_region_start_internalram & 0x7)), __cs3_region_start_internalram not aligned)
0x00000001 ASSERT (! ((__cs3_region_init_size_internalram & 0x7)), __cs3_region_init_size_internalram not aligned)
0x00000001 ASSERT (! ((__cs3_region_zero_size_internalram & 0x7)), __cs3_region_zero_size_internalram not aligned)
.cs3.internalram
0x1ffc0000 0x0 load address 0xa00003b8
0x1ffc0000 __cs3_region_start_internalram = .
*(.cs3.region-head.internalram)
*(.internalram)
0x1ffc0000 . = ALIGN (0x8)
.cs3.internalram.bss
0x1ffc0000 0x0 load address 0xa00003b8
*(.internalram.b .bss.internalram)
0x1ffc0000 . = ALIGN (0x8)
0x1ffc4000 __cs3_region_end_internalram = (__cs3_region_start_internalram + LENGTH (internalram))
0x00004000 __cs3_region_size_internalram = LENGTH (internalram)
0xa00003b8 __cs3_region_init_internalram = LOADADDR (.cs3.internalram)
0x00000000 __cs3_region_init_size_internalram = (LOADADDR (.cs3.internalram.bss) - LOADADDR (.cs3.internalram))
0x00000000 __cs3_region_zero_size_internalram = SIZEOF (.cs3.internalram.bss)
.data 0x80000000 0x8 load address 0xa00003b8
0x80000000 __cs3_region_start_ram = .
*(.cs3.region-head.ram)
*(.jcr)
.jcr 0x80000000 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.jcr 0x80000000 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
*(.shdata)
*(.data .data.* .gnu.linkonce.d.*)
.data 0x80000004 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
.data 0x80000004 0x4 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
0x80000004 __dso_handle
.data 0x80000008 0x0 main.o
.data 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.data 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
.data 0x80000008 0x0 ./libcs3.a(start_c.o)
.data 0x80000008 0x0 ./libcs3.a(imx31-reset.o)
.data 0x80000008 0x0 ./libcs3unhosted.a(unhosted-start.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm-vector.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_interrupt.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_undef.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_swi.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_pabort.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_dabort.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_irq.o)
.data 0x80000008 0x0 ./libcs3arm.a(arm_isr_fiq.o)
.data 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
*(.got.plt)
*(.got)
0x80000008 . = ALIGN (0x8)
*(.ram)
0x80000008 . = ALIGN (0x8)
0x80000008 _edata = .
.tm_clone_table
0x80000008 0x0 load address 0xa00003c0
.tm_clone_table
0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.tm_clone_table
0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.igot.plt 0x80000008 0x0 load address 0xa00003c0
.igot.plt 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.bss 0x80000008 0x20 load address 0xa00003c0
*(.shbss)
*(.bss .bss.* .gnu.linkonce.b.*)
.bss 0x80000008 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
.bss 0x80000008 0x1c /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.bss 0x80000024 0x0 main.o
.bss 0x80000024 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.bss 0x80000024 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
.bss 0x80000024 0x0 ./libcs3.a(start_c.o)
.bss 0x80000024 0x0 ./libcs3.a(imx31-reset.o)
.bss 0x80000024 0x0 ./libcs3unhosted.a(unhosted-start.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm-vector.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_interrupt.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_undef.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_swi.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_pabort.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_dabort.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_irq.o)
.bss 0x80000024 0x0 ./libcs3arm.a(arm_isr_fiq.o)
.bss 0x80000024 0x0 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
*(COMMON)
0x80000028 . = ALIGN (0x8)
*fill* 0x80000024 0x4
*(.ram.b .bss.ram)
0x80000028 . = ALIGN (0x8)
0x80000028 _end = .
0x80000028 __end = .
0x88000000 __cs3_region_end_ram = (__cs3_region_start_ram + LENGTH (ram))
0x08000000 __cs3_region_size_ram = LENGTH (ram)
0xa00003b8 __cs3_region_init_ram = LOADADDR (.data)
0x00000008 __cs3_region_init_size_ram = (_edata - ADDR (.data))
0x00000020 __cs3_region_zero_size_ram = (_end - _edata)
.stab
*(.stab)
.stabstr
*(.stabstr)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x190
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 main.o
.debug_aranges
0x00000020 0x28 ./libcs3.a(start_c.o)
.debug_aranges
0x00000048 0x28 ./libcs3.a(imx31-reset.o)
.debug_aranges
0x00000070 0x20 ./libcs3unhosted.a(unhosted-start.o)
.debug_aranges
0x00000090 0x20 ./libcs3arm.a(arm-vector.o)
.debug_aranges
0x000000b0 0x20 ./libcs3arm.a(arm_isr_interrupt.o)
.debug_aranges
0x000000d0 0x20 ./libcs3arm.a(arm_isr_undef.o)
.debug_aranges
0x000000f0 0x20 ./libcs3arm.a(arm_isr_swi.o)
.debug_aranges
0x00000110 0x20 ./libcs3arm.a(arm_isr_pabort.o)
.debug_aranges
0x00000130 0x20 ./libcs3arm.a(arm_isr_dabort.o)
.debug_aranges
0x00000150 0x20 ./libcs3arm.a(arm_isr_irq.o)
.debug_aranges
0x00000170 0x20 ./libcs3arm.a(arm_isr_fiq.o)
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0x984
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x3e main.o
.debug_info 0x0000003e 0x222 ./libcs3.a(start_c.o)
.debug_info 0x00000260 0xb6 ./libcs3.a(imx31-reset.o)
.debug_info 0x00000316 0xb4 ./libcs3unhosted.a(unhosted-start.o)
.debug_info 0x000003ca 0xb9 ./libcs3arm.a(arm-vector.o)
.debug_info 0x00000483 0xb7 ./libcs3arm.a(arm_isr_interrupt.o)
.debug_info 0x0000053a 0xb7 ./libcs3arm.a(arm_isr_undef.o)
.debug_info 0x000005f1 0xb7 ./libcs3arm.a(arm_isr_swi.o)
.debug_info 0x000006a8 0xb7 ./libcs3arm.a(arm_isr_pabort.o)
.debug_info 0x0000075f 0xb7 ./libcs3arm.a(arm_isr_dabort.o)
.debug_info 0x00000816 0xb7 ./libcs3arm.a(arm_isr_irq.o)
.debug_info 0x000008cd 0xb7 ./libcs3arm.a(arm_isr_fiq.o)
.debug_abbrev 0x00000000 0x1f6
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x35 main.o
.debug_abbrev 0x00000035 0xfb ./libcs3.a(start_c.o)
.debug_abbrev 0x00000130 0x12 ./libcs3.a(imx31-reset.o)
.debug_abbrev 0x00000142 0x14 ./libcs3unhosted.a(unhosted-start.o)
.debug_abbrev 0x00000156 0x14 ./libcs3arm.a(arm-vector.o)
.debug_abbrev 0x0000016a 0x14 ./libcs3arm.a(arm_isr_interrupt.o)
.debug_abbrev 0x0000017e 0x14 ./libcs3arm.a(arm_isr_undef.o)
.debug_abbrev 0x00000192 0x14 ./libcs3arm.a(arm_isr_swi.o)
.debug_abbrev 0x000001a6 0x14 ./libcs3arm.a(arm_isr_pabort.o)
.debug_abbrev 0x000001ba 0x14 ./libcs3arm.a(arm_isr_dabort.o)
.debug_abbrev 0x000001ce 0x14 ./libcs3arm.a(arm_isr_irq.o)
.debug_abbrev 0x000001e2 0x14 ./libcs3arm.a(arm_isr_fiq.o)
.debug_line 0x00000000 0x56d
*(.debug_line)
.debug_line 0x00000000 0x5d main.o
.debug_line 0x0000005d 0x103 ./libcs3.a(start_c.o)
.debug_line 0x00000160 0x90 ./libcs3.a(imx31-reset.o)
.debug_line 0x000001f0 0x61 ./libcs3unhosted.a(unhosted-start.o)
.debug_line 0x00000251 0x6b ./libcs3arm.a(arm-vector.o)
.debug_line 0x000002bc 0x62 ./libcs3arm.a(arm_isr_interrupt.o)
.debug_line 0x0000031e 0x62 ./libcs3arm.a(arm_isr_undef.o)
.debug_line 0x00000380 0x62 ./libcs3arm.a(arm_isr_swi.o)
.debug_line 0x000003e2 0x62 ./libcs3arm.a(arm_isr_pabort.o)
.debug_line 0x00000444 0x63 ./libcs3arm.a(arm_isr_dabort.o)
.debug_line 0x000004a7 0x63 ./libcs3arm.a(arm_isr_irq.o)
.debug_line 0x0000050a 0x63 ./libcs3arm.a(arm_isr_fiq.o)
.debug_frame 0x00000000 0x94
*(.debug_frame)
.debug_frame 0x00000000 0x20 main.o
.debug_frame 0x00000020 0x40 ./libcs3.a(start_c.o)
.debug_frame 0x00000060 0x34 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
.debug_str 0x00000000 0x568
*(.debug_str)
.debug_str 0x00000000 0x22a main.o
0x22f (size before relaxing)
.debug_str 0x0000022a 0x33e ./libcs3.a(start_c.o)
0x367 (size before relaxing)
.debug_loc 0x00000000 0x146
*(.debug_loc)
.debug_loc 0x00000000 0x146 ./libcs3.a(start_c.o)
.debug_macinfo
*(.debug_macinfo)
.debug_ranges 0x00000000 0x60
*(.debug_ranges)
.debug_ranges 0x00000000 0x10 main.o
.debug_ranges 0x00000010 0x30 ./libcs3.a(start_c.o)
.debug_ranges 0x00000040 0x20 ./libcs3.a(imx31-reset.o)
.comment 0x00000000 0x42
.comment 0x00000000 0x42 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
0x43 (size before relaxing)
.comment 0x00000042 0x43 main.o
.comment 0x00000042 0x43 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.comment 0x00000042 0x43 ./libcs3.a(start_c.o)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.note.gnu.arm.ident
*(.note.gnu.arm.ident)
.ARM.attributes
0x00000000 0x31
*(.ARM.attributes)
.ARM.attributes
0x00000000 0x16 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crti.o
.ARM.attributes
0x00000016 0x30 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtbegin.o
.ARM.attributes
0x00000046 0x30 main.o
.ARM.attributes
0x00000076 0x30 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtend.o
.ARM.attributes
0x000000a6 0x18 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/crtn.o
.ARM.attributes
0x000000be 0x30 ./libcs3.a(start_c.o)
.ARM.attributes
0x000000ee 0x25 ./libcs3.a(imx31-reset.o)
.ARM.attributes
0x00000113 0x14 ./libcs3unhosted.a(unhosted-start.o)
.ARM.attributes
0x00000127 0x17 ./libcs3arm.a(arm-vector.o)
.ARM.attributes
0x0000013e 0x1a ./libcs3arm.a(arm_isr_interrupt.o)
.ARM.attributes
0x00000158 0x1a ./libcs3arm.a(arm_isr_undef.o)
.ARM.attributes
0x00000172 0x1a ./libcs3arm.a(arm_isr_swi.o)
.ARM.attributes
0x0000018c 0x1a ./libcs3arm.a(arm_isr_pabort.o)
.ARM.attributes
0x000001a6 0x1a ./libcs3arm.a(arm_isr_dabort.o)
.ARM.attributes
0x000001c0 0x1a ./libcs3arm.a(arm_isr_irq.o)
.ARM.attributes
0x000001da 0x1a ./libcs3arm.a(arm_isr_fiq.o)
.ARM.attributes
0x000001f4 0x30 /scratch/sandra/arm-eabi-trunk/install/opt/codesourcery/bin/../lib/gcc/arm-none-eabi/5.1.1/../../../../arm-none-eabi/lib/libc.a(lib_a-init.o)
/DISCARD/
*(.note.GNU-stack)
OUTPUT(check-imx31-rom.ld elf32-littlearm)
More information about the Binutils
mailing list