diff mbox

toolchain/external: do not accept distro-class toolchains

Message ID 1422225691-15930-1-git-send-email-yann.morin.1998@free.fr
State Changes Requested
Headers show

Commit Message

Yann E. MORIN Jan. 25, 2015, 10:41 p.m. UTC
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/helpers.mk | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Arnout Vandecappelle Jan. 27, 2015, 9:13 p.m. UTC | #1
On 25/01/15 23:41, Yann E. MORIN wrote:
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  toolchain/helpers.mk | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
> index 3121da4..61a3639 100644
> --- a/toolchain/helpers.mk
> +++ b/toolchain/helpers.mk
> @@ -347,6 +347,11 @@ check_unusable_toolchain = \
>  		echo "them unsuitable as external toolchains for build systems" ; \
>  		echo "such as Buildroot." ; \
>  		exit 1 ; \
> +	fi; \
> +	with_sysroot=`$${__CROSS_CC} -v 2>&1 |sed -r -e '/.* --with-sysroot=([^[:space:]]+)[[:space:]].*/!d; s//\1/'`; \
> +	if test "$${with_sysroot}"  = "/" ; then \
> +		echo "Distribution toolchains are unsuitable for use by Buildroot," ; \
> +		echo "as they were configured in a way that makes them non-relocatable."; \

 This sounds as if the problem is that the binary can't be moved to a different
place. But for pre-installed external toolchains, we don't do that.

 But I guess the real problem is that we can't copy the libs to the staging dir,
right? So perhaps that should be written in this remark.

 Regards,
 Arnout

>  	fi
>  
>  #
>
Thomas Petazzoni Jan. 27, 2015, 9:16 p.m. UTC | #2
Dear Arnout Vandecappelle,

On Tue, 27 Jan 2015 22:13:08 +0100, Arnout Vandecappelle wrote:

>  This sounds as if the problem is that the binary can't be moved to a different
> place. But for pre-installed external toolchains, we don't do that.
> 
>  But I guess the real problem is that we can't copy the libs to the staging dir,
> right? So perhaps that should be written in this remark.

Yes the problem is more that such toolchains typically don't have a
clean sysroot, with just the C library, C library headers and kernel
headers.

Thomas
Yann E. MORIN Jan. 28, 2015, 6:34 p.m. UTC | #3
Arnout, Thomas, All,

On 2015-01-27 22:16 +0100, Thomas Petazzoni spake thusly:
> On Tue, 27 Jan 2015 22:13:08 +0100, Arnout Vandecappelle wrote:
> 
> >  This sounds as if the problem is that the binary can't be moved to a different
> > place. But for pre-installed external toolchains, we don't do that.
> > 
> >  But I guess the real problem is that we can't copy the libs to the staging dir,
> > right? So perhaps that should be written in this remark.
> 
> Yes the problem is more that such toolchains typically don't have a
> clean sysroot, with just the C library, C library headers and kernel
> headers.

Well, both.

They are tainted with a lot of cruft we are not interested in, indeed.

But since the sysroot is not a sub-directory of the --prefix, they are
not relocatable either.

I'll update the error message to take your comments into account.
Thanks! :-)

Regards,
Yann E. MORIN.
diff mbox

Patch

diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
index 3121da4..61a3639 100644
--- a/toolchain/helpers.mk
+++ b/toolchain/helpers.mk
@@ -347,6 +347,11 @@  check_unusable_toolchain = \
 		echo "them unsuitable as external toolchains for build systems" ; \
 		echo "such as Buildroot." ; \
 		exit 1 ; \
+	fi; \
+	with_sysroot=`$${__CROSS_CC} -v 2>&1 |sed -r -e '/.* --with-sysroot=([^[:space:]]+)[[:space:]].*/!d; s//\1/'`; \
+	if test "$${with_sysroot}"  = "/" ; then \
+		echo "Distribution toolchains are unsuitable for use by Buildroot," ; \
+		echo "as they were configured in a way that makes them non-relocatable."; \
 	fi
 
 #