qmk / qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families
https://qmk.fm
GNU General Public License v2.0
17.48k stars 37.73k forks source link

[Bug] "make crkbd:default" fails with "eeprom_write_qword" redefined error #23886

Closed devon-g closed 3 weeks ago

devon-g commented 3 weeks ago

Describe the Bug

QMK’s headers aren’t compatible with newer avr-libc due to mismatching qword api defs — https://github.com/avrdudes/avr-libc/blob/main/include/avr/eeprom.h

avr-gcc (GCC) 14.1.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling: keyboards/crkbd/crkbd.c                                                                 In file included from quantum/eeconfig.h:23,
                 from quantum/rgblight/rgblight.h:171,
                 from quantum/quantum.h:32,
                 from keyboards/crkbd/crkbd.c:19:
platforms/eeprom.h:25:20: error: static declaration of 'eeprom_write_qword' follows non-static declaration
   25 | static inline void eeprom_write_qword(uint64_t *__p, uint64_t __value) {
      |                    ^~~~~~~~~~~~~~~~~~
In file included from platforms/eeprom.h:6:
/usr/avr/include/avr/eeprom.h:211:6: note: previous declaration of 'eeprom_write_qword' with type 'void(uint64_t *, uint64_t)' {aka 'void(long long unsigned int *, long long unsigned int)'}
  211 | void eeprom_write_qword (uint64_t *__p, uint64_t __value);
      |      ^~~~~~~~~~~~~~~~~~
 [ERRORS]
 |
 |
 |
make: *** [builddefs/common_rules.mk:373: .build/obj_crkbd_rev1_default/keyboards/crkbd/crkbd.o] Error 1

Keyboard Used

crkbd/rev1

Link to product page (if applicable)

No response

Operating System

Arch Linux

qmk doctor Output

Ψ QMK Doctor is checking your environment.
Ψ CLI version: 1.1.5
Ψ QMK home: /home/devon/repos/qmk_firmware
Ψ Detected Linux (Arch Linux).
Ψ Userspace enabled: False
Ψ Git branch: master
Ψ Repo version: 0.25.7
⚠ The official repository does not seem to be configured as git remote "upstream".
Ψ All dependencies are installed.
Ψ Found arm-none-eabi-gcc version 14.1.0
Ψ Found avr-gcc version 14.1.0
⚠ We do not recommend avr-gcc newer than 8. Downgrading to 8.x is recommended.
Ψ Found avrdude version 7.3
Ψ Found dfu-programmer version 1.1.0
Ψ Found dfu-util version 0.11
Ψ Submodules are up to date.
Ψ Submodule status:
Ψ - lib/chibios: 2024-02-17 19:20:06 +0000 --  (be44b3305)
Ψ - lib/chibios-contrib: 2024-04-03 20:39:24 +0800 --  (77cb0a4f)
Ψ - lib/googletest: 2021-06-11 06:37:43 -0700 --  (e2239ee6)
Ψ - lib/lufa: 2022-08-26 12:09:55 +1000 --  (549b97320)
Ψ - lib/vusb: 2022-06-13 09:18:17 +1000 --  (819dbc1)
Ψ - lib/printf: 2022-06-29 23:59:58 +0300 --  (c2e3b4e)
Ψ - lib/pico-sdk: 2023-02-12 20:19:37 +0100 --  (a3398d8)
Ψ - lib/lvgl: 2022-04-11 04:44:53 -0600 --  (e19410f8)
Ψ QMK is ready to go, but minor problems were found

Is AutoHotKey / Karabiner installed

Other keyboard-related software installed

No response

Additional Context

No response

Feko commented 3 weeks ago

Same here, on CachyOS (Arch based). Packages up-to-date, installed QMK using pip. Happening even when trying qmk compile -kb clueboard/66/rev3 -km default as described in the docs.

Edit: Managed to make it compile by removing the function defined here. Seems like it was conflicting with one provided in /usr/avr/include/avr/eeprom.h