fa1c017017
The R_ARC_SDA32 is wrongly described as a ME relocation, fix it. Offset the __SDATA_BEGIN__ to take advantage of the signed 9-bit field of the load/store instructions. include/ 2016-07-08 Claudiu Zissulescu <claziss@synopsys.com> * elf/arc-reloc.def (ARC_SDA32): Don't use ME transformation. ld/ 2016-07-08 Claudiu Zissulescu <claziss@synopsys.com> * emulparams/arcelf.sh (SDATA_START_SYMBOLS): Add offset. * testsuite/ld-arc/sda-relocs.dd: New file. * testsuite/ld-arc/sda-relocs.ld: Likewise. * testsuite/ld-arc/sda-relocs.rd: Likewise. * testsuite/ld-arc/sda-relocs.s: Likewise. * testsuite/ld-arc/arc.exp: Add SDA tests.
23 lines
581 B
Bash
23 lines
581 B
Bash
. ${srcdir}/emulparams/arc-endianness.sh
|
|
SCRIPT_NAME=elfarc
|
|
TEMPLATE_NAME=elf32
|
|
if [ "x${ARC_ENDIAN}" = "xbig" ]; then
|
|
OUTPUT_FORMAT="elf32-bigarc"
|
|
else
|
|
OUTPUT_FORMAT="elf32-littlearc"
|
|
fi
|
|
LITTLE_OUTPUT_FORMAT="elf32-littlearc"
|
|
BIG_OUTPUT_FORMAT="elf32-bigarc"
|
|
# leave room for vector table, 32 vectors * 8 bytes
|
|
TEXT_START_ADDR=0x100
|
|
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
|
|
#NONPAGED_TEXT_START_ADDR=0x0
|
|
ARCH=arc
|
|
MACHINE=
|
|
ENTRY=__start
|
|
SDATA_START_SYMBOLS='__SDATA_BEGIN__ = . + 0x100;'
|
|
OTHER_SECTIONS="/DISCARD/ : { *(.__arc_profile_*) }"
|
|
EMBEDDED=yes
|
|
|
|
GENERATE_SHLIB_SCRIPT=yes
|