From 32890f29afd9bd93e22c325cdc24466982fb80a6 Mon Sep 17 00:00:00 2001 From: Scott Rifenbark Date: Thu, 20 Mar 2014 17:52:28 -0600 Subject: adt-manual, ref-manual: Cross-toolchain details added. New class also. In the adt-manual in the "Optionally Building a Toolchain Installer" setion, I added some basic advantage information for building a toolchain installer using bitbake image -c populate_sdk. In the ref-manual, I added cross-referencing to this basic information in several strategic areas: "SDK Generation", the populate_sdk class reference section, the populate_sdk_* class reference section, and the "Cross-Development Toolchain Generation" sections. Finally, I also put in documentation for a new class called autotools-brokensep. (From yocto-docs rev: cde7dd2fbd7bdc0d71dc678ee7a5422459654287) Signed-off-by: Scott Rifenbark Signed-off-by: Richard Purdie --- documentation/adt-manual/adt-prepare.xml | 33 +++++++++++++++--- documentation/ref-manual/closer-look.xml | 5 +++ documentation/ref-manual/ref-classes.xml | 46 ++++++++++++++++++++++++++ documentation/ref-manual/technical-details.xml | 13 ++++++++ 4 files changed, 93 insertions(+), 4 deletions(-) diff --git a/documentation/adt-manual/adt-prepare.xml b/documentation/adt-manual/adt-prepare.xml index 0dbbe4dcc8..bb35c28f25 100644 --- a/documentation/adt-manual/adt-prepare.xml +++ b/documentation/adt-manual/adt-prepare.xml @@ -584,17 +584,42 @@ you can build the toolchain installer one of two ways if you have a Build Directory: - Use bitbake meta-toolchain. + + Use bitbake meta-toolchain. This method requires you to still install the target sysroot by installing and extracting it separately. For information on how to install the sysroot, see the "Extracting the Root Filesystem" - section. - Use - bitbake image -c populate_sdk. + section. + + + Use bitbake image -c populate_sdk. This method has significant advantages over the previous method because it results in a toolchain installer that contains the sysroot that matches your target root filesystem. + + + Another powerful feature is that the toolchain is + completely self-contained. + The binaries are linked against their own copy of + libc, which results in no dependencies + on the target system. + To achieve this, the pointer to the dynamic loader is + configured at install time since that path cannot be dynamically + altered. + This is the reason for a wrapper around the + populate_sdk archive. + + Another feature is that only one set of cross-canadian + toolchain binaries are produced per architecture. + This feature takes advantage of the fact that the target + hardware can be passed to gcc as a set of + compiler options. + Those options are set up by the environment script and + contained in variables like CC and LD. + This reduces the space needed for the tools. + Understand, however, that a sysroot is still needed for every + target since those binaries are target-specific. diff --git a/documentation/ref-manual/closer-look.xml b/documentation/ref-manual/closer-look.xml index 136f9389f7..77ab4d2633 100644 --- a/documentation/ref-manual/closer-look.xml +++ b/documentation/ref-manual/closer-look.xml @@ -1022,6 +1022,11 @@ generation, see the "Cross-Development Toolchain Generation" section. + For information on advantages gained when building a + cross-development toolchain using the + do_populate_sdk task, see the + "Optionally Building a Toolchain Installer" + section in the Yocto Project Application Developer's Guide. diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml index de8448febf..58004cbee1 100644 --- a/documentation/ref-manual/ref-classes.xml +++ b/documentation/ref-manual/ref-classes.xml @@ -130,6 +130,36 @@ + + + It is planned for future Yocto Project releases that by default, the + autotools class supports out-of-tree builds + (B != + S). + If your recipes do not support out-of-tree builds, you should + have them inherit the + autotools-brokensep + class. + + + +
+ <filename>autotools-brokensep.bbclass</filename> + + + The autotools-brokensep class behaves the same + as the + autotools + class but builds with + B == + S. + This method is useful when out-of-tree build support is either not + present or is broken. + + It is recommended that out-of-tree support be fixed and used + if at all possible. + +
@@ -2220,6 +2250,10 @@ The populate_sdk class provides support for SDK-only recipes. + For information on advantages gained when building a cross-development + toolchain using the do_populate_sdk task, see the + "Optionally Building a Toolchain Installer" + section in the Yocto Project Application Developer's Guide.
@@ -2284,6 +2318,18 @@ These classes are inherited by and used with the populate_sdk_base class. + + + For more information on the cross-development toolchain + generation, see the + "Cross-Development Toolchain Generation" + section. + For information on advantages gained when building a + cross-development toolchain using the + do_populate_sdk task, see the + "Optionally Building a Toolchain Installer" + section in the Yocto Project Application Developer's Guide. +
diff --git a/documentation/ref-manual/technical-details.xml b/documentation/ref-manual/technical-details.xml index 106bb2c315..3485ee3506 100644 --- a/documentation/ref-manual/technical-details.xml +++ b/documentation/ref-manual/technical-details.xml @@ -327,9 +327,22 @@ SDKMACHINE, this tool produces executable code that runs on the target device. + Only one cross-canadian compiler is produced per architecture + since they can be targeted at different processor optimizations + using configurations passed to the compiler through the + compile commands. + This saves the need to have multiple compilers present and + hence reduces the size of the toolchains. + + + For information on advantages gained when building a + cross-development toolchain installer, see the + "Optionally Building a Toolchain Installer" + section in the Yocto Project Application Developer's Guide. +
-- cgit v1.2.3-54-g00ecf