summaryrefslogtreecommitdiffstats
path: root/classes/fsl-dynamic-packagearch.bbclass
diff options
context:
space:
mode:
authorLuciano Dittgen <luciano.dittgen@ossystems.com.br>2026-10-13 17:20:43 -0300
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2026-10-15 18:16:02 +0000
commit452dba532c30dad43ab6c537fb8ea9fa8cb8bf7c (patch)
tree3658cd2456232fd8c7ed2a17a573fe6bc4709349 /classes/fsl-dynamic-packagearch.bbclass
parentf1a1aa2149cca83233b0a40abf0b33e6cfc0aa65 (diff)
downloadmeta-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.bbclass21
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
83ARM_EXTRA_SOCARCH = "${ARMPKGARCH}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}" 83ARM_EXTRA_SOCARCH = "${ARMPKGARCH}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}"
84THUMB_EXTRA_SOCARCH = "${ARMPKGARCH}${ARM_THUMB_SUFFIX}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}" 84THUMB_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.
88SSTATE_ARCHS:append = " ${@fsl_dynamic_packagearch_sstate_archs(d)}"
89
90def 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)