Bug 6408

Summary: EXCLUDE_FROM_WORLD_pn-BPN doesn't work when multilib
Product: [Build System, Metadata & Runtime] BitBake Reporter: Robert Yang <liezhi.yang>
Component: bitbakeAssignee: Richard Purdie <richard.purdie>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: Low CC: liezhi.yang, mark.hatle, poky.bs.watcher, poky.watcher
Version: 1.7   
Target Milestone: 1.7   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Robert Yang 2014-06-06 09:27:37 UTC
For example if we add these to local.conf:

MACHINE ?= "qemux86-64"

require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

EXCLUDE_FROM_WORLD_pn-bluez4 = "1" 

And remove EXCLUDE_FROM_WORLD = "1" from meta/recipes-connectivity/bluez/bluez4.inc, then:

bitbake -g world

We can see that both bluez4 and lib32-bluez4 are in pn-buildlist, and they will get built, the bluez4 should not since we have set EXCLUDE_FROM_WORLD_pn-bluez4 = "1".

Note, This works well for package-index.
Comment 1 Richard Purdie 2014-09-24 17:31:38 UTC
I looked into this and I think that things actually work as they should. Setting "EXCLUDE_FROM_WORLD" does not guarantee that something will not end up in a world build, it just means that when building the list of recipes to build as part of world, these items are excluded. So for example if you do EXCLUDE_FROM_WORLD = "a" and b has DEPENDS = "a" and b is in world, a will get built.

So something likely depends on bluez4 and that is why you see it being built.

To test this, I tried something which things don't depend on, I picked bind.

EXCLUDE_FROM_WORLD_pn-bind = "1"

removed bind from "bitbake world -g" and then:

EXCLUDE_FROM_WORLD_pn-lib32-bind = "1"

removed lib32-bind too, just as expected. Please reopen with more specific details if you still believe there is an issue here.