-# Copyright (C) 2014-2015 Free Software Foundation, Inc.
-#
+# Copyright (C) 2014-2021 Free Software Foundation, Inc.
+#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.
test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
test "$LD_FLAG" = "N" && DATA_ADDR=.
-INTERP=".interp ${RELOCATING-0} : { *(.interp) }"
-PLT=".plt ${RELOCATING-0} : { *(.plt) }"
+INTERP=".interp ${RELOCATING-0} : { *(.interp) }"
+PLT=".plt ${RELOCATING-0} : { *(.plt) }"
-CTOR=".ctors ${CONSTRUCTING-0} :
+CTOR=".ctors ${CONSTRUCTING-0} :
{
${CONSTRUCTING+${CTOR_START}}
/* gcc uses crtbegin.o to find the start of
fi
cat <<EOF
-/* Copyright (C) 2014-2015 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2021 Free Software Foundation, Inc.
Copying and distribution of this script, with or without modification,
are permitted in any medium without royalty provided the copyright
OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
"${LITTLE_OUTPUT_FORMAT}")
OUTPUT_ARCH(${OUTPUT_ARCH})
-${RELOCATING+ENTRY(${ENTRY})}
+EOF
+
+test -n "${RELOCATING}" && cat <<EOF
+ENTRY(${ENTRY})
-${RELOCATING+${LIB_SEARCH_DIRS}}
-${RELOCATING+/* Do we need any of these for elf?
- __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}} */}
-${RELOCATING+${EXECUTABLE_SYMBOLS}}
+${LIB_SEARCH_DIRS}
+/* Do we need any of these for elf?
+ __DYNAMIC = 0; ${STACKZERO+${STACKZERO}} ${SHLIB_PATH+${SHLIB_PATH}} */
+${EXECUTABLE_SYMBOLS}
MEMORY
{
There are other memory regions available on
the TS3 (eg ROM, FLASH, etc) but these are not
used by this script. */
-
+
INSN : org = 0x01000000, len = 256K
DATA : org = 0x02000000, len = 48K
/* This is a fake memory region at the top of the
on-chip RAM, used as the start of the
(descending) stack. */
-
+
STACK : org = 0x0200BFFC, len = 4
}
+EOF
+
+cat <<EOF
SECTIONS
{
.text ${RELOCATING+${TEXT_START_ADDR}} :
{
- ${RELOCATING+${TEXT_START_SYMBOLS}}
+ ${RELOCATING+${TEXT_START_SYMBOLS}
KEEP (*(SORT_NONE(.init)))
KEEP (*(SORT_NONE(.init.*)))
KEEP (*(SORT_NONE(.fini)))
- KEEP (*(SORT_NONE(.fini.*)))
+ KEEP (*(SORT_NONE(.fini.*)))}
*(.text)
- *(.text.*)
- /* .gnu.warning sections are handled specially by elf32.em. */
+ ${RELOCATING+*(.text.*)}
+ /* .gnu.warning sections are handled specially by elf.em. */
*(.gnu.warning)
- *(.gnu.linkonce.t*)
- ${RELOCATING+_etext = .;}
- ${RELOCATING+PROVIDE (etext = .);}
+ ${RELOCATING+*(.gnu.linkonce.t*)
+ _etext = .;
+ PROVIDE (etext = .);}
} ${RELOCATING+ >INSN} =${NOP-0}
.rodata ${RELOCATING+${READONLY_START_ADDR}} : {
*(.rodata)
- *(.gnu.linkonce.r*)
- *(.rodata.*)
+ ${RELOCATING+*(.gnu.linkonce.r*)
+ *(.rodata.*)}
} ${RELOCATING+ >DATA}
.rodata1 ${RELOCATING-0} : {
*(.rodata1)
- *(.rodata1.*)
+ ${RELOCATING+*(.rodata1.*)}
} ${RELOCATING+ >DATA}
.data ${RELOCATING-0} :
{
${RELOCATING+${DATA_START_SYMBOLS}}
*(.data)
- *(.data.*)
- *(.gnu.linkonce.d*)
+ ${RELOCATING+*(.data.*)
+ *(.gnu.linkonce.d*)}
${CONSTRUCTING+CONSTRUCTORS}
} ${RELOCATING+ >DATA}
.data1 ${RELOCATING-0} : {
*(.data1)
- *(.data1.*)
+ ${RELOCATING+*(.data1.*)}
} ${RELOCATING+ >DATA}
${RELOCATING+${CTOR} >DATA}
we can shorten the on-disk segment size. */
.sdata ${RELOCATING-0} : {
*(.sdata)
- *(.sdata.*)
+ ${RELOCATING+*(.sdata.*)}
} ${RELOCATING+ >DATA}
${RELOCATING+_edata = .;}
${RELOCATING+PROVIDE (edata = .);}
${RELOCATING+__bss_start = .;}
- .sbss ${RELOCATING-0} : { *(.sbss) *(.scommon) } ${RELOCATING+ >DATA}
+ .sbss ${RELOCATING-0} : { *(.sbss)${RELOCATING+ *(.scommon)} } ${RELOCATING+ >DATA}
.bss ${RELOCATING-0} :
{
- *(.dynbss)
- *(.dynbss.*)
+ ${RELOCATING+*(.dynbss)
+ *(.dynbss.*)}
*(.bss)
- *(.bss.*)
- *(COMMON)
+ ${RELOCATING+*(.bss.*)
+ *(COMMON)}
} ${RELOCATING+ >DATA}
${RELOCATING+_end = . ;}