
For MSYS2 this creates a lot of errors of the form:
`__stack_chk_fail' referenced in section `.text' of ...ltrans.o: defined in discarded section `.text' of common/stackprot.o (symbol from plugin)
For clang it doesn't work, except with sandbox.
Update the dependency to (hopefully) deal with all of that.
Signed-off-by: Simon Glass sjg@chromium.org ---
Changes in v2: - Make LTO depend on !MSYS2 rather than adding another check - Also disable LTO for clang, except with sandbox
Kconfig | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/Kconfig b/Kconfig index 888b9984ac3b..9ac816abef1c 100644 --- a/Kconfig +++ b/Kconfig @@ -72,6 +72,9 @@ config CLANG_VERSION int default $(shell,$(srctree)/scripts/clang-version.sh $(CC))
+config CC_IS_MSYS + def_bool $(success,uname -o | grep -q Msys) + choice prompt "Optimization level" default CC_OPTIMIZE_FOR_SIZE @@ -121,6 +124,8 @@ config ARCH_SUPPORTS_LTO config LTO bool "Enable Link Time Optimizations" depends on ARCH_SUPPORTS_LTO + depends on CC_IS_GCC || (CC_IS_CLANG && SANDBOX) + depends on !CC_IS_MSYS help This option enables Link Time Optimization (LTO), a mechanism which allows the compiler to optimize between different compilation units.