This patch modifies AVR target's ASM spec to pass -mlink-relax to the assembler if -mrelax is passed to the compiler driver. This was already being passed on to the linker, this patch merely makes the assembler also aware of it.
The corresponding patch in binutils to handle the -mlink-relax patch is already committed in the binutils repo. I'm not sure how to manage a running a newer gcc with an older version of binutils though - how is this generally handled? If ok, could someone commit please? I don't have commit access. Regards Senthil 2014-04-11 Senthil Kumar Selvaraj <senthil_kumar.selva...@atmel.com> * config/avr/avr.h: Modify ASM_SPEC to pass -mlink-relax to assembler. diff --git gcc/config/avr/avr.h gcc/config/avr/avr.h index 78434ec..c1b4dd9 100644 --- gcc/config/avr/avr.h +++ gcc/config/avr/avr.h @@ -512,7 +512,8 @@ extern const char *avr_device_to_sp8 (int argc, const char **argv); %{!fenforce-eh-specs:-fno-enforce-eh-specs} \ %{!fexceptions:-fno-exceptions}" -#define ASM_SPEC "%:device_to_as(%{mmcu=*:%*}) " +#define ASM_SPEC "%:device_to_as(%{mmcu=*:%*})\ +%{mrelax:-mlink-relax}" #define LINK_SPEC "\ %{mrelax:--relax\