As a workaround, CPPFLAGS += -I${HOME}/.guix-profile/avr/include LDFLAGS += -L${HOME}/.guix-profile/avr/lib/avr5 -L${HOME}/.guix-profile/avr/lib -B${HOME}/.guix-profile/avr/lib
works with avr-gcc 5.3.0. Unfortunately I don't know enough about avr-gcc to be able to permanently fix it. I fixed part of it (I made it so that atmega32u4 exists in the first place) in master - but no idea what to do with the search path. I'm pretty sure that if it uses CROSS_CPATH it's incorrect because cross-base has been changed from CROSS_CPATH to CROSS_C_INCLUDE_PATH, CROSS_CPLUS_INCLUDE_PATH etc in order to suppress warnings. If CROSS_C_INCLUDE_PATH overrides CROSS_CPATH (does it?) then setting CROSS_CPATH like avr.scm does does no good. I propose to change it to the following: diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index 9873477..1e5fd73 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -59,9 +59,18 @@ #t)))) ((#:configure-flags flags) `(delete "--disable-multilib" ,flags)))) - (native-search-paths + (native-search-paths (list (search-path-specification - (variable "CROSS_CPATH") + (variable "CROSS_C_INCLUDE_PATH") + (files '("avr/include"))) + (search-path-specification + (variable "CROSS_CPLUS_INCLUDE_PATH") + (files '("avr/include"))) + (search-path-specification + (variable "CROSS_OBJC_INCLUDE_PATH") + (files '("avr/include"))) + (search-path-specification + (variable "CROSS_OBJCPLUS_INCLUDE_PATH") (files '("avr/include"))) (search-path-specification (variable "CROSS_LIBRARY_PATH")