[meta-freescale] [meta-fsl-arm][PATCH v2] fsl-dynamic-packagearch: on thumb builds, add MACHINE_SOCARCH arm feed

Otavio Salvador otavio at ossystems.com.br
Thu Mar 26 12:24:04 PDT 2015


Hello Max,

On Thu, Mar 26, 2015 at 3:55 PM, Max Krummenacher <max.oss.09 at gmail.com> wrote:
> This ensures that all MACHINE_SOCARCH feeds are part of PACKAGE_EXTRA_ARCHS.
>
> oe-core now puts packages into an arm feed dir when a recipe forces the
> ARM instruction set on a build configured to default to thumb.
> 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.
>
> In theorie, but less likely, the opposite is also true. If a recipe explicitely
> sets thumb in a build configured for arm the resulting packages end up in a
> thumb feed.
>
> 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"
>
>  classes/fsl-dynamic-packagearch.bbclass | 16 +++++++++++++++-
>  conf/machine/include/imx-base.inc       |  1 -
>  2 files changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/classes/fsl-dynamic-packagearch.bbclass b/classes/fsl-dynamic-packagearch.bbclass
> index 40eae6c..32930d0 100644
> --- a/classes/fsl-dynamic-packagearch.bbclass
> +++ b/classes/fsl-dynamic-packagearch.bbclass
> @@ -29,6 +29,7 @@ python __anonymous () {
>      machine_arch_filter = set((d.getVar("MACHINE_ARCH_FILTER", True) or "").split())
>      machine_socarch_filter = set((d.getVar("MACHINE_SOCARCH_FILTER", True) or "").split())
>      if machine_socarch_filter or machine_arch_filter:
> +        socarch = d.getVar('MACHINE_SOCARCH', True)
>          provides = set((d.getVar("PROVIDES", True) or "").split())
>          depends = set((d.getVar("DEPENDS", True) or "").split())
>          PN = d.getVar("PN", True)
> @@ -37,11 +38,24 @@ python __anonymous () {
>          if list(machine_arch_filter & (provides | depends)):
>              package_arch = d.getVar("MACHINE_ARCH", True)
>          elif list(machine_socarch_filter & (provides | depends)):
> -            package_arch = d.getVar("MACHINE_SOCARCH", True)
> +            package_arch = socarch
>              if not package_arch:
>                  bb.parse.SkipPackage("You must set MACHINE_SOCARCH 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)
> +
> +        suffix = socarch[len(d.getVar("TUNE_PKGARCH", True)):]

Could use 'ARM_THUMB_SUFFIX' no?

> +        # If TUNE_PKGARCH is set for thumb allow also arm for package extra archs and vice versa
> +        if  d.getVar("ARM_INSTRUCTION_SET", True) == "thumb":

ARMPKGSFX_THUMB will be non-empty here, no?

> +            extrasocarch = d.getVar("ARMPKGARCH", True) + \
> +                d.getVar("ARMPKGSFX_DSP", True) + d.getVar("ARMPKGSFX_EABI", True) + \
> +                d.getVar("ARMPKGSFX_ENDIAN", True) + d.getVar("ARMPKGSFX_FPU", True) + suffix
> +        else:
> +            extrasocarch = d.getVar("ARMPKGARCH", True) + \
> +                d.getVar("ARM_THUMB_SUFFIX", True) + \
> +                d.getVar("ARMPKGSFX_DSP", True) + d.getVar("ARMPKGSFX_EABI", True) + \
> +                d.getVar("ARMPKGSFX_ENDIAN", True) + d.getVar("ARMPKGSFX_FPU", True) + suffix
> +        d.appendVar("PACKAGE_EXTRA_ARCHS", " " + socarch + " " + extrasocarch)
>  }
> diff --git a/conf/machine/include/imx-base.inc b/conf/machine/include/imx-base.inc
> index bb5539c..40b6f87 100644
> --- a/conf/machine/include/imx-base.inc
> +++ b/conf/machine/include/imx-base.inc
> @@ -46,7 +46,6 @@ 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}"

mxs-base.inc seems to require same change, no?

>  MACHINE_ARCH_FILTER = "virtual/kernel"
>  MACHINE_SOCARCH_FILTER = "libfslcodec libfslvpuwrap libfslparser gst-fsl-plugins"
> --
> 1.9.3
>



-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750


More information about the meta-freescale mailing list