adt-manual: Emphasis on populate_sdk as bitbake method for building toolchain

I updated the "Optionally Building a Toolchain Installer" section
to emphasize using 'bitbake <image> -c populate_sdk' as the method
for building outa toolchain.  Before the change, equal emphasis was
put on for this preferred method and the 'bitbake meta-toolchain'
method.

(From yocto-docs rev: 447ad6167570bf1bd227771153de421d1154443d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Scott Rifenbark 2015-05-04 08:45:03 -07:00 committed by Richard Purdie
parent 95108a1c34
commit 2a95850d64
1 changed files with 48 additions and 42 deletions

View File

@ -622,50 +622,56 @@
<para>
As an alternative to locating and downloading a toolchain installer,
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>.
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</filename> <replaceable>image</replaceable> <filename>-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>
you can build the toolchain installer if you have a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
<note>
Although not the preferred method, it is also possible to use
<filename>bitbake meta-toolchain</filename> to build the toolchain
installer.
If you do use this method, you must separately install and extract
the target sysroot.
For information on how to install the sysroot, see the
"<link linkend='extracting-the-root-filesystem'>Extracting the Root Filesystem</link>"
section.
</note>
</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>
To build the toolchain installer and populate the SDK image, use the
following command:
<literallayout class='monospaced'>
$ bitbake <replaceable>image</replaceable> -c populate_sdk
</literallayout>
The command results in a toolchain installer that contains the sysroot
that matches your target root filesystem.
</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 such as
<ulink url='&YOCTO_DOCS_REF_URL;#var-CC'><filename>CC</filename></ulink>
and
<ulink url='&YOCTO_DOCS_REF_URL;#var-LD'><filename>LD</filename></ulink>.
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>
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 such as
<ulink url='&YOCTO_DOCS_REF_URL;#var-CC'><filename>CC</filename></ulink>
and
<ulink url='&YOCTO_DOCS_REF_URL;#var-LD'><filename>LD</filename></ulink>.
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>
<para>