Build: Enhance toolchain version check
Move toolchain version checks from check_config.cmake to dedicated
toolchain_XXX.cmake. Those checks are created specially for toolchain
limitations. They shall not be placed in TF-M functionality
configuration checks.
Make the valid version range more clear in toolchain_XXX.cmake.
Change-Id: I79fc1a7ae18dce6ffc98408c16ed7e3863bf0b9d
Signed-off-by: David Hu <david.hu@arm.com>
diff --git a/toolchain_ARMCLANG.cmake b/toolchain_ARMCLANG.cmake
index 10eee26..2a97410 100644
--- a/toolchain_ARMCLANG.cmake
+++ b/toolchain_ARMCLANG.cmake
@@ -1,5 +1,5 @@
#-------------------------------------------------------------------------------
-# Copyright (c) 2020, Arm Limited. All rights reserved.
+# Copyright (c) 2020-2022, Arm Limited. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
@@ -178,6 +178,16 @@
include(Compiler/ARMCC-ASM)
__compiler_armcc(ASM)
+ if (CMAKE_C_COMPILER_VERSION VERSION_LESS 6.10.1)
+ message(FATAL_ERROR "Please select newer Arm compiler version starting from 6.10.1.")
+ endif()
+
+ if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 6.15)
+ message(FATAL_ERROR "Armclang starting from v6.15 may cause MemManage fault."
+ " The root cause is still under analysis by Armclang."
+ " Please use lower Armclang versions instead.")
+ endif()
+
# Cmake's armclang support will set either mcpu or march, but march gives
# better code size so we manually set it.
set(CMAKE_C_FLAGS "-march=${CMAKE_SYSTEM_ARCH}")