diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2018-09-29 15:23:10 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-10-01 13:04:49 +0100 |
commit | a1fd97e1c7fda0fc2813aa8360972cfe69092ccd (patch) | |
tree | 7153bd88e333621616380b2412f51f45e855db40 /meta | |
parent | f7198b473f2c9100262fe8129693d06b3358786c (diff) | |
download | poky-a1fd97e1c7fda0fc2813aa8360972cfe69092ccd.tar.gz |
multilib: avoid expanding grub and grub-efi to multilib
It doesn't make much sense to expand them to multilib, and there is an error on
qemuarm64 since grub-efi supports arm64, but doesn't support armv7a or armv7ve:
* Fixed:
MACHINE = "qemuarm64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "armv7a"
MACHINE_FEATURES_append = " efi"
$ bitbake lib32-core-image-minimal
Also introduced a variable NON_MULTILIB_RECIPES in multilib.conf, so that we
can easily add other recipes, such as syslinux if needed.
(From OE-Core rev: 25f7c6c329038b443d36074fff45a30ba3712f7a)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/multilib.bbclass | 8 | ||||
-rw-r--r-- | meta/classes/multilib_global.bbclass | 5 | ||||
-rw-r--r-- | meta/conf/multilib.conf | 4 |
3 files changed, 14 insertions, 3 deletions
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass index db39e02d42..6c6499a23e 100644 --- a/meta/classes/multilib.bbclass +++ b/meta/classes/multilib.bbclass | |||
@@ -11,8 +11,12 @@ python multilib_virtclass_handler () { | |||
11 | # There should only be one kernel in multilib configs | 11 | # There should only be one kernel in multilib configs |
12 | # We also skip multilib setup for module packages. | 12 | # We also skip multilib setup for module packages. |
13 | provides = (e.data.getVar("PROVIDES") or "").split() | 13 | provides = (e.data.getVar("PROVIDES") or "").split() |
14 | if "virtual/kernel" in provides or bb.data.inherits_class('module-base', e.data) or "make-mod-scripts" in e.data.getVar("PN"): | 14 | non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split() |
15 | raise bb.parse.SkipRecipe("We shouldn't have multilib variants for the kernel") | 15 | bpn = e.data.getVar("BPN") |
16 | if "virtual/kernel" in provides or \ | ||
17 | bb.data.inherits_class('module-base', e.data) or \ | ||
18 | bpn in non_ml_recipes: | ||
19 | raise bb.parse.SkipRecipe("We shouldn't have multilib variants for %s" % bpn) | ||
16 | 20 | ||
17 | save_var_name=e.data.getVar("MULTILIB_SAVE_VARNAME") or "" | 21 | save_var_name=e.data.getVar("MULTILIB_SAVE_VARNAME") or "" |
18 | for name in save_var_name.split(): | 22 | for name in save_var_name.split(): |
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass index 1bb62427b0..649cc096b7 100644 --- a/meta/classes/multilib_global.bbclass +++ b/meta/classes/multilib_global.bbclass | |||
@@ -164,8 +164,11 @@ python multilib_virtclass_handler_global () { | |||
164 | if variant: | 164 | if variant: |
165 | return | 165 | return |
166 | 166 | ||
167 | non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split() | ||
168 | |||
167 | if bb.data.inherits_class('kernel', e.data) or \ | 169 | if bb.data.inherits_class('kernel', e.data) or \ |
168 | bb.data.inherits_class('module-base', e.data): | 170 | bb.data.inherits_class('module-base', e.data) or \ |
171 | d.getVar('BPN') in non_ml_recipes: | ||
169 | variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split() | 172 | variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split() |
170 | 173 | ||
171 | import oe.classextend | 174 | import oe.classextend |
diff --git a/meta/conf/multilib.conf b/meta/conf/multilib.conf index e74dec81a8..65a28ddbd2 100644 --- a/meta/conf/multilib.conf +++ b/meta/conf/multilib.conf | |||
@@ -26,3 +26,7 @@ OPKG_ARGS_append = " --force-maintainer --force-overwrite" | |||
26 | PKG_CONFIG_PATH .= ":${WORKDIR}/recipe-sysroot/${datadir}/pkgconfig" | 26 | PKG_CONFIG_PATH .= ":${WORKDIR}/recipe-sysroot/${datadir}/pkgconfig" |
27 | PKG_CONFIG_PATH[vardepsexclude] = "datadir WORKDIR" | 27 | PKG_CONFIG_PATH[vardepsexclude] = "datadir WORKDIR" |
28 | PKG_CONFIG_PATH[vardepvalueexclude] = ":${WORKDIR}/recipe-sysroot/${datadir}/pkgconfig" | 28 | PKG_CONFIG_PATH[vardepvalueexclude] = ":${WORKDIR}/recipe-sysroot/${datadir}/pkgconfig" |
29 | |||
30 | # These recipes don't need multilib variants, the ${BPN} PROVDES/RPROVDES | ||
31 | # ${MLPREFIX}${BPN} | ||
32 | NON_MULTILIB_RECIPES = "grub grub-efi make-mod-scripts" | ||