Commit 12825f7a authored by Arnout Vandecappelle's avatar Arnout Vandecappelle Committed by Thomas Petazzoni
Browse files

Config.in: add symbols for BR2_HOST_GCC_AT_LEAST_X_Y



Some host packages need a recent gcc version. Add symbols to Config.in
to specify the HOSTCC version. The values are passed through the
environment, and this environment is generated in a new support script.

Also update the documentation to mention the new symbols.

[Thomas: simplify by using only make logic instead of an external
shell script.]

Signed-off-by: default avatarArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 44980396
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -18,6 +18,30 @@ config BR2_EXTERNAL
	string
	option env="BR2_EXTERNAL"

# Hidden config symbols for packages to check system gcc version
config BR2_HOST_GCC_VERSION
	string
	option env="HOST_GCC_VERSION"

config BR2_HOST_GCC_AT_LEAST_4_7
	bool
	default y if BR2_HOST_GCC_VERSION = "4 7"

config BR2_HOST_GCC_AT_LEAST_4_8
	bool
	default y if BR2_HOST_GCC_VERSION = "4 8"
	select BR2_HOST_GCC_AT_LEAST_4_7

config BR2_HOST_GCC_AT_LEAST_4_9
	bool
	default y if BR2_HOST_GCC_VERSION = "4 9"
	select BR2_HOST_GCC_AT_LEAST_4_8

config BR2_HOST_GCC_AT_LEAST_5
	bool
	default y if BR2_HOST_GCC_VERSION = "5"
	select BR2_HOST_GCC_AT_LEAST_4_9

# Hidden boolean selected by packages in need of Java in order to build
# (example: xbmc)
config BR2_NEEDS_HOST_JAVA
+9 −0
Original line number Diff line number Diff line
@@ -293,6 +293,14 @@ HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranli
export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE

HOSTCC_VERSION := $(shell $(HOSTCC_NOCCACHE) --version | \
	sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p')

# For gcc >= 5.x, we only need the major version.
ifneq ($(firstword $(HOSTCC_VERSION)),4)
HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION))
endif

# Make sure pkg-config doesn't look outside the buildroot tree
HOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)
unexport PKG_CONFIG_PATH
@@ -724,6 +732,7 @@ COMMON_CONFIG_ENV = \
	KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \
	BR2_CONFIG=$(BR2_CONFIG) \
	BR2_EXTERNAL=$(BR2_EXTERNAL) \
	HOST_GCC_VERSION="$(HOSTCC_VERSION)" \
	SKIP_LEGACY=

xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile
+7 −0
Original line number Diff line number Diff line
@@ -283,6 +283,13 @@ use in the comment.
** Comment string: +gcc >= X.Y+ and/or `gcc <= X.Y` (replace
   +X.Y+ with the proper version)

* Host GCC version
** Dependency symbol: +BR2_HOST_GCC_AT_LEAST_X_Y+, (replace
   +X_Y+ with the proper version, see +Config.in+)
** Comment string: no comment to be added
** Note that it is usually not the package itself that has a minimum
   host GCC version, but rather a host-package on which it depends.

* C library
** Dependency symbol: +BR2_TOOLCHAIN_USES_GLIBC+,
   +BR2_TOOLCHAIN_USES_MUSL+, +BR2_TOOLCHAIN_USES_UCLIBC+