aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKugan Vivekanandarajah <kuganv@linaro.org>2013-12-11 12:57:08 +0000
committerChristophe Lyon <clyon@gcc.gnu.org>2013-12-11 13:57:08 +0100
commit63892fa207fee716dfc34f94f9d2edfbc5fa84ca (patch)
treeb40115da4c36ad51b26fe7ac40cf50aff7efb289
parent2ce064c344f9e104a82049495733ca3205fa720a (diff)
downloadgcc-63892fa207fee716dfc34f94f9d2edfbc5fa84ca.zip
gcc-63892fa207fee716dfc34f94f9d2edfbc5fa84ca.tar.gz
gcc-63892fa207fee716dfc34f94f9d2edfbc5fa84ca.tar.bz2
configure.ac: Add check for aarch64 assembler -mabi support.
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
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/config/aarch64/aarch64-elf.h10
-rw-r--r--gcc/config/aarch64/aarch64.c7
-rw-r--r--gcc/configure.ac29
-rw-r--r--gcc/doc/install.texi9
5 files changed, 65 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8a8f8a9..7e82464 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/aarch64/aarch64-elf.h b/gcc/config/aarch64/aarch64-elf.h
index 4757d22..a66c3db 100644
--- a/gcc/config/aarch64/aarch64-elf.h
+++ b/gcc/config/aarch64/aarch64-elf.h
@@ -134,13 +134,19 @@
" %{!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
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 1c881c8..afcf43f 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -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 ();
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 1c667bb..59de08d 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -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],
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 85899b0..71aa7fc 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -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}