diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-avr.c | 1 | ||||
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-avr.c | 9 | ||||
-rw-r--r-- | gas/config/tc-avr.h | 3 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/avr/link-relax-elf-flag-clear.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/avr/link-relax-elf-flag-set.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/avr/link-relax-elf-flag.s | 4 |
9 files changed, 53 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4bb379b..8e6fa09 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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. diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c index 3d52940..6333855 100644 --- a/bfd/elf32-avr.c +++ b/bfd/elf32-avr.c @@ -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. */ diff --git a/gas/ChangeLog b/gas/ChangeLog index 0df23d9..d5c489a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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. diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c index dfe66c6..bda0bd6 100644 --- a/gas/config/tc-avr.c +++ b/gas/config/tc-avr.c @@ -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; +} diff --git a/gas/config/tc-avr.h b/gas/config/tc-avr.h index fb596ad..81ba0fc 100644 --- a/gas/config/tc-avr.h +++ b/gas/config/tc-avr.h @@ -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); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 7c76bbc..d6d6450 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -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 diff --git a/gas/testsuite/gas/avr/link-relax-elf-flag-clear.d b/gas/testsuite/gas/avr/link-relax-elf-flag-clear.d new file mode 100644 index 0000000..88cd3c9 --- /dev/null +++ b/gas/testsuite/gas/avr/link-relax-elf-flag-clear.d @@ -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 +#...
\ No newline at end of file diff --git a/gas/testsuite/gas/avr/link-relax-elf-flag-set.d b/gas/testsuite/gas/avr/link-relax-elf-flag-set.d new file mode 100644 index 0000000..5614d3f --- /dev/null +++ b/gas/testsuite/gas/avr/link-relax-elf-flag-set.d @@ -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 +#...
\ No newline at end of file diff --git a/gas/testsuite/gas/avr/link-relax-elf-flag.s b/gas/testsuite/gas/avr/link-relax-elf-flag.s new file mode 100644 index 0000000..af543e1 --- /dev/null +++ b/gas/testsuite/gas/avr/link-relax-elf-flag.s @@ -0,0 +1,4 @@ + .text + .global _start +_start: + nop |