mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
icecc: Improve variables/terminology
The SYSTEM and USER seperation between variables seems odd and not necessary, drop it. Avoid the use of whitelist/blacklist and also change "packages" to "recipes" since that misuse causes confusion. (From OE-Core rev: 0df0eb6401a02139b9110bc95e21d97a67125ec5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
+22
-27
@@ -19,22 +19,21 @@
|
|||||||
# or the default one provided by icecc-create-env.bb will be used
|
# or the default one provided by icecc-create-env.bb will be used
|
||||||
# (NOTE that this is a modified version of the script need it and *not the one that comes with icecc*
|
# (NOTE that this is a modified version of the script need it and *not the one that comes with icecc*
|
||||||
#
|
#
|
||||||
# User can specify if specific packages or packages belonging to class should not use icecc to distribute
|
# User can specify if specific recipes or recipes belonging to class should not use icecc to distribute
|
||||||
# compile jobs to remote machines, but handled locally, by defining ICECC_USER_CLASS_BL and ICECC_USER_PACKAGE_BL
|
# compile jobs to remote machines, but handled locally, by defining ICECC_CLASS_DISABLE and ICECC_RECIPE_DISABLE
|
||||||
# with the appropriate values in local.conf. In addition the user can force to enable icecc for packages
|
# with the appropriate values in local.conf. In addition the user can force to enable icecc for recipes
|
||||||
# which set an empty PARALLEL_MAKE variable by defining ICECC_USER_PACKAGE_WL.
|
# which set an empty PARALLEL_MAKE variable by defining ICECC_RECIPE_ENABLE.
|
||||||
#
|
#
|
||||||
#########################################################################################
|
#########################################################################################
|
||||||
#Error checking is kept to minimum so double check any parameters you pass to the class
|
#Error checking is kept to minimum so double check any parameters you pass to the class
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
|
|
||||||
BB_BASEHASH_IGNORE_VARS += "ICECC_PARALLEL_MAKE ICECC_DISABLED ICECC_USER_PACKAGE_BL \
|
BB_BASEHASH_IGNORE_VARS += "ICECC_PARALLEL_MAKE ICECC_DISABLED ICECC_RECIPE_DISABLE \
|
||||||
ICECC_USER_CLASS_BL ICECC_USER_PACKAGE_WL ICECC_PATH ICECC_ENV_EXEC \
|
ICECC_CLASS_DISABLE ICECC_RECIPE_ENABLE ICECC_PATH ICECC_ENV_EXEC \
|
||||||
ICECC_CARET_WORKAROUND ICECC_CFLAGS ICECC_ENV_VERSION \
|
ICECC_CARET_WORKAROUND ICECC_CFLAGS ICECC_ENV_VERSION \
|
||||||
ICECC_DEBUG ICECC_LOGFILE ICECC_REPEAT_RATE ICECC_PREFERRED_HOST \
|
ICECC_DEBUG ICECC_LOGFILE ICECC_REPEAT_RATE ICECC_PREFERRED_HOST \
|
||||||
ICECC_CLANG_REMOTE_CPP ICECC_IGNORE_UNVERIFIED ICECC_TEST_SOCKET \
|
ICECC_CLANG_REMOTE_CPP ICECC_IGNORE_UNVERIFIED ICECC_TEST_SOCKET \
|
||||||
ICECC_ENV_DEBUG ICECC_SYSTEM_PACKAGE_BL ICECC_SYSTEM_CLASS_BL \
|
ICECC_ENV_DEBUG ICECC_REMOTE_CPP \
|
||||||
ICECC_REMOTE_CPP \
|
|
||||||
"
|
"
|
||||||
|
|
||||||
ICECC_ENV_EXEC ?= "${STAGING_BINDIR_NATIVE}/icecc-create-env"
|
ICECC_ENV_EXEC ?= "${STAGING_BINDIR_NATIVE}/icecc-create-env"
|
||||||
@@ -66,7 +65,7 @@ CXXFLAGS += "${ICECC_CFLAGS}"
|
|||||||
# Debug flags when generating environments
|
# Debug flags when generating environments
|
||||||
ICECC_ENV_DEBUG ??= ""
|
ICECC_ENV_DEBUG ??= ""
|
||||||
|
|
||||||
# "system" recipe blacklist contains a list of packages that can not distribute
|
# Disable recipe list contains a list of recipes that can not distribute
|
||||||
# compile tasks for one reason or the other. When adding new entry, please
|
# compile tasks for one reason or the other. When adding new entry, please
|
||||||
# document why (how it failed) so that we can re-evaluate it later e.g. when
|
# document why (how it failed) so that we can re-evaluate it later e.g. when
|
||||||
# there is new version
|
# there is new version
|
||||||
@@ -79,21 +78,21 @@ ICECC_ENV_DEBUG ??= ""
|
|||||||
# inline assembly
|
# inline assembly
|
||||||
# target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL
|
# target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL
|
||||||
# prefix" error.
|
# prefix" error.
|
||||||
ICECC_SYSTEM_PACKAGE_BL += "\
|
ICECC_RECIPE_DISABLE += "\
|
||||||
libgcc-initial \
|
libgcc-initial \
|
||||||
pixman \
|
pixman \
|
||||||
systemtap \
|
systemtap \
|
||||||
target-sdk-provides-dummy \
|
target-sdk-provides-dummy \
|
||||||
"
|
"
|
||||||
|
|
||||||
# "system" classes that should be blacklisted. When adding new entry, please
|
# Classes that should not use icecc. When adding new entry, please
|
||||||
# document why (how it failed) so that we can re-evaluate it later
|
# document why (how it failed) so that we can re-evaluate it later
|
||||||
#
|
#
|
||||||
# image - Image aren't compiling, but the testing framework for images captures
|
# image - Image aren't compiling, but the testing framework for images captures
|
||||||
# PARALLEL_MAKE as part of the test environment. Many tests won't use
|
# PARALLEL_MAKE as part of the test environment. Many tests won't use
|
||||||
# icecream, but leaving the high level of parallelism can cause them to
|
# icecream, but leaving the high level of parallelism can cause them to
|
||||||
# consume an unnecessary amount of resources.
|
# consume an unnecessary amount of resources.
|
||||||
ICECC_SYSTEM_CLASS_BL += "\
|
ICECC_CLASS_DISABLE += "\
|
||||||
image \
|
image \
|
||||||
"
|
"
|
||||||
|
|
||||||
@@ -141,32 +140,28 @@ def use_icecc(bb,d):
|
|||||||
pn = d.getVar('PN')
|
pn = d.getVar('PN')
|
||||||
bpn = d.getVar('BPN')
|
bpn = d.getVar('BPN')
|
||||||
|
|
||||||
# Blacklist/whitelist checks are made against BPN, because there is a good
|
# Enable/disable checks are made against BPN, because there is a good
|
||||||
# chance that if icecc should be skipped for a recipe, it should be skipped
|
# chance that if icecc should be skipped for a recipe, it should be skipped
|
||||||
# for all the variants of that recipe. PN is still checked in case a user
|
# for all the variants of that recipe. PN is still checked in case a user
|
||||||
# specified a more specific recipe.
|
# specified a more specific recipe.
|
||||||
check_pn = set([pn, bpn])
|
check_pn = set([pn, bpn])
|
||||||
|
|
||||||
system_class_blacklist = (d.getVar('ICECC_SYSTEM_CLASS_BL') or "").split()
|
class_disable = (d.getVar('ICECC_CLASS_DISABLE') or "").split()
|
||||||
user_class_blacklist = (d.getVar('ICECC_USER_CLASS_BL') or "none").split()
|
|
||||||
package_class_blacklist = system_class_blacklist + user_class_blacklist
|
|
||||||
|
|
||||||
for black in package_class_blacklist:
|
for class in class_disable:
|
||||||
if bb.data.inherits_class(black, d):
|
if bb.data.inherits_class(class, d):
|
||||||
bb.debug(1, "%s: class %s found in blacklist, disable icecc" % (pn, black))
|
bb.debug(1, "%s: class %s found in disable, disable icecc" % (pn, class))
|
||||||
return "no"
|
return "no"
|
||||||
|
|
||||||
system_package_blacklist = (d.getVar('ICECC_SYSTEM_PACKAGE_BL') or "").split()
|
disabled_recipes = (d.getVar('ICECC_RECIPE_DISABLE') or "").split()
|
||||||
user_package_blacklist = (d.getVar('ICECC_USER_PACKAGE_BL') or "").split()
|
enabled_recipes = (d.getVar('ICECC_RECIPE_ENABLE') or "").split()
|
||||||
user_package_whitelist = (d.getVar('ICECC_USER_PACKAGE_WL') or "").split()
|
|
||||||
package_blacklist = system_package_blacklist + user_package_blacklist
|
|
||||||
|
|
||||||
if check_pn & set(package_blacklist):
|
if check_pn & set(disabled_recipes):
|
||||||
bb.debug(1, "%s: found in blacklist, disable icecc" % pn)
|
bb.debug(1, "%s: found in disable list, disable icecc" % pn)
|
||||||
return "no"
|
return "no"
|
||||||
|
|
||||||
if check_pn & set(user_package_whitelist):
|
if check_pn & set(enabled_recipes):
|
||||||
bb.debug(1, "%s: found in whitelist, enable icecc" % pn)
|
bb.debug(1, "%s: found in enabled recipes list, enable icecc" % pn)
|
||||||
return "yes"
|
return "yes"
|
||||||
|
|
||||||
if d.getVar('PARALLEL_MAKE') == "":
|
if d.getVar('PARALLEL_MAKE') == "":
|
||||||
|
|||||||
@@ -101,6 +101,11 @@ BB_RENAMED_VARIABLES[SDK_INHERIT_BLACKLIST] = "ESDK_CLASS_INHERIT_DISABLE"
|
|||||||
BB_RENAMED_VARIABLES[SSTATE_DUPWHITELIST] = "SSTATE_ALLOW_OVERLAP_FILES"
|
BB_RENAMED_VARIABLES[SSTATE_DUPWHITELIST] = "SSTATE_ALLOW_OVERLAP_FILES"
|
||||||
BB_RENAMED_VARIABLES[SYSROOT_DIRS_BLACKLIST] = "SYSROOT_DIRS_IGNORE"
|
BB_RENAMED_VARIABLES[SYSROOT_DIRS_BLACKLIST] = "SYSROOT_DIRS_IGNORE"
|
||||||
BB_RENAMED_VARIABLES[UNKNOWN_CONFIGURE_WHITELIST] = "UNKNOWN_CONFIGURE_OPT_IGNORE"
|
BB_RENAMED_VARIABLES[UNKNOWN_CONFIGURE_WHITELIST] = "UNKNOWN_CONFIGURE_OPT_IGNORE"
|
||||||
|
BB_RENAMED_VARIABLES[ICECC_USER_CLASS_BL] = "ICECC_CLASS_DISABLE"
|
||||||
|
BB_RENAMED_VARIABLES[ICECC_SYSTEM_CLASS_BL] = "ICECC_CLASS_DISABLE"
|
||||||
|
BB_RENAMED_VARIABLES[ICECC_USER_PACKAGE_WL] = "ICECC_RECIPE_ENABLE"
|
||||||
|
BB_RENAMED_VARIABLES[ICECC_USER_PACKAGE_BL] = "ICECC_RECIPE_DISABLE"
|
||||||
|
BB_RENAMED_VARIABLES[ICECC_SYSTEM_PACKAGE_BL] = "ICECC_RECIPE_DISABLE"
|
||||||
|
|
||||||
##################################################################
|
##################################################################
|
||||||
# Architecture-dependent build variables.
|
# Architecture-dependent build variables.
|
||||||
|
|||||||
@@ -205,9 +205,9 @@ HOST_VENDOR[doc] = "The name of the vendor. Normally same as the TARGET_VENDOR."
|
|||||||
|
|
||||||
ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
|
ICECC_ENV_EXEC[doc] = "Points to the icecc-create-env script that you provide."
|
||||||
ICECC_PATH[doc] = "The location of the icecc binary."
|
ICECC_PATH[doc] = "The location of the icecc binary."
|
||||||
ICECC_USER_CLASS_BL[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
|
ICECC_CLASS_DISABLE[doc] = "Identifies user classes that you do not want the Icecream distributed compile support to consider."
|
||||||
ICECC_USER_PACKAGE_BL[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
|
ICECC_RECIPE_DISABLE[doc] = "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
|
||||||
ICECC_USER_PACKAGE_WL[doc] = "Identifies user recipes that use an empty PARALLEL_MAKE variable that you want to force remote distributed compilation on using the Icecream distributed compile support."
|
ICECC_RECIPE_ENABLE[doc] = "Identifies user recipes that use an empty PARALLEL_MAKE variable that you want to force remote distributed compilation on using the Icecream distributed compile support."
|
||||||
IMAGE_BASENAME[doc] = "The base name of image output files."
|
IMAGE_BASENAME[doc] = "The base name of image output files."
|
||||||
IMAGE_BOOT_FILES[doc] = "Whitespace separated list of files from ${DEPLOY_DIR_IMAGE} to place in boot partition. Entries will be installed under a same name as the source file. To change the destination file name, pass a desired name after a semicolon (eg. u-boot.img;uboot)."
|
IMAGE_BOOT_FILES[doc] = "Whitespace separated list of files from ${DEPLOY_DIR_IMAGE} to place in boot partition. Entries will be installed under a same name as the source file. To change the destination file name, pass a desired name after a semicolon (eg. u-boot.img;uboot)."
|
||||||
IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
|
IMAGE_CLASSES[doc] = "A list of classes that all images should inherit."
|
||||||
|
|||||||
@@ -37,6 +37,11 @@ renames = {
|
|||||||
"SSTATE_DUPWHITELIST" : "SSTATE_ALLOW_OVERLAP_FILES",
|
"SSTATE_DUPWHITELIST" : "SSTATE_ALLOW_OVERLAP_FILES",
|
||||||
"SYSROOT_DIRS_BLACKLIST" : "SYSROOT_DIRS_IGNORE",
|
"SYSROOT_DIRS_BLACKLIST" : "SYSROOT_DIRS_IGNORE",
|
||||||
"UNKNOWN_CONFIGURE_WHITELIST" : "UNKNOWN_CONFIGURE_OPT_IGNORE",
|
"UNKNOWN_CONFIGURE_WHITELIST" : "UNKNOWN_CONFIGURE_OPT_IGNORE",
|
||||||
|
"ICECC_USER_CLASS_BL" : "ICECC_CLASS_DISABLE",
|
||||||
|
"ICECC_SYSTEM_CLASS_BL" : "ICECC_CLASS_DISABLE",
|
||||||
|
"ICECC_USER_PACKAGE_WL" : "ICECC_RECIPE_ENABLE",
|
||||||
|
"ICECC_USER_PACKAGE_BL" : "ICECC_RECIPE_DISABLE",
|
||||||
|
"ICECC_SYSTEM_PACKAGE_BL" : "ICECC_RECIPE_DISABLE",
|
||||||
}
|
}
|
||||||
|
|
||||||
removed_list = [
|
removed_list = [
|
||||||
|
|||||||
Reference in New Issue
Block a user