toolchain/wrapper: fill and reference info.mk in staging_dir ext toolchain

Currently when external toolchain is used, a info.mk is created (with
to-be-filled values) but is never actually filled with real values and
is never actually used in rules.mk.

This info.mk is used down the code with special packages like libgcc to
reference info like gcc version and package special library.

To mimic what is done with internal toolchain, add the include in
rules.mk for info.mk also for external library and in fix
toolchain/wrapper to fill the staging_dir info.mk.

The logic is to check if the external toolchain provide an info.mk and
if it doesn't we at least fill the GCC_VERSION with the value set in the
.config file.

With this special library like libgcc correctly reference and have set the
GCC_VERSION variable.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This commit is contained in:
Christian Marangi 2024-04-20 18:29:23 +02:00
parent 4a81d868db
commit 0e161968a7
No known key found for this signature in database
GPG Key ID: AC001D09ADBFEAD7
2 changed files with 11 additions and 0 deletions

View File

@ -194,6 +194,7 @@ ifndef DUMP
endif endif
else else
ifeq ($(CONFIG_NATIVE_TOOLCHAIN),) ifeq ($(CONFIG_NATIVE_TOOLCHAIN),)
-include $(TOOLCHAIN_DIR)/info.mk
TARGET_CROSS:=$(call qstrip,$(CONFIG_TOOLCHAIN_PREFIX)) TARGET_CROSS:=$(call qstrip,$(CONFIG_TOOLCHAIN_PREFIX))
TOOLCHAIN_ROOT_DIR:=$(call qstrip,$(CONFIG_TOOLCHAIN_ROOT)) TOOLCHAIN_ROOT_DIR:=$(call qstrip,$(CONFIG_TOOLCHAIN_ROOT))
TOOLCHAIN_BIN_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_BIN_PATH))) TOOLCHAIN_BIN_DIRS:=$(patsubst ./%,$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_BIN_PATH)))

View File

@ -38,6 +38,14 @@ $$(if $$($(1)), \
endef endef
define Host/SetToolchainInfo
if [ -f $(CONFIG_TOOLCHAIN_ROOT)/info.mk ]; then \
$(CP) $(CONFIG_TOOLCHAIN_ROOT)/info.mk $(TOOLCHAIN_DIR)/; \
else \
$(SED) 's,GCC_VERSION=.*,GCC_VERSION=$(CONFIG_GCC_VERSION),' $(TOOLCHAIN_DIR)/info.mk; \
fi
endef
define Host/Prepare define Host/Prepare
$(call toolchain_test,CONFIG_SOFT_FLOAT,softfloat) $(call toolchain_test,CONFIG_SOFT_FLOAT,softfloat)
$(call toolchain_test,CONFIG_IPV6,ipv6) $(call toolchain_test,CONFIG_IPV6,ipv6)
@ -53,10 +61,12 @@ endef
define Host/Install define Host/Install
$(call toolchain_util,--wrap "$(TOOLCHAIN_DIR)/bin") $(call toolchain_util,--wrap "$(TOOLCHAIN_DIR)/bin")
$(call Host/SetToolchainInfo)
endef endef
define Host/Clean define Host/Clean
rm -rf $(TOOLCHAIN_DIR)/bin rm -rf $(TOOLCHAIN_DIR)/bin
rm -rf $(TOOLCHAIN_DIR)/info.mk
endef endef
$(eval $(call HostBuild)) $(eval $(call HostBuild))