public inbox for docs@lists.yoctoproject.org
 help / color / mirror / Atom feed
From: michael.opdenacker@bootlin.com
To: docs@lists.yoctoproject.org
Cc: Michael Opdenacker <michael.opdenacker@bootlin.com>
Subject: [PATCH] manual: improve documentation about using external toolchains
Date: Thu,  8 Dec 2022 19:13:50 +0100	[thread overview]
Message-ID: <20221208181350.39601-1-michael.opdenacker@bootlin.com> (raw)

From: Michael Opdenacker <michael.opdenacker@bootlin.com>

- 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.

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
---
 .../dev-manual/external-toolchain.rst         | 28 +++++++++++++------
 documentation/ref-manual/faq.rst              | 21 --------------
 documentation/ref-manual/variables.rst        | 20 +++++++++----
 3 files changed, 35 insertions(+), 34 deletions(-)

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 </meta-arm/tree/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..525d9ab0ff 100644
--- a/documentation/ref-manual/faq.rst
+++ b/documentation/ref-manual/faq.rst
@@ -165,27 +165,6 @@ how to configure CVS and Git proxy servers if needed.
 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``.
-
 Why do I get chmod permission issues?
 -------------------------------------
 
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index 776c8a2792..0586760a48 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -2420,6 +2420,12 @@ system and gives an overview of their function and contents.
       :ref:`kernel-yocto <ref-classes-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 <dev-manual/external-toolchain:optionally using an external toolchain>`,
+      this variable allows to specify the directory in which this toolchain was
+      installed.
+
    :term:`EXTERNALSRC`
       When inheriting the :ref:`externalsrc <ref-classes-externalsrc>`
       class, this variable points to the source tree, which is outside of
@@ -8481,16 +8487,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 in which you installed 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'
-- 
2.37.2



             reply	other threads:[~2022-12-08 18:13 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-08 18:13 michael.opdenacker [this message]
     [not found] ` <bc43c280-058f-04a6-12a4-986c5ccb88d8@theobroma-systems.com>
2022-12-09 15:06   ` [docs] [PATCH] manual: improve documentation about using external toolchains Michael Opdenacker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221208181350.39601-1-michael.opdenacker@bootlin.com \
    --to=michael.opdenacker@bootlin.com \
    --cc=docs@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox