@@ -226,6 +226,11 @@ ifeq ($(call try-cc,$(SOURCE_AIO),$(FLAGS_AIO) -static),y)
LIBS_STATOPT += -laio
endif
+FLAGS_LTO := -flto
+ifeq ($(call try-cc,$(SOURCE_HELLO),$(FLAGS_LTO)),y)
+ CFLAGS += $(FLAGS_LTO)
+endif
+
ifneq ($(call try-build,$(SOURCE_STATIC),-static,),y)
$(error No static libc found. Please install glibc-static package.)
endif
@@ -244,7 +249,7 @@ DEFINES += -DKVMTOOLS_VERSION='"$(KVMTOOLS_VERSION)"'
DEFINES += -DBUILD_ARCH='"$(ARCH)"'
KVM_INCLUDE := include
-CFLAGS += $(CPPFLAGS) $(DEFINES) -I$(KVM_INCLUDE) -I$(ARCH_INCLUDE) -I$(KINCL_PATH)/include/uapi -I$(KINCL_PATH)/include -I$(KINCL_PATH)/arch/$(ARCH)/include/uapi -I$(KINCL_PATH)/arch/$(ARCH)/include/ -O2 -fno-strict-aliasing -g -flto
+CFLAGS += $(CPPFLAGS) $(DEFINES) -I$(KVM_INCLUDE) -I$(ARCH_INCLUDE) -I$(KINCL_PATH)/include/uapi -I$(KINCL_PATH)/include -I$(KINCL_PATH)/arch/$(ARCH)/include/uapi -I$(KINCL_PATH)/arch/$(ARCH)/include/ -O2 -fno-strict-aliasing -g
WARNINGS += -Wall
WARNINGS += -Wcast-align
Commit 99423f12db2a ("kvm tools: enable LTO") unconditionally enabled link-time-optimisations when building kvmtool. Unfortunately, passing -flto to a GCC without support for the option, results in a fatal build error: cc1: error: LTO support has not been enabled in this configuration This patch adds a check to the kvm tools Makefile so that LTO is only enabled if the host compiler supports it. Signed-off-by: Will Deacon <will.deacon@arm.com> --- tools/kvm/Makefile | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)