summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Rifenbark <scott.m.rifenbark@intel.com>2014-03-20 23:52:28 (GMT)
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-03-25 12:29:44 (GMT)
commit32890f29afd9bd93e22c325cdc24466982fb80a6 (patch)
treee6e5318d5028db92ede8aaeee17e8b49d349a8fd
parentc441f5f005f306a3dfc203237aab42b4a37336b5 (diff)
downloadpoky-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 0dbbe4d..bb35c28 100644
--- a/documentation/adt-manual/adt-prepare.xml
+++ b/documentation/adt-manual/adt-prepare.xml
@@ -584,17 +584,42 @@
584 you can build the toolchain installer one of two ways if you have a 584 you can build the toolchain installer one of two ways if you have a
585 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>: 585 <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>:
586 <itemizedlist> 586 <itemizedlist>
587 <listitem><para>Use <filename>bitbake meta-toolchain</filename>. 587 <listitem><para>
588 Use <filename>bitbake meta-toolchain</filename>.
588 This method requires you to still install the target 589 This method requires you to still install the target
589 sysroot by installing and extracting it separately. 590 sysroot by installing and extracting it separately.
590 For information on how to install the sysroot, see the 591 For information on how to install the sysroot, see the
591 "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>" 592 "<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
592 section.</para></listitem> 593 section.
593 <listitem><para>Use 594 </para></listitem>
594 <filename>bitbake image -c populate_sdk</filename>. 595 <listitem><para>
596 Use <filename>bitbake image -c populate_sdk</filename>.
595 This method has significant advantages over the previous method 597 This method has significant advantages over the previous method
596 because it results in a toolchain installer that contains the 598 because it results in a toolchain installer that contains the
597 sysroot that matches your target root filesystem. 599 sysroot that matches your target root filesystem.
600 </para>
601
602 <para>Another powerful feature is that the toolchain is
603 completely self-contained.
604 The binaries are linked against their own copy of
605 <filename>libc</filename>, which results in no dependencies
606 on the target system.
607 To achieve this, the pointer to the dynamic loader is
608 configured at install time since that path cannot be dynamically
609 altered.
610 This is the reason for a wrapper around the
611 <filename>populate_sdk</filename> archive.</para>
612
613 <para>Another feature is that only one set of cross-canadian
614 toolchain binaries are produced per architecture.
615 This feature takes advantage of the fact that the target
616 hardware can be passed to <filename>gcc</filename> as a set of
617 compiler options.
618 Those options are set up by the environment script and
619 contained in variables like CC and LD.
620 This reduces the space needed for the tools.
621 Understand, however, that a sysroot is still needed for every
622 target since those binaries are target-specific.
598 </para></listitem> 623 </para></listitem>
599 </itemizedlist> 624 </itemizedlist>
600 </para> 625 </para>
diff --git a/documentation/ref-manual/closer-look.xml b/documentation/ref-manual/closer-look.xml
index 136f938..77ab4d2 100644
--- a/documentation/ref-manual/closer-look.xml
+++ b/documentation/ref-manual/closer-look.xml
@@ -1022,6 +1022,11 @@
1022 generation, see the 1022 generation, see the
1023 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>" 1023 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
1024 section. 1024 section.
1025 For information on advantages gained when building a
1026 cross-development toolchain using the
1027 <filename>do_populate_sdk</filename> task, see the
1028 "<ulink url='&YOCTO_DOCS_ADT_URL;#optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</ulink>"
1029 section in the Yocto Project Application Developer's Guide.
1025 </note> 1030 </note>
1026 1031
1027 <para> 1032 <para>
diff --git a/documentation/ref-manual/ref-classes.xml b/documentation/ref-manual/ref-classes.xml
index de8448f..58004cb 100644
--- a/documentation/ref-manual/ref-classes.xml
+++ b/documentation/ref-manual/ref-classes.xml
@@ -130,6 +130,36 @@
130 </para></listitem> 130 </para></listitem>
131 </itemizedlist> 131 </itemizedlist>
132 </para> 132 </para>
133
134 <note>
135 It is planned for future Yocto Project releases that by default, the
136 <filename>autotools</filename> class supports out-of-tree builds
137 (<link linkend='var-B'><filename>B</filename></link> !=
138 <link linkend='var-S'><filename>S</filename></link>).
139 If your recipes do not support out-of-tree builds, you should
140 have them inherit the
141 <link linkend='ref-classes-autotools-brokensep'><filename>autotools-brokensep</filename></link>
142 class.
143 </note>
144</section>
145
146<section id='ref-classes-autotools-brokensep'>
147 <title><filename>autotools-brokensep.bbclass</filename></title>
148
149 <para>
150 The <filename>autotools-brokensep</filename> class behaves the same
151 as the
152 <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
153 class but builds with
154 <link linkend='var-B'><filename>B</filename></link> ==
155 <link linkend='var-S'><filename>S</filename></link>.
156 This method is useful when out-of-tree build support is either not
157 present or is broken.
158 <note>
159 It is recommended that out-of-tree support be fixed and used
160 if at all possible.
161 </note>
162 </para>
133</section> 163</section>
134 164
135<section id='ref-classes-base'> 165<section id='ref-classes-base'>
@@ -2220,6 +2250,10 @@
2220 <para> 2250 <para>
2221 The <filename>populate_sdk</filename> class provides support for 2251 The <filename>populate_sdk</filename> class provides support for
2222 SDK-only recipes. 2252 SDK-only recipes.
2253 For information on advantages gained when building a cross-development
2254 toolchain using the <filename>do_populate_sdk</filename> task, see the
2255 "<ulink url='&YOCTO_DOCS_ADT_URL;#optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</ulink>"
2256 section in the Yocto Project Application Developer's Guide.
2223 </para> 2257 </para>
2224</section> 2258</section>
2225 2259
@@ -2284,6 +2318,18 @@
2284 These classes are inherited by and used with the 2318 These classes are inherited by and used with the
2285 <filename>populate_sdk_base</filename> class. 2319 <filename>populate_sdk_base</filename> class.
2286 </para> 2320 </para>
2321
2322 <para>
2323 For more information on the cross-development toolchain
2324 generation, see the
2325 "<link linkend='cross-development-toolchain-generation'>Cross-Development Toolchain Generation</link>"
2326 section.
2327 For information on advantages gained when building a
2328 cross-development toolchain using the
2329 <filename>do_populate_sdk</filename> task, see the
2330 "<ulink url='&YOCTO_DOCS_ADT_URL;#optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</ulink>"
2331 section in the Yocto Project Application Developer's Guide.
2332 </para>
2287</section> 2333</section>
2288 2334
2289<section id='ref-classes-prexport'> 2335<section id='ref-classes-prexport'>
diff --git a/documentation/ref-manual/technical-details.xml b/documentation/ref-manual/technical-details.xml
index 106bb2c..3485ee3 100644
--- a/documentation/ref-manual/technical-details.xml
+++ b/documentation/ref-manual/technical-details.xml
@@ -327,9 +327,22 @@
327 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>, 327 <link linkend='var-SDKMACHINE'><filename>SDKMACHINE</filename></link>,
328 this tool 328 this tool
329 produces executable code that runs on the target device. 329 produces executable code that runs on the target device.
330 Only one cross-canadian compiler is produced per architecture
331 since they can be targeted at different processor optimizations
332 using configurations passed to the compiler through the
333 compile commands.
334 This saves the need to have multiple compilers present and
335 hence reduces the size of the toolchains.
330 </para></listitem> 336 </para></listitem>
331 </itemizedlist> 337 </itemizedlist>
332 </para> 338 </para>
339
340 <note>
341 For information on advantages gained when building a
342 cross-development toolchain installer, see the
343 "<ulink url='&YOCTO_DOCS_ADT_URL;#optionally-building-a-toolchain-installer'>Optionally Building a Toolchain Installer</ulink>"
344 section in the Yocto Project Application Developer's Guide.
345 </note>
333</section> 346</section>
334 347
335<section id="shared-state-cache"> 348<section id="shared-state-cache">