-
-
Notifications
You must be signed in to change notification settings - Fork 39.6k
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
Error occurs while trying to compile production target keyboard firmware #23207
Comments
Issue is due to differences in avr-gcc compiler version. Some have known regressions when it comes to generated code size and not really a QMK bug.
8.x has been mentioned as good, 13 as used above builds fine. |
Should I update avr-gcc using pacman?: Or is there some other/preferred way of doing it using the QMK CLI? |
Actually, I don't see avr-gcc listed by pacman as an installed package. How do I set the version of avr-gcc used by QMK? |
https://packages.msys2.org/package/mingw-w64-x86_64-avr-gcc |
So how did you get QMK to compile with avr-gcc version 13.2.0 above? |
Put simply, I don't use QMK MSYS; different Linux distributions bundle different compiler versions, and in my case, I've compiled my own copy of gcc 13.2.0 to run under Linux. Ultimately this is outside the scope of QMK's support -- we make a best-effort attempt at getting things to work on as many operating system combinations as possible, but with the number of people we have and the numerous variations in the wild, we can't support everything. We don't have control over which version of GCC is packaged by the MSYS team, and at the moment I'd hazard a guess and say that almost nobody can build production targets under QMK MSYS. If it's critical that you build production targets, your best bet is to figure out an alternative compilation environment such as Linux. If you can run Docker locally you can try to use the prebuilt QMK CLI container which contains an older version of GCC (in the 8.x series) which under normal circumstances should work fine. Neither of these solutions are going to be as simple to get working as QMK MSYS. EDIT: Arch Linux has 13.2.0, for example: https://archlinux.org/packages/?sort=&q=avr&maintainer=&flagged= |
I see. That's unfortunate. I'll try to see if I can get it working in a Linux-based environment. Thank you for your help! |
I setup a Linux-based environment (specifically Manjaro) and was finally able to compile production firmware. The versions of avr-gcc used were 8.3.0 and 13.2.0. Thanks for the help! |
Downgrading avr-gcc solved this for me. At the time of writing this, avr-gcc 8.5.0 for MSYS2 is available at msys2 repo site (mingw-w64-x86_64-avr-gcc-8.5.0-1-any.pkg.tar.zst) Then you can downgrade with After this, production compiles. |
Describe the Bug
I'm trying to build production target keyboard firmware using the QMK CLI. When I do so, I receive an error during the compilation process:
This isn't just a problem with my keyboard. I've also noticed it with other keyboards as well. For example, the following two will produce a similar error:
Here is the entire log from an example build:
For reference, here is the code for my keyboard: MaxJ345/qmk_firmware@master...MaxJ345:qmk_firmware:test
Keyboard Used
project_vanguard/full_size/v1 (not yet merged into the official QMK GitHub repo)
Link to product page (if applicable)
No response
Operating System
Windows
qmk doctor Output
Is AutoHotKey / Karabiner installed
Other keyboard-related software installed
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: