[meta-freescale] [meta-fsl-arm][PATCH v4] fsl-dynamic-packagearch: add all MACHINE_SOCARCH feeds

Max Krummenacher max.oss.09 at gmail.com
Mon Mar 30 14:49:32 PDT 2015


From: Max Krummenacher <max.oss.09 at gmail.com>

This ensures that all MACHINE_SOCARCH feeds are part of PACKAGE_EXTRA_ARCHS.

oe-core now puts packages into feed dirs dependent on the used instruction sets.
http://cgit.openembedded.org/openembedded-core/commit/?id=3e760031f91fb87c3e2f62b77a117eb41164f259

This is true also for packages in MACHINE_SOCARCH, i.e. we get in deploy/ipk for
an angstrom based build:
armv7ahf-vfp-neon-mx6qdl  armv7at2hf-vfp-neon-mx6qdl
so we must put both into PACKAGE_EXTRA_ARCHS.

TUNE_FEATURES defines if arm and/or thumb feeds are possible with the
current configuration.

Signed-off-by: Max Krummenacher <max.oss.09 at gmail.com>
---
v2:
- moved the functionality from imx-base.inc to fsl-dynamic-packagearch.bbclass
- implements the'vice versa' recipe with thumb on default arm configuration
- reads the datastore to construct the feed name rather than relying on "t2"

v3:
- removed PACKAGE_EXTRA_ARCHS from mxs-base.inc also.

v4:
- set MACHINE_SOCARCH_SUFFIX and calculate MACHINE_SOCARCH
- use TUNE_FEATURES to find if an arm and/or thumb feed has to be added to PACKAGE_EXTRA_ARCHS

Minimal Use Case to reproduce the issue:

- fsl-community-bsp setup, master
- default to thumb instruction set and add a SOCARCH package which forces arm:
local.conf:
ARM_INSTRUCTION_SET ?= "thumb"
DEFAULTTUNE_mx6 = "cortexa9thf-neon"
CORE_IMAGE_EXTRA_INSTALL += "libasound" 

- build core-image-minimal
Unpatched sources will fail in do_rootfs:
> MACHINE=imx6qsabresd bitbake core-image-minimal
WARNING: Host distribution "openSUSE-project-13.1" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |########################################################################################################################################| ETA:  00:00:00
Loaded 2084 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.27.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "openSUSE-project-13.1"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "imx6qsabresd"
DISTRO            = "poky"
DISTRO_VERSION    = "1.8+snapshot-20150327"
TUNE_FEATURES     = "arm armv7a vfp thumb neon callconvention-hard cortexa9"
TARGET_FPU        = "vfp-neon"
meta              
meta-yocto        = "(detachedfrom5c76ceb):5c76cebc24675edb3dff473fce9b67cedff615db"
meta-oe           
meta-multimedia   = "(detachedfromdf6c7b1):df6c7b1279790d27ebfd58fbdfbac89bde5782ec"
meta-fsl-arm      = "(detachedfrom115aace):115aaced72fddc23024f8838f0eeb8ad5e37d048"
meta-fsl-arm-extra = "(detachedfrom22f6672):22f6672c3ef58bf5070d0c6894a459fada66f55e"
meta-fsl-demos    = "(detachedfromdb7ca84):db7ca84b4a81167edc507b68241d78adb346268a"

NOTE: Preparing RunQueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: libasound2 not found in the base feeds (imx6qsabresd cortexa9t2hf-vfp-neon-mx6qdl cortexa9t2hf-vfp-neon cortexa9t2hf-vfp cortexa9hf-vfp-neon cortexa9hf-vfp armv7at2hf-vfp-neon armv7ahf-vfp-neon armv7at2hf-vfp armv7ahf-vfp armv6thf-vfp armv6hf-vfp armv5tehf-vfp armv5ehf-vfp armv5thf-vfp armv5hf-vfp noarch any all).
...


Analyzing the following helped in putting together the patch:
MACHINE=imx6qsabresd bitbake alsa-lib -e > libasound.txt
MACHINE=imx6qsabresd bitbake core-image-minimal -e > image.txt

 classes/fsl-dynamic-packagearch.bbclass |  9 ++++++++-
 conf/machine/include/imx-base.inc       | 19 +++++++++----------
 conf/machine/include/mxs-base.inc       |  7 +++----
 3 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/classes/fsl-dynamic-packagearch.bbclass b/classes/fsl-dynamic-packagearch.bbclass
index 40eae6c..498053f 100644
--- a/classes/fsl-dynamic-packagearch.bbclass
+++ b/classes/fsl-dynamic-packagearch.bbclass
@@ -16,7 +16,7 @@
 #
 # To use the class, specify, for example:
 #
