difos/toolchain/wrapper/Makefile
Ondrej Cierny 1ce0eb5bf2 toolchain/wrapper: add missing qstrip to info.mk export
When using an external toolchain, the SetToolchainInfo function
is missing a qstrip call on GCC_VERSION, which results in quotes
making it to the toolchain info.mk file.

This leads to a failure to build the libgcc ipk package because
the quotes make it to its version and filename. For some reason,
it only fails on the first make invocation, but succeeds on
subsequent ones on my setup.

Fix this issue by adding the qstrip, making it consistent with
the internal toolchain approach.

Signed-off-by: Ondrej Cierny <o.cierny@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/19192
Signed-off-by: Robert Marko <robimarko@gmail.com>
2025-06-23 13:30:15 +02:00

72 lines
1.8 KiB
Makefile

#
# Copyright (C) 2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=wrapper
PKG_VERSION:=1
include $(INCLUDE_DIR)/toolchain-build.mk
# 1: args
define toolchain_util
$(strip $(SCRIPT_DIR)/ext-toolchain.sh --toolchain $(CONFIG_TOOLCHAIN_ROOT) \
--cflags $(CONFIG_TARGET_OPTIMIZATION) \
--cflags "$(if $(call qstrip,$(CONFIG_TOOLCHAIN_LIBC)),-m$(call qstrip,$(CONFIG_TOOLCHAIN_LIBC))) $(if $(CONFIG_SOFT_FLOAT),-msoft-float)" \
--cflags "$(patsubst ./%,-I$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_INC_PATH)))" \
--cflags "$(patsubst ./%,-L$(TOOLCHAIN_ROOT_DIR)/%,$(call qstrip,$(CONFIG_TOOLCHAIN_LIB_PATH)))" \
$(1))
endef
# 1: config symbol
# 2: feature
define toolchain_test
$$(if $$($(1)), \
@echo -n "Testing external toolchain for $(2) support ... "; \
if $(call toolchain_util,--test "$(2)"); then \
echo "ok"; exit 0; \
else \
echo "failed"; \
echo "ERROR: $(1) is enabled but the external toolchain does not support it"; \
exit 1; \
fi)
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=$(call qstrip,$(CONFIG_GCC_VERSION)),' $(TOOLCHAIN_DIR)/info.mk; \
fi
endef
define Host/Prepare
$(call toolchain_test,CONFIG_SOFT_FLOAT,softfloat)
$(call toolchain_test,CONFIG_IPV6,ipv6)
$(call toolchain_test,CONFIG_NLS,wchar)
$(call toolchain_test,CONFIG_PACKAGE_libpthread,threads)
endef
define Host/Configure
endef
define Host/Compile
endef
define Host/Install
$(call toolchain_util,--wrap "$(TOOLCHAIN_DIR)/bin")
$(call Host/SetToolchainInfo)
endef
define Host/Clean
rm -rf $(TOOLCHAIN_DIR)/bin
rm -rf $(TOOLCHAIN_DIR)/info.mk
endef
$(eval $(call HostBuild))