diff --git a/Firmware/Tupfile.lua b/Firmware/Tupfile.lua index bd59d526..cd959137 100644 --- a/Firmware/Tupfile.lua +++ b/Firmware/Tupfile.lua @@ -138,14 +138,19 @@ FLAGS += { '-Wall', '-Wdouble-promotion', '-Wfloat-conversion', '-fdata-sections LDFLAGS += board.ldflags LDFLAGS += '-flto -lc -lm -lnosys' -- libs LDFLAGS += '-mthumb -mfloat-abi=hard -specs=nosys.specs -specs=nano.specs -u _printf_float -u _scanf_float -Wl,--cref -Wl,--gc-sections' -LDFLAGS += '-Wl,--undefined=uxTopUsedPriority ' +LDFLAGS += '-Wl,--undefined=uxTopUsedPriority' -- debug build if tup.getconfig("DEBUG") == "true" then FLAGS += '-g -gdwarf-2' OPT += '-Og' else - OPT += '-O2 -flto' + OPT += '-O2' +end + +if tup.getconfig("USE_LTO") == "true" then + OPT += '-flto' + LDFLAGS += '-flto' end -- common flags for ASM, C and C++ diff --git a/Firmware/tup.config.default b/Firmware/tup.config.default index b2d49106..e348cedb 100644 --- a/Firmware/tup.config.default +++ b/Firmware/tup.config.default @@ -5,6 +5,7 @@ CONFIG_USB_PROTOCOL=native CONFIG_UART_PROTOCOL=ascii CONFIG_DEBUG=false CONFIG_DOCTEST=false +CONFIG_USE_LTO=true # Uncomment this to error on compilation warnings #CONFIG_STRICT=true