aboutsummaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2015-07-24 16:44:27 +0100
committerNick Clifton <nickc@redhat.com>2015-07-24 16:44:27 +0100
commitaff1a65ecb5cfcf1abfb23ea0e0f37f39e75683e (patch)
tree06e40b920daf39a9f55075b40106bb2d074ba362 /ld/emulparams
parent5826e159863b6cd69953dc01faf7c20414409909 (diff)
downloadbinutils-aff1a65ecb5cfcf1abfb23ea0e0f37f39e75683e.zip
binutils-aff1a65ecb5cfcf1abfb23ea0e0f37f39e75683e.tar.gz
binutils-aff1a65ecb5cfcf1abfb23ea0e0f37f39e75683e.tar.bz2
Fix the evaluation of RL78 complex relocs, by making immediate values be computed relative to a new absolute symbol.
gas * config/tc-rl78.c (rl78_abs_sym): New local variable. (md_begin): Initialise the new symbol. (OPIMM): Define the value to be relative to the new symbol and not the absolute section symbol. ld * emulparams/elf32rl78.sh (OTHER_SECTIONS): Provide a value for the _-rl78_abs__ symbol. tests * gas/all/struct.d: Allow for extra symbols in the output. * gas/macros/test1.d: Likewise. * gas/elf/elf.exp: Add an rl78 machine. * gas/elf/sections2e-rl78: New file. tests * binutils-all/localize-hidden-1.d: Allow for extra symbols in the output. * binutils-all/strip-11.d: Skip for the RL78.
Diffstat (limited to 'ld/emulparams')
-rw-r--r--ld/emulparams/elf32rl78.sh5
1 files changed, 3 insertions, 2 deletions
diff --git a/ld/emulparams/elf32rl78.sh b/ld/emulparams/elf32rl78.sh
index e305aa1..7073efb 100644
--- a/ld/emulparams/elf32rl78.sh
+++ b/ld/emulparams/elf32rl78.sh
@@ -8,7 +8,7 @@ ENTRY=_start
EMBEDDED=yes
TEMPLATE_NAME=elf32
ELFSIZE=32
-EXTRA_EM_FILE=needrelax
+# EXTRA_EM_FILE=needrelax
MAXPAGESIZE=256
# This is like setting STACK_ADDR to 0xffedc, except that the setting can
# be overridden, e.g. --defsym _stack=0x0f00, and that we put an extra
@@ -21,6 +21,7 @@ test -z "$CREATE_SHLIB" && OTHER_SECTIONS=" .stack ${RELOCATING-0}${RELO
${RELOCATING+__stack = .;}
*(.stack)
LONG(0xdead)
- }"
+ }
+ ${RELOCATING+PROVIDE (__rl78_abs__ = 0);}"
# We do not need .stack for shared library.
test -n "$CREATE_SHLIB" && OTHER_SECTIONS=""