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], > > >