Browse Source

Better handle LTO_ENABLE (#9832)

* Better handle LTO_ENABLE

Especially when calling from command line

* Replace LINK_TIME_OPTIMIZATION_ENABLE with LTO_ENABLE

* Remove long for LTO from show_options.mk
pull/10202/head
Drashna Jaelre 3 years ago
committed by James Young
parent
commit
92385b3fb6
79 changed files with 85 additions and 99 deletions
  1. +1
    -3
      docs/config_options.md
  2. +1
    -3
      docs/ja/config_options.md
  3. +1
    -1
      keyboards/1upkeyboards/sweet16/v1/rules.mk
  4. +1
    -1
      keyboards/1upkeyboards/sweet16/v2/promicro/rules.mk
  5. +1
    -1
      keyboards/bm60rgb/rules.mk
  6. +1
    -1
      keyboards/clueboard/66/keymaps/via/rules.mk
  7. +1
    -1
      keyboards/clueboard/card/rules.mk
  8. +1
    -1
      keyboards/converter/usb_usb/keymaps/chriskopher/rules.mk
  9. +1
    -1
      keyboards/crkbd/keymaps/ninjonas/rules.mk
  10. +1
    -1
      keyboards/crkbd/keymaps/rpbaptist/rules.mk
  11. +1
    -1
      keyboards/dz60/keymaps/via/rules.mk
  12. +1
    -2
      keyboards/dztech/dz60rgb/keymaps/xunz/rules.mk
  13. +1
    -2
      keyboards/dztech/dz65rgb/keymaps/chocol8/rules.mk
  14. +1
    -2
      keyboards/dztech/dz65rgb/keymaps/matthewrobo/rules.mk
  15. +1
    -1
      keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk
  16. +1
    -1
      keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk
  17. +1
    -2
      keyboards/flx/virgo/rules.mk
  18. +1
    -1
      keyboards/gray_studio/think65/hotswap/rules.mk
  19. +1
    -1
      keyboards/gray_studio/think65/solder/rules.mk
  20. +1
    -1
      keyboards/handwired/promethium/rules.mk
  21. +1
    -1
      keyboards/helix/pico/keymaps/biacco/rules.mk
  22. +1
    -1
      keyboards/helix/pico/keymaps/default/rules.mk
  23. +1
    -1
      keyboards/helix/pico/keymaps/mtei/rules.mk
  24. +3
    -3
      keyboards/helix/pico/local_features.mk
  25. +1
    -1
      keyboards/helix/rev2/keymaps/default/rules.mk
  26. +1
    -1
      keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
  27. +1
    -1
      keyboards/helix/rev2/keymaps/five_rows/rules.mk
  28. +1
    -1
      keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk
  29. +1
    -1
      keyboards/helix/rev2/keymaps/froggy/rules.mk
  30. +1
    -1
      keyboards/helix/rev2/keymaps/froggy_106/rules.mk
  31. +1
    -1
      keyboards/helix/rev2/keymaps/led_test/rules.mk
  32. +1
    -1
      keyboards/helix/rev2/keymaps/yshrsmz/rules.mk
  33. +1
    -1
      keyboards/helix/rev2/local_features.mk
  34. +1
    -1
      keyboards/hineybush/h88/rules.mk
  35. +1
    -1
      keyboards/hotdox/keymaps/ninjonas/rules.mk
  36. +1
    -1
      keyboards/id80/keymaps/via/rules.mk
  37. +1
    -1
      keyboards/kc60/keymaps/noroadsleft/rules.mk
  38. +1
    -1
      keyboards/keebio/bdn9/keymaps/via/rules.mk
  39. +1
    -1
      keyboards/keebio/iris/keymaps/pvinis/rules.mk
  40. +1
    -1
      keyboards/keebio/iris/keymaps/via/rules.mk
  41. +1
    -1
      keyboards/keebio/quefrency/keymaps/drashna_ms/rules.mk
  42. +1
    -1
      keyboards/keebio/quefrency/keymaps/via/rules.mk
  43. +2
    -2
      keyboards/kyria/keymaps/ninjonas/rules.mk
  44. +1
    -1
      keyboards/kyria/rules.mk
  45. +1
    -1
      keyboards/launchpad/keymaps/via/rules.mk
  46. +1
    -1
      keyboards/lily58/keymaps/ninjonas/rules.mk
  47. +1
    -1
      keyboards/pinky/3/keymaps/ninjonas/rules.mk
  48. +1
    -1
      keyboards/planck/keymaps/oryx/rules.mk
  49. +1
    -1
      keyboards/planck/keymaps/sascha/rules.mk
  50. +1
    -1
      keyboards/planck/keymaps/tylerwince/rules.mk
  51. +1
    -1
      keyboards/preonic/rev1/rules.mk
  52. +1
    -1
      keyboards/preonic/rev2/rules.mk
  53. +1
    -2
      keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
  54. +1
    -1
      keyboards/rgbkb/sol/rev2/rules.mk
  55. +1
    -1
      keyboards/rgbkb/zygomorph/keymaps/5x6pad/rules.mk
  56. +1
    -1
      keyboards/rgbkb/zygomorph/keymaps/default/rules.mk
  57. +1
    -1
      keyboards/rgbkb/zygomorph/keymaps/default_oled/rules.mk
  58. +1
    -1
      keyboards/rgbkb/zygomorph/keymaps/xulkal/rules.mk
  59. +1
    -1
      keyboards/tg4x/rules.mk
  60. +1
    -1
      keyboards/tkc/candybar/lefty/rules.mk
  61. +1
    -1
      keyboards/tkc/candybar/righty/rules.mk
  62. +1
    -1
      keyboards/v60_type_r/rules.mk
  63. +1
    -1
      keyboards/vitamins_included/rules.mk
  64. +1
    -1
      keyboards/xd004/v1/config.h
  65. +1
    -1
      keyboards/xd004/v1/rules.mk
  66. +1
    -1
      keyboards/xd84/rules.mk
  67. +1
    -1
      keyboards/xd96/rules.mk
  68. +1
    -1
      keyboards/yushakobo/quick7/config.h
  69. +1
    -2
      show_options.mk
  70. +3
    -6
      tmk_core/common.mk
  71. +1
    -1
      tmk_core/common/action.h
  72. +1
    -1
      tmk_core/common/command.c
  73. +1
    -1
      users/bcat/rules.mk
  74. +1
    -2
      users/dshields/rules.mk
  75. +1
    -1
      users/issmirnov/rules.mk
  76. +2
    -2
      users/kuchosauronad0/rules.mk
  77. +1
    -1
      users/pvinis/rules.mk
  78. +1
    -1
      users/yanfali/rules.mk
  79. +1
    -1
      users/yet-another-developer/rules.mk

+ 1
- 3
docs/config_options.md View File

@ -324,11 +324,9 @@ This is a [make](https://www.gnu.org/software/make/manual/make.html) file that i
```
* `LAYOUTS`
* A list of [layouts](feature_layouts.md) this keyboard supports.
* `LINK_TIME_OPTIMIZATION_ENABLE`
* `LTO_ENABLE`
* Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable).
However, this will automatically disable the legacy TMK Macros and Functions features, as these break when LTO is enabled. It does this by automatically defining `NO_ACTION_MACRO` and `NO_ACTION_FUNCTION`. (Note: This does not affect QMK [Macros](feature_macros.md) and [Layers](feature_layers.md).)
* `LTO_ENABLE`
* Has the same meaning as `LINK_TIME_OPTIMIZATION_ENABLE`. You can use `LTO_ENABLE` instead of `LINK_TIME_OPTIMIZATION_ENABLE`.
## AVR MCU Options
* `MCU = atmega32u4`


+ 1
- 3
docs/ja/config_options.md View File

@ -322,11 +322,9 @@ QMK での全ての利用可能な設定にはデフォルトがあります。
```
* `LAYOUTS`
* このキーボードがサポートする[レイアウト](ja/feature_layouts.md)のリスト
* `LINK_TIME_OPTIMIZATION_ENABLE`
* `LTO_ENABLE`
* キーボードをコンパイルする時に、Link Time Optimization (LTO) を有効にします。これは処理に時間が掛かりますが、コンパイルされたサイズを大幅に減らします (そして、ファームウェアが小さいため、追加の時間は分からないくらいです)。
ただし、LTO が有効な場合、古い TMK のマクロと関数の機能が壊れるため、自動的にこれらの機能を無効にします。これは `NO_ACTION_MACRO``NO_ACTION_FUNCTION` を自動的に定義することで行われます。(メモ: これは QMK の [マクロ](ja/feature_macros.md) と [レイヤー](ja/feature_layers.md) には影響を与えません。)
* `LTO_ENABLE`
* LINK_TIME_OPTIMIZATION_ENABLE と同じ意味です。`LINK_TIME_OPTIMIZATION_ENABLE` の代わりに `LTO_ENABLE` を使うことができます。
## AVR MCU オプション
* `MCU = atmega32u4`


+ 1
- 1
keyboards/1upkeyboards/sweet16/v1/rules.mk View File

@ -14,4 +14,4 @@ BOOTLOADER = caterina
RGBLIGHT_ENABLE = yes
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/1upkeyboards/sweet16/v2/promicro/rules.mk View File

@ -18,4 +18,4 @@ CONSOLE_ENABLE = yes
RGBLIGHT_ENABLE = no
ENCODER_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/bm60rgb/rules.mk View File

@ -31,7 +31,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
RGB_MATRIX_ENABLE = WS2812
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
# partially generated by KBFirmware JSON to QMK Parser
# https://noroadsleft.github.io/kbf_qmk_converter/

+ 1
- 1
keyboards/clueboard/66/keymaps/via/rules.mk View File

@ -1,4 +1,4 @@
# rules.mk overrides to enable VIA
VIA_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/clueboard/card/rules.mk View File

@ -26,4 +26,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = yes # Audio output on port C6
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/converter/usb_usb/keymaps/chriskopher/rules.mk View File

@ -19,6 +19,6 @@ EXTRAKEY_ENABLE = yes # Used for audio control and system control keys
COMBO_ENABLE = yes # Used to allow chording of keys to trigger an action
TAP_DANCE_ENABLE = yes # Used to allow multiple taps of a key to perform different actions
LINK_TIME_OPTIMIZATION_ENABLE = yes # Reduces the compiled firmware size
LTO_ENABLE = yes # Reduces the compiled firmware size
SRC += combo.c tap_dance.c

+ 1
- 1
keyboards/crkbd/keymaps/ninjonas/rules.mk View File

@ -1,7 +1,7 @@
RGB_MATRIX_ENABLE = WS2812
MOUSEKEY_ENABLE = no
OLED_DRIVER_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

+ 1
- 1
keyboards/crkbd/keymaps/rpbaptist/rules.mk View File

@ -1,5 +1,5 @@
#This enables Link Time Optimization.This can save a good chunk of space(several KB for me), but the macro and function... functions cause it to error out.
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
#Build Options
#change to "no" to disable the options, or define them in the Makefile in


+ 1
- 1
keyboards/dz60/keymaps/via/rules.mk View File

@ -1,2 +1,2 @@
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
VIA_ENABLE = yes

+ 1
- 2
keyboards/dztech/dz60rgb/keymaps/xunz/rules.mk View File

@ -1,5 +1,4 @@
NKRO_ENABLE = yes # USB Nkey Rollover
# VELOCIKEY_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 2
keyboards/dztech/dz65rgb/keymaps/chocol8/rules.mk View File

@ -2,5 +2,4 @@ NKRO_ENABLE = yes # USB Nkey Rollover
VELOCIKEY_ENABLE = yes
# AUTO_SHIFT_ENABLE = yes # Auto Shift
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 2
keyboards/dztech/dz65rgb/keymaps/matthewrobo/rules.mk View File

@ -2,5 +2,4 @@ NKRO_ENABLE = yes # USB Nkey Rollover
AUTO_SHIFT_ENABLE = yes # Auto Shift
# VELOCIKEY_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk View File

@ -1,7 +1,7 @@
# Set any rules.mk overrides for your specific keymap here.
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
TAP_DANCE_ENABLE = yes
MOUSEKEY_ENABLE = yes # Mouse keys(+4700b).


+ 1
- 1
keyboards/ergodox_ez/keymaps/nathanvercaemert/rules.mk View File

@ -1,6 +1,6 @@
# Set any rules.mk overrides for your specific keymap here.
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
COMMAND_ENABLE = no
RGBLIGHT_ENABLE = no
TAP_DANCE_ENABLE=yes


+ 1
- 2
keyboards/flx/virgo/rules.mk View File

@ -30,5 +30,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/gray_studio/think65/hotswap/rules.mk View File

@ -32,7 +32,7 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
LAYOUTS = 65_ansi_blocker


+ 1
- 1
keyboards/gray_studio/think65/solder/rules.mk View File

@ -32,7 +32,7 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
LAYOUTS = 65_ansi_blocker


+ 1
- 1
keyboards/handwired/promethium/rules.mk View File

@ -45,4 +45,4 @@ SRC += rgbsps.c
SRC += analog.c
SRC += matrix.c
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/helix/pico/keymaps/biacco/rules.mk View File

@ -7,7 +7,7 @@
#
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
AUDIO_ENABLE = yes # Audio output on port B5
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 6 Variables


+ 1
- 1
keyboards/helix/pico/keymaps/default/rules.mk View File

@ -7,7 +7,7 @@
#
EXTRAKEY_ENABLE = yes # Audio control and System control
AUDIO_ENABLE = yes # Audio output on port B5
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 6 Variables


+ 1
- 1
keyboards/helix/pico/keymaps/mtei/rules.mk View File

@ -7,7 +7,7 @@
#
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
AUDIO_ENABLE = yes # Audio output on port B5
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 6 Variables


+ 3
- 3
keyboards/helix/pico/local_features.mk View File

@ -106,10 +106,10 @@ endif
ifeq ($(strip $(AUDIO_ENABLE)),yes)
ifeq ($(strip $(RGBLIGHT_ENABLE)),yes)
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
endif
ifeq ($(strip $(OLED_ENABLE)),yes)
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
endif
endif
@ -120,7 +120,7 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
$(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
$(info -- LINK_TIME_OPTIMIZATION_ENABLE = $(LINK_TIME_OPTIMIZATION_ENABLE))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
endif

+ 1
- 1
keyboards/helix/rev2/keymaps/default/rules.mk View File

@ -5,7 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 7 Variables


+ 1
- 1
keyboards/helix/rev2/keymaps/edvorakjp/rules.mk View File

@ -5,7 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
TAP_DANCE_ENABLE = yes
# Helix Spacific Build Options


+ 1
- 1
keyboards/helix/rev2/keymaps/five_rows/rules.mk View File

@ -11,7 +11,7 @@
# yes, no +1500
# yes, yes +3200
# no, yes +400
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 7 Variables


+ 1
- 1
keyboards/helix/rev2/keymaps/five_rows_jis/rules.mk View File

@ -5,7 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 7 Variables


+ 1
- 1
keyboards/helix/rev2/keymaps/froggy/rules.mk View File

@ -5,7 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 7 Variables


+ 1
- 1
keyboards/helix/rev2/keymaps/froggy_106/rules.mk View File

@ -5,7 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 7 Variables


+ 1
- 1
keyboards/helix/rev2/keymaps/led_test/rules.mk View File

@ -5,7 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 7 Variables


+ 1
- 1
keyboards/helix/rev2/keymaps/yshrsmz/rules.mk View File

@ -5,7 +5,7 @@
# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
# See TOP/docs/config_options.md for more information.
#
LINK_TIME_OPTIMIZATION_ENABLE = no # if firmware size over limit, try this option
LTO_ENABLE = no # if firmware size over limit, try this option
# Helix Spacific Build Options
# you can uncomment and edit follows 7 Variables


+ 1
- 1
keyboards/helix/rev2/local_features.mk View File

@ -119,7 +119,7 @@ ifneq ($(strip $(SHOW_HELIX_OPTIONS)),)
$(info -- OLED_DRIVER_ENABLE = $(OLED_DRIVER_ENABLE))
$(info -- CONSOLE_ENABLE = $(CONSOLE_ENABLE))
$(info -- OPT_DEFS = $(OPT_DEFS))
$(info -- LINK_TIME_OPTIMIZATION_ENABLE = $(LINK_TIME_OPTIMIZATION_ENABLE))
$(info -- LTO_ENABLE = $(LTO_ENABLE))
$(info )
endif
endif

+ 1
- 1
keyboards/hineybush/h88/rules.mk View File

@ -30,4 +30,4 @@ UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/hotdox/keymaps/ninjonas/rules.mk View File

@ -1 +1 @@
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/id80/keymaps/via/rules.mk View File

@ -1,2 +1,2 @@
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
VIA_ENABLE = yes

+ 1
- 1
keyboards/kc60/keymaps/noroadsleft/rules.mk View File

@ -1,6 +1,6 @@
# https://github.com/qmk/qmk_firmware/issues/3448#issuecomment-406636125
# EXTRAFLAGS += -flto
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
MOUSEKEY_ENABLE = no # Mouse keys
# COMMAND_ENABLE = no # Commands for debug and configuration


+ 1
- 1
keyboards/keebio/bdn9/keymaps/via/rules.mk View File

@ -1,5 +1,5 @@
VIA_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
MOUSEKEY_ENABLE = yes
CONSOLE_ENABLE = yes
COMMAND_ENABLE = no

+ 1
- 1
keyboards/keebio/iris/keymaps/pvinis/rules.mk View File

@ -4,6 +4,6 @@ RGBLIGHT_ENABLE = yes # rgb leds underlight
ENCODER_ENABLE = yes # rotary knob
# Some extra stuff to make firmware smaller.
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
CONSOLE_ENABLE = no
COMMAND_ENABLE = no

+ 1
- 1
keyboards/keebio/iris/keymaps/via/rules.mk View File

@ -1,2 +1,2 @@
VIA_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/keebio/quefrency/keymaps/drashna_ms/rules.mk View File

@ -1,4 +1,4 @@
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
RGBLIGHT_ENABLE = yes
EXTRAKEY_ENABLE = yes
AUDIO_ENABLE = yes


+ 1
- 1
keyboards/keebio/quefrency/keymaps/via/rules.mk View File

@ -1,3 +1,3 @@
VIA_ENABLE = yes
CONSOLE_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 2
- 2
keyboards/kyria/keymaps/ninjonas/rules.mk View File

@ -1,6 +1,6 @@
OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
ENCODER_ENABLE = yes # Enables the use of one or more encoders
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
SRC += oled.c
SRC += oled.c

+ 1
- 1
keyboards/kyria/rules.mk View File

@ -31,6 +31,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
SPLIT_KEYBOARD = yes # Split common
LINK_TIME_OPTIMIZATION_ENABLE =yes
LTO_ENABLE = yes
DEFAULT_FOLDER = kyria/rev1

+ 1
- 1
keyboards/launchpad/keymaps/via/rules.mk View File

@ -1,3 +1,3 @@
VIA_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
RGBLIGHT_ENABLE = yes

+ 1
- 1
keyboards/lily58/keymaps/ninjonas/rules.mk View File

@ -1,2 +1,2 @@
OLED_DRIVER_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/pinky/3/keymaps/ninjonas/rules.mk View File

@ -1,2 +1,2 @@
MOUSEKEY_ENABLE = no
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/planck/keymaps/oryx/rules.mk View File

@ -1,6 +1,6 @@
SRC += muse.c
# Set any rules.mk overrides for your specific keymap here.
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
COMMAND_ENABLE = no
MOUSEKEY_ENABLE = no

+ 1
- 1
keyboards/planck/keymaps/sascha/rules.mk View File

@ -1,7 +1,7 @@
AUTO_SHIFT_ENABLE = yes
AUTO_SHIFT_MODIFIERS = yes
UNICODE_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
ifeq ($(strip $(KEYBOARD)), planck/rev5)
BACKLIGHT_ENABLE = yes


+ 1
- 1
keyboards/planck/keymaps/tylerwince/rules.mk View File

@ -1,7 +1,7 @@
SRC += muse.c
# Set any rules.mk overrides for your specific keymap here.
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
COMMAND_ENABLE = no
MOUSEKEY_ENABLE = no
TAP_DANCE_ENABLE=yes

+ 1
- 1
keyboards/preonic/rev1/rules.mk View File

@ -34,4 +34,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
LAYOUTS = ortho_5x12
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/preonic/rev2/rules.mk View File

@ -34,4 +34,4 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
LAYOUTS = ortho_5x12
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 2
keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk View File

@ -11,11 +11,10 @@ LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on
RGB_MATRIX_ENABLE = WS2812 # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
# Userspace implements their own LTO
LINK_TIME_OPTIMIZATION_ENABLE = no
LTO_ENABLE = no
# Do not edit past here
include keyboards/$(KEYBOARD)/post_rules.mk

+ 1
- 1
keyboards/rgbkb/sol/rev2/rules.mk View File

@ -29,7 +29,7 @@ IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS dev
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
EXTRA_ENCODERS_ENABLE = no # Enables 3 encoders per side (up from 1, not compatible with OLED_DRIVER_ENABLE)
SWAP_HANDS_ENABLE = no # Enable one-hand typing
LINK_TIME_OPTIMIZATION_ENABLE = yes # Enable Link Time Optimizations greatly reducing firmware size by disabling the old Macros and Functions features
LTO_ENABLE = yes # Enable Link Time Optimizations greatly reducing firmware size by disabling the old Macros and Functions features
# Special RGB Matrix, OLED, & Encoder Control Menu!
RGB_OLED_MENU = no # Enabled by setting this to the encoder index (0-5) you wish to use to control the menu.


+ 1
- 1
keyboards/rgbkb/zygomorph/keymaps/5x6pad/rules.mk View File

@ -19,7 +19,7 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = yes # Enable rotary encoder
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
LINK_TIME_OPTIMIZATION_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.
LTO_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.
# Do not edit past here


+ 1
- 1
keyboards/rgbkb/zygomorph/keymaps/default/rules.mk View File

@ -19,7 +19,7 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = yes # Enable rotary encoder
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
LINK_TIME_OPTIMIZATION_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.
LTO_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.
# Do not edit past here


+ 1
- 1
keyboards/rgbkb/zygomorph/keymaps/default_oled/rules.mk View File

@ -19,7 +19,7 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = yes # Enable rotary encoder
OLED_DRIVER_ENABLE = yes # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
LINK_TIME_OPTIMIZATION_ENABLE = yes # Enable optimizations to reduce firmware size. Also disables action macros and functions.
LTO_ENABLE = yes # Enable optimizations to reduce firmware size. Also disables action macros and functions.
# Do not edit past here


+ 1
- 1
keyboards/rgbkb/zygomorph/keymaps/xulkal/rules.mk View File

@ -19,7 +19,7 @@ SWAP_HANDS_ENABLE = no # Enable one-hand typing
ENCODER_ENABLE = no # Enable rotary encoder
OLED_DRIVER_ENABLE = no # Enable the OLED Driver
IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
LINK_TIME_OPTIMIZATION_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.
LTO_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.
# Do not edit past here


+ 1
- 1
keyboards/tg4x/rules.mk View File

@ -31,4 +31,4 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/tkc/candybar/lefty/rules.mk View File

@ -5,7 +5,7 @@ MCU = STM32F072
# comment out to disable the options.
#
# EXTRAFLAGS+=-flto
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
BACKLIGHT_ENABLE = no
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)


+ 1
- 1
keyboards/tkc/candybar/righty/rules.mk View File

@ -5,7 +5,7 @@ MCU = STM32F072
# comment out to disable the options.
#
# EXTRAFLAGS+=-flto
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
BACKLIGHT_ENABLE = no
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
## (Note that for BOOTMAGIC on Teensy LC you have to use a custom .ld script.)


+ 1
- 1
keyboards/v60_type_r/rules.mk View File

@ -32,6 +32,6 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
LAYOUTS = 60_ansi 60_iso

+ 1
- 1
keyboards/vitamins_included/rules.mk View File

@ -25,4 +25,4 @@ LAYOUTS = ortho_4x12
DEFAULT_FOLDER = vitamins_included/rev2
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes

+ 1
- 1
keyboards/xd004/v1/config.h View File

@ -75,6 +75,6 @@ further optimizations can be done on that side.
/* disable action features */
// #define NO_ACTION_ONESHOT // 462 bytes <- this needs to be un-commented out if Link Time Optimization is disabled, otherwise file is too large
// The two below are implicit since we use LINK_TIME_OPTIMIZATION_ENABLE (in rules.mk)
// The two below are implicit since we use LTO_ENABLE (in rules.mk)
// #define NO_ACTION_MACRO
// #define NO_ACTION_FUNCTION

+ 1
- 1
keyboards/xd004/v1/rules.mk View File

@ -27,6 +27,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
SPACE_CADET_ENABLE = no
# Saves about 5% of space:
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
#LAYOUTS = ortho_1x4

+ 1
- 1
keyboards/xd84/rules.mk View File

@ -31,7 +31,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
# custom matrix setup
CUSTOM_MATRIX = lite


+ 1
- 1
keyboards/xd96/rules.mk View File

@ -31,7 +31,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
# custom matrix setup
CUSTOM_MATRIX = lite


+ 1
- 1
keyboards/yushakobo/quick7/config.h View File

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


+ 1
- 2
show_options.mk View File

@ -82,8 +82,7 @@ OTHER_OPTION_NAMES = \
RGB_MATRIX_KEYPRESSES \
LED_MIRRORED \
RGBLIGHT_FULL_POWER \
Link_Time_Optimization \
LINK_TIME_OPTIMIZATION_ENABLE
LTO_ENABLE
define NAME_ECHO
@echo " $1 = $($1) # $(origin $1)"


+ 3
- 6
tmk_core/common.mk View File

@ -160,16 +160,13 @@ ifeq ($(strip $(SHARED_EP_ENABLE)), yes)
endif
ifeq ($(strip $(LTO_ENABLE)), yes)
LINK_TIME_OPTIMIZATION_ENABLE = yes
endif
ifeq ($(strip $(LINK_TIME_OPTIMIZATION_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 LINK_TIME_OPTIMIZATION_ENABLE = no.)
$(info If unsure, set LTO_ENABLE = no.)
endif
EXTRAFLAGS += -flto
TMK_COMMON_DEFS += -DLINK_TIME_OPTIMIZATION_ENABLE
TMK_COMMON_DEFS += -DLTO_ENABLE
TMK_COMMON_DEFS += -DLINK_TIME_OPTIMIZATON_ENABLE
endif
# Search Path


+ 1
- 1
tmk_core/common/action.h View File

@ -29,7 +29,7 @@ extern "C" {
#endif
/* Disable macro and function features when LTO is enabled, since they break */
#ifdef LINK_TIME_OPTIMIZATION_ENABLE
#ifdef LTO_ENABLE
# ifndef NO_ACTION_MACRO
# define NO_ACTION_MACRO
# endif


+ 1
- 1
tmk_core/common/command.c View File

@ -180,7 +180,7 @@ static void print_version(void) {
#ifdef NKRO_ENABLE
" NKRO"
#endif
#ifdef LINK_TIME_OPTIMIZATION_ENABLE
#ifdef LTO_ENABLE
" LTO"
#endif


+ 1
- 1
users/bcat/rules.mk View File

@ -14,7 +14,7 @@ EXTRAKEY_ENABLE = yes
NKRO_ENABLE = yes
# Enable link-time optimization to reduce binary size.
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
# Disable unused build options on all keyboards.
COMMAND_ENABLE = no


+ 1
- 2
users/dshields/rules.mk View File

@ -10,7 +10,7 @@ SPACE_CADET_ENABLE = no
LEADER_ENABLE = no
DYNAMIC_MACRO_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
ifeq ($(strip $(KEYBOARD)), planck/rev3)
AUDIO_ENABLE = no
@ -29,4 +29,3 @@ ifeq ($(strip $(KEYBOARD)), planck/light)
BACKLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes
endif

+ 1
- 1
users/issmirnov/rules.mk View File

@ -4,7 +4,7 @@ SRC += issmirnov.c
# https://www.reddit.com/r/olkb/comments/bmpgjm/programming_help/
# Should shave 2000 bytes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
# Enable debugging only when needed.
CONSOLE_ENABLE = yes # +400 bytes (hid_listen support)


+ 2
- 2
users/kuchosauronad0/rules.mk View File

@ -1,7 +1,7 @@
SRC += kuchosauronad0.c \
process_records.c
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
SPACE_CADET_ENABLE = no
ifneq ($(strip $(RGBLIGHT_ENABLE)),yes )
@ -24,7 +24,7 @@ ifeq ($(strip $(LEADER_ENABLE)), yes)
SRC += leader.c
endif
ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
SRC += secrets.c
endif
ifeq ($(strip $(NO_SECRETS)), yes)


+ 1
- 1
users/pvinis/rules.mk View File

@ -14,6 +14,6 @@ SRC += pvinis.c # add userspace file
## Some extra stuff to make firmware smaller.
# LINK_TIME_OPTIMIZATION_ENABLE = yes
# LTO_ENABLE = yes
# CONSOLE_ENABLE = no
# COMMAND_ENABLE = no

+ 1
- 1
users/yanfali/rules.mk View File

@ -2,7 +2,7 @@ BOOTMAGIC = lite
DYNAMIC_KEYMAP_ENABLE = no
CONSOLE_ENABLE = yes
COMMAND_ENABLE = yes
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
AUDIO_ENABLE = no
# only enable audio on specific boards


+ 1
- 1
users/yet-another-developer/rules.mk View File

@ -1,7 +1,7 @@
SRC += yet-another-developer.c \
process_records.c
LINK_TIME_OPTIMIZATION_ENABLE = yes
LTO_ENABLE = yes
SPACE_CADET_ENABLE = no
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)


Loading…
Cancel
Save