mirror of
https://git.yoctoproject.org/poky
synced 2026-04-26 18:32:13 +02:00
Drop the icecc class and related variables
Dropped by commit ecf8c386cf83 ("classes/recipes-devtools: Drop icecc
from OE-Core") in OE-Core.
Remove documentation for the class and the related variables. Remove the
references to this class.
(From yocto-docs rev: 30c9413c5106bcbcc1600ef16b8d0cece86d8158)
Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
16d3f5b3b0
commit
a15109ab52
@@ -33,11 +33,11 @@ The following variables have changed their names:
|
||||
- ``BB_SETSCENE_ENFORCE_WHITELIST`` became ``BB_SETSCENE_ENFORCE_IGNORE_TASKS``
|
||||
- ``CVE_CHECK_PN_WHITELIST`` became :term:`CVE_CHECK_SKIP_RECIPE`
|
||||
- ``CVE_CHECK_WHITELIST`` became :term:`CVE_CHECK_IGNORE`
|
||||
- ``ICECC_USER_CLASS_BL`` became :term:`ICECC_CLASS_DISABLE`
|
||||
- ``ICECC_SYSTEM_CLASS_BL`` became :term:`ICECC_CLASS_DISABLE`
|
||||
- ``ICECC_USER_PACKAGE_WL`` became :term:`ICECC_RECIPE_ENABLE`
|
||||
- ``ICECC_USER_PACKAGE_BL`` became :term:`ICECC_RECIPE_DISABLE`
|
||||
- ``ICECC_SYSTEM_PACKAGE_BL`` became :term:`ICECC_RECIPE_DISABLE`
|
||||
- ``ICECC_USER_CLASS_BL`` became ``ICECC_CLASS_DISABLE``
|
||||
- ``ICECC_SYSTEM_CLASS_BL`` became ``ICECC_CLASS_DISABLE``
|
||||
- ``ICECC_USER_PACKAGE_WL`` became ``ICECC_RECIPE_ENABLE``
|
||||
- ``ICECC_USER_PACKAGE_BL`` became ``ICECC_RECIPE_DISABLE``
|
||||
- ``ICECC_SYSTEM_PACKAGE_BL`` became ``ICECC_RECIPE_DISABLE``
|
||||
- ``LICENSE_FLAGS_WHITELIST`` became :term:`LICENSE_FLAGS_ACCEPTED`
|
||||
- ``MULTI_PROVIDER_WHITELIST`` became :term:`BB_MULTI_PROVIDER_ALLOWED`
|
||||
- ``PNBLACKLIST`` became :term:`SKIP_RECIPE`
|
||||
|
||||
@@ -1143,80 +1143,6 @@ The :ref:`ref-classes-gzipnative` class enables the use of different native vers
|
||||
``gzip`` and ``pigz`` rather than the versions of these tools from the
|
||||
build host.
|
||||
|
||||
.. _ref-classes-icecc:
|
||||
|
||||
``icecc``
|
||||
=========
|
||||
|
||||
The :ref:`ref-classes-icecc` class supports
|
||||
`Icecream <https://github.com/icecc/icecream>`__, which facilitates
|
||||
taking compile jobs and distributing them among remote machines.
|
||||
|
||||
The class stages directories with symlinks from ``gcc`` and ``g++`` to
|
||||
``icecc``, for both native and cross compilers. Depending on each
|
||||
configure or compile, the OpenEmbedded build system adds the directories
|
||||
at the head of the ``PATH`` list and then sets the ``ICECC_CXX`` and
|
||||
``ICECC_CC`` variables, which are the paths to the ``g++`` and ``gcc``
|
||||
compilers, respectively.
|
||||
|
||||
For the cross compiler, the class creates a ``tar.gz`` file that
|
||||
contains the Yocto Project toolchain and sets ``ICECC_VERSION``, which
|
||||
is the version of the cross-compiler used in the cross-development
|
||||
toolchain, accordingly.
|
||||
|
||||
The class handles all three different compile stages (i.e native,
|
||||
cross-kernel and target) and creates the necessary environment
|
||||
``tar.gz`` file to be used by the remote machines. The class also
|
||||
supports SDK generation.
|
||||
|
||||
If :term:`ICECC_PATH` is not set in your
|
||||
``local.conf`` file, then the class tries to locate the ``icecc`` binary
|
||||
using ``which``. If :term:`ICECC_ENV_EXEC` is set
|
||||
in your ``local.conf`` file, the variable should point to the
|
||||
``icecc-create-env`` script provided by the user. If you do not point to
|
||||
a user-provided script, the build system uses the default script
|
||||
provided by the recipe :oe_git:`icecc-create-env_0.1.bb
|
||||
</openembedded-core/tree/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb>`.
|
||||
|
||||
.. note::
|
||||
|
||||
This script is a modified version and not the one that comes with
|
||||
``icecream``.
|
||||
|
||||
If you do not want the Icecream distributed compile support to apply to
|
||||
specific recipes or classes, you can ask them to be ignored by Icecream
|
||||
by listing the recipes and classes using the
|
||||
:term:`ICECC_RECIPE_DISABLE` and
|
||||
:term:`ICECC_CLASS_DISABLE` variables,
|
||||
respectively, in your ``local.conf`` file. Doing so causes the
|
||||
OpenEmbedded build system to handle these compilations locally.
|
||||
|
||||
Additionally, you can list recipes using the
|
||||
:term:`ICECC_RECIPE_ENABLE` variable in
|
||||
your ``local.conf`` file to force ``icecc`` to be enabled for recipes
|
||||
using an empty :term:`PARALLEL_MAKE` variable.
|
||||
|
||||
Inheriting the :ref:`ref-classes-icecc` class changes all sstate signatures.
|
||||
Consequently, if a development team has a dedicated build system that
|
||||
populates :term:`SSTATE_MIRRORS` and they want to
|
||||
reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build
|
||||
system need to either inherit the :ref:`ref-classes-icecc` class or nobody should.
|
||||
|
||||
At the distribution level, you can inherit the :ref:`ref-classes-icecc` class to be
|
||||
sure that all builders start with the same sstate signatures. After
|
||||
inheriting the class, you can then disable the feature by setting the
|
||||
:term:`ICECC_DISABLED` variable to "1" as follows::
|
||||
|
||||
INHERIT_DISTRO:append = " icecc"
|
||||
ICECC_DISABLED ??= "1"
|
||||
|
||||
This practice
|
||||
makes sure everyone is using the same signatures but also requires
|
||||
individuals that do want to use Icecream to enable the feature
|
||||
individually as follows in your ``local.conf`` file::
|
||||
|
||||
ICECC_DISABLED = ""
|
||||
|
||||
.. _ref-classes-image:
|
||||
|
||||
``image``
|
||||
|
||||
@@ -9,7 +9,7 @@ system and gives an overview of their function and contents.
|
||||
|
||||
:term:`A <ABIEXTENSION>` :term:`B` :term:`C <CACHE>`
|
||||
:term:`D` :term:`E <EFI_PROVIDER>` :term:`F <FAKEROOT>`
|
||||
:term:`G <GCCPIE>` :term:`H <HGDIR>` :term:`I <ICECC_CLASS_DISABLE>`
|
||||
:term:`G <GCCPIE>` :term:`H <HGDIR>` :term:`I <IMAGE_BASENAME>`
|
||||
:term:`K <KARCH>` :term:`L <LABELS>` :term:`M <MACHINE>`
|
||||
:term:`N <NATIVELSBSTRING>` :term:`O <OBJCOPY>` :term:`P`
|
||||
:term:`Q <QA_EMPTY_DIRS>` :term:`R <RANLIB>` :term:`S` :term:`T`
|
||||
@@ -2686,7 +2686,7 @@ system and gives an overview of their function and contents.
|
||||
:ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class sets the
|
||||
default value::
|
||||
|
||||
ESDK_CLASS_INHERIT_DISABLE ?= "buildhistory icecc"
|
||||
ESDK_CLASS_INHERIT_DISABLE ?= "buildhistory"
|
||||
|
||||
Some classes are not generally applicable within the extensible SDK
|
||||
context. You can use this variable to disable those classes.
|
||||
@@ -3818,91 +3818,6 @@ system and gives an overview of their function and contents.
|
||||
:term:`HOSTTOOLS_NONFATAL` is not found on the build host. Thus, you can
|
||||
use :term:`HOSTTOOLS_NONFATAL` to filter optional host tools.
|
||||
|
||||
:term:`ICECC_CLASS_DISABLE`
|
||||
Identifies user classes that you do not want the Icecream distributed
|
||||
compile support to consider. This variable is used by the
|
||||
:ref:`ref-classes-icecc` class. You set this variable in
|
||||
your ``local.conf`` file.
|
||||
|
||||
When you list classes using this variable, the recipes inheriting
|
||||
those classes will not benefit from distributed compilation across
|
||||
remote hosts. Instead they will be built locally.
|
||||
|
||||
:term:`ICECC_DISABLED`
|
||||
Disables or enables the ``icecc`` (Icecream) function. For more
|
||||
information on this function and best practices for using this
|
||||
variable, see the ":ref:`ref-classes-icecc`"
|
||||
section.
|
||||
|
||||
Setting this variable to "1" in your ``local.conf`` disables the
|
||||
function::
|
||||
|
||||
ICECC_DISABLED ??= "1"
|
||||
|
||||
To enable the function, set the variable as follows::
|
||||
|
||||
ICECC_DISABLED = ""
|
||||
|
||||
:term:`ICECC_ENV_EXEC`
|
||||
Points to the ``icecc-create-env`` script that you provide. This
|
||||
variable is used by the :ref:`ref-classes-icecc` class. You
|
||||
set this variable in your ``local.conf`` file.
|
||||
|
||||
If you do not point to a script that you provide, the OpenEmbedded
|
||||
build system uses the default script provided by the
|
||||
:oe_git:`icecc-create-env_0.1.bb
|
||||
</openembedded-core/tree/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb>`
|
||||
recipe, which is a modified version and not the one that comes with
|
||||
``icecream``.
|
||||
|
||||
:term:`ICECC_PARALLEL_MAKE`
|
||||
Extra options passed to the ``make`` command during the
|
||||
:ref:`ref-tasks-compile` task that specify parallel
|
||||
compilation. This variable usually takes the form of "-j x", where x
|
||||
represents the maximum number of parallel threads ``make`` can run.
|
||||
|
||||
.. note::
|
||||
|
||||
The options passed affect builds on all enabled machines on the
|
||||
network, which are machines running the ``iceccd`` daemon.
|
||||
|
||||
If your enabled machines support multiple cores, coming up with the
|
||||
maximum number of parallel threads that gives you the best
|
||||
performance could take some experimentation since machine speed,
|
||||
network lag, available memory, and existing machine loads can all
|
||||
affect build time. Consequently, unlike the
|
||||
:term:`PARALLEL_MAKE` variable, there is no
|
||||
rule-of-thumb for setting :term:`ICECC_PARALLEL_MAKE` to achieve optimal
|
||||
performance.
|
||||
|
||||
If you do not set :term:`ICECC_PARALLEL_MAKE`, the build system does not
|
||||
use it (i.e. the system does not detect and assign the number of
|
||||
cores as is done with :term:`PARALLEL_MAKE`).
|
||||
|
||||
:term:`ICECC_PATH`
|
||||
The location of the ``icecc`` binary. You can set this variable in
|
||||
your ``local.conf`` file. If your ``local.conf`` file does not define
|
||||
this variable, the :ref:`ref-classes-icecc` class attempts
|
||||
to define it by locating ``icecc`` using ``which``.
|
||||
|
||||
:term:`ICECC_RECIPE_DISABLE`
|
||||
Identifies user recipes that you do not want the Icecream distributed
|
||||
compile support to consider. This variable is used by the
|
||||
:ref:`ref-classes-icecc` class. You set this variable in
|
||||
your ``local.conf`` file.
|
||||
|
||||
When you list recipes using this variable, you are excluding them
|
||||
from distributed compilation across remote hosts. Instead they will
|
||||
be built locally.
|
||||
|
||||
:term:`ICECC_RECIPE_ENABLE`
|
||||
Identifies user recipes that use an empty
|
||||
:term:`PARALLEL_MAKE` variable that you want to
|
||||
force remote distributed compilation on using the Icecream
|
||||
distributed compile support. This variable is used by the
|
||||
:ref:`ref-classes-icecc` class. You set this variable in
|
||||
your ``local.conf`` file.
|
||||
|
||||
:term:`IMAGE_BASENAME`
|
||||
The base name of image output files. This variable defaults to the
|
||||
recipe name (``${``\ :term:`PN`\ ``}``).
|
||||
|
||||
@@ -48,8 +48,8 @@ build system applies them against ``local.conf`` and ``auto.conf``:
|
||||
:term:`ESDK_CLASS_INHERIT_DISABLE` are disabled. Using
|
||||
:term:`ESDK_CLASS_INHERIT_DISABLE` to disable these classes is the typical
|
||||
method to disable classes that are problematic or unnecessary in the SDK
|
||||
context. The default value disables the
|
||||
:ref:`ref-classes-buildhistory` and :ref:`ref-classes-icecc` classes.
|
||||
context. The default value disables the :ref:`ref-classes-buildhistory`
|
||||
class.
|
||||
|
||||
Additionally, the contents of ``conf/sdk-extra.conf``, when present, are
|
||||
appended to the end of ``conf/local.conf`` within the produced SDK,
|
||||
|
||||
Reference in New Issue
Block a user