It looks like you are using some old version of the library (from 2012).
The latest version, which does not contain the problematic "extern" block, can be found here: https://github.com/adafruit/DHT-sensor-library
(The default example works nicely with my Arduino Nano v3.0 and DHT22 sensor)
Answer from Viliam Simko on Stack OverflowAvr/io.h: No such file or directory error when using Adafruit BNO08x library
"avr/io.h: No such file or directory" error when compiling for UNO R4 Minima
c - avr/io.h No such file or directory error when compiling using avr-gcc - Arduino Stack Exchange
c - Why this avr/io.h header give me fatal error? - Stack Overflow
Videos
I'm happy enough with that error as Tumbleweed installs the package in '/usr/avr/sys-root' so the header file is in /usr/avr/sys-root/include/avr/io.h
Rather then trying to change the Makefile, I struggle to read makefiles, I decided I'd simply put a link to where the include directory should be so:
ln -s /usr/avr/sys-root /usr/lib/avr
So now the header file is where you'd expect it to be '/usr/lib/avr/include/avr/io.h'
Trouble is that the qmk_firmware build still ain't happy with that. Perhaps it don't like links, but I thought that was transparent. Permissions on the directories and files are all good but still no jot.
If anybody could suggest a solution I'd be very grateful, failing that I'll have to install Ubuntu 16.04 somewhere.
More specifically, for a variety of historical reasons, if FastLED can't determine the hardware platform/board being built for, it falls back to avr - and this particular STM chipset isn't directly supported in FastLED at the moment - there's a fork running around that has added support for it, but I haven't had a chance to pull it back into the main library.
<avr/io.h> is a header file used to interface the IO registers of the AVR micro-controllers. Most Arduinos are AVR-based, and some Arduino libraries assume an AVR core. This seems to bee the case with the FastLED library you are trying to use.
Your microcontroller, however, is an STM32, with an ARM core. It is not an AVR, and it will not work with code that assumes you have an AVR core.