summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/multilib_global.bbclass14
1 files changed, 10 insertions, 4 deletions
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass
index 11ac5b0457..98f65c8aae 100644
--- a/meta/classes/multilib_global.bbclass
+++ b/meta/classes/multilib_global.bbclass
@@ -172,21 +172,27 @@ python multilib_virtclass_handler_global () {
172 if bb.data.inherits_class('kernel', e.data) or \ 172 if bb.data.inherits_class('kernel', e.data) or \
173 bb.data.inherits_class('module-base', e.data) or \ 173 bb.data.inherits_class('module-base', e.data) or \
174 d.getVar('BPN') in non_ml_recipes: 174 d.getVar('BPN') in non_ml_recipes:
175
176 # We need to avoid expanding KERNEL_VERSION which we can do by deleting it
177 # from a copy of the datastore
178 localdata = bb.data.createCopy(d)
179 localdata.delVar("KERNEL_VERSION")
180
175 variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split() 181 variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split()
176 182
177 import oe.classextend 183 import oe.classextend
178 clsextends = [] 184 clsextends = []
179 for variant in variants: 185 for variant in variants:
180 clsextends.append(oe.classextend.ClassExtender(variant, e.data)) 186 clsextends.append(oe.classextend.ClassExtender(variant, localdata))
181 187
182 # Process PROVIDES 188 # Process PROVIDES
183 origprovs = provs = e.data.getVar("PROVIDES") or "" 189 origprovs = provs = localdata.getVar("PROVIDES") or ""
184 for clsextend in clsextends: 190 for clsextend in clsextends:
185 provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False) 191 provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False)
186 e.data.setVar("PROVIDES", provs) 192 e.data.setVar("PROVIDES", provs)
187 193
188 # Process RPROVIDES 194 # Process RPROVIDES
189 origrprovs = rprovs = e.data.getVar("RPROVIDES") or "" 195 origrprovs = rprovs = localdata.getVar("RPROVIDES") or ""
190 for clsextend in clsextends: 196 for clsextend in clsextends:
191 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False) 197 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False)
192 if rprovs.strip(): 198 if rprovs.strip():
@@ -194,7 +200,7 @@ python multilib_virtclass_handler_global () {
194 200
195 # Process RPROVIDES_${PN}... 201 # Process RPROVIDES_${PN}...
196 for pkg in (e.data.getVar("PACKAGES") or "").split(): 202 for pkg in (e.data.getVar("PACKAGES") or "").split():
197 origrprovs = rprovs = e.data.getVar("RPROVIDES_%s" % pkg) or "" 203 origrprovs = rprovs = localdata.getVar("RPROVIDES_%s" % pkg) or ""
198 for clsextend in clsextends: 204 for clsextend in clsextends:
199 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES_%s" % pkg, setvar=False) 205 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES_%s" % pkg, setvar=False)
200 rprovs = rprovs + " " + clsextend.extname + "-" + pkg 206 rprovs = rprovs + " " + clsextend.extname + "-" + pkg