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 | |
| 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>
| -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" | ||
