1# This is an ELF platform. 2SCRIPT_NAME=elf 3ARCH=riscv 4NO_REL_RELOCS=yes 5 6TEMPLATE_NAME=elf 7EXTRA_EM_FILE=riscvelf 8 9ELFSIZE=32 10 11if test `echo "$host" | sed -e s/64//` = `echo "$target" | sed -e s/64//`; then 12 case " $EMULATION_LIBPATH " in 13 *" ${EMULATION_NAME} "*) 14 NATIVE=yes 15 ;; 16 esac 17fi 18 19# Enable shared library support for everything except an embedded elf target. 20case "$target" in 21 riscv*-elf) 22 ;; 23 *) 24 GENERATE_SHLIB_SCRIPT=yes 25 GENERATE_PIE_SCRIPT=yes 26 ;; 27esac 28 29TEXT_START_ADDR=0x10000 30MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" 31COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" 32 33DATA_START_SYMBOLS="${CREATE_SHLIB-__DATA_BEGIN__ = .;}" 34 35SDATA_START_SYMBOLS="${CREATE_SHLIB-__SDATA_BEGIN__ = .;} 36 *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)" 37 38INITIAL_READONLY_SECTIONS=".interp : { *(.interp) } ${CREATE_PIE-${INITIAL_READONLY_SECTIONS}}" 39INITIAL_READONLY_SECTIONS="${RELOCATING+${CREATE_SHLIB-${INITIAL_READONLY_SECTIONS}}}" 40 41# We must cover as much of sdata as possible if it exists. If sdata+bss is 42# smaller than 0x1000 then we should start from bss end to cover as much of 43# the program as possible. But we can't allow gp to cover any of rodata, as 44# the address of variables in rodata may change during relaxation, so we start 45# from data in that case. 46OTHER_END_SYMBOLS="${CREATE_SHLIB-__BSS_END__ = .; 47 __global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800, 48 MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800));}" 49