All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.