Lines Matching full:toolchain
27 === Cross-compilation toolchain
29 A compilation toolchain is the set of tools that allows you to compile
37 a compilation toolchain that you can use to compile an application
39 toolchain runs on an x86 processor and generates code for an x86
40 processor. Under most Linux systems, the compilation toolchain uses
42 toolchain is called the "host compilation toolchain". The machine on
48 The compilation toolchain is provided by your distribution, and
50 cross-compilation toolchain and other tools that are run on the
53 As said above, the compilation toolchain that comes with your system
56 cross-compilation toolchain - a compilation toolchain that runs on
59 target system uses ARM, the regular compilation toolchain on your host
61 toolchain runs on x86 and generates code for ARM.
63 Buildroot provides two solutions for the cross-compilation toolchain:
65 * The *internal toolchain backend*, called +Buildroot toolchain+ in
68 * The *external toolchain backend*, called +External toolchain+ in
71 The choice between these two solutions is done using the +Toolchain
72 Type+ option in the +Toolchain+ menu. Once one solution has been
76 [[internal-toolchain-backend]]
77 ==== Internal toolchain backend
79 The _internal toolchain backend_ is the backend where Buildroot builds
80 by itself a cross-compilation toolchain, before building the userspace
92 toolchain. This item deserves a few explanations. In the process of
93 building a cross-compilation toolchain, the C library is being
101 your toolchain do not need to match _exactly_ the version of the
111 * Select a number of toolchain options (uClibc only): whether the
112 toolchain should have RPC support (used mainly for NFS),
117 certain toolchain options to be enabled. Most packages show a comment
118 when a certain toolchain option is required to be able to enable
127 then the entire toolchain and system must be rebuilt. See
137 * Rebuilding the toolchain is needed when doing +make clean+, which
139 using the _External toolchain backend_.
141 [[external-toolchain-backend]]
142 ==== External toolchain backend
144 The _external toolchain backend_ allows to use existing pre-built
151 toolchain, either available for download or installed locally.
153 Then, you have three solutions to use an external toolchain:
155 * Use a predefined external toolchain profile, and let Buildroot
156 download, extract and install the toolchain. Buildroot already knows
158 toolchain profile in +Toolchain+ from the available ones. This is
161 * Use a predefined external toolchain profile, but instead of having
162 Buildroot download and extract the toolchain, you can tell Buildroot
163 where your toolchain is already installed on your system. Just
164 select the toolchain profile in +Toolchain+ through the available
165 ones, unselect +Download toolchain automatically+, and fill the
166 +Toolchain path+ text entry with the path to your cross-compiling
167 toolchain.
169 * Use a completely custom external toolchain. This is particularly
171 itself. To do this, select the +Custom toolchain+ solution in the
172 +Toolchain+ list. You need to fill the +Toolchain path+, +Toolchain
173 prefix+ and +External toolchain C library+ options. Then, you have
174 to tell Buildroot what your external toolchain supports. If your
175 external toolchain uses the 'glibc' library, you only have to tell
176 whether your toolchain supports C\++ or not and whether it has
177 built-in RPC support. If your external toolchain uses the 'uClibc'
181 the selected options do not match the toolchain configuration.
183 Our external toolchain support has been tested with toolchains from
195 toolchain, as it would contain hundreds of megabytes of pre-compiled
198 We also do not support using the distribution toolchain (i.e. the
200 toolchain to build software for the target. This is because your
201 distribution toolchain is not a "pure" toolchain (i.e. only with the
204 x86_64 target, you have to generate a cross-compilation toolchain with
207 If you want to generate a custom toolchain for your project, that can
208 be used as an external toolchain in Buildroot, our recommendation is
210 xref:build-toolchain-with-buildroot[]) or with
218 * Avoids the build time of the cross-compilation toolchain, which is
224 * If your pre-built external toolchain has a bug, may be hard to get a
225 fix from the toolchain vendor, unless you build your external
226 toolchain by yourself using Buildroot or Crosstool-NG.
228 [[build-toolchain-with-buildroot]]
229 ==== Build an external toolchain with Buildroot
231 The Buildroot internal toolchain option can be used to create an
232 external toolchain. Here are a series of steps to build an internal
233 toolchain and package it up for reuse by Buildroot itself (or other
241 * In the *Toolchain* menu, keep the default of *Buildroot toolchain*
242 for *Toolchain type*, and configure your toolchain as desired
253 our toolchain:
261 tarball, as it is now the toolchain that you can re-use as an external
262 toolchain in other Buildroot projects.
264 In those other Buildroot projects, in the *Toolchain* menu:
266 * Set *Toolchain type* to *External toolchain*
268 * Set *Toolchain* to *Custom toolchain*
270 * Set *Toolchain origin* to *Toolchain to be downloaded and installed*
272 * Set *Toolchain URL* to +file:///path/to/your/sdk/tarball.tar.gz+
274 ===== External toolchain wrapper
276 When using an external toolchain, Buildroot generates a wrapper program,
278 configuration) to the external toolchain programs. In case you need to