summaryrefslogtreecommitdiffstats
path: root/documentation/ref-manual/classes.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/ref-manual/classes.rst')
-rw-r--r--documentation/ref-manual/classes.rst74
1 files changed, 0 insertions, 74 deletions
diff --git a/documentation/ref-manual/classes.rst b/documentation/ref-manual/classes.rst
index 7c2b4fb278..748f0395c2 100644
--- a/documentation/ref-manual/classes.rst
+++ b/documentation/ref-manual/classes.rst
@@ -1143,80 +1143,6 @@ The :ref:`ref-classes-gzipnative` class enables the use of different native vers
1143``gzip`` and ``pigz`` rather than the versions of these tools from the 1143``gzip`` and ``pigz`` rather than the versions of these tools from the
1144build host. 1144build host.
1145 1145
1146.. _ref-classes-icecc:
1147
1148``icecc``
1149=========
1150
1151The :ref:`ref-classes-icecc` class supports
1152`Icecream <https://github.com/icecc/icecream>`__, which facilitates
1153taking compile jobs and distributing them among remote machines.
1154
1155The class stages directories with symlinks from ``gcc`` and ``g++`` to
1156``icecc``, for both native and cross compilers. Depending on each
1157configure or compile, the OpenEmbedded build system adds the directories
1158at the head of the ``PATH`` list and then sets the ``ICECC_CXX`` and
1159``ICECC_CC`` variables, which are the paths to the ``g++`` and ``gcc``
1160compilers, respectively.
1161
1162For the cross compiler, the class creates a ``tar.gz`` file that
1163contains the Yocto Project toolchain and sets ``ICECC_VERSION``, which
1164is the version of the cross-compiler used in the cross-development
1165toolchain, accordingly.
1166
1167The class handles all three different compile stages (i.e native,
1168cross-kernel and target) and creates the necessary environment
1169``tar.gz`` file to be used by the remote machines. The class also
1170supports SDK generation.
1171
1172If :term:`ICECC_PATH` is not set in your
1173``local.conf`` file, then the class tries to locate the ``icecc`` binary
1174using ``which``. If :term:`ICECC_ENV_EXEC` is set
1175in your ``local.conf`` file, the variable should point to the
1176``icecc-create-env`` script provided by the user. If you do not point to
1177a user-provided script, the build system uses the default script
1178provided by the recipe :oe_git:`icecc-create-env_0.1.bb
1179</openembedded-core/tree/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb>`.
1180
1181.. note::
1182
1183 This script is a modified version and not the one that comes with
1184 ``icecream``.
1185
1186If you do not want the Icecream distributed compile support to apply to
1187specific recipes or classes, you can ask them to be ignored by Icecream
1188by listing the recipes and classes using the
1189:term:`ICECC_RECIPE_DISABLE` and
1190:term:`ICECC_CLASS_DISABLE` variables,
1191respectively, in your ``local.conf`` file. Doing so causes the
1192OpenEmbedded build system to handle these compilations locally.
1193
1194Additionally, you can list recipes using the
1195:term:`ICECC_RECIPE_ENABLE` variable in
1196your ``local.conf`` file to force ``icecc`` to be enabled for recipes
1197using an empty :term:`PARALLEL_MAKE` variable.
1198
1199Inheriting the :ref:`ref-classes-icecc` class changes all sstate signatures.
1200Consequently, if a development team has a dedicated build system that
1201populates :term:`SSTATE_MIRRORS` and they want to
1202reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build
1203system need to either inherit the :ref:`ref-classes-icecc` class or nobody should.
1204
1205At the distribution level, you can inherit the :ref:`ref-classes-icecc` class to be
1206sure that all builders start with the same sstate signatures. After
1207inheriting the class, you can then disable the feature by setting the
1208:term:`ICECC_DISABLED` variable to "1" as follows::
1209
1210 INHERIT_DISTRO:append = " icecc"
1211 ICECC_DISABLED ??= "1"
1212
1213This practice
1214makes sure everyone is using the same signatures but also requires
1215individuals that do want to use Icecream to enable the feature
1216individually as follows in your ``local.conf`` file::
1217
1218 ICECC_DISABLED = ""
1219
1220.. _ref-classes-image: 1146.. _ref-classes-image:
1221 1147
1222``image`` 1148``image``