summaryrefslogtreecommitdiffstats
path: root/binutils-2.17/ld/emulparams/criself.sh
diff options
context:
space:
mode:
authorJing Yu <jingyu@google.com>2009-11-05 16:55:30 -0800
committerJing Yu <jingyu@google.com>2009-11-05 16:55:30 -0800
commit2cafa61b4b039e5ac3b876fc44a05c61d66df4d4 (patch)
tree1caaaacd28e00e283dbacd6726db52cbf2d5d909 /binutils-2.17/ld/emulparams/criself.sh
parent8d401cf711539af5a2f78d12447341d774892618 (diff)
downloadtoolchain_binutils-2cafa61b4b039e5ac3b876fc44a05c61d66df4d4.tar.gz
toolchain_binutils-2cafa61b4b039e5ac3b876fc44a05c61d66df4d4.tar.bz2
toolchain_binutils-2cafa61b4b039e5ac3b876fc44a05c61d66df4d4.zip
check in binutils sources for prebuilt toolchains in Eclair.
Diffstat (limited to 'binutils-2.17/ld/emulparams/criself.sh')
-rw-r--r--binutils-2.17/ld/emulparams/criself.sh98
1 files changed, 98 insertions, 0 deletions
diff --git a/binutils-2.17/ld/emulparams/criself.sh b/binutils-2.17/ld/emulparams/criself.sh
new file mode 100644
index 00000000..0478f345
--- /dev/null
+++ b/binutils-2.17/ld/emulparams/criself.sh
@@ -0,0 +1,98 @@
+# This is for embedded products (no MMU) with ELF.
+MACHINE=
+SCRIPT_NAME=elf
+TEMPLATE_NAME=elf32
+
+# Symbols have underscore prepended.
+OUTPUT_FORMAT="elf32-us-cris"
+ARCH=cris
+MAXPAGESIZE=32
+ENTRY=__start
+EMBEDDED=yes
+ALIGNMENT=32
+TEXT_START_ADDR=0
+
+# Put crt0 for flash/eprom etc. in this section.
+INITIAL_READONLY_SECTIONS='.startup : { KEEP(*(.startup)) }'
+
+# Setting __Stext to . in TEXT_START_SYMBOLS doesn't get what we want
+# most of the time, which is the start of all read-only sections;
+# there's at least .startup and .init before it. We have to resort to
+# trickery. Note that __Stext is always defined, not PROVIDE:d, since
+# external tools look for it.
+TEXT_START_SYMBOLS='__Stext = ADDR (.startup);'
+
+# The __start dance is to get us through assumptions about entry
+# symbols, and to clear _start for normal use with sane programs.
+EXECUTABLE_SYMBOLS='
+__start = DEFINED(__start) ? __start :
+ DEFINED(_start) ? _start :
+ DEFINED(start) ? start :
+ DEFINED(.startup) ? .startup + 2 : 2;
+'
+
+# Smuggle an "OTHER_TEXT_END_SYMBOLS" here.
+OTHER_READONLY_SECTIONS="${RELOCATING+PROVIDE (__Etext = .);}"
+DATA_START_SYMBOLS='PROVIDE (__Sdata = .);'
+
+# Smuggle an "OTHER_DATA_END_SYMBOLS" here.
+OTHER_SDATA_SECTIONS="${RELOCATING+PROVIDE (__Edata = .);}"
+
+# If .bss does not immediately follow .data but has its own start
+# address, we can't get to it with OTHER_BSS_SYMBOLS, neither can we
+# use ADDR(.bss) there. Instead, we use the symbol support for the
+# end symbol.
+OTHER_BSS_END_SYMBOLS='
+ PROVIDE (__Ebss = .);
+ __Sbss = ADDR (.bss);
+ PROVIDE (_bss_start = __Sbss);
+'
+OTHER_END_SYMBOLS='PROVIDE (__end = .);'
+
+INIT_START='
+ . = ALIGN(2);
+ ___init__start = .;
+ PROVIDE (___do_global_ctors = .);
+'
+
+INIT_END='
+ PROVIDE (__init__end = .);
+ PROVIDE (___init__end = .);
+'
+
+FINI_START='
+ . = ALIGN (2);
+ ___fini__start = .;
+ PROVIDE (___do_global_dtors = .);
+'
+
+FINI_END='
+ PROVIDE (__fini__end = .);
+ ___fini__end = .;
+'
+
+CTOR_START='
+ PROVIDE (___ctors = .);
+ ___elf_ctors_dtors_begin = .;
+'
+
+CTOR_END='
+ PROVIDE (___ctors_end = .);
+'
+
+DTOR_START='
+ PROVIDE (___dtors = .);
+'
+
+CTOR_END='
+ PROVIDE (___dtors_end = .);
+ ___elf_ctors_dtors_end = .;
+'
+
+# Also add the other symbols provided for rsim/xsim and elinux.
+OTHER_SYMBOLS='
+ PROVIDE (__Eall = .);
+ PROVIDE (__Endmem = 0x10000000);
+ PROVIDE (__Stacksize = 0);
+'
+NO_SMALL_DATA=yes