[OE-core] [PATCH] image: Fix "metadata is not deterministic" when chaining 2+ CONVERSION_CMDs

Martin Hundebøll mnhu at prevas.dk
Fri Sep 15 07:41:36 UTC 2017



On 2017-07-25 21:58, Tom Rini wrote:
> When we have more than one CONVERSION_CMD being used, for example
> ext4.gz.sha256sum we will see errors about "metadata is not
> deterministic".  This is because we do not have a stable order of
> intermediate files that will be removed in the generated shell command.
> We fix this by calling sorted() on the set of rm_tmp_images so that we
> will have a stable hash again.
> 
> Cc: Patrick Ohly <patrick.ohly at intel.com>
> Signed-off-by: Tom Rini <trini at konsulko.com>
> ---
>   meta/classes/image.bbclass | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index b095bca..dee17ae 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -474,7 +474,7 @@ python () {
>           # Clean up after applying all conversion commands. Some of them might
>           # use the same input, therefore we cannot delete sooner without applying
>           # some complex dependency analysis.
> -        for image in rm_tmp_images:
> +        for image in sorted(rm_tmp_images):
>               cmds.append("\trm " + image)
>   
>           after = 'do_image'
> 

This commit has resulted in more or less persistent basehash issues for 
my cpio.gz.u-boot image:

ERROR: When reparsing 
/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb.do_image_cpio, 
the basehash value changed from ac9907bbb8ee2ee6d9ca90f7a7e265f5 to 
8c7b717add6b1d1ba6ff761ebfdedf01. The metadata is not deterministic and 
this needs to be fixed.

The error occurs repeatedly when doing `bitbake -c clean rescue-rootfs 
&& bitbake rescue-rootfs`. Reverting the commit makes the error go away.

Also, the issue only appears for cpio.gz.u-boot image types, but not for 
cpio.gz

I am far from an expert in bitbake signature handling, so please let me 
know what to do, to debug this further.

Thanks,
Martin
-------------- next part --------------
Loading cache...done.
Loaded 1414 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
Loading cache...done.
Loaded 1414 entries from dependency cache.
#
# INCLUDE HISTORY:
#
# /home/mnhu/projects/pil/yocto/conf/bblayers.conf
# /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf
# /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf
# /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf
# /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf
# /home/mnhu/projects/pil/yocto/conf/layer.conf
# conf/bitbake.conf includes:
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/abi_version.conf
#   conf/site.conf
#   conf/auto.conf
#   /home/mnhu/projects/pil/yocto/conf/local.conf
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/multiconfig/default.conf
#   conf/build/x86_64-linux.conf
#   /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf includes:
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/soc-family.inc
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc includes:
#       /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc includes:
#         /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc includes:
#           /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc includes:
#             /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc includes:
#               /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc includes:
#                 /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc includes:
#                   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc
#                   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc
#                 /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc
#           /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf
#   conf/target/arm-oe-linuxeabi.conf
#   /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf includes:
#     /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc includes:
#       /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/version.inc
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf includes:
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-versions.inc
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc includes:
#       /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass includes:
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass includes:
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/mirrors.bbclass
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utils.bbclass
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utility-tasks.bbclass
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/metadata_scm.bbclass
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/logging.bbclass
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass includes:
#   /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass includes:
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/packagedata.bbclass
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/chrpath.bbclass
#     /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/devshell.bbclass
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/remove-libtool.bbclass
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/blacklist.bbclass
# /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass
#
# $ABIEXTENSION [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:119
#     [_defaultval] ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:14
#     "eabi"
#   override[class-nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf:2
#     ""
# pre-expansion value:
#   "eabi"
ABIEXTENSION="eabi"
#
# $ABIEXTENSION_class-nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf:2
#     ""
ABIEXTENSION_class-nativesdk=""
#
# $ACCEPT_FSL_EULA
#   set? /home/mnhu/projects/pil/yocto/conf/local.conf:22
#     "1"
ACCEPT_FSL_EULA="1"
#
# $ALLOW_EMPTY [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:65
#     [doc] "Specifies if an output package should still be produced if it is empty."
#   override[rescue-rootfs-dbg]:rename from ALLOW_EMPTY_${PN}-dbg data.py:116 [expandKeys]
#     "1"
#   override[rescue-rootfs-dev]:rename from ALLOW_EMPTY_${PN}-dev data.py:116 [expandKeys]
#     "1"
# pre-expansion value:
#   "None"
#
# $ALLOW_EMPTY_rescue-rootfs-dbg
#   rename from ALLOW_EMPTY_${PN}-dbg data.py:116 [expandKeys]
#     "1"
ALLOW_EMPTY_rescue-rootfs-dbg="1"
#
# $ALLOW_EMPTY_rescue-rootfs-dev
#   rename from ALLOW_EMPTY_${PN}-dev data.py:116 [expandKeys]
#     "1"
ALLOW_EMPTY_rescue-rootfs-dev="1"
#
# $ALL_MULTILIB_PACKAGE_ARCHS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:52
#     "${@all_multilib_tune_values(d, 'PACKAGE_ARCHS')}"
ALL_MULTILIB_PACKAGE_ARCHS="all any noarch armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-neon armv7vet2hf-neon armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4 cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4 cortexa7t2hf-vfp cortexa7t2hf-neon cortexa7t2hf-neon-vfpv4 rpi2"
#
# $ALL_QA
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:47
#     "${WARN_QA} ${ERROR_QA}"
ALL_QA="ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi             textrel already-stripped incompatible-license files-invalid             installed-vs-shipped compile-host-path install-host-path             pn-overrides infodir build-deps             unknown-configure-option symlink-to-sysroot multilib             invalid-packageconfig host-user-contaminated              dev-so debug-deps dev-deps debug-files arch pkgconfig la             perms dep-cmp pkgvarcheck perm-config perm-line perm-link             split-strip packages-list pkgv-undefined var-undefined             version-going-backwards expanded-d invalid-chars             license-checksum dev-elf file-rdeps             "
#
# $ALTERNATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:66
#     [doc] "Lists commands in a package that need an alternative binary naming scheme."
#
# $ALTERNATIVE_LINK_NAME
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:67
#     [doc] "Used by the alternatives system to map duplicated commands to actual locations."
#
# $ALTERNATIVE_PRIORITY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:68
#     [doc] "Used by the alternatives system to create default priorities for duplicated commands."
#
# $ALTERNATIVE_TARGET
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:69
#     [doc] "Used by the alternatives system to create default link locations for duplicated commands."
#
# $APACHE_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:606
#     "http://archive.apache.org/dist"
APACHE_MIRROR="http://archive.apache.org/dist"
#
# $AR [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:500
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:500
#     "${HOST_PREFIX}ar"
# pre-expansion value:
#   "${HOST_PREFIX}ar"
export AR="arm-oe-linux-gnueabi-ar"
#
# $ARCH [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:39
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:39
#     "${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
# pre-expansion value:
#   "${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
export ARCH="arm"
#
# $ARMPKGARCH [133 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:4
#     "${ARMPKGARCH_tune-${DEFAULTTUNE}}"
#   override[tune-armv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:20
#     "armv4"
#   override[tune-armv4t]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:21
#     "armv4"
#   override[tune-armv4b]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:29
#     "armv4"
#   override[tune-armv4tb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:30
#     "armv4"
#   override[tune-armv5]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:13
#     "armv5"
#   override[tune-armv5t]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:14
#     "armv5"
#   override[tune-armv5-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:22
#     "armv5"
#   override[tune-armv5t-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:23
#     "armv5"
#   override[tune-armv5hf-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:24
#     "armv5"
#   override[tune-armv5thf-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:25
#     "armv5"
#   override[tune-armv5b]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:37
#     "armv5"
#   override[tune-armv5tb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:38
#     "armv5"
#   override[tune-armv5b-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:46
#     "armv5"
#   override[tune-armv5tb-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:47
#     "armv5"
#   override[tune-armv5hfb-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:48
#     "armv5"
#   override[tune-armv5thfb-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:49
#     "armv5"
#   override[tune-armv5e]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:8
#     "armv5"
#   override[tune-armv5te]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:9
#     "armv5"
#   override[tune-armv5e-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:17
#     "armv5"
#   override[tune-armv5te-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:18
#     "armv5"
#   override[tune-armv5ehf-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:19
#     "armv5"
#   override[tune-armv5tehf-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:20
#     "armv5"
#   override[tune-armv5eb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:32
#     "armv5"
#   override[tune-armv5teb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:33
#     "armv5"
#   override[tune-armv5eb-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:41
#     "armv5"
#   override[tune-armv5teb-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:42
#     "armv5"
#   override[tune-armv5ehfb-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:43
#     "armv5"
#   override[tune-armv5tehfb-vfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:44
#     "armv5"
#   override[tune-armv6-novfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:12
#     "armv6"
#   override[tune-armv6t-novfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:13
#     "armv6"
#   override[tune-armv6]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:14
#     "armv6"
#   override[tune-armv6t]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:15
#     "armv6"
#   override[tune-armv6hf]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:16
#     "armv6"
#   override[tune-armv6thf]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:17
#     "armv6"
#   override[tune-armv6b-novfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:33
#     "armv6"
#   override[tune-armv6tb-novfp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:34
#     "armv6"
#   override[tune-armv6b]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:35
#     "armv6"
#   override[tune-armv6tb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:36
#     "armv6"
#   override[tune-armv6hfb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:37
#     "armv6"
#   override[tune-armv6thfb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:38
#     "armv6"
#   override[tune-armv7a]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:13
#     "armv7a"
#   override[tune-armv7at]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:14
#     "armv7a"
#   override[tune-armv7a-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:15
#     "armv7a"
#   override[tune-armv7at-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:16
#     "armv7a"
#   override[tune-armv7a-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:17
#     "armv7a"
#   override[tune-armv7at-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:18
#     "armv7a"
#   override[tune-armv7a-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:19
#     "armv7a"
#   override[tune-armv7at-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:20
#     "armv7a"
#   override[tune-armv7a-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:21
#     "armv7a"
#   override[tune-armv7at-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:22
#     "armv7a"
#   override[tune-armv7ahf]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:46
#     "armv7a"
#   override[tune-armv7athf]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:47
#     "armv7a"
#   override[tune-armv7ahf-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:48
#     "armv7a"
#   override[tune-armv7athf-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:49
#     "armv7a"
#   override[tune-armv7ahf-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:50
#     "armv7a"
#   override[tune-armv7athf-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:51
#     "armv7a"
#   override[tune-armv7ahf-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:52
#     "armv7a"
#   override[tune-armv7athf-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:53
#     "armv7a"
#   override[tune-armv7ahf-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:54
#     "armv7a"
#   override[tune-armv7athf-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:55
#     "armv7a"
#   override[tune-armv7ab]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:79
#     "armv7a"
#   override[tune-armv7atb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:80
#     "armv7a"
#   override[tune-armv7ab-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:81
#     "armv7a"
#   override[tune-armv7atb-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:82
#     "armv7a"
#   override[tune-armv7ab-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:83
#     "armv7a"
#   override[tune-armv7atb-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:84
#     "armv7a"
#   override[tune-armv7ab-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:85
#     "armv7a"
#   override[tune-armv7atb-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:86
#     "armv7a"
#   override[tune-armv7ab-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:87
#     "armv7a"
#   override[tune-armv7atb-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:88
#     "armv7a"
#   override[tune-armv7ahfb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:112
#     "armv7a"
#   override[tune-armv7athfb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:113
#     "armv7a"
#   override[tune-armv7ahfb-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:114
#     "armv7a"
#   override[tune-armv7athfb-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:115
#     "armv7a"
#   override[tune-armv7ahfb-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:116
#     "armv7a"
#   override[tune-armv7athfb-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:117
#     "armv7a"
#   override[tune-armv7ahfb-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:118
#     "armv7a"
#   override[tune-armv7athfb-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:119
#     "armv7a"
#   override[tune-armv7ahfb-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:120
#     "armv7a"
#   override[tune-armv7athfb-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:121
#     "armv7a"
#   override[tune-armv7ve]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:12
#     "armv7ve"
#   override[tune-armv7vet]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:13
#     "armv7ve"
#   override[tune-armv7ve-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:14
#     "armv7ve"
#   override[tune-armv7vet-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:15
#     "armv7ve"
#   override[tune-armv7ve-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:16
#     "armv7ve"
#   override[tune-armv7vet-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:17
#     "armv7ve"
#   override[tune-armv7ve-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:18
#     "armv7ve"
#   override[tune-armv7vet-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:19
#     "armv7ve"
#   override[tune-armv7ve-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:20
#     "armv7ve"
#   override[tune-armv7vet-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:21
#     "armv7ve"
#   override[tune-armv7vehf]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:45
#     "armv7ve"
#   override[tune-armv7vethf]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:46
#     "armv7ve"
#   override[tune-armv7vehf-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:47
#     "armv7ve"
#   override[tune-armv7vethf-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:48
#     "armv7ve"
#   override[tune-armv7vehf-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:49
#     "armv7ve"
#   override[tune-armv7vethf-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:50
#     "armv7ve"
#   override[tune-armv7vehf-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:51
#     "armv7ve"
#   override[tune-armv7vethf-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:52
#     "armv7ve"
#   override[tune-armv7vehf-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:53
#     "armv7ve"
#   override[tune-armv7vethf-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:54
#     "armv7ve"
#   override[tune-armv7veb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:78
#     "armv7ve"
#   override[tune-armv7vetb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:79
#     "armv7ve"
#   override[tune-armv7veb-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:80
#     "armv7ve"
#   override[tune-armv7vetb-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:81
#     "armv7ve"
#   override[tune-armv7veb-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:82
#     "armv7ve"
#   override[tune-armv7vetb-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:83
#     "armv7ve"
#   override[tune-armv7veb-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:84
#     "armv7ve"
#   override[tune-armv7vetb-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:85
#     "armv7ve"
#   override[tune-armv7veb-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:86
#     "armv7ve"
#   override[tune-armv7vetb-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:87
#     "armv7ve"
#   override[tune-armv7vehfb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:111
#     "armv7ve"
#   override[tune-armv7vethfb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:112
#     "armv7ve"
#   override[tune-armv7vehfb-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:113
#     "armv7ve"
#   override[tune-armv7vethfb-vfpv3d16]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:114
#     "armv7ve"
#   override[tune-armv7vehfb-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:115
#     "armv7ve"
#   override[tune-armv7vethfb-vfpv3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:116
#     "armv7ve"
#   override[tune-armv7vehfb-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:117
#     "armv7ve"
#   override[tune-armv7vethfb-neon]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:118
#     "armv7ve"
#   override[tune-armv7vehfb-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:119
#     "armv7ve"
#   override[tune-armv7vethfb-neon-vfpv4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:120
#     "armv7ve"
#   override[tune-cortexa7]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:10
#     "cortexa7"
#   override[tune-cortexa7t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:11
#     "cortexa7"
#   override[tune-cortexa7-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:12
#     "cortexa7"
#   override[tune-cortexa7t-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:13
#     "cortexa7"
#   override[tune-cortexa7-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:14
#     "cortexa7"
#   override[tune-cortexa7t-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:15
#     "cortexa7"
#   override[tune-cortexa7hf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:31
#     "cortexa7"
#   override[tune-cortexa7thf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:32
#     "cortexa7"
#   override[tune-cortexa7hf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:33
#     "cortexa7"
#   override[tune-cortexa7thf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:34
#     "cortexa7"
#   override[tune-cortexa7hf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:35
#     "cortexa7"
#   override[tune-cortexa7thf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:36
#     "cortexa7"
# pre-expansion value:
#   "${ARMPKGARCH_tune-${DEFAULTTUNE}}"
ARMPKGARCH="cortexa7"
#
# $ARMPKGARCH_tune-armv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:20
#     "armv4"
ARMPKGARCH_tune-armv4="armv4"
#
# $ARMPKGARCH_tune-armv4b
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:29
#     "armv4"
ARMPKGARCH_tune-armv4b="armv4"
#
# $ARMPKGARCH_tune-armv4t
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:21
#     "armv4"
ARMPKGARCH_tune-armv4t="armv4"
#
# $ARMPKGARCH_tune-armv4tb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:30
#     "armv4"
ARMPKGARCH_tune-armv4tb="armv4"
#
# $ARMPKGARCH_tune-armv5
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:13
#     "armv5"
ARMPKGARCH_tune-armv5="armv5"
#
# $ARMPKGARCH_tune-armv5-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:22
#     "armv5"
ARMPKGARCH_tune-armv5-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5b
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:37
#     "armv5"
ARMPKGARCH_tune-armv5b="armv5"
#
# $ARMPKGARCH_tune-armv5b-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:46
#     "armv5"
ARMPKGARCH_tune-armv5b-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5e
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:8
#     "armv5"
ARMPKGARCH_tune-armv5e="armv5"
#
# $ARMPKGARCH_tune-armv5e-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:17
#     "armv5"
ARMPKGARCH_tune-armv5e-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5eb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:32
#     "armv5"
ARMPKGARCH_tune-armv5eb="armv5"
#
# $ARMPKGARCH_tune-armv5eb-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:41
#     "armv5"
ARMPKGARCH_tune-armv5eb-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5ehf-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:19
#     "armv5"
ARMPKGARCH_tune-armv5ehf-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5ehfb-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:43
#     "armv5"
ARMPKGARCH_tune-armv5ehfb-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5hf-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:24
#     "armv5"
ARMPKGARCH_tune-armv5hf-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5hfb-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:48
#     "armv5"
ARMPKGARCH_tune-armv5hfb-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5t
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:14
#     "armv5"
ARMPKGARCH_tune-armv5t="armv5"
#
# $ARMPKGARCH_tune-armv5t-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:23
#     "armv5"
ARMPKGARCH_tune-armv5t-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5tb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:38
#     "armv5"
ARMPKGARCH_tune-armv5tb="armv5"
#
# $ARMPKGARCH_tune-armv5tb-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:47
#     "armv5"
ARMPKGARCH_tune-armv5tb-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5te
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:9
#     "armv5"
ARMPKGARCH_tune-armv5te="armv5"
#
# $ARMPKGARCH_tune-armv5te-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:18
#     "armv5"
ARMPKGARCH_tune-armv5te-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5teb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:33
#     "armv5"
ARMPKGARCH_tune-armv5teb="armv5"
#
# $ARMPKGARCH_tune-armv5teb-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:42
#     "armv5"
ARMPKGARCH_tune-armv5teb-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5tehf-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:20
#     "armv5"
ARMPKGARCH_tune-armv5tehf-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5tehfb-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:44
#     "armv5"
ARMPKGARCH_tune-armv5tehfb-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5thf-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:25
#     "armv5"
ARMPKGARCH_tune-armv5thf-vfp="armv5"
#
# $ARMPKGARCH_tune-armv5thfb-vfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:49
#     "armv5"
ARMPKGARCH_tune-armv5thfb-vfp="armv5"
#
# $ARMPKGARCH_tune-armv6
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:14
#     "armv6"
ARMPKGARCH_tune-armv6="armv6"
#
# $ARMPKGARCH_tune-armv6-novfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:12
#     "armv6"
ARMPKGARCH_tune-armv6-novfp="armv6"
#
# $ARMPKGARCH_tune-armv6b
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:35
#     "armv6"
ARMPKGARCH_tune-armv6b="armv6"
#
# $ARMPKGARCH_tune-armv6b-novfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:33
#     "armv6"
ARMPKGARCH_tune-armv6b-novfp="armv6"
#
# $ARMPKGARCH_tune-armv6hf
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:16
#     "armv6"
ARMPKGARCH_tune-armv6hf="armv6"
#
# $ARMPKGARCH_tune-armv6hfb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:37
#     "armv6"
ARMPKGARCH_tune-armv6hfb="armv6"
#
# $ARMPKGARCH_tune-armv6t
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:15
#     "armv6"
ARMPKGARCH_tune-armv6t="armv6"
#
# $ARMPKGARCH_tune-armv6t-novfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:13
#     "armv6"
ARMPKGARCH_tune-armv6t-novfp="armv6"
#
# $ARMPKGARCH_tune-armv6tb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:36
#     "armv6"
ARMPKGARCH_tune-armv6tb="armv6"
#
# $ARMPKGARCH_tune-armv6tb-novfp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:34
#     "armv6"
ARMPKGARCH_tune-armv6tb-novfp="armv6"
#
# $ARMPKGARCH_tune-armv6thf
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:17
#     "armv6"
ARMPKGARCH_tune-armv6thf="armv6"
#
# $ARMPKGARCH_tune-armv6thfb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:38
#     "armv6"
ARMPKGARCH_tune-armv6thfb="armv6"
#
# $ARMPKGARCH_tune-armv7a
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:13
#     "armv7a"
ARMPKGARCH_tune-armv7a="armv7a"
#
# $ARMPKGARCH_tune-armv7a-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:19
#     "armv7a"
ARMPKGARCH_tune-armv7a-neon="armv7a"
#
# $ARMPKGARCH_tune-armv7a-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:21
#     "armv7a"
ARMPKGARCH_tune-armv7a-neon-vfpv4="armv7a"
#
# $ARMPKGARCH_tune-armv7a-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:17
#     "armv7a"
ARMPKGARCH_tune-armv7a-vfpv3="armv7a"
#
# $ARMPKGARCH_tune-armv7a-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:15
#     "armv7a"
ARMPKGARCH_tune-armv7a-vfpv3d16="armv7a"
#
# $ARMPKGARCH_tune-armv7ab
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:79
#     "armv7a"
ARMPKGARCH_tune-armv7ab="armv7a"
#
# $ARMPKGARCH_tune-armv7ab-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:85
#     "armv7a"
ARMPKGARCH_tune-armv7ab-neon="armv7a"
#
# $ARMPKGARCH_tune-armv7ab-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:87
#     "armv7a"
ARMPKGARCH_tune-armv7ab-neon-vfpv4="armv7a"
#
# $ARMPKGARCH_tune-armv7ab-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:83
#     "armv7a"
ARMPKGARCH_tune-armv7ab-vfpv3="armv7a"
#
# $ARMPKGARCH_tune-armv7ab-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:81
#     "armv7a"
ARMPKGARCH_tune-armv7ab-vfpv3d16="armv7a"
#
# $ARMPKGARCH_tune-armv7ahf
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:46
#     "armv7a"
ARMPKGARCH_tune-armv7ahf="armv7a"
#
# $ARMPKGARCH_tune-armv7ahf-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:52
#     "armv7a"
ARMPKGARCH_tune-armv7ahf-neon="armv7a"
#
# $ARMPKGARCH_tune-armv7ahf-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:54
#     "armv7a"
ARMPKGARCH_tune-armv7ahf-neon-vfpv4="armv7a"
#
# $ARMPKGARCH_tune-armv7ahf-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:50
#     "armv7a"
ARMPKGARCH_tune-armv7ahf-vfpv3="armv7a"
#
# $ARMPKGARCH_tune-armv7ahf-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:48
#     "armv7a"
ARMPKGARCH_tune-armv7ahf-vfpv3d16="armv7a"
#
# $ARMPKGARCH_tune-armv7ahfb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:112
#     "armv7a"
ARMPKGARCH_tune-armv7ahfb="armv7a"
#
# $ARMPKGARCH_tune-armv7ahfb-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:118
#     "armv7a"
ARMPKGARCH_tune-armv7ahfb-neon="armv7a"
#
# $ARMPKGARCH_tune-armv7ahfb-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:120
#     "armv7a"
ARMPKGARCH_tune-armv7ahfb-neon-vfpv4="armv7a"
#
# $ARMPKGARCH_tune-armv7ahfb-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:116
#     "armv7a"
ARMPKGARCH_tune-armv7ahfb-vfpv3="armv7a"
#
# $ARMPKGARCH_tune-armv7ahfb-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:114
#     "armv7a"
ARMPKGARCH_tune-armv7ahfb-vfpv3d16="armv7a"
#
# $ARMPKGARCH_tune-armv7at
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:14
#     "armv7a"
ARMPKGARCH_tune-armv7at="armv7a"
#
# $ARMPKGARCH_tune-armv7at-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:20
#     "armv7a"
ARMPKGARCH_tune-armv7at-neon="armv7a"
#
# $ARMPKGARCH_tune-armv7at-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:22
#     "armv7a"
ARMPKGARCH_tune-armv7at-neon-vfpv4="armv7a"
#
# $ARMPKGARCH_tune-armv7at-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:18
#     "armv7a"
ARMPKGARCH_tune-armv7at-vfpv3="armv7a"
#
# $ARMPKGARCH_tune-armv7at-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:16
#     "armv7a"
ARMPKGARCH_tune-armv7at-vfpv3d16="armv7a"
#
# $ARMPKGARCH_tune-armv7atb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:80
#     "armv7a"
ARMPKGARCH_tune-armv7atb="armv7a"
#
# $ARMPKGARCH_tune-armv7atb-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:86
#     "armv7a"
ARMPKGARCH_tune-armv7atb-neon="armv7a"
#
# $ARMPKGARCH_tune-armv7atb-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:88
#     "armv7a"
ARMPKGARCH_tune-armv7atb-neon-vfpv4="armv7a"
#
# $ARMPKGARCH_tune-armv7atb-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:84
#     "armv7a"
ARMPKGARCH_tune-armv7atb-vfpv3="armv7a"
#
# $ARMPKGARCH_tune-armv7atb-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:82
#     "armv7a"
ARMPKGARCH_tune-armv7atb-vfpv3d16="armv7a"
#
# $ARMPKGARCH_tune-armv7athf
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:47
#     "armv7a"
ARMPKGARCH_tune-armv7athf="armv7a"
#
# $ARMPKGARCH_tune-armv7athf-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:53
#     "armv7a"
ARMPKGARCH_tune-armv7athf-neon="armv7a"
#
# $ARMPKGARCH_tune-armv7athf-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:55
#     "armv7a"
ARMPKGARCH_tune-armv7athf-neon-vfpv4="armv7a"
#
# $ARMPKGARCH_tune-armv7athf-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:51
#     "armv7a"
ARMPKGARCH_tune-armv7athf-vfpv3="armv7a"
#
# $ARMPKGARCH_tune-armv7athf-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:49
#     "armv7a"
ARMPKGARCH_tune-armv7athf-vfpv3d16="armv7a"
#
# $ARMPKGARCH_tune-armv7athfb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:113
#     "armv7a"
ARMPKGARCH_tune-armv7athfb="armv7a"
#
# $ARMPKGARCH_tune-armv7athfb-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:119
#     "armv7a"
ARMPKGARCH_tune-armv7athfb-neon="armv7a"
#
# $ARMPKGARCH_tune-armv7athfb-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:121
#     "armv7a"
ARMPKGARCH_tune-armv7athfb-neon-vfpv4="armv7a"
#
# $ARMPKGARCH_tune-armv7athfb-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:117
#     "armv7a"
ARMPKGARCH_tune-armv7athfb-vfpv3="armv7a"
#
# $ARMPKGARCH_tune-armv7athfb-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:115
#     "armv7a"
ARMPKGARCH_tune-armv7athfb-vfpv3d16="armv7a"
#
# $ARMPKGARCH_tune-armv7ve
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:12
#     "armv7ve"
ARMPKGARCH_tune-armv7ve="armv7ve"
#
# $ARMPKGARCH_tune-armv7ve-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:18
#     "armv7ve"
ARMPKGARCH_tune-armv7ve-neon="armv7ve"
#
# $ARMPKGARCH_tune-armv7ve-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:20
#     "armv7ve"
ARMPKGARCH_tune-armv7ve-neon-vfpv4="armv7ve"
#
# $ARMPKGARCH_tune-armv7ve-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:16
#     "armv7ve"
ARMPKGARCH_tune-armv7ve-vfpv3="armv7ve"
#
# $ARMPKGARCH_tune-armv7ve-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:14
#     "armv7ve"
ARMPKGARCH_tune-armv7ve-vfpv3d16="armv7ve"
#
# $ARMPKGARCH_tune-armv7veb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:78
#     "armv7ve"
ARMPKGARCH_tune-armv7veb="armv7ve"
#
# $ARMPKGARCH_tune-armv7veb-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:84
#     "armv7ve"
ARMPKGARCH_tune-armv7veb-neon="armv7ve"
#
# $ARMPKGARCH_tune-armv7veb-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:86
#     "armv7ve"
ARMPKGARCH_tune-armv7veb-neon-vfpv4="armv7ve"
#
# $ARMPKGARCH_tune-armv7veb-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:82
#     "armv7ve"
ARMPKGARCH_tune-armv7veb-vfpv3="armv7ve"
#
# $ARMPKGARCH_tune-armv7veb-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:80
#     "armv7ve"
ARMPKGARCH_tune-armv7veb-vfpv3d16="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehf
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:45
#     "armv7ve"
ARMPKGARCH_tune-armv7vehf="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehf-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:51
#     "armv7ve"
ARMPKGARCH_tune-armv7vehf-neon="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehf-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:53
#     "armv7ve"
ARMPKGARCH_tune-armv7vehf-neon-vfpv4="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehf-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:49
#     "armv7ve"
ARMPKGARCH_tune-armv7vehf-vfpv3="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehf-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:47
#     "armv7ve"
ARMPKGARCH_tune-armv7vehf-vfpv3d16="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehfb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:111
#     "armv7ve"
ARMPKGARCH_tune-armv7vehfb="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehfb-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:117
#     "armv7ve"
ARMPKGARCH_tune-armv7vehfb-neon="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehfb-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:119
#     "armv7ve"
ARMPKGARCH_tune-armv7vehfb-neon-vfpv4="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehfb-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:115
#     "armv7ve"
ARMPKGARCH_tune-armv7vehfb-vfpv3="armv7ve"
#
# $ARMPKGARCH_tune-armv7vehfb-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:113
#     "armv7ve"
ARMPKGARCH_tune-armv7vehfb-vfpv3d16="armv7ve"
#
# $ARMPKGARCH_tune-armv7vet
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:13
#     "armv7ve"
ARMPKGARCH_tune-armv7vet="armv7ve"
#
# $ARMPKGARCH_tune-armv7vet-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:19
#     "armv7ve"
ARMPKGARCH_tune-armv7vet-neon="armv7ve"
#
# $ARMPKGARCH_tune-armv7vet-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:21
#     "armv7ve"
ARMPKGARCH_tune-armv7vet-neon-vfpv4="armv7ve"
#
# $ARMPKGARCH_tune-armv7vet-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:17
#     "armv7ve"
ARMPKGARCH_tune-armv7vet-vfpv3="armv7ve"
#
# $ARMPKGARCH_tune-armv7vet-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:15
#     "armv7ve"
ARMPKGARCH_tune-armv7vet-vfpv3d16="armv7ve"
#
# $ARMPKGARCH_tune-armv7vetb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:79
#     "armv7ve"
ARMPKGARCH_tune-armv7vetb="armv7ve"
#
# $ARMPKGARCH_tune-armv7vetb-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:85
#     "armv7ve"
ARMPKGARCH_tune-armv7vetb-neon="armv7ve"
#
# $ARMPKGARCH_tune-armv7vetb-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:87
#     "armv7ve"
ARMPKGARCH_tune-armv7vetb-neon-vfpv4="armv7ve"
#
# $ARMPKGARCH_tune-armv7vetb-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:83
#     "armv7ve"
ARMPKGARCH_tune-armv7vetb-vfpv3="armv7ve"
#
# $ARMPKGARCH_tune-armv7vetb-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:81
#     "armv7ve"
ARMPKGARCH_tune-armv7vetb-vfpv3d16="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethf
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:46
#     "armv7ve"
ARMPKGARCH_tune-armv7vethf="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethf-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:52
#     "armv7ve"
ARMPKGARCH_tune-armv7vethf-neon="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethf-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:54
#     "armv7ve"
ARMPKGARCH_tune-armv7vethf-neon-vfpv4="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethf-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:50
#     "armv7ve"
ARMPKGARCH_tune-armv7vethf-vfpv3="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethf-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:48
#     "armv7ve"
ARMPKGARCH_tune-armv7vethf-vfpv3d16="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethfb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:112
#     "armv7ve"
ARMPKGARCH_tune-armv7vethfb="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethfb-neon
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:118
#     "armv7ve"
ARMPKGARCH_tune-armv7vethfb-neon="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethfb-neon-vfpv4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:120
#     "armv7ve"
ARMPKGARCH_tune-armv7vethfb-neon-vfpv4="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethfb-vfpv3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:116
#     "armv7ve"
ARMPKGARCH_tune-armv7vethfb-vfpv3="armv7ve"
#
# $ARMPKGARCH_tune-armv7vethfb-vfpv3d16
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:114
#     "armv7ve"
ARMPKGARCH_tune-armv7vethfb-vfpv3d16="armv7ve"
#
# $ARMPKGARCH_tune-cortexa7
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:10
#     "cortexa7"
ARMPKGARCH_tune-cortexa7="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:12
#     "cortexa7"
ARMPKGARCH_tune-cortexa7-neon="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:14
#     "cortexa7"
ARMPKGARCH_tune-cortexa7-neon-vfpv4="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7hf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:31
#     "cortexa7"
ARMPKGARCH_tune-cortexa7hf="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7hf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:33
#     "cortexa7"
ARMPKGARCH_tune-cortexa7hf-neon="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7hf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:35
#     "cortexa7"
ARMPKGARCH_tune-cortexa7hf-neon-vfpv4="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:11
#     "cortexa7"
ARMPKGARCH_tune-cortexa7t="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7t-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:13
#     "cortexa7"
ARMPKGARCH_tune-cortexa7t-neon="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7t-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:15
#     "cortexa7"
ARMPKGARCH_tune-cortexa7t-neon-vfpv4="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7thf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:32
#     "cortexa7"
ARMPKGARCH_tune-cortexa7thf="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7thf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:34
#     "cortexa7"
ARMPKGARCH_tune-cortexa7thf-neon="cortexa7"
#
# $ARMPKGARCH_tune-cortexa7thf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:36
#     "cortexa7"
ARMPKGARCH_tune-cortexa7thf-neon-vfpv4="cortexa7"
#
# $ARMPKGSFX_DSP [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:1
#     "${@bb.utils.contains('TUNE_FEATURES', [ 'armv5', 'dsp' ], 'e', '', d)}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:7
#     [_defaultval] ""
# pre-expansion value:
#   "${@bb.utils.contains('TUNE_FEATURES', [ 'armv5', 'dsp' ], 'e', '', d)}"
ARMPKGSFX_DSP=""
#
# $ARMPKGSFX_EABI [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:8
#     [_defaultval] ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc:14
#     "${@ 'hf'                                 if (d.getVar('TUNE_CCARGS_MFLOAT') == 'hard') else ''}"
# pre-expansion value:
#   "${@ 'hf'                                 if (d.getVar('TUNE_CCARGS_MFLOAT') == 'hard') else ''}"
ARMPKGSFX_EABI="hf"
#
# $ARMPKGSFX_ENDIAN
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:5
#     "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'b', '', d)}"
ARMPKGSFX_ENDIAN=""
#
# $ARMPKGSFX_FPU [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:6
#     [_defaultval] ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc:9
#     "${@ ('-%s'        % d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('vfpv3-d16', 'vfpv3d16')) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}"
# pre-expansion value:
#   "${@ ('-%s'        % d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('vfpv3-d16', 'vfpv3d16')) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}"
ARMPKGSFX_FPU="-neon-vfpv4"
#
# $ARMPKGSFX_THUMB [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:9
#     [_defaultval] ""
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc:27
#     "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${ARM_THUMB_SUFFIX}', '', d) if d.getVar('ARM_M_OPT') == 'thumb' else ''}"
# pre-expansion value:
#   "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${ARM_THUMB_SUFFIX}', '', d) if d.getVar('ARM_M_OPT') == 'thumb' else ''}"
ARMPKGSFX_THUMB=""
#
# $ARM_M_OPT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc:10
#     "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}"
ARM_M_OPT="arm"
#
# $ARM_THUMB_OPT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc:9
#     "${@['arm', 'thumb'][d.getVar('ARM_INSTRUCTION_SET') == 'thumb']}"
ARM_THUMB_OPT="arm"
#
# $ARM_THUMB_SUFFIX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc:4
#     "${@bb.utils.contains_any('TUNE_FEATURES', 'armv4 armv5 armv6', 't', 't2', d)}"
ARM_THUMB_SUFFIX="t2"
#
# $AS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:501
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:501
#     "${HOST_PREFIX}as ${HOST_AS_ARCH}"
# pre-expansion value:
#   "${HOST_PREFIX}as ${HOST_AS_ARCH}"
export AS="arm-oe-linux-gnueabi-as "
#
# $ASNEEDED [10 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:2
#     "-Wl,--as-needed"
#   override[pn-babeltrace]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:4
#     ""
#   override[pn-console-tools]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:5
#     ""
#   override[pn-distcc]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:6
#     ""
#   override[pn-openobex]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:7
#     ""
#   override[pn-icu]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:8
#     ""
#   override[pn-pciutils]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:9
#     ""
#   override[pn-puzzles]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:10
#     ""
#   override[pn-pulseaudio]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:11
#     ""
#   override[pn-rpm]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:12
#     ""
# pre-expansion value:
#   "-Wl,--as-needed"
ASNEEDED="-Wl,--as-needed"
#
# $ASNEEDED_pn-babeltrace
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:4
#     ""
ASNEEDED_pn-babeltrace=""
#
# $ASNEEDED_pn-console-tools
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:5
#     ""
ASNEEDED_pn-console-tools=""
#
# $ASNEEDED_pn-distcc
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:6
#     ""
ASNEEDED_pn-distcc=""
#
# $ASNEEDED_pn-icu
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:8
#     ""
ASNEEDED_pn-icu=""
#
# $ASNEEDED_pn-openobex
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:7
#     ""
ASNEEDED_pn-openobex=""
#
# $ASNEEDED_pn-pciutils
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:9
#     ""
ASNEEDED_pn-pciutils=""
#
# $ASNEEDED_pn-pulseaudio
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:11
#     ""
ASNEEDED_pn-pulseaudio=""
#
# $ASNEEDED_pn-puzzles
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:10
#     ""
ASNEEDED_pn-puzzles=""
#
# $ASNEEDED_pn-rpm
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:12
#     ""
ASNEEDED_pn-rpm=""
#
# $ASSUME_PROVIDED [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:187
#     "bzip2-native chrpath-native file-native findutils-native git-native grep-native diffstat-native patch-native libgcc-native hostperl-runtime-native hostpython-runtime-native tar-native virtual/libintl-native virtual/libiconv-native texinfo-native bash-native sed-native wget-native "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:70
#     [doc] "List of packages (recipes actually) that are assumed to be implicitly available. BitBake does not build these packages."
# pre-expansion value:
#   "bzip2-native chrpath-native file-native findutils-native git-native grep-native diffstat-native patch-native libgcc-native hostperl-runtime-native hostpython-runtime-native tar-native virtual/libintl-native virtual/libiconv-native texinfo-native bash-native sed-native wget-native "
ASSUME_PROVIDED="bzip2-native chrpath-native file-native findutils-native git-native grep-native diffstat-native patch-native libgcc-native hostperl-runtime-native hostpython-runtime-native tar-native virtual/libintl-native virtual/libiconv-native texinfo-native bash-native sed-native wget-native "
#
# $ASSUME_SHLIBS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:71
#     [doc] "List of shlib:package[_version] mappings. Useful for lib packages in ASSUME_PROVIDED, for which automatic shlib dependency tracking does not work."
#
# $AUTHOR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:72
#     [doc] "Email address used to contact the original author(s) in order to send patches and forward bugs."
#
# $AUTOREV [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:652
#     "${@bb.fetch2.get_autorev(d)}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:74
#     [doc] "When SRCREV is set to the value of this variable, it specifies to use the latest source revision in the repository."
# pre-expansion value:
#   "${@bb.fetch2.get_autorev(d)}"
AUTOREV="AUTOINC"
#
# $AUTO_LIBNAME_PKGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass:12
#     "${PACKAGES}"
AUTO_LIBNAME_PKGS=""
#
# $AUTO_SYSLINUXMENU
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:73
#     [doc] "Enables creating an automatic menu for the syslinux bootloader."
#
# $AVAILTUNES [22 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:19
#     "armv4 armv4t"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:28
#     "armv4b armv4tb"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:12
#     "armv5 armv5t"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:21
#     "armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:36
#     "armv5b armv5tb"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:45
#     "armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:7
#     "armv5e armv5te"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:16
#     "armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:31
#     "armv5eb armv5teb"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:40
#     "armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:11
#     "armv6-novfp armv6t-novfp armv6 armv6t armv6hf armv6thf"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:32
#     "armv6b-novfp armv6tb-novfp armv6b armv6tb armv6hfb armv6thfb"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:12
#     "armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:45
#     "armv7ahf armv7athf armv7ahf-vfpv3d16 armv7athf-vfpv3d16 armv7ahf-vfpv3 armv7athf-vfpv3 armv7ahf-neon armv7athf-neon armv7ahf-neon-vfpv4 armv7athf-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:78
#     "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon armv7ab-neon-vfpv4 armv7atb-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:111
#     "armv7ahfb armv7athfb armv7ahfb-vfpv3d16 armv7athfb-vfpv3d16 armv7ahfb-vfpv3 armv7athfb-vfpv3 armv7ahfb-neon armv7athfb-neon armv7ahfb-neon-vfpv4 armv7athfb-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:11
#     "armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:44
#     "armv7vehf armv7vethf armv7vehf-vfpv3d16 armv7vethf-vfpv3d16 armv7vehf-vfpv3 armv7vethf-vfpv3 armv7vehf-neon armv7vethf-neon armv7vehf-neon-vfpv4 armv7vethf-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:77
#     "armv7veb armv7vetb armv7veb-vfpv3d16 armv7vetb-vfpv3d16 armv7veb-vfpv3 armv7vetb-vfpv3 armv7veb-neon armv7vetb-neon armv7veb-neon-vfpv4 armv7vetb-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:110
#     "armv7vehfb armv7vethfb armv7vehfb-vfpv3d16 armv7vethfb-vfpv3d16 armv7vehfb-vfpv3 armv7vethfb-vfpv3 armv7vehfb-neon armv7vethfb-neon armv7vehfb-neon-vfpv4 armv7vethfb-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:9
#     "cortexa7 cortexa7t cortexa7-neon cortexa7t-neon cortexa7-neon-vfpv4 cortexa7t-neon-vfpv4"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:30
#     "cortexa7hf cortexa7thf cortexa7hf-neon cortexa7thf-neon cortexa7hf-neon-vfpv4 cortexa7thf-neon-vfpv4"
# pre-expansion value:
#   " armv4 armv4t armv4b armv4tb armv5 armv5t armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp armv5b armv5tb armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6-novfp armv6t-novfp armv6 armv6t armv6hf armv6thf armv6b-novfp armv6tb-novfp armv6b armv6tb armv6hfb armv6thfb armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4 armv7ahf armv7athf armv7ahf-vfpv3d16 armv7athf-vfpv3d16 armv7ahf-vfpv3 armv7athf-vfpv3 armv7ahf-neon armv7athf-neon armv7ahf-neon-vfpv4 armv7athf-neon-vfpv4 armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon armv7ab-neon-vfpv4 armv7atb-neon-vfpv4 armv7ahfb armv7athfb armv7ahfb-vfpv3d16 armv7athfb-vfpv3d16 armv7ahfb-vfpv3 armv7athfb-vfpv3 armv7ahfb-neon armv7athfb-neon armv7ahfb-neon-vfpv4 armv7athfb-neon-vfpv4 armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4 armv7vehf armv7vethf armv7vehf-vfpv3d16 armv7vethf-vfpv3d16 armv7vehf-vfpv3 armv7vethf-vfpv3 armv7vehf-neon armv7vethf-neon armv7vehf-neon-vfpv4 armv7vethf-neon-vfpv4 armv7veb armv7vetb armv7veb-vfpv3d16 armv7vetb-vfpv3d16 armv7veb-vfpv3 armv7vetb-vfpv3 armv7veb-neon armv7vetb-neon armv7veb-neon-vfpv4 armv7vetb-neon-vfpv4 armv7vehfb armv7vethfb armv7vehfb-vfpv3d16 armv7vethfb-vfpv3d16 armv7vehfb-vfpv3 armv7vethfb-vfpv3 armv7vehfb-neon armv7vethfb-neon armv7vehfb-neon-vfpv4 armv7vethfb-neon-vfpv4 cortexa7 cortexa7t cortexa7-neon cortexa7t-neon cortexa7-neon-vfpv4 cortexa7t-neon-vfpv4 cortexa7hf cortexa7thf cortexa7hf-neon cortexa7thf-neon cortexa7hf-neon-vfpv4 cortexa7thf-neon-vfpv4"
AVAILTUNES=" armv4 armv4t armv4b armv4tb armv5 armv5t armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp armv5b armv5tb armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6-novfp armv6t-novfp armv6 armv6t armv6hf armv6thf armv6b-novfp armv6tb-novfp armv6b armv6tb armv6hfb armv6thfb armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4 armv7ahf armv7athf armv7ahf-vfpv3d16 armv7athf-vfpv3d16 armv7ahf-vfpv3 armv7athf-vfpv3 armv7ahf-neon armv7athf-neon armv7ahf-neon-vfpv4 armv7athf-neon-vfpv4 armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon armv7ab-neon-vfpv4 armv7atb-neon-vfpv4 armv7ahfb armv7athfb armv7ahfb-vfpv3d16 armv7athfb-vfpv3d16 armv7ahfb-vfpv3 armv7athfb-vfpv3 armv7ahfb-neon armv7athfb-neon armv7ahfb-neon-vfpv4 armv7athfb-neon-vfpv4 armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4 armv7vehf armv7vethf armv7vehf-vfpv3d16 armv7vethf-vfpv3d16 armv7vehf-vfpv3 armv7vethf-vfpv3 armv7vehf-neon armv7vethf-neon armv7vehf-neon-vfpv4 armv7vethf-neon-vfpv4 armv7veb armv7vetb armv7veb-vfpv3d16 armv7vetb-vfpv3d16 armv7veb-vfpv3 armv7vetb-vfpv3 armv7veb-neon armv7vetb-neon armv7veb-neon-vfpv4 armv7vetb-neon-vfpv4 armv7vehfb armv7vethfb armv7vehfb-vfpv3d16 armv7vethfb-vfpv3d16 armv7vehfb-vfpv3 armv7vethfb-vfpv3 armv7vehfb-neon armv7vethfb-neon armv7vehfb-neon-vfpv4 armv7vethfb-neon-vfpv4 cortexa7 cortexa7t cortexa7-neon cortexa7t-neon cortexa7-neon-vfpv4 cortexa7t-neon-vfpv4 cortexa7hf cortexa7thf cortexa7hf-neon cortexa7thf-neon cortexa7hf-neon-vfpv4 cortexa7thf-neon-vfpv4"
#
# $B [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:351
#     "${S}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:78
#     [doc] "The Build Directory. The OpenEmbedded build system places generated objects into the Build Directory during a recipe's build process."
#   override[task-populate-sdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:31
#     "${SDK_DIR}"
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:79
#     "${SDK_DIR}"
# pre-expansion value:
#   "${S}"
B="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rescue-rootfs-1.0"
#
# $BAD_RECOMMENDATIONS [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:79
#     [doc] "A list of packages not to install despite being recommended by a recipe. Support for this variable exists only when using the IPK or RPM packaging backends."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:819
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc:27
#     "busybox-udhcpc udev-cache kernel-vmlinux"
# pre-expansion value:
#   "busybox-udhcpc udev-cache kernel-vmlinux"
BAD_RECOMMENDATIONS="busybox-udhcpc udev-cache kernel-vmlinux"
#
# $BASEDEPENDS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:79
#     "${@base_dep_prepend(d)}"
BASEDEPENDS=""
#
# $BASELIB [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:12
#     "lib"
#   override[powerpc64]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:13
#     "lib64"
# pre-expansion value:
#   "lib"
BASELIB="lib"
#
# $BASELIB_powerpc64
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:13
#     "lib64"
BASELIB_powerpc64="lib64"
#
# $BASE_WORKDIR
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:346
#     "${TMPDIR}/work"
BASE_WORKDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work"
#
# $BBCLASSEXTEND
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:85
#     [doc] "Allows you to extend a recipe so that it builds variants of the software. Common variants for recipes are 'native', 'cross', 'nativesdk' and multilibs."
#
# $BBFILES [15 operations]
#   set? /home/mnhu/projects/pil/yocto/conf/bblayers.conf:4
#     ""
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:4
#     "${LAYERDIR}/recipes-*/*/*.bb"
#   set data_smart.py:938 [expandVarref]
#     " /home/mnhu/projects/pil/yocto/meta-poky/meta/recipes-*/*/*.bb"
#   append /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:15
#     "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
#   set data_smart.py:938 [expandVarref]
#     " /home/mnhu/projects/pil/yocto/meta-poky/meta/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bbappend"
#   append /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf:6
#     "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
#   set data_smart.py:938 [expandVarref]
#     " /home/mnhu/projects/pil/yocto/meta-poky/meta/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bbappend"
#   append /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:8
#     "${LAYERDIR}/recipes-*/*.bb ${LAYERDIR}/recipes-*/*.bbappend ${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend "
#   append /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:17
#     "${@' '.join('${LAYERDIR}/%s/recipes*/*/*.bbappend' % layer for layer in BBFILE_COLLECTIONS.split())}"
#   set data_smart.py:938 [expandVarref]
#     " /home/mnhu/projects/pil/yocto/meta-poky/meta/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bbappend  ${@' '.join('/home/mnhu/projects/pil/yocto/meta-pil/%s/recipes*/*/*.bbappend' % layer for layer in BBFILE_COLLECTIONS.split())}"
#   append /home/mnhu/projects/pil/yocto/conf/layer.conf:6
#     "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
#   append /home/mnhu/projects/pil/yocto/conf/layer.conf:15
#     "${@' '.join('${LAYERDIR}/%s/recipes*/*/*.bbappend' % layer for layer in BBFILE_COLLECTIONS.split())}"
#   set data_smart.py:938 [expandVarref]
#     " /home/mnhu/projects/pil/yocto/meta-poky/meta/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bbappend  ${@' '.join('/home/mnhu/projects/pil/yocto/meta-pil/%s/recipes*/*/*.bbappend' % layer for layer in BBFILE_COLLECTIONS.split())} /home/mnhu/projects/pil/yocto/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/recipes-*/*/*.bbappend ${@' '.join('/home/mnhu/projects/pil/yocto/%s/recipes*/*/*.bbappend' % layer for layer in BBFILE_COLLECTIONS.split())}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:89
#     [doc] "List of recipe files used by BitBake to build software."
#   set cooker.py:1867 [collect_bbfiles]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/core/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/qt5-layer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/rauc/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/pil/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/customer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/core/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/qt5-layer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/rauc/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/pil/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/customer/recipes*/*/*.bbappend"
# pre-expansion value:
#   "/home/mnhu/projects/pil/yocto/meta-poky/meta/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/core/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/qt5-layer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/rauc/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/pil/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/customer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/core/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/qt5-layer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/rauc/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/pil/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/customer/recipes*/*/*.bbappend"
BBFILES="/home/mnhu/projects/pil/yocto/meta-poky/meta/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-qt5/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-rauc/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/meta-pil/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/core/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/qt5-layer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/rauc/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/pil/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/meta-pil/customer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/recipes-*/*/*.bb /home/mnhu/projects/pil/yocto/recipes-*/*/*.bbappend /home/mnhu/projects/pil/yocto/core/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/qt5-layer/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/rauc/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/pil/recipes*/*/*.bbappend /home/mnhu/projects/pil/yocto/customer/recipes*/*/*.bbappend"
#
# $BBFILE_COLLECTIONS [6 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:6
#     "core"
#   append /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:17
#     "qt5-layer"
#   append /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf:8
#     "rauc"
#   append /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:10
#     "pil"
#   append /home/mnhu/projects/pil/yocto/conf/layer.conf:8
#     "customer"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:86
#     [doc] "Lists the names of configured layers. These names are used to find the other BBFILE_* variables."
# pre-expansion value:
#   " core qt5-layer rauc pil customer"
BBFILE_COLLECTIONS=" core qt5-layer rauc pil customer"
#
# $BBFILE_PATTERN [8 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:87
#     [doc] "Variable that expands to match files from BBFILES in a particular layer. This variable is used in the layer.conf file and must be suffixed with the name of a layer."
#   override[core]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:7
#     "^${LAYERDIR}/"
#   override[core]:set data_smart.py:938 [expandVarref]
#     "^/home/mnhu/projects/pil/yocto/meta-poky/meta/"
#   override[qt5-layer]:immediate /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:18
#     "^${LAYERDIR}/"
#   override[rauc]:set /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf:9
#     "^${LAYERDIR}/"
#   override[rauc]:set data_smart.py:938 [expandVarref]
#     "^/home/mnhu/projects/pil/yocto/meta-rauc/"
#   override[pil]:immediate /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:11
#     "^${LAYERDIR}/"
#   override[customer]:immediate /home/mnhu/projects/pil/yocto/conf/layer.conf:9
#     "^${LAYERDIR}/"
# pre-expansion value:
#   "None"
#
# $BBFILE_PATTERN_core [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:7
#     "^${LAYERDIR}/"
#   set data_smart.py:938 [expandVarref]
#     "^/home/mnhu/projects/pil/yocto/meta-poky/meta/"
# pre-expansion value:
#   "^/home/mnhu/projects/pil/yocto/meta-poky/meta/"
BBFILE_PATTERN_core="^/home/mnhu/projects/pil/yocto/meta-poky/meta/"
#
# $BBFILE_PATTERN_customer
#   immediate /home/mnhu/projects/pil/yocto/conf/layer.conf:9
#     "^${LAYERDIR}/"
BBFILE_PATTERN_customer="^/home/mnhu/projects/pil/yocto/"
#
# $BBFILE_PATTERN_pil
#   immediate /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:11
#     "^${LAYERDIR}/"
BBFILE_PATTERN_pil="^/home/mnhu/projects/pil/yocto/meta-pil/"
#
# $BBFILE_PATTERN_qt5-layer
#   immediate /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:18
#     "^${LAYERDIR}/"
BBFILE_PATTERN_qt5-layer="^/home/mnhu/projects/pil/yocto/meta-qt5/"
#
# $BBFILE_PATTERN_rauc [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf:9
#     "^${LAYERDIR}/"
#   set data_smart.py:938 [expandVarref]
#     "^/home/mnhu/projects/pil/yocto/meta-rauc/"
# pre-expansion value:
#   "^/home/mnhu/projects/pil/yocto/meta-rauc/"
BBFILE_PATTERN_rauc="^/home/mnhu/projects/pil/yocto/meta-rauc/"
#
# $BBFILE_PRIORITY [6 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:88
#     [doc] "Assigns the priority for recipe files in each layer. Setting this variable allows you to prioritize a layer against other layers that contain the same recipe."
#   override[core]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:8
#     "5"
#   override[qt5-layer]:set /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:24
#     "7"
#   override[rauc]:set /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf:10
#     "6"
#   override[pil]:set /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:12
#     "6"
#   override[customer]:set /home/mnhu/projects/pil/yocto/conf/layer.conf:10
#     "10"
# pre-expansion value:
#   "None"
#
# $BBFILE_PRIORITY_core
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:8
#     "5"
BBFILE_PRIORITY_core="5"
#
# $BBFILE_PRIORITY_customer
#   set /home/mnhu/projects/pil/yocto/conf/layer.conf:10
#     "10"
BBFILE_PRIORITY_customer="10"
#
# $BBFILE_PRIORITY_pil
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:12
#     "6"
BBFILE_PRIORITY_pil="6"
#
# $BBFILE_PRIORITY_qt5-layer
#   set /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:24
#     "7"
BBFILE_PRIORITY_qt5-layer="7"
#
# $BBFILE_PRIORITY_rauc
#   set /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf:10
#     "6"
BBFILE_PRIORITY_rauc="6"
#
# $BBINCLUDED [2 operations]
#   set cookerdata.py:378 [parseConfigurationFiles]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf /home/mnhu/projects/pil/yocto/conf/layer.conf /home/mnhu/projects/pil/yocto/conf/bitbake.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/abi_version.conf /home/mnhu/projects/pil/yocto/conf/abi_version.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/abi_version.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/site.conf /home/mnhu/projects/pil/yocto/conf/site.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/site.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/site.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/site.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/site.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/auto.conf /home/mnhu/projects/pil/yocto/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/local.conf /home/mnhu/projects/pil/yocto/conf/local.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/version.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/documentation.conf /home/mnhu/projects/pil/yocto/conf/documentation.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/licenses.conf /home/mnhu/projects/pil/yocto/conf/licenses.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/sanity.conf /home/mnhu/projects/pil/yocto/conf/sanity.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf /home/mnhu/projects/pil/yocto/classes/base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass /home/mnhu/projects/pil/yocto/classes/patch.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass /home/mnhu/projects/pil/yocto/classes/terminal.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass /home/mnhu/projects/pil/yocto/classes/staging.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass /home/mnhu/projects/pil/yocto/classes/mirrors.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/mirrors.bbclass /home/mnhu/projects/pil/yocto/classes/utils.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utils.bbclass /home/mnhu/projects/pil/yocto/classes/utility-tasks.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utility-tasks.bbclass /home/mnhu/projects/pil/yocto/classes/metadata_scm.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/metadata_scm.bbclass /home/mnhu/projects/pil/yocto/classes/logging.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/logging.bbclass /home/mnhu/projects/pil/yocto/classes/package_ipk.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass /home/mnhu/projects/pil/yocto/classes/package.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass /home/mnhu/projects/pil/yocto/classes/packagedata.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/packagedata.bbclass /home/mnhu/projects/pil/yocto/classes/chrpath.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/chrpath.bbclass /home/mnhu/projects/pil/yocto/classes/insane.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass /home/mnhu/projects/pil/yocto/classes/debian.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass /home/mnhu/projects/pil/yocto/classes/devshell.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/devshell.bbclass /home/mnhu/projects/pil/yocto/classes/sstate.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass /home/mnhu/projects/pil/yocto/classes/license.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass /home/mnhu/projects/pil/yocto/classes/remove-libtool.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/remove-libtool.bbclass /home/mnhu/projects/pil/yocto/classes/blacklist.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/blacklist.bbclass /home/mnhu/projects/pil/yocto/classes/sanity.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass"
#   set ast.py:363 [finalize]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf /home/mnhu/projects/pil/yocto/conf/layer.conf /home/mnhu/projects/pil/yocto/conf/bitbake.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/abi_version.conf /home/mnhu/projects/pil/yocto/conf/abi_version.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/abi_version.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/site.conf /home/mnhu/projects/pil/yocto/conf/site.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/site.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/site.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/site.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/site.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/auto.conf /home/mnhu/projects/pil/yocto/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/local.conf /home/mnhu/projects/pil/yocto/conf/local.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/version.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/documentation.conf /home/mnhu/projects/pil/yocto/conf/documentation.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/licenses.conf /home/mnhu/projects/pil/yocto/conf/licenses.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/sanity.conf /home/mnhu/projects/pil/yocto/conf/sanity.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf /home/mnhu/projects/pil/yocto/classes/base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass /home/mnhu/projects/pil/yocto/classes/patch.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass /home/mnhu/projects/pil/yocto/classes/terminal.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass /home/mnhu/projects/pil/yocto/classes/staging.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass /home/mnhu/projects/pil/yocto/classes/mirrors.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/mirrors.bbclass /home/mnhu/projects/pil/yocto/classes/utils.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utils.bbclass /home/mnhu/projects/pil/yocto/classes/utility-tasks.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utility-tasks.bbclass /home/mnhu/projects/pil/yocto/classes/metadata_scm.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/metadata_scm.bbclass /home/mnhu/projects/pil/yocto/classes/logging.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/logging.bbclass /home/mnhu/projects/pil/yocto/classes/package_ipk.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass /home/mnhu/projects/pil/yocto/classes/package.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass /home/mnhu/projects/pil/yocto/classes/packagedata.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/packagedata.bbclass /home/mnhu/projects/pil/yocto/classes/chrpath.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/chrpath.bbclass /home/mnhu/projects/pil/yocto/classes/insane.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass /home/mnhu/projects/pil/yocto/classes/debian.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass /home/mnhu/projects/pil/yocto/classes/devshell.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/devshell.bbclass /home/mnhu/projects/pil/yocto/classes/sstate.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass /home/mnhu/projects/pil/yocto/classes/license.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass /home/mnhu/projects/pil/yocto/classes/remove-libtool.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/remove-libtool.bbclass /home/mnhu/projects/pil/yocto/classes/blacklist.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/blacklist.bbclass /home/mnhu/projects/pil/yocto/classes/sanity.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb /home/mnhu/projects/pil/yocto/classes/deploy.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc /home/mnhu/projects/pil/yocto/classes/extrausers.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/extrausers.bbclass /home/mnhu/projects/pil/yocto/classes/useradd_base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/useradd_base.bbclass /home/mnhu/projects/pil/yocto/classes/image.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass /home/mnhu/projects/pil/yocto/classes/rootfs_ipk.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass /home/mnhu/projects/pil/yocto/classes/populate_sdk_ext.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass /home/mnhu/projects/pil/yocto/classes/populate_sdk_base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass /home/mnhu/projects/pil/yocto/classes/meta.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/meta.bbclass /home/mnhu/projects/pil/yocto/classes/image_types_wic.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass /home/mnhu/projects/pil/yocto/classes/image_types_uboot.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass /home/mnhu/projects/pil/yocto/classes/image_types.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass /home/mnhu/projects/pil/yocto/classes/siteinfo.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/siteinfo.bbclass /home/mnhu/projects/pil/yocto/classes/kernel-arch.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass /home/mnhu/projects/pil/yocto/classes/rootfs-postcommands.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs-postcommands.bbclass"
# pre-expansion value:
#   "/home/mnhu/projects/pil/yocto/conf/bblayers.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf /home/mnhu/projects/pil/yocto/conf/layer.conf /home/mnhu/projects/pil/yocto/conf/bitbake.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/abi_version.conf /home/mnhu/projects/pil/yocto/conf/abi_version.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/abi_version.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/site.conf /home/mnhu/projects/pil/yocto/conf/site.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/site.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/site.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/site.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/site.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/auto.conf /home/mnhu/projects/pil/yocto/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/local.conf /home/mnhu/projects/pil/yocto/conf/local.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/version.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/documentation.conf /home/mnhu/projects/pil/yocto/conf/documentation.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/licenses.conf /home/mnhu/projects/pil/yocto/conf/licenses.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/sanity.conf /home/mnhu/projects/pil/yocto/conf/sanity.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf /home/mnhu/projects/pil/yocto/classes/base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass /home/mnhu/projects/pil/yocto/classes/patch.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass /home/mnhu/projects/pil/yocto/classes/terminal.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass /home/mnhu/projects/pil/yocto/classes/staging.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass /home/mnhu/projects/pil/yocto/classes/mirrors.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/mirrors.bbclass /home/mnhu/projects/pil/yocto/classes/utils.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utils.bbclass /home/mnhu/projects/pil/yocto/classes/utility-tasks.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utility-tasks.bbclass /home/mnhu/projects/pil/yocto/classes/metadata_scm.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/metadata_scm.bbclass /home/mnhu/projects/pil/yocto/classes/logging.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/logging.bbclass /home/mnhu/projects/pil/yocto/classes/package_ipk.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass /home/mnhu/projects/pil/yocto/classes/package.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass /home/mnhu/projects/pil/yocto/classes/packagedata.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/packagedata.bbclass /home/mnhu/projects/pil/yocto/classes/chrpath.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/chrpath.bbclass /home/mnhu/projects/pil/yocto/classes/insane.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass /home/mnhu/projects/pil/yocto/classes/debian.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass /home/mnhu/projects/pil/yocto/classes/devshell.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/devshell.bbclass /home/mnhu/projects/pil/yocto/classes/sstate.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass /home/mnhu/projects/pil/yocto/classes/license.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass /home/mnhu/projects/pil/yocto/classes/remove-libtool.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/remove-libtool.bbclass /home/mnhu/projects/pil/yocto/classes/blacklist.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/blacklist.bbclass /home/mnhu/projects/pil/yocto/classes/sanity.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb /home/mnhu/projects/pil/yocto/classes/deploy.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc /home/mnhu/projects/pil/yocto/classes/extrausers.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/extrausers.bbclass /home/mnhu/projects/pil/yocto/classes/useradd_base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/useradd_base.bbclass /home/mnhu/projects/pil/yocto/classes/image.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass /home/mnhu/projects/pil/yocto/classes/rootfs_ipk.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass /home/mnhu/projects/pil/yocto/classes/populate_sdk_ext.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass /home/mnhu/projects/pil/yocto/classes/populate_sdk_base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass /home/mnhu/projects/pil/yocto/classes/meta.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/meta.bbclass /home/mnhu/projects/pil/yocto/classes/image_types_wic.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass /home/mnhu/projects/pil/yocto/classes/image_types_uboot.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass /home/mnhu/projects/pil/yocto/classes/image_types.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass /home/mnhu/projects/pil/yocto/classes/siteinfo.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/siteinfo.bbclass /home/mnhu/projects/pil/yocto/classes/kernel-arch.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass /home/mnhu/projects/pil/yocto/classes/rootfs-postcommands.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs-postcommands.bbclass"
BBINCLUDED="/home/mnhu/projects/pil/yocto/conf/bblayers.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf /home/mnhu/projects/pil/yocto/conf/layer.conf /home/mnhu/projects/pil/yocto/conf/bitbake.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/abi_version.conf /home/mnhu/projects/pil/yocto/conf/abi_version.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/abi_version.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/site.conf /home/mnhu/projects/pil/yocto/conf/site.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/site.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/site.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/site.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/site.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/auto.conf /home/mnhu/projects/pil/yocto/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/auto.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/local.conf /home/mnhu/projects/pil/yocto/conf/local.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/multiconfig/default.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/build/x86_64-linux.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/soc-family.inc /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/target/arm-oe-linuxeabi.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-qt5/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-rauc/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/version.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-versions.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/documentation.conf /home/mnhu/projects/pil/yocto/conf/documentation.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/licenses.conf /home/mnhu/projects/pil/yocto/conf/licenses.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/conf/sanity.conf /home/mnhu/projects/pil/yocto/conf/sanity.conf /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf /home/mnhu/projects/pil/yocto/classes/base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass /home/mnhu/projects/pil/yocto/classes/patch.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass /home/mnhu/projects/pil/yocto/classes/terminal.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass /home/mnhu/projects/pil/yocto/classes/staging.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass /home/mnhu/projects/pil/yocto/classes/mirrors.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/mirrors.bbclass /home/mnhu/projects/pil/yocto/classes/utils.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utils.bbclass /home/mnhu/projects/pil/yocto/classes/utility-tasks.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utility-tasks.bbclass /home/mnhu/projects/pil/yocto/classes/metadata_scm.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/metadata_scm.bbclass /home/mnhu/projects/pil/yocto/classes/logging.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/logging.bbclass /home/mnhu/projects/pil/yocto/classes/package_ipk.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass /home/mnhu/projects/pil/yocto/classes/package.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass /home/mnhu/projects/pil/yocto/classes/packagedata.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/packagedata.bbclass /home/mnhu/projects/pil/yocto/classes/chrpath.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/chrpath.bbclass /home/mnhu/projects/pil/yocto/classes/insane.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass /home/mnhu/projects/pil/yocto/classes/debian.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass /home/mnhu/projects/pil/yocto/classes/devshell.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/devshell.bbclass /home/mnhu/projects/pil/yocto/classes/sstate.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass /home/mnhu/projects/pil/yocto/classes/license.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass /home/mnhu/projects/pil/yocto/classes/remove-libtool.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/remove-libtool.bbclass /home/mnhu/projects/pil/yocto/classes/blacklist.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/blacklist.bbclass /home/mnhu/projects/pil/yocto/classes/sanity.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb /home/mnhu/projects/pil/yocto/classes/deploy.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc /home/mnhu/projects/pil/yocto/classes/extrausers.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/extrausers.bbclass /home/mnhu/projects/pil/yocto/classes/useradd_base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/useradd_base.bbclass /home/mnhu/projects/pil/yocto/classes/image.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass /home/mnhu/projects/pil/yocto/classes/rootfs_ipk.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass /home/mnhu/projects/pil/yocto/classes/populate_sdk_ext.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass /home/mnhu/projects/pil/yocto/classes/populate_sdk_base.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass /home/mnhu/projects/pil/yocto/classes/meta.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/meta.bbclass /home/mnhu/projects/pil/yocto/classes/image_types_wic.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass /home/mnhu/projects/pil/yocto/classes/image_types_uboot.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass /home/mnhu/projects/pil/yocto/classes/image_types.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass /home/mnhu/projects/pil/yocto/classes/siteinfo.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/siteinfo.bbclass /home/mnhu/projects/pil/yocto/classes/kernel-arch.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass /home/mnhu/projects/pil/yocto/classes/rootfs-postcommands.bbclass /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs-postcommands.bbclass"
#
# $BBINCLUDELOGS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:40
#     [_defaultval] "yes"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:90
#     [doc] "Variable that controls how BitBake displays logs on build failure."
# pre-expansion value:
#   "yes"
BBINCLUDELOGS="yes"
#
# $BBINCLUDELOGS_LINES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:91
#     [doc] "Amount of log lines printed on failure."
#
# $BBLAYERS [2 operations]
#   set /home/mnhu/projects/pil/yocto/conf/bblayers.conf:11
#     " ${TOPDIR}/meta-poky/meta ${TOPDIR}/meta-qt5 ${TOPDIR}/meta-rauc ${TOPDIR}/meta-pil ${TOPDIR} "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:92
#     [doc] "Lists the layers to enable during the build. This variable is defined in the bblayers.conf configuration file."
# pre-expansion value:
#   " ${TOPDIR}/meta-poky/meta ${TOPDIR}/meta-qt5 ${TOPDIR}/meta-rauc ${TOPDIR}/meta-pil ${TOPDIR} "
BBLAYERS=" /home/mnhu/projects/pil/yocto/meta-poky/meta /home/mnhu/projects/pil/yocto/meta-qt5 /home/mnhu/projects/pil/yocto/meta-rauc /home/mnhu/projects/pil/yocto/meta-pil /home/mnhu/projects/pil/yocto "
#
# $BBLAYERS_CONF_UPDATE_FUNCS
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass:35
#     "     conf/bblayers.conf:LCONF_VERSION:LAYER_CONF_VERSION:oecore_update_bblayers     conf/local.conf:CONF_VERSION:LOCALCONF_VERSION:oecore_update_localconf     conf/site.conf:SCONF_VERSION:SITE_CONF_VERSION:oecore_update_siteconf "
BBLAYERS_CONF_UPDATE_FUNCS="      conf/bblayers.conf:LCONF_VERSION:LAYER_CONF_VERSION:oecore_update_bblayers     conf/local.conf:CONF_VERSION:LOCALCONF_VERSION:oecore_update_localconf     conf/site.conf:SCONF_VERSION:SITE_CONF_VERSION:oecore_update_siteconf "
#
# $BBLAYERS_FETCH_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:600
#     [_defaultval] "${COREBASE}"
BBLAYERS_FETCH_DIR="/home/mnhu/projects/pil/yocto/meta-poky"
#
# $BBLAYERS_LAYERINDEX_NAME_core
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:14
#     "openembedded-core"
BBLAYERS_LAYERINDEX_NAME_core="openembedded-core"
#
# $BBLAYERS_LAYERINDEX_URL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:599
#     [_defaultval] "http://layers.openembedded.org/layerindex/"
BBLAYERS_LAYERINDEX_URL="http://layers.openembedded.org/layerindex/"
#
# $BBMASK [2 operations]
#   append /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:22
#     "/meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins.*_1\.10.%\.bbappend"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:93
#     [doc] "Prevents BitBake from processing specific recipes or recipe append files."
# pre-expansion value:
#   " /meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins.*_1\.10.%\.bbappend"
BBMASK=" /meta-freescale/recipes-multimedia/gstreamer/gstreamer1.0-plugins.*_1\.10.%\.bbappend"
#
# $BBPATH [12 operations]
#   set /home/mnhu/projects/pil/yocto/conf/bblayers.conf:3
#     "${TOPDIR}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:2
#     ":${LAYERDIR}"
#   set data_smart.py:938 [expandVarref]
#     "${TOPDIR}:/home/mnhu/projects/pil/yocto/meta-poky/meta"
#   postdot /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:12
#     ":${LAYERDIR}"
#   set data_smart.py:938 [expandVarref]
#     "${TOPDIR}:/home/mnhu/projects/pil/yocto/meta-poky/meta:/home/mnhu/projects/pil/yocto/meta-qt5"
#   postdot /home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf:2
#     ":${LAYERDIR}"
#   set data_smart.py:938 [expandVarref]
#     "${TOPDIR}:/home/mnhu/projects/pil/yocto/meta-poky/meta:/home/mnhu/projects/pil/yocto/meta-qt5:/home/mnhu/projects/pil/yocto/meta-rauc"
#   postdot /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:2
#     ":${LAYERDIR}"
#   set data_smart.py:938 [expandVarref]
#     "${TOPDIR}:/home/mnhu/projects/pil/yocto/meta-poky/meta:/home/mnhu/projects/pil/yocto/meta-qt5:/home/mnhu/projects/pil/yocto/meta-rauc:/home/mnhu/projects/pil/yocto/meta-pil"
#   postdot /home/mnhu/projects/pil/yocto/conf/layer.conf:2
#     ":${LAYERDIR}"
#   set data_smart.py:938 [expandVarref]
#     "${TOPDIR}:/home/mnhu/projects/pil/yocto/meta-poky/meta:/home/mnhu/projects/pil/yocto/meta-qt5:/home/mnhu/projects/pil/yocto/meta-rauc:/home/mnhu/projects/pil/yocto/meta-pil:/home/mnhu/projects/pil/yocto"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:94
#     [doc] "Used by BitBake to locate .bbclass and configuration files. This variable is analogous to the PATH variable."
# pre-expansion value:
#   "${TOPDIR}:/home/mnhu/projects/pil/yocto/meta-poky/meta:/home/mnhu/projects/pil/yocto/meta-qt5:/home/mnhu/projects/pil/yocto/meta-rauc:/home/mnhu/projects/pil/yocto/meta-pil:/home/mnhu/projects/pil/yocto"
BBPATH="/home/mnhu/projects/pil/yocto:/home/mnhu/projects/pil/yocto/meta-poky/meta:/home/mnhu/projects/pil/yocto/meta-qt5:/home/mnhu/projects/pil/yocto/meta-rauc:/home/mnhu/projects/pil/yocto/meta-pil:/home/mnhu/projects/pil/yocto"
#
# $BBSERVER
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:95
#     [doc] "Points to the server that runs memory-resident BitBake."
#
# $BB_BASEHASH_task-do_build
#   set siggen.py:171 [finalise]
#     "255f810e56dc90797e73c1b3b2fdbc6a"
BB_BASEHASH_task-do_build="255f810e56dc90797e73c1b3b2fdbc6a"
#
# $BB_BASEHASH_task-do_bundle_initramfs
#   set siggen.py:171 [finalise]
#     "255f810e56dc90797e73c1b3b2fdbc6a"
BB_BASEHASH_task-do_bundle_initramfs="255f810e56dc90797e73c1b3b2fdbc6a"
#
# $BB_BASEHASH_task-do_checkuri
#   set siggen.py:171 [finalise]
#     "db15b73013afde7f431d32ad6ed76564"
BB_BASEHASH_task-do_checkuri="db15b73013afde7f431d32ad6ed76564"
#
# $BB_BASEHASH_task-do_checkuriall
#   set siggen.py:171 [finalise]
#     "2eb2f800d422be6ab46bf6cf0b5b496e"
BB_BASEHASH_task-do_checkuriall="2eb2f800d422be6ab46bf6cf0b5b496e"
#
# $BB_BASEHASH_task-do_clean
#   set siggen.py:171 [finalise]
#     "41f5aa8076ec8912bc06741089004acd"
BB_BASEHASH_task-do_clean="41f5aa8076ec8912bc06741089004acd"
#
# $BB_BASEHASH_task-do_cleanall
#   set siggen.py:171 [finalise]
#     "f83b549a5912eb9fbd96d08790b7b55a"
BB_BASEHASH_task-do_cleanall="f83b549a5912eb9fbd96d08790b7b55a"
#
# $BB_BASEHASH_task-do_cleansstate
#   set siggen.py:171 [finalise]
#     "6d7cb18373298984ae8086ea95a94a15"
BB_BASEHASH_task-do_cleansstate="6d7cb18373298984ae8086ea95a94a15"
#
# $BB_BASEHASH_task-do_compile
#   set siggen.py:171 [finalise]
#     "adb8cb17412c5d0b633ae736f8904a7f"
BB_BASEHASH_task-do_compile="adb8cb17412c5d0b633ae736f8904a7f"
#
# $BB_BASEHASH_task-do_configure
#   set siggen.py:171 [finalise]
#     "4d77b97475a6c3784093532143d5a204"
BB_BASEHASH_task-do_configure="4d77b97475a6c3784093532143d5a204"
#
# $BB_BASEHASH_task-do_deploy_setscene
#   set siggen.py:171 [finalise]
#     "fa94f2b43aa4eecd3428c7c3fcbba89a"
BB_BASEHASH_task-do_deploy_setscene="fa94f2b43aa4eecd3428c7c3fcbba89a"
#
# $BB_BASEHASH_task-do_devpyshell
#   set siggen.py:171 [finalise]
#     "3973e2a86db603c2e353aa4d0fda58b5"
BB_BASEHASH_task-do_devpyshell="3973e2a86db603c2e353aa4d0fda58b5"
#
# $BB_BASEHASH_task-do_devshell
#   set siggen.py:171 [finalise]
#     "bebadf1f8928a9aa82783974db7ca190"
BB_BASEHASH_task-do_devshell="bebadf1f8928a9aa82783974db7ca190"
#
# $BB_BASEHASH_task-do_fetch
#   set siggen.py:171 [finalise]
#     "7965b293be49349a4e8e8e90aa33c827"
BB_BASEHASH_task-do_fetch="7965b293be49349a4e8e8e90aa33c827"
#
# $BB_BASEHASH_task-do_fetchall
#   set siggen.py:171 [finalise]
#     "a6322471759acb14b3e3264dd9a6cae2"
BB_BASEHASH_task-do_fetchall="a6322471759acb14b3e3264dd9a6cae2"
#
# $BB_BASEHASH_task-do_image [3 operations]
#   set siggen.py:171 [finalise]
#     "592ff0380c50a5fc3bd12211611abeb8"
#   override[qa]:set siggen.py:171 [finalise]
#     "4abe81057f64aca32278d7dcd42f4145"
#   override[complete]:set siggen.py:171 [finalise]
#     "4801a950ff0cd87fc718bff6ea2a74d5"
# pre-expansion value:
#   "592ff0380c50a5fc3bd12211611abeb8"
BB_BASEHASH_task-do_image="592ff0380c50a5fc3bd12211611abeb8"
#
# $BB_BASEHASH_task-do_image_complete
#   set siggen.py:171 [finalise]
#     "4801a950ff0cd87fc718bff6ea2a74d5"
BB_BASEHASH_task-do_image_complete="4801a950ff0cd87fc718bff6ea2a74d5"
#
# $BB_BASEHASH_task-do_image_cpio
#   set siggen.py:171 [finalise]
#     "8c7b717add6b1d1ba6ff761ebfdedf01"
BB_BASEHASH_task-do_image_cpio="8c7b717add6b1d1ba6ff761ebfdedf01"
#
# $BB_BASEHASH_task-do_image_qa
#   set siggen.py:171 [finalise]
#     "4abe81057f64aca32278d7dcd42f4145"
BB_BASEHASH_task-do_image_qa="4abe81057f64aca32278d7dcd42f4145"
#
# $BB_BASEHASH_task-do_image_tar
#   set siggen.py:171 [finalise]
#     "1c1c1a06bb470345fa68e403ad178656"
BB_BASEHASH_task-do_image_tar="1c1c1a06bb470345fa68e403ad178656"
#
# $BB_BASEHASH_task-do_install
#   set siggen.py:171 [finalise]
#     "4a5e3365f3ccf7b3ff79f561d01c3db6"
BB_BASEHASH_task-do_install="4a5e3365f3ccf7b3ff79f561d01c3db6"
#
# $BB_BASEHASH_task-do_listtasks
#   set siggen.py:171 [finalise]
#     "7bb1e97eebb79eb860085cecf947f867"
BB_BASEHASH_task-do_listtasks="7bb1e97eebb79eb860085cecf947f867"
#
# $BB_BASEHASH_task-do_package
#   set siggen.py:171 [finalise]
#     "c86ae3c0b99dd6d938abf4a2f53f62b8"
BB_BASEHASH_task-do_package="c86ae3c0b99dd6d938abf4a2f53f62b8"
#
# $BB_BASEHASH_task-do_package_qa_setscene
#   set siggen.py:171 [finalise]
#     "fa94f2b43aa4eecd3428c7c3fcbba89a"
BB_BASEHASH_task-do_package_qa_setscene="fa94f2b43aa4eecd3428c7c3fcbba89a"
#
# $BB_BASEHASH_task-do_package_setscene
#   set siggen.py:171 [finalise]
#     "3f29b36f2da60e15aeffeef53631157a"
BB_BASEHASH_task-do_package_setscene="3f29b36f2da60e15aeffeef53631157a"
#
# $BB_BASEHASH_task-do_package_write_ipk [2 operations]
#   set siggen.py:171 [finalise]
#     "1d7d4227c436bb8db28504b55ca05978"
#   override[setscene]:set siggen.py:171 [finalise]
#     "01e1ef3b6dec1fe91091041ec985c454"
# pre-expansion value:
#   "1d7d4227c436bb8db28504b55ca05978"
BB_BASEHASH_task-do_package_write_ipk="1d7d4227c436bb8db28504b55ca05978"
#
# $BB_BASEHASH_task-do_package_write_ipk_setscene
#   set siggen.py:171 [finalise]
#     "01e1ef3b6dec1fe91091041ec985c454"
BB_BASEHASH_task-do_package_write_ipk_setscene="01e1ef3b6dec1fe91091041ec985c454"
#
# $BB_BASEHASH_task-do_packagedata [2 operations]
#   set siggen.py:171 [finalise]
#     "3f7645372c86d14dd83c93a830f66722"
#   override[setscene]:set siggen.py:171 [finalise]
#     "fa94f2b43aa4eecd3428c7c3fcbba89a"
# pre-expansion value:
#   "3f7645372c86d14dd83c93a830f66722"
BB_BASEHASH_task-do_packagedata="3f7645372c86d14dd83c93a830f66722"
#
# $BB_BASEHASH_task-do_packagedata_setscene
#   set siggen.py:171 [finalise]
#     "fa94f2b43aa4eecd3428c7c3fcbba89a"
BB_BASEHASH_task-do_packagedata_setscene="fa94f2b43aa4eecd3428c7c3fcbba89a"
#
# $BB_BASEHASH_task-do_patch
#   set siggen.py:171 [finalise]
#     "42a0be5a6010b305569ac0981b519429"
BB_BASEHASH_task-do_patch="42a0be5a6010b305569ac0981b519429"
#
# $BB_BASEHASH_task-do_populate_lic
#   set siggen.py:171 [finalise]
#     "84f23a1046c468ca755559baebb29527"
BB_BASEHASH_task-do_populate_lic="84f23a1046c468ca755559baebb29527"
#
# $BB_BASEHASH_task-do_populate_lic_setscene
#   set siggen.py:171 [finalise]
#     "fa94f2b43aa4eecd3428c7c3fcbba89a"
BB_BASEHASH_task-do_populate_lic_setscene="fa94f2b43aa4eecd3428c7c3fcbba89a"
#
# $BB_BASEHASH_task-do_populate_sdk [2 operations]
#   set siggen.py:171 [finalise]
#     "cc749b954b1fb832d3c23448da2f70bf"
#   override[ext]:set siggen.py:171 [finalise]
#     "d4fa3dbd2c1334625ce679358443416e"
# pre-expansion value:
#   "cc749b954b1fb832d3c23448da2f70bf"
BB_BASEHASH_task-do_populate_sdk="cc749b954b1fb832d3c23448da2f70bf"
#
# $BB_BASEHASH_task-do_populate_sdk_ext
#   set siggen.py:171 [finalise]
#     "d4fa3dbd2c1334625ce679358443416e"
BB_BASEHASH_task-do_populate_sdk_ext="d4fa3dbd2c1334625ce679358443416e"
#
# $BB_BASEHASH_task-do_populate_sysroot_setscene
#   set siggen.py:171 [finalise]
#     "fa94f2b43aa4eecd3428c7c3fcbba89a"
BB_BASEHASH_task-do_populate_sysroot_setscene="fa94f2b43aa4eecd3428c7c3fcbba89a"
#
# $BB_BASEHASH_task-do_prepare_recipe_sysroot
#   set siggen.py:171 [finalise]
#     "52d8105d97ad0d87ac3867dcbdf99982"
BB_BASEHASH_task-do_prepare_recipe_sysroot="52d8105d97ad0d87ac3867dcbdf99982"
#
# $BB_BASEHASH_task-do_rootfs [2 operations]
#   set siggen.py:171 [finalise]
#     "b65db28f6fecb9a4999e9b91c3b33300"
#   override[wicenv]:set siggen.py:171 [finalise]
#     "49b5dae8929cfc2e0508c0b18af244b9"
# pre-expansion value:
#   "b65db28f6fecb9a4999e9b91c3b33300"
BB_BASEHASH_task-do_rootfs="b65db28f6fecb9a4999e9b91c3b33300"
#
# $BB_BASEHASH_task-do_rootfs_wicenv
#   set siggen.py:171 [finalise]
#     "49b5dae8929cfc2e0508c0b18af244b9"
BB_BASEHASH_task-do_rootfs_wicenv="49b5dae8929cfc2e0508c0b18af244b9"
#
# $BB_BASEHASH_task-do_sdk_depends
#   set siggen.py:171 [finalise]
#     "c8d1b871f4d7050937c6facd00c58a13"
BB_BASEHASH_task-do_sdk_depends="c8d1b871f4d7050937c6facd00c58a13"
#
# $BB_BASEHASH_task-do_unpack
#   set siggen.py:171 [finalise]
#     "022fcfd9f736aa2b9b1416bab7bd4408"
BB_BASEHASH_task-do_unpack="022fcfd9f736aa2b9b1416bab7bd4408"
#
# $BB_CONSOLELOG [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:843
#     "${LOG_DIR}/cooker/${MACHINE}/${DATETIME}.log"
#   set cooker.py:364 [initConfigurationData]
#     "/home/mnhu/projects/pil/yocto/tmp-glibc/log/cooker/rpi2/20170915073223.log"
# pre-expansion value:
#   "/home/mnhu/projects/pil/yocto/tmp-glibc/log/cooker/rpi2/20170915073223.log"
BB_CONSOLELOG="/home/mnhu/projects/pil/yocto/tmp-glibc/log/cooker/rpi2/20170915073223.log"
#
# $BB_CURRENT_MC
#   set cookerdata.py:312 [parseConfigurationFiles]
#     "default"
BB_CURRENT_MC="default"
#
# $BB_DANGLINGAPPENDS_WARNONLY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:80
#     [doc] "Defines how BitBake handles situations where an append file (.bbappend) has no corresponding recipe file (.bb)."
#
# $BB_DEFAULT_TASK
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:1
#     "build"
BB_DEFAULT_TASK="build"
#
# $BB_DISKMON_DIRS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:81
#     [doc] "Monitors disk space and available inodes during the build and allows you to control the build based on these parameters."
#
# $BB_DISKMON_WARNINTERVAL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:82
#     [doc] "Defines the disk space and free inode warning intervals. To set these intervals, define the variable in the conf/local.conf file in the Build Directory."
#
# $BB_ENV_EXTRAWHITE
#   from env data.py:124 [inheritFromOS]
#     "ALL_PROXY BBPATH_EXTRA BB_NO_NETWORK BB_NUMBER_THREADS BB_SETSCENE_ENFORCE BB_SRCREV_POLICY DISTRO FTPS_PROXY FTP_PROXY GIT_PROXY_COMMAND HTTPS_PROXY HTTP_PROXY MACHINE NO_PROXY PARALLEL_MAKE SCREENDIR SDKMACHINE SOCKS5_PASSWD SOCKS5_USER SSH_AGENT_PID SSH_AUTH_SOCK STAMPS_DIR TCLIBC TCMODE all_proxy ftp_proxy ftps_proxy http_proxy https_proxy no_proxy "
BB_ENV_EXTRAWHITE="ALL_PROXY BBPATH_EXTRA BB_NO_NETWORK BB_NUMBER_THREADS BB_SETSCENE_ENFORCE BB_SRCREV_POLICY DISTRO FTPS_PROXY FTP_PROXY GIT_PROXY_COMMAND HTTPS_PROXY HTTP_PROXY MACHINE NO_PROXY PARALLEL_MAKE SCREENDIR SDKMACHINE SOCKS5_PASSWD SOCKS5_USER SSH_AGENT_PID SSH_AUTH_SOCK STAMPS_DIR TCLIBC TCMODE all_proxy ftp_proxy ftps_proxy http_proxy https_proxy no_proxy "
#
# $BB_GENERATE_MIRROR_TARBALLS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:35
#     [_defaultval] "0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:83
#     [doc] "Causes tarballs of the Git repositories to be placed in the DL_DIR directory."
# pre-expansion value:
#   "0"
BB_GENERATE_MIRROR_TARBALLS="0"
#
# $BB_HASHBASE_WHITELIST
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:853
#     "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH BB_WORKERCONTEXT BB_LIMITEDDEPS extend_recipe_sysroot DEPLOY_DIR"
BB_HASHBASE_WHITELIST="TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH BB_WORKERCONTEXT BB_LIMITEDDEPS extend_recipe_sysroot DEPLOY_DIR"
#
# $BB_HASHCHECK_FUNCTION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:763
#     "sstate_checkhashes"
BB_HASHCHECK_FUNCTION="sstate_checkhashes"
#
# $BB_HASHCONFIG_WHITELIST
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:859
#     "${BB_HASHBASE_WHITELIST} DATE TIME SSH_AGENT_PID SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED GIT_PROXY_COMMAND ALL_PROXY all_proxy NO_PROXY no_proxy FTP_PROXY ftp_proxy HTTP_PROXY http_proxy HTTPS_PROXY https_proxy SOCKS5_USER SOCKS5_PASSWD BB_SETSCENE_ENFORCE"
BB_HASHCONFIG_WHITELIST="TMPDIR FILE PATH PWD BB_TASKHASH BBPATH BBSERVER DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX WARN_QA ERROR_QA WORKDIR STAMPCLEAN PKGDATA_DIR BUILD_ARCH SSTATE_PKGARCH BB_WORKERCONTEXT BB_LIMITEDDEPS extend_recipe_sysroot DEPLOY_DIR DATE TIME SSH_AGENT_PID SSH_AUTH_SOCK PSEUDO_BUILD BB_ENV_EXTRAWHITE DISABLE_SANITY_CHECKS PARALLEL_MAKE BB_NUMBER_THREADS BB_ORIGENV BB_INVALIDCONF BBINCLUDED GIT_PROXY_COMMAND ALL_PROXY all_proxy NO_PROXY no_proxy FTP_PROXY ftp_proxy HTTP_PROXY http_proxy HTTPS_PROXY https_proxy SOCKS5_USER SOCKS5_PASSWD BB_SETSCENE_ENFORCE"
#
# $BB_HASHFILENAME
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:38
#     "False ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}"
BB_HASHFILENAME="False sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3: sstate:rescue-rootfs::1.0:r0::3:"
#
# $BB_MIN_VERSION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf:6
#     "1.33.4"
BB_MIN_VERSION="1.33.4"
#
# $BB_NUMBER_THREADS [3 operations]
#   set? /home/mnhu/projects/pil/yocto/conf/local.conf:18
#     "4"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:84
#     [doc] "The maximum number of tasks BitBake should run in parallel at any one time. A good rule of thumb is to set this variable to twice the number of cores."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:772
#     "${@oe.utils.cpu_count()}"
# pre-expansion value:
#   "4"
BB_NUMBER_THREADS="4"
#
# $BB_ORIGENV
#   set cookerdata.py:257 [__init__]
#     "<bb.data_smart.DataSmart object at 0x7fe264202160>"
BB_ORIGENV="<bb.data_smart.DataSmart object at 0x7fe25c7326d8>"
#
# $BB_SETSCENE_DEPVALID
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:895
#     "setscene_depvalid"
BB_SETSCENE_DEPVALID="setscene_depvalid"
#
# $BB_SIGNATURE_EXCLUDE_FLAGS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:865
#     "doc deps depends lockfiles type vardepsexclude vardeps vardepvalue vardepvalueexclude file-checksums python func task export unexport noexec nostamp dirs cleandirs sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno progress"
BB_SIGNATURE_EXCLUDE_FLAGS="doc deps depends lockfiles type vardepsexclude vardeps vardepvalue vardepvalueexclude file-checksums python func task export unexport noexec nostamp dirs cleandirs sstate-lockfile-shared prefuncs postfuncs export_func deptask rdeptask recrdeptask nodeprrecs stamp-extra-info sstate-outputdirs filename lineno progress"
#
# $BB_SIGNATURE_HANDLER
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:846
#     "OEBasicHash"
BB_SIGNATURE_HANDLER="OEBasicHash"
#
# $BB_STRICT_CHECKSUM
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:45
#     "1"
BB_STRICT_CHECKSUM="1"
#
# $BB_VERSION
#   set base.bbclass:237 [base_eventhandler]
#     "1.34.0"
BB_VERSION="1.34.0"
#
# $BINCONFIG_GLOB
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:96
#     [doc] "When inheriting binconfig.bbclass from a recipe, this variable specifies a wildcard for configuration scripts that need editing."
#
# $BINUVERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:27
#     "2.28%"
BINUVERSION="2.28%"
#
# $BP [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:217
#     "${BPN}-${PV}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:97
#     [doc] "The base recipe name and version but without any special recipe name suffix (i.e. -native, lib64-, and so forth). BP is comprised of ${BPN}-${PV}"
# pre-expansion value:
#   "${BPN}-${PV}"
BP="rescue-rootfs-1.0"
#
# $BPN [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:216
#     "${@base_prune_suffix(d.getVar('PN'), d.getVar('SPECIAL_PKGSUFFIX').split(), d)}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:98
#     [doc] "The bare name of the recipe. This variable is a version of the PN variable but removes common suffixes and prefixes."
# pre-expansion value:
#   "${@base_prune_suffix(d.getVar('PN'), d.getVar('SPECIAL_PKGSUFFIX').split(), d)}"
BPN="rescue-rootfs"
#
# $BUGTRACKER
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:99
#     [doc] "Specifies a URL for an upstream bug tracking website for a recipe."
#
# $BUILDCFG_FUNCS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:208
#     [_defaultval] "buildcfg_vars get_layers_branch_rev buildcfg_neededvars"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:209
#     [type] "list"
# pre-expansion value:
#   "buildcfg_vars get_layers_branch_rev buildcfg_neededvars"
BUILDCFG_FUNCS="buildcfg_vars get_layers_branch_rev buildcfg_neededvars"
#
# $BUILDCFG_HEADER
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:679
#     "Build Configuration:"
BUILDCFG_HEADER="Build Configuration:"
#
# $BUILDCFG_NEEDEDVARS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:682
#     "TARGET_ARCH TARGET_OS"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:683
#     [type] "list"
# pre-expansion value:
#   "TARGET_ARCH TARGET_OS"
BUILDCFG_NEEDEDVARS="TARGET_ARCH TARGET_OS"
#
# $BUILDCFG_VARS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:680
#     "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:681
#     [type] "list"
# pre-expansion value:
#   "BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
BUILDCFG_VARS="BB_VERSION BUILD_SYS NATIVELSBSTRING TARGET_SYS MACHINE DISTRO DISTRO_VERSION TUNE_FEATURES TARGET_FPU"
#
# $BUILDDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:102
#     [doc] "Points to the location of the Build Directory."
#
# $BUILDSDK_CFLAGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:544
#     "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}"
BUILDSDK_CFLAGS=" -O2 -pipe"
#
# $BUILDSDK_CPPFLAGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:539
#     ""
BUILDSDK_CPPFLAGS=""
#
# $BUILDSDK_LDFLAGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:560
#     "-Wl,-O1"
BUILDSDK_LDFLAGS="-Wl,-O1"
#
# $BUILDSTATS_BASE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:103
#     [doc] "Points to the location of the directory that holds build statistics when you use and enable the buildstats class."
#
# $BUILD_AR [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:517
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:517
#     "${BUILD_PREFIX}ar"
# pre-expansion value:
#   "${BUILD_PREFIX}ar"
export BUILD_AR="ar"
#
# $BUILD_ARCH [2 operations]
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:92
#     "${@os.uname()[4]}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:100
#     [doc] "The name of the building architecture (e.g. i686)."
# pre-expansion value:
#   "x86_64"
BUILD_ARCH="x86_64"
#
# $BUILD_AS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:518
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:518
#     "${BUILD_PREFIX}as ${BUILD_AS_ARCH}"
# pre-expansion value:
#   "${BUILD_PREFIX}as ${BUILD_AS_ARCH}"
export BUILD_AS="as "
#
# $BUILD_AS_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:99
#     ""
BUILD_AS_ARCH=""
#
# $BUILD_CC [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:511
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:511
#     "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
# pre-expansion value:
#   "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
export BUILD_CC="gcc "
#
# $BUILD_CCLD [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:516
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:516
#     "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
# pre-expansion value:
#   "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
export BUILD_CCLD="gcc "
#
# $BUILD_CC_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:97
#     ""
BUILD_CC_ARCH=""
#
# $BUILD_CFLAGS [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:543
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:543
#     "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
#   _append[pn-binutils-native] /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc:17
#     " -pie -fpie"
# pre-expansion value:
#   "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
export BUILD_CFLAGS="-isystem/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/include -O2 -pipe"
#
# $BUILD_CPP [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:514
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:514
#     "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E"
# pre-expansion value:
#   "${BUILD_PREFIX}gcc ${BUILD_CC_ARCH} -E"
export BUILD_CPP="gcc  -E"
#
# $BUILD_CPPFLAGS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:538
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:538
#     "-isystem${STAGING_INCDIR_NATIVE}"
# pre-expansion value:
#   "-isystem${STAGING_INCDIR_NATIVE}"
export BUILD_CPPFLAGS="-isystem/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/include"
#
# $BUILD_CXX [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:512
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:512
#     "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}"
# pre-expansion value:
#   "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}"
export BUILD_CXX="g++ "
#
# $BUILD_CXXFLAGS [4 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:548
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:548
#     "${BUILD_CFLAGS}"
#   _append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc:5
#     " -D_GLIBCXX_USE_CXX11_ABI=0"
#   _append[pn-icu-native] /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc:9
#     " -std=c++98"
# pre-expansion value:
#   "${BUILD_CFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0"
export BUILD_CXXFLAGS="-isystem/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/include -O2 -pipe -D_GLIBCXX_USE_CXX11_ABI=0"
#
# $BUILD_EXEEXT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:100
#     ""
BUILD_EXEEXT=""
#
# $BUILD_FC [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:513
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:513
#     "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}"
# pre-expansion value:
#   "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}"
export BUILD_FC="gfortran "
#
# $BUILD_LD [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:515
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:515
#     "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}"
# pre-expansion value:
#   "${BUILD_PREFIX}ld ${BUILD_LD_ARCH}"
export BUILD_LD="ld "
#
# $BUILD_LDFLAGS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:558
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:558
#     "-L${STAGING_LIBDIR_NATIVE} -L${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-O1"
# pre-expansion value:
#   "-L${STAGING_LIBDIR_NATIVE} -L${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} -Wl,-rpath-link,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-rpath,${STAGING_BASE_LIBDIR_NATIVE} -Wl,-O1"
export BUILD_LDFLAGS="-L/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/lib -L/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/lib -Wl,-rpath,/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/lib -Wl,-O1"
#
# $BUILD_LD_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:98
#     ""
BUILD_LD_ARCH=""
#
# $BUILD_NM [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:521
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:521
#     "${BUILD_PREFIX}nm"
# pre-expansion value:
#   "${BUILD_PREFIX}nm"
export BUILD_NM="nm"
#
# $BUILD_OPTIMIZATION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:594
#     "-O2 -pipe"
BUILD_OPTIMIZATION="-O2 -pipe"
#
# $BUILD_OS [2 operations]
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:93
#     "${@os.uname()[0].lower()}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:101
#     [doc] "The operating system (in lower case) of the building architecture (e.g. linux)."
# pre-expansion value:
#   "linux"
BUILD_OS="linux"
#
# $BUILD_PREFIX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:96
#     ""
BUILD_PREFIX=""
#
# $BUILD_RANLIB [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:519
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:519
#     "${BUILD_PREFIX}ranlib"
# pre-expansion value:
#   "${BUILD_PREFIX}ranlib"
export BUILD_RANLIB="ranlib"
#
# $BUILD_STRIP [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:520
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:520
#     "${BUILD_PREFIX}strip"
# pre-expansion value:
#   "${BUILD_PREFIX}strip"
export BUILD_STRIP="strip"
#
# $BUILD_SYS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:95
#     "${BUILD_ARCH}${BUILD_VENDOR}-${BUILD_OS}"
BUILD_SYS="x86_64-linux"
#
# $BUILD_VENDOR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:94
#     ""
BUILD_VENDOR=""
#
# $BUSYBOX_SPLIT_SUID
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:104
#     [doc] "For the BusyBox recipe, specifies whether to split the output executable file into two parts: one for features that require setuid root, and one for the remaining features."
#
# $BZRDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:340
#     "${CO_DIR}/bzr"
BZRDIR="/home/mnhu/projects/pil/yocto/downloads/bzr"
#
# $B_task-populate-sdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:31
#     "${SDK_DIR}"
B_task-populate-sdk="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk"
#
# $B_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:79
#     "${SDK_DIR}"
B_task-populate-sdk-ext="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk"
#
# $CACHE [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:332
#     "${TMPDIR}/cache${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('MACHINE'))]}${@['', '/' + str(d.getVar('SDKMACHINE'))][bool(d.getVar('SDKMACHINE'))]}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:18
#     "${TMPDIR}/cache/${TCMODE}-${TCLIBC}${@['', '/' + str(d.getVar('MACHINE'))][bool(d.getVar('MACHINE'))]}${@['', '/' + str(d.getVar('SDKMACHINE'))][bool(d.getVar('SDKMACHINE'))]}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:108
#     [doc] "The directory holding the cache of the metadata."
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:769
#     "${CACHE}"
# pre-expansion value:
#   "/home/mnhu/projects/pil/yocto/tmp-glibc/cache/default-glibc/rpi2/x86_64"
CACHE="/home/mnhu/projects/pil/yocto/tmp-glibc/cache/default-glibc/rpi2/x86_64"
#
# $CC [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:494
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:494
#     "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
# pre-expansion value:
#   "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
export CC="arm-oe-linux-gnueabi-gcc  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $CCACHE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:483
#     [_defaultval] ""
CCACHE=""
#
# $CCACHE_DIR [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:490
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:490
#     [_defaultval] "${@os.getenv('HOME')}/.ccache"
# pre-expansion value:
#   "${@os.getenv('HOME')}/.ccache"
export CCACHE_DIR="/home/mnhu/.ccache"
#
# $CCACHE_DISABLE [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:486
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:486
#     [_defaultval] "${@[0,1][d.getVar('CCACHE') == '']}"
# pre-expansion value:
#   "${@[0,1][d.getVar('CCACHE') == '']}"
export CCACHE_DISABLE="1"
#
# $CCLD [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:499
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:499
#     "${CC}"
# pre-expansion value:
#   "${CC}"
export CCLD="arm-oe-linux-gnueabi-gcc  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $CFLAGS [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:545
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:545
#     "${TARGET_CFLAGS}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:109
#     [doc] "Flags passed to the C compiler for the target system. This variable evaluates to the same as TARGET_CFLAGS."
# pre-expansion value:
#   "${TARGET_CFLAGS}"
export CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
#
# $CHRPATH_BIN
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/chrpath.bbclass:1
#     "chrpath"
CHRPATH_BIN="chrpath"
#
# $CLASSOVERRIDE [3 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:718
#     "class-target"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:110
#     [doc] "An internal variable specifying the special class override that should currently apply (e.g. "class-target", "class-native", and so forth)."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:2
#     "class-target"
# pre-expansion value:
#   "class-target"
CLASSOVERRIDE="class-target"
#
# $CLEANBROKEN [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:111
#     [doc] "Specifies if 'make clean' does not work for a recipe (and therefore the build system should not try to use it during do_configure)"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:304
#     "0"
# pre-expansion value:
#   "0"
CLEANBROKEN="0"
#
# $CLEANFUNCS [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utility-tasks.bbclass:20
#     ""
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:514
#     "sstate_cleanall"
# pre-expansion value:
#   " sstate_cleanall"
CLEANFUNCS=" sstate_cleanall"
#
# $COMBINED_FEATURES [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:112
#     [doc] "A set of features common between MACHINE_FEATURES and DISTRO_FEATURES."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:812
#     "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:813
#     [vardeps] "DISTRO_FEATURES MACHINE_FEATURES"
# pre-expansion value:
#   "${@oe.utils.set_intersect('DISTRO_FEATURES', 'MACHINE_FEATURES', d)}"
COMBINED_FEATURES=""
#
# $COMMERCIAL_AUDIO_PLUGINS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:28
#     ""
COMMERCIAL_AUDIO_PLUGINS=""
#
# $COMMERCIAL_VIDEO_PLUGINS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:30
#     ""
COMMERCIAL_VIDEO_PLUGINS=""
#
# $COMMON_LICENSE_DIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:33
#     [_defaultval] "${COREBASE}/meta/files/common-licenses"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:113
#     [doc] "Points to meta/files/common-licenses in the Source Directory, which is where generic license files reside."
# pre-expansion value:
#   "${COREBASE}/meta/files/common-licenses"
COMMON_LICENSE_DIR="/home/mnhu/projects/pil/yocto/meta-poky/meta/files/common-licenses"
#
# $COMPATIBLE_HOST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:114
#     [doc] "A regular expression that resolves to one or more hosts (when the recipe is native) or one or more targets (when the recipe is non-native) with which a recipe is compatible."
#
# $COMPATIBLE_MACHINE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:115
#     [doc] "A regular expression that resolves to one or more target machines with which a recipe is compatible."
#
# $COMPLEMENTARY_GLOB [6 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:116
#     [doc] "Defines wildcards to match when installing a list of complementary packages for all the packages installed in an image."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:5
#     [dev-pkgs] "*-dev"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:6
#     [staticdev-pkgs] "*-staticdev"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:7
#     [doc-pkgs] "*-doc"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:8
#     [dbg-pkgs] "*-dbg"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:9
#     [ptest-pkgs] "*-ptest"
# pre-expansion value:
#   "None"
#
# $COMPONENTS_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:354
#     "${STAGING_DIR}-components"
COMPONENTS_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components"
#
# $COMPRESSIONTYPES
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:255
#     ""
COMPRESSIONTYPES=""
#
# $CONFFILES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:117
#     [doc] "Identifies editable or configurable files that are part of a package."
#
# $CONFIGURESTAMPFILE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:303
#     "${WORKDIR}/configure.sstate"
CONFIGURESTAMPFILE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/configure.sstate"
#
# $CONFIG_SITE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:118
#     [doc] "A list of files that contains autoconf test results relevant to the current build. This variable is used by the Autotools utilities when running configure."
#
# $CONFLICT_DISTRO_FEATURES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:119
#     [doc] "When a recipe inherits the distro_features_check class, this variable identifies distribution features that would be in conflict should the recipe be built."
#
# $CONF_VERSION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:122
#     [doc] "Tracks the version of local.conf.  Increased each time build/conf/ changes incompatibly."
#
# $CONVERSIONTYPES [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:257
#     "gz bz2 lzma xz lz4 lzo zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap ${COMPRESSIONTYPES}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:8
#     "gz.u-boot bz2.u-boot lz4.u-boot lzma.u-boot lzo.u-boot u-boot"
# pre-expansion value:
#   "gz bz2 lzma xz lz4 lzo zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap ${COMPRESSIONTYPES} gz.u-boot bz2.u-boot lz4.u-boot lzma.u-boot lzo.u-boot u-boot"
CONVERSIONTYPES="gz bz2 lzma xz lz4 lzo zip sum md5sum sha1sum sha224sum sha256sum sha384sum sha512sum bmap  gz.u-boot bz2.u-boot lz4.u-boot lzma.u-boot lzo.u-boot u-boot"
#
# $CONVERSION_CMD_bmap
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:273
#     "bmaptool create ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.bmap"
CONVERSION_CMD_bmap="bmaptool create rescue-rootfs-rpi2-20170915073224.rootfs.\${type} -o rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.bmap"
#
# $CONVERSION_CMD_bz2
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:260
#     "pbzip2 -f -k ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_bz2="pbzip2 -f -k rescue-rootfs-rpi2-20170915073224.rootfs.\${type}"
#
# $CONVERSION_CMD_bz2.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:17
#     "${CONVERSION_CMD_bz2}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.bz2 bzip2"
CONVERSION_CMD_bz2.u-boot="pbzip2 -f -k rescue-rootfs-rpi2-20170915073224.rootfs.\${type}; oe_mkimage rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.bz2 bzip2"
#
# $CONVERSION_CMD_gz
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:259
#     "gzip -f -9 -c ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.gz"
CONVERSION_CMD_gz="gzip -f -9 -c rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.gz"
#
# $CONVERSION_CMD_gz.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:14
#     "${CONVERSION_CMD_gz}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.gz gzip"
CONVERSION_CMD_gz.u-boot="gzip -f -9 -c rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.gz; oe_mkimage rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.gz gzip"
#
# $CONVERSION_CMD_lz4 [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:262
#     "lz4 -9 -z ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
#   override[legacy]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:263
#     "lz4 -9 -z -l ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
# pre-expansion value:
#   "lz4 -9 -z ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
CONVERSION_CMD_lz4="lz4 -9 -z rescue-rootfs-rpi2-20170915073224.rootfs.\${type} rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.lz4"
#
# $CONVERSION_CMD_lz4.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:20
#     "${CONVERSION_CMD_lz4_legacy}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.lz4 lz4"
CONVERSION_CMD_lz4.u-boot="lz4 -9 -z -l rescue-rootfs-rpi2-20170915073224.rootfs.\${type} rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.lz4; oe_mkimage rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.lz4 lz4"
#
# $CONVERSION_CMD_lz4_legacy
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:263
#     "lz4 -9 -z -l ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.lz4"
CONVERSION_CMD_lz4_legacy="lz4 -9 -z -l rescue-rootfs-rpi2-20170915073224.rootfs.\${type} rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.lz4"
#
# $CONVERSION_CMD_lzma
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:258
#     "lzma -k -f -7 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_lzma="lzma -k -f -7 rescue-rootfs-rpi2-20170915073224.rootfs.\${type}"
#
# $CONVERSION_CMD_lzma.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:23
#     "${CONVERSION_CMD_lzma}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.lzma lzma"
CONVERSION_CMD_lzma.u-boot="lzma -k -f -7 rescue-rootfs-rpi2-20170915073224.rootfs.\${type}; oe_mkimage rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.lzma lzma"
#
# $CONVERSION_CMD_lzo
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:264
#     "lzop -9 ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_lzo="lzop -9 rescue-rootfs-rpi2-20170915073224.rootfs.\${type}"
#
# $CONVERSION_CMD_lzo.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:26
#     "${CONVERSION_CMD_lzo}; oe_mkimage ${IMAGE_NAME}.rootfs.${type}.lzo lzo"
CONVERSION_CMD_lzo.u-boot="lzop -9 rescue-rootfs-rpi2-20170915073224.rootfs.\${type}; oe_mkimage rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.lzo lzo"
#
# $CONVERSION_CMD_md5sum
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:267
#     "md5sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.md5sum"
CONVERSION_CMD_md5sum="md5sum rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.md5sum"
#
# $CONVERSION_CMD_sha1sum
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:268
#     "sha1sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha1sum"
CONVERSION_CMD_sha1sum="sha1sum rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.sha1sum"
#
# $CONVERSION_CMD_sha224sum
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:269
#     "sha224sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha224sum"
CONVERSION_CMD_sha224sum="sha224sum rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.sha224sum"
#
# $CONVERSION_CMD_sha256sum
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:270
#     "sha256sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha256sum"
CONVERSION_CMD_sha256sum="sha256sum rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.sha256sum"
#
# $CONVERSION_CMD_sha384sum
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:271
#     "sha384sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha384sum"
CONVERSION_CMD_sha384sum="sha384sum rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.sha384sum"
#
# $CONVERSION_CMD_sha512sum
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:272
#     "sha512sum ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sha512sum"
CONVERSION_CMD_sha512sum="sha512sum rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.sha512sum"
#
# $CONVERSION_CMD_sum
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:266
#     "sumtool -i ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} -o ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.sum ${JFFS2_SUM_EXTRA_ARGS}"
CONVERSION_CMD_sum="sumtool -i rescue-rootfs-rpi2-20170915073224.rootfs.\${type} -o rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.sum "
#
# $CONVERSION_CMD_u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:11
#     "oe_mkimage ${IMAGE_NAME}.rootfs.${type} none"
CONVERSION_CMD_u-boot="oe_mkimage rescue-rootfs-rpi2-20170915073224.rootfs.\${type} none"
#
# $CONVERSION_CMD_xz
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:261
#     "xz -f -k -c ${XZ_COMPRESSION_LEVEL} ${XZ_THREADS} --check=${XZ_INTEGRITY_CHECK} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} > ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.xz"
CONVERSION_CMD_xz="xz -f -k -c -3 -T 0 --check=crc32 rescue-rootfs-rpi2-20170915073224.rootfs.\${type} > rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.xz"
#
# $CONVERSION_CMD_zip
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:265
#     "zip ${ZIP_COMPRESSION_LEVEL} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.zip ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
CONVERSION_CMD_zip="zip -9 rescue-rootfs-rpi2-20170915073224.rootfs.\${type}.zip rescue-rootfs-rpi2-20170915073224.rootfs.\${type}"
#
# $CONVERSION_DEPENDS_bmap
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:282
#     "bmap-tools-native"
CONVERSION_DEPENDS_bmap="bmap-tools-native"
#
# $CONVERSION_DEPENDS_bz2
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:276
#     "pbzip2-native"
CONVERSION_DEPENDS_bz2="pbzip2-native"
#
# $CONVERSION_DEPENDS_bz2.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:16
#     "u-boot-mkimage-native"
CONVERSION_DEPENDS_bz2.u-boot="u-boot-mkimage-native"
#
# $CONVERSION_DEPENDS_gz
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:275
#     "pigz-native"
CONVERSION_DEPENDS_gz="pigz-native"
#
# $CONVERSION_DEPENDS_gz.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:13
#     "u-boot-mkimage-native"
CONVERSION_DEPENDS_gz.u-boot="u-boot-mkimage-native"
#
# $CONVERSION_DEPENDS_lz4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:278
#     "lz4-native"
CONVERSION_DEPENDS_lz4="lz4-native"
#
# $CONVERSION_DEPENDS_lz4.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:19
#     "u-boot-mkimage-native"
CONVERSION_DEPENDS_lz4.u-boot="u-boot-mkimage-native"
#
# $CONVERSION_DEPENDS_lzma
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:274
#     "xz-native"
CONVERSION_DEPENDS_lzma="xz-native"
#
# $CONVERSION_DEPENDS_lzma.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:22
#     "u-boot-mkimage-native"
CONVERSION_DEPENDS_lzma.u-boot="u-boot-mkimage-native"
#
# $CONVERSION_DEPENDS_lzo
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:279
#     "lzop-native"
CONVERSION_DEPENDS_lzo="lzop-native"
#
# $CONVERSION_DEPENDS_lzo.u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:25
#     "u-boot-mkimage-native"
CONVERSION_DEPENDS_lzo.u-boot="u-boot-mkimage-native"
#
# $CONVERSION_DEPENDS_sum
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:281
#     "mtd-utils-native"
CONVERSION_DEPENDS_sum="mtd-utils-native"
#
# $CONVERSION_DEPENDS_u-boot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:10
#     "u-boot-mkimage-native"
CONVERSION_DEPENDS_u-boot="u-boot-mkimage-native"
#
# $CONVERSION_DEPENDS_xz
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:277
#     "xz-native"
CONVERSION_DEPENDS_xz="xz-native"
#
# $CONVERSION_DEPENDS_zip
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:280
#     "zip-native"
CONVERSION_DEPENDS_zip="zip-native"
#
# $COREBASE [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:17
#     "${@os.path.normpath("${LAYERDIR}/../")}"
#   set data_smart.py:938 [expandVarref]
#     "${@os.path.normpath("/home/mnhu/projects/pil/yocto/meta-poky/meta/../")}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:121
#     [doc] "Specifies the parent directory of the OpenEmbedded Core Metadata layer (i.e. meta)."
# pre-expansion value:
#   "${@os.path.normpath("/home/mnhu/projects/pil/yocto/meta-poky/meta/../")}"
COREBASE="/home/mnhu/projects/pil/yocto/meta-poky"
#
# $COREBASE_FILES
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:76
#     "     oe-init-build-env     oe-init-build-env-memres     scripts     LICENSE     .templateconf "
COREBASE_FILES="     oe-init-build-env     oe-init-build-env-memres     scripts     LICENSE     .templateconf "
#
# $CORE_IMAGE_EXTRA_INSTALL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:120
#     [doc] "Specifies the list of packages to be added to the image. You should only set this variable in the conf/local.conf file in the Build Directory."
#
# $CO_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:336
#     "${DL_DIR}"
CO_DIR="/home/mnhu/projects/pil/yocto/downloads"
#
# $CPAN_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:620
#     "http://search.cpan.org/CPAN"
CPAN_MIRROR="http://search.cpan.org/CPAN"
#
# $CPP [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:497
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:497
#     "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}"
# pre-expansion value:
#   "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS} ${HOST_CC_ARCH}"
export CPP="arm-oe-linux-gnueabi-gcc -E --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7"
#
# $CPPFLAGS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:540
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:540
#     "${TARGET_CPPFLAGS}"
# pre-expansion value:
#   "${TARGET_CPPFLAGS}"
export CPPFLAGS=""
#
# $CVSDIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:337
#     "${CO_DIR}/cvs"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:123
#     [doc] "The directory where cvs checkouts will be stored in."
# pre-expansion value:
#   "${CO_DIR}/cvs"
CVSDIR="/home/mnhu/projects/pil/yocto/downloads/cvs"
#
# $CXX [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:495
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:495
#     "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
# pre-expansion value:
#   "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
export CXX="arm-oe-linux-gnueabi-g++  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $CXXFLAGS [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:549
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:549
#     "${TARGET_CXXFLAGS}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:19
#     "-fvisibility-inlines-hidden"
# pre-expansion value:
#   "${TARGET_CXXFLAGS} -fvisibility-inlines-hidden"
export CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot=  -fvisibility-inlines-hidden"
#
# $D [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:349
#     "${WORKDIR}/image"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:127
#     [doc] "The destination directory."
# pre-expansion value:
#   "${WORKDIR}/image"
D="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/image"
#
# $DATA_LICENSE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:130
#     "CC0-1.0"
DATA_LICENSE="CC0-1.0"
#
# $DATE [2 operations]
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:158
#     "${@time.strftime('%Y%m%d',time.gmtime())}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:128
#     [doc] "The date the build was started using YMD format."
# pre-expansion value:
#   "20170915"
DATE="20170915"
#
# $DATETIME [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:160
#     "${DATE}${TIME}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:129
#     [doc] "The date and time the build was started."
# pre-expansion value:
#   "${DATE}${TIME}"
DATETIME="20170915073224"
#
# $DEBIANRDEP [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass:16
#     "do_packagedata"
#   set debian.bbclass:25 [__anon_25__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_debian_bbclass]
#     ""
# pre-expansion value:
#   ""
DEBIANRDEP=""
#
# $DEBIAN_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:607
#     "http://ftp.debian.org/debian/pool"
DEBIAN_MIRROR="http://ftp.debian.org/debian/pool"
#
# $DEBIAN_NAMES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass:140
#     "1"
DEBIAN_NAMES="1"
#
# $DEBUG_BUILD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:130
#     [doc] "Specifies to build packages with debugging information. This influences the value of the SELECTED_OPTIMIZATION variable."
#
# $DEBUG_FLAGS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:587
#     "-g -feliminate-unused-debug-types ${DEBUG_PREFIX_MAP}"
DEBUG_FLAGS="-g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
#
# $DEBUG_OPTIMIZATION [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:591
#     "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:131
#     [doc] "The options to pass in TARGET_CFLAGS and CFLAGS when compiling a system for debugging. This variable defaults to '-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe'."
# pre-expansion value:
#   "-O -fno-omit-frame-pointer ${DEBUG_FLAGS} -pipe"
DEBUG_OPTIMIZATION="-O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot=  -pipe"
#
# $DEBUG_PREFIX_MAP
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:586
#     "-fdebug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR} -fdebug-prefix-map=${STAGING_DIR_NATIVE}= -fdebug-prefix-map=${STAGING_DIR_HOST}= "
DEBUG_PREFIX_MAP="-fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
#
# $DEFAULTTUNE [7 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:1
#     "armv7vethf-neon"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:1
#     "armv7vethf"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:1
#     "armv7athf"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:1
#     "armv6hf"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:1
#     "armv5"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:1
#     "armv4"
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:5
#     "cortexa7thf-neon-vfpv4"
# pre-expansion value:
#   "cortexa7thf-neon-vfpv4"
DEFAULTTUNE="cortexa7thf-neon-vfpv4"
#
# $DEFAULT_PREFERENCE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:132
#     [doc] "Specifies a weak bias for recipe selection priority."
#
# $DEFAULT_TASK_PROVIDER
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:759
#     "packagegroup-base"
DEFAULT_TASK_PROVIDER="packagegroup-base"
#
# $DEPCHAIN_POST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:258
#     "-dev -dbg"
DEPCHAIN_POST="-dev -dbg"
#
# $DEPCHAIN_PRE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:257
#     ""
DEPCHAIN_PRE=""
#
# $DEPENDS [6 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:260
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:133
#     [doc] "Lists a recipe's build-time dependencies (i.e. other recipe files)."
#   _prepend /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:81
#     "${BASEDEPENDS} "
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:14
#     "${MLPREFIX}qemuwrapper-cross depmodwrapper-cross"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:44
#     "${@ '${WKS_FILE_DEPENDS}' if d.getVar('USING_WIC') else '' }"
#   override[pn-qtbase]:set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:21
#     "virtual/libgles2"
# pre-expansion value:
#   "${BASEDEPENDS}  ${MLPREFIX}qemuwrapper-cross depmodwrapper-cross ${@ '${WKS_FILE_DEPENDS}' if d.getVar('USING_WIC') else '' }"
DEPENDS="  qemuwrapper-cross depmodwrapper-cross "
#
# $DEPENDS_pn-qtbase
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:21
#     "virtual/libgles2"
DEPENDS_pn-qtbase="virtual/libgles2"
#
# $DEPLOYABLE_IMAGE_TYPES
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:287
#     "hddimg iso"
DEPLOYABLE_IMAGE_TYPES="hddimg iso"
#
# $DEPLOYDIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:136
#     [doc] "For recipes that inherit the deploy class, the DEPLOYDIR points to a temporary work area for deployed files."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass:1
#     "${WORKDIR}/deploy-${PN}"
# pre-expansion value:
#   "${WORKDIR}/deploy-${PN}"
DEPLOYDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs"
#
# $DEPLOY_DIR [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:385
#     "${TMPDIR}/deploy"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:134
#     [doc] "Points to the general area that the OpenEmbedded build system uses to place images, packages, SDKs and other output files that are ready to be used outside of the build system."
# pre-expansion value:
#   "${TMPDIR}/deploy"
DEPLOY_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy"
#
# $DEPLOY_DIR_DEB
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:389
#     "${DEPLOY_DIR}/deb"
DEPLOY_DIR_DEB="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/deb"
#
# $DEPLOY_DIR_IMAGE [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:390
#     "${DEPLOY_DIR}/images/${MACHINE}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:135
#     [doc] "Points to the area that the OpenEmbedded build system uses to place images and other associated output files that are ready to be deployed onto the target machine."
# pre-expansion value:
#   "${DEPLOY_DIR}/images/${MACHINE}"
DEPLOY_DIR_IMAGE="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/images/rpi2"
#
# $DEPLOY_DIR_IPK
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:387
#     "${DEPLOY_DIR}/ipk"
DEPLOY_DIR_IPK="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/ipk"
#
# $DEPLOY_DIR_RPM
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:388
#     "${DEPLOY_DIR}/rpm"
DEPLOY_DIR_RPM="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/rpm"
#
# $DEPLOY_DIR_TAR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:386
#     "${DEPLOY_DIR}/tar"
DEPLOY_DIR_TAR="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/tar"
#
# $DEPLOY_DIR_TOOLS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:391
#     "${DEPLOY_DIR}/tools"
DEPLOY_DIR_TOOLS="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/tools"
#
# $DESCRIPTION [6 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:224
#     "${SUMMARY}."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:137
#     [doc] "The package description used by package managers. If not set, DESCRIPTION takes the value of the SUMMARY variable."
#   override[rescue-rootfs-dbg]:rename from DESCRIPTION_${PN}-dbg data.py:116 [expandKeys]
#     "${DESCRIPTION}  This package contains ELF symbols and related sources for debugging purposes."
#   override[rescue-rootfs-dev]:rename from DESCRIPTION_${PN}-dev data.py:116 [expandKeys]
#     "${DESCRIPTION}  This package contains symbolic links, header files, and related items necessary for software development."
#   override[rescue-rootfs-doc]:rename from DESCRIPTION_${PN}-doc data.py:116 [expandKeys]
#     "${DESCRIPTION}  This package contains documentation."
#   override[rescue-rootfs-staticdev]:rename from DESCRIPTION_${PN}-staticdev data.py:116 [expandKeys]
#     "${DESCRIPTION}  This package contains static libraries for software development."
# pre-expansion value:
#   "${SUMMARY}."
DESCRIPTION="PIL rescue-rootfs."
#
# $DESCRIPTION_rescue-rootfs-dbg
#   rename from DESCRIPTION_${PN}-dbg data.py:116 [expandKeys]
#     "${DESCRIPTION}  This package contains ELF symbols and related sources for debugging purposes."
DESCRIPTION_rescue-rootfs-dbg="PIL rescue-rootfs.  This package contains ELF symbols and related sources for debugging purposes."
#
# $DESCRIPTION_rescue-rootfs-dev
#   rename from DESCRIPTION_${PN}-dev data.py:116 [expandKeys]
#     "${DESCRIPTION}  This package contains symbolic links, header files, and related items necessary for software development."
DESCRIPTION_rescue-rootfs-dev="PIL rescue-rootfs.  This package contains symbolic links, header files, and related items necessary for software development."
#
# $DESCRIPTION_rescue-rootfs-doc
#   rename from DESCRIPTION_${PN}-doc data.py:116 [expandKeys]
#     "${DESCRIPTION}  This package contains documentation."
DESCRIPTION_rescue-rootfs-doc="PIL rescue-rootfs.  This package contains documentation."
#
# $DESCRIPTION_rescue-rootfs-staticdev
#   rename from DESCRIPTION_${PN}-staticdev data.py:116 [expandKeys]
#     "${DESCRIPTION}  This package contains static libraries for software development."
DESCRIPTION_rescue-rootfs-staticdev="PIL rescue-rootfs.  This package contains static libraries for software development."
#
# $DEVSHELL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/devshell.bbclass:3
#     "${SHELL}"
DEVSHELL="bash"
#
# $DEVSHELL_STARTDIR
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/devshell.bbclass:21
#     "${S}"
DEVSHELL_STARTDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rescue-rootfs-1.0"
#
# $DISTRO [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:701
#     [_defaultval] "nodistro"
#   set? /home/mnhu/projects/pil/yocto/conf/local.conf:10
#     "basic"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:138
#     [doc] "The short name of the distribution. If the variable is blank, meta/conf/distro/defaultsetup.conf will be used."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:832
#     [unexport] "1"
# pre-expansion value:
#   "basic"
unset DISTRO
#
# $DISTROOVERRIDES [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:719
#     "${@d.getVar('DISTRO') or ''}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:147
#     [doc] "Lists overrides specific to the current distribution. By default, the variable list includes the value of the DISTRO variable."
# pre-expansion value:
#   "${@d.getVar('DISTRO') or ''}"
DISTROOVERRIDES="basic"
#
# $DISTRO_EXTRA_RDEPENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:139
#     [doc] "Specifies a list of distro-specific packages to add to all images. The variable only applies to the images that include packagegroup-base."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:789
#     ""
# pre-expansion value:
#   ""
DISTRO_EXTRA_RDEPENDS=""
#
# $DISTRO_EXTRA_RRECOMMENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:140
#     [doc] "Specifies a list of distro-specific packages to add to all images if the packages exist. The list of packages are automatically installed but you can remove them."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:790
#     ""
# pre-expansion value:
#   ""
DISTRO_EXTRA_RRECOMMENDS=""
#
# $DISTRO_FEATURES [7 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:34
#     "     ${DISTRO_FEATURES_LIBC}     largefile     usbhost     ipv4     ipv6     devtools     sysvinit "
#   _append /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf:4
#     " opengl"
#   _append /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf:7
#     " qt"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:21
#     "${DISTRO_FEATURES_DEFAULT} ${DISTRO_FEATURES_LIBC}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:141
#     [doc] "The features enabled for the distribution."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:787
#     ""
#   append utils.py:127 [features_backfill]
#     " ldconfig"
# pre-expansion value:
#   "     ${DISTRO_FEATURES_LIBC}     largefile     usbhost     ipv4     ipv6     devtools     sysvinit  opengl qt ldconfig"
DISTRO_FEATURES="     ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt 					libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse 					libc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code 					libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc 					libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc 					libc-posix-wchar-io     largefile     usbhost     ipv4     ipv6     devtools     sysvinit  opengl qt ldconfig"
#
# $DISTRO_FEATURES_BACKFILL [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:142
#     [doc] "Features to be added to DISTRO_FEATURES if not also present in DISTRO_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and it is not intended to be user-configurable."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:809
#     "pulseaudio sysvinit bluez5 gobject-introspection-data ldconfig"
# pre-expansion value:
#   "pulseaudio sysvinit bluez5 gobject-introspection-data ldconfig"
DISTRO_FEATURES_BACKFILL="pulseaudio sysvinit bluez5 gobject-introspection-data ldconfig"
#
# $DISTRO_FEATURES_BACKFILL_CONSIDERED [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:39
#     "     gobject-introspection-data     pulseaudio     bluez5 "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:143
#     [doc] "Features from DISTRO_FEATURES_BACKFILL that should not be backfilled (i.e. added to DISTRO_FEATURES) during the build."
# pre-expansion value:
#   "     gobject-introspection-data     pulseaudio     bluez5 "
DISTRO_FEATURES_BACKFILL_CONSIDERED="     gobject-introspection-data     pulseaudio     bluez5 "
#
# $DISTRO_FEATURES_DEFAULT
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:12
#     "acl alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11"
DISTRO_FEATURES_DEFAULT="acl alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11"
#
# $DISTRO_FEATURES_FILTER_NATIVE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:806
#     "api-documentation"
DISTRO_FEATURES_FILTER_NATIVE="api-documentation"
#
# $DISTRO_FEATURES_FILTER_NATIVESDK
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:807
#     "api-documentation"
DISTRO_FEATURES_FILTER_NATIVESDK="api-documentation"
#
# $DISTRO_FEATURES_LIBC [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:19
#     "${DISTRO_FEATURES_LIBC_DEFAULT}"
#   override[class-nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:20
#     "${DISTRO_FEATURES_LIBC_DEFAULT}"
# pre-expansion value:
#   "${DISTRO_FEATURES_LIBC_DEFAULT}"
DISTRO_FEATURES_LIBC="ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt 					libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse 					libc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code 					libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc 					libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc 					libc-posix-wchar-io"
#
# $DISTRO_FEATURES_LIBC_DEFAULT
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:18
#     "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt 					libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse 					libc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code 					libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc 					libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc 					libc-posix-wchar-io"
DISTRO_FEATURES_LIBC_DEFAULT="ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt 					libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse 					libc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code 					libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc 					libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc 					libc-posix-wchar-io"
#
# $DISTRO_FEATURES_LIBC_class-nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:20
#     "${DISTRO_FEATURES_LIBC_DEFAULT}"
DISTRO_FEATURES_LIBC_class-nativesdk="ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-charsets libc-crypt 					libc-crypt-ufc libc-db-aliases libc-envz libc-fcvt libc-fmtmsg libc-fstab libc-ftraverse 					libc-getlogin libc-idn libc-inet-anl libc-libm libc-locales libc-locale-code 					libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn libc-streams libc-sunrpc 					libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp libc-posix-regexp-glibc 					libc-posix-wchar-io"
#
# $DISTRO_FEATURES_NATIVE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:801
#     "x11"
DISTRO_FEATURES_NATIVE="x11"
#
# $DISTRO_FEATURES_NATIVESDK
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:802
#     "x11 libc-charsets libc-locales libc-locale-code"
DISTRO_FEATURES_NATIVESDK="x11 libc-charsets libc-locales libc-locale-code"
#
# $DISTRO_NAME [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:702
#     [_defaultval] "OpenEmbedded"
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:3
#     "PIL/basic"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:144
#     [doc] "The long name of the distribution."
# pre-expansion value:
#   "PIL/basic"
DISTRO_NAME="PIL/basic"
#
# $DISTRO_PN_ALIAS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:145
#     [doc] "Alias names used for the recipe in various Linux distributions."
#
# $DISTRO_VERSION [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/version.inc:23
#     "${@get_distro_version(d)}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:42
#     [_defaultval] "nodistro.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:146
#     [doc] "The version of the distribution."
# pre-expansion value:
#   "${@get_distro_version(d)}"
DISTRO_VERSION="pil-2017.07-dirty"
#
# $DL_DIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:148
#     [doc] "The central download directory used by the build process to store downloads. By default, the directory is 'downloads' in the Build Directory."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:748
#     "${TOPDIR}/downloads"
# pre-expansion value:
#   "${TOPDIR}/downloads"
DL_DIR="/home/mnhu/projects/pil/yocto/downloads"
#
# $ELF_APPEND
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:134
#     "ramdisk_size=32768 root=/dev/ram0 rw console="
ELF_APPEND="ramdisk_size=32768 root=/dev/ram0 rw console="
#
# $ELF_KERNEL
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:133
#     "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}"
ELF_KERNEL="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/images/rpi2/uImage"
#
# $ENABLE_BINARY_LOCALE_GENERATION [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:8
#     "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:152
#     [doc] "Controls which locales for glibc are generated during the build. The variable is useful if the target device has 64Mbytes of RAM or less."
# pre-expansion value:
#   "1"
ENABLE_BINARY_LOCALE_GENERATION="1"
#
# $ENABLE_RPM_FILEDEPS_FOR_PYRO
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:1442
#     [_defaultval] "0"
ENABLE_RPM_FILEDEPS_FOR_PYRO="0"
#
# $ERROR_QA [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:153
#     [doc] "Specifies the quality assurance checks whose failures are reported as errors by the OpenEmbedded build system."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:42
#     "dev-so debug-deps dev-deps debug-files arch pkgconfig la             perms dep-cmp pkgvarcheck perm-config perm-line perm-link             split-strip packages-list pkgv-undefined var-undefined             version-going-backwards expanded-d invalid-chars             license-checksum dev-elf file-rdeps             "
# pre-expansion value:
#   "dev-so debug-deps dev-deps debug-files arch pkgconfig la             perms dep-cmp pkgvarcheck perm-config perm-line perm-link             split-strip packages-list pkgv-undefined var-undefined             version-going-backwards expanded-d invalid-chars             license-checksum dev-elf file-rdeps             "
ERROR_QA="dev-so debug-deps dev-deps debug-files arch pkgconfig la             perms dep-cmp pkgvarcheck perm-config perm-line perm-link             split-strip packages-list pkgv-undefined var-undefined             version-going-backwards expanded-d invalid-chars             license-checksum dev-elf file-rdeps             "
#
# $EXCLUDE_FROM_WORLD [20 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:154
#     [doc] "Directs BitBake to exclude a recipe from world builds (i.e. bitbake world)."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:50
#     "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:78
#     "1"
#   override[pn-rt-tests_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:6
#     "1"
#   override[pn-portmap_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:10
#     "1"
#   override[pn-unfs3_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:11
#     "1"
#   override[pn-pseudo_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:14
#     "1"
#   override[pn-libsolv_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:17
#     "1"
#   override[pn-btrfs-tools_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:20
#     "1"
#   override[pn-prelink_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:23
#     "1"
#   override[pn-libbsd_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:26
#     "1"
#   override[pn-lttng-ust_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:29
#     "1"
#   override[pn-lttng-tools_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:30
#     "1"
#   override[pn-systemtap_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:33
#     "1"
#   override[pn-systemtap-uprobes_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:34
#     "1"
#   override[pn-qemu_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:38
#     "1"
#   override[pn-valgrind_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:42
#     "1"
#   override[pn-perf_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:46
#     "1"
#   override[pn-gcc-sanitizers_libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:49
#     "1"
#   override[pn-libunwind_libc-musl_arm]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:56
#     "1"
# pre-expansion value:
#   "1"
EXCLUDE_FROM_WORLD="1"
#
# $EXCLUDE_FROM_WORLD_pn-btrfs-tools_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:20
#     "1"
EXCLUDE_FROM_WORLD_pn-btrfs-tools_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-gcc-sanitizers_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:49
#     "1"
EXCLUDE_FROM_WORLD_pn-gcc-sanitizers_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-libbsd_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:26
#     "1"
EXCLUDE_FROM_WORLD_pn-libbsd_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-libsolv_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:17
#     "1"
EXCLUDE_FROM_WORLD_pn-libsolv_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-libunwind_libc-musl
#   override[arm]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:56
#     "1"
EXCLUDE_FROM_WORLD_pn-libunwind_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-libunwind_libc-musl_arm
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:56
#     "1"
EXCLUDE_FROM_WORLD_pn-libunwind_libc-musl_arm="1"
#
# $EXCLUDE_FROM_WORLD_pn-lttng-tools_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:30
#     "1"
EXCLUDE_FROM_WORLD_pn-lttng-tools_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-lttng-ust_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:29
#     "1"
EXCLUDE_FROM_WORLD_pn-lttng-ust_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-perf_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:46
#     "1"
EXCLUDE_FROM_WORLD_pn-perf_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-portmap_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:10
#     "1"
EXCLUDE_FROM_WORLD_pn-portmap_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-prelink_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:23
#     "1"
EXCLUDE_FROM_WORLD_pn-prelink_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-pseudo_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:14
#     "1"
EXCLUDE_FROM_WORLD_pn-pseudo_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-qemu_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:38
#     "1"
EXCLUDE_FROM_WORLD_pn-qemu_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-rt-tests_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:6
#     "1"
EXCLUDE_FROM_WORLD_pn-rt-tests_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-systemtap-uprobes_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:34
#     "1"
EXCLUDE_FROM_WORLD_pn-systemtap-uprobes_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-systemtap_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:33
#     "1"
EXCLUDE_FROM_WORLD_pn-systemtap_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-unfs3_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:11
#     "1"
EXCLUDE_FROM_WORLD_pn-unfs3_libc-musl="1"
#
# $EXCLUDE_FROM_WORLD_pn-valgrind_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc:42
#     "1"
EXCLUDE_FROM_WORLD_pn-valgrind_libc-musl="1"
#
# $EXTENDPE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:199
#     "${@['','${PE}_'][int(d.getVar('PE') or 0) > 0]}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:155
#     [doc] "Used with file and pathnames to create a prefix for a recipe's version based on the recipe's PE value. If PE is set and greater than zero for a recipe, EXTENDPE becomes that value."
# pre-expansion value:
#   "${@['','${PE}_'][int(d.getVar('PE') or 0) > 0]}"
EXTENDPE=""
#
# $EXTENDPKGEVER
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:209
#     "${@['','${PKGE}:'][d.getVar('PKGE').strip() != '']}"
EXTENDPKGEVER=""
#
# $EXTENDPKGV [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:210
#     "${EXTENDPKGEVER}${PKGV}-${PKGR}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:156
#     [doc] "The full package version specification as it appears on the final packages produced by a recipe."
# pre-expansion value:
#   "${EXTENDPKGEVER}${PKGV}-${PKGR}"
EXTENDPKGV="1.0-r0"
#
# $EXTENDPRAUTO
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:203
#     "${@['.${PRAUTO}', ''][not d.getVar('PRAUTO')]}"
EXTENDPRAUTO=""
#
# $EXTERNALSRC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:157
#     [doc] "If externalsrc.bbclass is inherited, this variable points to the source tree, which is outside of the OpenEmbedded build system."
#
# $EXTERNALSRC_BUILD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:158
#     [doc] "If externalsrc.bbclass is inherited, this variable points to the directory in which the recipe's source code is built, which is outside of the OpenEmbedded build system."
#
# $EXTRAOPKGCONFIG
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass:8
#     ""
EXTRAOPKGCONFIG=""
#
# $EXTRA_IMAGECMD [7 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:198
#     ""
#   override[jffs2]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:203
#     "--pad ${JFFS2_ENDIANNESS} --eraseblock=${JFFS2_ERASEBLOCK} --no-cleanmarkers"
#   override[ext2]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:206
#     "-i 4096"
#   override[ext3]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:207
#     "-i 4096"
#   override[ext4]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:208
#     "-i 4096"
#   override[btrfs]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:209
#     "-n 4096"
#   override[elf]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:210
#     ""
# pre-expansion value:
#   ""
EXTRA_IMAGECMD=""
#
# $EXTRA_IMAGECMD_btrfs
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:209
#     "-n 4096"
EXTRA_IMAGECMD_btrfs="-n 4096"
#
# $EXTRA_IMAGECMD_elf
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:210
#     ""
EXTRA_IMAGECMD_elf=""
#
# $EXTRA_IMAGECMD_ext2
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:206
#     "-i 4096"
EXTRA_IMAGECMD_ext2="-i 4096"
#
# $EXTRA_IMAGECMD_ext3
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:207
#     "-i 4096"
EXTRA_IMAGECMD_ext3="-i 4096"
#
# $EXTRA_IMAGECMD_ext4
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:208
#     "-i 4096"
EXTRA_IMAGECMD_ext4="-i 4096"
#
# $EXTRA_IMAGECMD_jffs2
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:203
#     "--pad ${JFFS2_ENDIANNESS} --eraseblock=${JFFS2_ERASEBLOCK} --no-cleanmarkers"
EXTRA_IMAGECMD_jffs2="--pad -l --eraseblock=0x40000 --no-cleanmarkers"
#
# $EXTRA_IMAGEDEPENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:443
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:160
#     [doc] "A list of recipes to build that do not provide packages for installing into the root filesystem. Use this variable to list recipes that are required to build the final image, but not needed in the root filesystem."
# pre-expansion value:
#   ""
EXTRA_IMAGEDEPENDS=""
#
# $EXTRA_IMAGE_FEATURES [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:159
#     [doc] "The list of additional features to include in an image. Configure this variable in the conf/local.conf file in the Build Directory."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:796
#     [_defaultval] ""
# pre-expansion value:
#   ""
EXTRA_IMAGE_FEATURES=""
#
# $EXTRA_OECMAKE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:161
#     [doc] "Additional cmake options."
#
# $EXTRA_OECONF [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:525
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:162
#     [doc] "Additional configure script options."
# pre-expansion value:
#   ""
EXTRA_OECONF=""
#
# $EXTRA_OEMAKE [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:524
#     ""
#   _prepend[task-compile] /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:575
#     "${PARALLEL_MAKE} "
#   _prepend[task-install] /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:578
#     "${PARALLEL_MAKEINST} "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:163
#     [doc] "Additional GNU make options."
# pre-expansion value:
#   ""
EXTRA_OEMAKE=""
#
# $EXTRA_OESCONS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:164
#     [doc] "When a recipe inherits the scons class, this variable specifies additional configuration options you want to pass to the scons command line."
#
# $EXTRA_QMAKEVARS_POST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:165
#     [doc] "Configuration variables or options you want to pass to qmake when the arguments need to be after the .pro file list on the command line."
#
# $EXTRA_QMAKEVARS_PRE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:166
#     [doc] "Configuration variables or options you want to pass to qmake when the arguments need to be before the .pro file list on the command line."
#
# $EXTRA_STAGING_FIXMES
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:57
#     "HOSTTOOLS_DIR"
EXTRA_STAGING_FIXMES="HOSTTOOLS_DIR"
#
# $EXTRA_USERS_PARAMS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:167
#     [doc] "When a recipe inherits the extrausers class, this variable provides image level user and group operations."
#   append /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc:3
#     "usermod -P ${PIL_ROOT_PASSWD} root;"
# pre-expansion value:
#   " usermod -P ${PIL_ROOT_PASSWD} root;"
EXTRA_USERS_PARAMS=" usermod -P root root;"
#
# $FAKEROOTBASEENV
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:667
#     "PSEUDO_BINDIR=${PSEUDO_SYSROOT}${bindir_native} PSEUDO_LIBDIR=${PSEUDO_SYSROOT}${prefix_native}/lib/pseudo/lib PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_DISABLED=1"
FAKEROOTBASEENV="PSEUDO_BINDIR=/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components/x86_64/pseudo-native/usr/bin PSEUDO_LIBDIR=/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components/x86_64/pseudo-native/usr/lib/pseudo/lib PSEUDO_PREFIX=/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components/x86_64/pseudo-native/usr PSEUDO_DISABLED=1"
#
# $FAKEROOTCMD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:668
#     "${PSEUDO_SYSROOT}${bindir_native}/pseudo"
FAKEROOTCMD="/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components/x86_64/pseudo-native/usr/bin/pseudo"
#
# $FAKEROOTDIRS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:671
#     "${PSEUDO_LOCALSTATEDIR}"
FAKEROOTDIRS="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/pseudo/"
#
# $FAKEROOTENV
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:669
#     "PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0"
FAKEROOTENV="PSEUDO_PREFIX=/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components/x86_64/pseudo-native/usr PSEUDO_LOCALSTATEDIR=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/pseudo/ PSEUDO_PASSWD=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0"
#
# $FAKEROOTNOENV
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:670
#     "PSEUDO_UNLOAD=1"
FAKEROOTNOENV="PSEUDO_UNLOAD=1"
#
# $FAKEROOT_QA [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:43
#     "host-user-contaminated"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:45
#     [doc] "QA tests which need to run under fakeroot. If any enabled tests are listed here, the do_package_qa task will run under fakeroot."
# pre-expansion value:
#   "host-user-contaminated"
FAKEROOT_QA="host-user-contaminated"
#
# $FC [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:496
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:496
#     "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
# pre-expansion value:
#   "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
export FC="arm-oe-linux-gnueabi-gfortran  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $FEATURE_INSTALL [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:39
#     "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:40
#     [vardepvalue] "${FEATURE_INSTALL}"
# pre-expansion value:
#   "${@' '.join(oe.packagegroup.required_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}"
FEATURE_INSTALL=""
#
# $FEATURE_INSTALL_OPTIONAL [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:41
#     "${@' '.join(oe.packagegroup.optional_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:42
#     [vardepvalue] "${FEATURE_INSTALL_OPTIONAL}"
# pre-expansion value:
#   "${@' '.join(oe.packagegroup.optional_packages(oe.data.typed_value('IMAGE_FEATURES', d), d))}"
FEATURE_INSTALL_OPTIONAL=""
#
# $FEATURE_PACKAGES_package-management
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:45
#     "${ROOTFS_PKGMANAGE}"
FEATURE_PACKAGES_package-management="opkg "
#
# $FEATURE_PACKAGES_splash
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:47
#     "${SPLASH}"
FEATURE_PACKAGES_splash="psplash"
#
# $FEED_DEPLOYDIR_BASE_URI
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:171
#     [doc] "Allow to serve ipk deploy directory as an ad hoc feed (bogofeed). Set to base URL of the directory as exported by HTTP. Set of ad hoc feed configs will be generated in the image."
#
# $FETCHCMD_bzr
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:647
#     "/usr/bin/env bzr"
FETCHCMD_bzr="/usr/bin/env bzr"
#
# $FETCHCMD_cvs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:645
#     "/usr/bin/env cvs"
FETCHCMD_cvs="/usr/bin/env cvs"
#
# $FETCHCMD_hg
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:648
#     "/usr/bin/env hg"
FETCHCMD_hg="/usr/bin/env hg"
#
# $FETCHCMD_svn
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:644
#     "/usr/bin/env svn --non-interactive --trust-server-cert"
FETCHCMD_svn="/usr/bin/env svn --non-interactive --trust-server-cert"
#
# $FETCHCMD_wget
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:646
#     "/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate"
FETCHCMD_wget="/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate"
#
# $FILE [80 operations]
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-rauc/conf/layer.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/layer.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/abi_version.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/local.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/multiconfig/default.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/soc-family.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/distro/version.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-versions.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/world-broken.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/uninative-flags.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:156 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf"
#   set ConfHandler.py:159 [handle]
#     "/home/mnhu/projects/pil/yocto/conf/bblayers.conf"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb"
#   set BBHandler.py:142 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc"
#   set BBHandler.py:160 [handle]
#     "/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb"
# pre-expansion value:
#   "/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb"
FILE="/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb"
#
# $FILES [9 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:280
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:172
#     [doc] "The list of directories or files that are placed in packages."
#   override[rescue-rootfs]:rename from FILES_${PN} data.py:116 [expandKeys]
#     "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} ${sysconfdir} ${sharedstatedir} ${localstatedir} ${base_bindir}/* ${base_sbindir}/* ${base_libdir}/*${SOLIBS} ${base_prefix}/lib/udev ${prefix}/lib/udev ${base_libdir}/udev ${libdir}/udev ${datadir}/${BPN} ${libdir}/${BPN}/* ${datadir}/pixmaps ${datadir}/applications ${datadir}/idl ${datadir}/omf ${datadir}/sounds ${libdir}/bonobo/servers"
#   override[rescue-rootfs-bin]:rename from FILES_${PN}-bin data.py:116 [expandKeys]
#     "${bindir}/* ${sbindir}/*"
#   override[rescue-rootfs-dbg]:rename from FILES_${PN}-dbg data.py:116 [expandKeys]
#     "/usr/lib/debug /usr/src/debug"
#   override[rescue-rootfs-dev]:rename from FILES_${PN}-dev data.py:116 [expandKeys]
#     "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig ${datadir}/aclocal ${base_libdir}/*.o ${libdir}/${BPN}/*.la ${base_libdir}/*.la"
#   override[rescue-rootfs-doc]:rename from FILES_${PN}-doc data.py:116 [expandKeys]
#     "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc ${datadir}/gnome/help"
#   override[rescue-rootfs-locale]:rename from FILES_${PN}-locale data.py:116 [expandKeys]
#     "${datadir}/locale"
#   override[rescue-rootfs-staticdev]:rename from FILES_${PN}-staticdev data.py:116 [expandKeys]
#     "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a"
# pre-expansion value:
#   ""
FILES=""
#
# $FILESEXTRAPATHS [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:325
#     "__default:"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:173
#     [doc] "Extends the search path the OpenEmbedded build system uses when looking for files and patches as it processes recipes and append files."
# pre-expansion value:
#   "__default:"
FILESEXTRAPATHS="__default:"
#
# $FILESOVERRIDES [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:723
#     "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:174
#     [doc] "A subset of OVERRIDES used by the OpenEmbedded build system for creating FILESPATH."
# pre-expansion value:
#   "${TRANSLATED_TARGET_ARCH}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}"
FILESOVERRIDES="arm:armv7ve:rpi:rpi2:basic"
#
# $FILESPATH [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:175
#     [doc] "The default set of directories the OpenEmbedded build system uses when searching for patches and files. It is defined in the base.bbclass class found in meta/classes in the Source Directory. Do not hand-edit the FILESPATH variable."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:83
#     "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
# pre-expansion value:
#   "${@base_set_filespath(["${FILE_DIRNAME}/${BP}", "${FILE_DIRNAME}/${BPN}", "${FILE_DIRNAME}/files"], d)}"
FILESPATH="/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs-1.0/basic:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs/basic:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/files/basic:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs-1.0/rpi2:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs/rpi2:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/files/rpi2:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs-1.0/rpi:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs/rpi:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/files/rpi:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs-1.0/armv7ve:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs/armv7ve:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/files/armv7ve:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs-1.0/arm:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs/arm:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/files/arm:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs-1.0/:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs/:/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/files/"
#
# $FILESYSTEM_PERMS_TABLES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:176
#     [doc] "Allows you to define your own file permissions settings table as part of your configuration for the packaging process."
#
# $FILES_SOLIBSDEV
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:299
#     "${base_libdir}/lib*${SOLIBSDEV} ${libdir}/lib*${SOLIBSDEV}"
FILES_SOLIBSDEV="/lib/lib*.so /usr/lib/lib*.so"
#
# $FILES_rescue-rootfs
#   rename from FILES_${PN} data.py:116 [expandKeys]
#     "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} ${sysconfdir} ${sharedstatedir} ${localstatedir} ${base_bindir}/* ${base_sbindir}/* ${base_libdir}/*${SOLIBS} ${base_prefix}/lib/udev ${prefix}/lib/udev ${base_libdir}/udev ${libdir}/udev ${datadir}/${BPN} ${libdir}/${BPN}/* ${datadir}/pixmaps ${datadir}/applications ${datadir}/idl ${datadir}/omf ${datadir}/sounds ${libdir}/bonobo/servers"
FILES_rescue-rootfs="/usr/bin/* /usr/sbin/* /usr/libexec/* /usr/lib/lib*.so.* /etc /com /var /bin/* /sbin/* /lib/*.so.* /lib/udev /usr/lib/udev /lib/udev /usr/lib/udev /usr/share/rescue-rootfs /usr/lib/rescue-rootfs/* /usr/share/pixmaps /usr/share/applications /usr/share/idl /usr/share/omf /usr/share/sounds /usr/lib/bonobo/servers"
#
# $FILES_rescue-rootfs-bin
#   rename from FILES_${PN}-bin data.py:116 [expandKeys]
#     "${bindir}/* ${sbindir}/*"
FILES_rescue-rootfs-bin="/usr/bin/* /usr/sbin/*"
#
# $FILES_rescue-rootfs-dbg
#   rename from FILES_${PN}-dbg data.py:116 [expandKeys]
#     "/usr/lib/debug /usr/src/debug"
FILES_rescue-rootfs-dbg="/usr/lib/debug /usr/src/debug"
#
# $FILES_rescue-rootfs-dev
#   rename from FILES_${PN}-dev data.py:116 [expandKeys]
#     "${includedir} ${FILES_SOLIBSDEV} ${libdir}/*.la ${libdir}/*.o ${libdir}/pkgconfig ${datadir}/pkgconfig ${datadir}/aclocal ${base_libdir}/*.o ${libdir}/${BPN}/*.la ${base_libdir}/*.la"
FILES_rescue-rootfs-dev="/usr/include /lib/lib*.so /usr/lib/lib*.so /usr/lib/*.la /usr/lib/*.o /usr/lib/pkgconfig /usr/share/pkgconfig /usr/share/aclocal /lib/*.o /usr/lib/rescue-rootfs/*.la /lib/*.la"
#
# $FILES_rescue-rootfs-doc
#   rename from FILES_${PN}-doc data.py:116 [expandKeys]
#     "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc ${datadir}/gnome/help"
FILES_rescue-rootfs-doc="/usr/share/doc /usr/share/man /usr/share/info /usr/share/gtk-doc /usr/share/gnome/help"
#
# $FILES_rescue-rootfs-locale
#   rename from FILES_${PN}-locale data.py:116 [expandKeys]
#     "${datadir}/locale"
FILES_rescue-rootfs-locale="/usr/share/locale"
#
# $FILES_rescue-rootfs-staticdev
#   rename from FILES_${PN}-staticdev data.py:116 [expandKeys]
#     "${libdir}/*.a ${base_libdir}/*.a ${libdir}/${BPN}/*.a"
FILES_rescue-rootfs-staticdev="/usr/lib/*.a /lib/*.a /usr/lib/rescue-rootfs/*.a"
#
# $FILE_DIRNAME
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:321
#     "${@os.path.dirname(d.getVar('FILE', False))}"
FILE_DIRNAME="/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems"
#
# $FIX_V4BX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:11
#     "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '', '${FIX_V4BX_ARMV5}', d)}"
FIX_V4BX=""
#
# $FIX_V4BX_ARMV4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:9
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv4', '--fix-v4bx', '', d)}"
FIX_V4BX_ARMV4=""
#
# $FIX_V4BX_ARMV5
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:10
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv5', '', '${FIX_V4BX_ARMV4}', d)}"
FIX_V4BX_ARMV5=""
#
# $FONT_EXTRA_RDEPENDS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:177
#     [doc] "When a recipe inherits the fontcache class, this variable specifies runtime dependencies for font packages. This variable defaults to 'fontconfig-utils'."
#
# $FONT_PACKAGES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:178
#     [doc] "When a recipe inherits the fontcache class, this variable identifies packages containing font files that need to be cached by Fontconfig."
#
# $FOSS_BASE_URL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:183
#     "http://localhost/repo/?mod=spdx_license_once"
FOSS_BASE_URL="http://localhost/repo/?mod=spdx_license_once"
#
# $FOSS_FULL_SPDX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:174
#     "true"
FOSS_FULL_SPDX="true"
#
# $FOSS_NO_COPYRIGHT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:145
#     "true"
FOSS_NO_COPYRIGHT="true"
#
# $FOSS_RECURSIVE_UNPACK
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:159
#     "false"
FOSS_RECURSIVE_UNPACK="false"
#
# $FOSS_SERVER
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:184
#     "${FOSS_BASE_URL}&fullSPDXFlag=${FOSS_FULL_SPDX}&noCopyright=${FOSS_NO_COPYRIGHT}&recursiveUnpack=${FOSS_RECURSIVE_UNPACK}"
FOSS_SERVER="http://localhost/repo/?mod=spdx_license_once&fullSPDXFlag=true&noCopyright=true&recursiveUnpack=false"
#
# $FOSS_WGET_FLAGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:186
#     "-qO - --no-check-certificate --timeout=0"
FOSS_WGET_FLAGS="-qO - --no-check-certificate --timeout=0"
#
# $FULL_OPTIMIZATION [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:590
#     "-O2 -pipe ${DEBUG_FLAGS}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:179
#     [doc] "The options to pass in TARGET_CFLAGS and CFLAGS when compiling an optimized system. This variable defaults to '-O2 -pipe ${DEBUG_FLAGS}'."
# pre-expansion value:
#   "-O2 -pipe ${DEBUG_FLAGS}"
FULL_OPTIMIZATION="-O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
#
# $GALLIUMDRIVERS [2 operations]
#   _append /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:25
#     " vc4"
#   _remove /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:26
#     "swrast"
# pre-expansion value:
#   "vc4"
GALLIUMDRIVERS="vc4"
#
# $GCCVERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:25
#     "6.3%"
GCCVERSION="6.3%"
#
# $GDBVERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:28
#     "7.12%"
GDBVERSION="7.12%"
#
# $GENTOO_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:608
#     "http://distfiles.gentoo.org/distfiles"
GENTOO_MIRROR="http://distfiles.gentoo.org/distfiles"
#
# $GITDIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:339
#     "${CO_DIR}/git2"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:183
#     [doc] "The directory where Git clones will be stored."
# pre-expansion value:
#   "${CO_DIR}/git2"
GITDIR="/home/mnhu/projects/pil/yocto/downloads/git2"
#
# $GLIBCVERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:29
#     "2.25"
GLIBCVERSION="2.25"
#
# $GNOME_GIT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:609
#     "git://git.gnome.org"
GNOME_GIT="git://git.gnome.org"
#
# $GNOME_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:610
#     "http://ftp.gnome.org/pub/GNOME/sources"
GNOME_MIRROR="http://ftp.gnome.org/pub/GNOME/sources"
#
# $GNUPG_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:612
#     "https://www.gnupg.org/ftp/gcrypt"
GNUPG_MIRROR="https://www.gnupg.org/ftp/gcrypt"
#
# $GNU_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:611
#     "http://ftp.gnu.org/gnu"
GNU_MIRROR="http://ftp.gnu.org/gnu"
#
# $GPE_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:613
#     "http://gpe.linuxtogo.org/download/source"
GPE_MIRROR="http://gpe.linuxtogo.org/download/source"
#
# $GROUPADD_PARAM
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:184
#     [doc] "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the groupadd command if you wish to add a group to the system when the package is installed."
#
# $GROUPMEMS_PARAM
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:185
#     [doc] "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the groupmems command if you wish to modify the members of a group when the package is installed."
#
# $GRUB_GFXSERIAL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:186
#     [doc] "Configures the GNU GRand Unified Bootloader (GRUB) to have graphics and serial in the boot menu."
#
# $GRUB_OPTS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:187
#     [doc] "Additional options to add to the GNU GRand Unified Bootloader (GRUB) configuration."
#
# $GRUB_TIMEOUT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:188
#     [doc] "Specifies the timeout before executing the default LABEL in the GNU GRand Unified Bootloader (GRUB)."
#
# $GTK2DISTROFEATURES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:47
#     "directfb x11"
GTK2DISTROFEATURES="directfb x11"
#
# $GTK3DISTROFEATURES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:48
#     "x11 wayland"
GTK3DISTROFEATURES="x11 wayland"
#
# $GTKIMMODULES_PACKAGES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:189
#     [doc] "For recipes that inherit the gtk-immodules-cache class, this variable specifies the packages that contain the GTK+ input method modules being installed when the modules are in packages other than the main package."
#
# $HGDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:341
#     "${CO_DIR}/hg"
HGDIR="/home/mnhu/projects/pil/yocto/downloads/hg"
#
# $HOME [2 operations]
#   from env data.py:124 [inheritFromOS]
#     "/home/mnhu"
#   auto env export data.py:126 [inheritFromOS]
#     [export] "True"
# pre-expansion value:
#   "/home/mnhu"
export HOME="/home/mnhu"
#
# $HOMEPAGE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:251
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:193
#     [doc] "Website where more information about the software the recipe is building can be found."
# pre-expansion value:
#   ""
HOMEPAGE=""
#
# $HOSTTOOLS [3 operations]
#   append /home/mnhu/projects/pil/yocto/meta-pil/conf/layer.conf:24
#     "sha256sum zip truncate"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:469
#     " [ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp cp cpio cpp cut date dd diff diffstat dirname du echo egrep env expand expr false fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip head hostname install ld ldd ln ls make makeinfo md5sum mkdir mknod mktemp mv nm objcopy objdump od patch perl pod2man pr printf pwd python python2 python2.7 python3 ranlib readelf readlink rm rmdir rpcgen sed sh sha256sum sleep sort split stat strings strip tail tar tee test touch tr true uname uniq wc wget which xargs "
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:472
#     "ip ping ps scp ssh stty"
# pre-expansion value:
#   " sha256sum zip truncate  [ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp cp cpio cpp cut date dd diff diffstat dirname du echo egrep env expand expr false fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip head hostname install ld ldd ln ls make makeinfo md5sum mkdir mknod mktemp mv nm objcopy objdump od patch perl pod2man pr printf pwd python python2 python2.7 python3 ranlib readelf readlink rm rmdir rpcgen sed sh sha256sum sleep sort split stat strings strip tail tar tee test touch tr true uname uniq wc wget which xargs  ip ping ps scp ssh stty"
HOSTTOOLS=" sha256sum zip truncate  [ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp cp cpio cpp cut date dd diff diffstat dirname du echo egrep env expand expr false fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip head hostname install ld ldd ln ls make makeinfo md5sum mkdir mknod mktemp mv nm objcopy objdump od patch perl pod2man pr printf pwd python python2 python2.7 python3 ranlib readelf readlink rm rmdir rpcgen sed sh sha256sum sleep sort split stat strings strip tail tar tee test touch tr true uname uniq wc wget which xargs  ip ping ps scp ssh stty"
#
# $HOSTTOOLS_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:457
#     "${TMPDIR}/hosttools"
HOSTTOOLS_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/hosttools"
#
# $HOSTTOOLS_NONFATAL [3 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:475
#     "aws ccache gcc-ar gpg ld.bfd ld.gold nc sftp socat sudo"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:478
#     "join nl size yes zcat"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:481
#     "bzr"
# pre-expansion value:
#   " aws ccache gcc-ar gpg ld.bfd ld.gold nc sftp socat sudo join nl size yes zcat bzr"
HOSTTOOLS_NONFATAL=" aws ccache gcc-ar gpg ld.bfd ld.gold nc sftp socat sudo join nl size yes zcat bzr"
#
# $HOST_ARCH [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:102
#     "${TARGET_ARCH}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:194
#     [doc] "The name of the target architecture. Normally same as the TARGET_ARCH."
# pre-expansion value:
#   "${TARGET_ARCH}"
HOST_ARCH="arm"
#
# $HOST_AR_KERNEL_ARCH
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:57
#     "${TARGET_AR_KERNEL_ARCH}"
HOST_AR_KERNEL_ARCH=""
#
# $HOST_AS_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:109
#     "${TARGET_AS_ARCH}"
HOST_AS_ARCH=""
#
# $HOST_CC_ARCH [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:107
#     "${TARGET_CC_ARCH}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:195
#     [doc] "The name of the host architecture. Normally same as the TARGET_CC_ARCH."
# pre-expansion value:
#   "${TARGET_CC_ARCH}"
HOST_CC_ARCH=" -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7"
#
# $HOST_CC_KERNEL_ARCH
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:53
#     "${TARGET_CC_KERNEL_ARCH}"
HOST_CC_KERNEL_ARCH=" -mno-thumb-interwork -marm"
#
# $HOST_EXEEXT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:110
#     ""
HOST_EXEEXT=""
#
# $HOST_LD_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:108
#     "${TARGET_LD_ARCH}"
HOST_LD_ARCH=""
#
# $HOST_LD_KERNEL_ARCH
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:55
#     "${TARGET_LD_KERNEL_ARCH}"
HOST_LD_KERNEL_ARCH=" "
#
# $HOST_OS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:103
#     "${TARGET_OS}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:196
#     [doc] "The name of the target operating system. Normally the same as the TARGET_OS."
# pre-expansion value:
#   "${TARGET_OS}"
HOST_OS="linux-gnueabi"
#
# $HOST_PREFIX [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:106
#     "${TARGET_PREFIX}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:197
#     [doc] "The prefix for the cross compile toolchain. Normally same as the TARGET_PREFIX."
# pre-expansion value:
#   "${TARGET_PREFIX}"
HOST_PREFIX="arm-oe-linux-gnueabi-"
#
# $HOST_SYS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:105
#     "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:198
#     [doc] "Specifies the system, including the architecture and the operating system, for with the build is occurring in the context of the current recipe."
# pre-expansion value:
#   "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
HOST_SYS="arm-oe-linux-gnueabi"
#
# $HOST_USER_GID
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:1039
#     "${@os.getgid()}"
HOST_USER_GID="1001"
#
# $HOST_USER_UID
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:1038
#     "${@os.getuid()}"
HOST_USER_UID="1000"
#
# $HOST_VENDOR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:104
#     "${TARGET_VENDOR}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:199
#     [doc] "The name of the vendor. Normally same as the TARGET_VENDOR."
# pre-expansion value:
#   "${TARGET_VENDOR}"
HOST_VENDOR="-oe"
#
# $ICECC_ENV_EXEC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:203
#     [doc] "Points to the icecc-create-env script that you provide."
#
# $ICECC_PATH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:204
#     [doc] "The location of the icecc binary."
#
# $ICECC_USER_CLASS_BL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:205
#     [doc] "Identifies user classes that you do not want the Icecream distributed compile support to consider."
#
# $ICECC_USER_PACKAGE_BL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:206
#     [doc] "Identifies user recipes that you do not want the Icecream distributed compile support to consider."
#
# $ICECC_USER_PACKAGE_WL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:207
#     [doc] "Identifies user recipes that use an empty PARALLEL_MAKE variable that you want to force remote distributed compilation on using the Icecream distributed compile support."
#
# $IMAGE_BASENAME [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:429
#     "${PN}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:208
#     [doc] "The base name of image output files."
# pre-expansion value:
#   "${PN}"
IMAGE_BASENAME="rescue-rootfs"
#
# $IMAGE_BOOT_FILES [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:18
#     "     u-boot.${UBOOT_SUFFIX}     ${SPL_BINARY}     uboot.env     boot.scr "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:209
#     [doc] "Whitespace separated list of files from ${DEPLOY_DIR_IMAGE} to place in boot partition. Entries will be installed under a same name as the source file. To change the destination file name, pass a desired name after a semicolon (eg. u-boot.img;uboot)."
# pre-expansion value:
#   "     u-boot.${UBOOT_SUFFIX}     ${SPL_BINARY}     uboot.env     boot.scr "
IMAGE_BOOT_FILES="     u-boot.bin          uboot.env     boot.scr "
#
# $IMAGE_CLASSES [3 operations]
#   append /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:6
#     "image_types_uboot"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:210
#     [doc] "A list of classes that all images should inherit."
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:193
#     "image_types"
# pre-expansion value:
#   " image_types_uboot image_types"
IMAGE_CLASSES=" image_types_uboot image_types"
#
# $IMAGE_CMD_TAR
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:110
#     "tar"
IMAGE_CMD_TAR="tar"
#
# $IMAGE_CMD_cpio [5 operations]
#   set ast.py:194 [eval]
#     [func] "1"
#   set ast.py:195 [eval]
#     "	(cd ${IMAGE_ROOTFS} && find . | cpio -o -H newc >${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
#     	# We only need the /init symlink if we're building the real
#     	# image. The -dbg image doesn't need it! By being clever
#     	# about this we also avoid 'touch' below failing, as it
#     	# might be trying to touch /sbin/init on the host since both
#     	# the normal and the -dbg image share the same WORKDIR
#     	if [ "${IMAGE_BUILDING_DEBUGFS}" != "true" ]; then
#     		if [ ! -L ${IMAGE_ROOTFS}/init ] && [ ! -e ${IMAGE_ROOTFS}/init ]; then
#     			if [ -L ${IMAGE_ROOTFS}/sbin/init ] || [ -e ${IMAGE_ROOTFS}/sbin/init ]; then
#     				ln -sf /sbin/init ${WORKDIR}/cpio_append/init
#     			else
#     				touch ${WORKDIR}/cpio_append/init
#     			fi
#     			(cd  ${WORKDIR}/cpio_append && echo ./init | cpio -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
#     		fi
#     	fi
#     "
#   set ast.py:196 [eval]
#     [filename] "/home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass"
#   set ast.py:197 [eval]
#     [lineno] "114"
#   delFlag image.bbclass:453 [__anon_507__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_bbclass]
#     [func] ""
# pre-expansion value:
#   "	(cd ${IMAGE_ROOTFS} && find . | cpio -o -H newc >${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
#	# We only need the /init symlink if we're building the real
#	# image. The -dbg image doesn't need it! By being clever
#	# about this we also avoid 'touch' below failing, as it
#	# might be trying to touch /sbin/init on the host since both
#	# the normal and the -dbg image share the same WORKDIR
#	if [ "${IMAGE_BUILDING_DEBUGFS}" != "true" ]; then
#		if [ ! -L ${IMAGE_ROOTFS}/init ] && [ ! -e ${IMAGE_ROOTFS}/init ]; then
#			if [ -L ${IMAGE_ROOTFS}/sbin/init ] || [ -e ${IMAGE_ROOTFS}/sbin/init ]; then
#				ln -sf /sbin/init ${WORKDIR}/cpio_append/init
#			else
#				touch ${WORKDIR}/cpio_append/init
#			fi
#			(cd  ${WORKDIR}/cpio_append && echo ./init | cpio -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
#		fi
#	fi
#"
IMAGE_CMD_cpio="	(cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs && find . | cpio -o -H newc >/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.cpio) \
	# We only need the /init symlink if we're building the real \
	# image. The -dbg image doesn't need it! By being clever \
	# about this we also avoid 'touch' below failing, as it \
	# might be trying to touch /sbin/init on the host since both \
	# the normal and the -dbg image share the same WORKDIR \
	if [ \"\${IMAGE_BUILDING_DEBUGFS}\" != \"true\" ]; then \
		if [ ! -L /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/init ] && [ ! -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/init ]; then \
			if [ -L /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init ] || [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init ]; then \
				ln -sf /sbin/init /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append/init \
			else \
				touch /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append/init \
			fi \
			(cd  /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append && echo ./init | cpio -oA -H newc -F /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.cpio) \
		fi \
	fi \
"
#
# $IMAGE_CMD_cramfs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:55
#     "mkfs.cramfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cramfs ${EXTRA_IMAGECMD}"
IMAGE_CMD_cramfs="mkfs.cramfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.cramfs "
#
# $IMAGE_CMD_ext2
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:81
#     "oe_mkext234fs ext2 ${EXTRA_IMAGECMD}"
IMAGE_CMD_ext2="oe_mkext234fs ext2 "
#
# $IMAGE_CMD_ext3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:82
#     "oe_mkext234fs ext3 ${EXTRA_IMAGECMD}"
IMAGE_CMD_ext3="oe_mkext234fs ext3 "
#
# $IMAGE_CMD_ext4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:83
#     "oe_mkext234fs ext4 ${EXTRA_IMAGECMD}"
IMAGE_CMD_ext4="oe_mkext234fs ext4 "
#
# $IMAGE_CMD_jffs2
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:53
#     "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime --output=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.jffs2 ${EXTRA_IMAGECMD}"
IMAGE_CMD_jffs2="mkfs.jffs2 --root=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs --faketime --output=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.jffs2 "
#
# $IMAGE_CMD_squashfs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:96
#     "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs ${EXTRA_IMAGECMD} -noappend"
IMAGE_CMD_squashfs="mksquashfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.squashfs  -noappend"
#
# $IMAGE_CMD_squashfs-lzo
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:98
#     "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-lzo ${EXTRA_IMAGECMD} -noappend -comp lzo"
IMAGE_CMD_squashfs-lzo="mksquashfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.squashfs-lzo  -noappend -comp lzo"
#
# $IMAGE_CMD_squashfs-xz
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:97
#     "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-xz ${EXTRA_IMAGECMD} -noappend -comp xz"
IMAGE_CMD_squashfs-xz="mksquashfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.squashfs-xz  -noappend -comp xz"
#
# $IMAGE_CMD_tar
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:111
#     "${IMAGE_CMD_TAR} -cvf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.tar -C ${IMAGE_ROOTFS} ."
IMAGE_CMD_tar="tar -cvf /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.tar -C /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs ."
#
# $IMAGE_CMD_ubifs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:196
#     "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ubifs ${MKUBIFS_ARGS}"
IMAGE_CMD_ubifs="mkfs.ubifs -r /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs -o /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.ubifs \${MKUBIFS_ARGS}"
#
# $IMAGE_DEPENDS [15 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:212
#     ""
#   override[jffs2]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:213
#     "mtd-utils-native"
#   override[cramfs]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:214
#     "util-linux-native"
#   override[ext2]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:215
#     "e2fsprogs-native"
#   override[ext3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:216
#     "e2fsprogs-native"
#   override[ext4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:217
#     "e2fsprogs-native"
#   override[btrfs]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:218
#     "btrfs-tools-native"
#   override[squashfs]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:219
#     "squashfs-tools-native"
#   override[squashfs-xz]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:220
#     "squashfs-tools-native"
#   override[squashfs-lzo]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:221
#     "squashfs-tools-native"
#   override[elf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:222
#     "virtual/kernel mkelfimage-native"
#   override[ubi]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:223
#     "mtd-utils-native"
#   override[ubifs]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:224
#     "mtd-utils-native"
#   override[multiubi]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:225
#     "mtd-utils-native"
#   override[wic]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:226
#     "parted-native"
# pre-expansion value:
#   ""
IMAGE_DEPENDS=""
#
# $IMAGE_DEPENDS_btrfs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:218
#     "btrfs-tools-native"
IMAGE_DEPENDS_btrfs="btrfs-tools-native"
#
# $IMAGE_DEPENDS_cramfs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:214
#     "util-linux-native"
IMAGE_DEPENDS_cramfs="util-linux-native"
#
# $IMAGE_DEPENDS_elf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:222
#     "virtual/kernel mkelfimage-native"
IMAGE_DEPENDS_elf="virtual/kernel mkelfimage-native"
#
# $IMAGE_DEPENDS_ext2
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:215
#     "e2fsprogs-native"
IMAGE_DEPENDS_ext2="e2fsprogs-native"
#
# $IMAGE_DEPENDS_ext3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:216
#     "e2fsprogs-native"
IMAGE_DEPENDS_ext3="e2fsprogs-native"
#
# $IMAGE_DEPENDS_ext4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:217
#     "e2fsprogs-native"
IMAGE_DEPENDS_ext4="e2fsprogs-native"
#
# $IMAGE_DEPENDS_jffs2
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:213
#     "mtd-utils-native"
IMAGE_DEPENDS_jffs2="mtd-utils-native"
#
# $IMAGE_DEPENDS_multiubi
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:225
#     "mtd-utils-native"
IMAGE_DEPENDS_multiubi="mtd-utils-native"
#
# $IMAGE_DEPENDS_squashfs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:219
#     "squashfs-tools-native"
IMAGE_DEPENDS_squashfs="squashfs-tools-native"
#
# $IMAGE_DEPENDS_squashfs-lzo
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:221
#     "squashfs-tools-native"
IMAGE_DEPENDS_squashfs-lzo="squashfs-tools-native"
#
# $IMAGE_DEPENDS_squashfs-xz
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:220
#     "squashfs-tools-native"
IMAGE_DEPENDS_squashfs-xz="squashfs-tools-native"
#
# $IMAGE_DEPENDS_ubi
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:223
#     "mtd-utils-native"
IMAGE_DEPENDS_ubi="mtd-utils-native"
#
# $IMAGE_DEPENDS_ubifs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:224
#     "mtd-utils-native"
IMAGE_DEPENDS_ubifs="mtd-utils-native"
#
# $IMAGE_DEPENDS_wic
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:226
#     "parted-native"
IMAGE_DEPENDS_wic="parted-native"
#
# $IMAGE_EXTENSION_live
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:290
#     "hddimg iso"
IMAGE_EXTENSION_live="hddimg iso"
#
# $IMAGE_FEATURES [8 operations]
#   append /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:34
#     [validitems] "qtcreator-debug"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:23
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:211
#     [doc] "The primary list of features to include in an image. Configure this variable in an image recipe."
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:797
#     "${EXTRA_IMAGE_FEATURES}"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:24
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:25
#     [type] "list"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:26
#     [validitems] "debug-tweaks read-only-rootfs empty-root-password allow-empty-password post-install-logging"
#   set image.bbclass:185 [__anon_191__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_bbclass]
#     ""
# pre-expansion value:
#   ""
IMAGE_FEATURES=""
#
# $IMAGE_FSTYPES [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:212
#     [doc] "Formats of root filesystem images that you want to have created."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:750
#     "tar.gz"
#   set /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb:8
#     "tar cpio.gz cpio.gz.u-boot"
# pre-expansion value:
#   "tar cpio.gz cpio.gz.u-boot"
IMAGE_FSTYPES="tar cpio.gz cpio.gz.u-boot"
#
# $IMAGE_FSTYPES_DEBUGFS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:213
#     [doc] "Formats of the debug root filesystem images that you want to have created."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:751
#     "${IMAGE_FSTYPES}"
# pre-expansion value:
#   "${IMAGE_FSTYPES}"
IMAGE_FSTYPES_DEBUGFS="tar cpio.gz cpio.gz.u-boot"
#
# $IMAGE_GEN_DEBUGFS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:214
#     [doc] "When set to '1', generate a companion debug object/source filesystem image."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:29
#     "0"
# pre-expansion value:
#   "0"
IMAGE_GEN_DEBUGFS="0"
#
# $IMAGE_INSTALL [7 operations]
#   _append[pn-pil-bootfs] /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:16
#     " rpi-bootfiles rpi-config"
#   _append[pn-pil-rootfs] /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf:28
#     " liberation-fonts "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:215
#     [doc] "Specifies the packages to install into an image. Image recipes set IMAGE_INSTALL to specify the packages to install into an image through image.bbclass."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:70
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:71
#     [type] "list"
#   set /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc:24
#     " 		 packagegroup-core-boot 		 packagegroup-core-ssh-openssh 		 e2fsprogs 		 e2fsprogs-tune2fs 		 dosfstools 		 mtd-utils mtd-utils-jffs2 mtd-utils-misc 		 u-boot-fw-utils 		 ${IMAGE_INSTALL_HWCLOCK} 		 busybox-syslog 		 busybox-watchdog 		 busybox-ifplugd 		 dhcp-client 		 openssh-sftp-server 		 openssh-sftp 		 rauc 		 dbus 		 system-init 		 "
#   append /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb:11
#     "     rescue-init "
# pre-expansion value:
#   " 		 packagegroup-core-boot 		 packagegroup-core-ssh-openssh 		 e2fsprogs 		 e2fsprogs-tune2fs 		 dosfstools 		 mtd-utils mtd-utils-jffs2 mtd-utils-misc 		 u-boot-fw-utils 		 ${IMAGE_INSTALL_HWCLOCK} 		 busybox-syslog 		 busybox-watchdog 		 busybox-ifplugd 		 dhcp-client 		 openssh-sftp-server 		 openssh-sftp 		 rauc 		 dbus 		 system-init 		       rescue-init "
IMAGE_INSTALL=" 		 packagegroup-core-boot 		 packagegroup-core-ssh-openssh 		 e2fsprogs 		 e2fsprogs-tune2fs 		 dosfstools 		 mtd-utils mtd-utils-jffs2 mtd-utils-misc 		 u-boot-fw-utils 		  		 busybox-syslog 		 busybox-watchdog 		 busybox-ifplugd 		 dhcp-client 		 openssh-sftp-server 		 openssh-sftp 		 rauc 		 dbus 		 system-init 		       rescue-init "
#
# $IMAGE_INSTALL_COMPLEMENTARY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:49
#     "${@complementary_globs("IMAGE_FEATURES", d)}"
IMAGE_INSTALL_COMPLEMENTARY=""
#
# $IMAGE_INSTALL_HWCLOCK
#   set /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc:5
#     "${@bb.utils.contains('MACHINE_FEATURES', 'rtc', 'busybox-hwclock', '', d)}"
IMAGE_INSTALL_HWCLOCK=""
#
# $IMAGE_LINGUAS [4 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:7
#     "en-us en-gb"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:216
#     [doc] "Specifies the list of locales to install into the image during the root filesystem construction process."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:199
#     "de-de fr-fr en-gb"
#   set /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb:7
#     ""
# pre-expansion value:
#   ""
IMAGE_LINGUAS=""
#
# $IMAGE_LINK_NAME
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:432
#     "${IMAGE_BASENAME}-${MACHINE}"
IMAGE_LINK_NAME="rescue-rootfs-rpi2"
#
# $IMAGE_MANIFEST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs-postcommands.bbclass:21
#     "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.manifest"
IMAGE_MANIFEST="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.manifest"
#
# $IMAGE_NAME [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:430
#     "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:431
#     [vardepsexclude] "DATETIME"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:217
#     [doc] "The name of the output image files minus the extension."
# pre-expansion value:
#   "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
IMAGE_NAME="rescue-rootfs-rpi2-20170915073224"
#
# $IMAGE_NAME_SUFFIX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:5
#     [_defaultval] ".rootfs"
IMAGE_NAME_SUFFIX=".rootfs"
#
# $IMAGE_OVERHEAD_FACTOR [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:436
#     "1.3"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:218
#     [doc] "Defines a multiplier that the build system applies to the initial image size for cases when the multiplier times the returned disk usage value for the image is greater than the sum of IMAGE_ROOTFS_SIZE and IMAGE_ROOTFS_EXTRA_SPACE."
# pre-expansion value:
#   "1.3"
IMAGE_OVERHEAD_FACTOR="1.3"
#
# $IMAGE_PKGTYPE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:219
#     [doc] "Defines the package type (DEB, RPM, IPK, or TAR) used by the OpenEmbedded build system."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:3
#     "ipk"
# pre-expansion value:
#   "ipk"
IMAGE_PKGTYPE="ipk"
#
# $IMAGE_ROOTFS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:428
#     "${WORKDIR}/rootfs"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:221
#     [doc] "The location of the root filesystem while it is under construction (i.e. during do_rootfs)."
# pre-expansion value:
#   "${WORKDIR}/rootfs"
IMAGE_ROOTFS="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs"
#
# $IMAGE_ROOTFS_ALIGNMENT
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:10
#     "1"
IMAGE_ROOTFS_ALIGNMENT="1"
#
# $IMAGE_ROOTFS_EXTRA_SPACE [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:441
#     "0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:222
#     [doc] "Defines additional free disk space created in the image in Kbytes. By default, this variable is set to '0'."
# pre-expansion value:
#   "0"
IMAGE_ROOTFS_EXTRA_SPACE="0"
#
# $IMAGE_ROOTFS_SIZE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:223
#     [doc] "Defines the size in Kbytes for the generated image."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:765
#     [_defaultval] "65536"
# pre-expansion value:
#   "65536"
IMAGE_ROOTFS_SIZE="65536"
#
# $IMAGE_TYPEDEP_elf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:141
#     "cpio.gz"
IMAGE_TYPEDEP_elf="cpio.gz"
#
# $IMAGE_TYPES [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:224
#     [doc] "Specifies the complete list of supported image types by default."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:249
#     "     jffs2 jffs2.sum     cramfs     ext2 ext2.gz ext2.bz2 ext2.lzma     ext3 ext3.gz     ext4 ext4.gz     btrfs     iso     hddimg     squashfs squashfs-xz squashfs-lzo     ubi ubifs multiubi     tar tar.gz tar.bz2 tar.xz tar.lz4     cpio cpio.gz cpio.xz cpio.lzma cpio.lz4     vmdk     vdi     qcow2     hdddirect     elf     wic wic.gz wic.bz2 wic.lzma     container "
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_uboot.bbclass:28
#     "ext2.u-boot ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot ext3.gz.u-boot ext4.gz.u-boot cpio.gz.u-boot"
# pre-expansion value:
#   "     jffs2 jffs2.sum     cramfs     ext2 ext2.gz ext2.bz2 ext2.lzma     ext3 ext3.gz     ext4 ext4.gz     btrfs     iso     hddimg     squashfs squashfs-xz squashfs-lzo     ubi ubifs multiubi     tar tar.gz tar.bz2 tar.xz tar.lz4     cpio cpio.gz cpio.xz cpio.lzma cpio.lz4     vmdk     vdi     qcow2     hdddirect     elf     wic wic.gz wic.bz2 wic.lzma     container  ext2.u-boot ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot ext3.gz.u-boot ext4.gz.u-boot cpio.gz.u-boot"
IMAGE_TYPES="     jffs2 jffs2.sum     cramfs     ext2 ext2.gz ext2.bz2 ext2.lzma     ext3 ext3.gz     ext4 ext4.gz     btrfs     iso     hddimg     squashfs squashfs-xz squashfs-lzo     ubi ubifs multiubi     tar tar.gz tar.bz2 tar.xz tar.lz4     cpio cpio.gz cpio.xz cpio.lzma cpio.lz4     vmdk     vdi     qcow2     hdddirect     elf     wic wic.gz wic.bz2 wic.lzma     container  ext2.u-boot ext2.gz.u-boot ext2.bz2.u-boot ext2.lzma.u-boot ext3.gz.u-boot ext4.gz.u-boot cpio.gz.u-boot"
#
# $IMAGE_TYPES_MASKED
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:294
#     ""
IMAGE_TYPES_MASKED=""
#
# $IMAGE_TYPE_container
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:145
#     "${@bb.utils.contains("IMAGE_FSTYPES", "container", "image-container", "", d)}"
IMAGE_TYPE_container=""
#
# $IMAGE_TYPE_live
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:139
#     "${@build_live(d)}"
IMAGE_TYPE_live=""
#
# $IMAGE_TYPE_uboot
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:154
#     "${@build_uboot(d)}"
IMAGE_TYPE_uboot="image_types_uboot"
#
# $IMAGE_TYPE_vm
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:142
#     "${@bb.utils.contains_any("IMAGE_FSTYPES", ["vmdk", "vdi", "qcow2", "hdddirect"], "image-vm", "", d)}"
IMAGE_TYPE_vm=""
#
# $IMAGE_TYPE_wic
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:157
#     "image_types_wic"
IMAGE_TYPE_wic="image_types_wic"
#
# $IMGDEPLOYDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:75
#     "${WORKDIR}/deploy-${PN}-image-complete"
IMGDEPLOYDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete"
#
# $INCOMPATIBLE_LICENSE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:226
#     [doc] "Specifies a space-separated list of license names (as they would appear in LICENSE) that should be excluded from the build. Wildcard is supported, such as '*GPLv3'"
#
# $INC_PR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:225
#     [doc] "Helps define the recipe revision for recipes that share a common include file."
#
# $INHERIT [3 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:24
#     "${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:229
#     [doc] "Causes the named class to be inherited at this point during parsing. The variable is only valid in configuration files."
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf:15
#     "sanity"
# pre-expansion value:
#   " ${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST} sanity"
INHERIT=" package_ipk  debian devshell sstate license remove-libtool blacklist sanity"
#
# $INHERIT_BLACKLIST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:22
#     "blacklist"
INHERIT_BLACKLIST="blacklist"
#
# $INHERIT_DISTRO [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:23
#     "debian devshell sstate license remove-libtool"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:230
#     [doc] "Lists classes that will be inherited at the distribution level. It is unlikely that you want to edit this variable."
# pre-expansion value:
#   "debian devshell sstate license remove-libtool"
INHERIT_DISTRO="debian devshell sstate license remove-libtool"
#
# $INHIBIT_DEFAULT_DEPS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:227
#     [doc] "Prevents the default dependencies, namely the C compiler and standard C library (libc), from being added to DEPENDS."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:18
#     "1"
# pre-expansion value:
#   "1"
INHIBIT_DEFAULT_DEPS="1"
#
# $INHIBIT_PACKAGE_STRIP
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:228
#     [doc] "If set to "1", causes the build to not strip binaries in resulting packages."
#
# $INITRAMFS_FSTYPES [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:231
#     [doc] "Defines the format for the output image of an initial RAM disk (initramfs), which is used during boot."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:753
#     "cpio.gz"
# pre-expansion value:
#   "cpio.gz"
INITRAMFS_FSTYPES="cpio.gz"
#
# $INITRAMFS_MAXSIZE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:757
#     [_defaultval] "131072"
INITRAMFS_MAXSIZE="131072"
#
# $INITRD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:232
#     [doc] "Indicates a list of filesystem images to concatenate and use as an initial RAM disk (initrd)."
#
# $INITSCRIPT_NAME
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:233
#     [doc] "The filename of the initialization script as installed to ${sysconfdir}/init.d."
#
# $INITSCRIPT_PACKAGES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:234
#     [doc] "A list of the packages that contain initscripts. This variable is used in recipes when using update-rc.d.bbclass. The variable is optional and defaults to the PN variable."
#
# $INITSCRIPT_PARAMS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:235
#     [doc] "Specifies the options to pass to update-rc.d. The variable is mandatory and is used in recipes when using update-rc.d.bbclass."
#   override[pn-init-ifupdown]:set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:51
#     "stop 80 0 6 1 ."
# pre-expansion value:
#   "None"
#
# $INITSCRIPT_PARAMS_pn-init-ifupdown
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:51
#     "stop 80 0 6 1 ."
INITSCRIPT_PARAMS_pn-init-ifupdown="stop 80 0 6 1 ."
#
# $INSANE_SKIP
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:236
#     [doc] "Specifies the QA checks to skip for a specific package within a recipe."
#
# $IPKGCONF_SDK
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:6
#     "${WORKDIR}/opkg-sdk.conf"
IPKGCONF_SDK="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/opkg-sdk.conf"
#
# $IPKGCONF_TARGET
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:5
#     "${WORKDIR}/opkg.conf"
IPKGCONF_TARGET="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/opkg.conf"
#
# $IPK_FEED_URIS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:237
#     [doc] "List of ipkg feed records to put into generated image."
#
# $JFFS2_ENDIANNESS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:201
#     "${@base_conditional('SITEINFO_ENDIANNESS', 'le', '-l', '-b', d)}"
JFFS2_ENDIANNESS="-l"
#
# $JFFS2_ERASEBLOCK
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:202
#     "0x40000"
JFFS2_ERASEBLOCK="0x40000"
#
# $JFFS2_SUM_EXTRA_ARGS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:52
#     ""
JFFS2_SUM_EXTRA_ARGS=""
#
# $KARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:241
#     [doc] "Defines the kernel architecture used when assembling the configuration. You define the KARCH variable in the BSP Descriptions."
#
# $KBRANCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:242
#     [doc] "A regular expression used by the build process to explicitly identify the kernel branch that is validated, patched and configured during a build."
#
# $KBRANCH_DEFAULT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:243
#     [doc] "Defines the Linux kernel source repository's default branch used to build the Linux kernel. Unless you specify otherwise, the variable initializes to 'master'."
#
# $KEEPUIMAGE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:5
#     [_defaultval] "yes"
KEEPUIMAGE="yes"
#
# $KERNELDEPMODDEPEND
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:95
#     "virtual/kernel:do_packagedata"
KERNELDEPMODDEPEND="virtual/kernel:do_packagedata"
#
# $KERNELORG_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:614
#     "http://cdn.kernel.org/pub"
KERNELORG_MIRROR="http://cdn.kernel.org/pub"
#
# $KERNEL_AR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:61
#     "${CCACHE}${HOST_PREFIX}ar ${HOST_AR_KERNEL_ARCH}"
KERNEL_AR="arm-oe-linux-gnueabi-ar "
#
# $KERNEL_CC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:59
#     "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_KERNEL_ARCH} -fuse-ld=bfd"
KERNEL_CC="arm-oe-linux-gnueabi-gcc  -mno-thumb-interwork -marm -fuse-ld=bfd"
#
# $KERNEL_CLASSES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:244
#     [doc] "A list of classes defining kernel image types that kernel class should inherit."
#
# $KERNEL_CONSOLE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:4
#     "ttyS0"
KERNEL_CONSOLE="ttyS0"
#
# $KERNEL_DEFCONFIG
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:9
#     "multi_v7_defconfig"
KERNEL_DEFCONFIG="multi_v7_defconfig"
#
# $KERNEL_DEVICETREE
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:7
#     "bcm2836-rpi-2-b.dtb"
KERNEL_DEVICETREE="bcm2836-rpi-2-b.dtb"
#
# $KERNEL_EXTRA_ARGS [2 operations]
#   _append[pn-linux-pil] /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:10
#     " LOADADDR=${UBOOT_ENTRYPOINT}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:245
#     [doc] "Specifies additional make command-line arguments the OpenEmbedded build system passes on when compiling the kernel."
# pre-expansion value:
#   ""
KERNEL_EXTRA_ARGS=""
#
# $KERNEL_FEATURES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:246
#     [doc] "Includes additional metadata from the Yocto Project kernel Git repository. The metadata you add through this variable includes config fragments and features descriptions."
#
# $KERNEL_IMAGETYPE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:8
#     "uImage"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:247
#     [doc] "The type of kernel to build for a device, usually set by the machine configuration files and defaults to 'zImage'."
# pre-expansion value:
#   "uImage"
KERNEL_IMAGETYPE="uImage"
#
# $KERNEL_IMAGETYPES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:248
#     [doc] "The list of types of kernel to build for a device, usually set by the machine configuration files and defaults to KERNEL_IMAGETYPE."
#
# $KERNEL_LD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:60
#     "${CCACHE}${HOST_PREFIX}ld.bfd ${HOST_LD_KERNEL_ARCH}"
KERNEL_LD="arm-oe-linux-gnueabi-ld.bfd  "
#
# $KERNEL_MODULE_AUTOLOAD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:249
#     [doc] "Lists kernel modules that need to be auto-loaded during boot"
#
# $KERNEL_MODULE_PROBECONF
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:250
#     [doc] "Lists kernel modules for which the build system expects to find module_conf_* values that specify configuration for each of the modules"
#
# $KERNEL_PATH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:251
#     [doc] "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module class (module.bbclass)."
#
# $KERNEL_SRC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:252
#     [doc] "The location of the kernel sources. This variable is set to the value of the STAGING_KERNEL_DIR within the module class (module.bbclass)."
#
# $KERNEL_SRC_PATH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:419
#     "/usr/src/kernel"
KERNEL_SRC_PATH="/usr/src/kernel"
#
# $KFEATURE_DESCRIPTION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:253
#     [doc] "Provides a short description of a configuration fragment. You use this variable in the .scc file that describes a configuration fragment file."
#
# $KMACHINE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:254
#     [doc] "The machine as known by the kernel."
#
# $KTYPE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:255
#     [doc] "Defines the kernel type to be used in assembling the configuration."
#
# $LAYERDEPENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:259
#     [doc] "Lists the layers, separated by spaces, upon which this recipe depends. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer."
#   override[qt5-layer]:set /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:30
#     "core"
# pre-expansion value:
#   "None"
#
# $LAYERDEPENDS_qt5-layer
#   set /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:30
#     "core"
LAYERDEPENDS_qt5-layer="core"
#
# $LAYERDIR [7 operations]
#   set cookerdata.py:340 [parseConfigurationFiles]
#     "/home/mnhu/projects/pil/yocto/meta-poky/meta"
#   set cookerdata.py:340 [parseConfigurationFiles]
#     "/home/mnhu/projects/pil/yocto/meta-qt5"
#   set cookerdata.py:340 [parseConfigurationFiles]
#     "/home/mnhu/projects/pil/yocto/meta-rauc"
#   set cookerdata.py:340 [parseConfigurationFiles]
#     "/home/mnhu/projects/pil/yocto/meta-pil"
#   set cookerdata.py:340 [parseConfigurationFiles]
#     "/home/mnhu/projects/pil/yocto"
#   del cookerdata.py:347 [parseConfigurationFiles]
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:260
#     [doc] "When used inside the layer.conf configuration file, this variable provides the path of the current layer."
# pre-expansion value:
#   "None"
#
# $LAYERVERSION [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:261
#     [doc] "Optionally specifies the version of a layer as a single number. This variable is used in the conf/layer.conf file and must be suffixed with the name of the specific layer."
#   override[core]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:12
#     "10"
#   override[qt5-layer]:set /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:28
#     "1"
# pre-expansion value:
#   "None"
#
# $LAYERVERSION_core
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:12
#     "10"
LAYERVERSION_core="10"
#
# $LAYERVERSION_qt5-layer
#   set /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:28
#     "1"
LAYERVERSION_qt5-layer="1"
#
# $LAYER_CONF_VERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf:12
#     "7"
LAYER_CONF_VERSION="7"
#
# $LC_ALL [4 operations]
#   from env data.py:124 [inheritFromOS]
#     "en_US.UTF-8"
#   auto env export data.py:126 [inheritFromOS]
#     [export] "True"
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:526
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:526
#     "en_US.UTF-8"
# pre-expansion value:
#   "en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
#
# $LD [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:498
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:498
#     "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"
# pre-expansion value:
#   "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"
export LD="arm-oe-linux-gnueabi-ld --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot "
#
# $LDCONFIGDEPEND [3 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:87
#     "ldconfig-native:do_populate_sysroot"
#   override[libc-uclibc]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:88
#     ""
#   override[libc-musl]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:89
#     ""
# pre-expansion value:
#   "ldconfig-native:do_populate_sysroot"
LDCONFIGDEPEND="ldconfig-native:do_populate_sysroot"
#
# $LDCONFIGDEPEND_libc-musl
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:89
#     ""
LDCONFIGDEPEND_libc-musl=""
#
# $LDCONFIGDEPEND_libc-uclibc
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:88
#     ""
LDCONFIGDEPEND_libc-uclibc=""
#
# $LDFLAGS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:568
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:568
#     "${TARGET_LDFLAGS}"
# pre-expansion value:
#   "${TARGET_LDFLAGS}"
export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
#
# $LEAD_SONAME
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:262
#     [doc] "Specifies the lead (or primary) compiled library file (.so) that the debian class applies its naming policy to given a recipe that packages multiple libraries."
#
# $LGPLv2_WHITELIST_GPL-3.0
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:26
#     ""
LGPLv2_WHITELIST_GPL-3.0=""
#
# $LIBCEXTENSION [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:118
#     [_defaultval] ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:5
#     "${@['', '-gnu'][(d.getVar('ABIEXTENSION') or '') != '']}"
# pre-expansion value:
#   "${@['', '-gnu'][(d.getVar('ABIEXTENSION') or '') != '']}"
LIBCEXTENSION="-gnu"
#
# $LIBCOVERRIDE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:8
#     ":libc-glibc"
LIBCOVERRIDE=":libc-glibc"
#
# $LIBC_DEPENDENCIES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:27
#     "libsegfault 		     glibc 		     glibc-dbg 		     glibc-dev 		     glibc-utils 		     glibc-thread-db 		     ${@get_libc_locales_dependencies(d)}"
LIBC_DEPENDENCIES="libsegfault 		     glibc 		     glibc-dbg 		     glibc-dev 		     glibc-utils 		     glibc-thread-db 		     	glibc-localedata-i18n 	glibc-gconv-ibm850 	glibc-gconv-cp1252 	glibc-gconv-iso8859-1 	glibc-gconv-iso8859-15"
#
# $LIBC_LOCALE_DEPENDENCIES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:34
#     "	glibc-localedata-i18n 	glibc-gconv-ibm850 	glibc-gconv-cp1252 	glibc-gconv-iso8859-1 	glibc-gconv-iso8859-15"
LIBC_LOCALE_DEPENDENCIES="	glibc-localedata-i18n 	glibc-gconv-ibm850 	glibc-gconv-cp1252 	glibc-gconv-iso8859-1 	glibc-gconv-iso8859-15"
#
# $LICENSE [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:249
#     [_defaultval] "INVALID"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:264
#     [doc] "The list of source licenses for the recipe. Logical operators '&' or '|' and parentheses can be used."
#   set /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb:2
#     "MIT"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:12
#     "MIT"
# pre-expansion value:
#   "MIT"
LICENSE="MIT"
#
# $LICENSE_CREATE_PACKAGE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass:10
#     [type] "boolean"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass:11
#     [_defaultval] "0"
# pre-expansion value:
#   "0"
LICENSE_CREATE_PACKAGE="0"
#
# $LICENSE_DIRECTORY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass:6
#     [_defaultval] "${DEPLOY_DIR}/licenses"
LICENSE_DIRECTORY="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/licenses"
#
# $LICENSE_FILES_DIRECTORY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass:13
#     [_defaultval] "${datadir}/licenses/"
LICENSE_FILES_DIRECTORY="/usr/share/licenses/"
#
# $LICENSE_PACKAGE_SUFFIX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass:12
#     [_defaultval] "-lic"
LICENSE_PACKAGE_SUFFIX="-lic"
#
# $LICENSE_PATH [3 operations]
#   append /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:32
#     "${LAYERDIR}/licenses"
#   set data_smart.py:938 [expandVarref]
#     " /home/mnhu/projects/pil/yocto/meta-qt5/licenses"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:265
#     [doc] "Path to additional licenses used during the build."
# pre-expansion value:
#   " /home/mnhu/projects/pil/yocto/meta-qt5/licenses"
LICENSE_PATH=" /home/mnhu/projects/pil/yocto/meta-qt5/licenses"
#
# $LICSSTATEDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass:7
#     "${WORKDIR}/license-destdir/"
LICSSTATEDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/license-destdir/"
#
# $LIC_FILES_CHKSUM
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:263
#     [doc] "Checksums of the license text in the recipe source code."
#
# $LINGUAS_INSTALL
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:201
#     "${@" ".join(map(lambda s: "locale-base-%s" % s, d.getVar('IMAGE_LINGUAS').split()))}"
LINGUAS_INSTALL=""
#
# $LINKER_HASH_STYLE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:562
#     [_defaultval] "gnu"
#   override[mipsarch]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:564
#     "sysv"
# pre-expansion value:
#   "gnu"
LINKER_HASH_STYLE="gnu"
#
# $LINKER_HASH_STYLE_mipsarch
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:564
#     "sysv"
LINKER_HASH_STYLE_mipsarch="sysv"
#
# $LINUXLIBCVERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:31
#     "4.10%"
LINUXLIBCVERSION="4.10%"
#
# $LINUX_KERNEL_TYPE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:266
#     [doc] "Defines the kernel type to be used in assembling the configuration."
#
# $LINUX_VERSION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:267
#     [doc] "The Linux version from kernel.org on which the Linux kernel image being built using the OpenEmbedded build system is based. You define this variable in the kernel recipe."
#
# $LINUX_VERSION_EXTENSION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:268
#     [doc] "A string extension compiled into the version string of the Linux kernel built with the OpenEmbedded build system. You define this variable in the kernel recipe."
#
# $LOCALCONF_VERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf:11
#     "1"
LOCALCONF_VERSION="1"
#
# $LOCALEBASEPN
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:546
#     [_defaultval] "${PN}"
LOCALEBASEPN="rescue-rootfs"
#
# $LOCALE_SECTION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:50
#     ""
LOCALE_SECTION=""
#
# $LOCALE_UTF8_IS_DEFAULT [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:10
#     "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:269
#     [doc] "If set, locale names are renamed such that those lacking an explicit encoding (e.g. en_US) will always be UTF-8, and non-UTF-8 encodings are renamed to, e.g., en_US.ISO-8859-1. Otherwise, the encoding is specified by glibc's SUPPORTED file. Not supported for precompiled locales."
# pre-expansion value:
#   "1"
LOCALE_UTF8_IS_DEFAULT="1"
#
# $LOCALE_UTF8_ONLY
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:9
#     "0"
LOCALE_UTF8_ONLY="0"
#
# $LOGFIFO
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/logging.bbclass:6
#     "${T}/fifo.${@os.getpid()}"
LOGFIFO="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198"
#
# $LOGNAME [2 operations]
#   from env data.py:124 [inheritFromOS]
#     "mnhu"
#   auto env export data.py:126 [inheritFromOS]
#     [export] "True"
# pre-expansion value:
#   "mnhu"
export LOGNAME="mnhu"
#
# $LOG_DIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:335
#     "${TMPDIR}/log"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:270
#     [doc] "Specifies the directory to which the OpenEmbedded build system writes overall log files. The default directory is ${TMPDIR}/log"
# pre-expansion value:
#   "${TMPDIR}/log"
LOG_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/log"
#
# $MACHINE [3 operations]
#   set? /home/mnhu/projects/pil/yocto/conf/local.conf:7
#     "rpi2"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:274
#     [doc] "Specifies the target device for which the image is built. You define MACHINE in the conf/local.conf file in the Build Directory."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:823
#     [unexport] "1"
# pre-expansion value:
#   "rpi2"
unset MACHINE
#
# $MACHINEOVERRIDES [9 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:720
#     "${MACHINE}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:721
#     [vardepsexclude] "MACHINE"
#   predot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/soc-family.inc:3
#     "${@['', '${SOC_FAMILY}:']['${SOC_FAMILY}' != '']}"
#   predot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:6
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '' ,d)}"
#   predot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:6
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:', '' ,d)}"
#   predot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:6
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv6', 'armv6:', '' ,d)}"
#   predot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:6
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '' ,d)}"
#   predot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:13
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv4', 'armv4:', '' ,d)}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:282
#     [doc] "Lists overrides specific to the current machine. By default, this list includes the value of MACHINE."
# pre-expansion value:
#   "${@bb.utils.contains('TUNE_FEATURES', 'armv4', 'armv4:', '' ,d)}${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '' ,d)}${@bb.utils.contains('TUNE_FEATURES', 'armv6', 'armv6:', '' ,d)}${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:', '' ,d)}${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '' ,d)}${@['', '${SOC_FAMILY}:']['${SOC_FAMILY}' != '']}${MACHINE}"
MACHINEOVERRIDES="armv7ve:rpi:rpi2"
#
# $MACHINE_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:145
#     "${@[d.getVar('TUNE_PKGARCH'), d.getVar('MACHINE')][bool(d.getVar('MACHINE'))].replace('-', '_')}"
MACHINE_ARCH="rpi2"
#
# $MACHINE_ESSENTIAL_EXTRA_RDEPENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:275
#     [doc] "A list of required machine-specific packages to install as part of the image being built. Because this is a 'machine essential' variable, the list of packages are essential for the machine to boot."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:793
#     ""
# pre-expansion value:
#   ""
MACHINE_ESSENTIAL_EXTRA_RDEPENDS=""
#
# $MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:276
#     [doc] "A list of recommended machine-specific packages to install as part of the image being built. Because this is a 'machine essential' variable, the list of packages are essential for the machine to boot."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:794
#     ""
# pre-expansion value:
#   ""
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS=""
#
# $MACHINE_EXTRA_RDEPENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:277
#     [doc] "A list of machine-specific packages to install as part of the image being built that are not essential for the machine to boot. However, the build process for more fully-featured images depends on the packages being present."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:791
#     ""
# pre-expansion value:
#   ""
MACHINE_EXTRA_RDEPENDS=""
#
# $MACHINE_EXTRA_RRECOMMENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:278
#     [doc] "A list of machine-specific packages to install as part of the image being built that are not essential for booting the machine. The image being built has no build dependencies on the packages in this list."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:792
#     ""
# pre-expansion value:
#   ""
MACHINE_EXTRA_RRECOMMENDS=""
#
# $MACHINE_FEATURES [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:279
#     [doc] "Specifies the list of hardware features the MACHINE supports."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:786
#     ""
#   append utils.py:127 [features_backfill]
#     " qemu-usermode"
# pre-expansion value:
#   " qemu-usermode"
MACHINE_FEATURES=" qemu-usermode"
#
# $MACHINE_FEATURES_BACKFILL [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:280
#     [doc] "Features to be added to MACHINE_FEATURES if not also present in MACHINE_FEATURES_BACKFILL_CONSIDERED. This variable is set in the meta/conf/bitbake.conf file and is not intended to be user-configurable."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:810
#     "rtc qemu-usermode"
# pre-expansion value:
#   "rtc qemu-usermode"
MACHINE_FEATURES_BACKFILL="rtc qemu-usermode"
#
# $MACHINE_FEATURES_BACKFILL_CONSIDERED [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:19
#     "rtc"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:281
#     [doc] "Features from MACHINE_FEATURES_BACKFILL that should not be backfilled (i.e. added to MACHINE_FEATURES) during the build."
# pre-expansion value:
#   "rtc"
MACHINE_FEATURES_BACKFILL_CONSIDERED="rtc"
#
# $MACHINE_TASK_PROVIDER
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:760
#     "${DEFAULT_TASK_PROVIDER}"
MACHINE_TASK_PROVIDER="packagegroup-base"
#
# $MAINTAINER [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:250
#     "OE-Core Developers <openembedded-core at lists.openembedded.org>"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:283
#     [doc] "The email address of the distribution maintainer."
# pre-expansion value:
#   "OE-Core Developers <openembedded-core at lists.openembedded.org>"
MAINTAINER="OE-Core Developers <openembedded-core at lists.openembedded.org>"
#
# $MAKE [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:523
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:523
#     "make"
# pre-expansion value:
#   "make"
export MAKE="make"
#
# $METADATA_BRANCH
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/metadata_scm.bbclass:1
#     "${@base_detect_branch(d)}"
METADATA_BRANCH="HEAD"
#
# $METADATA_REVISION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/metadata_scm.bbclass:2
#     "${@base_detect_revision(d)}"
METADATA_REVISION="072430b9b3a78b318b66371c36e2986d2ed5cba4"
#
# $MIN_BTRFS_SIZE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:85
#     "16384"
MIN_BTRFS_SIZE="16384"
#
# $MIRRORS [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:284
#     [doc] "Specifies additional paths from which the OpenEmbedded build system gets source code."
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/mirrors.bbclass:70
#     "${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool \n ${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool \n ${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20090802T004153Z/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.de.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.au.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.cl.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.hr.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.fi.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.hk.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.hu.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.ie.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.it.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.jp.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.no.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.pl.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.ro.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.si.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.es.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.se.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.tr.debian.org/debian/pool \n ${GNU_MIRROR}	https://mirrors.kernel.org/gnu \n ${KERNELORG_MIRROR}	http://www.kernel.org/pub \n ${GNUPG_MIRROR}	ftp://ftp.gnupg.org/gcrypt \n ${GNUPG_MIRROR}	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt \n ${GNUPG_MIRROR}	ftp://mirrors.dotsrc.org/gcrypt \n ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \n ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \n ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \n ftp://ftp.gnutls.org/gcrypt/gnutls ${GNUPG_MIRROR}/gnutls \n http://ftp.info-zip.org/pub/infozip/src/ http://mirror.switch.ch/ftp/mirror/infozip/src/ \n http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tau.ac.il/pub/unix/admin/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cert.dfn.de/pub/tools/admin/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.kaizo.org/pub/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tu-darmstadt.de/pub/sysadmin/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tux.org/pub/sites/vic.cc.purdue.edu/tools/unix/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://gd.tuwien.ac.at/utils/admin-tools/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://sunsite.ualberta.ca/pub/Mirror/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://the.wiretapped.net/pub/security/host-security/lsof/ \n ${APACHE_MIRROR}  http://www.us.apache.org/dist \n ${APACHE_MIRROR}  http://archive.apache.org/dist \n http://downloads.sourceforge.net/watchdog/ http://fossies.org/linux/misc/ \n ${SAVANNAH_GNU_MIRROR} http://download-mirror.savannah.gnu.org/releases \n ${SAVANNAH_NONGNU_MIRROR} http://download-mirror.savannah.nongnu.org/releases \n cvs://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n svn://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n git://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n hg://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n bzr://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n p4://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n osc://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n https?$://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n ftp://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n npm://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n cvs://.*/.*     http://sources.openembedded.org/ \n svn://.*/.*     http://sources.openembedded.org/ \n git://.*/.*     http://sources.openembedded.org/ \n hg://.*/.*      http://sources.openembedded.org/ \n bzr://.*/.*     http://sources.openembedded.org/ \n p4://.*/.*      http://sources.openembedded.org/ \n osc://.*/.*     http://sources.openembedded.org/ \n https?$://.*/.* http://sources.openembedded.org/ \n ftp://.*/.*     http://sources.openembedded.org/ \n npm://.*/.*     http://sources.openembedded.org/ \n ${CPAN_MIRROR}  http://cpan.metacpan.org/ \n ${CPAN_MIRROR}  http://search.cpan.org/CPAN/ \n "
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/mirrors.bbclass:81
#     "git://anonscm.debian.org/.*   git://anonscm.debian.org/git/PATH;protocol=https \n git://git.gnome.org/.*        git://git.gnome.org/browse/PATH;protocol=https \n git://git.savannah.gnu.org/.* git://git.savannah.gnu.org/git/PATH;protocol=https \n git://git.yoctoproject.org/.* git://git.yoctoproject.org/git/PATH;protocol=https \n git://.*/.*                   git://HOST/PATH;protocol=https \n "
# pre-expansion value:
#   " ${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool \n ${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool \n ${DEBIAN_MIRROR}	http://snapshot.debian.org/archive/debian-archive/20090802T004153Z/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.de.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.au.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.cl.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.hr.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.fi.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.hk.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.hu.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.ie.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.it.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.jp.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.no.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.pl.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.ro.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.si.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.es.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.se.debian.org/debian/pool \n ${DEBIAN_MIRROR}	http://ftp.tr.debian.org/debian/pool \n ${GNU_MIRROR}	https://mirrors.kernel.org/gnu \n ${KERNELORG_MIRROR}	http://www.kernel.org/pub \n ${GNUPG_MIRROR}	ftp://ftp.gnupg.org/gcrypt \n ${GNUPG_MIRROR}	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt \n ${GNUPG_MIRROR}	ftp://mirrors.dotsrc.org/gcrypt \n ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \n ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \n ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \n ftp://ftp.gnutls.org/gcrypt/gnutls ${GNUPG_MIRROR}/gnutls \n http://ftp.info-zip.org/pub/infozip/src/ http://mirror.switch.ch/ftp/mirror/infozip/src/ \n http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tau.ac.il/pub/unix/admin/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cert.dfn.de/pub/tools/admin/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.kaizo.org/pub/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tu-darmstadt.de/pub/sysadmin/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tux.org/pub/sites/vic.cc.purdue.edu/tools/unix/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://gd.tuwien.ac.at/utils/admin-tools/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://sunsite.ualberta.ca/pub/Mirror/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://the.wiretapped.net/pub/security/host-security/lsof/ \n ${APACHE_MIRROR}  http://www.us.apache.org/dist \n ${APACHE_MIRROR}  http://archive.apache.org/dist \n http://downloads.sourceforge.net/watchdog/ http://fossies.org/linux/misc/ \n ${SAVANNAH_GNU_MIRROR} http://download-mirror.savannah.gnu.org/releases \n ${SAVANNAH_NONGNU_MIRROR} http://download-mirror.savannah.nongnu.org/releases \n cvs://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n svn://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n git://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n hg://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n bzr://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n p4://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n osc://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n https?$://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n ftp://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n npm://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n cvs://.*/.*     http://sources.openembedded.org/ \n svn://.*/.*     http://sources.openembedded.org/ \n git://.*/.*     http://sources.openembedded.org/ \n hg://.*/.*      http://sources.openembedded.org/ \n bzr://.*/.*     http://sources.openembedded.org/ \n p4://.*/.*      http://sources.openembedded.org/ \n osc://.*/.*     http://sources.openembedded.org/ \n https?$://.*/.* http://sources.openembedded.org/ \n ftp://.*/.*     http://sources.openembedded.org/ \n npm://.*/.*     http://sources.openembedded.org/ \n ${CPAN_MIRROR}  http://cpan.metacpan.org/ \n ${CPAN_MIRROR}  http://search.cpan.org/CPAN/ \n  git://anonscm.debian.org/.*   git://anonscm.debian.org/git/PATH;protocol=https \n git://git.gnome.org/.*        git://git.gnome.org/browse/PATH;protocol=https \n git://git.savannah.gnu.org/.* git://git.savannah.gnu.org/git/PATH;protocol=https \n git://git.yoctoproject.org/.* git://git.yoctoproject.org/git/PATH;protocol=https \n git://.*/.*                   git://HOST/PATH;protocol=https \n "
MIRRORS=" http://ftp.debian.org/debian/pool	http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool \n http://ftp.debian.org/debian/pool	http://snapshot.debian.org/archive/debian-archive/20110127T084257Z/debian/pool \n http://ftp.debian.org/debian/pool	http://snapshot.debian.org/archive/debian-archive/20090802T004153Z/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.de.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.au.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.cl.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.hr.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.fi.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.hk.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.hu.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.ie.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.it.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.jp.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.no.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.pl.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.ro.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.si.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.es.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.se.debian.org/debian/pool \n http://ftp.debian.org/debian/pool	http://ftp.tr.debian.org/debian/pool \n http://ftp.gnu.org/gnu	https://mirrors.kernel.org/gnu \n http://cdn.kernel.org/pub	http://www.kernel.org/pub \n https://www.gnupg.org/ftp/gcrypt	ftp://ftp.gnupg.org/gcrypt \n https://www.gnupg.org/ftp/gcrypt	ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt \n https://www.gnupg.org/ftp/gcrypt	ftp://mirrors.dotsrc.org/gcrypt \n ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \n ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \n ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \n ftp://ftp.gnutls.org/gcrypt/gnutls https://www.gnupg.org/ftp/gcrypt/gnutls \n http://ftp.info-zip.org/pub/infozip/src/ http://mirror.switch.ch/ftp/mirror/infozip/src/ \n http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tau.ac.il/pub/unix/admin/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cert.dfn.de/pub/tools/admin/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.kaizo.org/pub/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tu-darmstadt.de/pub/sysadmin/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tux.org/pub/sites/vic.cc.purdue.edu/tools/unix/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://gd.tuwien.ac.at/utils/admin-tools/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://sunsite.ualberta.ca/pub/Mirror/lsof/ \n ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://the.wiretapped.net/pub/security/host-security/lsof/ \n http://archive.apache.org/dist  http://www.us.apache.org/dist \n http://archive.apache.org/dist  http://archive.apache.org/dist \n http://downloads.sourceforge.net/watchdog/ http://fossies.org/linux/misc/ \n http://download.savannah.gnu.org/releases http://download-mirror.savannah.gnu.org/releases \n http://download.savannah.nongnu.org/releases http://download-mirror.savannah.nongnu.org/releases \n cvs://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n svn://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n git://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n hg://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n bzr://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n p4://.*/.*      http://downloads.yoctoproject.org/mirror/sources/ \n osc://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n https?\$://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \n ftp://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n npm://.*/.*     http://downloads.yoctoproject.org/mirror/sources/ \n cvs://.*/.*     http://sources.openembedded.org/ \n svn://.*/.*     http://sources.openembedded.org/ \n git://.*/.*     http://sources.openembedded.org/ \n hg://.*/.*      http://sources.openembedded.org/ \n bzr://.*/.*     http://sources.openembedded.org/ \n p4://.*/.*      http://sources.openembedded.org/ \n osc://.*/.*     http://sources.openembedded.org/ \n https?\$://.*/.* http://sources.openembedded.org/ \n ftp://.*/.*     http://sources.openembedded.org/ \n npm://.*/.*     http://sources.openembedded.org/ \n http://search.cpan.org/CPAN  http://cpan.metacpan.org/ \n http://search.cpan.org/CPAN  http://search.cpan.org/CPAN/ \n  git://anonscm.debian.org/.*   git://anonscm.debian.org/git/PATH;protocol=https \n git://git.gnome.org/.*        git://git.gnome.org/browse/PATH;protocol=https \n git://git.savannah.gnu.org/.* git://git.savannah.gnu.org/git/PATH;protocol=https \n git://git.yoctoproject.org/.* git://git.yoctoproject.org/git/PATH;protocol=https \n git://.*/.*                   git://HOST/PATH;protocol=https \n "
#
# $MLPREFIX [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:285
#     [doc] "Specifies a prefix has been added to PN to create a special version of a recipe or package, such as a Multilib version."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:867
#     [_defaultval] ""
# pre-expansion value:
#   ""
MLPREFIX=""
#
# $MODULE_TARBALL_DEPLOY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:286
#     [doc] "Controls creation of the modules-*.tgz file. Set this variable to "0" to disable creation of this file, which contains all of the kernel modules resulting from a kernel build."
#
# $MULTILIBRE_ALLOW_REP [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass:25
#     "${OPKGLIBDIR}/opkg|/usr/lib/opkg"
#   predot /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:594
#     "${base_bindir}|${base_sbindir}|${bindir}|${sbindir}|${libexecdir}|${sysconfdir}|${nonarch_base_libdir}/udev|/lib/modules/[^/]*/modules.*|"
# pre-expansion value:
#   "${base_bindir}|${base_sbindir}|${bindir}|${sbindir}|${libexecdir}|${sysconfdir}|${nonarch_base_libdir}/udev|/lib/modules/[^/]*/modules.*|${OPKGLIBDIR}/opkg|/usr/lib/opkg"
MULTILIBRE_ALLOW_REP="/bin|/sbin|/usr/bin|/usr/sbin|/usr/libexec|/etc|/lib/udev|/lib/modules/[^/]*/modules.*|/var/lib/opkg|/usr/lib/opkg"
#
# $MULTILIB_CHECK_FILE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:595
#     "${WORKDIR}/multilib_check.py"
MULTILIB_CHECK_FILE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/multilib_check.py"
#
# $MULTILIB_TEMP_ROOTFS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:596
#     "${WORKDIR}/multilib"
MULTILIB_TEMP_ROOTFS="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/multilib"
#
# $MULTILIB_VARIANTS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:868
#     [_defaultval] ""
MULTILIB_VARIANTS=""
#
# $MULTIMACH_TARGET_SYS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:152
#     "${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:287
#     [doc] "Separates files for different machines such that you can build for multiple target machines using the same output directories."
# pre-expansion value:
#   "${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
MULTIMACH_TARGET_SYS="rpi2-oe-linux-gnueabi"
#
# $MULTI_PROVIDER_WHITELIST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:266
#     "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives"
MULTI_PROVIDER_WHITELIST="virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives"
#
# $NATIVELSBSTRING [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:291
#     [doc] "A string identifying the host distribution."
#   set base.bbclass:236 [base_eventhandler]
#     "ubuntu-16.04"
# pre-expansion value:
#   "ubuntu-16.04"
NATIVELSBSTRING="ubuntu-16.04"
#
# $NM [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:507
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:507
#     "${HOST_PREFIX}nm"
# pre-expansion value:
#   "${HOST_PREFIX}nm"
export NM="arm-oe-linux-gnueabi-nm"
#
# $NO32LIBS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:37
#     [_defaultval] "1"
NO32LIBS="1"
#
# $NOHDD [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:293
#     [doc] "Causes the OpenEmbedded build system to skip building the .hddimg image."
#   set image.bbclass:133 [build_live]
#     "1"
#   set image.bbclass:133 [build_live]
#     "1"
# pre-expansion value:
#   "1"
NOHDD="1"
#
# $NOISO [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:294
#     [doc] "Causes the OpenEmbedded build system to skip building the ISO image."
#   set image.bbclass:132 [build_live]
#     "1"
#   set image.bbclass:132 [build_live]
#     "1"
# pre-expansion value:
#   "1"
NOISO="1"
#
# $NO_RECOMMENDATIONS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:292
#     [doc] "When set to '1', no recommended packages will be installed. Realize that some recommended packages might be required for certain system functionality, such as kernel-modules. It is up to the user to add packages to IMAGE_INSTALL as needed."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:818
#     ""
# pre-expansion value:
#   ""
NO_RECOMMENDATIONS=""
#
# $OBJCOPY [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:504
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:504
#     "${HOST_PREFIX}objcopy"
# pre-expansion value:
#   "${HOST_PREFIX}objcopy"
export OBJCOPY="arm-oe-linux-gnueabi-objcopy"
#
# $OBJDUMP [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:505
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:505
#     "${HOST_PREFIX}objdump"
# pre-expansion value:
#   "${HOST_PREFIX}objdump"
export OBJDUMP="arm-oe-linux-gnueabi-objdump"
#
# $OEINCLUDELOGS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:3
#     "yes"
OEINCLUDELOGS="yes"
#
# $OELAYOUT_ABI
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/abi_version.conf:7
#     "12"
OELAYOUT_ABI="12"
#
# $OEROOT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:301
#     [doc] "The directory from which the top-level build environment setup script is sourced."
#
# $OES_BITBAKE_CONF
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:780
#     "1"
OES_BITBAKE_CONF="1"
#
# $OE_BINCONFIG_EXTRA_MANGLE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:298
#     [doc] "When a recipe inherits the binconfig.bbclass class, this variable specifies additional arguments passed to the "sed" command."
#
# $OE_IMPORTED
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:37
#     "${@oe_import(d)}"
OE_IMPORTED=""
#
# $OE_IMPORTS [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:299
#     [doc] "An internal variable used to tell the OpenEmbedded build system what Python modules to import for every Python function run by the system."
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:13
#     "os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:14
#     [type] "list"
# pre-expansion value:
#   " os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license"
OE_IMPORTS=" os sys time oe.path oe.utils oe.types oe.package oe.packagegroup oe.sstatesig oe.lsb oe.cachedpath oe.license"
#
# $OE_INIT_ENV_SCRIPT
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:65
#     "oe-init-build-env"
OE_INIT_ENV_SCRIPT="oe-init-build-env"
#
# $OE_TERMINAL [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:300
#     [doc] "Controls how the OpenEmbedded build system spawns interactive terminals on the host development system."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass:1
#     "auto"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass:2
#     [type] "choice"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass:4
#     [choices] "auto none                         ${@oe_terminal_prioritized()}"
# pre-expansion value:
#   "auto"
OE_TERMINAL="auto"
#
# $OE_TERMINAL_EXPORTS [2 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass:6
#     "EXTRA_OEMAKE CACHED_CONFIGUREVARS CONFIGUREOPTS EXTRA_OECONF"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass:7
#     [type] "list"
# pre-expansion value:
#   " EXTRA_OEMAKE CACHED_CONFIGUREVARS CONFIGUREOPTS EXTRA_OECONF"
OE_TERMINAL_EXPORTS=" EXTRA_OEMAKE CACHED_CONFIGUREVARS CONFIGUREOPTS EXTRA_OECONF"
#
# $OLDEST_KERNEL [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:408
#     "3.2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:302
#     [doc] "Declares the oldest version of the Linux kernel that the produced binaries must support."
#   override[aarch64]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:409
#     "3.14"
#   override[nios2]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:410
#     "3.19"
# pre-expansion value:
#   "3.2.0"
OLDEST_KERNEL="3.2.0"
#
# $OLDEST_KERNEL_aarch64
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:409
#     "3.14"
OLDEST_KERNEL_aarch64="3.14"
#
# $OLDEST_KERNEL_nios2
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:410
#     "3.19"
OLDEST_KERNEL_nios2="3.19"
#
# $OPKGBUILDCMD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:11
#     [_defaultval] "opkg-build"
OPKGBUILDCMD="opkg-build"
#
# $OPKGLIBDIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:17
#     "${localstatedir}/lib"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass:23
#     "${localstatedir}/lib"
# pre-expansion value:
#   "${localstatedir}/lib"
OPKGLIBDIR="/var/lib"
#
# $OPKG_ARGS [3 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:13
#     "--force_postinstall --prefer-arch-to-version"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:14
#     "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS") == "1"]}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:15
#     "${@['', '--add-exclude ' + ' --add-exclude '.join((d.getVar('PACKAGE_EXCLUDE') or "").split())][(d.getVar("PACKAGE_EXCLUDE") or "") != ""]}"
# pre-expansion value:
#   " --force_postinstall --prefer-arch-to-version ${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS") == "1"]} ${@['', '--add-exclude ' + ' --add-exclude '.join((d.getVar('PACKAGE_EXCLUDE') or "").split())][(d.getVar("PACKAGE_EXCLUDE") or "") != ""]}"
OPKG_ARGS=" --force_postinstall --prefer-arch-to-version  "
#
# $OPKG_POSTPROCESS_COMMANDS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass:21
#     ""
OPKG_POSTPROCESS_COMMANDS=""
#
# $OPKG_PREPROCESS_COMMANDS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass:19
#     ""
OPKG_PREPROCESS_COMMANDS=""
#
# $OVERRIDES [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:716
#     "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:717
#     [vardepsexclude] "MACHINEOVERRIDES"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:9
#     "${LIBCOVERRIDE}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:303
#     [doc] "BitBake uses OVERRIDES to control what variables are overridden after BitBake parses recipes and configuration files."
# pre-expansion value:
#   "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:${CLASSOVERRIDE}:forcevariable${LIBCOVERRIDE}"
OVERRIDES="linux-gnueabi:arm:build-linux:pn-rescue-rootfs:armv7ve:rpi:rpi2:basic:class-target:forcevariable:libc-glibc"
#
# $P [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:200
#     "${PN}-${PV}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:307
#     [doc] "The recipe name and version. P is comprised of ${PN}-${PV}."
# pre-expansion value:
#   "${PN}-${PV}"
P="rescue-rootfs-1.0"
#
# $PACKAGEBUILDPKGD
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:2042
#     "                 perform_packagecopy                 ${PACKAGE_PREPROCESS_FUNCS}                 split_and_strip_files                 fixup_perms                 "
PACKAGEBUILDPKGD="                 perform_packagecopy                                  split_and_strip_files                 fixup_perms                 "
#
# $PACKAGECONFIG [4 operations]
#   _append[pn-mesa] /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:24
#     "gallium egl gles gbm"
#   _remove[pn-gdb] /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:48
#     " python"
#   _append[pn-qtbase] /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.conf:24
#     " examples accessibility libinput udev fontconfig freetype xkbcommon-evdev "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:317
#     [doc] "This variable provides a means of enabling or disabling features of a recipe on a per-recipe basis."
# pre-expansion value:
#   ""
PACKAGECONFIG=""
#
# $PACKAGECONFIG_GL_pn-qtbase
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:23
#     "gles2 eglfs kms gbm"
PACKAGECONFIG_GL_pn-qtbase="gles2 eglfs kms gbm"
#
# $PACKAGEFUNCS
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:2056
#     "                 package_fixsymlinks                 package_name_hook                 package_do_filedeps                 package_do_shlibs                 package_do_pkgconfig                 read_shlibdeps                 package_depchains                 emit_pkgdata"
PACKAGEFUNCS="                  package_fixsymlinks                 package_name_hook                 package_do_filedeps                 package_do_shlibs                 package_do_pkgconfig                 read_shlibdeps                 package_depchains                 emit_pkgdata"
#
# $PACKAGEINDEXDEPS [2 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:277
#     "opkg-utils-native:do_populate_sysroot"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:278
#     "opkg-native:do_populate_sysroot"
# pre-expansion value:
#   " opkg-utils-native:do_populate_sysroot opkg-native:do_populate_sysroot"
PACKAGEINDEXDEPS=" opkg-utils-native:do_populate_sysroot opkg-native:do_populate_sysroot"
#
# $PACKAGELOCK
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:2148
#     "${STAGING_DIR}/package-output.lock"
PACKAGELOCK="/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots/package-output.lock"
#
# $PACKAGES [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:278
#     "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:318
#     [doc] "The list of packages to be created from the recipe."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/meta.bbclass:2
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:13
#     ""
# pre-expansion value:
#   ""
PACKAGES=""
#
# $PACKAGESPLITFUNCS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:2046
#     "                 package_do_split_locales                 populate_packages"
PACKAGESPLITFUNCS="                 package_do_split_locales                 populate_packages"
#
# $PACKAGES_DYNAMIC [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:279
#     "^${PN}-locale-.*"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:319
#     [doc] "A promise that your recipe satisfies runtime dependencies for optional modules that are found in other recipes."
# pre-expansion value:
#   "^${PN}-locale-.*"
PACKAGES_DYNAMIC="^rescue-rootfs-locale-.*"
#
# $PACKAGEVARS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:2020
#     "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS"
PACKAGEVARS="FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm INITSCRIPT_NAME INITSCRIPT_PARAMS DEBIAN_NOAUTONAME ALTERNATIVE PKGE PKGV PKGR USERADD_PARAM GROUPADD_PARAM CONFFILES SYSTEMD_SERVICE LICENSE SECTION pkg_preinst pkg_prerm RREPLACES GROUPMEMS_PARAM SYSTEMD_AUTO_ENABLE SKIP_FILEDEPS PRIVATE_LIBS"
#
# $PACKAGE_ARCH [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:144
#     [_defaultval] "${TUNE_PKGARCH}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:308
#     [doc] "The architecture of the resulting package or packages."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:85
#     "${MACHINE_ARCH}"
# pre-expansion value:
#   "${MACHINE_ARCH}"
PACKAGE_ARCH="rpi2"
#
# $PACKAGE_ARCHS [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:147
#     "all any noarch ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:150
#     [vardepsexclude] "MACHINE_ARCH"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:309
#     [doc] "A list of architectures compatible with the given target in order of priority."
# pre-expansion value:
#   "all any noarch ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}"
PACKAGE_ARCHS="all any noarch armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-neon armv7vet2hf-neon armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4 cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4 cortexa7t2hf-vfp cortexa7t2hf-neon cortexa7t2hf-neon-vfpv4 rpi2"
#
# $PACKAGE_BEFORE_PN [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:277
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:310
#     [doc] "Enables easily adding packages to PACKAGES before ${PN} so that the packages can pick up files that would normally be included in the default package."
# pre-expansion value:
#   ""
PACKAGE_BEFORE_PN=""
#
# $PACKAGE_CLASSES [4 operations]
#   set? /home/mnhu/projects/pil/yocto/conf/local.conf:28
#     "package_ipk"
#   set? /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:54
#     "package_ipk"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:21
#     "package_ipk"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:311
#     [doc] "This variable specifies the package manager to use when packaging data. It is set in the conf/local.conf file in the Build Directory."
# pre-expansion value:
#   "package_ipk"
PACKAGE_CLASSES="package_ipk"
#
# $PACKAGE_DEPENDS [2 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:55
#     "rpm-native"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:239
#     "file-native"
# pre-expansion value:
#   " rpm-native file-native"
PACKAGE_DEPENDS=" rpm-native file-native"
#
# $PACKAGE_EXCLUDE [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:312
#     [doc] "Packages to exclude from the installation. If a listed package is required, an error is generated."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:209
#     [_defaultval] ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:210
#     [type] "list"
# pre-expansion value:
#   ""
PACKAGE_EXCLUDE=""
#
# $PACKAGE_EXTRA_ARCHS [134 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:146
#     [_defaultval] "${PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE}}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:313
#     [doc] "Specifies the list of architectures compatible with the device CPU. This variable is useful when you build for several different devices that use miscellaneous processors."
#   override[tune-armv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:24
#     "arm armv4"
#   override[tune-armv4t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:25
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4t"
#   override[tune-armv4b]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:33
#     "armeb armv4b"
#   override[tune-armv4tb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:34
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv4tb"
#   override[tune-armv5]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:17
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5"
#   override[tune-armv5t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:18
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5 armv5t"
#   override[tune-armv5-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:30
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5-vfp"
#   override[tune-armv5t-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:31
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5-vfp armv5t-vfp"
#   override[tune-armv5hf-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:32
#     "armv5hf-vfp"
#   override[tune-armv5thf-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:33
#     "armv5hf-vfp armv5thf-vfp"
#   override[tune-armv5b]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:41
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv5b"
#   override[tune-armv5tb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:42
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4tb} armv5b armv5tb"
#   override[tune-armv5b-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:54
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5b-vfp"
#   override[tune-armv5tb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:55
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5b-vfp armv5tb-vfp"
#   override[tune-armv5hfb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:56
#     "armv5hfb-vfp"
#   override[tune-armv5thfb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:57
#     "armv5hfb-vfp armv5thfb-vfp"
#   override[tune-armv5e]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:12
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5e"
#   override[tune-armv5te]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:13
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5e armv5te"
#   override[tune-armv5e-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:25
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5e armv5e-vfp"
#   override[tune-armv5te-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:26
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5e armv5te armv5e-vfp armv5te-vfp"
#   override[tune-armv5ehf-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:27
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp} armv5ehf-vfp"
#   override[tune-armv5tehf-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:28
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp"
#   override[tune-armv5eb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:36
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5eb"
#   override[tune-armv5teb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:37
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5eb armv5teb"
#   override[tune-armv5eb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:49
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp} armv5eb armv5eb-vfp"
#   override[tune-armv5teb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:50
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp} armv5eb armv5teb armv5eb-vfp armv5teb-vfp"
#   override[tune-armv5ehfb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:51
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp} armv5ehfb-vfp"
#   override[tune-armv5tehfb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:52
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp} armv5ehfb-vfp armv5tehfb-vfp"
#   override[tune-armv6-novfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:24
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5e} armv6"
#   override[tune-armv6t-novfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:25
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5te} armv6 armv6t"
#   override[tune-armv6]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:26
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6 armv6-vfp"
#   override[tune-armv6t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:27
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6 armv6t armv6-vfp armv6t-vfp"
#   override[tune-armv6hf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:28
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp} armv6hf-vfp"
#   override[tune-armv6thf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:29
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} armv6hf-vfp armv6thf-vfp"
#   override[tune-armv6b-novfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:45
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5eb} armv6b"
#   override[tune-armv6tb-novfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:46
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5teb} armv6b armv6tb"
#   override[tune-armv6b]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:47
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp} armv6b armv6b-vfp"
#   override[tune-armv6tb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:48
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp} armv6b armv6tb armv6b-vfp armv6tb-vfp"
#   override[tune-armv6hfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:49
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp} armv6hfb-vfp"
#   override[tune-armv6thfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:50
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp} armv6hfb-vfp armv6thfb-vfp"
#   override[tune-armv7a]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:33
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7a armv7a-vfp"
#   override[tune-armv7at]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:34
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7a armv7a-vfp armv7at2-vfp"
#   override[tune-armv7a-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:35
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-vfpv3d16"
#   override[tune-armv7at-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:36
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfpv3d16 armv7at2-vfpv3d16"
#   override[tune-armv7a-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:37
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3d16} armv7a-vfpv3"
#   override[tune-armv7at-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:38
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3d16} armv7a-vfpv3 armv7at2-vfpv3"
#   override[tune-armv7a-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:39
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-neon"
#   override[tune-armv7at-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:40
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-neon armv7at2-neon"
#   override[tune-armv7a-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:41
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} armv7a-neon-vfpv4"
#   override[tune-armv7at-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:42
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} armv7a-neon-vfpv4 armv7at2-neon-vfpv4"
#   override[tune-armv7ahf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:66
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7ahf-vfp"
#   override[tune-armv7athf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:67
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7ahf-vfp armv7at2hf-vfp"
#   override[tune-armv7ahf-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:68
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfpv3d16"
#   override[tune-armv7athf-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:69
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfpv3d16 armv7at2hf-vfpv3d16"
#   override[tune-armv7ahf-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:70
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3d16} armv7ahf-vfpv3"
#   override[tune-armv7athf-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:71
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfpv3 armv7at2hf-vfpv3"
#   override[tune-armv7ahf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:72
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-neon"
#   override[tune-armv7athf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:73
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-neon armv7at2hf-neon"
#   override[tune-armv7ahf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:74
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-neon-vfpv4"
#   override[tune-armv7athf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:75
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-neon-vfpv4 armv7at2hf-neon-vfpv4"
#   override[tune-armv7ab]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:99
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6b} armv7ab-vfp"
#   override[tune-armv7atb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:100
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6tb} armv7ab-vfp armv7at2b-vfp"
#   override[tune-armv7ab-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:101
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-vfpv3d16"
#   override[tune-armv7atb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:102
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-vfpv3d16 armv7at2b-vfpv3d16"
#   override[tune-armv7ab-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:103
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3d16} armv7ab-vfpv3"
#   override[tune-armv7atb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:104
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16} armv7ab-vfpv3 armv7at2b-vfpv3"
#   override[tune-armv7ab-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:105
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-neon"
#   override[tune-armv7atb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:106
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-neon armv7at2b-neon"
#   override[tune-armv7ab-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:107
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon} armv7ab-neon-vfpv4"
#   override[tune-armv7atb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:108
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon} armv7ab-neon-vfpv4 armv7at2b-neon-vfpv4"
#   override[tune-armv7ahfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:132
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7ahfb-vfp"
#   override[tune-armv7athfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:133
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7ahfb-vfp armv7at2hfb-vfp"
#   override[tune-armv7ahfb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:134
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-vfpv3d16"
#   override[tune-armv7athfb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:135
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-vfpv3d16 armv7at2hfb-vfpv3d16"
#   override[tune-armv7ahfb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:136
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3d16} armv7ahfb-vfpv3"
#   override[tune-armv7athfb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:137
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3d16} armv7ahfb-vfpv3 armv7at2hfb-vfpv3"
#   override[tune-armv7ahfb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:138
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-neon"
#   override[tune-armv7athfb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:139
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-neon armv7at2hfb-neon"
#   override[tune-armv7ahfb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:140
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon} armv7ahfb-neon-vfpv4"
#   override[tune-armv7athfb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:141
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon} armv7ahfb-neon-vfpv4 armv7at2hfb-neon-vfpv4"
#   override[tune-armv7ve]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:32
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7ve armv7ve-vfp"
#   override[tune-armv7vet]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:33
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7ve armv7ve-vfp armv7vet2-vfp"
#   override[tune-armv7ve-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:34
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-vfpv3d16"
#   override[tune-armv7vet-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:35
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-vfpv3d16 armv7vet2-vfpv3d16"
#   override[tune-armv7ve-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:36
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16} armv7ve-vfpv3"
#   override[tune-armv7vet-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:37
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16} armv7ve-vfpv3 armv7vet2-vfpv3"
#   override[tune-armv7ve-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:38
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-neon"
#   override[tune-armv7vet-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:39
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-neon armv7vet2-neon"
#   override[tune-armv7ve-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:40
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} armv7ve-neon-vfpv4"
#   override[tune-armv7vet-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:41
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} armv7ve-neon-vfpv4 armv7vet2-neon-vfpv4"
#   override[tune-armv7vehf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:65
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7vehf-vfp"
#   override[tune-armv7vethf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:66
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7vehf-vfp armv7vet2hf-vfp"
#   override[tune-armv7vehf-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:67
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-vfpv3d16"
#   override[tune-armv7vethf-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:68
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16"
#   override[tune-armv7vehf-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:69
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16} armv7vehf-vfpv3"
#   override[tune-armv7vethf-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:70
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16} armv7vehf-vfpv3 armv7vet2hf-vfpv3"
#   override[tune-armv7vehf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:71
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-neon"
#   override[tune-armv7vethf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:72
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-neon armv7vet2hf-neon"
#   override[tune-armv7vehf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:73
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} armv7vehf-neon-vfpv4"
#   override[tune-armv7vethf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:74
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4"
#   override[tune-armv7veb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:98
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7veb-vfp"
#   override[tune-armv7vetb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:99
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7veb-vfp armv7vet2b-vfp"
#   override[tune-armv7veb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:100
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-vfpv3d16"
#   override[tune-armv7vetb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:101
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-vfpv3d16 armv7vet2b-vfpv3d16"
#   override[tune-armv7veb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:102
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16} armv7veb-vfpv3"
#   override[tune-armv7vetb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:103
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16} armv7veb-vfpv3 armv7vet2b-vfpv3"
#   override[tune-armv7veb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:104
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-neon"
#   override[tune-armv7vetb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:105
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-neon armv7vet2b-neon"
#   override[tune-armv7veb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:106
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon} armv7veb-neon-vfpv4"
#   override[tune-armv7vetb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:107
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon} armv7veb-neon-vfpv4 armv7vet2b-neon-vfpv4"
#   override[tune-armv7vehfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:131
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7vehfb-vfp"
#   override[tune-armv7vethfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:132
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7vehfb-vfp armv7vet2hfb-vfp"
#   override[tune-armv7vehfb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:133
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-vfpv3d16"
#   override[tune-armv7vethfb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:134
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16"
#   override[tune-armv7vehfb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:135
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16} armv7vehfb-vfpv3"
#   override[tune-armv7vethfb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:136
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16} armv7vehfb-vfpv3 armv7vet2hfb-vfpv3"
#   override[tune-armv7vehfb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:137
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-neon"
#   override[tune-armv7vethfb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:138
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-neon armv7vet2hfb-neon"
#   override[tune-armv7vehfb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:139
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon} armv7vehfb-neon-vfpv4"
#   override[tune-armv7vethfb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:140
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon} armv7vehfb-neon-vfpv4 armv7vet2hfb-neon-vfpv4"
#   override[tune-cortexa7]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:22
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa7-vfp"
#   override[tune-cortexa7t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:23
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} cortexa7-vfp cortexa7t2-vfp"
#   override[tune-cortexa7-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:24
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} cortexa7-vfp cortexa7-neon"
#   override[tune-cortexa7t-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:25
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} cortexa7-vfp cortexa7-neon cortexa7t2-vfp cortexa7t2-neon"
#   override[tune-cortexa7-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:26
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4} cortexa7-vfp cortexa7-neon cortexa7-neon-vfpv4"
#   override[tune-cortexa7t-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:27
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4} cortexa7-vfp cortexa7-neon cortexa7-neon-vfpv4 cortexa7t2-vfp cortexa7t2-neon cortexa7t2-neon-vfpv4"
#   override[tune-cortexa7hf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:43
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} cortexa7hf-vfp"
#   override[tune-cortexa7thf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:44
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} cortexa7hf-vfp cortexa7t2hf-vfp"
#   override[tune-cortexa7hf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:45
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} cortexa7hf-vfp cortexa7hf-neon"
#   override[tune-cortexa7thf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:46
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} cortexa7hf-vfp cortexa7hf-neon cortexa7t2hf-vfp cortexa7t2hf-neon"
#   override[tune-cortexa7hf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:47
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4"
#   override[tune-cortexa7thf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:48
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4 cortexa7t2hf-vfp cortexa7t2hf-neon cortexa7t2hf-neon-vfpv4"
# pre-expansion value:
#   "${PACKAGE_EXTRA_ARCHS_tune-${DEFAULTTUNE}}"
PACKAGE_EXTRA_ARCHS="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-neon armv7vet2hf-neon armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4 cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4 cortexa7t2hf-vfp cortexa7t2hf-neon cortexa7t2hf-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:24
#     "arm armv4"
PACKAGE_EXTRA_ARCHS_tune-armv4="arm armv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv4b
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:33
#     "armeb armv4b"
PACKAGE_EXTRA_ARCHS_tune-armv4b="armeb armv4b"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv4t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:25
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4t"
PACKAGE_EXTRA_ARCHS_tune-armv4t="arm armv4 armv4t"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv4tb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:34
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv4tb"
PACKAGE_EXTRA_ARCHS_tune-armv4tb="armeb armv4b armv4tb"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:17
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5"
PACKAGE_EXTRA_ARCHS_tune-armv5="arm armv4 armv5"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:30
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5-vfp="arm armv4 armv5 armv5-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5b
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:41
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv5b"
PACKAGE_EXTRA_ARCHS_tune-armv5b="armeb armv4b armv5b"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:54
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5b-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp="armeb armv4b armv5b armv5b-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5e
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:12
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5e"
PACKAGE_EXTRA_ARCHS_tune-armv5e="arm armv4 armv5 armv5e"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:25
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5e armv5e-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5eb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:36
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5eb"
PACKAGE_EXTRA_ARCHS_tune-armv5eb="armeb armv4b armv5b armv5eb"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:49
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp} armv5eb armv5eb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:27
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp} armv5ehf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp="armv5hf-vfp armv5ehf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:51
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp} armv5ehfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp="armv5hfb-vfp armv5ehfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:32
#     "armv5hf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp="armv5hf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:56
#     "armv5hfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp="armv5hfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:18
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5 armv5t"
PACKAGE_EXTRA_ARCHS_tune-armv5t="arm armv4 armv4t armv5 armv5t"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:31
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5-vfp armv5t-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5tb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:42
#     "${PACKAGE_EXTRA_ARCHS_tune-armv4tb} armv5b armv5tb"
PACKAGE_EXTRA_ARCHS_tune-armv5tb="armeb armv4b armv4tb armv5b armv5tb"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:55
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5b-vfp armv5tb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5te
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:13
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5e armv5te"
PACKAGE_EXTRA_ARCHS_tune-armv5te="arm armv4 armv4t armv5 armv5t armv5e armv5te"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:26
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5e armv5te armv5e-vfp armv5te-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5teb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:37
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5eb armv5teb"
PACKAGE_EXTRA_ARCHS_tune-armv5teb="armeb armv4b armv4tb armv5b armv5tb armv5eb armv5teb"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:50
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp} armv5eb armv5teb armv5eb-vfp armv5teb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:28
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:52
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp} armv5ehfb-vfp armv5tehfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:33
#     "armv5hf-vfp armv5thf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp="armv5hf-vfp armv5thf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:57
#     "armv5hfb-vfp armv5thfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp="armv5hfb-vfp armv5thfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:26
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6 armv6-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv6="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6-novfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:24
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5e} armv6"
PACKAGE_EXTRA_ARCHS_tune-armv6-novfp="arm armv4 armv5 armv5e armv6"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6b
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:47
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp} armv6b armv6b-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv6b="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6b-novfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:45
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5eb} armv6b"
PACKAGE_EXTRA_ARCHS_tune-armv6b-novfp="armeb armv4b armv5b armv5eb armv6b"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6hf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:28
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp} armv6hf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv6hf="armv5hf-vfp armv5ehf-vfp armv6hf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6hfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:49
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp} armv6hfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv6hfb="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:27
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6 armv6t armv6-vfp armv6t-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv6t="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6t-novfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:25
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5te} armv6 armv6t"
PACKAGE_EXTRA_ARCHS_tune-armv6t-novfp="arm armv4 armv4t armv5 armv5t armv5e armv5te armv6 armv6t"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6tb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:48
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp} armv6b armv6tb armv6b-vfp armv6tb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv6tb="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6tb-novfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:46
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5teb} armv6b armv6tb"
PACKAGE_EXTRA_ARCHS_tune-armv6tb-novfp="armeb armv4b armv4tb armv5b armv5tb armv5eb armv5teb armv6b armv6tb"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6thf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:29
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} armv6hf-vfp armv6thf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv6thf="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv6thfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:50
#     "${PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp} armv6hfb-vfp armv6thfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv6thfb="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7a
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:33
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7a armv7a-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7a="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7a-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:39
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7a-neon="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7a-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7a-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:41
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} armv7a-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7a-neon-vfpv4="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7a-neon armv7a-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:37
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3d16} armv7a-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7a-vfpv3d16 armv7a-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:35
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3d16="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7a-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ab
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:99
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6b} armv7ab-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7ab="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:105
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7ab-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:107
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon} armv7ab-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon-vfpv4="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7ab-neon armv7ab-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:103
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3d16} armv7ab-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7ab-vfpv3d16 armv7ab-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:101
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3d16="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7ab-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:66
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7ahf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7ahf="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:72
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7ahf-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:74
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7ahf-neon armv7ahf-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:70
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3d16} armv7ahf-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7ahf-vfpv3d16 armv7ahf-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:68
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3d16="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7ahf-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:132
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7ahfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7ahfb="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:138
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7ahfb-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:140
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon} armv7ahfb-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon-vfpv4="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7ahfb-neon armv7ahfb-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:136
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3d16} armv7ahfb-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7ahfb-vfpv3d16 armv7ahfb-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:134
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3d16="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7ahfb-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7at
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:34
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7a armv7a-vfp armv7at2-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7at="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7at-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:40
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-neon armv7at2-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7at-neon="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7a-neon armv7at2-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7at-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:42
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} armv7a-neon-vfpv4 armv7at2-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7at-neon-vfpv4="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7a-neon armv7at2-neon armv7a-neon-vfpv4 armv7at2-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:38
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3d16} armv7a-vfpv3 armv7at2-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7a-vfpv3d16 armv7at2-vfpv3d16 armv7a-vfpv3 armv7at2-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:36
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfpv3d16 armv7at2-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3d16="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7a-vfpv3d16 armv7at2-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7atb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:100
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6tb} armv7ab-vfp armv7at2b-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7atb="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:106
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-neon armv7at2b-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7ab-neon armv7at2b-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:108
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon} armv7ab-neon-vfpv4 armv7at2b-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon-vfpv4="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7ab-neon armv7at2b-neon armv7ab-neon-vfpv4 armv7at2b-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:104
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16} armv7ab-vfpv3 armv7at2b-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7ab-vfpv3d16 armv7at2b-vfpv3d16 armv7ab-vfpv3 armv7at2b-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:102
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-vfpv3d16 armv7at2b-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7ab-vfpv3d16 armv7at2b-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:67
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7ahf-vfp armv7at2hf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7athf="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:73
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-neon armv7at2hf-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7ahf-neon armv7at2hf-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:75
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-neon-vfpv4 armv7at2hf-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7ahf-neon armv7at2hf-neon armv7ahf-neon-vfpv4 armv7at2hf-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:71
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfpv3 armv7at2hf-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7ahf-vfpv3d16 armv7at2hf-vfpv3d16 armv7ahf-vfpv3 armv7at2hf-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:69
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfpv3d16 armv7at2hf-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7ahf-vfpv3d16 armv7at2hf-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:133
#     "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7ahfb-vfp armv7at2hfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7athfb="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:139
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-neon armv7at2hfb-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7ahfb-neon armv7at2hfb-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:141
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon} armv7ahfb-neon-vfpv4 armv7at2hfb-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon-vfpv4="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7ahfb-neon armv7at2hfb-neon armv7ahfb-neon-vfpv4 armv7at2hfb-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:137
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3d16} armv7ahfb-vfpv3 armv7at2hfb-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7ahfb-vfpv3d16 armv7at2hfb-vfpv3d16 armv7ahfb-vfpv3 armv7at2hfb-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:135
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-vfpv3d16 armv7at2hfb-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3d16="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7ahfb-vfpv3d16 armv7at2hfb-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ve
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:32
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7ve armv7ve-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7ve="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7ve armv7ve-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:38
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7ve armv7ve-vfp armv7ve-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:40
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} armv7ve-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7ve armv7ve-vfp armv7ve-neon armv7ve-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:36
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16} armv7ve-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7ve armv7ve-vfp armv7ve-vfpv3d16 armv7ve-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:34
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7ve armv7ve-vfp armv7ve-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7veb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:98
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7veb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7veb="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7veb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:104
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7veb-vfp armv7veb-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:106
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon} armv7veb-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon-vfpv4="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7veb-vfp armv7veb-neon armv7veb-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:102
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16} armv7veb-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7veb-vfp armv7veb-vfpv3d16 armv7veb-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:100
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16="armeb armv4b armv5b armv5b-vfp armv5eb armv5eb-vfp armv6b armv6b-vfp armv7ab-vfp armv7veb-vfp armv7veb-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:65
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7vehf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7vehf="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7vehf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:71
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7vehf-vfp armv7vehf-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:73
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} armv7vehf-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7vehf-vfp armv7vehf-neon armv7vehf-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:69
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16} armv7vehf-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7vehf-vfp armv7vehf-vfpv3d16 armv7vehf-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:67
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7vehf-vfp armv7vehf-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:131
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7vehfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7vehfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:137
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7vehfb-vfp armv7vehfb-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:139
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon} armv7vehfb-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon-vfpv4="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7vehfb-vfp armv7vehfb-neon armv7vehfb-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:135
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16} armv7vehfb-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7vehfb-vfp armv7vehfb-vfpv3d16 armv7vehfb-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:133
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16="armv5hfb-vfp armv5ehfb-vfp armv6hfb-vfp armv7ahfb-vfp armv7vehfb-vfp armv7vehfb-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vet
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:33
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7ve armv7ve-vfp armv7vet2-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7vet="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7ve armv7ve-vfp armv7vet2-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:39
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-neon armv7vet2-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7ve armv7ve-vfp armv7vet2-vfp armv7ve-neon armv7vet2-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:41
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} armv7ve-neon-vfpv4 armv7vet2-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7ve armv7ve-vfp armv7vet2-vfp armv7ve-neon armv7vet2-neon armv7ve-neon-vfpv4 armv7vet2-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:37
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16} armv7ve-vfpv3 armv7vet2-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7ve armv7ve-vfp armv7vet2-vfp armv7ve-vfpv3d16 armv7vet2-vfpv3d16 armv7ve-vfpv3 armv7vet2-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:35
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-vfpv3d16 armv7vet2-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7ve armv7ve-vfp armv7vet2-vfp armv7ve-vfpv3d16 armv7vet2-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vetb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:99
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7veb-vfp armv7vet2b-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7vetb="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7veb-vfp armv7vet2b-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:105
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-neon armv7vet2b-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7veb-vfp armv7vet2b-vfp armv7veb-neon armv7vet2b-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:107
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon} armv7veb-neon-vfpv4 armv7vet2b-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon-vfpv4="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7veb-vfp armv7vet2b-vfp armv7veb-neon armv7vet2b-neon armv7veb-neon-vfpv4 armv7vet2b-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:103
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16} armv7veb-vfpv3 armv7vet2b-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7veb-vfp armv7vet2b-vfp armv7veb-vfpv3d16 armv7vet2b-vfpv3d16 armv7veb-vfpv3 armv7vet2b-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:101
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-vfpv3d16 armv7vet2b-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16="armeb armv4b armv4tb armv5b armv5tb armv5b-vfp armv5tb-vfp armv5eb armv5teb armv5eb-vfp armv5teb-vfp armv6b armv6tb armv6b-vfp armv6tb-vfp armv7ab-vfp armv7at2b-vfp armv7veb-vfp armv7vet2b-vfp armv7veb-vfpv3d16 armv7vet2b-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:66
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7vehf-vfp armv7vet2hf-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7vethf="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:72
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-neon armv7vet2hf-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-neon armv7vet2hf-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:74
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-neon armv7vet2hf-neon armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:70
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16} armv7vehf-vfpv3 armv7vet2hf-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16 armv7vehf-vfpv3 armv7vet2hf-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:68
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:132
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7vehfb-vfp armv7vet2hfb-vfp"
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7vehfb-vfp armv7vet2hfb-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:138
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-neon armv7vet2hfb-neon"
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7vehfb-vfp armv7vet2hfb-vfp armv7vehfb-neon armv7vet2hfb-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:140
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon} armv7vehfb-neon-vfpv4 armv7vet2hfb-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon-vfpv4="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7vehfb-vfp armv7vet2hfb-vfp armv7vehfb-neon armv7vet2hfb-neon armv7vehfb-neon-vfpv4 armv7vet2hfb-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:136
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16} armv7vehfb-vfpv3 armv7vet2hfb-vfpv3"
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7vehfb-vfp armv7vet2hfb-vfp armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16 armv7vehfb-vfpv3 armv7vet2hfb-vfpv3"
#
# $PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:134
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16"
PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16="armv5hfb-vfp armv5thfb-vfp armv5ehfb-vfp armv5tehfb-vfp armv6hfb-vfp armv6thfb-vfp armv7ahfb-vfp armv7at2hfb-vfp armv7vehfb-vfp armv7vet2hfb-vfp armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:22
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa7-vfp"
PACKAGE_EXTRA_ARCHS_tune-cortexa7="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7ve armv7ve-vfp cortexa7-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:24
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} cortexa7-vfp cortexa7-neon"
PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7ve armv7ve-vfp armv7ve-neon cortexa7-vfp cortexa7-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:26
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4} cortexa7-vfp cortexa7-neon cortexa7-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon-vfpv4="arm armv4 armv5 armv5-vfp armv5e armv5e-vfp armv6 armv6-vfp armv7a armv7a-vfp armv7ve armv7ve-vfp armv7ve-neon armv7ve-neon-vfpv4 cortexa7-vfp cortexa7-neon cortexa7-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7hf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:43
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} cortexa7hf-vfp"
PACKAGE_EXTRA_ARCHS_tune-cortexa7hf="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7vehf-vfp cortexa7hf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:45
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} cortexa7hf-vfp cortexa7hf-neon"
PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7vehf-vfp armv7vehf-neon cortexa7hf-vfp cortexa7hf-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:47
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon-vfpv4="armv5hf-vfp armv5ehf-vfp armv6hf-vfp armv7ahf-vfp armv7vehf-vfp armv7vehf-neon armv7vehf-neon-vfpv4 cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:23
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} cortexa7-vfp cortexa7t2-vfp"
PACKAGE_EXTRA_ARCHS_tune-cortexa7t="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7ve armv7ve-vfp armv7vet2-vfp cortexa7-vfp cortexa7t2-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7t-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:25
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} cortexa7-vfp cortexa7-neon cortexa7t2-vfp cortexa7t2-neon"
PACKAGE_EXTRA_ARCHS_tune-cortexa7t-neon="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7ve armv7ve-vfp armv7vet2-vfp armv7ve-neon armv7vet2-neon cortexa7-vfp cortexa7-neon cortexa7t2-vfp cortexa7t2-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7t-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:27
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4} cortexa7-vfp cortexa7-neon cortexa7-neon-vfpv4 cortexa7t2-vfp cortexa7t2-neon cortexa7t2-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-cortexa7t-neon-vfpv4="arm armv4 armv4t armv5 armv5t armv5-vfp armv5t-vfp armv5e armv5te armv5e-vfp armv5te-vfp armv6 armv6t armv6-vfp armv6t-vfp armv7a armv7a-vfp armv7at2-vfp armv7ve armv7ve-vfp armv7vet2-vfp armv7ve-neon armv7vet2-neon armv7ve-neon-vfpv4 armv7vet2-neon-vfpv4 cortexa7-vfp cortexa7-neon cortexa7-neon-vfpv4 cortexa7t2-vfp cortexa7t2-neon cortexa7t2-neon-vfpv4"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7thf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:44
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} cortexa7hf-vfp cortexa7t2hf-vfp"
PACKAGE_EXTRA_ARCHS_tune-cortexa7thf="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp cortexa7hf-vfp cortexa7t2hf-vfp"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:46
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} cortexa7hf-vfp cortexa7hf-neon cortexa7t2hf-vfp cortexa7t2hf-neon"
PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-neon armv7vet2hf-neon cortexa7hf-vfp cortexa7hf-neon cortexa7t2hf-vfp cortexa7t2hf-neon"
#
# $PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:48
#     "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4 cortexa7t2hf-vfp cortexa7t2hf-neon cortexa7t2hf-neon-vfpv4"
PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon-vfpv4="armv5hf-vfp armv5thf-vfp armv5ehf-vfp armv5tehf-vfp armv6hf-vfp armv6thf-vfp armv7ahf-vfp armv7at2hf-vfp armv7vehf-vfp armv7vet2hf-vfp armv7vehf-neon armv7vet2hf-neon armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4 cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4 cortexa7t2hf-vfp cortexa7t2hf-neon cortexa7t2hf-neon-vfpv4"
#
# $PACKAGE_GROUP
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:314
#     [doc] "Defines one or more packages to include in an image when a specific item is included in IMAGE_FEATURES."
#
# $PACKAGE_INSTALL [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:315
#     [doc] "List of the packages to be installed into the image. The variable is generally not user-defined and uses IMAGE_INSTALL as part of the list."
#   _append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/extrausers.bbclass:18
#     " ${@['', 'base-passwd shadow'][bool(d.getVar('EXTRA_USERS_PARAMS'))]}"
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:72
#     [export] "1"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:72
#     "${IMAGE_INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL} ${FEATURE_INSTALL}"
# pre-expansion value:
#   "${IMAGE_INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL} ${FEATURE_INSTALL} ${@['', 'base-passwd shadow'][bool(d.getVar('EXTRA_USERS_PARAMS'))]}"
export PACKAGE_INSTALL=" 		 packagegroup-core-boot 		 packagegroup-core-ssh-openssh 		 e2fsprogs 		 e2fsprogs-tune2fs 		 dosfstools 		 mtd-utils mtd-utils-jffs2 mtd-utils-misc 		 u-boot-fw-utils 		  		 busybox-syslog 		 busybox-watchdog 		 busybox-ifplugd 		 dhcp-client 		 openssh-sftp-server 		 openssh-sftp 		 rauc 		 dbus 		 system-init 		       rescue-init  run-postinsts  base-passwd shadow"
#
# $PACKAGE_INSTALL_ATTEMPTONLY [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:316
#     [doc] "List of packages attempted to be installed. If a listed package fails to install, the build system does not generate an error. This variable is generally not user-defined."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:73
#     "${FEATURE_INSTALL_OPTIONAL}"
# pre-expansion value:
#   "${FEATURE_INSTALL_OPTIONAL}"
PACKAGE_INSTALL_ATTEMPTONLY=""
#
# $PACKAGE_PREPROCESS_FUNCS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:2035
#     ""
PACKAGE_PREPROCESS_FUNCS=""
#
# $PACKAGE_WRITE_DEPS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:63
#     [_defaultval] ""
PACKAGE_WRITE_DEPS=""
#
# $PARALLEL_MAKE [3 operations]
#   set? /home/mnhu/projects/pil/yocto/conf/local.conf:19
#     "-j8"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:320
#     [doc] "Specifies extra options that are passed to the make command during the compile tasks. This variable is usually in the form -j 4, where the number represents the maximum number of parallel threads make can run."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:775
#     "-j ${@oe.utils.cpu_count()}"
# pre-expansion value:
#   "-j8"
PARALLEL_MAKE="-j8"
#
# $PARALLEL_MAKEINST [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:576
#     [_defaultval] "${PARALLEL_MAKE}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:321
#     [doc] "Extra options passed to the make install command during the do_install task in order to specify parallel installation."
# pre-expansion value:
#   "${PARALLEL_MAKE}"
PARALLEL_MAKEINST="-j8"
#
# $PATCHDEPENDENCY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass:6
#     "${PATCHTOOL}-native:do_populate_sysroot"
PATCHDEPENDENCY="quilt-native:do_populate_sysroot"
#
# $PATCHRESOLVE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:532
#     "noop"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:322
#     [doc] "Enable or disable interactive patch resolution."
# pre-expansion value:
#   "noop"
PATCHRESOLVE="noop"
#
# $PATCHTOOL [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:531
#     "quilt"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:323
#     [doc] "Specifies the utility used to apply patches for a recipe during do_patch."
# pre-expansion value:
#   "quilt"
PATCHTOOL="quilt"
#
# $PATCH_GIT_USER_EMAIL
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass:9
#     "oe.patch at oe"
PATCH_GIT_USER_EMAIL="oe.patch at oe"
#
# $PATCH_GIT_USER_NAME
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass:8
#     "OpenEmbedded"
PATCH_GIT_USER_NAME="OpenEmbedded"
#
# $PATH [6 operations]
#   from env data.py:124 [inheritFromOS]
#     "/home/mnhu/projects/pil/yocto/meta-poky/scripts:/home/mnhu/projects/pil/yocto/meta-poky/bitbake/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
#   auto env export data.py:126 [inheritFromOS]
#     [export] "True"
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:63
#     "${@os.path.dirname(bb.utils.which(d.getVar('PATH'),'bitbake'))}:${HOSTTOOLS_DIR}"
#   _prepend /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:449
#     "${COREBASE}/scripts:${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}${base_bindir_native}:"
#   exported ast.py:68 [eval]
#     [export] "1"
#   _prepend /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:95
#     "${@extra_path_elements(d)}"
# pre-expansion value:
#   "${@extra_path_elements(d)}${COREBASE}/scripts:${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}${base_bindir_native}:/home/mnhu/projects/pil/yocto/meta-poky/bitbake/bin:${HOSTTOOLS_DIR}"
export PATH="/home/mnhu/projects/pil/yocto/meta-poky/scripts:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/bin/crossscripts:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/sbin:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/bin:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/sbin:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/bin:/home/mnhu/projects/pil/yocto/meta-poky/bitbake/bin:/home/mnhu/projects/pil/yocto/tmp-glibc/hosttools"
#
# $PE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:197
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:324
#     [doc] "The epoch of the recipe. The default value is '0'. The field is used to make upgrades possible when the versioning scheme changes in some backwards incompatible way."
# pre-expansion value:
#   ""
PE=""
#
# $PERSISTENT_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:334
#     "${TOPDIR}/cache"
PERSISTENT_DIR="/home/mnhu/projects/pil/yocto/cache"
#
# $PF [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:198
#     "${PN}-${EXTENDPE}${PV}-${PR}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:325
#     [doc] "Specifies the recipe or package name and includes all version and revision numbers. This variable is comprised of ${PN}-${EXTENDPE}${PV}-${PR}."
# pre-expansion value:
#   "${PN}-${EXTENDPE}${PV}-${PR}"
PF="rescue-rootfs-1.0-r0"
#
# $PID [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:48
#     "${@os.getpid()}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:83
#     "${@os.getpid()}"
# pre-expansion value:
#   "${@os.getpid()}"
PID="17198"
#
# $PIL_ROOT_PASSWD
#   set? /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rootfs.inc:2
#     "root"
PIL_ROOT_PASSWD="root"
#
# $PIXBUF_PACKAGES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:326
#     [doc] "When a recipe inherits the pixbufcache class, this variable identifies packages that contain the pixbuf loaders used with gdk-pixbuf."
#
# $PKGD [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:327
#     [doc] "Points to the destination directory for files to be packaged before they are split into individual packages."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:47
#     "${WORKDIR}/package"
# pre-expansion value:
#   "${WORKDIR}/package"
PKGD="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/package"
#
# $PKGDATA_DIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:393
#     "${TMPDIR}/pkgdata/${MACHINE}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:328
#     [doc] "Points to a shared, global-state directory that holds data generated during the packaging process."
# pre-expansion value:
#   "${TMPDIR}/pkgdata/${MACHINE}"
PKGDATA_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/pkgdata/rpi2"
#
# $PKGDEST [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:329
#     [doc] "Points to the parent directory for files to be packaged after they have been split into individual packages."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:48
#     "${WORKDIR}/packages-split"
# pre-expansion value:
#   "${WORKDIR}/packages-split"
PKGDEST="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/packages-split"
#
# $PKGDESTWORK [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:330
#     [doc] "Points to a temporary work area used by the do_package task to write output from the do_packagedata task."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:1283
#     "${WORKDIR}/pkgdata"
# pre-expansion value:
#   "${WORKDIR}/pkgdata"
PKGDESTWORK="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/pkgdata"
#
# $PKGE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:208
#     "${@['','${PE}'][int(d.getVar('PE') or 0) > 0]}"
PKGE=""
#
# $PKGMLTRIPLETS
#   set base.bbclass:370 [settriplet]
#     "rpi2-oe-linux-gnueabi cortexa7t2hf-neon-vfpv4-oe-linux-gnueabi cortexa7t2hf-neon-oe-linux-gnueabi cortexa7t2hf-vfp-oe-linux-gnueabi cortexa7hf-neon-vfpv4-oe-linux-gnueabi cortexa7hf-neon-oe-linux-gnueabi cortexa7hf-vfp-oe-linux-gnueabi armv7vet2hf-neon-vfpv4-oe-linux-gnueabi armv7vehf-neon-vfpv4-oe-linux-gnueabi armv7vet2hf-neon-oe-linux-gnueabi armv7vehf-neon-oe-linux-gnueabi armv7vet2hf-vfp-oe-linux-gnueabi armv7vehf-vfp-oe-linux-gnueabi armv7at2hf-vfp-oe-linux-gnueabi armv7ahf-vfp-oe-linux-gnueabi armv6thf-vfp-oe-linux-gnueabi armv6hf-vfp-oe-linux-gnueabi armv5tehf-vfp-oe-linux-gnueabi armv5ehf-vfp-oe-linux-gnueabi armv5thf-vfp-oe-linux-gnueabi armv5hf-vfp-oe-linux-gnueabi noarch-oe-linux-gnueabi any-oe-linux-gnueabi all-oe-linux-gnueabi"
PKGMLTRIPLETS="rpi2-oe-linux-gnueabi cortexa7t2hf-neon-vfpv4-oe-linux-gnueabi cortexa7t2hf-neon-oe-linux-gnueabi cortexa7t2hf-vfp-oe-linux-gnueabi cortexa7hf-neon-vfpv4-oe-linux-gnueabi cortexa7hf-neon-oe-linux-gnueabi cortexa7hf-vfp-oe-linux-gnueabi armv7vet2hf-neon-vfpv4-oe-linux-gnueabi armv7vehf-neon-vfpv4-oe-linux-gnueabi armv7vet2hf-neon-oe-linux-gnueabi armv7vehf-neon-oe-linux-gnueabi armv7vet2hf-vfp-oe-linux-gnueabi armv7vehf-vfp-oe-linux-gnueabi armv7at2hf-vfp-oe-linux-gnueabi armv7ahf-vfp-oe-linux-gnueabi armv6thf-vfp-oe-linux-gnueabi armv6hf-vfp-oe-linux-gnueabi armv5tehf-vfp-oe-linux-gnueabi armv5ehf-vfp-oe-linux-gnueabi armv5thf-vfp-oe-linux-gnueabi armv5hf-vfp-oe-linux-gnueabi noarch-oe-linux-gnueabi any-oe-linux-gnueabi all-oe-linux-gnueabi"
#
# $PKGR
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:207
#     "${PR}${EXTENDPRAUTO}"
PKGR="r0"
#
# $PKGTRIPLETS
#   set base.bbclass:370 [settriplet]
#     "rpi2-oe-linux-gnueabi cortexa7t2hf-neon-vfpv4-oe-linux-gnueabi cortexa7t2hf-neon-oe-linux-gnueabi cortexa7t2hf-vfp-oe-linux-gnueabi cortexa7hf-neon-vfpv4-oe-linux-gnueabi cortexa7hf-neon-oe-linux-gnueabi cortexa7hf-vfp-oe-linux-gnueabi armv7vet2hf-neon-vfpv4-oe-linux-gnueabi armv7vehf-neon-vfpv4-oe-linux-gnueabi armv7vet2hf-neon-oe-linux-gnueabi armv7vehf-neon-oe-linux-gnueabi armv7vet2hf-vfp-oe-linux-gnueabi armv7vehf-vfp-oe-linux-gnueabi armv7at2hf-vfp-oe-linux-gnueabi armv7ahf-vfp-oe-linux-gnueabi armv6thf-vfp-oe-linux-gnueabi armv6hf-vfp-oe-linux-gnueabi armv5tehf-vfp-oe-linux-gnueabi armv5ehf-vfp-oe-linux-gnueabi armv5thf-vfp-oe-linux-gnueabi armv5hf-vfp-oe-linux-gnueabi noarch-oe-linux-gnueabi any-oe-linux-gnueabi all-oe-linux-gnueabi"
PKGTRIPLETS="rpi2-oe-linux-gnueabi cortexa7t2hf-neon-vfpv4-oe-linux-gnueabi cortexa7t2hf-neon-oe-linux-gnueabi cortexa7t2hf-vfp-oe-linux-gnueabi cortexa7hf-neon-vfpv4-oe-linux-gnueabi cortexa7hf-neon-oe-linux-gnueabi cortexa7hf-vfp-oe-linux-gnueabi armv7vet2hf-neon-vfpv4-oe-linux-gnueabi armv7vehf-neon-vfpv4-oe-linux-gnueabi armv7vet2hf-neon-oe-linux-gnueabi armv7vehf-neon-oe-linux-gnueabi armv7vet2hf-vfp-oe-linux-gnueabi armv7vehf-vfp-oe-linux-gnueabi armv7at2hf-vfp-oe-linux-gnueabi armv7ahf-vfp-oe-linux-gnueabi armv6thf-vfp-oe-linux-gnueabi armv6hf-vfp-oe-linux-gnueabi armv5tehf-vfp-oe-linux-gnueabi armv5ehf-vfp-oe-linux-gnueabi armv5thf-vfp-oe-linux-gnueabi armv5hf-vfp-oe-linux-gnueabi noarch-oe-linux-gnueabi any-oe-linux-gnueabi all-oe-linux-gnueabi"
#
# $PKGV
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:206
#     "${PV}"
PKGV="1.0"
#
# $PKGWRITEDIRIPK
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:8
#     "${WORKDIR}/deploy-ipks"
PKGWRITEDIRIPK="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-ipks"
#
# $PKG_CONFIG_DIR [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:687
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:687
#     "${STAGING_DIR_HOST}${libdir}/pkgconfig"
# pre-expansion value:
#   "${STAGING_DIR_HOST}${libdir}/pkgconfig"
export PKG_CONFIG_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib/pkgconfig"
#
# $PKG_CONFIG_DISABLE_UNINSTALLED [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:691
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:691
#     "yes"
# pre-expansion value:
#   "yes"
export PKG_CONFIG_DISABLE_UNINSTALLED="yes"
#
# $PKG_CONFIG_LIBDIR [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:689
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:689
#     "${PKG_CONFIG_DIR}"
# pre-expansion value:
#   "${PKG_CONFIG_DIR}"
export PKG_CONFIG_LIBDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib/pkgconfig"
#
# $PKG_CONFIG_PATH [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:688
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:688
#     "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
# pre-expansion value:
#   "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
export PKG_CONFIG_PATH="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib/pkgconfig:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/share/pkgconfig"
#
# $PKG_CONFIG_SYSROOT_DIR [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:690
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:690
#     "${STAGING_DIR_HOST}"
# pre-expansion value:
#   "${STAGING_DIR_HOST}"
export PKG_CONFIG_SYSROOT_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $PKG_CONFIG_SYSTEM_INCLUDE_PATH [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:693
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:693
#     "${includedir}"
# pre-expansion value:
#   "${includedir}"
export PKG_CONFIG_SYSTEM_INCLUDE_PATH="/usr/include"
#
# $PKG_CONFIG_SYSTEM_LIBRARY_PATH [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:692
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:692
#     "${base_libdir}:${libdir}"
# pre-expansion value:
#   "${base_libdir}:${libdir}"
export PKG_CONFIG_SYSTEM_LIBRARY_PATH="/lib:/usr/lib"
#
# $PN [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:194
#     "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:331
#     [doc] "PN refers to a recipe name in the context of a file used by the OpenEmbedded build system as input to create a package. It refers to a package name in the context of a file created or produced by the OpenEmbedded build system."
# pre-expansion value:
#   "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PN="rescue-rootfs"
#
# $PNBLACKLIST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:332
#     [doc] "Lists recipes you do not want the OpenEmbedded build system to build."
#
# $POKY_BBLAYERS_CONF_VERSION
#   set /home/mnhu/projects/pil/yocto/conf/bblayers.conf:1
#     "2"
POKY_BBLAYERS_CONF_VERSION="2"
#
# $POPULATESYSROOTDEPS [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:196
#     ""
#   override[class-target]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:197
#     "virtual/${MLPREFIX}${TARGET_PREFIX}binutils:do_populate_sysroot"
#   override[class-nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:198
#     "virtual/${TARGET_PREFIX}binutils-crosssdk:do_populate_sysroot"
# pre-expansion value:
#   "virtual/${MLPREFIX}${TARGET_PREFIX}binutils:do_populate_sysroot"
POPULATESYSROOTDEPS="virtual/arm-oe-linux-gnueabi-binutils:do_populate_sysroot"
#
# $POPULATESYSROOTDEPS_class-nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:198
#     "virtual/${TARGET_PREFIX}binutils-crosssdk:do_populate_sysroot"
POPULATESYSROOTDEPS_class-nativesdk="virtual/arm-oe-linux-gnueabi-binutils-crosssdk:do_populate_sysroot"
#
# $POPULATESYSROOTDEPS_class-target
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:197
#     "virtual/${MLPREFIX}${TARGET_PREFIX}binutils:do_populate_sysroot"
POPULATESYSROOTDEPS_class-target="virtual/arm-oe-linux-gnueabi-binutils:do_populate_sysroot"
#
# $POSTINST_LOGFILE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs-postcommands.bbclass:24
#     "${localstatedir}/log/postinstall.log"
POSTINST_LOGFILE="/var/log/postinstall.log"
#
# $PR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:196
#     "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[2] or 'r0'}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:333
#     [doc] "The revision of the recipe. The default value for this variable is 'r0'."
# pre-expansion value:
#   "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[2] or 'r0'}"
PR="r0"
#
# $PRAUTO
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:202
#     ""
PRAUTO=""
#
# $PRAUTOINX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:204
#     "${PF}"
PRAUTOINX="rescue-rootfs-1.0-r0"
#
# $PREFERRED_PROVIDER [62 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:334
#     [doc] "If multiple recipes provide an item, this variable determines which recipe should be given preference."
#   override[virtual/fakeroot-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:672
#     "pseudo-native"
#   override[virtual/kernel]:set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:8
#     [_defaultval] "linux-pil"
#   override[virtual/bootloader]:set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:9
#     [_defaultval] "u-boot-pil"
#   override[virtual/db]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:4
#     "db"
#   override[virtual/db-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:5
#     "db-native"
#   override[virtual/xserver]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:6
#     "xserver-xorg"
#   override[virtual/xserver-xf86]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:7
#     "xserver-xorg"
#   override[virtual/egl]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:8
#     "mesa"
#   override[virtual/libgl]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:9
#     "mesa"
#   override[virtual/libgles1]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:10
#     "mesa"
#   override[virtual/libgles2]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:11
#     "mesa"
#   override[virtual/mesa]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:12
#     "mesa"
#   override[virtual/update-alternatives]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:13
#     "opkg-utils"
#   override[virtual/update-alternatives-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:14
#     "opkg-utils-native"
#   override[virtual/libx11]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:15
#     "libx11"
#   override[virtual/base-utils]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:16
#     "busybox"
#   override[xf86-video-intel]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:17
#     "xf86-video-intel"
#   override[virtual/make]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:18
#     "make"
#   override[virtual/make-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:19
#     "make-native"
#   override[dbus-glib]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:35
#     "dbus-glib"
#   override[dbus-glib-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:36
#     "dbus-glib-native"
#   override[gdk-pixbuf]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:37
#     "gdk-pixbuf"
#   override[libgcc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:38
#     "libgcc"
#   override[nativesdk-libgcc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:39
#     "nativesdk-libgcc"
#   override[linux-libc-headers]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:40
#     "linux-libc-headers"
#   override[nativesdk-linux-libc-headers]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:41
#     "nativesdk-linux-libc-headers"
#   override[matchbox-panel]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:42
#     "matchbox-panel-2"
#   override[opkg]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:43
#     "opkg"
#   override[opkg-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:44
#     "opkg-native"
#   override[nativesdk-opkg]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:45
#     "nativesdk-opkg"
#   override[console-tools]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:46
#     "kbd"
#   override[gzip-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:47
#     "pigz-native"
#   override[udev]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:48
#     "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','eudev',d)}"
#   override[ltp]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:52
#     "ltp"
#   override[getopt]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:53
#     "util-linux-getopt"
#   override[openssl]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:54
#     "openssl"
#   override[openssl-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:55
#     "openssl-native"
#   override[nativesdk-openssl]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:56
#     "nativesdk-openssl"
#   override[gdb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:10
#     "gdb"
#   override[virtual/gettext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:23
#     [_defaultval] "gettext"
#   override[virtual/libiconv]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:11
#     "glibc"
#   override[virtual/nativesdk-libiconv]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:12
#     "nativesdk-glibc"
#   override[virtual/nativesdk-libintl]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:13
#     "nativesdk-glibc"
#   override[virtual/libintl]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:14
#     "glibc"
#   override[virtual/libc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:15
#     "glibc"
#   override[virtual/nativesdk-libc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:16
#     "nativesdk-glibc"
#   override[virtual/libc-locale]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:17
#     "glibc-locale"
#   override[virtual/x86_64-oesdk-linux-binutils-crosssdk]:rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils-crosssdk data.py:116 [expandKeys]
#     "binutils-crosssdk-${SDK_SYS}"
#   override[virtual/x86_64-oesdk-linux-compilerlibs]:rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs data.py:116 [expandKeys]
#     "nativesdk-gcc-runtime"
#   override[virtual/x86_64-oesdk-linux-g++]:rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ data.py:116 [expandKeys]
#     "gcc-crosssdk-${SDK_SYS}"
#   override[virtual/x86_64-oesdk-linux-gcc]:rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc data.py:116 [expandKeys]
#     "gcc-crosssdk-${SDK_SYS}"
#   override[virtual/x86_64-oesdk-linux-gcc-initial]:rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc-initial data.py:116 [expandKeys]
#     "gcc-crosssdk-initial-${SDK_SYS}"
#   override[virtual/arm-oe-linux-gnueabi-binutils]:rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils data.py:116 [expandKeys]
#     "binutils-cross-${TARGET_ARCH}"
#   override[virtual/arm-oe-linux-gnueabi-compilerlibs]:rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs data.py:116 [expandKeys]
#     "gcc-runtime"
#   override[virtual/arm-oe-linux-gnueabi-g++]:rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ data.py:116 [expandKeys]
#     "gcc-cross-${TARGET_ARCH}"
#   override[virtual/arm-oe-linux-gnueabi-gcc]:rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc data.py:116 [expandKeys]
#     "gcc-cross-${TARGET_ARCH}"
#   override[virtual/arm-oe-linux-gnueabi-gcc-initial]:rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial data.py:116 [expandKeys]
#     "gcc-cross-initial-${TARGET_ARCH}"
#   override[virtual/arm-oe-linux-gnueabi-libc-for-gcc]:rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc data.py:116 [expandKeys]
#     "${TCLIBC}"
#   override[virtual/arm-oe-linux-gnueabi-libc-initial]:rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial data.py:116 [expandKeys]
#     "${TCLIBC}-initial"
#   override[virtual/nativesdk-x86_64-oesdk-linux-libc-for-gcc]:rename from PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc data.py:116 [expandKeys]
#     "nativesdk-glibc"
#   override[virtual/nativesdk-x86_64-oesdk-linux-libc-initial]:rename from PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial data.py:116 [expandKeys]
#     "nativesdk-glibc-initial"
# pre-expansion value:
#   "None"
#
# $PREFERRED_PROVIDER_console-tools
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:46
#     "kbd"
PREFERRED_PROVIDER_console-tools="kbd"
#
# $PREFERRED_PROVIDER_dbus-glib
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:35
#     "dbus-glib"
PREFERRED_PROVIDER_dbus-glib="dbus-glib"
#
# $PREFERRED_PROVIDER_dbus-glib-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:36
#     "dbus-glib-native"
PREFERRED_PROVIDER_dbus-glib-native="dbus-glib-native"
#
# $PREFERRED_PROVIDER_gdb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:10
#     "gdb"
PREFERRED_PROVIDER_gdb="gdb"
#
# $PREFERRED_PROVIDER_gdk-pixbuf
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:37
#     "gdk-pixbuf"
PREFERRED_PROVIDER_gdk-pixbuf="gdk-pixbuf"
#
# $PREFERRED_PROVIDER_getopt
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:53
#     "util-linux-getopt"
PREFERRED_PROVIDER_getopt="util-linux-getopt"
#
# $PREFERRED_PROVIDER_gzip-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:47
#     "pigz-native"
PREFERRED_PROVIDER_gzip-native="pigz-native"
#
# $PREFERRED_PROVIDER_libgcc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:38
#     "libgcc"
PREFERRED_PROVIDER_libgcc="libgcc"
#
# $PREFERRED_PROVIDER_linux-libc-headers
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:40
#     "linux-libc-headers"
PREFERRED_PROVIDER_linux-libc-headers="linux-libc-headers"
#
# $PREFERRED_PROVIDER_ltp
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:52
#     "ltp"
PREFERRED_PROVIDER_ltp="ltp"
#
# $PREFERRED_PROVIDER_matchbox-panel
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:42
#     "matchbox-panel-2"
PREFERRED_PROVIDER_matchbox-panel="matchbox-panel-2"
#
# $PREFERRED_PROVIDER_nativesdk-libgcc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:39
#     "nativesdk-libgcc"
PREFERRED_PROVIDER_nativesdk-libgcc="nativesdk-libgcc"
#
# $PREFERRED_PROVIDER_nativesdk-linux-libc-headers
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:41
#     "nativesdk-linux-libc-headers"
PREFERRED_PROVIDER_nativesdk-linux-libc-headers="nativesdk-linux-libc-headers"
#
# $PREFERRED_PROVIDER_nativesdk-openssl
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:56
#     "nativesdk-openssl"
PREFERRED_PROVIDER_nativesdk-openssl="nativesdk-openssl"
#
# $PREFERRED_PROVIDER_nativesdk-opkg
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:45
#     "nativesdk-opkg"
PREFERRED_PROVIDER_nativesdk-opkg="nativesdk-opkg"
#
# $PREFERRED_PROVIDER_openssl
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:54
#     "openssl"
PREFERRED_PROVIDER_openssl="openssl"
#
# $PREFERRED_PROVIDER_openssl-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:55
#     "openssl-native"
PREFERRED_PROVIDER_openssl-native="openssl-native"
#
# $PREFERRED_PROVIDER_opkg
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:43
#     "opkg"
PREFERRED_PROVIDER_opkg="opkg"
#
# $PREFERRED_PROVIDER_opkg-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:44
#     "opkg-native"
PREFERRED_PROVIDER_opkg-native="opkg-native"
#
# $PREFERRED_PROVIDER_udev
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:48
#     "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','eudev',d)}"
PREFERRED_PROVIDER_udev="eudev"
#
# $PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-binutils
#   rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils data.py:116 [expandKeys]
#     "binutils-cross-${TARGET_ARCH}"
PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-binutils="binutils-cross-arm"
#
# $PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-compilerlibs
#   rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs data.py:116 [expandKeys]
#     "gcc-runtime"
PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-compilerlibs="gcc-runtime"
#
# $PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-g++
#   rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++ data.py:116 [expandKeys]
#     "gcc-cross-${TARGET_ARCH}"
PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-g++="gcc-cross-arm"
#
# $PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-gcc
#   rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc data.py:116 [expandKeys]
#     "gcc-cross-${TARGET_ARCH}"
PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-gcc="gcc-cross-arm"
#
# $PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-gcc-initial
#   rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial data.py:116 [expandKeys]
#     "gcc-cross-initial-${TARGET_ARCH}"
PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-gcc-initial="gcc-cross-initial-arm"
#
# $PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-libc-for-gcc
#   rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-for-gcc data.py:116 [expandKeys]
#     "${TCLIBC}"
PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-libc-for-gcc="glibc"
#
# $PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-libc-initial
#   rename from PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}libc-initial data.py:116 [expandKeys]
#     "${TCLIBC}-initial"
PREFERRED_PROVIDER_virtual/arm-oe-linux-gnueabi-libc-initial="glibc-initial"
#
# $PREFERRED_PROVIDER_virtual/base-utils
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:16
#     "busybox"
PREFERRED_PROVIDER_virtual/base-utils="busybox"
#
# $PREFERRED_PROVIDER_virtual/bootloader
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:9
#     [_defaultval] "u-boot-pil"
PREFERRED_PROVIDER_virtual/bootloader="u-boot-pil"
#
# $PREFERRED_PROVIDER_virtual/db
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:4
#     "db"
PREFERRED_PROVIDER_virtual/db="db"
#
# $PREFERRED_PROVIDER_virtual/db-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:5
#     "db-native"
PREFERRED_PROVIDER_virtual/db-native="db-native"
#
# $PREFERRED_PROVIDER_virtual/egl
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:8
#     "mesa"
PREFERRED_PROVIDER_virtual/egl="mesa"
#
# $PREFERRED_PROVIDER_virtual/fakeroot-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:672
#     "pseudo-native"
PREFERRED_PROVIDER_virtual/fakeroot-native="pseudo-native"
#
# $PREFERRED_PROVIDER_virtual/gettext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:23
#     [_defaultval] "gettext"
PREFERRED_PROVIDER_virtual/gettext="gettext"
#
# $PREFERRED_PROVIDER_virtual/kernel
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:8
#     [_defaultval] "linux-pil"
PREFERRED_PROVIDER_virtual/kernel="linux-pil"
#
# $PREFERRED_PROVIDER_virtual/libc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:15
#     "glibc"
PREFERRED_PROVIDER_virtual/libc="glibc"
#
# $PREFERRED_PROVIDER_virtual/libc-locale
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:17
#     "glibc-locale"
PREFERRED_PROVIDER_virtual/libc-locale="glibc-locale"
#
# $PREFERRED_PROVIDER_virtual/libgl
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:9
#     "mesa"
PREFERRED_PROVIDER_virtual/libgl="mesa"
#
# $PREFERRED_PROVIDER_virtual/libgles1
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:10
#     "mesa"
PREFERRED_PROVIDER_virtual/libgles1="mesa"
#
# $PREFERRED_PROVIDER_virtual/libgles2
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:11
#     "mesa"
PREFERRED_PROVIDER_virtual/libgles2="mesa"
#
# $PREFERRED_PROVIDER_virtual/libiconv
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:11
#     "glibc"
PREFERRED_PROVIDER_virtual/libiconv="glibc"
#
# $PREFERRED_PROVIDER_virtual/libintl
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:14
#     "glibc"
PREFERRED_PROVIDER_virtual/libintl="glibc"
#
# $PREFERRED_PROVIDER_virtual/libx11
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:15
#     "libx11"
PREFERRED_PROVIDER_virtual/libx11="libx11"
#
# $PREFERRED_PROVIDER_virtual/make
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:18
#     "make"
PREFERRED_PROVIDER_virtual/make="make"
#
# $PREFERRED_PROVIDER_virtual/make-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:19
#     "make-native"
PREFERRED_PROVIDER_virtual/make-native="make-native"
#
# $PREFERRED_PROVIDER_virtual/mesa
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:12
#     "mesa"
PREFERRED_PROVIDER_virtual/mesa="mesa"
#
# $PREFERRED_PROVIDER_virtual/nativesdk-libc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:16
#     "nativesdk-glibc"
PREFERRED_PROVIDER_virtual/nativesdk-libc="nativesdk-glibc"
#
# $PREFERRED_PROVIDER_virtual/nativesdk-libiconv
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:12
#     "nativesdk-glibc"
PREFERRED_PROVIDER_virtual/nativesdk-libiconv="nativesdk-glibc"
#
# $PREFERRED_PROVIDER_virtual/nativesdk-libintl
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tclibc-glibc.inc:13
#     "nativesdk-glibc"
PREFERRED_PROVIDER_virtual/nativesdk-libintl="nativesdk-glibc"
#
# $PREFERRED_PROVIDER_virtual/nativesdk-x86_64-oesdk-linux-libc-for-gcc
#   rename from PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-for-gcc data.py:116 [expandKeys]
#     "nativesdk-glibc"
PREFERRED_PROVIDER_virtual/nativesdk-x86_64-oesdk-linux-libc-for-gcc="nativesdk-glibc"
#
# $PREFERRED_PROVIDER_virtual/nativesdk-x86_64-oesdk-linux-libc-initial
#   rename from PREFERRED_PROVIDER_virtual/nativesdk-${SDK_PREFIX}libc-initial data.py:116 [expandKeys]
#     "nativesdk-glibc-initial"
PREFERRED_PROVIDER_virtual/nativesdk-x86_64-oesdk-linux-libc-initial="nativesdk-glibc-initial"
#
# $PREFERRED_PROVIDER_virtual/update-alternatives
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:13
#     "opkg-utils"
PREFERRED_PROVIDER_virtual/update-alternatives="opkg-utils"
#
# $PREFERRED_PROVIDER_virtual/update-alternatives-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:14
#     "opkg-utils-native"
PREFERRED_PROVIDER_virtual/update-alternatives-native="opkg-utils-native"
#
# $PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-binutils-crosssdk
#   rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}binutils-crosssdk data.py:116 [expandKeys]
#     "binutils-crosssdk-${SDK_SYS}"
PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-binutils-crosssdk="binutils-crosssdk-x86_64-oesdk-linux"
#
# $PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-compilerlibs
#   rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}compilerlibs data.py:116 [expandKeys]
#     "nativesdk-gcc-runtime"
PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-compilerlibs="nativesdk-gcc-runtime"
#
# $PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-g++
#   rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}g++ data.py:116 [expandKeys]
#     "gcc-crosssdk-${SDK_SYS}"
PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-g++="gcc-crosssdk-x86_64-oesdk-linux"
#
# $PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-gcc
#   rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc data.py:116 [expandKeys]
#     "gcc-crosssdk-${SDK_SYS}"
PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-gcc="gcc-crosssdk-x86_64-oesdk-linux"
#
# $PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-gcc-initial
#   rename from PREFERRED_PROVIDER_virtual/${SDK_PREFIX}gcc-initial data.py:116 [expandKeys]
#     "gcc-crosssdk-initial-${SDK_SYS}"
PREFERRED_PROVIDER_virtual/x86_64-oesdk-linux-gcc-initial="gcc-crosssdk-initial-x86_64-oesdk-linux"
#
# $PREFERRED_PROVIDER_virtual/xserver
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:6
#     "xserver-xorg"
PREFERRED_PROVIDER_virtual/xserver="xserver-xorg"
#
# $PREFERRED_PROVIDER_virtual/xserver-xf86
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:7
#     "xserver-xorg"
PREFERRED_PROVIDER_virtual/xserver-xf86="xserver-xorg"
#
# $PREFERRED_PROVIDER_xf86-video-intel
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:17
#     "xf86-video-intel"
PREFERRED_PROVIDER_xf86-video-intel="xf86-video-intel"
#
# $PREFERRED_RPROVIDER_bluez-hcidump
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:50
#     "${@bb.utils.contains('DISTRO_FEATURES','bluetooth bluez5','bluez5','bluez-hcidump',d)}"
PREFERRED_RPROVIDER_bluez-hcidump="bluez-hcidump"
#
# $PREFERRED_RPROVIDER_libasound-module-bluez
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:49
#     "${@bb.utils.contains('DISTRO_FEATURES','bluetooth bluez5','bluez5','bluez4',d)}"
PREFERRED_RPROVIDER_libasound-module-bluez="bluez4"
#
# $PREFERRED_VERSION [37 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:335
#     [doc] "If there are multiple versions of recipes available, this variable determines which recipe should be given preference."
#   override[liberation-fonts]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-versions.inc:6
#     "1.04"
#   override[gcc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:33
#     "${GCCVERSION}"
#   override[gcc-runtime]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:39
#     "${GCCVERSION}"
#   override[gcc-sanitizers]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:40
#     "${GCCVERSION}"
#   override[nativesdk-gcc-runtime]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:41
#     "${SDKGCCVERSION}"
#   override[nativesdk-gcc-sanitizers]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:42
#     "${SDKGCCVERSION}"
#   override[libgcc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:43
#     "${GCCVERSION}"
#   override[libgcc-initial]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:44
#     "${GCCVERSION}"
#   override[nativesdk-gcc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:45
#     "${SDKGCCVERSION}"
#   override[nativesdk-libgcc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:46
#     "${SDKGCCVERSION}"
#   override[nativesdk-libgcc-initial]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:47
#     "${SDKGCCVERSION}"
#   override[binutils]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:48
#     "${BINUVERSION}"
#   override[binutils-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:49
#     "${BINUVERSION}"
#   override[gdb]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:53
#     "${GDBVERSION}"
#   override[linux-libc-headers]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:57
#     "${LINUXLIBCVERSION}"
#   override[nativesdk-linux-libc-headers]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:58
#     "${LINUXLIBCVERSION}"
#   override[glibc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:59
#     "${GLIBCVERSION}"
#   override[glibc-locale]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:60
#     "${GLIBCVERSION}"
#   override[glibc-mtrace]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:61
#     "${GLIBCVERSION}"
#   override[glibc-scripts]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:62
#     "${GLIBCVERSION}"
#   override[nativesdk-glibc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:63
#     "${GLIBCVERSION}"
#   override[glibc-initial]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:64
#     "${GLIBCVERSION}"
#   override[nativesdk-glibc-initial]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:65
#     "${GLIBCVERSION}"
#   override[cross-localedef-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:66
#     "${GLIBCVERSION}"
#   override[uclibc]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:67
#     "${UCLIBCVERSION}"
#   override[uclibc-initial]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:68
#     "${UCLIBCVERSION}"
#   override[gzip-native]:set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:71
#     "1.8"
#   override[binutils-cross-arm]:rename from PREFERRED_VERSION_binutils-cross-${TARGET_ARCH} data.py:116 [expandKeys]
#     "${BINUVERSION}"
#   override[binutils-cross-canadian-arm]:rename from PREFERRED_VERSION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} data.py:116 [expandKeys]
#     "${BINUVERSION}"
#   override[gcc-cross-arm]:rename from PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} data.py:116 [expandKeys]
#     "${GCCVERSION}"
#   override[gcc-cross-canadian-arm]:rename from PREFERRED_VERSION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} data.py:116 [expandKeys]
#     "${GCCVERSION}"
#   override[gcc-cross-initial-arm]:rename from PREFERRED_VERSION_gcc-cross-initial-${TARGET_ARCH} data.py:116 [expandKeys]
#     "${GCCVERSION}"
#   override[gcc-crosssdk-x86_64-oesdk-linux]:rename from PREFERRED_VERSION_gcc-crosssdk-${SDK_SYS} data.py:116 [expandKeys]
#     "${SDKGCCVERSION}"
#   override[gcc-crosssdk-initial-x86_64-oesdk-linux]:rename from PREFERRED_VERSION_gcc-crosssdk-initial-${SDK_SYS} data.py:116 [expandKeys]
#     "${SDKGCCVERSION}"
#   override[gdb-cross-arm]:rename from PREFERRED_VERSION_gdb-cross-${TARGET_ARCH} data.py:116 [expandKeys]
#     "${GDBVERSION}"
#   override[gdb-cross-canadian-arm]:rename from PREFERRED_VERSION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} data.py:116 [expandKeys]
#     "${GDBVERSION}"
# pre-expansion value:
#   "None"
#
# $PREFERRED_VERSION_binutils
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:48
#     "${BINUVERSION}"
PREFERRED_VERSION_binutils="2.28%"
#
# $PREFERRED_VERSION_binutils-cross-arm
#   rename from PREFERRED_VERSION_binutils-cross-${TARGET_ARCH} data.py:116 [expandKeys]
#     "${BINUVERSION}"
PREFERRED_VERSION_binutils-cross-arm="2.28%"
#
# $PREFERRED_VERSION_binutils-cross-canadian-arm
#   rename from PREFERRED_VERSION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} data.py:116 [expandKeys]
#     "${BINUVERSION}"
PREFERRED_VERSION_binutils-cross-canadian-arm="2.28%"
#
# $PREFERRED_VERSION_binutils-crosssdk-x86_64
#   rename from PREFERRED_VERSION_binutils-crosssdk-${SDK_ARCH} data.py:116 [expandKeys]
#     "${BINUVERSION}"
PREFERRED_VERSION_binutils-crosssdk-x86_64="2.28%"
#
# $PREFERRED_VERSION_binutils-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:49
#     "${BINUVERSION}"
PREFERRED_VERSION_binutils-native="2.28%"
#
# $PREFERRED_VERSION_cross-localedef-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:66
#     "${GLIBCVERSION}"
PREFERRED_VERSION_cross-localedef-native="2.25"
#
# $PREFERRED_VERSION_gcc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:33
#     "${GCCVERSION}"
PREFERRED_VERSION_gcc="6.3%"
#
# $PREFERRED_VERSION_gcc-cross-arm
#   rename from PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} data.py:116 [expandKeys]
#     "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-arm="6.3%"
#
# $PREFERRED_VERSION_gcc-cross-canadian-arm
#   rename from PREFERRED_VERSION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} data.py:116 [expandKeys]
#     "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-canadian-arm="6.3%"
#
# $PREFERRED_VERSION_gcc-cross-initial-arm
#   rename from PREFERRED_VERSION_gcc-cross-initial-${TARGET_ARCH} data.py:116 [expandKeys]
#     "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-initial-arm="6.3%"
#
# $PREFERRED_VERSION_gcc-crosssdk-initial-x86_64-oesdk-linux
#   rename from PREFERRED_VERSION_gcc-crosssdk-initial-${SDK_SYS} data.py:116 [expandKeys]
#     "${SDKGCCVERSION}"
PREFERRED_VERSION_gcc-crosssdk-initial-x86_64-oesdk-linux="6.3%"
#
# $PREFERRED_VERSION_gcc-crosssdk-x86_64-oesdk-linux
#   rename from PREFERRED_VERSION_gcc-crosssdk-${SDK_SYS} data.py:116 [expandKeys]
#     "${SDKGCCVERSION}"
PREFERRED_VERSION_gcc-crosssdk-x86_64-oesdk-linux="6.3%"
#
# $PREFERRED_VERSION_gcc-runtime
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:39
#     "${GCCVERSION}"
PREFERRED_VERSION_gcc-runtime="6.3%"
#
# $PREFERRED_VERSION_gcc-sanitizers
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:40
#     "${GCCVERSION}"
PREFERRED_VERSION_gcc-sanitizers="6.3%"
#
# $PREFERRED_VERSION_gdb
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:53
#     "${GDBVERSION}"
PREFERRED_VERSION_gdb="7.12%"
#
# $PREFERRED_VERSION_gdb-cross-arm
#   rename from PREFERRED_VERSION_gdb-cross-${TARGET_ARCH} data.py:116 [expandKeys]
#     "${GDBVERSION}"
PREFERRED_VERSION_gdb-cross-arm="7.12%"
#
# $PREFERRED_VERSION_gdb-cross-canadian-arm
#   rename from PREFERRED_VERSION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} data.py:116 [expandKeys]
#     "${GDBVERSION}"
PREFERRED_VERSION_gdb-cross-canadian-arm="7.12%"
#
# $PREFERRED_VERSION_glibc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:59
#     "${GLIBCVERSION}"
PREFERRED_VERSION_glibc="2.25"
#
# $PREFERRED_VERSION_glibc-initial
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:64
#     "${GLIBCVERSION}"
PREFERRED_VERSION_glibc-initial="2.25"
#
# $PREFERRED_VERSION_glibc-locale
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:60
#     "${GLIBCVERSION}"
PREFERRED_VERSION_glibc-locale="2.25"
#
# $PREFERRED_VERSION_glibc-mtrace
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:61
#     "${GLIBCVERSION}"
PREFERRED_VERSION_glibc-mtrace="2.25"
#
# $PREFERRED_VERSION_glibc-scripts
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:62
#     "${GLIBCVERSION}"
PREFERRED_VERSION_glibc-scripts="2.25"
#
# $PREFERRED_VERSION_gzip-native
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:71
#     "1.8"
PREFERRED_VERSION_gzip-native="1.8"
#
# $PREFERRED_VERSION_liberation-fonts
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-versions.inc:6
#     "1.04"
PREFERRED_VERSION_liberation-fonts="1.04"
#
# $PREFERRED_VERSION_libgcc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:43
#     "${GCCVERSION}"
PREFERRED_VERSION_libgcc="6.3%"
#
# $PREFERRED_VERSION_libgcc-initial
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:44
#     "${GCCVERSION}"
PREFERRED_VERSION_libgcc-initial="6.3%"
#
# $PREFERRED_VERSION_linux-libc-headers
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:57
#     "${LINUXLIBCVERSION}"
PREFERRED_VERSION_linux-libc-headers="4.10%"
#
# $PREFERRED_VERSION_nativesdk-gcc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:45
#     "${SDKGCCVERSION}"
PREFERRED_VERSION_nativesdk-gcc="6.3%"
#
# $PREFERRED_VERSION_nativesdk-gcc-runtime
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:41
#     "${SDKGCCVERSION}"
PREFERRED_VERSION_nativesdk-gcc-runtime="6.3%"
#
# $PREFERRED_VERSION_nativesdk-gcc-sanitizers
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:42
#     "${SDKGCCVERSION}"
PREFERRED_VERSION_nativesdk-gcc-sanitizers="6.3%"
#
# $PREFERRED_VERSION_nativesdk-glibc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:63
#     "${GLIBCVERSION}"
PREFERRED_VERSION_nativesdk-glibc="2.25"
#
# $PREFERRED_VERSION_nativesdk-glibc-initial
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:65
#     "${GLIBCVERSION}"
PREFERRED_VERSION_nativesdk-glibc-initial="2.25"
#
# $PREFERRED_VERSION_nativesdk-libgcc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:46
#     "${SDKGCCVERSION}"
PREFERRED_VERSION_nativesdk-libgcc="6.3%"
#
# $PREFERRED_VERSION_nativesdk-libgcc-initial
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:47
#     "${SDKGCCVERSION}"
PREFERRED_VERSION_nativesdk-libgcc-initial="6.3%"
#
# $PREFERRED_VERSION_nativesdk-linux-libc-headers
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:58
#     "${LINUXLIBCVERSION}"
PREFERRED_VERSION_nativesdk-linux-libc-headers="4.10%"
#
# $PREFERRED_VERSION_uclibc
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:67
#     "${UCLIBCVERSION}"
PREFERRED_VERSION_uclibc="1.0%"
#
# $PREFERRED_VERSION_uclibc-initial
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:68
#     "${UCLIBCVERSION}"
PREFERRED_VERSION_uclibc-initial="1.0%"
#
# $PREMIRRORS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:336
#     [doc] "Specifies additional paths from which the OpenEmbedded build system gets source code."
#
# $PREPROCESS_RELOCATE_DIRS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/chrpath.bbclass:2
#     ""
PREPROCESS_RELOCATE_DIRS=""
#
# $PRINC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:337
#     [doc] "Causes the PR variable of .bbappend files to dynamically increment. This increment minimizes the impact of layer ordering. This variable defaults to '0'."
#
# $PRIORITY [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:222
#     "optional"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:338
#     [doc] "Indicates the importance of a package.  The default value is 'optional'.  Other standard values are 'required', 'standard' and 'extra'."
# pre-expansion value:
#   "optional"
PRIORITY="optional"
#
# $PROVIDES [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:262
#     ""
#   _prepend /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:263
#     "${PN} "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:339
#     [doc] "A list of aliases that a recipe also provides. These aliases are useful for satisfying dependencies of other recipes during the build as specified by DEPENDS."
# pre-expansion value:
#   "${PN} "
PROVIDES="rescue-rootfs "
#
# $PRSERV_HOST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:340
#     [doc] "The network based PR service host and port."
#
# $PSEUDO_DISABLED [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:663
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:663
#     "1"
# pre-expansion value:
#   "1"
export PSEUDO_DISABLED="1"
#
# $PSEUDO_LOCALSTATEDIR
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:660
#     "${WORKDIR}/pseudo/"
PSEUDO_LOCALSTATEDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/pseudo/"
#
# $PSEUDO_PASSWD [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:661
#     "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:205
#     "${IMAGE_ROOTFS}:${STAGING_DIR_NATIVE}"
# pre-expansion value:
#   "${IMAGE_ROOTFS}:${STAGING_DIR_NATIVE}"
PSEUDO_PASSWD="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native"
#
# $PSEUDO_SYSROOT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:662
#     "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native"
PSEUDO_SYSROOT="/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components/x86_64/pseudo-native"
#
# $PV [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:195
#     "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:341
#     [doc] "The version of the recipe. The version is normally extracted from the recipe filename."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:21
#     [vardepvalue] "${PV}"
# pre-expansion value:
#   "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
PV="1.0"
#
# $PWD [2 operations]
#   from env data.py:124 [inheritFromOS]
#     "/home/mnhu/projects/pil/yocto"
#   auto env export data.py:126 [inheritFromOS]
#     [export] "True"
# pre-expansion value:
#   "/home/mnhu/projects/pil/yocto"
export PWD="/home/mnhu/projects/pil/yocto"
#
# $PYTHON
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:509
#     "${@sys.executable}"
PYTHON="/usr/bin/python3"
#
# $QADEPENDS [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:23
#     "prelink-native"
#   override[class-native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:24
#     ""
#   override[class-nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:25
#     ""
# pre-expansion value:
#   "prelink-native"
QADEPENDS="prelink-native"
#
# $QADEPENDS_class-native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:24
#     ""
QADEPENDS_class-native=""
#
# $QADEPENDS_class-nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:25
#     ""
QADEPENDS_class-nativesdk=""
#
# $QAPATHTEST [18 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:227
#     [libexec] "package_qa_check_libexec"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:241
#     [rpaths] "package_qa_check_rpath"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:266
#     [useless-rpaths] "package_qa_check_useless_rpaths"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:296
#     [dev-so] "package_qa_check_dev"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:306
#     [dev-elf] "package_qa_check_dev_elf"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:317
#     [staticdev] "package_qa_check_staticdev"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:393
#     [debug-files] "package_qa_check_dbg"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:404
#     [perms] "package_qa_check_perm"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:411
#     [unsafe-references-in-scripts] "package_qa_check_unsafe_references_in_scripts"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:476
#     [arch] "package_qa_check_arch"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:523
#     [desktop] "package_qa_check_desktop"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:535
#     [textrel] "package_qa_textrel"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:559
#     [ldflags] "package_qa_hash_style"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:595
#     [buildpaths] "package_qa_check_buildpaths"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:619
#     [xorg-driver-abi] "package_qa_check_xorg_driver_abi"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:637
#     [infodir] "package_qa_check_infodir"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:647
#     [symlink-to-sysroot] "package_qa_check_symlink_to_sysroot"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:1041
#     [host-user-contaminated] "package_qa_check_host_user"
# pre-expansion value:
#   "None"
#
# $QAPKGTEST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:1000
#     [expanded-d] "package_qa_check_expanded_d"
#
# $QA_LOGFILE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:1
#     "${TMPDIR}/qa.log"
QA_LOGFILE="/home/mnhu/projects/pil/yocto/tmp-glibc/qa.log"
#
# $QA_SANE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:26
#     "True"
QA_SANE="True"
#
# $QMAKE_PROFILES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:345
#     [doc] "Specifies your own subset of .pro files to be built for use with qmake."
#
# $QT_CONFIG_FLAGS
#   _append[pn-qtbase] /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:22
#     " -qpa eglfs"
QT_CONFIG_FLAGS=""
#
# $QT_GIT
#   set? /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:36
#     "git://github.com/qt"
QT_GIT="git://github.com/qt"
#
# $QT_GIT_PROTOCOL
#   set? /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:38
#     "git"
QT_GIT_PROTOCOL="git"
#
# $QT_LABS_GIT
#   set? /home/mnhu/projects/pil/yocto/meta-qt5/conf/layer.conf:37
#     "git://github.com/qt-labs"
QT_LABS_GIT="git://github.com/qt-labs"
#
# $QUILTRCFILE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/patch.bbclass:4
#     "${STAGING_ETCDIR_NATIVE}/quiltrc"
QUILTRCFILE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/etc/quiltrc"
#
# $RANLIB [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:502
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:502
#     "${HOST_PREFIX}ranlib"
# pre-expansion value:
#   "${HOST_PREFIX}ranlib"
export RANLIB="arm-oe-linux-gnueabi-ranlib"
#
# $RAUC_BUNDLE_BOOTLOADER
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:22
#     "uboot"
RAUC_BUNDLE_BOOTLOADER="uboot"
#
# $RAUC_BUNDLE_COMPATIBLE
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:21
#     "${MACHINE}"
RAUC_BUNDLE_COMPATIBLE="rpi2"
#
# $RAUC_CERT_FILE
#   set? /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:24
#     "${TOPDIR}/meta-pil/files/development-1.cert.pem"
RAUC_CERT_FILE="/home/mnhu/projects/pil/yocto/meta-pil/files/development-1.cert.pem"
#
# $RAUC_KEY_FILE
#   set? /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:23
#     "${TOPDIR}/meta-pil/files/development-1.key.pem"
RAUC_KEY_FILE="/home/mnhu/projects/pil/yocto/meta-pil/files/development-1.key.pem"
#
# $RCONFLICTS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:349
#     [doc] "The list of packages that conflict with another package. Note that the package will not be installed if the conflicting packages are not first removed."
#
# $RDEPENDS [6 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:261
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:350
#     [doc] "Lists a package's runtime dependencies (i.e. other packages) that must be installed for the package to be built. They must be the names of other packages as listed in the PACKAGES variable, not recipe names (PN)."
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:15
#     "${PACKAGE_INSTALL} ${LINGUAS_INSTALL}"
#   override[kernel-base]:set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:45
#     ""
#   override[rescue-rootfs-dev]:rename from RDEPENDS_${PN}-dev data.py:116 [expandKeys]
#     "${PN} (= ${EXTENDPKGV})"
#   override[rescue-rootfs-staticdev]:rename from RDEPENDS_${PN}-staticdev data.py:116 [expandKeys]
#     "${PN}-dev (= ${EXTENDPKGV})"
# pre-expansion value:
#   " ${PACKAGE_INSTALL} ${LINGUAS_INSTALL}"
RDEPENDS="  		 packagegroup-core-boot 		 packagegroup-core-ssh-openssh 		 e2fsprogs 		 e2fsprogs-tune2fs 		 dosfstools 		 mtd-utils mtd-utils-jffs2 mtd-utils-misc 		 u-boot-fw-utils 		  		 busybox-syslog 		 busybox-watchdog 		 busybox-ifplugd 		 dhcp-client 		 openssh-sftp-server 		 openssh-sftp 		 rauc 		 dbus 		 system-init 		       rescue-init  run-postinsts  base-passwd shadow "
#
# $RDEPENDS_kernel-base
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:45
#     ""
RDEPENDS_kernel-base=""
#
# $RDEPENDS_rescue-rootfs-dev
#   rename from RDEPENDS_${PN}-dev data.py:116 [expandKeys]
#     "${PN} (= ${EXTENDPKGV})"
RDEPENDS_rescue-rootfs-dev="rescue-rootfs (= 1.0-r0)"
#
# $RDEPENDS_rescue-rootfs-staticdev
#   rename from RDEPENDS_${PN}-staticdev data.py:116 [expandKeys]
#     "${PN}-dev (= ${EXTENDPKGV})"
RDEPENDS_rescue-rootfs-staticdev="rescue-rootfs-dev (= 1.0-r0)"
#
# $READELF [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:508
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:508
#     "${HOST_PREFIX}readelf"
# pre-expansion value:
#   "${HOST_PREFIX}readelf"
export READELF="arm-oe-linux-gnueabi-readelf"
#
# $REAL_MULTIMACH_TARGET_SYS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:46
#     "${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
REAL_MULTIMACH_TARGET_SYS="cortexa7hf-neon-vfpv4-oe-linux-gnueabi"
#
# $RECIPE_SYSROOT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:355
#     "${WORKDIR}/recipe-sysroot"
RECIPE_SYSROOT="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $RECIPE_SYSROOT_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:356
#     "${WORKDIR}/recipe-sysroot-native"
RECIPE_SYSROOT_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native"
#
# $REMOVE_LIBTOOL_LA
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/remove-libtool.bbclass:3
#     "1"
REMOVE_LIBTOOL_LA="1"
#
# $REQUIRED_DISTRO_FEATURES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:351
#     [doc] "When a recipe inherits the distro_features_check class, this variable identifies distribution features that must exist in the current configuration in order for the OpenEmbedded build system to build the recipe."
#
# $RM_WORK_EXCLUDE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:352
#     [doc] "With rm_work enabled, this variable specifies a list of packages whose work directories should not be removed."
#
# $ROOTFS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:353
#     [doc] "Indicates a filesystem image to include as the root filesystem."
#
# $ROOTFS_BOOTSTRAP_INSTALL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:32
#     "run-postinsts"
ROOTFS_BOOTSTRAP_INSTALL="run-postinsts"
#
# $ROOTFS_PKGMANAGE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs_ipk.bbclass:9
#     "opkg ${EXTRAOPKGCONFIG}"
ROOTFS_PKGMANAGE="opkg "
#
# $ROOTFS_RO_UNNEEDED
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:36
#     "update-rc.d base-passwd shadow ${VIRTUAL-RUNTIME_update-alternatives} ${ROOTFS_BOOTSTRAP_INSTALL}"
ROOTFS_RO_UNNEEDED="update-rc.d base-passwd shadow update-alternatives-opkg run-postinsts"
#
# $ROOT_HOME
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:84
#     [_defaultval] "/home/root"
ROOT_HOME="/home/root"
#
# $RPMDEPS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:1443
#     "${STAGING_LIBDIR_NATIVE}/rpm/rpmdeps${@' --alldeps' if d.getVar('ENABLE_RPM_FILEDEPS_FOR_PYRO') == '1' else ''}"
RPMDEPS="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/lib/rpm/rpmdeps"
#
# $RPROVIDES [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:264
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:355
#     [doc] "A list of package name aliases that a package also provides. These aliases are useful for satisfying runtime dependencies of other packages both during the build and on the target."
# pre-expansion value:
#   ""
RPROVIDES=""
#
# $RRECOMMENDS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:356
#     [doc] "A list of packages that extends the usability of a package being built. The package being built does not depend on this list of packages in order to successfully build, but needs them for the extended usability."
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:16
#     "${PACKAGE_INSTALL_ATTEMPTONLY}"
# pre-expansion value:
#   " ${PACKAGE_INSTALL_ATTEMPTONLY}"
RRECOMMENDS=" "
#
# $RREPLACES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:357
#     [doc] "A list of packages replaced by a package. The package manager uses this variable to determine which package should be installed to replace other package(s) during an upgrade."
#
# $RSUGGESTS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:358
#     [doc] "A list of additional packages that you can suggest for installation by the package manager at the time a package is installed. Not all package managers support this functionality."
#
# $RUNNABLE_IMAGE_TYPES
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:284
#     "ext2 ext3 ext4"
RUNNABLE_IMAGE_TYPES="ext2 ext3 ext4"
#
# $RUNNABLE_MACHINE_PATTERNS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:285
#     "qemu"
RUNNABLE_MACHINE_PATTERNS="qemu"
#
# $S [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:350
#     "${WORKDIR}/${BP}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:362
#     [doc] "The location in the Build Directory where unpacked package source code resides."
# pre-expansion value:
#   "${WORKDIR}/${BP}"
S="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rescue-rootfs-1.0"
#
# $SANITY_ABIFILE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf:8
#     "${TMPDIR}/abi_version"
SANITY_ABIFILE="/home/mnhu/projects/pil/yocto/tmp-glibc/abi_version"
#
# $SANITY_BBLAYERCONF_SAMPLE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass:79
#     "${COREBASE}/meta*/conf/bblayers.conf.sample"
SANITY_BBLAYERCONF_SAMPLE="/home/mnhu/projects/pil/yocto/meta-poky/meta*/conf/bblayers.conf.sample"
#
# $SANITY_DIFF_TOOL
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass:37
#     "meld"
SANITY_DIFF_TOOL="meld"
#
# $SANITY_LOCALCONF_SAMPLE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass:39
#     "${COREBASE}/meta*/conf/local.conf.sample"
SANITY_LOCALCONF_SAMPLE="/home/mnhu/projects/pil/yocto/meta-poky/meta*/conf/local.conf.sample"
#
# $SANITY_REQUIRED_UTILITIES
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass:6
#     "patch diffstat makeinfo git bzip2 tar     gzip gawk chrpath wget cpio perl file which"
SANITY_REQUIRED_UTILITIES="patch diffstat makeinfo git bzip2 tar     gzip gawk chrpath wget cpio perl file which"
#
# $SANITY_SITECONF_SAMPLE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sanity.bbclass:59
#     "${COREBASE}/meta*/conf/site.conf.sample"
SANITY_SITECONF_SAMPLE="/home/mnhu/projects/pil/yocto/meta-poky/meta*/conf/site.conf.sample"
#
# $SANITY_TESTED_DISTROS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:363
#     [doc] "A list of the host distribution identifiers that the build system has been tested against."
#
# $SANITY_VERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf:10
#     "1"
SANITY_VERSION="1"
#
# $SAVANNAH_GNU_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:618
#     "http://download.savannah.gnu.org/releases"
SAVANNAH_GNU_MIRROR="http://download.savannah.gnu.org/releases"
#
# $SAVANNAH_NONGNU_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:619
#     "http://download.savannah.nongnu.org/releases"
SAVANNAH_NONGNU_MIRROR="http://download.savannah.nongnu.org/releases"
#
# $SDKDEPLOYDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:29
#     "${WORKDIR}/${SDKMACHINE}-deploy-${PN}-populate-sdk"
SDKDEPLOYDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk"
#
# $SDKEXTCLASS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:5
#     "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}"
SDKEXTCLASS="populate_sdk_ext"
#
# $SDKEXTDEPLOYDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:679
#     "${WORKDIR}/deploy-${PN}-populate-sdk-ext"
SDKEXTDEPLOYDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-populate-sdk-ext"
#
# $SDKEXTPATH
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:57
#     "~/${@d.getVar('DISTRO')}_sdk"
SDKEXTPATH="~/basic_sdk"
#
# $SDKGCCVERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:26
#     "${GCCVERSION}"
SDKGCCVERSION="6.3%"
#
# $SDKIMAGE_FEATURES [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:369
#     [doc] "Equivalent to IMAGE_FEATURES. However, this variable applies to the SDK generated from an image using the command 'bitbake -c populate_sdk imagename'."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:20
#     [_defaultval] "dev-pkgs dbg-pkgs ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'doc-pkgs', '', d)}"
# pre-expansion value:
#   "dev-pkgs dbg-pkgs ${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'doc-pkgs', '', d)}"
SDKIMAGE_FEATURES="dev-pkgs dbg-pkgs "
#
# $SDKIMAGE_INSTALL_COMPLEMENTARY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:21
#     "${@complementary_globs("SDKIMAGE_FEATURES", d)}"
SDKIMAGE_INSTALL_COMPLEMENTARY="*-dev *-dbg"
#
# $SDKMACHINE [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:132
#     [_defaultval] "x86_64"
#   set? /home/mnhu/projects/pil/yocto/conf/local.conf:15
#     "x86_64"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:370
#     [doc] "Specifies the architecture (i.e. i686 or x86_64) for which to build SDK and ADT items."
# pre-expansion value:
#   "x86_64"
SDKMACHINE="x86_64"
#
# $SDKPATH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:401
#     "/usr/local/${SDK_NAME_PREFIX}-${SDK_ARCH}"
SDKPATH="/usr/local/oecore-x86_64"
#
# $SDKPATHNATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:402
#     "${SDKPATH}/sysroots/${SDK_SYS}"
SDKPATHNATIVE="/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux"
#
# $SDKPKGSUFFIX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:138
#     "nativesdk"
SDKPKGSUFFIX="nativesdk"
#
# $SDKTARGETSYSROOT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:33
#     "${SDKPATH}/sysroots/${REAL_MULTIMACH_TARGET_SYS}"
SDKTARGETSYSROOT="/usr/local/oecore-x86_64/sysroots/cortexa7hf-neon-vfpv4-oe-linux-gnueabi"
#
# $SDKTAROPTS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:190
#     "--owner=root --group=root"
SDKTAROPTS="--owner=root --group=root"
#
# $SDKUSE_NLS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:121
#     [_defaultval] "yes"
SDKUSE_NLS="yes"
#
# $SDK_ARCH [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf:1
#     "x86_64"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:364
#     [doc] "The target architecture for the SDK."
# pre-expansion value:
#   "x86_64"
SDK_ARCH="x86_64"
#
# $SDK_AS_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:141
#     "${BUILD_AS_ARCH}"
SDK_AS_ARCH=""
#
# $SDK_CC_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:137
#     "${BUILD_CC_ARCH}"
SDK_CC_ARCH=""
#
# $SDK_DEPENDS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:42
#     "virtual/fakeroot-native pixz-native"
SDK_DEPENDS="virtual/fakeroot-native pixz-native"
#
# $SDK_DEPLOY [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:365
#     [doc] "The directory set up and used by the populate_sdk_base to which the SDK is deployed."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:27
#     "${DEPLOY_DIR}/sdk"
# pre-expansion value:
#   "${DEPLOY_DIR}/sdk"
SDK_DEPLOY="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/sdk"
#
# $SDK_DIR [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:366
#     [doc] "The parent directory used by the OpenEmbedded build system when creating SDK output."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:25
#     "${WORKDIR}/sdk"
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:78
#     "${WORKDIR}/sdk-ext"
# pre-expansion value:
#   "${WORKDIR}/sdk"
SDK_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk"
#
# $SDK_DIR_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:78
#     "${WORKDIR}/sdk-ext"
SDK_DIR_task-populate-sdk-ext="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk-ext"
#
# $SDK_EXT [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:16
#     ""
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:17
#     "-ext"
# pre-expansion value:
#   ""
SDK_EXT=""
#
# $SDK_EXT_HOST_MANIFEST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:84
#     "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest"
SDK_EXT_HOST_MANIFEST="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-ext-nodistro.0.host.manifest"
#
# $SDK_EXT_TARGET_MANIFEST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:83
#     "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest"
SDK_EXT_TARGET_MANIFEST="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-ext-nodistro.0.target.manifest"
#
# $SDK_EXT_TYPE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:20
#     "full"
SDK_EXT_TYPE="full"
#
# $SDK_EXT_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:17
#     "-ext"
SDK_EXT_task-populate-sdk-ext="-ext"
#
# $SDK_HOST_MANIFEST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:61
#     "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
SDK_HOST_MANIFEST="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.host.manifest"
#
# $SDK_INCLUDE_PKGDATA
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:21
#     "0"
SDK_INCLUDE_PKGDATA="0"
#
# $SDK_INCLUDE_TOOLCHAIN
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:22
#     "${@'1' if d.getVar('SDK_EXT_TYPE') == 'full' else '0'}"
SDK_INCLUDE_TOOLCHAIN="1"
#
# $SDK_INHERIT_BLACKLIST
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:37
#     "buildhistory icecc"
SDK_INHERIT_BLACKLIST="buildhistory icecc"
#
# $SDK_INSTALL_TARGETS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:608
#     ""
SDK_INSTALL_TARGETS=""
#
# $SDK_LD_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:140
#     "${BUILD_LD_ARCH}"
SDK_LD_ARCH=""
#
# $SDK_LOCAL_CONF_BLACKLIST
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:36
#     "CONF_VERSION                              BB_NUMBER_THREADS                              BB_NUMBER_PARSE_THREADS                              PARALLEL_MAKE                              PRSERV_HOST                              SSTATE_MIRRORS                              DL_DIR                              SSTATE_DIR                              TMPDIR                             "
SDK_LOCAL_CONF_BLACKLIST="CONF_VERSION                              BB_NUMBER_THREADS                              BB_NUMBER_PARSE_THREADS                              PARALLEL_MAKE                              PRSERV_HOST                              SSTATE_MIRRORS                              DL_DIR                              SSTATE_DIR                              TMPDIR                             "
#
# $SDK_LOCAL_CONF_WHITELIST
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:26
#     ""
SDK_LOCAL_CONF_WHITELIST=""
#
# $SDK_NAME [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:400
#     "${SDK_NAME_PREFIX}-${SDK_ARCH}-${TUNE_PKGARCH}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:367
#     [doc] "The base name for SDK output files."
# pre-expansion value:
#   "${SDK_NAME_PREFIX}-${SDK_ARCH}-${TUNE_PKGARCH}"
SDK_NAME="oecore-x86_64-cortexa7hf-neon-vfpv4"
#
# $SDK_NAME_PREFIX
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:399
#     "oecore"
SDK_NAME_PREFIX="oecore"
#
# $SDK_OLDEST_KERNEL [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:415
#     "3.2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine-sdk/x86_64.conf:3
#     "2.6.32"
# pre-expansion value:
#   "2.6.32"
SDK_OLDEST_KERNEL="2.6.32"
#
# $SDK_OS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:133
#     "${BUILD_OS}"
SDK_OS="linux"
#
# $SDK_OUTPUT [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:368
#     [doc] "The location used by the OpenEmbedded build system when creating SDK output."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:26
#     "${SDK_DIR}/image"
# pre-expansion value:
#   "${SDK_DIR}/image"
SDK_OUTPUT="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image"
#
# $SDK_PACKAGE_ARCHS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:139
#     "all any noarch ${SDK_ARCH}-${SDKPKGSUFFIX}"
SDK_PACKAGE_ARCHS="all any noarch x86_64-nativesdk"
#
# $SDK_PACKAGING_COMMAND
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:93
#     "${@'${SDK_PACKAGING_FUNC};' if '${SDK_PACKAGING_FUNC}' else ''}"
SDK_PACKAGING_COMMAND="create_shar;"
#
# $SDK_PACKAGING_FUNC
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:52
#     "create_shar"
SDK_PACKAGING_FUNC="create_shar"
#
# $SDK_POST_INSTALL_COMMAND [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:54
#     ""
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:604
#     "${sdk_ext_postinst}"
# pre-expansion value:
#   ""
SDK_POST_INSTALL_COMMAND=""
#
# $SDK_POST_INSTALL_COMMAND_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:604
#     "${sdk_ext_postinst}"
SDK_POST_INSTALL_COMMAND_task-populate-sdk-ext="	printf \"\nExtracting buildtools...\n\" \
	cd \$target_sdk_dir \
	env_setup_script=\"\$target_sdk_dir/environment-setup-cortexa7hf-neon-vfpv4-oe-linux-gnueabi\" \
	printf \"buildtools\ny\" | ./\${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo \"printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'\" >> \$env_setup_script ; exit 1 ; } \
 \
	# Delete the buildtools tar file since it won't be used again \
	rm -f ./\${SDK_BUILDTOOLS_INSTALLER} \
	# We don't need the log either since it succeeded \
	rm -f buildtools.log \
 \
	# Make sure when the user sets up the environment, they also get \
	# the buildtools-tarball tools in their path. \
	echo \". \$target_sdk_dir/buildtools/environment-setup*\" >> \$env_setup_script \
 \
	# Allow bitbake environment setup to be ran as part of this sdk. \
	echo \"export OE_SKIP_SDK_CHECK=1\" >> \$env_setup_script \
	# Work around runqemu not knowing how to get this information within the eSDK \
	echo \"export DEPLOY_DIR_IMAGE=\$target_sdk_dir/tmp/deploy/images/rpi2\" >> \$env_setup_script \
 \
	# A bit of another hack, but we need this in the path only for devtool \
	# so put it at the end of \$PATH. \
	echo \"export PATH=\$target_sdk_dir/sysroots/x86_64-oesdk-linux/usr/bin:\\$PATH\" >> \$env_setup_script \
 \
	echo \"printf 'SDK environment now set up; additionally you may now run devtool to perform development tasks.\nRun devtool --help for further details.\n'\" >> \$env_setup_script \
 \
	# Warn if trying to use external bitbake and the ext SDK together \
	echo \"(which bitbake > /dev/null 2>&1 && echo 'WARNING: attempting to use the extensible SDK in an environment set up to run bitbake - this may lead to unexpected results. Please source this script in a new shell session instead.') || true\" >> \$env_setup_script \
 \
	if [ \"\$prepare_buildsystem\" != \"no\" ]; then \
		printf \"Preparing build system...\n\" \
		# dash which is /bin/sh on Ubuntu will not preserve the \
		# current working directory when first ran, nor will it set \$1 when \
		# sourcing a script. That is why this has to look so ugly. \
		LOGFILE=\"\$target_sdk_dir/preparing_build_system.log\" \
		sh -c \". buildtools/environment-setup* > \$LOGFILE && cd \$target_sdk_dir/`dirname \${oe_init_build_env_path}` && set \$target_sdk_dir && . \$target_sdk_dir/\${oe_init_build_env_path} \$target_sdk_dir >> \$LOGFILE && python \$target_sdk_dir/ext-sdk-prepare.py \$LOGFILE ''\" || { echo \"printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'\" >> \$env_setup_script ; exit 1 ; } \
		rm \$target_sdk_dir/ext-sdk-prepare.py \
	fi \
	echo done \
"
#
# $SDK_PREFIX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:136
#     "${SDK_SYS}-"
SDK_PREFIX="x86_64-oesdk-linux-"
#
# $SDK_PRE_INSTALL_COMMAND [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:53
#     ""
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:560
#     "${sdk_ext_preinst}"
# pre-expansion value:
#   ""
SDK_PRE_INSTALL_COMMAND=""
#
# $SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:560
#     "${sdk_ext_preinst}"
SDK_PRE_INSTALL_COMMAND_task-populate-sdk-ext="	# Since bitbake won't run as root it doesn't make sense to try and install \
	# the extensible sdk as root. \
	if [ \"`id -u`\" = \"0\" ]; then \
		echo \"ERROR: The extensible sdk cannot be installed as root.\" \
		exit 1 \
	fi \
	if ! command -v locale > /dev/null; then \
		echo \"ERROR: The installer requires the locale command, please install it first\" \
		exit 1 \
	fi \
        # Check setting of LC_ALL set above \
	canonicalised_locale=`echo \$LC_ALL | sed 's/UTF-8/utf8/'` \
	if ! locale -a | grep -q \$canonicalised_locale ; then \
		echo \"ERROR: the installer requires the \$LC_ALL locale to be installed (but not selected), please install it first\" \
		exit 1 \
	fi \
	# The relocation script used by buildtools installer requires python \
	if ! command -v python > /dev/null; then \
		echo \"ERROR: The installer requires python, please install it first\" \
		exit 1 \
	fi \
	missing_utils=\"\" \
	for util in \${SDK_REQUIRED_UTILITIES}; do \
		if ! command -v \$util > /dev/null; then \
			missing_utils=\"\$missing_utils \$util\" \
		fi \
	done \
	if [ -n \"\$missing_utils\" ] ; then \
		echo \"ERROR: the SDK requires the following missing utilities, please install them: \$missing_utils\" \
		exit 1 \
	fi \
	SDK_EXTENSIBLE=\"1\" \
	if [ \"\$publish\" = \"1\" ] ; then \
		EXTRA_TAR_OPTIONS=\"\$EXTRA_TAR_OPTIONS --exclude=ext-sdk-prepare.py\" \
		if [ \"full\" = \"minimal\" ] ; then \
			EXTRA_TAR_OPTIONS=\"\$EXTRA_TAR_OPTIONS --exclude=sstate-cache\" \
		fi \
	fi \
"
#
# $SDK_RDEPENDS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:41
#     "${TOOLCHAIN_TARGET_TASK} ${TOOLCHAIN_HOST_TASK}"
SDK_RDEPENDS="packagegroup-core-standalone-sdk-target  		 packagegroup-core-boot 		 packagegroup-core-ssh-openssh 		 e2fsprogs 		 e2fsprogs-tune2fs 		 dosfstools 		 mtd-utils mtd-utils-jffs2 mtd-utils-misc 		 u-boot-fw-utils 		  		 busybox-syslog 		 busybox-watchdog 		 busybox-ifplugd 		 dhcp-client 		 openssh-sftp-server 		 openssh-sftp 		 rauc 		 dbus 		 system-init 		       rescue-init  run-postinsts  base-passwd shadow nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-rpi2"
#
# $SDK_RECRDEP_TASKS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:24
#     ""
SDK_RECRDEP_TASKS=""
#
# $SDK_RELOCATE_AFTER_INSTALL [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:55
#     "1"
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:14
#     "0"
# pre-expansion value:
#   "1"
SDK_RELOCATE_AFTER_INSTALL="1"
#
# $SDK_RELOCATE_AFTER_INSTALL_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:14
#     "0"
SDK_RELOCATE_AFTER_INSTALL_task-populate-sdk-ext="0"
#
# $SDK_SYS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:135
#     "${SDK_ARCH}${SDK_VENDOR}${@['-' + d.getVar('SDK_OS'), ''][d.getVar('SDK_OS') == ('' or 'custom')]}"
SDK_SYS="x86_64-oesdk-linux"
#
# $SDK_TARGETS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:40
#     "${PN}"
SDK_TARGETS="rescue-rootfs"
#
# $SDK_TARGET_MANIFEST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:60
#     "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
SDK_TARGET_MANIFEST="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.target.manifest"
#
# $SDK_TITLE [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:58
#     "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:86
#     "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} Extensible SDK"
# pre-expansion value:
#   "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
SDK_TITLE="PIL/basic SDK"
#
# $SDK_TITLE_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:86
#     "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} Extensible SDK"
SDK_TITLE_task-populate-sdk-ext="PIL/basic Extensible SDK"
#
# $SDK_UPDATE_URL
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:38
#     ""
SDK_UPDATE_URL=""
#
# $SDK_VENDOR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:134
#     "-oesdk"
SDK_VENDOR="-oesdk"
#
# $SDK_VERSION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:41
#     [_defaultval] "nodistro.0"
SDK_VERSION="nodistro.0"
#
# $SECTION [6 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:221
#     "base"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:371
#     [doc] "The section in which packages should be categorized. Package management utilities can make use of this variable."
#   override[rescue-rootfs-dbg]:rename from SECTION_${PN}-dbg data.py:116 [expandKeys]
#     "devel"
#   override[rescue-rootfs-dev]:rename from SECTION_${PN}-dev data.py:116 [expandKeys]
#     "devel"
#   override[rescue-rootfs-doc]:rename from SECTION_${PN}-doc data.py:116 [expandKeys]
#     "doc"
#   override[rescue-rootfs-staticdev]:rename from SECTION_${PN}-staticdev data.py:116 [expandKeys]
#     "devel"
# pre-expansion value:
#   "base"
SECTION="base"
#
# $SECTION_rescue-rootfs-dbg
#   rename from SECTION_${PN}-dbg data.py:116 [expandKeys]
#     "devel"
SECTION_rescue-rootfs-dbg="devel"
#
# $SECTION_rescue-rootfs-dev
#   rename from SECTION_${PN}-dev data.py:116 [expandKeys]
#     "devel"
SECTION_rescue-rootfs-dev="devel"
#
# $SECTION_rescue-rootfs-doc
#   rename from SECTION_${PN}-doc data.py:116 [expandKeys]
#     "doc"
SECTION_rescue-rootfs-doc="doc"
#
# $SECTION_rescue-rootfs-staticdev
#   rename from SECTION_${PN}-staticdev data.py:116 [expandKeys]
#     "devel"
SECTION_rescue-rootfs-staticdev="devel"
#
# $SELECTED_OPTIMIZATION [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:592
#     "${@d.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][d.getVar('DEBUG_BUILD') == '1'])}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:593
#     [vardeps] "FULL_OPTIMIZATION DEBUG_OPTIMIZATION"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:372
#     [doc] "The variable takes the value of FULL_OPTIMIZATION unless DEBUG_BUILD = '1'. In this case, the value of DEBUG_OPTIMIZATION is used."
# pre-expansion value:
#   "${@d.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][d.getVar('DEBUG_BUILD') == '1'])}"
SELECTED_OPTIMIZATION="-O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
#
# $SERIAL_CONSOLE [3 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:18
#     "115200 ttyAMA0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:373
#     [doc] "The speed and device for the serial port used to attach the serial console. This variable is given to the kernel as the 'console' parameter. After booting occurs, getty is started on that port so remote login is possible."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:815
#     [_defaultval] ""
# pre-expansion value:
#   "115200 ttyAMA0"
SERIAL_CONSOLE="115200 ttyAMA0"
#
# $SERIAL_CONSOLES [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:374
#     [doc] "Defines the serial consoles (TTYs) to enable using getty."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:816
#     [_defaultval] "${@d.getVar('SERIAL_CONSOLE').replace(' ', ';')}"
# pre-expansion value:
#   "${@d.getVar('SERIAL_CONSOLE').replace(' ', ';')}"
SERIAL_CONSOLES="115200;ttyAMA0"
#
# $SERIAL_CONSOLES_CHECK
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:375
#     [doc] "Similar to SERIAL_CONSOLES except the device is checked for existence before attempting to enable it. Supported only by SysVinit."
#
# $SHELL [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:837
#     [unexport] "1"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass:10
#     "bash"
# pre-expansion value:
#   "bash"
unset SHELL
#
# $SHLIBSDIRS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:1502
#     "${PKGDATA_DIR}/${MLPREFIX}shlibs2"
SHLIBSDIRS="/home/mnhu/projects/pil/yocto/tmp-glibc/pkgdata/rpi2/shlibs2"
#
# $SHLIBSWORKDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:1503
#     "${PKGDESTWORK}/${MLPREFIX}shlibs2"
SHLIBSWORKDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/pkgdata/shlibs2"
#
# $SIGGEN_EXCLUDERECIPES_ABISAFE [2 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:41
#     " sysvinit-inittab shadow-securetty opkg-arch-config netbase init-ifupdown connman-conf formfactor xserver-xf86-config pointercal-xinput base-files keymaps udev-extraconf packagegroup-x11-xserver systemd-serialgetty initscripts shadow shadow-sysroot base-passwd opkg-utils gstreamer1.0-meta-base "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:377
#     [doc] "A list of recipes that are completely stable and will never change."
# pre-expansion value:
#   "  sysvinit-inittab shadow-securetty opkg-arch-config netbase init-ifupdown connman-conf formfactor xserver-xf86-config pointercal-xinput base-files keymaps udev-extraconf packagegroup-x11-xserver systemd-serialgetty initscripts shadow shadow-sysroot base-passwd opkg-utils gstreamer1.0-meta-base "
SIGGEN_EXCLUDERECIPES_ABISAFE="  sysvinit-inittab shadow-securetty opkg-arch-config netbase init-ifupdown connman-conf formfactor xserver-xf86-config pointercal-xinput base-files keymaps udev-extraconf packagegroup-x11-xserver systemd-serialgetty initscripts shadow shadow-sysroot base-passwd opkg-utils gstreamer1.0-meta-base "
#
# $SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS [2 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/layer.conf:60
#     " gcc-cross-${TARGET_ARCH}->virtual/${TARGET_PREFIX}libc-for-gcc gcc-cross-${TARGET_ARCH}->linux-libc-headers ppp-dialin->ppp resolvconf->bash docbook-xsl-stylesheets->perl ca-certificates->openssl initramfs-framework->${VIRTUAL-RUNTIME_base-utils} initramfs-framework->systemd initramfs-framework->eudev liberation-fonts->fontconfig cantarell-fonts->fontconfig gnome-icon-theme->librsvg font-alias->font-util weston-init->weston weston-init->kbd oprofile->virtual/kernel "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:376
#     [doc] "A list of recipe dependencies that should not be used to determine signatures of tasks from one recipe when they depend on tasks from another recipe."
# pre-expansion value:
#   "  gcc-cross-${TARGET_ARCH}->virtual/${TARGET_PREFIX}libc-for-gcc gcc-cross-${TARGET_ARCH}->linux-libc-headers ppp-dialin->ppp resolvconf->bash docbook-xsl-stylesheets->perl ca-certificates->openssl initramfs-framework->${VIRTUAL-RUNTIME_base-utils} initramfs-framework->systemd initramfs-framework->eudev liberation-fonts->fontconfig cantarell-fonts->fontconfig gnome-icon-theme->librsvg font-alias->font-util weston-init->weston weston-init->kbd oprofile->virtual/kernel "
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS="  gcc-cross-arm->virtual/arm-oe-linux-gnueabi-libc-for-gcc gcc-cross-arm->linux-libc-headers ppp-dialin->ppp resolvconf->bash docbook-xsl-stylesheets->perl ca-certificates->openssl initramfs-framework->busybox initramfs-framework->systemd initramfs-framework->eudev liberation-fonts->fontconfig cantarell-fonts->fontconfig gnome-icon-theme->librsvg font-alias->font-util weston-init->weston weston-init->kbd oprofile->virtual/kernel "
#
# $SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:62
#     "error"
SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK="error"
#
# $SIGGEN_LOCKEDSIGS_TASKSIG_CHECK
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:66
#     "error"
SIGGEN_LOCKEDSIGS_TASKSIG_CHECK="error"
#
# $SITECONFIG_SYSROOTCACHE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/siteinfo.bbclass:194
#     "${STAGING_DATADIR}/${TARGET_SYS}_config_site.d"
SITECONFIG_SYSROOTCACHE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/share/arm-oe-linux-gnueabi_config_site.d"
#
# $SITEINFO_BITS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:378
#     [doc] "Specifies the number of bits for the target system CPU."
#   set siteinfo.bbclass:154 [__anon_160__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_siteinfo_bbclass]
#     "32"
# pre-expansion value:
#   "32"
SITEINFO_BITS="32"
#
# $SITEINFO_ENDIANNESS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:379
#     [doc] "Specifies the endian byte order of the target system. The value should be either 'le' for 'little-endian' or 'be' for 'big-endian'."
#   set siteinfo.bbclass:145 [__anon_160__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_siteinfo_bbclass]
#     "le"
# pre-expansion value:
#   "le"
SITEINFO_ENDIANNESS="le"
#
# $SITE_CONF_VERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/sanity.conf:13
#     "1"
SITE_CONF_VERSION="1"
#
# $SOC_FAMILY [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/soc-family.inc:2
#     [_defaultval] ""
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:4
#     "rpi"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:380
#     [doc] "Groups together machines based upon the same family of SOC (System On Chip). You typically set this variable in a common .inc file that you include in the configuration files of all the machines."
# pre-expansion value:
#   "rpi"
SOC_FAMILY="rpi"
#
# $SOLIBS [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:268
#     ".so.*"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:381
#     [doc] "Defines the suffix for shared libraries used on the target platform."
#   override[darwin]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:269
#     ".dylib"
# pre-expansion value:
#   ".so.*"
SOLIBS=".so.*"
#
# $SOLIBSDEV [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:271
#     ".so"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:382
#     [doc] "Defines the suffix for the development symbolic link (symlink) for shared libraries on the target platform."
#   override[darwin]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:275
#     ".dylibbroken"
# pre-expansion value:
#   ".so"
SOLIBSDEV=".so"
#
# $SOLIBSDEV_darwin
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:275
#     ".dylibbroken"
SOLIBSDEV_darwin=".dylibbroken"
#
# $SOLIBS_darwin
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:269
#     ".dylib"
SOLIBS_darwin=".dylib"
#
# $SORT_PASSWD_POSTPROCESS_COMMAND
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs-postcommands.bbclass:48
#     [_defaultval] " sort_passwd; "
SORT_PASSWD_POSTPROCESS_COMMAND=" sort_passwd; "
#
# $SOURCEFORGE_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:615
#     "http://downloads.sourceforge.net"
SOURCEFORGE_MIRROR="http://downloads.sourceforge.net"
#
# $SOURCE_MIRROR_FETCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:383
#     [doc] "Switch marking build as source fetcher. Used to skip COMPATIBLE_* checking."
#
# $SOURCE_MIRROR_URL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:384
#     [doc] "URL to source mirror that will be used before fetching from original SRC_URI."
#
# $SPDXLICENSEMAP [37 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:54
#     [AGPL-3] "AGPL-3.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:55
#     [AGPLv3] "AGPL-3.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:56
#     [AGPLv3.0] "AGPL-3.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:59
#     [GPL-1] "GPL-1.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:60
#     [GPLv1] "GPL-1.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:61
#     [GPLv1.0] "GPL-1.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:62
#     [GPL-2] "GPL-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:63
#     [GPLv2] "GPL-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:64
#     [GPLv2.0] "GPL-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:65
#     [GPL-3] "GPL-3.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:66
#     [GPLv3] "GPL-3.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:67
#     [GPLv3.0] "GPL-3.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:70
#     [LGPLv2] "LGPL-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:71
#     [LGPLv2.0] "LGPL-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:72
#     [LGPL2.1] "LGPL-2.1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:73
#     [LGPLv2.1] "LGPL-2.1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:74
#     [LGPLv3] "LGPL-3.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:77
#     [MPL-1] "MPL-1.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:78
#     [MPLv1] "MPL-1.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:79
#     [MPLv1.1] "MPL-1.1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:80
#     [MPLv2] "MPL-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:83
#     [MIT-X] "MIT"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:84
#     [MIT-style] "MIT"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:87
#     [openssl] "OpenSSL"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:90
#     [PSF] "Python-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:91
#     [PSFv2] "Python-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:92
#     [Python-2] "Python-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:95
#     [Apachev2] "Apache-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:96
#     [Apache-2] "Apache-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:99
#     [Artisticv1] "Artistic-1.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:100
#     [Artistic-1] "Artistic-1.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:103
#     [AFL-2] "AFL-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:104
#     [AFL-1] "AFL-1.2"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:105
#     [AFLv2] "AFL-2.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:106
#     [AFLv1] "AFL-1.2"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:109
#     [EPLv1.0] "EPL-1.0"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:112
#     [SGIv1] "SGI-1"
# pre-expansion value:
#   "None"
#
# $SPDX_MANIFEST_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:126
#     "/home/yocto/fossology_scans"
SPDX_MANIFEST_DIR="/home/yocto/fossology_scans"
#
# $SPDX_TEMP_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:125
#     "${WORKDIR}/spdx_temp"
SPDX_TEMP_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/spdx_temp"
#
# $SPDX_VERSION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:129
#     "SPDX-1.1"
SPDX_VERSION="SPDX-1.1"
#
# $SPECIAL_PKGSUFFIX [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:215
#     "-native -cross -initial -intermediate -crosssdk -cross-canadian"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:385
#     [doc] "A list of prefixes for PN used by the OpenEmbedded build system to create variants of recipes or packages. The list specifies the prefixes to strip off during certain circumstances such as the generation of the BPN variable."
# pre-expansion value:
#   "-native -cross -initial -intermediate -crosssdk -cross-canadian"
SPECIAL_PKGSUFFIX="-native -cross -initial -intermediate -crosssdk -cross-canadian"
#
# $SPLASH
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:46
#     "psplash"
SPLASH="psplash"
#
# $SPL_BINARY
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:15
#     ""
SPL_BINARY=""
#
# $SRCDATE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:650
#     "${DATE}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:388
#     [doc] "The date of the source code used to build the package. This variable applies only if the source was fetched from a Source Code Manager (SCM)."
# pre-expansion value:
#   "${DATE}"
SRCDATE="20170915"
#
# $SRCPV [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:655
#     [vardepvalue] "${SRCPV}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:389
#     [doc] "Returns the version string of the current package. This string is used to help define the value of PV."
# pre-expansion value:
#   "None"
#
# $SRCREV [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:651
#     [_defaultval] "INVALID"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:390
#     [doc] "The revision of the source code used to build the package. This variable applies to Subversion, Git, Mercurial and Bazaar only."
# pre-expansion value:
#   "INVALID"
SRCREV="INVALID"
#
# $SRC_DISTRIBUTE_LICENSES [37 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:4
#     "AAL Adobe AFL-1.2 AFL-2.0 AFL-2.1 AFL-3.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:5
#     "AGPL-3.0 ANTLR-PD Apache-1.0 Apache-1.1 Apache-2.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:6
#     "APL-1.0 APSL-1.0 APSL-1.1 APSL-1.2 APSL-2.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:7
#     "Artistic-1.0 Artistic-2.0 BitstreamVera BSD"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:8
#     "BSD-2-Clause BSD-3-Clause BSD-4-Clause BSL-1.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:9
#     "CATOSL-1.1 CC0-1.0 CC-BY-1.0 CC-BY-2.0 CC-BY-2.5"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:10
#     "CC-BY-3.0 CC-BY-NC-1.0 CC-BY-NC-2.0 CC-BY-NC-2.5"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:11
#     "CC-BY-NC-3.0 CC-BY-NC-ND-1.0 CC-BY-NC-ND-2.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:12
#     "CC-BY-NC-ND-2.5 CC-BY-NC-ND-3.0 CC-BY-NC-SA-1.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:13
#     "CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.5 CC-BY-NC-SA-3.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:14
#     "CC-BY-ND-1.0 CC-BY-ND-2.0 CC-BY-ND-2.5 CC-BY-ND-3.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:15
#     "CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:16
#     "CDDL-1.0 CECILL-1.0 CECILL-2.0 CECILL-B CECILL-C"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:17
#     "ClArtistic CPAL-1.0 CPL-1.0 CUA-OPL-1.0 DSSSL"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:18
#     "ECL-1.0 ECL-2.0 eCos-2.0 EDL-1.0 EFL-1.0 EFL-2.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:19
#     "Elfutils-Exception Entessa EPL-1.0 ErlPL-1.1"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:20
#     "EUDatagrid EUPL-1.0 EUPL-1.1 Fair Frameworx-1.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:21
#     "FreeType GFDL-1.1 GFDL-1.2 GFDL-1.3 GPL-1.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:22
#     "GPL-2.0 GPL-2.0-with-autoconf-exception"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:23
#     "GPL-2.0-with-classpath-exception"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:24
#     "GPL-2.0-with-font-exception"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:25
#     "GPL-2.0-with-GCC-exception"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:26
#     "GPL-2-with-bison-exception GPL-3.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:27
#     "GPL-3.0-with-autoconf-exception"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:28
#     "GPL-3.0-with-GCC-exception"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:29
#     "gSOAP-1 gSOAP-1.3b HPND IPA IPL-1.0 ISC LGPL-2.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:30
#     "LGPL-2.1 LGPL-3.0 Libpng LPL-1.02 LPPL-1.0 LPPL-1.1"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:31
#     "LPPL-1.2 LPPL-1.3c MirOS MIT Motosoto MPL-1.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:32
#     "MPL-1.1 MS-PL MS-RL Multics NASA-1.3 Nauman NCSA"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:33
#     "NGPL Nokia NPOSL-3.0 NTP OASIS OCLC-2.0 ODbL-1.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:34
#     "OFL-1.1 OGTSL OLDAP-2.8 OpenSSL OSL-1.0 OSL-2.0"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:35
#     "OSL-3.0 PD PHP-3.0 PostgreSQL Proprietary"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:36
#     "Python-2.0 QPL-1.0 RHeCos-1 RHeCos-1.1 RPL-1.5"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:37
#     "RPSL-1.0 RSCPL Ruby SAX-PD SGI-1 Simple-2.0 Sleepycat"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:38
#     "SPL-1.0 SugarCRM-1 SugarCRM-1.1.3 UCB VSL-1.0 W3C"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:39
#     "Watcom-1.0 WXwindows XFree86-1.0 XFree86-1.1 Xnet XSL YPL-1.1"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/licenses.conf:40
#     "Zimbra-1.3 Zlib ZPL-1.1 ZPL-2.0 ZPL-2.1"
# pre-expansion value:
#   " AAL Adobe AFL-1.2 AFL-2.0 AFL-2.1 AFL-3.0 AGPL-3.0 ANTLR-PD Apache-1.0 Apache-1.1 Apache-2.0 APL-1.0 APSL-1.0 APSL-1.1 APSL-1.2 APSL-2.0 Artistic-1.0 Artistic-2.0 BitstreamVera BSD BSD-2-Clause BSD-3-Clause BSD-4-Clause BSL-1.0 CATOSL-1.1 CC0-1.0 CC-BY-1.0 CC-BY-2.0 CC-BY-2.5 CC-BY-3.0 CC-BY-NC-1.0 CC-BY-NC-2.0 CC-BY-NC-2.5 CC-BY-NC-3.0 CC-BY-NC-ND-1.0 CC-BY-NC-ND-2.0 CC-BY-NC-ND-2.5 CC-BY-NC-ND-3.0 CC-BY-NC-SA-1.0 CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.5 CC-BY-NC-SA-3.0 CC-BY-ND-1.0 CC-BY-ND-2.0 CC-BY-ND-2.5 CC-BY-ND-3.0 CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0 CDDL-1.0 CECILL-1.0 CECILL-2.0 CECILL-B CECILL-C ClArtistic CPAL-1.0 CPL-1.0 CUA-OPL-1.0 DSSSL ECL-1.0 ECL-2.0 eCos-2.0 EDL-1.0 EFL-1.0 EFL-2.0 Elfutils-Exception Entessa EPL-1.0 ErlPL-1.1 EUDatagrid EUPL-1.0 EUPL-1.1 Fair Frameworx-1.0 FreeType GFDL-1.1 GFDL-1.2 GFDL-1.3 GPL-1.0 GPL-2.0 GPL-2.0-with-autoconf-exception GPL-2.0-with-classpath-exception GPL-2.0-with-font-exception GPL-2.0-with-GCC-exception GPL-2-with-bison-exception GPL-3.0 GPL-3.0-with-autoconf-exception GPL-3.0-with-GCC-exception gSOAP-1 gSOAP-1.3b HPND IPA IPL-1.0 ISC LGPL-2.0 LGPL-2.1 LGPL-3.0 Libpng LPL-1.02 LPPL-1.0 LPPL-1.1 LPPL-1.2 LPPL-1.3c MirOS MIT Motosoto MPL-1.0 MPL-1.1 MS-PL MS-RL Multics NASA-1.3 Nauman NCSA NGPL Nokia NPOSL-3.0 NTP OASIS OCLC-2.0 ODbL-1.0 OFL-1.1 OGTSL OLDAP-2.8 OpenSSL OSL-1.0 OSL-2.0 OSL-3.0 PD PHP-3.0 PostgreSQL Proprietary Python-2.0 QPL-1.0 RHeCos-1 RHeCos-1.1 RPL-1.5 RPSL-1.0 RSCPL Ruby SAX-PD SGI-1 Simple-2.0 Sleepycat SPL-1.0 SugarCRM-1 SugarCRM-1.1.3 UCB VSL-1.0 W3C Watcom-1.0 WXwindows XFree86-1.0 XFree86-1.1 Xnet XSL YPL-1.1 Zimbra-1.3 Zlib ZPL-1.1 ZPL-2.0 ZPL-2.1"
SRC_DISTRIBUTE_LICENSES=" AAL Adobe AFL-1.2 AFL-2.0 AFL-2.1 AFL-3.0 AGPL-3.0 ANTLR-PD Apache-1.0 Apache-1.1 Apache-2.0 APL-1.0 APSL-1.0 APSL-1.1 APSL-1.2 APSL-2.0 Artistic-1.0 Artistic-2.0 BitstreamVera BSD BSD-2-Clause BSD-3-Clause BSD-4-Clause BSL-1.0 CATOSL-1.1 CC0-1.0 CC-BY-1.0 CC-BY-2.0 CC-BY-2.5 CC-BY-3.0 CC-BY-NC-1.0 CC-BY-NC-2.0 CC-BY-NC-2.5 CC-BY-NC-3.0 CC-BY-NC-ND-1.0 CC-BY-NC-ND-2.0 CC-BY-NC-ND-2.5 CC-BY-NC-ND-3.0 CC-BY-NC-SA-1.0 CC-BY-NC-SA-2.0 CC-BY-NC-SA-2.5 CC-BY-NC-SA-3.0 CC-BY-ND-1.0 CC-BY-ND-2.0 CC-BY-ND-2.5 CC-BY-ND-3.0 CC-BY-SA-1.0 CC-BY-SA-2.0 CC-BY-SA-2.5 CC-BY-SA-3.0 CDDL-1.0 CECILL-1.0 CECILL-2.0 CECILL-B CECILL-C ClArtistic CPAL-1.0 CPL-1.0 CUA-OPL-1.0 DSSSL ECL-1.0 ECL-2.0 eCos-2.0 EDL-1.0 EFL-1.0 EFL-2.0 Elfutils-Exception Entessa EPL-1.0 ErlPL-1.1 EUDatagrid EUPL-1.0 EUPL-1.1 Fair Frameworx-1.0 FreeType GFDL-1.1 GFDL-1.2 GFDL-1.3 GPL-1.0 GPL-2.0 GPL-2.0-with-autoconf-exception GPL-2.0-with-classpath-exception GPL-2.0-with-font-exception GPL-2.0-with-GCC-exception GPL-2-with-bison-exception GPL-3.0 GPL-3.0-with-autoconf-exception GPL-3.0-with-GCC-exception gSOAP-1 gSOAP-1.3b HPND IPA IPL-1.0 ISC LGPL-2.0 LGPL-2.1 LGPL-3.0 Libpng LPL-1.02 LPPL-1.0 LPPL-1.1 LPPL-1.2 LPPL-1.3c MirOS MIT Motosoto MPL-1.0 MPL-1.1 MS-PL MS-RL Multics NASA-1.3 Nauman NCSA NGPL Nokia NPOSL-3.0 NTP OASIS OCLC-2.0 ODbL-1.0 OFL-1.1 OGTSL OLDAP-2.8 OpenSSL OSL-1.0 OSL-2.0 OSL-3.0 PD PHP-3.0 PostgreSQL Proprietary Python-2.0 QPL-1.0 RHeCos-1 RHeCos-1.1 RPL-1.5 RPSL-1.0 RSCPL Ruby SAX-PD SGI-1 Simple-2.0 Sleepycat SPL-1.0 SugarCRM-1 SugarCRM-1.1.3 UCB VSL-1.0 W3C Watcom-1.0 WXwindows XFree86-1.0 XFree86-1.1 Xnet XSL YPL-1.1 Zimbra-1.3 Zlib ZPL-1.1 ZPL-2.0 ZPL-2.1"
#
# $SRC_URI [3 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:638
#     [vardepsexclude] "APACHE_MIRROR CPAN_MIRROR DEBIAN_MIRROR GENTOO_MIRROR GNOME_GIT GNOME_MIRROR GNU_MIRROR GNUPG_MIRROR GPE_MIRROR KERNELORG_MIRROR SAVANNAH_GNU_MIRROR SAVANNAH_NONGNU_MIRROR SOURCEFORGE_MIRROR XLIBS_MIRROR XORG_MIRROR "
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:657
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:386
#     [doc] "The list of source files - local or remote. This variable tells the OpenEmbedded build system what bits to pull in for the build and how to pull them in."
# pre-expansion value:
#   ""
SRC_URI=""
#
# $SRC_URI_OVERRIDES_PACKAGE_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:387
#     [doc] "By default, the OpenEmbedded build system automatically detects whether SRC_URI contains files that are machine-specific. If so, the build system automatically changes PACKAGE_ARCH. Setting this variable to '0' disables this behavior."
#
# $SSH_DISABLE_DNS_LOOKUP
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs-postcommands.bbclass:33
#     " ssh_disable_dns_lookup ; "
SSH_DISABLE_DNS_LOOKUP=" ssh_disable_dns_lookup ; "
#
# $SSTATECLEANFUNCS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:58
#     ""
SSTATECLEANFUNCS=""
#
# $SSTATECREATEFUNCS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:52
#     "sstate_hardcode_path"
SSTATECREATEFUNCS="sstate_hardcode_path"
#
# $SSTATEPOSTCREATEFUNCS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:53
#     ""
SSTATEPOSTCREATEFUNCS=""
#
# $SSTATEPOSTINSTFUNCS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:56
#     ""
SSTATEPOSTINSTFUNCS=""
#
# $SSTATEPOSTUNPACKFUNCS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:55
#     "sstate_hardcode_path_unpack"
SSTATEPOSTUNPACKFUNCS="sstate_hardcode_path_unpack"
#
# $SSTATEPREINSTFUNCS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:54
#     ""
SSTATEPREINSTFUNCS=""
#
# $SSTATETASKS [11 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:201
#     "do_populate_sysroot"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:1193
#     "do_package_qa"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:2149
#     "do_package"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package.bbclass:2166
#     "do_packagedata"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/package_ipk.bbclass:246
#     "do_package_write_ipk"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/license.bbclass:678
#     "do_populate_lic"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass:2
#     "do_deploy"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:122
#     "do_populate_sdk"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:681
#     "do_populate_sdk_ext"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:299
#     "do_image_complete"
#   set sstate.bbclass:98 [__anon_101__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_sstate_bbclass]
#     "do_deploy do_image_complete do_package do_package_qa do_package_write_ipk do_packagedata do_populate_lic do_populate_sdk do_populate_sdk_ext do_populate_sysroot"
# pre-expansion value:
#   "do_deploy do_image_complete do_package do_package_qa do_package_write_ipk do_packagedata do_populate_lic do_populate_sdk do_populate_sdk_ext do_populate_sysroot"
SSTATETASKS="do_deploy do_image_complete do_package do_package_qa do_package_write_ipk do_packagedata do_populate_lic do_populate_sdk do_populate_sdk_ext do_populate_sysroot"
#
# $SSTATE_ARCHS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:48
#     "     ${BUILD_ARCH}     ${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS}     ${BUILD_ARCH}_${TARGET_ARCH}     ${SDK_ARCH}_${SDK_OS}     ${SDK_ARCH}_${PACKAGE_ARCH}     allarch     ${PACKAGE_ARCH}     ${MACHINE}"
SSTATE_ARCHS="     x86_64     x86_64_x86_64_linux     x86_64_arm     x86_64_linux     x86_64_rpi2     allarch     rpi2     rpi2"
#
# $SSTATE_DIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:391
#     [doc] "The directory for the shared state cache."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:749
#     "${TOPDIR}/sstate-cache"
# pre-expansion value:
#   "${TOPDIR}/sstate-cache"
SSTATE_DIR="/home/mnhu/projects/pil/yocto/sstate-cache"
#
# $SSTATE_DUPWHITELIST [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:28
#     "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/ ${DEPLOY_DIR_RPM}/noarch/"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:30
#     "${STAGING_ETCDIR_NATIVE}/sgml ${STAGING_DATADIR_NATIVE}/sgml"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:32
#     "${DEPLOY_DIR_SRC}"
# pre-expansion value:
#   "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/ ${DEPLOY_DIR_RPM}/noarch/ ${STAGING_ETCDIR_NATIVE}/sgml ${STAGING_DATADIR_NATIVE}/sgml ${DEPLOY_DIR_SRC}"
SSTATE_DUPWHITELIST="/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/images/rpi2/ /home/mnhu/projects/pil/yocto/tmp-glibc/deploy/licenses/ /home/mnhu/projects/pil/yocto/tmp-glibc/deploy/rpm/noarch/ /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/etc/sgml /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/share/sgml \${DEPLOY_DIR_SRC}"
#
# $SSTATE_EXTRAPATH [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:16
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:25
#     [vardepvalue] ""
# pre-expansion value:
#   ""
SSTATE_EXTRAPATH=""
#
# $SSTATE_EXTRAPATHWILDCARD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:17
#     ""
SSTATE_EXTRAPATHWILDCARD=""
#
# $SSTATE_MANFILEPREFIX
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:4
#     "${SSTATE_MANIFESTS}/manifest-${SSTATE_MANMACH}-${PN}"
SSTATE_MANFILEPREFIX="/home/mnhu/projects/pil/yocto/tmp-glibc/sstate-control/manifest-rpi2-rescue-rootfs"
#
# $SSTATE_MANIFESTS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:3
#     "${TMPDIR}/sstate-control"
SSTATE_MANIFESTS="/home/mnhu/projects/pil/yocto/tmp-glibc/sstate-control"
#
# $SSTATE_MANMACH [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:50
#     "${SSTATE_PKGARCH}"
#   set sstate.bbclass:90 [__anon_101__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_sstate_bbclass]
#     "rpi2"
# pre-expansion value:
#   "rpi2"
SSTATE_MANMACH="rpi2"
#
# $SSTATE_MIRRORS [2 operations]
#   set? /home/mnhu/projects/pil/yocto/conf/local.conf:25
#     "file://.* http://172.16.10.37/prebakes/yocto/PATH"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:392
#     [doc] "Configures the OpenEmbedded build system to search other mirror locations for prebuilt cache data objects before building out the data. You can specify a filesystem directory or a remote URL such as HTTP or FTP."
# pre-expansion value:
#   "file://.* http://172.16.10.37/prebakes/yocto/PATH"
SSTATE_MIRRORS="file://.* http://172.16.10.37/prebakes/yocto/PATH"
#
# $SSTATE_PATHSPEC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:18
#     "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/${SSTATE_PKGSPEC}"
SSTATE_PATHSPEC="/home/mnhu/projects/pil/yocto/sstate-cache/*/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:"
#
# $SSTATE_PKG
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:15
#     "${SSTATE_DIR}/${SSTATE_PKGNAME}"
SSTATE_PKG="/home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID"
#
# $SSTATE_PKGARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:11
#     "${PACKAGE_ARCH}"
SSTATE_PKGARCH="rpi2"
#
# $SSTATE_PKGNAME
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:14
#     "${SSTATE_EXTRAPATH}${@generate_sstatefn(d.getVar('SSTATE_PKGSPEC'), d.getVar('BB_TASKHASH'), d)}"
SSTATE_PKGNAME="IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID"
#
# $SSTATE_PKGSPEC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:12
#     "sstate:${PN}:${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}:${PV}:${PR}:${SSTATE_PKGARCH}:${SSTATE_VERSION}:"
SSTATE_PKGSPEC="sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:"
#
# $SSTATE_PRUNE_OBSOLETEWORKDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:1006
#     "1"
SSTATE_PRUNE_OBSOLETEWORKDIR="1"
#
# $SSTATE_SCAN_CMD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:35
#     [_defaultval] "find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES").split())}" \) -type f"
SSTATE_SCAN_CMD="find \${SSTATE_BUILDDIR} \( -name \"*.la\" -o -name \"*-config\" -o -name \"*_config\" -o -name \"postinst-*\" \) -type f"
#
# $SSTATE_SCAN_CMD_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:36
#     [_defaultval] "grep -Irl -e ${RECIPE_SYSROOT} -e ${RECIPE_SYSROOT_NATIVE} -e ${HOSTTOOLS_DIR} ${SSTATE_BUILDDIR}"
SSTATE_SCAN_CMD_NATIVE="grep -Irl -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native -e /home/mnhu/projects/pil/yocto/tmp-glibc/hosttools \${SSTATE_BUILDDIR}"
#
# $SSTATE_SCAN_FILES
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:34
#     "*.la *-config *_config postinst-*"
SSTATE_SCAN_FILES="*.la *-config *_config postinst-*"
#
# $SSTATE_SIG_KEY
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:70
#     ""
SSTATE_SIG_KEY=""
#
# $SSTATE_SIG_PASSPHRASE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:71
#     ""
SSTATE_SIG_PASSPHRASE=""
#
# $SSTATE_SKIP_CREATION_task-image-complete
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:300
#     "1"
SSTATE_SKIP_CREATION_task-image-complete="1"
#
# $SSTATE_SKIP_CREATION_task-populate-sdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:123
#     "1"
SSTATE_SKIP_CREATION_task-populate-sdk="1"
#
# $SSTATE_SKIP_CREATION_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:682
#     "1"
SSTATE_SKIP_CREATION_task-populate-sdk-ext="1"
#
# $SSTATE_SWSPEC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:13
#     "sstate:${PN}::${PV}:${PR}::${SSTATE_VERSION}:"
SSTATE_SWSPEC="sstate:rescue-rootfs::1.0:r0::3:"
#
# $SSTATE_VERIFY_SIG
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:73
#     "0"
SSTATE_VERIFY_SIG="0"
#
# $SSTATE_VERSION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/sstate.bbclass:1
#     "3"
SSTATE_VERSION="3"
#
# $STAGING_BASELIBDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:374
#     "${STAGING_DIR_HOST}${base_libdir}"
STAGING_BASELIBDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/lib"
#
# $STAGING_BASE_LIBDIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:364
#     "${STAGING_DIR_NATIVE}${base_libdir_native}"
STAGING_BASE_LIBDIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/lib"
#
# $STAGING_BINDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:371
#     "${STAGING_DIR_HOST}${bindir}"
STAGING_BINDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/bin"
#
# $STAGING_BINDIR_CROSS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:360
#     "${STAGING_BINDIR}/crossscripts"
STAGING_BINDIR_CROSS="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/bin/crossscripts"
#
# $STAGING_BINDIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:359
#     "${STAGING_DIR_NATIVE}${bindir_native}"
STAGING_BINDIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/bin"
#
# $STAGING_BINDIR_TOOLCHAIN
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:361
#     "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
STAGING_BINDIR_TOOLCHAIN="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi"
#
# $STAGING_DATADIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:376
#     "${STAGING_DIR_HOST}${datadir}"
STAGING_DATADIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/share"
#
# $STAGING_DATADIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:368
#     "${STAGING_DIR_NATIVE}${datadir_native}"
STAGING_DATADIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/share"
#
# $STAGING_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:353
#     "${TMPDIR}/sysroots"
STAGING_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots"
#
# $STAGING_DIR_HOST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:370
#     "${RECIPE_SYSROOT}"
STAGING_DIR_HOST="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $STAGING_DIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:358
#     "${RECIPE_SYSROOT_NATIVE}"
STAGING_DIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native"
#
# $STAGING_DIR_TARGET
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:381
#     "${RECIPE_SYSROOT}"
STAGING_DIR_TARGET="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $STAGING_ETCDIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:367
#     "${STAGING_DIR_NATIVE}${sysconfdir_native}"
STAGING_ETCDIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/etc"
#
# $STAGING_EXECPREFIXDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:377
#     "${STAGING_DIR_HOST}${exec_prefix}"
STAGING_EXECPREFIXDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr"
#
# $STAGING_FIRMWARE_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:379
#     "${STAGING_DIR_HOST}/firmware"
STAGING_FIRMWARE_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/firmware"
#
# $STAGING_INCDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:375
#     "${STAGING_DIR_HOST}${includedir}"
STAGING_INCDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/include"
#
# $STAGING_INCDIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:366
#     "${STAGING_DIR_NATIVE}${includedir_native}"
STAGING_INCDIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/include"
#
# $STAGING_KERNEL_BUILDDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:422
#     "${TMPDIR}/work-shared/${MACHINE}/kernel-build-artifacts"
STAGING_KERNEL_BUILDDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work-shared/rpi2/kernel-build-artifacts"
#
# $STAGING_KERNEL_DIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:421
#     "${TMPDIR}/work-shared/${MACHINE}/kernel-source"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:393
#     [doc] "The directory with kernel headers that are required to build out-of-tree modules."
# pre-expansion value:
#   "${TMPDIR}/work-shared/${MACHINE}/kernel-source"
STAGING_KERNEL_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work-shared/rpi2/kernel-source"
#
# $STAGING_LIBDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:372
#     "${STAGING_DIR_HOST}${libdir}"
STAGING_LIBDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib"
#
# $STAGING_LIBDIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:362
#     "${STAGING_DIR_NATIVE}${libdir_native}"
STAGING_LIBDIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/lib"
#
# $STAGING_LIBEXECDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:373
#     "${STAGING_DIR_HOST}${libexecdir}"
STAGING_LIBEXECDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/libexec"
#
# $STAGING_LIBEXECDIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:363
#     "${STAGING_DIR_NATIVE}${libexecdir_native}"
STAGING_LIBEXECDIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/libexec"
#
# $STAGING_LOADER_DIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:378
#     "${STAGING_DIR_HOST}/loader"
STAGING_LOADER_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/loader"
#
# $STAGING_SBINDIR_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:365
#     "${STAGING_DIR_NATIVE}${sbindir_native}"
STAGING_SBINDIR_NATIVE="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/sbin"
#
# $STAMP [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:344
#     "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:394
#     [doc] "Specifies the base path used to create recipe stamp files. The path to an actual stamp file is constructed by evaluating this string and then appending additional information."
# pre-expansion value:
#   "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
STAMP="/home/mnhu/projects/pil/yocto/tmp-glibc/stamps/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0"
#
# $STAMPCLEAN
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:345
#     "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*"
STAMPCLEAN="/home/mnhu/projects/pil/yocto/tmp-glibc/stamps/rpi2-oe-linux-gnueabi/rescue-rootfs/*-*"
#
# $STAMPS_DIR [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:343
#     "${TMPDIR}/stamps"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:395
#     [doc] "Specifies the base directory in which the OpenEmbedded build system places stamps."
# pre-expansion value:
#   "${TMPDIR}/stamps"
STAMPS_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/stamps"
#
# $STRINGS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:506
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:506
#     "${HOST_PREFIX}strings"
# pre-expansion value:
#   "${HOST_PREFIX}strings"
export STRINGS="arm-oe-linux-gnueabi-strings"
#
# $STRIP [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:503
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:503
#     "${HOST_PREFIX}strip"
# pre-expansion value:
#   "${HOST_PREFIX}strip"
export STRIP="arm-oe-linux-gnueabi-strip"
#
# $SUMMARY [7 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:223
#     "${PN} version ${PV}-${PR}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:396
#     [doc] "The short (80 characters or less) summary of the binary package for packaging systems such as opkg, rpm or dpkg. By default, SUMMARY is used to define the DESCRIPTION variable if DESCRIPTION is not set in the recipe."
#   set /home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems/rescue-rootfs.bb:1
#     "PIL rescue-rootfs"
#   override[rescue-rootfs-dbg]:rename from SUMMARY_${PN}-dbg data.py:116 [expandKeys]
#     "${SUMMARY} - Debugging files"
#   override[rescue-rootfs-dev]:rename from SUMMARY_${PN}-dev data.py:116 [expandKeys]
#     "${SUMMARY} - Development files"
#   override[rescue-rootfs-doc]:rename from SUMMARY_${PN}-doc data.py:116 [expandKeys]
#     "${SUMMARY} - Documentation files"
#   override[rescue-rootfs-staticdev]:rename from SUMMARY_${PN}-staticdev data.py:116 [expandKeys]
#     "${SUMMARY} - Development files (Static Libraries)"
# pre-expansion value:
#   "PIL rescue-rootfs"
SUMMARY="PIL rescue-rootfs"
#
# $SUMMARY_rescue-rootfs-dbg
#   rename from SUMMARY_${PN}-dbg data.py:116 [expandKeys]
#     "${SUMMARY} - Debugging files"
SUMMARY_rescue-rootfs-dbg="PIL rescue-rootfs - Debugging files"
#
# $SUMMARY_rescue-rootfs-dev
#   rename from SUMMARY_${PN}-dev data.py:116 [expandKeys]
#     "${SUMMARY} - Development files"
SUMMARY_rescue-rootfs-dev="PIL rescue-rootfs - Development files"
#
# $SUMMARY_rescue-rootfs-doc
#   rename from SUMMARY_${PN}-doc data.py:116 [expandKeys]
#     "${SUMMARY} - Documentation files"
SUMMARY_rescue-rootfs-doc="PIL rescue-rootfs - Documentation files"
#
# $SUMMARY_rescue-rootfs-staticdev
#   rename from SUMMARY_${PN}-staticdev data.py:116 [expandKeys]
#     "${SUMMARY} - Development files (Static Libraries)"
SUMMARY_rescue-rootfs-staticdev="PIL rescue-rootfs - Development files (Static Libraries)"
#
# $SVNDIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:338
#     "${CO_DIR}/svn"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:397
#     [doc] "The directory where Subversion checkouts will be stored."
# pre-expansion value:
#   "${CO_DIR}/svn"
SVNDIR="/home/mnhu/projects/pil/yocto/downloads/svn"
#
# $SYSLINUX_DEFAULT_CONSOLE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:398
#     [doc] "Specifies the kernel boot default console."
#
# $SYSLINUX_OPTS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:399
#     [doc] "Lists additional options to add to the syslinux file."
#
# $SYSLINUX_SERIAL
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:400
#     [doc] "Specifies the alternate serial port or turns it off."
#
# $SYSLINUX_SERIAL_TTY
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:402
#     [doc] "Specifies the alternate console=tty... kernel boot argument."
#
# $SYSLINUX_SPLASH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:401
#     [doc] "An .LSS file used as the background for the VGA boot menu when you are using the boot menu."
#
# $SYSROOT_DESTDIR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:174
#     "${WORKDIR}/sysroot-destdir"
SYSROOT_DESTDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sysroot-destdir"
#
# $SYSROOT_DIRS [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:8
#     "     ${includedir}     ${libdir}     ${base_libdir}     ${nonarch_base_libdir}     ${datadir} "
#   _append[class-native] /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:21
#     " ${SYSROOT_DIRS_NATIVE}"
#   _append[class-cross] /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:22
#     " ${SYSROOT_DIRS_NATIVE}"
#   _append[class-crosssdk] /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:23
#     " ${SYSROOT_DIRS_NATIVE}"
# pre-expansion value:
#   "     ${includedir}     ${libdir}     ${base_libdir}     ${nonarch_base_libdir}     ${datadir} "
SYSROOT_DIRS="     /usr/include     /usr/lib     /lib     /lib     /usr/share "
#
# $SYSROOT_DIRS_BLACKLIST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:35
#     "     ${mandir}     ${docdir}     ${infodir}     ${datadir}/locale     ${datadir}/applications     ${datadir}/fonts     ${datadir}/pixmaps     ${libdir}/${PN}/ptest "
SYSROOT_DIRS_BLACKLIST="     /usr/share/man     /usr/share/doc     /usr/share/info     /usr/share/locale     /usr/share/applications     /usr/share/fonts     /usr/share/pixmaps     /usr/lib/rescue-rootfs/ptest "
#
# $SYSROOT_DIRS_NATIVE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:20
#     "     ${bindir}     ${sbindir}     ${base_bindir}     ${base_sbindir}     ${libexecdir}     ${sysconfdir}     ${localstatedir} "
SYSROOT_DIRS_NATIVE="     /usr/bin     /usr/sbin     /bin     /sbin     /usr/libexec     /etc     /var "
#
# $SYSROOT_PREPROCESS_FUNCS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:403
#     [doc] "A list of functions to execute after files are staged into the sysroot. These functions are usually used to apply additional processing on the staged files, or to stage additional files."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/staging.bbclass:173
#     ""
# pre-expansion value:
#   ""
SYSROOT_PREPROCESS_FUNCS=""
#
# $SYSTEMD_AUTO_ENABLE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:404
#     [doc] "For recipes that inherit the systemd class, this variable specifies whether the service you have specified in SYSTEMD_SERVICE should be started automatically or not."
#
# $SYSTEMD_DEFAULT_TARGET
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/rootfs-postcommands.bbclass:26
#     "${@bb.utils.contains("IMAGE_FEATURES", "x11-base", "graphical.target", "multi-user.target", d)}"
SYSTEMD_DEFAULT_TARGET="multi-user.target"
#
# $SYSTEMD_PACKAGES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:405
#     [doc] "For recipes that inherit the systemd class, this variable locates the systemd unit files when they are not found in the main recipe's package."
#
# $SYSTEMD_SERVICE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:406
#     [doc] "For recipes that inherit the systemd class, this variable specifies the systemd service name for a package."
#
# $SYSVINIT_ENABLED_GETTYS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:407
#     [doc] "Specifies which virtual terminals should be running a getty, the default is '1'."
#
# $T [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:348
#     "${WORKDIR}/temp"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:411
#     [doc] "This variable points to a directory were BitBake places temporary files, which consist mostly of task logs and scripts, when building a particular recipe."
#   override[task-clean]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utility-tasks.bbclass:22
#     "${LOG_DIR}/cleanlogs/${PN}"
# pre-expansion value:
#   "${WORKDIR}/temp"
T="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp"
#
# $TARGET_ARCH [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:123
#     "${TUNE_ARCH}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:412
#     [doc] "The architecture of the device being built. The OpenEmbedded build system supports the following architectures: arm, mips, ppc, x86, x86-64."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:828
#     [unexport] "1"
# pre-expansion value:
#   "${TUNE_ARCH}"
unset TARGET_ARCH
#
# $TARGET_AR_KERNEL_ARCH
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:56
#     ""
TARGET_AR_KERNEL_ARCH=""
#
# $TARGET_AS_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:130
#     "${TUNE_ASARGS}"
TARGET_AS_ARCH=""
#
# $TARGET_CC_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:128
#     "${TUNE_CCARGS}"
TARGET_CC_ARCH=" -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7"
#
# $TARGET_CC_KERNEL_ARCH [2 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc:30
#     "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork -marm', '', d)}"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:52
#     ""
# pre-expansion value:
#   " ${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork -marm', '', d)}"
TARGET_CC_KERNEL_ARCH=" -mno-thumb-interwork -marm"
#
# $TARGET_CFLAGS [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:546
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:546
#     "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:413
#     [doc] "Flags passed to the C compiler for the target system. This variable evaluates to the same as CFLAGS."
# pre-expansion value:
#   "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}"
export TARGET_CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
#
# $TARGET_CPPFLAGS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:541
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:541
#     ""
# pre-expansion value:
#   ""
export TARGET_CPPFLAGS=""
#
# $TARGET_CXXFLAGS [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:550
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:550
#     "${TARGET_CFLAGS}"
# pre-expansion value:
#   "${TARGET_CFLAGS}"
export TARGET_CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
#
# $TARGET_FPU [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:16
#     "${@d.getVar('TUNE_CCARGS_MFLOAT') or 'soft'}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:414
#     [doc] "Specifies the method for handling FPU code. For FPU-less targets, which include most ARM CPUs, the variable must be set to 'soft'. If not, the kernel emulation gets used, which results in a performance penalty."
# pre-expansion value:
#   "${@d.getVar('TUNE_CCARGS_MFLOAT') or 'soft'}"
TARGET_FPU="hard"
#
# $TARGET_LDFLAGS [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:569
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:569
#     "-Wl,-O1 ${TARGET_LINK_HASH_STYLE}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/as-needed.inc:14
#     "${ASNEEDED}"
# pre-expansion value:
#   "-Wl,-O1 ${TARGET_LINK_HASH_STYLE} ${ASNEEDED}"
export TARGET_LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
#
# $TARGET_LD_ARCH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:129
#     "${TUNE_LDARGS}"
TARGET_LD_ARCH=""
#
# $TARGET_LD_KERNEL_ARCH [2 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:12
#     "${FIX_V4BX}"
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:54
#     ""
# pre-expansion value:
#   " ${FIX_V4BX}"
TARGET_LD_KERNEL_ARCH=" "
#
# $TARGET_LINK_HASH_STYLE
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:566
#     "${@['-Wl,--hash-style=gnu',''][d.getVar('LINKER_HASH_STYLE') != 'gnu']}"
TARGET_LINK_HASH_STYLE="-Wl,--hash-style=gnu"
#
# $TARGET_OS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:124
#     "linux${LIBCEXTENSION}${ABIEXTENSION}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:415
#     [doc] "Specifies the target's operating system."
# pre-expansion value:
#   "linux${LIBCEXTENSION}${ABIEXTENSION}"
TARGET_OS="linux-gnueabi"
#
# $TARGET_PREFIX [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:127
#     "${TARGET_SYS}-"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:416
#     [doc] "The prefix for the cross-compile toolchain (e.g. arm-linux-)."
# pre-expansion value:
#   "${TARGET_SYS}-"
TARGET_PREFIX="arm-oe-linux-gnueabi-"
#
# $TARGET_SYS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:126
#     "${TARGET_ARCH}${TARGET_VENDOR}${@['-' + d.getVar('TARGET_OS'), ''][d.getVar('TARGET_OS') == ('' or 'custom')]}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:417
#     [doc] "The target system is comprised of TARGET_ARCH,TARGET_VENDOR and TARGET_OS."
# pre-expansion value:
#   "${TARGET_ARCH}${TARGET_VENDOR}${@['-' + d.getVar('TARGET_OS'), ''][d.getVar('TARGET_OS') == ('' or 'custom')]}"
TARGET_SYS="arm-oe-linux-gnueabi"
#
# $TARGET_VENDOR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:125
#     "-oe"
TARGET_VENDOR="-oe"
#
# $TCLIBC [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:9
#     "glibc"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:418
#     [doc] "Specifies C library (libc) variant to use during the build process. You can select 'baremetal', 'glibc' or 'musl'."
# pre-expansion value:
#   "glibc"
TCLIBC="glibc"
#
# $TCLIBCAPPEND
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:15
#     "-${TCLIBC}"
TCLIBCAPPEND="-glibc"
#
# $TCMODE [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:6
#     "default"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:419
#     [doc] "Enables an external toolchain (where provided by an additional layer) if set to a value other than 'default'."
# pre-expansion value:
#   "default"
TCMODE="default"
#
# $TERM [2 operations]
#   from env data.py:124 [inheritFromOS]
#     "screen"
#   auto env export data.py:126 [inheritFromOS]
#     [export] "True"
# pre-expansion value:
#   "screen"
export TERM="screen"
#
# $TESTIMAGECLASS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:20
#     "${@base_conditional('TEST_IMAGE', '1', 'testimage-auto', '', d)}"
TESTIMAGECLASS=""
#
# $TEST_IMAGE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:420
#     [doc] "Enables test booting of virtual machine images under the QEMU emulator after any root filesystems are created and runs tests against those images."
#
# $TEST_POWERCONTROL_CMD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:423
#     [doc] "For automated hardware testing, specifies the command to use to control the power of the target machine under test"
#
# $TEST_POWERCONTROL_EXTRA_ARGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:424
#     [doc] "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_POWERCONTROL_CMD"
#
# $TEST_QEMUBOOT_TIMEOUT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:421
#     [doc] "The time in seconds allowed for an image to boot before automated runtime tests begin to run against an image."
#
# $TEST_SERIALCONTROL_CMD
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:425
#     [doc] "For automated hardware testing, specifies the command to use to connect to the serial console of the target machine under test"
#
# $TEST_SERIALCONTROL_EXTRA_ARGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:426
#     [doc] "For automated hardware testing, specifies additional arguments to pass through to the command specified in TEST_SERIALCONTROL_CMD"
#
# $TEST_SUITES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:422
#     [doc] "An ordered list of tests (modules) to run against an image when performing automated runtime testing."
#
# $TEST_TARGET
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:427
#     [doc] "For automated runtime testing, specifies the method of deploying the image and running tests on the target machine"
#
# $THISDIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:428
#     [doc] "The directory in which the file BitBake is currently parsing is located."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/base.bbclass:86
#     "${@os.path.dirname(d.getVar('FILE'))}"
# pre-expansion value:
#   "${@os.path.dirname(d.getVar('FILE'))}"
THISDIR="/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems"
#
# $TIME [2 operations]
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:159
#     "${@time.strftime('%H%M%S',time.gmtime())}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:429
#     [doc] "The time the build was started using HMS format."
# pre-expansion value:
#   "073224"
TIME="073224"
#
# $TMPDIR [4 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:331
#     "${TOPDIR}/tmp"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:16
#     "${TCLIBCAPPEND}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:430
#     [doc] "The temporary directory the OpenEmbedded build system uses when it does its work building images. By default, the TMPDIR variable is named tmp within the Build Directory."
#   set cache.py:299 [parse_recipe]
#     "/home/mnhu/projects/pil/yocto/tmp-glibc"
# pre-expansion value:
#   "/home/mnhu/projects/pil/yocto/tmp-glibc"
TMPDIR="/home/mnhu/projects/pil/yocto/tmp-glibc"
#
# $TOOLCHAIN
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:62
#     "gcc"
TOOLCHAIN="gcc"
#
# $TOOLCHAINEXT_OUTPUTNAME
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:80
#     "${SDK_NAME}-toolchain-ext-${SDK_VERSION}"
TOOLCHAINEXT_OUTPUTNAME="oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-ext-nodistro.0"
#
# $TOOLCHAIN_HOST_TASK [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:431
#     [doc] "This variable lists packages the OpenEmbedded build system uses when building an SDK, which contains a cross-development environment."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:35
#     "nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-${MACHINE}"
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:10
#     "     meta-environment-extsdk-${MACHINE}     "
# pre-expansion value:
#   "nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-${MACHINE}"
TOOLCHAIN_HOST_TASK="nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-rpi2"
#
# $TOOLCHAIN_HOST_TASK_ATTEMPTONLY
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:36
#     ""
TOOLCHAIN_HOST_TASK_ATTEMPTONLY=""
#
# $TOOLCHAIN_HOST_TASK_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:10
#     "     meta-environment-extsdk-${MACHINE}     "
TOOLCHAIN_HOST_TASK_task-populate-sdk-ext="     meta-environment-extsdk-rpi2     "
#
# $TOOLCHAIN_OPTIONS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:492
#     " --sysroot=${STAGING_DIR_TARGET}"
TOOLCHAIN_OPTIONS=" --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
#
# $TOOLCHAIN_OUTPUTNAME [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:39
#     "${SDK_NAME}-toolchain-${SDK_VERSION}"
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:81
#     "${TOOLCHAINEXT_OUTPUTNAME}"
# pre-expansion value:
#   "${SDK_NAME}-toolchain-${SDK_VERSION}"
TOOLCHAIN_OUTPUTNAME="oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0"
#
# $TOOLCHAIN_OUTPUTNAME_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:81
#     "${TOOLCHAINEXT_OUTPUTNAME}"
TOOLCHAIN_OUTPUTNAME_task-populate-sdk-ext="oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-ext-nodistro.0"
#
# $TOOLCHAIN_TARGET_TASK [4 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:432
#     [doc] "This variable lists packages the OpenEmbedded build system uses when it creates the target part of an SDK, which includes libraries and headers."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:37
#     "${@multilib_pkg_extend(d, 'packagegroup-core-standalone-sdk-target')}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:8
#     "${PACKAGE_INSTALL}"
#   override[task-populate-sdk-ext]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:12
#     ""
# pre-expansion value:
#   "${@multilib_pkg_extend(d, 'packagegroup-core-standalone-sdk-target')} ${PACKAGE_INSTALL}"
TOOLCHAIN_TARGET_TASK="packagegroup-core-standalone-sdk-target  		 packagegroup-core-boot 		 packagegroup-core-ssh-openssh 		 e2fsprogs 		 e2fsprogs-tune2fs 		 dosfstools 		 mtd-utils mtd-utils-jffs2 mtd-utils-misc 		 u-boot-fw-utils 		  		 busybox-syslog 		 busybox-watchdog 		 busybox-ifplugd 		 dhcp-client 		 openssh-sftp-server 		 openssh-sftp 		 rauc 		 dbus 		 system-init 		       rescue-init  run-postinsts  base-passwd shadow"
#
# $TOOLCHAIN_TARGET_TASK_ATTEMPTONLY [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_base.bbclass:38
#     ""
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:9
#     "${PACKAGE_INSTALL_ATTEMPTONLY}"
# pre-expansion value:
#   " ${PACKAGE_INSTALL_ATTEMPTONLY}"
TOOLCHAIN_TARGET_TASK_ATTEMPTONLY=" "
#
# $TOOLCHAIN_TARGET_TASK_task-populate-sdk-ext
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/populate_sdk_ext.bbclass:12
#     ""
TOOLCHAIN_TARGET_TASK_task-populate-sdk-ext=""
#
# $TOPDIR [2 operations]
#   set cookerdata.py:323 [parseConfigurationFiles]
#     "/home/mnhu/projects/pil/yocto"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:433
#     [doc] "The Build Directory. BitBake automatically sets this variable. The OpenEmbedded build system uses the Build Directory when building images."
# pre-expansion value:
#   "/home/mnhu/projects/pil/yocto"
TOPDIR="/home/mnhu/projects/pil/yocto"
#
# $TRANSLATED_TARGET_ARCH [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:434
#     [doc] "A sanitized version of TARGET_ARCH. This variable is used where the architecture is needed in a value where underscores are not allowed."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:840
#     [_defaultval] "${@d.getVar('TARGET_ARCH').replace("_", "-")}"
# pre-expansion value:
#   "${@d.getVar('TARGET_ARCH').replace("_", "-")}"
TRANSLATED_TARGET_ARCH="arm"
#
# $TUNEABI
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:436
#     [doc] "An underlying ABI used by a particular tuning in a given toolchain layer. This feature allows providers using prebuilt libraries to check compatibility of a tuning against their selection of libraries."
#
# $TUNEABI_OVERRIDE
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:437
#     [doc] "If set, ignores TUNEABI_WHITELIST."
#
# $TUNEABI_WHITELIST
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:438
#     [doc] "A whitelist of permissible TUNEABI values.  If the variable is not set, all values are allowed."
#
# $TUNECONFLICTS [5 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:4
#     [armv7ve] "armv4 armv5 armv6 armv7 armv7a"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:4
#     [armv7a] "armv4 armv5 armv6 armv7"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:4
#     [armv6] "armv4 armv5"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:4
#     [armv5] "armv4"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:439
#     [doc] "List of conflicting features for a given feature."
# pre-expansion value:
#   "None"
#
# $TUNEVALID [17 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:3
#     [armv7ve] "Enable instructions for ARMv7ve"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:3
#     [armv7a] "Enable instructions for ARMv7-a"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:3
#     [armv6] "Enable instructions for ARMv6"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:2
#     [dsp] "ARM DSP functionality"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:3
#     [armv5] "Enable instructions for ARMv5"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:3
#     [arm] "Enable ARM instruction set"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:4
#     [armv4] "Enable instructions for ARMv4"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:2
#     [bigendian] "Enable big-endian mode."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc:2
#     [thumb] "Support Thumb instructions"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc:5
#     [vfp] "Enable Vector Floating Point (vfp) unit."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc:11
#     [callconvention-hard] "Enable EABI hard float call convention, requires VFP."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:7
#     [neon] "Enable Neon SIMD accelerator unit."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:10
#     [vfpv3d16] "Enable Vector Floating Point Version 3 with 16 registers (vfpv3-d16) unit."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:13
#     [vfpv3] "Enable Vector Floating Point Version 3 with 32 registers (vfpv3) unit."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:16
#     [vfpv4] "Enable Vector Floating Point Version 4 (vfpv4) unit."
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:5
#     [cortexa7] "Enable Cortex-A7 specific processor optimizations"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:440
#     [doc] "Descriptions, stored as flags, of valid tuning features."
# pre-expansion value:
#   "None"
#
# $TUNE_ARCH [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:112
#     [_defaultval] "INVALID"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:11
#     "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'armeb', 'arm', d)}"
# pre-expansion value:
#   "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'armeb', 'arm', d)}"
TUNE_ARCH="arm"
#
# $TUNE_ASARGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:116
#     [_defaultval] ""
TUNE_ASARGS=""
#
# $TUNE_CCARGS [11 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:113
#     [_defaultval] ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:114
#     [vardepvalue] "${TUNE_CCARGS}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:5
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:5
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', ' -march=armv7-a', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:5
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv6', ' -march=armv6', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:5
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:5
#     "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-thumb.inc:24
#     "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' -m${ARM_M_OPT}', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc:8
#     "${@ (' -mfpu=%s ' % d.getVar('TUNE_CCARGS_MFPU').split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc:13
#     "${@ ' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '')     else ''}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:6
#     "${@bb.utils.contains('TUNE_FEATURES', 'cortexa7', ' -mcpu=cortex-a7', '', d)}"
# pre-expansion value:
#   "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'armv7a', ' -march=armv7-a', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'armv6', ' -march=armv6', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' -m${ARM_M_OPT}', '', d)}${@ (' -mfpu=%s ' % d.getVar('TUNE_CCARGS_MFPU').split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}${@ ' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '')     else ''}${@bb.utils.contains('TUNE_FEATURES', 'cortexa7', ' -mcpu=cortex-a7', '', d)}"
TUNE_CCARGS=" -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7"
#
# $TUNE_CCARGS_MFLOAT
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc:12
#     "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '') else '' }"
TUNE_CCARGS_MFLOAT="hard"
#
# $TUNE_CCARGS_MFPU [6 operations]
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-vfp.inc:6
#     "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:8
#     "${@bb.utils.contains('TUNE_FEATURES', 'neon', ' neon', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:11
#     "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3-d16', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:14
#     "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3', ' vfpv3', '' , d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:17
#     "${@bb.utils.contains('TUNE_FEATURES', 'vfpv4', ' vfpv4', '', d)}"
#   postdot /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/feature-arm-neon.inc:18
#     "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv4', 'neon' ], ' neon-vfpv4', '', d)}"
# pre-expansion value:
#   "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'neon', ' neon', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3-d16', '', d)}${@bb.utils.contains('TUNE_FEATURES', 'vfpv3', ' vfpv3', '' , d)}${@bb.utils.contains('TUNE_FEATURES', 'vfpv4', ' vfpv4', '', d)}${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv4', 'neon' ], ' neon-vfpv4', '', d)}"
TUNE_CCARGS_MFPU=" vfp neon vfpv4 neon-vfpv4"
#
# $TUNE_FEATURES [133 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:117
#     [_defaultval] "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
#   override[tune-armv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:22
#     "arm armv4"
#   override[tune-armv4t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:23
#     "${TUNE_FEATURES_tune-armv4} thumb"
#   override[tune-armv4b]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:31
#     "${TUNE_FEATURES_tune-armv4}  bigendian"
#   override[tune-armv4tb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:32
#     "${TUNE_FEATURES_tune-armv4t} bigendian"
#   override[tune-armv5]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:15
#     "arm armv5"
#   override[tune-armv5t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:16
#     "${TUNE_FEATURES_tune-armv5} thumb"
#   override[tune-armv5-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:26
#     "${TUNE_FEATURES_tune-armv5} vfp"
#   override[tune-armv5t-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:27
#     "${TUNE_FEATURES_tune-armv5t} vfp"
#   override[tune-armv5hf-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:28
#     "${TUNE_FEATURES_tune-armv5-vfp} callconvention-hard"
#   override[tune-armv5thf-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:29
#     "${TUNE_FEATURES_tune-armv5t-vfp} callconvention-hard"
#   override[tune-armv5b]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:39
#     "${TUNE_FEATURES_tune-armv5} bigendian"
#   override[tune-armv5tb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:40
#     "${TUNE_FEATURES_tune-armv5t} bigendian"
#   override[tune-armv5b-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:50
#     "${TUNE_FEATURES_tune-armv5-vfp} bigendian"
#   override[tune-armv5tb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:51
#     "${TUNE_FEATURES_tune-armv5t-vfp} bigendian"
#   override[tune-armv5hfb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:52
#     "${TUNE_FEATURES_tune-armv5hf-vfp} bigendian"
#   override[tune-armv5thfb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:53
#     "${TUNE_FEATURES_tune-armv5thf-vfp} bigendian"
#   override[tune-armv5e]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:10
#     "${TUNE_FEATURES_tune-armv5} dsp"
#   override[tune-armv5te]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:11
#     "${TUNE_FEATURES_tune-armv5t} dsp"
#   override[tune-armv5e-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:21
#     "${TUNE_FEATURES_tune-armv5e} vfp"
#   override[tune-armv5te-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:22
#     "${TUNE_FEATURES_tune-armv5te} vfp"
#   override[tune-armv5ehf-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:23
#     "${TUNE_FEATURES_tune-armv5e-vfp} callconvention-hard"
#   override[tune-armv5tehf-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:24
#     "${TUNE_FEATURES_tune-armv5te-vfp} callconvention-hard"
#   override[tune-armv5eb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:34
#     "${TUNE_FEATURES_tune-armv5e} bigendian"
#   override[tune-armv5teb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:35
#     "${TUNE_FEATURES_tune-armv5te} bigendian"
#   override[tune-armv5eb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:45
#     "${TUNE_FEATURES_tune-armv5e-vfp} bigendian"
#   override[tune-armv5teb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:46
#     "${TUNE_FEATURES_tune-armv5te-vfp} bigendian"
#   override[tune-armv5ehfb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:47
#     "${TUNE_FEATURES_tune-armv5ehf-vfp} bigendian"
#   override[tune-armv5tehfb-vfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:48
#     "${TUNE_FEATURES_tune-armv5tehf-vfp} bigendian"
#   override[tune-armv6-novfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:18
#     "arm armv6"
#   override[tune-armv6t-novfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:19
#     "${TUNE_FEATURES_tune-armv6-novfp} thumb"
#   override[tune-armv6]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:20
#     "${TUNE_FEATURES_tune-armv6-novfp} vfp"
#   override[tune-armv6t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:21
#     "${TUNE_FEATURES_tune-armv6t-novfp} vfp"
#   override[tune-armv6hf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:22
#     "${TUNE_FEATURES_tune-armv6} callconvention-hard"
#   override[tune-armv6thf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:23
#     "${TUNE_FEATURES_tune-armv6t} callconvention-hard"
#   override[tune-armv6b-novfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:39
#     "${TUNE_FEATURES_tune-armv6-novfp} bigendian"
#   override[tune-armv6tb-novfp]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:40
#     "${TUNE_FEATURES_tune-armv6t-novfp} bigendian"
#   override[tune-armv6b]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:41
#     "${TUNE_FEATURES_tune-armv6} bigendian"
#   override[tune-armv6tb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:42
#     "${TUNE_FEATURES_tune-armv6t} bigendian"
#   override[tune-armv6hfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:43
#     "${TUNE_FEATURES_tune-armv6hf} bigendian"
#   override[tune-armv6thfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:44
#     "${TUNE_FEATURES_tune-armv6thf} bigendian"
#   override[tune-armv7a]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:23
#     "arm armv7a vfp"
#   override[tune-armv7at]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:24
#     "${TUNE_FEATURES_tune-armv7a} thumb"
#   override[tune-armv7a-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:25
#     "${TUNE_FEATURES_tune-armv7a} vfpv3d16"
#   override[tune-armv7at-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:26
#     "${TUNE_FEATURES_tune-armv7at} vfpv3d16"
#   override[tune-armv7a-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:27
#     "${TUNE_FEATURES_tune-armv7a-vfpv3d16} vfpv3"
#   override[tune-armv7at-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:28
#     "${TUNE_FEATURES_tune-armv7at-vfpv3d16} vfpv3"
#   override[tune-armv7a-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:29
#     "${TUNE_FEATURES_tune-armv7a} neon"
#   override[tune-armv7at-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:30
#     "${TUNE_FEATURES_tune-armv7at} neon"
#   override[tune-armv7a-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:31
#     "${TUNE_FEATURES_tune-armv7a-neon} vfpv4"
#   override[tune-armv7at-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:32
#     "${TUNE_FEATURES_tune-armv7at-neon} vfpv4"
#   override[tune-armv7ahf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:56
#     "${TUNE_FEATURES_tune-armv7a} callconvention-hard"
#   override[tune-armv7athf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:57
#     "${TUNE_FEATURES_tune-armv7at} callconvention-hard"
#   override[tune-armv7ahf-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:58
#     "${TUNE_FEATURES_tune-armv7a-vfpv3d16} callconvention-hard"
#   override[tune-armv7athf-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:59
#     "${TUNE_FEATURES_tune-armv7at-vfpv3d16} callconvention-hard"
#   override[tune-armv7ahf-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:60
#     "${TUNE_FEATURES_tune-armv7a-vfpv3} callconvention-hard"
#   override[tune-armv7athf-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:61
#     "${TUNE_FEATURES_tune-armv7at-vfpv3} callconvention-hard"
#   override[tune-armv7ahf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:62
#     "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard"
#   override[tune-armv7athf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:63
#     "${TUNE_FEATURES_tune-armv7at-neon} callconvention-hard"
#   override[tune-armv7ahf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:64
#     "${TUNE_FEATURES_tune-armv7a-neon-vfpv4} callconvention-hard"
#   override[tune-armv7athf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:65
#     "${TUNE_FEATURES_tune-armv7at-neon-vfpv4} callconvention-hard"
#   override[tune-armv7ab]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:89
#     "${TUNE_FEATURES_tune-armv7a} bigendian"
#   override[tune-armv7atb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:90
#     "${TUNE_FEATURES_tune-armv7at} bigendian"
#   override[tune-armv7ab-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:91
#     "${TUNE_FEATURES_tune-armv7a-vfpv3d16} bigendian"
#   override[tune-armv7atb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:92
#     "${TUNE_FEATURES_tune-armv7at-vfpv3d16} bigendian"
#   override[tune-armv7ab-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:93
#     "${TUNE_FEATURES_tune-armv7a-vfpv3} bigendian"
#   override[tune-armv7atb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:94
#     "${TUNE_FEATURES_tune-armv7at-vfpv3} bigendian"
#   override[tune-armv7ab-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:95
#     "${TUNE_FEATURES_tune-armv7a-neon} bigendian"
#   override[tune-armv7atb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:96
#     "${TUNE_FEATURES_tune-armv7at-neon} bigendian"
#   override[tune-armv7ab-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:97
#     "${TUNE_FEATURES_tune-armv7a-neon-vfpv4} bigendian"
#   override[tune-armv7atb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:98
#     "${TUNE_FEATURES_tune-armv7at-neon-vfpv4} bigendian"
#   override[tune-armv7ahfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:122
#     "${TUNE_FEATURES_tune-armv7ahf} bigendian"
#   override[tune-armv7athfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:123
#     "${TUNE_FEATURES_tune-armv7athf} bigendian"
#   override[tune-armv7ahfb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:124
#     "${TUNE_FEATURES_tune-armv7ahf-vfpv3d16} bigendian"
#   override[tune-armv7athfb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:125
#     "${TUNE_FEATURES_tune-armv7athf-vfpv3d16} bigendian"
#   override[tune-armv7ahfb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:126
#     "${TUNE_FEATURES_tune-armv7ahf-vfpv3} bigendian"
#   override[tune-armv7athfb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:127
#     "${TUNE_FEATURES_tune-armv7athf-vfpv3} bigendian"
#   override[tune-armv7ahfb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:128
#     "${TUNE_FEATURES_tune-armv7ahf-neon} bigendian"
#   override[tune-armv7athfb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:129
#     "${TUNE_FEATURES_tune-armv7athf-neon} bigendian"
#   override[tune-armv7ahfb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:130
#     "${TUNE_FEATURES_tune-armv7ahf-neon-vfpv4} bigendian"
#   override[tune-armv7athfb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:131
#     "${TUNE_FEATURES_tune-armv7athf-neon-vfpv4} bigendian"
#   override[tune-armv7ve]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:22
#     "arm armv7ve vfp"
#   override[tune-armv7vet]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:23
#     "${TUNE_FEATURES_tune-armv7ve} thumb"
#   override[tune-armv7ve-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:24
#     "${TUNE_FEATURES_tune-armv7ve} vfpv3d16"
#   override[tune-armv7vet-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:25
#     "${TUNE_FEATURES_tune-armv7vet} vfpv3d16"
#   override[tune-armv7ve-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:26
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} vfpv3"
#   override[tune-armv7vet-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:27
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} vfpv3"
#   override[tune-armv7ve-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:28
#     "${TUNE_FEATURES_tune-armv7ve} neon"
#   override[tune-armv7vet-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:29
#     "${TUNE_FEATURES_tune-armv7vet} neon"
#   override[tune-armv7ve-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:30
#     "${TUNE_FEATURES_tune-armv7ve-neon} vfpv4"
#   override[tune-armv7vet-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:31
#     "${TUNE_FEATURES_tune-armv7vet-neon} vfpv4"
#   override[tune-armv7vehf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:55
#     "${TUNE_FEATURES_tune-armv7ve} callconvention-hard"
#   override[tune-armv7vethf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:56
#     "${TUNE_FEATURES_tune-armv7vet} callconvention-hard"
#   override[tune-armv7vehf-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:57
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} callconvention-hard"
#   override[tune-armv7vethf-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:58
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} callconvention-hard"
#   override[tune-armv7vehf-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:59
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3} callconvention-hard"
#   override[tune-armv7vethf-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:60
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3} callconvention-hard"
#   override[tune-armv7vehf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:61
#     "${TUNE_FEATURES_tune-armv7ve-neon} callconvention-hard"
#   override[tune-armv7vethf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:62
#     "${TUNE_FEATURES_tune-armv7vet-neon} callconvention-hard"
#   override[tune-armv7vehf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:63
#     "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} callconvention-hard"
#   override[tune-armv7vethf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:64
#     "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} callconvention-hard"
#   override[tune-armv7veb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:88
#     "${TUNE_FEATURES_tune-armv7ve} bigendian"
#   override[tune-armv7vetb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:89
#     "${TUNE_FEATURES_tune-armv7vet} bigendian"
#   override[tune-armv7veb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:90
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} bigendian"
#   override[tune-armv7vetb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:91
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} bigendian"
#   override[tune-armv7veb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:92
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3} bigendian"
#   override[tune-armv7vetb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:93
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3} bigendian"
#   override[tune-armv7veb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:94
#     "${TUNE_FEATURES_tune-armv7ve-neon} bigendian"
#   override[tune-armv7vetb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:95
#     "${TUNE_FEATURES_tune-armv7vet-neon} bigendian"
#   override[tune-armv7veb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:96
#     "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} bigendian"
#   override[tune-armv7vetb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:97
#     "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} bigendian"
#   override[tune-armv7vehfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:121
#     "${TUNE_FEATURES_tune-armv7vehf} bigendian"
#   override[tune-armv7vethfb]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:122
#     "${TUNE_FEATURES_tune-armv7vethf} bigendian"
#   override[tune-armv7vehfb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:123
#     "${TUNE_FEATURES_tune-armv7vehf-vfpv3d16} bigendian"
#   override[tune-armv7vethfb-vfpv3d16]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:124
#     "${TUNE_FEATURES_tune-armv7vethf-vfpv3d16} bigendian"
#   override[tune-armv7vehfb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:125
#     "${TUNE_FEATURES_tune-armv7vehf-vfpv3} bigendian"
#   override[tune-armv7vethfb-vfpv3]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:126
#     "${TUNE_FEATURES_tune-armv7vethf-vfpv3} bigendian"
#   override[tune-armv7vehfb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:127
#     "${TUNE_FEATURES_tune-armv7vehf-neon} bigendian"
#   override[tune-armv7vethfb-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:128
#     "${TUNE_FEATURES_tune-armv7vethf-neon} bigendian"
#   override[tune-armv7vehfb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:129
#     "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} bigendian"
#   override[tune-armv7vethfb-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:130
#     "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} bigendian"
#   override[tune-cortexa7]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:16
#     "${TUNE_FEATURES_tune-armv7ve} cortexa7"
#   override[tune-cortexa7t]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:17
#     "${TUNE_FEATURES_tune-armv7vet} cortexa7"
#   override[tune-cortexa7-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:18
#     "${TUNE_FEATURES_tune-armv7ve-neon} cortexa7"
#   override[tune-cortexa7t-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:19
#     "${TUNE_FEATURES_tune-armv7vet-neon} cortexa7"
#   override[tune-cortexa7-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:20
#     "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} cortexa7"
#   override[tune-cortexa7t-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:21
#     "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} cortexa7"
#   override[tune-cortexa7hf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:37
#     "${TUNE_FEATURES_tune-armv7vehf} cortexa7"
#   override[tune-cortexa7thf]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:38
#     "${TUNE_FEATURES_tune-armv7vethf} cortexa7"
#   override[tune-cortexa7hf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:39
#     "${TUNE_FEATURES_tune-armv7vehf-neon} cortexa7"
#   override[tune-cortexa7thf-neon]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:40
#     "${TUNE_FEATURES_tune-armv7vethf-neon} cortexa7"
#   override[tune-cortexa7hf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:41
#     "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} cortexa7"
#   override[tune-cortexa7thf-neon-vfpv4]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:42
#     "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} cortexa7"
# pre-expansion value:
#   "${TUNE_FEATURES_tune-${DEFAULTTUNE}}"
TUNE_FEATURES="arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7"
#
# $TUNE_FEATURES_tune-armv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:22
#     "arm armv4"
TUNE_FEATURES_tune-armv4="arm armv4"
#
# $TUNE_FEATURES_tune-armv4b
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:31
#     "${TUNE_FEATURES_tune-armv4}  bigendian"
TUNE_FEATURES_tune-armv4b="arm armv4  bigendian"
#
# $TUNE_FEATURES_tune-armv4t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:23
#     "${TUNE_FEATURES_tune-armv4} thumb"
TUNE_FEATURES_tune-armv4t="arm armv4 thumb"
#
# $TUNE_FEATURES_tune-armv4tb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv4.inc:32
#     "${TUNE_FEATURES_tune-armv4t} bigendian"
TUNE_FEATURES_tune-armv4tb="arm armv4 thumb bigendian"
#
# $TUNE_FEATURES_tune-armv5
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:15
#     "arm armv5"
TUNE_FEATURES_tune-armv5="arm armv5"
#
# $TUNE_FEATURES_tune-armv5-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:26
#     "${TUNE_FEATURES_tune-armv5} vfp"
TUNE_FEATURES_tune-armv5-vfp="arm armv5 vfp"
#
# $TUNE_FEATURES_tune-armv5b
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:39
#     "${TUNE_FEATURES_tune-armv5} bigendian"
TUNE_FEATURES_tune-armv5b="arm armv5 bigendian"
#
# $TUNE_FEATURES_tune-armv5b-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:50
#     "${TUNE_FEATURES_tune-armv5-vfp} bigendian"
TUNE_FEATURES_tune-armv5b-vfp="arm armv5 vfp bigendian"
#
# $TUNE_FEATURES_tune-armv5e
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:10
#     "${TUNE_FEATURES_tune-armv5} dsp"
TUNE_FEATURES_tune-armv5e="arm armv5 dsp"
#
# $TUNE_FEATURES_tune-armv5e-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:21
#     "${TUNE_FEATURES_tune-armv5e} vfp"
TUNE_FEATURES_tune-armv5e-vfp="arm armv5 dsp vfp"
#
# $TUNE_FEATURES_tune-armv5eb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:34
#     "${TUNE_FEATURES_tune-armv5e} bigendian"
TUNE_FEATURES_tune-armv5eb="arm armv5 dsp bigendian"
#
# $TUNE_FEATURES_tune-armv5eb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:45
#     "${TUNE_FEATURES_tune-armv5e-vfp} bigendian"
TUNE_FEATURES_tune-armv5eb-vfp="arm armv5 dsp vfp bigendian"
#
# $TUNE_FEATURES_tune-armv5ehf-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:23
#     "${TUNE_FEATURES_tune-armv5e-vfp} callconvention-hard"
TUNE_FEATURES_tune-armv5ehf-vfp="arm armv5 dsp vfp callconvention-hard"
#
# $TUNE_FEATURES_tune-armv5ehfb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:47
#     "${TUNE_FEATURES_tune-armv5ehf-vfp} bigendian"
TUNE_FEATURES_tune-armv5ehfb-vfp="arm armv5 dsp vfp callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv5hf-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:28
#     "${TUNE_FEATURES_tune-armv5-vfp} callconvention-hard"
TUNE_FEATURES_tune-armv5hf-vfp="arm armv5 vfp callconvention-hard"
#
# $TUNE_FEATURES_tune-armv5hfb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:52
#     "${TUNE_FEATURES_tune-armv5hf-vfp} bigendian"
TUNE_FEATURES_tune-armv5hfb-vfp="arm armv5 vfp callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv5t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:16
#     "${TUNE_FEATURES_tune-armv5} thumb"
TUNE_FEATURES_tune-armv5t="arm armv5 thumb"
#
# $TUNE_FEATURES_tune-armv5t-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:27
#     "${TUNE_FEATURES_tune-armv5t} vfp"
TUNE_FEATURES_tune-armv5t-vfp="arm armv5 thumb vfp"
#
# $TUNE_FEATURES_tune-armv5tb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:40
#     "${TUNE_FEATURES_tune-armv5t} bigendian"
TUNE_FEATURES_tune-armv5tb="arm armv5 thumb bigendian"
#
# $TUNE_FEATURES_tune-armv5tb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:51
#     "${TUNE_FEATURES_tune-armv5t-vfp} bigendian"
TUNE_FEATURES_tune-armv5tb-vfp="arm armv5 thumb vfp bigendian"
#
# $TUNE_FEATURES_tune-armv5te
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:11
#     "${TUNE_FEATURES_tune-armv5t} dsp"
TUNE_FEATURES_tune-armv5te="arm armv5 thumb dsp"
#
# $TUNE_FEATURES_tune-armv5te-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:22
#     "${TUNE_FEATURES_tune-armv5te} vfp"
TUNE_FEATURES_tune-armv5te-vfp="arm armv5 thumb dsp vfp"
#
# $TUNE_FEATURES_tune-armv5teb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:35
#     "${TUNE_FEATURES_tune-armv5te} bigendian"
TUNE_FEATURES_tune-armv5teb="arm armv5 thumb dsp bigendian"
#
# $TUNE_FEATURES_tune-armv5teb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:46
#     "${TUNE_FEATURES_tune-armv5te-vfp} bigendian"
TUNE_FEATURES_tune-armv5teb-vfp="arm armv5 thumb dsp vfp bigendian"
#
# $TUNE_FEATURES_tune-armv5tehf-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:24
#     "${TUNE_FEATURES_tune-armv5te-vfp} callconvention-hard"
TUNE_FEATURES_tune-armv5tehf-vfp="arm armv5 thumb dsp vfp callconvention-hard"
#
# $TUNE_FEATURES_tune-armv5tehfb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc:48
#     "${TUNE_FEATURES_tune-armv5tehf-vfp} bigendian"
TUNE_FEATURES_tune-armv5tehfb-vfp="arm armv5 thumb dsp vfp callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv5thf-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:29
#     "${TUNE_FEATURES_tune-armv5t-vfp} callconvention-hard"
TUNE_FEATURES_tune-armv5thf-vfp="arm armv5 thumb vfp callconvention-hard"
#
# $TUNE_FEATURES_tune-armv5thfb-vfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv5.inc:53
#     "${TUNE_FEATURES_tune-armv5thf-vfp} bigendian"
TUNE_FEATURES_tune-armv5thfb-vfp="arm armv5 thumb vfp callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv6
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:20
#     "${TUNE_FEATURES_tune-armv6-novfp} vfp"
TUNE_FEATURES_tune-armv6="arm armv6 vfp"
#
# $TUNE_FEATURES_tune-armv6-novfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:18
#     "arm armv6"
TUNE_FEATURES_tune-armv6-novfp="arm armv6"
#
# $TUNE_FEATURES_tune-armv6b
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:41
#     "${TUNE_FEATURES_tune-armv6} bigendian"
TUNE_FEATURES_tune-armv6b="arm armv6 vfp bigendian"
#
# $TUNE_FEATURES_tune-armv6b-novfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:39
#     "${TUNE_FEATURES_tune-armv6-novfp} bigendian"
TUNE_FEATURES_tune-armv6b-novfp="arm armv6 bigendian"
#
# $TUNE_FEATURES_tune-armv6hf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:22
#     "${TUNE_FEATURES_tune-armv6} callconvention-hard"
TUNE_FEATURES_tune-armv6hf="arm armv6 vfp callconvention-hard"
#
# $TUNE_FEATURES_tune-armv6hfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:43
#     "${TUNE_FEATURES_tune-armv6hf} bigendian"
TUNE_FEATURES_tune-armv6hfb="arm armv6 vfp callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv6t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:21
#     "${TUNE_FEATURES_tune-armv6t-novfp} vfp"
TUNE_FEATURES_tune-armv6t="arm armv6 thumb vfp"
#
# $TUNE_FEATURES_tune-armv6t-novfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:19
#     "${TUNE_FEATURES_tune-armv6-novfp} thumb"
TUNE_FEATURES_tune-armv6t-novfp="arm armv6 thumb"
#
# $TUNE_FEATURES_tune-armv6tb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:42
#     "${TUNE_FEATURES_tune-armv6t} bigendian"
TUNE_FEATURES_tune-armv6tb="arm armv6 thumb vfp bigendian"
#
# $TUNE_FEATURES_tune-armv6tb-novfp
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:40
#     "${TUNE_FEATURES_tune-armv6t-novfp} bigendian"
TUNE_FEATURES_tune-armv6tb-novfp="arm armv6 thumb bigendian"
#
# $TUNE_FEATURES_tune-armv6thf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:23
#     "${TUNE_FEATURES_tune-armv6t} callconvention-hard"
TUNE_FEATURES_tune-armv6thf="arm armv6 thumb vfp callconvention-hard"
#
# $TUNE_FEATURES_tune-armv6thfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv6.inc:44
#     "${TUNE_FEATURES_tune-armv6thf} bigendian"
TUNE_FEATURES_tune-armv6thfb="arm armv6 thumb vfp callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7a
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:23
#     "arm armv7a vfp"
TUNE_FEATURES_tune-armv7a="arm armv7a vfp"
#
# $TUNE_FEATURES_tune-armv7a-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:29
#     "${TUNE_FEATURES_tune-armv7a} neon"
TUNE_FEATURES_tune-armv7a-neon="arm armv7a vfp neon"
#
# $TUNE_FEATURES_tune-armv7a-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:31
#     "${TUNE_FEATURES_tune-armv7a-neon} vfpv4"
TUNE_FEATURES_tune-armv7a-neon-vfpv4="arm armv7a vfp neon vfpv4"
#
# $TUNE_FEATURES_tune-armv7a-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:27
#     "${TUNE_FEATURES_tune-armv7a-vfpv3d16} vfpv3"
TUNE_FEATURES_tune-armv7a-vfpv3="arm armv7a vfp vfpv3d16 vfpv3"
#
# $TUNE_FEATURES_tune-armv7a-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:25
#     "${TUNE_FEATURES_tune-armv7a} vfpv3d16"
TUNE_FEATURES_tune-armv7a-vfpv3d16="arm armv7a vfp vfpv3d16"
#
# $TUNE_FEATURES_tune-armv7ab
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:89
#     "${TUNE_FEATURES_tune-armv7a} bigendian"
TUNE_FEATURES_tune-armv7ab="arm armv7a vfp bigendian"
#
# $TUNE_FEATURES_tune-armv7ab-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:95
#     "${TUNE_FEATURES_tune-armv7a-neon} bigendian"
TUNE_FEATURES_tune-armv7ab-neon="arm armv7a vfp neon bigendian"
#
# $TUNE_FEATURES_tune-armv7ab-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:97
#     "${TUNE_FEATURES_tune-armv7a-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7ab-neon-vfpv4="arm armv7a vfp neon vfpv4 bigendian"
#
# $TUNE_FEATURES_tune-armv7ab-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:93
#     "${TUNE_FEATURES_tune-armv7a-vfpv3} bigendian"
TUNE_FEATURES_tune-armv7ab-vfpv3="arm armv7a vfp vfpv3d16 vfpv3 bigendian"
#
# $TUNE_FEATURES_tune-armv7ab-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:91
#     "${TUNE_FEATURES_tune-armv7a-vfpv3d16} bigendian"
TUNE_FEATURES_tune-armv7ab-vfpv3d16="arm armv7a vfp vfpv3d16 bigendian"
#
# $TUNE_FEATURES_tune-armv7ahf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:56
#     "${TUNE_FEATURES_tune-armv7a} callconvention-hard"
TUNE_FEATURES_tune-armv7ahf="arm armv7a vfp callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7ahf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:62
#     "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard"
TUNE_FEATURES_tune-armv7ahf-neon="arm armv7a vfp neon callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7ahf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:64
#     "${TUNE_FEATURES_tune-armv7a-neon-vfpv4} callconvention-hard"
TUNE_FEATURES_tune-armv7ahf-neon-vfpv4="arm armv7a vfp neon vfpv4 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7ahf-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:60
#     "${TUNE_FEATURES_tune-armv7a-vfpv3} callconvention-hard"
TUNE_FEATURES_tune-armv7ahf-vfpv3="arm armv7a vfp vfpv3d16 vfpv3 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7ahf-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:58
#     "${TUNE_FEATURES_tune-armv7a-vfpv3d16} callconvention-hard"
TUNE_FEATURES_tune-armv7ahf-vfpv3d16="arm armv7a vfp vfpv3d16 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7ahfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:122
#     "${TUNE_FEATURES_tune-armv7ahf} bigendian"
TUNE_FEATURES_tune-armv7ahfb="arm armv7a vfp callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7ahfb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:128
#     "${TUNE_FEATURES_tune-armv7ahf-neon} bigendian"
TUNE_FEATURES_tune-armv7ahfb-neon="arm armv7a vfp neon callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7ahfb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:130
#     "${TUNE_FEATURES_tune-armv7ahf-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7ahfb-neon-vfpv4="arm armv7a vfp neon vfpv4 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7ahfb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:126
#     "${TUNE_FEATURES_tune-armv7ahf-vfpv3} bigendian"
TUNE_FEATURES_tune-armv7ahfb-vfpv3="arm armv7a vfp vfpv3d16 vfpv3 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7ahfb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:124
#     "${TUNE_FEATURES_tune-armv7ahf-vfpv3d16} bigendian"
TUNE_FEATURES_tune-armv7ahfb-vfpv3d16="arm armv7a vfp vfpv3d16 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7at
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:24
#     "${TUNE_FEATURES_tune-armv7a} thumb"
TUNE_FEATURES_tune-armv7at="arm armv7a vfp thumb"
#
# $TUNE_FEATURES_tune-armv7at-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:30
#     "${TUNE_FEATURES_tune-armv7at} neon"
TUNE_FEATURES_tune-armv7at-neon="arm armv7a vfp thumb neon"
#
# $TUNE_FEATURES_tune-armv7at-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:32
#     "${TUNE_FEATURES_tune-armv7at-neon} vfpv4"
TUNE_FEATURES_tune-armv7at-neon-vfpv4="arm armv7a vfp thumb neon vfpv4"
#
# $TUNE_FEATURES_tune-armv7at-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:28
#     "${TUNE_FEATURES_tune-armv7at-vfpv3d16} vfpv3"
TUNE_FEATURES_tune-armv7at-vfpv3="arm armv7a vfp thumb vfpv3d16 vfpv3"
#
# $TUNE_FEATURES_tune-armv7at-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:26
#     "${TUNE_FEATURES_tune-armv7at} vfpv3d16"
TUNE_FEATURES_tune-armv7at-vfpv3d16="arm armv7a vfp thumb vfpv3d16"
#
# $TUNE_FEATURES_tune-armv7atb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:90
#     "${TUNE_FEATURES_tune-armv7at} bigendian"
TUNE_FEATURES_tune-armv7atb="arm armv7a vfp thumb bigendian"
#
# $TUNE_FEATURES_tune-armv7atb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:96
#     "${TUNE_FEATURES_tune-armv7at-neon} bigendian"
TUNE_FEATURES_tune-armv7atb-neon="arm armv7a vfp thumb neon bigendian"
#
# $TUNE_FEATURES_tune-armv7atb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:98
#     "${TUNE_FEATURES_tune-armv7at-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7atb-neon-vfpv4="arm armv7a vfp thumb neon vfpv4 bigendian"
#
# $TUNE_FEATURES_tune-armv7atb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:94
#     "${TUNE_FEATURES_tune-armv7at-vfpv3} bigendian"
TUNE_FEATURES_tune-armv7atb-vfpv3="arm armv7a vfp thumb vfpv3d16 vfpv3 bigendian"
#
# $TUNE_FEATURES_tune-armv7atb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:92
#     "${TUNE_FEATURES_tune-armv7at-vfpv3d16} bigendian"
TUNE_FEATURES_tune-armv7atb-vfpv3d16="arm armv7a vfp thumb vfpv3d16 bigendian"
#
# $TUNE_FEATURES_tune-armv7athf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:57
#     "${TUNE_FEATURES_tune-armv7at} callconvention-hard"
TUNE_FEATURES_tune-armv7athf="arm armv7a vfp thumb callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7athf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:63
#     "${TUNE_FEATURES_tune-armv7at-neon} callconvention-hard"
TUNE_FEATURES_tune-armv7athf-neon="arm armv7a vfp thumb neon callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7athf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:65
#     "${TUNE_FEATURES_tune-armv7at-neon-vfpv4} callconvention-hard"
TUNE_FEATURES_tune-armv7athf-neon-vfpv4="arm armv7a vfp thumb neon vfpv4 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7athf-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:61
#     "${TUNE_FEATURES_tune-armv7at-vfpv3} callconvention-hard"
TUNE_FEATURES_tune-armv7athf-vfpv3="arm armv7a vfp thumb vfpv3d16 vfpv3 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7athf-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:59
#     "${TUNE_FEATURES_tune-armv7at-vfpv3d16} callconvention-hard"
TUNE_FEATURES_tune-armv7athf-vfpv3d16="arm armv7a vfp thumb vfpv3d16 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7athfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:123
#     "${TUNE_FEATURES_tune-armv7athf} bigendian"
TUNE_FEATURES_tune-armv7athfb="arm armv7a vfp thumb callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7athfb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:129
#     "${TUNE_FEATURES_tune-armv7athf-neon} bigendian"
TUNE_FEATURES_tune-armv7athfb-neon="arm armv7a vfp thumb neon callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7athfb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:131
#     "${TUNE_FEATURES_tune-armv7athf-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7athfb-neon-vfpv4="arm armv7a vfp thumb neon vfpv4 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7athfb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:127
#     "${TUNE_FEATURES_tune-armv7athf-vfpv3} bigendian"
TUNE_FEATURES_tune-armv7athfb-vfpv3="arm armv7a vfp thumb vfpv3d16 vfpv3 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7athfb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7a.inc:125
#     "${TUNE_FEATURES_tune-armv7athf-vfpv3d16} bigendian"
TUNE_FEATURES_tune-armv7athfb-vfpv3d16="arm armv7a vfp thumb vfpv3d16 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7ve
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:22
#     "arm armv7ve vfp"
TUNE_FEATURES_tune-armv7ve="arm armv7ve vfp"
#
# $TUNE_FEATURES_tune-armv7ve-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:28
#     "${TUNE_FEATURES_tune-armv7ve} neon"
TUNE_FEATURES_tune-armv7ve-neon="arm armv7ve vfp neon"
#
# $TUNE_FEATURES_tune-armv7ve-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:30
#     "${TUNE_FEATURES_tune-armv7ve-neon} vfpv4"
TUNE_FEATURES_tune-armv7ve-neon-vfpv4="arm armv7ve vfp neon vfpv4"
#
# $TUNE_FEATURES_tune-armv7ve-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:26
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} vfpv3"
TUNE_FEATURES_tune-armv7ve-vfpv3="arm armv7ve vfp vfpv3d16 vfpv3"
#
# $TUNE_FEATURES_tune-armv7ve-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:24
#     "${TUNE_FEATURES_tune-armv7ve} vfpv3d16"
TUNE_FEATURES_tune-armv7ve-vfpv3d16="arm armv7ve vfp vfpv3d16"
#
# $TUNE_FEATURES_tune-armv7veb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:88
#     "${TUNE_FEATURES_tune-armv7ve} bigendian"
TUNE_FEATURES_tune-armv7veb="arm armv7ve vfp bigendian"
#
# $TUNE_FEATURES_tune-armv7veb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:94
#     "${TUNE_FEATURES_tune-armv7ve-neon} bigendian"
TUNE_FEATURES_tune-armv7veb-neon="arm armv7ve vfp neon bigendian"
#
# $TUNE_FEATURES_tune-armv7veb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:96
#     "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7veb-neon-vfpv4="arm armv7ve vfp neon vfpv4 bigendian"
#
# $TUNE_FEATURES_tune-armv7veb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:92
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3} bigendian"
TUNE_FEATURES_tune-armv7veb-vfpv3="arm armv7ve vfp vfpv3d16 vfpv3 bigendian"
#
# $TUNE_FEATURES_tune-armv7veb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:90
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} bigendian"
TUNE_FEATURES_tune-armv7veb-vfpv3d16="arm armv7ve vfp vfpv3d16 bigendian"
#
# $TUNE_FEATURES_tune-armv7vehf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:55
#     "${TUNE_FEATURES_tune-armv7ve} callconvention-hard"
TUNE_FEATURES_tune-armv7vehf="arm armv7ve vfp callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vehf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:61
#     "${TUNE_FEATURES_tune-armv7ve-neon} callconvention-hard"
TUNE_FEATURES_tune-armv7vehf-neon="arm armv7ve vfp neon callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vehf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:63
#     "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} callconvention-hard"
TUNE_FEATURES_tune-armv7vehf-neon-vfpv4="arm armv7ve vfp neon vfpv4 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vehf-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:59
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3} callconvention-hard"
TUNE_FEATURES_tune-armv7vehf-vfpv3="arm armv7ve vfp vfpv3d16 vfpv3 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vehf-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:57
#     "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} callconvention-hard"
TUNE_FEATURES_tune-armv7vehf-vfpv3d16="arm armv7ve vfp vfpv3d16 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vehfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:121
#     "${TUNE_FEATURES_tune-armv7vehf} bigendian"
TUNE_FEATURES_tune-armv7vehfb="arm armv7ve vfp callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vehfb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:127
#     "${TUNE_FEATURES_tune-armv7vehf-neon} bigendian"
TUNE_FEATURES_tune-armv7vehfb-neon="arm armv7ve vfp neon callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vehfb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:129
#     "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7vehfb-neon-vfpv4="arm armv7ve vfp neon vfpv4 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vehfb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:125
#     "${TUNE_FEATURES_tune-armv7vehf-vfpv3} bigendian"
TUNE_FEATURES_tune-armv7vehfb-vfpv3="arm armv7ve vfp vfpv3d16 vfpv3 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vehfb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:123
#     "${TUNE_FEATURES_tune-armv7vehf-vfpv3d16} bigendian"
TUNE_FEATURES_tune-armv7vehfb-vfpv3d16="arm armv7ve vfp vfpv3d16 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vet
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:23
#     "${TUNE_FEATURES_tune-armv7ve} thumb"
TUNE_FEATURES_tune-armv7vet="arm armv7ve vfp thumb"
#
# $TUNE_FEATURES_tune-armv7vet-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:29
#     "${TUNE_FEATURES_tune-armv7vet} neon"
TUNE_FEATURES_tune-armv7vet-neon="arm armv7ve vfp thumb neon"
#
# $TUNE_FEATURES_tune-armv7vet-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:31
#     "${TUNE_FEATURES_tune-armv7vet-neon} vfpv4"
TUNE_FEATURES_tune-armv7vet-neon-vfpv4="arm armv7ve vfp thumb neon vfpv4"
#
# $TUNE_FEATURES_tune-armv7vet-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:27
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} vfpv3"
TUNE_FEATURES_tune-armv7vet-vfpv3="arm armv7ve vfp thumb vfpv3d16 vfpv3"
#
# $TUNE_FEATURES_tune-armv7vet-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:25
#     "${TUNE_FEATURES_tune-armv7vet} vfpv3d16"
TUNE_FEATURES_tune-armv7vet-vfpv3d16="arm armv7ve vfp thumb vfpv3d16"
#
# $TUNE_FEATURES_tune-armv7vetb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:89
#     "${TUNE_FEATURES_tune-armv7vet} bigendian"
TUNE_FEATURES_tune-armv7vetb="arm armv7ve vfp thumb bigendian"
#
# $TUNE_FEATURES_tune-armv7vetb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:95
#     "${TUNE_FEATURES_tune-armv7vet-neon} bigendian"
TUNE_FEATURES_tune-armv7vetb-neon="arm armv7ve vfp thumb neon bigendian"
#
# $TUNE_FEATURES_tune-armv7vetb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:97
#     "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7vetb-neon-vfpv4="arm armv7ve vfp thumb neon vfpv4 bigendian"
#
# $TUNE_FEATURES_tune-armv7vetb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:93
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3} bigendian"
TUNE_FEATURES_tune-armv7vetb-vfpv3="arm armv7ve vfp thumb vfpv3d16 vfpv3 bigendian"
#
# $TUNE_FEATURES_tune-armv7vetb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:91
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} bigendian"
TUNE_FEATURES_tune-armv7vetb-vfpv3d16="arm armv7ve vfp thumb vfpv3d16 bigendian"
#
# $TUNE_FEATURES_tune-armv7vethf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:56
#     "${TUNE_FEATURES_tune-armv7vet} callconvention-hard"
TUNE_FEATURES_tune-armv7vethf="arm armv7ve vfp thumb callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vethf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:62
#     "${TUNE_FEATURES_tune-armv7vet-neon} callconvention-hard"
TUNE_FEATURES_tune-armv7vethf-neon="arm armv7ve vfp thumb neon callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vethf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:64
#     "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} callconvention-hard"
TUNE_FEATURES_tune-armv7vethf-neon-vfpv4="arm armv7ve vfp thumb neon vfpv4 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vethf-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:60
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3} callconvention-hard"
TUNE_FEATURES_tune-armv7vethf-vfpv3="arm armv7ve vfp thumb vfpv3d16 vfpv3 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vethf-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:58
#     "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} callconvention-hard"
TUNE_FEATURES_tune-armv7vethf-vfpv3d16="arm armv7ve vfp thumb vfpv3d16 callconvention-hard"
#
# $TUNE_FEATURES_tune-armv7vethfb
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:122
#     "${TUNE_FEATURES_tune-armv7vethf} bigendian"
TUNE_FEATURES_tune-armv7vethfb="arm armv7ve vfp thumb callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vethfb-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:128
#     "${TUNE_FEATURES_tune-armv7vethf-neon} bigendian"
TUNE_FEATURES_tune-armv7vethfb-neon="arm armv7ve vfp thumb neon callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vethfb-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:130
#     "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} bigendian"
TUNE_FEATURES_tune-armv7vethfb-neon-vfpv4="arm armv7ve vfp thumb neon vfpv4 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vethfb-vfpv3
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:126
#     "${TUNE_FEATURES_tune-armv7vethf-vfpv3} bigendian"
TUNE_FEATURES_tune-armv7vethfb-vfpv3="arm armv7ve vfp thumb vfpv3d16 vfpv3 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-armv7vethfb-vfpv3d16
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-armv7ve.inc:124
#     "${TUNE_FEATURES_tune-armv7vethf-vfpv3d16} bigendian"
TUNE_FEATURES_tune-armv7vethfb-vfpv3d16="arm armv7ve vfp thumb vfpv3d16 callconvention-hard bigendian"
#
# $TUNE_FEATURES_tune-cortexa7
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:16
#     "${TUNE_FEATURES_tune-armv7ve} cortexa7"
TUNE_FEATURES_tune-cortexa7="arm armv7ve vfp cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:18
#     "${TUNE_FEATURES_tune-armv7ve-neon} cortexa7"
TUNE_FEATURES_tune-cortexa7-neon="arm armv7ve vfp neon cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:20
#     "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} cortexa7"
TUNE_FEATURES_tune-cortexa7-neon-vfpv4="arm armv7ve vfp neon vfpv4 cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7hf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:37
#     "${TUNE_FEATURES_tune-armv7vehf} cortexa7"
TUNE_FEATURES_tune-cortexa7hf="arm armv7ve vfp callconvention-hard cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7hf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:39
#     "${TUNE_FEATURES_tune-armv7vehf-neon} cortexa7"
TUNE_FEATURES_tune-cortexa7hf-neon="arm armv7ve vfp neon callconvention-hard cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7hf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:41
#     "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} cortexa7"
TUNE_FEATURES_tune-cortexa7hf-neon-vfpv4="arm armv7ve vfp neon vfpv4 callconvention-hard cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7t
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:17
#     "${TUNE_FEATURES_tune-armv7vet} cortexa7"
TUNE_FEATURES_tune-cortexa7t="arm armv7ve vfp thumb cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7t-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:19
#     "${TUNE_FEATURES_tune-armv7vet-neon} cortexa7"
TUNE_FEATURES_tune-cortexa7t-neon="arm armv7ve vfp thumb neon cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7t-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:21
#     "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} cortexa7"
TUNE_FEATURES_tune-cortexa7t-neon-vfpv4="arm armv7ve vfp thumb neon vfpv4 cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7thf
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:38
#     "${TUNE_FEATURES_tune-armv7vethf} cortexa7"
TUNE_FEATURES_tune-cortexa7thf="arm armv7ve vfp thumb callconvention-hard cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7thf-neon
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:40
#     "${TUNE_FEATURES_tune-armv7vethf-neon} cortexa7"
TUNE_FEATURES_tune-cortexa7thf-neon="arm armv7ve vfp thumb neon callconvention-hard cortexa7"
#
# $TUNE_FEATURES_tune-cortexa7thf-neon-vfpv4
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/tune-cortexa7.inc:42
#     "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} cortexa7"
TUNE_FEATURES_tune-cortexa7thf-neon-vfpv4="arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7"
#
# $TUNE_LDARGS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:115
#     [_defaultval] ""
TUNE_LDARGS=""
#
# $TUNE_PKGARCH [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:143
#     [_defaultval] ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/machine/include/arm/arch-arm.inc:12
#     "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:435
#     [doc] "The package architecture understood by the packaging system to define the architecture, ABI, and tuning of output packages."
# pre-expansion value:
#   "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}"
TUNE_PKGARCH="cortexa7hf-neon-vfpv4"
#
# $T_task-clean
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/utility-tasks.bbclass:22
#     "${LOG_DIR}/cleanlogs/${PN}"
T_task-clean="/home/mnhu/projects/pil/yocto/tmp-glibc/log/cleanlogs/rescue-rootfs"
#
# $UBI_VOLNAME
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:143
#     "${MACHINE}-rootfs"
UBI_VOLNAME="rpi2-rootfs"
#
# $UBOOT_ARCH [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:48
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:48
#     "${@map_uboot_arch(d.getVar('ARCH'), d)}"
# pre-expansion value:
#   "${@map_uboot_arch(d.getVar('ARCH'), d)}"
export UBOOT_ARCH="arm"
#
# $UBOOT_CONFIG
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:444
#     [doc] "Configures the UBOOT_MACHINE and can also define IMAGE_FSTYPES for individual cases."
#
# $UBOOT_ENTRYPOINT [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:14
#     "0x01000000"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:445
#     [doc] "Specifies the entry point for the U-Boot image."
# pre-expansion value:
#   "0x01000000"
UBOOT_ENTRYPOINT="0x01000000"
#
# $UBOOT_LOADADDRESS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:446
#     [doc] "Specifies the load address for the U-Boot image."
#
# $UBOOT_LOCALVERSION
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:447
#     [doc] "Appends a string to the name of the local version of the U-Boot image."
#
# $UBOOT_MACHINE [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:12
#     "rpi_2_defconfig"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:448
#     [doc] "Specifies the value passed on the make command line when building a U-Boot image."
# pre-expansion value:
#   "rpi_2_defconfig"
UBOOT_MACHINE="rpi_2_defconfig"
#
# $UBOOT_MAKE_TARGET
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:449
#     [doc] "Specifies the target called in the Makefile."
#
# $UBOOT_SUFFIX [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-pil/conf/machine/rpi2.conf:13
#     "bin"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:450
#     [doc] "Points to the generated U-Boot extension."
# pre-expansion value:
#   "bin"
UBOOT_SUFFIX="bin"
#
# $UBOOT_TARGET
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:451
#     [doc] "Specifies the target used for building U-Boot."
#
# $UCLIBCVERSION
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/tcmode-default.inc:30
#     "1.0%"
UCLIBCVERSION="1.0%"
#
# $UNKNOWN_CONFIGURE_WHITELIST
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:49
#     "--enable-nls --disable-nls --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot --disable-static"
UNKNOWN_CONFIGURE_WHITELIST="--enable-nls --disable-nls --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot --disable-static"
#
# $USERADDEXTENSION [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:459
#     [doc] "When set to 'useradd-staticids', causes the OpenEmbedded build system to base all user and group additions on files listed in USERADD_UID_TABLES and USERADD_GID_TABLES."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/extrausers.bbclass:67
#     ""
# pre-expansion value:
#   ""
USERADDEXTENSION=""
#
# $USERADD_ERROR_DYNAMIC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:454
#     [doc] "If set to 'error', forces the OpenEmbedded build system to produce an error if the user identification (uid) and group identification (gid) values are not defined in any of the files listed in USERADD_UID_TABLES and USERADD_GID_TABLES. If set to 'warn', a warning will be issued instead."
#
# $USERADD_GID_TABLES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:455
#     [doc] "Specifies a password file to use for obtaining static group identification (gid) values when the OpenEmbedded build system adds a group to the system during package installation."
#
# $USERADD_PACKAGES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:456
#     [doc] "When a recipe inherits the useradd class, this variable specifies the individual packages within the recipe that require users and/or groups to be added."
#
# $USERADD_PARAM
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:457
#     [doc] "When a recipe inherits the useradd class, this variable specifies for a package what parameters should be passed to the useradd command if you wish to add a user to the system when the package is installed."
#
# $USERADD_UID_TABLES
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:458
#     [doc] "Specifies a password file to use for obtaining static user identification (uid) values when the OpenEmbedded build system adds a user to the system during package installation."
#
# $USER_CLASSES [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/defaultsetup.conf:20
#     ""
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:453
#     [doc] "List of additional classes to use when building images that enable extra features."
# pre-expansion value:
#   ""
USER_CLASSES=""
#
# $USE_DEPMOD
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:81
#     "1"
USE_DEPMOD="1"
#
# $USE_DEVFS [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:452
#     [doc] "When building images, specifies to populate or not /dev. This variable defaults to '1' (leave directory empty, surely because devtmpfs do the job). Set it to '0' to use makedevs (or consider using a custom file with IMAGE_DEVICE_TABLES)."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:80
#     "1"
# pre-expansion value:
#   "1"
USE_DEVFS="1"
#
# $USE_NLS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:120
#     [_defaultval] "${@bb.utils.contains('DISTRO_FEATURES', 'libc-locale-code', 'yes', 'no', d)}"
USE_NLS="yes"
#
# $USING_WIC
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:39
#     "${@bb.utils.contains_any('IMAGE_FSTYPES', 'wic ' + ' '.join('wic.%s' % c for c in '${CONVERSIONTYPES}'.split()), '1', '', d)}"
USING_WIC=""
#
# $USRBINPATH [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:79
#     "${bindir}"
#   override[class-native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:80
#     "/usr/bin"
#   override[class-nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:81
#     "/usr/bin"
# pre-expansion value:
#   "${bindir}"
USRBINPATH="/usr/bin"
#
# $USRBINPATH_class-native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:80
#     "/usr/bin"
USRBINPATH_class-native="/usr/bin"
#
# $USRBINPATH_class-nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:81
#     "/usr/bin"
USRBINPATH_class-nativesdk="/usr/bin"
#
# $VIRTUAL-RUNTIME_alsa-state
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:26
#     "alsa-state"
VIRTUAL-RUNTIME_alsa-state="alsa-state"
#
# $VIRTUAL-RUNTIME_apm
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:25
#     "apm"
VIRTUAL-RUNTIME_apm="apm"
#
# $VIRTUAL-RUNTIME_base-utils
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:29
#     "busybox"
VIRTUAL-RUNTIME_base-utils="busybox"
#
# $VIRTUAL-RUNTIME_base-utils-hwclock
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:30
#     "busybox-hwclock"
VIRTUAL-RUNTIME_base-utils-hwclock="busybox-hwclock"
#
# $VIRTUAL-RUNTIME_getopt
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:27
#     "util-linux-getopt"
VIRTUAL-RUNTIME_getopt="util-linux-getopt"
#
# $VIRTUAL-RUNTIME_update-alternatives
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:24
#     "update-alternatives-opkg"
VIRTUAL-RUNTIME_update-alternatives="update-alternatives-opkg"
#
# $VIRTUAL-RUNTIME_wireless-tools
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-providers.inc:28
#     "iw wireless-tools"
VIRTUAL-RUNTIME_wireless-tools="iw wireless-tools"
#
# $WARN_QA [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:463
#     [doc] "Specifies the quality assurance checks whose failures are reported as warnings by the OpenEmbedded build system."
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/insane.bbclass:36
#     "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi             textrel already-stripped incompatible-license files-invalid             installed-vs-shipped compile-host-path install-host-path             pn-overrides infodir build-deps             unknown-configure-option symlink-to-sysroot multilib             invalid-packageconfig host-user-contaminated             "
# pre-expansion value:
#   "ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi             textrel already-stripped incompatible-license files-invalid             installed-vs-shipped compile-host-path install-host-path             pn-overrides infodir build-deps             unknown-configure-option symlink-to-sysroot multilib             invalid-packageconfig host-user-contaminated             "
WARN_QA="ldflags useless-rpaths rpaths staticdev libdir xorg-driver-abi             textrel already-stripped incompatible-license files-invalid             installed-vs-shipped compile-host-path install-host-path             pn-overrides infodir build-deps             unknown-configure-option symlink-to-sysroot multilib             invalid-packageconfig host-user-contaminated             "
#
# $WHITELIST_GPL-3.0
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/distro/include/default-distrovars.inc:25
#     ""
WHITELIST_GPL-3.0=""
#
# $WICVARS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:6
#     "           BBLAYERS IMGDEPLOYDIR DEPLOY_DIR_IMAGE FAKEROOTCMD IMAGE_BASENAME IMAGE_BOOT_FILES            IMAGE_LINK_NAME IMAGE_ROOTFS INITRAMFS_FSTYPES INITRD INITRD_LIVE ISODIR RECIPE_SYSROOT_NATIVE            ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS TRANSLATED_TARGET_ARCH"
WICVARS="           BBLAYERS IMGDEPLOYDIR DEPLOY_DIR_IMAGE FAKEROOTCMD IMAGE_BASENAME IMAGE_BOOT_FILES            IMAGE_LINK_NAME IMAGE_ROOTFS INITRAMFS_FSTYPES INITRD INITRD_LIVE ISODIR RECIPE_SYSROOT_NATIVE            ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS TRANSLATED_TARGET_ARCH"
#
# $WIC_CREATE_EXTRA_ARGS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:23
#     ""
WIC_CREATE_EXTRA_ARGS=""
#
# $WKS_FILE [2 operations]
#   set? /home/mnhu/projects/pil/yocto/meta-pil/conf/distro/basic.inc:12
#     "${MACHINE}.wks"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:8
#     [_defaultval] "${IMAGE_BASENAME}.${MACHINE}.wks"
# pre-expansion value:
#   "${MACHINE}.wks"
WKS_FILE="rpi2.wks"
#
# $WKS_FILES
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:9
#     "${WKS_FILE} ${IMAGE_BASENAME}.wks"
WKS_FILES="rpi2.wks rescue-rootfs.wks"
#
# $WKS_FILE_CHECKSUM
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:40
#     "${@'${WKS_FULL_PATH}:%s' % os.path.exists('${WKS_FULL_PATH}') if '${USING_WIC}' else ''}"
WKS_FILE_CHECKSUM=""
#
# $WKS_FILE_DEPENDS
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:43
#     [_defaultval] ""
WKS_FILE_DEPENDS=""
#
# $WKS_FULL_PATH
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:11
#     "${@wks_search(d.getVar('WKS_FILES').split(), d.getVar('WKS_SEARCH_PATH')) or ''}"
WKS_FULL_PATH="/home/mnhu/projects/pil/yocto/meta-pil/wic/rpi2.wks"
#
# $WKS_SEARCH_PATH
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:10
#     "${THISDIR}:${@':'.join('%s/wic' % p for p in '${BBPATH}'.split(':'))}:${@':'.join('%s/scripts/lib/wic/canned-wks' % l for l in '${BBPATH}:${COREBASE}'.split(':'))}"
WKS_SEARCH_PATH="/home/mnhu/projects/pil/yocto/meta-pil/recipes-filesystems:/home/mnhu/projects/pil/yocto/wic:/home/mnhu/projects/pil/yocto/meta-poky/meta/wic:/home/mnhu/projects/pil/yocto/meta-qt5/wic:/home/mnhu/projects/pil/yocto/meta-rauc/wic:/home/mnhu/projects/pil/yocto/meta-pil/wic:/home/mnhu/projects/pil/yocto/wic:/home/mnhu/projects/pil/yocto/scripts/lib/wic/canned-wks:/home/mnhu/projects/pil/yocto/meta-poky/meta/scripts/lib/wic/canned-wks:/home/mnhu/projects/pil/yocto/meta-qt5/scripts/lib/wic/canned-wks:/home/mnhu/projects/pil/yocto/meta-rauc/scripts/lib/wic/canned-wks:/home/mnhu/projects/pil/yocto/meta-pil/scripts/lib/wic/canned-wks:/home/mnhu/projects/pil/yocto/scripts/lib/wic/canned-wks:/home/mnhu/projects/pil/yocto/meta-poky/scripts/lib/wic/canned-wks"
#
# $WORKDIR [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:347
#     "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:464
#     [doc] "The pathname of the working directory in which the OpenEmbedded build system builds a recipe. This directory is located within the TMPDIR directory structure and changes as different packages are built."
# pre-expansion value:
#   "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
WORKDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0"
#
# $XAUTHORITY
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/terminal.bbclass:9
#     "${HOME}/.Xauthority"
XAUTHORITY="/home/mnhu/.Xauthority"
#
# $XLIBS_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:616
#     "http://xlibs.freedesktop.org/release"
XLIBS_MIRROR="http://xlibs.freedesktop.org/release"
#
# $XORG_MIRROR
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:617
#     "http://xorg.freedesktop.org/releases"
XORG_MIRROR="http://xorg.freedesktop.org/releases"
#
# $XZ_COMPRESSION_LEVEL
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:46
#     "-3"
XZ_COMPRESSION_LEVEL="-3"
#
# $XZ_INTEGRITY_CHECK
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:47
#     "crc32"
XZ_INTEGRITY_CHECK="crc32"
#
# $XZ_THREADS
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:48
#     "-T 0"
XZ_THREADS="-T 0"
#
# $ZIP_COMPRESSION_LEVEL
#   set? /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types.bbclass:50
#     "-9"
ZIP_COMPRESSION_LEVEL="-9"
#
# $_task_deps
#   set build.py:823 [add_tasks]
#     "{'noexec': {'do_package_write_ipk': '1', 'do_compile': '1', 'do_install': '1', 'do_unpack': '1', 'do_fetch': '1', 'do_patch': '1', 'do_bundle_initramfs': '1', 'do_package': '1', 'do_build': '1', 'do_packagedata': '1', 'do_configure': '1'}, 'recrdeptask': {'do_populate_sdk': ' do_packagedata do_package_write_rpm do_package_write_ipk do_package_write_deb', 'do_rootfs': ' do_populate_lic do_package_write_ipk do_packagedata', 'do_image': ' do_populate_lic', 'do_sdk_depends': ' do_packagedata do_package_write_rpm do_package_write_ipk do_package_write_deb do_populate_lic do_package_qa do_populate_sysroot do_deploy ', 'do_fetchall': 'do_fetchall do_fetch', 'do_checkuriall': 'do_checkuriall do_checkuri', 'do_build': 'do_build'}, 'depends': {'do_rootfs': ' opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot      makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot     virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot     virtual/kernel:do_packagedata  pigz-native:do_populate_sysroot u-boot-mkimage-native:do_populate_sysroot', 'do_bundle_initramfs': ' virtual/kernel:do_bundle_initramfs', 'do_sdk_depends': 'rescue-rootfs:do_image_tar rescue-rootfs:do_image_cpio rescue-rootfs:do_image virtual/kernel:do_deploy opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot virtual/kernel:do_packagedata pigz-native:do_populate_sysroot u-boot-mkimage-native:do_populate_sysroot meta-extsdk-toolchain:do_populate_sysroot', 'do_package_write_ipk': ' ', 'do_populate_sdk': ' opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot pixz-native:do_populate_sysroot   opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot      makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot     virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot     virtual/kernel:do_packagedata  pigz-native:do_populate_sysroot u-boot-mkimage-native:do_populate_sysroot', 'do_patch': 'quilt-native:do_populate_sysroot', 'do_populate_sdk_ext': ' opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot pixz-native:do_populate_sysroot   opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot      makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot     virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot     virtual/kernel:do_packagedata  pigz-native:do_populate_sysroot u-boot-mkimage-native:do_populate_sysroot                                 buildtools-tarball:do_populate_sdk uninative-tarball:do_populate_sdk                                                                  meta-extsdk-toolchain:do_locked_sigs', 'do_install': ' virtual/fakeroot-native:do_populate_sysroot', 'do_devshell': ' virtual/fakeroot-native:do_populate_sysroot', 'do_package_setscene': ' virtual/fakeroot-native:do_populate_sysroot', 'do_package': ' virtual/fakeroot-native:do_populate_sysroot', 'do_image_complete': '', 'do_build': ' virtual/kernel:do_deploy'}, 'parents': {'do_image_tar': ['do_image'], 'do_clean': [], 'do_populate_lic_setscene': [], 'do_image_cpio': ['do_image'], 'do_prepare_recipe_sysroot': ['do_fetch'], 'do_sdk_depends': [], 'do_listtasks': [], 'do_bundle_initramfs': ['do_image_complete'], 'do_cleanall': ['do_cleansstate'], 'do_package_qa_setscene': [], 'do_populate_lic': ['do_patch'], 'do_populate_sdk': [], 'do_compile': ['do_configure'], 'do_checkuri': [], 'do_package_setscene': [], 'do_rootfs': ['do_prepare_recipe_sysroot'], 'do_deploy_setscene': [], 'do_unpack': ['do_fetch'], 'do_fetch': [], 'do_image': ['do_rootfs'], 'do_patch': ['do_unpack'], 'do_cleansstate': ['do_clean'], 'do_package_write_ipk': ['do_packagedata', 'do_package'], 'do_package_write_ipk_setscene': [], 'do_checkuriall': ['do_checkuri'], 'do_packagedata': ['do_package'], 'do_packagedata_setscene': [], 'do_populate_sysroot_setscene': [], 'do_install': ['do_compile'], 'do_populate_sdk_ext': ['do_sdk_depends'], 'do_configure': ['do_prepare_recipe_sysroot', 'do_patch'], 'do_devshell': ['do_patch'], 'do_devpyshell': ['do_patch'], 'do_image_qa': ['do_image_complete'], 'do_fetchall': ['do_fetch'], 'do_package': ['do_install'], 'do_image_complete': ['do_image_tar', 'do_image_cpio', 'do_image'], 'do_rootfs_wicenv': ['do_image'], 'do_build': ['do_image_qa', 'do_image_complete', 'do_image', 'do_rootfs', 'do_populate_lic', 'do_packagedata']}, 'nostamp': {'do_cleansstate': '1', 'do_clean': '1', 'do_populate_sdk_ext': '1', 'do_devshell': '1', 'do_devpyshell': '1', 'do_checkuri': '1', 'do_listtasks': '1', 'do_cleanall': '1', 'do_checkuriall': '1', 'do_bundle_initramfs': '1'}, 'rdepends': {'do_populate_sdk': 'packagegroup-core-standalone-sdk-target:do_package_write_ipk packagegroup-core-standalone-sdk-target:do_packagedata packagegroup-core-boot:do_package_write_ipk packagegroup-core-boot:do_packagedata packagegroup-core-ssh-openssh:do_package_write_ipk packagegroup-core-ssh-openssh:do_packagedata e2fsprogs:do_package_write_ipk e2fsprogs:do_packagedata e2fsprogs-tune2fs:do_package_write_ipk e2fsprogs-tune2fs:do_packagedata dosfstools:do_package_write_ipk dosfstools:do_packagedata mtd-utils:do_package_write_ipk mtd-utils:do_packagedata mtd-utils-jffs2:do_package_write_ipk mtd-utils-jffs2:do_packagedata mtd-utils-misc:do_package_write_ipk mtd-utils-misc:do_packagedata u-boot-fw-utils:do_package_write_ipk u-boot-fw-utils:do_packagedata busybox-syslog:do_package_write_ipk busybox-syslog:do_packagedata busybox-watchdog:do_package_write_ipk busybox-watchdog:do_packagedata busybox-ifplugd:do_package_write_ipk busybox-ifplugd:do_packagedata dhcp-client:do_package_write_ipk dhcp-client:do_packagedata openssh-sftp-server:do_package_write_ipk openssh-sftp-server:do_packagedata openssh-sftp:do_package_write_ipk openssh-sftp:do_packagedata rauc:do_package_write_ipk rauc:do_packagedata dbus:do_package_write_ipk dbus:do_packagedata system-init:do_package_write_ipk system-init:do_packagedata rescue-init:do_package_write_ipk rescue-init:do_packagedata run-postinsts:do_package_write_ipk run-postinsts:do_packagedata base-passwd:do_package_write_ipk base-passwd:do_packagedata shadow:do_package_write_ipk shadow:do_packagedata nativesdk-packagegroup-sdk-host:do_package_write_ipk nativesdk-packagegroup-sdk-host:do_packagedata packagegroup-cross-canadian-rpi2:do_package_write_ipk packagegroup-cross-canadian-rpi2:do_packagedata', 'do_sdk_depends': 'meta-environment-extsdk-rpi2:do_package_write_ipk meta-environment-extsdk-rpi2:do_packagedata', 'do_populate_sdk_ext': ' rescue-rootfs:do_build'}, 'recideptask': {'do_fetchall': 'do_build', 'do_checkuriall': 'do_build'}, 'rdeptask': {'do_package_write_ipk': ''}, 'fakeroot': {'do_populate_sdk': '1', 'do_rootfs': '1', 'do_image_qa': '1', 'do_populate_sdk_ext': '1', 'do_install': '1', 'do_image': '1', 'do_package_setscene': '1', 'do_image_tar': '1', 'do_package': '1', 'do_image_complete': '1', 'do_image_cpio': '1'}, 'umask': {'do_rootfs': '022', 'do_compile': '022', 'do_unpack': '022', 'do_configure': '022', 'do_image': '022', 'do_package_write_ipk': '022', 'do_package': '022', 'do_image_complete': '022', 'do_install': '022'}, 'deptask': {'do_prepare_recipe_sysroot': 'do_populate_sysroot'}, 'tasks': ['do_patch', 'do_populate_sysroot_setscene', 'do_prepare_recipe_sysroot', 'do_listtasks', 'do_clean', 'do_checkuri', 'do_checkuriall', 'do_fetchall', 'do_fetch', 'do_unpack', 'do_configure', 'do_compile', 'do_install', 'do_build', 'do_cleansstate', 'do_cleanall', 'do_package_qa_setscene', 'do_package', 'do_package_setscene', 'do_packagedata', 'do_packagedata_setscene', 'do_package_write_ipk_setscene', 'do_package_write_ipk', 'do_devshell', 'do_devpyshell', 'do_populate_lic', 'do_populate_lic_setscene', 'do_deploy_setscene', 'do_populate_sdk', 'do_sdk_depends', 'do_populate_sdk_ext', 'do_rootfs_wicenv', 'do_rootfs', 'do_image', 'do_image_complete', 'do_image_qa', 'do_bundle_initramfs', 'do_image_cpio', 'do_image_tar']}"
_task_deps="{'noexec': {'do_package_write_ipk': '1', 'do_compile': '1', 'do_install': '1', 'do_unpack': '1', 'do_fetch': '1', 'do_patch': '1', 'do_bundle_initramfs': '1', 'do_package': '1', 'do_build': '1', 'do_packagedata': '1', 'do_configure': '1'}, 'recrdeptask': {'do_populate_sdk': ' do_packagedata do_package_write_rpm do_package_write_ipk do_package_write_deb', 'do_rootfs': ' do_populate_lic do_package_write_ipk do_packagedata', 'do_image': ' do_populate_lic', 'do_sdk_depends': ' do_packagedata do_package_write_rpm do_package_write_ipk do_package_write_deb do_populate_lic do_package_qa do_populate_sysroot do_deploy ', 'do_fetchall': 'do_fetchall do_fetch', 'do_checkuriall': 'do_checkuriall do_checkuri', 'do_build': 'do_build'}, 'depends': {'do_rootfs': ' opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot      makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot     virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot     virtual/kernel:do_packagedata  pigz-native:do_populate_sysroot u-boot-mkimage-native:do_populate_sysroot', 'do_bundle_initramfs': ' virtual/kernel:do_bundle_initramfs', 'do_sdk_depends': 'rescue-rootfs:do_image_tar rescue-rootfs:do_image_cpio rescue-rootfs:do_image virtual/kernel:do_deploy opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot virtual/kernel:do_packagedata pigz-native:do_populate_sysroot u-boot-mkimage-native:do_populate_sysroot meta-extsdk-toolchain:do_populate_sysroot', 'do_package_write_ipk': ' ', 'do_populate_sdk': ' opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot pixz-native:do_populate_sysroot   opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot      makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot     virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot     virtual/kernel:do_packagedata  pigz-native:do_populate_sysroot u-boot-mkimage-native:do_populate_sysroot', 'do_patch': 'quilt-native:do_populate_sysroot', 'do_populate_sdk_ext': ' opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot pixz-native:do_populate_sysroot   opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot      makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ldconfig-native:do_populate_sysroot     virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot     virtual/kernel:do_packagedata  pigz-native:do_populate_sysroot u-boot-mkimage-native:do_populate_sysroot                                 buildtools-tarball:do_populate_sdk uninative-tarball:do_populate_sdk                                                                  meta-extsdk-toolchain:do_locked_sigs', 'do_install': ' virtual/fakeroot-native:do_populate_sysroot', 'do_devshell': ' virtual/fakeroot-native:do_populate_sysroot', 'do_package_setscene': ' virtual/fakeroot-native:do_populate_sysroot', 'do_package': ' virtual/fakeroot-native:do_populate_sysroot', 'do_image_complete': '', 'do_build': ' virtual/kernel:do_deploy'}, 'parents': {'do_image_tar': ['do_image'], 'do_clean': [], 'do_populate_lic_setscene': [], 'do_image_cpio': ['do_image'], 'do_prepare_recipe_sysroot': ['do_fetch'], 'do_sdk_depends': [], 'do_listtasks': [], 'do_bundle_initramfs': ['do_image_complete'], 'do_cleanall': ['do_cleansstate'], 'do_package_qa_setscene': [], 'do_populate_lic': ['do_patch'], 'do_populate_sdk': [], 'do_compile': ['do_configure'], 'do_checkuri': [], 'do_package_setscene': [], 'do_rootfs': ['do_prepare_recipe_sysroot'], 'do_deploy_setscene': [], 'do_unpack': ['do_fetch'], 'do_fetch': [], 'do_image': ['do_rootfs'], 'do_patch': ['do_unpack'], 'do_cleansstate': ['do_clean'], 'do_package_write_ipk': ['do_packagedata', 'do_package'], 'do_package_write_ipk_setscene': [], 'do_checkuriall': ['do_checkuri'], 'do_packagedata': ['do_package'], 'do_packagedata_setscene': [], 'do_populate_sysroot_setscene': [], 'do_install': ['do_compile'], 'do_populate_sdk_ext': ['do_sdk_depends'], 'do_configure': ['do_prepare_recipe_sysroot', 'do_patch'], 'do_devshell': ['do_patch'], 'do_devpyshell': ['do_patch'], 'do_image_qa': ['do_image_complete'], 'do_fetchall': ['do_fetch'], 'do_package': ['do_install'], 'do_image_complete': ['do_image_tar', 'do_image_cpio', 'do_image'], 'do_rootfs_wicenv': ['do_image'], 'do_build': ['do_image_qa', 'do_image_complete', 'do_image', 'do_rootfs', 'do_populate_lic', 'do_packagedata']}, 'deptask': {'do_prepare_recipe_sysroot': 'do_populate_sysroot'}, 'rdepends': {'do_populate_sdk': 'packagegroup-core-standalone-sdk-target:do_package_write_ipk packagegroup-core-standalone-sdk-target:do_packagedata packagegroup-core-boot:do_package_write_ipk packagegroup-core-boot:do_packagedata packagegroup-core-ssh-openssh:do_package_write_ipk packagegroup-core-ssh-openssh:do_packagedata e2fsprogs:do_package_write_ipk e2fsprogs:do_packagedata e2fsprogs-tune2fs:do_package_write_ipk e2fsprogs-tune2fs:do_packagedata dosfstools:do_package_write_ipk dosfstools:do_packagedata mtd-utils:do_package_write_ipk mtd-utils:do_packagedata mtd-utils-jffs2:do_package_write_ipk mtd-utils-jffs2:do_packagedata mtd-utils-misc:do_package_write_ipk mtd-utils-misc:do_packagedata u-boot-fw-utils:do_package_write_ipk u-boot-fw-utils:do_packagedata busybox-syslog:do_package_write_ipk busybox-syslog:do_packagedata busybox-watchdog:do_package_write_ipk busybox-watchdog:do_packagedata busybox-ifplugd:do_package_write_ipk busybox-ifplugd:do_packagedata dhcp-client:do_package_write_ipk dhcp-client:do_packagedata openssh-sftp-server:do_package_write_ipk openssh-sftp-server:do_packagedata openssh-sftp:do_package_write_ipk openssh-sftp:do_packagedata rauc:do_package_write_ipk rauc:do_packagedata dbus:do_package_write_ipk dbus:do_packagedata system-init:do_package_write_ipk system-init:do_packagedata rescue-init:do_package_write_ipk rescue-init:do_packagedata run-postinsts:do_package_write_ipk run-postinsts:do_packagedata base-passwd:do_package_write_ipk base-passwd:do_packagedata shadow:do_package_write_ipk shadow:do_packagedata nativesdk-packagegroup-sdk-host:do_package_write_ipk nativesdk-packagegroup-sdk-host:do_packagedata packagegroup-cross-canadian-rpi2:do_package_write_ipk packagegroup-cross-canadian-rpi2:do_packagedata', 'do_sdk_depends': 'meta-environment-extsdk-rpi2:do_package_write_ipk meta-environment-extsdk-rpi2:do_packagedata', 'do_populate_sdk_ext': ' rescue-rootfs:do_build'}, 'recideptask': {'do_fetchall': 'do_build', 'do_checkuriall': 'do_build'}, 'rdeptask': {'do_package_write_ipk': ''}, 'fakeroot': {'do_populate_sdk': '1', 'do_rootfs': '1', 'do_image_qa': '1', 'do_populate_sdk_ext': '1', 'do_install': '1', 'do_image': '1', 'do_package_setscene': '1', 'do_image_tar': '1', 'do_package': '1', 'do_image_complete': '1', 'do_image_cpio': '1'}, 'umask': {'do_rootfs': '022', 'do_compile': '022', 'do_unpack': '022', 'do_configure': '022', 'do_image': '022', 'do_package_write_ipk': '022', 'do_package': '022', 'do_image_complete': '022', 'do_install': '022'}, 'nostamp': {'do_cleansstate': '1', 'do_clean': '1', 'do_populate_sdk_ext': '1', 'do_devshell': '1', 'do_devpyshell': '1', 'do_checkuri': '1', 'do_listtasks': '1', 'do_cleanall': '1', 'do_checkuriall': '1', 'do_bundle_initramfs': '1'}, 'tasks': ['do_patch', 'do_populate_sysroot_setscene', 'do_prepare_recipe_sysroot', 'do_listtasks', 'do_clean', 'do_checkuri', 'do_checkuriall', 'do_fetchall', 'do_fetch', 'do_unpack', 'do_configure', 'do_compile', 'do_install', 'do_build', 'do_cleansstate', 'do_cleanall', 'do_package_qa_setscene', 'do_package', 'do_package_setscene', 'do_packagedata', 'do_packagedata_setscene', 'do_package_write_ipk_setscene', 'do_package_write_ipk', 'do_devshell', 'do_devpyshell', 'do_populate_lic', 'do_populate_lic_setscene', 'do_deploy_setscene', 'do_populate_sdk', 'do_sdk_depends', 'do_populate_sdk_ext', 'do_rootfs_wicenv', 'do_rootfs', 'do_image', 'do_image_complete', 'do_image_qa', 'do_bundle_initramfs', 'do_image_cpio', 'do_image_tar']}"
#
# $base_bindir [4 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:21
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:21
#     "${base_prefix}/bin"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:50
#     "/bin"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:66
#     "/bin"
# pre-expansion value:
#   "${base_prefix}/bin"
export base_bindir="/bin"
#
# $base_bindir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:50
#     "/bin"
base_bindir_native="/bin"
#
# $base_bindir_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:66
#     "/bin"
base_bindir_nativesdk="/bin"
#
# $base_dep
#   _prepend ast.py:214 [eval]
#     "def base_dep_prepend(d):
#         #
#         # Ideally this will check a flag so we will operate properly in
#         # the case where host == build == target, for now we don't work in
#         # that case though.
#         #
#     
#         deps = ""
#         # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command.  Whether or  not
#         # we need that built is the responsibility of the patch function / class, not
#         # the application.
#         if not d.getVar('INHIBIT_DEFAULT_DEPS', False):
#             if (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
#                 deps += " virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs virtual/libc "
#         return deps
#     "
base_dep="def base_dep_prepend(d): \
    # \
    # Ideally this will check a flag so we will operate properly in \
    # the case where host == build == target, for now we don't work in \
    # that case though. \
    # \
 \
    deps = \"\" \
    # INHIBIT_DEFAULT_DEPS doesn't apply to the patch command.  Whether or  not \
    # we need that built is the responsibility of the patch function / class, not \
    # the application. \
    if not d.getVar('INHIBIT_DEFAULT_DEPS', False): \
        if (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')): \
            deps += \" virtual/arm-oe-linux-gnueabi-gcc virtual/arm-oe-linux-gnueabi-compilerlibs virtual/libc \" \
    return deps \
"
#
# $base_libdir [4 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:23
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:23
#     "${base_prefix}/${baselib}"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:59
#     "/lib"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:70
#     "/lib"
# pre-expansion value:
#   "${base_prefix}/${baselib}"
export base_libdir="/lib"
#
# $base_libdir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:59
#     "/lib"
base_libdir_native="/lib"
#
# $base_libdir_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:70
#     "/lib"
base_libdir_nativesdk="/lib"
#
# $base_prefix [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:16
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:16
#     ""
# pre-expansion value:
#   ""
export base_prefix=""
#
# $base_sbindir [4 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:22
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:22
#     "${base_prefix}/sbin"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:51
#     "/sbin"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:67
#     "/sbin"
# pre-expansion value:
#   "${base_prefix}/sbin"
export base_sbindir="/sbin"
#
# $base_sbindir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:51
#     "/sbin"
base_sbindir_native="/sbin"
#
# $base_sbindir_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:67
#     "/sbin"
base_sbindir_nativesdk="/sbin"
#
# $baselib [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:10
#     "${BASELIB}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:11
#     [vardepvalue] "${baselib}"
# pre-expansion value:
#   "${BASELIB}"
baselib="lib"
#
# $bindir [6 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:41
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:41
#     "${exec_prefix}/bin"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:54
#     "${prefix_native}/bin"
#   override[cross]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:61
#     "/bin"
#   override[crossscripts]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:62
#     "${bindir}/crossscripts"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:64
#     "${prefix_nativesdk}/bin"
# pre-expansion value:
#   "${exec_prefix}/bin"
export bindir="/usr/bin"
#
# $bindir_cross
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:61
#     "/bin"
bindir_cross="/bin"
#
# $bindir_crossscripts
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:62
#     "${bindir}/crossscripts"
bindir_crossscripts="/usr/bin/crossscripts"
#
# $bindir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:54
#     "${prefix_native}/bin"
bindir_native="/usr/bin"
#
# $bindir_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:64
#     "${prefix_nativesdk}/bin"
bindir_nativesdk="/usr/bin"
#
# $datadir [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:31
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:31
#     "${prefix}/share"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:60
#     "${prefix_native}/share"
# pre-expansion value:
#   "${prefix}/share"
export datadir="/usr/share"
#
# $datadir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:60
#     "${prefix_native}/share"
datadir_native="/usr/share"
#
# $do_bootimg
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:7
#     [doc] "Creates a bootable live image"
#
# $do_compile_kernelmodules
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:16
#     [doc] "Compiles loadable modules for the Linux kernel"
#
# $do_compile_ptest_base
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:17
#     [doc] "Compiles the runtime test suite included in the software being built"
#
# $do_configure_ptest_base
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:19
#     [doc] "Configures the runtime test suite included in the software being built"
#
# $do_deploy [8 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:20
#     [doc] "Writes deployable output files to the deploy directory"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass:3
#     [sstate-inputdirs] "${DEPLOYDIR}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass:4
#     [sstate-outputdirs] "${DEPLOY_DIR_IMAGE}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass:10
#     [dirs] "${DEPLOYDIR} ${B}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/deploy.bbclass:11
#     [stamp-extra-info] "${MACHINE}"
#   prepend sstate.bbclass:100 [__anon_101__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_sstate_bbclass]
#     [prefuncs] "sstate_task_prefunc "
#   append sstate.bbclass:101 [__anon_101__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_sstate_bbclass]
#     [postfuncs] " sstate_task_postfunc"
#   override[setscene]:set ast.py:195 [eval]
#     "    sstate_setscene(d)
#     "
# pre-expansion value:
#   "None"
#
# $do_diffconfig
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:23
#     [doc] "Compares the old and new config files after running do_menuconfig for the kernel"
#
# $do_image_wic [3 operations]
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:41
#     [file-checksums] "${WKS_FILE_CHECKSUM}"
#   append /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image_types_wic.bbclass:42
#     [depends] "wic-tools:do_populate_sysroot"
#   set build.py:847 [addtask]
#     [deps] "['do_rootfs_wicenv']"
# pre-expansion value:
#   "None"
#
# $do_install_ptest_base
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:27
#     [doc] "Copies the runtime test suite files from the compilation directory to a holding area"
#
# $do_kernel_checkout
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:28
#     [doc] "Checks out source/meta branches for a linux-yocto style kernel"
#
# $do_kernel_configcheck
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:29
#     [doc] "Validates the kernel configuration for a linux-yocto style kernel"
#
# $do_kernel_configme
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:30
#     [doc] "Assembles the kernel configuration for a linux-yocto style kernel"
#
# $do_kernel_link_images
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:31
#     [doc] "Creates a symbolic link in arch/$arch/boot for vmlinux and vmlinuz kernel images"
#
# $do_menuconfig
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:33
#     [doc] "Runs 'make menuconfig' for the kernel"
#
# $do_package_index
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:35
#     [doc] "Creates or updates the index in the Package Feed area"
#
# $do_package_write_deb [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:37
#     [doc] "Creates the actual DEB packages and places them in the Package Feed area"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass:18
#     [rdeptask] "${DEBIANRDEP}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:609
#     [noexec] "1"
# pre-expansion value:
#   "None"
#
# $do_package_write_rpm [3 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:39
#     [doc] "Creates the actual RPM packages and places them in the Package Feed area"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass:20
#     [rdeptask] "${DEBIANRDEP}"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/image.bbclass:610
#     [noexec] "1"
# pre-expansion value:
#   "None"
#
# $do_package_write_tar [2 operations]
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:40
#     [doc] "Creates tar archives for packages and places them in the Package Feed area"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/debian.bbclass:19
#     [rdeptask] "${DEBIANRDEP}"
# pre-expansion value:
#   "None"
#
# $do_rm_work
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:46
#     [doc] "Removes work files after the build system has finished with them"
#
# $do_rm_work_all
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:47
#     [doc] "Top-level task for removing work files after the build system has finished with them"
#
# $do_savedefconfig
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:49
#     [doc] "Creates a minimal Linux kernel configuration file"
#
# $do_sizecheck
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:50
#     [doc] "Checks the size of the kernel image against KERNEL_IMAGE_MAXSIZE (if set)"
#
# $do_spdx
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:51
#     [doc] "A build stage that takes the source code and scans it on a remote FOSSOLOGY server in order to produce an SPDX document"
#
# $do_strip
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:52
#     [doc] "Strips unneeded sections out of the Linux kernel image"
#
# $do_testimage
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:53
#     [doc] "Boots an image and performs runtime tests within the image"
#
# $do_testimage_auto
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:54
#     [doc] "Boots an image and performs runtime tests within the image immediately after it has been built"
#
# $do_testsdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:55
#     [doc] "Installs an SDK and performs runtime tests on the tools installed by it"
#
# $do_uboot_mkimage
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:56
#     [doc] "Creates a uImage file from the kernel for the U-Boot bootloader"
#
# $do_validate_branches
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:58
#     [doc] "Ensures that the source/meta branches are on the locations specified by their SRCREV values for a linux-yocto style kernel"
#
# $do_vmimg
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/documentation.conf:59
#     [doc] "Creates an image for use with VMware or VirtualBox compatible virtual machine hosts (based on IMAGE_FSTYPES either .vmdk or .vdi)"
#
# $docdir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:34
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:34
#     "${datadir}/doc"
# pre-expansion value:
#   "${datadir}/doc"
export docdir="/usr/share/doc"
#
# $exec_prefix [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:18
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:18
#     "${prefix}"
# pre-expansion value:
#   "${prefix}"
export exec_prefix="/usr"
#
# $includedir [4 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:45
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:45
#     "${exec_prefix}/include"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:56
#     "${prefix_native}/include"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:68
#     "${prefix_nativesdk}/include"
# pre-expansion value:
#   "${exec_prefix}/include"
export includedir="/usr/include"
#
# $includedir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:56
#     "${prefix_native}/include"
includedir_native="/usr/include"
#
# $includedir_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:68
#     "${prefix_nativesdk}/include"
includedir_nativesdk="/usr/include"
#
# $infodir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:32
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:32
#     "${datadir}/info"
# pre-expansion value:
#   "${datadir}/info"
export infodir="/usr/share/info"
#
# $libdir [4 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:43
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:43
#     "${exec_prefix}/${baselib}"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:57
#     "${prefix_native}/lib"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:69
#     "${prefix_nativesdk}/lib"
# pre-expansion value:
#   "${exec_prefix}/${baselib}"
export libdir="/usr/lib"
#
# $libdir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:57
#     "${prefix_native}/lib"
libdir_native="/usr/lib"
#
# $libdir_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:69
#     "${prefix_nativesdk}/lib"
libdir_nativesdk="/usr/lib"
#
# $libexecdir [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:44
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:44
#     "${exec_prefix}/libexec"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:58
#     "${prefix_native}/libexec"
# pre-expansion value:
#   "${exec_prefix}/libexec"
export libexecdir="/usr/libexec"
#
# $libexecdir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:58
#     "${prefix_native}/libexec"
libexecdir_native="/usr/libexec"
#
# $localedir
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:47
#     "${libdir}/locale"
localedir="/usr/lib/locale"
#
# $localstatedir [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:30
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:30
#     "${base_prefix}/var"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:71
#     "/var"
# pre-expansion value:
#   "${base_prefix}/var"
export localstatedir="/var"
#
# $localstatedir_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:71
#     "/var"
localstatedir_nativesdk="/var"
#
# $mandir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:33
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:33
#     "${datadir}/man"
# pre-expansion value:
#   "${datadir}/man"
export mandir="/usr/share/man"
#
# $nonarch_base_libdir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:24
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:24
#     "${base_prefix}/lib"
# pre-expansion value:
#   "${base_prefix}/lib"
export nonarch_base_libdir="/lib"
#
# $nonarch_libdir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:37
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:37
#     "${exec_prefix}/lib"
# pre-expansion value:
#   "${exec_prefix}/lib"
export nonarch_libdir="/usr/lib"
#
# $oldincludedir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:46
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:46
#     "${exec_prefix}/include"
# pre-expansion value:
#   "${exec_prefix}/include"
export oldincludedir="/usr/include"
#
# $prefix [4 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:17
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:17
#     "/usr"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:53
#     "/usr"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:63
#     "/usr"
# pre-expansion value:
#   "/usr"
export prefix="/usr"
#
# $prefix_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:53
#     "/usr"
prefix_native="/usr"
#
# $prefix_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:63
#     "/usr"
prefix_nativesdk="/usr"
#
# $sbindir [4 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:42
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:42
#     "${exec_prefix}/sbin"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:55
#     "${prefix_native}/sbin"
#   override[nativesdk]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:65
#     "${prefix_nativesdk}/sbin"
# pre-expansion value:
#   "${exec_prefix}/sbin"
export sbindir="/usr/sbin"
#
# $sbindir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:55
#     "${prefix_native}/sbin"
sbindir_native="/usr/sbin"
#
# $sbindir_nativesdk
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:65
#     "${prefix_nativesdk}/sbin"
sbindir_nativesdk="/usr/sbin"
#
# $servicedir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:28
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:28
#     "${base_prefix}/srv"
# pre-expansion value:
#   "${base_prefix}/srv"
export servicedir="/srv"
#
# $sharedstatedir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:29
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:29
#     "${base_prefix}/com"
# pre-expansion value:
#   "${base_prefix}/com"
export sharedstatedir="/com"
#
# $sysconfdir [3 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:27
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:27
#     "${base_prefix}/etc"
#   override[native]:set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:52
#     "/etc"
# pre-expansion value:
#   "${base_prefix}/etc"
export sysconfdir="/etc"
#
# $sysconfdir_native
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:52
#     "/etc"
sysconfdir_native="/etc"
#
# $systemd_system_unitdir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:36
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:36
#     "${nonarch_base_libdir}/systemd/system"
# pre-expansion value:
#   "${nonarch_base_libdir}/systemd/system"
export systemd_system_unitdir="/lib/systemd/system"
#
# $systemd_unitdir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:35
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:35
#     "${nonarch_base_libdir}/systemd"
# pre-expansion value:
#   "${nonarch_base_libdir}/systemd"
export systemd_unitdir="/lib/systemd"
#
# $systemd_user_unitdir [2 operations]
#   exported /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:38
#     [export] "1"
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:38
#     "${nonarch_libdir}/systemd/user"
# pre-expansion value:
#   "${nonarch_libdir}/systemd/user"
export systemd_user_unitdir="/usr/lib/systemd/user"
#
# $target_datadir
#   immediate /home/mnhu/projects/pil/yocto/meta-poky/meta/conf/bitbake.conf:77
#     "${datadir}"
target_datadir="/usr/share"
#
# $valid_archs
#   set /home/mnhu/projects/pil/yocto/meta-poky/meta/classes/kernel-arch.bbclass:17
#     "alpha cris ia64                i386 x86                m68knommu m68k ppc powerpc powerpc64 ppc64                 sparc sparc64                arm aarch64                m32r mips                sh sh64 um h8300                  parisc s390  v850                avr32 blackfin                microblaze                nios2 arc xtensa"
valid_archs="alpha cris ia64                i386 x86                m68knommu m68k ppc powerpc powerpc64 ppc64                 sparc sparc64                arm aarch64                m32r mips                sh sh64 um h8300                  parisc s390  v850                avr32 blackfin                microblaze                nios2 arc xtensa"
IMAGE_CMD_btrfs() {
	size=${ROOTFS_SIZE}
	if [ ${size} -lt 16384 ] ; then
		size=16384
		bbwarn "Rootfs size is too small for BTRFS. Filesystem will be extended to ${size}K"
	fi
	dd if=/dev/zero of=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.btrfs count=${size} bs=1024
	mkfs.btrfs  -r /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.btrfs
}

IMAGE_CMD_elf() {
	test -f /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.elf && rm -f /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.elf
	mkelfImage --kernel=/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/images/rpi2/uImage --initrd=/home/mnhu/projects/pil/yocto/tmp-glibc/deploy/images/rpi2/rescue-rootfs-rpi2.cpio.gz --output=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.elf --append='ramdisk_size=32768 root=/dev/ram0 rw console=' 
}

IMAGE_CMD_multiubi() {
	# Split MKUBIFS_ARGS_<name> and UBINIZE_ARGS_<name>
	for name in ${MULTIUBI_BUILD}; do
		eval local mkubifs_args=\"\$MKUBIFS_ARGS_${name}\"
		eval local ubinize_args=\"\$UBINIZE_ARGS_${name}\"

		multiubi_mkfs "${mkubifs_args}" "${ubinize_args}" "${name}"
	done
}

IMAGE_CMD_ubi() {
	multiubi_mkfs "${MKUBIFS_ARGS}" "${UBINIZE_ARGS}"
}

IMAGE_CMD_wic() {
	out="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224"
	wks="/home/mnhu/projects/pil/yocto/meta-pil/wic/rpi2.wks"
	if [ -z "$wks" ]; then
		bbfatal "No kickstart files from WKS_FILES were found: rpi2.wks rescue-rootfs.wks. Please set WKS_FILE or WKS_FILES appropriately."
	fi

	BUILDDIR="/home/mnhu/projects/pil/yocto" wic create "$wks" --vars "/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots/rpi2/imgdata/" -e "rescue-rootfs" -o "$out/" 
	mv "$out/$(basename "${wks%.wks}")"*.direct "$out.rootfs.wic"
	rm -rf "$out/"
}

IMAGE_POSTPROCESS_COMMAND() {
write_deploy_manifest; 
}

POPULATE_SDK_POST_HOST_COMMAND() {
 write_host_sdk_manifest; 
}

POPULATE_SDK_POST_TARGET_COMMAND() {
 rootfs_sysroot_relativelinks;  write_target_sdk_manifest ; write_sdk_test_data ; 
}

ROOTFS_POSTPROCESS_COMMAND() {
write_package_manifest; license_create_manifest;  zap_empty_root_password ;    rootfs_update_timestamp ;   write_image_test_data ;   empty_var_volatile; set_user_group; sort_passwd; 
}

ROOTFS_POSTUNINSTALL_COMMAND() {
write_image_manifest ;  
}

SDK_POSTPROCESS_COMMAND() {
 create_sdk_files; check_sdk_sysroots; tar_sdk; create_shar; 
}

base_do_compile() {
	if [ -e Makefile -o -e makefile -o -e GNUmakefile ]; then
		oe_runmake || die "make failed"
	else
		bbnote "nothing to compile"
	fi
}

base_do_configure() {
	if [ -n "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/configure.sstate" -a -e "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/configure.sstate" ]; then
		if [ "`cat /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/configure.sstate`" != "${BB_TASKHASH}" ]; then
			cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rescue-rootfs-1.0
			if [ "0" != "1" -a \( -e Makefile -o -e makefile -o -e GNUmakefile \) ]; then
				oe_runmake clean
			fi
			find /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rescue-rootfs-1.0 -ignore_readdir_race -name \*.la -delete
		fi
	fi
	if [ -n "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/configure.sstate" ]; then
		mkdir -p `dirname /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/configure.sstate`
		echo ${BB_TASKHASH} > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/configure.sstate
	fi
}

base_do_install() {
	:
}

base_do_package() {
	:
}

bbdebug() {
	USAGE='Usage: bbdebug [123] "message"'
	if [ $# -lt 2 ]; then
		bbfatal "$USAGE"
	fi

	# Strip off the debug level and ensure it is an integer
	DBGLVL=$1; shift
	NONDIGITS=$(echo "$DBGLVL" | tr -d [:digit:])
	if [ "$NONDIGITS" ]; then
		bbfatal "$USAGE"
	fi

	# All debug output is printed to the logs
	if [ -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198 ] ; then
		printf "%b\0" "bbdebug $DBGLVL $*" > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198
	else
		echo "DEBUG: $*"
	fi
}

bberror() {
	if [ -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198 ] ; then
		printf "%b\0" "bberror $*" > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198
	else
		echo "ERROR: $*"
	fi
}

bbfatal() {
	if [ -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198 ] ; then
		printf "%b\0" "bbfatal $*" > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198
	else
		echo "ERROR: $*"
	fi
	exit 1
}

bbfatal_log() {
	if [ -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198 ] ; then
		printf "%b\0" "bbfatal_log $*" > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198
	else
		echo "ERROR: $*"
	fi
	exit 1
}

bbnote() {
	if [ -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198 ] ; then
		printf "%b\0" "bbnote $*" > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198
	else
		echo "NOTE: $*"
	fi
}

bbplain() {
	if [ -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198 ] ; then
		printf "%b\0" "bbplain $*" > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198
	else
		echo "$*"
	fi
}

bbwarn() {
	if [ -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198 ] ; then
		printf "%b\0" "bbwarn $*" > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/fifo.17198
	else
		echo "WARNING: $*"
	fi
}

check_git_config() {
	if ! git config user.email > /dev/null ; then
		git config --local user.email "oe.patch at oe"
	fi
	if ! git config user.name > /dev/null ; then
		git config --local user.name "OpenEmbedded"
	fi
}

create_cmdline_wrapper() {
	# Create a wrapper script where commandline options are needed
	#
	# These are useful to work around relocation issues, by passing extra options
	# to a program
	#
	# Usage: create_cmdline_wrapper FILENAME <extra-options>

	cmd=$1
	shift

	echo "Generating wrapper script for $cmd"

	mv $cmd $cmd.real
	cmdname=`basename $cmd`
	dirname=`dirname $cmd`
	cmdoptions=$@
	if [ "" != "" ]; then
		relpath=`python3 -c "import os; print(os.path.relpath('/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/image', '$dirname'))"`
		cmdoptions=`echo $@ | sed -e "s::\\$realdir/$relpath:g"`
	fi
	cat <<END >$cmd
#!/bin/bash
realpath=\`readlink -fn \$0\`
realdir=\`dirname \$realpath\`
exec -a \`dirname \$realpath\`/$cmdname \`dirname \$realpath\`/$cmdname.real $cmdoptions "\$@"
END
	chmod +x $cmd
}

create_sdk_files() {
	cp /home/mnhu/projects/pil/yocto/meta-poky/scripts/relocate_sdk.py /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/

	# Replace the ##DEFAULT_INSTALL_DIR## with the correct pattern.
	# Escape special characters like '+' and '.' in the SDKPATH
	escaped_sdkpath=$(echo /usr/local/oecore-x86_64 |sed -e "s:[\+\.]:\\\\\\\\\0:g")
	sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/relocate_sdk.py
}

create_shar() {
	# copy in the template shar extractor script
	cp /home/mnhu/projects/pil/yocto/meta-poky/meta/files/toolchain-shar-extract.sh /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.sh

	rm -f /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/pre_install_command /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/post_install_command

	if [ 1 -eq 1 ] ; then
		cp /home/mnhu/projects/pil/yocto/meta-poky/meta/files/toolchain-shar-relocate.sh /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/post_install_command
	fi
	cat << "EOF" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/pre_install_command

EOF

	cat << "EOF" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/post_install_command

EOF
	sed -i -e '/@SDK_PRE_INSTALL_COMMAND@/r /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/pre_install_command' \
		-e '/@SDK_POST_INSTALL_COMMAND@/r /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/temp/post_install_command' \
		/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.sh

	# substitute variables
	sed -i -e 's#@SDK_ARCH@#x86_64#g' \
		-e 's#@SDKPATH@#/usr/local/oecore-x86_64#g' \
		-e 's#@SDKEXTPATH@#~/basic_sdk#g' \
		-e 's#@OLDEST_KERNEL@#2.6.32#g' \
		-e 's#@REAL_MULTIMACH_TARGET_SYS@#cortexa7hf-neon-vfpv4-oe-linux-gnueabi#g' \
		-e 's#@SDK_TITLE@#PIL/basic SDK#g' \
		-e 's#@SDK_VERSION@#nodistro.0#g' \
		-e '/@SDK_PRE_INSTALL_COMMAND@/d' \
		-e '/@SDK_POST_INSTALL_COMMAND@/d' \
		-e 's#@SDK_GCC_VER@##g' \
		/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.sh

	# add execution permission
	chmod +x /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.sh

	# append the SDK tarball
	cat /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.tar.xz >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.sh

	# delete the old tarball, we don't need it anymore
	rm /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.tar.xz
}

create_wrapper() {
	# Create a wrapper script where extra environment variables are needed
	#
	# These are useful to work around relocation issues, by setting environment
	# variables which point to paths in the filesystem.
	#
	# Usage: create_wrapper FILENAME [[VAR=VALUE]..]

	cmd=$1
	shift

	echo "Generating wrapper script for $cmd"

	mv $cmd $cmd.real
	cmdname=`basename $cmd`
	dirname=`dirname $cmd`
	exportstring=$@
	if [ "" != "" ]; then
		relpath=`python3 -c "import os; print(os.path.relpath('/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/image', '$dirname'))"`
		exportstring=`echo $@ | sed -e "s::\\$realdir/$relpath:g"`
	fi
	cat <<END >$cmd
#!/bin/bash
realpath=\`readlink -fn \$0\`
realdir=\`dirname \$realpath\`
export $exportstring
exec -a \`dirname \$realpath\`/$cmdname \`dirname \$realpath\`/$cmdname.real "\$@"
END
	chmod +x $cmd
}

die() {
	bbfatal_log "$*"
}

do_build() {
	:
}

do_bundle_initramfs() {
	:
}

do_checkuriall() {
	:
}

do_compile() {
    base_do_compile
}

do_configure() {
    base_do_configure
}

do_fetchall() {
	:
}

do_image_cpio() {
		(cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs && find . | cpio -o -H newc >/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.cpio)
	# We only need the /init symlink if we're building the real
	# image. The -dbg image doesn't need it! By being clever
	# about this we also avoid 'touch' below failing, as it
	# might be trying to touch /sbin/init on the host since both
	# the normal and the -dbg image share the same WORKDIR
	if [ "${IMAGE_BUILDING_DEBUGFS}" != "true" ]; then
		if [ ! -L /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/init ] && [ ! -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/init ]; then
			if [ -L /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init ] || [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init ]; then
				ln -sf /sbin/init /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append/init
			else
				touch /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append/init
			fi
			(cd  /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append && echo ./init | cpio -oA -H newc -F /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.cpio)
		fi
	fi

	cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete
	gzip -f -9 -c rescue-rootfs-rpi2-20170915073224.rootfs.cpio > rescue-rootfs-rpi2-20170915073224.rootfs.cpio.gz
	gzip -f -9 -c rescue-rootfs-rpi2-20170915073224.rootfs.cpio > rescue-rootfs-rpi2-20170915073224.rootfs.cpio.gz; oe_mkimage rescue-rootfs-rpi2-20170915073224.rootfs.cpio.gz gzip
	oe_mkimage rescue-rootfs-rpi2-20170915073224.rootfs.cpio.gz none
	rm rescue-rootfs-rpi2-20170915073224.rootfs.cpio
}

do_image_tar() {
	tar -cvf /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.tar -C /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs .
	cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete
}

do_install() {
    base_do_install
}

do_packagedata() {
	:
}

empty_var_volatile() {
	if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/fstab ]; then
		match=`awk '$1 !~ "#" && $2 ~ /\/var\/volatile/{print $2}' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/fstab 2> /dev/null`
		if [ -n "$match" ]; then
			find /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/var/volatile -mindepth 1 -delete
		fi
	fi
}

hardlinkdir() {
	from=$1
	to=$2
	(cd $from; find . -print0 | cpio --null -pdlu $to)
}

install_tools() {
	install -d /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin
	scripts="devtool recipetool oe-find-native-sysroot runqemu*"
	for script in $scripts; do
		for scriptfn in `find /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/${scriptrelpath} -maxdepth 1 -executable -name "$script"`; do
			lnr ${scriptfn} /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/`basename $scriptfn`
		done
	done
	# We can't use the same method as above because files in the sysroot won't exist at this point
	# (they get populated from sstate on installation)
	unfsd_path="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/unfsd"
	if [ "1" = "1" -a ! -e $unfsd_path ] ; then
		binrelpath=work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/bin
		lnr /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/tmp/$binrelpath/unfsd $unfsd_path
	fi
	touch /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/.devtoolbase

	# find latest buildtools-tarball and install it
	install /home/mnhu/projects/pil/yocto/tmp-glibc/deploy/sdk/${SDK_BUILDTOOLS_INSTALLER} /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64

	install -m 0644 /home/mnhu/projects/pil/yocto/meta-poky/meta/files/ext-sdk-prepare.py /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64
}

ldconfig_postinst_fragment() {
if [ x"$D" = "x" ]; then
	if [ -x /sbin/ldconfig ]; then /sbin/ldconfig ; fi
fi
}

make_zimage_symlink_relative() {
	if [ -L /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/boot/zImage ]; then
		(cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/boot/ && for i in `ls zImage-* | sort`; do ln -sf $i zImage; done)
	fi
}

multiubi_mkfs() {
	local mkubifs_args="$1"
	local ubinize_args="$2"
	if [ -z "$3" ]; then
		local vname=""
	else
		local vname="_$3"
	fi

	echo \[ubifs\] > ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg
	echo mode=ubi >> ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg
	echo image=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224${vname}.rootfs.ubifs >> ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg
	echo vol_id=0 >> ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg
	echo vol_type=dynamic >> ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg
	echo vol_name=rpi2-rootfs >> ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg
	echo vol_flags=autoresize >> ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg
	mkfs.ubifs -r /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs -o /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224${vname}.rootfs.ubifs ${mkubifs_args}
	ubinize -o /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224${vname}.rootfs.ubi ${ubinize_args} ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg

	# Cleanup cfg file
	mv ubinize${vname}-rescue-rootfs-rpi2-20170915073224.cfg /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/

	# Create own symlinks for 'named' volumes
	if [ -n "$vname" ]; then
		cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete
		if [ -e rescue-rootfs-rpi2-20170915073224${vname}.rootfs.ubifs ]; then
			ln -sf rescue-rootfs-rpi2-20170915073224${vname}.rootfs.ubifs \
			rescue-rootfs-rpi2${vname}.ubifs
		fi
		if [ -e rescue-rootfs-rpi2-20170915073224${vname}.rootfs.ubi ]; then
			ln -sf rescue-rootfs-rpi2-20170915073224${vname}.rootfs.ubi \
			rescue-rootfs-rpi2${vname}.ubi
		fi
		cd -
	fi
}

oe_libinstall() {
	# Purpose: Install a library, in all its forms
	# Example
	#
	# oe_libinstall libltdl /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib/
	# oe_libinstall -C src/libblah libblah /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/image//usr/lib/
	dir=""
	libtool=""
	silent=""
	require_static=""
	require_shared=""
	staging_install=""
	while [ "$#" -gt 0 ]; do
		case "$1" in
		-C)
			shift
			dir="$1"
			;;
		-s)
			silent=1
			;;
		-a)
			require_static=1
			;;
		-so)
			require_shared=1
			;;
		-*)
			bbfatal "oe_libinstall: unknown option: $1"
			;;
		*)
			break;
			;;
		esac
		shift
	done

	libname="$1"
	shift
	destpath="$1"
	if [ -z "$destpath" ]; then
		bbfatal "oe_libinstall: no destination path specified"
	fi
	if echo "$destpath/" | egrep '^/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib/' >/dev/null
	then
		staging_install=1
	fi

	__runcmd () {
		if [ -z "$silent" ]; then
			echo >&2 "oe_libinstall: $*"
		fi
		$*
	}

	if [ -z "$dir" ]; then
		dir=`pwd`
	fi

	dotlai=$libname.lai

	# Sanity check that the libname.lai is unique
	number_of_files=`(cd $dir; find . -name "$dotlai") | wc -l`
	if [ $number_of_files -gt 1 ]; then
		bbfatal "oe_libinstall: $dotlai is not unique in $dir"
	fi


	dir=$dir`(cd $dir;find . -name "$dotlai") | sed "s/^\.//;s/\/$dotlai\$//;q"`
	olddir=`pwd`
	__runcmd cd $dir

	lafile=$libname.la

	# If such file doesn't exist, try to cut version suffix
	if [ ! -f "$lafile" ]; then
		libname1=`echo "$libname" | sed 's/-[0-9.]*$//'`
		lafile1=$libname.la
		if [ -f "$lafile1" ]; then
			libname=$libname1
			lafile=$lafile1
		fi
	fi

	if [ -f "$lafile" ]; then
		# libtool archive
		eval `cat $lafile|grep "^library_names="`
		libtool=1
	else
		library_names="$libname.so* $libname.dll.a $libname.*.dylib"
	fi

	__runcmd install -d $destpath/
	dota=$libname.a
	if [ -f "$dota" -o -n "$require_static" ]; then
		rm -f $destpath/$dota
		__runcmd install -m 0644 $dota $destpath/
	fi
	if [ -f "$dotlai" -a -n "$libtool" ]; then
		rm -f $destpath/$libname.la
		__runcmd install -m 0644 $dotlai $destpath/$libname.la
	fi

	for name in $library_names; do
		files=`eval echo $name`
		for f in $files; do
			if [ ! -e "$f" ]; then
				if [ -n "$libtool" ]; then
					bbfatal "oe_libinstall: $dir/$f not found."
				fi
			elif [ -L "$f" ]; then
				__runcmd cp -P "$f" $destpath/
			elif [ ! -L "$f" ]; then
				libfile="$f"
				rm -f $destpath/$libfile
				__runcmd install -m 0755 $libfile $destpath/
			fi
		done
	done

	if [ -z "$libfile" ]; then
		if  [ -n "$require_shared" ]; then
			bbfatal "oe_libinstall: unable to locate shared library"
		fi
	elif [ -z "$libtool" ]; then
		# special case hack for non-libtool .so.#.#.# links
		baselibfile=`basename "$libfile"`
		if (echo $baselibfile | grep -qE '^lib.*\.so\.[0-9.]*$'); then
			sonamelink=`arm-oe-linux-gnueabi-readelf -d $libfile |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
			solink=`echo $baselibfile | sed -e 's/\.so\..*/.so/'`
			if [ -n "$sonamelink" -a x"$baselibfile" != x"$sonamelink" ]; then
				__runcmd ln -sf $baselibfile $destpath/$sonamelink
			fi
			__runcmd ln -sf $baselibfile $destpath/$solink
		fi
	fi

	__runcmd cd "$olddir"
}

oe_machinstall() {
	# Purpose: Install machine dependent files, if available
	#          If not available, check if there is a default
	#          If no default, just touch the destination
	# Example:
	#                $1  $2   $3         $4
	# oe_machinstall -m 0644 fstab /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/image/etc/fstab
	#
	# TODO: Check argument number?
	#
	filename=`basename $3`
	dirname=`dirname $3`

	for o in `echo linux-gnueabi:arm:build-linux:pn-rescue-rootfs:armv7ve:rpi:rpi2:basic:class-target:forcevariable:libc-glibc | tr ':' ' '`; do
		if [ -e $dirname/$o/$filename ]; then
			bbnote $dirname/$o/$filename present, installing to $4
			install $1 $2 $dirname/$o/$filename $4
			return
		fi
	done
#	bbnote overrides specific file NOT present, trying default=$3...
	if [ -e $3 ]; then
		bbnote $3 present, installing to $4
		install $1 $2 $3 $4
	else
		bbnote $3 NOT present, touching empty $4
		touch $4
	fi
}

oe_mkext234fs() {
	fstype=$1
	extra_imagecmd=""

	if [ $# -gt 1 ]; then
		shift
		extra_imagecmd=$@
	fi

	# If generating an empty image the size of the sparse block should be large
	# enough to allocate an ext4 filesystem using 4096 bytes per inode, this is
	# about 60K, so dd needs a minimum count of 60, with bs=1024 (bytes per IO)
	eval local COUNT=\"0\"
	eval local MIN_COUNT=\"60\"
	if [ $ROOTFS_SIZE -lt $MIN_COUNT ]; then
		eval COUNT=\"$MIN_COUNT\"
	fi
	# Create a sparse image block
	dd if=/dev/zero of=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.$fstype seek=$ROOTFS_SIZE count=$COUNT bs=1024
	mkfs.$fstype -F $extra_imagecmd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.$fstype -d /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs
	# Error codes 0-3 indicate successfull operation of fsck (no errors or errors corrected)
	fsck.$fstype -pvfD /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073224.rootfs.$fstype || [ $? -le 3 ]
}

oe_mkimage() {
    mkimage -A arm -O linux -T ramdisk -C $2 -n rescue-rootfs-rpi2-20170915073224 \
        -d /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/$1 /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/$1.u-boot
}

oe_runmake() {
	oe_runmake_call "$@" || die "oe_runmake failed"
}

oe_runmake_call() {
	bbnote make  "$@"
	make  "$@"
}

oe_soinstall() {
	# Purpose: Install shared library file and
	#          create the necessary links
	# Example: oe_soinstall libfoo.so.1.2.3 /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/image/usr/lib
	libname=`basename $1`
	case "$libname" in
	    *.so)
	        bbfatal "oe_soinstall: Shared library must haved versioned filename (e.g. libfoo.so.1.2.3)"
	        ;;
	esac
	install -m 755 $1 $2/$libname
	sonamelink=`arm-oe-linux-gnueabi-readelf -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
	if [ -z $sonamelink ]; then
		bbfatal "oe_soinstall: $libname is missing ELF tag 'SONAME'."
	fi
	solink=`echo $libname | sed -e 's/\.so\..*/.so/'`
	ln -sf $libname $2/$sonamelink
	ln -sf $libname $2/$solink
}

perform_groupadd() {
	local rootdir="$1"
	local opts="$2"
	bbnote "rescue-rootfs: Performing groupadd with [$opts]"
	local groupname=`echo "$opts" | awk '{ print $NF }'`
	local group_exists="`grep "^$groupname:" $rootdir/etc/group || true`"
	if test "x$group_exists" = "x"; then
		eval flock -x $rootdir/etc -c \"$PSEUDO groupadd \$opts\" || true
		group_exists="`grep "^$groupname:" $rootdir/etc/group || true`"
		if test "x$group_exists" = "x"; then
			bbfatal "rescue-rootfs: groupadd command did not succeed."
		fi
	else
		bbnote "rescue-rootfs: group $groupname already exists, not re-creating it"
	fi
}

perform_groupdel() {
	local rootdir="$1"
	local opts="$2"
	bbnote "rescue-rootfs: Performing groupdel with [$opts]"
	local groupname=`echo "$opts" | awk '{ print $NF }'`
	local group_exists="`grep "^$groupname:" $rootdir/etc/group || true`"

	if test "x$group_exists" != "x"; then
		local awk_input='BEGIN {FS=":"}; $1=="'$groupname'" { print $3 }'
		local groupid=`echo "$awk_input" | awk -f- $rootdir/etc/group`
		local awk_check_users='BEGIN {FS=":"}; $4=="'$groupid'" {print $1}'
		local other_users=`echo "$awk_check_users" | awk -f- $rootdir/etc/passwd`

		if test "x$other_users" = "x"; then
			eval flock -x $rootdir/etc -c \"$PSEUDO groupdel \$opts\" || true
			group_exists="`grep "^$groupname:" $rootdir/etc/group || true`"
			if test "x$group_exists" != "x"; then
				bbfatal "rescue-rootfs: groupdel command did not succeed."
			fi
		else
			bbnote "rescue-rootfs: '$groupname' is primary group for users '$other_users', not removing it"
		fi
	else
		bbnote "rescue-rootfs: group $groupname doesn't exist, not removing it"
	fi
}

perform_groupmems() {
	local rootdir="$1"
	local opts="$2"
	bbnote "rescue-rootfs: Performing groupmems with [$opts]"
	local groupname=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-g" || $i == "--group") print $(i+1) }'`
	local username=`echo "$opts" | awk '{ for (i = 1; i < NF; i++) if ($i == "-a" || $i == "--add") print $(i+1) }'`
	bbnote "rescue-rootfs: Running groupmems command with group $groupname and user $username"
	local mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $rootdir/etc/group || true`"
	if test "x$mem_exists" = "x"; then
		eval flock -x $rootdir/etc -c \"$PSEUDO groupmems \$opts\" || true
		mem_exists="`grep "^$groupname:[^:]*:[^:]*:\([^,]*,\)*$username\(,[^,]*\)*" $rootdir/etc/group || true`"
		if test "x$mem_exists" = "x"; then
			bbfatal "rescue-rootfs: groupmems command did not succeed."
		fi
	else
		bbnote "rescue-rootfs: group $groupname already contains $username, not re-adding it"
	fi
}

perform_groupmod() {
	# Other than the return value of groupmod, there's no simple way to judge whether the command
	# succeeds, so we disable -e option temporarily
	set +e
	local rootdir="$1"
	local opts="$2"
	bbnote "rescue-rootfs: Performing groupmod with [$opts]"
	local groupname=`echo "$opts" | awk '{ print $NF }'`
	local group_exists="`grep "^$groupname:" $rootdir/etc/group || true`"
	if test "x$group_exists" != "x"; then
		eval flock -x $rootdir/etc -c \"$PSEUDO groupmod \$opts\"
		if test $? != 0; then
			bbwarn "rescue-rootfs: groupmod command did not succeed."
		fi
	else
		bbwarn "rescue-rootfs: group $groupname doesn't exist, unable to modify it"
	fi
	set -e
}

perform_useradd() {
	local rootdir="$1"
	local opts="$2"
	bbnote "rescue-rootfs: Performing useradd with [$opts]"
	local username=`echo "$opts" | awk '{ print $NF }'`
	local user_exists="`grep "^$username:" $rootdir/etc/passwd || true`"
	if test "x$user_exists" = "x"; then
		eval flock -x $rootdir/etc -c  \"$PSEUDO useradd \$opts\" || true
		user_exists="`grep "^$username:" $rootdir/etc/passwd || true`"
		if test "x$user_exists" = "x"; then
			bbfatal "rescue-rootfs: useradd command did not succeed."
		fi
	else
		bbnote "rescue-rootfs: user $username already exists, not re-creating it"
	fi
}

perform_userdel() {
	local rootdir="$1"
	local opts="$2"
	bbnote "rescue-rootfs: Performing userdel with [$opts]"
	local username=`echo "$opts" | awk '{ print $NF }'`
	local user_exists="`grep "^$username:" $rootdir/etc/passwd || true`"
	if test "x$user_exists" != "x"; then
		eval flock -x $rootdir/etc -c \"$PSEUDO userdel \$opts\" || true
		user_exists="`grep "^$username:" $rootdir/etc/passwd || true`"
		if test "x$user_exists" != "x"; then
			bbfatal "rescue-rootfs: userdel command did not succeed."
		fi
	else
		bbnote "rescue-rootfs: user $username doesn't exist, not removing it"
	fi
}

perform_usermod() {
	# Same reason with groupmod, temporarily disable -e option
	set +e
	local rootdir="$1"
	local opts="$2"
	bbnote "rescue-rootfs: Performing usermod with [$opts]"
	local username=`echo "$opts" | awk '{ print $NF }'`
	local user_exists="`grep "^$username:" $rootdir/etc/passwd || true`"
	if test "x$user_exists" != "x"; then
		eval flock -x $rootdir/etc -c \"$PSEUDO usermod \$opts\"
		if test $? != 0; then
			bbfatal "rescue-rootfs: usermod command did not succeed."
		fi
	else
		bbwarn "rescue-rootfs: user $username doesn't exist, unable to modify it"
	fi
	set -e
}

populate_sdk_log_check() {
	for target in $*
	do
		lf_path="`dirname ${BB_LOGFILE}`/log.do_$target.17198"

		echo "log_check: Using $lf_path as logfile"

		if [ -e "$lf_path" ]; then
			ipk_log_check $target $lf_path
		else
			echo "Cannot find logfile [$lf_path]"
		fi
		echo "Logfile is clean"
	done
}

postinst_enable_logging() {
	mkdir -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default
	echo "POSTINST_LOGGING=1" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/postinst
	echo "LOGFILE=/var/log/postinstall.log" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/postinst
}

read_only_rootfs_hook() {
	# Tweak the mount option and fs_passno for rootfs in fstab
	sed -i -e '/^[#[:space:]]*\/dev\/root/{s/defaults/ro/;s/\([[:space:]]*[[:digit:]]\)\([[:space:]]*\)[[:digit:]]$/\1\20/}' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/fstab

	# If we're using openssh and the /etc/ssh directory has no pre-generated keys,
	# we should configure openssh to use the configuration file /etc/ssh/sshd_config_readonly
	# and the keys under /var/run/ssh.
	if [ -d /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/ssh ]; then
		if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/ssh/ssh_host_rsa_key ]; then
			echo "SYSCONFDIR=/etc/ssh" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/ssh
			echo "SSHD_OPTS=" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/ssh
		else
			echo "SYSCONFDIR=/var/run/ssh" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/ssh
			echo "SSHD_OPTS='-f /etc/ssh/sshd_config_readonly'" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/ssh
		fi
	fi

	# Also tweak the key location for dropbear in the same way.
	if [ -d /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/dropbear ]; then
		if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/dropbear/dropbear_rsa_host_key ]; then
			echo "DROPBEAR_RSAKEY_DIR=/etc/dropbear" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/dropbear
		else
			echo "DROPBEAR_RSAKEY_DIR=/var/lib/dropbear" >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/dropbear
		fi
	fi


	if true; then
		# Change the value of ROOTFS_READ_ONLY in /etc/default/rcS to yes
		if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/rcS ]; then
			sed -i 's/ROOTFS_READ_ONLY=no/ROOTFS_READ_ONLY=yes/' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/rcS
		fi
		# Run populate-volatile.sh at rootfs time to set up basic files
		# and directories to support read-only rootfs.
		if [ -x /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/init.d/populate-volatile.sh ]; then
			/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/init.d/populate-volatile.sh
		fi
	fi
}

remove_init_link() {
	if [ -h /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init ]; then
		LINKFILE=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs`readlink /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init`
		rm /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init
		cp $LINKFILE /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init
	fi
}

remove_libtool_la() {
	if [ "1" != "0" ]; then
		find "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/image" -ignore_readdir_race -name "*.la" -delete
	fi
}

rootfs_check_host_user_contaminated() {
	contaminated="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/host-user-contaminated.txt"
	HOST_USER_UID="$(PSEUDO_UNLOAD=1 id -u)"
	HOST_USER_GID="$(PSEUDO_UNLOAD=1 id -g)"

	find "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs" -wholename "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/home" -prune \
	    -user "$HOST_USER_UID" -o -group "$HOST_USER_GID" >"$contaminated"

	if [ -s "$contaminated" ]; then
		echo "WARNING: Paths in the rootfs are owned by the same user or group as the user running bitbake. See the logfile for the specific paths."
		cat "$contaminated" | sed "s,^,  ,"
	fi
}

rootfs_no_x_startup() {
	if [ -f /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/init.d/xserver-nodm ]; then
		chmod a-x /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/init.d/xserver-nodm
	fi
}

rootfs_sysroot_relativelinks() {
	sysroot-relativelinks.py /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64/sysroots/cortexa7hf-neon-vfpv4-oe-linux-gnueabi
}

rootfs_trim_schemas() {
	for schema in /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/gconf/schemas/*.schemas
	do
		# Need this in case no files exist
		if [ -e $schema ]; then
			oe-trim-schemas $schema > $schema.new
			mv $schema.new $schema
		fi
	done
}

rootfs_update_timestamp() {
	date -u +%4Y%2m%2d%2H%2M%2S >/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/timestamp
}

sdk_ext_postinst() {
	printf "\nExtracting buildtools...\n"
	cd $target_sdk_dir
	env_setup_script="$target_sdk_dir/environment-setup-cortexa7hf-neon-vfpv4-oe-linux-gnueabi"
	printf "buildtools\ny" | ./${SDK_BUILDTOOLS_INSTALLER} > buildtools.log || { printf 'ERROR: buildtools installation failed:\n' ; cat buildtools.log ; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }

	# Delete the buildtools tar file since it won't be used again
	rm -f ./${SDK_BUILDTOOLS_INSTALLER}
	# We don't need the log either since it succeeded
	rm -f buildtools.log

	# Make sure when the user sets up the environment, they also get
	# the buildtools-tarball tools in their path.
	echo ". $target_sdk_dir/buildtools/environment-setup*" >> $env_setup_script

	# Allow bitbake environment setup to be ran as part of this sdk.
	echo "export OE_SKIP_SDK_CHECK=1" >> $env_setup_script
	# Work around runqemu not knowing how to get this information within the eSDK
	echo "export DEPLOY_DIR_IMAGE=$target_sdk_dir/tmp/deploy/images/rpi2" >> $env_setup_script

	# A bit of another hack, but we need this in the path only for devtool
	# so put it at the end of $PATH.
	echo "export PATH=$target_sdk_dir/sysroots/x86_64-oesdk-linux/usr/bin:\$PATH" >> $env_setup_script

	echo "printf 'SDK environment now set up; additionally you may now run devtool to perform development tasks.\nRun devtool --help for further details.\n'" >> $env_setup_script

	# Warn if trying to use external bitbake and the ext SDK together
	echo "(which bitbake > /dev/null 2>&1 && echo 'WARNING: attempting to use the extensible SDK in an environment set up to run bitbake - this may lead to unexpected results. Please source this script in a new shell session instead.') || true" >> $env_setup_script

	if [ "$prepare_buildsystem" != "no" ]; then
		printf "Preparing build system...\n"
		# dash which is /bin/sh on Ubuntu will not preserve the
		# current working directory when first ran, nor will it set $1 when
		# sourcing a script. That is why this has to look so ugly.
		LOGFILE="$target_sdk_dir/preparing_build_system.log"
		sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py $LOGFILE ''" || { echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; }
		rm $target_sdk_dir/ext-sdk-prepare.py
	fi
	echo done
}

sdk_ext_preinst() {
	# Since bitbake won't run as root it doesn't make sense to try and install
	# the extensible sdk as root.
	if [ "`id -u`" = "0" ]; then
		echo "ERROR: The extensible sdk cannot be installed as root."
		exit 1
	fi
	if ! command -v locale > /dev/null; then
		echo "ERROR: The installer requires the locale command, please install it first"
		exit 1
	fi
        # Check setting of LC_ALL set above
	canonicalised_locale=`echo $LC_ALL | sed 's/UTF-8/utf8/'`
	if ! locale -a | grep -q $canonicalised_locale ; then
		echo "ERROR: the installer requires the $LC_ALL locale to be installed (but not selected), please install it first"
		exit 1
	fi
	# The relocation script used by buildtools installer requires python
	if ! command -v python > /dev/null; then
		echo "ERROR: The installer requires python, please install it first"
		exit 1
	fi
	missing_utils=""
	for util in ${SDK_REQUIRED_UTILITIES}; do
		if ! command -v $util > /dev/null; then
			missing_utils="$missing_utils $util"
		fi
	done
	if [ -n "$missing_utils" ] ; then
		echo "ERROR: the SDK requires the following missing utilities, please install them: $missing_utils"
		exit 1
	fi
	SDK_EXTENSIBLE="1"
	if [ "$publish" = "1" ] ; then
		EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=ext-sdk-prepare.py"
		if [ "full" = "minimal" ] ; then
			EXTRA_TAR_OPTIONS="$EXTRA_TAR_OPTIONS --exclude=sstate-cache"
		fi
	fi
}

set_systemd_default_target() {
	if [ -d /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/systemd/system -a -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/lib/systemd/system/multi-user.target ]; then
		ln -sf /lib/systemd/system/multi-user.target /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/systemd/system/default.target
	fi
}

set_user_group() {
	user_group_settings=" usermod -P root root;"
	export PSEUDO="PSEUDO_PREFIX=/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components/x86_64/pseudo-native/usr PSEUDO_LOCALSTATEDIR=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/pseudo/ PSEUDO_PASSWD=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native PSEUDO_NOSYMLINKEXP=1 PSEUDO_DISABLED=0 /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/bin/pseudo"
	setting=`echo $user_group_settings | cut -d ';' -f1`
	remaining=`echo $user_group_settings | cut -d ';' -f2-`
	while test "x$setting" != "x"; do
		cmd=`echo $setting | cut -d ' ' -f1`
		opts=`echo $setting | cut -d ' ' -f2-`
		# Different from useradd.bbclass, there's no file locking issue here, as
		# this setting is actually a serial process. So we only retry once.
		case $cmd in
			useradd)
				perform_useradd "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs" "-R /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs $opts"
				;;
			groupadd)
				perform_groupadd "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs" "-R /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs $opts"
				;;
			userdel)
				perform_userdel "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs" "-R /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs $opts"
				;;
			groupdel)
				perform_groupdel "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs" "-R /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs $opts"
				;;
			usermod)
				perform_usermod "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs" "-R /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs $opts"
				;;
			groupmod)
				perform_groupmod "/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs" "-R /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs $opts"
				;;
			*)
				bbfatal "Invalid command in EXTRA_USERS_PARAMS: $cmd"
				;;
		esac
		# Avoid infinite loop if the last parameter doesn't end with ';'
		if [ "$setting" = "$remaining" ]; then
			break
		fi
		# iterate to the next setting
		setting=`echo $remaining | cut -d ';' -f1`
		remaining=`echo $remaining | cut -d ';' -f2-`
	done
}

ssh_allow_empty_password() {
	for config in sshd_config sshd_config_readonly; do
		if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/ssh/$config ]; then
			sed -i 's/^[#[:space:]]*PermitRootLogin.*/PermitRootLogin yes/' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/ssh/$config
			sed -i 's/^[#[:space:]]*PermitEmptyPasswords.*/PermitEmptyPasswords yes/' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/ssh/$config
		fi
	done

	if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/usr/sbin/dropbear ] ; then
		if grep -q DROPBEAR_EXTRA_ARGS /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/dropbear 2>/dev/null ; then
			if ! grep -q "DROPBEAR_EXTRA_ARGS=.*-B" /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/dropbear ; then
				sed -i 's/^DROPBEAR_EXTRA_ARGS="*\([^"]*\)"*/DROPBEAR_EXTRA_ARGS="\1 -B"/' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/dropbear
			fi
		else
			printf '\nDROPBEAR_EXTRA_ARGS="-B"\n' >> /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/default/dropbear
		fi
	fi

	if [ -d /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/pam.d ] ; then
		sed -i 's/nullok_secure/nullok/' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/pam.d/*
	fi
}

ssh_disable_dns_lookup() {
	if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/ssh/sshd_config ]; then
		sed -i -e 's:#UseDNS yes:UseDNS no:' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/ssh/sshd_config
	fi
}

sstate_create_package() {
	TFILE=`mktemp /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.XXXXXXXX`
	# Need to handle empty directories
	if [ "$(ls -A)" ]; then
		set +e
		tar -czf $TFILE *
		ret=$?
		if [ $ret -ne 0 ] && [ $ret -ne 1 ]; then
			exit 1
		fi
		set -e
	else
		tar -cz --file=$TFILE --files-from=/dev/null
	fi
	chmod 0664 $TFILE
	mv -f $TFILE /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID
}

sstate_unpack_package() {
	tar -xvzf /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID
	# update .siginfo atime on local/NFS mirror
	[ -w /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.siginfo ] && [ -h /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.siginfo ] && touch -a /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.siginfo
	# Use "! -w ||" to return true for read only files
	[ ! -w /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID ] || touch --no-dereference /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID
	[ ! -w /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.sig ] || [ ! -e /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.sig ] || touch --no-dereference /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.sig
	[ ! -w /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.siginfo ] || [ ! -e /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.siginfo ] || touch --no-dereference /home/mnhu/projects/pil/yocto/sstate-cache/IN/sstate:rescue-rootfs:rpi2-oe-linux-gnueabi:1.0:r0:rpi2:3:INVALID.siginfo
}

sysroot_stage_all() {
	sysroot_stage_dirs /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/image /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sysroot-destdir
}

sysroot_stage_dir() {
	src="$1"
	dest="$2"
	# if the src doesn't exist don't do anything
	if [ ! -d "$src" ]; then
		 return
	fi

	mkdir -p "$dest"
	(
		cd $src
		find . -print0 | cpio --null -pdlu $dest
	)
}

sysroot_stage_dirs() {
	from="$1"
	to="$2"

	for dir in      /usr/include     /usr/lib     /lib     /lib     /usr/share ; do
		sysroot_stage_dir "$from$dir" "$to$dir"
	done

	# Remove directories we do not care about
	for dir in      /usr/share/man     /usr/share/doc     /usr/share/info     /usr/share/locale     /usr/share/applications     /usr/share/fonts     /usr/share/pixmaps     /usr/lib/rescue-rootfs/ptest ; do
		rm -rf "$to$dir"
	done
}

systemd_create_users() {
	for conffile in /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/usr/lib/sysusers.d/systemd.conf /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/usr/lib/sysusers.d/systemd-remote.conf; do
		[ -e $conffile ] || continue
		grep -v "^#" $conffile | sed -e '/^$/d' | while read type name id comment; do
		if [ "$type" = "u" ]; then
			useradd_params="--shell /sbin/nologin"
			[ "$id" != "-" ] && useradd_params="$useradd_params --uid $id"
			[ "$comment" != "-" ] && useradd_params="$useradd_params --comment $comment"
			useradd_params="$useradd_params --system $name"
			eval useradd --root /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs $useradd_params || true
		elif [ "$type" = "g" ]; then
			groupadd_params=""
			[ "$id" != "-" ] && groupadd_params="$groupadd_params --gid $id"
			groupadd_params="$groupadd_params --system $name"
			eval groupadd --root /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs $groupadd_params || true
		elif [ "$type" = "m" ]; then
			group=$id
			if [ ! `grep -q "^${group}:" /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/group` ]; then
				eval groupadd --root /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs --system $group
			fi
			if [ ! `grep -q "^${name}:" /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/passwd` ]; then
				eval useradd --root /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs --shell /sbin/nologin --system $name
			fi
			eval usermod --root /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs -a -G $group $name
		fi
		done
	done
}

tar_sdk() {
	# Package it up
	mkdir -p /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk
	cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/sdk/image//usr/local/oecore-x86_64
	tar --owner=root --group=root -cf - . | pixz > /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/x86_64-deploy-rescue-rootfs-populate-sdk/oecore-x86_64-cortexa7hf-neon-vfpv4-toolchain-nodistro.0.tar.xz
}

zap_empty_root_password() {
	if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/shadow ]; then
		sed -i 's%^root::%root:*:%' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/shadow
        fi
	if [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/passwd ]; then
		sed -i 's%^root::%root:*:%' /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/etc/passwd
	fi
}



python __anon_101__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_sstate_bbclass () {
def __anon_101__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_sstate_bbclass(d):
    if bb.data.inherits_class('native', d):
        d.setVar('SSTATE_PKGARCH', d.getVar('BUILD_ARCH', False))
    elif bb.data.inherits_class('crosssdk', d):
        d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS}"))
    elif bb.data.inherits_class('cross', d):
        d.setVar('SSTATE_PKGARCH', d.expand("${BUILD_ARCH}_${TARGET_ARCH}"))
    elif bb.data.inherits_class('nativesdk', d):
        d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}_${SDK_OS}"))
    elif bb.data.inherits_class('cross-canadian', d):
        d.setVar('SSTATE_PKGARCH', d.expand("${SDK_ARCH}_${PACKAGE_ARCH}"))
    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}"))

    if bb.data.inherits_class('native', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('cross', d):
        d.setVar('SSTATE_EXTRAPATH', "${NATIVELSBSTRING}/")
        d.setVar('BB_HASHFILENAME', "True ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}")
        d.setVar('SSTATE_EXTRAPATHWILDCARD', "*/")

    unique_tasks = sorted(set((d.getVar('SSTATETASKS') or "").split()))
    d.setVar('SSTATETASKS', " ".join(unique_tasks))
    for task in unique_tasks:
        d.prependVarFlag(task, 'prefuncs', "sstate_task_prefunc ")
        d.appendVarFlag(task, 'postfuncs', " sstate_task_postfunc")
}


python __anon_113__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_bbclass () {
def __anon_113__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_bbclass(d):
    variables = rootfs_command_variables(d) + sdk_command_variables(d)
    for var in variables:
        if d.getVar(var, False):
            d.setVarFlag(var, 'func', '1')
}


python __anon_1356__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_insane_bbclass () {
def __anon_1356__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_insane_bbclass(d):
    tests = d.getVar('ALL_QA').split()
    if "desktop" in tests:
        d.appendVar("PACKAGE_DEPENDS", " desktop-file-utils-native")

    ###########################################################################
    # Check various variables
    ###########################################################################

    # Checking ${FILESEXTRAPATHS}
    extrapaths = (d.getVar("FILESEXTRAPATHS") or "")
    if '__default' not in extrapaths.split(":"):
        msg = "FILESEXTRAPATHS-variable, must always use _prepend (or _append)\n"
        msg += "type of assignment, and don't forget the colon.\n"
        msg += "Please assign it with the format of:\n"
        msg += "  FILESEXTRAPATHS_append := \":${THISDIR}/Your_Files_Path\" or\n"
        msg += "  FILESEXTRAPATHS_prepend := \"${THISDIR}/Your_Files_Path:\"\n"
        msg += "in your bbappend file\n\n"
        msg += "Your incorrect assignment is:\n"
        msg += "%s\n" % extrapaths
        bb.warn(msg)

    overrides = d.getVar('OVERRIDES').split(':')
    pn = d.getVar('PN')
    if pn in overrides:
        msg = 'Recipe %s has PN of "%s" which is in OVERRIDES, this can result in unexpected behaviour.' % (d.getVar("FILE"), pn)
        package_qa_handle_error("pn-overrides", msg, d)

    issues = []
    if (d.getVar('PACKAGES') or "").split():
        for dep in (d.getVar('QADEPENDS') or "").split():
            d.appendVarFlag('do_package_qa', 'depends', " %s:do_populate_sysroot" % dep)
        for var in 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RCONFLICTS', 'RPROVIDES', 'RREPLACES', 'FILES', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm', 'ALLOW_EMPTY':
            if d.getVar(var, False):
                issues.append(var)

        fakeroot_tests = d.getVar('FAKEROOT_QA').split()
        if set(tests) & set(fakeroot_tests):
            d.setVarFlag('do_package_qa', 'fakeroot', '1')
            d.appendVarFlag('do_package_qa', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
    else:
        d.setVarFlag('do_package_qa', 'rdeptask', '')
    for i in issues:
        package_qa_handle_error("pkgvarcheck", "%s: Variable %s is set as not being package specific, please fix this." % (d.getVar("FILE"), i), d)
    qa_sane = d.getVar("QA_SANE")
    if not qa_sane:
        bb.fatal("Fatal QA errors found, failing task.")
}


python __anon_160__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_siteinfo_bbclass () {
def __anon_160__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_siteinfo_bbclass(d):
    sitedata = set(siteinfo_data(d))
    if "endian-little" in sitedata:
        d.setVar("SITEINFO_ENDIANNESS", "le")
    elif "endian-big" in sitedata:
        d.setVar("SITEINFO_ENDIANNESS", "be")
    else:
        bb.error("Unable to determine endianness for architecture '%s'" %
                 d.getVar("HOST_ARCH"))
        bb.fatal("Please add your architecture to siteinfo.bbclass")

    if "bit-32" in sitedata:
        d.setVar("SITEINFO_BITS", "32")
    elif "bit-64" in sitedata:
        d.setVar("SITEINFO_BITS", "64")
    else:
        bb.error("Unable to determine bit size for architecture '%s'" %
                 d.getVar("HOST_ARCH"))
        bb.fatal("Please add your architecture to siteinfo.bbclass")
}


python __anon_167__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_base_bbclass () {
def __anon_167__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_base_bbclass(d):
    if d.getVar('S') != d.getVar('WORKDIR'):
        d.setVarFlag('do_unpack', 'cleandirs', '${S}')
    else:
        d.setVarFlag('do_unpack', 'cleandirs', os.path.join('${S}', 'patches'))
}


python __anon_191__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_bbclass () {
def __anon_191__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_bbclass(d):
    deps = " " + imagetypes_getdepends(d)
    d.appendVarFlag('do_rootfs', 'depends', deps)

    deps = ""
    for dep in (d.getVar('EXTRA_IMAGEDEPENDS') or "").split():
        deps += " %s:do_populate_sysroot" % dep
    d.appendVarFlag('do_image_complete', 'depends', deps)

    #process IMAGE_FEATURES, we must do this before runtime_mapping_rename
    #Check for replaces image features
    features = set(oe.data.typed_value('IMAGE_FEATURES', d))
    remain_features = features.copy()
    for feature in features:
        replaces = set((d.getVar("IMAGE_FEATURES_REPLACES_%s" % feature) or "").split())
        remain_features -= replaces

    #Check for conflict image features
    for feature in remain_features:
        conflicts = set((d.getVar("IMAGE_FEATURES_CONFLICTS_%s" % feature) or "").split())
        temp = conflicts & remain_features
        if temp:
            bb.fatal("%s contains conflicting IMAGE_FEATURES %s %s" % (d.getVar('PN'), feature, ' '.join(list(temp))))

    d.setVar('IMAGE_FEATURES', ' '.join(sorted(list(remain_features))))

    check_image_features(d)
    initramfs_image = d.getVar('INITRAMFS_IMAGE') or ""
    if initramfs_image != "":
        d.appendVarFlag('do_build', 'depends', " %s:do_bundle_initramfs" %  d.getVar('PN'))
        d.appendVarFlag('do_bundle_initramfs', 'depends', " %s:do_image_complete" % initramfs_image)
}


python __anon_20__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_blacklist_bbclass () {
def __anon_20__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_blacklist_bbclass(d):
    blacklist = d.getVarFlag('PNBLACKLIST', d.getVar('PN'))

    if blacklist:
        raise bb.parse.SkipPackage("Recipe is blacklisted: %s" % (blacklist))
}


python __anon_22__home_mnhu_projects_pil_yocto_meta_poky_meta_conf_machine_include_arm_feature_arm_thumb_inc () {
def __anon_22__home_mnhu_projects_pil_yocto_meta_poky_meta_conf_machine_include_arm_feature_arm_thumb_inc(d):
    if bb.utils.contains('TUNE_FEATURES', 'thumb', False, True, d):
        return
    selected = d.getVar('ARM_INSTRUCTION_SET')
    if selected == None:
        return
    used = d.getVar('ARM_M_OPT')
    if selected != used:
        pn = d.getVar('PN')
        bb.warn("Recipe '%s' selects ARM_INSTRUCTION_SET to be '%s', but tune configuration overrides it to '%s'" % (pn, selected, used))
}


python __anon_250__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_package_bbclass () {
def __anon_250__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_package_bbclass(d):
    if d.getVar('PACKAGES') != '':
        deps = ""
        for dep in (d.getVar('PACKAGE_DEPENDS') or "").split():
            deps += " %s:do_populate_sysroot" % dep
        d.appendVarFlag('do_package', 'depends', deps)

        # shlibs requires any DEPENDS to have already packaged for the *.list files
        d.appendVarFlag('do_package', 'deptask', " do_packagedata")
}


python __anon_25__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_debian_bbclass () {
def __anon_25__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_debian_bbclass(d):
    if not d.getVar("PACKAGES"):
        d.setVar("DEBIANRDEP", "")
}


python __anon_25__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_patch_bbclass () {
def __anon_25__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_patch_bbclass(d):
    if d.getVar('PATCHTOOL') == 'git' and d.getVar('PATCH_COMMIT_FUNCTIONS') == '1':
        extratasks = bb.build.tasksbetween('do_unpack', 'do_patch', d)
        try:
            extratasks.remove('do_unpack')
        except ValueError:
            # For some recipes do_unpack doesn't exist, ignore it
            pass

        d.appendVarFlag('do_patch', 'prefuncs', ' patch_task_patch_prefunc')
        for task in extratasks:
            d.appendVarFlag(task, 'postfuncs', ' patch_task_postfunc')
}


python __anon_265__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_package_ipk_bbclass () {
def __anon_265__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_package_ipk_bbclass(d):
    if d.getVar('PACKAGES') != '':
        deps = ' opkg-utils-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot'
        d.appendVarFlag('do_package_write_ipk', 'depends', deps)
        d.setVarFlag('do_package_write_ipk', 'fakeroot', "1")
}


python __anon_35__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_devshell_bbclass () {
def __anon_35__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_devshell_bbclass(d):
    if d.getVarFlag("do_devshell", "fakeroot"):
       # We need to signal our code that we want fakeroot however we
       # can't manipulate the environment and variables here yet (see YOCTO #4795)
       d.setVarFlag("do_devshell", "manualfakeroot", "1")
       d.delVarFlag("do_devshell", "fakeroot")
}


python __anon_37__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_rootfs_ipk_bbclass () {
def __anon_37__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_rootfs_ipk_bbclass(d):

    if d.getVar('BUILD_IMAGES_FROM_FEEDS'):
        flags = d.getVarFlag('do_rootfs', 'recrdeptask')
        flags = flags.replace("do_package_write_ipk", "")
        flags = flags.replace("do_deploy", "")
        flags = flags.replace("do_populate_sysroot", "")
        d.setVarFlag('do_rootfs', 'recrdeptask', flags)
        d.setVar('OPKG_PREPROCESS_COMMANDS', "")
        d.setVar('OPKG_POSTPROCESS_COMMANDS', '')
}


python __anon_507__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_bbclass () {
def __anon_507__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_bbclass(d):
    vardeps = set()
    # We allow CONVERSIONTYPES to have duplicates. That avoids breaking
    # derived distros when OE-core or some other layer independently adds
    # the same type. There is still only one command for each type, but
    # presumably the commands will do the same when the type is the same,
    # even when added in different places.
    #
    # Without de-duplication, gen_conversion_cmds() below
    # would create the same compression command multiple times.
    ctypes = set(d.getVar('CONVERSIONTYPES').split())
    old_overrides = d.getVar('OVERRIDES', False)

    def _image_base_type(type):
        basetype = type
        for ctype in ctypes:
            if type.endswith("." + ctype):
                basetype = type[:-len("." + ctype)]
                break

        if basetype != type:
            # New base type itself might be generated by a conversion command.
            basetype = _image_base_type(basetype)

        return basetype

    basetypes = {}
    alltypes = d.getVar('IMAGE_FSTYPES').split()
    typedeps = {}

    if d.getVar('IMAGE_GEN_DEBUGFS') == "1":
        debugfs_fstypes = d.getVar('IMAGE_FSTYPES_DEBUGFS').split()
        for t in debugfs_fstypes:
            alltypes.append("debugfs_" + t)

    def _add_type(t):
        baset = _image_base_type(t)
        input_t = t
        if baset not in basetypes:
            basetypes[baset]= []
        if t not in basetypes[baset]:
            basetypes[baset].append(t)
        debug = ""
        if t.startswith("debugfs_"):
            t = t[8:]
            debug = "debugfs_"
        deps = (d.getVar('IMAGE_TYPEDEP_' + t) or "").split()
        vardeps.add('IMAGE_TYPEDEP_' + t)
        if baset not in typedeps:
            typedeps[baset] = set()
        deps = [debug + dep for dep in deps]
        for dep in deps:
            if dep not in alltypes:
                alltypes.append(dep)
            _add_type(dep)
            basedep = _image_base_type(dep)
            typedeps[baset].add(basedep)

        if baset != input_t:
            _add_type(baset)

    for t in alltypes[:]:
        _add_type(t)

    d.appendVarFlag('do_image', 'vardeps', ' '.join(vardeps))

    maskedtypes = (d.getVar('IMAGE_TYPES_MASKED') or "").split()
    maskedtypes = [dbg + t for t in maskedtypes for dbg in ("", "debugfs_")]

    for t in basetypes:
        vardeps = set()
        cmds = []
        subimages = []
        realt = t

        if t in maskedtypes:
            continue

        localdata = bb.data.createCopy(d)
        debug = ""
        if t.startswith("debugfs_"):
            setup_debugfs_variables(localdata)
            debug = "setup_debugfs "
            realt = t[8:]
        localdata.setVar('OVERRIDES', '%s:%s' % (realt, old_overrides))
        localdata.setVar('type', realt)
        # Delete DATETIME so we don't expand any references to it now
        # This means the task's hash can be stable rather than having hardcoded
        # date/time values. It will get expanded at execution time.
        # Similarly TMPDIR since otherwise we see QA stamp comparision problems
        localdata.delVar('DATETIME')
        localdata.delVar('TMPDIR')

        image_cmd = localdata.getVar("IMAGE_CMD")
        vardeps.add('IMAGE_CMD_' + realt)
        if image_cmd:
            cmds.append("\t" + image_cmd)
        else:
            bb.fatal("No IMAGE_CMD defined for IMAGE_FSTYPES entry '%s' - possibly invalid type name or missing support class" % t)
        cmds.append(localdata.expand("\tcd ${IMGDEPLOYDIR}"))

        # Since a copy of IMAGE_CMD_xxx will be inlined within do_image_xxx,
        # prevent a redundant copy of IMAGE_CMD_xxx being emitted as a function.
        d.delVarFlag('IMAGE_CMD_' + realt, 'func')

        rm_tmp_images = set()
        def gen_conversion_cmds(bt):
            for ctype in ctypes:
                if bt.endswith("." + ctype):
                    type = bt[0:-len(ctype) - 1]
                    if type.startswith("debugfs_"):
                        type = type[8:]
                    # Create input image first.
                    gen_conversion_cmds(type)
                    localdata.setVar('type', type)
                    cmd = "\t" + (localdata.getVar("CONVERSION_CMD_" + ctype) or localdata.getVar("COMPRESS_CMD_" + ctype))
                    if cmd not in cmds:
                        cmds.append(cmd)
                    vardeps.add('CONVERSION_CMD_' + ctype)
                    vardeps.add('COMPRESS_CMD_' + ctype)
                    subimage = type + "." + ctype
                    if subimage not in subimages:
                        subimages.append(subimage)
                    if type not in alltypes:
                        rm_tmp_images.add(localdata.expand("${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"))

        for bt in basetypes[t]:
            gen_conversion_cmds(bt)

        localdata.setVar('type', realt)
        if t not in alltypes:
            rm_tmp_images.add(localdata.expand("${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"))
        else:
            subimages.append(realt)

        # Clean up after applying all conversion commands. Some of them might
        # use the same input, therefore we cannot delete sooner without applying
        # some complex dependency analysis.
        for image in sorted(rm_tmp_images):
            cmds.append("\trm " + image)

        after = 'do_image'
        for dep in typedeps[t]:
            after += ' do_image_%s' % dep.replace("-", "_").replace(".", "_")

        t = t.replace("-", "_").replace(".", "_")

        d.setVar('do_image_%s' % t, '\n'.join(cmds))
        d.setVarFlag('do_image_%s' % t, 'func', '1')
        d.setVarFlag('do_image_%s' % t, 'fakeroot', '1')
        d.setVarFlag('do_image_%s' % t, 'prefuncs', debug + 'set_image_size')
        d.setVarFlag('do_image_%s' % t, 'postfuncs', 'create_symlinks')
        d.setVarFlag('do_image_%s' % t, 'subimages', ' '.join(subimages))
        d.appendVarFlag('do_image_%s' % t, 'vardeps', ' '.join(vardeps))
        d.appendVarFlag('do_image_%s' % t, 'vardepsexclude', 'DATETIME')

        bb.debug(2, "Adding type %s before %s, after %s" % (t, 'do_image_complete', after))
        bb.build.addtask('do_image_%s' % t, 'do_image_complete', after, d)
}


python __anon_51__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_rootfs_postcommands_bbclass () {
def __anon_51__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_rootfs_postcommands_bbclass(d):
    d.appendVar('ROOTFS_POSTPROCESS_COMMAND', '${SORT_PASSWD_POSTPROCESS_COMMAND}')
}


python __anon_679__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_base_bbclass () {
def __anon_679__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_base_bbclass(d):
    import string, re

    # Handle PACKAGECONFIG
    #
    # These take the form:
    #
    # PACKAGECONFIG ??= "<default options>"
    # PACKAGECONFIG[foo] = "--enable-foo,--disable-foo,foo_depends,foo_runtime_depends"
    pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}
    if pkgconfigflags:
        pkgconfig = (d.getVar('PACKAGECONFIG') or "").split()
        pn = d.getVar("PN")

        mlprefix = d.getVar("MLPREFIX")

        def expandFilter(appends, extension, prefix):
            appends = bb.utils.explode_deps(d.expand(" ".join(appends)))
            newappends = []
            for a in appends:
                if a.endswith("-native") or ("-cross-" in a):
                    newappends.append(a)
                elif a.startswith("virtual/"):
                    subs = a.split("/", 1)[1]
                    if subs.startswith(prefix):
                        newappends.append(a + extension)
                    else:
                        newappends.append("virtual/" + prefix + subs + extension)
                else:
                    if a.startswith(prefix):
                        newappends.append(a + extension)
                    else:
                        newappends.append(prefix + a + extension)
            return newappends

        def appendVar(varname, appends):
            if not appends:
                return
            if varname.find("DEPENDS") != -1:
                if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('cross-canadian', d) :
                    appends = expandFilter(appends, "", "nativesdk-")
                elif bb.data.inherits_class('native', d):
                    appends = expandFilter(appends, "-native", "")
                elif mlprefix:
                    appends = expandFilter(appends, "", mlprefix)
            varname = d.expand(varname)
            d.appendVar(varname, " " + " ".join(appends))

        extradeps = []
        extrardeps = []
        extraconf = []
        for flag, flagval in sorted(pkgconfigflags.items()):
            items = flagval.split(",")
            num = len(items)
            if num > 4:
                bb.error("%s: PACKAGECONFIG[%s] Only enable,disable,depend,rdepend can be specified!"
                    % (d.getVar('PN'), flag))

            if flag in pkgconfig:
                if num >= 3 and items[2]:
                    extradeps.append(items[2])
                if num >= 4 and items[3]:
                    extrardeps.append(items[3])
                if num >= 1 and items[0]:
                    extraconf.append(items[0])
            elif num >= 2 and items[1]:
                    extraconf.append(items[1])
        appendVar('DEPENDS', extradeps)
        appendVar('RDEPENDS_${PN}', extrardeps)
        appendVar('PACKAGECONFIG_CONFARGS', extraconf)

    pn = d.getVar('PN')
    license = d.getVar('LICENSE')
    if license == "INVALID":
        bb.fatal('This recipe does not have the LICENSE field set (%s)' % pn)

    if bb.data.inherits_class('license', d):
        check_license_format(d)
        unmatched_license_flag = check_license_flags(d)
        if unmatched_license_flag:
            bb.debug(1, "Skipping %s because it has a restricted license not"
                 " whitelisted in LICENSE_FLAGS_WHITELIST" % pn)
            raise bb.parse.SkipPackage("because it has a restricted license not"
                 " whitelisted in LICENSE_FLAGS_WHITELIST")

    # If we're building a target package we need to use fakeroot (pseudo)
    # in order to capture permissions, owners, groups and special files
    if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
        d.setVarFlag('do_unpack', 'umask', '022')
        d.setVarFlag('do_configure', 'umask', '022')
        d.setVarFlag('do_compile', 'umask', '022')
        d.appendVarFlag('do_install', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
        d.setVarFlag('do_install', 'fakeroot', '1')
        d.setVarFlag('do_install', 'umask', '022')
        d.appendVarFlag('do_package', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
        d.setVarFlag('do_package', 'fakeroot', '1')
        d.setVarFlag('do_package', 'umask', '022')
        d.setVarFlag('do_package_setscene', 'fakeroot', '1')
        d.appendVarFlag('do_package_setscene', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')
        d.setVarFlag('do_devshell', 'fakeroot', '1')
        d.appendVarFlag('do_devshell', 'depends', ' virtual/fakeroot-native:do_populate_sysroot')

    need_machine = d.getVar('COMPATIBLE_MACHINE')
    if need_machine:
        import re
        compat_machines = (d.getVar('MACHINEOVERRIDES') or "").split(":")
        for m in compat_machines:
            if re.match(need_machine, m):
                break
        else:
            raise bb.parse.SkipPackage("incompatible with machine %s (not in COMPATIBLE_MACHINE)" % d.getVar('MACHINE'))

    source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False)
    if not source_mirror_fetch:
        need_host = d.getVar('COMPATIBLE_HOST')
        if need_host:
            import re
            this_host = d.getVar('HOST_SYS')
            if not re.match(need_host, this_host):
                raise bb.parse.SkipPackage("incompatible with host %s (not in COMPATIBLE_HOST)" % this_host)

        bad_licenses = (d.getVar('INCOMPATIBLE_LICENSE') or "").split()

        check_license = False if pn.startswith("nativesdk-") else True
        for t in ["-native", "-cross-${TARGET_ARCH}", "-cross-initial-${TARGET_ARCH}",
              "-crosssdk-${SDK_SYS}", "-crosssdk-initial-${SDK_SYS}",
              "-cross-canadian-${TRANSLATED_TARGET_ARCH}"]:
            if pn.endswith(d.expand(t)):
                check_license = False
        if pn.startswith("gcc-source-"):
            check_license = False

        if check_license and bad_licenses:
            bad_licenses = expand_wildcard_licenses(d, bad_licenses)

            whitelist = []
            incompatwl = []
            for lic in bad_licenses:
                spdx_license = return_spdx(d, lic)
                for w in ["LGPLv2_WHITELIST_", "WHITELIST_"]:
                    whitelist.extend((d.getVar(w + lic) or "").split())
                    if spdx_license:
                        whitelist.extend((d.getVar(w + spdx_license) or "").split())
                    '''
                    We need to track what we are whitelisting and why. If pn is
                    incompatible we need to be able to note that the image that
                    is created may infact contain incompatible licenses despite
                    INCOMPATIBLE_LICENSE being set.
                    '''
                    incompatwl.extend((d.getVar(w + lic) or "").split())
                    if spdx_license:
                        incompatwl.extend((d.getVar(w + spdx_license) or "").split())

            if not pn in whitelist:
                pkgs = d.getVar('PACKAGES').split()
                skipped_pkgs = []
                unskipped_pkgs = []
                for pkg in pkgs:
                    if incompatible_license(d, bad_licenses, pkg):
                        skipped_pkgs.append(pkg)
                    else:
                        unskipped_pkgs.append(pkg)
                all_skipped = skipped_pkgs and not unskipped_pkgs
                if unskipped_pkgs:
                    for pkg in skipped_pkgs:
                        bb.debug(1, "SKIPPING the package " + pkg + " at do_rootfs because it's " + license)
                        mlprefix = d.getVar('MLPREFIX')
                        d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, 1)
                    for pkg in unskipped_pkgs:
                        bb.debug(1, "INCLUDING the package " + pkg)
                elif all_skipped or incompatible_license(d, bad_licenses):
                    bb.debug(1, "SKIPPING recipe %s because it's %s" % (pn, license))
                    raise bb.parse.SkipPackage("it has an incompatible license: %s" % license)
            elif pn in whitelist:
                if pn in incompatwl:
                    bb.note("INCLUDING " + pn + " as buildable despite INCOMPATIBLE_LICENSE because it has been whitelisted")

        # Try to verify per-package (LICENSE_<pkg>) values. LICENSE should be a
        # superset of all per-package licenses. We do not do advanced (pattern)
        # matching of license expressions - just check that all license strings
        # in LICENSE_<pkg> are found in LICENSE.
        license_set = oe.license.list_licenses(license)
        for pkg in d.getVar('PACKAGES').split():
            pkg_license = d.getVar('LICENSE_' + pkg)
            if pkg_license:
                unlisted = oe.license.list_licenses(pkg_license) - license_set
                if unlisted:
                    bb.warn("LICENSE_%s includes licenses (%s) that are not "
                            "listed in LICENSE" % (pkg, ' '.join(unlisted)))

    needsrcrev = False
    srcuri = d.getVar('SRC_URI')
    for uri in srcuri.split():
        (scheme, _ , path) = bb.fetch.decodeurl(uri)[:3]

        # HTTP/FTP use the wget fetcher
        if scheme in ("http", "https", "ftp"):
            d.appendVarFlag('do_fetch', 'depends', ' wget-native:do_populate_sysroot')

        # Svn packages should DEPEND on subversion-native
        if scheme == "svn":
            needsrcrev = True
            d.appendVarFlag('do_fetch', 'depends', ' subversion-native:do_populate_sysroot')

        # Git packages should DEPEND on git-native
        elif scheme in ("git", "gitsm"):
            needsrcrev = True
            d.appendVarFlag('do_fetch', 'depends', ' git-native:do_populate_sysroot')

        # Mercurial packages should DEPEND on mercurial-native
        elif scheme == "hg":
            needsrcrev = True
            d.appendVarFlag('do_fetch', 'depends', ' mercurial-native:do_populate_sysroot')

        # Perforce packages support SRCREV = "${AUTOREV}"
        elif scheme == "p4":
            needsrcrev = True

        # OSC packages should DEPEND on osc-native
        elif scheme == "osc":
            d.appendVarFlag('do_fetch', 'depends', ' osc-native:do_populate_sysroot')

        elif scheme == "npm":
            d.appendVarFlag('do_fetch', 'depends', ' nodejs-native:do_populate_sysroot')

        # *.lz4 should DEPEND on lz4-native for unpacking
        if path.endswith('.lz4'):
            d.appendVarFlag('do_unpack', 'depends', ' lz4-native:do_populate_sysroot')

        # *.lz should DEPEND on lzip-native for unpacking
        elif path.endswith('.lz'):
            d.appendVarFlag('do_unpack', 'depends', ' lzip-native:do_populate_sysroot')

        # *.xz should DEPEND on xz-native for unpacking
        elif path.endswith('.xz'):
            d.appendVarFlag('do_unpack', 'depends', ' xz-native:do_populate_sysroot')

        # .zip should DEPEND on unzip-native for unpacking
        elif path.endswith('.zip'):
            d.appendVarFlag('do_unpack', 'depends', ' unzip-native:do_populate_sysroot')

        # file is needed by rpm2cpio.sh
        elif path.endswith('.src.rpm'):
            d.appendVarFlag('do_unpack', 'depends', ' file-native:do_populate_sysroot')

    if needsrcrev:
        d.setVar("SRCPV", "${@bb.fetch2.get_srcrev(d)}")

    set_packagetriplet(d)

    # 'multimachine' handling
    mach_arch = d.getVar('MACHINE_ARCH')
    pkg_arch = d.getVar('PACKAGE_ARCH')

    if (pkg_arch == mach_arch):
        # Already machine specific - nothing further to do
        return

    #
    # We always try to scan SRC_URI for urls with machine overrides
    # unless the package sets SRC_URI_OVERRIDES_PACKAGE_ARCH=0
    #
    override = d.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH')
    if override != '0':
        paths = []
        fpaths = (d.getVar('FILESPATH') or '').split(':')
        machine = d.getVar('MACHINE')
        for p in fpaths:
            if os.path.basename(p) == machine and os.path.isdir(p):
                paths.append(p)

        if len(paths) != 0:
            for s in srcuri.split():
                if not s.startswith("file://"):
                    continue
                fetcher = bb.fetch2.Fetch([s], d)
                local = fetcher.localpath(s)
                for mp in paths:
                    if local.startswith(mp):
                        #bb.note("overriding PACKAGE_ARCH from %s to %s for %s" % (pkg_arch, mach_arch, pn))
                        d.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}")
                        return

    packages = d.getVar('PACKAGES').split()
    for pkg in packages:
        pkgarch = d.getVar("PACKAGE_ARCH_%s" % pkg)

        # We could look for != PACKAGE_ARCH here but how to choose
        # if multiple differences are present?
        # Look through PACKAGE_ARCHS for the priority order?
        if pkgarch and pkgarch == mach_arch:
            d.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}")
            bb.warn("Recipe %s is marked as only being architecture specific but seems to have machine specific packages?! The recipe may as well mark itself as machine specific directly." % d.getVar("PN"))
}


python __anon_94__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_types_wic_bbclass () {
def __anon_94__home_mnhu_projects_pil_yocto_meta_poky_meta_classes_image_types_wic_bbclass(d):
    if d.getVar('USING_WIC'):
        wks_file_u = d.getVar('WKS_FULL_PATH', False)
        wks_file = d.expand(wks_file_u)
        base, ext = os.path.splitext(wks_file)
        if ext == '.in' and os.path.exists(wks_file):
            wks_out_file = os.path.join(d.getVar('WORKDIR'), os.path.basename(base))
            d.setVar('WKS_FULL_PATH', wks_out_file)
            d.setVar('WKS_TEMPLATE_PATH', wks_file_u)
            d.setVar('WKS_FILE_CHECKSUM', '${WKS_TEMPLATE_PATH}:True')

            # We need to re-parse each time the file changes, and bitbake
            # needs to be told about that explicitly.
            bb.parse.mark_dependency(d, wks_file)

            try:
                with open(wks_file, 'r') as f:
                    body = f.read()
            except (IOError, OSError) as exc:
                pass
            else:
                # Previously, I used expandWithRefs to get the dependency list
                # and add it to WICVARS, but there's no point re-parsing the
                # file in process_wks_template as well, so just put it in
                # a variable and let the metadata deal with the deps.
                d.setVar('_WKS_TEMPLATE', body)
                bb.build.addtask('do_write_wks_template', 'do_image_wic', None, d)
}


python add_package_and_files () {
def add_package_and_files(d):
    packages = d.getVar('PACKAGES')
    files = d.getVar('LICENSE_FILES_DIRECTORY')
    pn = d.getVar('PN')
    pn_lic = "%s%s" % (pn, d.getVar('LICENSE_PACKAGE_SUFFIX', False))
    if pn_lic in packages:
        bb.warn("%s package already existed in %s." % (pn_lic, pn))
    else:
        # first in PACKAGES to be sure that nothing else gets LICENSE_FILES_DIRECTORY
        d.setVar('PACKAGES', "%s %s" % (pn_lic, packages))
        d.setVar('FILES_' + pn_lic, files)
        rrecommends_pn = d.getVar('RRECOMMENDS_' + pn)
        if rrecommends_pn:
            d.setVar('RRECOMMENDS_' + pn, "%s %s" % (pn_lic, rrecommends_pn))
        else:
            d.setVar('RRECOMMENDS_' + pn, "%s" % (pn_lic))
}


python all_multilib_tune_list () {
def all_multilib_tune_list(vars, d):
    """
    Return a list of ${VAR} for each variable VAR in vars from each
    multilib tune configuration.
    Is safe to be called from a multilib recipe/context as it can
    figure out the original tune and remove the multilib overrides.
    """
    values = {}
    for v in vars:
        values[v] = []

    localdata = bb.data.createCopy(d)
    overrides = localdata.getVar("OVERRIDES", False).split(":")
    newoverrides = []
    for o in overrides:
        if not o.startswith("virtclass-multilib-"):
            newoverrides.append(o)
    localdata.setVar("OVERRIDES", ":".join(newoverrides))
    localdata.setVar("MLPREFIX", "")
    origdefault = localdata.getVar("DEFAULTTUNE_MULTILIB_ORIGINAL")
    if origdefault:
        localdata.setVar("DEFAULTTUNE", origdefault)
    values['ml'] = ['']
    for v in vars:
        values[v].append(localdata.getVar(v))
    variants = d.getVar("MULTILIB_VARIANTS") or ""
    for item in variants.split():
        localdata = get_multilib_datastore(item, d)
        values[v].append(localdata.getVar(v))
        values['ml'].append(item)
    return values
}


python all_multilib_tune_values () {
def all_multilib_tune_values(d, var, unique = True, need_split = True, delim = ' '):
    """Return a string of all ${var} in all multilib tune configuration"""
    values = []
    value = d.getVar(var) or ""
    if value != "":
        if need_split:
            for item in value.split(delim):
                values.append(item)
        else:
            values.append(value)
    variants = d.getVar("MULTILIB_VARIANTS") or ""
    for item in variants.split():
        localdata = get_multilib_datastore(item, d)
        value = localdata.getVar(var) or ""
        if value != "":
            if need_split:
                for item in value.split(delim):
                    values.append(item)
            else:
                values.append(value)
    if unique:
        #we do this to keep order as much as possible
        ret = []
        for value in values:
            if not value in ret:
                ret.append(value)
    else:
        ret = values
    return " ".join(ret)
}


python base_both_contain () {
def base_both_contain(variable1, variable2, checkvalue, d):
    return oe.utils.both_contain(variable1, variable2, checkvalue, d)
}


python base_conditional () {
def base_conditional(variable, checkvalue, truevalue, falsevalue, d):
    return oe.utils.conditional(variable, checkvalue, truevalue, falsevalue, d)
}


python base_contains () {
def base_contains(variable, checkvalues, truevalue, falsevalue, d):
    bb.note('base_contains is deprecated, please use bb.utils.contains instead.')
    return bb.utils.contains(variable, checkvalues, truevalue, falsevalue, d)
}


python base_dep_prepend () {
None}


python base_detect_branch () {
def base_detect_branch(d):
    path = base_get_scmbasepath(d)

    scms = [base_get_metadata_git_branch]

    for scm in scms:
        rev = scm(path, d)
        if rev != "<unknown>":
            return rev.strip()

    return "<unknown>"
}


python base_detect_revision () {
def base_detect_revision(d):
    path = base_get_scmbasepath(d)

    scms = [base_get_metadata_git_revision]

    for scm in scms:
        rev = scm(path, d)
        if rev != "<unknown>":
            return rev

    return "<unknown>"
}


python base_do_fetch () {

    src_uri = (d.getVar('SRC_URI') or "").split()
    if len(src_uri) == 0:
        return

    try:
        fetcher = bb.fetch2.Fetch(src_uri, d)
        fetcher.download()
    except bb.fetch2.BBFetchException as e:
        bb.fatal(str(e))
}


python base_do_unpack () {
    src_uri = (d.getVar('SRC_URI') or "").split()
    if len(src_uri) == 0:
        return

    try:
        fetcher = bb.fetch2.Fetch(src_uri, d)
        fetcher.unpack(d.getVar('WORKDIR'))
    except bb.fetch2.BBFetchException as e:
        bb.fatal(str(e))
}


python base_eventhandler () {
    import bb.runqueue

    if isinstance(e, bb.event.ConfigParsed):
        if not e.data.getVar("NATIVELSBSTRING", False):
            e.data.setVar("NATIVELSBSTRING", lsb_distro_identifier(e.data))
        e.data.setVar('BB_VERSION', bb.__version__)
        pkgarch_mapping(e.data)
        oe.utils.features_backfill("DISTRO_FEATURES", e.data)
        oe.utils.features_backfill("MACHINE_FEATURES", e.data)
        # Works with the line in layer.conf which changes PATH to point here
        setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d)
        setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False)

    if isinstance(e, bb.event.BuildStarted):
        localdata = bb.data.createCopy(e.data)
        statuslines = []
        for func in oe.data.typed_value('BUILDCFG_FUNCS', localdata):
            g = globals()
            if func not in g:
                bb.warn("Build configuration function '%s' does not exist" % func)
            else:
                flines = g[func](localdata)
                if flines:
                    statuslines.extend(flines)

        statusheader = e.data.getVar('BUILDCFG_HEADER')
        if statusheader:
            bb.plain('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines)))

    # This code is to silence warnings where the SDK variables overwrite the
    # target ones and we'd see dulpicate key names overwriting each other
    # for various PREFERRED_PROVIDERS
    if isinstance(e, bb.event.RecipePreFinalise):
        if e.data.getVar("TARGET_PREFIX") == e.data.getVar("SDK_PREFIX"):
            e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}binutils")
            e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-initial")
            e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc")
            e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}g++")
            e.data.delVar("PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs")

    if isinstance(e, bb.runqueue.sceneQueueComplete):
        completions = e.data.expand("${STAGING_DIR}/sstatecompletions")
        if os.path.exists(completions):
            cmds = set()
            with open(completions, "r") as f:
                cmds = set(f)
            e.data.setVar("completion_function", "\n".join(cmds))
            e.data.setVarFlag("completion_function", "func", "1")
            bb.debug(1, "Executing SceneQueue Completion commands: %s" % "\n".join(cmds))
            bb.build.exec_func("completion_function", e.data)
            os.remove(completions)

    if isinstance(e, bb.event.RecipeParsed):
        #
        # If we have multiple providers of virtual/X and a PREFERRED_PROVIDER_virtual/X is set
        # skip parsing for all the other providers which will mean they get uninstalled from the
        # sysroot since they're now "unreachable". This makes switching virtual/kernel work in
        # particular.
        #
        pn = d.getVar('PN')
        source_mirror_fetch = d.getVar('SOURCE_MIRROR_FETCH', False)
        if not source_mirror_fetch:
            provs = (d.getVar("PROVIDES") or "").split()
            multiwhitelist = (d.getVar("MULTI_PROVIDER_WHITELIST") or "").split()
            for p in provs:
                if p.startswith("virtual/") and p not in multiwhitelist:
                    profprov = d.getVar("PREFERRED_PROVIDER_" + p)
                    if profprov and pn != profprov:
                        raise bb.parse.SkipPackage("PREFERRED_PROVIDER_%s set to %s, not %s" % (p, profprov, pn))
}


python base_get_metadata_git_branch () {
def base_get_metadata_git_branch(path, d):
    import bb.process

    try:
        rev, _ = bb.process.run('git rev-parse --abbrev-ref HEAD', cwd=path)
    except bb.process.ExecutionError:
        rev = '<unknown>'
    return rev.strip()
}


python base_get_metadata_git_revision () {
def base_get_metadata_git_revision(path, d):
    import bb.process

    try:
        rev, _ = bb.process.run('git rev-parse HEAD', cwd=path)
    except bb.process.ExecutionError:
        rev = '<unknown>'
    return rev.strip()}


python base_get_metadata_monotone_branch () {
def base_get_metadata_monotone_branch(path, d):
    monotone_branch = "<unknown>"
    try:
        with open("%s/_MTN/options" % path) as f:
            monotone_branch = f.read().strip()
            if monotone_branch.startswith( "database" ):
                monotone_branch_words = monotone_branch.split()
                monotone_branch = monotone_branch_words[ monotone_branch_words.index( "branch" )+1][1:-1]
    except:
        pass
    return monotone_branch
}


python base_get_metadata_monotone_revision () {
def base_get_metadata_monotone_revision(path, d):
    monotone_revision = "<unknown>"
    try:
        with open("%s/_MTN/revision" % path) as f:
            monotone_revision = f.read().strip()
            if monotone_revision.startswith( "format_version" ):
                monotone_revision_words = monotone_revision.split()
                monotone_revision = monotone_revision_words[ monotone_revision_words.index( "old_revision" )+1][1:-1]
    except IOError:
        pass
    return monotone_revision
}


python base_get_metadata_svn_revision () {
def base_get_metadata_svn_revision(path, d):
    # This only works with older subversion. For newer versions
    # this function will need to be fixed by someone interested
    revision = "<unknown>"
    try:
        with open("%s/.svn/entries" % path) as f:
            revision = f.readlines()[3].strip()
    except (IOError, IndexError):
        pass
    return revision
}


python base_get_scmbasepath () {
def base_get_scmbasepath(d):
    return os.path.join(d.getVar('COREBASE'), 'meta')
}


python base_ifelse () {
def base_ifelse(condition, iftrue = True, iffalse = False):
    return oe.utils.ifelse(condition, iftrue, iffalse)
}


python base_less_or_equal () {
def base_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
    return oe.utils.less_or_equal(variable, checkvalue, truevalue, falsevalue, d)
}


python base_path_join () {
def base_path_join(a, *p):
    return oe.path.join(a, *p)
}


python base_path_out () {
def base_path_out(path, d):
    return oe.path.format_display(path, d)
}


python base_path_relative () {
def base_path_relative(src, dest):
    return oe.path.relative(src, dest)
}


python base_prune_suffix () {
def base_prune_suffix(var, suffixes, d):
    return oe.utils.prune_suffix(var, suffixes, d)
}


python base_read_file () {
def base_read_file(filename):
    return oe.utils.read_file(filename)
}


python base_set_filespath () {
def base_set_filespath(path, d):
    filespath = []
    extrapaths = (d.getVar("FILESEXTRAPATHS") or "")
    # Remove default flag which was used for checking
    extrapaths = extrapaths.replace("__default:", "")
    # Don't prepend empty strings to the path list
    if extrapaths != "":
        path = extrapaths.split(":") + path
    # The ":" ensures we have an 'empty' override
    overrides = (":" + (d.getVar("FILESOVERRIDES") or "")).split(":")
    overrides.reverse()
    for o in overrides:
        for p in path:
            if p != "":
                filespath.append(os.path.join(p, o))
    return ":".join(filespath)
}


python base_version_less_or_equal () {
def base_version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d):
    return oe.utils.version_less_or_equal(variable, checkvalue, truevalue, falsevalue, d)
}


python bblayers_conf_file () {
def bblayers_conf_file(d):
    return os.path.join(d.getVar('TOPDIR'), 'conf/bblayers.conf')
}


python build_live () {
def build_live(d):
    if bb.utils.contains("IMAGE_FSTYPES", "live", "live", "0", d) == "0": # live is not set but hob might set iso or hddimg
        d.setVar('NOISO', bb.utils.contains('IMAGE_FSTYPES', "iso", "0", "1", d))
        d.setVar('NOHDD', bb.utils.contains('IMAGE_FSTYPES', "hddimg", "0", "1", d))
        if d.getVar('NOISO') == "0" or d.getVar('NOHDD') == "0":
            return "image-live"
        return ""
    return "image-live"
}


python build_uboot () {
def build_uboot(d):
    if 'u-boot' in (d.getVar('IMAGE_FSTYPES') or ''):
        return "image_types_uboot"
    else:
        return ""
}


python buildcfg_neededvars () {
def buildcfg_neededvars(d):
    needed_vars = oe.data.typed_value("BUILDCFG_NEEDEDVARS", d)
    pesteruser = []
    for v in needed_vars:
        val = d.getVar(v)
        if not val or val == 'INVALID':
            pesteruser.append(v)

    if pesteruser:
        bb.fatal('The following variable(s) were not set: %s\nPlease set them directly, or choose a MACHINE or DISTRO that sets them.' % ', '.join(pesteruser))
}


python buildcfg_vars () {
def buildcfg_vars(d):
    statusvars = oe.data.typed_value('BUILDCFG_VARS', d)
    for var in statusvars:
        value = d.getVar(var)
        if value is not None:
            yield '%-17s = "%s"' % (var, value)
}


python canonical_license () {
def canonical_license(d, license):
    """
    Return the canonical (SPDX) form of the license if available (so GPLv3
    becomes GPL-3.0), for the license named 'X+', return canonical form of
    'X' if availabel and the tailing '+' (so GPLv3+ becomes GPL-3.0+),
    or the passed license if there is no canonical form.
    """
    lic = d.getVarFlag('SPDXLICENSEMAP', license) or ""
    if not lic and license.endswith('+'):
        lic = d.getVarFlag('SPDXLICENSEMAP', license.rstrip('+'))
        if lic:
            lic += '+'
    return lic or license
}


python check_app_exists () {
def check_app_exists(app, d):
    app = d.expand(app).strip()
    path = d.getVar('PATH')
    return bool(bb.utils.which(path, app))
}


python check_conf_exists () {
def check_conf_exists(fn, data):
    bbpath = []
    fn = data.expand(fn)
    vbbpath = data.getVar("BBPATH", False)
    if vbbpath:
        bbpath += vbbpath.split(":")
    for p in bbpath:
        currname = os.path.join(data.expand(p), fn)
        if os.access(currname, os.R_OK):
            return True
    return False
}


python check_connectivity () {
def check_connectivity(d):
    # URI's to check can be set in the CONNECTIVITY_CHECK_URIS variable
    # using the same syntax as for SRC_URI. If the variable is not set
    # the check is skipped
    test_uris = (d.getVar('CONNECTIVITY_CHECK_URIS') or "").split()
    retval = ""

    bbn = d.getVar('BB_NO_NETWORK')
    if bbn not in (None, '0', '1'):
        return 'BB_NO_NETWORK should be "0" or "1", but it is "%s"' % bbn

    # Only check connectivity if network enabled and the
    # CONNECTIVITY_CHECK_URIS are set
    network_enabled = not (bbn == '1')
    check_enabled = len(test_uris)
    if check_enabled and network_enabled:
        # Take a copy of the data store and unset MIRRORS and PREMIRRORS
        data = bb.data.createCopy(d)
        data.delVar('PREMIRRORS')
        data.delVar('MIRRORS')
        try:
            fetcher = bb.fetch2.Fetch(test_uris, data)
            fetcher.checkstatus()
        except Exception as err:
            # Allow the message to be configured so that users can be
            # pointed to a support mechanism.
            msg = data.getVar('CONNECTIVITY_CHECK_MSG') or ""
            if len(msg) == 0:
                msg = "%s.\n" % err
                msg += "    Please ensure your host's network is configured correctly,\n"
                msg += "    or set BB_NO_NETWORK = \"1\" to disable network access if\n"
                msg += "    all required sources are on local disk.\n"
            retval = msg

    return retval
}


python check_create_long_filename () {
def check_create_long_filename(filepath, pathname):
    import string, random
    testfile = os.path.join(filepath, ''.join(random.choice(string.ascii_letters) for x in range(200)))
    try:
        if not os.path.exists(filepath):
            bb.utils.mkdirhier(filepath)
        f = open(testfile, "w")
        f.close()
        os.remove(testfile)
    except IOError as e:
        import errno
        err, strerror = e.args
        if err == errno.ENAMETOOLONG:
            return "Failed to create a file with a long name in %s. Please use a filesystem that does not unreasonably limit filename length.\n" % pathname
        else:
            return "Failed to create a file in %s: %s.\n" % (pathname, strerror)
    except OSError as e:
        errno, strerror = e.args
        return "Failed to create %s directory in which to run long name sanity check: %s.\n" % (pathname, strerror)
    return ""
}


python check_gcc_march () {
def check_gcc_march(sanity_data):
    result = True
    message = ""

    # Check if -march not in BUILD_CFLAGS
    if sanity_data.getVar("BUILD_CFLAGS").find("-march") < 0:
        result = False

        # Construct a test file
        f = open("gcc_test.c", "w")
        f.write("int main (){ volatile int atomic = 2; __sync_bool_compare_and_swap (&atomic, 2, 3); return 0; }\n")
        f.close()

        # Check if GCC could work without march
        if not result:
            status,res = oe.utils.getstatusoutput(sanity_data.expand("${BUILD_CC} gcc_test.c -o gcc_test"))
            if status == 0:
                result = True;

        if not result:
            status,res = oe.utils.getstatusoutput(sanity_data.expand("${BUILD_CC} -march=native gcc_test.c -o gcc_test"))
            if status == 0:
                message = "BUILD_CFLAGS_append = \" -march=native\""
                result = True;

        if not result:
            build_arch = sanity_data.getVar('BUILD_ARCH')
            status,res = oe.utils.getstatusoutput(sanity_data.expand("${BUILD_CC} -march=%s gcc_test.c -o gcc_test" % build_arch))
            if status == 0:
                message = "BUILD_CFLAGS_append = \" -march=%s\"" % build_arch
                result = True;

        os.remove("gcc_test.c")
        if os.path.exists("gcc_test"):
            os.remove("gcc_test")

    return (result, message)
}


python check_git_version () {
def check_git_version(sanity_data):
    from distutils.version import LooseVersion
    status, result = oe.utils.getstatusoutput("git --version 2> /dev/null")
    if status != 0:
        return "Unable to execute git --version, exit code %s\n" % status
    version = result.split()[2]
    if LooseVersion(version) < LooseVersion("1.8.3.1"):
        return "Your version of git is older than 1.8.3.1 and has bugs which will break builds. Please install a newer version of git.\n"
    return None
}


python check_image_features () {
def check_image_features(d):
    valid_features = (d.getVarFlag('IMAGE_FEATURES', 'validitems') or "").split()
    valid_features += d.getVarFlags('COMPLEMENTARY_GLOB').keys()
    for var in d:
       if var.startswith("PACKAGE_GROUP_"):
           bb.warn("PACKAGE_GROUP is deprecated, please use FEATURE_PACKAGES instead")
           valid_features.append(var[14:])
       elif var.startswith("FEATURE_PACKAGES_"):
           valid_features.append(var[17:])
    valid_features.sort()

    features = set(oe.data.typed_value('IMAGE_FEATURES', d))
    for feature in features:
        if feature not in valid_features:
            if bb.utils.contains('EXTRA_IMAGE_FEATURES', feature, True, False, d):
                raise bb.parse.SkipRecipe("'%s' in IMAGE_FEATURES (added via EXTRA_IMAGE_FEATURES) is not a valid image feature. Valid features: %s" % (feature, ' '.join(valid_features)))
            else:
                raise bb.parse.SkipRecipe("'%s' in IMAGE_FEATURES is not a valid image feature. Valid features: %s" % (feature, ' '.join(valid_features)))
}


python check_license_flags () {
def check_license_flags(d):
    """
    This function checks if a recipe has any LICENSE_FLAGS that
    aren't whitelisted.

    If it does, it returns the first LICENSE_FLAGS item missing from the
    whitelist, or all of the LICENSE_FLAGS if there is no whitelist.

    If everything is is properly whitelisted, it returns None.
    """

    def license_flag_matches(flag, whitelist, pn):
        """
        Return True if flag matches something in whitelist, None if not.

        Before we test a flag against the whitelist, we append _${PN}
        to it.  We then try to match that string against the
        whitelist.  This covers the normal case, where we expect
        LICENSE_FLAGS to be a simple string like 'commercial', which
        the user typically matches exactly in the whitelist by
        explicitly appending the package name e.g 'commercial_foo'.
        If we fail the match however, we then split the flag across
        '_' and append each fragment and test until we either match or
        run out of fragments.
        """
        flag_pn = ("%s_%s" % (flag, pn))
        for candidate in whitelist:
            if flag_pn == candidate:
                    return True

        flag_cur = ""
        flagments = flag_pn.split("_")
        flagments.pop() # we've already tested the full string
        for flagment in flagments:
            if flag_cur:
                flag_cur += "_"
            flag_cur += flagment
            for candidate in whitelist:
                if flag_cur == candidate:
                    return True
        return False

    def all_license_flags_match(license_flags, whitelist):
        """ Return first unmatched flag, None if all flags match """
        pn = d.getVar('PN')
        split_whitelist = whitelist.split()
        for flag in license_flags.split():
            if not license_flag_matches(flag, split_whitelist, pn):
                return flag
        return None

    license_flags = d.getVar('LICENSE_FLAGS')
    if license_flags:
        whitelist = d.getVar('LICENSE_FLAGS_WHITELIST')
        if not whitelist:
            return license_flags
        unmatched_flag = all_license_flags_match(license_flags, whitelist)
        if unmatched_flag:
            return unmatched_flag
    return None
}


python check_license_format () {
def check_license_format(d):
    """
    This function checks if LICENSE is well defined,
        Validate operators in LICENSES.
        No spaces are allowed between LICENSES.
    """
    pn = d.getVar('PN')
    licenses = d.getVar('LICENSE')
    from oe.license import license_operator, license_operator_chars, license_pattern

    elements = list(filter(lambda x: x.strip(), license_operator.split(licenses)))
    for pos, element in enumerate(elements):
        if license_pattern.match(element):
            if pos > 0 and license_pattern.match(elements[pos - 1]):
                bb.warn('%s: LICENSE value "%s" has an invalid format - license names ' \
                        'must be separated by the following characters to indicate ' \
                        'the license selection: %s' %
                        (pn, licenses, license_operator_chars))
        elif not license_operator.match(element):
            bb.warn('%s: LICENSE value "%s" has an invalid separator "%s" that is not ' \
                    'in the valid list of separators (%s)' %
                    (pn, licenses, element, license_operator_chars))
}


python check_make_version () {
def check_make_version(sanity_data):
    from distutils.version import LooseVersion
    status, result = oe.utils.getstatusoutput("make --version")
    if status != 0:
        return "Unable to execute make --version, exit code %s\n" % status
    version = result.split()[2]
    if LooseVersion(version) == LooseVersion("3.82"):
        # Construct a test file
        f = open("makefile_test", "w")
        f.write("makefile_test.a: makefile_test_a.c makefile_test_b.c makefile_test.a( makefile_test_a.c makefile_test_b.c)\n")
        f.write("\n")
        f.write("makefile_test_a.c:\n")
        f.write("	touch $@\n")
        f.write("\n")
        f.write("makefile_test_b.c:\n")
        f.write("	touch $@\n")
        f.close()

        # Check if make 3.82 has been patched
        status,result = oe.utils.getstatusoutput("make -f makefile_test")

        os.remove("makefile_test")
        if os.path.exists("makefile_test_a.c"):
            os.remove("makefile_test_a.c")
        if os.path.exists("makefile_test_b.c"):
            os.remove("makefile_test_b.c")
        if os.path.exists("makefile_test.a"):
            os.remove("makefile_test.a")

        if status != 0:
            return "Your version of make 3.82 is broken. Please revert to 3.81 or install a patched version.\n"
    return None

}


python check_not_nfs () {
def check_not_nfs(path, name):
    # The nfs' filesystem id is 6969
    if get_filesystem_id(path) == "6969":
        return "The %s: %s can't be located on nfs.\n" % (name, path)
    return ""
}


python check_path_length () {
def check_path_length(filepath, pathname, limit):
    if len(filepath) > limit:
        return "The length of %s is longer than %s, this would cause unexpected errors, please use a shorter path.\n" % (pathname, limit)
    return ""
}


python check_perl_modules () {
def check_perl_modules(sanity_data):
    ret = ""
    modules = ( "Text::ParseWords", "Thread::Queue", "Data::Dumper" )
    errresult = ''
    for m in modules:
        status, result = oe.utils.getstatusoutput("perl -e 'use %s'" % m)
        if status != 0:
            errresult += result
            ret += "%s " % m
    if ret:
        return "Required perl module(s) not found: %s\n\n%s\n" % (ret, errresult)
    return None
}


python check_sanity () {
def check_sanity(sanity_data):
    class SanityStatus(object):
        def __init__(self):
            self.messages = ""
            self.network_error = False

        def addresult(self, message):
            if message:
                self.messages = self.messages + message

    status = SanityStatus()

    tmpdir = sanity_data.getVar('TMPDIR')
    sstate_dir = sanity_data.getVar('SSTATE_DIR')

    check_symlink(sstate_dir, sanity_data)

    # Check saved sanity info
    last_sanity_version = 0
    last_tmpdir = ""
    last_sstate_dir = ""
    last_nativelsbstr = ""
    sanityverfile = sanity_data.expand("${TOPDIR}/conf/sanity_info")
    if os.path.exists(sanityverfile):
        with open(sanityverfile, 'r') as f:
            for line in f:
                if line.startswith('SANITY_VERSION'):
                    last_sanity_version = int(line.split()[1])
                if line.startswith('TMPDIR'):
                    last_tmpdir = line.split()[1]
                if line.startswith('SSTATE_DIR'):
                    last_sstate_dir = line.split()[1]
                if line.startswith('NATIVELSBSTRING'):
                    last_nativelsbstr = line.split()[1]

    check_sanity_everybuild(status, sanity_data)

    sanity_version = int(sanity_data.getVar('SANITY_VERSION') or 1)
    network_error = False
    # NATIVELSBSTRING var may have been overridden with "universal", so
    # get actual host distribution id and version
    nativelsbstr = lsb_distro_identifier(sanity_data)
    if last_sanity_version < sanity_version or last_nativelsbstr != nativelsbstr:
        check_sanity_version_change(status, sanity_data)
        status.addresult(check_sanity_sstate_dir_change(sstate_dir, sanity_data))
    else:
        if last_sstate_dir != sstate_dir:
            status.addresult(check_sanity_sstate_dir_change(sstate_dir, sanity_data))

    if os.path.exists(os.path.dirname(sanityverfile)) and not status.messages:
        with open(sanityverfile, 'w') as f:
            f.write("SANITY_VERSION %s\n" % sanity_version)
            f.write("TMPDIR %s\n" % tmpdir)
            f.write("SSTATE_DIR %s\n" % sstate_dir)
            f.write("NATIVELSBSTRING %s\n" % nativelsbstr)

    sanity_handle_abichanges(status, sanity_data)

    if status.messages != "":
        raise_sanity_error(sanity_data.expand(status.messages), sanity_data, status.network_error)
}


python check_sanity_eventhandler () {
    if bb.event.getName(e) == "SanityCheck":
        sanity_data = copy_data(e)
        check_sanity(sanity_data)
        if e.generateevents:
            sanity_data.setVar("SANITY_USE_EVENTS", "1")
        bb.event.fire(bb.event.SanityCheckPassed(), e.data)
    elif bb.event.getName(e) == "NetworkTest":
        sanity_data = copy_data(e)
        if e.generateevents:
            sanity_data.setVar("SANITY_USE_EVENTS", "1")
        bb.event.fire(bb.event.NetworkTestFailed() if check_connectivity(sanity_data) else bb.event.NetworkTestPassed(), e.data)

    return
}


python check_sanity_everybuild () {
def check_sanity_everybuild(status, d):
    import os, stat
    # Sanity tests which test the users environment so need to run at each build (or are so cheap
    # it makes sense to always run them.

    if 0 == os.getuid():
        raise_sanity_error("Do not use Bitbake as root.", d)

    # Check the Python version, we now have a minimum of Python 2.7.3
    import sys
    if sys.hexversion < 0x020703F0:
        status.addresult('The system requires at least Python 2.7.3 to run. Please update your Python interpreter.\n')

    # Check the bitbake version meets minimum requirements
    from distutils.version import LooseVersion
    minversion = d.getVar('BB_MIN_VERSION')
    if (LooseVersion(bb.__version__) < LooseVersion(minversion)):
        status.addresult('Bitbake version %s is required and version %s was found\n' % (minversion, bb.__version__))

    sanity_check_locale(d)

    paths = d.getVar('PATH').split(":")
    if "." in paths or "./" in paths or "" in paths:
        status.addresult("PATH contains '.', './' or '' (empty element), which will break the build, please remove this.\nParsed PATH is " + str(paths) + "\n")

    # Check that the DISTRO is valid, if set
    # need to take into account DISTRO renaming DISTRO
    distro = d.getVar('DISTRO')
    if distro and distro != "nodistro":
        if not ( check_conf_exists("conf/distro/${DISTRO}.conf", d) or check_conf_exists("conf/distro/include/${DISTRO}.inc", d) ):
            status.addresult("DISTRO '%s' not found. Please set a valid DISTRO in your local.conf\n" % d.getVar("DISTRO"))

    # Check that DL_DIR is set, exists and is writable. In theory, we should never even hit the check if DL_DIR isn't
    # set, since so much relies on it being set.
    dldir = d.getVar('DL_DIR')
    if not dldir:
        status.addresult("DL_DIR is not set. Your environment is misconfigured, check that DL_DIR is set, and if the directory exists, that it is writable. \n")
    if os.path.exists(dldir) and not os.access(dldir, os.W_OK):
        status.addresult("DL_DIR: %s exists but you do not appear to have write access to it. \n" % dldir)
    check_symlink(dldir, d)

    # Check that the MACHINE is valid, if it is set
    machinevalid = True
    if d.getVar('MACHINE'):
        if not check_conf_exists("conf/machine/${MACHINE}.conf", d):
            status.addresult('MACHINE=%s is invalid. Please set a valid MACHINE in your local.conf, environment or other configuration file.\n' % (d.getVar('MACHINE')))
            machinevalid = False
        else:
            status.addresult(check_sanity_validmachine(d))
    else:
        status.addresult('Please set a MACHINE in your local.conf or environment\n')
        machinevalid = False
    if machinevalid:
        status.addresult(check_toolchain(d))

    # Check that the SDKMACHINE is valid, if it is set
    if d.getVar('SDKMACHINE'):
        if not check_conf_exists("conf/machine-sdk/${SDKMACHINE}.conf", d):
            status.addresult('Specified SDKMACHINE value is not valid\n')
        elif d.getVar('SDK_ARCH', False) == "${BUILD_ARCH}":
            status.addresult('SDKMACHINE is set, but SDK_ARCH has not been changed as a result - SDKMACHINE may have been set too late (e.g. in the distro configuration)\n')

    check_supported_distro(d)

    omask = os.umask(0o022)
    if omask & 0o755:
        status.addresult("Please use a umask which allows a+rx and u+rwx\n")
    os.umask(omask)

    if d.getVar('TARGET_ARCH') == "arm":
        # This path is no longer user-readable in modern (very recent) Linux
        try:
            if os.path.exists("/proc/sys/vm/mmap_min_addr"):
                f = open("/proc/sys/vm/mmap_min_addr", "r")
                try:
                    if (int(f.read().strip()) > 65536):
                        status.addresult("/proc/sys/vm/mmap_min_addr is not <= 65536. This will cause problems with qemu so please fix the value (as root).\n\nTo fix this in later reboots, set vm.mmap_min_addr = 65536 in /etc/sysctl.conf.\n")
                finally:
                    f.close()
        except:
            pass

    oeroot = d.getVar('COREBASE')
    if oeroot.find('+') != -1:
        status.addresult("Error, you have an invalid character (+) in your COREBASE directory path. Please move the installation to a directory which doesn't include any + characters.")
    if oeroot.find('@') != -1:
        status.addresult("Error, you have an invalid character (@) in your COREBASE directory path. Please move the installation to a directory which doesn't include any @ characters.")
    if oeroot.find(' ') != -1:
        status.addresult("Error, you have a space in your COREBASE directory path. Please move the installation to a directory which doesn't include a space since autotools doesn't support this.")

    # Check the format of MIRRORS, PREMIRRORS and SSTATE_MIRRORS
    import re
    mirror_vars = ['MIRRORS', 'PREMIRRORS', 'SSTATE_MIRRORS']
    protocols = ['http', 'ftp', 'file', 'https', \
                 'git', 'gitsm', 'hg', 'osc', 'p4', 'svn', \
                 'bzr', 'cvs', 'npm', 'sftp', 'ssh', 's3' ]
    for mirror_var in mirror_vars:
        mirrors = (d.getVar(mirror_var) or '').replace('\\n', ' ').split()

        # Split into pairs
        if len(mirrors) % 2 != 0:
            bb.warn('Invalid mirror variable value for %s: %s, should contain paired members.' % (mirror_var, mirrors.strip()))
            continue
        mirrors = list(zip(*[iter(mirrors)]*2))

        for mirror_entry in mirrors:
            pattern, mirror = mirror_entry

            decoded = bb.fetch2.decodeurl(pattern)
            try:
                pattern_scheme = re.compile(decoded[0])
            except re.error as exc:
                bb.warn('Invalid scheme regex (%s) in %s; %s' % (pattern, mirror_var, mirror_entry))
                continue

            if not any(pattern_scheme.match(protocol) for protocol in protocols):
                bb.warn('Invalid protocol (%s) in %s: %s' % (decoded[0], mirror_var, mirror_entry))
                continue

            if not any(mirror.startswith(protocol + '://') for protocol in protocols):
                bb.warn('Invalid protocol in %s: %s' % (mirror_var, mirror_entry))
                continue

            if mirror.startswith('file://'):
                import urllib
                check_symlink(urllib.parse.urlparse(mirror).path, d)
                # SSTATE_MIRROR ends with a /PATH string
                if mirror.endswith('/PATH'):
                    # remove /PATH$ from SSTATE_MIRROR to get a working
                    # base directory path
                    mirror_base = urllib.parse.urlparse(mirror[:-1*len('/PATH')]).path
                    check_symlink(mirror_base, d)

    # Check that TMPDIR hasn't changed location since the last time we were run
    tmpdir = d.getVar('TMPDIR')
    checkfile = os.path.join(tmpdir, "saved_tmpdir")
    if os.path.exists(checkfile):
        with open(checkfile, "r") as f:
            saved_tmpdir = f.read().strip()
            if (saved_tmpdir != tmpdir):
                status.addresult("Error, TMPDIR has changed location. You need to either move it back to %s or rebuild\n" % saved_tmpdir)
    else:
        bb.utils.mkdirhier(tmpdir)
        # Remove setuid, setgid and sticky bits from TMPDIR
        try:
            os.chmod(tmpdir, os.stat(tmpdir).st_mode & ~ stat.S_ISUID)
            os.chmod(tmpdir, os.stat(tmpdir).st_mode & ~ stat.S_ISGID)
            os.chmod(tmpdir, os.stat(tmpdir).st_mode & ~ stat.S_ISVTX)
        except OSError as exc:
            bb.warn("Unable to chmod TMPDIR: %s" % exc)
        with open(checkfile, "w") as f:
            f.write(tmpdir)

    # If /bin/sh is a symlink, check that it points to dash or bash
    if os.path.islink('/bin/sh'):
        real_sh = os.path.realpath('/bin/sh')
        # Due to update-alternatives, the shell name may take various
        # forms, such as /bin/dash, bin/bash, /bin/bash.bash ...
        if '/dash' not in real_sh and '/bash' not in real_sh:
            status.addresult("Error, /bin/sh links to %s, must be dash or bash\n" % real_sh)
}


python check_sanity_sstate_dir_change () {
def check_sanity_sstate_dir_change(sstate_dir, data):
    # Sanity checks to be done when the value of SSTATE_DIR changes

    # Check that SSTATE_DIR isn't on a filesystem with limited filename length (eg. eCryptFS)
    testmsg = ""
    if sstate_dir != "":
        testmsg = check_create_long_filename(sstate_dir, "SSTATE_DIR")
        # If we don't have permissions to SSTATE_DIR, suggest the user set it as an SSTATE_MIRRORS
        try:
            err = testmsg.split(': ')[1].strip()
            if err == "Permission denied.":
                testmsg = testmsg + "You could try using %s in SSTATE_MIRRORS rather than as an SSTATE_CACHE.\n" % (sstate_dir)
        except IndexError:
            pass
    return testmsg
}


python check_sanity_validmachine () {
def check_sanity_validmachine(sanity_data):
    messages = ""

    # Check TUNE_ARCH is set
    if sanity_data.getVar('TUNE_ARCH') == 'INVALID':
        messages = messages + 'TUNE_ARCH is unset. Please ensure your MACHINE configuration includes a valid tune configuration file which will set this correctly.\n'

    # Check TARGET_OS is set
    if sanity_data.getVar('TARGET_OS') == 'INVALID':
        messages = messages + 'Please set TARGET_OS directly, or choose a MACHINE or DISTRO that does so.\n'

    # Check that we don't have duplicate entries in PACKAGE_ARCHS & that TUNE_PKGARCH is in PACKAGE_ARCHS
    pkgarchs = sanity_data.getVar('PACKAGE_ARCHS')
    tunepkg = sanity_data.getVar('TUNE_PKGARCH')
    defaulttune = sanity_data.getVar('DEFAULTTUNE')
    tunefound = False
    seen = {}
    dups = []

    for pa in pkgarchs.split():
        if seen.get(pa, 0) == 1:
            dups.append(pa)
        else:
            seen[pa] = 1
        if pa == tunepkg:
            tunefound = True

    if len(dups):
        messages = messages + "Error, the PACKAGE_ARCHS variable contains duplicates. The following archs are listed more than once: %s" % " ".join(dups)

    if tunefound == False:
        messages = messages + "Error, the PACKAGE_ARCHS variable (%s) for DEFAULTTUNE (%s) does not contain TUNE_PKGARCH (%s)." % (pkgarchs, defaulttune, tunepkg)

    return messages
}


python check_sanity_version_change () {
def check_sanity_version_change(status, d):
    # Sanity checks to be done when SANITY_VERSION or NATIVELSBSTRING changes
    # In other words, these tests run once in a given build directory and then
    # never again until the sanity version or host distrubution id/version changes.

    # Check the python install is complete. glib-2.0-natives requries
    # xml.parsers.expat
    try:
        import xml.parsers.expat
    except ImportError:
        status.addresult('Your python is not a full install. Please install the module xml.parsers.expat (python-xml on openSUSE and SUSE Linux).\n')
    import stat

    status.addresult(check_make_version(d))
    status.addresult(check_tar_version(d))
    status.addresult(check_git_version(d))
    status.addresult(check_perl_modules(d))

    missing = ""

    if not check_app_exists("${MAKE}", d):
        missing = missing + "GNU make,"

    if not check_app_exists('${BUILD_CC}', d):
        missing = missing + "C Compiler (%s)," % d.getVar("BUILD_CC")

    if not check_app_exists('${BUILD_CXX}', d):
        missing = missing + "C++ Compiler (%s)," % d.getVar("BUILD_CXX")

    required_utilities = d.getVar('SANITY_REQUIRED_UTILITIES')

    for util in required_utilities.split():
        if not check_app_exists(util, d):
            missing = missing + "%s," % util

    if missing:
        missing = missing.rstrip(',')
        status.addresult("Please install the following missing utilities: %s\n" % missing)

    assume_provided = d.getVar('ASSUME_PROVIDED').split()
    # Check user doesn't have ASSUME_PROVIDED = instead of += in local.conf
    if "diffstat-native" not in assume_provided:
        status.addresult('Please use ASSUME_PROVIDED +=, not ASSUME_PROVIDED = in your local.conf\n')

    if "qemu-native" in assume_provided:
        if not check_app_exists("qemu-arm", d):
            status.addresult("qemu-native was in ASSUME_PROVIDED but the QEMU binaries (qemu-arm) can't be found in PATH")

    if "libsdl-native" in assume_provided:
        if not check_app_exists("sdl-config", d):
            status.addresult("libsdl-native is set to be ASSUME_PROVIDED but sdl-config can't be found in PATH. Please either install it, or configure qemu not to require sdl.")

    (result, message) = check_gcc_march(d)
    if result and message:
        status.addresult("Your gcc version is older than 4.5, please add the following param to local.conf\n \
        %s\n" % message)
    if not result:
        status.addresult("Your gcc version is older than 4.5 or is not working properly.  Please verify you can build")
        status.addresult(" and link something that uses atomic operations, such as: \n")
        status.addresult("        __sync_bool_compare_and_swap (&atomic, 2, 3);\n")

    # Check that TMPDIR isn't on a filesystem with limited filename length (eg. eCryptFS)
    tmpdir = d.getVar('TMPDIR')
    status.addresult(check_create_long_filename(tmpdir, "TMPDIR"))
    tmpdirmode = os.stat(tmpdir).st_mode
    if (tmpdirmode & stat.S_ISGID):
        status.addresult("TMPDIR is setgid, please don't build in a setgid directory")
    if (tmpdirmode & stat.S_ISUID):
        status.addresult("TMPDIR is setuid, please don't build in a setuid directory")

    # Some third-party software apparently relies on chmod etc. being suid root (!!)
    import stat
    suid_check_bins = "chown chmod mknod".split()
    for bin_cmd in suid_check_bins:
        bin_path = bb.utils.which(os.environ["PATH"], bin_cmd)
        if bin_path:
            bin_stat = os.stat(bin_path)
            if bin_stat.st_uid == 0 and bin_stat.st_mode & stat.S_ISUID:
                status.addresult('%s has the setuid bit set. This interferes with pseudo and may cause other issues that break the build process.\n' % bin_path)

    # Check that we can fetch from various network transports
    netcheck = check_connectivity(d)
    status.addresult(netcheck)
    if netcheck:
        status.network_error = True

    nolibs = d.getVar('NO32LIBS')
    if not nolibs:
        lib32path = '/lib'
        if os.path.exists('/lib64') and ( os.path.islink('/lib64') or os.path.islink('/lib') ):
           lib32path = '/lib32'

        if os.path.exists('%s/libc.so.6' % lib32path) and not os.path.exists('/usr/include/gnu/stubs-32.h'):
            status.addresult("You have a 32-bit libc, but no 32-bit headers.  You must install the 32-bit libc headers.\n")

    bbpaths = d.getVar('BBPATH').split(":")
    if ("." in bbpaths or "./" in bbpaths or "" in bbpaths):
        status.addresult("BBPATH references the current directory, either through "    \
                "an empty entry, a './' or a '.'.\n\t This is unsafe and means your "\
                "layer configuration is adding empty elements to BBPATH.\n\t "\
                "Please check your layer.conf files and other BBPATH "        \
                "settings to remove the current working directory "           \
                "references.\n" \
                "Parsed BBPATH is" + str(bbpaths));

    oes_bb_conf = d.getVar( 'OES_BITBAKE_CONF')
    if not oes_bb_conf:
        status.addresult('You are not using the OpenEmbedded version of conf/bitbake.conf. This means your environment is misconfigured, in particular check BBPATH.\n')

    # The length of TMPDIR can't be longer than 410
    status.addresult(check_path_length(tmpdir, "TMPDIR", 410))

    # Check that TMPDIR isn't located on nfs
    status.addresult(check_not_nfs(tmpdir, "TMPDIR"))
}


python check_sdk_sysroots () {
    # Fails build if there are broken or dangling symlinks in SDK sysroots

    if d.getVar('CHECK_SDK_SYSROOTS') != '1':
        # disabled, bail out
        return

    def norm_path(path):
        return os.path.abspath(path)

    # Get scan root
    SCAN_ROOT = norm_path("%s/%s/sysroots/" % (d.getVar('SDK_OUTPUT'),
                                               d.getVar('SDKPATH')))

    bb.note('Checking SDK sysroots at ' + SCAN_ROOT)

    def check_symlink(linkPath):
        if not os.path.islink(linkPath):
            return

        linkDirPath = os.path.dirname(linkPath)

        targetPath = os.readlink(linkPath)
        if not os.path.isabs(targetPath):
            targetPath = os.path.join(linkDirPath, targetPath)
        targetPath = norm_path(targetPath)

        if SCAN_ROOT != os.path.commonprefix( [SCAN_ROOT, targetPath] ):
            bb.error("Escaping symlink {0!s} --> {1!s}".format(linkPath, targetPath))
            return

        if not os.path.exists(targetPath):
            bb.error("Broken symlink {0!s} --> {1!s}".format(linkPath, targetPath))
            return

        if os.path.isdir(targetPath):
            dir_walk(targetPath)

    def walk_error_handler(e):
        bb.error(str(e))

    def dir_walk(rootDir):
        for dirPath,subDirEntries,fileEntries in os.walk(rootDir, followlinks=False, onerror=walk_error_handler):
            entries = subDirEntries + fileEntries
            for e in entries:
                ePath = os.path.join(dirPath, e)
                check_symlink(ePath)

    # start
    dir_walk(SCAN_ROOT)
}


python check_supported_distro () {
def check_supported_distro(sanity_data):
    from fnmatch import fnmatch

    tested_distros = sanity_data.getVar('SANITY_TESTED_DISTROS')
    if not tested_distros:
        return

    try:
        distro = oe.lsb.distro_identifier()
    except Exception:
        distro = None

    if not distro:
        bb.warn('Host distribution could not be determined; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.')

    for supported in [x.strip() for x in tested_distros.split('\\n')]:
        if fnmatch(distro, supported):
            return

    bb.warn('Host distribution "%s" 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.' % distro)
}


python check_symlink () {
def check_symlink(lnk, data):
    if os.path.islink(lnk) and not os.path.exists(lnk):
        raise_sanity_error("%s is a broken symlink." % lnk, data)
}


python check_tar_version () {
def check_tar_version(sanity_data):
    from distutils.version import LooseVersion
    status, result = oe.utils.getstatusoutput("tar --version")
    if status != 0:
        return "Unable to execute tar --version, exit code %s\n" % status
    version = result.split()[3]
    if LooseVersion(version) < LooseVersion("1.24"):
        return "Your version of tar is older than 1.24 and has bugs which will break builds. Please install a newer version of tar.\n"
    return None
}


python check_toolchain () {
def check_toolchain(data):
    tune_error_set = []
    deftune = data.getVar("DEFAULTTUNE")
    tune_errors = check_toolchain_tune(data, deftune, 'default')
    if tune_errors:
        tune_error_set.append(tune_errors)

    multilibs = (data.getVar("MULTILIB_VARIANTS") or "").split()
    global_multilibs = (data.getVar("MULTILIB_GLOBAL_VARIANTS") or "").split()

    if multilibs:
        seen_libs = []
        seen_tunes = []
        for lib in multilibs:
            if lib in seen_libs:
                tune_error_set.append("The multilib '%s' appears more than once." % lib)
            else:
                seen_libs.append(lib)
            if not lib in global_multilibs:
                tune_error_set.append("Multilib %s is not present in MULTILIB_GLOBAL_VARIANTS" % lib)
            tune = data.getVar("DEFAULTTUNE_virtclass-multilib-%s" % lib)
            if tune in seen_tunes:
                tune_error_set.append("The tuning '%s' appears in more than one multilib." % tune)
            else:
                seen_libs.append(tune)
            if tune == deftune:
                tune_error_set.append("Multilib '%s' (%s) is also the default tuning." % (lib, deftune))
            else:
                tune_errors = check_toolchain_tune(data, tune, lib)
            if tune_errors:
                tune_error_set.append(tune_errors)
    if tune_error_set:
        return "Toolchain tunings invalid:\n" + '\n'.join(tune_error_set) + "\n"

    return ""
}


python check_toolchain_args_present () {
def check_toolchain_args_present(data, tune, multilib, tune_errors, which):
    args_set = (data.getVar("TUNE_%s" % which) or "").split()
    args_wanted = (data.getVar("TUNEABI_REQUIRED_%s_tune-%s" % (which, tune)) or "").split()
    args_missing = []

    # If no args are listed/required, we are done.
    if not args_wanted:
        return
    for arg in args_wanted:
        if arg not in args_set:
            args_missing.append(arg)

    found_errors = False
    if args_missing:
        found_errors = True
        tune_errors.append("TUNEABI for %s requires '%s' in TUNE_%s (%s)." %
                       (tune, ' '.join(args_missing), which, ' '.join(args_set)))
    return found_errors
}


python check_toolchain_tune () {
def check_toolchain_tune(data, tune, multilib):
    tune_errors = []
    if not tune:
        return "No tuning found for %s multilib." % multilib
    localdata = bb.data.createCopy(data)
    if multilib != "default":
        # Apply the overrides so we can look at the details.
        overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + multilib
        localdata.setVar("OVERRIDES", overrides)
    bb.debug(2, "Sanity-checking tuning '%s' (%s) features:" % (tune, multilib))
    features = (localdata.getVar("TUNE_FEATURES_tune-%s" % tune) or "").split()
    if not features:
        return "Tuning '%s' has no defined features, and cannot be used." % tune
    valid_tunes = localdata.getVarFlags('TUNEVALID') or {}
    conflicts = localdata.getVarFlags('TUNECONFLICTS') or {}
    # [doc] is the documentation for the variable, not a real feature
    if 'doc' in valid_tunes:
        del valid_tunes['doc']
    if 'doc' in conflicts:
        del conflicts['doc']
    for feature in features:
        if feature in conflicts:
            for conflict in conflicts[feature].split():
                if conflict in features:
                    tune_errors.append("Feature '%s' conflicts with '%s'." %
                        (feature, conflict))
        if feature in valid_tunes:
            bb.debug(2, "  %s: %s" % (feature, valid_tunes[feature]))
        else:
            tune_errors.append("Feature '%s' is not defined." % feature)
    whitelist = localdata.getVar("TUNEABI_WHITELIST")
    if whitelist:
        tuneabi = localdata.getVar("TUNEABI_tune-%s" % tune)
        if not tuneabi:
            tuneabi = tune
        if True not in [x in whitelist.split() for x in tuneabi.split()]:
            tune_errors.append("Tuning '%s' (%s) cannot be used with any supported tuning/ABI." %
                (tune, tuneabi))
        else:
            if not check_toolchain_tune_args(localdata, tuneabi, multilib, tune_errors):
                bb.debug(2, "Sanity check: Compiler args OK for %s." % tune)
    if tune_errors:
        return "Tuning '%s' has the following errors:\n" % tune + '\n'.join(tune_errors)
}


python check_toolchain_tune_args () {
def check_toolchain_tune_args(data, tune, multilib, errs):
    found_errors = False
    if check_toolchain_args_present(data, tune, multilib, errs, 'CCARGS'):
        found_errors = True
    if check_toolchain_args_present(data, tune, multilib, errs, 'ASARGS'):
        found_errors = True
    if check_toolchain_args_present(data, tune, multilib, errs, 'LDARGS'):
        found_errors = True

    return found_errors
}


python checkbuildpath () {
def checkbuildpath(file, d):
    tmpdir = d.getVar('TMPDIR')
    with open(file) as f:
        file_content = f.read()
        if tmpdir in file_content:
            return True

    return False
}


python clean_esdk_builddir () {
def clean_esdk_builddir(d, sdkbasepath):
    """Clean up traces of the fake build for create_filtered_tasklist()"""
    import shutil
    cleanpaths = 'cache conf/sanity_info tmp'.split()
    for pth in cleanpaths:
        fullpth = os.path.join(sdkbasepath, pth)
        if os.path.isdir(fullpth):
            shutil.rmtree(fullpth)
        elif os.path.isfile(fullpth):
            os.remove(fullpth)
}


python clean_recipe_sysroot () {
    return
}


python complementary_globs () {
def complementary_globs(featurevar, d):
    all_globs = d.getVarFlags('COMPLEMENTARY_GLOB')
    globs = []
    features = set((d.getVar(featurevar) or '').split())
    for name, glob in all_globs.items():
        if name in features:
            globs.append(glob)
    return ' '.join(globs)
}


python config_reparse_eventhandler () {
    sanity_check_conffiles(e.data)
}


python copy_buildsystem () {
    import re
    import shutil
    import glob
    import oe.copy_buildsystem

    oe_init_env_script = d.getVar('OE_INIT_ENV_SCRIPT')

    conf_bbpath = ''
    conf_initpath = ''
    core_meta_subdir = ''

    # Copy in all metadata layers + bitbake (as repositories)
    buildsystem = oe.copy_buildsystem.BuildSystem('extensible SDK', d)
    baseoutpath = d.getVar('SDK_OUTPUT') + '/' + d.getVar('SDKPATH')

    # Determine if we're building a derivative extensible SDK (from devtool build-sdk)
    derivative = (d.getVar('SDK_DERIVATIVE') or '') == '1'
    if derivative:
        workspace_name = 'orig-workspace'
    else:
        workspace_name = None
    layers_copied = buildsystem.copy_bitbake_and_layers(baseoutpath + '/layers', workspace_name)

    sdkbblayers = []
    corebase = os.path.basename(d.getVar('COREBASE'))
    for layer in layers_copied:
        if corebase == os.path.basename(layer):
            conf_bbpath = os.path.join('layers', layer, 'bitbake')
        else:
            sdkbblayers.append(layer)

    for path in os.listdir(baseoutpath + '/layers'):
        relpath = os.path.join('layers', path, oe_init_env_script)
        if os.path.exists(os.path.join(baseoutpath, relpath)):
            conf_initpath = relpath

        relpath = os.path.join('layers', path, 'scripts', 'devtool')
        if os.path.exists(os.path.join(baseoutpath, relpath)):
            scriptrelpath = os.path.dirname(relpath)

        relpath = os.path.join('layers', path, 'meta')
        if os.path.exists(os.path.join(baseoutpath, relpath, 'lib', 'oe')):
            core_meta_subdir = relpath

    d.setVar('oe_init_build_env_path', conf_initpath)
    d.setVar('scriptrelpath', scriptrelpath)

    # Write out config file for devtool
    import configparser
    config = configparser.SafeConfigParser()
    config.add_section('General')
    config.set('General', 'bitbake_subdir', conf_bbpath)
    config.set('General', 'init_path', conf_initpath)
    config.set('General', 'core_meta_subdir', core_meta_subdir)
    config.add_section('SDK')
    config.set('SDK', 'sdk_targets', d.getVar('SDK_TARGETS'))
    updateurl = d.getVar('SDK_UPDATE_URL')
    if updateurl:
        config.set('SDK', 'updateserver', updateurl)
    bb.utils.mkdirhier(os.path.join(baseoutpath, 'conf'))
    with open(os.path.join(baseoutpath, 'conf', 'devtool.conf'), 'w') as f:
        config.write(f)

    unlockedsigs =  os.path.join(baseoutpath, 'conf', 'unlocked-sigs.inc')
    with open(unlockedsigs, 'w') as f:
        pass

    # Create a layer for new recipes / appends
    bbpath = d.getVar('BBPATH')
    bb.process.run(['devtool', '--bbpath', bbpath, '--basepath', baseoutpath, 'create-workspace', '--create-only', os.path.join(baseoutpath, 'workspace')])

    # Create bblayers.conf
    bb.utils.mkdirhier(baseoutpath + '/conf')
    with open(baseoutpath + '/conf/bblayers.conf', 'w') as f:
        f.write('# WARNING: this configuration has been automatically generated and in\n')
        f.write('# most cases should not be edited. If you need more flexibility than\n')
        f.write('# this configuration provides, it is strongly suggested that you set\n')
        f.write('# up a proper instance of the full build system and use that instead.\n\n')

        # LCONF_VERSION may not be set, for example when using meta-poky
        # so don't error if it isn't found
        lconf_version = d.getVar('LCONF_VERSION', False)
        if lconf_version is not None:
            f.write('LCONF_VERSION = "%s"\n\n' % lconf_version)

        f.write('BBPATH = "$' + '{TOPDIR}"\n')
        f.write('SDKBASEMETAPATH = "$' + '{TOPDIR}"\n')
        f.write('BBLAYERS := " \\\n')
        for layerrelpath in sdkbblayers:
            f.write('    $' + '{SDKBASEMETAPATH}/layers/%s \\\n' % layerrelpath)
        f.write('    $' + '{SDKBASEMETAPATH}/workspace \\\n')
        f.write('    "\n')

    # Copy uninative tarball
    # For now this is where uninative.bbclass expects the tarball
    uninative_file = d.expand('${SDK_DEPLOY}/${BUILD_ARCH}-nativesdk-libc.tar.bz2')
    uninative_checksum = bb.utils.sha256_file(uninative_file)
    uninative_outdir = '%s/downloads/uninative/%s' % (baseoutpath, uninative_checksum)
    bb.utils.mkdirhier(uninative_outdir)
    shutil.copy(uninative_file, uninative_outdir)

    env_whitelist = (d.getVar('BB_ENV_EXTRAWHITE') or '').split()
    env_whitelist_values = {}

    # Create local.conf
    builddir = d.getVar('TOPDIR')
    if derivative and os.path.exists(builddir + '/conf/auto.conf'):
        shutil.copyfile(builddir + '/conf/auto.conf', baseoutpath + '/conf/auto.conf')
    if derivative:
        shutil.copyfile(builddir + '/conf/local.conf', baseoutpath + '/conf/local.conf')
    else:
        local_conf_whitelist = (d.getVar('SDK_LOCAL_CONF_WHITELIST') or '').split()
        local_conf_blacklist = (d.getVar('SDK_LOCAL_CONF_BLACKLIST') or '').split()
        def handle_var(varname, origvalue, op, newlines):
            if varname in local_conf_blacklist or (origvalue.strip().startswith('/') and not varname in local_conf_whitelist):
                newlines.append('# Removed original setting of %s\n' % varname)
                return None, op, 0, True
            else:
                if varname in env_whitelist:
                    env_whitelist_values[varname] = origvalue
                return origvalue, op, 0, True
        varlist = ['[^#=+ ]*']
        oldlines = []
        if os.path.exists(builddir + '/conf/auto.conf'):
            with open(builddir + '/conf/auto.conf', 'r') as f:
                oldlines += f.readlines()
        with open(builddir + '/conf/local.conf', 'r') as f:
            oldlines += f.readlines()
        (updated, newlines) = bb.utils.edit_metadata(oldlines, varlist, handle_var)

        with open(baseoutpath + '/conf/local.conf', 'w') as f:
            f.write('# WARNING: this configuration has been automatically generated and in\n')
            f.write('# most cases should not be edited. If you need more flexibility than\n')
            f.write('# this configuration provides, it is strongly suggested that you set\n')
            f.write('# up a proper instance of the full build system and use that instead.\n\n')
            for line in newlines:
                if line.strip() and not line.startswith('#'):
                    f.write(line)
            # Write a newline just in case there's none at the end of the original
            f.write('\n')

            f.write('TMPDIR = "${TOPDIR}/tmp"\n')
            f.write('TCLIBCAPPEND = ""\n')
            f.write('DL_DIR = "${TOPDIR}/downloads"\n')

            f.write('INHERIT += "%s"\n' % 'uninative')
            f.write('UNINATIVE_CHECKSUM[%s] = "%s"\n\n' % (d.getVar('BUILD_ARCH'), uninative_checksum))
            f.write('CONF_VERSION = "%s"\n\n' % d.getVar('CONF_VERSION', False))

            # Some classes are not suitable for SDK, remove them from INHERIT
            f.write('INHERIT_remove = "%s"\n' % d.getVar('SDK_INHERIT_BLACKLIST', False))

            # Bypass the default connectivity check if any
            f.write('CONNECTIVITY_CHECK_URIS = ""\n\n')

            # This warning will come out if reverse dependencies for a task
            # don't have sstate as well as the task itself. We already know
            # this will be the case for the extensible sdk, so turn off the
            # warning.
            f.write('SIGGEN_LOCKEDSIGS_SSTATE_EXISTS_CHECK = "none"\n\n')

            # Warn if the sigs in the locked-signature file don't match
            # the sig computed from the metadata.
            f.write('SIGGEN_LOCKEDSIGS_TASKSIG_CHECK = "warn"\n\n')

            # Set up whitelist for run on install
            f.write('BB_SETSCENE_ENFORCE_WHITELIST = "%:* *:do_shared_workdir *:do_rm_work wic-tools:* *:do_addto_recipe_sysroot"\n\n')

            # Hide the config information from bitbake output (since it's fixed within the SDK)
            f.write('BUILDCFG_HEADER = ""\n\n')

            # Map gcc-dependent uninative sstate cache for installer usage
            f.write('SSTATE_MIRRORS += " file://universal/(.*) file://universal-4.9/\\1 file://universal-4.9/(.*) file://universal-4.8/\\1"\n\n')

            # Allow additional config through sdk-extra.conf
            fn = bb.cookerdata.findConfigFile('sdk-extra.conf', d)
            if fn:
                with open(fn, 'r') as xf:
                    for line in xf:
                        f.write(line)

            # If you define a sdk_extraconf() function then it can contain additional config
            # (Though this is awkward; sdk-extra.conf should probably be used instead)
            extraconf = (d.getVar('sdk_extraconf') or '').strip()
            if extraconf:
                # Strip off any leading / trailing spaces
                for line in extraconf.splitlines():
                    f.write(line.strip() + '\n')

            f.write('require conf/locked-sigs.inc\n')
            f.write('require conf/unlocked-sigs.inc\n')

    # Write a templateconf.cfg
    with open(baseoutpath + '/conf/templateconf.cfg', 'w') as f:
        f.write('meta/conf\n')

    # Ensure any variables set from the external environment (by way of
    # BB_ENV_EXTRAWHITE) are set in the SDK's configuration
    extralines = []
    for name, value in env_whitelist_values.items():
        actualvalue = d.getVar(name) or ''
        if value != actualvalue:
            extralines.append('%s = "%s"\n' % (name, actualvalue))
    if extralines:
        with open(baseoutpath + '/conf/local.conf', 'a') as f:
            f.write('\n')
            f.write('# Extra settings from environment:\n')
            for line in extralines:
                f.write(line)
            f.write('\n')

    # Filter the locked signatures file to just the sstate tasks we are interested in
    excluded_targets = get_sdk_install_targets(d, images_only=True)
    sigfile = d.getVar('WORKDIR') + '/locked-sigs.inc'
    lockedsigs_pruned = baseoutpath + '/conf/locked-sigs.inc'
    oe.copy_buildsystem.prune_lockedsigs([],
                                         excluded_targets.split(),
                                         sigfile,
                                         lockedsigs_pruned)

    sstate_out = baseoutpath + '/sstate-cache'
    bb.utils.remove(sstate_out, True)

    # uninative.bbclass sets NATIVELSBSTRING to 'universal%s' % oe.utils.host_gcc_version(d)
    fixedlsbstring = "universal%s" % oe.utils.host_gcc_version(d)

    sdk_include_toolchain = (d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1')
    sdk_ext_type = d.getVar('SDK_EXT_TYPE')
    if sdk_ext_type != 'minimal' or sdk_include_toolchain or derivative:
        # Create the filtered task list used to generate the sstate cache shipped with the SDK
        tasklistfn = d.getVar('WORKDIR') + '/tasklist.txt'
        create_filtered_tasklist(d, baseoutpath, tasklistfn, conf_initpath)
    else:
        tasklistfn = None

    # Add packagedata if enabled
    if d.getVar('SDK_INCLUDE_PKGDATA') == '1':
        lockedsigs_base = d.getVar('WORKDIR') + '/locked-sigs-base.inc'
        lockedsigs_copy = d.getVar('WORKDIR') + '/locked-sigs-copy.inc'
        shutil.move(lockedsigs_pruned, lockedsigs_base)
        oe.copy_buildsystem.merge_lockedsigs(['do_packagedata'],
                                             lockedsigs_base,
                                             d.getVar('STAGING_DIR_HOST') + '/world-pkgdata/locked-sigs-pkgdata.inc',
                                             lockedsigs_pruned,
                                             lockedsigs_copy)

    if sdk_include_toolchain:
        lockedsigs_base = d.getVar('WORKDIR') + '/locked-sigs-base2.inc'
        lockedsigs_toolchain = d.expand("${STAGING_DIR}/${TUNE_PKGARCH}/meta-extsdk-toolchain/locked-sigs/locked-sigs-extsdk-toolchain.inc")
        shutil.move(lockedsigs_pruned, lockedsigs_base)
        oe.copy_buildsystem.merge_lockedsigs([],
                                             lockedsigs_base,
                                             lockedsigs_toolchain,
                                             lockedsigs_pruned)
        oe.copy_buildsystem.create_locked_sstate_cache(lockedsigs_toolchain,
                                                       d.getVar('SSTATE_DIR'),
                                                       sstate_out, d,
                                                       fixedlsbstring,
                                                       filterfile=tasklistfn)

    if sdk_ext_type == 'minimal':
        if derivative:
            # Assume the user is not going to set up an additional sstate
            # mirror, thus we need to copy the additional artifacts (from
            # workspace recipes) into the derivative SDK
            lockedsigs_orig = d.getVar('TOPDIR') + '/conf/locked-sigs.inc'
            if os.path.exists(lockedsigs_orig):
                lockedsigs_extra = d.getVar('WORKDIR') + '/locked-sigs-extra.inc'
                oe.copy_buildsystem.merge_lockedsigs(None,
                                                     lockedsigs_orig,
                                                     lockedsigs_pruned,
                                                     None,
                                                     lockedsigs_extra)
                oe.copy_buildsystem.create_locked_sstate_cache(lockedsigs_extra,
                                                               d.getVar('SSTATE_DIR'),
                                                               sstate_out, d,
                                                               fixedlsbstring,
                                                               filterfile=tasklistfn)
    else:
        oe.copy_buildsystem.create_locked_sstate_cache(lockedsigs_pruned,
                                                       d.getVar('SSTATE_DIR'),
                                                       sstate_out, d,
                                                       fixedlsbstring,
                                                       filterfile=tasklistfn)

    # We don't need sstate do_package files
    for root, dirs, files in os.walk(sstate_out):
        for name in files:
            if name.endswith("_package.tgz"):
                f = os.path.join(root, name)
                os.remove(f)

    # Write manifest file
    # Note: at the moment we cannot include the env setup script here to keep
    # it updated, since it gets modified during SDK installation (see
    # sdk_ext_postinst() below) thus the checksum we take here would always
    # be different.
    manifest_file_list = ['conf/*']
    manifest_file = os.path.join(baseoutpath, 'conf', 'sdk-conf-manifest')
    with open(manifest_file, 'w') as f:
        for item in manifest_file_list:
            for fn in glob.glob(os.path.join(baseoutpath, item)):
                if fn == manifest_file:
                    continue
                chksum = bb.utils.sha256_file(fn)
                f.write('%s\t%s\n' % (chksum, os.path.relpath(fn, baseoutpath)))
}


python copy_data () {
def copy_data(e):
    sanity_data = bb.data.createCopy(e.data)
    sanity_data.finalize()
    return sanity_data
}


python copy_license_files () {
def copy_license_files(lic_files_paths, destdir):
    import shutil
    import errno

    bb.utils.mkdirhier(destdir)
    for (basename, path, beginline, endline) in lic_files_paths:
        try:
            src = path
            dst = os.path.join(destdir, basename)
            if os.path.exists(dst):
                os.remove(dst)
            if os.path.islink(src):
                src = os.path.realpath(src)
            canlink = os.access(src, os.W_OK) and (os.stat(src).st_dev == os.stat(destdir).st_dev) and beginline is None and endline is None
            if canlink:
                try:
                    os.link(src, dst)
                except OSError as err:
                    if err.errno == errno.EXDEV:
                        # Copy license files if hard-link is not possible even if st_dev is the
                        # same on source and destination (docker container with device-mapper?)
                        canlink = False
                    else:
                        raise
                # Only chown if we did hardling, and, we're running under pseudo
                if canlink and os.environ.get('PSEUDO_DISABLED') == '0':
                    os.chown(dst,0,0)
            if not canlink:
                begin_idx = int(beginline)-1 if beginline is not None else None
                end_idx = int(endline) if endline is not None else None
                if begin_idx is None and end_idx is None:
                    shutil.copyfile(src, dst)
                else:
                    with open(src, 'rb') as src_f:
                        with open(dst, 'wb') as dst_f:
                            dst_f.write(b''.join(src_f.readlines()[begin_idx:end_idx]))

        except Exception as e:
            bb.warn("Could not copy license file %s to %s: %s" % (src, dst, e))
}


python copydebugsources () {
def copydebugsources(debugsrcdir, d):
    # The debug src information written out to sourcefile is further procecessed
    # and copied to the destination here.

    import stat

    sourcefile = d.expand("${WORKDIR}/debugsources.list")
    if debugsrcdir and os.path.isfile(sourcefile):
        dvar = d.getVar('PKGD')
        strip = d.getVar("STRIP")
        objcopy = d.getVar("OBJCOPY")
        debugedit = d.expand("${STAGING_LIBDIR_NATIVE}/rpm/bin/debugedit")
        workdir = d.getVar("WORKDIR")
        workparentdir = os.path.dirname(os.path.dirname(workdir))
        workbasedir = os.path.basename(os.path.dirname(workdir)) + "/" + os.path.basename(workdir)

        # If build path exists in sourcefile, it means toolchain did not use
        # -fdebug-prefix-map to compile
        if checkbuildpath(sourcefile, d):
            localsrc_prefix = workparentdir + "/"
        else:
            localsrc_prefix = "/usr/src/debug/"

        nosuchdir = []
        basepath = dvar
        for p in debugsrcdir.split("/"):
            basepath = basepath + "/" + p
            if not cpath.exists(basepath):
                nosuchdir.append(basepath)
        bb.utils.mkdirhier(basepath)
        cpath.updatecache(basepath)

        # Ignore files from the recipe sysroots (target and native)
        processdebugsrc =  "LC_ALL=C ; sort -z -u '%s' | egrep -v -z '((<internal>|<built-in>)$|/.*recipe-sysroot.*/)' | "
        # We need to ignore files that are not actually ours
        # we do this by only paying attention to items from this package
        processdebugsrc += "fgrep -zw '%s' | "
        # Remove prefix in the source paths
        processdebugsrc += "sed 's#%s##g' | "
        processdebugsrc += "(cd '%s' ; cpio -pd0mlL --no-preserve-owner '%s%s' 2>/dev/null)"

        cmd = processdebugsrc % (sourcefile, workbasedir, localsrc_prefix, workparentdir, dvar, debugsrcdir)
        (retval, output) = oe.utils.getstatusoutput(cmd)
        # Can "fail" if internal headers/transient sources are attempted
        #if retval:
        #    bb.fatal("debug source copy failed with exit code %s (cmd was %s)" % (retval, cmd))

        # cpio seems to have a bug with -lL together and symbolic links are just copied, not dereferenced.
        # Work around this by manually finding and copying any symbolic links that made it through.
        cmd = "find %s%s -type l -print0 -delete | sed s#%s%s/##g | (cd '%s' ; cpio -pd0mL --no-preserve-owner '%s%s' 2>/dev/null)" % (dvar, debugsrcdir, dvar, debugsrcdir, workparentdir, dvar, debugsrcdir)
        (retval, output) = oe.utils.getstatusoutput(cmd)
        if retval:
            bb.fatal("debugsrc symlink fixup failed with exit code %s (cmd was %s)" % (retval, cmd))

        # The copy by cpio may have resulted in some empty directories!  Remove these
        cmd = "find %s%s -empty -type d -delete" % (dvar, debugsrcdir)
        (retval, output) = oe.utils.getstatusoutput(cmd)
        if retval:
            bb.fatal("empty directory removal failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else ""))

        # Also remove debugsrcdir if its empty
        for p in nosuchdir[::-1]:
            if os.path.exists(p) and not os.listdir(p):
                os.rmdir(p)
}


python create_filtered_tasklist () {
def create_filtered_tasklist(d, sdkbasepath, tasklistfile, conf_initpath):
    """
    Create a filtered list of tasks. Also double-checks that the build system
    within the SDK basically works and required sstate artifacts are available.
    """
    import tempfile
    import shutil
    import oe.copy_buildsystem

    # Create a temporary build directory that we can pass to the env setup script
    shutil.copyfile(sdkbasepath + '/conf/local.conf', sdkbasepath + '/conf/local.conf.bak')
    try:
        with open(sdkbasepath + '/conf/local.conf', 'a') as f:
            # Force the use of sstate from the build system
            f.write('\nSSTATE_DIR_forcevariable = "%s"\n' % d.getVar('SSTATE_DIR'))
            f.write('SSTATE_MIRRORS_forcevariable = ""\n')
            # Ensure TMPDIR is the default so that clean_esdk_builddir() can delete it
            f.write('TMPDIR_forcevariable = "${TOPDIR}/tmp"\n')
            f.write('TCLIBCAPPEND_forcevariable = ""\n')
            # Drop uninative if the build isn't using it (or else NATIVELSBSTRING will
            # be different and we won't be able to find our native sstate)
            if not bb.data.inherits_class('uninative', d):
                f.write('INHERIT_remove = "uninative"\n')

        # Unfortunately the default SDKPATH (or even a custom value) may contain characters that bitbake
        # will not allow in its COREBASE path, so we need to rename the directory temporarily
        temp_sdkbasepath = d.getVar('SDK_OUTPUT') + '/tmp-renamed-sdk'
        # Delete any existing temp dir
        try:
            shutil.rmtree(temp_sdkbasepath)
        except FileNotFoundError:
            pass
        os.rename(sdkbasepath, temp_sdkbasepath)
        try:
            cmdprefix = '. %s .; ' % conf_initpath
            logfile = d.getVar('WORKDIR') + '/tasklist_bb_log.txt'
            try:
                oe.copy_buildsystem.check_sstate_task_list(d, get_sdk_install_targets(d), tasklistfile, cmdprefix=cmdprefix, cwd=temp_sdkbasepath, logfile=logfile)
            except bb.process.ExecutionError as e:
                msg = 'Failed to generate filtered task list for extensible SDK:\n%s' %  e.stdout.rstrip()
                if 'attempted to execute unexpectedly and should have been setscened' in e.stdout:
                    msg += '\n----------\n\nNOTE: "attempted to execute unexpectedly and should have been setscened" errors indicate this may be caused by missing sstate artifacts that were likely produced in earlier builds, but have been subsequently deleted for some reason.\n'
                bb.fatal(msg)
        finally:
            os.rename(temp_sdkbasepath, sdkbasepath)
        # Clean out residue of running bitbake, which check_sstate_task_list()
        # will effectively do
        clean_esdk_builddir(d, sdkbasepath)
    finally:
        os.replace(sdkbasepath + '/conf/local.conf.bak', sdkbasepath + '/conf/local.conf')
}


python create_symlinks () {

    deploy_dir = d.getVar('IMGDEPLOYDIR')
    img_name = d.getVar('IMAGE_NAME')
    link_name = d.getVar('IMAGE_LINK_NAME')
    manifest_name = d.getVar('IMAGE_MANIFEST')
    taskname = d.getVar("BB_CURRENTTASK")
    subimages = (d.getVarFlag("do_" + taskname, 'subimages', False) or "").split()
    imgsuffix = d.getVarFlag("do_" + taskname, 'imgsuffix') or d.expand("${IMAGE_NAME_SUFFIX}.")

    if not link_name:
        return
    for type in subimages:
        dst = os.path.join(deploy_dir, link_name + "." + type)
        src = img_name + imgsuffix + type
        if os.path.exists(os.path.join(deploy_dir, src)):
            bb.note("Creating symlink: %s -> %s" % (dst, src))
            if os.path.islink(dst):
                os.remove(dst)
            os.symlink(src, dst)
        else:
            bb.note("Skipping symlink, source does not exist: %s -> %s" % (dst, src))
}


python debian_package_name_hook () {
    import glob, copy, stat, errno, re

    pkgdest = d.getVar('PKGDEST')
    packages = d.getVar('PACKAGES')
    bin_re = re.compile(".*/s?" + os.path.basename(d.getVar("bindir")) + "$")
    lib_re = re.compile(".*/" + os.path.basename(d.getVar("libdir")) + "$")
    so_re = re.compile("lib.*\.so")

    def socrunch(s):
        s = s.lower().replace('_', '-')
        m = re.match("^(.*)(.)\.so\.(.*)$", s)
        if m is None:
            return None
        if m.group(2) in '0123456789':
            bin = '%s%s-%s' % (m.group(1), m.group(2), m.group(3))
        else:
            bin = m.group(1) + m.group(2) + m.group(3)
        dev = m.group(1) + m.group(2)
        return (bin, dev)

    def isexec(path):
        try:
            s = os.stat(path)
        except (os.error, AttributeError):
            return 0
        return (s[stat.ST_MODE] & stat.S_IEXEC)

    def add_rprovides(pkg, d):
        newpkg = d.getVar('PKG_' + pkg)
        if newpkg and newpkg != pkg:
            provs = (d.getVar('RPROVIDES_' + pkg) or "").split()
            if pkg not in provs:
                d.appendVar('RPROVIDES_' + pkg, " " + pkg + " (=" + d.getVar("PKGV") + ")")

    def auto_libname(packages, orig_pkg):
        sonames = []
        has_bins = 0
        has_libs = 0
        for file in pkgfiles[orig_pkg]:
            root = os.path.dirname(file)
            if bin_re.match(root):
                has_bins = 1
            if lib_re.match(root):
                has_libs = 1
                if so_re.match(os.path.basename(file)):
                    cmd = (d.getVar('TARGET_PREFIX') or "") + "objdump -p " + file + " 2>/dev/null"
                    fd = os.popen(cmd)
                    lines = fd.readlines()
                    fd.close()
                    for l in lines:
                        m = re.match("\s+SONAME\s+([^\s]*)", l)
                        if m and not m.group(1) in sonames:
                            sonames.append(m.group(1))

        bb.debug(1, 'LIBNAMES: pkg %s libs %d bins %d sonames %s' % (orig_pkg, has_libs, has_bins, sonames))
        soname = None
        if len(sonames) == 1:
            soname = sonames[0]
        elif len(sonames) > 1:
            lead = d.getVar('LEAD_SONAME')
            if lead:
                r = re.compile(lead)
                filtered = []
                for s in sonames:
                    if r.match(s):
                        filtered.append(s)
                if len(filtered) == 1:
                    soname = filtered[0]
                elif len(filtered) > 1:
                    bb.note("Multiple matches (%s) for LEAD_SONAME '%s'" % (", ".join(filtered), lead))
                else:
                    bb.note("Multiple libraries (%s) found, but LEAD_SONAME '%s' doesn't match any of them" % (", ".join(sonames), lead))
            else:
                bb.note("Multiple libraries (%s) found and LEAD_SONAME not defined" % ", ".join(sonames))

        if has_libs and not has_bins and soname:
            soname_result = socrunch(soname)
            if soname_result:
                (pkgname, devname) = soname_result
                for pkg in packages.split():
                    if (d.getVar('PKG_' + pkg, False) or d.getVar('DEBIAN_NOAUTONAME_' + pkg, False)):
                        add_rprovides(pkg, d)
                        continue
                    debian_pn = d.getVar('DEBIANNAME_' + pkg, False)
                    if debian_pn:
                        newpkg = debian_pn
                    elif pkg == orig_pkg:
                        newpkg = pkgname
                    else:
                        newpkg = pkg.replace(orig_pkg, devname, 1)
                    mlpre=d.getVar('MLPREFIX')
                    if mlpre:
                        if not newpkg.find(mlpre) == 0:
                            newpkg = mlpre + newpkg
                    if newpkg != pkg:
                        d.setVar('PKG_' + pkg, newpkg)
                        add_rprovides(pkg, d)
        else:
            add_rprovides(orig_pkg, d)

    # reversed sort is needed when some package is substring of another
    # ie in ncurses we get without reverse sort:
    # DEBUG: LIBNAMES: pkgname libtic5 devname libtic pkg ncurses-libtic orig_pkg ncurses-libtic debian_pn None newpkg libtic5
    # and later
    # DEBUG: LIBNAMES: pkgname libtic5 devname libtic pkg ncurses-libticw orig_pkg ncurses-libtic debian_pn None newpkg libticw
    # so we need to handle ncurses-libticw->libticw5 before ncurses-libtic->libtic5
    for pkg in sorted((d.getVar('AUTO_LIBNAME_PKGS') or "").split(), reverse=True):
        auto_libname(packages, pkg)
}


python devpyshell () {
def devpyshell(d):

    import code
    import select
    import signal
    import termios

    m, s = os.openpty()
    sname = os.ttyname(s)

    def noechoicanon(fd):
        old = termios.tcgetattr(fd)
        old[3] = old[3] &~ termios.ECHO &~ termios.ICANON
        # &~ termios.ISIG
        termios.tcsetattr(fd, termios.TCSADRAIN, old)

    # No echo or buffering over the pty
    noechoicanon(s)

    pid = os.fork()
    if pid:
        os.close(m)
        oe_terminal("oepydevshell-internal.py %s %d" % (sname, pid), 'OpenEmbedded Developer PyShell', d)
        os._exit(0)
    else:
        os.close(s)

        os.dup2(m, sys.stdin.fileno())
        os.dup2(m, sys.stdout.fileno())
        os.dup2(m, sys.stderr.fileno())

        bb.utils.nonblockingfd(sys.stdout)
        bb.utils.nonblockingfd(sys.stderr)
        bb.utils.nonblockingfd(sys.stdin)

        _context = {
            "os": os,
            "bb": bb,
            "time": time,
            "d": d,
        }

        ps1 = "pydevshell> "
        ps2 = "... "
        buf = []
        more = False

        i = code.InteractiveInterpreter(locals=_context)
        print("OE PyShell (PN = %s)\n" % d.getVar("PN"))

        def prompt(more):
            if more:
                prompt = ps2
            else:
                prompt = ps1
            sys.stdout.write(prompt)
            sys.stdout.flush()

        # Restore Ctrl+C since bitbake masks this
        def signal_handler(signal, frame):
            raise KeyboardInterrupt
        signal.signal(signal.SIGINT, signal_handler)

        child = None

        prompt(more)
        while True:
            try:
                try:
                    (r, _, _) = select.select([sys.stdin], [], [], 1)
                    if not r:
                        continue
                    line = sys.stdin.readline().strip()
                    if not line:
                        prompt(more)
                        continue
                except EOFError as e:
                    sys.stdout.write("\n")
                    sys.stdout.flush()
                except (OSError, IOError) as e:
                    if e.errno == 11:
                        continue
                    if e.errno == 5:
                        return
                    raise
                else:
                    if not child:
                        child = int(line)
                        continue
                    buf.append(line)
                    source = "\n".join(buf)
                    more = i.runsource(source, "<pyshell>")
                    if not more:
                        buf = []
                    prompt(more)
            except KeyboardInterrupt:
                i.write("\nKeyboardInterrupt\n")
                buf = []
                more = False
                prompt(more)
            except SystemExit:
                # Easiest way to ensure everything exits
                os.kill(child, signal.SIGTERM)
                break
}


python do_checkuri () {
    src_uri = (d.getVar('SRC_URI') or "").split()
    if len(src_uri) == 0:
        return

    try:
        fetcher = bb.fetch2.Fetch(src_uri, d)
        fetcher.checkstatus()
    except bb.fetch2.BBFetchException as e:
        bb.fatal(str(e))
}


python do_clean () {
    """clear the build and temp directories"""
    dir = d.expand("${WORKDIR}")
    bb.note("Removing " + dir)
    oe.path.remove(dir)

    dir = "%s.*" % d.getVar('STAMP')
    bb.note("Removing " + dir)
    oe.path.remove(dir)

    for f in (d.getVar('CLEANFUNCS') or '').split():
        bb.build.exec_func(f, d)
}


python do_cleanall () {
    src_uri = (d.getVar('SRC_URI') or "").split()
    if len(src_uri) == 0:
        return

    try:
        fetcher = bb.fetch2.Fetch(src_uri, d)
        fetcher.clean()
    except bb.fetch2.BBFetchException as e:
        bb.fatal(str(e))
}


python do_cleansstate () {
        sstate_clean_cachefiles(d)
}


python do_deploy_setscene () {
    sstate_setscene(d)
}


python do_devpyshell () {
    import signal

    try:
        devpyshell(d)
    except SystemExit:
        # Stop the SIGTERM above causing an error exit code
        return
    finally:
        return
}


python do_devshell () {
    if d.getVarFlag("do_devshell", "manualfakeroot"):
       d.prependVar("DEVSHELL", "pseudo ")
       fakeenv = d.getVar("FAKEROOTENV").split()
       for f in fakeenv:
            k = f.split("=")
            d.setVar(k[0], k[1])
            d.appendVar("OE_TERMINAL_EXPORTS", " " + k[0])
       d.delVarFlag("do_devshell", "fakeroot")

    oe_terminal(d.getVar('DEVSHELL'), 'OpenEmbedded Developer Shell', d)
}


python do_fetch () {
    bb.build.exec_func('base_do_fetch', d)
}


python do_image () {
    from oe.utils import execute_pre_post_process

    pre_process_cmds = d.getVar("IMAGE_PREPROCESS_COMMAND")

    execute_pre_post_process(d, pre_process_cmds)
}


python do_image_complete () {
    from oe.utils import execute_pre_post_process

    post_process_cmds = d.getVar("IMAGE_POSTPROCESS_COMMAND")

    execute_pre_post_process(d, post_process_cmds)
}


python do_image_qa () {
    from oe.utils import ImageQAFailed

    qa_cmds = (d.getVar('IMAGE_QA_COMMANDS') or '').split()
    qamsg = ""

    for cmd in qa_cmds:
        try:
            bb.build.exec_func(cmd, d)
        except oe.utils.ImageQAFailed as e:
            qamsg = qamsg + '\tImage QA function %s failed: %s\n' % (e.name, e.description)
        except bb.build.FuncFailed as e:
            qamsg = qamsg + '\tImage QA function %s failed' % e.name
            if e.logfile:
                qamsg = qamsg + ' (log file is located at %s)' % e.logfile
            qamsg = qamsg + '\n'

    if qamsg:
        imgname = d.getVar('IMAGE_NAME')
        bb.fatal("QA errors found whilst validating image: %s\n%s" % (imgname, qamsg))
}


python do_listtasks () {
    taskdescs = {}
    maxlen = 0
    for e in d.keys():
        if d.getVarFlag(e, 'task'):
            maxlen = max(maxlen, len(e))
            if e.endswith('_setscene'):
                desc = "%s (setscene version)" % (d.getVarFlag(e[:-9], 'doc') or '')
            else:
                desc = d.getVarFlag(e, 'doc') or ''
            taskdescs[e] = desc

    tasks = sorted(taskdescs.keys())
    for taskname in tasks:
        bb.plain("%s  %s" % (taskname.ljust(maxlen), taskdescs[taskname]))
}


python do_package () {
    # Change the following version to cause sstate to invalidate the package
    # cache.  This is useful if an item this class depends on changes in a
    # way that the output of this class changes.  rpmdeps is a good example
    # as any change to rpmdeps requires this to be rerun.
    # PACKAGE_BBCLASS_VERSION = "1"

    # Init cachedpath
    global cpath
    cpath = oe.cachedpath.CachedPath()

    ###########################################################################
    # Sanity test the setup
    ###########################################################################

    packages = (d.getVar('PACKAGES') or "").split()
    if len(packages) < 1:
        bb.debug(1, "No packages to build, skipping do_package")
        return

    workdir = d.getVar('WORKDIR')
    outdir = d.getVar('DEPLOY_DIR')
    dest = d.getVar('D')
    dvar = d.getVar('PKGD')
    pn = d.getVar('PN')

    if not workdir or not outdir or not dest or not dvar or not pn:
        msg = "WORKDIR, DEPLOY_DIR, D, PN and PKGD all must be defined, unable to package"
        package_qa_handle_error("var-undefined", msg, d)
        return

    bb.build.exec_func("package_get_auto_pr", d)

    ###########################################################################
    # Optimisations
    ###########################################################################

    # Continually expanding complex expressions is inefficient, particularly
    # when we write to the datastore and invalidate the expansion cache. This
    # code pre-expands some frequently used variables

    def expandVar(x, d):
        d.setVar(x, d.getVar(x))

    for x in 'PN', 'PV', 'BPN', 'TARGET_SYS', 'EXTENDPRAUTO':
        expandVar(x, d)

    ###########################################################################
    # Setup PKGD (from D)
    ###########################################################################

    for f in (d.getVar('PACKAGEBUILDPKGD') or '').split():
        bb.build.exec_func(f, d)

    ###########################################################################
    # Split up PKGD into PKGDEST
    ###########################################################################

    cpath = oe.cachedpath.CachedPath()

    for f in (d.getVar('PACKAGESPLITFUNCS') or '').split():
        bb.build.exec_func(f, d)

    ###########################################################################
    # Process PKGDEST
    ###########################################################################

    # Build global list of files in each split package
    global pkgfiles
    pkgfiles = {}
    packages = d.getVar('PACKAGES').split()
    pkgdest = d.getVar('PKGDEST')
    for pkg in packages:
        pkgfiles[pkg] = []
        for walkroot, dirs, files in cpath.walk(pkgdest + "/" + pkg):
            for file in files:
                pkgfiles[pkg].append(walkroot + os.sep + file)

    for f in (d.getVar('PACKAGEFUNCS') or '').split():
        bb.build.exec_func(f, d)

    qa_sane = d.getVar("QA_SANE")
    if not qa_sane:
        bb.fatal("Fatal QA errors found, failing task.")
}


python do_package_ipk () {
    import re, copy
    import textwrap
    import subprocess
    import collections

    oldcwd = os.getcwd()

    workdir = d.getVar('WORKDIR')
    outdir = d.getVar('PKGWRITEDIRIPK')
    tmpdir = d.getVar('TMPDIR')
    pkgdest = d.getVar('PKGDEST')
    if not workdir or not outdir or not tmpdir:
        bb.error("Variables incorrectly set, unable to package")
        return

    packages = d.getVar('PACKAGES')
    if not packages or packages == '':
        bb.debug(1, "No packages; nothing to do")
        return

    # We're about to add new packages so the index needs to be checked
    # so remove the appropriate stamp file.
    if os.access(os.path.join(tmpdir, "stamps", "IPK_PACKAGE_INDEX_CLEAN"), os.R_OK):
        os.unlink(os.path.join(tmpdir, "stamps", "IPK_PACKAGE_INDEX_CLEAN"))

    def cleanupcontrol(root):
        for p in ['CONTROL', 'DEBIAN']:
            p = os.path.join(root, p)
            if os.path.exists(p):
                bb.utils.prunedir(p)

    recipesource = os.path.basename(d.getVar('FILE'))

    for pkg in packages.split():
        localdata = bb.data.createCopy(d)
        root = "%s/%s" % (pkgdest, pkg)

        lf = bb.utils.lockfile(root + ".lock")

        localdata.setVar('ROOT', '')
        localdata.setVar('ROOT_%s' % pkg, root)
        pkgname = localdata.getVar('PKG_%s' % pkg)
        if not pkgname:
            pkgname = pkg
        localdata.setVar('PKG', pkgname)

        localdata.setVar('OVERRIDES', d.getVar("OVERRIDES", False) + ":" + pkg)

        basedir = os.path.join(os.path.dirname(root))
        arch = localdata.getVar('PACKAGE_ARCH')

        if localdata.getVar('IPK_HIERARCHICAL_FEED', False) == "1":
            # Spread packages across subdirectories so each isn't too crowded
            if pkgname.startswith('lib'):
                pkg_prefix = 'lib' + pkgname[3]
            else:
                pkg_prefix = pkgname[0]

            # Keep -dbg, -dev, -doc, -staticdev, -locale and -locale-* packages
            # together. These package suffixes are taken from the definitions of
            # PACKAGES and PACKAGES_DYNAMIC in meta/conf/bitbake.conf
            if pkgname[-4:] in ('-dbg', '-dev', '-doc'):
                pkg_subdir = pkgname[:-4]
            elif pkgname.endswith('-staticdev'):
                pkg_subdir = pkgname[:-10]
            elif pkgname.endswith('-locale'):
                pkg_subdir = pkgname[:-7]
            elif '-locale-' in pkgname:
                pkg_subdir = pkgname[:pkgname.find('-locale-')]
            else:
                pkg_subdir = pkgname

            pkgoutdir = "%s/%s/%s/%s" % (outdir, arch, pkg_prefix, pkg_subdir)
        else:
            pkgoutdir = "%s/%s" % (outdir, arch)

        bb.utils.mkdirhier(pkgoutdir)
        os.chdir(root)
        cleanupcontrol(root)
        from glob import glob
        g = glob('*')
        if not g and localdata.getVar('ALLOW_EMPTY', False) != "1":
            bb.note("Not creating empty archive for %s-%s-%s" % (pkg, localdata.getVar('PKGV'), localdata.getVar('PKGR')))
            bb.utils.unlockfile(lf)
            continue

        controldir = os.path.join(root, 'CONTROL')
        bb.utils.mkdirhier(controldir)
        ctrlfile = open(os.path.join(controldir, 'control'), 'w')

        fields = []
        pe = d.getVar('PKGE')
        if pe and int(pe) > 0:
            fields.append(["Version: %s:%s-%s\n", ['PKGE', 'PKGV', 'PKGR']])
        else:
            fields.append(["Version: %s-%s\n", ['PKGV', 'PKGR']])
        fields.append(["Description: %s\n", ['DESCRIPTION']])
        fields.append(["Section: %s\n", ['SECTION']])
        fields.append(["Priority: %s\n", ['PRIORITY']])
        fields.append(["Maintainer: %s\n", ['MAINTAINER']])
        fields.append(["License: %s\n", ['LICENSE']])
        fields.append(["Architecture: %s\n", ['PACKAGE_ARCH']])
        fields.append(["OE: %s\n", ['PN']])
        if d.getVar('HOMEPAGE'):
            fields.append(["Homepage: %s\n", ['HOMEPAGE']])

        def pullData(l, d):
            l2 = []
            for i in l:
                l2.append(d.getVar(i))
            return l2

        ctrlfile.write("Package: %s\n" % pkgname)
        # check for required fields
        for (c, fs) in fields:
            for f in fs:
                if localdata.getVar(f, False) is None:
                    raise KeyError(f)
            # Special behavior for description...
            if 'DESCRIPTION' in fs:
                summary = localdata.getVar('SUMMARY') or localdata.getVar('DESCRIPTION') or "."
                ctrlfile.write('Description: %s\n' % summary)
                description = localdata.getVar('DESCRIPTION') or "."
                description = textwrap.dedent(description).strip()
                if '\\n' in description:
                    # Manually indent
                    for t in description.split('\\n'):
                        # We don't limit the width when manually indent, but we do
                        # need the textwrap.fill() to set the initial_indent and
                        # subsequent_indent, so set a large width
                        line = textwrap.fill(t.strip(),
                                             width=100000,
                                             initial_indent=' ',
                                             subsequent_indent=' ') or '.'
                        ctrlfile.write('%s\n' % line)
                else:
                    # Auto indent
                    ctrlfile.write('%s\n' % textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' '))
            else:
                ctrlfile.write(c % tuple(pullData(fs, localdata)))
        # more fields

        custom_fields_chunk = get_package_additional_metadata("ipk", localdata)
        if custom_fields_chunk is not None:
            ctrlfile.write(custom_fields_chunk)
            ctrlfile.write("\n")

        mapping_rename_hook(localdata)

        def debian_cmp_remap(var):
            # In debian '>' and '<' do not mean what it appears they mean
            #   '<' = less or equal
            #   '>' = greater or equal
            # adjust these to the '<<' and '>>' equivalents
            #
            for dep in var:
                for i, v in enumerate(var[dep]):
                    if (v or "").startswith("< "):
                        var[dep][i] = var[dep][i].replace("< ", "<< ")
                    elif (v or "").startswith("> "):
                        var[dep][i] = var[dep][i].replace("> ", ">> ")

        rdepends = bb.utils.explode_dep_versions2(localdata.getVar("RDEPENDS") or "")
        debian_cmp_remap(rdepends)
        rrecommends = bb.utils.explode_dep_versions2(localdata.getVar("RRECOMMENDS") or "")
        debian_cmp_remap(rrecommends)
        rsuggests = bb.utils.explode_dep_versions2(localdata.getVar("RSUGGESTS") or "")
        debian_cmp_remap(rsuggests)
        # Deliberately drop version information here, not wanted/supported by ipk
        rprovides = dict.fromkeys(bb.utils.explode_dep_versions2(localdata.getVar("RPROVIDES") or ""), [])
        rprovides = collections.OrderedDict(sorted(rprovides.items(), key=lambda x: x[0]))
        debian_cmp_remap(rprovides)
        rreplaces = bb.utils.explode_dep_versions2(localdata.getVar("RREPLACES") or "")
        debian_cmp_remap(rreplaces)
        rconflicts = bb.utils.explode_dep_versions2(localdata.getVar("RCONFLICTS") or "")
        debian_cmp_remap(rconflicts)

        if rdepends:
            ctrlfile.write("Depends: %s\n" % bb.utils.join_deps(rdepends))
        if rsuggests:
            ctrlfile.write("Suggests: %s\n" % bb.utils.join_deps(rsuggests))
        if rrecommends:
            ctrlfile.write("Recommends: %s\n" % bb.utils.join_deps(rrecommends))
        if rprovides:
            ctrlfile.write("Provides: %s\n" % bb.utils.join_deps(rprovides))
        if rreplaces:
            ctrlfile.write("Replaces: %s\n" % bb.utils.join_deps(rreplaces))
        if rconflicts:
            ctrlfile.write("Conflicts: %s\n" % bb.utils.join_deps(rconflicts))
        ctrlfile.write("Source: %s\n" % recipesource)
        ctrlfile.close()

        for script in ["preinst", "postinst", "prerm", "postrm"]:
            scriptvar = localdata.getVar('pkg_%s' % script)
            if not scriptvar:
                continue
            scriptfile = open(os.path.join(controldir, script), 'w')
            scriptfile.write(scriptvar)
            scriptfile.close()
            os.chmod(os.path.join(controldir, script), 0o755)

        conffiles_str = ' '.join(get_conffiles(pkg, d))
        if conffiles_str:
            conffiles = open(os.path.join(controldir, 'conffiles'), 'w')
            for f in conffiles_str.split():
                if os.path.exists(oe.path.join(root, f)):
                    conffiles.write('%s\n' % f)
            conffiles.close()

        os.chdir(basedir)
        subprocess.check_output("PATH=\"%s\" %s %s %s" % (localdata.getVar("PATH"),
                                                          d.getVar("OPKGBUILDCMD"), pkg, pkgoutdir), shell=True)

        if d.getVar('IPK_SIGN_PACKAGES') == '1':
            ipkver = "%s-%s" % (d.getVar('PKGV'), d.getVar('PKGR'))
            ipk_to_sign = "%s/%s_%s_%s.ipk" % (pkgoutdir, pkgname, ipkver, d.getVar('PACKAGE_ARCH'))
            sign_ipk(d, ipk_to_sign)

        cleanupcontrol(root)
        bb.utils.unlockfile(lf)

    os.chdir(oldcwd)
}


python do_package_qa () {
    import subprocess
    import oe.packagedata

    bb.note("DO PACKAGE QA")

    bb.build.exec_func("read_subpackage_metadata", d)

    # Check non UTF-8 characters on recipe's metadata
    package_qa_check_encoding(['DESCRIPTION', 'SUMMARY', 'LICENSE', 'SECTION'], 'utf-8', d)

    logdir = d.getVar('T')
    pkg = d.getVar('PN')

    # Check the compile log for host contamination
    compilelog = os.path.join(logdir,"log.do_compile")

    if os.path.exists(compilelog):
        statement = "grep -e 'CROSS COMPILE Badness:' -e 'is unsafe for cross-compilation' %s > /dev/null" % compilelog
        if subprocess.call(statement, shell=True) == 0:
            msg = "%s: The compile log indicates that host include and/or library paths were used.\n \
        Please check the log '%s' for more information." % (pkg, compilelog)
            package_qa_handle_error("compile-host-path", msg, d)

    # Check the install log for host contamination
    installlog = os.path.join(logdir,"log.do_install")

    if os.path.exists(installlog):
        statement = "grep -e 'CROSS COMPILE Badness:' -e 'is unsafe for cross-compilation' %s > /dev/null" % installlog
        if subprocess.call(statement, shell=True) == 0:
            msg = "%s: The install log indicates that host include and/or library paths were used.\n \
        Please check the log '%s' for more information." % (pkg, installlog)
            package_qa_handle_error("install-host-path", msg, d)

    # Scan the packages...
    pkgdest = d.getVar('PKGDEST')
    packages = set((d.getVar('PACKAGES') or '').split())

    cpath = oe.cachedpath.CachedPath()
    global pkgfiles
    pkgfiles = {}
    for pkg in packages:
        pkgfiles[pkg] = []
        for walkroot, dirs, files in cpath.walk(pkgdest + "/" + pkg):
            for file in files:
                pkgfiles[pkg].append(walkroot + os.sep + file)

    # no packages should be scanned
    if not packages:
        return

    import re
    # The package name matches the [a-z0-9.+-]+ regular expression
    pkgname_pattern = re.compile("^[a-z0-9.+-]+$")

    taskdepdata = d.getVar("BB_TASKDEPDATA", False)
    taskdeps = set()
    for dep in taskdepdata:
        taskdeps.add(taskdepdata[dep][0])

    for package in packages:
        def parse_test_matrix(matrix_name):
            testmatrix = d.getVarFlags(matrix_name) or {}
            g = globals()
            warnchecks = []
            for w in (d.getVar("WARN_QA") or "").split():
                if w in skip:
                   continue
                if w in testmatrix and testmatrix[w] in g:
                    warnchecks.append(g[testmatrix[w]])
                if w == 'unsafe-references-in-binaries':
                    oe.utils.write_ld_so_conf(d)

            errorchecks = []
            for e in (d.getVar("ERROR_QA") or "").split():
                if e in skip:
                   continue
                if e in testmatrix and testmatrix[e] in g:
                    errorchecks.append(g[testmatrix[e]])
                if e == 'unsafe-references-in-binaries':
                    oe.utils.write_ld_so_conf(d)
            return warnchecks, errorchecks

        skip = (d.getVar('INSANE_SKIP_' + package) or "").split()
        if skip:
            bb.note("Package %s skipping QA tests: %s" % (package, str(skip)))


        bb.note("Checking Package: %s" % package)
        # Check package name
        if not pkgname_pattern.match(package):
            package_qa_handle_error("pkgname",
                    "%s doesn't match the [a-z0-9.+-]+ regex" % package, d)

        warn_checks, error_checks = parse_test_matrix("QAPATHTEST")
        package_qa_walk(warn_checks, error_checks, skip, package, d)

        warn_checks, error_checks = parse_test_matrix("QAPKGTEST")
        package_qa_package(warn_checks, error_checks, skip, package, d)

        package_qa_check_rdepends(package, pkgdest, skip, taskdeps, packages, d)
        package_qa_check_deps(package, pkgdest, skip, d)

    if 'libdir' in d.getVar("ALL_QA").split():
        package_qa_check_libdir(d)

    qa_sane = d.getVar("QA_SANE")
    if not qa_sane:
        bb.fatal("QA run found fatal errors. Please consider fixing them.")
    bb.note("DONE with PACKAGE QA")
}


python do_package_qa_setscene () {
    sstate_setscene(d)
}


python do_package_setscene () {
    sstate_setscene(d)
}


python do_package_write_ipk () {
    bb.build.exec_func("read_subpackage_metadata", d)
    bb.build.exec_func("do_package_ipk", d)
}


python do_package_write_ipk_setscene () {
    tmpdir = d.getVar('TMPDIR')

    if os.access(os.path.join(tmpdir, "stamps", "IPK_PACKAGE_INDEX_CLEAN"), os.R_OK):
        os.unlink(os.path.join(tmpdir, "stamps", "IPK_PACKAGE_INDEX_CLEAN"))

    sstate_setscene(d)
}


python do_packagedata_setscene () {
    sstate_setscene(d)
}


python do_patch () {
    bb.build.exec_func('patch_do_patch', d)
}


python do_populate_lic () {
    """
    Populate LICENSE_DIRECTORY with licenses.
    """
    lic_files_paths = find_license_files(d)

    # The base directory we wrangle licenses to
    destdir = os.path.join(d.getVar('LICSSTATEDIR'), d.getVar('PN'))
    copy_license_files(lic_files_paths, destdir)
    info = get_recipe_info(d)
    with open(os.path.join(destdir, "recipeinfo"), "w") as f:
        for key in sorted(info.keys()):
            f.write("%s: %s\n" % (key, info[key]))
}


python do_populate_lic_setscene () {
    sstate_setscene(d)
}


python do_populate_sdk () {
    populate_sdk_common(d)
}


python do_populate_sdk_ext () {
    # FIXME hopefully we can remove this restriction at some point, but uninative
    # currently forces this upon us
    if d.getVar('SDK_ARCH') != d.getVar('BUILD_ARCH'):
        bb.fatal('The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is set to %s (likely via setting SDKMACHINE) which is different from the architecture of the build machine (%s). Unable to continue.' % (d.getVar('SDK_ARCH'), d.getVar('BUILD_ARCH')))

    d.setVar('SDK_INSTALL_TARGETS', get_sdk_install_targets(d))
    buildtools_fn = get_current_buildtools(d)
    d.setVar('SDK_REQUIRED_UTILITIES', get_sdk_required_utilities(buildtools_fn, d))
    d.setVar('SDK_BUILDTOOLS_INSTALLER', buildtools_fn)
    d.setVar('SDKDEPLOYDIR', '${SDKEXTDEPLOYDIR}')

    populate_sdk_common(d)
}


python do_populate_sysroot () {
    bb.build.exec_func("sysroot_stage_all", d)
    bb.build.exec_func("sysroot_strip", d)
    for f in (d.getVar('SYSROOT_PREPROCESS_FUNCS') or '').split():
        bb.build.exec_func(f, d)
    pn = d.getVar("PN")
    multiprov = d.getVar("MULTI_PROVIDER_WHITELIST").split()
    provdir = d.expand("${SYSROOT_DESTDIR}${base_prefix}/sysroot-providers/")
    bb.utils.mkdirhier(provdir)
    for p in d.getVar("PROVIDES").split():
        if p in multiprov:
            continue
        p = p.replace("/", "_")
        with open(provdir + p, "w") as f:
            f.write(pn)
}


python do_populate_sysroot_setscene () {
    sstate_setscene(d)
}


python do_prepare_recipe_sysroot () {
    bb.build.exec_func("extend_recipe_sysroot", d)
}


python do_qa_configure () {
    import subprocess

    ###########################################################################
    # Check config.log for cross compile issues
    ###########################################################################

    configs = []
    workdir = d.getVar('WORKDIR')

    if bb.data.inherits_class('autotools', d):
        bb.note("Checking autotools environment for common misconfiguration")
        for root, dirs, files in os.walk(workdir):
            statement = "grep -q -F -e 'CROSS COMPILE Badness:' -e 'is unsafe for cross-compilation' %s" % \
                        os.path.join(root,"config.log")
            if "config.log" in files:
                if subprocess.call(statement, shell=True) == 0:
                    bb.fatal("""This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities.
Rerun configure task after fixing this.""")

            if "configure.ac" in files:
                configs.append(os.path.join(root,"configure.ac"))
            if "configure.in" in files:
                configs.append(os.path.join(root, "configure.in"))

    ###########################################################################
    # Check gettext configuration and dependencies are correct
    ###########################################################################

    cnf = d.getVar('EXTRA_OECONF') or ""
    if "gettext" not in d.getVar('P') and "gcc-runtime" not in d.getVar('P') and "--disable-nls" not in cnf:
        ml = d.getVar("MLPREFIX") or ""
        if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d) or bb.data.inherits_class('nativesdk', d):
            gt = "gettext-native"
        elif bb.data.inherits_class('cross-canadian', d):
            gt = "nativesdk-gettext"
        else:
            gt = "virtual/" + ml + "gettext"
        deps = bb.utils.explode_deps(d.getVar('DEPENDS') or "")
        if gt not in deps:
            for config in configs:
                gnu = "grep \"^[[:space:]]*AM_GNU_GETTEXT\" %s >/dev/null" % config
                if subprocess.call(gnu, shell=True) == 0:
                    bb.fatal("""%s required but not in DEPENDS for file %s.
Missing inherit gettext?""" % (gt, config))

    ###########################################################################
    # Check unrecognised configure options (with a white list)
    ###########################################################################
    if bb.data.inherits_class("autotools", d):
        bb.note("Checking configure output for unrecognised options")
        try:
            flag = "WARNING: unrecognized options:"
            log = os.path.join(d.getVar('B'), 'config.log')
            output = subprocess.check_output(['grep', '-F', flag, log]).decode("utf-8").replace(', ', ' ')
            options = set()
            for line in output.splitlines():
                options |= set(line.partition(flag)[2].split())
            whitelist = set(d.getVar("UNKNOWN_CONFIGURE_WHITELIST").split())
            options -= whitelist
            if options:
                pn = d.getVar('PN')
                error_msg = pn + ": configure was passed unrecognised options: " + " ".join(options)
                package_qa_handle_error("unknown-configure-option", error_msg, d)
        except subprocess.CalledProcessError:
            pass

    # Check invalid PACKAGECONFIG
    pkgconfig = (d.getVar("PACKAGECONFIG") or "").split()
    if pkgconfig:
        pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}
        for pconfig in pkgconfig:
            if pconfig not in pkgconfigflags:
                pn = d.getVar('PN')
                error_msg = "%s: invalid PACKAGECONFIG: %s" % (pn, pconfig)
                package_qa_handle_error("invalid-packageconfig", error_msg, d)

    qa_sane = d.getVar("QA_SANE")
    if not qa_sane:
        bb.fatal("Fatal QA errors found, failing task.")
}


python do_qa_staging () {
    bb.note("QA checking staging")

    if not package_qa_check_staged(d.expand('${SYSROOT_DESTDIR}${libdir}'), d):
        bb.fatal("QA staging was broken by the package built above")
}


python do_qa_unpack () {
    src_uri = d.getVar('SRC_URI')
    s_dir = d.getVar('S')
    if src_uri and not os.path.exists(s_dir):
        bb.warn('%s: the directory %s (%s) pointed to by the S variable doesn\'t exist - please set S within the recipe to point to where the source has been unpacked to' % (d.getVar('PN'), d.getVar('S', False), s_dir))
}


python do_rootfs () {
    from oe.rootfs import create_rootfs
    from oe.manifest import create_manifest
    import logging

    logger = d.getVar('BB_TASK_LOGGER', False)
    if logger:
        logcatcher = bb.utils.LogCatcher()
        logger.addHandler(logcatcher)
    else:
        logcatcher = None

    # NOTE: if you add, remove or significantly refactor the stages of this
    # process then you should recalculate the weightings here. This is quite
    # easy to do - just change the MultiStageProgressReporter line temporarily
    # to pass debug=True as the last parameter and you'll get a printout of
    # the weightings as well as a map to the lines where next_stage() was
    # called. Of course this isn't critical, but it helps to keep the progress
    # reporting accurate.
    stage_weights = [1, 203, 354, 186, 65, 4228, 1, 353, 49, 330, 382, 23, 1]
    progress_reporter = bb.progress.MultiStageProgressReporter(d, stage_weights)
    progress_reporter.next_stage()

    # Handle package exclusions
    excl_pkgs = d.getVar("PACKAGE_EXCLUDE").split()
    inst_pkgs = d.getVar("PACKAGE_INSTALL").split()
    inst_attempt_pkgs = d.getVar("PACKAGE_INSTALL_ATTEMPTONLY").split()

    d.setVar('PACKAGE_INSTALL_ORIG', ' '.join(inst_pkgs))
    d.setVar('PACKAGE_INSTALL_ATTEMPTONLY', ' '.join(inst_attempt_pkgs))

    for pkg in excl_pkgs:
        if pkg in inst_pkgs:
            bb.warn("Package %s, set to be excluded, is in %s PACKAGE_INSTALL (%s).  It will be removed from the list." % (pkg, d.getVar('PN'), inst_pkgs))
            inst_pkgs.remove(pkg)

        if pkg in inst_attempt_pkgs:
            bb.warn("Package %s, set to be excluded, is in %s PACKAGE_INSTALL_ATTEMPTONLY (%s).  It will be removed from the list." % (pkg, d.getVar('PN'), inst_pkgs))
            inst_attempt_pkgs.remove(pkg)

    d.setVar("PACKAGE_INSTALL", ' '.join(inst_pkgs))
    d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", ' '.join(inst_attempt_pkgs))

    # Ensure we handle package name remapping
    # We have to delay the runtime_mapping_rename until just before rootfs runs
    # otherwise, the multilib renaming could step in and squash any fixups that
    # may have occurred.
    pn = d.getVar('PN')
    runtime_mapping_rename("PACKAGE_INSTALL", pn, d)
    runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", pn, d)
    runtime_mapping_rename("BAD_RECOMMENDATIONS", pn, d)

    # Generate the initial manifest
    create_manifest(d)

    progress_reporter.next_stage()

    # generate rootfs
    create_rootfs(d, progress_reporter=progress_reporter, logcatcher=logcatcher)

    progress_reporter.finish()
}


python do_rootfs_wicenv () {
    wicvars = d.getVar('WICVARS')
    if not wicvars:
        return

    stdir = d.getVar('STAGING_DIR')
    outdir = os.path.join(stdir, d.getVar('MACHINE'), 'imgdata')
    bb.utils.mkdirhier(outdir)
    basename = d.getVar('IMAGE_BASENAME')
    with open(os.path.join(outdir, basename) + '.env', 'w') as envf:
        for var in wicvars.split():
            value = d.getVar(var)
            if value:
                envf.write('%s="%s"\n' % (var, value.strip()))
}


python do_sdk_depends () {
    # We have to do this separately in its own task so we avoid recursing into
    # dependencies we don't need to (e.g. buildtools-tarball) and bringing those
    # into the SDK's sstate-cache
    import oe.copy_buildsystem
    sigfile = d.getVar('WORKDIR') + '/locked-sigs.inc'
    oe.copy_buildsystem.generate_locked_sigs(sigfile, d)
}


python do_split_packages () {
def do_split_packages(d, root, file_regex, output_pattern, description, postinst=None, recursive=False, hook=None, extra_depends=None, aux_files_pattern=None, postrm=None, allow_dirs=False, prepend=False, match_path=False, aux_files_pattern_verbatim=None, allow_links=False, summary=None):
    """
    Used in .bb files to split up dynamically generated subpackages of a
    given package, usually plugins or modules.

    Arguments:
    root           -- the path in which to search
    file_regex     -- regular expression to match searched files. Use
                      parentheses () to mark the part of this expression
                      that should be used to derive the module name (to be
                      substituted where %s is used in other function
                      arguments as noted below)
    output_pattern -- pattern to use for the package names. Must include %s.
    description    -- description to set for each package. Must include %s.
    postinst       -- postinstall script to use for all packages (as a
                      string)
    recursive      -- True to perform a recursive search - default False
    hook           -- a hook function to be called for every match. The
                      function will be called with the following arguments
                      (in the order listed):
                        f: full path to the file/directory match
                        pkg: the package name
                        file_regex: as above
                        output_pattern: as above
                        modulename: the module name derived using file_regex
    extra_depends  -- extra runtime dependencies (RDEPENDS) to be set for
                      all packages. The default value of None causes a
                      dependency on the main package (${PN}) - if you do
                      not want this, pass '' for this parameter.
    aux_files_pattern -- extra item(s) to be added to FILES for each
                      package. Can be a single string item or a list of
                      strings for multiple items.  Must include %s.
    postrm         -- postrm script to use for all packages (as a string)
    allow_dirs     -- True allow directories to be matched - default False
    prepend        -- if True, prepend created packages to PACKAGES instead
                      of the default False which appends them
    match_path     -- match file_regex on the whole relative path to the
                      root rather than just the file name
    aux_files_pattern_verbatim -- extra item(s) to be added to FILES for
                      each package, using the actual derived module name
                      rather than converting it to something legal for a
                      package name. Can be a single string item or a list
                      of strings for multiple items. Must include %s.
    allow_links    -- True to allow symlinks to be matched - default False
    summary        -- Summary to set for each package. Must include %s;
                      defaults to description if not set.

    """

    dvar = d.getVar('PKGD')
    root = d.expand(root)
    output_pattern = d.expand(output_pattern)
    extra_depends = d.expand(extra_depends)

    # If the root directory doesn't exist, don't error out later but silently do
    # no splitting.
    if not os.path.exists(dvar + root):
        return []

    ml = d.getVar("MLPREFIX")
    if ml:
        if not output_pattern.startswith(ml):
            output_pattern = ml + output_pattern

        newdeps = []
        for dep in (extra_depends or "").split():
            if dep.startswith(ml):
                newdeps.append(dep)
            else:
                newdeps.append(ml + dep)
        if newdeps:
            extra_depends = " ".join(newdeps)


    packages = d.getVar('PACKAGES').split()
    split_packages = set()

    if postinst:
        postinst = '#!/bin/sh\n' + postinst + '\n'
    if postrm:
        postrm = '#!/bin/sh\n' + postrm + '\n'
    if not recursive:
        objs = os.listdir(dvar + root)
    else:
        objs = []
        for walkroot, dirs, files in os.walk(dvar + root):
            for file in files:
                relpath = os.path.join(walkroot, file).replace(dvar + root + '/', '', 1)
                if relpath:
                    objs.append(relpath)

    if extra_depends == None:
        extra_depends = d.getVar("PN")

    if not summary:
        summary = description

    for o in sorted(objs):
        import re, stat
        if match_path:
            m = re.match(file_regex, o)
        else:
            m = re.match(file_regex, os.path.basename(o))

        if not m:
            continue
        f = os.path.join(dvar + root, o)
        mode = os.lstat(f).st_mode
        if not (stat.S_ISREG(mode) or (allow_links and stat.S_ISLNK(mode)) or (allow_dirs and stat.S_ISDIR(mode))):
            continue
        on = legitimize_package_name(m.group(1))
        pkg = output_pattern % on
        split_packages.add(pkg)
        if not pkg in packages:
            if prepend:
                packages = [pkg] + packages
            else:
                packages.append(pkg)
        oldfiles = d.getVar('FILES_' + pkg)
        newfile = os.path.join(root, o)
        # These names will be passed through glob() so if the filename actually
        # contains * or ? (rare, but possible) we need to handle that specially
        newfile = newfile.replace('*', '[*]')
        newfile = newfile.replace('?', '[?]')
        if not oldfiles:
            the_files = [newfile]
            if aux_files_pattern:
                if type(aux_files_pattern) is list:
                    for fp in aux_files_pattern:
                        the_files.append(fp % on)
                else:
                    the_files.append(aux_files_pattern % on)
            if aux_files_pattern_verbatim:
                if type(aux_files_pattern_verbatim) is list:
                    for fp in aux_files_pattern_verbatim:
                        the_files.append(fp % m.group(1))
                else:
                    the_files.append(aux_files_pattern_verbatim % m.group(1))
            d.setVar('FILES_' + pkg, " ".join(the_files))
        else:
            d.setVar('FILES_' + pkg, oldfiles + " " + newfile)
        if extra_depends != '':
            d.appendVar('RDEPENDS_' + pkg, ' ' + extra_depends)
        if not d.getVar('DESCRIPTION_' + pkg):
            d.setVar('DESCRIPTION_' + pkg, description % on)
        if not d.getVar('SUMMARY_' + pkg):
            d.setVar('SUMMARY_' + pkg, summary % on)
        if postinst:
            d.setVar('pkg_postinst_' + pkg, postinst)
        if postrm:
            d.setVar('pkg_postrm_' + pkg, postrm)
        if callable(hook):
            hook(f, pkg, file_regex, output_pattern, m.group(1))

    d.setVar('PACKAGES', ' '.join(packages))
    return list(split_packages)
}


python do_unpack () {
    bb.build.exec_func('base_do_unpack', d)
}


python do_write_wks_template () {
    """Write out expanded template contents to WKS_FULL_PATH."""
    import re

    template_body = d.getVar('_WKS_TEMPLATE')

    # Remove any remnant variable references left behind by the expansion
    # due to undefined variables
    expand_var_regexp = re.compile(r"\${[^{}@\n\t :]+}")
    while True:
        new_body = re.sub(expand_var_regexp, '', template_body)
        if new_body == template_body:
            break
        else:
            template_body = new_body

    wks_file = d.getVar('WKS_FULL_PATH')
    with open(wks_file, 'w') as f:
        f.write(template_body)
}


python emit_pkgdata () {
    from glob import glob
    import json

    def write_if_exists(f, pkg, var):
        def encode(str):
            import codecs
            c = codecs.getencoder("unicode_escape")
            return c(str)[0].decode("latin1")

        val = d.getVar('%s_%s' % (var, pkg))
        if val:
            f.write('%s_%s: %s\n' % (var, pkg, encode(val)))
            return val
        val = d.getVar('%s' % (var))
        if val:
            f.write('%s: %s\n' % (var, encode(val)))
        return val

    def write_extra_pkgs(variants, pn, packages, pkgdatadir):
        for variant in variants:
            with open("%s/%s-%s" % (pkgdatadir, variant, pn), 'w') as fd:
                fd.write("PACKAGES: %s\n" % ' '.join(
                            map(lambda pkg: '%s-%s' % (variant, pkg), packages.split())))

    def write_extra_runtime_pkgs(variants, packages, pkgdatadir):
        for variant in variants:
            for pkg in packages.split():
                ml_pkg = "%s-%s" % (variant, pkg)
                subdata_file = "%s/runtime/%s" % (pkgdatadir, ml_pkg)
                with open(subdata_file, 'w') as fd:
                    fd.write("PKG_%s: %s" % (ml_pkg, pkg))

    packages = d.getVar('PACKAGES')
    pkgdest = d.getVar('PKGDEST')
    pkgdatadir = d.getVar('PKGDESTWORK')

    # Take shared lock since we're only reading, not writing
    lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"), True)

    data_file = pkgdatadir + d.expand("/${PN}" )
    f = open(data_file, 'w')
    f.write("PACKAGES: %s\n" % packages)
    f.close()

    pn = d.getVar('PN')
    global_variants = (d.getVar('MULTILIB_GLOBAL_VARIANTS') or "").split()
    variants = (d.getVar('MULTILIB_VARIANTS') or "").split()

    if bb.data.inherits_class('kernel', d) or bb.data.inherits_class('module-base', d):
        write_extra_pkgs(variants, pn, packages, pkgdatadir)

    if (bb.data.inherits_class('allarch', d) and not bb.data.inherits_class('packagegroup', d)):
        write_extra_pkgs(global_variants, pn, packages, pkgdatadir)

    workdir = d.getVar('WORKDIR')

    for pkg in packages.split():
        pkgval = d.getVar('PKG_%s' % pkg)
        if pkgval is None:
            pkgval = pkg
            d.setVar('PKG_%s' % pkg, pkg)

        pkgdestpkg = os.path.join(pkgdest, pkg)
        files = {}
        total_size = 0
        seen = set()
        for f in pkgfiles[pkg]:
            relpth = os.path.relpath(f, pkgdestpkg)
            fstat = os.lstat(f)
            files[os.sep + relpth] = fstat.st_size
            if fstat.st_ino not in seen:
                seen.add(fstat.st_ino)
                total_size += fstat.st_size
        d.setVar('FILES_INFO', json.dumps(files))

        subdata_file = pkgdatadir + "/runtime/%s" % pkg
        sf = open(subdata_file, 'w')
        write_if_exists(sf, pkg, 'PN')
        write_if_exists(sf, pkg, 'PE')
        write_if_exists(sf, pkg, 'PV')
        write_if_exists(sf, pkg, 'PR')
        write_if_exists(sf, pkg, 'PKGE')
        write_if_exists(sf, pkg, 'PKGV')
        write_if_exists(sf, pkg, 'PKGR')
        write_if_exists(sf, pkg, 'LICENSE')
        write_if_exists(sf, pkg, 'DESCRIPTION')
        write_if_exists(sf, pkg, 'SUMMARY')
        write_if_exists(sf, pkg, 'RDEPENDS')
        rprov = write_if_exists(sf, pkg, 'RPROVIDES')
        write_if_exists(sf, pkg, 'RRECOMMENDS')
        write_if_exists(sf, pkg, 'RSUGGESTS')
        write_if_exists(sf, pkg, 'RREPLACES')
        write_if_exists(sf, pkg, 'RCONFLICTS')
        write_if_exists(sf, pkg, 'SECTION')
        write_if_exists(sf, pkg, 'PKG')
        write_if_exists(sf, pkg, 'ALLOW_EMPTY')
        write_if_exists(sf, pkg, 'FILES')
        write_if_exists(sf, pkg, 'CONFFILES')
        write_if_exists(sf, pkg, 'pkg_postinst')
        write_if_exists(sf, pkg, 'pkg_postrm')
        write_if_exists(sf, pkg, 'pkg_preinst')
        write_if_exists(sf, pkg, 'pkg_prerm')
        write_if_exists(sf, pkg, 'FILERPROVIDESFLIST')
        write_if_exists(sf, pkg, 'FILES_INFO')
        for dfile in (d.getVar('FILERPROVIDESFLIST_' + pkg) or "").split():
            write_if_exists(sf, pkg, 'FILERPROVIDES_' + dfile)

        write_if_exists(sf, pkg, 'FILERDEPENDSFLIST')
        for dfile in (d.getVar('FILERDEPENDSFLIST_' + pkg) or "").split():
            write_if_exists(sf, pkg, 'FILERDEPENDS_' + dfile)

        sf.write('%s_%s: %d\n' % ('PKGSIZE', pkg, total_size))
        sf.close()

        # Symlinks needed for rprovides lookup
        if rprov:
            for p in rprov.strip().split():
                subdata_sym = pkgdatadir + "/runtime-rprovides/%s/%s" % (p, pkg)
                bb.utils.mkdirhier(os.path.dirname(subdata_sym))
                oe.path.symlink("../../runtime/%s" % pkg, subdata_sym, True)

        allow_empty = d.getVar('ALLOW_EMPTY_%s' % pkg)
        if not allow_empty:
            allow_empty = d.getVar('ALLOW_EMPTY')
        root = "%s/%s" % (pkgdest, pkg)
        os.chdir(root)
        g = glob('*')
        if g or allow_empty == "1":
            # Symlinks needed for reverse lookups (from the final package name)
            subdata_sym = pkgdatadir + "/runtime-reverse/%s" % pkgval
            oe.path.symlink("../runtime/%s" % pkg, subdata_sym, True)

            packagedfile = pkgdatadir + '/runtime/%s.packaged' % pkg
            open(packagedfile, 'w').close()

    if bb.data.inherits_class('kernel', d) or bb.data.inherits_class('module-base', d):
        write_extra_runtime_pkgs(variants, packages, pkgdatadir)

    if bb.data.inherits_class('allarch', d) and not bb.data.inherits_class('packagegroup', d):
        write_extra_runtime_pkgs(global_variants, packages, pkgdatadir)

    bb.utils.unlockfile(lf)
}


python emit_terminal_func () {
def emit_terminal_func(command, envdata, d):
    cmd_func = 'do_terminal'

    envdata.setVar(cmd_func, 'exec ' + command)
    envdata.setVarFlag(cmd_func, 'func', '1')

    runfmt = d.getVar('BB_RUNFMT') or "run.{func}.{pid}"
    runfile = runfmt.format(func=cmd_func, task=cmd_func, taskfunc=cmd_func, pid=os.getpid())
    runfile = os.path.join(d.getVar('T'), runfile)
    bb.utils.mkdirhier(os.path.dirname(runfile))

    with open(runfile, 'w') as script:
        script.write('#!/bin/sh -e\n')
        bb.data.emit_func(cmd_func, script, envdata)
        script.write(cmd_func)
        script.write("\n")
    os.chmod(runfile, 0o755)

    return runfile
}


python expand_wildcard_licenses () {
def expand_wildcard_licenses(d, wildcard_licenses):
    """
    Return actual spdx format license names if wildcard used. We expand
    wildcards from SPDXLICENSEMAP flags and SRC_DISTRIBUTE_LICENSES values.
    """
    import fnmatch
    licenses = []
    spdxmapkeys = d.getVarFlags('SPDXLICENSEMAP').keys()
    for wld_lic in wildcard_licenses:
        spdxflags = fnmatch.filter(spdxmapkeys, wld_lic)
        licenses += [d.getVarFlag('SPDXLICENSEMAP', flag) for flag in spdxflags]

    spdx_lics = (d.getVar('SRC_DISTRIBUTE_LICENSES', False) or '').split()
    for wld_lic in wildcard_licenses:
        licenses += fnmatch.filter(spdx_lics, wld_lic)

    licenses = list(set(licenses))
    return licenses
}


python explode_deps () {
def explode_deps(s):
    return bb.utils.explode_deps(s)
}


python extend_recipe_sysroot () {
    import copy
    import subprocess
    import errno
    import collections
    import glob

    taskdepdata = d.getVar("BB_TASKDEPDATA", False)
    mytaskname = d.getVar("BB_RUNTASK")
    if mytaskname.endswith("_setscene"):
        mytaskname = mytaskname.replace("_setscene", "")
    workdir = d.getVar("WORKDIR")
    #bb.warn(str(taskdepdata))
    pn = d.getVar("PN")

    stagingdir = d.getVar("STAGING_DIR")
    sharedmanifests = d.getVar("COMPONENTS_DIR") + "/manifests"
    recipesysroot = d.getVar("RECIPE_SYSROOT")
    recipesysrootnative = d.getVar("RECIPE_SYSROOT_NATIVE")
    current_variant = d.getVar("BBEXTENDVARIANT")

    # Detect bitbake -b usage
    nodeps = d.getVar("BB_LIMITEDDEPS") or False
    if nodeps:
        lock = bb.utils.lockfile(recipesysroot + "/sysroot.lock")
        staging_populate_sysroot_dir(recipesysroot, recipesysrootnative, True, d)
        staging_populate_sysroot_dir(recipesysroot, recipesysrootnative, False, d)
        bb.utils.unlockfile(lock)
        return

    start = None
    configuredeps = []
    for dep in taskdepdata:
        data = taskdepdata[dep]
        if data[1] == mytaskname and data[0] == pn:
            start = dep
            break
    if start is None:
        bb.fatal("Couldn't find ourself in BB_TASKDEPDATA?")

    # We need to figure out which sysroot files we need to expose to this task.
    # This needs to match what would get restored from sstate, which is controlled
    # ultimately by calls from bitbake to setscene_depvalid().
    # That function expects a setscene dependency tree. We build a dependency tree
    # condensed to inter-sstate task dependencies, similar to that used by setscene
    # tasks. We can then call into setscene_depvalid() and decide
    # which dependencies we can "see" and should expose in the recipe specific sysroot.
    setscenedeps = copy.deepcopy(taskdepdata)

    start = set([start])

    sstatetasks = d.getVar("SSTATETASKS").split()

    def print_dep_tree(deptree):
        data = ""
        for dep in deptree:
            deps = "    " + "\n    ".join(deptree[dep][3]) + "\n"
            data = "%s:\n  %s\n  %s\n%s  %s\n  %s\n" % (deptree[dep][0], deptree[dep][1], deptree[dep][2], deps, deptree[dep][4], deptree[dep][5])
        return data

    #bb.note("Full dep tree is:\n%s" % print_dep_tree(taskdepdata))

    #bb.note(" start2 is %s" % str(start))

    # If start is an sstate task (like do_package) we need to add in its direct dependencies
    # else the code below won't recurse into them.
    for dep in set(start):
        for dep2 in setscenedeps[dep][3]:
            start.add(dep2)
        start.remove(dep)

    #bb.note(" start3 is %s" % str(start))

    # Create collapsed do_populate_sysroot -> do_populate_sysroot tree
    for dep in taskdepdata:
        data = setscenedeps[dep]
        if data[1] not in sstatetasks:
            for dep2 in setscenedeps:
                data2 = setscenedeps[dep2]
                if dep in data2[3]:
                    data2[3].update(setscenedeps[dep][3])
                    data2[3].remove(dep)
            if dep in start:
                start.update(setscenedeps[dep][3])
                start.remove(dep)
            del setscenedeps[dep]

    # Remove circular references
    for dep in setscenedeps:
        if dep in setscenedeps[dep][3]:
            setscenedeps[dep][3].remove(dep)

    #bb.note("Computed dep tree is:\n%s" % print_dep_tree(setscenedeps))
    #bb.note(" start is %s" % str(start))

    # Direct dependencies should be present and can be depended upon
    for dep in set(start):
        if setscenedeps[dep][1] == "do_populate_sysroot":
            if dep not in configuredeps:
                configuredeps.append(dep)
    bb.note("Direct dependencies are %s" % str(configuredeps))
    #bb.note(" or %s" % str(start))

    msgbuf = []
    # Call into setscene_depvalid for each sub-dependency and only copy sysroot files
    # for ones that would be restored from sstate.
    done = list(start)
    next = list(start)
    while next:
        new = []
        for dep in next:
            data = setscenedeps[dep]
            for datadep in data[3]:
                if datadep in done:
                    continue
                taskdeps = {}
                taskdeps[dep] = setscenedeps[dep][:2]
                taskdeps[datadep] = setscenedeps[datadep][:2]
                retval = setscene_depvalid(datadep, taskdeps, [], d, msgbuf)
                if retval:
                    msgbuf.append("Skipping setscene dependency %s for installation into the sysroot" % datadep)
                    continue
                done.append(datadep)
                new.append(datadep)
                if datadep not in configuredeps and setscenedeps[datadep][1] == "do_populate_sysroot":
                    configuredeps.append(datadep)
                    msgbuf.append("Adding dependency on %s" % setscenedeps[datadep][0])
                else:
                    msgbuf.append("Following dependency on %s" % setscenedeps[datadep][0])
        next = new

    bb.note("\n".join(msgbuf))

    depdir = recipesysrootnative + "/installeddeps"
    bb.utils.mkdirhier(depdir)
    bb.utils.mkdirhier(sharedmanifests)

    lock = bb.utils.lockfile(recipesysroot + "/sysroot.lock")

    fixme = {}
    fixme[''] = []
    fixme['native'] = []
    seendirs = set()
    postinsts = []
    multilibs = {}
    manifests = {}

    for f in os.listdir(depdir):
        if not f.endswith(".complete"):
            continue
        f = depdir + "/" + f
        if os.path.islink(f) and not os.path.exists(f):
            bb.note("%s no longer exists, removing from sysroot" % f)
            lnk = os.readlink(f.replace(".complete", ""))
            sstate_clean_manifest(depdir + "/" + lnk, d, workdir)
            os.unlink(f)
            os.unlink(f.replace(".complete", ""))

    installed = []
    for dep in configuredeps:
        c = setscenedeps[dep][0]
        if mytaskname in ["do_sdk_depends", "do_populate_sdk_ext"] and c.endswith("-initial"):
            bb.note("Skipping initial setscene dependency %s for installation into the sysroot" % c)
            continue
        installed.append(c)

    # We want to remove anything which this task previously installed but is no longer a dependency
    taskindex = depdir + "/" + "index." + mytaskname
    if os.path.exists(taskindex):
        potential = []
        with open(taskindex, "r") as f:
            for l in f:
                l = l.strip()
                if l not in installed:
                    fl = depdir + "/" + l
                    if not os.path.exists(fl):
                        # Was likely already uninstalled
                        continue
                    potential.append(l)
        # We need to ensure not other task needs this dependency. We hold the sysroot
        # lock so we ca search the indexes to check
        if potential:
            for i in glob.glob(depdir + "/index.*"):
                if i.endswith("." + mytaskname):
                    continue
                with open(i, "r") as f:
                    for l in f:
                        l = l.strip()
                        if l in potential:
                            potential.remove(l)
        for l in potential:
            fl = depdir + "/" + l
            bb.note("Task %s no longer depends on %s, removing from sysroot" % (mytaskname, l))
            lnk = os.readlink(fl)
            sstate_clean_manifest(depdir + "/" + lnk, d, workdir)
            os.unlink(fl)
            os.unlink(fl + ".complete")

    for dep in configuredeps:
        c = setscenedeps[dep][0]
        if c not in installed:
            continue
        taskhash = setscenedeps[dep][5]
        taskmanifest = depdir + "/" + c + "." + taskhash

        if os.path.exists(depdir + "/" + c):
            lnk = os.readlink(depdir + "/" + c)
            if lnk == c + "." + taskhash and os.path.exists(depdir + "/" + c + ".complete"):
                bb.note("%s exists in sysroot, skipping" % c)
                continue
            else:
                bb.note("%s exists in sysroot, but is stale (%s vs. %s), removing." % (c, lnk, c + "." + taskhash))
                sstate_clean_manifest(depdir + "/" + lnk, d, workdir)
                os.unlink(depdir + "/" + c)
                if os.path.lexists(depdir + "/" + c + ".complete"):
                    os.unlink(depdir + "/" + c + ".complete")
        elif os.path.lexists(depdir + "/" + c):
            os.unlink(depdir + "/" + c)

        os.symlink(c + "." + taskhash, depdir + "/" + c)

        d2 = d
        destsysroot = recipesysroot
        variant = ''
        if setscenedeps[dep][2].startswith("virtual:multilib"):
            variant = setscenedeps[dep][2].split(":")[2]
            if variant != current_variant:
                if variant not in multilibs:
                    multilibs[variant] = get_multilib_datastore(variant, d)
                d2 = multilibs[variant]
                destsysroot = d2.getVar("RECIPE_SYSROOT")

        native = False
        if c.endswith("-native"):
            manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}-%s.populate_sysroot" % c)
            native = True
        elif c.startswith("nativesdk-"):
            manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${SDK_ARCH}_${SDK_OS}-%s.populate_sysroot" % c)
        elif "-cross-" in c:
            manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}_${TARGET_ARCH}-%s.populate_sysroot" % c)
            native = True
        elif "-crosssdk" in c:
            manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-${BUILD_ARCH}_${SDK_ARCH}_${SDK_OS}-%s.populate_sysroot" % c)
            native = True
        else:
            pkgarchs = ['${MACHINE_ARCH}']
            pkgarchs = pkgarchs + list(reversed(d2.getVar("PACKAGE_EXTRA_ARCHS").split()))
            pkgarchs.append('allarch')
            for pkgarch in pkgarchs:
                manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-%s-%s.populate_sysroot" % (pkgarch, c))
                if os.path.exists(manifest):
                    break
        if not os.path.exists(manifest):
            bb.warn("Manifest %s not found?" % manifest)
        else:
            newmanifest = collections.OrderedDict()
            if native:
                fm = fixme['native']
                targetdir = recipesysrootnative
            else:
                fm = fixme['']
                targetdir = destsysroot
            with open(manifest, "r") as f:
                manifests[dep] = manifest
                for l in f:
                    l = l.strip()
                    if l.endswith("/fixmepath"):
                        fm.append(l)
                        continue
                    if l.endswith("/fixmepath.cmd"):
                        continue
                    dest = l.replace(stagingdir, "")
                    dest = targetdir + "/" + "/".join(dest.split("/")[3:])
                    newmanifest[l] = dest
            # Having multiple identical manifests in each sysroot eats diskspace so
            # create a shared pool of them and hardlink if we can.
            # We create the manifest in advance so that if something fails during installation,
            # or the build is interrupted, subsequent exeuction can cleanup.
            sharedm = sharedmanifests + "/" + os.path.basename(taskmanifest)
            if not os.path.exists(sharedm):
                smlock = bb.utils.lockfile(sharedm + ".lock")
                # Can race here. You'd think it just means we may not end up with all copies hardlinked to each other
                # but python can lose file handles so we need to do this under a lock.
                if not os.path.exists(sharedm):
                    with open(sharedm, 'w') as m:
                       for l in newmanifest:
                           dest = newmanifest[l]
                           m.write(dest.replace(workdir + "/", "") + "\n")
                bb.utils.unlockfile(smlock)
            try:
                os.link(sharedm, taskmanifest)
            except OSError as err:
                if err.errno == errno.EXDEV:
                    bb.utils.copyfile(sharedm, taskmanifest)
                else:
                    raise
            # Finally actually install the files
            for l in newmanifest:
                    dest = newmanifest[l]
                    if l.endswith("/"):
                        staging_copydir(l, targetdir, dest, seendirs)
                        continue
                    staging_copyfile(l, targetdir, dest, postinsts, seendirs)

    for f in fixme:
        if f == '':
            staging_processfixme(fixme[f], recipesysroot, recipesysroot, recipesysrootnative, d)
        elif f == 'native':
            staging_processfixme(fixme[f], recipesysrootnative, recipesysroot, recipesysrootnative, d)
        else:
            staging_processfixme(fixme[f], multilibs[f].getVar("RECIPE_SYSROOT"), recipesysroot, recipesysrootnative, d)

    for p in postinsts:
        subprocess.check_output(p, shell=True)

    for dep in manifests:
        c = setscenedeps[dep][0]
        os.symlink(manifests[dep], depdir + "/" + c + ".complete")

    with open(taskindex, "w") as f:
        for l in sorted(installed):
            f.write(l + "\n")

    bb.utils.unlockfile(lock)
}


python extend_variants () {
def extend_variants(d, var, extend, delim=':'):
    """Return a string of all bb class extend variants for the given extend"""
    variants = []
    whole = d.getVar(var) or ""
    for ext in whole.split():
        eext = ext.split(delim)
        if len(eext) > 1 and eext[0] == extend:
            variants.append(eext[1])
    return " ".join(variants)
}


python extra_path_elements () {
def extra_path_elements(d):
    path = ""
    elements = (d.getVar('EXTRANATIVEPATH') or "").split()
    for e in elements:
        path = path + "${STAGING_BINDIR_NATIVE}/" + e + ":"
    return path
}


python files_from_filevars () {
def files_from_filevars(filevars):
    import os,glob
    cpath = oe.cachedpath.CachedPath()
    files = []
    for f in filevars:
        if os.path.isabs(f):
            f = '.' + f
        if not f.startswith("./"):
            f = './' + f
        globbed = glob.glob(f)
        if globbed:
            if [ f ] != globbed:
                files += globbed
                continue
        files.append(f)

    symlink_paths = []
    for ind, f in enumerate(files):
        # Handle directory symlinks. Truncate path to the lowest level symlink
        parent = ''
        for dirname in f.split('/')[:-1]:
            parent = os.path.join(parent, dirname)
            if dirname == '.':
                continue
            if cpath.islink(parent):
                bb.warn("FILES contains file '%s' which resides under a "
                        "directory symlink. Please fix the recipe and use the "
                        "real path for the file." % f[1:])
                symlink_paths.append(f)
                files[ind] = parent
                f = parent
                break

        if not cpath.islink(f):
            if cpath.isdir(f):
                newfiles = [ os.path.join(f,x) for x in os.listdir(f) ]
                if newfiles:
                    files += newfiles

    return files, symlink_paths
}


python find_license_files () {
def find_license_files(d):
    """
    Creates list of files used in LIC_FILES_CHKSUM and generic LICENSE files.
    """
    import shutil
    import oe.license
    from collections import defaultdict, OrderedDict

    # All the license files for the package
    lic_files = d.getVar('LIC_FILES_CHKSUM') or ""
    pn = d.getVar('PN')
    # The license files are located in S/LIC_FILE_CHECKSUM.
    srcdir = d.getVar('S')
    # Directory we store the generic licenses as set in the distro configuration
    generic_directory = d.getVar('COMMON_LICENSE_DIR')
    # List of basename, path tuples
    lic_files_paths = []
    # hash for keep track generic lics mappings
    non_generic_lics = {}
    # Entries from LIC_FILES_CHKSUM
    lic_chksums = {}
    license_source_dirs = []
    license_source_dirs.append(generic_directory)
    try:
        additional_lic_dirs = d.getVar('LICENSE_PATH').split()
        for lic_dir in additional_lic_dirs:
            license_source_dirs.append(lic_dir)
    except:
        pass

    class FindVisitor(oe.license.LicenseVisitor):
        def visit_Str(self, node):
            #
            # Until I figure out what to do with
            # the two modifiers I support (or greater = +
            # and "with exceptions" being *
            # we'll just strip out the modifier and put
            # the base license.
            find_license(node.s.replace("+", "").replace("*", ""))
            self.generic_visit(node)

    def find_license(license_type):
        try:
            bb.utils.mkdirhier(gen_lic_dest)
        except:
            pass
        spdx_generic = None
        license_source = None
        # If the generic does not exist we need to check to see if there is an SPDX mapping to it,
        # unless NO_GENERIC_LICENSE is set.
        for lic_dir in license_source_dirs:
            if not os.path.isfile(os.path.join(lic_dir, license_type)):
                if d.getVarFlag('SPDXLICENSEMAP', license_type) != None:
                    # Great, there is an SPDXLICENSEMAP. We can copy!
                    bb.debug(1, "We need to use a SPDXLICENSEMAP for %s" % (license_type))
                    spdx_generic = d.getVarFlag('SPDXLICENSEMAP', license_type)
                    license_source = lic_dir
                    break
            elif os.path.isfile(os.path.join(lic_dir, license_type)):
                spdx_generic = license_type
                license_source = lic_dir
                break

        non_generic_lic = d.getVarFlag('NO_GENERIC_LICENSE', license_type)
        if spdx_generic and license_source:
            # we really should copy to generic_ + spdx_generic, however, that ends up messing the manifest
            # audit up. This should be fixed in emit_pkgdata (or, we actually got and fix all the recipes)

            lic_files_paths.append(("generic_" + license_type, os.path.join(license_source, spdx_generic),
                                    None, None))

            # The user may attempt to use NO_GENERIC_LICENSE for a generic license which doesn't make sense
            # and should not be allowed, warn the user in this case.
            if d.getVarFlag('NO_GENERIC_LICENSE', license_type):
                bb.warn("%s: %s is a generic license, please don't use NO_GENERIC_LICENSE for it." % (pn, license_type))

        elif non_generic_lic and non_generic_lic in lic_chksums:
            # if NO_GENERIC_LICENSE is set, we copy the license files from the fetched source
            # of the package rather than the license_source_dirs.
            lic_files_paths.append(("generic_" + license_type,
                                    os.path.join(srcdir, non_generic_lic), None, None))
            non_generic_lics[non_generic_lic] = license_type
        else:
            # Add explicity avoid of CLOSED license because this isn't generic
            if license_type != 'CLOSED':
                # And here is where we warn people that their licenses are lousy
                bb.warn("%s: No generic license file exists for: %s in any provider" % (pn, license_type))
            pass

    if not generic_directory:
        bb.fatal("COMMON_LICENSE_DIR is unset. Please set this in your distro config")

    for url in lic_files.split():
        try:
            (type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
        except bb.fetch.MalformedUrl:
            bb.fatal("%s: LIC_FILES_CHKSUM contains an invalid URL:  %s" % (d.getVar('PF'), url))
        # We want the license filename and path
        chksum = parm.get('md5', None)
        beginline = parm.get('beginline')
        endline = parm.get('endline')
        lic_chksums[path] = (chksum, beginline, endline)

    v = FindVisitor()
    try:
        v.visit_string(d.getVar('LICENSE'))
    except oe.license.InvalidLicense as exc:
        bb.fatal('%s: %s' % (d.getVar('PF'), exc))
    except SyntaxError:
        bb.warn("%s: Failed to parse it's LICENSE field." % (d.getVar('PF')))
    # Add files from LIC_FILES_CHKSUM to list of license files
    lic_chksum_paths = defaultdict(OrderedDict)
    for path, data in sorted(lic_chksums.items()):
        lic_chksum_paths[os.path.basename(path)][data] = (os.path.join(srcdir, path), data[1], data[2])
    for basename, files in lic_chksum_paths.items():
        if len(files) == 1:
            # Don't copy again a LICENSE already handled as non-generic
            if basename in non_generic_lics:
                continue
            data = list(files.values())[0]
            lic_files_paths.append(tuple([basename] + list(data)))
        else:
            # If there are multiple different license files with identical
            # basenames we rename them to <file>.0, <file>.1, ...
            for i, data in enumerate(files.values()):
                lic_files_paths.append(tuple(["%s.%d" % (basename, i)] + list(data)))

    return lic_files_paths
}


python fixup_perms () {
    import pwd, grp

    # init using a string with the same format as a line as documented in
    # the fs-perms.txt file
    # <path> <mode> <uid> <gid> <walk> <fmode> <fuid> <fgid>
    # <path> link <link target>
    #
    # __str__ can be used to print out an entry in the input format
    #
    # if fs_perms_entry.path is None:
    #    an error occured
    # if fs_perms_entry.link, you can retrieve:
    #    fs_perms_entry.path = path
    #    fs_perms_entry.link = target of link
    # if not fs_perms_entry.link, you can retrieve:
    #    fs_perms_entry.path = path
    #    fs_perms_entry.mode = expected dir mode or None
    #    fs_perms_entry.uid = expected uid or -1
    #    fs_perms_entry.gid = expected gid or -1
    #    fs_perms_entry.walk = 'true' or something else
    #    fs_perms_entry.fmode = expected file mode or None
    #    fs_perms_entry.fuid = expected file uid or -1
    #    fs_perms_entry_fgid = expected file gid or -1
    class fs_perms_entry():
        def __init__(self, line):
            lsplit = line.split()
            if len(lsplit) == 3 and lsplit[1].lower() == "link":
                self._setlink(lsplit[0], lsplit[2])
            elif len(lsplit) == 8:
                self._setdir(lsplit[0], lsplit[1], lsplit[2], lsplit[3], lsplit[4], lsplit[5], lsplit[6], lsplit[7])
            else:
                msg = "Fixup Perms: invalid config line %s" % line
                package_qa_handle_error("perm-config", msg, d)
                self.path = None
                self.link = None

        def _setdir(self, path, mode, uid, gid, walk, fmode, fuid, fgid):
            self.path = os.path.normpath(path)
            self.link = None
            self.mode = self._procmode(mode)
            self.uid  = self._procuid(uid)
            self.gid  = self._procgid(gid)
            self.walk = walk.lower()
            self.fmode = self._procmode(fmode)
            self.fuid = self._procuid(fuid)
            self.fgid = self._procgid(fgid)

        def _setlink(self, path, link):
            self.path = os.path.normpath(path)
            self.link = link

        def _procmode(self, mode):
            if not mode or (mode and mode == "-"):
                return None
            else:
                return int(mode,8)

        # Note uid/gid -1 has special significance in os.lchown
        def _procuid(self, uid):
            if uid is None or uid == "-":
                return -1
            elif uid.isdigit():
                return int(uid)
            else:
                return pwd.getpwnam(uid).pw_uid

        def _procgid(self, gid):
            if gid is None or gid == "-":
                return -1
            elif gid.isdigit():
                return int(gid)
            else:
                return grp.getgrnam(gid).gr_gid

        # Use for debugging the entries
        def __str__(self):
            if self.link:
                return "%s link %s" % (self.path, self.link)
            else:
                mode = "-"
                if self.mode:
                    mode = "0%o" % self.mode
                fmode = "-"
                if self.fmode:
                    fmode = "0%o" % self.fmode
                uid = self._mapugid(self.uid)
                gid = self._mapugid(self.gid)
                fuid = self._mapugid(self.fuid)
                fgid = self._mapugid(self.fgid)
                return "%s %s %s %s %s %s %s %s" % (self.path, mode, uid, gid, self.walk, fmode, fuid, fgid)

        def _mapugid(self, id):
            if id is None or id == -1:
                return "-"
            else:
                return "%d" % id

    # Fix the permission, owner and group of path
    def fix_perms(path, mode, uid, gid, dir):
        if mode and not os.path.islink(path):
            #bb.note("Fixup Perms: chmod 0%o %s" % (mode, dir))
            os.chmod(path, mode)
        # -1 is a special value that means don't change the uid/gid
        # if they are BOTH -1, don't bother to lchown
        if not (uid == -1 and gid == -1):
            #bb.note("Fixup Perms: lchown %d:%d %s" % (uid, gid, dir))
            os.lchown(path, uid, gid)

    # Return a list of configuration files based on either the default
    # files/fs-perms.txt or the contents of FILESYSTEM_PERMS_TABLES
    # paths are resolved via BBPATH
    def get_fs_perms_list(d):
        str = ""
        bbpath = d.getVar('BBPATH')
        fs_perms_tables = d.getVar('FILESYSTEM_PERMS_TABLES')
        if not fs_perms_tables:
            fs_perms_tables = 'files/fs-perms.txt'
        for conf_file in fs_perms_tables.split():
            str += " %s" % bb.utils.which(bbpath, conf_file)
        return str



    dvar = d.getVar('PKGD')

    fs_perms_table = {}
    fs_link_table = {}

    # By default all of the standard directories specified in
    # bitbake.conf will get 0755 root:root.
    target_path_vars = [    'base_prefix',
                'prefix',
                'exec_prefix',
                'base_bindir',
                'base_sbindir',
                'base_libdir',
                'datadir',
                'sysconfdir',
                'servicedir',
                'sharedstatedir',
                'localstatedir',
                'infodir',
                'mandir',
                'docdir',
                'bindir',
                'sbindir',
                'libexecdir',
                'libdir',
                'includedir',
                'oldincludedir' ]

    for path in target_path_vars:
        dir = d.getVar(path) or ""
        if dir == "":
            continue
        fs_perms_table[dir] = fs_perms_entry(d.expand("%s 0755 root root false - - -" % (dir)))

    # Now we actually load from the configuration files
    for conf in get_fs_perms_list(d).split():
        if os.path.exists(conf):
            f = open(conf)
            for line in f:
                if line.startswith('#'):
                    continue
                lsplit = line.split()
                if len(lsplit) == 0:
                    continue
                if len(lsplit) != 8 and not (len(lsplit) == 3 and lsplit[1].lower() == "link"):
                    msg = "Fixup perms: %s invalid line: %s" % (conf, line)
                    package_qa_handle_error("perm-line", msg, d)
                    continue
                entry = fs_perms_entry(d.expand(line))
                if entry and entry.path:
                    if entry.link:
                        fs_link_table[entry.path] = entry
                        if entry.path in fs_perms_table:
                            fs_perms_table.pop(entry.path)
                    else:
                        fs_perms_table[entry.path] = entry
                        if entry.path in fs_link_table:
                            fs_link_table.pop(entry.path)
            f.close()

    # Debug -- list out in-memory table
    #for dir in fs_perms_table:
    #    bb.note("Fixup Perms: %s: %s" % (dir, str(fs_perms_table[dir])))
    #for link in fs_link_table:
    #    bb.note("Fixup Perms: %s: %s" % (link, str(fs_link_table[link])))

    # We process links first, so we can go back and fixup directory ownership
    # for any newly created directories
    # Process in sorted order so /run gets created before /run/lock, etc.
    for entry in sorted(fs_link_table.values(), key=lambda x: x.link):
        link = entry.link
        dir = entry.path
        origin = dvar + dir
        if not (cpath.exists(origin) and cpath.isdir(origin) and not cpath.islink(origin)):
            continue

        if link[0] == "/":
            target = dvar + link
            ptarget = link
        else:
            target = os.path.join(os.path.dirname(origin), link)
            ptarget = os.path.join(os.path.dirname(dir), link)
        if os.path.exists(target):
            msg = "Fixup Perms: Unable to correct directory link, target already exists: %s -> %s" % (dir, ptarget)
            package_qa_handle_error("perm-link", msg, d)
            continue

        # Create path to move directory to, move it, and then setup the symlink
        bb.utils.mkdirhier(os.path.dirname(target))
        #bb.note("Fixup Perms: Rename %s -> %s" % (dir, ptarget))
        os.rename(origin, target)
        #bb.note("Fixup Perms: Link %s -> %s" % (dir, link))
        os.symlink(link, origin)

    for dir in fs_perms_table:
        origin = dvar + dir
        if not (cpath.exists(origin) and cpath.isdir(origin)):
            continue

        fix_perms(origin, fs_perms_table[dir].mode, fs_perms_table[dir].uid, fs_perms_table[dir].gid, dir)

        if fs_perms_table[dir].walk == 'true':
            for root, dirs, files in os.walk(origin):
                for dr in dirs:
                    each_dir = os.path.join(root, dr)
                    fix_perms(each_dir, fs_perms_table[dir].mode, fs_perms_table[dir].uid, fs_perms_table[dir].gid, dir)
                for f in files:
                    each_file = os.path.join(root, f)
                    fix_perms(each_file, fs_perms_table[dir].fmode, fs_perms_table[dir].fuid, fs_perms_table[dir].fgid, dir)
}


python gen_packagevar () {
def gen_packagevar(d):
    ret = []
    pkgs = (d.getVar("PACKAGES") or "").split()
    vars = (d.getVar("PACKAGEVARS") or "").split()
    for p in pkgs:
        for v in vars:
            ret.append(v + "_" + p)

        # Ensure that changes to INCOMPATIBLE_LICENSE re-run do_package for
        # affected recipes.
        ret.append('LICENSE_EXCLUSION-%s' % p)
    return " ".join(ret)
}


python generate_sstatefn () {
def generate_sstatefn(spec, hash, d):
    if not hash:
        hash = "INVALID"
    return hash[:2] + "/" + spec + hash
}


python get_boot_dependencies () {
def get_boot_dependencies(d):
    """
    Return the dependencies from boot tasks
    """

    depends = []
    boot_depends_string = ""
    taskdepdata = d.getVar("BB_TASKDEPDATA", False)
    # Only bootimg and bootdirectdisk include the depends flag
    boot_tasks = ["do_bootimg", "do_bootdirectdisk",]

    for task in boot_tasks:
        boot_depends_string = "%s %s" % (boot_depends_string,
                d.getVarFlag(task, "depends") or "")
    boot_depends = [dep.split(":")[0] for dep
                in boot_depends_string.split()
                if not dep.split(":")[0].endswith("-native")]
    for dep in boot_depends:
        info_file = os.path.join(d.getVar("LICENSE_DIRECTORY"),
                dep, "recipeinfo")
        # If the recipe and dependency name is the same
        if os.path.exists(info_file):
            depends.append(dep)
        # We need to search for the provider of the dependency
        else:
            for taskdep in taskdepdata.values():
                # The fifth field contains what the task provides
                if dep in taskdep[4]:
                    info_file = os.path.join(
                            d.getVar("LICENSE_DIRECTORY"),
                            taskdep[0], "recipeinfo")
                    if os.path.exists(info_file):
                        depends.append(taskdep[0])
                        break
    return depends}


python get_conffiles () {
def get_conffiles(pkg, d):
    pkgdest = d.getVar('PKGDEST')
    root = os.path.join(pkgdest, pkg)
    cwd = os.getcwd()
    os.chdir(root)

    conffiles = d.getVar('CONFFILES_%s' % pkg);
    if conffiles == None:
        conffiles = d.getVar('CONFFILES')
    if conffiles == None:
        conffiles = ""
    conffiles = conffiles.split()
    conf_orig_list = files_from_filevars(conffiles)[0]

    # Remove links and directories from conf_orig_list to get conf_list which only contains normal files
    conf_list = []
    for f in conf_orig_list:
        if os.path.isdir(f):
            continue
        if os.path.islink(f):
            continue
        if not os.path.exists(f):
            continue
        conf_list.append(f)

    # Remove the leading './'
    for i in range(0, len(conf_list)):
        conf_list[i] = conf_list[i][1:]

    os.chdir(cwd)
    return conf_list
}


python get_current_buildtools () {
def get_current_buildtools(d):
    """Get the file name of the current buildtools installer"""
    import glob
    btfiles = glob.glob(os.path.join(d.getVar('SDK_DEPLOY'), '*-buildtools-nativesdk-standalone-*.sh'))
    btfiles.sort(key=os.path.getctime)
    return os.path.basename(btfiles[-1])
}


python get_deployed_dependencies () {
def get_deployed_dependencies(d):
    """
    Get all the deployed dependencies of an image
    """

    deploy = {}
    # Get all the dependencies for the current task (rootfs).
    # Also get EXTRA_IMAGEDEPENDS because the bootloader is
    # usually in this var and not listed in rootfs.
    # At last, get the dependencies from boot classes because
    # it might contain the bootloader.
    taskdata = d.getVar("BB_TASKDEPDATA", False)
    depends = list(set([dep[0] for dep
                    in list(taskdata.values())
                    if not dep[0].endswith("-native")]))
    extra_depends = d.getVar("EXTRA_IMAGEDEPENDS")
    boot_depends = get_boot_dependencies(d)
    depends.extend(extra_depends.split())
    depends.extend(boot_depends)
    depends = list(set(depends))

    # To verify what was deployed it checks the rootfs dependencies against
    # the SSTATE_MANIFESTS for "deploy" task.
    # The manifest file name contains the arch. Because we are not running
    # in the recipe context it is necessary to check every arch used.
    sstate_manifest_dir = d.getVar("SSTATE_MANIFESTS")
    sstate_archs = d.getVar("SSTATE_ARCHS")
    extra_archs = d.getVar("PACKAGE_EXTRA_ARCHS")
    archs = list(set(("%s %s" % (sstate_archs, extra_archs)).split()))
    for dep in depends:
        # Some recipes have an arch on their own, so we try that first.
        special_arch = d.getVar("PACKAGE_ARCH_pn-%s" % dep)
        if special_arch:
            sstate_manifest_file = os.path.join(sstate_manifest_dir,
                    "manifest-%s-%s.deploy" % (special_arch, dep))
            if os.path.exists(sstate_manifest_file):
                deploy[dep] = sstate_manifest_file
                continue

        for arch in archs:
            sstate_manifest_file = os.path.join(sstate_manifest_dir,
                    "manifest-%s-%s.deploy" % (arch, dep))
            if os.path.exists(sstate_manifest_file):
                deploy[dep] = sstate_manifest_file
                break

    return deploy}


python get_deployed_files () {
def get_deployed_files(man_file):
    """
    Get the files deployed from the sstate manifest
    """

    dep_files = []
    excluded_files = []
    with open(man_file, "r") as manifest:
        all_files = manifest.read()
    for f in all_files.splitlines():
        if ((not (os.path.islink(f) or os.path.isdir(f))) and
                not os.path.basename(f) in excluded_files):
            dep_files.append(os.path.basename(f))
    return dep_files
}


python get_distro_version () {
def get_distro_version(d):
    import subprocess
    os.chdir(d.get("TOPDIR"))
    version = None
    if os.path.exists(".git"):
        cmd = ["git", "describe", "--dirty", "--always", "--tags"]
        p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        version,err = p.communicate()

        if p.returncode != 0 or err:
            version = None

    if version is None and os.path.exists("VERSION"):
        version = open("VERSION", "rb").readline()

    if not version:
        version = b"unknown"

    return str(version.strip().decode())
}


python get_ext_sdk_depends () {
def get_ext_sdk_depends(d):
    # Note: the deps varflag is a list not a string, so we need to specify expand=False
    deps = d.getVarFlag('do_image_complete', 'deps', False)
    pn = d.getVar('PN')
    deplist = ['%s:%s' % (pn, dep) for dep in deps]
    tasklist = bb.build.tasksbetween('do_image_complete', 'do_build', d)
    tasklist.append('do_rootfs')
    for task in tasklist:
        deplist.extend((d.getVarFlag(task, 'depends') or '').split())
    return ' '.join(deplist)
}


python get_filesystem_id () {
def get_filesystem_id(path):
    status, result = oe.utils.getstatusoutput("stat -f -c '%s' %s" % ("%t", path))
    if status == 0:
        return result
    else:
        bb.warn("Can't get the filesystem id of: %s" % path)
        return None
}


python get_layers_branch_rev () {
def get_layers_branch_rev(d):
    layers = (d.getVar("BBLAYERS") or "").split()
    layers_branch_rev = ["%-17s = \"%s:%s\"" % (os.path.basename(i), \
        base_get_metadata_git_branch(i, None).strip(), \
        base_get_metadata_git_revision(i, None)) \
            for i in layers]
    i = len(layers_branch_rev)-1
    p1 = layers_branch_rev[i].find("=")
    s1 = layers_branch_rev[i][p1:]
    while i > 0:
        p2 = layers_branch_rev[i-1].find("=")
        s2= layers_branch_rev[i-1][p2:]
        if s1 == s2:
            layers_branch_rev[i-1] = layers_branch_rev[i-1][0:p2]
            i -= 1
        else:
            i -= 1
            p1 = layers_branch_rev[i].find("=")
            s1= layers_branch_rev[i][p1:]
    return layers_branch_rev

}


python get_libc_locales_dependencies () {
def get_libc_locales_dependencies(d):
    if 'libc-locales' in (d.getVar('DISTRO_FEATURES') or '').split() :
        return d.getVar('LIBC_LOCALE_DEPENDENCIES') or ''
    else:
        return ''}


python get_lic_checksum_file_list () {
def get_lic_checksum_file_list(d):
    filelist = []
    lic_files = d.getVar("LIC_FILES_CHKSUM") or ''
    tmpdir = d.getVar("TMPDIR")
    s = d.getVar("S")
    b = d.getVar("B")
    workdir = d.getVar("WORKDIR")

    urls = lic_files.split()
    for url in urls:
        # We only care about items that are absolute paths since
        # any others should be covered by SRC_URI.
        try:
            path = bb.fetch.decodeurl(url)[2]
            if not path:
                raise bb.fetch.MalformedUrl(url)

            if path[0] == '/':
                if path.startswith((tmpdir, s, b, workdir)):
                    continue
                filelist.append(path + ":" + str(os.path.exists(path)))
        except bb.fetch.MalformedUrl:
            bb.fatal(d.getVar('PN') + ": LIC_FILES_CHKSUM contains an invalid URL: " + url)
    return " ".join(filelist)
}


python get_multilib_datastore () {
def get_multilib_datastore(variant, d):
    localdata = bb.data.createCopy(d)
    overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + variant
    localdata.setVar("OVERRIDES", overrides)
    localdata.setVar("MLPREFIX", variant + "-")
    return localdata
}


python get_package_additional_metadata () {
def get_package_additional_metadata (pkg_type, d):
    base_key = "PACKAGE_ADD_METADATA"
    for key in ("%s_%s" % (base_key, pkg_type.upper()), base_key):
        if d.getVar(key, False) is None:
            continue
        d.setVarFlag(key, "type", "list")
        if d.getVarFlag(key, "separator") is None:
            d.setVarFlag(key, "separator", "\\n")
        metadata_fields = [field.strip() for field in oe.data.typed_value(key, d)]
        return "\n".join(metadata_fields).strip()
}


python get_package_mapping () {
def get_package_mapping (pkg, basepkg, d):
    import oe.packagedata

    data = oe.packagedata.read_subpkgdata(pkg, d)
    key = "PKG_%s" % pkg

    if key in data:
        # Have to avoid undoing the write_extra_pkgs(global_variants...)
        if bb.data.inherits_class('allarch', d) and data[key] == basepkg:
            return pkg
        return data[key]

    return pkg
}


python get_recipe_info () {
def get_recipe_info(d):
    info = {}
    info["PV"] = d.getVar("PV")
    info["PR"] = d.getVar("PR")
    info["LICENSE"] = d.getVar("LICENSE")
    return info
}


python get_rootfs_size () {
def get_rootfs_size(d):
    import subprocess

    rootfs_alignment = int(d.getVar('IMAGE_ROOTFS_ALIGNMENT'))
    overhead_factor = float(d.getVar('IMAGE_OVERHEAD_FACTOR'))
    rootfs_req_size = int(d.getVar('IMAGE_ROOTFS_SIZE'))
    rootfs_extra_space = eval(d.getVar('IMAGE_ROOTFS_EXTRA_SPACE'))
    rootfs_maxsize = d.getVar('IMAGE_ROOTFS_MAXSIZE')
    image_fstypes = d.getVar('IMAGE_FSTYPES') or ''
    initramfs_fstypes = d.getVar('INITRAMFS_FSTYPES') or ''
    initramfs_maxsize = d.getVar('INITRAMFS_MAXSIZE')

    output = subprocess.check_output(['du', '-ks',
                                      d.getVar('IMAGE_ROOTFS')])
    size_kb = int(output.split()[0])
    base_size = size_kb * overhead_factor
    base_size = max(base_size, rootfs_req_size) + rootfs_extra_space

    if base_size != int(base_size):
        base_size = int(base_size + 1)
    else:
        base_size = int(base_size)

    base_size += rootfs_alignment - 1
    base_size -= base_size % rootfs_alignment

    # Do not check image size of the debugfs image. This is not supposed
    # to be deployed, etc. so it doesn't make sense to limit the size
    # of the debug.
    if (d.getVar('IMAGE_BUILDING_DEBUGFS') or "") == "true":
        return base_size

    # Check the rootfs size against IMAGE_ROOTFS_MAXSIZE (if set)
    if rootfs_maxsize:
        rootfs_maxsize_int = int(rootfs_maxsize)
        if base_size > rootfs_maxsize_int:
            bb.fatal("The rootfs size %d(K) overrides IMAGE_ROOTFS_MAXSIZE: %d(K)" % \
                (base_size, rootfs_maxsize_int))

    # Check the initramfs size against INITRAMFS_MAXSIZE (if set)
    if image_fstypes == initramfs_fstypes != ''  and initramfs_maxsize:
        initramfs_maxsize_int = int(initramfs_maxsize)
        if base_size > initramfs_maxsize_int:
            bb.error("The initramfs size %d(K) overrides INITRAMFS_MAXSIZE: %d(K)" % \
                (base_size, initramfs_maxsize_int))
            bb.error("You can set INITRAMFS_MAXSIZE a larger value. Usually, it should")
            bb.fatal("be less than 1/2 of ram size, or you may fail to boot it.\n")
    return base_size
}


python get_sdk_ext_rdepends () {
def get_sdk_ext_rdepends(d):
    localdata = d.createCopy()
    localdata.appendVar('OVERRIDES', ':task-populate-sdk-ext')
    return localdata.getVarFlag('do_populate_sdk', 'rdepends')
}


python get_sdk_install_targets () {
def get_sdk_install_targets(d, images_only=False):
    sdk_install_targets = ''
    if images_only or d.getVar('SDK_EXT_TYPE') != 'minimal':
        sdk_install_targets = d.getVar('SDK_TARGETS')

        depd = d.getVar('BB_TASKDEPDATA', False)
        tasklist = bb.build.tasksbetween('do_image_complete', 'do_build', d)
        tasklist.remove('do_build')
        for v in depd.values():
            if v[1] in tasklist:
                if v[0] not in sdk_install_targets:
                    sdk_install_targets += ' {}'.format(v[0])

    if not images_only:
        if d.getVar('SDK_INCLUDE_PKGDATA') == '1':
            sdk_install_targets += ' meta-world-pkgdata:do_allpackagedata'
        if d.getVar('SDK_INCLUDE_TOOLCHAIN') == '1':
            sdk_install_targets += ' meta-extsdk-toolchain:do_populate_sysroot'

    return sdk_install_targets
}


python get_sdk_required_utilities () {
def get_sdk_required_utilities(buildtools_fn, d):
    """Find required utilities that aren't provided by the buildtools"""
    sanity_required_utilities = (d.getVar('SANITY_REQUIRED_UTILITIES') or '').split()
    sanity_required_utilities.append(d.expand('${BUILD_PREFIX}gcc'))
    sanity_required_utilities.append(d.expand('${BUILD_PREFIX}g++'))
    buildtools_installer = os.path.join(d.getVar('SDK_DEPLOY'), buildtools_fn)
    filelist, _ = bb.process.run('%s -l' % buildtools_installer)
    localdata = bb.data.createCopy(d)
    localdata.setVar('SDKPATH', '.')
    sdkpathnative = localdata.getVar('SDKPATHNATIVE')
    sdkbindirs = [localdata.getVar('bindir_nativesdk'),
                  localdata.getVar('sbindir_nativesdk'),
                  localdata.getVar('base_bindir_nativesdk'),
                  localdata.getVar('base_sbindir_nativesdk')]
    for line in filelist.splitlines():
        splitline = line.split()
        if len(splitline) > 5:
            fn = splitline[5]
            if not fn.startswith('./'):
                fn = './%s' % fn
            if fn.startswith(sdkpathnative):
                relpth = '/' + os.path.relpath(fn, sdkpathnative)
                for bindir in sdkbindirs:
                    if relpth.startswith(bindir):
                        relpth = os.path.relpath(relpth, bindir)
                        if relpth in sanity_required_utilities:
                            sanity_required_utilities.remove(relpth)
                        break
    return ' '.join(sanity_required_utilities)
}


python imagetypes_getdepends () {
def imagetypes_getdepends(d):
    def adddep(depstr, deps):
        for d in (depstr or "").split():
            # Add task dependency if not already present
            if ":" not in d:
                d += ":do_populate_sysroot"
            deps.add(d)

    # Take a type in the form of foo.bar.car and split it into the items
    # needed for the image deps "foo", and the conversion deps ["bar", "car"]
    def split_types(typestring):
        types = typestring.split(".")
        return types[0], types[1:]

    fstypes = set((d.getVar('IMAGE_FSTYPES') or "").split())
    fstypes |= set((d.getVar('IMAGE_FSTYPES_DEBUGFS') or "").split())

    deps = set()
    for typestring in fstypes:
        basetype, resttypes = split_types(typestring)
        adddep(d.getVar('IMAGE_DEPENDS_%s' % basetype) , deps)

        for typedepends in (d.getVar("IMAGE_TYPEDEP_%s" % basetype) or "").split():
            base, rest = split_types(typedepends)
            adddep(d.getVar('IMAGE_DEPENDS_%s' % base) , deps)
            resttypes += rest

        for ctype in resttypes:
            adddep(d.getVar("CONVERSION_DEPENDS_%s" % ctype), deps)
            adddep(d.getVar("COMPRESS_DEPENDS_%s" % ctype), deps)

    # Sort the set so that ordering is consistant
    return " ".join(sorted(deps))
}


python incompatible_license () {
def incompatible_license(d, dont_want_licenses, package=None):
    """
    This function checks if a recipe has only incompatible licenses. It also
    take into consideration 'or' operand.  dont_want_licenses should be passed
    as canonical (SPDX) names.
    """
    import oe.license
    license = d.getVar("LICENSE_%s" % package) if package else None
    if not license:
        license = d.getVar('LICENSE')

    # Handles an "or" or two license sets provided by
    # flattened_licenses(), pick one that works if possible.
    def choose_lic_set(a, b):
        return a if all(oe.license.license_ok(canonical_license(d, lic),
                            dont_want_licenses) for lic in a) else b

    try:
        licenses = oe.license.flattened_licenses(license, choose_lic_set)
    except oe.license.LicenseError as exc:
        bb.fatal('%s: %s' % (d.getVar('P'), exc))
    return any(not oe.license.license_ok(canonical_license(d, l), \
		dont_want_licenses) for l in licenses)
}


python incompatible_license_contains () {
def incompatible_license_contains(license, truevalue, falsevalue, d):
    license = canonical_license(d, license)
    bad_licenses = (d.getVar('INCOMPATIBLE_LICENSE') or "").split()
    bad_licenses = expand_wildcard_licenses(d, bad_licenses)
    return truevalue if license in bad_licenses else falsevalue
}


python is_machine_specific () {
def is_machine_specific(d):
    """Determine whether the current recipe is machine specific"""
    machinepaths = set(machine_paths(d))
    srcuri = d.getVar("SRC_URI").split()
    for url in srcuri:
        fetcher = bb.fetch2.Fetch([srcuri], d)
        if url.startswith("file://"):
            if any(fetcher.localpath(url).startswith(mp + "/") for mp in machinepaths):
                return True
}


python legitimize_package_name () {
def legitimize_package_name(s):
    """
    Make sure package names are legitimate strings
    """
    import re

    def fixutf(m):
        cp = m.group(1)
        if cp:
            return ('\\u%s' % cp).encode('latin-1').decode('unicode_escape')

    # Handle unicode codepoints encoded as <U0123>, as in glibc locale files.
    s = re.sub('<U([0-9A-Fa-f]{1,4})>', fixutf, s)

    # Remaining package name validity fixes
    return s.lower().replace('_', '-').replace('@', '+').replace(',', '+').replace('/', '-')
}


python license_create_manifest () {
    import oe.packagedata
    from oe.rootfs import image_list_installed_packages

    build_images_from_feeds = d.getVar('BUILD_IMAGES_FROM_FEEDS')
    if build_images_from_feeds == "1":
        return 0

    pkg_dic = {}
    for pkg in sorted(image_list_installed_packages(d)):
        pkg_info = os.path.join(d.getVar('PKGDATA_DIR'),
                                'runtime-reverse', pkg)
        pkg_name = os.path.basename(os.readlink(pkg_info))

        pkg_dic[pkg_name] = oe.packagedata.read_pkgdatafile(pkg_info)
        if not "LICENSE" in pkg_dic[pkg_name].keys():
            pkg_lic_name = "LICENSE_" + pkg_name
            pkg_dic[pkg_name]["LICENSE"] = pkg_dic[pkg_name][pkg_lic_name]

    rootfs_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY'),
                        d.getVar('IMAGE_NAME'), 'license.manifest')
    write_license_files(d, rootfs_license_manifest, pkg_dic)
}


python license_deployed_manifest () {
def license_deployed_manifest(d):
    """
    Write the license manifest for the deployed recipes.
    The deployed recipes usually includes the bootloader
    and extra files to boot the target.
    """

    dep_dic = {}
    man_dic = {}
    lic_dir = d.getVar("LICENSE_DIRECTORY")

    dep_dic = get_deployed_dependencies(d)
    for dep in dep_dic.keys():
        man_dic[dep] = {}
        # It is necessary to mark this will be used for image manifest
        man_dic[dep]["IMAGE_MANIFEST"] = True
        man_dic[dep]["PN"] = dep
        man_dic[dep]["FILES"] = \
            " ".join(get_deployed_files(dep_dic[dep]))
        with open(os.path.join(lic_dir, dep, "recipeinfo"), "r") as f:
            for line in f.readlines():
                key,val = line.split(": ", 1)
                man_dic[dep][key] = val[:-1]

    lic_manifest_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
                                    d.getVar('IMAGE_NAME'))
    bb.utils.mkdirhier(lic_manifest_dir)
    image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest')
    write_license_files(d, image_license_manifest, man_dic)
}


python lsb_distro_identifier () {
def lsb_distro_identifier(d):
    adjust = d.getVar('LSB_DISTRO_ADJUST')
    adjust_func = None
    if adjust:
        try:
            adjust_func = globals()[adjust]
        except KeyError:
            pass
    return oe.lsb.distro_identifier(adjust_func)
}


python machine_paths () {
def machine_paths(d):
    """List any existing machine specific filespath directories"""
    machine = d.getVar("MACHINE")
    filespathpkg = d.getVar("FILESPATHPKG").split(":")
    for basepath in d.getVar("FILESPATHBASE").split(":"):
        for pkgpath in filespathpkg:
            machinepath = os.path.join(basepath, pkgpath, machine)
            if os.path.isdir(machinepath):
                yield machinepath
}


python map_kernel_arch () {
def map_kernel_arch(a, d):
    import re

    valid_archs = d.getVar('valid_archs').split()

    if   re.match('(i.86|athlon|x86.64)$', a):  return 'x86'
    elif re.match('armeb$', a):                 return 'arm'
    elif re.match('aarch64$', a):               return 'arm64'
    elif re.match('aarch64_be$', a):            return 'arm64'
    elif re.match('mips(isa|)(32|64|)(r6|)(el|)$', a):      return 'mips'
    elif re.match('p(pc|owerpc)(|64)', a):      return 'powerpc'
    elif re.match('sh(3|4)$', a):               return 'sh'
    elif re.match('bfin', a):                   return 'blackfin'
    elif re.match('microblazee[bl]', a):        return 'microblaze'
    elif a in valid_archs:                      return a
    else:
        if not d.getVar("TARGET_OS").startswith("linux"):
            return a
        bb.error("cannot map '%s' to a linux kernel architecture" % a)
}


python map_uboot_arch () {
def map_uboot_arch(a, d):
    import re

    if   re.match('p(pc|owerpc)(|64)', a): return 'ppc'
    elif re.match('i.86$', a): return 'x86'
    return a
}


python mapping_rename_hook () {
def mapping_rename_hook(d):
    """
    Rewrite variables to account for package renaming in things
    like debian.bbclass or manual PKG variable name changes
    """
    pkg = d.getVar("PKG")
    runtime_mapping_rename("RDEPENDS", pkg, d)
    runtime_mapping_rename("RRECOMMENDS", pkg, d)
    runtime_mapping_rename("RSUGGESTS", pkg, d)}


python multilib_pkg_extend () {
def multilib_pkg_extend(d, pkg):
    variants = (d.getVar("MULTILIB_VARIANTS") or "").split()
    if not variants:
        return pkg
    pkgs = pkg
    for v in variants:
        pkgs = pkgs + " " + v + "-" + pkg
    return pkgs
}


python oe_filter () {
def oe_filter(f, str, d):
    return oe.utils.str_filter(f, str, d)
}


python oe_filter_out () {
def oe_filter_out(f, str, d):
    return oe.utils.str_filter_out(f, str, d)
}


python oe_import () {
def oe_import(d):
    import sys

    bbpath = d.getVar("BBPATH").split(":")
    sys.path[0:0] = [os.path.join(dir, "lib") for dir in bbpath]

    def inject(name, value):
        """Make a python object accessible from the metadata"""
        if hasattr(bb.utils, "_context"):
            bb.utils._context[name] = value
        else:
            __builtins__[name] = value

    import oe.data
    for toimport in oe.data.typed_value("OE_IMPORTS", d):
        imported = __import__(toimport)
        inject(toimport.split(".", 1)[0], imported)

    return ""
}


python oe_terminal () {
def oe_terminal(command, title, d):
    import oe.data
    import oe.terminal

    envdata = bb.data.init()

    for v in os.environ:
        envdata.setVar(v, os.environ[v])
        envdata.setVarFlag(v, 'export', '1')

    for export in oe.data.typed_value('OE_TERMINAL_EXPORTS', d):
        value = d.getVar(export)
        if value is not None:
            os.environ[export] = str(value)
            envdata.setVar(export, str(value))
            envdata.setVarFlag(export, 'export', '1')
        if export == "PSEUDO_DISABLED":
            if "PSEUDO_UNLOAD" in os.environ:
                del os.environ["PSEUDO_UNLOAD"]
            envdata.delVar("PSEUDO_UNLOAD")

    # Add in all variables from the user's original environment which
    # haven't subsequntly been set/changed
    origbbenv = d.getVar("BB_ORIGENV", False) or {}
    for key in origbbenv:
        if key in envdata:
            continue
        value = origbbenv.getVar(key)
        if value is not None:
            os.environ[key] = str(value)
            envdata.setVar(key, str(value))
            envdata.setVarFlag(key, 'export', '1')

    # Use original PATH as a fallback
    path = d.getVar('PATH') + ":" + origbbenv.getVar('PATH')
    os.environ['PATH'] = path
    envdata.setVar('PATH', path)

    # A complex PS1 might need more escaping of chars.
    # Lets not export PS1 instead.
    envdata.delVar("PS1")

    # Replace command with an executable wrapper script
    command = emit_terminal_func(command, envdata, d)

    terminal = oe.data.typed_value('OE_TERMINAL', d).lower()
    if terminal == 'none':
        bb.fatal('Devshell usage disabled with OE_TERMINAL')
    elif terminal != 'auto':
        try:
            oe.terminal.spawn(terminal, command, title, None, d)
            return
        except oe.terminal.UnsupportedTerminal:
            bb.warn('Unsupported terminal "%s", defaulting to "auto"' %
                    terminal)
        except oe.terminal.ExecutionError as exc:
            bb.fatal('Unable to spawn terminal %s: %s' % (terminal, exc))

    try:
        oe.terminal.spawn_preferred(command, title, None, d)
    except oe.terminal.NoSupportedTerminals as nosup:
        nosup.terms.remove("false")
        cmds = '\n\t'.join(nosup.terms).replace("{command}",
                    "do_terminal").replace("{title}", title)
        bb.fatal('No valid terminal found, unable to open devshell.\n' +
                'Tried the following commands:\n\t%s' % cmds)
    except oe.terminal.ExecutionError as exc:
        bb.fatal('Unable to spawn terminal %s: %s' % (terminal, exc))
}


python oe_terminal_prioritized () {
def oe_terminal_prioritized():
    import oe.terminal
    return " ".join(o.name for o in oe.terminal.prioritized())
}


python oecore_update_bblayers () {
    # bblayers.conf is out of date, so see if we can resolve that

    current_lconf = int(d.getVar('LCONF_VERSION'))
    lconf_version = int(d.getVar('LAYER_CONF_VERSION'))

    failmsg = """Your version of bblayers.conf has the wrong LCONF_VERSION (has ${LCONF_VERSION}, expecting ${LAYER_CONF_VERSION}).
Please compare your file against bblayers.conf.sample and merge any changes before continuing.
"${SANITY_DIFF_TOOL} conf/bblayers.conf ${SANITY_BBLAYERCONF_SAMPLE}"

is a good way to visualise the changes."""
    failmsg = d.expand(failmsg)

    if not current_lconf:
        raise NotImplementedError(failmsg)

    lines = []

    if current_lconf < 4:
        raise NotImplementedError(failmsg)

    bblayers_fn = bblayers_conf_file(d)
    lines = sanity_conf_read(bblayers_fn)

    if current_lconf == 4 and lconf_version > 4:
        topdir_var = '$' + '{TOPDIR}'
        index, bbpath_line = sanity_conf_find_line('BBPATH', lines)
        if bbpath_line:
            start = bbpath_line.find('"')
            if start != -1 and (len(bbpath_line) != (start + 1)):
                if bbpath_line[start + 1] == '"':
                    lines[index] = (bbpath_line[:start + 1] +
                                    topdir_var + bbpath_line[start + 1:])
                else:
                    if not topdir_var in bbpath_line:
                        lines[index] = (bbpath_line[:start + 1] +
                                    topdir_var + ':' + bbpath_line[start + 1:])
            else:
                raise NotImplementedError(failmsg)
        else:
            index, bbfiles_line = sanity_conf_find_line('BBFILES', lines)
            if bbfiles_line:
                lines.insert(index, 'BBPATH = "' + topdir_var + '"\n')
            else:
                raise NotImplementedError(failmsg)

        current_lconf += 1
        sanity_conf_update(bblayers_fn, lines, 'LCONF_VERSION', current_lconf)
        bb.note("Your conf/bblayers.conf has been automatically updated.")
        return

    elif current_lconf == 5 and lconf_version > 5:
        # Null update, to avoid issues with people switching between poky and other distros
        current_lconf = 6
        sanity_conf_update(bblayers_fn, lines, 'LCONF_VERSION', current_lconf)
        bb.note("Your conf/bblayers.conf has been automatically updated.")
        return

        status.addresult()

    elif current_lconf == 6 and lconf_version > 6:
        # Handle rename of meta-yocto -> meta-poky
        # This marks the start of separate version numbers but code is needed in OE-Core
        # for the migration, one last time.
        layers = d.getVar('BBLAYERS').split()
        layers = [ os.path.basename(path) for path in layers ]
        if 'meta-yocto' in layers:
            found = False
            while True:
                index, meta_yocto_line = sanity_conf_find_line(r'.*meta-yocto[\'"\s\n]', lines)
                if meta_yocto_line:
                    lines[index] = meta_yocto_line.replace('meta-yocto', 'meta-poky')
                    found = True
                else:
                    break
            if not found:
                raise NotImplementedError(failmsg)
            index, meta_yocto_line = sanity_conf_find_line('LCONF_VERSION.*\n', lines)
            if meta_yocto_line:
                lines[index] = 'POKY_BBLAYERS_CONF_VERSION = "1"\n'
            else:
                raise NotImplementedError(failmsg)
            with open(bblayers_fn, "w") as f:
                f.write(''.join(lines))
            bb.note("Your conf/bblayers.conf has been automatically updated.")
            return
        current_lconf += 1
        sanity_conf_update(bblayers_fn, lines, 'LCONF_VERSION', current_lconf)
        bb.note("Your conf/bblayers.conf has been automatically updated.")
        return

    raise NotImplementedError(failmsg)
}


python oecore_update_localconf () {
    # Check we are using a valid local.conf
    current_conf  = d.getVar('CONF_VERSION')
    conf_version =  d.getVar('LOCALCONF_VERSION')

    failmsg = """Your version of local.conf was generated from an older/newer version of
local.conf.sample and there have been updates made to this file. Please compare the two
files and merge any changes before continuing.

Matching the version numbers will remove this message.

\"${SANITY_DIFF_TOOL} conf/local.conf ${SANITY_LOCALCONF_SAMPLE}\"

is a good way to visualise the changes."""
    failmsg = d.expand(failmsg)

    raise NotImplementedError(failmsg)
}


python oecore_update_siteconf () {
    # If we have a site.conf, check it's valid
    current_sconf = d.getVar('SCONF_VERSION')
    sconf_version = d.getVar('SITE_CONF_VERSION')

    failmsg = """Your version of site.conf was generated from an older version of
site.conf.sample and there have been updates made to this file. Please compare the two
files and merge any changes before continuing.

Matching the version numbers will remove this message.

\"${SANITY_DIFF_TOOL} conf/site.conf ${SANITY_SITECONF_SAMPLE}\"

is a good way to visualise the changes."""
    failmsg = d.expand(failmsg)

    raise NotImplementedError(failmsg)
}


python package_depchains () {
    """
    For a given set of prefix and postfix modifiers, make those packages
    RRECOMMENDS on the corresponding packages for its RDEPENDS.

    Example:  If package A depends upon package B, and A's .bb emits an
    A-dev package, this would make A-dev Recommends: B-dev.

    If only one of a given suffix is specified, it will take the RRECOMMENDS
    based on the RDEPENDS of *all* other packages. If more than one of a given
    suffix is specified, its will only use the RDEPENDS of the single parent
    package.
    """

    packages  = d.getVar('PACKAGES')
    postfixes = (d.getVar('DEPCHAIN_POST') or '').split()
    prefixes  = (d.getVar('DEPCHAIN_PRE') or '').split()

    def pkg_adddeprrecs(pkg, base, suffix, getname, depends, d):

        #bb.note('depends for %s is %s' % (base, depends))
        rreclist = bb.utils.explode_dep_versions2(d.getVar('RRECOMMENDS_' + pkg) or "")

        for depend in depends:
            if depend.find('-native') != -1 or depend.find('-cross') != -1 or depend.startswith('virtual/'):
                #bb.note("Skipping %s" % depend)
                continue
            if depend.endswith('-dev'):
                depend = depend[:-4]
            if depend.endswith('-dbg'):
                depend = depend[:-4]
            pkgname = getname(depend, suffix)
            #bb.note("Adding %s for %s" % (pkgname, depend))
            if pkgname not in rreclist and pkgname != pkg:
                rreclist[pkgname] = []

        #bb.note('setting: RRECOMMENDS_%s=%s' % (pkg, ' '.join(rreclist)))
        d.setVar('RRECOMMENDS_%s' % pkg, bb.utils.join_deps(rreclist, commasep=False))

    def pkg_addrrecs(pkg, base, suffix, getname, rdepends, d):

        #bb.note('rdepends for %s is %s' % (base, rdepends))
        rreclist = bb.utils.explode_dep_versions2(d.getVar('RRECOMMENDS_' + pkg) or "")

        for depend in rdepends:
            if depend.find('virtual-locale-') != -1:
                #bb.note("Skipping %s" % depend)
                continue
            if depend.endswith('-dev'):
                depend = depend[:-4]
            if depend.endswith('-dbg'):
                depend = depend[:-4]
            pkgname = getname(depend, suffix)
            #bb.note("Adding %s for %s" % (pkgname, depend))
            if pkgname not in rreclist and pkgname != pkg:
                rreclist[pkgname] = []

        #bb.note('setting: RRECOMMENDS_%s=%s' % (pkg, ' '.join(rreclist)))
        d.setVar('RRECOMMENDS_%s' % pkg, bb.utils.join_deps(rreclist, commasep=False))

    def add_dep(list, dep):
        if dep not in list:
            list.append(dep)

    depends = []
    for dep in bb.utils.explode_deps(d.getVar('DEPENDS') or ""):
        add_dep(depends, dep)

    rdepends = []
    for pkg in packages.split():
        for dep in bb.utils.explode_deps(d.getVar('RDEPENDS_' + pkg) or ""):
            add_dep(rdepends, dep)

    #bb.note('rdepends is %s' % rdepends)

    def post_getname(name, suffix):
        return '%s%s' % (name, suffix)
    def pre_getname(name, suffix):
        return '%s%s' % (suffix, name)

    pkgs = {}
    for pkg in packages.split():
        for postfix in postfixes:
            if pkg.endswith(postfix):
                if not postfix in pkgs:
                    pkgs[postfix] = {}
                pkgs[postfix][pkg] = (pkg[:-len(postfix)], post_getname)

        for prefix in prefixes:
            if pkg.startswith(prefix):
                if not prefix in pkgs:
                    pkgs[prefix] = {}
                pkgs[prefix][pkg] = (pkg[:-len(prefix)], pre_getname)

    if "-dbg" in pkgs:
        pkglibdeps = read_libdep_files(d)
        pkglibdeplist = []
        for pkg in pkglibdeps:
            for k in pkglibdeps[pkg]:
                add_dep(pkglibdeplist, k)
        dbgdefaultdeps = ((d.getVar('DEPCHAIN_DBGDEFAULTDEPS') == '1') or (bb.data.inherits_class('packagegroup', d)))

    for suffix in pkgs:
        for pkg in pkgs[suffix]:
            if d.getVarFlag('RRECOMMENDS_' + pkg, 'nodeprrecs'):
                continue
            (base, func) = pkgs[suffix][pkg]
            if suffix == "-dev":
                pkg_adddeprrecs(pkg, base, suffix, func, depends, d)
            elif suffix == "-dbg":
                if not dbgdefaultdeps:
                    pkg_addrrecs(pkg, base, suffix, func, pkglibdeplist, d)
                    continue
            if len(pkgs[suffix]) == 1:
                pkg_addrrecs(pkg, base, suffix, func, rdepends, d)
            else:
                rdeps = []
                for dep in bb.utils.explode_deps(d.getVar('RDEPENDS_' + base) or ""):
                    add_dep(rdeps, dep)
                pkg_addrrecs(pkg, base, suffix, func, rdeps, d)
}


python package_do_filedeps () {
    if d.getVar('SKIP_FILEDEPS') == '1':
        return

    pkgdest = d.getVar('PKGDEST')
    packages = d.getVar('PACKAGES')
    rpmdeps = d.getVar('RPMDEPS')

    def chunks(files, n):
        return [files[i:i+n] for i in range(0, len(files), n)]

    pkglist = []
    for pkg in packages.split():
        if d.getVar('SKIP_FILEDEPS_' + pkg) == '1':
            continue
        if pkg.endswith('-dbg') or pkg.endswith('-doc') or pkg.find('-locale-') != -1 or pkg.find('-localedata-') != -1 or pkg.find('-gconv-') != -1 or pkg.find('-charmap-') != -1 or pkg.startswith('kernel-module-'):
            continue
        for files in chunks(pkgfiles[pkg], 100):
            pkglist.append((pkg, files, rpmdeps, pkgdest))

    processed = oe.utils.multiprocess_exec( pkglist, oe.package.filedeprunner)

    provides_files = {}
    requires_files = {}

    for result in processed:
        (pkg, provides, requires) = result

        if pkg not in provides_files:
            provides_files[pkg] = []
        if pkg not in requires_files:
            requires_files[pkg] = []

        for file in provides:
            provides_files[pkg].append(file)
            key = "FILERPROVIDES_" + file + "_" + pkg
            d.setVar(key, " ".join(provides[file]))

        for file in requires:
            requires_files[pkg].append(file)
            key = "FILERDEPENDS_" + file + "_" + pkg
            d.setVar(key, " ".join(requires[file]))

    for pkg in requires_files:
        d.setVar("FILERDEPENDSFLIST_" + pkg, " ".join(requires_files[pkg]))
    for pkg in provides_files:
        d.setVar("FILERPROVIDESFLIST_" + pkg, " ".join(provides_files[pkg]))
}


python package_do_pkgconfig () {
    import re

    packages = d.getVar('PACKAGES')
    workdir = d.getVar('WORKDIR')
    pkgdest = d.getVar('PKGDEST')

    shlibs_dirs = d.getVar('SHLIBSDIRS').split()
    shlibswork_dir = d.getVar('SHLIBSWORKDIR')

    pc_re = re.compile('(.*)\.pc$')
    var_re = re.compile('(.*)=(.*)')
    field_re = re.compile('(.*): (.*)')

    pkgconfig_provided = {}
    pkgconfig_needed = {}
    for pkg in packages.split():
        pkgconfig_provided[pkg] = []
        pkgconfig_needed[pkg] = []
        for file in pkgfiles[pkg]:
                m = pc_re.match(file)
                if m:
                    pd = bb.data.init()
                    name = m.group(1)
                    pkgconfig_provided[pkg].append(name)
                    if not os.access(file, os.R_OK):
                        continue
                    f = open(file, 'r')
                    lines = f.readlines()
                    f.close()
                    for l in lines:
                        m = var_re.match(l)
                        if m:
                            name = m.group(1)
                            val = m.group(2)
                            pd.setVar(name, pd.expand(val))
                            continue
                        m = field_re.match(l)
                        if m:
                            hdr = m.group(1)
                            exp = pd.expand(m.group(2))
                            if hdr == 'Requires':
                                pkgconfig_needed[pkg] += exp.replace(',', ' ').split()

    # Take shared lock since we're only reading, not writing
    lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"))

    for pkg in packages.split():
        pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")
        if pkgconfig_provided[pkg] != []:
            f = open(pkgs_file, 'w')
            for p in pkgconfig_provided[pkg]:
                f.write('%s\n' % p)
            f.close()

    # Go from least to most specific since the last one found wins
    for dir in reversed(shlibs_dirs):
        if not os.path.exists(dir):
            continue
        for file in os.listdir(dir):
            m = re.match('^(.*)\.pclist$', file)
            if m:
                pkg = m.group(1)
                fd = open(os.path.join(dir, file))
                lines = fd.readlines()
                fd.close()
                pkgconfig_provided[pkg] = []
                for l in lines:
                    pkgconfig_provided[pkg].append(l.rstrip())

    for pkg in packages.split():
        deps = []
        for n in pkgconfig_needed[pkg]:
            found = False
            for k in pkgconfig_provided.keys():
                if n in pkgconfig_provided[k]:
                    if k != pkg and not (k in deps):
                        deps.append(k)
                    found = True
            if found == False:
                bb.note("couldn't find pkgconfig module '%s' in any package" % n)
        deps_file = os.path.join(pkgdest, pkg + ".pcdeps")
        if len(deps):
            fd = open(deps_file, 'w')
            for dep in deps:
                fd.write(dep + '\n')
            fd.close()

    bb.utils.unlockfile(lf)
}


python package_do_shlibs () {
    import re, pipes
    import subprocess as sub

    exclude_shlibs = d.getVar('EXCLUDE_FROM_SHLIBS', False)
    if exclude_shlibs:
        bb.note("not generating shlibs")
        return

    lib_re = re.compile("^.*\.so")
    libdir_re = re.compile(".*/%s$" % d.getVar('baselib'))

    packages = d.getVar('PACKAGES')
    targetos = d.getVar('TARGET_OS')

    workdir = d.getVar('WORKDIR')

    ver = d.getVar('PKGV')
    if not ver:
        msg = "PKGV not defined"
        package_qa_handle_error("pkgv-undefined", msg, d)
        return

    pkgdest = d.getVar('PKGDEST')

    shlibswork_dir = d.getVar('SHLIBSWORKDIR')

    # Take shared lock since we're only reading, not writing
    lf = bb.utils.lockfile(d.expand("${PACKAGELOCK}"))

    def linux_so(file, needed, sonames, renames, pkgver):
        needs_ldconfig = False
        ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')
        cmd = d.getVar('OBJDUMP') + " -p " + pipes.quote(file) + " 2>/dev/null"
        fd = os.popen(cmd)
        lines = fd.readlines()
        fd.close()
        rpath = []
        for l in lines:
            m = re.match("\s+RPATH\s+([^\s]*)", l)
            if m:
                rpaths = m.group(1).replace("$ORIGIN", ldir).split(":")
                rpath = list(map(os.path.normpath, rpaths))
        for l in lines:
            m = re.match("\s+NEEDED\s+([^\s]*)", l)
            if m:
                dep = m.group(1)
                if dep not in needed[pkg]:
                    needed[pkg].append((dep, file, rpath))
            m = re.match("\s+SONAME\s+([^\s]*)", l)
            if m:
                this_soname = m.group(1)
                prov = (this_soname, ldir, pkgver)
                if not prov in sonames:
                    # if library is private (only used by package) then do not build shlib for it
                    if not private_libs or this_soname not in private_libs:
                        sonames.append(prov)
                if libdir_re.match(os.path.dirname(file)):
                    needs_ldconfig = True
                if snap_symlinks and (os.path.basename(file) != this_soname):
                    renames.append((file, os.path.join(os.path.dirname(file), this_soname)))
        return needs_ldconfig

    def darwin_so(file, needed, sonames, renames, pkgver):
        if not os.path.exists(file):
            return
        ldir = os.path.dirname(file).replace(pkgdest + "/" + pkg, '')

        def get_combinations(base):
            #
            # Given a base library name, find all combinations of this split by "." and "-"
            #
            combos = []
            options = base.split(".")
            for i in range(1, len(options) + 1):
                combos.append(".".join(options[0:i]))
            options = base.split("-")
            for i in range(1, len(options) + 1):
                combos.append("-".join(options[0:i]))
            return combos

        if (file.endswith('.dylib') or file.endswith('.so')) and not pkg.endswith('-dev') and not pkg.endswith('-dbg'):
            # Drop suffix
            name = os.path.basename(file).rsplit(".",1)[0]
            # Find all combinations
            combos = get_combinations(name)
            for combo in combos:
                if not combo in sonames:
                    prov = (combo, ldir, pkgver)
                    sonames.append(prov)
        if file.endswith('.dylib') or file.endswith('.so'):
            rpath = []
            p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-l', file],stdout=sub.PIPE,stderr=sub.PIPE)
            out, err = p.communicate()
            # If returned successfully, process stdout for results
            if p.returncode == 0:
                for l in out.split("\n"):
                    l = l.strip()
                    if l.startswith('path '):
                        rpath.append(l.split()[1])

        p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', file],stdout=sub.PIPE,stderr=sub.PIPE)
        out, err = p.communicate()
        # If returned successfully, process stdout for results
        if p.returncode == 0:
            for l in out.split("\n"):
                l = l.strip()
                if not l or l.endswith(":"):
                    continue
                if "is not an object file" in l:
                    continue
                name = os.path.basename(l.split()[0]).rsplit(".", 1)[0]
                if name and name not in needed[pkg]:
                     needed[pkg].append((name, file, []))

    def mingw_dll(file, needed, sonames, renames, pkgver):
        if not os.path.exists(file):
            return

        if file.endswith(".dll"):
            # assume all dlls are shared objects provided by the package
            sonames.append((os.path.basename(file), os.path.dirname(file).replace(pkgdest + "/" + pkg, ''), pkgver))

        if (file.endswith(".dll") or file.endswith(".exe")):
            # use objdump to search for "DLL Name: .*\.dll"
            p = sub.Popen([d.expand("${HOST_PREFIX}objdump"), "-p", file], stdout = sub.PIPE, stderr= sub.PIPE)
            out, err = p.communicate()
            # process the output, grabbing all .dll names
            if p.returncode == 0:
                for m in re.finditer("DLL Name: (.*?\.dll)$", out.decode(), re.MULTILINE | re.IGNORECASE):
                    dllname = m.group(1)
                    if dllname:
                        needed[pkg].append((dllname, file, []))

    if d.getVar('PACKAGE_SNAP_LIB_SYMLINKS') == "1":
        snap_symlinks = True
    else:
        snap_symlinks = False

    use_ldconfig = bb.utils.contains('DISTRO_FEATURES', 'ldconfig', True, False, d)

    needed = {}
    shlib_provider = oe.package.read_shlib_providers(d)

    for pkg in packages.split():
        private_libs = d.getVar('PRIVATE_LIBS_' + pkg) or d.getVar('PRIVATE_LIBS') or ""
        private_libs = private_libs.split()
        needs_ldconfig = False
        bb.debug(2, "calculating shlib provides for %s" % pkg)

        pkgver = d.getVar('PKGV_' + pkg)
        if not pkgver:
            pkgver = d.getVar('PV_' + pkg)
        if not pkgver:
            pkgver = ver

        needed[pkg] = []
        sonames = list()
        renames = list()
        for file in pkgfiles[pkg]:
                soname = None
                if cpath.islink(file):
                    continue
                if targetos == "darwin" or targetos == "darwin8":
                    darwin_so(file, needed, sonames, renames, pkgver)
                elif targetos.startswith("mingw"):
                    mingw_dll(file, needed, sonames, renames, pkgver)
                elif os.access(file, os.X_OK) or lib_re.match(file):
                    ldconfig = linux_so(file, needed, sonames, renames, pkgver)
                    needs_ldconfig = needs_ldconfig or ldconfig
        for (old, new) in renames:
            bb.note("Renaming %s to %s" % (old, new))
            os.rename(old, new)
            pkgfiles[pkg].remove(old)

        shlibs_file = os.path.join(shlibswork_dir, pkg + ".list")
        if len(sonames):
            fd = open(shlibs_file, 'w')
            for s in sonames:
                if s[0] in shlib_provider and s[1] in shlib_provider[s[0]]:
                    (old_pkg, old_pkgver) = shlib_provider[s[0]][s[1]]
                    if old_pkg != pkg:
                        bb.warn('%s-%s was registered as shlib provider for %s, changing it to %s-%s because it was built later' % (old_pkg, old_pkgver, s[0], pkg, pkgver))
                bb.debug(1, 'registering %s-%s as shlib provider for %s' % (pkg, pkgver, s[0]))
                fd.write(s[0] + ':' + s[1] + ':' + s[2] + '\n')
                if s[0] not in shlib_provider:
                    shlib_provider[s[0]] = {}
                shlib_provider[s[0]][s[1]] = (pkg, pkgver)
            fd.close()
        if needs_ldconfig and use_ldconfig:
            bb.debug(1, 'adding ldconfig call to postinst for %s' % pkg)
            postinst = d.getVar('pkg_postinst_%s' % pkg)
            if not postinst:
                postinst = '#!/bin/sh\n'
            postinst += d.getVar('ldconfig_postinst_fragment')
            d.setVar('pkg_postinst_%s' % pkg, postinst)
        bb.debug(1, 'LIBNAMES: pkg %s sonames %s' % (pkg, sonames))

    bb.utils.unlockfile(lf)

    assumed_libs = d.getVar('ASSUME_SHLIBS')
    if assumed_libs:
        libdir = d.getVar("libdir")
        for e in assumed_libs.split():
            l, dep_pkg = e.split(":")
            lib_ver = None
            dep_pkg = dep_pkg.rsplit("_", 1)
            if len(dep_pkg) == 2:
                lib_ver = dep_pkg[1]
            dep_pkg = dep_pkg[0]
            if l not in shlib_provider:
                shlib_provider[l] = {}
            shlib_provider[l][libdir] = (dep_pkg, lib_ver)

    libsearchpath = [d.getVar('libdir'), d.getVar('base_libdir')]

    for pkg in packages.split():
        bb.debug(2, "calculating shlib requirements for %s" % pkg)

        deps = list()
        for n in needed[pkg]:
            # if n is in private libraries, don't try to search provider for it
            # this could cause problem in case some abc.bb provides private
            # /opt/abc/lib/libfoo.so.1 and contains /usr/bin/abc depending on system library libfoo.so.1
            # but skipping it is still better alternative than providing own
            # version and then adding runtime dependency for the same system library
            if private_libs and n[0] in private_libs:
                bb.debug(2, '%s: Dependency %s covered by PRIVATE_LIBS' % (pkg, n[0]))
                continue
            if n[0] in shlib_provider.keys():
                shlib_provider_path = []
                for k in shlib_provider[n[0]].keys():
                    shlib_provider_path.append(k)
                match = None
                for p in n[2] + shlib_provider_path + libsearchpath:
                    if p in shlib_provider[n[0]]:
                        match = p
                        break
                if match:
                    (dep_pkg, ver_needed) = shlib_provider[n[0]][match]

                    bb.debug(2, '%s: Dependency %s requires package %s (used by files: %s)' % (pkg, n[0], dep_pkg, n[1]))

                    if dep_pkg == pkg:
                        continue

                    if ver_needed:
                        dep = "%s (>= %s)" % (dep_pkg, ver_needed)
                    else:
                        dep = dep_pkg
                    if not dep in deps:
                        deps.append(dep)
                    continue
            bb.note("Couldn't find shared library provider for %s, used by files: %s" % (n[0], n[1]))

        deps_file = os.path.join(pkgdest, pkg + ".shlibdeps")
        if os.path.exists(deps_file):
            os.remove(deps_file)
        if len(deps):
            fd = open(deps_file, 'w')
            for dep in deps:
                fd.write(dep + '\n')
            fd.close()
}


python package_do_split_locales () {
    if (d.getVar('PACKAGE_NO_LOCALE') == '1'):
        bb.debug(1, "package requested not splitting locales")
        return

    packages = (d.getVar('PACKAGES') or "").split()

    datadir = d.getVar('datadir')
    if not datadir:
        bb.note("datadir not defined")
        return

    dvar = d.getVar('PKGD')
    pn = d.getVar('LOCALEBASEPN')

    if pn + '-locale' in packages:
        packages.remove(pn + '-locale')

    localedir = os.path.join(dvar + datadir, 'locale')

    if not cpath.isdir(localedir):
        bb.debug(1, "No locale files in this package")
        return

    locales = os.listdir(localedir)

    summary = d.getVar('SUMMARY') or pn
    description = d.getVar('DESCRIPTION') or ""
    locale_section = d.getVar('LOCALE_SECTION')
    mlprefix = d.getVar('MLPREFIX') or ""
    for l in sorted(locales):
        ln = legitimize_package_name(l)
        pkg = pn + '-locale-' + ln
        packages.append(pkg)
        d.setVar('FILES_' + pkg, os.path.join(datadir, 'locale', l))
        d.setVar('RRECOMMENDS_' + pkg, '%svirtual-locale-%s' % (mlprefix, ln))
        d.setVar('RPROVIDES_' + pkg, '%s-locale %s%s-translation' % (pn, mlprefix, ln))
        d.setVar('SUMMARY_' + pkg, '%s - %s translations' % (summary, l))
        d.setVar('DESCRIPTION_' + pkg, '%s  This package contains language translation files for the %s locale.' % (description, l))
        if locale_section:
            d.setVar('SECTION_' + pkg, locale_section)

    d.setVar('PACKAGES', ' '.join(packages))

    # Disabled by RP 18/06/07
    # Wildcards aren't supported in debian
    # They break with ipkg since glibc-locale* will mean that
    # glibc-localedata-translit* won't install as a dependency
    # for some other package which breaks meta-toolchain
    # Probably breaks since virtual-locale- isn't provided anywhere
    #rdep = (d.getVar('RDEPENDS_%s' % pn) or "").split()
    #rdep.append('%s-locale*' % pn)
    #d.setVar('RDEPENDS_%s' % pn, ' '.join(rdep))
}


python package_fixsymlinks () {
    import errno
    pkgdest = d.getVar('PKGDEST')
    packages = d.getVar("PACKAGES", False).split()

    dangling_links = {}
    pkg_files = {}
    for pkg in packages:
        dangling_links[pkg] = []
        pkg_files[pkg] = []
        inst_root = os.path.join(pkgdest, pkg)
        for path in pkgfiles[pkg]:
                rpath = path[len(inst_root):]
                pkg_files[pkg].append(rpath)
                rtarget = cpath.realpath(path, inst_root, True, assume_dir = True)
                if not cpath.lexists(rtarget):
                    dangling_links[pkg].append(os.path.normpath(rtarget[len(inst_root):]))

    newrdepends = {}
    for pkg in dangling_links:
        for l in dangling_links[pkg]:
            found = False
            bb.debug(1, "%s contains dangling link %s" % (pkg, l))
            for p in packages:
                if l in pkg_files[p]:
                        found = True
                        bb.debug(1, "target found in %s" % p)
                        if p == pkg:
                            break
                        if pkg not in newrdepends:
                            newrdepends[pkg] = []
                        newrdepends[pkg].append(p)
                        break
            if found == False:
                bb.note("%s contains dangling symlink to %s" % (pkg, l))

    for pkg in newrdepends:
        rdepends = bb.utils.explode_dep_versions2(d.getVar('RDEPENDS_' + pkg) or "")
        for p in newrdepends[pkg]:
            if p not in rdepends:
                rdepends[p] = []
        d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, commasep=False))
}


python package_get_auto_pr () {
    import oe.prservice
    import re

    # Support per recipe PRSERV_HOST
    pn = d.getVar('PN')
    host = d.getVar("PRSERV_HOST_" + pn)
    if not (host is None):
        d.setVar("PRSERV_HOST", host)

    pkgv = d.getVar("PKGV")

    # PR Server not active, handle AUTOINC
    if not d.getVar('PRSERV_HOST'):
        if 'AUTOINC' in pkgv:
            d.setVar("PKGV", pkgv.replace("AUTOINC", "0"))
        return

    auto_pr = None
    pv = d.getVar("PV")
    version = d.getVar("PRAUTOINX")
    pkgarch = d.getVar("PACKAGE_ARCH")
    checksum = d.getVar("BB_TASKHASH")

    if d.getVar('PRSERV_LOCKDOWN'):
        auto_pr = d.getVar('PRAUTO_' + version + '_' + pkgarch) or d.getVar('PRAUTO_' + version) or None
        if auto_pr is None:
            bb.fatal("Can NOT get PRAUTO from lockdown exported file")
        d.setVar('PRAUTO',str(auto_pr))
        return

    try:
        conn = d.getVar("__PRSERV_CONN")
        if conn is None:
            conn = oe.prservice.prserv_make_conn(d)
        if conn is not None:
            if "AUTOINC" in pkgv:
                srcpv = bb.fetch2.get_srcrev(d)
                base_ver = "AUTOINC-%s" % version[:version.find(srcpv)]
                value = conn.getPR(base_ver, pkgarch, srcpv)
                d.setVar("PKGV", pkgv.replace("AUTOINC", str(value)))

            auto_pr = conn.getPR(version, pkgarch, checksum)
    except Exception as e:
        bb.fatal("Can NOT get PRAUTO, exception %s" %  str(e))
    if auto_pr is None:
        bb.fatal("Can NOT get PRAUTO from remote PR service")
    d.setVar('PRAUTO',str(auto_pr))
}


python package_name_hook () {
    bb.build.exec_func('debian_package_name_hook', d)
}


python package_package_name_hook () {
    """
    A package_name_hook function can be used to rewrite the package names by
    changing PKG.  For an example, see debian.bbclass.
    """
    pass
}


python package_qa_add_message () {
def package_qa_add_message(messages, section, new_msg):
    if section not in messages:
        messages[section] = new_msg
    else:
        messages[section] = messages[section] + "\n" + new_msg
}


python package_qa_check_arch () {
def package_qa_check_arch(path,name,d, elf, messages):
    """
    Check if archs are compatible
    """
    import re

    if not elf:
        return

    target_os   = d.getVar('TARGET_OS')
    target_arch = d.getVar('TARGET_ARCH')
    provides = d.getVar('PROVIDES')
    bpn = d.getVar('BPN')

    if target_arch == "allarch":
        pn = d.getVar('PN')
        package_qa_add_message(messages, "arch", pn + ": Recipe inherits the allarch class, but has packaged architecture-specific binaries")
        return

    # FIXME: Cross package confuse this check, so just skip them
    for s in ['cross', 'nativesdk', 'cross-canadian']:
        if bb.data.inherits_class(s, d):
            return

    # avoid following links to /usr/bin (e.g. on udev builds)
    # we will check the files pointed to anyway...
    if os.path.islink(path):
        return

    #if this will throw an exception, then fix the dict above
    (machine, osabi, abiversion, littleendian, bits) \
        = package_qa_get_machine_dict(d)[target_os][target_arch]

    # Check the architecture and endiannes of the binary
    is_32 = (("virtual/kernel" in provides) or bb.data.inherits_class("module", d)) and \
            (target_os == "linux-gnux32" or re.match('mips64.*32', d.getVar('DEFAULTTUNE')))
    if not ((machine == elf.machine()) or is_32):
        package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \
                 (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d)))
    elif not ((bits == elf.abiSize()) or is_32):
        package_qa_add_message(messages, "arch", "Bit size did not match (%d to %d) %s on %s" % \
                 (bits, elf.abiSize(), bpn, package_qa_clean_path(path,d)))
    elif not littleendian == elf.isLittleEndian():
        package_qa_add_message(messages, "arch", "Endiannes did not match (%d to %d) on %s" % \
                 (littleendian, elf.isLittleEndian(), package_qa_clean_path(path,d)))
}


python package_qa_check_buildpaths () {
def package_qa_check_buildpaths(path, name, d, elf, messages):
    """
    Check for build paths inside target files and error if not found in the whitelist
    """
    # Ignore .debug files, not interesting
    if path.find(".debug") != -1:
        return

    # Ignore symlinks
    if os.path.islink(path):
        return

    # Ignore ipk and deb's CONTROL dir
    if path.find(name + "/CONTROL/") != -1 or path.find(name + "/DEBIAN/") != -1:
        return

    tmpdir = d.getVar('TMPDIR')
    with open(path, 'rb') as f:
        file_content = f.read().decode('utf-8', errors='ignore')
        if tmpdir in file_content:
            package_qa_add_message(messages, "buildpaths", "File %s in package contained reference to tmpdir" % package_qa_clean_path(path,d))

}


python package_qa_check_dbg () {
def package_qa_check_dbg(path, name, d, elf, messages):
    """
    Check for ".debug" files or directories outside of the dbg package
    """

    if not "-dbg" in name and not "-ptest" in name:
        if '.debug' in path.split(os.path.sep):
            package_qa_add_message(messages, "debug-files", "non debug package contains .debug directory: %s path %s" % \
                     (name, package_qa_clean_path(path,d)))
}


python package_qa_check_deps () {
def package_qa_check_deps(pkg, pkgdest, skip, d):

    localdata = bb.data.createCopy(d)
    localdata.setVar('OVERRIDES', pkg)

    def check_valid_deps(var):
        try:
            rvar = bb.utils.explode_dep_versions2(localdata.getVar(var) or "")
        except ValueError as e:
            bb.fatal("%s_%s: %s" % (var, pkg, e))
        for dep in rvar:
            for v in rvar[dep]:
                if v and not v.startswith(('< ', '= ', '> ', '<= ', '>=')):
                    error_msg = "%s_%s is invalid: %s (%s)   only comparisons <, =, >, <=, and >= are allowed" % (var, pkg, dep, v)
                    package_qa_handle_error("dep-cmp", error_msg, d)

    check_valid_deps('RDEPENDS')
    check_valid_deps('RRECOMMENDS')
    check_valid_deps('RSUGGESTS')
    check_valid_deps('RPROVIDES')
    check_valid_deps('RREPLACES')
    check_valid_deps('RCONFLICTS')
}


python package_qa_check_desktop () {
def package_qa_check_desktop(path, name, d, elf, messages):
    """
    Run all desktop files through desktop-file-validate.
    """
    if path.endswith(".desktop"):
        desktop_file_validate = os.path.join(d.getVar('STAGING_BINDIR_NATIVE'),'desktop-file-validate')
        output = os.popen("%s %s" % (desktop_file_validate, path))
        # This only produces output on errors
        for l in output:
            package_qa_add_message(messages, "desktop", "Desktop file issue: " + l.strip())
}


python package_qa_check_dev () {
def package_qa_check_dev(path, name, d, elf, messages):
    """
    Check for ".so" library symlinks in non-dev packages
    """

    if not name.endswith("-dev") and not name.endswith("-dbg") and not name.endswith("-ptest") and not name.startswith("nativesdk-") and path.endswith(".so") and os.path.islink(path):
        package_qa_add_message(messages, "dev-so", "non -dev/-dbg/nativesdk- package contains symlink .so: %s path '%s'" % \
                 (name, package_qa_clean_path(path,d)))
}


python package_qa_check_dev_elf () {
def package_qa_check_dev_elf(path, name, d, elf, messages):
    """
    Check that -dev doesn't contain real shared libraries.  The test has to
    check that the file is not a link and is an ELF object as some recipes
    install link-time .so files that are linker scripts.
    """
    if name.endswith("-dev") and path.endswith(".so") and not os.path.islink(path) and elf:
        package_qa_add_message(messages, "dev-elf", "-dev package contains non-symlink .so: %s path '%s'" % \
                 (name, package_qa_clean_path(path,d)))
}


python package_qa_check_encoding () {
def package_qa_check_encoding(keys, encode, d):
    def check_encoding(key, enc):
        sane = True
        value = d.getVar(key)
        if value:
            try:
                s = value.encode(enc)
            except UnicodeDecodeError as e:
                error_msg = "%s has non %s characters" % (key,enc)
                sane = False
                package_qa_handle_error("invalid-chars", error_msg, d)
        return sane

    for key in keys:
        sane = check_encoding(key, encode)
        if not sane:
            break
}


python package_qa_check_expanded_d () {
def package_qa_check_expanded_d(package, d, messages):
    """
    Check for the expanded D (${D}) value in pkg_* and FILES
    variables, warn the user to use it correctly.
    """
    sane = True
    expanded_d = d.getVar('D')

    for var in 'FILES','pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm':
        bbvar = d.getVar(var + "_" + package) or ""
        if expanded_d in bbvar:
            if var == 'FILES':
                package_qa_add_message(messages, "expanded-d", "FILES in %s recipe should not contain the ${D} variable as it references the local build directory not the target filesystem, best solution is to remove the ${D} reference" % package)
                sane = False
            else:
                package_qa_add_message(messages, "expanded-d", "%s in %s recipe contains ${D}, it should be replaced by $D instead" % (var, package))
                sane = False
    return sane
}


python package_qa_check_host_user () {
def package_qa_check_host_user(path, name, d, elf, messages):
    """Check for paths outside of /home which are owned by the user running bitbake."""

    if not os.path.lexists(path):
        return

    dest = d.getVar('PKGDEST')
    pn = d.getVar('PN')
    home = os.path.join(dest, 'home')
    if path == home or path.startswith(home + os.sep):
        return

    try:
        stat = os.lstat(path)
    except OSError as exc:
        import errno
        if exc.errno != errno.ENOENT:
            raise
    else:
        rootfs_path = path[len(dest):]
        check_uid = int(d.getVar('HOST_USER_UID'))
        if stat.st_uid == check_uid:
            package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by uid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_uid))
            return False

        check_gid = int(d.getVar('HOST_USER_GID'))
        if stat.st_gid == check_gid:
            package_qa_add_message(messages, "host-user-contaminated", "%s: %s is owned by gid %d, which is the same as the user running bitbake. This may be due to host contamination" % (pn, rootfs_path, check_gid))
            return False
    return True
}


python package_qa_check_infodir () {
def package_qa_check_infodir(path, name, d, elf, messages):
    """
    Check that /usr/share/info/dir isn't shipped in a particular package
    """
    infodir = d.expand("${infodir}/dir")

    if infodir in path:
        package_qa_add_message(messages, "infodir", "The /usr/share/info/dir file is not meant to be shipped in a particular package.")
}


python package_qa_check_libdir () {
def package_qa_check_libdir(d):
    """
    Check for wrong library installation paths. For instance, catch
    recipes installing /lib/bar.so when ${base_libdir}="lib32" or
    installing in /usr/lib64 when ${libdir}="/usr/lib"
    """
    import re

    pkgdest = d.getVar('PKGDEST')
    base_libdir = d.getVar("base_libdir") + os.sep
    libdir = d.getVar("libdir") + os.sep
    libexecdir = d.getVar("libexecdir") + os.sep
    exec_prefix = d.getVar("exec_prefix") + os.sep

    messages = []

    # The re's are purposely fuzzy, as some there are some .so.x.y.z files
    # that don't follow the standard naming convention. It checks later
    # that they are actual ELF files
    lib_re = re.compile("^/lib.+\.so(\..+)?$")
    exec_re = re.compile("^%s.*/lib.+\.so(\..+)?$" % exec_prefix)

    for root, dirs, files in os.walk(pkgdest):
        if root == pkgdest:
            # Skip subdirectories for any packages with libdir in INSANE_SKIP
            skippackages = []
            for package in dirs:
                if 'libdir' in (d.getVar('INSANE_SKIP_' + package) or "").split():
                    bb.note("Package %s skipping libdir QA test" % (package))
                    skippackages.append(package)
                elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-file-directory' and package.endswith("-dbg"):
                    bb.note("Package %s skipping libdir QA test for PACKAGE_DEBUG_SPLIT_STYLE equals debug-file-directory" % (package))
                    skippackages.append(package)
            for package in skippackages:
                dirs.remove(package)
        for file in files:
            full_path = os.path.join(root, file)
            rel_path = os.path.relpath(full_path, pkgdest)
            if os.sep in rel_path:
                package, rel_path = rel_path.split(os.sep, 1)
                rel_path = os.sep + rel_path
                if lib_re.match(rel_path):
                    if base_libdir not in rel_path:
                        # make sure it's an actual ELF file
                        elf = oe.qa.ELFFile(full_path)
                        try:
                            elf.open()
                            messages.append("%s: found library in wrong location: %s" % (package, rel_path))
                        except (oe.qa.NotELFFileError):
                            pass
                if exec_re.match(rel_path):
                    if libdir not in rel_path and libexecdir not in rel_path:
                        # make sure it's an actual ELF file
                        elf = oe.qa.ELFFile(full_path)
                        try:
                            elf.open()
                            messages.append("%s: found library in wrong location: %s" % (package, rel_path))
                        except (oe.qa.NotELFFileError):
                            pass

    if messages:
        package_qa_handle_error("libdir", "\n".join(messages), d)
}


python package_qa_check_libexec () {
def package_qa_check_libexec(path,name, d, elf, messages):

    # Skip the case where the default is explicitly /usr/libexec
    libexec = d.getVar('libexecdir')
    if libexec == "/usr/libexec":
        return True

    if 'libexec' in path.split(os.path.sep):
        package_qa_add_message(messages, "libexec", "%s: %s is using libexec please relocate to %s" % (name, package_qa_clean_path(path, d), libexec))
        return False

    return True
}


python package_qa_check_perm () {
def package_qa_check_perm(path,name,d, elf, messages):
    """
    Check the permission of files
    """
    return
}


python package_qa_check_rdepends () {
def package_qa_check_rdepends(pkg, pkgdest, skip, taskdeps, packages, d):
    # Don't do this check for kernel/module recipes, there aren't too many debug/development
    # packages and you can get false positives e.g. on kernel-module-lirc-dev
    if bb.data.inherits_class("kernel", d) or bb.data.inherits_class("module-base", d):
        return

    if not "-dbg" in pkg and not "packagegroup-" in pkg and not "-image" in pkg:
        localdata = bb.data.createCopy(d)
        localdata.setVar('OVERRIDES', localdata.getVar('OVERRIDES') + ':' + pkg)

        # Now check the RDEPENDS
        rdepends = bb.utils.explode_deps(localdata.getVar('RDEPENDS') or "")

        # Now do the sanity check!!!
        if "build-deps" not in skip:
            for rdepend in rdepends:
                if "-dbg" in rdepend and "debug-deps" not in skip:
                    error_msg = "%s rdepends on %s" % (pkg,rdepend)
                    package_qa_handle_error("debug-deps", error_msg, d)
                if (not "-dev" in pkg and not "-staticdev" in pkg) and rdepend.endswith("-dev") and "dev-deps" not in skip:
                    error_msg = "%s rdepends on %s" % (pkg, rdepend)
                    package_qa_handle_error("dev-deps", error_msg, d)
                if rdepend not in packages:
                    rdep_data = oe.packagedata.read_subpkgdata(rdepend, d)
                    if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
                        continue
                    if not rdep_data or not 'PN' in rdep_data:
                        pkgdata_dir = d.getVar("PKGDATA_DIR")
                        try:
                            possibles = os.listdir("%s/runtime-rprovides/%s/" % (pkgdata_dir, rdepend))
                        except OSError:
                            possibles = []
                        for p in possibles:
                            rdep_data = oe.packagedata.read_subpkgdata(p, d)
                            if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
                                break
                    if rdep_data and 'PN' in rdep_data and rdep_data['PN'] in taskdeps:
                        continue
                    if rdep_data and 'PN' in rdep_data:
                        error_msg = "%s rdepends on %s, but it isn't a build dependency, missing %s in DEPENDS or PACKAGECONFIG?" % (pkg, rdepend, rdep_data['PN'])
                    else:
                        error_msg = "%s rdepends on %s, but it isn't a build dependency?" % (pkg, rdepend)
                    package_qa_handle_error("build-deps", error_msg, d)

        if "file-rdeps" not in skip:
            ignored_file_rdeps = set(['/bin/sh', '/usr/bin/env', 'rtld(GNU_HASH)'])
            if bb.data.inherits_class('nativesdk', d):
                ignored_file_rdeps |= set(['/bin/bash', '/usr/bin/perl', 'perl'])
            # For Saving the FILERDEPENDS
            filerdepends = {}
            rdep_data = oe.packagedata.read_subpkgdata(pkg, d)
            for key in rdep_data:
                if key.startswith("FILERDEPENDS_"):
                    for subkey in bb.utils.explode_deps(rdep_data[key]):
                        if subkey not in ignored_file_rdeps and \
                                not subkey.startswith('perl('):
                            # We already know it starts with FILERDEPENDS_
                            filerdepends[subkey] = key[13:]

            if filerdepends:
                next = rdepends
                done = rdepends[:]
                # Find all the rdepends on the dependency chain
                while next:
                    new = []
                    for rdep in next:
                        rdep_data = oe.packagedata.read_subpkgdata(rdep, d)
                        sub_rdeps = rdep_data.get("RDEPENDS_" + rdep)
                        if not sub_rdeps:
                            continue
                        for sub_rdep in bb.utils.explode_deps(sub_rdeps):
                            if sub_rdep in done:
                                continue
                            if oe.packagedata.has_subpkgdata(sub_rdep, d):
                                # It's a new rdep
                                done.append(sub_rdep)
                                new.append(sub_rdep)
                    next = new

                # Add the rprovides of itself
                if pkg not in done:
                    done.insert(0, pkg)

                # The python is not a package, but python-core provides it, so
                # skip checking /usr/bin/python if python is in the rdeps, in
                # case there is a RDEPENDS_pkg = "python" in the recipe.
                for py in [ d.getVar('MLPREFIX') + "python", "python" ]:
                    if py in done:
                        filerdepends.pop("/usr/bin/python",None)
                        done.remove(py)
                for rdep in done:
                    # The file dependencies may contain package names, e.g.,
                    # perl
                    filerdepends.pop(rdep,None)

                    # For Saving the FILERPROVIDES, RPROVIDES and FILES_INFO
                    rdep_data = oe.packagedata.read_subpkgdata(rdep, d)
                    for key in rdep_data:
                        if key.startswith("FILERPROVIDES_") or key.startswith("RPROVIDES_"):
                            for subkey in bb.utils.explode_deps(rdep_data[key]):
                                filerdepends.pop(subkey,None)
                        # Add the files list to the rprovides
                        if key == "FILES_INFO":
                            # Use eval() to make it as a dict
                            for subkey in eval(rdep_data[key]):
                                filerdepends.pop(subkey,None)
                    if not filerdepends:
                        # Break if all the file rdepends are met
                        break
            if filerdepends:
                for key in filerdepends:
                    error_msg = "%s contained in package %s requires %s, but no providers found in RDEPENDS_%s?" % \
                            (filerdepends[key].replace("_%s" % pkg, "").replace("@underscore@", "_"), pkg, key, pkg)
                    package_qa_handle_error("file-rdeps", error_msg, d)
}


python package_qa_check_rpath () {
def package_qa_check_rpath(file,name, d, elf, messages):
    """
    Check for dangerous RPATHs
    """
    if not elf:
        return

    if os.path.islink(file):
        return

    bad_dirs = [d.getVar('BASE_WORKDIR'), d.getVar('STAGING_DIR_TARGET')]

    phdrs = elf.run_objdump("-p", d)

    import re
    rpath_re = re.compile("\s+RPATH\s+(.*)")
    for line in phdrs.split("\n"):
        m = rpath_re.match(line)
        if m:
            rpath = m.group(1)
            for dir in bad_dirs:
                if dir in rpath:
                    package_qa_add_message(messages, "rpaths", "package %s contains bad RPATH %s in file %s" % (name, rpath, file))
}


python package_qa_check_staged () {
def package_qa_check_staged(path,d):
    """
    Check staged la and pc files for common problems like references to the work
    directory.

    As this is run after every stage we should be able to find the one
    responsible for the errors easily even if we look at every .pc and .la file.
    """

    sane = True
    tmpdir = d.getVar('TMPDIR')
    workdir = os.path.join(tmpdir, "work")
    recipesysroot = d.getVar("RECIPE_SYSROOT")

    if bb.data.inherits_class("native", d) or bb.data.inherits_class("cross", d):
        pkgconfigcheck = workdir
    else:
        pkgconfigcheck = tmpdir

    # find all .la and .pc files
    # read the content
    # and check for stuff that looks wrong
    for root, dirs, files in os.walk(path):
        for file in files:
            path = os.path.join(root,file)
            if file.endswith(".la"):
                with open(path) as f:
                    file_content = f.read()
                    file_content = file_content.replace(recipesysroot, "")
                    if workdir in file_content:
                        error_msg = "%s failed sanity test (workdir) in path %s" % (file,root)
                        sane = package_qa_handle_error("la", error_msg, d)
            elif file.endswith(".pc"):
                with open(path) as f:
                    file_content = f.read()
                    file_content = file_content.replace(recipesysroot, "")
                    if pkgconfigcheck in file_content:
                        error_msg = "%s failed sanity test (tmpdir) in path %s" % (file,root)
                        sane = package_qa_handle_error("pkgconfig", error_msg, d)

    return sane
}


python package_qa_check_staticdev () {
def package_qa_check_staticdev(path, name, d, elf, messages):
    """
    Check for ".a" library in non-staticdev packages
    There are a number of exceptions to this rule, -pic packages can contain
    static libraries, the _nonshared.a belong with their -dev packages and
    libgcc.a, libgcov.a will be skipped in their packages
    """

    if not name.endswith("-pic") and not name.endswith("-staticdev") and not name.endswith("-ptest") and path.endswith(".a") and not path.endswith("_nonshared.a"):
        package_qa_add_message(messages, "staticdev", "non -staticdev package contains static .a library: %s path '%s'" % \
                 (name, package_qa_clean_path(path,d)))
}


python package_qa_check_symlink_to_sysroot () {
def package_qa_check_symlink_to_sysroot(path, name, d, elf, messages):
    """
    Check that the package doesn't contain any absolute symlinks to the sysroot.
    """
    if os.path.islink(path):
        target = os.readlink(path)
        if os.path.isabs(target):
            tmpdir = d.getVar('TMPDIR')
            if target.startswith(tmpdir):
                trimmed = path.replace(os.path.join (d.getVar("PKGDEST"), name), "")
                package_qa_add_message(messages, "symlink-to-sysroot", "Symlink %s in %s points to TMPDIR" % (trimmed, name))
}


python package_qa_check_unsafe_references_in_scripts () {
def package_qa_check_unsafe_references_in_scripts(path, name, d, elf, messages):
    """
    Warn if scripts in base_[bindir|sbindir|libdir] reference files under exec_prefix
    """
    if unsafe_references_skippable(path, name, d):
        return

    if not elf:
        import stat
        import subprocess
        pn = d.getVar('PN')

        # Ensure we're checking an executable script
        statinfo = os.stat(path)
        if bool(statinfo.st_mode & stat.S_IXUSR):
            # grep shell scripts for possible references to /exec_prefix/
            exec_prefix = d.getVar('exec_prefix')
            statement = "grep -e '%s/[^ :]\{1,\}/[^ :]\{1,\}' %s > /dev/null" % (exec_prefix, path)
            if subprocess.call(statement, shell=True) == 0:
                error_msg = pn + ": Found a reference to %s/ in %s" % (exec_prefix, path)
                package_qa_handle_error("unsafe-references-in-scripts", error_msg, d)
                error_msg = "Shell scripts in base_bindir and base_sbindir should not reference anything in exec_prefix"
                package_qa_handle_error("unsafe-references-in-scripts", error_msg, d)
}


python package_qa_check_useless_rpaths () {
def package_qa_check_useless_rpaths(file, name, d, elf, messages):
    """
    Check for RPATHs that are useless but not dangerous
    """
    def rpath_eq(a, b):
        return os.path.normpath(a) == os.path.normpath(b)

    if not elf:
        return

    if os.path.islink(file):
        return

    libdir = d.getVar("libdir")
    base_libdir = d.getVar("base_libdir")

    phdrs = elf.run_objdump("-p", d)

    import re
    rpath_re = re.compile("\s+RPATH\s+(.*)")
    for line in phdrs.split("\n"):
        m = rpath_re.match(line)
        if m:
            rpath = m.group(1)
            if rpath_eq(rpath, libdir) or rpath_eq(rpath, base_libdir):
                # The dynamic linker searches both these places anyway.  There is no point in
                # looking there again.
                package_qa_add_message(messages, "useless-rpaths", "%s: %s contains probably-redundant RPATH %s" % (name, package_qa_clean_path(file, d), rpath))
}


python package_qa_check_xorg_driver_abi () {
def package_qa_check_xorg_driver_abi(path, name, d, elf, messages):
    """
    Check that all packages containing Xorg drivers have ABI dependencies
    """

    # Skip dev, dbg or nativesdk packages
    if name.endswith("-dev") or name.endswith("-dbg") or name.startswith("nativesdk-"):
        return

    driverdir = d.expand("${libdir}/xorg/modules/drivers/")
    if driverdir in path and path.endswith(".so"):
        mlprefix = d.getVar('MLPREFIX') or ''
        for rdep in bb.utils.explode_deps(d.getVar('RDEPENDS_' + name) or ""):
            if rdep.startswith("%sxorg-abi-" % mlprefix):
                return
        package_qa_add_message(messages, "xorg-driver-abi", "Package %s contains Xorg driver (%s) but no xorg-abi- dependencies" % (name, os.path.basename(path)))
}


python package_qa_clean_path () {
def package_qa_clean_path(path, d, pkg=None):
    """
    Remove redundant paths from the path for display.  If pkg isn't set then
    TMPDIR is stripped, otherwise PKGDEST/pkg is stripped.
    """
    if pkg:
        path = path.replace(os.path.join(d.getVar("PKGDEST"), pkg), "/")
    return path.replace(d.getVar("TMPDIR"), "/").replace("//", "/")
}


python package_qa_get_machine_dict () {
def package_qa_get_machine_dict(d):
    machdata = {
            "darwin9" : {
                        "arm" :       (40,     0,    0,          True,          32),
                      },
            "eabi" : {
                        "arm" :       (40,     0,    0,          True,          32),
                      },
            "elf" : {
                        "aarch64" :   (183,    0,    0,          True,          64),
                        "aarch64_be" :(183,    0,    0,          False,         64),
                        "i586" :      (3,      0,    0,          True,          32),
                        "x86_64":     (62,     0,    0,          True,          64),
                        "epiphany":   (4643,   0,    0,          True,          32),
                        "mips":       ( 8,     0,    0,          False,         32),
                        "mipsel":     ( 8,     0,    0,          True,          32),
                      },
            "linux" : {
                        "aarch64" :   (183,    0,    0,          True,          64),
                        "aarch64_be" :(183,    0,    0,          False,         64),
                        "arm" :       (40,    97,    0,          True,          32),
                        "armeb":      (40,    97,    0,          False,         32),
                        "powerpc":    (20,     0,    0,          False,         32),
                        "powerpc64":  (21,     0,    0,          False,         64),
                        "i386":       ( 3,     0,    0,          True,          32),
                        "i486":       ( 3,     0,    0,          True,          32),
                        "i586":       ( 3,     0,    0,          True,          32),
                        "i686":       ( 3,     0,    0,          True,          32),
                        "x86_64":     (62,     0,    0,          True,          64),
                        "ia64":       (50,     0,    0,          True,          64),
                        "alpha":      (36902,  0,    0,          True,          64),
                        "hppa":       (15,     3,    0,          False,         32),
                        "m68k":       ( 4,     0,    0,          False,         32),
                        "mips":       ( 8,     0,    0,          False,         32),
                        "mipsel":     ( 8,     0,    0,          True,          32),
                        "mips64":     ( 8,     0,    0,          False,         64),
                        "mips64el":   ( 8,     0,    0,          True,          64),
                        "mipsisa32r6":   ( 8,  0,    0,          False,         32),
                        "mipsisa32r6el": ( 8,  0,    0,          True,          32),
                        "mipsisa64r6":   ( 8,  0,    0,          False,         64),
                        "mipsisa64r6el": ( 8,  0,    0,          True,          64),
                        "nios2":      (113,    0,    0,          True,          32),
                        "s390":       (22,     0,    0,          False,         32),
                        "sh4":        (42,     0,    0,          True,          32),
                        "sparc":      ( 2,     0,    0,          False,         32),
                        "microblaze":  (189,   0,    0,          False,         32),
                        "microblazeeb":(189,   0,    0,          False,         32),
                        "microblazeel":(189,   0,    0,          True,          32),
                      },
            "linux-uclibc" : {
                        "arm" :       (  40,    97,    0,          True,          32),
                        "armeb":      (  40,    97,    0,          False,         32),
                        "powerpc":    (  20,     0,    0,          False,         32),
                        "i386":       (   3,     0,    0,          True,          32),
                        "i486":       (   3,     0,    0,          True,          32),
                        "i586":       (   3,     0,    0,          True,          32),
                        "i686":       (   3,     0,    0,          True,          32),
                        "x86_64":     (  62,     0,    0,          True,          64),
                        "mips":       (   8,     0,    0,          False,         32),
                        "mipsel":     (   8,     0,    0,          True,          32),
                        "mips64":     (   8,     0,    0,          False,         64),
                        "mips64el":   (   8,     0,    0,          True,          64),
                        "avr32":      (6317,     0,    0,          False,         32),
                        "sh4":        (42,       0,    0,          True,          32),

                      },
            "linux-musl" : {
                        "aarch64" :   (183,    0,    0,            True,          64),
                        "aarch64_be" :(183,    0,    0,            False,         64),
                        "arm" :       (  40,    97,    0,          True,          32),
                        "armeb":      (  40,    97,    0,          False,         32),
                        "powerpc":    (  20,     0,    0,          False,         32),
                        "i386":       (   3,     0,    0,          True,          32),
                        "i486":       (   3,     0,    0,          True,          32),
                        "i586":       (   3,     0,    0,          True,          32),
                        "i686":       (   3,     0,    0,          True,          32),
                        "x86_64":     (  62,     0,    0,          True,          64),
                        "mips":       (   8,     0,    0,          False,         32),
                        "mipsel":     (   8,     0,    0,          True,          32),
                        "mips64":     (   8,     0,    0,          False,         64),
                        "mips64el":   (   8,     0,    0,          True,          64),
                        "microblaze":  (189,     0,    0,          False,         32),
                        "microblazeeb":(189,     0,    0,          False,         32),
                        "microblazeel":(189,     0,    0,          True,          32),
                        "sh4":        (  42,     0,    0,          True,          32),
                      },
            "uclinux-uclibc" : {
                        "bfin":       ( 106,     0,    0,          True,         32),
                      },
            "linux-gnueabi" : {
                        "arm" :       (40,     0,    0,          True,          32),
                        "armeb" :     (40,     0,    0,          False,         32),
                      },
            "linux-musleabi" : {
                        "arm" :       (40,     0,    0,          True,          32),
                        "armeb" :     (40,     0,    0,          False,         32),
                      },
            "linux-uclibceabi" : {
                        "arm" :       (40,     0,    0,          True,          32),
                        "armeb" :     (40,     0,    0,          False,         32),
                      },
            "linux-gnuspe" : {
                        "powerpc":    (20,     0,    0,          False,         32),
                      },
            "linux-muslspe" : {
                        "powerpc":    (20,     0,    0,          False,         32),
                      },
            "linux-uclibcspe" : {
                        "powerpc":    (20,     0,    0,          False,         32),
                      },
            "linux-gnu" :       {
                        "powerpc":    (20,     0,    0,          False,         32),
                        "sh4":        (42,     0,    0,          True,          32),
                      },
            "linux-gnux32" :       {
                        "x86_64":     (62,     0,    0,          True,          32),
                      },
            "linux-gnun32" :       {
                        "mips64":       ( 8,     0,    0,          False,         32),
                        "mips64el":     ( 8,     0,    0,          True,          32),
                        "mipsisa64r6":  ( 8,     0,    0,          False,         32),
                        "mipsisa64r6el":( 8,     0,    0,          True,          32),
                      },
        }

    # Add in any extra user supplied data which may come from a BSP layer, removing the
    # need to always change this class directly
    extra_machdata = (d.getVar("PACKAGEQA_EXTRA_MACHDEFFUNCS") or "").split()
    for m in extra_machdata:
        call = m + "(machdata, d)"
        locs = { "machdata" : machdata, "d" : d}
        machdata = bb.utils.better_eval(call, locs)

    return machdata

}


python package_qa_handle_error () {
def package_qa_handle_error(error_class, error_msg, d):
    package_qa_write_error(error_class, error_msg, d)
    if error_class in (d.getVar("ERROR_QA") or "").split():
        bb.error("QA Issue: %s [%s]" % (error_msg, error_class))
        d.setVar("QA_SANE", False)
        return False
    elif error_class in (d.getVar("WARN_QA") or "").split():
        bb.warn("QA Issue: %s [%s]" % (error_msg, error_class))
    else:
        bb.note("QA Issue: %s [%s]" % (error_msg, error_class))
    return True
}


python package_qa_hash_style () {
def package_qa_hash_style(path, name, d, elf, messages):
    """
    Check if the binary has the right hash style...
    """

    if not elf:
        return

    if os.path.islink(path):
        return

    gnu_hash = "--hash-style=gnu" in d.getVar('LDFLAGS')
    if not gnu_hash:
        gnu_hash = "--hash-style=both" in d.getVar('LDFLAGS')
    if not gnu_hash:
        return

    sane = False
    has_syms = False

    phdrs = elf.run_objdump("-p", d)

    # If this binary has symbols, we expect it to have GNU_HASH too.
    for line in phdrs.split("\n"):
        if "SYMTAB" in line:
            has_syms = True
        if "GNU_HASH" in line:
            sane = True
        if "[mips32]" in line or "[mips64]" in line:
            sane = True

    if has_syms and not sane:
        package_qa_add_message(messages, "ldflags", "No GNU_HASH in the elf binary: '%s'" % path)

}


python package_qa_package () {
def package_qa_package(warnfuncs, errorfuncs, skip, package, d):
    warnings = {}
    errors = {}

    for func in warnfuncs:
        func(package, d, warnings)
    for func in errorfuncs:
        func(package, d, errors)

    for w in warnings:
        package_qa_handle_error(w, warnings[w], d)
    for e in errors:
        package_qa_handle_error(e, errors[e], d)

    return len(errors) == 0
}


python package_qa_textrel () {
def package_qa_textrel(path, name, d, elf, messages):
    """
    Check if the binary contains relocations in .text
    """

    if not elf:
        return

    if os.path.islink(path):
        return

    phdrs = elf.run_objdump("-p", d)
    sane = True

    import re
    textrel_re = re.compile("\s+TEXTREL\s+")
    for line in phdrs.split("\n"):
        if textrel_re.match(line):
            sane = False

    if not sane:
        package_qa_add_message(messages, "textrel", "ELF binary '%s' has relocations in .text" % path)
}


python package_qa_walk () {
def package_qa_walk(warnfuncs, errorfuncs, skip, package, d):
    import oe.qa

    #if this will throw an exception, then fix the dict above
    target_os   = d.getVar('TARGET_OS')
    target_arch = d.getVar('TARGET_ARCH')

    warnings = {}
    errors = {}
    for path in pkgfiles[package]:
            elf = oe.qa.ELFFile(path)
            try:
                elf.open()
            except (IOError, oe.qa.NotELFFileError):
                # IOError can happen if the packaging control files disappear,
                elf = None
            for func in warnfuncs:
                func(path, package, d, elf, warnings)
            for func in errorfuncs:
                func(path, package, d, elf, errors)

    for w in warnings:
        package_qa_handle_error(w, warnings[w], d)
    for e in errors:
        package_qa_handle_error(e, errors[e], d)
}


python package_qa_write_error () {
def package_qa_write_error(type, error, d):
    logfile = d.getVar('QA_LOGFILE')
    if logfile:
        p = d.getVar('P')
        with open(logfile, "a+") as f:
            f.write("%s: %s [%s]\n" % (p, error, type))
}


python patch_do_patch () {
    import oe.patch

    patchsetmap = {
        "patch": oe.patch.PatchTree,
        "quilt": oe.patch.QuiltTree,
        "git": oe.patch.GitApplyTree,
    }

    cls = patchsetmap[d.getVar('PATCHTOOL') or 'quilt']

    resolvermap = {
        "noop": oe.patch.NOOPResolver,
        "user": oe.patch.UserResolver,
    }

    rcls = resolvermap[d.getVar('PATCHRESOLVE') or 'user']

    classes = {}

    s = d.getVar('S')

    os.putenv('PATH', d.getVar('PATH'))

    # We must use one TMPDIR per process so that the "patch" processes
    # don't generate the same temp file name.

    import tempfile
    process_tmpdir = tempfile.mkdtemp()
    os.environ['TMPDIR'] = process_tmpdir

    for patch in src_patches(d):
        _, _, local, _, _, parm = bb.fetch.decodeurl(patch)

        if "patchdir" in parm:
            patchdir = parm["patchdir"]
            if not os.path.isabs(patchdir):
                patchdir = os.path.join(s, patchdir)
        else:
            patchdir = s

        if not patchdir in classes:
            patchset = cls(patchdir, d)
            resolver = rcls(patchset, oe_terminal)
            classes[patchdir] = (patchset, resolver)
            patchset.Clean()
        else:
            patchset, resolver = classes[patchdir]

        bb.note("Applying patch '%s' (%s)" % (parm['patchname'], oe.path.format_display(local, d)))
        try:
            patchset.Import({"file":local, "strippath": parm['striplevel']}, True)
        except Exception as exc:
            bb.utils.remove(process_tmpdir, True)
            bb.fatal(str(exc))
        try:
            resolver.Resolve()
        except bb.BBHandledException as e:
            bb.utils.remove(process_tmpdir, True)
            bb.fatal(str(e))

    bb.utils.remove(process_tmpdir, True)
    del os.environ['TMPDIR']
}


python patch_task_patch_prefunc () {
    # Prefunc for do_patch
    func = d.getVar('BB_RUNTASK')
    srcsubdir = d.getVar('S')

    patchdir = os.path.join(srcsubdir, 'patches')
    if os.path.exists(patchdir):
        if os.listdir(patchdir):
            d.setVar('PATCH_HAS_PATCHES_DIR', '1')
        else:
            os.rmdir(patchdir)
}


python patch_task_postfunc () {
    # Prefunc for task functions between do_unpack and do_patch
    import oe.patch
    import shutil
    func = d.getVar('BB_RUNTASK')
    srcsubdir = d.getVar('S')

    if os.path.exists(srcsubdir):
        if func == 'do_patch':
            haspatches = (d.getVar('PATCH_HAS_PATCHES_DIR') == '1')
            patchdir = os.path.join(srcsubdir, 'patches')
            if os.path.exists(patchdir):
                shutil.rmtree(patchdir)
                if haspatches:
                    stdout, _ = bb.process.run('git status --porcelain patches', cwd=srcsubdir)
                    if stdout:
                        bb.process.run('git checkout patches', cwd=srcsubdir)
        stdout, _ = bb.process.run('git status --porcelain .', cwd=srcsubdir)
        if stdout:
            useroptions = []
            oe.patch.GitApplyTree.gitCommandUserOptions(useroptions, d=d)
            bb.process.run('git add .; git %s commit -a -m "Committing changes from %s\n\n%s"' % (' '.join(useroptions), func, oe.patch.GitApplyTree.ignore_commit_prefix + ' - from %s' % func), cwd=srcsubdir)
}


python perform_packagecopy () {
    enabled = oe.data.typed_value('LICENSE_CREATE_PACKAGE', d)
    if d.getVar('CLASSOVERRIDE') == 'class-target' and enabled:
        lic_files_paths = find_license_files(d)

        # LICENSE_FILES_DIRECTORY starts with '/' so os.path.join cannot be used to join D and LICENSE_FILES_DIRECTORY
        destdir = d.getVar('D') + os.path.join(d.getVar('LICENSE_FILES_DIRECTORY'), d.getVar('PN'))
        copy_license_files(lic_files_paths, destdir)
        add_package_and_files(d)
    dest = d.getVar('D')
    dvar = d.getVar('PKGD')

    # Start by package population by taking a copy of the installed
    # files to operate on
    # Preserve sparse files and hard links
    cmd = 'tar -cf - -C %s -p . | tar -xf - -C %s' % (dest, dvar)
    (retval, output) = oe.utils.getstatusoutput(cmd)
    if retval:
        bb.fatal("file copy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else ""))

    # replace RPATHs for the nativesdk binaries, to make them relocatable
    if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('cross-canadian', d):
        rpath_replace (dvar, d)
}


python perform_packagecopy_prepend () {
None}


python pkgarch_mapping () {
def pkgarch_mapping(d):
    # Compatibility mappings of TUNE_PKGARCH (opt in)
    if d.getVar("PKGARCHCOMPAT_ARMV7A"):
        if d.getVar("TUNE_PKGARCH") == "armv7a-vfp-neon":
            d.setVar("TUNE_PKGARCH", "armv7a")
}


python populate_lic_qa_checksum () {
    """
    Check for changes in the license files.
    """
    import tempfile
    sane = True

    lic_files = d.getVar('LIC_FILES_CHKSUM') or ''
    lic = d.getVar('LICENSE')
    pn = d.getVar('PN')

    if lic == "CLOSED":
        return

    if not lic_files and d.getVar('SRC_URI'):
        sane = package_qa_handle_error("license-checksum", pn + ": Recipe file fetches files and does not have license file information (LIC_FILES_CHKSUM)", d)

    srcdir = d.getVar('S')

    for url in lic_files.split():
        try:
            (type, host, path, user, pswd, parm) = bb.fetch.decodeurl(url)
        except bb.fetch.MalformedUrl:
            sane = package_qa_handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM contains an invalid URL: " + url, d)
            continue
        srclicfile = os.path.join(srcdir, path)
        if not os.path.isfile(srclicfile):
            package_qa_handle_error("license-checksum", pn + ": LIC_FILES_CHKSUM points to an invalid file: " + srclicfile, d)
            continue

        recipemd5 = parm.get('md5', '')
        beginline, endline = 0, 0
        if 'beginline' in parm:
            beginline = int(parm['beginline'])
        if 'endline' in parm:
            endline = int(parm['endline'])

        if (not beginline) and (not endline):
            md5chksum = bb.utils.md5_file(srclicfile)
            with open(srclicfile, 'rb') as f:
                license = f.read()
        else:
            fi = open(srclicfile, 'rb')
            fo = tempfile.NamedTemporaryFile(mode='wb', prefix='poky.', suffix='.tmp', delete=False)
            tmplicfile = fo.name;
            lineno = 0
            linesout = 0
            license = []
            for line in fi:
                lineno += 1
                if (lineno >= beginline):
                    if ((lineno <= endline) or not endline):
                        fo.write(line)
                        license.append(line)
                        linesout += 1
                    else:
                        break
            fo.flush()
            fo.close()
            fi.close()
            md5chksum = bb.utils.md5_file(tmplicfile)
            license = b''.join(license)
            os.unlink(tmplicfile)

        if recipemd5 == md5chksum:
            bb.note (pn + ": md5 checksum matched for ", url)
        else:
            if recipemd5:
                msg = pn + ": The LIC_FILES_CHKSUM does not match for " + url
                msg = msg + "\n" + pn + ": The new md5 checksum is " + md5chksum
                try:
                    license_lines = license.decode('utf-8').split('\n')
                except:
                    # License text might not be valid UTF-8, in which
                    # case we don't know how to include it in our output
                    # and have to skip it.
                    pass
                else:
                    max_lines = int(d.getVar('QA_MAX_LICENSE_LINES') or 20)
                    if not license_lines or license_lines[-1] != '':
                        # Ensure that our license text ends with a line break
                        # (will be added with join() below).
                        license_lines.append('')
                    remove = len(license_lines) - max_lines
                    if remove > 0:
                        start = max_lines // 2
                        end = start + remove - 1
                        del license_lines[start:end]
                        license_lines.insert(start, '...')
                    msg = msg + "\n" + pn + ": Here is the selected license text:" + \
                          "\n" + \
                          "{:v^70}".format(" beginline=%d " % beginline if beginline else "") + \
                          "\n" + "\n".join(license_lines) + \
                          "{:^^70}".format(" endline=%d " % endline if endline else "")
                if beginline:
                    if endline:
                        srcfiledesc = "%s (lines %d through to %d)" % (srclicfile, beginline, endline)
                    else:
                        srcfiledesc = "%s (beginning on line %d)" % (srclicfile, beginline)
                elif endline:
                    srcfiledesc = "%s (ending on line %d)" % (srclicfile, endline)
                else:
                    srcfiledesc = srclicfile
                msg = msg + "\n" + pn + ": Check if the license information has changed in %s to verify that the LICENSE value \"%s\" remains valid" % (srcfiledesc, lic)

            else:
                msg = pn + ": LIC_FILES_CHKSUM is not specified for " +  url
                msg = msg + "\n" + pn + ": The md5 checksum is " + md5chksum
            sane = package_qa_handle_error("license-checksum", msg, d)

    if not sane:
        bb.fatal("Fatal QA errors found, failing task.")
}


python populate_packages () {
    import glob, re

    workdir = d.getVar('WORKDIR')
    outdir = d.getVar('DEPLOY_DIR')
    dvar = d.getVar('PKGD')
    packages = d.getVar('PACKAGES')
    pn = d.getVar('PN')

    bb.utils.mkdirhier(outdir)
    os.chdir(dvar)

    autodebug = not (d.getVar("NOAUTOPACKAGEDEBUG") or False)

    # Sanity check PACKAGES for duplicates
    # Sanity should be moved to sanity.bbclass once we have the infrastucture
    package_list = []

    for pkg in packages.split():
        if pkg in package_list:
            msg = "%s is listed in PACKAGES multiple times, this leads to packaging errors." % pkg
            package_qa_handle_error("packages-list", msg, d)
        elif autodebug and pkg.endswith("-dbg"):
            package_list.insert(0, pkg)
        else:
            package_list.append(pkg)
    d.setVar('PACKAGES', ' '.join(package_list))
    pkgdest = d.getVar('PKGDEST')

    seen = []

    # os.mkdir masks the permissions with umask so we have to unset it first
    oldumask = os.umask(0)

    debug = []
    for root, dirs, files in cpath.walk(dvar):
        dir = root[len(dvar):]
        if not dir:
            dir = os.sep
        for f in (files + dirs):
            path = "." + os.path.join(dir, f)
            if "/.debug/" in path or path.endswith("/.debug"):
                debug.append(path)

    for pkg in package_list:
        root = os.path.join(pkgdest, pkg)
        bb.utils.mkdirhier(root)

        filesvar = d.getVar('FILES_%s' % pkg) or ""
        if "//" in filesvar:
            msg = "FILES variable for package %s contains '//' which is invalid. Attempting to fix this but you should correct the metadata.\n" % pkg
            package_qa_handle_error("files-invalid", msg, d)
            filesvar.replace("//", "/")

        origfiles = filesvar.split()
        files, symlink_paths = files_from_filevars(origfiles)

        if autodebug and pkg.endswith("-dbg"):
            files.extend(debug)

        for file in files:
            if (not cpath.islink(file)) and (not cpath.exists(file)):
                continue
            if file in seen:
                continue
            seen.append(file)

            def mkdir(src, dest, p):
                src = os.path.join(src, p)
                dest = os.path.join(dest, p)
                fstat = cpath.stat(src)
                os.mkdir(dest, fstat.st_mode)
                os.chown(dest, fstat.st_uid, fstat.st_gid)
                if p not in seen:
                    seen.append(p)
                cpath.updatecache(dest)

            def mkdir_recurse(src, dest, paths):
                if cpath.exists(dest + '/' + paths):
                    return
                while paths.startswith("./"):
                    paths = paths[2:]
                p = "."
                for c in paths.split("/"):
                    p = os.path.join(p, c)
                    if not cpath.exists(os.path.join(dest, p)):
                        mkdir(src, dest, p)

            if cpath.isdir(file) and not cpath.islink(file):
                mkdir_recurse(dvar, root, file)
                continue

            mkdir_recurse(dvar, root, os.path.dirname(file))
            fpath = os.path.join(root,file)
            if not cpath.islink(file):
                os.link(file, fpath)
                continue
            ret = bb.utils.copyfile(file, fpath)
            if ret is False or ret == 0:
                bb.fatal("File population failed")

        # Check if symlink paths exist
        for file in symlink_paths:
            if not os.path.exists(os.path.join(root,file)):
                bb.fatal("File '%s' cannot be packaged into '%s' because its "
                         "parent directory structure does not exist. One of "
                         "its parent directories is a symlink whose target "
                         "directory is not included in the package." %
                         (file, pkg))

    os.umask(oldumask)
    os.chdir(workdir)

    # Handle LICENSE_EXCLUSION
    package_list = []
    for pkg in packages.split():
        if d.getVar('LICENSE_EXCLUSION-' + pkg):
            msg = "%s has an incompatible license. Excluding from packaging." % pkg
            package_qa_handle_error("incompatible-license", msg, d)
        else:
            package_list.append(pkg)
    d.setVar('PACKAGES', ' '.join(package_list))

    unshipped = []
    for root, dirs, files in cpath.walk(dvar):
        dir = root[len(dvar):]
        if not dir:
            dir = os.sep
        for f in (files + dirs):
            path = os.path.join(dir, f)
            if ('.' + path) not in seen:
                unshipped.append(path)

    if unshipped != []:
        msg = pn + ": Files/directories were installed but not shipped in any package:"
        if "installed-vs-shipped" in (d.getVar('INSANE_SKIP_' + pn) or "").split():
            bb.note("Package %s skipping QA tests: installed-vs-shipped" % pn)
        else:
            for f in unshipped:
                msg = msg + "\n  " + f
            msg = msg + "\nPlease set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.\n"
            msg = msg + "%s: %d installed and not shipped files." % (pn, len(unshipped))
            package_qa_handle_error("installed-vs-shipped", msg, d)
}


python populate_sdk_common () {
def populate_sdk_common(d):
    from oe.sdk import populate_sdk
    from oe.manifest import create_manifest, Manifest

    pn = d.getVar('PN')
    runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", pn, d)
    runtime_mapping_rename("TOOLCHAIN_TARGET_TASK_ATTEMPTONLY", pn, d)

    ld = bb.data.createCopy(d)
    ld.setVar("PKGDATA_DIR", "${STAGING_DIR}/${SDK_ARCH}-${SDKPKGSUFFIX}${SDK_VENDOR}-${SDK_OS}/pkgdata")
    runtime_mapping_rename("TOOLCHAIN_HOST_TASK", pn, ld)
    runtime_mapping_rename("TOOLCHAIN_HOST_TASK_ATTEMPTONLY", pn, ld)
    d.setVar("TOOLCHAIN_HOST_TASK", ld.getVar("TOOLCHAIN_HOST_TASK"))
    d.setVar("TOOLCHAIN_HOST_TASK_ATTEMPTONLY", ld.getVar("TOOLCHAIN_HOST_TASK_ATTEMPTONLY"))

    # create target/host SDK manifests
    create_manifest(d, manifest_dir=d.getVar('SDK_DIR'),
                    manifest_type=Manifest.MANIFEST_TYPE_SDK_HOST)
    create_manifest(d, manifest_dir=d.getVar('SDK_DIR'),
                    manifest_type=Manifest.MANIFEST_TYPE_SDK_TARGET)

    populate_sdk(d)
}


python process_dir () {
def process_dir (rootdir, directory, d):
    import stat

    rootdir = os.path.normpath(rootdir)
    cmd = d.expand('${CHRPATH_BIN}')
    tmpdir = os.path.normpath(d.getVar('TMPDIR', False))
    baseprefix = os.path.normpath(d.expand('${base_prefix}'))
    hostos = d.getVar("HOST_OS")

    #bb.debug("Checking %s for binaries to process" % directory)
    if not os.path.exists(directory):
        return

    if "linux" in hostos:
        process_file = process_file_linux
    elif "darwin" in hostos:
        process_file = process_file_darwin
    else:
        # Relocations not supported
        return

    dirs = os.listdir(directory)
    for file in dirs:
        fpath = directory + "/" + file
        fpath = os.path.normpath(fpath)
        if os.path.islink(fpath):
            # Skip symlinks
            continue

        if os.path.isdir(fpath):
            process_dir(rootdir, fpath, d)
        else:
            #bb.note("Testing %s for relocatability" % fpath)

            # We need read and write permissions for chrpath, if we don't have
            # them then set them temporarily. Take a copy of the files
            # permissions so that we can restore them afterwards.
            perms = os.stat(fpath)[stat.ST_MODE]
            if os.access(fpath, os.W_OK|os.R_OK):
                perms = None
            else:
                # Temporarily make the file writeable so we can chrpath it
                os.chmod(fpath, perms|stat.S_IRWXU)
            process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d)

            if perms:
                os.chmod(fpath, perms)
}


python process_file_darwin () {
def process_file_darwin(cmd, fpath, rootdir, baseprefix, tmpdir, d):
    import subprocess as sub

    p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', fpath],stdout=sub.PIPE,stderr=sub.PIPE)
    out, err = p.communicate()
    # If returned successfully, process stdout for results
    if p.returncode != 0:
        return
    for l in out.split("\n"):
        if "(compatibility" not in l:
            continue
        rpath = l.partition("(compatibility")[0].strip()
        if baseprefix not in rpath:
            continue

        newpath = "@loader_path/" + os.path.relpath(rpath, os.path.dirname(fpath.replace(rootdir, "/")))
        p = sub.Popen([d.expand("${HOST_PREFIX}install_name_tool"), '-change', rpath, newpath, fpath],stdout=sub.PIPE,stderr=sub.PIPE)
        out, err = p.communicate()
}


python process_file_linux () {
def process_file_linux(cmd, fpath, rootdir, baseprefix, tmpdir, d):
    import subprocess as sub

    p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE)
    out, err = p.communicate()
    # If returned successfully, process stdout for results
    if p.returncode != 0:
        return

    out = out.decode('utf-8')

    # Handle RUNPATH as well as RPATH
    out = out.replace("RUNPATH=","RPATH=")
    # Throw away everything other than the rpath list
    curr_rpath = out.partition("RPATH=")[2]
    #bb.note("Current rpath for %s is %s" % (fpath, curr_rpath.strip()))
    rpaths = curr_rpath.strip().split(":")
    new_rpaths = []
    modified = False
    for rpath in rpaths:
        # If rpath is already dynamic copy it to new_rpath and continue
        if rpath.find("$ORIGIN") != -1:
            new_rpaths.append(rpath)
            continue
        rpath =  os.path.normpath(rpath)
        if baseprefix not in rpath and tmpdir not in rpath:
            # Skip standard search paths
            if rpath in ['/lib', '/usr/lib', '/lib64/', '/usr/lib64']:
                bb.warn("Skipping RPATH %s as is a standard search path for %s" % (rpath, fpath))
                modified = True
                continue
            new_rpaths.append(rpath)
            continue
        new_rpaths.append("$ORIGIN/" + os.path.relpath(rpath, os.path.dirname(fpath.replace(rootdir, "/"))))
        modified = True

    # if we have modified some rpaths call chrpath to update the binary
    if modified:
        args = ":".join(new_rpaths)
        #bb.note("Setting rpath for %s to %s" %(fpath, args))
        p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE)
        out, err = p.communicate()
        if p.returncode != 0:
            bb.fatal("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN'), p.returncode, out, err))
}


python pstaging_fetch () {
def pstaging_fetch(sstatefetch, sstatepkg, d):
    import bb.fetch2

    # Only try and fetch if the user has configured a mirror
    mirrors = d.getVar('SSTATE_MIRRORS')
    if not mirrors:
        return

    # Copy the data object and override DL_DIR and SRC_URI
    localdata = bb.data.createCopy(d)

    dldir = localdata.expand("${SSTATE_DIR}")
    bb.utils.mkdirhier(dldir)

    localdata.delVar('MIRRORS')
    localdata.setVar('FILESPATH', dldir)
    localdata.setVar('DL_DIR', dldir)
    localdata.setVar('PREMIRRORS', mirrors)

    # if BB_NO_NETWORK is set but we also have SSTATE_MIRROR_ALLOW_NETWORK,
    # we'll want to allow network access for the current set of fetches.
    if localdata.getVar('BB_NO_NETWORK') == "1" and localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK') == "1":
        localdata.delVar('BB_NO_NETWORK')

    # Try a fetch from the sstate mirror, if it fails just return and
    # we will build the package
    uris = ['file://{0};downloadfilename={0}'.format(sstatefetch),
            'file://{0}.siginfo;downloadfilename={0}.siginfo'.format(sstatefetch)]
    if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False):
        uris += ['file://{0}.sig;downloadfilename={0}.sig'.format(sstatefetch)]

    for srcuri in uris:
        localdata.setVar('SRC_URI', srcuri)
        try:
            fetcher = bb.fetch2.Fetch([srcuri], localdata, cache=False)
            fetcher.download()

        except bb.fetch2.BBFetchException:
            break
}


python raise_sanity_error () {
def raise_sanity_error(msg, d, network_error=False):
    if d.getVar("SANITY_USE_EVENTS") == "1":
        try:
            bb.event.fire(bb.event.SanityCheckFailed(msg, network_error), d)
        except TypeError:
            bb.event.fire(bb.event.SanityCheckFailed(msg), d)
        return

    bb.fatal(""" OE-core's config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:

    %s""" % msg)
}


python read_libdep_files () {
def read_libdep_files(d):
    pkglibdeps = {}
    packages = d.getVar('PACKAGES').split()
    for pkg in packages:
        pkglibdeps[pkg] = {}
        for extension in ".shlibdeps", ".pcdeps", ".clilibdeps":
            depsfile = d.expand("${PKGDEST}/" + pkg + extension)
            if os.access(depsfile, os.R_OK):
                fd = open(depsfile)
                lines = fd.readlines()
                fd.close()
                for l in lines:
                    l.rstrip()
                    deps = bb.utils.explode_dep_versions2(l)
                    for dep in deps:
                        if not dep in pkglibdeps[pkg]:
                            pkglibdeps[pkg][dep] = deps[dep]
    return pkglibdeps
}


python read_shlibdeps () {
    pkglibdeps = read_libdep_files(d)

    packages = d.getVar('PACKAGES').split()
    for pkg in packages:
        rdepends = bb.utils.explode_dep_versions2(d.getVar('RDEPENDS_' + pkg) or "")
        for dep in pkglibdeps[pkg]:
            # Add the dep if it's not already there, or if no comparison is set
            if dep not in rdepends:
                rdepends[dep] = []
            for v in pkglibdeps[pkg][dep]:
                if v not in rdepends[dep]:
                    rdepends[dep].append(v)
        d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, commasep=False))
}


python read_subpackage_metadata () {
    import oe.packagedata

    vars = {
        "PN" : d.getVar('PN'),
        "PE" : d.getVar('PE'),
        "PV" : d.getVar('PV'),
        "PR" : d.getVar('PR'),
    }

    data = oe.packagedata.read_pkgdata(vars["PN"], d)

    for key in data.keys():
        d.setVar(key, data[key])

    for pkg in d.getVar('PACKAGES').split():
        sdata = oe.packagedata.read_subpkgdata(pkg, d)
        for key in sdata.keys():
            if key in vars:
                if sdata[key] != vars[key]:
                    if key == "PN":
                        bb.fatal("Recipe %s is trying to create package %s which was already written by recipe %s. This will cause corruption, please resolve this and only provide the package from one recipe or the other or only build one of the recipes." % (vars[key], pkg, sdata[key]))
                    bb.fatal("Recipe %s is trying to change %s from '%s' to '%s'. This will cause do_package_write_* failures since the incorrect data will be used and they will be unable to find the right workdir." % (vars["PN"], key, vars[key], sdata[key]))
                continue
            #
            # If we set unsuffixed variables here there is a chance they could clobber override versions
            # of that variable, e.g. DESCRIPTION could clobber DESCRIPTION_<pkgname>
            # We therefore don't clobber for the unsuffixed variable versions
            #
            if key.endswith("_" + pkg):
                d.setVar(key, sdata[key])
            else:
                d.setVar(key, sdata[key], parsing=True)
}


python return_spdx () {
def return_spdx(d, license):
    """
    This function returns the spdx mapping of a license if it exists.
     """
    return d.getVarFlag('SPDXLICENSEMAP', license)
}


python rootfs_command_variables () {
def rootfs_command_variables(d):
    return ['ROOTFS_POSTPROCESS_COMMAND','ROOTFS_PREPROCESS_COMMAND','ROOTFS_POSTINSTALL_COMMAND','ROOTFS_POSTUNINSTALL_COMMAND','OPKG_PREPROCESS_COMMANDS','OPKG_POSTPROCESS_COMMANDS','IMAGE_POSTPROCESS_COMMAND',
            'IMAGE_PREPROCESS_COMMAND','RPM_PREPROCESS_COMMANDS','RPM_POSTPROCESS_COMMANDS','DEB_PREPROCESS_COMMANDS','DEB_POSTPROCESS_COMMANDS']
}


python rootfs_variables () {
def rootfs_variables(d):
    from oe.rootfs import variable_depends
    variables = ['IMAGE_DEVICE_TABLE','IMAGE_DEVICE_TABLES','BUILD_IMAGES_FROM_FEEDS','IMAGE_TYPES_MASKED','IMAGE_ROOTFS_ALIGNMENT','IMAGE_OVERHEAD_FACTOR','IMAGE_ROOTFS_SIZE','IMAGE_ROOTFS_EXTRA_SPACE',
                 'IMAGE_ROOTFS_MAXSIZE','IMAGE_NAME','IMAGE_LINK_NAME','IMAGE_MANIFEST','DEPLOY_DIR_IMAGE','IMAGE_FSTYPES','IMAGE_INSTALL_COMPLEMENTARY','IMAGE_LINGUAS',
                 'MULTILIBRE_ALLOW_REP','MULTILIB_TEMP_ROOTFS','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS',
                 'PACKAGE_ARCHS','PACKAGE_CLASSES','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','OVERRIDES','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI','INTERCEPT_DIR','USE_DEVFS',
                 'CONVERSIONTYPES', 'IMAGE_GEN_DEBUGFS', 'ROOTFS_RO_UNNEEDED', 'IMGDEPLOYDIR', 'PACKAGE_EXCLUDE_COMPLEMENTARY']
    variables.extend(rootfs_command_variables(d))
    variables.extend(variable_depends(d))
    return " ".join(variables)
}


python rpath_replace () {
def rpath_replace (path, d):
    bindirs = d.expand("${bindir} ${sbindir} ${base_sbindir} ${base_bindir} ${libdir} ${base_libdir} ${libexecdir} ${PREPROCESS_RELOCATE_DIRS}").split()

    for bindir in bindirs:
        #bb.note ("Processing directory " + bindir)
        directory = path + "/" + bindir
        process_dir (path, directory, d)
}


python runtime_mapping_rename () {
def runtime_mapping_rename (varname, pkg, d):
    #bb.note("%s before: %s" % (varname, d.getVar(varname)))

    new_depends = {}
    deps = bb.utils.explode_dep_versions2(d.getVar(varname) or "")
    for depend in deps:
        new_depend = get_package_mapping(depend, pkg, d)
        new_depends[new_depend] = deps[depend]

    d.setVar(varname, bb.utils.join_deps(new_depends, commasep=False))

    #bb.note("%s after: %s" % (varname, d.getVar(varname)))
}


python sanity_check_conffiles () {
def sanity_check_conffiles(d):
    funcs = d.getVar('BBLAYERS_CONF_UPDATE_FUNCS').split()
    for func in funcs:
        conffile, current_version, required_version, func = func.split(":")
        if check_conf_exists(conffile, d) and d.getVar(current_version) is not None and \
                d.getVar(current_version) != d.getVar(required_version):
            try:
                bb.build.exec_func(func, d, pythonexception=True)
            except NotImplementedError as e:
                bb.fatal(str(e))
            d.setVar("BB_INVALIDCONF", True)
}


python sanity_check_locale () {
def sanity_check_locale(d):
    """
    Currently bitbake switches locale to en_US.UTF-8 so check that this locale actually exists.
    """
    import locale
    try:
        locale.setlocale(locale.LC_ALL, "en_US.UTF-8")
    except locale.Error:
        raise_sanity_error("You system needs to support the en_US.UTF-8 locale.", d)
}


python sanity_conf_find_line () {
def sanity_conf_find_line(pattern, lines):
    import re
    return next(((index, line)
        for index, line in enumerate(lines)
        if re.search(pattern, line)), (None, None))
}


python sanity_conf_read () {
def sanity_conf_read(fn):
    with open(fn, 'r') as f:
        lines = f.readlines()
    return lines
}


python sanity_conf_update () {
def sanity_conf_update(fn, lines, version_var_name, new_version):
    index, line = sanity_conf_find_line(r"^%s" % version_var_name, lines)
    lines[index] = '%s = "%d"\n' % (version_var_name, new_version)
    with open(fn, "w") as f:
        f.write(''.join(lines))
}


python sanity_handle_abichanges () {
def sanity_handle_abichanges(status, d):
    #
    # Check the 'ABI' of TMPDIR
    #
    import subprocess

    current_abi = d.getVar('OELAYOUT_ABI')
    abifile = d.getVar('SANITY_ABIFILE')
    if os.path.exists(abifile):
        with open(abifile, "r") as f:
            abi = f.read().strip()
        if not abi.isdigit():
            with open(abifile, "w") as f:
                f.write(current_abi)
        elif int(abi) <= 11 and current_abi == "12":
            status.addresult("The layout of TMPDIR changed for Recipe Specific Sysroots.\nConversion doesn't make sense and this change will rebuild everything so please delete TMPDIR (%s).\n" % d.getVar("TMPDIR"))
        elif (abi != current_abi):
            # Code to convert from one ABI to another could go here if possible.
            status.addresult("Error, TMPDIR has changed its layout version number (%s to %s) and you need to either rebuild, revert or adjust it at your own risk.\n" % (abi, current_abi))
    else:
        with open(abifile, "w") as f:
            f.write(current_abi)
}


python sdk_command_variables () {
def sdk_command_variables(d):
    return ['OPKG_PREPROCESS_COMMANDS','OPKG_POSTPROCESS_COMMANDS','POPULATE_SDK_POST_HOST_COMMAND','POPULATE_SDK_POST_TARGET_COMMAND','SDK_POSTPROCESS_COMMAND','RPM_PREPROCESS_COMMANDS',
            'RPM_POSTPROCESS_COMMANDS']
}


python sdk_variables () {
def sdk_variables(d):
    variables = ['BUILD_IMAGES_FROM_FEEDS','SDK_OS','SDK_OUTPUT','SDKPATHNATIVE','SDKTARGETSYSROOT','SDK_DIR','SDK_VENDOR','SDKIMAGE_INSTALL_COMPLEMENTARY','SDK_PACKAGE_ARCHS','SDK_OUTPUT',
                 'SDKTARGETSYSROOT','MULTILIB_VARIANTS','MULTILIBS','ALL_MULTILIB_PACKAGE_ARCHS','MULTILIB_GLOBAL_VARIANTS','BAD_RECOMMENDATIONS','NO_RECOMMENDATIONS','PACKAGE_ARCHS',
                 'PACKAGE_CLASSES','TARGET_VENDOR','TARGET_VENDOR','TARGET_ARCH','TARGET_OS','BBEXTENDVARIANT','FEED_DEPLOYDIR_BASE_URI', 'PACKAGE_EXCLUDE_COMPLEMENTARY']
    variables.extend(sdk_command_variables(d))
    return " ".join(variables)
}


python set_image_size () {
        rootfs_size = get_rootfs_size(d)
        d.setVar('ROOTFS_SIZE', str(rootfs_size))
        d.setVarFlag('ROOTFS_SIZE', 'export', '1')
}


python set_packagetriplet () {
def set_packagetriplet(d):
    archs = []
    tos = []
    tvs = []

    archs.append(d.getVar("PACKAGE_ARCHS").split())
    tos.append(d.getVar("TARGET_OS"))
    tvs.append(d.getVar("TARGET_VENDOR"))

    def settriplet(d, varname, archs, tos, tvs):
        triplets = []
        for i in range(len(archs)):
            for arch in archs[i]:
                triplets.append(arch + tvs[i] + "-" + tos[i])
        triplets.reverse()
        d.setVar(varname, " ".join(triplets))

    settriplet(d, "PKGTRIPLETS", archs, tos, tvs)

    variants = d.getVar("MULTILIB_VARIANTS") or ""
    for item in variants.split():
        localdata = bb.data.createCopy(d)
        overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
        localdata.setVar("OVERRIDES", overrides)

        archs.append(localdata.getVar("PACKAGE_ARCHS").split())
        tos.append(localdata.getVar("TARGET_OS"))
        tvs.append(localdata.getVar("TARGET_VENDOR"))

    settriplet(d, "PKGMLTRIPLETS", archs, tos, tvs)
}


python setscene_depvalid () {
def setscene_depvalid(task, taskdependees, notneeded, d, log=None):
    # taskdependees is a dict of tasks which depend on task, each being a 3 item list of [PN, TASKNAME, FILENAME]
    # task is included in taskdependees too
    # Return - False - We need this dependency
    #        - True - We can skip this dependency

    def logit(msg, log):
        if log is not None:
            log.append(msg)
        else:
            bb.debug(2, msg)

    logit("Considering setscene task: %s" % (str(taskdependees[task])), log)

    def isNativeCross(x):
        return x.endswith("-native") or "-cross-" in x or "-crosssdk" in x or x.endswith("-cross")

    # We only need to trigger populate_lic through direct dependencies
    if taskdependees[task][1] == "do_populate_lic":
        return True

    # stash_locale and gcc_stash_builddir are never needed as a dependency for built objects
    if taskdependees[task][1] == "do_stash_locale" or taskdependees[task][1] == "do_gcc_stash_builddir":
        return True

    # We only need to trigger packagedata through direct dependencies
    # but need to preserve packagedata on packagedata links
    if taskdependees[task][1] == "do_packagedata":
        for dep in taskdependees:
            if taskdependees[dep][1] == "do_packagedata":
                return False
        return True

    for dep in taskdependees:
        logit("  considering dependency: %s" % (str(taskdependees[dep])), log)
        if task == dep:
            continue
        if dep in notneeded:
            continue
        # do_package_write_* and do_package doesn't need do_package
        if taskdependees[task][1] == "do_package" and taskdependees[dep][1] in ['do_package', 'do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm', 'do_packagedata', 'do_package_qa']:
            continue
        # do_package_write_* need do_populate_sysroot as they're mainly postinstall dependencies
        if taskdependees[task][1] == "do_populate_sysroot" and taskdependees[dep][1] in ['do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm']:
            return False
        # do_package/packagedata/package_qa don't need do_populate_sysroot
        if taskdependees[task][1] == "do_populate_sysroot" and taskdependees[dep][1] in ['do_package', 'do_packagedata', 'do_package_qa']:
            continue
        # Native/Cross packages don't exist and are noexec anyway
        if isNativeCross(taskdependees[dep][0]) and taskdependees[dep][1] in ['do_package_write_deb', 'do_package_write_ipk', 'do_package_write_rpm', 'do_packagedata', 'do_package', 'do_package_qa']:
            continue

        # This is due to the [depends] in useradd.bbclass complicating matters
        # The logic *is* reversed here due to the way hard setscene dependencies are injected
        if (taskdependees[task][1] == 'do_package' or taskdependees[task][1] == 'do_populate_sysroot') and taskdependees[dep][0].endswith(('shadow-native', 'shadow-sysroot', 'base-passwd', 'pseudo-native')) and taskdependees[dep][1] == 'do_populate_sysroot':
            continue

        # Consider sysroot depending on sysroot tasks
        if taskdependees[task][1] == 'do_populate_sysroot' and taskdependees[dep][1] == 'do_populate_sysroot':
            # base-passwd/shadow-sysroot don't need their dependencies
            if taskdependees[dep][0].endswith(("base-passwd", "shadow-sysroot")):
                continue
            # Nothing need depend on libc-initial/gcc-cross-initial
            if "-initial" in taskdependees[task][0]:
                continue
            # For meta-extsdk-toolchain we want all sysroot dependencies
            if taskdependees[dep][0] == 'meta-extsdk-toolchain':
                return False
            # Native/Cross populate_sysroot need their dependencies
            if isNativeCross(taskdependees[task][0]) and isNativeCross(taskdependees[dep][0]):
                return False
            # Target populate_sysroot depended on by cross tools need to be installed
            if isNativeCross(taskdependees[dep][0]):
                return False
            # Native/cross tools depended upon by target sysroot are not needed
            if isNativeCross(taskdependees[task][0]):
                continue
            # Target populate_sysroot need their dependencies
            return False

        if taskdependees[task][1] == 'do_shared_workdir':
            continue

        if taskdependees[dep][1] == "do_populate_lic":
            continue


        # Safe fallthrough default
        logit(" Default setscene dependency fall through due to dependency: %s" % (str(taskdependees[dep])), log)
        return False
    return True
}


python setup_debugfs () {
    setup_debugfs_variables(d)
}


python setup_debugfs_variables () {
def setup_debugfs_variables(d):
    d.appendVar('IMAGE_ROOTFS', '-dbg')
    d.appendVar('IMAGE_LINK_NAME', '-dbg')
    d.appendVar('IMAGE_NAME','-dbg')
    d.setVar('IMAGE_BUILDING_DEBUGFS', 'true')
    debugfs_image_fstypes = d.getVar('IMAGE_FSTYPES_DEBUGFS')
    if debugfs_image_fstypes:
        d.setVar('IMAGE_FSTYPES', debugfs_image_fstypes)
}


python setup_hosttools_dir () {
def setup_hosttools_dir(dest, toolsvar, d, fatal=True):
    tools = d.getVar(toolsvar).split()
    origbbenv = d.getVar("BB_ORIGENV", False)
    path = origbbenv.getVar("PATH")
    bb.utils.mkdirhier(dest)
    notfound = []
    for tool in tools:
        desttool = os.path.join(dest, tool)
        if not os.path.exists(desttool):
            srctool = bb.utils.which(path, tool, executable=True)
            if "ccache" in srctool:
                srctool = bb.utils.which(path, tool, executable=True, direction=1)
            if srctool:
                os.symlink(srctool, desttool)
            else:
                notfound.append(tool)
    if notfound and fatal:
        bb.fatal("The following required tools (as specified by HOSTTOOLS) appear to be unavailable in PATH, please install them in order to proceed:\n  %s" % " ".join(notfound))
}


python should_apply () {
def should_apply(parm, d):
    """Determine if we should apply the given patch"""
    import oe.patch
    return oe.patch.should_apply(parm, d)
}


python siteinfo_data () {
def siteinfo_data(d):
    archinfo = {
        "allarch": "endian-little bit-32", # bogus, but better than special-casing the checks below for allarch
        "aarch64": "endian-little bit-64 arm-common arm-64",
        "aarch64_be": "endian-big bit-64 arm-common arm-64",
        "arm": "endian-little bit-32 arm-common arm-32",
        "armeb": "endian-big bit-32 arm-common arm-32",
        "avr32": "endian-big bit-32 avr32-common",
        "bfin": "endian-little bit-32 bfin-common",
        "epiphany": "endian-little bit-32",
        "i386": "endian-little bit-32 ix86-common",
        "i486": "endian-little bit-32 ix86-common",
        "i586": "endian-little bit-32 ix86-common",
        "i686": "endian-little bit-32 ix86-common",
        "ia64": "endian-little bit-64",
        "microblaze": "endian-big bit-32 microblaze-common",
        "microblazeeb": "endian-big bit-32 microblaze-common",
        "microblazeel": "endian-little bit-32 microblaze-common",
        "mips": "endian-big bit-32 mips-common",
        "mips64": "endian-big bit-64 mips-common",
        "mips64el": "endian-little bit-64 mips-common",
        "mipsisa64r6": "endian-big bit-64 mips-common",
        "mipsisa64r6el": "endian-little bit-64 mips-common",
        "mipsel": "endian-little bit-32 mips-common",
        "mipsisa32r6": "endian-big bit-32 mips-common",
        "mipsisa32r6el": "endian-little bit-32 mips-common",
        "powerpc": "endian-big bit-32 powerpc-common",
        "nios2": "endian-little bit-32 nios2-common",
        "powerpc64": "endian-big bit-64 powerpc-common",
        "ppc": "endian-big bit-32 powerpc-common",
        "ppc64": "endian-big bit-64 powerpc-common",
        "ppc64le" : "endian-little bit-64 powerpc-common",
        "sh3": "endian-little bit-32 sh-common",
        "sh4": "endian-little bit-32 sh-common",
        "sparc": "endian-big bit-32",
        "viac3": "endian-little bit-32 ix86-common",
        "x86_64": "endian-little", # bitinfo specified in targetinfo
    }
    osinfo = {
        "darwin": "common-darwin",
        "darwin9": "common-darwin",
        "linux": "common-linux common-glibc",
        "linux-gnu": "common-linux common-glibc",
        "linux-gnux32": "common-linux common-glibc",
        "linux-gnun32": "common-linux common-glibc",
        "linux-gnueabi": "common-linux common-glibc",
        "linux-gnuspe": "common-linux common-glibc",
        "linux-uclibc": "common-linux common-uclibc",
        "linux-uclibceabi": "common-linux common-uclibc",
        "linux-uclibcspe": "common-linux common-uclibc",
        "linux-musl": "common-linux common-musl",
        "linux-musleabi": "common-linux common-musl",
        "linux-muslspe": "common-linux common-musl",
        "uclinux-uclibc": "common-uclibc",
        "cygwin": "common-cygwin",
        "mingw32": "common-mingw",
    }
    targetinfo = {
        "aarch64-linux-gnu": "aarch64-linux",
        "aarch64_be-linux-gnu": "aarch64_be-linux",
        "aarch64-linux-musl": "aarch64-linux",
        "aarch64_be-linux-musl": "aarch64_be-linux",
        "arm-linux-gnueabi": "arm-linux",
        "arm-linux-musleabi": "arm-linux",
        "arm-linux-uclibceabi": "arm-linux-uclibc",
        "armeb-linux-gnueabi": "armeb-linux",
        "armeb-linux-uclibceabi": "armeb-linux-uclibc",
        "armeb-linux-musleabi": "armeb-linux",
        "mips-linux-musl": "mips-linux",
        "mipsel-linux-musl": "mipsel-linux",
        "mips64-linux-musl": "mips64-linux",
        "mips64el-linux-musl": "mips64el-linux",
        "mips64-linux-gnun32": "mips-linux bit-32",
        "mips64el-linux-gnun32": "mipsel-linux bit-32",
        "mipsisa64r6-linux-gnun32": "mipsisa32r6-linux bit-32",
        "mipsisa64r6el-linux-gnun32": "mipsisa32r6el-linux bit-32",
        "powerpc-linux": "powerpc32-linux",
        "powerpc-linux-musl": "powerpc-linux powerpc32-linux",
        "powerpc-linux-uclibc": "powerpc-linux powerpc32-linux",
        "powerpc-linux-gnuspe": "powerpc-linux powerpc32-linux",
        "powerpc-linux-muslspe": "powerpc-linux powerpc32-linux",
        "powerpc-linux-uclibcspe": "powerpc-linux powerpc32-linux powerpc-linux-uclibc",
        "powerpc64-linux-gnuspe": "powerpc-linux powerpc64-linux",
        "powerpc64-linux-muslspe": "powerpc-linux powerpc64-linux",
        "powerpc64-linux": "powerpc-linux",
        "powerpc64-linux-musl": "powerpc-linux",
        "x86_64-cygwin": "bit-64",
        "x86_64-darwin": "bit-64",
        "x86_64-darwin9": "bit-64",
        "x86_64-linux": "bit-64",
        "x86_64-linux-musl": "x86_64-linux bit-64",
        "x86_64-linux-uclibc": "bit-64",
        "x86_64-elf": "bit-64",
        "x86_64-linux-gnu": "bit-64 x86_64-linux",
        "x86_64-linux-gnux32": "bit-32 ix86-common x32-linux",
        "x86_64-mingw32": "bit-64",
    }

    # Add in any extra user supplied data which may come from a BSP layer, removing the
    # need to always change this class directly
    extra_siteinfo = (d.getVar("SITEINFO_EXTRA_DATAFUNCS") or "").split()
    for m in extra_siteinfo:
        call = m + "(archinfo, osinfo, targetinfo, d)"
        locs = { "archinfo" : archinfo, "osinfo" : osinfo, "targetinfo" : targetinfo, "d" : d}
        archinfo, osinfo, targetinfo = bb.utils.better_eval(call, locs)

    hostarch = d.getVar("HOST_ARCH")
    hostos = d.getVar("HOST_OS")
    target = "%s-%s" % (hostarch, hostos)

    sitedata = []
    if hostarch in archinfo:
        sitedata.extend(archinfo[hostarch].split())
    if hostos in osinfo:
        sitedata.extend(osinfo[hostos].split())
    if target in targetinfo:
        sitedata.extend(targetinfo[target].split())
    sitedata.append(target)
    sitedata.append("common")

    bb.debug(1, "SITE files %s" % sitedata);
    return sitedata
}


python siteinfo_get_files () {
def siteinfo_get_files(d, aclocalcache = False):
    sitedata = siteinfo_data(d)
    sitefiles = ""
    for path in d.getVar("BBPATH").split(":"):
        for element in sitedata:
            filename = os.path.join(path, "site", element)
            if os.path.exists(filename):
                sitefiles += filename + " "

    if not aclocalcache:
        return sitefiles

    # Now check for siteconfig cache files in the directory setup by autotools.bbclass to
    # avoid races.
    #
    # ACLOCALDIR may or may not exist so cache should only be set to True from autotools.bbclass
    # after files have been copied into this location. To do otherwise risks parsing/signature
    # issues and the directory being created/removed whilst this code executes. This can happen
    # when a multilib recipe is parsed along with its base variant which may be running at the time
    # causing rare but nasty failures
    path_siteconfig = d.getVar('ACLOCALDIR')
    if path_siteconfig and os.path.isdir(path_siteconfig):
        for i in os.listdir(path_siteconfig):
            if not i.endswith("_config"):
                continue
            filename = os.path.join(path_siteconfig, i)
            sitefiles += filename + " "
    return sitefiles
}


python sort_passwd () {
    import rootfspostcommands
    rootfspostcommands.sort_passwd(d.expand('${IMAGE_ROOTFS}${sysconfdir}'))
}


python split_and_strip_files () {
    import stat, errno

    dvar = d.getVar('PKGD')
    pn = d.getVar('PN')

    oldcwd = os.getcwd()
    os.chdir(dvar)

    # We default to '.debug' style
    if d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-file-directory':
        # Single debug-file-directory style debug info
        debugappend = ".debug"
        debugdir = ""
        debuglibdir = "/usr/lib/debug"
        debugsrcdir = "/usr/src/debug"
    elif d.getVar('PACKAGE_DEBUG_SPLIT_STYLE') == 'debug-without-src':
        # Original OE-core, a.k.a. ".debug", style debug info, but without sources in /usr/src/debug
        debugappend = ""
        debugdir = "/.debug"
        debuglibdir = ""
        debugsrcdir = ""
    else:
        # Original OE-core, a.k.a. ".debug", style debug info
        debugappend = ""
        debugdir = "/.debug"
        debuglibdir = ""
        debugsrcdir = "/usr/src/debug"

    sourcefile = d.expand("${WORKDIR}/debugsources.list")
    bb.utils.remove(sourcefile)

    # Return type (bits):
    # 0 - not elf
    # 1 - ELF
    # 2 - stripped
    # 4 - executable
    # 8 - shared library
    # 16 - kernel module
    def isELF(path):
        type = 0
        ret, result = oe.utils.getstatusoutput("file \"%s\"" % path.replace("\"", "\\\""))

        if ret:
            msg = "split_and_strip_files: 'file %s' failed" % path
            package_qa_handle_error("split-strip", msg, d)
            return type

        # Not stripped
        if "ELF" in result:
            type |= 1
            if "not stripped" not in result:
                type |= 2
            if "executable" in result:
                type |= 4
            if "shared" in result:
                type |= 8
        return type


    #
    # First lets figure out all of the files we may have to process ... do this only once!
    #
    elffiles = {}
    symlinks = {}
    kernmods = []
    inodes = {}
    libdir = os.path.abspath(dvar + os.sep + d.getVar("libdir"))
    baselibdir = os.path.abspath(dvar + os.sep + d.getVar("base_libdir"))
    if (d.getVar('INHIBIT_PACKAGE_STRIP') != '1' or \
            d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'):
        for root, dirs, files in cpath.walk(dvar):
            for f in files:
                file = os.path.join(root, f)
                if file.endswith(".ko") and file.find("/lib/modules/") != -1:
                    kernmods.append(file)
                    continue

                # Skip debug files
                if debugappend and file.endswith(debugappend):
                    continue
                if debugdir and debugdir in os.path.dirname(file[len(dvar):]):
                    continue

                try:
                    ltarget = cpath.realpath(file, dvar, False)
                    s = cpath.lstat(ltarget)
                except OSError as e:
                    (err, strerror) = e.args
                    if err != errno.ENOENT:
                        raise
                    # Skip broken symlinks
                    continue
                if not s:
                    continue
                # Check its an excutable
                if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] & stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
                        or ((file.startswith(libdir) or file.startswith(baselibdir)) and (".so" in f or ".node" in f)):
                    # If it's a symlink, and points to an ELF file, we capture the readlink target
                    if cpath.islink(file):
                        target = os.readlink(file)
                        if isELF(ltarget):
                            #bb.note("Sym: %s (%d)" % (ltarget, isELF(ltarget)))
                            symlinks[file] = target
                        continue

                    # It's a file (or hardlink), not a link
                    # ...but is it ELF, and is it already stripped?
                    elf_file = isELF(file)
                    if elf_file & 1:
                        if elf_file & 2:
                            if 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split():
                                bb.note("Skipping file %s from %s for already-stripped QA test" % (file[len(dvar):], pn))
                            else:
                                msg = "File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
                                package_qa_handle_error("already-stripped", msg, d)
                            continue

                        # At this point we have an unstripped elf file. We need to:
                        #  a) Make sure any file we strip is not hardlinked to anything else outside this tree
                        #  b) Only strip any hardlinked file once (no races)
                        #  c) Track any hardlinks between files so that we can reconstruct matching debug file hardlinks

                        # Use a reference of device ID and inode number to indentify files
                        file_reference = "%d_%d" % (s.st_dev, s.st_ino)
                        if file_reference in inodes:
                            os.unlink(file)
                            os.link(inodes[file_reference][0], file)
                            inodes[file_reference].append(file)
                        else:
                            inodes[file_reference] = [file]
                            # break hardlink
                            bb.utils.copyfile(file, file)
                            elffiles[file] = elf_file
                        # Modified the file so clear the cache
                        cpath.updatecache(file)

    #
    # First lets process debug splitting
    #
    if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'):
        for file in elffiles:
            src = file[len(dvar):]
            dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
            fpath = dvar + dest

            # Split the file...
            bb.utils.mkdirhier(os.path.dirname(fpath))
            #bb.note("Split %s -> %s" % (file, fpath))
            # Only store off the hard link reference if we successfully split!
            splitdebuginfo(file, fpath, debugsrcdir, sourcefile, d)

        # Hardlink our debug symbols to the other hardlink copies
        for ref in inodes:
            if len(inodes[ref]) == 1:
                continue
            for file in inodes[ref][1:]:
                src = file[len(dvar):]
                dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
                fpath = dvar + dest
                target = inodes[ref][0][len(dvar):]
                ftarget = dvar + debuglibdir + os.path.dirname(target) + debugdir + "/" + os.path.basename(target) + debugappend
                bb.utils.mkdirhier(os.path.dirname(fpath))
                #bb.note("Link %s -> %s" % (fpath, ftarget))
                os.link(ftarget, fpath)

        # Create symlinks for all cases we were able to split symbols
        for file in symlinks:
            src = file[len(dvar):]
            dest = debuglibdir + os.path.dirname(src) + debugdir + "/" + os.path.basename(src) + debugappend
            fpath = dvar + dest
            # Skip it if the target doesn't exist
            try:
                s = os.stat(fpath)
            except OSError as e:
                (err, strerror) = e.args
                if err != errno.ENOENT:
                    raise
                continue

            ltarget = symlinks[file]
            lpath = os.path.dirname(ltarget)
            lbase = os.path.basename(ltarget)
            ftarget = ""
            if lpath and lpath != ".":
                ftarget += lpath + debugdir + "/"
            ftarget += lbase + debugappend
            if lpath.startswith(".."):
                ftarget = os.path.join("..", ftarget)
            bb.utils.mkdirhier(os.path.dirname(fpath))
            #bb.note("Symlink %s -> %s" % (fpath, ftarget))
            os.symlink(ftarget, fpath)

        # Process the debugsrcdir if requested...
        # This copies and places the referenced sources for later debugging...
        copydebugsources(debugsrcdir, d)
    #
    # End of debug splitting
    #

    #
    # Now lets go back over things and strip them
    #
    if (d.getVar('INHIBIT_PACKAGE_STRIP') != '1'):
        strip = d.getVar("STRIP")
        sfiles = []
        for file in elffiles:
            elf_file = int(elffiles[file])
            #bb.note("Strip %s" % file)
            sfiles.append((file, elf_file, strip))
        for f in kernmods:
            sfiles.append((f, 16, strip))

        oe.utils.multiprocess_exec(sfiles, oe.package.runstrip)

    #
    # End of strip
    #
    os.chdir(oldcwd)
}


python splitdebuginfo () {
def splitdebuginfo(file, debugfile, debugsrcdir, sourcefile, d):
    # Function to split a single file into two components, one is the stripped
    # target system binary, the other contains any debugging information. The
    # two files are linked to reference each other.
    #
    # sourcefile is also generated containing a list of debugsources

    import stat

    dvar = d.getVar('PKGD')
    objcopy = d.getVar("OBJCOPY")
    debugedit = d.expand("${STAGING_LIBDIR_NATIVE}/rpm/debugedit")

    # We ignore kernel modules, we don't generate debug info files.
    if file.find("/lib/modules/") != -1 and file.endswith(".ko"):
        return 1

    newmode = None
    if not os.access(file, os.W_OK) or os.access(file, os.R_OK):
        origmode = os.stat(file)[stat.ST_MODE]
        newmode = origmode | stat.S_IWRITE | stat.S_IREAD
        os.chmod(file, newmode)

    # We need to extract the debug src information here...
    if debugsrcdir:
        cmd = "'%s' -i -l '%s' '%s'" % (debugedit, sourcefile, file)
        (retval, output) = oe.utils.getstatusoutput(cmd)
        if retval:
            bb.fatal("debugedit failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else ""))

    bb.utils.mkdirhier(os.path.dirname(debugfile))

    cmd = "'%s' --only-keep-debug '%s' '%s'" % (objcopy, file, debugfile)
    (retval, output) = oe.utils.getstatusoutput(cmd)
    if retval:
        bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else ""))

    # Set the debuglink to have the view of the file path on the target
    cmd = "'%s' --add-gnu-debuglink='%s' '%s'" % (objcopy, debugfile, file)
    (retval, output) = oe.utils.getstatusoutput(cmd)
    if retval:
        bb.fatal("objcopy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else ""))

    if newmode:
        os.chmod(file, origmode)

    return 0
}


python src_patches () {
def src_patches(d, all=False, expand=True):
    import oe.patch
    return oe.patch.src_patches(d, all, expand)
}


python sstate_add () {
def sstate_add(ss, source, dest, d):
    if not source.endswith("/"):
         source = source + "/"
    if not dest.endswith("/"):
         dest = dest + "/"
    source = os.path.normpath(source)
    dest = os.path.normpath(dest)
    srcbase = os.path.basename(source)
    ss['dirs'].append([srcbase, source, dest])
    return ss
}


python sstate_checkhashes () {
def sstate_checkhashes(sq_fn, sq_task, sq_hash, sq_hashfn, d, siginfo=False):

    ret = []
    missed = []
    extension = ".tgz"
    if siginfo:
        extension = extension + ".siginfo"

    def getpathcomponents(task, d):
        # Magic data from BB_HASHFILENAME
        splithashfn = sq_hashfn[task].split(" ")
        spec = splithashfn[1]
        if splithashfn[0] == "True":
            extrapath = d.getVar("NATIVELSBSTRING") + "/"
        else:
            extrapath = ""

        tname = sq_task[task][3:]

        if tname in ["fetch", "unpack", "patch", "populate_lic", "preconfigure"] and splithashfn[2]:
            spec = splithashfn[2]
            extrapath = ""

        return spec, extrapath, tname


    for task in range(len(sq_fn)):

        spec, extrapath, tname = getpathcomponents(task, d)

        sstatefile = d.expand("${SSTATE_DIR}/" + extrapath + generate_sstatefn(spec, sq_hash[task], d) + "_" + tname + extension)

        if os.path.exists(sstatefile):
            bb.debug(2, "SState: Found valid sstate file %s" % sstatefile)
            ret.append(task)
            continue
        else:
            missed.append(task)
            bb.debug(2, "SState: Looked for but didn't find file %s" % sstatefile)

    mirrors = d.getVar("SSTATE_MIRRORS")
    if mirrors:
        # Copy the data object and override DL_DIR and SRC_URI
        localdata = bb.data.createCopy(d)

        dldir = localdata.expand("${SSTATE_DIR}")
        localdata.delVar('MIRRORS')
        localdata.setVar('FILESPATH', dldir)
        localdata.setVar('DL_DIR', dldir)
        localdata.setVar('PREMIRRORS', mirrors)

        bb.debug(2, "SState using premirror of: %s" % mirrors)

        # if BB_NO_NETWORK is set but we also have SSTATE_MIRROR_ALLOW_NETWORK,
        # we'll want to allow network access for the current set of fetches.
        if localdata.getVar('BB_NO_NETWORK') == "1" and localdata.getVar('SSTATE_MIRROR_ALLOW_NETWORK') == "1":
            localdata.delVar('BB_NO_NETWORK')

        from bb.fetch2 import FetchConnectionCache
        def checkstatus_init(thread_worker):
            thread_worker.connection_cache = FetchConnectionCache()

        def checkstatus_end(thread_worker):
            thread_worker.connection_cache.close_connections()

        def checkstatus(thread_worker, arg):
            (task, sstatefile) = arg

            localdata2 = bb.data.createCopy(localdata)
            srcuri = "file://" + sstatefile
            localdata.setVar('SRC_URI', srcuri)
            bb.debug(2, "SState: Attempting to fetch %s" % srcuri)

            try:
                fetcher = bb.fetch2.Fetch(srcuri.split(), localdata2,
                            connection_cache=thread_worker.connection_cache)
                fetcher.checkstatus()
                bb.debug(2, "SState: Successful fetch test for %s" % srcuri)
                ret.append(task)
                if task in missed:
                    missed.remove(task)
            except:
                missed.append(task)
                bb.debug(2, "SState: Unsuccessful fetch test for %s" % srcuri)
                pass
            bb.event.fire(bb.event.ProcessProgress("Checking sstate mirror object availability", len(tasklist) - thread_worker.tasks.qsize()), d)

        tasklist = []
        for task in range(len(sq_fn)):
            if task in ret:
                continue
            spec, extrapath, tname = getpathcomponents(task, d)
            sstatefile = d.expand(extrapath + generate_sstatefn(spec, sq_hash[task], d) + "_" + tname + extension)
            tasklist.append((task, sstatefile))

        if tasklist:
            bb.event.fire(bb.event.ProcessStarted("Checking sstate mirror object availability", len(tasklist)), d)

            import multiprocessing
            nproc = min(multiprocessing.cpu_count(), len(tasklist))

            bb.event.enable_threadlock()
            pool = oe.utils.ThreadedPool(nproc, len(tasklist),
                    worker_init=checkstatus_init, worker_end=checkstatus_end)
            for t in tasklist:
                pool.add_task(checkstatus, t)
            pool.start()
            pool.wait_completion()
            bb.event.disable_threadlock()

            bb.event.fire(bb.event.ProcessFinished("Checking sstate mirror object availability"), d)

    inheritlist = d.getVar("INHERIT")
    if "toaster" in inheritlist:
        evdata = {'missed': [], 'found': []};
        for task in missed:
            spec, extrapath, tname = getpathcomponents(task, d)
            sstatefile = d.expand(extrapath + generate_sstatefn(spec, sq_hash[task], d) + "_" + tname + ".tgz")
            evdata['missed'].append( (sq_fn[task], sq_task[task], sq_hash[task], sstatefile ) )
        for task in ret:
            spec, extrapath, tname = getpathcomponents(task, d)
            sstatefile = d.expand(extrapath + generate_sstatefn(spec, sq_hash[task], d) + "_" + tname + ".tgz")
            evdata['found'].append( (sq_fn[task], sq_task[task], sq_hash[task], sstatefile ) )
        bb.event.fire(bb.event.MetadataEvent("MissedSstate", evdata), d)

    if hasattr(bb.parse.siggen, "checkhashes"):
        bb.parse.siggen.checkhashes(missed, ret, sq_fn, sq_task, sq_hash, sq_hashfn, d)

    return ret
}


python sstate_clean () {
def sstate_clean(ss, d):
    import oe.path
    import glob

    d2 = d.createCopy()
    stamp_clean = d.getVar("STAMPCLEAN")
    extrainf = d.getVarFlag("do_" + ss['task'], 'stamp-extra-info')
    if extrainf:
        d2.setVar("SSTATE_MANMACH", extrainf)
        wildcard_stfile = "%s.do_%s*.%s" % (stamp_clean, ss['task'], extrainf)
    else:
        wildcard_stfile = "%s.do_%s*" % (stamp_clean, ss['task'])

    manifest = d2.expand("${SSTATE_MANFILEPREFIX}.%s" % ss['task'])

    if os.path.exists(manifest):
        locks = []
        for lock in ss['lockfiles-shared']:
            locks.append(bb.utils.lockfile(lock))
        for lock in ss['lockfiles']:
            locks.append(bb.utils.lockfile(lock))

        sstate_clean_manifest(manifest, d)

        for lock in locks:
            bb.utils.unlockfile(lock)

    # Remove the current and previous stamps, but keep the sigdata.
    #
    # The glob() matches do_task* which may match multiple tasks, for
    # example: do_package and do_package_write_ipk, so we need to
    # exactly match *.do_task.* and *.do_task_setscene.*
    rm_stamp = '.do_%s.' % ss['task']
    rm_setscene = '.do_%s_setscene.' % ss['task']
    # For BB_SIGNATURE_HANDLER = "noop"
    rm_nohash = ".do_%s" % ss['task']
    for stfile in glob.glob(wildcard_stfile):
        # Keep the sigdata
        if ".sigdata." in stfile or ".sigbasedata." in stfile:
            continue
        # Preserve taint files in the stamps directory
        if stfile.endswith('.taint'):
            continue
        if rm_stamp in stfile or rm_setscene in stfile or \
                stfile.endswith(rm_nohash):
            oe.path.remove(stfile)

    # Removes the users/groups created by the package
    for cleanfunc in (d.getVar('SSTATECLEANFUNCS') or '').split():
        bb.build.exec_func(cleanfunc, d)
}


python sstate_clean_cachefile () {
def sstate_clean_cachefile(ss, d):
    import oe.path

    sstatepkgfile = d.getVar('SSTATE_PATHSPEC') + "*_" + ss['task'] + ".tgz*"
    bb.note("Removing %s" % sstatepkgfile)
    oe.path.remove(sstatepkgfile)
}


python sstate_clean_cachefiles () {
def sstate_clean_cachefiles(d):
    for task in (d.getVar('SSTATETASKS') or "").split():
        ld = d.createCopy()
        ss = sstate_state_fromvars(ld, task)
        sstate_clean_cachefile(ss, ld)
}


python sstate_clean_manifest () {
def sstate_clean_manifest(manifest, d, prefix=None):
    import oe.path

    mfile = open(manifest)
    entries = mfile.readlines()
    mfile.close()

    for entry in entries:
        entry = entry.strip()
        if prefix and not entry.startswith("/"):
            entry = prefix + "/" + entry
        bb.debug(2, "Removing manifest: %s" % entry)
        # We can race against another package populating directories as we're removing them
        # so we ignore errors here.
        try:
            if entry.endswith("/"):
                if os.path.islink(entry[:-1]):
                    os.remove(entry[:-1])
                elif os.path.exists(entry) and len(os.listdir(entry)) == 0:
                    os.rmdir(entry[:-1])
            else:
                os.remove(entry)
        except OSError:
            pass

    postrm = manifest + ".postrm"
    if os.path.exists(manifest + ".postrm"):
        import subprocess
        os.chmod(postrm, 0o755)
        subprocess.call(postrm, shell=True)
        oe.path.remove(postrm)

    oe.path.remove(manifest)
}


python sstate_cleanall () {
    bb.note("Removing shared state for package %s" % d.getVar('PN'))

    manifest_dir = d.getVar('SSTATE_MANIFESTS')
    if not os.path.exists(manifest_dir):
        return

    tasks = d.getVar('SSTATETASKS').split()
    for name in tasks:
        ld = d.createCopy()
        shared_state = sstate_state_fromvars(ld, name)
        sstate_clean(shared_state, ld)
}


python sstate_eventhandler () {
    d = e.data
    # When we write an sstate package we rewrite the SSTATE_PKG
    spkg = d.getVar('SSTATE_PKG')
    if not spkg.endswith(".tgz"):
        taskname = d.getVar("BB_RUNTASK")[3:]
        spec = d.getVar('SSTATE_PKGSPEC')
        swspec = d.getVar('SSTATE_SWSPEC')
        if taskname in ["fetch", "unpack", "patch", "populate_lic", "preconfigure"] and swspec:
            d.setVar("SSTATE_PKGSPEC", "${SSTATE_SWSPEC}")
            d.setVar("SSTATE_EXTRAPATH", "")
        sstatepkg = d.getVar('SSTATE_PKG')
        bb.siggen.dump_this_task(sstatepkg + '_' + taskname + ".tgz" ".siginfo", d)
}


python sstate_eventhandler2 () {
    import glob
    d = e.data
    stamps = e.stamps.values()
    removeworkdir = (d.getVar("SSTATE_PRUNE_OBSOLETEWORKDIR", False) == "1")
    seen = []
    for a in d.getVar("SSTATE_ARCHS").split():
        toremove = []
        i = d.expand("${SSTATE_MANIFESTS}/index-" + a)
        if not os.path.exists(i):
            continue
        with open(i, "r") as f:
            lines = f.readlines()
            for l in lines:
                (stamp, manifest, workdir) = l.split()
                if stamp not in stamps:
                    toremove.append(l)
                    if stamp not in seen:
                        bb.debug(2, "Stamp %s is not reachable, removing related manifests" % stamp)
                        seen.append(stamp)

        if toremove:
            bb.note("There are %d recipes to be removed from sysroot %s, removing..." % (len(toremove), a))

        for r in toremove:
            (stamp, manifest, workdir) = r.split()
            for m in glob.glob(manifest + ".*"):
                if m.endswith(".postrm"):
                    continue
                sstate_clean_manifest(m, d)
            bb.utils.remove(stamp + "*")
            if removeworkdir:
                bb.utils.remove(workdir, recurse = True)
            lines.remove(r)
        with open(i, "w") as f:
            for l in lines:
                f.write(l)
}


python sstate_hardcode_path () {
    import subprocess, platform

    # Need to remove hardcoded paths and fix these when we install the
    # staging packages.
    #
    # Note: the logic in this function needs to match the reverse logic
    # in sstate_installpkg(ss, d)

    staging_target = d.getVar('RECIPE_SYSROOT')
    staging_host = d.getVar('RECIPE_SYSROOT_NATIVE')
    sstate_builddir = d.getVar('SSTATE_BUILDDIR')

    if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross-canadian', d):
        sstate_grep_cmd = "grep -l -e '%s'" % (staging_host)
        sstate_sed_cmd = "sed -i -e 's:%s:FIXMESTAGINGDIRHOST:g'" % (staging_host)
    elif bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d):
        sstate_grep_cmd = "grep -l -e '%s' -e '%s'" % (staging_target, staging_host)
        sstate_sed_cmd = "sed -i -e 's:%s:FIXMESTAGINGDIRTARGET:g; s:%s:FIXMESTAGINGDIRHOST:g'" % (staging_target, staging_host)
    else:
        sstate_grep_cmd = "grep -l -e '%s'" % (staging_target)
        sstate_sed_cmd = "sed -i -e 's:%s:FIXMESTAGINGDIRTARGET:g'" % (staging_target)

    extra_staging_fixmes = d.getVar('EXTRA_STAGING_FIXMES') or ''
    for fixmevar in extra_staging_fixmes.split():
        fixme_path = d.getVar(fixmevar)
        sstate_sed_cmd += " -e 's:%s:FIXME_%s:g'" % (fixme_path, fixmevar)
        sstate_grep_cmd += " -e '%s'" % (fixme_path)

    fixmefn =  sstate_builddir + "fixmepath"

    sstate_scan_cmd = d.getVar('SSTATE_SCAN_CMD')
    sstate_filelist_cmd = "tee %s" % (fixmefn)

    # fixmepath file needs relative paths, drop sstate_builddir prefix
    sstate_filelist_relative_cmd = "sed -i -e 's:^%s::g' %s" % (sstate_builddir, fixmefn)

    xargs_no_empty_run_cmd = '--no-run-if-empty'
    if platform.system() == 'Darwin':
        xargs_no_empty_run_cmd = ''

    # Limit the fixpaths and sed operations based on the initial grep search
    # This has the side effect of making sure the vfs cache is hot
    sstate_hardcode_cmd = "%s | xargs %s | %s | xargs %s %s" % (sstate_scan_cmd, sstate_grep_cmd, sstate_filelist_cmd, xargs_no_empty_run_cmd, sstate_sed_cmd)

    bb.note("Removing hardcoded paths from sstate package: '%s'" % (sstate_hardcode_cmd))
    subprocess.check_output(sstate_hardcode_cmd, shell=True, cwd=sstate_builddir)

        # If the fixmefn is empty, remove it..
    if os.stat(fixmefn).st_size == 0:
        os.remove(fixmefn)
    else:
        bb.note("Replacing absolute paths in fixmepath file: '%s'" % (sstate_filelist_relative_cmd))
        subprocess.check_output(sstate_filelist_relative_cmd, shell=True)
}


python sstate_hardcode_path_unpack () {
    # Fixup hardcoded paths
    #
    # Note: The logic below must match the reverse logic in
    # sstate_hardcode_path(d)
    import subprocess

    sstateinst = d.getVar('SSTATE_INSTDIR')
    sstatefixmedir = d.getVar('SSTATE_FIXMEDIR')
    fixmefn = sstateinst + "fixmepath"
    if os.path.isfile(fixmefn):
        staging_target = d.getVar('RECIPE_SYSROOT')
        staging_host = d.getVar('RECIPE_SYSROOT_NATIVE')

        if bb.data.inherits_class('native', d) or bb.data.inherits_class('cross-canadian', d):
            sstate_sed_cmd = "sed -i -e 's:FIXMESTAGINGDIRHOST:%s:g'" % (staging_host)
        elif bb.data.inherits_class('cross', d) or bb.data.inherits_class('crosssdk', d):
            sstate_sed_cmd = "sed -i -e 's:FIXMESTAGINGDIRTARGET:%s:g; s:FIXMESTAGINGDIRHOST:%s:g'" % (staging_target, staging_host)
        else:
            sstate_sed_cmd = "sed -i -e 's:FIXMESTAGINGDIRTARGET:%s:g'" % (staging_target)

        extra_staging_fixmes = d.getVar('EXTRA_STAGING_FIXMES') or ''
        for fixmevar in extra_staging_fixmes.split():
            fixme_path = d.getVar(fixmevar)
            sstate_sed_cmd += " -e 's:FIXME_%s:%s:g'" % (fixmevar, fixme_path)

        # Add sstateinst to each filename in fixmepath, use xargs to efficiently call sed
        sstate_hardcode_cmd = "sed -e 's:^:%s:g' %s | xargs %s" % (sstateinst, fixmefn, sstate_sed_cmd)

        # Defer do_populate_sysroot relocation command
        if sstatefixmedir:
            bb.utils.mkdirhier(sstatefixmedir)
            with open(sstatefixmedir + "/fixmepath.cmd", "w") as f:
                sstate_hardcode_cmd = sstate_hardcode_cmd.replace(fixmefn, sstatefixmedir + "/fixmepath")
                sstate_hardcode_cmd = sstate_hardcode_cmd.replace(sstateinst, "FIXMEFINALSSTATEINST")
                sstate_hardcode_cmd = sstate_hardcode_cmd.replace(staging_host, "FIXMEFINALSSTATEHOST")
                sstate_hardcode_cmd = sstate_hardcode_cmd.replace(staging_target, "FIXMEFINALSSTATETARGET")
                f.write(sstate_hardcode_cmd)
            bb.utils.copyfile(fixmefn, sstatefixmedir + "/fixmepath")
            return

        bb.note("Replacing fixme paths in sstate package: %s" % (sstate_hardcode_cmd))
        subprocess.call(sstate_hardcode_cmd, shell=True)

        # Need to remove this or we'd copy it into the target directory and may
        # conflict with another writer
        os.remove(fixmefn)
}


python sstate_init () {
def sstate_init(task, d):
    ss = {}
    ss['task'] = task
    ss['dirs'] = []
    ss['plaindirs'] = []
    ss['lockfiles'] = []
    ss['lockfiles-shared'] = []
    return ss
}


python sstate_install () {
def sstate_install(ss, d):
    import oe.path
    import oe.sstatesig
    import subprocess

    sharedfiles = []
    shareddirs = []
    bb.utils.mkdirhier(d.expand("${SSTATE_MANIFESTS}"))

    sstateinst = d.expand("${WORKDIR}/sstate-install-%s/" % ss['task'])

    manifest, d2 = oe.sstatesig.sstate_get_manifest_filename(ss['task'], d)

    if os.access(manifest, os.R_OK):
        bb.fatal("Package already staged (%s)?!" % manifest)

    d.setVar("SSTATE_INST_POSTRM", manifest + ".postrm")

    locks = []
    for lock in ss['lockfiles-shared']:
        locks.append(bb.utils.lockfile(lock, True))
    for lock in ss['lockfiles']:
        locks.append(bb.utils.lockfile(lock))

    for state in ss['dirs']:
        bb.debug(2, "Staging files from %s to %s" % (state[1], state[2]))
        for walkroot, dirs, files in os.walk(state[1]):
            for file in files:
                srcpath = os.path.join(walkroot, file)
                dstpath = srcpath.replace(state[1], state[2])
                #bb.debug(2, "Staging %s to %s" % (srcpath, dstpath))
                sharedfiles.append(dstpath)
            for dir in dirs:
                srcdir = os.path.join(walkroot, dir)
                dstdir = srcdir.replace(state[1], state[2])
                #bb.debug(2, "Staging %s to %s" % (srcdir, dstdir))
                if os.path.islink(srcdir):
                    sharedfiles.append(dstdir)
                    continue
                if not dstdir.endswith("/"):
                    dstdir = dstdir + "/"
                shareddirs.append(dstdir)

    # Check the file list for conflicts against files which already exist
    whitelist = (d.getVar("SSTATE_DUPWHITELIST") or "").split()
    match = []
    for f in sharedfiles:
        if os.path.exists(f) and not os.path.islink(f):
            f = os.path.normpath(f)
            realmatch = True
            for w in whitelist:
                w = os.path.normpath(w)
                if f.startswith(w):
                    realmatch = False
                    break
            if realmatch:
                match.append(f)
                sstate_search_cmd = "grep -rlF '%s' %s --exclude=master.list | sed -e 's:^.*/::'" % (f, d.expand("${SSTATE_MANIFESTS}"))
                search_output = subprocess.Popen(sstate_search_cmd, shell=True, stdout=subprocess.PIPE).communicate()[0]
                if search_output:
                    match.append("  (matched in %s)" % search_output.decode('utf-8').rstrip())
                else:
                    match.append("  (not matched to any task)")
    if match:
        bb.error("The recipe %s is trying to install files into a shared " \
          "area when those files already exist. Those files and their manifest " \
          "location are:\n  %s\nPlease verify which recipe should provide the " \
          "above files.\n\nThe build has stopped, as continuing in this scenario WILL " \
          "break things - if not now, possibly in the future (we've seen builds fail " \
          "several months later). If the system knew how to recover from this " \
          "automatically it would, however there are several different scenarios " \
          "which can result in this and we don't know which one this is. It may be " \
          "you have switched providers of something like virtual/kernel (e.g. from " \
          "linux-yocto to linux-yocto-dev), in that case you need to execute the " \
          "clean task for both recipes and it will resolve this error. It may be " \
          "you changed DISTRO_FEATURES from systemd to udev or vice versa. Cleaning " \
          "those recipes should again resolve this error, however switching " \
          "DISTRO_FEATURES on an existing build directory is not supported - you " \
          "should really clean out tmp and rebuild (reusing sstate should be safe). " \
          "It could be the overlapping files detected are harmless in which case " \
          "adding them to SSTATE_DUPWHITELIST may be the correct solution. It could " \
          "also be your build is including two different conflicting versions of " \
          "things (e.g. bluez 4 and bluez 5 and the correct solution for that would " \
          "be to resolve the conflict. If in doubt, please ask on the mailing list, " \
          "sharing the error and filelist above." % \
          (d.getVar('PN'), "\n  ".join(match)))
        bb.fatal("If the above message is too much, the simpler version is you're advised to wipe out tmp and rebuild (reusing sstate is fine). That will likely fix things in most (but not all) cases.")

    if ss['fixmedir'] and os.path.exists(ss['fixmedir'] + "/fixmepath.cmd"):
        sharedfiles.append(ss['fixmedir'] + "/fixmepath.cmd")
        sharedfiles.append(ss['fixmedir'] + "/fixmepath")

    # Write out the manifest
    f = open(manifest, "w")
    for file in sharedfiles:
        f.write(file + "\n")

    # We want to ensure that directories appear at the end of the manifest
    # so that when we test to see if they should be deleted any contents
    # added by the task will have been removed first.
    dirs = sorted(shareddirs, key=len)
    # Must remove children first, which will have a longer path than the parent
    for di in reversed(dirs):
        f.write(di + "\n")
    f.close()

    # Append to the list of manifests for this PACKAGE_ARCH

    i = d2.expand("${SSTATE_MANIFESTS}/index-${SSTATE_MANMACH}")
    l = bb.utils.lockfile(i + ".lock")
    filedata = d.getVar("STAMP") + " " + d2.getVar("SSTATE_MANFILEPREFIX") + " " + d.getVar("WORKDIR") + "\n"
    manifests = []
    if os.path.exists(i):
        with open(i, "r") as f:
            manifests = f.readlines()
    if filedata not in manifests:
        with open(i, "a+") as f:
            f.write(filedata)
    bb.utils.unlockfile(l)

    # Run the actual file install
    for state in ss['dirs']:
        if os.path.exists(state[1]):
            oe.path.copyhardlinktree(state[1], state[2])

    for postinst in (d.getVar('SSTATEPOSTINSTFUNCS') or '').split():
        # All hooks should run in the SSTATE_INSTDIR
        bb.build.exec_func(postinst, d, (sstateinst,))

    for lock in locks:
        bb.utils.unlockfile(lock)
}


python sstate_installpkg () {
def sstate_installpkg(ss, d):
    from oe.gpg_sign import get_signer

    sstateinst = d.expand("${WORKDIR}/sstate-install-%s/" % ss['task'])
    sstatefetch = d.getVar('SSTATE_PKGNAME') + '_' + ss['task'] + ".tgz"
    sstatepkg = d.getVar('SSTATE_PKG') + '_' + ss['task'] + ".tgz"

    if not os.path.exists(sstatepkg):
        pstaging_fetch(sstatefetch, sstatepkg, d)

    if not os.path.isfile(sstatepkg):
        bb.note("Staging package %s does not exist" % sstatepkg)
        return False

    sstate_clean(ss, d)

    d.setVar('SSTATE_INSTDIR', sstateinst)
    d.setVar('SSTATE_PKG', sstatepkg)

    if bb.utils.to_boolean(d.getVar("SSTATE_VERIFY_SIG"), False):
        signer = get_signer(d, 'local')
        if not signer.verify(sstatepkg + '.sig'):
            bb.warn("Cannot verify signature on sstate package %s" % sstatepkg)

    # Empty sstateinst directory, ensure its clean
    if os.path.exists(sstateinst):
        oe.path.remove(sstateinst)
    bb.utils.mkdirhier(sstateinst)

    sstateinst = d.getVar("SSTATE_INSTDIR")
    d.setVar('SSTATE_FIXMEDIR', ss['fixmedir'])

    for f in (d.getVar('SSTATEPREINSTFUNCS') or '').split() + ['sstate_unpack_package']:
        # All hooks should run in the SSTATE_INSTDIR
        bb.build.exec_func(f, d, (sstateinst,))

    return sstate_installpkgdir(ss, d)
}


python sstate_installpkgdir () {
def sstate_installpkgdir(ss, d):
    import oe.path
    import subprocess

    sstateinst = d.getVar("SSTATE_INSTDIR")
    d.setVar('SSTATE_FIXMEDIR', ss['fixmedir'])

    for f in (d.getVar('SSTATEPOSTUNPACKFUNCS') or '').split():
        # All hooks should run in the SSTATE_INSTDIR
        bb.build.exec_func(f, d, (sstateinst,))

    def prepdir(dir):
        # remove dir if it exists, ensure any parent directories do exist
        if os.path.exists(dir):
            oe.path.remove(dir)
        bb.utils.mkdirhier(dir)
        oe.path.remove(dir)

    for state in ss['dirs']:
        if d.getVar('SSTATE_SKIP_CREATION') == '1':
            continue
        prepdir(state[1])
        os.rename(sstateinst + state[0], state[1])
    sstate_install(ss, d)

    for plain in ss['plaindirs']:
        workdir = d.getVar('WORKDIR')
        src = sstateinst + "/" + plain.replace(workdir, '')
        dest = plain
        bb.utils.mkdirhier(src)
        prepdir(dest)
        os.rename(src, dest)

    return True
}


python sstate_package () {
def sstate_package(ss, d):
    import oe.path

    tmpdir = d.getVar('TMPDIR')

    sstatebuild = d.expand("${WORKDIR}/sstate-build-%s/" % ss['task'])
    sstatepkg = d.getVar('SSTATE_PKG') + '_'+ ss['task'] + ".tgz"
    bb.utils.remove(sstatebuild, recurse=True)
    bb.utils.mkdirhier(sstatebuild)
    bb.utils.mkdirhier(os.path.dirname(sstatepkg))
    for state in ss['dirs']:
        if not os.path.exists(state[1]):
            continue
        if d.getVar('SSTATE_SKIP_CREATION') == '1':
            continue
        srcbase = state[0].rstrip("/").rsplit('/', 1)[0]
        # Find and error for absolute symlinks. We could attempt to relocate but its not
        # clear where the symlink is relative to in this context. We could add that markup
        # to sstate tasks but there aren't many of these so better just avoid them entirely.
        for walkroot, dirs, files in os.walk(state[1]):
            for file in files + dirs:
                srcpath = os.path.join(walkroot, file)
                if not os.path.islink(srcpath):
                    continue
                link = os.readlink(srcpath)
                if not os.path.isabs(link):
                    continue
                if not link.startswith(tmpdir):
                    continue
                bb.error("sstate found an absolute path symlink %s pointing at %s. Please replace this with a relative link." % (srcpath, link))
        bb.debug(2, "Preparing tree %s for packaging at %s" % (state[1], sstatebuild + state[0]))
        os.rename(state[1], sstatebuild + state[0])

    workdir = d.getVar('WORKDIR')
    for plain in ss['plaindirs']:
        pdir = plain.replace(workdir, sstatebuild)
        bb.utils.mkdirhier(plain)
        bb.utils.mkdirhier(pdir)
        os.rename(plain, pdir)

    d.setVar('SSTATE_BUILDDIR', sstatebuild)
    d.setVar('SSTATE_PKG', sstatepkg)

    for f in (d.getVar('SSTATECREATEFUNCS') or '').split() + \
             ['sstate_create_package', 'sstate_sign_package'] + \
             (d.getVar('SSTATEPOSTCREATEFUNCS') or '').split():
        # All hooks should run in SSTATE_BUILDDIR.
        bb.build.exec_func(f, d, (sstatebuild,))

    bb.siggen.dump_this_task(sstatepkg + ".siginfo", d)

    d.setVar('SSTATE_INSTDIR', sstatebuild)

    return
}


python sstate_setscene () {
def sstate_setscene(d):
    shared_state = sstate_state_fromvars(d)
    accelerate = sstate_installpkg(shared_state, d)
    if not accelerate:
        bb.fatal("No suitable staging package found")
}


python sstate_sign_package () {
    from oe.gpg_sign import get_signer

    if d.getVar('SSTATE_SIG_KEY'):
        signer = get_signer(d, 'local')
        sstate_pkg = d.getVar('SSTATE_PKG')
        if os.path.exists(sstate_pkg + '.sig'):
            os.unlink(sstate_pkg + '.sig')
        signer.detach_sign(sstate_pkg, d.getVar('SSTATE_SIG_KEY', False), None,
                           d.getVar('SSTATE_SIG_PASSPHRASE'), armor=False)
}


python sstate_state_fromvars () {
def sstate_state_fromvars(d, task = None):
    if task is None:
        task = d.getVar('BB_CURRENTTASK')
        if not task:
            bb.fatal("sstate code running without task context?!")
        task = task.replace("_setscene", "")

    if task.startswith("do_"):
        task = task[3:]
    inputs = (d.getVarFlag("do_" + task, 'sstate-inputdirs') or "").split()
    outputs = (d.getVarFlag("do_" + task, 'sstate-outputdirs') or "").split()
    plaindirs = (d.getVarFlag("do_" + task, 'sstate-plaindirs') or "").split()
    lockfiles = (d.getVarFlag("do_" + task, 'sstate-lockfile') or "").split()
    lockfilesshared = (d.getVarFlag("do_" + task, 'sstate-lockfile-shared') or "").split()
    interceptfuncs = (d.getVarFlag("do_" + task, 'sstate-interceptfuncs') or "").split()
    fixmedir = d.getVarFlag("do_" + task, 'sstate-fixmedir') or ""
    if not task or len(inputs) != len(outputs):
        bb.fatal("sstate variables not setup correctly?!")

    if task == "populate_lic":
        d.setVar("SSTATE_PKGSPEC", "${SSTATE_SWSPEC}")
        d.setVar("SSTATE_EXTRAPATH", "")
        d.setVar('SSTATE_EXTRAPATHWILDCARD', "")

    ss = sstate_init(task, d)
    for i in range(len(inputs)):
        sstate_add(ss, inputs[i], outputs[i], d)
    ss['lockfiles'] = lockfiles
    ss['lockfiles-shared'] = lockfilesshared
    ss['plaindirs'] = plaindirs
    ss['interceptfuncs'] = interceptfuncs
    ss['fixmedir'] = fixmedir
    return ss
}


python sstate_task_postfunc () {
    shared_state = sstate_state_fromvars(d)

    for intercept in shared_state['interceptfuncs']:
        bb.build.exec_func(intercept, d, (d.getVar("WORKDIR"),))

    omask = os.umask(0o002)
    if omask != 0o002:
       bb.note("Using umask 0o002 (not %0o) for sstate packaging" % omask)
    sstate_package(shared_state, d)
    os.umask(omask)

    sstateinst = d.getVar("SSTATE_INSTDIR")
    d.setVar('SSTATE_FIXMEDIR', shared_state['fixmedir'])

    sstate_installpkgdir(shared_state, d)

    bb.utils.remove(d.getVar("SSTATE_BUILDDIR"), recurse=True)
}


python sstate_task_prefunc () {
    shared_state = sstate_state_fromvars(d)
    sstate_clean(shared_state, d)
}


python staging_copydir () {
def staging_copydir(c, target, dest, seendirs):
    if dest not in seendirs:
        bb.utils.mkdirhier(dest)
        seendirs.add(dest)
}


python staging_copyfile () {
def staging_copyfile(c, target, dest, postinsts, seendirs):
    import errno

    destdir = os.path.dirname(dest)
    if destdir not in seendirs:
        bb.utils.mkdirhier(destdir)
        seendirs.add(destdir)
    if "/usr/bin/postinst-" in c:
        postinsts.append(dest)
    if os.path.islink(c):
        linkto = os.readlink(c)
        if os.path.lexists(dest):
            if not os.path.islink(dest):
                raise OSError(errno.EEXIST, "Link %s already exists as a file" % dest, dest)
            if os.readlink(dest) == linkto:
                return dest
            raise OSError(errno.EEXIST, "Link %s already exists to a different location? (%s vs %s)" % (dest, os.readlink(dest), linkto), dest)
        os.symlink(linkto, dest)
        #bb.warn(c)
    else:
        try:
            os.link(c, dest)
        except OSError as err:
            if err.errno == errno.EXDEV:
                bb.utils.copyfile(c, dest)
            else:
                raise
    return dest
}


python staging_populate_sysroot_dir () {
def staging_populate_sysroot_dir(targetsysroot, nativesysroot, native, d):
    import glob
    import subprocess

    fixme = []
    postinsts = []
    seendirs = set()
    stagingdir = d.getVar("STAGING_DIR")
    if native:
        pkgarchs = ['${BUILD_ARCH}', '${BUILD_ARCH}_*']
        targetdir = nativesysroot
    else:
        pkgarchs = ['${MACHINE_ARCH}']
        pkgarchs = pkgarchs + list(reversed(d.getVar("PACKAGE_EXTRA_ARCHS").split()))
        pkgarchs.append('allarch')
        targetdir = targetsysroot

    bb.utils.mkdirhier(targetdir)
    for pkgarch in pkgarchs:
        for manifest in glob.glob(d.expand("${SSTATE_MANIFESTS}/manifest-%s-*.populate_sysroot" % pkgarch)):
            if manifest.endswith("-initial.populate_sysroot"):
                # skip glibc-initial and libgcc-initial due to file overlap
                continue
            tmanifest = targetdir + "/" + os.path.basename(manifest)
            if os.path.exists(tmanifest):
                continue
            try:
                os.link(manifest, tmanifest)
            except OSError as err:
                if err.errno == errno.EXDEV:
                    bb.utils.copyfile(manifest, tmanifest)
                else:
                    raise
            with open(manifest, "r") as f:
                for l in f:
                    l = l.strip()
                    if l.endswith("/fixmepath"):
                        fixme.append(l)
                        continue
                    if l.endswith("/fixmepath.cmd"):
                        continue
                    dest = l.replace(stagingdir, "")
                    dest = targetdir + "/" + "/".join(dest.split("/")[3:])
                    if l.endswith("/"):
                        staging_copydir(l, targetdir, dest, seendirs)
                        continue
                    try:
                        staging_copyfile(l, targetdir, dest, postinsts, seendirs)
                    except FileExistsError:
                        continue

    staging_processfixme(fixme, targetdir, targetsysroot, nativesysroot, d)
    for p in postinsts:
        subprocess.check_output(p, shell=True)
}


python staging_processfixme () {
def staging_processfixme(fixme, target, recipesysroot, recipesysrootnative, d):
    import subprocess

    if not fixme:
        return
    cmd = "sed -e 's:^[^/]*/:%s/:g' %s | xargs sed -i -e 's:FIXMESTAGINGDIRTARGET:%s:g; s:FIXMESTAGINGDIRHOST:%s:g'" % (target, " ".join(fixme), recipesysroot, recipesysrootnative)
    for fixmevar in ['COMPONENTS_DIR', 'HOSTTOOLS_DIR', 'PKGDATA_DIR']:
        fixme_path = d.getVar(fixmevar)
        cmd += " -e 's:FIXME_%s:%s:g'" % (fixmevar, fixme_path)
    bb.debug(2, cmd)
    subprocess.check_output(cmd, shell=True)

}


python staging_taskhandler () {
    bbtasks = e.tasklist
    for task in bbtasks:
        deps = d.getVarFlag(task, "depends")
        if deps and "populate_sysroot" in deps:
            d.appendVarFlag(task, "prefuncs", " extend_recipe_sysroot")
}


python sysroot_strip () {
    import stat, errno

    dvar = d.getVar('SYSROOT_DESTDIR')
    pn = d.getVar('PN')

    os.chdir(dvar)

    # Return type (bits):
    # 0 - not elf
    # 1 - ELF
    # 2 - stripped
    # 4 - executable
    # 8 - shared library
    # 16 - kernel module
    def isELF(path):
        type = 0
        ret, result = oe.utils.getstatusoutput("file \"%s\"" % path.replace("\"", "\\\""))

        if ret:
            bb.error("split_and_strip_files: 'file %s' failed" % path)
            return type

        # Not stripped
        if "ELF" in result:
            type |= 1
            if "not stripped" not in result:
                type |= 2
            if "executable" in result:
                type |= 4
            if "shared" in result:
                type |= 8
        return type


    elffiles = {}
    inodes = {}
    libdir = os.path.abspath(dvar + os.sep + d.getVar("libdir"))
    baselibdir = os.path.abspath(dvar + os.sep + d.getVar("base_libdir"))
    if (d.getVar('INHIBIT_SYSROOT_STRIP') != '1'):
        #
        # First lets figure out all of the files we may have to process
        #
        for root, dirs, files in os.walk(dvar):
            for f in files:
                file = os.path.join(root, f)

                try:
                    ltarget = oe.path.realpath(file, dvar, False)
                    s = os.lstat(ltarget)
                except OSError as e:
                    (err, strerror) = e.args
                    if err != errno.ENOENT:
                        raise
                    # Skip broken symlinks
                    continue
                if not s:
                    continue
                # Check its an excutable
                if (s[stat.ST_MODE] & stat.S_IXUSR) or (s[stat.ST_MODE] & stat.S_IXGRP) or (s[stat.ST_MODE] & stat.S_IXOTH) \
                        or ((file.startswith(libdir) or file.startswith(baselibdir)) and ".so" in f):
                    # If it's a symlink, and points to an ELF file, we capture the readlink target
                    if os.path.islink(file):
                        continue

                    # It's a file (or hardlink), not a link
                    # ...but is it ELF, and is it already stripped?
                    elf_file = isELF(file)
                    if elf_file & 1:
                        if elf_file & 2:
                            if 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn) or "").split():
                                bb.note("Skipping file %s from %s for already-stripped QA test" % (file[len(dvar):], pn))
                            else:
                                bb.warn("File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dvar):], pn))
                            continue

                        if s.st_ino in inodes:
                            os.unlink(file)
                            os.link(inodes[s.st_ino], file)
                        else:
                            inodes[s.st_ino] = file
                            # break hardlink
                            bb.utils.copyfile(file, file)
                            elffiles[file] = elf_file

        #
        # Now strip them (in parallel)
        #
        strip = d.getVar("STRIP")
        sfiles = []
        for file in elffiles:
            elf_file = int(elffiles[file])
            #bb.note("Strip %s" % file)
            sfiles.append((file, elf_file, strip))

        oe.utils.multiprocess_exec(sfiles, oe.package.runstrip)
}


python unsafe_references_skippable () {
def unsafe_references_skippable(path, name, d):
    if bb.data.inherits_class('native', d) or bb.data.inherits_class('nativesdk', d):
        return True

    if "-dbg" in name or "-dev" in name:
        return True

    # Other package names to skip:
    if name.startswith("kernel-module-"):
        return True

    # Skip symlinks
    if os.path.islink(path):
        return True

    # Skip unusual rootfs layouts which make these tests irrelevant
    exec_prefix = d.getVar('exec_prefix')
    if exec_prefix == "":
        return True

    pkgdest = d.getVar('PKGDEST')
    pkgdest = pkgdest + "/" + name
    pkgdest = os.path.abspath(pkgdest)
    base_bindir = pkgdest + d.getVar('base_bindir')
    base_sbindir = pkgdest + d.getVar('base_sbindir')
    base_libdir = pkgdest + d.getVar('base_libdir')
    bindir = pkgdest + d.getVar('bindir')
    sbindir = pkgdest + d.getVar('sbindir')
    libdir = pkgdest + d.getVar('libdir')

    if base_bindir == bindir and base_sbindir == sbindir and base_libdir == libdir:
        return True

    # Skip files not in base_[bindir|sbindir|libdir]
    path = os.path.abspath(path)
    if not (base_bindir in path or base_sbindir in path or base_libdir in path):
        return True

    return False
}


python wks_search () {
def wks_search(files, search_path):
    for f in files:
        if os.path.isabs(f):
            if os.path.exists(f):
                return f
        else:
            searched = bb.utils.which(search_path, f)
            if searched:
                return searched
}


python write_deploy_manifest () {
    license_deployed_manifest(d)
}


python write_host_sdk_manifest () {
    from oe.sdk import sdk_list_installed_packages
    from oe.utils import format_pkg_list
    sdkmanifestdir = os.path.dirname(d.getVar("SDK_HOST_MANIFEST"))
    pkgs = sdk_list_installed_packages(d, False)
    if not os.path.exists(sdkmanifestdir):
        bb.utils.mkdirhier(sdkmanifestdir)
    with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output:
        output.write(format_pkg_list(pkgs, 'ver'))
}


python write_image_manifest () {
    from oe.rootfs import image_list_installed_packages
    from oe.utils import format_pkg_list

    deploy_dir = d.getVar('IMGDEPLOYDIR')
    link_name = d.getVar('IMAGE_LINK_NAME')
    manifest_name = d.getVar('IMAGE_MANIFEST')

    if not manifest_name:
        return

    pkgs = image_list_installed_packages(d)
    with open(manifest_name, 'w+') as image_manifest:
        image_manifest.write(format_pkg_list(pkgs, "ver"))
        image_manifest.write("\n")

    if os.path.exists(manifest_name):
        manifest_link = deploy_dir + "/" + link_name + ".manifest"
        if os.path.lexists(manifest_link):
            os.remove(manifest_link)
        os.symlink(os.path.basename(manifest_name), manifest_link)
}


python write_image_test_data () {
    from oe.data import export2json

    testdata = "%s/%s.testdata.json" % (d.getVar('DEPLOY_DIR_IMAGE'), d.getVar('IMAGE_NAME'))
    testdata_link = "%s/%s.testdata.json" % (d.getVar('DEPLOY_DIR_IMAGE'), d.getVar('IMAGE_LINK_NAME'))

    bb.utils.mkdirhier(os.path.dirname(testdata))
    searchString = "%s/"%(d.getVar("TOPDIR")).replace("//","/")
    export2json(d, testdata,searchString=searchString,replaceString="")

    if testdata_link != testdata:
        if os.path.lexists(testdata_link):
           os.remove(testdata_link)
        os.symlink(os.path.basename(testdata), testdata_link)
}


python write_license_files () {
def write_license_files(d, license_manifest, pkg_dic):
    import re

    bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split()
    bad_licenses = map(lambda l: canonical_license(d, l), bad_licenses)
    bad_licenses = expand_wildcard_licenses(d, bad_licenses)

    with open(license_manifest, "w") as license_file:
        for pkg in sorted(pkg_dic):
            if bad_licenses:
                try:
                    (pkg_dic[pkg]["LICENSE"], pkg_dic[pkg]["LICENSES"]) = \
                        oe.license.manifest_licenses(pkg_dic[pkg]["LICENSE"],
                        bad_licenses, canonical_license, d)
                except oe.license.LicenseError as exc:
                    bb.fatal('%s: %s' % (d.getVar('P'), exc))
            else:
                pkg_dic[pkg]["LICENSES"] = re.sub('[|&()*]', ' ', pkg_dic[pkg]["LICENSE"])
                pkg_dic[pkg]["LICENSES"] = re.sub('  *', ' ', pkg_dic[pkg]["LICENSES"])
                pkg_dic[pkg]["LICENSES"] = pkg_dic[pkg]["LICENSES"].split()

            if not "IMAGE_MANIFEST" in pkg_dic[pkg]:
                # Rootfs manifest
                license_file.write("PACKAGE NAME: %s\n" % pkg)
                license_file.write("PACKAGE VERSION: %s\n" % pkg_dic[pkg]["PV"])
                license_file.write("RECIPE NAME: %s\n" % pkg_dic[pkg]["PN"])
                license_file.write("LICENSE: %s\n\n" % pkg_dic[pkg]["LICENSE"])

                # If the package doesn't contain any file, that is, its size is 0, the license
                # isn't relevant as far as the final image is concerned. So doing license check
                # doesn't make much sense, skip it.
                if pkg_dic[pkg]["PKGSIZE_%s" % pkg] == "0":
                    continue
            else:
                # Image manifest
                license_file.write("RECIPE NAME: %s\n" % pkg_dic[pkg]["PN"])
                license_file.write("VERSION: %s\n" % pkg_dic[pkg]["PV"])
                license_file.write("LICENSE: %s\n" % pkg_dic[pkg]["LICENSE"])
                license_file.write("FILES: %s\n\n" % pkg_dic[pkg]["FILES"])

            for lic in pkg_dic[pkg]["LICENSES"]:
                lic_file = os.path.join(d.getVar('LICENSE_DIRECTORY'),
                                        pkg_dic[pkg]["PN"], "generic_%s" %
                                        re.sub('\+', '', lic))
                # add explicity avoid of CLOSED license because isn't generic
                if lic == "CLOSED":
                   continue

                if not os.path.exists(lic_file):
                   bb.warn("The license listed %s was not in the "\
                            "licenses collected for recipe %s"
                            % (lic, pkg_dic[pkg]["PN"]))

    # Two options here:
    # - Just copy the manifest
    # - Copy the manifest and the license directories
    # With both options set we see a .5 M increase in core-image-minimal
    copy_lic_manifest = d.getVar('COPY_LIC_MANIFEST')
    copy_lic_dirs = d.getVar('COPY_LIC_DIRS')
    if copy_lic_manifest == "1":
        rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS'),
                                'usr', 'share', 'common-licenses')
        bb.utils.mkdirhier(rootfs_license_dir)
        rootfs_license_manifest = os.path.join(rootfs_license_dir,
                os.path.split(license_manifest)[1])
        if not os.path.exists(rootfs_license_manifest):
            os.link(license_manifest, rootfs_license_manifest)

        if copy_lic_dirs == "1":
            for pkg in sorted(pkg_dic):
                pkg_rootfs_license_dir = os.path.join(rootfs_license_dir, pkg)
                bb.utils.mkdirhier(pkg_rootfs_license_dir)
                pkg_license_dir = os.path.join(d.getVar('LICENSE_DIRECTORY'),
                                            pkg_dic[pkg]["PN"])

                pkg_manifest_licenses = [canonical_license(d, lic) \
                        for lic in pkg_dic[pkg]["LICENSES"]]

                licenses = os.listdir(pkg_license_dir)
                for lic in licenses:
                    rootfs_license = os.path.join(rootfs_license_dir, lic)
                    pkg_license = os.path.join(pkg_license_dir, lic)
                    pkg_rootfs_license = os.path.join(pkg_rootfs_license_dir, lic)

                    if re.match("^generic_.*$", lic):
                        generic_lic = canonical_license(d,
                                re.search("^generic_(.*)$", lic).group(1))

                        # Do not copy generic license into package if isn't
                        # declared into LICENSES of the package.
                        if not re.sub('\+$', '', generic_lic) in \
                                [re.sub('\+', '', lic) for lic in \
                                 pkg_manifest_licenses]:
                            continue

                        if oe.license.license_ok(generic_lic,
                                bad_licenses) == False:
                            continue

                        if not os.path.exists(rootfs_license):
                            os.link(pkg_license, rootfs_license)

                        if not os.path.exists(pkg_rootfs_license):
                            os.symlink(os.path.join('..', lic), pkg_rootfs_license)
                    else:
                        if (oe.license.license_ok(canonical_license(d,
                                lic), bad_licenses) == False or
                                os.path.exists(pkg_rootfs_license)):
                            continue

                        os.link(pkg_license, pkg_rootfs_license)

}


python write_package_manifest () {
    # Get list of installed packages
    license_image_dir = d.expand('${LICENSE_DIRECTORY}/${IMAGE_NAME}')
    bb.utils.mkdirhier(license_image_dir)
    from oe.rootfs import image_list_installed_packages
    from oe.utils import format_pkg_list

    pkgs = image_list_installed_packages(d)
    output = format_pkg_list(pkgs)
    open(os.path.join(license_image_dir, 'package.manifest'),
        'w+').write(output)
}


python write_sdk_test_data () {
    from oe.data import export2json
    testdata = "%s/%s.testdata.json" % (d.getVar('SDKDEPLOYDIR'), d.getVar('TOOLCHAIN_OUTPUTNAME'))
    bb.utils.mkdirhier(os.path.dirname(testdata))
    export2json(d, testdata)
}


python write_target_sdk_manifest () {
    from oe.sdk import sdk_list_installed_packages
    from oe.utils import format_pkg_list
    sdkmanifestdir = os.path.dirname(d.getVar("SDK_TARGET_MANIFEST"))
    pkgs = sdk_list_installed_packages(d, True)
    if not os.path.exists(sdkmanifestdir):
        bb.utils.mkdirhier(sdkmanifestdir)
    with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output:
        output.write(format_pkg_list(pkgs, 'ver'))
}
-------------- next part --------------
DEBUG: Executing python function set_image_size
DEBUG: Python function set_image_size finished
DEBUG: Executing shell function do_image_cpio
48624 blocks
Image Name:   rescue-rootfs-rpi2-2017091507384
Created:      Fri Sep 15 07:39:06 2017
Image Type:   ARM Linux RAMDisk Image (gzip compressed)
Data Size:    11071477 Bytes = 10811.99 kB = 10.56 MB
Load Address: 00000000
Entry Point:  00000000
Image Name:   rescue-rootfs-rpi2-2017091507384
Created:      Fri Sep 15 07:39:06 2017
Image Type:   ARM Linux RAMDisk Image (uncompressed)
Data Size:    11071477 Bytes = 10811.99 kB = 10.56 MB
Load Address: 00000000
Entry Point:  00000000
DEBUG: Shell function do_image_cpio finished
DEBUG: Executing python function create_symlinks
NOTE: Creating symlink: /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2.cpio.gz -> rescue-rootfs-rpi2-20170915073841.rootfs.cpio.gz
NOTE: Creating symlink: /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2.cpio.gz.u-boot -> rescue-rootfs-rpi2-20170915073841.rootfs.cpio.gz.u-boot
DEBUG: Python function create_symlinks finished
-------------- next part --------------
#!/bin/sh

# Emit a useful diagnostic if something fails:
bb_exit_handler() {
    ret=$?
    case $ret in
    0)  ;;
    *)  case $BASH_VERSION in
        "") echo "WARNING: exit code $ret from a shell command.";;
        *)  echo "WARNING: ${BASH_SOURCE[0]}:${BASH_LINENO[0]} exit $ret from '$BASH_COMMAND'";;
        esac
        exit $ret
    esac
}
trap 'bb_exit_handler' 0
set -e
export AR="arm-oe-linux-gnueabi-ar"
export ARCH="arm"
export AS="arm-oe-linux-gnueabi-as "
export BUILD_AR="ar"
export BUILD_AS="as "
export BUILD_CC="gcc "
export BUILD_CCLD="gcc "
export BUILD_CFLAGS="-isystem/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/include -O2 -pipe"
export BUILD_CPP="gcc  -E"
export BUILD_CPPFLAGS="-isystem/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/include"
export BUILD_CXX="g++ "
export BUILD_CXXFLAGS="-isystem/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/include -O2 -pipe -D_GLIBCXX_USE_CXX11_ABI=0"
export BUILD_FC="gfortran "
export BUILD_LD="ld "
export BUILD_LDFLAGS="-L/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/lib -L/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/lib -Wl,-rpath,/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/lib -Wl,-O1"
export BUILD_NM="nm"
export BUILD_RANLIB="ranlib"
export BUILD_STRIP="strip"
export CC="arm-oe-linux-gnueabi-gcc  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
export CCACHE_DIR="/home/mnhu/.ccache"
export CCACHE_DISABLE="1"
export CCLD="arm-oe-linux-gnueabi-gcc  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
export CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
export CPP="arm-oe-linux-gnueabi-gcc -E --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7"
export CPPFLAGS=""
export CXX="arm-oe-linux-gnueabi-g++  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
export CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot=  -fvisibility-inlines-hidden"
unset DISTRO
export FC="arm-oe-linux-gnueabi-gfortran  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
export HOME="/home/mnhu"
export LC_ALL="en_US.UTF-8"
export LD="arm-oe-linux-gnueabi-ld --sysroot=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot "
export LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
export LOGNAME="mnhu"
unset MACHINE
export MAKE="make"
export NM="arm-oe-linux-gnueabi-nm"
export OBJCOPY="arm-oe-linux-gnueabi-objcopy"
export OBJDUMP="arm-oe-linux-gnueabi-objdump"
export PACKAGE_INSTALL=" 		 packagegroup-core-boot 		 packagegroup-core-ssh-openssh 		 e2fsprogs 		 e2fsprogs-tune2fs 		 dosfstools 		 mtd-utils mtd-utils-jffs2 mtd-utils-misc 		 u-boot-fw-utils 		  		 busybox-syslog 		 busybox-watchdog 		 busybox-ifplugd 		 dhcp-client 		 openssh-sftp-server 		 openssh-sftp 		 rauc 		 dbus 		 system-init 		       rescue-init  run-postinsts  base-passwd shadow"
export PATH="/home/mnhu/projects/pil/yocto/meta-poky/scripts:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/bin/crossscripts:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/sbin:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/usr/bin:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/sbin:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native/bin:/home/mnhu/projects/pil/yocto/meta-poky/bitbake/bin:/home/mnhu/projects/pil/yocto/tmp-glibc/hosttools"
export PKG_CONFIG_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib/pkgconfig"
export PKG_CONFIG_DISABLE_UNINSTALLED="yes"
export PKG_CONFIG_LIBDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib/pkgconfig"
export PKG_CONFIG_PATH="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/lib/pkgconfig:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot/usr/share/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot"
export PKG_CONFIG_SYSTEM_INCLUDE_PATH="/usr/include"
export PKG_CONFIG_SYSTEM_LIBRARY_PATH="/lib:/usr/lib"
export PSEUDO_DISABLED="0"
export PSEUDO_LOCALSTATEDIR="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/pseudo/"
export PSEUDO_NOSYMLINKEXP="1"
export PSEUDO_PASSWD="/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs:/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native"
export PSEUDO_PREFIX="/home/mnhu/projects/pil/yocto/tmp-glibc/sysroots-components/x86_64/pseudo-native/usr"
export RANLIB="arm-oe-linux-gnueabi-ranlib"
export READELF="arm-oe-linux-gnueabi-readelf"
export ROOTFS_SIZE="65536"
unset SHELL
export STRINGS="arm-oe-linux-gnueabi-strings"
export STRIP="arm-oe-linux-gnueabi-strip"
unset TARGET_ARCH
export TARGET_CFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
export TARGET_CPPFLAGS=""
export TARGET_CXXFLAGS=" -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0=/usr/src/debug/rescue-rootfs/1.0-r0 -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot-native= -fdebug-prefix-map=/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/recipe-sysroot= "
export TARGET_LDFLAGS="-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed"
export TERM="screen"
export UBOOT_ARCH="arm"
export base_bindir="/bin"
export base_libdir="/lib"
export base_prefix=""
export base_sbindir="/sbin"
export bindir="/usr/bin"
export datadir="/usr/share"
export docdir="/usr/share/doc"
export exec_prefix="/usr"
export includedir="/usr/include"
export infodir="/usr/share/info"
export libdir="/usr/lib"
export libexecdir="/usr/libexec"
export localstatedir="/var"
export mandir="/usr/share/man"
export nonarch_base_libdir="/lib"
export nonarch_libdir="/usr/lib"
export oldincludedir="/usr/include"
export prefix="/usr"
export sbindir="/usr/sbin"
export servicedir="/srv"
export sharedstatedir="/com"
export sysconfdir="/etc"
export systemd_system_unitdir="/lib/systemd/system"
export systemd_unitdir="/lib/systemd"
export systemd_user_unitdir="/usr/lib/systemd/user"

do_image_cpio() {
		(cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs && find . | cpio -o -H newc >/home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073841.rootfs.cpio)
	# We only need the /init symlink if we're building the real
	# image. The -dbg image doesn't need it! By being clever
	# about this we also avoid 'touch' below failing, as it
	# might be trying to touch /sbin/init on the host since both
	# the normal and the -dbg image share the same WORKDIR
	if [ "${IMAGE_BUILDING_DEBUGFS}" != "true" ]; then
		if [ ! -L /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/init ] && [ ! -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/init ]; then
			if [ -L /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init ] || [ -e /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/rootfs/sbin/init ]; then
				ln -sf /sbin/init /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append/init
			else
				touch /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append/init
			fi
			(cd  /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/cpio_append && echo ./init | cpio -oA -H newc -F /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/rescue-rootfs-rpi2-20170915073841.rootfs.cpio)
		fi
	fi

	cd /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete
	gzip -f -9 -c rescue-rootfs-rpi2-20170915073841.rootfs.cpio > rescue-rootfs-rpi2-20170915073841.rootfs.cpio.gz
	gzip -f -9 -c rescue-rootfs-rpi2-20170915073841.rootfs.cpio > rescue-rootfs-rpi2-20170915073841.rootfs.cpio.gz; oe_mkimage rescue-rootfs-rpi2-20170915073841.rootfs.cpio.gz gzip
	oe_mkimage rescue-rootfs-rpi2-20170915073841.rootfs.cpio.gz none
	rm rescue-rootfs-rpi2-20170915073841.rootfs.cpio
}

oe_mkimage() {
    mkimage -A arm -O linux -T ramdisk -C $2 -n rescue-rootfs-rpi2-20170915073841 \
        -d /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/$1 /home/mnhu/projects/pil/yocto/tmp-glibc/work/rpi2-oe-linux-gnueabi/rescue-rootfs/1.0-r0/deploy-rescue-rootfs-image-complete/$1.u-boot
}

do_image_cpio

# cleanup
ret=$?
trap '' 0
exit $ret
-------------- next part --------------
A non-text attachment was scrubbed...
Name: console-latest.log
Type: text/x-log
Size: 1736754 bytes
Desc: not available
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170915/252db08e/attachment-0002.bin>
-------------- next part --------------
SUMMARY = "PIL rescue-rootfs"
LICENSE = "MIT"

inherit deploy
include rootfs.inc

IMAGE_LINGUAS = ""
IMAGE_FSTYPES = "tar cpio.gz cpio.gz.u-boot"
IMAGE_INSTALL += " \
    rescue-init \
"
-------------- next part --------------
inherit extrausers image
PIL_ROOT_PASSWD ?= "root"
EXTRA_USERS_PARAMS += "usermod -P ${PIL_ROOT_PASSWD} root;"

IMAGE_INSTALL_HWCLOCK = "${@bb.utils.contains('MACHINE_FEATURES', 'rtc', 'busybox-hwclock', '', d)}"
IMAGE_INSTALL = " \
		 packagegroup-core-boot \
		 packagegroup-core-ssh-openssh \
		 e2fsprogs \
		 e2fsprogs-tune2fs \
		 dosfstools \
		 mtd-utils mtd-utils-jffs2 mtd-utils-misc \
		 u-boot-fw-utils \
		 ${IMAGE_INSTALL_HWCLOCK} \
		 busybox-syslog \
		 busybox-watchdog \
		 busybox-ifplugd \
		 dhcp-client \
		 openssh-sftp-server \
		 openssh-sftp \
		 rauc \
		 dbus \
		 system-init \
		 "

# Exclude recommended packages
BAD_RECOMMENDATIONS = "busybox-udhcpc udev-cache kernel-vmlinux"


More information about the Openembedded-core mailing list