mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
AVR: Only set link-relax elf flag when appropriate.
The AVR target uses a bit in the elf header flags to indicate if the object was assembled ready for linker relaxation. Previously this flag was always set, even when the object was not assembled ready for linker relaxation. This patch moves setting of the flag into the assembler, and sets it only when the assembler is preparing the file for linker relaxation. bfd/ChangeLog: * elf32-avr.c (bfd_elf_avr_final_write_processing): Don't set EF_AVR_LINKRELAX_PREPARED unconditionally. gas/ChangeLog: * config/tc-avr.c: Add include for elf/avr.h. (avr_elf_final_processing): New function. * config/tc-avr.h (elf_tc_final_processing): Define. (avr_elf_final_processing): Declare gas/testsuite/ChangeLog: * gas/avr/link-relax-elf-flag-clear.d: New file. * gas/avr/link-relax-elf-flag-set.d: New file. * gas/avr/link-relax-elf-flag.s: New file.
This commit is contained in:
parent
c01feb3675
commit
eac7440d80
@ -1,3 +1,8 @@
|
||||
2014-12-23 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* elf32-avr.c (bfd_elf_avr_final_write_processing): Don't set
|
||||
EF_AVR_LINKRELAX_PREPARED unconditionally.
|
||||
|
||||
2014-12-23 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elflink.c (_bfd_elf_define_linkage_sym): Set linker_def.
|
||||
|
@ -1522,7 +1522,6 @@ bfd_elf_avr_final_write_processing (bfd *abfd,
|
||||
elf_elfheader (abfd)->e_machine = EM_AVR;
|
||||
elf_elfheader (abfd)->e_flags &= ~ EF_AVR_MACH;
|
||||
elf_elfheader (abfd)->e_flags |= val;
|
||||
elf_elfheader (abfd)->e_flags |= EF_AVR_LINKRELAX_PREPARED;
|
||||
}
|
||||
|
||||
/* Set the right machine number. */
|
||||
|
@ -1,3 +1,10 @@
|
||||
2014-12-23 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* config/tc-avr.c: Add include for elf/avr.h.
|
||||
(avr_elf_final_processing): New function.
|
||||
* config/tc-avr.h (elf_tc_final_processing): Define.
|
||||
(avr_elf_final_processing): Declare
|
||||
|
||||
2014-12-18 Xingxing Pan <xxingpan@marvell.com>
|
||||
|
||||
* gas/config/tc-arm.c (arm_cpus): Add core marvell-whitney.
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "subsegs.h"
|
||||
#include "dwarf2dbg.h"
|
||||
#include "dw2gencfi.h"
|
||||
|
||||
#include "elf/avr.h"
|
||||
|
||||
struct avr_opcodes_s
|
||||
{
|
||||
@ -1848,3 +1848,10 @@ avr_allow_local_subtract (expressionS * left,
|
||||
them. */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
avr_elf_final_processing (void)
|
||||
{
|
||||
if (linkrelax)
|
||||
elf_elfheader (stdoutput)->e_flags |= EF_AVR_LINKRELAX_PREPARED;
|
||||
}
|
||||
|
@ -213,3 +213,6 @@ extern void tc_cfi_frame_initial_instructions (void);
|
||||
relaxation, so do not resolve such expressions in the assembler. */
|
||||
#define md_allow_local_subtract(l,r,s) avr_allow_local_subtract (l, r, s)
|
||||
extern bfd_boolean avr_allow_local_subtract (expressionS *, expressionS *, segT);
|
||||
|
||||
#define elf_tc_final_processing avr_elf_final_processing
|
||||
extern void avr_elf_final_processing (void);
|
||||
|
@ -1,3 +1,9 @@
|
||||
2014-12-23 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||
|
||||
* gas/avr/link-relax-elf-flag-clear.d: New file.
|
||||
* gas/avr/link-relax-elf-flag-set.d: New file.
|
||||
* gas/avr/link-relax-elf-flag.s: New file.
|
||||
|
||||
2014-12-19 Matthew Fortune <matthew.fortune@imgtec.com>
|
||||
|
||||
* gas/mips/r6-64.s: Remove .align directives from LDPC
|
||||
|
10
gas/testsuite/gas/avr/link-relax-elf-flag-clear.d
Normal file
10
gas/testsuite/gas/avr/link-relax-elf-flag-clear.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: AVR, check elf link-relax header flag is clear.
|
||||
#as: -mmcu=avrxmega2
|
||||
#readelf: -h
|
||||
#source: link-relax-elf-flag.s
|
||||
#target: avr-*-*
|
||||
|
||||
ELF Header:
|
||||
#...
|
||||
Flags: 0x66, avr:102
|
||||
#...
|
10
gas/testsuite/gas/avr/link-relax-elf-flag-set.d
Normal file
10
gas/testsuite/gas/avr/link-relax-elf-flag-set.d
Normal file
@ -0,0 +1,10 @@
|
||||
#name: AVR, check elf link-relax header flag is set.
|
||||
#as: -mlink-relax -mmcu=avrxmega2
|
||||
#readelf: -h
|
||||
#source: link-relax-elf-flag.s
|
||||
#target: avr-*-*
|
||||
|
||||
ELF Header:
|
||||
#...
|
||||
Flags: 0xe6, avr:102, link-relax
|
||||
#...
|
4
gas/testsuite/gas/avr/link-relax-elf-flag.s
Normal file
4
gas/testsuite/gas/avr/link-relax-elf-flag.s
Normal file
@ -0,0 +1,4 @@
|
||||
.text
|
||||
.global _start
|
||||
_start:
|
||||
nop
|
Loading…
Reference in New Issue
Block a user