criself.sh revision 1.1.1.5
1# This is for embedded products (no MMU) with ELF. 2MACHINE= 3SCRIPT_NAME=elf 4TEMPLATE_NAME=elf 5 6# Symbols have underscore prepended. 7OUTPUT_FORMAT="elf32-us-cris" 8NO_REL_RELOCS=yes 9ARCH=cris 10MAXPAGESIZE=32 11USER_LABEL_PREFIX=_ 12EMBEDDED=yes 13ALIGNMENT=32 14TEXT_START_ADDR=0 15 16# Put crt0 for flash/eprom etc. in this section. 17INITIAL_READONLY_SECTIONS= 18if test -z "${CREATE_SHLIB}"; then 19 INITIAL_READONLY_SECTIONS=".interp ${RELOCATING-0} : { *(.interp) }" 20fi 21INITIAL_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. 29TEXT_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. 33EXECUTABLE_SYMBOLS=' 34__start = DEFINED(__start) ? __start : 35 DEFINED(_start) ? _start : 36 DEFINED(start) ? start : 37 DEFINED(.startup) ? .startup + 2 : 2; 38' 39 40# Smuggle an "OTHER_TEXT_END_SYMBOLS" here. 41OTHER_READONLY_SECTIONS="${RELOCATING+PROVIDE (__Etext = .);}" 42DATA_START_SYMBOLS='PROVIDE (__Sdata = .);' 43 44# Smuggle an "OTHER_DATA_END_SYMBOLS" here. 45OTHER_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. 51OTHER_BSS_END_SYMBOLS=' 52 PROVIDE (__Ebss = .); 53 __Sbss = ADDR (.bss); 54 PROVIDE (_bss_start = __Sbss); 55' 56 57INIT_ADDR='ALIGN (2)' 58 59INIT_START=' 60 ___init__start = .; 61 PROVIDE (___do_global_ctors = .); 62' 63 64INIT_END=' 65 PROVIDE (__init__end = .); 66 PROVIDE (___init__end = .); 67' 68 69FINI_ADDR='ALIGN (2)' 70 71FINI_START=' 72 ___fini__start = .; 73 PROVIDE (___do_global_dtors = .); 74' 75 76FINI_END=' 77 PROVIDE (__fini__end = .); 78 ___fini__end = .; 79' 80 81CTOR_START=' 82 PROVIDE (___ctors = .); 83 ___elf_ctors_dtors_begin = .; 84' 85 86CTOR_END=' 87 PROVIDE (___ctors_end = .); 88' 89 90DTOR_START=' 91 PROVIDE (___dtors = .); 92' 93 94CTOR_END=' 95 PROVIDE (___dtors_end = .); 96 ___elf_ctors_dtors_end = .; 97' 98 99# Also add the other symbols provided for rsim/xsim and elinux. 100OTHER_SYMBOLS=' 101 PROVIDE (__Eall = .); 102 PROVIDE (__Endmem = 0x10000000); 103 PROVIDE (__Stacksize = 0); 104' 105NO_SMALL_DATA=yes 106