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:
parent
6fe4b4dc95
commit
532660dcfe
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue