summaryrefslogtreecommitdiffstats
path: root/meta/classes/native.bbclass
diff options
context:
space:
mode:
authorJussi Kukkonen <jussi.kukkonen@intel.com>2017-04-11 17:35:40 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-04-12 15:09:58 +0100
commitdb1f1adace58763c35774e3fdfeaac5c3ca646fd (patch)
treec5cd33c15af44f2d07239314933c5a9b8626a965 /meta/classes/native.bbclass
parentf2e41a197fba1937383fd32cbd84c6028bebd928 (diff)
downloadpoky-db1f1adace58763c35774e3fdfeaac5c3ca646fd.tar.gz
native/nativesdk: Use fixed DISTRO_FEATURES
There seems to be little 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 native distro features to DISTRO_FEATURES_NATIVE appended with an intersection of DISTRO_FEATURES and DISTRO_FEATURES_FILTER_NATIVE. Current default values (baitbake.conf) are * DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation" (as gtk-doc-native has much less dependencies when built without it) * DISTRO_FEATURES_NATIVE ?= "x11" (to enable native UIs even if target does not containe them) 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". Add similar variables for nativesdk. To make nativesdk work we need to enable the locale options so nativesdk-glibc-locales can build and to avoid the init manager check in the nativesdk case so add those fixes. (From OE-Core rev: 731744d5538e315702be828e6f2bd556309dee07) Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/native.bbclass')
-rw-r--r--meta/classes/native.bbclass14
1 files changed, 10 insertions, 4 deletions
diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index 1919fbcdbd..aec1087af5 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -121,14 +121,20 @@ PATH_prepend = "${COREBASE}/scripts/native-intercept:"
121SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}" 121SSTATE_SCAN_CMD ?= "${SSTATE_SCAN_CMD_NATIVE}"
122 122
123python native_virtclass_handler () { 123python native_virtclass_handler () {
124 classextend = e.data.getVar('BBCLASSEXTEND') or ""
125 if "native" not in classextend:
126 return
127
128 pn = e.data.getVar("PN") 124 pn = e.data.getVar("PN")
129 if not pn.endswith("-native"): 125 if not pn.endswith("-native"):
130 return 126 return
131 127
128 # Set features here to prevent appends and distro features backfill
129 # from modifying native distro features
130 features = set(d.getVar("DISTRO_FEATURES_NATIVE").split())
131 filtered = set(bb.utils.filter("DISTRO_FEATURES", d.getVar("DISTRO_FEATURES_FILTER_NATIVE"), d).split())
132 d.setVar("DISTRO_FEATURES", " ".join(features | filtered))
133
134 classextend = e.data.getVar('BBCLASSEXTEND') or ""
135 if "native" not in classextend:
136 return
137
132 def map_dependencies(varname, d, suffix = ""): 138 def map_dependencies(varname, d, suffix = ""):
133 if suffix: 139 if suffix:
134 varname = varname + "_" + suffix 140 varname = varname + "_" + suffix