bootloader: Add option to build with Link Time Optimisation enabled

This commit is contained in:
Angus Gratton
2017-06-30 17:14:50 +10:00
committed by Angus Gratton
parent 17adb40ca8
commit d1b66a08c1
3 changed files with 17 additions and 3 deletions

View File

@@ -43,7 +43,16 @@ config BOOTLOADER_SPI_WP_PIN
The default value (GPIO 7) is correct for WP pin on ESP32-D2WD integrated flash. The default value (GPIO 7) is correct for WP pin on ESP32-D2WD integrated flash.
endmenu # Bootloader config BOOTLOADER_LTO
bool "Build bootloader with Link Time Optimisation"
default n
help
Setting this option enables gcc Link Time Optimisation for the bootloader build & link pass.
This gives a smaller bootloader binary (can be useful if secure boot & flash encryption & logging are all enabled), and can
give faster boot times, but it makes the bootloader harder to debug.
endmenu # Bootloader config
menu "Security features" menu "Security features"
@@ -217,7 +226,7 @@ config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE
config SECURE_BOOT_TEST_MODE config SECURE_BOOT_TEST_MODE
bool "Secure boot test mode: don't permanently set any efuses" bool "Secure boot test mode: don't permanently set any efuses"
depends on SECURE_BOOT_INSECURE depends on SECURE_BOOT_INSECURE
default N default n
help help
If this option is set, all permanent secure boot changes (via Efuse) are disabled. If this option is set, all permanent secure boot changes (via Efuse) are disabled.

View File

@@ -2,3 +2,8 @@
# paths can be added at this level (we need binary librtc to be # paths can be added at this level (we need binary librtc to be
# available to link bootloader). # available to link bootloader).
COMPONENT_SUBMODULES += $(IDF_PATH)/components/esp32/lib COMPONENT_SUBMODULES += $(IDF_PATH)/components/esp32/lib
ifdef CONFIG_BOOTLOADER_LTO
CFLAGS += -flto
EXTRA_LDFLAGS += -Wl,-flto
endif

View File

@@ -290,7 +290,7 @@ export HOSTCC HOSTLD HOSTAR HOSTOBJCOPY SIZE
CC := $(call dequote,$(CONFIG_TOOLPREFIX))gcc CC := $(call dequote,$(CONFIG_TOOLPREFIX))gcc
CXX := $(call dequote,$(CONFIG_TOOLPREFIX))c++ CXX := $(call dequote,$(CONFIG_TOOLPREFIX))c++
LD := $(call dequote,$(CONFIG_TOOLPREFIX))ld LD := $(call dequote,$(CONFIG_TOOLPREFIX))ld
AR := $(call dequote,$(CONFIG_TOOLPREFIX))ar AR := $(call dequote,$(CONFIG_TOOLPREFIX))gcc-ar
OBJCOPY := $(call dequote,$(CONFIG_TOOLPREFIX))objcopy OBJCOPY := $(call dequote,$(CONFIG_TOOLPREFIX))objcopy
SIZE := $(call dequote,$(CONFIG_TOOLPREFIX))size SIZE := $(call dequote,$(CONFIG_TOOLPREFIX))size
export CC CXX LD AR OBJCOPY SIZE export CC CXX LD AR OBJCOPY SIZE