diff options
author | Antonin Godard <antonin.godard@bootlin.com> | 2025-07-29 11:56:40 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-08-08 23:41:10 +0100 |
commit | a15109ab52a75c37a6ef28a975b722ce29ea1531 (patch) | |
tree | 8d44aa33cd2330fdb9c85cb29f7c8bb3e4ca4afc | |
parent | 16d3f5b3b0ad6cda28963bf83d8fee621c4ead70 (diff) | |
download | poky-a15109ab52a75c37a6ef28a975b722ce29ea1531.tar.gz |
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>
-rw-r--r-- | documentation/migration-guides/migration-4.0.rst | 10 | ||||
-rw-r--r-- | documentation/ref-manual/classes.rst | 74 | ||||
-rw-r--r-- | documentation/ref-manual/variables.rst | 89 | ||||
-rw-r--r-- | documentation/sdk-manual/appendix-customizing.rst | 4 |
4 files changed, 9 insertions, 168 deletions
diff --git a/documentation/migration-guides/migration-4.0.rst b/documentation/migration-guides/migration-4.0.rst index 0e9e741458..c8c2b856d9 100644 --- a/documentation/migration-guides/migration-4.0.rst +++ b/documentation/migration-guides/migration-4.0.rst | |||
@@ -33,11 +33,11 @@ The following variables have changed their names: | |||
33 | - ``BB_SETSCENE_ENFORCE_WHITELIST`` became ``BB_SETSCENE_ENFORCE_IGNORE_TASKS`` | 33 | - ``BB_SETSCENE_ENFORCE_WHITELIST`` became ``BB_SETSCENE_ENFORCE_IGNORE_TASKS`` |
34 | - ``CVE_CHECK_PN_WHITELIST`` became :term:`CVE_CHECK_SKIP_RECIPE` | 34 | - ``CVE_CHECK_PN_WHITELIST`` became :term:`CVE_CHECK_SKIP_RECIPE` |
35 | - ``CVE_CHECK_WHITELIST`` became :term:`CVE_CHECK_IGNORE` | 35 | - ``CVE_CHECK_WHITELIST`` became :term:`CVE_CHECK_IGNORE` |
36 | - ``ICECC_USER_CLASS_BL`` became :term:`ICECC_CLASS_DISABLE` | 36 | - ``ICECC_USER_CLASS_BL`` became ``ICECC_CLASS_DISABLE`` |
37 | - ``ICECC_SYSTEM_CLASS_BL`` became :term:`ICECC_CLASS_DISABLE` | 37 | - ``ICECC_SYSTEM_CLASS_BL`` became ``ICECC_CLASS_DISABLE`` |
38 | - ``ICECC_USER_PACKAGE_WL`` became :term:`ICECC_RECIPE_ENABLE` | 38 | - ``ICECC_USER_PACKAGE_WL`` became ``ICECC_RECIPE_ENABLE`` |
39 | - ``ICECC_USER_PACKAGE_BL`` became :term:`ICECC_RECIPE_DISABLE` | 39 | - ``ICECC_USER_PACKAGE_BL`` became ``ICECC_RECIPE_DISABLE`` |
40 | - ``ICECC_SYSTEM_PACKAGE_BL`` became :term:`ICECC_RECIPE_DISABLE` | 40 | - ``ICECC_SYSTEM_PACKAGE_BL`` became ``ICECC_RECIPE_DISABLE`` |
41 | - ``LICENSE_FLAGS_WHITELIST`` became :term:`LICENSE_FLAGS_ACCEPTED` | 41 | - ``LICENSE_FLAGS_WHITELIST`` became :term:`LICENSE_FLAGS_ACCEPTED` |
42 | - ``MULTI_PROVIDER_WHITELIST`` became :term:`BB_MULTI_PROVIDER_ALLOWED` | 42 | - ``MULTI_PROVIDER_WHITELIST`` became :term:`BB_MULTI_PROVIDER_ALLOWED` |
43 | - ``PNBLACKLIST`` became :term:`SKIP_RECIPE` | 43 | - ``PNBLACKLIST`` became :term:`SKIP_RECIPE` |
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 |
1144 | build host. | 1144 | build host. |
1145 | 1145 | ||
1146 | .. _ref-classes-icecc: | ||
1147 | |||
1148 | ``icecc`` | ||
1149 | ========= | ||
1150 | |||
1151 | The :ref:`ref-classes-icecc` class supports | ||
1152 | `Icecream <https://github.com/icecc/icecream>`__, which facilitates | ||
1153 | taking compile jobs and distributing them among remote machines. | ||
1154 | |||
1155 | The class stages directories with symlinks from ``gcc`` and ``g++`` to | ||
1156 | ``icecc``, for both native and cross compilers. Depending on each | ||
1157 | configure or compile, the OpenEmbedded build system adds the directories | ||
1158 | at 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`` | ||
1160 | compilers, respectively. | ||
1161 | |||
1162 | For the cross compiler, the class creates a ``tar.gz`` file that | ||
1163 | contains the Yocto Project toolchain and sets ``ICECC_VERSION``, which | ||
1164 | is the version of the cross-compiler used in the cross-development | ||
1165 | toolchain, accordingly. | ||
1166 | |||
1167 | The class handles all three different compile stages (i.e native, | ||
1168 | cross-kernel and target) and creates the necessary environment | ||
1169 | ``tar.gz`` file to be used by the remote machines. The class also | ||
1170 | supports SDK generation. | ||
1171 | |||
1172 | If :term:`ICECC_PATH` is not set in your | ||
1173 | ``local.conf`` file, then the class tries to locate the ``icecc`` binary | ||
1174 | using ``which``. If :term:`ICECC_ENV_EXEC` is set | ||
1175 | in 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 | ||
1177 | a user-provided script, the build system uses the default script | ||
1178 | provided 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 | |||
1186 | If you do not want the Icecream distributed compile support to apply to | ||
1187 | specific recipes or classes, you can ask them to be ignored by Icecream | ||
1188 | by listing the recipes and classes using the | ||
1189 | :term:`ICECC_RECIPE_DISABLE` and | ||
1190 | :term:`ICECC_CLASS_DISABLE` variables, | ||
1191 | respectively, in your ``local.conf`` file. Doing so causes the | ||
1192 | OpenEmbedded build system to handle these compilations locally. | ||
1193 | |||
1194 | Additionally, you can list recipes using the | ||
1195 | :term:`ICECC_RECIPE_ENABLE` variable in | ||
1196 | your ``local.conf`` file to force ``icecc`` to be enabled for recipes | ||
1197 | using an empty :term:`PARALLEL_MAKE` variable. | ||
1198 | |||
1199 | Inheriting the :ref:`ref-classes-icecc` class changes all sstate signatures. | ||
1200 | Consequently, if a development team has a dedicated build system that | ||
1201 | populates :term:`SSTATE_MIRRORS` and they want to | ||
1202 | reuse sstate from :term:`SSTATE_MIRRORS`, then all developers and the build | ||
1203 | system need to either inherit the :ref:`ref-classes-icecc` class or nobody should. | ||
1204 | |||
1205 | At the distribution level, you can inherit the :ref:`ref-classes-icecc` class to be | ||
1206 | sure that all builders start with the same sstate signatures. After | ||
1207 | inheriting 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 | |||
1213 | This practice | ||
1214 | makes sure everyone is using the same signatures but also requires | ||
1215 | individuals that do want to use Icecream to enable the feature | ||
1216 | individually 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`` |
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst index a6962bb9d4..d8e6a81ea7 100644 --- a/documentation/ref-manual/variables.rst +++ b/documentation/ref-manual/variables.rst | |||
@@ -9,7 +9,7 @@ system and gives an overview of their function and contents. | |||
9 | 9 | ||
10 | :term:`A <ABIEXTENSION>` :term:`B` :term:`C <CACHE>` | 10 | :term:`A <ABIEXTENSION>` :term:`B` :term:`C <CACHE>` |
11 | :term:`D` :term:`E <EFI_PROVIDER>` :term:`F <FAKEROOT>` | 11 | :term:`D` :term:`E <EFI_PROVIDER>` :term:`F <FAKEROOT>` |
12 | :term:`G <GCCPIE>` :term:`H <HGDIR>` :term:`I <ICECC_CLASS_DISABLE>` | 12 | :term:`G <GCCPIE>` :term:`H <HGDIR>` :term:`I <IMAGE_BASENAME>` |
13 | :term:`K <KARCH>` :term:`L <LABELS>` :term:`M <MACHINE>` | 13 | :term:`K <KARCH>` :term:`L <LABELS>` :term:`M <MACHINE>` |
14 | :term:`N <NATIVELSBSTRING>` :term:`O <OBJCOPY>` :term:`P` | 14 | :term:`N <NATIVELSBSTRING>` :term:`O <OBJCOPY>` :term:`P` |
15 | :term:`Q <QA_EMPTY_DIRS>` :term:`R <RANLIB>` :term:`S` :term:`T` | 15 | :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. | |||
2686 | :ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class sets the | 2686 | :ref:`populate-sdk-ext <ref-classes-populate-sdk-*>` class sets the |
2687 | default value:: | 2687 | default value:: |
2688 | 2688 | ||
2689 | ESDK_CLASS_INHERIT_DISABLE ?= "buildhistory icecc" | 2689 | ESDK_CLASS_INHERIT_DISABLE ?= "buildhistory" |
2690 | 2690 | ||
2691 | Some classes are not generally applicable within the extensible SDK | 2691 | Some classes are not generally applicable within the extensible SDK |
2692 | context. You can use this variable to disable those classes. | 2692 | context. You can use this variable to disable those classes. |
@@ -3818,91 +3818,6 @@ system and gives an overview of their function and contents. | |||
3818 | :term:`HOSTTOOLS_NONFATAL` is not found on the build host. Thus, you can | 3818 | :term:`HOSTTOOLS_NONFATAL` is not found on the build host. Thus, you can |
3819 | use :term:`HOSTTOOLS_NONFATAL` to filter optional host tools. | 3819 | use :term:`HOSTTOOLS_NONFATAL` to filter optional host tools. |
3820 | 3820 | ||
3821 | :term:`ICECC_CLASS_DISABLE` | ||
3822 | Identifies user classes that you do not want the Icecream distributed | ||
3823 | compile support to consider. This variable is used by the | ||
3824 | :ref:`ref-classes-icecc` class. You set this variable in | ||
3825 | your ``local.conf`` file. | ||
3826 | |||
3827 | When you list classes using this variable, the recipes inheriting | ||
3828 | those classes will not benefit from distributed compilation across | ||
3829 | remote hosts. Instead they will be built locally. | ||
3830 | |||
3831 | :term:`ICECC_DISABLED` | ||
3832 | Disables or enables the ``icecc`` (Icecream) function. For more | ||
3833 | information on this function and best practices for using this | ||
3834 | variable, see the ":ref:`ref-classes-icecc`" | ||
3835 | section. | ||
3836 | |||
3837 | Setting this variable to "1" in your ``local.conf`` disables the | ||
3838 | function:: | ||
3839 | |||
3840 | ICECC_DISABLED ??= "1" | ||
3841 | |||
3842 | To enable the function, set the variable as follows:: | ||
3843 | |||
3844 | ICECC_DISABLED = "" | ||
3845 | |||
3846 | :term:`ICECC_ENV_EXEC` | ||
3847 | Points to the ``icecc-create-env`` script that you provide. This | ||
3848 | variable is used by the :ref:`ref-classes-icecc` class. You | ||
3849 | set this variable in your ``local.conf`` file. | ||
3850 | |||
3851 | If you do not point to a script that you provide, the OpenEmbedded | ||
3852 | build system uses the default script provided by the | ||
3853 | :oe_git:`icecc-create-env_0.1.bb | ||
3854 | </openembedded-core/tree/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb>` | ||
3855 | recipe, which is a modified version and not the one that comes with | ||
3856 | ``icecream``. | ||
3857 | |||
3858 | :term:`ICECC_PARALLEL_MAKE` | ||
3859 | Extra options passed to the ``make`` command during the | ||
3860 | :ref:`ref-tasks-compile` task that specify parallel | ||
3861 | compilation. This variable usually takes the form of "-j x", where x | ||
3862 | represents the maximum number of parallel threads ``make`` can run. | ||
3863 | |||
3864 | .. note:: | ||
3865 | |||
3866 | The options passed affect builds on all enabled machines on the | ||
3867 | network, which are machines running the ``iceccd`` daemon. | ||
3868 | |||
3869 | If your enabled machines support multiple cores, coming up with the | ||
3870 | maximum number of parallel threads that gives you the best | ||
3871 | performance could take some experimentation since machine speed, | ||
3872 | network lag, available memory, and existing machine loads can all | ||
3873 | affect build time. Consequently, unlike the | ||
3874 | :term:`PARALLEL_MAKE` variable, there is no | ||
3875 | rule-of-thumb for setting :term:`ICECC_PARALLEL_MAKE` to achieve optimal | ||
3876 | performance. | ||
3877 | |||
3878 | If you do not set :term:`ICECC_PARALLEL_MAKE`, the build system does not | ||
3879 | use it (i.e. the system does not detect and assign the number of | ||
3880 | cores as is done with :term:`PARALLEL_MAKE`). | ||
3881 | |||
3882 | :term:`ICECC_PATH` | ||
3883 | The location of the ``icecc`` binary. You can set this variable in | ||
3884 | your ``local.conf`` file. If your ``local.conf`` file does not define | ||
3885 | this variable, the :ref:`ref-classes-icecc` class attempts | ||
3886 | to define it by locating ``icecc`` using ``which``. | ||
3887 | |||
3888 | :term:`ICECC_RECIPE_DISABLE` | ||
3889 | Identifies user recipes that you do not want the Icecream distributed | ||
3890 | compile support to consider. This variable is used by the | ||
3891 | :ref:`ref-classes-icecc` class. You set this variable in | ||
3892 | your ``local.conf`` file. | ||
3893 | |||
3894 | When you list recipes using this variable, you are excluding them | ||
3895 | from distributed compilation across remote hosts. Instead they will | ||
3896 | be built locally. | ||
3897 | |||
3898 | :term:`ICECC_RECIPE_ENABLE` | ||
3899 | Identifies user recipes that use an empty | ||
3900 | :term:`PARALLEL_MAKE` variable that you want to | ||
3901 | force remote distributed compilation on using the Icecream | ||
3902 | distributed compile support. This variable is used by the | ||
3903 | :ref:`ref-classes-icecc` class. You set this variable in | ||
3904 | your ``local.conf`` file. | ||
3905 | |||
3906 | :term:`IMAGE_BASENAME` | 3821 | :term:`IMAGE_BASENAME` |
3907 | The base name of image output files. This variable defaults to the | 3822 | The base name of image output files. This variable defaults to the |
3908 | recipe name (``${``\ :term:`PN`\ ``}``). | 3823 | recipe name (``${``\ :term:`PN`\ ``}``). |
diff --git a/documentation/sdk-manual/appendix-customizing.rst b/documentation/sdk-manual/appendix-customizing.rst index 61091d83ba..e08630dce0 100644 --- a/documentation/sdk-manual/appendix-customizing.rst +++ b/documentation/sdk-manual/appendix-customizing.rst | |||
@@ -48,8 +48,8 @@ build system applies them against ``local.conf`` and ``auto.conf``: | |||
48 | :term:`ESDK_CLASS_INHERIT_DISABLE` are disabled. Using | 48 | :term:`ESDK_CLASS_INHERIT_DISABLE` are disabled. Using |
49 | :term:`ESDK_CLASS_INHERIT_DISABLE` to disable these classes is the typical | 49 | :term:`ESDK_CLASS_INHERIT_DISABLE` to disable these classes is the typical |
50 | method to disable classes that are problematic or unnecessary in the SDK | 50 | method to disable classes that are problematic or unnecessary in the SDK |
51 | context. The default value disables the | 51 | context. The default value disables the :ref:`ref-classes-buildhistory` |
52 | :ref:`ref-classes-buildhistory` and :ref:`ref-classes-icecc` classes. | 52 | class. |
53 | 53 | ||
54 | Additionally, the contents of ``conf/sdk-extra.conf``, when present, are | 54 | Additionally, the contents of ``conf/sdk-extra.conf``, when present, are |
55 | appended to the end of ``conf/local.conf`` within the produced SDK, | 55 | appended to the end of ``conf/local.conf`` within the produced SDK, |