From: Antonin Godard <antonin.godard@bootlin.com>
To: docs@lists.yoctoproject.org
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Antonin Godard <antonin.godard@bootlin.com>
Subject: [PATCH v3 3/6] ref-manual/variables.rst: add missing documentation for BUILD_* variables
Date: Thu, 27 Mar 2025 10:07:28 +0100 [thread overview]
Message-ID: <20250327-cc-vars-v3-3-742dbddce008@bootlin.com> (raw)
In-Reply-To: <20250327-cc-vars-v3-0-742dbddce008@bootlin.com>
These toolchain variables are used in a native context. Some of the
BUILD_* variables missed documentation. Also, some of the base commands
were also not there so document them.
Some of existing BUILD_* variable documentation were missing the note
about their usage in a native context, so add it too so that all BUILD_*
variables are documented the same way.
[YOCTO #15719]
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
documentation/ref-manual/variables.rst | 250 ++++++++++++++++++++++++++++++---
1 file changed, 230 insertions(+), 20 deletions(-)
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index d98721818..0516c1816 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -986,55 +986,165 @@ system and gives an overview of their function and contents.
variable is a useful pointer in case a bug in the software being
built needs to be manually reported.
+ :term:`BUILD_AR`
+ Specifies the architecture-specific :manpage:`archiver <ar(1)>` for the
+ build host, and its default definition is derived in part from
+ :term:`BUILD_PREFIX`::
+
+ BUILD_AR = "${BUILD_PREFIX}ar"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`AR` is set to the
+ value of this variable by default.
+
+ The :term:`BUILD_AR` variable should not be set manually, and is rarely
+ used in recipes as :term:`AR` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the :manpage:`archiver <ar(1)>` from the build
+ host at some point during the build.
+
:term:`BUILD_ARCH`
Specifies the architecture of the build host (e.g. ``i686``). The
OpenEmbedded build system sets the value of :term:`BUILD_ARCH` from the
machine name reported by the ``uname`` command.
+ :term:`BUILD_AS`
+ Specifies the architecture-specific :manpage:`assembler <as(1)>` for the
+ build host, and its default definition is derived in part from
+ :term:`BUILD_PREFIX`::
+
+ BUILD_AS = "${BUILD_PREFIX}as"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`AS` is set to the
+ value of this variable by default.
+
+ The :term:`BUILD_AS` variable should not be set manually, and is rarely
+ used in recipes as :term:`AS` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the :manpage:`assembler <as(1)>` from the build
+ host at some point during the build.
+
:term:`BUILD_AS_ARCH`
Specifies the architecture-specific assembler flags for the build
host. By default, the value of :term:`BUILD_AS_ARCH` is empty.
+ :term:`BUILD_CC`
+ Specifies the architecture-specific C compiler for the build host,
+ and its default definition is derived in part from :term:`BUILD_PREFIX`
+ and :term:`BUILD_CC_ARCH`::
+
+ BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`CC` is set to the
+ value of this variable by default.
+
+ The :term:`BUILD_CC` variable should not be set manually, and is rarely
+ used in recipes as :term:`CC` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the compiler from the build host at some point
+ during the build.
+
:term:`BUILD_CC_ARCH`
Specifies the architecture-specific C compiler flags for the build
host. By default, the value of :term:`BUILD_CC_ARCH` is empty.
:term:`BUILD_CCLD`
- Specifies the linker command to be used for the build host when the C
- compiler is being used as the linker. By default, :term:`BUILD_CCLD`
- points to GCC and passes as arguments the value of
- :term:`BUILD_CC_ARCH`, assuming
- :term:`BUILD_CC_ARCH` is set.
+ Specifies the :manpage:`linker <ld(1)>` command to be used for the build
+ host when the C compiler is being used as the linker, and its default
+ definition is derived in part from :term:`BUILD_PREFIX` and
+ :term:`BUILD_CC_ARCH`::
+
+ BUILD_CCLD = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`CCLD` is set to
+ the value of this variable by default.
+
+ The :term:`BUILD_CCLD` variable should not be set manually, and is rarely
+ used in recipes as :term:`CCLD` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the :manpage:`linker <ld(1)>` from the build host
+ at some point during the build.
:term:`BUILD_CFLAGS`
Specifies the flags to pass to the C compiler when building for the
- build host. When building in the ``-native`` context,
+ build host. When building a :ref:`ref-classes-native` recipe,
:term:`CFLAGS` is set to the value of this variable by
default.
+ :term:`BUILD_CPP`
+ Specifies the C preprocessor command (to both the C and the C++ compilers)
+ when building for the build host, and its default definition is derived in
+ part from :term:`BUILD_PREFIX` and :term:`BUILD_CC_ARCH`::
+
+ BUILD_CPP = "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`CPP` is set to
+ the value of this variable by default.
+
+ The :term:`BUILD_CPP` variable should not be set manually, and is rarely
+ used in recipes as :term:`CPP` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the preprocessor from the build host at some
+ point during the build.
+
:term:`BUILD_CPPFLAGS`
Specifies the flags to pass to the C preprocessor (i.e. to both the C
and the C++ compilers) when building for the build host. When
building in the ``-native`` context, :term:`CPPFLAGS`
is set to the value of this variable by default.
+ :term:`BUILD_CXX`
+ Specifies the architecture-specific C++ compiler for the build host,
+ and its default definition is derived in part from :term:`BUILD_PREFIX`
+ and :term:`BUILD_CC_ARCH`::
+
+ BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`CXX` is set to
+ the value of this variable by default.
+
+ The :term:`BUILD_CXX` variable should not be set manually, and is rarely
+ used in recipes as :term:`CXX` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the C++ compiler from the build host at some
+ point during the build.
+
:term:`BUILD_CXXFLAGS`
Specifies the flags to pass to the C++ compiler when building for the
- build host. When building in the ``-native`` context,
+ build host. When building a :ref:`ref-classes-native` recipe,
:term:`CXXFLAGS` is set to the value of this variable
by default.
:term:`BUILD_FC`
- Specifies the Fortran compiler command for the build host. By
- default, :term:`BUILD_FC` points to Gfortran and passes as arguments the
- value of :term:`BUILD_CC_ARCH`, assuming
- :term:`BUILD_CC_ARCH` is set.
+ Specifies the Fortran compiler command for the build host, and its default
+ definition is derived in part from :term:`BUILD_PREFIX` and
+ :term:`BUILD_CC_ARCH`::
+
+ BUILD_FC = "${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`FC` is set to the
+ value of this variable by default.
+
+ The :term:`BUILD_FC` variable should not be set manually, and is rarely
+ used in recipes as :term:`FC` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the Fortran compiler from the build host at some
+ point during the build.
:term:`BUILD_LD`
- Specifies the linker command for the build host. By default,
- :term:`BUILD_LD` points to the GNU linker (ld) and passes as arguments
- the value of :term:`BUILD_LD_ARCH`, assuming
- :term:`BUILD_LD_ARCH` is set.
+ Specifies the linker command for the build host, and its default
+ definition is derived in part from :term:`BUILD_PREFIX` and
+ :term:`BUILD_LD_ARCH`::
+
+ BUILD_LD = "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`LD` is set to the
+ value of this variable by default.
+
+ The :term:`BUILD_LD` variable should not be set manually, and is rarely
+ used in recipes as :term:`LD` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the linker from the build host at some point
+ during the build.
:term:`BUILD_LD_ARCH`
Specifies architecture-specific linker flags for the build host. By
@@ -1042,10 +1152,58 @@ system and gives an overview of their function and contents.
:term:`BUILD_LDFLAGS`
Specifies the flags to pass to the linker when building for the build
- host. When building in the ``-native`` context,
+ host. When building a :ref:`ref-classes-native` recipe,
:term:`LDFLAGS` is set to the value of this variable
by default.
+ :term:`BUILD_NM`
+ Specifies the architecture-specific utility to list symbols from object
+ files for the build host, and its default definition is derived in part
+ from :term:`BUILD_PREFIX`::
+
+ BUILD_NM = "${BUILD_PREFIX}nm"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`NM` is set to the
+ value of this variable by default.
+
+ The :term:`BUILD_NM` variable should not be set manually, and is rarely
+ used in recipes as :term:`NM` contains the appropriate value depending on
+ the context (native or target recipes). Exception be made for target
+ recipes that need to use the utility from the build host at some point
+ during the build.
+
+ :term:`BUILD_OBJCOPY`
+ Specifies the architecture-specific utility to copy object files for the
+ build host, and its default definition is derived in part from
+ :term:`BUILD_PREFIX`::
+
+ BUILD_OBJCOPY = "${BUILD_PREFIX}objcopy"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`OBJCOPY` is set
+ to the value of this variable by default.
+
+ The :term:`BUILD_OBJCOPY` variable should not be set manually, and is
+ rarely used in recipes as :term:`OBJCOPY` contains the appropriate value
+ depending on the context (native or target recipes). Exception be made for
+ target recipes that need to use the utility from the build host at some
+ point during the build.
+
+ :term:`BUILD_OBJDUMP`
+ Specifies the architecture-specific utility to display object files
+ information for the build host, and its default definition is derived in
+ part from :term:`BUILD_PREFIX`::
+
+ BUILD_OBJDUMP = "${BUILD_PREFIX}objdump"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`OBJDUMP` is set
+ to the value of this variable by default.
+
+ The :term:`BUILD_OBJDUMP` variable should not be set manually, and is
+ rarely used in recipes as :term:`OBJDUMP` contains the appropriate value
+ depending on the context (native or target recipes). Exception be made for
+ target recipes that need to use the utility from the build host at some
+ point during the build.
+
:term:`BUILD_OPTIMIZATION`
Specifies the optimization flags passed to the C compiler when
building for the build host or the SDK. The flags are passed through
@@ -1066,11 +1224,53 @@ system and gives an overview of their function and contents.
build system uses the :term:`BUILD_PREFIX` value to set the
:term:`TARGET_PREFIX` when building for :ref:`ref-classes-native` recipes.
+ :term:`BUILD_RANLIB`
+ Specifies the architecture-specific utility to generate indexes for
+ archives for the build host, and its default definition is derived in part
+ from :term:`BUILD_PREFIX`::
+
+ BUILD_RANLIB = "${BUILD_PREFIX}ranlib -D"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`RANLIB` is set to
+ the value of this variable by default.
+
+ The :term:`BUILD_RANLIB` variable should not be set manually, and is
+ rarely used in recipes as :term:`RANLIB` contains the appropriate value
+ depending on the context (native or target recipes). Exception be made for
+ target recipes that need to use the utility from the build host at some
+ point during the build.
+
+ :term:`BUILD_READELF`
+ Specifies the architecture-specific utility to display information about
+ ELF files for the build host, and its default definition is derived in
+ part from :term:`BUILD_PREFIX`::
+
+ BUILD_READELF = "${BUILD_PREFIX}readelf"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`READELF` is set
+ to the value of this variable by default.
+
+ The :term:`BUILD_READELF` variable should not be set manually, and is
+ rarely used in recipes as :term:`READELF` contains the appropriate value
+ depending on the context (native or target recipes). Exception be made for
+ target recipes that need to use the utility from the build host at some
+ point during the build.
+
:term:`BUILD_STRIP`
- Specifies the command to be used to strip debugging symbols from
- binaries produced for the build host. By default, :term:`BUILD_STRIP`
- points to
- ``${``\ :term:`BUILD_PREFIX`\ ``}strip``.
+ Specifies the command to be used to strip debugging symbols from binaries
+ produced for the build host, and its default definition is derived in part
+ from :term:`BUILD_PREFIX`::
+
+ BUILD_STRIP = "${BUILD_PREFIX}strip"
+
+ When building a :ref:`ref-classes-native` recipe, :term:`STRIP` is set to
+ the value of this variable by default.
+
+ The :term:`BUILD_STRIP` variable should not be set manually, and is
+ rarely used in recipes as :term:`STRIP` contains the appropriate value
+ depending on the context (native or target recipes). Exception be made for
+ target recipes that need to use the utility from the build host at some
+ point during the build.
:term:`BUILD_SYS`
Specifies the system, including the architecture and the operating
@@ -1275,6 +1475,10 @@ system and gives an overview of their function and contents.
:term:`CC`
The minimal command and arguments used to run the C compiler.
+ :term:`CCLD`
+ The minimal command and arguments used to run the linker when the C
+ compiler is being used as the linker.
+
:term:`CFLAGS`
Specifies the flags to pass to the C compiler. This variable is
exported to an environment variable and thus made visible to the
@@ -2819,6 +3023,9 @@ system and gives an overview of their function and contents.
:term:`FAKEROOTNOENV`
See :term:`bitbake:FAKEROOTNOENV` in the BitBake manual.
+ :term:`FC`
+ The minimal command and arguments used to run the Fortran compiler.
+
:term:`FEATURE_PACKAGES`
Defines one or more packages to include in an image when a specific
item is included in :term:`IMAGE_FEATURES`.
@@ -7313,6 +7520,9 @@ system and gives an overview of their function and contents.
":ref:`bitbake-user-manual/bitbake-user-manual-execution:dependencies`" sections in the
BitBake User Manual for additional information on tasks and dependencies.
+ :term:`READELF`
+ The minimal command and arguments to run :manpage:`readelf <readelf(1)>`.
+
:term:`RECIPE_MAINTAINER`
This variable defines the name and e-mail address of the maintainer of a
recipe. Such information can be used by human users submitted changes,
--
2.47.0
next prev parent reply other threads:[~2025-03-27 9:07 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-27 9:07 [PATCH v3 0/6] Document missing toolchain related variables Antonin Godard
2025-03-27 9:07 ` [PATCH v3 1/6] documentation/conf.py: define a manpage url Antonin Godard
2025-03-27 15:35 ` [docs] " Mark Hatle
2025-03-31 15:01 ` Antonin Godard
2025-03-28 13:21 ` Quentin Schulz
2025-03-27 9:07 ` [PATCH v3 2/6] ref-manual/variables.rst: add manpage links for toolchain variables Antonin Godard
2025-03-28 13:23 ` [docs] " Quentin Schulz
2025-03-27 9:07 ` Antonin Godard [this message]
2025-03-28 13:43 ` [docs] [PATCH v3 3/6] ref-manual/variables.rst: add missing documentation for BUILD_* variables Quentin Schulz
2025-03-27 9:07 ` [PATCH v3 4/6] ref-manual/variables.rst: document missing SDK_*_ARCH variables Antonin Godard
2025-03-27 9:07 ` [PATCH v3 5/6] ref-manual/variables.rst: document HOST_*_ARCH variables Antonin Godard
2025-03-27 9:07 ` [PATCH v3 6/6] ref-manual/variables.rst: HOST_CC_ARCH: fix wrong SDK reference Antonin Godard
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=20250327-cc-vars-v3-3-742dbddce008@bootlin.com \
--to=antonin.godard@bootlin.com \
--cc=docs@lists.yoctoproject.org \
--cc=thomas.petazzoni@bootlin.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.