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: - ``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` 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 ``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 `__, 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 -`. - -.. 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`` 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. :term:`A ` :term:`B` :term:`C ` :term:`D` :term:`E ` :term:`F ` -:term:`G ` :term:`H ` :term:`I ` +:term:`G ` :term:`H ` :term:`I ` :term:`K ` :term:`L ` :term:`M ` :term:`N ` :term:`O ` :term:`P` :term:`Q ` :term:`R ` :term:`S` :term:`T` @@ -2686,7 +2686,7 @@ system and gives an overview of their function and contents. :ref:`populate-sdk-ext ` 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 - ` - 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`\ ``}``). 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``: :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,