xref: /netbsd-src/external/gpl3/binutils.old/dist/ld/emulparams/elf32lriscv-defs.sh (revision a45db23f655e22f0c2354600d3b3c2cb98abf2dc)
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