Remove ATTRIBUTE_UNUSED check from ARI
[deliverable/binutils-gdb.git] / ld / emulparams / elf32lriscv-defs.sh
index f373eced89b060acc018ad6f6762026b0e100cf4..bc464918e5cb5d68f4b09d1c22bdcfb510fece43 100644 (file)
@@ -3,7 +3,7 @@ SCRIPT_NAME=elf
 ARCH=riscv
 NO_REL_RELOCS=yes
 
-TEMPLATE_NAME=elf32
+TEMPLATE_NAME=elf
 EXTRA_EM_FILE=riscvelf
 
 ELFSIZE=32
@@ -30,9 +30,19 @@ TEXT_START_ADDR=0x10000
 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
 COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
 
-SDATA_START_SYMBOLS="__global_pointer$ = . + 0x800;"
-SDATA_START_SYMBOLS="${CREATE_SHLIB-${SDATA_START_SYMBOLS}}
+DATA_START_SYMBOLS="${CREATE_SHLIB-__DATA_BEGIN__ = .;}"
+
+SDATA_START_SYMBOLS="${CREATE_SHLIB-__SDATA_BEGIN__ = .;}
     *(.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}}}"
+
+# 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));}"
This page took 0.024743 seconds and 4 git commands to generate.