Retro68/binutils/ld/emulparams/elf32lriscv-defs.sh

50 lines
1.5 KiB
Bash
Raw Normal View History

2017-04-10 11:32:00 +00:00
# This is an ELF platform.
SCRIPT_NAME=elf
ARCH=riscv
NO_REL_RELOCS=yes
2022-10-27 18:45:45 +00:00
TEMPLATE_NAME=elf
2017-04-10 11:32:00 +00:00
EXTRA_EM_FILE=riscvelf
ELFSIZE=32
if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then
case " $EMULATION_LIBPATH " in
*" ${EMULATION_NAME} "*)
NATIVE=yes
;;
esac
fi
2018-12-28 15:25:28 +00:00
# Enable shared library support for everything except an embedded elf target.
case "$target" in
riscv*-elf)
;;
*)
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
;;
esac
2017-04-10 11:32:00 +00:00
2022-10-27 18:45:45 +00:00
IREL_IN_PLT=
2017-04-10 11:32:00 +00:00
TEXT_START_ADDR=0x10000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
2022-10-27 18:45:45 +00:00
DATA_START_SYMBOLS="${CREATE_SHLIB-__DATA_BEGIN__ = .;}"
SDATA_START_SYMBOLS="${CREATE_SHLIB-__SDATA_BEGIN__ = .;}
2017-04-10 11:32:00 +00:00
*(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)"
INITIAL_READONLY_SECTIONS=".interp : { *(.interp) } ${CREATE_PIE-${INITIAL_READONLY_SECTIONS}}"
INITIAL_READONLY_SECTIONS="${RELOCATING+${CREATE_SHLIB-${INITIAL_READONLY_SECTIONS}}}"
2022-10-27 18:45:45 +00:00
# We must cover as much of sdata as possible if it exists. If sdata+bss is
# smaller than 0x1000 then we should start from bss end to cover as much of
# the program as possible. But we can't allow gp to cover any of rodata, as
# the address of variables in rodata may change during relaxation, so we start
# from data in that case.
OTHER_END_SYMBOLS="${CREATE_SHLIB-__BSS_END__ = .;
__global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800,
MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800));}"