From 07d15f907bfc8737abc69cfb11ce30c88e9bb5c2 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Mon, 5 Jul 2010 18:58:55 +0200 Subject: ext-toolchain: Fix ARCH_SYSROOT detection For the detection of the ARCH_SYSROOT_DIR (which contains the C library variant specific to the compiler flags), we used to pass only the -march argument instead of the full TARGET_CFLAGS. This was done because TARGET_CFLAGS contains --sysroot, and we don't want to tell here the compiler which sysroot to use, because we're specifically asking the compiler where the *normal* arch sysroot directory is. Unfortunately, there are some multilib variants that aren't decided only based on -march, but also on -msoft-float or other compiler flags. Therefore, we take the opposite approach: pass the full TARGET_CFLAGS, from which we have stripped the --sysroot option. For example, this allows a PowerPC CodeSourcery toolchain, on which we're using the soft-float multilib variant, to work properly as an external toolchain. Signed-off-by: Thomas Petazzoni Reviewed-by: Yann E. MORIN Signed-off-by: Peter Korsgaard --- package/Makefile.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'package') diff --git a/package/Makefile.in b/package/Makefile.in index 92b57102c..5147dc851 100644 --- a/package/Makefile.in +++ b/package/Makefile.in @@ -88,9 +88,9 @@ TARGET_LDFLAGS+= $(BR2_SYSROOT) ######################################################################### else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y) -TARGET_CFLAGS+=--sysroot $(STAGING_DIR)/ +TARGET_CFLAGS+=--sysroot=$(STAGING_DIR)/ TARGET_CXXFLAGS=$(TARGET_CFLAGS) -TARGET_LDFLAGS=--sysroot $(STAGING_DIR)/ +TARGET_LDFLAGS=--sysroot=$(STAGING_DIR)/ TARGET_LDFLAGS+=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib endif ######################################################################### -- cgit v1.2.3