Annotation of src/external/gpl3/binutils.old/dist/ld/emulparams/criself.sh, Revision 1.5.2.1
1.1 christos 1: # This is for embedded products (no MMU) with ELF.
2: MACHINE=
3: SCRIPT_NAME=elf
4: TEMPLATE_NAME=elf32
5:
6: # Symbols have underscore prepended.
7: OUTPUT_FORMAT="elf32-us-cris"
8: NO_REL_RELOCS=yes
9: ARCH=cris
10: MAXPAGESIZE=32
1.5.2.1 ! martin 11: USER_LABEL_PREFIX=_
1.1 christos 12: EMBEDDED=yes
13: ALIGNMENT=32
14: TEXT_START_ADDR=0
15:
16: # Put crt0 for flash/eprom etc. in this section.
17: INITIAL_READONLY_SECTIONS=
18: if test -z "${CREATE_SHLIB}"; then
19: INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }"
20: fi
21: INITIAL_READONLY_SECTIONS="${INITIAL_READONLY_SECTIONS}
22: .startup : { KEEP(*(.startup)) }"
23:
24: # Setting __Stext to . in TEXT_START_SYMBOLS doesn't get what we want
25: # most of the time, which is the start of all read-only sections;
26: # there's at least .startup and .init before it. We have to resort to
27: # trickery. Note that __Stext is always defined, not PROVIDE:d, since
28: # external tools look for it.
29: TEXT_START_SYMBOLS='__Stext = ADDR (.startup);'
30:
31: # The __start dance is to get us through assumptions about entry
32: # symbols, and to clear _start for normal use with sane programs.
33: EXECUTABLE_SYMBOLS='
1.3 christos 34: __start = DEFINED(__start) ? __start :
35: DEFINED(_start) ? _start :
1.1 christos 36: DEFINED(start) ? start :
37: DEFINED(.startup) ? .startup + 2 : 2;
38: '
39:
40: # Smuggle an "OTHER_TEXT_END_SYMBOLS" here.
41: OTHER_READONLY_SECTIONS="${RELOCATING+PROVIDE (__Etext = .);}"
42: DATA_START_SYMBOLS='PROVIDE (__Sdata = .);'
43:
44: # Smuggle an "OTHER_DATA_END_SYMBOLS" here.
45: OTHER_SDATA_SECTIONS="${RELOCATING+PROVIDE (__Edata = .);}"
46:
47: # If .bss does not immediately follow .data but has its own start
48: # address, we can't get to it with OTHER_BSS_SYMBOLS, neither can we
49: # use ADDR(.bss) there. Instead, we use the symbol support for the
50: # end symbol.
51: OTHER_BSS_END_SYMBOLS='
52: PROVIDE (__Ebss = .);
53: __Sbss = ADDR (.bss);
54: PROVIDE (_bss_start = __Sbss);
55: '
56:
1.3 christos 57: INIT_ADDR='ALIGN (2)'
58:
1.1 christos 59: INIT_START='
60: ___init__start = .;
61: PROVIDE (___do_global_ctors = .);
62: '
63:
64: INIT_END='
65: PROVIDE (__init__end = .);
66: PROVIDE (___init__end = .);
67: '
68:
1.3 christos 69: FINI_ADDR='ALIGN (2)'
70:
1.1 christos 71: FINI_START='
72: ___fini__start = .;
73: PROVIDE (___do_global_dtors = .);
74: '
75:
76: FINI_END='
77: PROVIDE (__fini__end = .);
78: ___fini__end = .;
79: '
80:
81: CTOR_START='
82: PROVIDE (___ctors = .);
83: ___elf_ctors_dtors_begin = .;
84: '
85:
86: CTOR_END='
87: PROVIDE (___ctors_end = .);
88: '
89:
90: DTOR_START='
91: PROVIDE (___dtors = .);
92: '
93:
94: CTOR_END='
95: PROVIDE (___dtors_end = .);
96: ___elf_ctors_dtors_end = .;
97: '
98:
99: # Also add the other symbols provided for rsim/xsim and elinux.
100: OTHER_SYMBOLS='
101: PROVIDE (__Eall = .);
1.3 christos 102: PROVIDE (__Endmem = 0x10000000);
1.1 christos 103: PROVIDE (__Stacksize = 0);
104: '
105: NO_SMALL_DATA=yes
CVSweb <webmaster@jp.NetBSD.org>