Quantcast

Can I use the toolchain build with buildroot, as an external toolchain ?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Can I use the toolchain build with buildroot, as an external toolchain ?

Vellemans, Noel

Hi all,

Thomas, gave me a hint on how to make 'full' compiles faster.

<<Thomas Petazzoni>>
>>Another way of speeding up the build is to use an external toolchain
if you're not
>>already using. You can also enable the ccache
>>feature (be sure to have the latest ccache fixes, otherwise ccache is
basically
>>unused).

Q: Can I use a toolchain that has been build with buildroot (before) as
an external toolchain ?

Q: Is this explained somewhere, on how to do this ?


Thanks,
Noel


_______________________________________________
buildroot mailing list
[hidden email]
http://lists.busybox.net/mailman/listinfo/buildroot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Can I use the toolchain build with buildroot, as an external toolchain ?

Grant Edwards-6
On 2012-03-22, Vellemans, Noel <[hidden email]> wrote:

> Q: Can I use a toolchain that has been build with buildroot (before)
> as an external toolchain ?

Yes.  I used to do that.  After a few weeks, I gave up on it and built
an external toolchain using crosstool-ng.

> Q: Is this explained somewhere, on how to do this?

No, because it's much simpler to just build an external toolchain
using crosstool-ng, and then configure Buildroot use that.

--
Grant Edwards               grant.b.edwards        Yow! I am NOT a nut....
                                  at              
                              gmail.com            

_______________________________________________
buildroot mailing list
[hidden email]
http://lists.busybox.net/mailman/listinfo/buildroot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Can I use the toolchain build with buildroot, as an external toolchain ?

Thomas Petazzoni-2
Hello,

Le Thu, 22 Mar 2012 16:49:31 +0000 (UTC),
Grant Edwards <[hidden email]> a écrit :

> > Q: Can I use a toolchain that has been build with buildroot (before)
> > as an external toolchain ?
>
> Yes.  I used to do that.  After a few weeks, I gave up on it and built
> an external toolchain using crosstool-ng.
>
> > Q: Is this explained somewhere, on how to do this?
>
> No, because it's much simpler to just build an external toolchain
> using crosstool-ng, and then configure Buildroot use that.

Yes, I agree.

If you want to do that anyway, here are the steps. From a pristine
Buildroot configuration:

 * Select your architecture
 * Select your architecture variant
 * In Build options, set the host dir to /opt/your-toolchain-name where
   your-toolchain-name would typically be arm-linux-uclibcgnueabi or
   something like that (but it can also be anything else)
 * In Toolchain, use the Buildroot internal backend, and configure
   everything (gcc version, binutils version, etc.)
 * In Packages, disable Busybox (i.e no packages at all should be
   selected)
 * In target filesystems, disable the tarball (i.e no filesystems at
   all should be selected)

Then, build with make. You have your toolchain
in /opt/your-toolchain-name. You can erase your Buildroot build and
configuration now.

Now, you can do a second Buildroot to build your system itself,
re-using the toolchain you have created.

In the toolchain menu, select external toolchain, and then Custom
external toolchain. In the toolchain path,
set /opt/your-toolchain-name/usr/, and adjust the
IPv6/RPC/locale/wide-char options to the ones you have used when
building your toolchain. Don't worry if you're not sure here: Buildroot
will check at the beginning of the build all those options and will
abort if anything is incorrect.

Regards,

Thomas Petazzoni
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
_______________________________________________
buildroot mailing list
[hidden email]
http://lists.busybox.net/mailman/listinfo/buildroot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Can I use the toolchain build with buildroot, as an external toolchain ?

Steve Calfee-4
On 03/22/2012 09:55 AM, Thomas Petazzoni wrote:

> Hello,
>
>
> Yes, I agree.
>
> If you want to do that anyway, here are the steps. From a pristine
> Buildroot configuration:
>
>   * Select your architecture
>   * Select your architecture variant
>   * In Build options, set the host dir to /opt/your-toolchain-name where
>     your-toolchain-name would typically be arm-linux-uclibcgnueabi or
>     something like that (but it can also be anything else)
>   * In Toolchain, use the Buildroot internal backend, and configure
>     everything (gcc version, binutils version, etc.)
>   * In Packages, disable Busybox (i.e no packages at all should be
>     selected)
>   * In target filesystems, disable the tarball (i.e no filesystems at
>     all should be selected)
>
> Then, build with make. You have your toolchain
> in /opt/your-toolchain-name. You can erase your Buildroot build and
> configuration now.
>
> Now, you can do a second Buildroot to build your system itself,
> re-using the toolchain you have created.
>
> In the toolchain menu, select external toolchain, and then Custom
> external toolchain. In the toolchain path,
> set /opt/your-toolchain-name/usr/, and adjust the
> IPv6/RPC/locale/wide-char options to the ones you have used when
> building your toolchain. Don't worry if you're not sure here: Buildroot
> will check at the beginning of the build all those options and will
> abort if anything is incorrect.
>
> Regards,
>
> Thomas Petazzoni

