Another external toolchain support solution
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 13 Dec 2008 16:15:50 +0000 (16:15 -0000)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 13 Dec 2008 16:15:50 +0000 (16:15 -0000)
 * In toolchain/external-toolchain/ext-tool.mk, copy the contents of
   the sysroot directory to the staging dir.

 * In package/Makefile.in, add a --sysroot CFLAGS pointing to the
   staging dir

 * Remove the CFLAGS and LDFLAGS definition from
   TARGET_CONFIGURE_OPTS. I haven't investigated exactly why, but with
   these options, DirectFB fails to build because it cannot find
   PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP, even if DirectFB's Makefile
   properly sets -D_GNU_SOURCE.

I have already sent this patch on December, 2nd to the mailing-list,
but got no feedback. So let's commit and see what happens :-)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Makefile.in
toolchain/external-toolchain/ext-tool.mk

index fe1d6ad9f17021b8729ab6cd39629eeca02e83af..66a8f695da5a35678e03df552ee6edfdb81cd67f 100644 (file)
@@ -89,7 +89,7 @@ TARGET_CXXFLAGS=$(TARGET_CFLAGS)
 # else it's an external toolchain
 #########################################################################
 else
-TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include
+TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include --sysroot $(STAGING_DIR)/
 TARGET_CXXFLAGS=$(TARGET_CFLAGS)
 TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
 endif
@@ -210,8 +210,6 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
                AR="$(TARGET_AR)" \
                AS="$(TARGET_AS)" \
                LD="$(TARGET_LD)" \
-               CFLAGS="$(TARGET_CFLAGS)" \
-               LDFLAGS="$(TARGET_LDFLAGS)" \
                NM="$(TARGET_NM)" \
                CC="$(TARGET_CC) $(TARGET_CFLAGS)" \
                GCC="$(TARGET_CC) $(TARGET_CFLAGS)" \
index a9ca1f4a976dc537a32ed861e727d5f01ecc0e00..8ff4722f37cdf806a4580216dd0f49beac5e5b58 100644 (file)
@@ -44,6 +44,11 @@ copy_toolchain_lib_root = \
  \
        echo -n
 
+copy_toolchain_sysroot = \
+       SYSROOT_DIR=`$(TARGET_CC) -v 2>&1 | grep ^Configured | tr " " "\n" | grep -- "--with-sysroot" | cut -f2 -d=`; \
+       cp -a $${SYSROOT_DIR}/* $(STAGING_DIR)/ ; \
+       find $(STAGING_DIR) -type d | xargs chmod 755
+
 uclibc: dependencies $(TARGET_DIR)/lib/$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C)))
 
 $(TARGET_DIR)/lib/$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C))):
@@ -54,3 +59,4 @@ $(TARGET_DIR)/lib/$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIB_C))):
        for libs in $(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_LIBS))); do \
                $(call copy_toolchain_lib_root, $$libs, /lib, $(BR2_TOOLCHAIN_EXTERNAL_STRIP)); \
        done
+       $(call copy_toolchain_sysroot)
\ No newline at end of file