-# MACHINE_SOCARCH_soc = "${TUNE_PKGARCH}-soc"
+# MACHINE_SOCARCH_SUFFIX_soc = "-soc"
 #
 # and the need filters, as:
 #
@@ -45,3 +45,10 @@ python __anonymous () {
             bb.debug(1, "Use '%s' as package archictecture for '%s'" % (package_arch, PN))
             d.setVar("PACKAGE_ARCH", package_arch)
 }
+
+
+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}"
+MACHINE_SOCARCH = "${@bb.utils.contains('ARM_INSTRUCTION_SET', 'thumb', '${THUMB_EXTRA_SOCARCH}', '${ARM_EXTRA_SOCARCH}', d)}"
+PACKAGE_EXTRA_ARCHS_append = " ${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_EXTRA_SOCARCH}', '', d) }"
+PACKAGE_EXTRA_ARCHS_append = " ${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${THUMB_EXTRA_SOCARCH}', '', d) }"
diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
index bb5539c..5683041 100644
--- a/conf/machine/include/imx-base.inc
+++ b/conf/machine/include/imx-base.inc
@@ -37,16 +37,15 @@ MACHINE_EXTRA_RRECOMMENDS = "kernel-modules"
 DEFAULTTUNE_mx6 ?= "cortexa9hf-neon"
 
 # Sub-architecture support
-MACHINE_SOCARCH ?= ""
-MACHINE_SOCARCH_mx3 = "${TUNE_PKGARCH}-mx3"
-MACHINE_SOCARCH_mx5 = "${TUNE_PKGARCH}-mx5"
-MACHINE_SOCARCH_mx6q = "${TUNE_PKGARCH}-mx6qdl"
-MACHINE_SOCARCH_mx6dl = "${TUNE_PKGARCH}-mx6qdl"
-MACHINE_SOCARCH_mx6sx = "${TUNE_PKGARCH}-mx6sx"
-MACHINE_SOCARCH_mx6sl = "${TUNE_PKGARCH}-mx6sl"
-MACHINE_SOCARCH_vf60 = "${TUNE_PKGARCH}-vf60"
-MACHINE_SOCARCH_vf50 = "${TUNE_PKGARCH}-vf50"
-PACKAGE_EXTRA_ARCHS_append = " ${MACHINE_SOCARCH}"
+MACHINE_SOCARCH_SUFFIX ?= ""
+MACHINE_SOCARCH_SUFFIX_mx3 = "-mx3"
+MACHINE_SOCARCH_SUFFIX_mx5 = "-mx5"
+MACHINE_SOCARCH_SUFFIX_mx6q = "-mx6qdl"
+MACHINE_SOCARCH_SUFFIX_mx6dl = "-mx6qdl"
+MACHINE_SOCARCH_SUFFIX_mx6sx = "-mx6sx"
+MACHINE_SOCARCH_SUFFIX_mx6sl = "-mx6sl"
+MACHINE_SOCARCH_SUFFIX_vf60 = "-vf60"
+MACHINE_SOCARCH_SUFFIX_vf50 = "-vf50"
 
 MACHINE_ARCH_FILTER = "virtual/kernel"
 MACHINE_SOCARCH_FILTER = "libfslcodec libfslvpuwrap libfslparser gst-fsl-plugins"
diff --git a/conf/machine/include/mxs-base.inc b/conf/machine/include/mxs-base.inc
index 0314952..9139e17 100644
--- a/conf/machine/include/mxs-base.inc
+++ b/conf/machine/include/mxs-base.inc
@@ -24,10 +24,9 @@ MACHINE_GSTREAMER_PLUGIN ?= ""
 MACHINE_GSTREAMER_PLUGIN_mx28 ?= "gst-fsl-plugin"
 
 # Sub-architecture support
-MACHINE_SOCARCH ?= ""
-MACHINE_SOCARCH_mx23 = "${TUNE_PKGARCH}-mx23"
-MACHINE_SOCARCH_mx28 = "${TUNE_PKGARCH}-mx28"
-PACKAGE_EXTRA_ARCHS_append = " ${MACHINE_SOCARCH}"
+MACHINE_SOCARCH_SUFFIX ?= ""
+MACHINE_SOCARCH_SUFFIX_mx23 = "-mx23"
+MACHINE_SOCARCH_SUFFIX_mx28 = "-mx28"
 
 MACHINE_ARCH_FILTER = "virtual/kernel"
 MACHINE_SOCARCH_FILTER = "libfslcodec libfslvpuwrap libfslparser gst-fsl-plugins"
-- 
1.8.4.5



More information about the meta-freescale mailing list