From 766a44b8e30551fc61b5031129175d207e7ea78b Mon Sep 17 00:00:00 2001 From: Michael Opdenacker Date: Thu, 8 Dec 2022 19:10:01 +0100 Subject: manual: improve documentation about using external toolchains - Remove the redundant FAQ entry about this topic, already covered in a specific section of the Development Tasks manual - Document the TOOLCHAIN_LOCATION variable - Expand both the Development Tasks manual and the TCMODE variable description using details from the FAQ entry. - Mention the "meta-arm-toolchain" layer too. (From yocto-docs rev: 53faa54a8e6311b4d3d41d96cb1a497d0f6502fb) Signed-off-by: Michael Opdenacker Signed-off-by: Richard Purdie --- documentation/dev-manual/external-toolchain.rst | 28 ++++++++++++++++++------- documentation/ref-manual/faq.rst | 19 ++--------------- documentation/ref-manual/variables.rst | 20 +++++++++++++----- 3 files changed, 37 insertions(+), 30 deletions(-) (limited to 'documentation') diff --git a/documentation/dev-manual/external-toolchain.rst b/documentation/dev-manual/external-toolchain.rst index e1fabbed22..238f8cf467 100644 --- a/documentation/dev-manual/external-toolchain.rst +++ b/documentation/dev-manual/external-toolchain.rst @@ -15,14 +15,26 @@ follows: ``bblayers.conf`` file through the :term:`BBLAYERS` variable. -- Set the ``EXTERNAL_TOOLCHAIN`` variable in your ``local.conf`` file +- Set the :term:`EXTERNAL_TOOLCHAIN` variable in your ``local.conf`` file to the location in which you installed the toolchain. -A good example of an external toolchain used with the Yocto Project is -Mentor Graphics Sourcery G++ Toolchain. You can see information on how -to use that particular layer in the ``README`` file at -https://github.com/MentorEmbedded/meta-sourcery/. You can find -further information by reading about the -:term:`TCMODE` variable in the Yocto -Project Reference Manual's variable glossary. +The toolchain configuration is very flexible and customizable. It +is primarily controlled with the :term:`TCMODE` variable. This variable +controls which ``tcmode-*.inc`` file to include from the +``meta/conf/distro/include`` directory within the :term:`Source Directory`. +The default value of :term:`TCMODE` is "default", which tells the +OpenEmbedded build system to use its internally built toolchain (i.e. +``tcmode-default.inc``). However, other patterns are accepted. In +particular, "external-\*" refers to external toolchains. One example is +the Mentor Graphics Sourcery G++ Toolchain. Support for this toolchain resides +in the separate ``meta-sourcery`` layer at +https://github.com/MentorEmbedded/meta-sourcery/. +See its ``README`` file for details about how to use this layer. + +Another example of external toolchain layer is +:yocto_git:`meta-arm-toolchain ` +supporting GNU toolchains released by ARM. + +You can find further information by reading about the :term:`TCMODE` variable +in the Yocto Project Reference Manual's variable glossary. diff --git a/documentation/ref-manual/faq.rst b/documentation/ref-manual/faq.rst index 8f38808a78..a3a15506c3 100644 --- a/documentation/ref-manual/faq.rst +++ b/documentation/ref-manual/faq.rst @@ -168,23 +168,8 @@ Using the OpenEmbedded Build system How do I use an external toolchain? ----------------------------------- -The toolchain configuration is very flexible and customizable. It -is primarily controlled with the :term:`TCMODE` variable. This variable -controls which ``tcmode-*.inc`` file to include from the -``meta/conf/distro/include`` directory within the :term:`Source Directory`. - -The default value of :term:`TCMODE` is "default", which tells the -OpenEmbedded build system to use its internally built toolchain (i.e. -``tcmode-default.inc``). However, other patterns are accepted. In -particular, "external-\*" refers to external toolchains. One example is -the Sourcery G++ Toolchain. The support for this toolchain resides in -the separate ``meta-sourcery`` layer at -https://github.com/MentorEmbedded/meta-sourcery/. - -In addition to the toolchain configuration, you also need a -corresponding toolchain recipe file. This recipe file needs to package -up any pre-built objects in the toolchain such as ``libgcc``, -``libstdcc++``, any locales, and ``libc``. +See the ":ref:`dev-manual/external-toolchain:optionally using an external toolchain`" +section in the Development Task manual. Why do I get chmod permission issues? ------------------------------------- diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index 31a3c16c61..499a26f50b 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst @@ -2417,6 +2417,12 @@ system and gives an overview of their function and contents. :ref:`kernel-yocto ` class in ``meta/classes-recipe`` to see how the variable is used. + :term:`EXTERNAL_TOOLCHAIN` + When you intend to use an + :ref:`external toolchain `, + this variable allows to specify the directory where this toolchain was + installed. + :term:`EXTERNALSRC` When inheriting the :ref:`externalsrc ` class, this variable points to the source tree, which is outside of @@ -8475,16 +8481,20 @@ system and gives an overview of their function and contents. https://github.com/MentorEmbedded/meta-sourcery/. The layer's ``README`` file contains information on how to use the - Sourcery G++ Toolchain as an external toolchain. In summary, you must - be sure to add the layer to your ``bblayers.conf`` file in front of - the ``meta`` layer and then set the ``EXTERNAL_TOOLCHAIN`` variable - in your ``local.conf`` file to the location in which you installed - the toolchain. + Sourcery G++ Toolchain as an external toolchain. You will have to + add the layer to your ``bblayers.conf`` file and then set the + :term:`EXTERNAL_TOOLCHAIN` variable in your ``local.conf`` file to + the location of the toolchain. The fundamentals used for this example apply to any external toolchain. You can use ``meta-sourcery`` as a template for adding support for other external toolchains. + In addition to toolchain configuration, you will also need a + corresponding toolchain recipe file. This recipe file needs to package + up any pre-built objects in the toolchain such as ``libgcc``, + ``libstdcc++``, any locales, and ``libc``. + :term:`TC_CXX_RUNTIME` Specifies the C/C++ STL and runtime variant to use during the build process. Default value is 'gnu' -- cgit v1.2.3-54-g00ecf