diff options
| author | Luciano Dittgen <luciano.dittgen@ossystems.com.br> | 2026-10-13 17:20:43 -0300 |
|---|---|---|
| committer | github-actions[bot] <github-actions[bot]@users.noreply.github.com> | 2026-10-15 18:16:02 +0000 |
| commit | 452dba532c30dad43ab6c537fb8ea9fa8cb8bf7c (patch) | |
| tree | 3658cd2456232fd8c7ed2a17a573fe6bc4709349 /classes/fsl-dynamic-packagearch.bbclass | |
| parent | f1a1aa2149cca83233b0a40abf0b33e6cfc0aa65 (diff) | |
| download | meta-freescale-452dba532c30dad43ab6c537fb8ea9fa8cb8bf7c.tar.gz | |
fsl-dynamic-packagearch: Add the SoC architectures to SSTATE_ARCHS
The class adds the SoC architectures to PACKAGE_EXTRA_ARCHS from an
anonymous function, so only within a recipe: the configuration's
SSTATE_ARCHS does not list them.
OE-core prunes, after parsing, the sysroot manifests of recipes no
longer built for an architecture, but only for the architectures in
the configuration's SSTATE_ARCHS. A recipe leaving a SoC architecture
in an existing build directory therefore keeps its old manifest, and
the recipe sysroots of SoC architecture recipes, which search the SoC
architecture before allarch and the tune ones, still take the old
output. For example, after wayland-protocols moves from the SoC
architecture to allarch, recipes keep getting the old patched copy.
Add the SoC architectures, including the ARM/Thumb and multilib ones
the anonymous function adds, to SSTATE_ARCHS. Within a recipe they are
already in PACKAGE_EXTRA_ARCHS, so nothing is added there.
Signed-off-by: Luciano Dittgen <luciano.dittgen@ossystems.com.br>
(cherry picked from commit 33263562d129055ff93c5eed6b9d53fc53783a90)
Diffstat (limited to 'classes/fsl-dynamic-packagearch.bbclass')
| -rw-r--r-- | classes/fsl-dynamic-packagearch.bbclass | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/classes/fsl-dynamic-packagearch.bbclass b/classes/fsl-dynamic-packagearch.bbclass index 228dc005f..f16c1bfdb 100644 --- a/classes/fsl-dynamic-packagearch.bbclass +++ b/classes/fsl-dynamic-packagearch.bbclass | |||
| @@ -82,3 +82,24 @@ MACHINE_SOCARCH = "${TUNE_PKGARCH}${MACHINE_SOCARCH_SUFFIX}" | |||
| 82 | 82 | ||
| 83 | ARM_EXTRA_SOCARCH = "${ARMPKGARCH}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}" | 83 | ARM_EXTRA_SOCARCH = "${ARMPKGARCH}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}" |
| 84 | THUMB_EXTRA_SOCARCH = "${ARMPKGARCH}${ARM_THUMB_SUFFIX}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}" | 84 | THUMB_EXTRA_SOCARCH = "${ARMPKGARCH}${ARM_THUMB_SUFFIX}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}" |
| 85 | |||
| 86 | # The SoC architectures are added per recipe, so list them here too: OE-core | ||
| 87 | # only removes stale sysroot manifests for the architectures in SSTATE_ARCHS. | ||
| 88 | SSTATE_ARCHS:append = " ${@fsl_dynamic_packagearch_sstate_archs(d)}" | ||
| 89 | |||
| 90 | def fsl_dynamic_packagearch_sstate_archs(d): | ||
| 91 | arch_suffix = d.getVar("MACHINE_SOCARCH_SUFFIX") or "" | ||
| 92 | archs = [d.getVar("MACHINE_SOCARCH")] | ||
| 93 | |||
| 94 | for variant in (d.getVar("MULTILIB_VARIANTS") or "").split(): | ||
| 95 | defaulttune = d.getVar("DEFAULTTUNE:virtclass-multilib-" + variant) | ||
| 96 | if defaulttune: | ||
| 97 | for arch in (d.getVar("PACKAGE_EXTRA_ARCHS:tune-" + defaulttune) or "").split(): | ||
| 98 | archs.append(arch + arch_suffix) | ||
| 99 | |||
| 100 | if d.getVar("TUNE_ARCH") == "arm": | ||
| 101 | archs += [d.getVar("ARM_EXTRA_SOCARCH"), d.getVar("THUMB_EXTRA_SOCARCH")] | ||
| 102 | |||
| 103 | # Within a recipe the anonymous function has already added them | ||
| 104 | cur_package_archs = (d.getVar("PACKAGE_ARCHS") or "").split() | ||
| 105 | return " ".join(arch for arch in dict.fromkeys(archs) if arch and arch not in cur_package_archs) | ||
