.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
+ .note.gnu.build-id : { *(.note.gnu.build-id) }
+EOF
- /* 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${RELOCATING+ .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) }
-
- /* 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) }
+. $srcdir/scripttempl/DWARF.sc
+cat <<EOF
/* ARC Extension Sections */
- .arcextmap 0 : { *(.gnu.linkonce.arcextmap.*) }
+ .arcextmap 0 : { *(.arcextmap.*) }
${OTHER_SECTIONS}
${RELOCATING+${OTHER_END_SYMBOLS}}
${CONSTRUCTING+${DTOR_END}}
} ${RELOCATING+ > ${DATA_MEMORY}}"
+IVT="
+ /* If the 'ivtbase_addr' symbol is defined, it indicates the base address of
+ the interrupt vectors. See description of INT_VECTOR_BASE register. */
+
+ .ivt DEFINED (ivtbase_addr) ? ivtbase_addr : 0x00 :
+ {
+ ${RELOCATING+ PROVIDE (__ivtbase_addr = .); }
+ KEEP (*(.ivt));
+ } ${RELOCATING+ > ${STARTUP_MEMORY}}"
+
if test -z "${NO_SMALL_DATA}"; then
SBSS=".sbss ${RELOCATING-0} :
{
ICCM : ORIGIN = 0x00000000, LENGTH = ${ICCM_SIZE}
DCCM : ORIGIN = ${RAM_START_ADDR}, LENGTH = ${RAM_SIZE}
}
-
-/* Setup the stack on the top of the data memory bank. */
-PROVIDE (__stack_top = (${RAM_START_ADDR} + ${RAM_SIZE} - 1) & -4);
-PROVIDE (__end_heap = ${RAM_START_ADDR} + ${RAM_SIZE} - 1);
"
;;
esac
SECTIONS
{
- .ivt 0x00 :
- {
- KEEP (*(.ivt));
- } ${RELOCATING+ > ${STARTUP_MEMORY}}
-
- .startup 0x100:
- {
- KEEP (*crt0.o(.text.__startup))
- } ${RELOCATING+ > ${STARTUP_MEMORY}}
+ ${RELOCATING+${IVT}}
/* Read-only sections, merged into text segment: */
${TEXT_DYNAMIC+${DYNAMIC}}
.rel.bss ${RELOCATING-0} : { *(.rel.bss${RELOCATING+ .rel.bss.* .rel.gnu.linkonce.b.*}) }
.rela.bss ${RELOCATING-0} : { *(.rela.bss${RELOCATING+ .rela.bss.* .rela.gnu.linkonce.b.*}) }
- .jcr : { KEEP (*(.jcr)) } ${RELOCATING+> ${TEXT_MEMORY}}
- .eh_frame : { KEEP (*(.eh_frame)) } ${RELOCATING+> ${TEXT_MEMORY}}
- .gcc_except_table : { *(.gcc_except_table${RELOCATING+ .gcc_except_table.*}) } ${RELOCATING+> ${TEXT_MEMORY}}
- .plt : { *(.plt) } ${RELOCATING+> ${TEXT_MEMORY}}
- .jlitab :
- {
- ${RELOCATING+${JLI_START_TABLE}}
- ${RELOCATING+jlitab*.o:(.jlitab*)}
- *(.jlitab${RELOCATING+*})
- } ${RELOCATING+> ${TEXT_MEMORY}}
-
- .rodata ${RELOCATING-0} :
+ .text ${RELOCATING-0} :
{
- *(.rodata) ${RELOCATING+*(.rodata.*)} ${RELOCATING+*(.gnu.linkonce.r.*)}
- } ${RELOCATING+> ${TEXT_MEMORY}}
-
- .rodata1 ${RELOCATING-0} : { *(.rodata1) } ${RELOCATING+> ${TEXT_MEMORY}}
+ ${RELOCATING+${TEXT_START_SYMBOLS}}
- .init ${RELOCATING-0} :
- {
+ ${RELOCATING+ . = ALIGN(4);}
${RELOCATING+${INIT_START}}
KEEP (*(SORT_NONE(.init)))
${RELOCATING+${INIT_END}}
- } ${RELOCATING+ > ${TEXT_MEMORY}} =${NOP-0}
- .text ${RELOCATING-0} :
- {
- ${RELOCATING+${TEXT_START_SYMBOLS}}
+ /* Start here after reset. */
+ ${RELOCATING+ . = ALIGN(4);}
+ KEEP (*crt0.o(.text.__startup))
+ /* Remaining code. */
+ ${RELOCATING+ . = ALIGN(4);}
*(.text .stub${RELOCATING+ .text.* .gnu.linkonce.t.*})
/* .gnu.warning sections are handled specially by elf.em. */
*(.gnu.warning)
${RELOCATING+PROVIDE (etext = .);}
} ${RELOCATING+ > ${TEXT_MEMORY}} =${NOP-0}
+ .jcr ${RELOCATING-0} :
+ {
+ KEEP (*(.jcr))
+ } ${RELOCATING+> ${TEXT_MEMORY}}
+
+ .eh_frame ${RELOCATING-0} :
+ {
+ KEEP (*(.eh_frame))
+ } ${RELOCATING+> ${TEXT_MEMORY}}
+
+ .gcc_except_table ${RELOCATING-0} :
+ {
+ *(.gcc_except_table) *(.gcc_except_table.*)
+ } ${RELOCATING+> ${TEXT_MEMORY}}
+
+ .plt ${RELOCATING-0} :
+ {
+ *(.plt)
+ } ${RELOCATING+> ${TEXT_MEMORY}}
+
+ .jlitab ${RELOCATING-0} :
+ {
+ ${RELOCATING+${JLI_START_TABLE}}
+ jlitab*.o:(.jlitab*) *(.jlitab*)
+ } ${RELOCATING+> ${TEXT_MEMORY}}
+
+ .rodata ${RELOCATING-0} :
+ {
+ *(.rodata) ${RELOCATING+*(.rodata.*)} ${RELOCATING+*(.gnu.linkonce.r.*)}
+ } ${RELOCATING+> ${TEXT_MEMORY}}
+
+ .rodata1 ${RELOCATING-0} : { *(.rodata1) } ${RELOCATING+> ${TEXT_MEMORY}}
+
${RELOCATING+${OTHER_READONLY_SECTIONS}}
/* Start of the data section image in ROM. */
${RELOCATING+ PROVIDE (__start_heap = .) ; }
} ${RELOCATING+ > ${DATA_MEMORY}}
+ ${RELOCATING+ PROVIDE (__stack_top = (ORIGIN (${DATA_MEMORY}) + LENGTH (${DATA_MEMORY}) - 1) & -4);}
+ ${RELOCATING+ PROVIDE (__end_heap = ORIGIN (${DATA_MEMORY}) + LENGTH (${DATA_MEMORY}) - 1);}
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
+ .note.gnu.build-id : { *(.note.gnu.build-id) }
+EOF
- /* 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${RELOCATING+ .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 3 */
- .debug_pubtypes 0 : { *(.debug_pubtypes) }
- .debug_ranges 0 : { *(.debug_ranges) }
-
- /* DWARF Extension. */
- .debug_macro 0 : { *(.debug_macro) }
+. $srcdir/scripttempl/DWARF.sc
+cat <<EOF
/* ARC Extension Sections */
- .arcextmap 0 : { *(.gnu.linkonce.arcextmap.*) }
+ .arcextmap 0 : { *(.arcextmap.*) }
}
EOF