I do it slightly differently. I go through most of your steps above,
except I leave the toolchain in the default buildroot directory. (I
think it is in output/host...). Then I check out another buildroot tree
and select external toolchain in that tree to point to the other
buildroot tree with just the compiler.

This way if I forgot a needed toolchain option, I can go back to the
original tools tree, make clean, configure to what I need and rebuild
just the toolchain. Also I can easily upgrade to the latest buildroot
tools when needed.

You should always use an external toolchain, otherwise the development
tree is just too painful to do a "make clean" in. But in my use case the
external toolchain is an external buildroot toolchain.

Regards, Steve


_______________________________________________
buildroot mailing list
[hidden email]
http://lists.busybox.net/mailman/listinfo/buildroot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Can I use the toolchain build with buildroot, as an external toolchain ?

Aleksandar Zivkovic-2
On 22/03/2012 18:55, Steve Calfee wrote:

> On 03/22/2012 09:55 AM, Thomas Petazzoni wrote:
>> Hello,
>>
>>
>> Yes, I agree.
>>
>> If you want to do that anyway, here are the steps. From a pristine
>> Buildroot configuration:
>>
>> * Select your architecture
>> * Select your architecture variant
>> * In Build options, set the host dir to /opt/your-toolchain-name where
>> your-toolchain-name would typically be arm-linux-uclibcgnueabi or
>> something like that (but it can also be anything else)
>> * In Toolchain, use the Buildroot internal backend, and configure
>> everything (gcc version, binutils version, etc.)
>> * In Packages, disable Busybox (i.e no packages at all should be
>> selected)
>> * In target filesystems, disable the tarball (i.e no filesystems at
>> all should be selected)
>>
>> Then, build with make. You have your toolchain
>> in /opt/your-toolchain-name. You can erase your Buildroot build and
>> configuration now.
>>
>> Now, you can do a second Buildroot to build your system itself,
>> re-using the toolchain you have created.
>>
>> In the toolchain menu, select external toolchain, and then Custom
>> external toolchain. In the toolchain path,
>> set /opt/your-toolchain-name/usr/, and adjust the
>> IPv6/RPC/locale/wide-char options to the ones you have used when
>> building your toolchain. Don't worry if you're not sure here: Buildroot
>> will check at the beginning of the build all those options and will
>> abort if anything is incorrect.
>>
>> Regards,
>>
>> Thomas Petazzoni
>
> I do it slightly differently. I go through most of your steps above,
> except I leave the toolchain in the default buildroot directory. (I
> think it is in output/host...). Then I check out another buildroot tree
> and select external toolchain in that tree to point to the other
> buildroot tree with just the compiler.
>
> This way if I forgot a needed toolchain option, I can go back to the
> original tools tree, make clean, configure to what I need and rebuild
> just the toolchain. Also I can easily upgrade to the latest buildroot
> tools when needed.
>
> You should always use an external toolchain, otherwise the development
> tree is just too painful to do a "make clean" in. But in my use case the
> external toolchain is an external buildroot toolchain.
>
> Regards, Steve

Hi all,

I'm also trying to speed-up my build by saving already built toolchain
to different place and use it as external toolchain in second build.
Most of the build goes well but I get stuck at webkit build where it
complains that sysroot libraries are not on the place they are
originally built. I would say this is question for webkit package but I
noticed that at beginning Buildroot will make symbolic links from my
ext-toolchain to its output/host/usr/bin directory with following command:

Checking external toolchain settings
Copy external toolchain libraries to target...
Copy external toolchain sysroot to staging...
mkdir -p
/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/host/usr/bin;
cd
/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/host/usr/bin;
\
        for i in
