diff options
Diffstat (limited to 'meta/classes/multilib.bbclass')
-rw-r--r-- | meta/classes/multilib.bbclass | 87 |
1 files changed, 44 insertions, 43 deletions
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass index b6c09969b1..a4151658a6 100644 --- a/meta/classes/multilib.bbclass +++ b/meta/classes/multilib.bbclass | |||
@@ -5,30 +5,30 @@ | |||
5 | # | 5 | # |
6 | 6 | ||
7 | python multilib_virtclass_handler () { | 7 | python multilib_virtclass_handler () { |
8 | cls = e.data.getVar("BBEXTENDCURR") | 8 | cls = d.getVar("BBEXTENDCURR") |
9 | variant = e.data.getVar("BBEXTENDVARIANT") | 9 | variant = d.getVar("BBEXTENDVARIANT") |
10 | if cls != "multilib" or not variant: | 10 | if cls != "multilib" or not variant: |
11 | return | 11 | return |
12 | 12 | ||
13 | localdata = bb.data.createCopy(e.data) | 13 | localdata = bb.data.createCopy(d) |
14 | localdata.delVar('TMPDIR') | 14 | localdata.delVar('TMPDIR') |
15 | e.data.setVar('STAGING_KERNEL_DIR', localdata.getVar('STAGING_KERNEL_DIR')) | 15 | d.setVar('STAGING_KERNEL_DIR', localdata.getVar('STAGING_KERNEL_DIR')) |
16 | 16 | ||
17 | # There should only be one kernel in multilib configs | 17 | # There should only be one kernel in multilib configs |
18 | # We also skip multilib setup for module packages. | 18 | # We also skip multilib setup for module packages. |
19 | provides = (e.data.getVar("PROVIDES") or "").split() | 19 | provides = (d.getVar("PROVIDES") or "").split() |
20 | non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split() | 20 | non_ml_recipes = d.getVar('NON_MULTILIB_RECIPES').split() |
21 | bpn = e.data.getVar("BPN") | 21 | bpn = d.getVar("BPN") |
22 | if "virtual/kernel" in provides or \ | 22 | if ("virtual/kernel" in provides |
23 | bb.data.inherits_class('module-base', e.data) or \ | 23 | or bb.data.inherits_class('module-base', d) |
24 | bpn in non_ml_recipes: | 24 | or bpn in non_ml_recipes): |
25 | raise bb.parse.SkipRecipe("We shouldn't have multilib variants for %s" % bpn) | 25 | raise bb.parse.SkipRecipe("We shouldn't have multilib variants for %s" % bpn) |
26 | 26 | ||
27 | save_var_name=e.data.getVar("MULTILIB_SAVE_VARNAME") or "" | 27 | save_var_name = d.getVar("MULTILIB_SAVE_VARNAME") or "" |
28 | for name in save_var_name.split(): | 28 | for name in save_var_name.split(): |
29 | val=e.data.getVar(name) | 29 | val = d.getVar(name) |
30 | if val: | 30 | if val: |
31 | e.data.setVar(name + "_MULTILIB_ORIGINAL", val) | 31 | d.setVar(name + "_MULTILIB_ORIGINAL", val) |
32 | 32 | ||
33 | # We nearly don't need this but dependencies on NON_MULTILIB_RECIPES don't work without it | 33 | # We nearly don't need this but dependencies on NON_MULTILIB_RECIPES don't work without it |
34 | d.setVar("SSTATE_ARCHS_TUNEPKG", "${@all_multilib_tune_values(d, 'TUNE_PKGARCH')}") | 34 | d.setVar("SSTATE_ARCHS_TUNEPKG", "${@all_multilib_tune_values(d, 'TUNE_PKGARCH')}") |
@@ -36,66 +36,67 @@ python multilib_virtclass_handler () { | |||
36 | overrides = e.data.getVar("OVERRIDES", False) | 36 | overrides = e.data.getVar("OVERRIDES", False) |
37 | pn = e.data.getVar("PN", False) | 37 | pn = e.data.getVar("PN", False) |
38 | overrides = overrides.replace("pn-${PN}", "pn-${PN}:pn-" + pn) | 38 | overrides = overrides.replace("pn-${PN}", "pn-${PN}:pn-" + pn) |
39 | e.data.setVar("OVERRIDES", overrides) | 39 | d.setVar("OVERRIDES", overrides) |
40 | 40 | ||
41 | if bb.data.inherits_class('image', e.data): | 41 | if bb.data.inherits_class('image', d): |
42 | e.data.setVar("MLPREFIX", variant + "-") | 42 | d.setVar("MLPREFIX", variant + "-") |
43 | e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False)) | 43 | d.setVar("PN", variant + "-" + d.getVar("PN", False)) |
44 | e.data.setVar('SDKTARGETSYSROOT', e.data.getVar('SDKTARGETSYSROOT')) | 44 | d.setVar('SDKTARGETSYSROOT', d.getVar('SDKTARGETSYSROOT')) |
45 | override = ":virtclass-multilib-" + variant | 45 | override = ":virtclass-multilib-" + variant |
46 | e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override) | 46 | d.setVar("OVERRIDES", d.getVar("OVERRIDES", False) + override) |
47 | target_vendor = e.data.getVar("TARGET_VENDOR:" + "virtclass-multilib-" + variant, False) | 47 | target_vendor = d.getVar("TARGET_VENDOR:" + "virtclass-multilib-" + variant, False) |
48 | if target_vendor: | 48 | if target_vendor: |
49 | e.data.setVar("TARGET_VENDOR", target_vendor) | 49 | d.setVar("TARGET_VENDOR", target_vendor) |
50 | return | 50 | return |
51 | 51 | ||
52 | if bb.data.inherits_class('cross-canadian', e.data): | 52 | if bb.data.inherits_class('cross-canadian', d): |
53 | # Multilib cross-candian should use the same nativesdk sysroot without MLPREFIX | 53 | # Multilib cross-candian should use the same nativesdk sysroot without MLPREFIX |
54 | e.data.setVar("RECIPE_SYSROOT", "${WORKDIR}/recipe-sysroot") | 54 | d.setVar("RECIPE_SYSROOT", "${WORKDIR}/recipe-sysroot") |
55 | e.data.setVar("STAGING_DIR_TARGET", "${WORKDIR}/recipe-sysroot") | 55 | d.setVar("STAGING_DIR_TARGET", "${WORKDIR}/recipe-sysroot") |
56 | e.data.setVar("STAGING_DIR_HOST", "${WORKDIR}/recipe-sysroot") | 56 | d.setVar("STAGING_DIR_HOST", "${WORKDIR}/recipe-sysroot") |
57 | e.data.setVar("RECIPE_SYSROOT_MANIFEST_SUBDIR", "nativesdk-" + variant) | 57 | d.setVar("RECIPE_SYSROOT_MANIFEST_SUBDIR", "nativesdk-" + variant) |
58 | e.data.setVar("MLPREFIX", variant + "-") | 58 | d.setVar("MLPREFIX", variant + "-") |
59 | override = ":virtclass-multilib-" + variant | 59 | override = ":virtclass-multilib-" + variant |
60 | e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override) | 60 | d.setVar("OVERRIDES", d.getVar("OVERRIDES", False) + override) |
61 | return | 61 | return |
62 | 62 | ||
63 | if bb.data.inherits_class('native', e.data): | 63 | if bb.data.inherits_class('native', d): |
64 | raise bb.parse.SkipRecipe("We can't extend native recipes") | 64 | raise bb.parse.SkipRecipe("We can't extend native recipes") |
65 | 65 | ||
66 | if bb.data.inherits_class('nativesdk', e.data) or bb.data.inherits_class('crosssdk', e.data): | 66 | if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('crosssdk', d): |
67 | raise bb.parse.SkipRecipe("We can't extend nativesdk recipes") | 67 | raise bb.parse.SkipRecipe("We can't extend nativesdk recipes") |
68 | 68 | ||
69 | if bb.data.inherits_class('allarch', e.data) and not d.getVar('MULTILIB_VARIANTS') \ | 69 | if (bb.data.inherits_class('allarch', d) |
70 | and not bb.data.inherits_class('packagegroup', e.data): | 70 | and not d.getVar('MULTILIB_VARIANTS') |
71 | and not bb.data.inherits_class('packagegroup', d)): | ||
71 | raise bb.parse.SkipRecipe("Don't extend allarch recipes which are not packagegroups") | 72 | raise bb.parse.SkipRecipe("Don't extend allarch recipes which are not packagegroups") |
72 | 73 | ||
73 | # Expand this since this won't work correctly once we set a multilib into place | 74 | # Expand this since this won't work correctly once we set a multilib into place |
74 | e.data.setVar("ALL_MULTILIB_PACKAGE_ARCHS", e.data.getVar("ALL_MULTILIB_PACKAGE_ARCHS")) | 75 | d.setVar("ALL_MULTILIB_PACKAGE_ARCHS", d.getVar("ALL_MULTILIB_PACKAGE_ARCHS")) |
75 | 76 | ||
76 | override = ":virtclass-multilib-" + variant | 77 | override = ":virtclass-multilib-" + variant |
77 | 78 | ||
78 | skip_msg = e.data.getVarFlag('SKIP_RECIPE', e.data.getVar('PN')) | 79 | skip_msg = d.getVarFlag('SKIP_RECIPE', d.getVar('PN')) |
79 | if skip_msg: | 80 | if skip_msg: |
80 | pn_new = variant + "-" + e.data.getVar('PN') | 81 | pn_new = variant + "-" + d.getVar('PN') |
81 | if not e.data.getVarFlag('SKIP_RECIPE', pn_new): | 82 | if not d.getVarFlag('SKIP_RECIPE', pn_new): |
82 | e.data.setVarFlag('SKIP_RECIPE', pn_new, skip_msg) | 83 | d.setVarFlag('SKIP_RECIPE', pn_new, skip_msg) |
83 | 84 | ||
84 | e.data.setVar("MLPREFIX", variant + "-") | 85 | d.setVar("MLPREFIX", variant + "-") |
85 | e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False)) | 86 | d.setVar("PN", variant + "-" + d.getVar("PN", False)) |
86 | e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override) | 87 | d.setVar("OVERRIDES", d.getVar("OVERRIDES", False) + override) |
87 | 88 | ||
88 | # Expand INCOMPATIBLE_LICENSE_EXCEPTIONS with multilib prefix | 89 | # Expand INCOMPATIBLE_LICENSE_EXCEPTIONS with multilib prefix |
89 | pkgs = e.data.getVar("INCOMPATIBLE_LICENSE_EXCEPTIONS") | 90 | pkgs = d.getVar("INCOMPATIBLE_LICENSE_EXCEPTIONS") |
90 | if pkgs: | 91 | if pkgs: |
91 | for pkg in pkgs.split(): | 92 | for pkg in pkgs.split(): |
92 | pkgs += " " + variant + "-" + pkg | 93 | pkgs += " " + variant + "-" + pkg |
93 | e.data.setVar("INCOMPATIBLE_LICENSE_EXCEPTIONS", pkgs) | 94 | d.setVar("INCOMPATIBLE_LICENSE_EXCEPTIONS", pkgs) |
94 | 95 | ||
95 | # DEFAULTTUNE can change TARGET_ARCH override so expand this now before update_data | 96 | # DEFAULTTUNE can change TARGET_ARCH override so expand this now before update_data |
96 | newtune = e.data.getVar("DEFAULTTUNE:" + "virtclass-multilib-" + variant, False) | 97 | newtune = d.getVar("DEFAULTTUNE:" + "virtclass-multilib-" + variant, False) |
97 | if newtune: | 98 | if newtune: |
98 | e.data.setVar("DEFAULTTUNE", newtune) | 99 | d.setVar("DEFAULTTUNE", newtune) |
99 | } | 100 | } |
100 | 101 | ||
101 | addhandler multilib_virtclass_handler | 102 | addhandler multilib_virtclass_handler |