aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYvan Roux <yvan.roux@linaro.org>2015-05-01 14:01:33 +0200
committerYvan Roux <yvan.roux@linaro.org>2015-05-01 14:01:33 +0200
commit2c55a0a9a8c2a503287306ca267320ee627e1276 (patch)
treebe3fdc6e48143f59e6c6a26006db96f235816d12
parent107c60e683d2ec6dc28308096e7e1e8f1af63134 (diff)
2015-05-01 Yvan Roux <yvan.roux@linaro.org>
[Linaro Only] Add LINK_SPEC changes and configure-time option for Cortex-A53 erratum 843419 workaround. * configure.ac: Add --enable-fix-cortex-a53-843419 option. * configure: Regenerate. * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define. (LINK_SPEC): Include CA53_ERR_843419_SPEC. * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define. (LINK_SPEC): Include CA53_ERR_843419_SPEC. Change-Id: Iecd1a3e241fb90673b1a62fc056768dd14322a49
-rw-r--r--gcc/ChangeLog.linaro12
-rw-r--r--gcc/config/aarch64/aarch64-elf-raw.h9
-rw-r--r--gcc/config/aarch64/aarch64-linux.h9
-rwxr-xr-xgcc/configure32
-rw-r--r--gcc/configure.ac23
5 files changed, 81 insertions, 4 deletions
diff --git a/gcc/ChangeLog.linaro b/gcc/ChangeLog.linaro
index 040fc49afb3..470eeb4f674 100644
--- a/gcc/ChangeLog.linaro
+++ b/gcc/ChangeLog.linaro
@@ -1,3 +1,15 @@
+2015-05-01 Yvan Roux <yvan.roux@linaro.org>
+
+ [Linaro Only] Add LINK_SPEC changes and configure-time option for
+ Cortex-A53 erratum 843419 workaround.
+
+ * configure.ac: Add --enable-fix-cortex-a53-843419 option.
+ * configure: Regenerate.
+ * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
+ (LINK_SPEC): Include CA53_ERR_843419_SPEC.
+ * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
+ (LINK_SPEC): Include CA53_ERR_843419_SPEC.
+
2015-04-16 Christophe Lyon <christophe.lyon@linaro.org>
* LINARO-VERSION: Bump version.
diff --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h
index 16ad5c89450..136f643bcf4 100644
--- a/gcc/config/aarch64/aarch64-elf-raw.h
+++ b/gcc/config/aarch64/aarch64-elf-raw.h
@@ -35,10 +35,17 @@
" %{mfix-cortex-a53-835769:--fix-cortex-a53-835769}"
#endif
+#ifdef TARGET_FIX_ERR_A53_843419_DEFAULT
+#define CA53_ERR_843419_SPEC " --fix-cortex-a53-843419 "
+#else
+#define CA53_ERR_843419_SPEC ""
+#endif
+
#ifndef LINK_SPEC
#define LINK_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} -X \
-maarch64elf%{mabi=ilp32*:32}%{mbig-endian:b}" \
- CA53_ERR_835769_SPEC
+ CA53_ERR_835769_SPEC \
+ CA53_ERR_843419_SPEC
#endif
#endif /* GCC_AARCH64_ELF_RAW_H */
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
index dce2f2da10d..585059ba1f5 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -43,8 +43,15 @@
" %{mfix-cortex-a53-835769:--fix-cortex-a53-835769}"
#endif
+#ifdef TARGET_FIX_ERR_A53_843419_DEFAULT
+#define CA53_ERR_843419_SPEC " --fix-cortex-a53-843419 "
+#else
+#define CA53_ERR_843419_SPEC ""
+#endif
+
#define LINK_SPEC LINUX_TARGET_LINK_SPEC \
- CA53_ERR_835769_SPEC
+ CA53_ERR_835769_SPEC \
+ CA53_ERR_843419_SPEC
#define GNU_USER_TARGET_MATHFILE_SPEC \
"%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
diff --git a/gcc/configure b/gcc/configure
index 7f4c4bae584..c3a4357c5a1 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -920,6 +920,7 @@ enable_gnu_indirect_function
enable_initfini_array
enable_comdat
enable_fix_cortex_a53_835769
+enable_fix_cortex_a53_843419
with_glibc_version
enable_gnu_unique_object
enable_linker_build_id
@@ -1644,6 +1645,14 @@ Optional Features:
disable workaround for AArch64 Cortex-A53 erratum
835769 by default
+
+ --enable-fix-cortex-a53-843419
+ enable workaround for AArch64 Cortex-A53 erratum
+ 843419 by default
+ --disable-fix-cortex-a53-843419
+ disable workaround for AArch64 Cortex-A53 erratum
+ 843419 by default
+
--enable-gnu-unique-object
enable the use of the @gnu_unique_object ELF
extension on glibc systems
@@ -17937,7 +17946,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 17940 "configure"
+#line 17949 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -18043,7 +18052,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 18046 "configure"
+#line 18055 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -24033,6 +24042,25 @@ if test "${enable_fix_cortex_a53_835769+set}" = set; then :
fi
+ # Enable default workaround for AArch64 Cortex-A53 erratum 843419.
+ # Check whether --enable-fix-cortex-a53-843419 was given.
+if test "${enable_fix_cortex_a53_843419+set}" = set; then :
+ enableval=$enable_fix_cortex_a53_843419;
+ case $enableval in
+ yes)
+ tm_defines="${tm_defines} TARGET_FIX_ERR_A53_843419_DEFAULT=1"
+ ;;
+ no)
+ ;;
+ *)
+ as_fn_error "'$enableval' is an invalid value for --enable-fix-cortex-a53-843419.\
+ Valid choices are 'yes' and 'no'." "$LINENO" 5
+ ;;
+
+ esac
+
+fi
+
;;
# All TARGET_ABI_OSF targets.
diff --git a/gcc/configure.ac b/gcc/configure.ac
index d855cdf97a6..061b3f32497 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -3564,6 +3564,29 @@ AS_HELP_STRING([--disable-fix-cortex-a53-835769],
esac
],
[])
+ # Enable default workaround for AArch64 Cortex-A53 erratum 843419.
+ AC_ARG_ENABLE(fix-cortex-a53-843419,
+ [
+AS_HELP_STRING([--enable-fix-cortex-a53-843419],
+ [enable workaround for AArch64 Cortex-A53 erratum 843419 by default])
+AS_HELP_STRING([--disable-fix-cortex-a53-843419],
+ [disable workaround for AArch64 Cortex-A53 erratum 843419 by default])
+ ],
+ [
+ case $enableval in
+ yes)
+ tm_defines="${tm_defines} TARGET_FIX_ERR_A53_843419_DEFAULT=1"
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR(['$enableval' is an invalid value for --enable-fix-cortex-a53-843419.\
+ Valid choices are 'yes' and 'no'.])
+ ;;
+
+ esac
+ ],
+ [])
;;
# All TARGET_ABI_OSF targets.