[Buildroot] [PATCH 1/1] package/libusb: needs gcc >= 4.9

Yann E. MORIN yann.morin.1998 at free.fr
Sun Dec 13 21:02:53 UTC 2020


Fabrice, All,

On 2020-12-13 16:56 +0100, Fabrice Fontaine spake thusly:
> libusb depends on gcc >= 4.9 because of _Thread_local since version
> 1.0.24 and
> https://github.com/libusb/libusb/commit/9a1bc8cafb904c20a869c74ad6d657686a1c4bb1
> 
> Fixes:
>  - http://autobuild.buildroot.org/results/7b7f4b31095f8a7eecb347b574391003a2def8bc
> 
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>

Applied to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  package/acsccid/Config.in                  |  7 +++---
>  package/apcupsd/Config.in                  |  6 +++--
>  package/avrdude/Config.in                  |  6 +++--
>  package/cc-tool/Config.in                  |  7 ++++--
>  package/ccid/Config.in                     |  6 +++--
>  package/dfu-util/Config.in                 |  6 +++--
>  package/dfu-util/Config.in.host            |  4 ++++
>  package/dump1090/Config.in                 |  6 +++--
>  package/gr-osmosdr/Config.in               |  4 ++++
>  package/hackrf/Config.in                   |  6 +++--
>  package/hidapi/Config.in                   |  7 ++++--
>  package/hplip/Config.in                    |  5 ++--
>  package/imx-usb-loader/Config.in           |  6 +++--
>  package/imx-usb-loader/Config.in.host      |  5 ++++
>  package/kodi/Config.in                     |  4 ++++
>  package/libftdi/Config.in                  |  6 +++--
>  package/libftdi1/Config.in                 |  6 +++--
>  package/libgphoto2/Config.in               |  6 +++--
>  package/libhid/Config.in                   |  6 +++--
>  package/libiio/Config.in                   |  6 +++--
>  package/libiqrf/Config.in                  |  6 +++--
>  package/libnfc/Config.in                   |  6 +++--
>  package/libphidget/Config.in               |  7 +++---
>  package/librtlsdr/Config.in                |  6 +++--
>  package/libusb/Config.in                   |  6 +++--
>  package/mfgtools/Config.in.host            |  5 ++++
>  package/mxsldr/Config.in.host              |  5 ++++
>  package/omxplayer/Config.in                |  6 +++--
>  package/openfpgaloader/Config.in           |  7 ++++--
>  package/openjdk/Config.in                  |  7 ++++--
>  package/openocd/Config.in                  | 28 ++++++++++++++++++----
>  package/openocd/Config.in.host             |  4 ++++
>  package/pcsc-lite/Config.in                |  4 ++++
>  package/phidgetwebservice/Config.in        |  7 +++---
>  package/python-libusb1/Config.in           |  6 +++--
>  package/python-nfc/Config.in               |  6 +++--
>  package/python-pylibftdi/Config.in         |  6 +++--
>  package/python-pyusb/Config.in             |  6 +++--
>  package/qemu/Config.in.host                |  4 ++++
>  package/raspberrypi-usbboot/Config.in.host |  5 ++++
>  package/sispmctl/Config.in                 |  6 +++--
>  package/sunxi-tools/Config.in              |  6 +++--
>  package/sunxi-tools/Config.in.host         |  5 ++++
>  package/tegrarcm/Config.in.host            |  5 ++++
>  package/uhd/Config.in                      | 12 ++++++++++
>  package/uhubctl/Config.in                  |  6 +++--
>  package/upower/Config.in                   |  6 +++--
>  package/usb_modeswitch/Config.in           |  6 +++--
>  package/usb_modeswitch_data/Config.in      |  6 +++--
>  package/usbredir/Config.in                 |  6 +++--
>  50 files changed, 236 insertions(+), 80 deletions(-)
> 
> diff --git a/package/acsccid/Config.in b/package/acsccid/Config.in
> index 74dd6de295..a926be6e16 100644
> --- a/package/acsccid/Config.in
> +++ b/package/acsccid/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_ACSCCID
>  	bool "acsccid"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # pcsc-lite, libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on BR2_USE_MMU # pcsc-lite
>  	depends on !BR2_STATIC_LIBS # pcsc-lite
>  	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
> @@ -14,7 +15,7 @@ config BR2_PACKAGE_ACSCCID
>  
>  	  http://acsccid.sourceforge.net/
>  
> -comment "acsccid needs a toolchain w/ threads, dynamic library"
> +comment "acsccid needs a toolchain w/ threads, dynamic library, gcc >= 4.9"
>  	depends on BR2_USE_MMU
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> -		BR2_STATIC_LIBS
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/apcupsd/Config.in b/package/apcupsd/Config.in
> index 4bc523eed4..f87f6a8b55 100644
> --- a/package/apcupsd/Config.in
> +++ b/package/apcupsd/Config.in
> @@ -28,14 +28,16 @@ config BR2_PACKAGE_APCUPSD_MODBUS
>  config BR2_PACKAGE_APCUPSD_MODBUS_USB
>  	bool "modbus usb"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	select BR2_PACKAGE_APCUPSD_MODBUS
>  	help
>  	  Compile MODBUS/USB driver code
>  
> -comment "modbus usb support needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "modbus usb support needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  
>  config BR2_PACKAGE_APCUPSD_NET
>  	bool "net"
> diff --git a/package/avrdude/Config.in b/package/avrdude/Config.in
> index a5680b0028..fba4253ad8 100644
> --- a/package/avrdude/Config.in
> +++ b/package/avrdude/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_AVRDUDE
>  	depends on BR2_USE_WCHAR # elfutils
>  	depends on !BR2_STATIC_LIBS # elfutils
>  	depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_ELFUTILS
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
> @@ -14,6 +15,7 @@ config BR2_PACKAGE_AVRDUDE
>  
>  	  https://github.com/kcuzner/avrdude
>  
> -comment "avrdude needs a uClibc or glibc toolchain w/ threads, wchar, dynamic library"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || BR2_STATIC_LIBS \
> +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 \
>  		|| !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
> diff --git a/package/cc-tool/Config.in b/package/cc-tool/Config.in
> index 033128843d..2661592d7f 100644
> --- a/package/cc-tool/Config.in
> +++ b/package/cc-tool/Config.in
> @@ -3,6 +3,7 @@ config BR2_PACKAGE_CC_TOOL
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
>  	depends on BR2_USE_WCHAR # boost-filesystem
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_BOOST
>  	select BR2_PACKAGE_BOOST_PROGRAM_OPTIONS
> @@ -16,5 +17,7 @@ config BR2_PACKAGE_CC_TOOL
>  
>  	  https://github.com/dashesy/cc-tool/
>  
> -comment "cc-tool needs a toolchain w/ C++, threads, wchar"
> -	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
> +comment "cc-tool needs a toolchain w/ C++, threads, wchar, gcc >= 4.9 "
> +	depends on !BR2_INSTALL_LIBSTDCPP || \
> +		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/ccid/Config.in b/package/ccid/Config.in
> index 599bcc042a..aae5a7181c 100644
> --- a/package/ccid/Config.in
> +++ b/package/ccid/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_CCID
>  	bool "ccid"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on BR2_USE_MMU # pcsc-lite
>  	depends on !BR2_STATIC_LIBS # pcsc-lite
>  	select BR2_PACKAGE_PCSC_LITE
> @@ -10,6 +11,7 @@ config BR2_PACKAGE_CCID
>  
>  	  https://ccid.apdu.fr/
>  
> -comment "ccid needs a toolchain w/ threads, dynamic library"
> +comment "ccid needs a toolchain w/ threads, dynamic library, gcc >= 4.9"
>  	depends on BR2_USE_MMU
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/dfu-util/Config.in b/package/dfu-util/Config.in
> index 201c8a7cfd..71c1a1687c 100644
> --- a/package/dfu-util/Config.in
> +++ b/package/dfu-util/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_DFU_UTIL
>  	bool "dfu-util"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Dfu-util is the host side implementation of the DFU 1.0
> @@ -9,5 +10,6 @@ config BR2_PACKAGE_DFU_UTIL
>  
>  	  http://dfu-util.sourceforge.net/
>  
> -comment "dfu-util needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "dfu-util needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/dfu-util/Config.in.host b/package/dfu-util/Config.in.host
> index ea47a36c7b..1bf9275f97 100644
> --- a/package/dfu-util/Config.in.host
> +++ b/package/dfu-util/Config.in.host
> @@ -1,8 +1,12 @@
>  config BR2_PACKAGE_HOST_DFU_UTIL
>  	bool "host dfu-util"
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  Dfu-util is the host side implementation of the DFU 1.0
>  	  specification of the USB forum. DFU is intended to download
>  	  and upload firmware to devices connected over USB.
>  
>  	  http://dfu-util.sourceforge.net/
> +
> +comment "host dfu-util needs a toolchain w/ host gcc >= 4.9"
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> diff --git a/package/dump1090/Config.in b/package/dump1090/Config.in
> index c796faef91..8f17929235 100644
> --- a/package/dump1090/Config.in
> +++ b/package/dump1090/Config.in
> @@ -1,11 +1,13 @@
>  config BR2_PACKAGE_DUMP1090
>  	bool "dump1090"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # librtlsdr
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # librtlsdr -> libusb
>  	select BR2_PACKAGE_LIBRTLSDR
>  	help
>  	  Dump1090 is a simple Mode S decoder for RTLSDR devices
>  
>  	  https://github.com/MalcolmRobb/dump1090
>  
> -comment "dump1090 needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "dump1090 needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/gr-osmosdr/Config.in b/package/gr-osmosdr/Config.in
> index a38082af98..04fa10be80 100644
> --- a/package/gr-osmosdr/Config.in
> +++ b/package/gr-osmosdr/Config.in
> @@ -25,10 +25,14 @@ config BR2_PACKAGE_GR_OSMOSDR_IQFILE
>  
>  config BR2_PACKAGE_GR_OSMOSDR_RTLSDR
>  	bool "Osmocom RTLSDR support"
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # librtlsdr -> libusb
>  	select BR2_PACKAGE_LIBRTLSDR
>  	help
>  	  Enable Osmocom RTLSDR support
>  
> +comment "Osmocom RTLSDR support needs a toolchain w/ gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> +
>  config BR2_PACKAGE_GR_OSMOSDR_RTLSDR_TCP
>  	bool "RTLSDR TCP Client support"
>  	help
> diff --git a/package/hackrf/Config.in b/package/hackrf/Config.in
> index b86790f2b0..05d01adc96 100644
> --- a/package/hackrf/Config.in
> +++ b/package/hackrf/Config.in
> @@ -2,6 +2,7 @@ config BR2_PACKAGE_HACKRF
>  	bool "hackrf"
>  	depends on !BR2_STATIC_LIBS
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_FFTW
>  	select BR2_PACKAGE_FFTW_SINGLE
>  	select BR2_PACKAGE_LIBUSB
> @@ -10,5 +11,6 @@ config BR2_PACKAGE_HACKRF
>  
>  	  https://github.com/mossmann/hackrf/tree/master/host
>  
> -comment "hackrf needs a toolchain w/ threads, dynamic library"
> -	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
> +comment "hackrf needs a toolchain w/ threads, dynamic library, gcc >= 4.9"
> +	depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/hidapi/Config.in b/package/hidapi/Config.in
> index d7d8cd53d7..061c7883f7 100644
> --- a/package/hidapi/Config.in
> +++ b/package/hidapi/Config.in
> @@ -2,6 +2,7 @@ config BR2_PACKAGE_HIDAPI
>  	bool "hidapi"
>  	depends on BR2_PACKAGE_HAS_UDEV
>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBGUDEV
>  	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
> @@ -14,5 +15,7 @@ config BR2_PACKAGE_HIDAPI
>  
>  	  http://github.com/libusb/hidapi/
>  
> -comment "hidapi needs udev /dev management and a toolchain w/ NPTL threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_PACKAGE_HAS_UDEV
> +comment "hidapi needs udev /dev management and a toolchain w/ NPTL, threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
> +		!BR2_PACKAGE_HAS_UDEV || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/hplip/Config.in b/package/hplip/Config.in
> index f4e0fe7530..bab29303e5 100644
> --- a/package/hplip/Config.in
> +++ b/package/hplip/Config.in
> @@ -3,6 +3,7 @@ config BR2_PACKAGE_HPLIP
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	depends on BR2_PACKAGE_CUPS
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on !BR2_STATIC_LIBS # libdl
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_JPEG
> @@ -17,7 +18,7 @@ config BR2_PACKAGE_HPLIP
>  
>  	  http://hplipopensource.com/
>  
> -comment "hplip needs a toolchain w/ C++, threads, dynamic library"
> +comment "hplip needs a toolchain w/ C++, threads, dynamic library, gcc >= 4.9"
>  	depends on BR2_PACKAGE_CUPS
>  	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
> -		BR2_STATIC_LIBS
> +		BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/imx-usb-loader/Config.in b/package/imx-usb-loader/Config.in
> index 1cc0dd8c25..9a152e0918 100644
> --- a/package/imx-usb-loader/Config.in
> +++ b/package/imx-usb-loader/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_IMX_USB_LOADER
>  	bool "imx-usb-loader"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  This package contains tools to download and execute code
> @@ -9,5 +10,6 @@ config BR2_PACKAGE_IMX_USB_LOADER
>  
>  	  https://github.com/boundarydevices/imx_usb_loader
>  
> -comment "imx-usb-loader needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "imx-usb-loader needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/imx-usb-loader/Config.in.host b/package/imx-usb-loader/Config.in.host
> index 04bd4cc018..78c5edea3f 100644
> --- a/package/imx-usb-loader/Config.in.host
> +++ b/package/imx-usb-loader/Config.in.host
> @@ -1,9 +1,14 @@
>  config BR2_PACKAGE_HOST_IMX_USB_LOADER
>  	bool "host imx-usb-loader"
>  	depends on BR2_arm || BR2_aarch64
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  This package contains tools to download and execute code
>  	  on Freescale i.MX5x/6x/7x/8x and Vybrid SoCs through the
>  	  Serial Download Protocol.
>  
>  	  https://github.com/boundarydevices/imx_usb_loader
> +
> +comment "host imx-usb-loader needs a toolchain w/ host gcc >= 4.9"
> +	depends on BR2_arm || BR2_aarch64
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> diff --git a/package/kodi/Config.in b/package/kodi/Config.in
> index 31ad8630d6..8453ba0e07 100644
> --- a/package/kodi/Config.in
> +++ b/package/kodi/Config.in
> @@ -258,11 +258,15 @@ config BR2_PACKAGE_KODI_LIBUSB
>  	# https://github.com/xbmc/xbmc/blob/Jarvis/configure.ac#L1554
>  	# "if libudev is available, we don't need libusb"
>  	depends on !BR2_PACKAGE_HAS_UDEV
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
>  	  Enable libusb support.
>  
> +comment "usb support needs a toolchain w/ gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> +
>  config BR2_PACKAGE_KODI_LIBVA
>  	bool "va"
>  	depends on \
> diff --git a/package/libftdi/Config.in b/package/libftdi/Config.in
> index 23dae1be1f..fdeac28a64 100644
> --- a/package/libftdi/Config.in
> +++ b/package/libftdi/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_LIBFTDI
>  	bool "libftdi"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
> @@ -23,5 +24,6 @@ comment "libftdi C++ bindings need a toolchain w/ wchar, C++"
>  
>  endif # BR2_PACKAGE_LIBFTDI
>  
> -comment "libftdi needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "libftdi needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/libftdi1/Config.in b/package/libftdi1/Config.in
> index d47321345b..2d32573563 100644
> --- a/package/libftdi1/Config.in
> +++ b/package/libftdi1/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_LIBFTDI1
>  	bool "libftdi1"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Userspace access to FTDI USB interface chips (version 1.x)
> @@ -33,5 +34,6 @@ config BR2_PACKAGE_LIBFTDI1_FDTI_EEPROM
>  
>  endif # BR2_PACKAGE_LIBFTDI1
>  
> -comment "libftdi1 needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "libftdi1 needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/libgphoto2/Config.in b/package/libgphoto2/Config.in
> index fc60dd68a8..184ca206f1 100644
> --- a/package/libgphoto2/Config.in
> +++ b/package/libgphoto2/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_LIBGPHOTO2
>  	bool "libgphoto2"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBTOOL
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBXML2
> @@ -10,5 +11,6 @@ config BR2_PACKAGE_LIBGPHOTO2
>  
>  	  http://gphoto.org/proj/libgphoto2/
>  
> -comment "libgphoto needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "libgphoto needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/libhid/Config.in b/package/libhid/Config.in
> index ec66308061..abf338fdc7 100644
> --- a/package/libhid/Config.in
> +++ b/package/libhid/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_LIBHID
>  	bool "libhid"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
> @@ -8,5 +9,6 @@ config BR2_PACKAGE_LIBHID
>  
>  	  https://directory.fsf.org/wiki/Libhid
>  
> -comment "libhid needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "libhid needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/libiio/Config.in b/package/libiio/Config.in
> index dcc7c79d1a..0d89331c89 100644
> --- a/package/libiio/Config.in
> +++ b/package/libiio/Config.in
> @@ -33,13 +33,15 @@ config BR2_PACKAGE_LIBIIO_USB_BACKEND
>  	bool "USB backend"
>  	default y
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # from libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBIIO_XML_BACKEND
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable the USB backend of the library.
>  
> -comment "The USB backend needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "The USB backend needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  
>  config BR2_PACKAGE_LIBIIO_SERIAL_BACKEND
>  	bool "Serial backend"
> diff --git a/package/libiqrf/Config.in b/package/libiqrf/Config.in
> index 03555e063a..d86a7fd0ec 100644
> --- a/package/libiqrf/Config.in
> +++ b/package/libiqrf/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_LIBIQRF
>  	bool "libiqrf"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  This library implement specific protocol
> @@ -10,5 +11,6 @@ config BR2_PACKAGE_LIBIQRF
>  
>  	  https://github.com/nandra/libiqrf
>  
> -comment "libiqrf needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "libiqrf needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/libnfc/Config.in b/package/libnfc/Config.in
> index 14084dc889..073b8f37f5 100644
> --- a/package/libnfc/Config.in
> +++ b/package/libnfc/Config.in
> @@ -24,13 +24,15 @@ comment "acr122_pcsc driver needs a toolchain w/ threads, dynamic library"
>  config BR2_PACKAGE_LIBNFC_ACR122_USB
>  	bool "acr122_usb driver"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
>  	  support for acr122_usb driver
>  
> -comment "acr122_usb driver needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "acr122_usb driver needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  
>  config BR2_PACKAGE_LIBNFC_ACR122S
>  	bool "acr122s driver"
> diff --git a/package/libphidget/Config.in b/package/libphidget/Config.in
> index 61e915481d..ab1e3e31b1 100644
> --- a/package/libphidget/Config.in
> +++ b/package/libphidget/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_LIBPHIDGET
>  	bool "libphidget"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on !BR2_STATIC_LIBS
>  	select BR2_PACKAGE_LIBUSB
>  	help
> @@ -23,6 +24,6 @@ config BR2_PACKAGE_LIBPHIDGET
>  
>  	  http://phidgets.com/
>  
> -comment "libphidget needs a toolchain w/ threads, dynamic library"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> -	depends on BR2_STATIC_LIBS
> +comment "libphidget needs a toolchain w/ threads, dynamic library, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/librtlsdr/Config.in b/package/librtlsdr/Config.in
> index 238659a782..2f22c5b1c7 100644
> --- a/package/librtlsdr/Config.in
> +++ b/package/librtlsdr/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_LIBRTLSDR
>  	bool "librtlsdr"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Library and command line programs for accessing
> @@ -28,5 +29,6 @@ config BR2_PACKAGE_LIBRTLSDR_ZEROCOPY
>  
>  endif
>  
> -comment "librtlsdr needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "librtlsdr needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/libusb/Config.in b/package/libusb/Config.in
> index d31a717fdf..5a04ac128b 100644
> --- a/package/libusb/Config.in
> +++ b/package/libusb/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_LIBUSB
>  	bool "libusb"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # _Thread_local
>  	help
>  	  Userspace library for accessing USB devices
>  
> @@ -13,5 +14,6 @@ config BR2_PACKAGE_LIBUSB_EXAMPLES
>  
>  endif
>  
> -comment "libusb needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "libusb needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/mfgtools/Config.in.host b/package/mfgtools/Config.in.host
> index 6f2f3a3268..2b506c8f67 100644
> --- a/package/mfgtools/Config.in.host
> +++ b/package/mfgtools/Config.in.host
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_HOST_MFGTOOLS
>  	bool "host mfgtools"
>  	depends on BR2_arm
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  This package contains the Freescale manufacturing tool.
>  	  It is designed to program firmware to i.MX boards during
> @@ -8,3 +9,7 @@ config BR2_PACKAGE_HOST_MFGTOOLS
>  	  Freescale UTP protocol.
>  
>  	  https://github.com/codeauroraforum/mfgtools
> +
> +comment "host mfgtools needs a toolchain w/ host gcc >= 4.9"
> +	depends on BR2_arm
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> diff --git a/package/mxsldr/Config.in.host b/package/mxsldr/Config.in.host
> index 0a02877c8b..7c49f02012 100644
> --- a/package/mxsldr/Config.in.host
> +++ b/package/mxsldr/Config.in.host
> @@ -1,9 +1,14 @@
>  config BR2_PACKAGE_HOST_MXSLDR
>  	bool "host mxsldr"
>  	depends on BR2_arm || BR2_armeb
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  This package contains tools to download and execute code on
>  	  Freescale i.MX23 and i.MX28 SoC's through the Serial
>  	  Download Protocol.
>  
>  	  https://gitlab.denx.de/denx/mxsldr
> +
> +comment "host mxsldr needs a toolchain w/ host gcc >= 4.9"
> +	depends on BR2_arm || BR2_armeb
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> diff --git a/package/omxplayer/Config.in b/package/omxplayer/Config.in
> index 80e48d09c8..d2e4b5ace0 100644
> --- a/package/omxplayer/Config.in
> +++ b/package/omxplayer/Config.in
> @@ -5,6 +5,7 @@ config BR2_PACKAGE_OMXPLAYER
>  	depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS # ffmpeg
>  	depends on BR2_INSTALL_LIBSTDCPP # boost
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib, boost, libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on BR2_USE_WCHAR # boost
>  	depends on BR2_PACKAGE_RPI_USERLAND
>  	select BR2_PACKAGE_ALSA_LIB
> @@ -25,10 +26,11 @@ config BR2_PACKAGE_OMXPLAYER
>  
>  	  https://github.com/popcornmix/omxplayer
>  
> -comment "omxplayer needs rpi-userland and a toolchain w/ C++, threads, wchar, dynamic library"
> +comment "omxplayer needs rpi-userland and a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 4.9"
>  	depends on BR2_arm
>  	depends on BR2_USE_MMU
>  	depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
>  	depends on !BR2_PACKAGE_RPI_USERLAND
>  	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
> -		|| !BR2_USE_WCHAR || BR2_STATIC_LIBS
> +		|| !BR2_USE_WCHAR || BR2_STATIC_LIBS \
> +		|| !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/openfpgaloader/Config.in b/package/openfpgaloader/Config.in
> index 5bf496627b..f1b34ef5dd 100644
> --- a/package/openfpgaloader/Config.in
> +++ b/package/openfpgaloader/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_OPENFPGALOADER
>  	bool "openfpgaloader"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi1
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi1 -> libusb
>  	depends on BR2_INSTALL_LIBSTDCPP
>  	select BR2_PACKAGE_LIBFTDI1
>  	help
> @@ -8,5 +9,7 @@ config BR2_PACKAGE_OPENFPGALOADER
>  
>  	  https://github.com/trabucayre/openFPGALoader/
>  
> -comment "openfpgaloader needs a toolchain w/ threads, C++"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
> +comment "openfpgaloader needs a toolchain w/ threads, C++, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_INSTALL_LIBSTDCPP || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/openjdk/Config.in b/package/openjdk/Config.in
> index 3b35c725ee..1b60d80dc2 100644
> --- a/package/openjdk/Config.in
> +++ b/package/openjdk/Config.in
> @@ -20,6 +20,7 @@ config BR2_PACKAGE_OPENJDK
>  	depends on !BR2_STATIC_LIBS # glibc
>  	depends on BR2_INSTALL_LIBSTDCPP # cups
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib, cups, libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on BR2_TOOLCHAIN_USES_GLIBC
>  	depends on BR2_USE_MMU # cups
>  	depends on BR2_PACKAGE_XORG7
> @@ -151,12 +152,14 @@ comment "openjdk needs X.Org"
>  	depends on BR2_USE_MMU
>  	depends on !BR2_PACKAGE_XORG7
>  
> -comment "openjdk needs glibc, and a toolchain w/ wchar, dynamic library, threads, C++"
> +comment "openjdk needs glibc, and a toolchain w/ wchar, dynamic library, threads, C++, gcc >= 4.9"
>  	depends on BR2_USE_MMU
>  	depends on BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS
>  	depends on BR2_PACKAGE_HOST_OPENJDK_BIN_ARCH_SUPPORTS
>  	depends on BR2_STATIC_LIBS || !BR2_INSTALL_LIBSTDCPP || \
> -		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_USES_GLIBC
> +		!BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_USES_GLIBC || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  
>  comment "openjdk does not support soft float configurations"
>  	depends on BR2_PACKAGE_OPENJDK_ARCH_SUPPORTS
> diff --git a/package/openocd/Config.in b/package/openocd/Config.in
> index 448872061b..f2e79f29fe 100644
> --- a/package/openocd/Config.in
> +++ b/package/openocd/Config.in
> @@ -13,6 +13,7 @@ comment "Adapters"
>  config BR2_PACKAGE_OPENOCD_CMSIS_DAP
>  	bool "CMSIS-DAP compliant debuggers"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on BR2_PACKAGE_HAS_UDEV # hidapi
>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # hidapi
>  	select BR2_PACKAGE_LIBUSB
> @@ -24,6 +25,7 @@ config BR2_PACKAGE_OPENOCD_CMSIS_DAP
>  config BR2_PACKAGE_OPENOCD_FTDI
>  	bool "MPSSE mode of FTDI based devices"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable building support for the MPSSE mode of FTDI
> @@ -32,6 +34,7 @@ config BR2_PACKAGE_OPENOCD_FTDI
>  config BR2_PACKAGE_OPENOCD_STLINK
>  	bool "ST-Link JTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable building support for the ST-Link JTAG
> @@ -40,6 +43,7 @@ config BR2_PACKAGE_OPENOCD_STLINK
>  config BR2_PACKAGE_OPENOCD_TI_ICDI
>  	bool "TI ICDI JTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable building support for the TI ICDI JTAG
> @@ -48,6 +52,7 @@ config BR2_PACKAGE_OPENOCD_TI_ICDI
>  config BR2_PACKAGE_OPENOCD_ULINK
>  	bool "Keil ULINK JTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable building support for the Keil ULINK JTAG
> @@ -56,6 +61,7 @@ config BR2_PACKAGE_OPENOCD_ULINK
>  config BR2_PACKAGE_OPENOCD_UBLASTER2
>  	bool "Altera USB-Blaster II Compatible"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable building support for the Altera USB-Blaster
> @@ -64,6 +70,7 @@ config BR2_PACKAGE_OPENOCD_UBLASTER2
>  config BR2_PACKAGE_OPENOCD_JLINK
>  	bool "Segger J-Link JTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Segger J-Link JTAG Programmer and clone such as Atmel
> @@ -72,6 +79,7 @@ config BR2_PACKAGE_OPENOCD_JLINK
>  config BR2_PACKAGE_OPENOCD_OSDBM
>  	bool "OSDBM JTAG (only) Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable building support for the OSBDM (JTAG only)
> @@ -80,6 +88,7 @@ config BR2_PACKAGE_OPENOCD_OSDBM
>  config BR2_PACKAGE_OPENOCD_OPENDOUS
>  	bool "eStick/opendous JTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable building support for the eStick/opendous JTAG
> @@ -89,6 +98,7 @@ config BR2_PACKAGE_OPENOCD_AICE
>  	bool "Andes JTAG Programmer"
>  	depends on BR2_USE_MMU # use fork()
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Enable building support for the Andes JTAG
> @@ -97,6 +107,7 @@ config BR2_PACKAGE_OPENOCD_AICE
>  config BR2_PACKAGE_OPENOCD_VSLLINK
>  	bool "Versaloon-Link JTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb-compat -> libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
> @@ -106,6 +117,7 @@ config BR2_PACKAGE_OPENOCD_VSLLINK
>  config BR2_PACKAGE_OPENOCD_USBPROG
>  	bool "USBProg JTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb-compat -> libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
> @@ -115,6 +127,7 @@ config BR2_PACKAGE_OPENOCD_USBPROG
>  config BR2_PACKAGE_OPENOCD_RLINK
>  	bool "Raisonance RLink JTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb-compat -> libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
> @@ -124,6 +137,7 @@ config BR2_PACKAGE_OPENOCD_RLINK
>  config BR2_PACKAGE_OPENOCD_ARMEW
>  	bool "Olimex ARM-JTAG-EW Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb-compat -> libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb-compat -> libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
> @@ -143,6 +157,7 @@ config BR2_PACKAGE_OPENOCD_VPI
>  config BR2_PACKAGE_OPENOCD_UBLASTER
>  	bool "Altera USB-Blaster"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi -> libusb
>  	select BR2_PACKAGE_LIBFTDI1
>  	help
>  	  Enable building support for the Altera USB-Blaster
> @@ -183,6 +198,7 @@ config BR2_PACKAGE_OPENOCD_GW16012
>  config BR2_PACKAGE_OPENOCD_PRESTO
>  	bool "ASIX Presto Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi -> libusb
>  	select BR2_PACKAGE_LIBFTDI1
>  	help
>  	  Enable building support for ASIX Presto Programmer
> @@ -191,6 +207,7 @@ config BR2_PACKAGE_OPENOCD_PRESTO
>  config BR2_PACKAGE_OPENOCD_OPENJTAG
>  	bool "OpenJTAG Programmer"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libftdi -> libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi -> libusb
>  	select BR2_PACKAGE_LIBFTDI1
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT # needs usb.h
> @@ -209,10 +226,11 @@ config BR2_PACKAGE_OPENOCD_SYSFS
>  	  Enable building support for programming driven via
>  	  sysfs gpios.
>  
> -# Many adapters need libusb or libusb-compat, which require threads,
> -# but we don't want to duplicate this comment for all adapters that
> -# select libusb or libusb-compat.
> -comment "many openocd adapters needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +# Many adapters need libusb or libusb-compat, which require threads and
> +# gcc >= 4.9 but we don't want to duplicate this comment for all
> +# adapters that select libusb or libusb-compat.
> +comment "many openocd adapters needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  
>  endif # BR2_PACKAGE_OPENOCD
> diff --git a/package/openocd/Config.in.host b/package/openocd/Config.in.host
> index e1d0e63308..8ff37379a1 100644
> --- a/package/openocd/Config.in.host
> +++ b/package/openocd/Config.in.host
> @@ -1,6 +1,10 @@
>  config BR2_PACKAGE_HOST_OPENOCD
>  	bool "host openocd"
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  OpenOCD - Open On-Chip Debugger
>  
>  	  http://openocd.org/
> +
> +comment "host openocd needs a toolchain w/ host gcc >= 4.9"
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> diff --git a/package/pcsc-lite/Config.in b/package/pcsc-lite/Config.in
> index 3250a463b4..1b4d0f7d18 100644
> --- a/package/pcsc-lite/Config.in
> +++ b/package/pcsc-lite/Config.in
> @@ -13,10 +13,14 @@ if BR2_PACKAGE_PCSC_LITE
>  config BR2_PACKAGE_PCSC_LITE_FORCE_LIBUSB
>  	bool "use libusb"
>  	depends on !BR2_PACKAGE_HAS_UDEV
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Select Y if you want to support usb smart card readers.
>  
> +comment "libusb support needs a toolchain w/ gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> +
>  config BR2_PACKAGE_PCSC_LITE_DEBUGATR
>  	bool "enable ATR debug messages"
>  	help
> diff --git a/package/phidgetwebservice/Config.in b/package/phidgetwebservice/Config.in
> index 50018e0af9..b052f180f0 100644
> --- a/package/phidgetwebservice/Config.in
> +++ b/package/phidgetwebservice/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_PHIDGETWEBSERVICE
>  	bool "phidgetwebservice"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb, libphidget
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libphidget -> libusb
>  	depends on !BR2_STATIC_LIBS # libphidget
>  	select BR2_PACKAGE_LIBPHIDGET
>  	help
> @@ -17,6 +18,6 @@ config BR2_PACKAGE_PHIDGETWEBSERVICE
>  
>  	  http://phidgets.com/
>  
> -comment "phidgetwebservice needs a toolchain w/ threads, dynamic library"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> -	depends on BR2_STATIC_LIBS
> +comment "phidgetwebservice needs a toolchain w/ threads, dynamic library, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/python-libusb1/Config.in b/package/python-libusb1/Config.in
> index 1c4a72edae..e464a0394d 100644
> --- a/package/python-libusb1/Config.in
> +++ b/package/python-libusb1/Config.in
> @@ -1,11 +1,13 @@
>  config BR2_PACKAGE_PYTHON_LIBUSB1
>  	bool "python-libusb1"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Pure-python wrapper for libusb-1.0.
>  
>  	  http://github.com/vpelletier/python-libusb1
>  
> -comment "python-libusb1 needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "python-libusb1 needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/python-nfc/Config.in b/package/python-nfc/Config.in
> index 9a8102c23c..7008723f60 100644
> --- a/package/python-nfc/Config.in
> +++ b/package/python-nfc/Config.in
> @@ -2,6 +2,7 @@ config BR2_PACKAGE_PYTHON_NFC
>  	bool "python-nfc"
>  	depends on BR2_PACKAGE_PYTHON
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	select BR2_PACKAGE_LIBUSB_COMPAT
>  	help
> @@ -9,6 +10,7 @@ config BR2_PACKAGE_PYTHON_NFC
>  
>  	  https://launchpad.net/nfcpy
>  
> -comment "python-nfc needs a toolchain w/ threads"
> +comment "python-nfc needs a toolchain w/ threads, gcc >= 4.9"
>  	depends on BR2_PACKAGE_PYTHON
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/python-pylibftdi/Config.in b/package/python-pylibftdi/Config.in
> index d340974656..ce815a55fd 100644
> --- a/package/python-pylibftdi/Config.in
> +++ b/package/python-pylibftdi/Config.in
> @@ -1,11 +1,13 @@
>  config BR2_PACKAGE_PYTHON_PYLIBFTDI
>  	bool "python-pylibftdi"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libftdi -> libusb
>  	select BR2_PACKAGE_LIBFTDI
>  	help
>  	  This package contains the python language binding libftdi.
>  
>  	  https://pypi.python.org/pypi/pylibftdi
>  
> -comment "python-pylibftdi needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "python-pylibftdi needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/python-pyusb/Config.in b/package/python-pyusb/Config.in
> index 1f97979c71..bba3480a1b 100644
> --- a/package/python-pyusb/Config.in
> +++ b/package/python-pyusb/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_PYTHON_PYUSB
>  	bool "python-pyusb"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  The PyUSB module provides easy access to the Universal
> @@ -8,5 +9,6 @@ config BR2_PACKAGE_PYTHON_PYUSB
>  
>  	  http://sourceforge.net/apps/trac/pyusb/
>  
> -comment "python-pyusb needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "python-pyusb needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/qemu/Config.in.host b/package/qemu/Config.in.host
> index a7c0f7bf59..3163797067 100644
> --- a/package/qemu/Config.in.host
> +++ b/package/qemu/Config.in.host
> @@ -88,7 +88,11 @@ config BR2_PACKAGE_HOST_QEMU_VIRTFS
>  
>  config BR2_PACKAGE_HOST_QEMU_USB
>  	bool "USB passthrough support"
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  Enables USB passthrough support from guest to host.
>  
> +comment "USB passthrough support needs a toolchain w/ host gcc >= 4.9"
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> +
>  endif
> diff --git a/package/raspberrypi-usbboot/Config.in.host b/package/raspberrypi-usbboot/Config.in.host
> index dce2fccd54..b1a434f36e 100644
> --- a/package/raspberrypi-usbboot/Config.in.host
> +++ b/package/raspberrypi-usbboot/Config.in.host
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_HOST_RASPBERRYPI_USBBOOT
>  	bool "host raspberrypi-usbboot"
>  	depends on BR2_arm
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  This package builds and install the "rpiboot" tool for the
>  	  host machine. This tool allows to boot the Broadcom BCM
> @@ -10,3 +11,7 @@ config BR2_PACKAGE_HOST_RASPBERRYPI_USBBOOT
>  	  built into the Compute module).
>  
>  	  https://github.com/raspberrypi/usbboot
> +
> +comment "host raspberrypi-usbboot needs a toolchain w/ host gcc >= 4.9"
> +	depends on BR2_arm
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> diff --git a/package/sispmctl/Config.in b/package/sispmctl/Config.in
> index 6066dc051b..b08116e844 100644
> --- a/package/sispmctl/Config.in
> +++ b/package/sispmctl/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_SISPMCTL
>  	bool "sispmctl"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on BR2_USE_WCHAR
>  	depends on BR2_USE_MMU # fork()
>  	select BR2_PACKAGE_LIBUSB
> @@ -13,6 +14,7 @@ config BR2_PACKAGE_SISPMCTL
>  
>  	  http://sispmctl.sourceforge.net/
>  
> -comment "sispmctl needs a toolchain w/ threads, wchar"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR
> +comment "sispmctl needs a toolchain w/ threads, wchar, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  	depends on BR2_USE_MMU
> diff --git a/package/sunxi-tools/Config.in b/package/sunxi-tools/Config.in
> index 80a7130a92..5f72667284 100644
> --- a/package/sunxi-tools/Config.in
> +++ b/package/sunxi-tools/Config.in
> @@ -24,14 +24,16 @@ config BR2_PACKAGE_SUNXI_TOOLS_BOOTINFO
>  config BR2_PACKAGE_SUNXI_TOOLS_FEL
>  	bool "sunxi-fel"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  The sunxi-fel command can interact with a sunxi device in
>  	  fel mode. This allows do download code to memory and execute
>  	  it.
>  
> -comment "sunxi-fel needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "sunxi-fel needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  
>  config BR2_PACKAGE_SUNXI_TOOLS_NAND_PART
>  	bool "sunxi-nand-part"
> diff --git a/package/sunxi-tools/Config.in.host b/package/sunxi-tools/Config.in.host
> index 5fab5e6ff5..51f13cf623 100644
> --- a/package/sunxi-tools/Config.in.host
> +++ b/package/sunxi-tools/Config.in.host
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_HOST_SUNXI_TOOLS
>  	bool "host sunxi-tools"
>  	depends on BR2_arm
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  Tools for Allwinner A10 (aka sun4i) and A13 (aka sun5i)
>  	  based devices. This includes fex2bin which can be used to
> @@ -10,3 +11,7 @@ config BR2_PACKAGE_HOST_SUNXI_TOOLS
>  	  mainline Linux kernel version.
>  
>  	  http://linux-sunxi.org/Sunxi-tools
> +
> +comment "host sunxi-tools needs a toolchain w/ host gcc >= 4.9"
> +	depends on BR2_arm
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> diff --git a/package/tegrarcm/Config.in.host b/package/tegrarcm/Config.in.host
> index d8cbb947d6..937d81bd56 100644
> --- a/package/tegrarcm/Config.in.host
> +++ b/package/tegrarcm/Config.in.host
> @@ -1,8 +1,13 @@
>  config BR2_PACKAGE_HOST_TEGRARCM
>  	bool "host tegrarcm"
>  	depends on BR2_arm || BR2_armeb
> +	depends on BR2_HOST_GCC_AT_LEAST_4_9 # host-libusb
>  	help
>  	  This program is used to send code to a Tegra device in
>  	  recovery mode.
>  
>  	  https://github.com/NVIDIA/tegrarcm
> +
> +comment "host tegrarcm needs a toolchain w/ host gcc >= 4.9"
> +	depends on BR2_arm || BR2_armeb
> +	depends on !BR2_HOST_GCC_AT_LEAST_4_9
> diff --git a/package/uhd/Config.in b/package/uhd/Config.in
> index 32cb4cf89d..8b92a42f62 100644
> --- a/package/uhd/Config.in
> +++ b/package/uhd/Config.in
> @@ -33,16 +33,24 @@ if BR2_PACKAGE_UHD
>  
>  config BR2_PACKAGE_UHD_B100
>  	bool "b100 support"
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_UHD_USB
>  	help
>  	  enable B100 support
>  
> +comment "B100 support needs a toolchain w/ gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> +
>  config BR2_PACKAGE_UHD_B200
>  	bool "b200 support"
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_UHD_USB
>  	help
>  	  enable B200 support
>  
> +comment "B200 support needs a toolchain w/ gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> +
>  config BR2_PACKAGE_UHD_E300
>  	bool "E300 support"
>  	select BR2_PACKAGE_UHD_MPMD
> @@ -72,8 +80,12 @@ config BR2_PACKAGE_UHD_RFNOC
>  
>  config BR2_PACKAGE_UHD_USB
>  	bool "USB support"
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  enable UHD USB support
>  
> +comment "USB support needs a toolchain w/ gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> +
>  endif
> diff --git a/package/uhubctl/Config.in b/package/uhubctl/Config.in
> index c000b5ab49..52b0268a38 100644
> --- a/package/uhubctl/Config.in
> +++ b/package/uhubctl/Config.in
> @@ -1,11 +1,13 @@
>  config BR2_PACKAGE_UHUBCTL
>  	bool "uhubctl"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  Control USB power per-port on smart USB hubs.
>  
>  	  https://github.com/mvp/uhubctl
>  
> -comment "uhubctl needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "uhubctl needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/upower/Config.in b/package/upower/Config.in
> index e564384348..612a2b74b9 100644
> --- a/package/upower/Config.in
> +++ b/package/upower/Config.in
> @@ -2,6 +2,7 @@ config BR2_PACKAGE_UPOWER
>  	bool "upower"
>  	depends on BR2_PACKAGE_HAS_UDEV
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libgudev, libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	depends on BR2_USE_MMU # libgudev
>  	depends on BR2_USE_WCHAR # libgudev
>  	select BR2_PACKAGE_LIBGUDEV
> @@ -22,6 +23,7 @@ comment "upower needs udev /dev management"
>  	depends on BR2_USE_MMU
>  	depends on !BR2_PACKAGE_HAS_UDEV
>  
> -comment "upower needs a toolchain w/ threads, wchar"
> +comment "upower needs a toolchain w/ threads, wchar, gcc >= 4.9"
>  	depends on BR2_USE_MMU
> -	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/usb_modeswitch/Config.in b/package/usb_modeswitch/Config.in
> index 579761c040..ecb043a146 100644
> --- a/package/usb_modeswitch/Config.in
> +++ b/package/usb_modeswitch/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_USB_MODESWITCH
>  	bool "usb_modeswitch"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_JIMTCL if !BR2_PACKAGE_TCL || BR2_PACKAGE_TCL_SHLIB_ONLY
>  	select BR2_PACKAGE_LIBUSB
>  	help
> @@ -20,5 +21,6 @@ config BR2_PACKAGE_USB_MODESWITCH
>  
>  	  http://www.draisberghof.de/usb_modeswitch/
>  
> -comment "usb_modeswitch needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "usb_modeswitch needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/usb_modeswitch_data/Config.in b/package/usb_modeswitch_data/Config.in
> index 95b2a073bd..6da7d3bb0f 100644
> --- a/package/usb_modeswitch_data/Config.in
> +++ b/package/usb_modeswitch_data/Config.in
> @@ -1,6 +1,7 @@
>  config BR2_PACKAGE_USB_MODESWITCH_DATA
>  	bool "usb_modeswitch_data"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # usb_modeswitch -> libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # usb_modeswitch -> libusb
>  	select BR2_PACKAGE_USB_MODESWITCH
>  	help
>  	  USB mode switch data
> @@ -9,5 +10,6 @@ config BR2_PACKAGE_USB_MODESWITCH_DATA
>  
>  	  http://www.draisberghof.de/usb_modeswitch/
>  
> -comment "usb_modeswitch_data needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "usb_modeswitch_data needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
> diff --git a/package/usbredir/Config.in b/package/usbredir/Config.in
> index 78b0bff6e4..8ce180a884 100644
> --- a/package/usbredir/Config.in
> +++ b/package/usbredir/Config.in
> @@ -1,9 +1,11 @@
> -comment "usbredir needs a toolchain w/ threads"
> -	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +comment "usbredir needs a toolchain w/ threads, gcc >= 4.9"
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
>  
>  config BR2_PACKAGE_USBREDIR
>  	bool "usbredir"
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
>  	select BR2_PACKAGE_LIBUSB
>  	help
>  	  usbredir is the name of a network protocol for sending usb
> -- 
> 2.29.2
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list