On Fri, May 16, 2014 at 12:02:12PM +0200, Georg-Johann Lay wrote:
> Am 05/15/2014 09:55 AM, schrieb Senthil Kumar Selvaraj:
> >On Wed, May 14, 2014 at 12:56:54PM +0200, Rainer Orth wrote:
> >>Georg-Johann Lay <a...@gjlay.de> writes:
> >>
> >>>Or what about simply that, which works for me:
> >>>
> >>>
> >>>Index: config/avr/avr.h
> >>>===================================================================
> >>>--- config/avr/avr.h    (revision 210276)
> >>>+++ config/avr/avr.h    (working copy)
> >>>@@ -512,7 +512,11 @@ extern const char *avr_device_to_sp8 (in
> >>>      %{!fenforce-eh-specs:-fno-enforce-eh-specs} \
> >>>      %{!fexceptions:-fno-exceptions}"
> >>>
> >>>+#ifdef HAVE_AS_AVR_LINK_RELAX_OPTION
> >>>+#define ASM_SPEC "%:device_to_as(%{mmcu=*:%*}) %{mrelax:-mlink-relax} "
> >>>+#else
> >>>  #define ASM_SPEC "%:device_to_as(%{mmcu=*:%*}) "
> >>>+#endif
> >>>
> >>>  #define LINK_SPEC "\
> >>>  %{mrelax:--relax\
> >>
> >>Better yet something like
> >>
> >>#ifdef HAVE_AS_AVR_LINK_RELAX_OPTION
> >>#define LINK_RELAX_SPEC "%{mrelax:-mlink-relax} "
> >>#else
> >>#define LINK_RELAX_SPEC ""
> >>#endif
> >>
> >>#define ASM_SPEC "%:device_to_as(%{mmcu=*:%*}) " LINK_RELAX_SPEC
> >>
> >
> >Does this look ok? I don't have commit access, so could someone commit
> >this please?
> 
> Hi, looks fine to me.  Thanks
> 
> Usually, changelogs are more descriptive w.r.t. to what objects are touched 
> like:

Ah ok. Will keep that in mind, thanks.

Regards
Senthil
> 
>       * config/avr/avr.h (LINK_RELAX_SPEC): Pass -mlink-relax to the
>       assembler, depending on HAVE_AS_AVR_LINK_RELAX_OPTION.
>       (ASM_SPEC): Use it.
>       * configure.ac (HAVE_AVR_AS_LINK_RELAX_OPTION) [avr]: New define if
>       assembler supports -mlink-relax.
>       * config.in: Regenerate.
>       * configure: Likewise.
> 
> >
> >Regards
> >Senthil
> >
> >2014-05-15  Senthil Kumar Selvaraj  <senthil_kumar.selva...@atmel.com>
> >
> >     * config/avr/avr.h: Pass on mlink-relax to assembler.
> >     * configure.ac: Test for mlink-relax assembler support.
> >     * config.in: Regenerate.
> >     * configure: Likewise.
> >
> >diff --git gcc/config.in gcc/config.in
> >index c0ba36e..1738301 100644
> >--- gcc/config.in
> >+++ gcc/config.in
> >@@ -575,6 +575,12 @@
> >  #endif
> >
> >
> >+/* Define if your assembler supports -mlink-relax option. */
> >+#ifndef USED_FOR_TARGET
> >+#undef HAVE_AVR_AS_LINK_RELAX_OPTION
> >+#endif
> >+
> >+
> >  /* Define to 1 if you have the `clearerr_unlocked' function. */
> >  #ifndef USED_FOR_TARGET
> >  #undef HAVE_CLEARERR_UNLOCKED
> >diff --git gcc/config/avr/avr.h gcc/config/avr/avr.h
> >index 9d34983..c59c54d 100644
> >--- gcc/config/avr/avr.h
> >+++ gcc/config/avr/avr.h
> >@@ -512,8 +512,14 @@ 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=*:%*}) "
> >-
> >+#ifdef HAVE_AVR_AS_LINK_RELAX_OPTION
> >+#define ASM_RELAX_SPEC "%{mrelax:-mlink-relax}"
> >+#else
> >+#define ASM_RELAX_SPEC ""
> >+#endif
> >+
> >+#define ASM_SPEC "%:device_to_as(%{mmcu=*:%*}) " ASM_RELAX_SPEC
> >+
> >  #define LINK_SPEC "\
> >  %{mrelax:--relax\
> >           %{mpmem-wrap-around:%{mmcu=at90usb8*:--pmem-wrap-around=8k}\
> >diff --git gcc/configure gcc/configure
> >index f4db0a0..2812cdb 100755
> >--- gcc/configure
> >+++ gcc/configure
> >@@ -24014,6 +24014,39 @@ $as_echo "#define HAVE_AS_JSRDIRECT_RELOCS 1" 
> >>>confdefs.h
> >  fi
> >      ;;
> >
> >+  avr-*-*)
> >+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for 
> >-mlink-relax option" >&5
> >+$as_echo_n "checking assembler for -mlink-relax option... " >&6; }
> >+if test "${gcc_cv_as_avr_relax+set}" = set; then :
> >+  $as_echo_n "(cached) " >&6
> >+else
> >+  gcc_cv_as_avr_relax=no
> >+  if test x$gcc_cv_as != x; then
> >+    $as_echo '.text' > conftest.s
> >+    if { ac_try='$gcc_cv_as $gcc_cv_as_flags -mlink-relax -o conftest.o 
> >conftest.s >&5'
> >+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
> >+  (eval $ac_try) 2>&5
> >+  ac_status=$?
> >+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
> >+  test $ac_status = 0; }; }
> >+    then
> >+    gcc_cv_as_avr_relax=yes
> >+    else
> >+      echo "configure: failed program was" >&5
> >+      cat conftest.s >&5
> >+    fi
> >+    rm -f conftest.o conftest.s
> >+  fi
> >+fi
> >+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_avr_relax" >&5
> >+$as_echo "$gcc_cv_as_avr_relax" >&6; }
> >+if test $gcc_cv_as_avr_relax = yes; then
> >+
> >+$as_echo "#define HAVE_AVR_AS_LINK_RELAX_OPTION 1" >>confdefs.h
> >+
> >+fi
> >+  ;;
> >+
> >    cris-*-*)
> >      { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for 
> > -no-mul-bug-abort option" >&5
> >  $as_echo_n "checking assembler for -no-mul-bug-abort option... " >&6; }
> >diff --git gcc/configure.ac gcc/configure.ac
> >index 8f17dfb..49a1f3d 100644
> >--- gcc/configure.ac
> >+++ gcc/configure.ac
> >@@ -3510,6 +3510,13 @@ case "$target" in
> >    [Define if your assembler supports the lituse_jsrdirect relocation.])])
> >      ;;
> >
> >+  avr-*-*)
> >+    gcc_GAS_CHECK_FEATURE([-mlink-relax option], gcc_cv_as_avr_relax,,
> >+      [-mlink-relax], [.text],,
> >+      [AC_DEFINE(HAVE_AVR_AS_LINK_RELAX_OPTION, 1,
> >+            [Define if your assembler supports -mlink-relax option.])])
> >+  ;;
> >+
> >    cris-*-*)
> >      gcc_GAS_CHECK_FEATURE([-no-mul-bug-abort option],
> >        gcc_cv_as_cris_no_mul_bug,[2,15,91],
> >
> 

Reply via email to