Hi Simon, On Sun, Apr 30, 2023 at 9:30 AM Simon Glass <s...@chromium.org> wrote: > > 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.
To clarify, you didn't use clang on Windows to build Sandbox? > > Update the dependency to (hopefully) deal with all of that. > > Signed-off-by: Simon Glass <s...@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) This looks like a separate patch needed for adding dependency check for LTO? > + 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. > -- Regards, Bin