From 3b7aee23f2ab732f06b8a090ca002fb102d547ee Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Wed, 24 Mar 2010 23:42:42 +0100 Subject: external toolchain: fix sysroot location if the toolchain was moved Sysrooted toolchain can be relocated. In this case, the sysroot is no longer located at the place it was configured at. Signed-off-by: Yann E. MORIN Acked-By: Thomas Petazzoni Signed-off-by: Peter Korsgaard --- toolchain/external-toolchain/ext-tool.mk | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'toolchain') diff --git a/toolchain/external-toolchain/ext-tool.mk b/toolchain/external-toolchain/ext-tool.mk index 1f5aa1932..80bdae63b 100644 --- a/toolchain/external-toolchain/ext-tool.mk +++ b/toolchain/external-toolchain/ext-tool.mk @@ -205,7 +205,14 @@ ifeq ($(BR2_INSTALL_LIBSTDCPP),y) EXTERNAL_LIBS+=libstdc++.so endif -SYSROOT_DIR=$(shell LANG=C $(TARGET_CC) -v 2>&1 | grep ^Configured | tr " " "\n" | grep -- "--with-sysroot" | cut -f2 -d=) +# This dance is needed because the toolchain may have been relocated, so the +# configured paths may no longer match; fortunately, the sysroot moves along +# the toolchain, so is always at the same place relative to the toolchain's +# current location. +CFG_PREFIX_DIR=$(shell LANG=C $(TARGET_CC) -v 2>&1 | grep ^Configured | tr " " "\n" | grep -- "--prefix=" | cut -f2 -d=) +CFG_SYSROOT_DIR=$(shell LANG=C $(TARGET_CC) -v 2>&1 | grep ^Configured | tr " " "\n" | grep -- "--with-sysroot=" | cut -f2 -d=) +REL_SYSROOT_DIR=$(shell echo "$(CFG_SYSROOT_DIR)" |sed -r -e 's:^$(CFG_PREFIX_DIR)::;') +SYSROOT_DIR=$(TOOLCHAIN_EXTERNAL_PATH)/$(REL_SYSROOT_DIR) $(STAMP_DIR)/ext-toolchain-installed: @echo "Checking external toolchain settings" -- cgit v1.2.3