From 0afd2103f0dab1b86896890446e8999c72cef465 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 17 Jul 2009 00:20:33 +0200 Subject: external toolchain: more documentation about the principles Signed-off-by: Thomas Petazzoni --- toolchain/external-toolchain/ext-tool.mk | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'toolchain') diff --git a/toolchain/external-toolchain/ext-tool.mk b/toolchain/external-toolchain/ext-tool.mk index 4cd4f2d4f..0e1deb620 100644 --- a/toolchain/external-toolchain/ext-tool.mk +++ b/toolchain/external-toolchain/ext-tool.mk @@ -1,3 +1,34 @@ +# +# This file implements the support for external toolchains, i.e +# toolchains that have not been produced by Buildroot itself and that +# are already available on the system on which Buildroot runs. +# +# The basic principle is the following +# +# 1. Perform some checks on the conformity between the toolchain +# configuration described in the Buildroot menuconfig system, and the +# real configuration of the external toolchain. This is for example +# important to make sure that the Buildroot configuration system +# knows whether the toolchain supports RPC, IPv6, locales, large +# files, etc. Unfortunately, these things cannot be detected +# automatically, since the value of these options (such as +# BR2_INET_RPC) are needed at configuration time because these +# options are used as dependencies for other options. And at +# configuration time, we are not able to retrieve the external +# toolchain configuration. +# +# 2. Copy the libraries needed at runtime to the target directory, +# $(TARGET_DIR). Obviously, things such as the C library, the dynamic +# loader and a few other utility libraries are needed if dynamic +# applications are to be executed on the target system. +# +# 3. Copy the libraries and headers to the staging directory. This +# will allow all further calls to gcc to be made using --sysroot +# $(STAGING_DIR), which greatly simplifies the compilation of the +# packages when using external toolchains. So in the end, only the +# cross-compiler binaries remains external, all libraries and headers +# are imported into the Buildroot tree. + # # Copy a toolchain library and its symbolic links from the sysroot # directory to the target directory. Also optionaly strips the -- cgit v1.2.3