Revert LTO for mingw on windows.
authorJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sat, 27 Jun 2020 06:23:46 +0000 (08:23 +0200)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sat, 27 Jun 2020 08:22:27 +0000 (10:22 +0200)
LTO with static linking is still only working with the latest versions of gcc,
causing problems for some devs.

on a modern mingw toolchain LTO optimizations can still be enabled as:

```
CXXFLAGS='-flto' make -j ARCH=x86-64-modern COMP=mingw profile-build
```

fixes https://github.com/official-stockfish/Stockfish/issues/2769

closes https://github.com/official-stockfish/Stockfish/pull/2774

No functional change.

src/Makefile

index 492403d3ce875b60e4027710c951b9b94a5e3f64..c3660a20fa674739009e3fe65eb9ba9a06e2d8fa 100644 (file)
@@ -344,10 +344,20 @@ endif
 ### needs access to the optimization flags.
 ifeq ($(optimize),yes)
 ifeq ($(debug), no)
-       ifeq ($(comp),$(filter $(comp),gcc clang mingw))
+       ifeq ($(comp),$(filter $(comp),gcc clang))
                CXXFLAGS += -flto
                LDFLAGS += $(CXXFLAGS)
        endif
+
+# To use LTO and static linking on windows, the tool chain requires a recent gcc:
+# gcc version 10.1 in msys2 or TDM-GCC version 9.2 are know to work, older might not.
+# So, only enable it for a cross from Linux by default.
+       ifeq ($(comp),mingw)
+       ifeq ($(KERNEL),Linux)
+               CXXFLAGS += -flto
+               LDFLAGS += $(CXXFLAGS)
+       endif
+       endif
 endif
 endif