| # Note: this parameter script is sourced by the other |
| # sh[l]elf(32|64).sh parameter scripts. |
| SCRIPT_NAME=elf |
| OUTPUT_FORMAT=${OUTPUT_FORMAT-"elf32-sh64"} |
| NO_REL_RELOCS=yes |
| TEXT_START_ADDR=0x1000 |
| MAXPAGESIZE=128 |
| ARCH=sh |
| MACHINE=sh5 |
| ALIGNMENT=8 |
| TEMPLATE_NAME=elf32 |
| GENERATE_SHLIB_SCRIPT=yes |
| EMBEDDED=yes |
| |
| 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. |
| OTHER_READONLY_SECTIONS=' |
| PROVIDE (___rodata = DEFINED (.rodata) ? .rodata : 0); |
| . = ALIGN (8); |
| ' |
| |
| # Make _edata and .bss aligned by smuggling in an alignment directive. |
| OTHER_GOT_SECTIONS='. = ALIGN (8);' |
| |
| # These are for compatibility with the COFF toolchain. |
| ENTRY=start |
| CTOR_START='___ctors = .;' |
| CTOR_END='___ctors_end = .;' |
| DTOR_START='___dtors = .;' |
| 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" && 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" && 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. |
| EXTRA_EM_FILE=${EXTRA_EM_FILE-sh64elf} |