All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jussi Kukkonen <jussi.kukkonen@intel.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 4/4] native.bbclass: Use fixed DISTRO_FEATURES
Date: Fri,  7 Apr 2017 09:09:36 +0300	[thread overview]
Message-ID: <d071facbbdbb48f34e0f0d9500872349c1130a9a.1491483222.git.jussi.kukkonen@intel.com> (raw)
In-Reply-To: <cover.1491483222.git.jussi.kukkonen@intel.com>

There seems to be no advantage to letting distro features affect
native builds. There is a significant disadvantage: a change to
DISTRO_FEATURES will trigger a lot of unnecessary native tasks. In a
test like this:
  $ bitbake core-image-minimal
  # append " systemd" to DISTRO_FEATURES
  $ bitbake core-image-minimal
The latter build takes 44 minutes (28%) of cpu-time less with this
patch (skipping 135 native tasks). Sadly wall clock time was not
affected as glibc remains the bottleneck.

Set DISTRO_FEATURES to a fixed value for native recipes to avoid the
unnecessary tasks: currently the default value is empty.

Do the variable setting in native_virtclass_handler() because otherwise
it could still be overridden by appends and the feature backfilling.
Shuffle the early returns so DISTRO_FEATURES gets set as long as
the packagename ends with "-native".

Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
---
 meta/classes/native.bbclass | 12 ++++++++----
 meta/conf/bitbake.conf      |  2 ++
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index 1919fbc..fbca4c6 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -121,14 +121,18 @@ PATH_prepend = "${COREBASE}/scripts/native-intercept:"
 SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}"
 
 python native_virtclass_handler () {
-    classextend = e.data.getVar('BBCLASSEXTEND') or ""
-    if "native" not in classextend:
-        return
-
     pn = e.data.getVar("PN")
     if not pn.endswith("-native"):
         return
 
+    # Set features here to prevent appends and distro features backfill
+    # from modifying native distro features
+    d.setVar("DISTRO_FEATURES", "${NATIVE_DISTRO_FEATURES}")
+
+    classextend = e.data.getVar('BBCLASSEXTEND') or ""
+    if "native" not in classextend:
+        return
+
     def map_dependencies(varname, d, suffix = ""):
         if suffix:
             varname = varname + "_" + suffix
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 5e98d45..78a3470 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -789,6 +789,8 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
 EXTRA_IMAGE_FEATURES ??= ""
 IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
 
+NATIVE_DISTRO_FEATURES ?= ""
+
 DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject-introspection-data ldconfig"
 MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
 
-- 
2.1.4



  parent reply	other threads:[~2017-04-07  6:09 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-07  6:08 [PATCH 0/4] Use fixed DISTRO_FEATURES for native Jussi Kukkonen
2017-04-07  6:09 ` [PATCH 1/4] mkfontdir: Remove x11 requirement Jussi Kukkonen
2017-04-07  6:09 ` [PATCH 2/4] mkfontscale: " Jussi Kukkonen
2017-04-07  6:09 ` [PATCH 3/4] xorg-font-common.inc: " Jussi Kukkonen
2017-04-07  6:09 ` Jussi Kukkonen [this message]
2017-04-07  8:28   ` [PATCH 4/4] native.bbclass: Use fixed DISTRO_FEATURES Richard Purdie
2017-04-07 11:59     ` Jussi Kukkonen
2017-04-07 12:13       ` Richard Purdie
2017-04-07 13:06         ` Jussi Kukkonen
2017-04-07 21:47 ` [PATCH 0/4] Use fixed DISTRO_FEATURES for native Richard Purdie
2017-04-08  7:26   ` Richard Purdie

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d071facbbdbb48f34e0f0d9500872349c1130a9a.1491483222.git.jussi.kukkonen@intel.com \
    --to=jussi.kukkonen@intel.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.