2. A toolchain is all the components used to compile source
code. It includes the compiler, the assembler, the linker,
a C library, and performance analysis tools.
What Is a Toolchain ?
3. Jenkins is a build automation system used by other
Companies and projects at Linaro. It supports:
• Supports multiple projects
• Projects can be chained together
• Can use the LAVA build farm
• Can use the Toolchain Working Group (TCWG)
build farm
What Is Jenkins ?
4. Cbuildv2 is a tool for building complete toolchains,
both native and cross. It is integrated into Linaro's
development and release processes. It is designed
to be used by both developers, and automated
build and test systems like Jenkins.
It can be downloaded from:
git://git.linaro.org/toolchain/cbuild2.git
What Is Cbuildv2 ?
5. • Needed something integrated with Linaro
processes
• Needed to work with Jenkins
• Better support for remote development and
testing
• Long term, will support better analysis tools
Why Another Build Tool ?
6. • Integrated with Jenkins
• Fully utilizes the TCWG build farm
• Supports GIT branches and revisions
• No patches to any sources required
• Builds toolchains the way they were designed to
be configured, built and tested
Cbuildv2 Features
16. PATH/cbuild2.sh --target arm-linux-gnueabihf --build all
Commonly used Options
• --check
Runs ‘make check’ on all the toolchain components
• --tarsrc
Produces a source tarball for GCC, Binutils, and GDB
• --tarbin
Produces a binary tarball, the toolchain, and a sysroot
• --dryrun
Run through the steps to do a build
Invoking Cbuildv2
17. • --tarbin
Builds a binary release
• --tarsrc
Builds a source tarball
• --release 2014.02
Tags the release directories and tarballs
Release Building With Cbuildv2
19. • ./builds/${host}/${target}/${component}
The build directory for each component
• ./builds/${host}/${destdir}/
Where the toolchain gets installed
• ./sysroot=sysroots/${target}
The sysroot for the target
• ./snapshots/
Where all the source tarballs and git repositories
live
• /opt/linaro/
Where the binary tarballs should be installed
Directories Used By Cbuildv2
20. Cbuildv2 installs all the toolchain components in
builds/destdir/${host}. It expects to find the
sysroot in /opt/linaro. At build time,a symbolic link
is created in /opt/linaro that points to the freshly
built sysroot where GCC expects to find it. This
link is the same as where everything gets
installed from the binary tarballs.
Using The Toolchain
21. • 6 x86_64 Proliant build machines
tcwgbuild01-06
• 6 Samsung Chromebooks
tcwgchromebook01-06
• 6 TI Beagle Board Blacks
tcwgblack01-06
• QEMU ARM and AARCH64
Linux user mode only
TCWG Build Farm
22. More about Linaro Connect: http://connect.linaro.org
More about Linaro: http://www.linaro.org/about/
More about Linaro engineering: http://www.linaro.org/engineering/
Linaro members: www.linaro.org/members