diff options
author | Yvan Roux <yvan.roux@linaro.org> | 2015-05-01 14:01:33 +0200 |
---|---|---|
committer | Yvan Roux <yvan.roux@linaro.org> | 2015-05-01 14:01:33 +0200 |
commit | 2c55a0a9a8c2a503287306ca267320ee627e1276 (patch) | |
tree | be3fdc6e48143f59e6c6a26006db96f235816d12 | |
parent | 107c60e683d2ec6dc28308096e7e1e8f1af63134 (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.linaro | 12 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-elf-raw.h | 9 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-linux.h | 9 | ||||
-rwxr-xr-x | gcc/configure | 32 | ||||
-rw-r--r-- | gcc/configure.ac | 23 |
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. |