Retro68/binutils/ld/scripttempl/mips.sc

85 lines
1.9 KiB
Python
Raw Normal View History

2012-03-26 19:18:29 +00:00
# Linker script for MIPS systems.
# Ian Lance Taylor <ian@cygnus.com>.
2015-08-28 15:32:19 +00:00
#
2017-04-10 11:32:00 +00:00
# Copyright (C) 2014-2017 Free Software Foundation, Inc.
2015-08-28 15:32:19 +00:00
#
# 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.
#
2012-03-26 19:18:29 +00:00
# These variables may be overridden by the emulation file. The
# defaults are appropriate for a DECstation running Ultrix.
2015-08-28 15:32:19 +00:00
2012-03-26 19:18:29 +00:00
test -z "$ENTRY" && ENTRY=__start
if [ -z "$EMBEDDED" ]; then
test -z "$TEXT_START_ADDR" && TEXT_START_ADDR="0x400000 + SIZEOF_HEADERS"
else
test -z "$TEXT_START_ADDR" && TEXT_START_ADDR="0x400000"
fi
if test "x$LD_FLAG" = "xn" -o "x$LD_FLAG" = "xN"; then
DATA_ADDR=.
else
test -z "$DATA_ADDR" && DATA_ADDR=0x10000000
fi
2015-08-28 15:32:19 +00:00
2012-03-26 19:18:29 +00:00
cat <<EOF
2017-04-10 11:32:00 +00:00
/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
2015-08-28 15:32:19 +00:00
Copying and distribution of this script, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. */
2012-03-26 19:18:29 +00:00
OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
"${LITTLE_OUTPUT_FORMAT}")
${LIB_SEARCH_DIRS}
${RELOCATING+ENTRY (${ENTRY})}
SECTIONS
{
${RELOCATING+. = ${TEXT_START_ADDR};}
.text : {
${RELOCATING+ _ftext = . };
*(.init)
${RELOCATING+ eprol = .};
*(.text)
*(.fini)
${RELOCATING+ etext = .};
${RELOCATING+ _etext = .};
}
${RELOCATING+. = ${DATA_ADDR};}
.rdata : {
*(.rdata)
}
${RELOCATING+ _fdata = ALIGN(16);}
.data : {
*(.data)
${CONSTRUCTING+CONSTRUCTORS}
}
${RELOCATING+ HIDDEN (_gp = ALIGN (16) + 0x8000);}
2012-03-26 19:18:29 +00:00
.lit8 : {
*(.lit8)
}
.lit4 : {
*(.lit4)
}
.sdata : {
*(.sdata)
}
${RELOCATING+ edata = .;}
${RELOCATING+ _edata = .;}
${RELOCATING+ _fbss = .;}
.sbss : {
*(.sbss)
*(.scommon)
}
.bss : {
*(.bss)
*(COMMON)
}
${RELOCATING+ end = .;}
${RELOCATING+ _end = .;}
}
EOF