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