runs on x86 and generates code for x86, while the cross-compilation
toolchain runs on x86 and generates code for ARM.
-Buildroot provides different solutions to build, or use existing
-cross-compilation toolchains:
+Buildroot provides two solutions for the cross-compilation toolchain:
* The *internal toolchain backend*, called +Buildroot toolchain+ in
the configuration interface.
* The *external toolchain backend*, called +External toolchain+ in
the configuration interface.
- * The *Crosstool-NG toolchain backend*, called +Crosstool-NG
- toolchain+ in the configuration interface.
-
-The choice between these three solutions is done using the +Toolchain
+The choice between these two solutions is done using the +Toolchain
Type+ option in the +Toolchain+ menu. Once one solution has been
chosen, a number of configuration options appear, they are detailed in
the following sections.
limited for a long time to the usage of the
http://www.uclibc.org[uClibc C library]. Support for the _eglibc_ C
library has been added in 2013 and is at this point considered
-experimental. See the _External toolchain backend_ and _Crosstool-NG
-toolchain backend_ for other solutions to use _glibc_ or _eglibc_.
+experimental. See the _External toolchain backend_ for another
+solution to use _glibc_ or _eglibc_.
Once you have selected this backend, a number of options appear. The
most important ones allow to:
fix from the toolchain vendor, unless you build your external
toolchain by yourself using Crosstool-NG.
-[[crosstool-ng-toolchain-backend]]
-Crosstool-NG toolchain backend
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The _Crosstool-NG toolchain backend_ integrates the
-http://crosstool-ng.org[Crosstool-NG] project with
-Buildroot. Crosstool-NG is a highly-configurable, versatile and
-well-maintained tool to build cross-compilation toolchains.
-
-If you select the +Crosstool-NG toolchain+ option in +Toolchain Type+,
-then you will be offered to:
-
- * Choose which C library you want to use. Crosstool-NG supports the
- three most important C libraries used in Linux systems: glibc,
- eglibc and uClibc
-
- * Choose a custom Crosstool-NG configuration file. Buildroot has its
- own default configuration file (one per C library choice), but you
- can provide your own. Another option is to run +make
- ctng-menuconfig+ to get access to the Crosstool-NG configuration
- interface. However, note that all Buildroot packages have only been
- tested with the default Crosstool-NG configurations.
-
- * Choose a number of toolchain options (rather limited if glibc or
- eglibc are used, or numerous if uClibc is used)
-
-When you will start the Buildroot build process, Buildroot will
-download and install the Crosstool-NG tool, build and install its
-required dependencies, and then run Crosstool-NG with the provided
-configuration.
-
-Advantages of this backend:
-
-* Not limited to uClibc: glibc and eglibc are supported.
-
-* Vast possibilities of toolchain configuration.
-
-Drawbacks of this backend:
-
-* Crosstool-NG is not perfectly integrated with Buildroot. For
- example, Crosstool-NG has its own download infrastructure, not
- integrated with the one in Buildroot (for example a Buildroot +make
- source+ will not download all the source code tarballs needed by
- Crosstool-NG).
-
-* The toolchain is completely rebuilt from scratch if you do a +make
- clean+.
-
/dev management
~~~~~~~~~~~~~~~
Other package configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The configuration files for busybox, the linux kernel, barebox, uClibc and
-crosstool-NG should be stored as well if changed. For each of these, a
-buildroot configuration option exists to point to an input configuration
-file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. To save their
-configuration, set those configuration options to a path outside
-your output directory, e.g. +board/<manufacturer>/<boardname>/linux.config+.
-Then, copy the configuration files to that path.
+The configuration files for busybox, the linux kernel, barebox and
+uClibc should be stored as well if changed. For each of these, a
+buildroot configuration option exists to point to an input
+configuration file, e.g. +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+. To
+save their configuration, set those configuration options to a path
+outside your output directory,
+e.g. +board/<manufacturer>/<boardname>/linux.config+. Then, copy the
+configuration files to that path.
Make sure that you create a configuration file 'before' changing
the +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+ etc. options. Otherwise,
path specified by +BR2_UCLIBC_CONFIG+.
* +make barebox-update-defconfig+ saves the barebox configuration to the
path specified by +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+.
-* For crosstool-NG and at91bootstrap3, no helper exists so you
- have to copy the config file manually to +BR2_TOOLCHAIN_CTNG_CONFIG+,
- resp. +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+.
+* For at91bootstrap3, no helper exists so you have to copy the config
+ file manually to +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+.
[[customize-store-board-support]]
(as far as they are relevant):
* +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE+
* +BR2_PACKAGE_BUSYBOX_CONFIG+
- * +BR2_TOOLCHAIN_CTNG_CONFIG+
* +BR2_UCLIBC_CONFIG+
* +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+
* +BR2_TARGET_BAREBOX_CUSTOM_CONFIG_FILE+
1. Write the configuration files:
* +make linux-update-defconfig+
* +make busybox-update-config+
- * +cp <output>/build/build-toolchain/.config board/<manufacturer>/<boardname>/ctng.config+
* +make uclibc-update-config+
* +cp <output>/build/at91bootstrap3-*/.config board/<manufacturer>/<boardname>/at91bootstrap3.config+
* +make barebox-update-defconfig+