mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 06:45:56 +08:00
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.
This commit is contained in:
@ -1,3 +1,9 @@
|
||||
2014-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
||||
|
||||
* ld-avr/norelax_diff.d: New testcase.
|
||||
* ld-avr/relax_diff.d: Likewise.
|
||||
* ld-avr/relax.s: Likewise.
|
||||
|
||||
2014-04-05 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* ld-plugin/lto.exp: Make "-Wp," prefix optional when filtering
|
||||
|
31
ld/testsuite/ld-avr/avr.exp
Normal file
31
ld/testsuite/ld-avr/avr.exp
Normal file
@ -0,0 +1,31 @@
|
||||
# Copyright 2014
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
#
|
||||
# Some AVR tests
|
||||
#
|
||||
|
||||
if {![istarget avr-*-*]} {
|
||||
return
|
||||
}
|
||||
|
||||
set avr_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
|
||||
foreach avr_test $avr_test_list {
|
||||
verbose [file rootname $avr_test]
|
||||
run_dump_test [file rootname $avr_test]
|
||||
}
|
||||
|
13
ld/testsuite/ld-avr/norelax_diff.d
Normal file
13
ld/testsuite/ld-avr/norelax_diff.d
Normal file
@ -0,0 +1,13 @@
|
||||
#name: AVR No change in behavior without relaxation
|
||||
#as: -mmcu=avrxmega2
|
||||
#ld: -mavrxmega2
|
||||
#source: relax.s
|
||||
#objdump: -s
|
||||
#target: avr-*-*
|
||||
|
||||
.*: file format elf32-avr
|
||||
|
||||
Contents of section .text:
|
||||
0000 0c940000 .*
|
||||
Contents of section .data:
|
||||
802000 0400 .*
|
12
ld/testsuite/ld-avr/relax.s
Normal file
12
ld/testsuite/ld-avr/relax.s
Normal file
@ -0,0 +1,12 @@
|
||||
.file "relax.s"
|
||||
.section .text,"ax",@progbits
|
||||
main:
|
||||
L1:
|
||||
jmp L1
|
||||
L2:
|
||||
.global x
|
||||
.section .data
|
||||
.type x, @object
|
||||
.size x, 2
|
||||
x:
|
||||
.word L2 - L1
|
14
ld/testsuite/ld-avr/relax_diff.d
Normal file
14
ld/testsuite/ld-avr/relax_diff.d
Normal file
@ -0,0 +1,14 @@
|
||||
#name: AVR Account for relaxation in label differences
|
||||
#as: -mmcu=avrxmega2 -mlink-relax
|
||||
#ld: -mavrxmega2 --relax
|
||||
#source: relax.s
|
||||
#objdump: -s
|
||||
#target: avr-*-*
|
||||
|
||||
.*: file format elf32-avr
|
||||
|
||||
Contents of section .text:
|
||||
0000 ffcf .*
|
||||
Contents of section .data:
|
||||
802000 0200 .*
|
||||
|
Reference in New Issue
Block a user