Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/2] Update icecream blacklists
@ 2018-11-20 20:04 Joshua Watt
  2018-11-20 20:04 ` [PATCH 1/2] meta/icecc.bbclass: Move system blacklist to variables Joshua Watt
  2018-11-20 20:04 ` [PATCH 2/2] meta/icecc.bbclass: Update system blacklists Joshua Watt
  0 siblings, 2 replies; 3+ messages in thread
From: Joshua Watt @ 2018-11-20 20:04 UTC (permalink / raw)
  To: openembedded-core

Updates the icecream blacklists and makes some changes to prevent such
updates from causing world rebuilds in the future.

Joshua Watt (2):
  meta/icecc.bbclass: Move system blacklist to variables
  meta/icecc.bbclass: Update system blacklists

 meta/classes/icecc.bbclass | 39 +++++++++++++++++++++++++++-----------
 1 file changed, 28 insertions(+), 11 deletions(-)

-- 
2.19.1



^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] meta/icecc.bbclass: Move system blacklist to variables
  2018-11-20 20:04 [PATCH 0/2] Update icecream blacklists Joshua Watt
@ 2018-11-20 20:04 ` Joshua Watt
  2018-11-20 20:04 ` [PATCH 2/2] meta/icecc.bbclass: Update system blacklists Joshua Watt
  1 sibling, 0 replies; 3+ messages in thread
From: Joshua Watt @ 2018-11-20 20:04 UTC (permalink / raw)
  To: openembedded-core

The system blacklists are moved to variables which are ignore when
hashing. This prevents changes to the blacklists from causing all
taskhashes to change (and thus rebuild).

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 meta/classes/icecc.bbclass | 31 ++++++++++++++++++++-----------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index 7597e4c0c93..037cce1e964 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -33,7 +33,7 @@ BB_HASHBASE_WHITELIST += "ICECC_PARALLEL_MAKE ICECC_DISABLED ICECC_USER_PACKAGE_
     ICECC_CARET_WORKAROUND ICECC_CFLAGS ICECC_ENV_VERSION \
     ICECC_DEBUG ICECC_LOGFILE ICECC_REPEAT_RATE ICECC_PREFERRED_HOST \
     ICECC_CLANG_REMOTE_CPP ICECC_IGNORE_UNVERIFIED ICECC_TEST_SOCKET \
-    ICECC_ENV_DEBUG \
+    ICECC_ENV_DEBUG ICECC_SYSTEM_PACKAGE_BL ICECC_SYSTEM_CLASS_BL \
     "
 
 ICECC_ENV_EXEC ?= "${STAGING_BINDIR_NATIVE}/icecc-create-env"
@@ -61,6 +61,23 @@ CXXFLAGS += "${ICECC_CFLAGS}"
 # Debug flags when generating environments
 ICECC_ENV_DEBUG ??= ""
 
+# "system" recipe blacklist contains a list of packages that can not distribute
+# 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
+# there is new version
+#
+# libgcc-initial - fails with CPP sanity check error if host sysroot contains
+#                  cross gcc built for another target tune/variant
+ICECC_SYSTEM_PACKAGE_BL += "\
+    libgcc-initial \
+    "
+
+# "system" classes that should be blacklisted. When adding new entry, please
+# document why (how it failed) so that we can re-evaluate it later
+#
+ICECC_SYSTEM_CLASS_BL += "\
+    "
+
 def icecc_dep_prepend(d):
     # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command.  Whether or  not
     # we need that built is the responsibility of the patch function / class, not
@@ -134,7 +151,7 @@ def use_icecc(bb,d):
 
     pn = d.getVar('PN')
 
-    system_class_blacklist = []
+    system_class_blacklist = (d.getVar('ICECC_SYSTEM_CLASS_BL') or "").split()
     user_class_blacklist = (d.getVar('ICECC_USER_CLASS_BL') or "none").split()
     package_class_blacklist = system_class_blacklist + user_class_blacklist
 
@@ -143,15 +160,7 @@ def use_icecc(bb,d):
             bb.debug(1, "%s: class %s found in blacklist, disable icecc" % (pn, black))
             return "no"
 
-    # "system" recipe blacklist contains a list of packages that can not distribute compile tasks
-    # for one reason or the other
-    # this is the old list (which doesn't seem to be valid anymore, because I was able to build
-    # all these with icecc enabled)
-    # system_package_blacklist = [ "glibc", "gcc", "bind", "u-boot", "dhcp-forwarder", "enchant", "connman", "orbit2" ]
-    # when adding new entry, please document why (how it failed) so that we can re-evaluate it later
-    # e.g. when there is new version
-    # building libgcc-initial with icecc fails with CPP sanity check error if host sysroot contains cross gcc built for another target tune/variant
-    system_package_blacklist = ["libgcc-initial"]
+    system_package_blacklist = (d.getVar('ICECC_SYSTEM_PACKAGE_BL') or "").split()
     user_package_blacklist = (d.getVar('ICECC_USER_PACKAGE_BL') or "").split()
     user_package_whitelist = (d.getVar('ICECC_USER_PACKAGE_WL') or "").split()
     package_blacklist = system_package_blacklist + user_package_blacklist
-- 
2.19.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] meta/icecc.bbclass: Update system blacklists
  2018-11-20 20:04 [PATCH 0/2] Update icecream blacklists Joshua Watt
  2018-11-20 20:04 ` [PATCH 1/2] meta/icecc.bbclass: Move system blacklist to variables Joshua Watt
@ 2018-11-20 20:04 ` Joshua Watt
  1 sibling, 0 replies; 3+ messages in thread
From: Joshua Watt @ 2018-11-20 20:04 UTC (permalink / raw)
  To: openembedded-core

Updates the system blacklists to include packages that are known to have
problems compiling under icecream

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 meta/classes/icecc.bbclass | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/meta/classes/icecc.bbclass b/meta/classes/icecc.bbclass
index 037cce1e964..2b189232cb7 100644
--- a/meta/classes/icecc.bbclass
+++ b/meta/classes/icecc.bbclass
@@ -68,14 +68,22 @@ ICECC_ENV_DEBUG ??= ""
 #
 # libgcc-initial - fails with CPP sanity check error if host sysroot contains
 #                  cross gcc built for another target tune/variant
+# target-sdk-provides-dummy - ${HOST_PREFIX} is empty which triggers the "NULL
+#                             prefix" error.
 ICECC_SYSTEM_PACKAGE_BL += "\
     libgcc-initial \
+    target-sdk-provides-dummy \
     "
 
 # "system" classes that should be blacklisted. When adding new entry, please
 # 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
+#         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
+#         consume an unnecessary amount of resources.
 ICECC_SYSTEM_CLASS_BL += "\
+    image \
     "
 
 def icecc_dep_prepend(d):
-- 
2.19.1



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-11-20 20:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-20 20:04 [PATCH 0/2] Update icecream blacklists Joshua Watt
2018-11-20 20:04 ` [PATCH 1/2] meta/icecc.bbclass: Move system blacklist to variables Joshua Watt
2018-11-20 20:04 ` [PATCH 2/2] meta/icecc.bbclass: Update system blacklists Joshua Watt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox