]> granicus.if.org Git - esp-idf/commitdiff
bootloader: Add option to build with Link Time Optimisation enabled
authorAngus Gratton <angus@espressif.com>
Fri, 30 Jun 2017 07:14:50 +0000 (17:14 +1000)
committerAngus Gratton <gus@projectgus.com>
Wed, 19 Jul 2017 08:31:59 +0000 (18:31 +1000)
components/bootloader/Kconfig.projbuild
components/bootloader/subproject/main/Makefile.projbuild
make/project.mk

index 5af223c0ad4503198f4ae9fec30dce94f6e411cd..b4f2c904ac541918f5d7fc030d7fc7236f1674f5 100644 (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.
 
-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"
@@ -217,7 +226,7 @@ config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE
 config SECURE_BOOT_TEST_MODE
        bool "Secure boot test mode: don't permanently set any efuses"
        depends on SECURE_BOOT_INSECURE
-       default N
+       default n
        help
           If this option is set, all permanent secure boot changes (via Efuse) are disabled.
 
index c368c68416c7014b5091eaedb3b7e96d81a9b9f4..afd5282d83bea689cec00e8d164e4155d317bf48 100644 (file)
@@ -2,3 +2,8 @@
 # paths can be added at this level (we need binary librtc to be
 # available to link bootloader).
 COMPONENT_SUBMODULES += $(IDF_PATH)/components/esp32/lib
+
+ifdef CONFIG_BOOTLOADER_LTO
+CFLAGS += -flto
+EXTRA_LDFLAGS += -Wl,-flto
+endif
index cc439a3582ec610ff74ba0ef24e5d7b1bff16563..159a2616741df10880335c228a2a3ed1ea077536 100644 (file)
@@ -290,7 +290,7 @@ export HOSTCC HOSTLD HOSTAR HOSTOBJCOPY SIZE
 CC := $(call dequote,$(CONFIG_TOOLPREFIX))gcc
 CXX := $(call dequote,$(CONFIG_TOOLPREFIX))c++
 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
 SIZE := $(call dequote,$(CONFIG_TOOLPREFIX))size
 export CC CXX LD AR OBJCOPY SIZE