source: trunk/binutils/ld/emulparams/criself.sh@ 3453

Last change on this file since 3453 was 610, checked in by bird, 22 years ago

This commit was generated by cvs2svn to compensate for changes in r609,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 2.5 KB
Line 
1# This is for embedded products (no MMU) with ELF.
2MACHINE=
3SCRIPT_NAME=elf
4TEMPLATE_NAME=elf32
5
6# Symbols have underscore prepended.
7OUTPUT_FORMAT="elf32-us-cris"
8ARCH=cris
9MAXPAGESIZE=32
10ENTRY=__start
11EMBEDDED=yes
12ALIGNMENT=32
13TEXT_START_ADDR=0
14
15# Put crt0 for flash/eprom etc. in this section.
16INITIAL_READONLY_SECTIONS='.startup : { KEEP(*(.startup)) }'
17
18# Setting __Stext to . in TEXT_START_SYMBOLS doesn't get what we want
19# most of the time, which is the start of all read-only sections;
20# there's at least .startup and .init before it. We have to resort to
21# trickery. Note that __Stext is always defined, not PROVIDE:d, since
22# external tools look for it.
23TEXT_START_SYMBOLS='__Stext = ADDR (.startup);'
24
25# The __start dance is to get us through assumptions about entry
26# symbols, and to clear _start for normal use with sane programs.
27EXECUTABLE_SYMBOLS='
28__start = DEFINED(__start) ? __start :
29 DEFINED(_start) ? _start :
30 DEFINED(start) ? start :
31 DEFINED(.startup) ? .startup + 2 : 2;
32'
33
34# Smuggle an "OTHER_TEXT_END_SYMBOLS" here.
35OTHER_READONLY_SECTIONS="${RELOCATING+PROVIDE (__Etext = .);}"
36DATA_START_SYMBOLS='PROVIDE (__Sdata = .);'
37
38# Smuggle an "OTHER_DATA_END_SYMBOLS" here.
39OTHER_SDATA_SECTIONS="${RELOCATING+PROVIDE (__Edata = .);}"
40
41# If .bss does not immediately follow .data but has its own start
42# address, we can't get to it with OTHER_BSS_SYMBOLS, neither can we
43# use ADDR(.bss) there. Instead, we use the symbol support for the
44# end symbol.
45OTHER_BSS_END_SYMBOLS='
46 PROVIDE (__Ebss = .);
47 PROVIDE (__end = .);
48 __Sbss = ADDR (.bss);
49 PROVIDE (_bss_start = __Sbss);
50'
51
52INIT_START='
53 . = ALIGN(2);
54 ___init__start = .;
55 PROVIDE (___do_global_ctors = .);
56 SHORT (0xe1fc); /* push srp */
57 SHORT (0xbe7e);
58'
59
60INIT_END='
61 SHORT (0x0d3e); /* jump [sp+] */
62 PROVIDE (__init__end = .);
63 PROVIDE (___init__end = .);
64'
65
66FINI_START='
67 . = ALIGN (2);
68 ___fini__start = .;
69 PROVIDE (___do_global_dtors = .);
70 SHORT (0xe1fc); /* push srp */
71 SHORT (0xbe7e);
72'
73
74FINI_END='
75 SHORT (0x0d3e); /* jump [sp+] */
76 PROVIDE (__fini__end = .);
77 ___fini__end = .;
78'
79
80CTOR_START='
81 PROVIDE (___ctors = .);
82 ___elf_ctors_dtors_begin = .;
83'
84
85CTOR_END='
86 PROVIDE (___ctors_end = .);
87'
88
89DTOR_START='
90 PROVIDE (___dtors = .);
91'
92
93CTOR_END='
94 PROVIDE (___dtors_end = .);
95 ___elf_ctors_dtors_end = .;
96'
97
98# Also add the other symbols provided for rsim/xsim and elinux.
99OTHER_END_SYMBOLS='
100 PROVIDE (__Eall = .);
101 PROVIDE (__Endmem = 0x10000000);
102 PROVIDE (__Stacksize = 0);
103'
104NO_SMALL_DATA=yes
Note: See TracBrowser for help on using the repository browser.