Message ID | 20140411151008.GA861@atmel.com |
---|---|
State | New |
Headers | show |
Senthil Kumar Selvaraj schrieb: > 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? The right place is gcc/configure.ac and have a macro defined depending on whether gas supports -mlink-relax. Same should be done for -mrmw, IMO, for similar reasons, e.g. something like case "$target" in ... avr-*-*) ... gcc_GAS_CHECK_FEATURE([-mrmw option], gcc_cv_as_avr_mrmw,, [-mrmw], [.text],, [AC_DEFINE(HAVE_AS_AVR_MRMW_OPTION, 1, [Define if your assembler supports -mrmw option.])]) or gcc_GAS_CHECK_FEATURE([-mrmw option], gcc_cv_as_avr_mrmw,, [-mrmw], [.text],,,) if test x$gcc_cv_as_avr_mrmw = xyes; then AC_DEFINE(HAVE_AS_AVR_MRMW_OPTION, 1, [Define if your assembler supports the -mrmw option.]) However, the gcc-4_9-branch has already been created... Johann > If ok, could someone commit please? I don't have commit access. > > Regards > Senthil > > 2014-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@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\ >
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\