summaryrefslogtreecommitdiffstats
path: root/docs/manual/external-toolchain.txt
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2012-12-29 04:42:29 +0000
committerPeter Korsgaard <jacmet@sunsite.dk>2012-12-29 22:42:31 +0100
commit401d323698266468e322471530ee1997835fc335 (patch)
tree12364791a665ad6191c84aef931e130bb4873cda /docs/manual/external-toolchain.txt
parent26bc50075dcb9e34c62fa198c32caaae868ee130 (diff)
downloadbuildroot-novena-401d323698266468e322471530ee1997835fc335.tar.gz
buildroot-novena-401d323698266468e322471530ee1997835fc335.zip
docs/manual: add details on toolchain configuration
This commit adds a new section Working with Buildroot -> Details in configuration -> Cross-compilation toolchain that gives a lot of details about our three toolchain backends. It takes some elements that were previously later in the manual in "Embedded basics" and in "External toolchain" and combines them with more details about internal backend and Crosstool-NG backend. The "Embedded basics" section becomes empty and is therefore removed. A few elements have been lost in the process, but they were considered to not be really useful, especially located so far in the manual. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Samuel Martin <s.martin49@gmail.com> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'docs/manual/external-toolchain.txt')
-rw-r--r--docs/manual/external-toolchain.txt88
1 files changed, 0 insertions, 88 deletions
diff --git a/docs/manual/external-toolchain.txt b/docs/manual/external-toolchain.txt
deleted file mode 100644
index 6124fe4de..000000000
--- a/docs/manual/external-toolchain.txt
+++ /dev/null
@@ -1,88 +0,0 @@
-// -*- mode:doc -*- ;
-
-[[external-toolchain]]
-Using an external toolchain
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Using an already existing toolchain is useful for different
-reasons:
-
-* you already have a toolchain that is known to work for your specific
- CPU
-
-* you want to speed up the Buildroot build process by skipping the
- long toolchain build part
-
-* the toolchain generation feature of Buildroot is not sufficiently
- flexible for you (for example if you need to generate a system with
- 'glibc' instead of 'uClibc')
-
-Buildroot supports using existing toolchains through a mechanism
-called 'external toolchain'. The external toolchain mechanism is
-enabled in the +Toolchain+ menu, by selecting +External toolchain+ in
-+Toolchain type+.
-
-Then, you have three solutions to use an external toolchain:
-
-* Use a predefined external toolchain profile, and let Buildroot
- download, extract and install the toolchain. Buildroot already knows
- about a few CodeSourcery, Linaro, Blackfin and Xilinx toolchains.
- Just select the toolchain profile in +Toolchain+ from the
- available ones. This is definitely the easiest solution.
-
-* Use a predefined external toolchain profile, but instead of having
- Buildroot download and extract the toolchain, you can tell Buildroot
- where your toolchain is already installed on your system. Just
- select the toolchain profile in +Toolchain+ through the available
- ones, unselect +Download toolchain automatically+, and fill the
- +Toolchain path+ text entry with the path to your cross-compiling
- toolchain.
-
-* Use a completely custom external toolchain. This is particularly
- useful for toolchains generated using crosstool-NG. To do this,
- select the +Custom toolchain+ solution in the +Toolchain+ list. You
- need to fill the +Toolchain path+, +Toolchain prefix+ and +External
- toolchain C library+ options. Then, you have to tell Buildroot what
- your external toolchain supports. If your external toolchain uses
- the 'glibc' library, you only have to tell whether your toolchain
- supports C\+\+ or not and whether it has built-in RPC support. If
- your external toolchain uses the 'uClibc'
- library, then you have to tell Buildroot if it supports largefile,
- IPv6, RPC, wide-char, locale, program invocation, threads and
- C++. At the beginning of the execution, Buildroot will tell you if
- the selected options do not match the toolchain configuration.
-
-
-Our external toolchain support has been tested with toolchains from
-CodeSourcery and Linaro, toolchains generated by
-http://crosstool-ng.org[crosstool-NG], and toolchains generated by
-Buildroot itself. In general, all toolchains that support the
-'sysroot' feature should work. If not, do not hesitate to contact the
-developers.
-
-We do not support toolchains from the
-http://www.denx.de/wiki/DULG/ELDK[ELDK] of Denx, for two reasons:
-
-* The ELDK does not contain a pure toolchain (i.e just the compiler,
- binutils, the C and C++ libraries), but a toolchain that comes with
- a very large set of pre-compiled libraries and programs. Therefore,
- Buildroot cannot import the 'sysroot' of the toolchain, as it would
- contain hundreds of megabytes of pre-compiled libraries that are
- normally built by Buildroot.
-
-* The ELDK toolchains have a completely non-standard custom mechanism
- to handle multiple library variants. Instead of using the standard
- GCC 'multilib' mechanism, the ARM ELDK uses different symbolic links
- to the compiler to differentiate between library variants (for ARM
- soft-float and ARM VFP), and the PowerPC ELDK compiler uses a
- +CROSS_COMPILE+ environment variable. This non-standard behaviour
- makes it difficult to support ELDK in Buildroot.
-
-We also do not support using the distribution toolchain (i.e the
-gcc/binutils/C library installed by your distribution) as the
-toolchain to build software for the target. This is because your
-distribution toolchain is not a "pure" toolchain (i.e only with the
-C/C++ library), so we cannot import it properly into the Buildroot
-build environment. So even if you are building a system for a x86 or
-x86_64 target, you have to generate a cross-compilation toolchain with
-Buildroot or crosstool-NG.