Providing option for disabling LTO build mode.
This commit is contained in:
+9
-2
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user