aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2007-06-30 23:01:30 +0100
committerJoseph Myers <jsm28@gcc.gnu.org>2007-06-30 23:01:30 +0100
commitdcb957d9dc7d26f686aefc1345e6318284da7a8a (patch)
tree5793a0fcb7aa717563d22023f4f092e73a1c855d
parent81c3e25a406b4a132c67ed93b8bbbc0ecf9caca5 (diff)
downloadgcc-dcb957d9dc7d26f686aefc1345e6318284da7a8a.zip
gcc-dcb957d9dc7d26f686aefc1345e6318284da7a8a.tar.gz
gcc-dcb957d9dc7d26f686aefc1345e6318284da7a8a.tar.bz2
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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config.in6
-rw-r--r--gcc/config/mips/mips.c5
-rwxr-xr-xgcc/configure37
-rw-r--r--gcc/configure.ac6
5 files changed, 61 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index dc35a49..c8f71ee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2007-06-30 Joseph Myers <joseph@codesourcery.com>
+
+ * 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 <ubizjak@gmail.com>
PR target/32433
diff --git a/gcc/config.in b/gcc/config.in
index 22f9685..e5faa7a 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 a132f0f..a675499 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 a5f9fe3..68f8ed6 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -15833,6 +15833,43 @@ cat >>confdefs.h <<\_ACEOF
_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 7a29b91..3e0f53a 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