summaryrefslogtreecommitdiffstats
path: root/meta/classes/multilib_global.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/multilib_global.bbclass')
-rw-r--r--meta/classes/multilib_global.bbclass34
1 files changed, 21 insertions, 13 deletions
diff --git a/meta/classes/multilib_global.bbclass b/meta/classes/multilib_global.bbclass
index 6095d278dd..c1d6de100c 100644
--- a/meta/classes/multilib_global.bbclass
+++ b/meta/classes/multilib_global.bbclass
@@ -155,6 +155,12 @@ def preferred_ml_updates(d):
155 extramp.append(translate_provide(pref, p)) 155 extramp.append(translate_provide(pref, p))
156 d.setVar("BB_MULTI_PROVIDER_ALLOWED", " ".join(mp + extramp)) 156 d.setVar("BB_MULTI_PROVIDER_ALLOWED", " ".join(mp + extramp))
157 157
158 virtprovs = d.getVar("BB_RECIPE_VIRTUAL_PROVIDERS").split()
159 for p in virtprovs.copy():
160 for pref in prefixes:
161 virtprovs.append(translate_provide(pref, p))
162 d.setVar("BB_RECIPE_VIRTUAL_PROVIDERS", " ".join(virtprovs))
163
158 abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split() 164 abisafe = (d.getVar("SIGGEN_EXCLUDERECIPES_ABISAFE") or "").split()
159 extras = [] 165 extras = []
160 for p in prefixes: 166 for p in prefixes:
@@ -171,24 +177,26 @@ def preferred_ml_updates(d):
171 d.appendVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", " " + " ".join(extras)) 177 d.appendVar("SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS", " " + " ".join(extras))
172 178
173python multilib_virtclass_handler_vendor () { 179python multilib_virtclass_handler_vendor () {
174 if isinstance(e, bb.event.ConfigParsed): 180 for v in d.getVar("MULTILIB_VARIANTS").split():
175 for v in e.data.getVar("MULTILIB_VARIANTS").split(): 181 if d.getVar("TARGET_VENDOR:virtclass-multilib-" + v, False) is None:
176 if e.data.getVar("TARGET_VENDOR:virtclass-multilib-" + v, False) is None: 182 d.setVar("TARGET_VENDOR:virtclass-multilib-" + v, d.getVar("TARGET_VENDOR", False) + "ml" + v)
177 e.data.setVar("TARGET_VENDOR:virtclass-multilib-" + v, e.data.getVar("TARGET_VENDOR", False) + "ml" + v) 183 preferred_ml_updates(d)
178 preferred_ml_updates(e.data)
179} 184}
180addhandler multilib_virtclass_handler_vendor 185addhandler multilib_virtclass_handler_vendor
181multilib_virtclass_handler_vendor[eventmask] = "bb.event.ConfigParsed" 186multilib_virtclass_handler_vendor[eventmask] = "bb.event.ConfigParsed"
182 187
183python multilib_virtclass_handler_global () { 188python multilib_virtclass_handler_global () {
184 variant = e.data.getVar("BBEXTENDVARIANT") 189 variant = d.getVar("BBEXTENDVARIANT")
185 if variant: 190 if variant:
186 return 191 return
187 192
193 if bb.data.inherits_class('native', d):
194 return
195
188 non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split() 196 non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split()
189 197
190 if bb.data.inherits_class('kernel', e.data) or \ 198 if bb.data.inherits_class('kernel', d) or \
191 bb.data.inherits_class('module-base', e.data) or \ 199 bb.data.inherits_class('module-base', d) or \
192 d.getVar('BPN') in non_ml_recipes: 200 d.getVar('BPN') in non_ml_recipes:
193 201
194 # We need to avoid expanding KERNEL_VERSION which we can do by deleting it 202 # We need to avoid expanding KERNEL_VERSION which we can do by deleting it
@@ -197,7 +205,7 @@ python multilib_virtclass_handler_global () {
197 localdata.delVar("KERNEL_VERSION") 205 localdata.delVar("KERNEL_VERSION")
198 localdata.delVar("KERNEL_VERSION_PKG_NAME") 206 localdata.delVar("KERNEL_VERSION_PKG_NAME")
199 207
200 variants = (e.data.getVar("MULTILIB_VARIANTS") or "").split() 208 variants = (d.getVar("MULTILIB_VARIANTS") or "").split()
201 209
202 import oe.classextend 210 import oe.classextend
203 clsextends = [] 211 clsextends = []
@@ -208,22 +216,22 @@ python multilib_virtclass_handler_global () {
208 origprovs = provs = localdata.getVar("PROVIDES") or "" 216 origprovs = provs = localdata.getVar("PROVIDES") or ""
209 for clsextend in clsextends: 217 for clsextend in clsextends:
210 provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False) 218 provs = provs + " " + clsextend.map_variable("PROVIDES", setvar=False)
211 e.data.setVar("PROVIDES", provs) 219 d.setVar("PROVIDES", provs)
212 220
213 # Process RPROVIDES 221 # Process RPROVIDES
214 origrprovs = rprovs = localdata.getVar("RPROVIDES") or "" 222 origrprovs = rprovs = localdata.getVar("RPROVIDES") or ""
215 for clsextend in clsextends: 223 for clsextend in clsextends:
216 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False) 224 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES", setvar=False)
217 if rprovs.strip(): 225 if rprovs.strip():
218 e.data.setVar("RPROVIDES", rprovs) 226 d.setVar("RPROVIDES", rprovs)
219 227
220 # Process RPROVIDES:${PN}... 228 # Process RPROVIDES:${PN}...
221 for pkg in (e.data.getVar("PACKAGES") or "").split(): 229 for pkg in (d.getVar("PACKAGES") or "").split():
222 origrprovs = rprovs = localdata.getVar("RPROVIDES:%s" % pkg) or "" 230 origrprovs = rprovs = localdata.getVar("RPROVIDES:%s" % pkg) or ""
223 for clsextend in clsextends: 231 for clsextend in clsextends:
224 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES:%s" % pkg, setvar=False) 232 rprovs = rprovs + " " + clsextend.map_variable("RPROVIDES:%s" % pkg, setvar=False)
225 rprovs = rprovs + " " + clsextend.extname + "-" + pkg 233 rprovs = rprovs + " " + clsextend.extname + "-" + pkg
226 e.data.setVar("RPROVIDES:%s" % pkg, rprovs) 234 d.setVar("RPROVIDES:%s" % pkg, rprovs)
227} 235}
228 236
229addhandler multilib_virtclass_handler_global 237addhandler multilib_virtclass_handler_global