From: Joseph Myers Date: Sat, 30 Jun 2007 22:01:30 +0000 (+0100) Subject: configure.ac: Check for .gnu_attribute on MIPS. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=dcb957d9dc7d26f686aefc1345e6318284da7a8a;p=gcc.git configure.ac: Check for .gnu_attribute on MIPS. * configure.ac: Check for .gnu_attribute on MIPS. * configure, config.in: Regenerate. * config/mips/mips.c (mips_file_start): If supported, output attribute for floating-point ABI. From-SVN: r126157 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dc35a49316b..c8f71eeb1a6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2007-06-30 Joseph Myers + + * configure.ac: Check for .gnu_attribute on MIPS. + * configure, config.in: Regenerate. + * config/mips/mips.c (mips_file_start): If supported, output + attribute for floating-point ABI. + 2007-06-30 Uros Bizjak PR target/32433 diff --git a/gcc/config.in b/gcc/config.in index 22f9685887d..e5faa7a5188 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -210,6 +210,12 @@ #endif +/* Define if your assembler supports .gnu_attribute. */ +#ifndef USED_FOR_TARGET +#undef HAVE_AS_GNU_ATTRIBUTE +#endif + + /* Define true if the assembler supports '.long foo@GOTOFF'. */ #ifndef USED_FOR_TARGET #undef HAVE_AS_GOTOFF_IN_DATA diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index a132f0ff4c9..a675499596c 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -6010,6 +6010,11 @@ mips_file_start (void) if (!TARGET_IRIX) { +#ifdef HAVE_AS_GNU_ATTRIBUTE + fprintf (asm_out_file, "\t.gnu_attribute 4, %d\n", + TARGET_HARD_FLOAT_ABI ? (TARGET_DOUBLE_FLOAT ? 1 : 2) : 3); +#endif + /* Generate a special section to describe the ABI switches used to produce the resultant binary. This used to be done by the assembler setting bits in the ELF header's flags field, but we have run out of diff --git a/gcc/configure b/gcc/configure index a5f9fe396d1..68f8ed6e425 100755 --- a/gcc/configure +++ b/gcc/configure @@ -15832,6 +15832,43 @@ cat >>confdefs.h <<\_ACEOF #define HAVE_AS_NO_SHARED 1 _ACEOF +fi + + echo "$as_me:$LINENO: checking assembler for .gnu_attribute support" >&5 +echo $ECHO_N "checking assembler for .gnu_attribute support... $ECHO_C" >&6 +if test "${gcc_cv_as_mips_gnu_attribute+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gcc_cv_as_mips_gnu_attribute=no + if test $in_tree_gas = yes; then + if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 18 \) \* 1000 + 0` + then gcc_cv_as_mips_gnu_attribute=yes +fi + elif test x$gcc_cv_as != x; then + echo '.gnu_attribute 4,1' > conftest.s + if { ac_try='$gcc_cv_as -o conftest.o conftest.s >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } + then + gcc_cv_as_mips_gnu_attribute=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi +fi +echo "$as_me:$LINENO: result: $gcc_cv_as_mips_gnu_attribute" >&5 +echo "${ECHO_T}$gcc_cv_as_mips_gnu_attribute" >&6 +if test $gcc_cv_as_mips_gnu_attribute = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_AS_GNU_ATTRIBUTE 1 +_ACEOF + fi ;; esac diff --git a/gcc/configure.ac b/gcc/configure.ac index 7a29b916637..3e0f53adbec 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -2943,6 +2943,12 @@ LCF0: gcc_cv_as_mips_no_shared, [2,16,0], [-mno-shared], [nop],, [AC_DEFINE(HAVE_AS_NO_SHARED, 1, [Define if the assembler understands -mno-shared.])]) + + gcc_GAS_CHECK_FEATURE([.gnu_attribute support], + gcc_cv_as_mips_gnu_attribute, [2,18,0],, + [.gnu_attribute 4,1],, + [AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1, + [Define if your assembler supports .gnu_attribute.])]) ;; esac