Martin Jansa 1739597814 dummy-sdk-package.inc: work around MACHINE_ARCH SSTATE_MANMACH
* since following change:
  allarch: only enable allarch when multilib is	not used
  the sstate-diff-machines.sh reports different signature for target-sdk-provides-dummy
  when multilib is enabled

 === Comparing signatures for task do_populate_sysroot.sigdata between qemux86 and qemux86copy ===
ERROR: lib32-target-sdk-provides-dummy different signature for task do_populate_sysroot.sigdata between qemux86 and qemux86copy
basehash changed from b0a44b2c7003b6b4aa3a023d9cb9fe82 to 3a59fa25ddb6a95aff079d477ebf3457
Variable SSTATE_MANMACH value changed from 'qemux86' to 'qemux86copy'

ERROR: target-sdk-provides-dummy different signature for task do_populate_sysroot.sigdata between qemux86 and qemux86copy
basehash changed from 9e44f1deb3d15886ee96db1a3332764c to 6b417d08a5113c9b06d13b3681f5ab4f
Variable SSTATE_MANMACH value changed from 'qemux86' to 'qemux86copy'

It's using:
inherit allarch

python() {
    # Put the package somewhere separate to ensure it's never used except
    # when we want it
    # (note that we have to do this in anonymous python here to avoid
    # allarch.bbclass disabling itself)
    d.setVar('PACKAGE_ARCH', '${DUMMYARCH}')
}

and DUMMYARCH = "sdk-provides-dummy-target"

The difference as shown with bitbake -e before and after reverting allarch.bbclass commit:

before revert:
   $SSTATE_MANMACH [2 operations]
     set? oe-core/meta/classes/sstate.bbclass:61
       "${SSTATE_PKGARCH}"
     set sstate.bbclass:100 [__anon_111_oe_core_meta_classes_sstate_bbclass]
       "machineName"
   pre-expansion value:
     "machineName"
SSTATE_MANMACH="machineName"

   $SSTATE_PKGARCH
     set oe-core/meta/classes/sstate.bbclass:11
       "${PACKAGE_ARCH}"
SSTATE_PKGARCH="sdk-provides-dummy-target"

   $PACKAGE_ARCH [3 operations]
     set oe-core/meta/conf/bitbake.conf:150
       [_defaultval] "${TUNE_PKGARCH}"
     set oe-core/meta/conf/documentation.conf:304
       [doc] "The architecture of the resulting package or packages."
     set dummy-sdk-package.inc:12 [__anon_12_oe_core_meta_recipes_core_meta_dummy_sdk_package_inc]
       "${DUMMYARCH}"
   pre-expansion value:
     "${DUMMYARCH}"
PACKAGE_ARCH="sdk-provides-dummy-target"

after revert:
   $SSTATE_MANMACH
     set? oe-core/meta/classes/sstate.bbclass:61
       "${SSTATE_PKGARCH}"
SSTATE_MANMACH="allarch"

   $SSTATE_PKGARCH [2 operations]
     set oe-core/meta/classes/sstate.bbclass:11
       "${PACKAGE_ARCH}"
     set sstate.bbclass:98 [__anon_111__oe_core_meta_classes_sstate_bbclass]
       "allarch"
   pre-expansion value:
     "allarch"
SSTATE_PKGARCH="allarch"

   $PACKAGE_ARCH [4 operations]
     set oe-core/meta/conf/bitbake.conf:150
       [_defaultval] "${TUNE_PKGARCH}"
     set oe-core/meta/conf/documentation.conf:304
       [doc] "The architecture of the resulting package or packages."
     set oe-core/meta/classes/allarch.bbclass:5
       "all"
     set dummy-sdk-package.inc:12 [__anon_12_oe_core_meta_recipes_core_meta_dummy_sdk_package_inc]
       "${DUMMYARCH}"
   pre-expansion value:
     "${DUMMYARCH}"
PACKAGE_ARCH="sdk-provides-dummy-target"

the relevant part of the anonymous python in sstate.bbclass:

    elif bb.data.inherits_class('allarch', d) and d.getVar("PACKAGE_ARCH") == "all":
        d.setVar('SSTATE_PKGARCH', "allarch")
    else:
        d.setVar('SSTATE_MANMACH', d.expand("${PACKAGE_ARCH}"))

So with allarch.bbclass change, the PACKAGE_ARCH isn't set to "all" because multilib is enabled,
but that causes sstate.bbclass to set SSTATE_MANMACH to MACHINE instead of SSTATE_PKGARCH
allarch, where it got MACHINE is still a bit of mystery to me.

(From OE-Core rev: f25cc92cfd692fd23f21fd736243b81f116fd37a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-20 05:41:32 -07:00
2014-01-02 12:58:54 +00:00
2018-02-24 10:31:45 +00:00

QEMU Emulation Targets
======================

To simplify development, the build system supports building images to
work with the QEMU emulator in system emulation mode. Several architectures
are currently supported in 32 and 64 bit variants:

  * ARM (qemuarm + qemuarm64)
  * x86 (qemux86 + qemux86-64)
  * PowerPC (qemuppc only)
  * MIPS (qemumips + qemumips64)

Use of the QEMU images is covered in the Yocto Project Reference Manual.
The appropriate MACHINE variable value corresponding to the target is given
in brackets.
Description
No description provided
Readme 252 MiB