configure.ac: Add check for aarch64 assembler -mabi support.
authorKugan Vivekanandarajah <kuganv@linaro.org>
Wed, 11 Dec 2013 12:57:08 +0000 (12:57 +0000)
committerChristophe Lyon <clyon@gcc.gnu.org>
Wed, 11 Dec 2013 12:57:08 +0000 (13:57 +0100)
2013-12-11  Kugan Vivekanandarajah  <kuganv@linaro.org>

* configure.ac: Add check for aarch64 assembler -mabi support.
* configure: Regenerate.
* config.in: Regenerate.
* config/aarch64/aarch64-elf.h (ASM_MABI_SPEC): New define.
(ASM_SPEC): Update to substitute -mabi with ASM_MABI_SPEC.
* config/aarch64/aarch64.h (aarch64_override_options): Issue error
if assembler does not support -mabi and option ilp32 is selected.
* doc/install.texi: Added note that building gcc 4.9 and after
with pre 2.24 binutils will not support -mabi=ilp32.

From-SVN: r205891

gcc/ChangeLog
gcc/config/aarch64/aarch64-elf.h
gcc/config/aarch64/aarch64.c
gcc/configure.ac
gcc/doc/install.texi

index 8a8f8a9..7e82464 100644 (file)
@@ -1,3 +1,15 @@
+2013-12-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
+
+       * configure.ac: Add check for aarch64 assembler -mabi support.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * config/aarch64/aarch64-elf.h (ASM_MABI_SPEC): New define.
+       (ASM_SPEC): Update to substitute -mabi with ASM_MABI_SPEC.
+       * config/aarch64/aarch64.h (aarch64_override_options): Issue error
+       if assembler does not support -mabi and option ilp32 is selected.
+       * doc/install.texi: Added note that building gcc 4.9 and after
+       with pre 2.24 binutils will not support -mabi=ilp32.
+
 2013-12-11  Marek Polacek  <polacek@redhat.com>
 
        PR sanitizer/59399
index 4757d22..a66c3db 100644 (file)
   " %{!mbig-endian:%{!mlittle-endian:" ENDIAN_SPEC "}}" \
   " %{!mabi=*:" ABI_SPEC "}"
 
+#ifdef HAVE_AS_MABI_OPTION
+#define ASM_MABI_SPEC  "%{mabi=*:-mabi=%*}"
+#else
+#define ASM_MABI_SPEC  "%{mabi=lp64:}"
+#endif
+
 #ifndef ASM_SPEC
 #define ASM_SPEC "\
 %{mbig-endian:-EB} \
 %{mlittle-endian:-EL} \
 %{mcpu=*:-mcpu=%*} \
-%{march=*:-march=%*} \
-%{mabi=*:-mabi=%*}"
+%{march=*:-march=%*}" \
+ASM_MABI_SPEC
 #endif
 
 #undef TYPE_OPERAND_FMT
index 1c881c8..afcf43f 100644 (file)
@@ -5187,6 +5187,13 @@ aarch64_override_options (void)
       aarch64_parse_tune ();
     }
 
+#ifndef HAVE_AS_MABI_OPTION
+  /* The compiler may have been configured with 2.23.* binutils, which does
+     not have support for ILP32.  */
+  if (TARGET_ILP32)
+    error ("Assembler does not support -mabi=ilp32");
+#endif
+
   initialize_aarch64_code_model ();
 
   aarch64_build_bitmask_table ();
index 1c667bb..59de08d 100644 (file)
@@ -3494,6 +3494,35 @@ AC_DEFINE_UNQUOTED(HAVE_LTO_PLUGIN, $gcc_cv_lto_plugin,
 AC_MSG_RESULT($gcc_cv_lto_plugin)
 
 case "$target" in
+  aarch64*-*-*)
+    gcc_GAS_CHECK_FEATURE([-mabi option], gcc_cv_as_aarch64_mabi,,
+                          [-mabi=lp64], [.text],,,)
+    if test x$gcc_cv_as_aarch64_mabi = xyes; then
+      AC_DEFINE(HAVE_AS_MABI_OPTION, 1,
+                [Define if your assembler supports the -mabi option.])
+    else
+      if test x$with_abi = xilp32; then
+        AC_MSG_ERROR([Assembler does not support -mabi=ilp32.\
+                     Upgrade the Assembler.])
+      fi
+      if test x"$with_multilib_list" = xdefault; then
+        TM_MULTILIB_CONFIG=lp64
+      else
+        aarch64_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
+        for aarch64_multilib in ${aarch64_multilibs}; do
+          case ${aarch64_multilib} in
+            ilp32)
+              AC_MSG_ERROR([Assembler does not support -mabi=ilp32.\
+                            Upgrade the Assembler.])
+              ;;
+            *)
+              ;;
+          esac
+        done
+      fi
+    fi
+    ;;
+
   # All TARGET_ABI_OSF targets.
   alpha*-*-linux* | alpha*-*-*bsd*)
     gcc_GAS_CHECK_FEATURE([explicit relocation support],
index 85899b0..71aa7fc 100644 (file)
@@ -3751,6 +3751,15 @@ removed and the system libunwind library will always be used.
 
 @html
 <hr />
+@end html
+@anchor{aarch64-x-x}
+@heading aarch64*-*-*
+Pre 2.24 binutils does not have support for selecting -mabi and does not
+support ILP32.  If GCC 4.9 or later is built with pre 2.24, GCC will not
+support option -mabi=ilp32.
+
+@html
+<hr />
 <!-- rs6000-ibm-aix*, powerpc-ibm-aix* -->
 @end html
 @anchor{x-ibm-aix}