Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [RFC] First hack for external toolchain support based on sysroot
Date: Wed, 10 Dec 2008 09:24:57 +0100	[thread overview]
Message-ID: <20081210092457.64d6ef9f@surf> (raw)
In-Reply-To: <20081202232132.7c67e402@surf>

Hi,

Any reaction to this patch ?

Thanks,

Thomas

Le Tue, 2 Dec 2008 23:21:32 +0100,
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> a ?crit :

> Hi,
> 
> This evening, I had a quick look at implementing support for external
> toolchain based on --sysroot. It seems to work, see the included
> patch. It's very hacky at the moment, I'm waiting for your
> suggestions to improve the patch.
> 
> Sincerly,
> 
> Thomas
> 
> ---
> 
> Another external toolchain support solution
> 
>  * 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.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  package/Makefile.in                      |    4 +---
>  toolchain/external-toolchain/ext-tool.mk |    6 ++++++
>  2 files changed, 7 insertions(+), 3 deletions(-)
> 
> Index: buildroot2/package/Makefile.in
> ===================================================================
> --- buildroot2.orig/package/Makefile.in
> +++ buildroot2/package/Makefile.in
> @@ -89,7 +89,7 @@
>  # 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 @@ 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: buildroot2/toolchain/external-toolchain/ext-tool.mk
> ===================================================================
> --- buildroot2.orig/toolchain/external-toolchain/ext-tool.mk
> +++ buildroot2/toolchain/external-toolchain/ext-tool.mk
> @@ -44,6 +44,11 @@
>   \
>  	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 @@
>  	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
> 
> 


-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.
http://free-electrons.com

      parent reply	other threads:[~2008-12-10  8:24 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-02 22:21 [Buildroot] [RFC] First hack for external toolchain support based on sysroot Thomas Petazzoni
2008-12-03  8:14 ` Daniel Laird
2008-12-03  8:31   ` Thomas Petazzoni
2008-12-10  8:24 ` Thomas Petazzoni [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081210092457.64d6ef9f@surf \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox