package/avrdude: fix build with kernel < 4.6

Commit 03fa36df7e (package/avrdude: Switch to upstream)
unconditionally enabled linuxspi on the assumption that it is available
since linux-2.6.22.

However, avrdude unconditionally uses GPIO and includes linux/gpio.h,
which is only available since kernel 4.6 and:
    3c702e9987

Add a Kconfig option, enabled by default for backward compatibility, to
drive whether to enable or disable SPI support.

Fixes:
 - http://autobuild.buildroot.org/results/962a7fcff1e54a0550eafa0cbca780ba8bc8409e

Note: weirdly enough, GPIO support does not use linux/gpio.h; rather it
uses sysfs.

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[yann.morin.1998@free.fr: add a Kconfig option]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Fabrice Fontaine 2021-03-14 10:46:41 +01:00 committed by Yann E. MORIN
parent 1bad507220
commit 8b00d709be
2 changed files with 19 additions and 1 deletions

View File

@ -15,6 +15,18 @@ config BR2_PACKAGE_AVRDUDE
https://github.com/kcuzner/avrdude
if BR2_PACKAGE_AVRDUDE
config BR2_PACKAGE_AVRDUDE_SPI
bool "SPI support"
default y # Backward compatibility
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
comment "SPI support needs a toolchain w/ linux headers >= 4.6"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_6
endif
comment "avrdude needs a uClibc or glibc toolchain w/ threads, wchar, dynamic library, gcc >= 4.9"
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR \
|| BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 \

View File

@ -13,10 +13,16 @@ AVRDUDE_SUBDIR = avrdude
# Sources coming from svn, without generated configure and Makefile.in
# files.
AVRDUDE_AUTORECONF = YES
AVRDUDE_CONF_OPTS = --enable-linuxgpio --enable-linuxspi
AVRDUDE_CONF_OPTS = --enable-linuxgpio
AVRDUDE_DEPENDENCIES = elfutils libusb libusb-compat ncurses \
host-flex host-bison
ifeq ($(BR2_PACKAGE_AVRDUDE_SPI),y)
AVRDUDE_CONF_OPTS += --enable-linuxspi
else
AVRDUDE_CONF_OPTS += --disable-linuxspi
endif
ifeq ($(BR2_PACKAGE_LIBFTDI1),y)
AVRDUDE_DEPENDENCIES += libftdi1
else ifeq ($(BR2_PACKAGE_LIBFTDI),y)