1# Note: this parameter script is sourced by the other 2# sh[l]elf(32|64).sh parameter scripts. 3SCRIPT_NAME=elf 4OUTPUT_FORMAT=${OUTPUT_FORMAT-"elf32-sh64"} 5NO_REL_RELOCS=yes 6TEXT_START_ADDR=0x1000 7MAXPAGESIZE=128 8ARCH=sh 9MACHINE=sh5 10ALIGNMENT=8 11TEMPLATE_NAME=elf32 12GENERATE_SHLIB_SCRIPT=yes 13EMBEDDED=yes 14# PR 17739. Delay checking relocs until after all files have 15# been opened and linker garbage collection has taken place. 16CHECK_RELOCS_AFTER_OPEN_INPUT=yes 17 18DATA_START_SYMBOLS='PROVIDE (___data = .);' 19 20# If data is located right after .text (not explicitly specified), 21# then we need to align it to an 8-byte boundary. 22OTHER_READONLY_SECTIONS=' 23PROVIDE (___rodata = DEFINED (.rodata) ? .rodata : 0); 24. = ALIGN (8); 25' 26 27# Make _edata and .bss aligned by smuggling in an alignment directive. 28OTHER_GOT_SECTIONS='. = ALIGN (8);' 29 30# These are for compatibility with the COFF toolchain. 31ENTRY=start 32CTOR_START='___ctors = .;' 33CTOR_END='___ctors_end = .;' 34DTOR_START='___dtors = .;' 35DTOR_END='___dtors_end = .;' 36 37# Do not use the varname=${varname-'string'} construct here; there are 38# problems with that on some shells (e.g. on Solaris) where there is a bug 39# that trigs when $varname contains a "}". 40# The effect of the .stack definition is like setting STACK_ADDR to 0x80000, 41# except that the setting can be overridden, e.g. --defsym _stack=0xff000, 42# and that we put an extra sentinal value at the bottom. 43# N.B. We can't use PROVIDE to set the default value in a symbol because 44# the address is needed to place the .stack section, which in turn is needed 45# to hold the sentinel value(s). 46test -z "$CREATE_SHLIB" && OTHER_SECTIONS=" 47 .stack ${RELOCATING-0}${RELOCATING+(DEFINED(_stack) ? _stack : ALIGN (0x40000) + 0x80000)} : 48 { 49 ${RELOCATING+_stack = .;} 50 *(.stack) 51 LONG(0xdeaddead) 52 } 53 .cranges 0 : { *(.cranges) } 54" 55# We do not need .stack for shared library. 56test -n "$CREATE_SHLIB" && OTHER_SECTIONS=" 57 .cranges 0 : { *(.cranges) } 58" 59 60# We need to adjust sizes in the .cranges section after relaxation, so 61# we need an after_allocation function, and it goes in this file. 62EXTRA_EM_FILE=${EXTRA_EM_FILE-sh64elf} 63