1
0
Fork 0
forked from forks/qmk_firmware

Move LTO logic from common.mk (#14973)

This commit is contained in:
Joel Challis 2021-10-28 21:02:22 +01:00 committed by GitHub
parent 780e763c13
commit 0c87e2e702
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 19 additions and 30 deletions

View file

@ -108,7 +108,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_RESYNC_ENABLE #define LOCKING_RESYNC_ENABLE
/* disable these deprecated features by default */ /* disable these deprecated features by default */
#ifndef LINK_TIME_OPTIMIZATION_ENABLE #define NO_ACTION_MACRO
#define NO_ACTION_MACRO #define NO_ACTION_FUNCTION
#define NO_ACTION_FUNCTION
#endif

View file

@ -49,10 +49,8 @@
#define DEBOUNCE 3 #define DEBOUNCE 3
/* disable these deprecated features by default */ /* disable these deprecated features by default */
//#ifndef LINK_TIME_OPTIMIZATION_ENABLE //#define NO_ACTION_MACRO
//# define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION
//# define NO_ACTION_FUNCTION
//#endif
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects

View file

@ -50,10 +50,8 @@
#define DEBOUNCE 3 #define DEBOUNCE 3
/* disable these deprecated features by default */ /* disable these deprecated features by default */
//#ifndef LINK_TIME_OPTIMIZATION_ENABLE //#define NO_ACTION_MACRO
//# define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION
//# define NO_ACTION_FUNCTION
//#endif
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects

View file

@ -50,10 +50,8 @@
#define DEBOUNCE 3 #define DEBOUNCE 3
/* disable these deprecated features by default */ /* disable these deprecated features by default */
//#ifndef LINK_TIME_OPTIMIZATION_ENABLE //#define NO_ACTION_MACRO
//# define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION
//# define NO_ACTION_FUNCTION
//#endif
#ifdef RGB_MATRIX_ENABLE #ifdef RGB_MATRIX_ENABLE
# define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects

View file

@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// place overrides here // place overrides here
// Some defines meant to decrease the firmware size. The firmware is otherwise over the maximum (atmega32u4) // Some defines meant to decrease the firmware size. The firmware is otherwise over the maximum (atmega32u4)
//# ifndef LINK_TIME_OPTIMIZATION_ENABLE //# ifndef LTO_ENABLE
//Disable old style macro handling: MACRO() & action_get_macro //Disable old style macro handling: MACRO() & action_get_macro
//# define NO_ACTION_MACRO // This saves 320 bytes //# define NO_ACTION_MACRO // This saves 320 bytes
//disable calling of action_function() from the fn_actions array (deprecated) //disable calling of action_function() from the fn_actions array (deprecated)
@ -40,7 +40,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Attempts to reduce firmware size: // Attempts to reduce firmware size:
//#define LINK_TIME_OPTIMIZATION_ENABLE // Did not decrease firmware size when tested on 26 Jan 2020 //#define LTO_ENABLE // Did not decrease firmware size when tested on 26 Jan 2020
//#define NO_DEBUG //disable debugging (already defined) //#define NO_DEBUG //disable debugging (already defined)
//#define NO_PRINT JJdisable printing/debugging using hid_listen (already defined) //#define NO_PRINT JJdisable printing/debugging using hid_listen (already defined)
//#define NO_ACTION_LAYER //disable layers (obviously need layers) //#define NO_ACTION_LAYER //disable layers (obviously need layers)

View file

@ -100,18 +100,6 @@ ifeq ($(strip $(SHARED_EP_ENABLE)), yes)
TMK_COMMON_DEFS += -DSHARED_EP_ENABLE TMK_COMMON_DEFS += -DSHARED_EP_ENABLE
endif endif
ifeq ($(strip $(LTO_ENABLE)), yes)
ifeq ($(PLATFORM),CHIBIOS)
$(info Enabling LTO on ChibiOS-targeting boards is known to have a high likelihood of failure.)
$(info If unsure, set LTO_ENABLE = no.)
endif
EXTRAFLAGS += -flto
TMK_COMMON_DEFS += -DLTO_ENABLE
TMK_COMMON_DEFS += -DLINK_TIME_OPTIMIZATON_ENABLE
else ifdef LINK_TIME_OPTIMIZATION_ENABLE
$(error The LINK_TIME_OPTIMIZATION_ENABLE flag has been renamed to LTO_ENABLE.)
endif
# Search Path # Search Path
VPATH += $(TMK_PATH)/$(COMMON_DIR) VPATH += $(TMK_PATH)/$(COMMON_DIR)
VPATH += $(TMK_PATH)/$(PLATFORM_COMMON_DIR) VPATH += $(TMK_PATH)/$(PLATFORM_COMMON_DIR)

View file

@ -82,6 +82,15 @@ endif
# -Wall...: warning level # -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler. # -Wa,...: tell GCC to pass this to the assembler.
# -adhlns...: create assembler listing # -adhlns...: create assembler listing
ifeq ($(strip $(LTO_ENABLE)), yes)
ifeq ($(PLATFORM),CHIBIOS)
$(info Enabling LTO on ChibiOS-targeting boards is known to have a high likelihood of failure.)
$(info If unsure, set LTO_ENABLE = no.)
endif
CDEFS += -flto
CDEFS += -DLTO_ENABLE
endif
DEBUG_ENABLE ?= yes DEBUG_ENABLE ?= yes
ifeq ($(strip $(SKIP_DEBUG_INFO)),yes) ifeq ($(strip $(SKIP_DEBUG_INFO)),yes)
DEBUG_ENABLE=no DEBUG_ENABLE=no