diff options
author | Denis Chertykov <chertykov@gmail.com> | 2014-04-10 19:50:33 +0400 |
---|---|---|
committer | Denis Chertykov <chertykov@gmail.com> | 2014-04-10 19:50:33 +0400 |
commit | e4ef1b6c3fee295ab41138bf77a82dff16f1d7c3 (patch) | |
tree | 4f6ad10afb271882fe8624a082ecb088a1db0feb /include/elf | |
parent | 9d497a19eabe25b3af1cdd50a957592ed22658e5 (diff) | |
download | gdb-e4ef1b6c3fee295ab41138bf77a82dff16f1d7c3.zip gdb-e4ef1b6c3fee295ab41138bf77a82dff16f1d7c3.tar.gz gdb-e4ef1b6c3fee295ab41138bf77a82dff16f1d7c3.tar.bz2 |
bfd/ChangeLog
* elf32-avr.c: Add DIFF relocations for AVR.
(avr_final_link_relocate): Handle the DIFF relocs.
(bfd_elf_avr_diff_reloc): New.
(elf32_avr_is_diff_reloc): New.
(elf32_avr_adjust_diff_reloc_value): Reduce difference value.
(elf32_avr_relax_delete_bytes): Recompute difference after deleting
bytes.
* reloc.c: Add BFD_RELOC_AVR_DIFF8/16/32 relocations
gas/ChangeLog
* config/tc-avr.c: Add new flag mlink-relax.
(md_show_usage): Add flag and help text.
(md_parse_option): Record whether link relax is turned on.
(relaxable_section): New.
(avr_validate_fix_sub): New.
(avr_force_relocation): New.
(md_apply_fix): Generate DIFF reloc.
(avr_allow_local_subtract): New.
* config/tc-avr.h (TC_LINKRELAX_FIXUP): Define to 0.
(TC_FORCE_RELOCATION): Define.
(TC_FORCE_RELOCATION_SUB_SAME): Define.
(TC_VALIDATE_FIX_SUB): Define.
(avr_force_relocation): Declare.
(avr_validate_fix_sub): Declare.
(md_allow_local_subtract): Define.
(avr_allow_local_subtract): Declare.
gas/testsuite/ChangeLog
* gas/avr/diffreloc_withrelax.d: New testcase.
* gas/avr/noreloc_withoutrelax.d: Likewise.
* gas/avr/relax.s: Likewise.
include/ChangeLog
* elf/avr.h: Add new DIFF relocs.
ld/testsuite/ChangeLog
* ld-avr/norelax_diff.d: New testcase.
* ld-avr/relax_diff.d: Likewise.
* ld-avr/relax.s: Likewise.
Diffstat (limited to 'include/elf')
-rw-r--r-- | include/elf/avr.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/elf/avr.h b/include/elf/avr.h index 5480dd4..06a7f13 100644 --- a/include/elf/avr.h +++ b/include/elf/avr.h @@ -80,6 +80,9 @@ START_RELOC_NUMBERS (elf_avr_reloc_type) RELOC_NUMBER (R_AVR_8_LO8, 27) RELOC_NUMBER (R_AVR_8_HI8, 28) RELOC_NUMBER (R_AVR_8_HLO8, 29) + RELOC_NUMBER (R_AVR_DIFF8, 30) + RELOC_NUMBER (R_AVR_DIFF16, 31) + RELOC_NUMBER (R_AVR_DIFF32, 32) END_RELOC_NUMBERS (R_AVR_max) #endif /* _ELF_AVR_H */ |