-
-
Notifications
You must be signed in to change notification settings - Fork 38.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added workaround for serial.c issue when LTO_ENABLE=yes for the Helix. #7558
Conversation
…2 and helix/pico.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does SRC += local_drivers/serial.c
not need to be removed?
I see the following when compiling:
Compiling: keyboards/helix/local_drivers/serial.c [OK]
...
Archiving: .build/obj_helix_pico_back_default/local_drivers/serial.o [OK]
doesnt seem to affect end results, so just a compile speed issue i guess.
Don't worry. There is no problem. I didn't change The addition of |
This code is timing sensitive and seems to break with LTO enabled (at least on avr-gcc 8.3.0... it worked on older gcc versions). This is the same workaround as #7558 applied for the Helix.
* upstream/master: (1960 commits) [Keyboard] Think6.5 Default Keymap Cleanup (qmk#7594) [Keyboard] update m12og keymap to readable version (qmk#7581) [Keyboard] Add cKeys Washington keyboard (qmk#7570) [Keyboard] Fix 2U backspace key in ansi_blocker layout for GrayStudio Space65 keyboard (qmk#7593) [Keyboard] Remove `PREVENT_STUCK_MODIFIERS` from config.h files (qmk#7592) [Keyboard] update default h87a keymap for fn functionality (qmk#7589) [Keymap] ergotravel updates (qmk#7588) [Keyboard] Adjust ColorLice to work with QMK configurator (qmk#7572) [Keyboard] Adding Navi10 macropad (qmk#7556) Enable bitbang ws2812 for f4 (qmk#7571) [Keyboard] add Matrix 8XV1.2 og ISO/ANSI keyboard (qmk#7567) Also fix flash Fix compiling json files Add JSON keymap to prereq list of C keymap [Keyboard] instant60: Enable bootmagic lite to make eeprom reset easier (qmk#7566) Updated slave encoder sync to reduce dropped pulses - v2 (qmk#7505) [Keyboard] rebuild info.json for ep tf_longeboye (qmk#7560) [Keyboard] Added workaround for serial.c/LTO issue for helix/rev2 and helix/pico. (qmk#7558) [Keyboard] EP96: fix info.json key sequence (qmk#7557) [Keymap] Added my customized 40% layout (qmk#7555) ...
This code is timing sensitive and seems to break with LTO enabled (at least on avr-gcc 8.3.0... it worked on older gcc versions). This is the same workaround as qmk#7558 applied for the Helix.
This code is timing sensitive and seems to break with LTO enabled (at least on avr-gcc 8.3.0... it worked on older gcc versions). This is the same workaround as qmk#7558 applied for the Helix.
Description
helix-serial.c is sensitive to execution timing and will not work as expected when compiled with the -flto option. As a result, if Helix is compiled with LTO_ENABLE = yes, the key input on the slave side will not be performed correctly.
In particular,
helix:xulkal
is always set to LTO_ENABLE = yes, so key input on the slave side is not possible.To solve this problem, #7089 suggests a general way to specify the
-fno-lto
option, but it still doesn't merge after a month and a half.This PR adds a temporary workaround to helix/rev2 and helix/pico until #7089 is merged.
What happens with this PR:
All helix/rev2 and helix/pico keymap compilation results will not change. Therefore, there is no adverse effect.
This PR ensures that all
helix/rev2
andhelix/pico
keymaps work correctly. All keymaps have been checked for operation.Types of Changes
Issues Fixed or Closed by This PR
Checklist