Providing option for disabling LTO build mode.

This commit is contained in:
Ruben Ayrapetyan
2015-03-27 14:19:33 +03:00
parent 34cf1b8e8f
commit 80d9328c1f
2 changed files with 23 additions and 8 deletions
+9 -2
View File
@@ -60,6 +60,7 @@ project (Jerry CXX C ASM)
# Determining platform and defining options # Determining platform and defining options
option(ENABLE_VALGRIND "Enable valgrind helpers in memory allocators" OFF) option(ENABLE_VALGRIND "Enable valgrind helpers in memory allocators" OFF)
option(ENABLE_LTO "Enable LTO build" ON)
set(PLATFORM "${CMAKE_SYSTEM_NAME}") set(PLATFORM "${CMAKE_SYSTEM_NAME}")
string(TOUPPER "${PLATFORM}" PLATFORM) string(TOUPPER "${PLATFORM}" PLATFORM)
@@ -156,8 +157,14 @@ project (Jerry CXX C ASM)
${MODIFIERS_LISTS_LINUX}) ${MODIFIERS_LISTS_LINUX})
# Compiler / Linker flags # Compiler / Linker flags
set(COMPILE_FLAGS_JERRY "-flto -fno-fat-lto-objects -fno-builtin") set(COMPILE_FLAGS_JERRY "-fno-builtin")
set(LINKER_FLAGS_COMMON "-flto") set(LINKER_FLAGS_COMMON "")
# LTO
if("${ENABLE_LTO}" STREQUAL "ON")
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -flto -fno-fat-lto-objects")
set(LINKER_FLAGS_COMMON "${LINKER_FLAGS_COMMON} -flto")
endif()
# Turn off stack protector # Turn off stack protector
set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -fno-stack-protector") set(COMPILE_FLAGS_JERRY "${COMPILE_FLAGS_JERRY} -fno-stack-protector")
+14 -6
View File
@@ -47,6 +47,7 @@
ifneq ($(VALGRIND),ON) ifneq ($(VALGRIND),ON)
VALGRIND := OFF VALGRIND := OFF
endif endif
# Static checkers # Static checkers
STATIC_CHECK ?= OFF STATIC_CHECK ?= OFF
@@ -54,6 +55,13 @@
STATIC_CHECK := OFF STATIC_CHECK := OFF
endif endif
# LTO
LTO ?= ON
ifneq ($(LTO),ON)
LTO := OFF
endif
# External build configuration # External build configuration
EXTERNAL_LIBS_INTERFACE ?= $(shell pwd)/third-party/nuttx/include EXTERNAL_LIBS_INTERFACE ?= $(shell pwd)/third-party/nuttx/include
EXTERNAL_C_COMPILER ?= arm-none-eabi-gcc EXTERNAL_C_COMPILER ?= arm-none-eabi-gcc
@@ -102,10 +110,10 @@ export SHELL=/bin/bash
# Building all options combinations # Building all options combinations
OPTIONS_COMBINATIONS := $(foreach __OPTION,ON OFF,$(__COMBINATION)-VALGRIND-$(__OPTION)) OPTIONS_COMBINATIONS := $(foreach __OPTION,ON OFF,$(__COMBINATION)-VALGRIND-$(__OPTION))
# OPTIONS_COMBINATIONS := $(foreach __COMBINATION,$(OPTIONS_COMBINATIONS),$(foreach __OPTION,ON OFF,$(__COMBINATION)-{ANOTHER_OPTION}-$(__OPTION))) OPTIONS_COMBINATIONS := $(foreach __COMBINATION,$(OPTIONS_COMBINATIONS),$(foreach __OPTION,ON OFF,$(__COMBINATION)-LTO-$(__OPTION)))
# Building current options string # Building current options string
OPTIONS_STRING := -VALGRIND-$(VALGRIND) OPTIONS_STRING := -VALGRIND-$(VALGRIND)-LTO-$(LTO)
# Build directories # Build directories
BUILD_DIR_PREFIX := ./build/obj BUILD_DIR_PREFIX := ./build/obj
@@ -138,7 +146,7 @@ $(BUILD_DIRS_NATIVE):
fi; \ fi; \
mkdir -p $@ && \ mkdir -p $@ && \
cd $@ && \ cd $@ && \
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_linux_$$arch.cmake ../../.. &>cmake.log || \ cmake -DENABLE_VALGRIND=$(VALGRIND) -DENABLE_LTO=$(LTO) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_linux_$$arch.cmake ../../.. &>cmake.log || \
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;) (echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
$(BUILD_DIRS_NUTTX): $(BUILD_DIRS_NUTTX):
@@ -151,7 +159,7 @@ $(BUILD_DIRS_NUTTX):
@ mkdir -p $@ && \ @ mkdir -p $@ && \
cd $@ && \ cd $@ && \
cmake \ cmake \
-DENABLE_VALGRIND=$(VALGRIND) \ -DENABLE_VALGRIND=$(VALGRIND) -DENABLE_LTO=$(LTO) \
-DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_external.cmake \ -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_external.cmake \
-DEXTERNAL_LIBC_INTERFACE=${EXTERNAL_LIBS_INTERFACE} \ -DEXTERNAL_LIBC_INTERFACE=${EXTERNAL_LIBS_INTERFACE} \
-DEXTERNAL_CMAKE_C_COMPILER=${EXTERNAL_C_COMPILER} \ -DEXTERNAL_CMAKE_C_COMPILER=${EXTERNAL_C_COMPILER} \
@@ -162,13 +170,13 @@ $(BUILD_DIRS_NUTTX):
$(BUILD_DIRS_STM32F3): $(BUILD_DIRS_STM32F3):
@ mkdir -p $@ && \ @ mkdir -p $@ && \
cd $@ && \ cd $@ && \
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f3.cmake ../../.. &>cmake.log || \ cmake -DENABLE_VALGRIND=$(VALGRIND) -DENABLE_LTO=$(LTO) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f3.cmake ../../.. &>cmake.log || \
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;) (echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
$(BUILD_DIRS_STM32F4): $(BUILD_DIRS_STM32F4):
@ mkdir -p $@ && \ @ mkdir -p $@ && \
cd $@ && \ cd $@ && \
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f4.cmake ../../.. &>cmake.log || \ cmake -DENABLE_VALGRIND=$(VALGRIND) -DENABLE_LTO=$(LTO) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f4.cmake ../../.. &>cmake.log || \
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;) (echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
$(JERRY_LINUX_TARGETS): $(BUILD_DIR)/native $(JERRY_LINUX_TARGETS): $(BUILD_DIR)/native