]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
configure.ac: Test for .dtprelword support on MIPS.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 3 Jul 2007 20:28:02 +0000 (21:28 +0100)
committerJoseph Myers <jsm28@gcc.gnu.org>
Tue, 3 Jul 2007 20:28:02 +0000 (21:28 +0100)
* configure.ac: Test for .dtprelword support on MIPS.
* configure, config.in: Regenerate.
* config/mips/mips.c (mips_output_dwarf_dtprel): New.
(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.

From-SVN: r126273

gcc/ChangeLog
gcc/config.in
gcc/config/mips/mips.c
gcc/configure
gcc/configure.ac

index 4bf74fedf12f5b8e18a39f9baf7cf12168e9d2be..a822caa9d22eb69280819de9c71d2c0fd1e77b71 100644 (file)
@@ -1,3 +1,10 @@
+2007-07-03  Joseph Myers  <joseph@codesourcery.com>
+
+       * configure.ac: Test for .dtprelword support on MIPS.
+       * configure, config.in: Regenerate.
+       * config/mips/mips.c (mips_output_dwarf_dtprel): New.
+       (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
+
 2007-07-03  Julian Brown  <julian@codesourcery.com>
 
        * config.gcc (with_fpu): Allow --with-fpu=vfp3.
index e5faa7a51889dd267d3025ef866bad01c75d01b5..30b1c426659690a9f2a469bfc8c7fcc3a1089a79 100644 (file)
 #endif
 
 
+/* Define if your assembler supports .dtprelword. */
+#ifndef USED_FOR_TARGET
+#undef HAVE_AS_DTPRELWORD
+#endif
+
+
 /* Define if your assembler supports dwarf2 .file/.loc directives, and
    preserves file table indices exactly as given. */
 #ifndef USED_FOR_TARGET
index 0cb1d1a8c6547a7b6eab689d426969bc5329d277..da93ddcd36f083e71c131ec08fcb564868a1638d 100644 (file)
@@ -428,6 +428,7 @@ static void mips_extra_live_on_entry (bitmap);
 static int mips_comp_type_attributes (tree, tree);
 static int mips_mode_rep_extended (enum machine_mode, enum machine_mode);
 static bool mips_offset_within_alignment_p (rtx, HOST_WIDE_INT);
+static void mips_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
 
 /* Structure to be filled in by compute_frame_size with register
    save masks, and offsets for the current function.  */
@@ -1326,6 +1327,11 @@ static const unsigned char mips16e_save_restore_regs[] = {
 #undef  TARGET_COMP_TYPE_ATTRIBUTES
 #define TARGET_COMP_TYPE_ATTRIBUTES mips_comp_type_attributes
 
+#ifdef HAVE_AS_DTPRELWORD
+#undef TARGET_ASM_OUTPUT_DWARF_DTPREL
+#define TARGET_ASM_OUTPUT_DWARF_DTPREL mips_output_dwarf_dtprel
+#endif
+
 struct gcc_target targetm = TARGET_INITIALIZER;
 
 
@@ -11819,4 +11825,26 @@ mips_mode_rep_extended (enum machine_mode mode, enum machine_mode mode_rep)
   return UNKNOWN;
 }
 \f
+/* MIPS implementation of TARGET_ASM_OUTPUT_DWARF_DTPREL.  */
+
+static void
+mips_output_dwarf_dtprel (FILE *file, int size, rtx x)
+{
+  switch (size)
+    {
+    case 4:
+      fputs ("\t.dtprelword\t", file);
+      break;
+
+    case 8:
+      fputs ("\t.dtpreldword\t", file);
+      break;
+
+    default:
+      gcc_unreachable ();
+    }
+  output_addr_const (file, x);
+  fputs ("+0x8000", file);
+}
+\f
 #include "gt-mips.h"
index 2981115ecce33509ad9a1a04f6a575cebf279d4d..d317039a142ebbdd0483eddd7f2eea9f24ec3227 100755 (executable)
@@ -15906,6 +15906,47 @@ cat >>confdefs.h <<\_ACEOF
 #define HAVE_AS_GNU_ATTRIBUTE 1
 _ACEOF
 
+fi
+
+    echo "$as_me:$LINENO: checking assembler for .dtprelword support" >&5
+echo $ECHO_N "checking assembler for .dtprelword support... $ECHO_C" >&6
+if test "${gcc_cv_as_mips_dtprelword+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  gcc_cv_as_mips_dtprelword=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_dtprelword=yes
+fi
+  elif test x$gcc_cv_as != x; then
+    echo '.section .tdata,"awT",@progbits
+x:
+       .word 2
+       .text
+       .dtprelword x+0x8000' > 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_dtprelword=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_dtprelword" >&5
+echo "${ECHO_T}$gcc_cv_as_mips_dtprelword" >&6
+if test $gcc_cv_as_mips_dtprelword = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_AS_DTPRELWORD 1
+_ACEOF
+
 fi
     ;;
 esac
index 2ec7c31b0dfcdb246094c2c9dfbb31200a42fae3..5a65f89445612e380902e28a44fd05294dc10ab3 100644 (file)
@@ -2953,6 +2953,16 @@ LCF0:
       [.gnu_attribute 4,1],,
       [AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
          [Define if your assembler supports .gnu_attribute.])])
+
+    gcc_GAS_CHECK_FEATURE([.dtprelword support],
+      gcc_cv_as_mips_dtprelword, [2,18,0],,
+      [.section .tdata,"awT",@progbits
+x:
+       .word 2
+       .text
+       .dtprelword x+0x8000],,
+      [AC_DEFINE(HAVE_AS_DTPRELWORD, 1,
+         [Define if your assembler supports .dtprelword.])])
     ;;
 esac