mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-27 04:52:05 +08:00
1b03c32c3b
ld/ * emulparams/cskyelf.sh (TEXT_START_ADDR): Change to 0x60000000. (DATA_ADDR) : Define. (OTHER_SYMBOLS) : Define. (OTHER_BSS_SYMBOLS) : Set symbol __sbss__. (OTHER_BSS_END_SYMBOLS) : Set symbol __ebss__. * ld/emulparams/cskyelf_linux.sh : Don't include cskyelf.sh. * testsuite/ld-csky/data.d : Fix '/s*' to match spaces. * testsuite/ld-csky/hilo16.d : Likewise. Change-Id: Ia29b32eab4157ae5be0fc0b6125fb5b7d9dac939
54 lines
1.6 KiB
Bash
54 lines
1.6 KiB
Bash
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)"
|
|
TEXT_START_ADDR=0x60000000
|
|
DATA_ADDR=0x20000000
|
|
|
|
# The default address spaces
|
|
# RAM: 0x0 - 0x1FFFFFFF
|
|
# RAM: 0x20000000 - 0x3FFFFFFF
|
|
# RAM: 0x60000000 - 0x7FFFFFFF
|
|
#
|
|
# There are some symbols used in the crt.S
|
|
# __stack: The stack top
|
|
# __heap_start: The heap start
|
|
# __heap_end: The heap end
|
|
# __csky_exit: Be used by qemu to check exit
|
|
|
|
OTHER_SYMBOLS='
|
|
PROVIDE (__stack = 0x01000000 - 0x8);
|
|
PROVIDE (__heap_start = 0x00000100);
|
|
PROVIDE (__heap_end = 0x00900000);
|
|
PROVIDE (__csky_exit = 0x10002000);
|
|
'
|
|
CHECK_RELOCS_AFTER_OPEN_INPUT=yes
|
|
NONPAGED_TEXT_START_ADDR=0
|
|
ATTRS_SECTIONS='.csky.attributes 0 : { KEEP (*(.csky.attributes)) KEEP (*(.csky.attributes)) }'
|
|
ARCH=csky
|
|
EMBEDDED=yes
|
|
EXTRA_EM_FILE=cskyelf
|
|
|
|
# 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
|
|
|
|
ENTRY=__start
|
|
OTHER_BSS_SYMBOLS="__sbss__ = . ;"
|
|
OTHER_BSS_END_SYMBOLS="__ebss__ = . ;"
|
|
|
|
# This sets the stack to the top of the simulator memory (2^19 bytes).
|
|
# STACK_ADDR=0x80000
|
|
|
|
TEMPLATE_NAME=elf
|