Adds support to the RL78 port for linker relaxation affecting .debug sections.
authorNick Clifton <nickc@redhat.com>
Tue, 14 Apr 2015 15:23:33 +0000 (16:23 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 14 Apr 2015 15:23:33 +0000 (16:23 +0100)
commit6ff71e768112317de1236a429e7c88c9d3e32116
tree3d24e09232efe594ec6a32482a95b2f161250e4e
parent9e811bc379ef78f0e2beadda9ed3ce6679ded7ea
Adds support to the RL78 port for linker relaxation affecting .debug sections.

gas * config/tc-rl78.h (TC_LINKRELAX_FIXUP): Define.
(TC_FORCE_RELOCATION_SUB_SAME): Define.
(DWARF2_USE_FIXED_ADVANCE_PC): Define.

* gas/lns/lns.exp: Add RL78 to list of targets using
DW_LNS_fixed_advance_pc.

bfd * elf32-rl78.c (RL78_OP_REL): New macro.
(rl78_elf_howto_table): Use it for complex relocs.
(get_symbol_value): Handle the cases when the info or status
arguments are NULL.
(get_romstart): Cache the status returned by get_symbol_value.
(get_ramstart): Likewise.
(RL78_STACK_PUSH): Generate an error message if the stack
overflows.
(RL78_STACK_POP): Likewise for underflows.
(rl78_compute_complex_reloc): New function.  Contains the basic
processing code for all RL78 complex relocs.
(rl78_special_reloc): New function.  Provides special reloc
handling for complex relocs.
(rl78_elf_relocate_section): Use rl78_compute_complex_reloc.
(rl78_offset_for_reloc): Likewise.

binutils* readelf.c (target_specific_reloc_handling): Add code to handle
RL78 complex relocs.
bfd/ChangeLog
bfd/elf32-rl78.c
binutils/ChangeLog
binutils/readelf.c
gas/ChangeLog
gas/config/tc-rl78.c
gas/config/tc-rl78.h
gas/testsuite/ChangeLog
gas/testsuite/gas/lns/lns.exp