blob: 118be1acecb08f4c6df74df485b32d5a48d6e294 [file] [log] [blame]
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf32-csky-little"
BIG_OUTPUT_FORMAT="elf32-csky-big"
LITTLE_OUTPUT_FORMAT="elf32-csky-little"
NO_REL_RELOCS=yes
TARGET_PAGE_SIZE=0x400
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
CHECK_RELOCS_AFTER_OPEN_INPUT=yes
TEXT_START_ADDR=0x8000
NONPAGED_TEXT_START_ADDR=0
ARCH=csky
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
# There is a problem with the NOP value - it must work for both
# big endian and little endian systems. Unfortunately there is
# no symmetrical mcore opcode that functions as a noop. The
# chosen solution is to use "tst r0, r14". This is a symmetrical
# value, and apart from the corruption of the C bit, it has no other
# side effects. Since the carry bit is never tested without being
# explicitly set first, and since the NOP code is only used as a
# fill value between independently viable pieces of code, it should
# not matter.
NOP=0
OTHER_BSS_SYMBOLS="__bss_start__ = . ;"
OTHER_BSS_END_SYMBOLS="__bss_end__ = . ;"
# This sets the stack to the top of the simulator memory (2^19 bytes).
# STACK_ADDR=0x80000
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
GENERATE_COMBRELOC_SCRIPT=yes
EXTRA_EM_FILE=cskyelf