43 lines
1.4 KiB
Bash
43 lines
1.4 KiB
Bash
|
# This is an ELF platform.
|
||
|
SCRIPT_NAME=elf
|
||
|
ARCH=riscv
|
||
|
NO_REL_RELOCS=yes
|
||
|
|
||
|
TEMPLATE_NAME=elf32
|
||
|
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
|
||
|
|
||
|
GENERATE_SHLIB_SCRIPT=yes
|
||
|
GENERATE_PIE_SCRIPT=yes
|
||
|
|
||
|
TEXT_START_ADDR=0x10000
|
||
|
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
||
|
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
|
||
|
|
||
|
SDATA_START_SYMBOLS="_gp = . + 0x800;
|
||
|
*(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)"
|
||
|
|
||
|
# Place the data section before text section. This enables more compact
|
||
|
# global variable access for RVC code via linker relaxation.
|
||
|
INITIAL_READONLY_SECTIONS="
|
||
|
.data : { *(.data) *(.data.*) *(.gnu.linkonce.d.*) }
|
||
|
.rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) }
|
||
|
.srodata : { ${SDATA_START_SYMBOLS} }
|
||
|
.sdata : { *(.sdata .sdata.* .gnu.linkonce.s.*) }
|
||
|
.sbss : { *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) }
|
||
|
.bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) }
|
||
|
. = ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1));"
|
||
|
INITIAL_READONLY_SECTIONS=".interp : { *(.interp) } ${CREATE_PIE-${INITIAL_READONLY_SECTIONS}}"
|
||
|
INITIAL_READONLY_SECTIONS="${RELOCATING+${CREATE_SHLIB-${INITIAL_READONLY_SECTIONS}}}"
|
||
|
|
||
|
SDATA_START_SYMBOLS="${CREATE_PIE+${SDATA_START_SYMBOLS}}"
|