/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/../host/usr/bin/i686-linux-*;
do \
                case "$i" in \
                *cc|*cc-*|*++|*++-*|*cpp) \
                        base=${i##*/}; \
                        ln -sf ext-toolchain-wrapper $base; \
                        ;; \
                *) \
                        ln -sf $i .; \
                        ;; \
                esac; \
        done ;

I was wondering can this be solved without making symbolic links but
with providing original ext-toolchain path during package configure
procedure? Also not sure if this is true cause for webkit issue but it's
worth trying this if not complicated.

For reference here is log that I get before build stops:
   CXXLD  Programs/jsc
   CCLD   Programs/minidom
   CXXLD  libwebkit-1.0.la
libtool: link: warning: library
`/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/host/usr/i686-unknown-linux-gnu/sysroot/lib/libstdc++.la'
was moved.
libtool: link: warning: library
`/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/host/usr/i686-unknown-linux-gnu/sysroot/lib/libstdc++.la'
was moved.
libtool: link: warning: library
`/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/host/usr/i686-unknown-linux-gnu/sysroot/lib/libstdc++.la'
was moved.
libtool: link: warning: library
`/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/host/usr/i686-unknown-linux-gnu/sysroot/lib/libstdc++.la'
was moved.
libtool: link: warning: library
`/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/host/usr/i686-unknown-linux-gnu/sysroot/lib/libstdc++.la'
was moved.
libtool: link: warning: library
`/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/host/usr/i686-unknown-linux-gnu/sysroot/lib/libstdc++.la'
was moved.
Too many arguments
make[2]: *** [libwebkit-1.0.la] Error 1
make[2]: Leaving directory
`/var/lib/hudson/jobs/DevBuildroot_2011-05_x86/workspace/buildroot-2011.05/output/build/webkit-1.2.7'

Regards,
Aleksandar


_______________________________________________
buildroot mailing list
[hidden email]
http://lists.busybox.net/mailman/listinfo/buildroot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Can I use the toolchain build with buildroot, as an external toolchain ?

Thomas Petazzoni-2
Le Fri, 22 Jun 2012 16:28:28 +0200,
Aleksandar Zivkovic <[hidden email]> a écrit :

> Too many arguments

You're using Buildroot 2011.05, and the problem you're facing is a
limitation in the external toolchain wrapper, which has been fixed
since then.

For reference, this problem has been fixed by
e8c46b118b011c766511c44fa9232e074ad6bcbc. So either you need to upgrade
your Buildroot version, or you need to backport this patch in 2011.05
(which should be relatively easy since this change has been made no
long after the 2011.05 release).

Best regards,


Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
_______________________________________________
buildroot mailing list
[hidden email]
http://lists.busybox.net/mailman/listinfo/buildroot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Can I use the toolchain build with buildroot, as an external toolchain ?

Aleksandar Zivkovic-2
On 23/06/2012 10:45, Thomas Petazzoni wrote:

> Le Fri, 22 Jun 2012 16:28:28 +0200,
> Aleksandar Zivkovic<[hidden email]>  a écrit :
>
>> Too many arguments
>
> You're using Buildroot 2011.05, and the problem you're facing is a
> limitation in the external toolchain wrapper, which has been fixed
> since then.
>
> For reference, this problem has been fixed by
> e8c46b118b011c766511c44fa9232e074ad6bcbc. So either you need to upgrade
> your Buildroot version, or you need to backport this patch in 2011.05
> (which should be relatively easy since this change has been made no
> long after the 2011.05 release).
>
> Best regards,
>
>
> Thomas

Dear Thomas,

thank you for quick and precise answer! I have applied improvements done
at my Buildroot 2011.05 and now am able to enjoy in 50 minutes faster
build after toolchain is built once.

Regards,
Aleksandar

_______________________________________________
buildroot mailing list
[hidden email]
http://lists.busybox.net/mailman/listinfo/buildroot
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Can I use the toolchain build with buildroot, as an external toolchain ?

Thomas Petazzoni-2
Le Mon, 25 Jun 2012 16:16:29 +0200,
Aleksandar Zivkovic <[hidden email]> a écrit :

> thank you for quick and precise answer! I have applied improvements done
> at my Buildroot 2011.05 and now am able to enjoy in 50 minutes faster
> build after toolchain is built once.

Excellent, thanks for the report!

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
_______________________________________________
buildroot mailing list
[hidden email]
http://lists.busybox.net/mailman/listinfo/buildroot
Loading...