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.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\


Reply via email to