From c4fc82c6b794c832bc9a4fc406cb4773d12c620b Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 12 Nov 2011 10:10:01 +0100 Subject: [PATCH] Rewrite link time optimization in Makefile Instead of binding link time optimization to the choice of popcount support, do the right thing and add -flto option when gcc 4.5 or later is detected. Although it should be supported also under mingw, it happens that it doesn't, at least on my 4.6.1 due to some known bugs. Thanks to Mike for helping me with this patch. No functional change. Signed-off-by: Marco Costalba --- src/Makefile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/Makefile b/src/Makefile index 9650c7f6..1e765faa 100644 --- a/src/Makefile +++ b/src/Makefile @@ -308,15 +308,19 @@ endif ### 3.10 popcnt ifeq ($(popcnt),yes) - CXXFLAGS += -DUSE_POPCNT - - ### For gcc we add also msse3 support and Link Time Optimization, note that - ### this is a mix of compile and link time options because the lto link phase - ### needs access to the optimization flags. - ifeq ($(comp),gcc) - CXXFLAGS += -msse3 -flto - LDFLAGS += $(CXXFLAGS) - endif + CXXFLAGS += -msse3 -DUSE_POPCNT +endif + +### 3.11 Link Time Optimization, it works since gcc 4.5 but not on mingw. +### This is a mix of compile and link time options because the lto link phase +### needs access to the optimization flags. +ifeq ($(comp),gcc) + GCC_MAJOR := `gcc -dumpversion | cut -f1 -d.` + GCC_MINOR := `gcc -dumpversion | cut -f2 -d.` + ifeq (1,$(shell expr \( $(GCC_MAJOR) \> 4 \) \| \( $(GCC_MAJOR) \= 4 \& $(GCC_MINOR) \>= 5 \))) + CXXFLAGS += -flto + LDFLAGS += $(CXXFLAGS) + endif endif ### ========================================================================== -- 2.39.2