4cba9e6d42
When `toolchain_is_ok` fails, the error message points the user at the CMake logs. But those logs will be empty if the user tried to compile more than once (typically: cleans everything and tries again). So tell the user that cleaning the toolchain cache is required to see the error. Tell the user to "move" the cache instead of removing it in case technical support needs the cache for forensics. Some finicky toolchains can be "non-deterministic" and fail _sometimes_. For instance a license server can be flaky, or the toolchain can require an "elaborate" set of environment variables triggering some configuration "trial-and-error". In such a non-deterministic case deleting the cache is enough to get rid of the issue and move on! Looking at logs is not even required; even better. Once the toolchain cache believes that the toolchain works, any future toolchain glitch will be obvious at actual compilation time. To test all this: ``` # Verify that the toolchain can compile a dummy file, if it is not we # won't be able to test for compatibility with certain C flags. -zephyr_check_compiler_flag(C "" toolchain_is_ok) +zephyr_check_compiler_flag(C "-fubar" toolchain_is_ok) assert(toolchain_is_ok "The toolchain is unable to build a dummy C file.\ ``` Signed-off-by: Marc Herbert <marc.herbert@intel.com> |
||
---|---|---|
.. | ||
FindBabbleSim.cmake | ||
FindDeprecated.cmake | ||
FindDtc.cmake | ||
FindGnuLd.cmake | ||
FindHostTools.cmake | ||
FindLlvmLld.cmake | ||
FindScaTools.cmake | ||
FindTargetTools.cmake | ||
FindZephyr-sdk.cmake | ||
Findarmclang.cmake | ||
FindoneApi.cmake | ||
arch.cmake | ||
basic_settings.cmake | ||
boards.cmake | ||
ccache.cmake | ||
configuration_files.cmake | ||
doc.cmake | ||
dts.cmake | ||
extensions.cmake | ||
generated_file_directories.cmake | ||
kconfig.cmake | ||
kernel.cmake | ||
pre_dt.cmake | ||
python.cmake | ||
root.cmake | ||
shields.cmake | ||
snippets.cmake | ||
soc.cmake | ||
unittest.cmake | ||
user_cache.cmake | ||
version.cmake | ||
west.cmake | ||
zephyr_default.cmake | ||
zephyr_module.cmake |