# Note: this parameter script is sourced by the other # sh[l]elf(32|64).sh parameter scripts. setvar SCRIPT_NAME = 'elf' setvar OUTPUT_FORMAT = ${OUTPUT_FORMAT-"elf32-sh64"} setvar NO_REL_RELOCS = 'yes' setvar TEXT_START_ADDR = '0x1000' setvar MAXPAGESIZE = '128' setvar ARCH = 'sh' setvar MACHINE = 'sh5' setvar ALIGNMENT = '8' setvar TEMPLATE_NAME = 'elf32' setvar GENERATE_SHLIB_SCRIPT = 'yes' setvar EMBEDDED = 'yes' setvar DATA_START_SYMBOLS = ''PROVIDE (___data = .);'' # If data is located right after .text (not explicitly specified), # then we need to align it to an 8-byte boundary. setvar OTHER_READONLY_SECTIONS = '' PROVIDE (___rodata = DEFINED (.rodata) ? .rodata : 0); . = ALIGN (8); '' # Make _edata and .bss aligned by smuggling in an alignment directive. setvar OTHER_GOT_SECTIONS = ''. = ALIGN (8);'' # These are for compatibility with the COFF toolchain. setvar ENTRY = 'start' setvar CTOR_START = ''___ctors = .;'' setvar CTOR_END = ''___ctors_end = .;'' setvar DTOR_START = ''___dtors = .;'' setvar DTOR_END = ''___dtors_end = .;'' # Do not use the varname=${varname-'string'} construct here; there are # problems with that on some shells (e.g. on Solaris) where there is a bug # that trigs when $varname contains a "}". # The effect of the .stack definition is like setting STACK_ADDR to 0x80000, # except that the setting can be overridden, e.g. --defsym _stack=0xff000, # and that we put an extra sentinal value at the bottom. # N.B. We can't use PROVIDE to set the default value in a symbol because # the address is needed to place the .stack section, which in turn is needed # to hold the sentinel value(s). test -z $CREATE_SHLIB && setvar OTHER_SECTIONS = "" .stack ${RELOCATING-0}${RELOCATING+(DEFINED(_stack) ? _stack : ALIGN (0x40000) + 0x80000)} : { ${RELOCATING+_stack = .;} *(.stack) LONG(0xdeaddead) } .cranges 0 : { *(.cranges) } "" # We do not need .stack for shared library. test -n $CREATE_SHLIB && setvar OTHER_SECTIONS = "" .cranges 0 : { *(.cranges) } "" # We need to adjust sizes in the .cranges section after relaxation, so # we need an after_allocation function, and it goes in this file. setvar EXTRA_EM_FILE = ${EXTRA_EM_FILE-sh64elf}