Fix compile issues related to NO_ACTION_MACRO/FUNCTION and LTO_ENABLE (#8663)
* Define NO_ACTION_MACRO/FUNCTION in header instead of makefile when LTO is enabled Currently, boards and keymaps that define NO_ACTION_MACRO/FUNCTION unconditionally will not compile with LTO_ENABLE (#8604). This fixes the issue by moving the definitions from common.mk to action.h, which enables us to check for previous definitions of those macros (this cannot be done in a makefile). * Remove LTO checks in templates Since now NO_ACTION_MACRO/FUNCTION are defined as needed in action.h (which is included by quantum.h), checking for LTO in keyboard and user code is no longer required. * Update LTO_ENABLE docs
This commit is contained in:
committed by
Florian Didron
parent
4f5c76bfbe
commit
7ec087183b
@@ -195,6 +195,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
//#define NO_ACTION_MACRO
|
//#define NO_ACTION_MACRO
|
||||||
//#define NO_ACTION_FUNCTION
|
//#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MIDI options
|
* MIDI options
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -46,7 +46,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define BACKLIGHT_LEVELS 1
|
#define BACKLIGHT_LEVELS 1
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
|
||||||
#define NO_UART 1
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
/* key combination for magic key command */
|
/* key combination for magic key command */
|
||||||
/* defined by default; to change, uncomment and set to the combination you want */
|
/* defined by default; to change, uncomment and set to the combination you want */
|
||||||
|
|||||||
@@ -167,8 +167,6 @@ ifeq ($(strip $(LINK_TIME_OPTIMIZATION_ENABLE)), yes)
|
|||||||
endif
|
endif
|
||||||
EXTRAFLAGS += -flto
|
EXTRAFLAGS += -flto
|
||||||
TMK_COMMON_DEFS += -DLINK_TIME_OPTIMIZATION_ENABLE
|
TMK_COMMON_DEFS += -DLINK_TIME_OPTIMIZATION_ENABLE
|
||||||
TMK_COMMON_DEFS += -DNO_ACTION_MACRO
|
|
||||||
TMK_COMMON_DEFS += -DNO_ACTION_FUNCTION
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Search Path
|
# Search Path
|
||||||
|
|||||||
@@ -28,6 +28,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Disable macro and function features when LTO is enabled, since they break */
|
||||||
|
#ifdef LINK_TIME_OPTIMIZATION_ENABLE
|
||||||
|
# ifndef NO_ACTION_MACRO
|
||||||
|
# define NO_ACTION_MACRO
|
||||||
|
# endif
|
||||||
|
# ifndef NO_ACTION_FUNCTION
|
||||||
|
# define NO_ACTION_FUNCTION
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
/* tapping count and state */
|
/* tapping count and state */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
bool interrupted : 1;
|
bool interrupted : 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user