base.bbclass: Fix incorrect setting of multilib PREFERRED_PROVIDER_virtual_pkg

PREFERRED_PROVIDER_virtual_pkg has been incorrectly set with more
than one multilib prefixes.  For example, if we have two alternative
multilibs lib64 and lib32, PREFERRED_PROVIDER_virtual_pkg will be
set to lib32-lib64-pkg or lib64-lib32-pkg, depending on which
multilib shows up first in the list.

(From OE-Core master rev: 17a432dc059e24ba10d4baec988828c0025a5e46)

(From OE-Core rev: e5d8411869a2a018d0c8ab9d0e888027ac4208d5)

Signed-off-by: Lei Liu <lei.liu2@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Lei Liu 2013-11-21 00:54:00 -06:00 committed by Richard Purdie
parent 6fe4b4dc95
commit 532660dcfe
1 changed files with 3 additions and 3 deletions

View File

@ -210,7 +210,7 @@ def preferred_ml_updates(d):
virt = "virtual/"
for p in prefixes:
if pkg != "kernel":
val = p + "-" + val
newval = p + "-" + val
# implement variable keys
localdata = bb.data.createCopy(d)
@ -219,12 +219,12 @@ def preferred_ml_updates(d):
bb.data.update_data(localdata)
newname = localdata.expand(prov)
if newname != prov and not d.getVar(newname, False):
d.setVar(newname, localdata.expand(val))
d.setVar(newname, localdata.expand(newval))
# implement alternative multilib name
newname = localdata.expand("PREFERRED_PROVIDER_" + virt + p + "-" + pkg)
if not d.getVar(newname, False):
d.setVar(newname, val)
d.setVar(newname, newval)
# Avoid future variable key expansion
provexp = d.expand(prov)
if prov != provexp and d.getVar(prov, False):