path: root/meta/classes/multilib.bbclass
diff options
authorRobert Yang <>2017-04-12 02:26:31 -0700
committerRichard Purdie <>2017-04-12 22:16:55 +0100
commitc8749ed1edcbb544f6656ee5da80f2cf647c405a (patch)
tree48b84645a19c414f4d20276be575385ca0961837 /meta/classes/multilib.bbclass
parente41c90b852167bbcb434da57b84280e855acae33 (diff)
blacklist.bbclass: fix for multilib
* Fixed: The netmap has been blacklisted in meta-networking/recipes-kernel/netmap/, but lib32-netmap still can be built (suppose it doesn't depend on another broken recipe netmap-modules, it is a little complicated, will talk below): $ bitbake lib32-netmap This is because of the old code masks on bb.event.ConfigParsed which can only handle global blacklist, netmap sets blacklist in the recipe, so it can't be handled, and lib32-netmap can be built. which was incorrect: blacklist_multilib_eventhandler[eventmask] = "bb.event.ConfigParsed" Move multilib code into multilib.bbclass can fix the problem easily: $ bitbake lib32-netmap ERROR: Nothing PROVIDES 'lib32-netmap' ERROR: lib32-netmap was skipped: Recipe is blacklisted: BROKEN: <foo> * Not fixed Another problem is netmap-modules has also been blacklisted in the recipe, and the recipe inherits module.bbclass, so multilib.bbclass doesn't handle it as the code shows: # There should only be one kernel in multilib configs # We also skip multilib setup for module packages. provides = ("PROVIDES") or "").split() if "virtual/kernel" in provides or'module-base', raise bb.parse.SkipPackage("We shouldn't have multilib variants for the kernel") And netmap-modules provides lib32-netmap-modules which is handled in multilib_global.bbclass, so bitbake lib32-netmap-modules can't show the blacklist message: $ bitbake netmap-modules ERROR: Nothing PROVIDES 'netmap-modules' ERROR: netmap-modules was skipped: Recipe is blacklisted: BROKEN: <foo> ERROR: netmap-modules was skipped: We shouldn't have multilib variants for the kernel $ bitbake lib32-netmap-modules ERROR: Nothing PROVIDES 'lib32-netmap-modules'. Close matches: netmap-modules netmap-modules lib32-fbset-modes Note the different messages between netmap-modules and lib32-netmap-modules. This is because multilib.bbclass doesn't handle the "module" recipe so there is no PN called lib32-netmap-modules, therefore blacklist.bbclass can't handle it. Note, there are two "netmap-modules" which needs to be fixed later. Signed-off-by: Robert Yang <> Signed-off-by: Richard Purdie <>
Diffstat (limited to 'meta/classes/multilib.bbclass')
1 files changed, 6 insertions, 0 deletions
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass
index 401e0c2cc0..ab04597f93 100644
--- a/meta/classes/multilib.bbclass
+++ b/meta/classes/multilib.bbclass
@@ -53,6 +53,12 @@ python multilib_virtclass_handler () {
override = ":virtclass-multilib-" + variant
+ blacklist ='PNBLACKLIST','PN'))
+ if blacklist:
+ pn_new = variant + "-" +'PN')
+ if not'PNBLACKLIST', pn_new):
+'PNBLACKLIST', pn_new, blacklist)
+"MLPREFIX", variant + "-")"PN", variant + "-" +"PN", False))"OVERRIDES","OVERRIDES", False) + override)