aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2014-03-20 17:52:28 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-25 12:29:44 +0000
commit32890f29afd9bd93e22c325cdc24466982fb80a6 (patch)
treee6e5318d5028db92ede8aaeee17e8b49d349a8fd
parentc441f5f005f306a3dfc203237aab42b4a37336b5 (diff)
downloadopenembedded-core-contrib-32890f29afd9bd93e22c325cdc24466982fb80a6.tar.gz
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 <scott.m.rifenbark@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--documentation/adt-manual/adt-prepare.xml33
-rw-r--r--documentation/ref-manual/closer-look.xml5
-rw-r--r--documentation/ref-manual/ref-classes.xml46
-rw-r--r--documentation/ref-manual/technical-details.xml13
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
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>:
<itemizedlist>
- <listitem><para>Use <filename>bitbake meta-toolchain</filename>.
+ <listitem><para>
+ Use <filename>bitbake meta-toolchain</filename>.
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
"<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
- section.</para></listitem>
- <listitem><para>Use
- <filename>bitbake image -c populate_sdk</filename>.
+ section.
+ </para></listitem>
+ <listitem><para>
+ Use <filename>bitbake image -c populate_sdk</filename>.
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.
+ </para>
+
+ <para>Another powerful feature is that the toolchain is
+ completely self-contained.
+ The binaries are linked against their own copy of
+ <filename>libc</filename>, 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
+ <filename>populate_sdk</filename> archive.</para>
+
+ <para>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 <filename>gcc</filename> 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.
</para></listitem>
</itemizedlist>
</para>
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
"<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
section.
+ For information on advantages gained when building a
+ cross-development toolchain using the
+ <filename>do_populate_sdk</filename> task, see the
+ "<ulink url='&YOCTO_DOCS_ADT_URL;#optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</ulink>"
+ section in the Yocto Project Application Developer's Guide.
</note>
<para>
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 @@
</para></listitem>
</itemizedlist>
</para>
+
+ <note>
+ It is planned for future Yocto Project releases that by default, the
+ <filename>autotools</filename> class supports out-of-tree builds
+ (<link linkend='var-B'><filename>B</filename></link> !=
+ <link linkend='var-S'><filename>S</filename></link>).
+ If your recipes do not support out-of-tree builds, you should
+ have them inherit the
+ <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link>
+ class.
+ </note>
+</section>
+
+<section id='ref-classes-autotools-brokensep'>
+ <title><filename>autotools-brokensep.bbclass</filename></title>
+
+ <para>
+ The <filename>autotools-brokensep</filename> class behaves the same
+ as the
+ <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
+ class but builds with
+ <link linkend='var-B'><filename>B</filename></link> ==
+ <link linkend='var-S'><filename>S</filename></link>.
+ This method is useful when out-of-tree build support is either not
+ present or is broken.
+ <note>
+ It is recommended that out-of-tree support be fixed and used
+ if at all possible.
+ </note>
+ </para>
</section>
<section id='ref-classes-base'>
@@ -2220,6 +2250,10 @@
<para>
The <filename>populate_sdk</filename> class provides support for
SDK-only recipes.
+ For information on advantages gained when building a cross-development
+ toolchain using the <filename>do_populate_sdk</filename> task, see the
+ "<ulink url='&YOCTO_DOCS_ADT_URL;#optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</ulink>"
+ section in the Yocto Project Application Developer's Guide.
</para>
</section>
@@ -2284,6 +2318,18 @@
These classes are inherited by and used with the
<filename>populate_sdk_base</filename> class.
</para>
+
+ <para>
+ For more information on the cross-development toolchain
+ generation, see the
+ "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
+ section.
+ For information on advantages gained when building a
+ cross-development toolchain using the
+ <filename>do_populate_sdk</filename> task, see the
+ "<ulink url='&YOCTO_DOCS_ADT_URL;#optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</ulink>"
+ section in the Yocto Project Application Developer's Guide.
+ </para>
</section>
<section id='ref-classes-prexport'>
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 @@
<link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
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.
</para></listitem>
</itemizedlist>
</para>
+
+ <note>
+ For information on advantages gained when building a
+ cross-development toolchain installer, see the
+ "<ulink url='&YOCTO_DOCS_ADT_URL;#optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</ulink>"
+ section in the Yocto Project Application Developer's Guide.
+ </note>
</section>
<section id="shared-state-cache">