[meta-freescale] [meta-fsl-arm][PATCH] fsl-dynamic-packagearch.bbclass: Fix support for empty MACHINE_SOCARCH_SUFFIX

Otavio Salvador otavio at ossystems.com.br
Thu Apr 2 13:07:50 PDT 2015


When MACHINE_SOCARCH_SUFFIX is empty a duplicated architecture will be
included in PACKAGE_ARCHS. The expected behaviour is to not include
duplicated values and raise an error in case a MACHINE_SOCARCH package
tries to be build.

Change-Id: I98d936409554e4e7725c8af6c0a0a0344ddec751
Reported-by: Lauren Post <lauren.post at freescale.com>
Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
---
 classes/fsl-dynamic-packagearch.bbclass | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/classes/fsl-dynamic-packagearch.bbclass b/classes/fsl-dynamic-packagearch.bbclass
index 3e1faf4..5c79c58 100644
--- a/classes/fsl-dynamic-packagearch.bbclass
+++ b/classes/fsl-dynamic-packagearch.bbclass
@@ -23,7 +23,7 @@
 # MACHINE_ARCH_FILTER = "virtual/kernel"
 # MACHINE_SOCARCH_FILTER_soc = "virtual/libgles1 ... virtual/libgl"
 #
-# Copyright 2013 (C) O.S. Systems Software LTDA.
+# Copyright 2013-2015 (C) O.S. Systems Software LTDA.
 
 python __anonymous () {
     machine_arch_filter = set((d.getVar("MACHINE_ARCH_FILTER", True) or "").split())
@@ -41,15 +41,25 @@ python __anonymous () {
             if not package_arch:
                 bb.parse.SkipPackage("You must set MACHINE_SOCARCH as MACHINE_SOCARCH_FILTER is set for this SoC.")
 
+            machine_socarch_suffix = d.getVar("MACHINE_SOCARCH_SUFFIX", True)
+            if not machine_socarch_suffix:
+                bb.parse.SkipPackage("You must set MACHINE_SOCARCH_SUFFIX as MACHINE_SOCARCH_FILTER is set for this SoC.")
+
         if package_arch:
             bb.debug(1, "Use '%s' as package archictecture for '%s'" % (package_arch, PN))
             d.setVar("PACKAGE_ARCH", package_arch)
+
+    cur_package_archs = (d.getVar("PACKAGE_ARCHS", True) or "").split()
+    arch_extra_socarch = (d.getVar("ARM_EXTRA_SOCARCH", True) or "")
+    thumb_extra_socarch = (d.getVar("THUMB_EXTRA_SOCARCH", True) or "")
+    if not arch_extra_socarch in cur_package_archs:
+        d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % arch_extra_socarch)
+
+    if not thumb_extra_socarch in cur_package_archs:
+        d.appendVar("PACKAGE_EXTRA_ARCHS", " %s" % thumb_extra_socarch)
 }
 
 ARM_EXTRA_SOCARCH = "${ARMPKGARCH}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}"
 THUMB_EXTRA_SOCARCH = "${ARMPKGARCH}${ARM_THUMB_SUFFIX}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}${MACHINE_SOCARCH_SUFFIX}"
 
-PACKAGE_EXTRA_ARCHS_append = " ${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_EXTRA_SOCARCH}', '', d) } \
-                               ${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${THUMB_EXTRA_SOCARCH}', '', d) }"
-
 MACHINE_SOCARCH = "${@bb.utils.contains('ARM_INSTRUCTION_SET', 'thumb', '${THUMB_EXTRA_SOCARCH}', '${ARM_EXTRA_SOCARCH}', d)}"
-- 
2.1.4



More information about the meta-freescale mailing list