[Buildroot] Binary toolchain fails

Daniel Laird danieljlaird at hotmail.com
Mon Feb 2 12:55:02 UTC 2009


Regarding the external toolchain stuff.

I am using a toolchain built by a different vendor and buildroot with no major issues.
I do use the ext-tool.mk version and for that I make sure that the sysroot of my compiler is copied into $(STAGING_DIR).  
The slight issue I have is that my toolchain vendor has a cross directory and a rootfs directory.  
The toolchain reports its sysroot as /path/to/cross.  
So the exttool.mk tries to copy that into STAGINGDIR.  However the files in cross are not the correct files.  

It should be using the files in rootfs.  So I have extended ext-tool.mk to allow the directory that gets copied over at the start of the process to be overridden (supplied) or guessed (--sysroot option). (will look to add this after release)

This gets copied into $(STAGINGDIR) and then I pass --sysroot=$(STAGING_DIR) to the compiler.

This is working rather well.
The stuff that seems broken (according to email traffic) is the toolchain+source option so buildroot built toolchain appears to work well and I am finding the ext-tool.mk binary toolchain works well.

Cheers
Dan

-----Original Message-----
From: buildroot-bounces at busybox.net [mailto:buildroot-bounces at busybox.net] On Behalf Of Ulf Samuelsson
Sent: 2009 Feb 01 14:01
To: Peter Korsgaard
Cc: buildroot at uclibc.org
Subject: Re: [Buildroot] Binary toolchain fails

sön 2009-02-01 klockan 14:06 +0100 skrev Peter Korsgaard:
> >>>>> "Ulf" == Ulf Samuelsson <ulf.samuelsson at atmel.com> writes:
> 
>  Ulf> I am testing the binary toolchain, with a toolchain built
>  Ulf> by another buildroot project.
> 
> The external toolchain stuff? That's afaik known to not work.
> 
>  Ulf> Several packages does not build correctly.
> 
>  Ulf> "-lintl" and "-liconv are" not found.
> 
> Strange, so the packages don't respect CFLAGS / LDFLAGS?
> 
>  Ulf> Examples are "e2fsprogs" and "libgpg-error"
> 
>  Ulf> by doing
> 
> 
>  Ulf> ifeq	($(BR2_PACKAGE_LIBICONV),y)
>  Ulf> LIBGPG_ERROR_CONF_OPT += --with-libiconv-prefix=$(STAGING_DIR)/usr
>  Ulf> endif
> 
>  Ulf> ifeq	($(BR2_PACKAGE_LIBINTL),y)
>  Ulf> LIBGPG_ERROR_CONF_OPT += --with-libintl-prefix=$(STAGING_DIR)/usr
>  Ulf> endif
> 
> And what about the 10s of other libraries we have? To me it seems like
> something else is broken in the external toolchain stuff, and this is
> just pampering over it.
> 
>  Ulf> KERNEL HEADERS
>  Ulf> --------------
>  Ulf> If you build just the toolchain to, lets say, /usr/local/arm/gcc-4.3.2, 
>  Ulf> and use this directory as GCCROOT in your external toolchain,
>  Ulf> you have no kernel-headers.
> 
>  Ulf> Should the kernel headers really be installed in
>  Ulf> toolchain_build_ARCH/linux?
>  Ulf> Why not in "$(STAGING_DIR)/usr/include/linux" ?
> 
>  Ulf> If you are not building a toolchain from source, then
>  Ulf> the kernel-headers target is not available.
>  Ulf> I moved them out from the if BUILDROOT_TOOLCHAIN_SOURCE
>  Ulf> clause so they build for me, but I think that
>  Ulf> is the wrong solution and generating the headers in 
>  Ulf> "$(STAGING_DIR)/usr/include/linux" is better.
> 
>  Ulf> Comments?
> 
> The kernel headers are pretty closely related to the C library, and
> hence the toolchain, so my initial thought is that it sounds wrong.


I think the kernel headers should be in $(STAGING_DIR)/usr/include/linux
You think this is wrong?

THe other thing is just a workadound!

BR
Ulf Samuelsson

> But if you want to work on making the external toolchain stuff less
> broken AFTER the release, then that's fine as long as it doesn't add
> too much complications and the internal toolchain stuff keeps working.
> 
> -- 
> Bye, Peter Korsgaard
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot




More information about the buildroot mailing list