diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
index 6c5234e..e4251df 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.xml
@@ -618,12 +618,12 @@
         <para>
             Tasks can be either a shell task or a Python task.
             For shell tasks, BitBake writes a shell script to
-            <filename>${</filename><link linkend='var-bb-T'><filename>T</filename></link><filename>}/run.do_taskname.pid</filename>
+            <filename>${</filename><link linkend='var-bb-T'><filename>T</filename></link><filename>}/run.do_taskname.<replaceable>pid</replaceable></filename>
             and then executes the script.
             The generated shell script contains all the exported variables,
             and the shell functions with all variables expanded.
             Output from the shell script goes to the file
-            <filename>${T}/log.do_taskname.pid</filename>.
+            <filename>${T}/log.do_taskname.<replaceable>pid</replaceable></filename>.
             Looking at the expanded shell functions in the run file and
             the output in the log files is a useful debugging technique.
         </para>
diff --git a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
index 10b5883..95a8b95 100644
--- a/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
+++ b/poky/bitbake/doc/bitbake-user-manual/bitbake-user-manual-metadata.xml
@@ -2526,6 +2526,9 @@
                 In the previous example, the <filename>do_packagedata</filename>
                 task of each item in <filename>RDEPENDS</filename> must have
                 completed before <filename>do_package_qa</filename> can execute.
+                Although <filename>RDEPENDS</filename> contains entries from the
+                runtime dependency namespace, BitBake knows how to map them back
+                to the build-time dependency namespace, in which the tasks are defined.
             </para>
         </section>
 
diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py
index d1359f0..0e6d9b2 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -389,6 +389,10 @@
 class RecipePreFinalise(RecipeEvent):
     """ Recipe Parsing Complete but not yet finalised"""
 
+class RecipePostKeyExpansion(RecipeEvent):
+    """ Recipe Parsing Complete but not yet finalised"""
+
+
 class RecipeTaskPreProcess(RecipeEvent):
     """
     Recipe Tasks about to be finalised
diff --git a/poky/bitbake/lib/bb/fetch2/cvs.py b/poky/bitbake/lib/bb/fetch2/cvs.py
index 29123a4..22abdef 100644
--- a/poky/bitbake/lib/bb/fetch2/cvs.py
+++ b/poky/bitbake/lib/bb/fetch2/cvs.py
@@ -51,6 +51,10 @@
 
         ud.localfile = d.expand('%s_%s_%s_%s%s%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.tag, ud.date, norecurse, fullpath))
 
+        pkg = d.getVar('PN')
+        cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
+        ud.pkgdir = os.path.join(cvsdir, pkg)
+
     def need_update(self, ud, d):
         if (ud.date == "now"):
             return True
@@ -106,10 +110,7 @@
 
         # create module directory
         logger.debug(2, "Fetch: checking for module directory")
-        pkg = d.getVar('PN')
-        cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
-        pkgdir = os.path.join(cvsdir, pkg)
-        moddir = os.path.join(pkgdir, localdir)
+        moddir = os.path.join(ud.pkgdir, localdir)
         workdir = None
         if os.access(os.path.join(moddir, 'CVS'), os.R_OK):
             logger.info("Update " + ud.url)
@@ -120,8 +121,8 @@
         else:
             logger.info("Fetch " + ud.url)
             # check out sources there
-            bb.utils.mkdirhier(pkgdir)
-            workdir = pkgdir
+            bb.utils.mkdirhier(ud.pkgdir)
+            workdir = ud.pkgdir
             logger.debug(1, "Running %s", cvscmd)
             bb.fetch2.check_network_access(d, cvscmd, ud.url)
             cmd = cvscmd
@@ -140,7 +141,7 @@
         # tar them up to a defined filename
         workdir = None
         if 'fullpath' in ud.parm:
-            workdir = pkgdir
+            workdir = ud.pkgdir
             cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, localdir)
         else:
             workdir = os.path.dirname(os.path.realpath(moddir))
@@ -151,9 +152,6 @@
     def clean(self, ud, d):
         """ Clean CVS Files and tarballs """
 
-        pkg = d.getVar('PN')
-        pkgdir = os.path.join(d.getVar("CVSDIR"), pkg)
-
-        bb.utils.remove(pkgdir, True)
+        bb.utils.remove(ud.pkgdir, True)
         bb.utils.remove(ud.localpath)
 
diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py
index eb8cfa2..785aa97 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -338,6 +338,9 @@
         bb.event.fire(bb.event.RecipePreFinalise(fn), d)
 
         bb.data.expandKeys(d)
+
+        bb.event.fire(bb.event.RecipePostKeyExpansion(fn), d)
+
         runAnonFuncs(d)
 
         tasklist = d.getVar('__BBTASKS', False) or []
diff --git a/poky/documentation/dev-manual/dev-manual-common-tasks.xml b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
index e9ce182..605d1ad 100644
--- a/poky/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -9057,6 +9057,9 @@
                 <listitem><para>
                     <link linkend='creating-node-package-manager-npm-packages'>Creating node package manager (NPM) packages</link>
                     </para></listitem>
+                <listitem><para>
+                    <link linkend='adding-custom-metadata-to-packages'>Adding custom metadata to packages</link>
+                    </para></listitem>
             </itemizedlist>
         </para>
 
@@ -10761,6 +10764,61 @@
                 </para>
             </section>
         </section>
+
+        <section id='adding-custom-metadata-to-packages'>
+            <title>Adding custom metadata to packages</title>
+
+            <para>
+                The variable <ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_ADD_METADATA'><filename>PACKAGE_ADD_METADATA</filename></ulink>
+                can be used to add additional metadata to packages. This is
+                reflected in the package control/spec file. To take the ipk
+                format for example, the CONTROL file stored inside would
+                contain the additional metadata as additional lines.
+            </para>
+
+            <para>
+                The variable can be used in multiple ways, including using
+                suffixes to set it for a specific package type and/or package.
+                Note that the order of precedence is the same as this list:
+                <itemizedlist>
+                    <listitem><para>
+                        <filename>PACKAGE_ADD_METADATA_&lt;PKGTYPE&gt;_&lt;PN&gt;</filename>
+                    </para></listitem>
+                    <listitem><para>
+                        <filename>PACKAGE_ADD_METADATA_&lt;PKGTYPE&gt;</filename>
+                    </para></listitem>
+                    <listitem><para>
+                        <filename>PACKAGE_ADD_METADATA_&lt;PN&gt;</filename>
+                    </para></listitem>
+                    <listitem><para>
+                        <filename>PACKAGE_ADD_METADATA</filename>
+                    </para></listitem>
+                </itemizedlist>
+                &lt;PKGTYPE&gt; is a parameter and expected to be a
+                distinct name of specific package type:
+                <itemizedlist>
+                    <listitem><para>IPK for .ipk packages</para></listitem>
+                    <listitem><para>DEB for .deb packages</para></listitem>
+                    <listitem><para>RPM for .rpm packages</para></listitem>
+                </itemizedlist>
+                &lt;PN&gt; is a parameter and expected to be a package name.
+            </para>
+
+            <para>
+                The variable can contain multiple [one-line] metadata fields
+                separated by the literal sequence '\n'. The separator can be
+                redefined using the variable flag <filename>separator</filename>.
+            </para>
+
+            <para>
+                The following is an example that adds two custom fields for
+                ipk packages:
+                <literallayout class='monospaced'>
+    PACKAGE_ADD_METADATA_IPK = "Vendor: CustomIpk\nGroup: Applications/Spreadsheets"
+                </literallayout>
+            </para>
+        </section>
+
     </section>
 
     <section id='efficiently-fetching-source-files-during-a-build'>
diff --git a/poky/documentation/ref-manual/ref-classes.xml b/poky/documentation/ref-manual/ref-classes.xml
index f9bbddd..f8920d8 100644
--- a/poky/documentation/ref-manual/ref-classes.xml
+++ b/poky/documentation/ref-manual/ref-classes.xml
@@ -1742,6 +1742,12 @@
                 </note>
                 </para></listitem>
 -->
+            <listitem><para><emphasis><filename>unlisted-pkg-lics:</filename></emphasis>
+                Checks that all declared licenses applying for a package are also
+                declared on the recipe level (i.e. any license in
+                <filename>LICENSE_*</filename> should appear in
+                <link linkend='var-LICENSE'><filename>LICENSE</filename></link>).
+                </para></listitem>
             <listitem><para><emphasis><filename>useless-rpaths:</filename></emphasis>
                 Checks for dynamic library load paths (rpaths) in the binaries that
                 by default on a standard system are searched by the linker (e.g.
diff --git a/poky/documentation/ref-manual/ref-qa-checks.xml b/poky/documentation/ref-manual/ref-qa-checks.xml
index 515106a..424a19c 100644
--- a/poky/documentation/ref-manual/ref-qa-checks.xml
+++ b/poky/documentation/ref-manual/ref-qa-checks.xml
@@ -1170,6 +1170,31 @@
             </listitem>
         </itemizedlist>
     </para>
+
+    <para>
+        <itemizedlist>
+            <listitem>
+                <para id='qa-issue-unlisted-pkg-lics'>
+                    <code>
+     LICENSE_&lt;packagename&gt; includes licenses (&lt;licenses&gt;) that are not listed in LICENSE [unlisted-pkg-lics]
+                    </code>
+                </para>
+
+                <para>
+                    The <link linkend='var-LICENSE'><filename>LICENSE</filename></link>
+		    of the recipe should be a superset of all the licenses of
+		    all packages produced by this recipe.
+		    In other words, any license in <filename>LICENSE_*</filename>
+		    should also appear in
+                    <link linkend='var-LICENSE'><filename>LICENSE</filename></link>.
+                </para>
+
+                <para>
+                    &nbsp;
+                </para>
+            </listitem>
+        </itemizedlist>
+    </para>
 </section>
 
 <section id='configuring-and-disabling-qa-checks'>
diff --git a/poky/documentation/ref-manual/ref-variables.xml b/poky/documentation/ref-manual/ref-variables.xml
index 9ebe72c..657f6cf 100644
--- a/poky/documentation/ref-manual/ref-variables.xml
+++ b/poky/documentation/ref-manual/ref-variables.xml
@@ -52,7 +52,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Extension to the Application Binary Interface (ABI)
                     field of the GNU canonical architecture name
                     (e.g. "eabi").
@@ -76,7 +75,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                    Specifies whether to produce an output package even if it is
                    empty.
                    By default, BitBake does not produce empty packages.
@@ -103,7 +101,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists commands in a package that need an alternative
                     binary naming scheme.
                     Sometimes the same command is provided in multiple packages.
@@ -134,7 +131,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Used by the alternatives system to map duplicated commands
                     to actual locations.
                     For example, if the <filename>bracket</filename> command
@@ -174,7 +170,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Used by the alternatives system to create default
                     priorities for duplicated commands.
                     You can use the variable to create a single default
@@ -203,7 +198,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Used by the alternatives system to create default link
                     locations for duplicated commands.
                     You can use the variable to create a single default
@@ -258,7 +252,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     An override list of append strings for each target
                     specified with
                     <link linkend='var-LABELS'><filename>LABELS</filename></link>.
@@ -278,7 +271,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments used to run
                     <filename>ar</filename>.
                 </para>
@@ -291,7 +283,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When used with the
                     <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
                     class, determines the type of information used to create
@@ -334,7 +325,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Minimal command and arguments needed to run the
                     assembler.
                 </para>
@@ -347,7 +337,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists recipe names
                     (<link linkend='var-PN'><filename>PN</filename></link>
                     values) BitBake does not attempt to build.
@@ -371,7 +360,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Provides additional <filename>shlibs</filename> provider
                     mapping information, which adds to or overwrites the
                     information provided automatically by the system.
@@ -406,7 +394,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The email address used to contact the original author
                     or authors in order to send patches and forward bugs.
                 </para>
@@ -419,7 +406,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When the
                     <link linkend='ref-classes-debian'><filename>debian</filename></link>
                     class is inherited, which is the default behavior,
@@ -442,7 +428,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Enables creating an automatic menu for the syslinux
                     bootloader.
                     You must set this variable in your recipe.
@@ -459,7 +444,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When
                     <filename><link linkend='var-SRCREV'>SRCREV</link></filename>
                     is set to the value of this variable, it specifies to use
@@ -501,7 +485,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
 
                     List of licenses found in the directories specified
                     by <link linkend='var-COMMON_LICENSE_DIR'><filename>COMMON_LICENSE_DIR</filename></link>
@@ -525,7 +508,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The list of defined CPU and Application Binary Interface
                     (ABI) tunings (i.e.  "tunes") available for use by the
                     OpenEmbedded build system.
@@ -560,7 +542,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory within the
                     <link linkend='build-directory'>Build Directory</link>
                     in which the OpenEmbedded build system places generated
@@ -590,7 +571,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists "recommended-only" packages to not install.
                     Recommended-only packages are packages installed only
                     through the
@@ -645,7 +625,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The library directory name for the CPU or Application
                     Binary Interface (ABI) tune.
                     The <filename>BASE_LIB</filename> applies only in the
@@ -671,7 +650,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the base of the work directory for all recipes.
                     The default value is "${TMPDIR}/work".
                 </para>
@@ -751,7 +729,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines how BitBake handles situations where an append
                     file (<filename>.bbappend</filename>) has no
                     corresponding recipe file (<filename>.bb</filename>).
@@ -789,7 +766,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Monitors disk space and available inodes during the build
                     and allows you to control the build based on these
                     parameters.
@@ -887,7 +863,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the disk space and free inode warning intervals.
                     To set these intervals, define the variable in your
                     <filename>conf/local.conf</filename> file in the
@@ -959,7 +934,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Causes tarballs of the source control repositories
                     (e.g. Git repositories), including metadata, to be placed
                     in the
@@ -994,7 +968,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The maximum number of tasks BitBake should run in parallel
                     at any one time.
                     The OpenEmbedded build system automatically configures
@@ -1030,7 +1003,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the time (in seconds) after which to unload the
                     BitBake server due to inactivity.
                     Set <filename>BB_SERVER_TIMEOUT</filename> to determine how
@@ -1056,7 +1028,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Allows you to extend a recipe so that it builds variants of the software.
                     Common variants for recipes exist such as "natives" like <filename>quilt-native</filename>,
                     which is a copy of Quilt built to run on the build system;
@@ -1107,7 +1078,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists the names of configured layers.
                     These names are used to find the other <filename>BBFILE_*</filename>
                     variables.
@@ -1123,7 +1093,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Variable that expands to match files from
                     <link linkend='var-BBFILES'><filename>BBFILES</filename></link>
                     in a particular layer.
@@ -1140,7 +1109,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Assigns the priority for recipe files in each layer.
                 </para>
 
@@ -1183,7 +1151,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A space-separated list of recipe files BitBake uses to
                     build software.
                 </para>
@@ -1205,7 +1172,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Activates content when identified layers are present.
                     You identify the layers by the collections that the layers
                     define.
@@ -1252,7 +1218,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Variable that controls how BitBake displays logs on build failure.
                 </para>
             </glossdef>
@@ -1264,7 +1229,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If
                     <link linkend='var-BBINCLUDELOGS'><filename>BBINCLUDELOGS</filename></link>
                     is set, specifies the maximum number of lines from the
@@ -1281,7 +1245,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists the layers to enable during the build.
                     This variable is defined in the <filename>bblayers.conf</filename> configuration
                     file in the
@@ -1310,7 +1273,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Prevents BitBake from processing recipes and recipe
                     append files.
                 </para>
@@ -1372,7 +1334,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies each additional separate configuration when you
                     are building targets with multiple configurations.
                     Use this variable in your
@@ -1408,7 +1369,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Used by BitBake to locate
                     <filename>.bbclass</filename> and configuration files.
                     This variable is analogous to the
@@ -1437,7 +1397,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If defined in the BitBake environment,
                     <filename>BBSERVER</filename> points to the BitBake
                     remote server.
@@ -1466,7 +1425,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-binconfig-disabled'><filename>binconfig-disabled</filename></link>
                     class, this variable specifies binary configuration
@@ -1494,7 +1452,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
                     class, this variable specifies a wildcard for
@@ -1533,7 +1490,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The base recipe name and version but without any special
                     recipe name suffix (i.e. <filename>-native</filename>, <filename>lib64-</filename>,
                     and so forth).
@@ -1551,7 +1507,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable is a version of the
                     <link linkend='var-PN'><filename>PN</filename></link>
                     variable with common prefixes and suffixes
@@ -1576,7 +1531,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a URL for an upstream bug tracking website for
                     a recipe.
                     The OpenEmbedded build system does not use this variable.
@@ -1592,7 +1546,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the architecture of the build host
                     (e.g. <filename>i686</filename>).
                     The OpenEmbedded build system sets the value of
@@ -1608,7 +1561,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the architecture-specific assembler flags for
                     the build host. By default, the value of
                     <filename>BUILD_AS_ARCH</filename> is empty.
@@ -1622,7 +1574,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the architecture-specific C compiler flags for
                     the build host. By default, the value of
                     <filename>BUILD_CC_ARCH</filename> is empty.
@@ -1636,7 +1587,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the linker command to be used for the build host
                     when the C compiler is being used as the linker. By default,
                     <filename>BUILD_CCLD</filename> points to GCC and passes as
@@ -1653,7 +1603,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C compiler when building
                     for the build host.
                     When building in the <filename>-native</filename> context,
@@ -1669,7 +1618,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C preprocessor
                     (i.e. to both the C and the C++ compilers) when building
                     for the build host.
@@ -1686,7 +1634,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C++ compiler when
                     building for the build host.
                     When building in the <filename>-native</filename> context,
@@ -1702,7 +1649,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the Fortran compiler command for the build host.
                     By default, <filename>BUILD_FC</filename> points to
                     Gfortran and passes as arguments the value of
@@ -1718,7 +1664,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the linker command for the build host. By default,
                     <filename>BUILD_LD</filename> points to the GNU linker (ld)
                     and passes as arguments the value of
@@ -1734,7 +1679,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies architecture-specific linker flags for the build
                     host. By default, the value of
                     <filename>BUILD_LD_ARCH</filename> is empty.
@@ -1748,7 +1692,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the linker when building
                     for the build host.
                     When building in the <filename>-native</filename> context,
@@ -1764,7 +1707,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the optimization flags passed to the C compiler
                     when building for the build host or the SDK.
                     The flags are passed through the
@@ -1788,7 +1730,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the operating system in use on the build
                     host (e.g. "linux").
                     The OpenEmbedded build system sets the value of
@@ -1805,7 +1746,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The toolchain binary prefix used for native recipes.
                     The OpenEmbedded build system uses the
                     <filename>BUILD_PREFIX</filename> value to set the
@@ -1821,7 +1761,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the command to be used to strip debugging symbols
                     from binaries produced for the build host. By default,
                     <filename>BUILD_STRIP</filename> points to
@@ -1836,7 +1775,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the system, including the architecture and
                     the operating system, to use when building for the build
                     host (i.e. when building <filename>native</filename>
@@ -1862,7 +1800,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the vendor name to use when building for the
                     build host.
                     The default value is an empty string ("").
@@ -1876,7 +1813,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the location of the
                     <link linkend='build-directory'>Build Directory</link>.
                     You can define this directory indirectly through the
@@ -1896,7 +1832,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
                     class, this variable specifies whether or not to commit the
@@ -1928,7 +1863,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
                     class, this variable specifies the author to use for each
@@ -1963,7 +1897,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
                     class, this variable specifies the directory in which
@@ -1988,7 +1921,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
                     class, this variable specifies the build history features
@@ -2041,7 +1973,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
                     class, this variable specifies a list of paths to files
@@ -2074,7 +2005,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-buildhistory'><filename>buildhistory</filename></link>
                     class, this variable optionally specifies a remote
@@ -2109,7 +2039,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C compiler when building
                     for the SDK.
                     When building in the <filename>nativesdk-</filename>
@@ -2126,7 +2055,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C pre-processor
                     (i.e. to both the C and the C++ compilers) when building
                     for the SDK.
@@ -2144,7 +2072,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C++ compiler when
                     building for the SDK.
                     When building in the <filename>nativesdk-</filename>
@@ -2161,7 +2088,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the linker when building
                     for the SDK.
                     When building in the <filename>nativesdk-</filename>
@@ -2178,7 +2104,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the location of the directory that holds build
                     statistics when you use and enable the
                     <link linkend='ref-classes-buildstats'><filename>buildstats</filename></link>
@@ -2196,7 +2121,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     For the BusyBox recipe, specifies whether to split the
                     output executable file into two parts: one for features
                     that require <filename>setuid root</filename>, and one for
@@ -2224,7 +2148,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the directory BitBake uses to store a cache
                     of the
                     <link linkend='metadata'>Metadata</link>
@@ -2240,7 +2163,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments used to run the C
                     compiler.
                 </para>
@@ -2253,7 +2175,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C compiler.
                     This variable is exported to an environment
                     variable and thus made visible to the software being
@@ -2289,7 +2210,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     An internal variable specifying the special class override
                     that should currently apply (e.g. "class-target",
                     "class-native", and so forth).
@@ -2333,7 +2253,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If set to "1" within a recipe,
                     <filename>CLEANBROKEN</filename> specifies that
                     the <filename>make clean</filename> command does
@@ -2352,7 +2271,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Provides a list of hardware features that are enabled in
                     both
                     <link linkend='var-MACHINE_FEATURES'><filename>MACHINE_FEATURES</filename></link>
@@ -2375,7 +2293,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to <filename>meta/files/common-licenses</filename>
                     in the
                     <link linkend='source-directory'>Source Directory</link>,
@@ -2390,7 +2307,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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.
@@ -2413,7 +2329,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A regular expression that resolves to one or more
                     target machines with which a recipe is compatible.
                     The regular expression is matched against
@@ -2434,7 +2349,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines wildcards to match when installing a list of
                     complementary packages for all the packages explicitly
                     (or implicitly) installed in an image.
@@ -2473,7 +2387,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Stores sysroot components for each recipe.
                     The OpenEmbedded build system uses
                     <filename>COMPONENTS_DIR</filename> when constructing
@@ -2494,7 +2407,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Tracks the version of the local configuration file
                     (i.e. <filename>local.conf</filename>).
                     The value for <filename>CONF_VERSION</filename>
@@ -2510,7 +2422,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Identifies editable or configurable files that are part of a package.
                     If the Package Management System (PMS) is being used to update
                     packages on the target system, it is possible that
@@ -2564,7 +2475,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Identifies the initial RAM filesystem (initramfs) source
                     files.
                     The OpenEmbedded build system receives and uses
@@ -2607,7 +2517,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of files that contains <filename>autoconf</filename> test results relevant
                     to the current build.
                     This variable is used by the Autotools utilities when running
@@ -2622,7 +2531,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal arguments for GNU configure.
                 </para>
             </glossdef>
@@ -2634,7 +2542,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
                     class, this
@@ -2657,7 +2564,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A space-separated list of licenses to exclude from the
                     source archived by the
                     <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
@@ -2689,7 +2595,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A space-separated list of licenses to include in the
                     source archived by the
                     <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
@@ -2717,7 +2622,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of recipes to exclude in the source archived
                     by the
                     <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
@@ -2749,7 +2653,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of recipes to include in the source archived
                     by the
                     <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
@@ -2781,7 +2684,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A space-separated list of recipe types to include
                     in the source archived by the
                     <link linkend='ref-classes-archiver'><filename>archiver</filename></link>
@@ -2811,7 +2713,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If set to "1" along with the
                     <link linkend='var-COPY_LIC_MANIFEST'><filename>COPY_LIC_MANIFEST</filename></link>
                     variable, the OpenEmbedded build system copies
@@ -2843,7 +2744,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If set to "1", the OpenEmbedded build system copies
                     the license manifest for the image to
                     <filename>/usr/share/common-licenses/license.manifest</filename>
@@ -2871,7 +2771,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the list of packages to be added to the image.
                     You should only set this variable in the
                     <filename>local.conf</filename> configuration file found
@@ -2891,7 +2790,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the parent directory of the OpenEmbedded-Core
                     Metadata layer (i.e. <filename>meta</filename>).
                 </para>
@@ -2917,7 +2815,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists files from the
                     <link linkend='var-COREBASE'><filename>COREBASE</filename></link>
                     directory that should be copied other than the layers
@@ -2946,7 +2843,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments used to run the C
                     preprocessor.
                 </para>
@@ -2959,7 +2855,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C pre-processor
                     (i.e. to both the C and the C++ compilers).
                     This variable is exported to an environment
@@ -2996,7 +2891,6 @@
             </info>
             <glossdef>
                <para role="glossdeffirst">
-<!--               <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The toolchain binary prefix for the target tools.
                     The <filename>CROSS_COMPILE</filename> variable is the
                     same as the
@@ -3018,7 +2912,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory in which files checked out under the
                     CVS system are stored.
                 </para>
@@ -3031,7 +2924,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments used to run the C++
                     compiler.
                 </para>
@@ -3044,7 +2936,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C++ compiler.
                     This variable is exported to an environment
                     variable and thus made visible to the software being
@@ -3084,7 +2975,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The destination directory.
                     The location in the
                     <link linkend='build-directory'>Build Directory</link>
@@ -3110,7 +3000,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The date the build was started.
                     Dates appear using the year, month, and day (YMD) format
                     (e.g. "20150209" for February 9th, 2015).
@@ -3124,7 +3013,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The date and time on which the current build started.
                     The format is suitable for timestamps.
                 </para>
@@ -3137,7 +3025,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When the
                     <link linkend='ref-classes-debian'><filename>debian</filename></link>
                     class is inherited, which is the default behavior,
@@ -3161,7 +3048,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When the
                     <link linkend='ref-classes-debian'><filename>debian</filename></link>
                     class is inherited, which is the default behavior,
@@ -3185,7 +3071,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies to build packages with debugging information.
                     This influences the value of the
                     <filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION</link></filename>
@@ -3200,7 +3085,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The options to pass in
                     <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
                     and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename> when compiling
@@ -3216,7 +3100,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a weak bias for recipe selection priority.
                 </para>
 
@@ -3246,7 +3129,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The default CPU and Application Binary Interface (ABI)
                     tunings (i.e.  the "tune") used by the OpenEmbedded build
                     system.
@@ -3271,7 +3153,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists a recipe's build-time dependencies.
                     These are dependencies on other recipes whose
                     contents (e.g. headers and shared libraries) are needed
@@ -3394,7 +3275,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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.
@@ -3426,7 +3306,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the area that the OpenEmbedded build system uses
                     to place Debian packages that are ready to be used outside
                     of the build system.
@@ -3466,7 +3345,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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.
@@ -3499,7 +3377,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the area that the OpenEmbedded build system uses
                     to place IPK packages that are ready to be used outside of
                     the build system.
@@ -3538,7 +3415,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the area that the OpenEmbedded build system uses
                     to place RPM packages that are ready to be used outside
                     of the build system.
@@ -3577,7 +3453,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the area that the OpenEmbedded build system uses
                     to place tarballs that are ready to be used outside of
                     the build system.
@@ -3616,7 +3491,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-deploy'><filename>deploy</filename></link>
                     class, the <filename>DEPLOYDIR</filename> points to a
@@ -3644,7 +3518,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The package description used by package managers.
                     If not set, <filename>DESCRIPTION</filename> takes
                     the value of the
@@ -3660,7 +3533,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The short name of the distribution.
                     For information on the long name of the distribution, see
                     the
@@ -3713,7 +3585,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a codename for the distribution being built.
                 </para>
             </glossdef>
@@ -3725,7 +3596,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of distro-specific packages to add to all images.
                     This variable takes affect through
                     <filename>packagegroup-base</filename> so the
@@ -3745,7 +3615,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of distro-specific packages to add to all images
                     if the packages exist.
                     The packages might not exist or be empty (e.g. kernel modules).
@@ -3761,7 +3630,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The software support you want in your distribution for
                     various features.
                     You define your distribution features in the distribution
@@ -3798,7 +3666,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Features to be added to
                     <filename><link linkend='var-DISTRO_FEATURES'>DISTRO_FEATURES</link></filename>
                     if not also present in
@@ -3822,7 +3689,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Features from
                     <filename><link linkend='var-DISTRO_FEATURES_BACKFILL'>DISTRO_FEATURES_BACKFILL</link></filename>
                     that should not be backfilled (i.e. added to
@@ -3840,7 +3706,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A convenience variable that gives you the default
                     list of distro features with the exception of any
                     features specific to the C library
@@ -3868,7 +3733,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of features that if present in
                     the target
                     <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
@@ -3889,7 +3753,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of features that if present in the target
                     <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
                     value should be included in
@@ -3910,7 +3773,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-                    <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" />
                     A convenience variable that specifies the list of distro
                     features that are specific to the C library
                     (<filename>libc</filename>).
@@ -3928,7 +3790,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of features that should be included in
                     <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
                     when building native recipes.
@@ -3946,7 +3807,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of features that should be included in
                     <link linkend='var-DISTRO_FEATURES'><filename>DISTRO_FEATURES</filename></link>
                     when building nativesdk recipes.
@@ -3964,7 +3824,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The long name of the distribution.
                     For information on the short name of the distribution, see
                     the
@@ -4016,7 +3875,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The version of the distribution.
                 </para>
             </glossdef>
@@ -4028,7 +3886,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A colon-separated list of overrides specific to the
                     current distribution.
                     By default, this list includes the value of
@@ -4056,7 +3913,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The central download directory used by the build process to
                     store downloads.
                     By default, <filename>DL_DIR</filename> gets files
@@ -4119,7 +3975,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-compress_doc'><filename>compress_doc</filename></link>
                     class, this variable sets the compression policy used when
@@ -4147,7 +4002,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When building bootable images (i.e. where
                     <filename>hddimg</filename>, <filename>iso</filename>,
                     or <filename>wic.vmdk</filename> is in
@@ -4174,7 +4028,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Variable that controls which locales for
                     <filename>glibc</filename> are generated during the
                     build (useful if the target device has 64Mbytes
@@ -4189,7 +4042,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When used with the
                     <link linkend='ref-classes-report-error'><filename>report-error</filename></link>
                     class, specifies the path used for storing the debug files
@@ -4218,7 +4070,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the quality assurance checks whose failures are
                     reported as errors by the OpenEmbedded build system.
                     You set this variable in your distribution configuration
@@ -4237,7 +4088,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Triggers the OpenEmbedded build system's shared libraries
                     resolver to exclude an entire package when scanning for
                     shared libraries.
@@ -4276,7 +4126,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Directs BitBake to exclude a recipe from world builds (i.e.
                     <filename>bitbake world</filename>).
                     During world builds, BitBake locates, parses and builds all
@@ -4306,7 +4155,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Used with file and pathnames to create a prefix for a recipe's
                     version based on the recipe's
                     <link linkend='var-PE'><filename>PE</filename></link> value.
@@ -4328,7 +4176,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The full package version specification as it appears on the
                     final packages produced by a recipe.
                     The variable's value is normally used to fix a runtime
@@ -4353,7 +4200,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When set, the <filename>EXTERNAL_KERNEL_TOOLS</filename>
                     variable indicates that these tools are not in the
                     source tree.
@@ -4379,7 +4225,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
                     class, this variable points to the source tree, which is
@@ -4409,7 +4254,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-externalsrc'><filename>externalsrc</filename></link>
                     class, this variable points to the directory in which the
@@ -4440,7 +4284,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     For recipes inheriting the
                     <link linkend='ref-classes-autotools'><filename>autotools</filename></link>
                     class, you can use <filename>EXTRA_AUTORECONF</filename> to
@@ -4463,7 +4306,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of additional features to include in an image.
                     When listing more than one feature, separate them with
                     a space.
@@ -4544,7 +4386,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies additional options for the image
                     creation command that has been specified in
                     <link linkend='var-IMAGE_CMD'><filename>IMAGE_CMD</filename></link>.
@@ -4564,7 +4405,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of recipes to build that do not provide packages
                     for installing into the root filesystem.
                 </para>
@@ -4592,7 +4432,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of subdirectories of
                     <filename>${</filename><link linkend='var-STAGING_BINDIR_NATIVE'><filename>STAGING_BINDIR_NATIVE</filename></link><filename>}</filename>
                     added to the beginning of the environment variable
@@ -4613,7 +4452,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Additional
                     <ulink url='https://cmake.org/overview/'>CMake</ulink>
                     options.
@@ -4630,7 +4468,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Additional <filename>configure</filename> script options.
                     See
                     <link linkend='var-PACKAGECONFIG_CONFARGS'><filename>PACKAGECONFIG_CONFARGS</filename></link>
@@ -4646,7 +4483,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Additional GNU <filename>make</filename> options.
                 </para>
 
@@ -4673,7 +4509,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-scons'><filename>scons</filename></link>
                     class, this variable specifies additional configuration
@@ -4689,7 +4524,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-extrausers'><filename>extrausers</filename></link>
                     class, this variable provides image level user and group
@@ -4731,7 +4565,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines one or more packages to include in an image when
                     a specific item is included in
                     <link linkend='var-IMAGE_FEATURES'><filename>IMAGE_FEATURES</filename></link>.
@@ -4766,7 +4599,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the base URL of the server and location within
                     the document-root that provides the metadata and
                     packages required by OPKG to support runtime package
@@ -4797,7 +4629,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The list of files and directories that are placed in a
                     package.
                     The
@@ -4868,7 +4699,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the file specification to match
                     <link linkend='var-SOLIBSDEV'><filename>SOLIBSDEV</filename></link>.
                     In other words, <filename>FILES_SOLIBSDEV</filename>
@@ -4892,7 +4722,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Extends the search path the OpenEmbedded build system uses
                     when looking for files and patches as it processes recipes
                     and append files.
@@ -4989,7 +4818,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A subset of <link linkend='var-OVERRIDES'><filename>OVERRIDES</filename></link>
                     used by the OpenEmbedded build system for creating
                     <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link>.
@@ -5029,7 +4857,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The default set of directories the OpenEmbedded build
                     system uses when searching for patches and files.
                 </para>
@@ -5130,7 +4957,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Allows you to define your own file permissions settings table as part of
                     your configuration for the packaging process.
                     For example, suppose you need a consistent set of custom permissions for
@@ -5170,7 +4996,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
                     class, this variable specifies the runtime dependencies
@@ -5187,7 +5012,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-fontcache'><filename>fontcache</filename></link>
                     class, this variable identifies packages containing font
@@ -5207,7 +5031,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Forces the removal of the packages listed in
                     <filename>ROOTFS_RO_UNNEEDED</filename> during the
                     generation of the root filesystem.
@@ -5226,7 +5049,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The options to pass in
                     <filename><link linkend='var-TARGET_CFLAGS'>TARGET_CFLAGS</link></filename>
                     and <filename><link linkend='var-CFLAGS'>CFLAGS</link></filename>
@@ -5246,7 +5068,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Enables Position Independent Executables (PIE) within the
                     GNU C Compiler (GCC).
                     Enabling PIE in the GCC makes Return Oriented Programming
@@ -5270,7 +5091,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the default version of the GNU C Compiler (GCC)
                     used for compilation.
                     By default, <filename>GCCVERSION</filename> is set to
@@ -5292,7 +5112,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments to run the GNU Debugger.
                 </para>
             </glossdef>
@@ -5304,7 +5123,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory in which a local copy of a Git repository
                     is stored when it is cloned.
                 </para>
@@ -5317,7 +5135,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the list of GLIBC locales to generate should you
                     not wish to generate all LIBC locals, which can be time
                     consuming.
@@ -5346,7 +5163,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
                     class, this variable
@@ -5375,7 +5191,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
                     class, this variable
@@ -5399,7 +5214,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Configures the GNU GRand Unified Bootloader (GRUB) to have
                     graphics and serial in the boot menu.
                     Set this variable to "1" in your
@@ -5422,7 +5236,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Additional options to add to the GNU GRand Unified
                     Bootloader (GRUB) configuration.
                     Use a semi-colon character (<filename>;</filename>) to
@@ -5444,7 +5257,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the timeout before executing the default
                     <filename>LABEL</filename> in the GNU GRand Unified
                     Bootloader (GRUB).
@@ -5465,7 +5277,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-gtk-immodules-cache'><filename>gtk-immodules-cache</filename></link>
                     class, this variable specifies the packages that contain the
@@ -5485,7 +5296,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Website where more information about the software the recipe is building
                     can be found.
                 </para>
@@ -5499,7 +5309,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The name of the target architecture, which is normally
                     the same as
                     <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
@@ -5527,7 +5336,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies architecture-specific compiler flags that are
                     passed to the C compiler.
                 </para>
@@ -5561,7 +5369,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the name of the target operating system, which
                     is normally the same as the
                     <link linkend='var-TARGET_OS'><filename>TARGET_OS</filename></link>.
@@ -5579,7 +5386,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the prefix for the cross-compile toolchain.
                     <filename>HOST_PREFIX</filename> is normally the same as
                     <link linkend='var-TARGET_PREFIX'><filename>TARGET_PREFIX</filename></link>.
@@ -5593,7 +5399,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the system, including the architecture and the
                     operating system, for which the build is occurring
                     in the context of the current recipe.
@@ -5634,7 +5439,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A space-separated list (filter) of tools on the build host
                     that should be allowed to be called from within build tasks.
                     Using this filter helps reduce the possibility of host
@@ -5658,7 +5462,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A space-separated list (filter) of tools on the build host
                     that should be allowed to be called from within build tasks.
                     Using this filter helps reduce the possibility of host
@@ -5681,7 +5484,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the name of the vendor.
                     <filename>HOST_VENDOR</filename> is normally the same as
                     <link linkend='var-TARGET_VENDOR'><filename>TARGET_VENDOR</filename></link>.
@@ -5699,7 +5501,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Disables or enables the <filename>icecc</filename>
                     (Icecream) function.
                     For more information on this function and best practices
@@ -5728,7 +5529,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the <filename>icecc-create-env</filename> script
                     that you provide.
                     This variable is used by the
@@ -5754,7 +5554,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Extra options passed to the <filename>make</filename>
                     command during the
                     <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
@@ -5800,7 +5599,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The location of the <filename>icecc</filename> binary.
                     You can set this variable in your
                     <filename>local.conf</filename> file.
@@ -5819,7 +5617,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Identifies user classes that you do not want the
                     Icecream distributed compile support to consider.
                     This variable is used by the
@@ -5845,7 +5642,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Identifies user recipes that you do not want the
                     Icecream distributed compile support to consider.
                     This variable is used by the
@@ -5871,7 +5667,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Identifies user recipes that use an empty
                     <link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>
                     variable that you want to force remote distributed
@@ -5892,7 +5687,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The base name of image output files.
                     This variable defaults to the recipe name
                     (<filename>${</filename><link linkend='var-PN'><filename>PN</filename></link><filename>}</filename>).
@@ -5906,7 +5700,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A space-separated list of files installed into the
                     boot partition when preparing an image using the Wic tool
                     with the <filename>bootimg-partition</filename> source
@@ -5963,7 +5756,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of classes that all images should inherit.
                     You typically use this variable to specify the list of
                     classes that register the different types of images
@@ -5992,7 +5784,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the command to create the image file for a
                     specific image type, which corresponds to the value set
                     set in
@@ -6026,7 +5817,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies one or more files that contain custom device
                     tables that are passed to the
                     <filename>makedevs</filename> command as part of creating
@@ -6050,7 +5840,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The primary list of features to include in an image.
                     Typically, you configure this variable in an image recipe.
                     Although you can use this variable from your
@@ -6086,7 +5875,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the formats the OpenEmbedded build system uses
                     during the build when creating the root filesystem.
                     For example, setting <filename>IMAGE_FSTYPES</filename>
@@ -6134,7 +5922,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Used by recipes to specify the packages to install into an
                     image through the
                     <link linkend='ref-classes-image'><filename>image</filename></link>
@@ -6220,7 +6007,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the list of locales to install into the image
                     during the root filesystem construction process.
                     The OpenEmbedded build system automatically splits locale
@@ -6262,7 +6048,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The manifest file for the image.
                     This file lists all the installed packages that make up
                     the image.
@@ -6299,7 +6084,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The name of the output image files minus the extension.
                     This variable is derived using the
                     <link linkend='var-IMAGE_BASENAME'><filename>IMAGE_BASENAME</filename></link>,
@@ -6320,7 +6104,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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
@@ -6366,7 +6149,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the package type (i.e. DEB, RPM, IPK, or TAR) used
                     by the OpenEmbedded build system.
                     The variable is defined appropriately by the
@@ -6418,7 +6200,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call once the
                     OpenEmbedded build system creates the final image
                     output files.
@@ -6446,7 +6227,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call before the
                     OpenEmbedded build system creates the final image
                     output files.
@@ -6474,7 +6254,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The location of the root filesystem while it is under
                     construction (i.e. during the
                     <link linkend='ref-tasks-rootfs'><filename>do_rootfs</filename></link>
@@ -6491,7 +6270,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the alignment for the output image file in
                     Kbytes.
                     If the size of the image is not a multiple of
@@ -6511,7 +6289,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines additional free disk space created in the image in Kbytes.
                     By default, this variable is set to "0".
                     This free disk space is added to the image after the build system determines
@@ -6546,7 +6323,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the size in Kbytes for the generated image.
                     The OpenEmbedded build system determines the final size for the generated
                     image using an algorithm that takes into account the initial disk space used
@@ -6596,7 +6372,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a dependency from one image type on another.
                     Here is an example from the
                     <link linkend='ref-classes-image-live'><filename>image-live</filename></link>
@@ -6626,7 +6401,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the complete list of supported image types
                     by default:
                     <literallayout class='monospaced'>
@@ -6686,7 +6460,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Helps define the recipe revision for recipes that share
                     a common <filename>include</filename> file.
                     You can think of this variable as part of the recipe revision
@@ -6752,7 +6525,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a space-separated list of license names
                     (as they would appear in
                     <link linkend='var-LICENSE'><filename>LICENSE</filename></link>)
@@ -6802,7 +6574,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Causes the named class or classes to be inherited globally.
                     Anonymous functions in the class or classes
                     are not executed for the
@@ -6826,7 +6597,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists classes that will be inherited at the
                     distribution level.
                     It is unlikely that you want to edit this variable.
@@ -6849,7 +6619,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Prevents the default dependencies, namely the C compiler
                     and standard C library (libc), from being added to
                     <link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>.
@@ -6870,7 +6639,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Prevents the OpenEmbedded build system from splitting
                     out debug information during packaging.
                     By default, the build system splits out debugging
@@ -6901,7 +6669,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If set to "1", causes the build to not strip binaries in
                     resulting packages and prevents the
                     <filename>-dbg</filename> package from containing the
@@ -6925,7 +6692,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If set to "1", causes the build to not strip binaries in
                     the resulting sysroot.
                 </para>
@@ -6963,7 +6729,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the format for the output image of an initial
                     RAM filesystem (initramfs), which is used during boot.
                     Supported formats are the same as those supported by the
@@ -6992,7 +6757,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the
                     <link linkend='var-PROVIDES'><filename>PROVIDES</filename></link>
                     name of an image recipe that is used to build an initial
@@ -7060,7 +6824,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Controls whether or not the image recipe specified by
                     <link linkend='var-INITRAMFS_IMAGE'><filename>INITRAMFS_IMAGE</filename></link>
                     is run through an extra pass
@@ -7126,7 +6889,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The link name of the initial RAM filesystem image.
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -7156,7 +6918,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The base name of the initial RAM filesystem image.
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -7181,7 +6942,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Indicates list of filesystem images to concatenate and use
                     as an initial RAM disk (<filename>initrd</filename>).
                 </para>
@@ -7201,7 +6961,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When building a "live" bootable image (i.e. when
                     <link linkend='var-IMAGE_FSTYPES'><filename>IMAGE_FSTYPES</filename></link>
                     contains "live"), <filename>INITRD_IMAGE</filename>
@@ -7224,7 +6983,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The filename of the initialization script as installed to
                     <filename>${sysconfdir}/init.d</filename>.
                 </para>
@@ -7242,7 +7000,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of the packages that contain initscripts.
                     If multiple packages are specified, you need to append the package name
                     to the other <filename>INITSCRIPT_*</filename> as an override.
@@ -7262,7 +7019,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the options to pass to <filename>update-rc.d</filename>.
                     Here is an example:
                     <literallayout class='monospaced'>
@@ -7300,7 +7056,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the QA checks to skip for a specific package
                     within a recipe.
                     For example, to skip the check for symbolic link
@@ -7327,7 +7082,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     By default, the <filename>tzdata</filename> recipe packages
                     an <filename>/etc/timezone</filename> file.
                     Set the <filename>INSTALL_TIMEZONE_FILE</filename>
@@ -7343,7 +7097,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When the IPK backend is in use and package management
                     is enabled on the target, you can use this variable to
                     set up <filename>opkg</filename> in the target image
@@ -7403,7 +7156,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the kernel architecture used when assembling
                     the configuration.
                     Architectures supported for this release are:
@@ -7430,7 +7182,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A regular expression used by the build process to explicitly
                     identify the kernel branch that is validated, patched,
                     and configured during a build.
@@ -7485,7 +7236,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When used with the
                     <link linkend='ref-classes-kernel-yocto'><filename>kernel-yocto</filename></link>
                     class, specifies an "in-tree" kernel configuration file
@@ -7541,7 +7291,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies an alternate kernel image type for creation in
                     addition to the kernel image type specified using the
                     <link linkend='var-KERNEL_IMAGETYPE'><filename>KERNEL_IMAGETYPE</filename></link>
@@ -7556,7 +7305,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the name of all of the build artifacts.
                     You can change the name of the artifacts by changing the
                     <filename>KERNEL_ARTIFACT_NAME</filename> variable.
@@ -7595,7 +7343,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of classes defining kernel image types that the
                     <link linkend='ref-classes-kernel'><filename>kernel</filename></link>
                     class should inherit.
@@ -7616,7 +7363,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the name of the generated Linux kernel device tree
                     (i.e. the <filename>.dtb</filename>) file.
                     <note>
@@ -7638,7 +7384,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The link name of the kernel device tree binary (DTB).
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -7668,7 +7413,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The base name of the kernel device tree binary (DTB).
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -7693,7 +7437,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies additional <filename>make</filename>
                     command-line arguments the OpenEmbedded build system
                     passes on when compiling the kernel.
@@ -7707,7 +7450,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Includes additional kernel metadata.
                     In the OpenEmbedded build system, the default Board Support
                     Packages (BSPs)
@@ -7756,7 +7498,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The link name of the kernel flattened image tree (FIT) image.
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -7786,7 +7527,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The base name of the kernel flattened image tree (FIT) image.
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -7811,7 +7551,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The link name for the kernel image.
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -7841,7 +7580,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the maximum size of the kernel image file in
                     kilobytes.
                     If <filename>KERNEL_IMAGE_MAXSIZE</filename> is set,
@@ -7872,7 +7610,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The base name of the kernel image.
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -7897,7 +7634,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The type of kernel to build for a device, usually set by the
                     machine configuration files and defaults to "zImage".
                     This variable is used
@@ -7919,7 +7655,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists kernel modules that need to be auto-loaded during
                     boot.
                     <note>
@@ -7973,7 +7708,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Provides a list of modules for which the OpenEmbedded
                     build system expects to find
                     <filename>module_conf_</filename><replaceable>modname</replaceable>
@@ -7992,7 +7726,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The location of the kernel sources.
                     This variable is set to the value of the
                     <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
@@ -8024,7 +7757,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The location of the kernel sources.
                     This variable is set to the value of the
                     <link linkend='var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></link>
@@ -8056,7 +7788,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the version of the kernel as extracted from
                     <filename>version.h</filename> or
                     <filename>utsrelease.h</filename> within the kernel sources.
@@ -8074,7 +7805,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies whether the data referenced through
                     <link linkend='var-PKGDATA_DIR'><filename>PKGDATA_DIR</filename></link>
                     is needed or not.
@@ -8096,7 +7826,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Provides a short description of a configuration fragment.
                     You use this variable in the <filename>.scc</filename>
                     file that describes a configuration fragment file.
@@ -8116,7 +7845,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The machine as known by the kernel.
                     Sometimes the machine name used by the kernel does not
                     match the machine name used by the OpenEmbedded build
@@ -8163,7 +7891,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the kernel type to be used in assembling the
                     configuration.
                     The linux-yocto recipes define "standard", "tiny",
@@ -8193,7 +7920,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Provides a list of targets for automatic configuration.
                 </para>
 
@@ -8211,7 +7937,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists the layers, separated by spaces, on which this
                     recipe depends.
                     Optionally, you can specify a specific layer version for a
@@ -8242,7 +7967,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When used inside the <filename>layer.conf</filename> configuration
                     file, this variable provides the path of the current layer.
                     This variable is not available outside of <filename>layer.conf</filename>
@@ -8257,7 +7981,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists the layers, separated by spaces, recommended for
                     use with this layer.
                 </para>
@@ -8290,7 +8013,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists the versions of the
                     <link linkend='oe-core'>OpenEmbedded-Core</link> for which
                     a layer is compatible.
@@ -8337,7 +8059,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Optionally specifies the version of a layer as a single number.
                     You can use this within
                     <link linkend='var-LAYERDEPENDS'><filename>LAYERDEPENDS</filename></link>
@@ -8356,7 +8077,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments used to run the
                     linker.
                 </para>
@@ -8369,7 +8089,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the linker.
                     This variable is exported to an environment
                     variable and thus made visible to the software being
@@ -8405,7 +8124,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the lead (or primary) compiled library file
                     (i.e. <filename>.so</filename>) that the
                     <link linkend='ref-classes-debian'><filename>debian</filename></link>
@@ -8426,7 +8144,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Checksums of the license text in the recipe source code.
                 </para>
 
@@ -8455,7 +8172,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The list of source licenses for the recipe.
                     Follow these rules:
                     <itemizedlist>
@@ -8520,7 +8236,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                         Setting <filename>LICENSE_CREATE_PACKAGE</filename>
                         to "1" causes the OpenEmbedded build system to create
                         an extra package (i.e.
@@ -8563,7 +8278,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies additional flags for a recipe you must
                     whitelist through
                     <link linkend='var-LICENSE_FLAGS_WHITELIST'><filename>LICENSE_FLAGS_WHITELIST</filename></link>
@@ -8591,7 +8305,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists license flags that when specified in
                     <link linkend='var-LICENSE_FLAGS'><filename>LICENSE_FLAGS</filename></link>
                     within a recipe should not prevent that recipe from being
@@ -8611,7 +8324,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Path to additional licenses used during the build.
                     By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
                     to define the directory that holds common license text used during the build.
@@ -8630,7 +8342,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the kernel type to be used in assembling the
                     configuration.
                     The linux-yocto recipes define "standard", "tiny", and
@@ -8663,7 +8374,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The Linux version from <filename>kernel.org</filename>
                     on which the Linux kernel image being built using the
                     OpenEmbedded build system is based.
@@ -8694,7 +8404,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A string extension compiled into the version
                     string of the Linux kernel built with the OpenEmbedded
                     build system.
@@ -8727,7 +8436,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the directory to which the OpenEmbedded build
                     system writes overall log files.
                     The default directory is <filename>${TMPDIR}/log</filename>.
@@ -8751,7 +8459,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the target device for which the image is built.
                     You define <filename>MACHINE</filename> in the
                     <filename>local.conf</filename> file found in the
@@ -8806,7 +8513,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the name of the machine-specific architecture.
                     This variable is set automatically from
                     <link linkend='var-MACHINE'><filename>MACHINE</filename></link>
@@ -8824,7 +8530,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of required machine-specific packages to install as part of
                     the image being built.
                     The build process depends on these packages being present.
@@ -8861,7 +8566,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of recommended machine-specific packages to install as part of
                     the image being built.
                     The build process does not depend on these packages being present.
@@ -8925,7 +8629,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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
@@ -8971,7 +8674,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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 dependency on this list of packages.
@@ -9016,7 +8718,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the list of hardware features the
                     <link linkend='var-MACHINE'><filename>MACHINE</filename></link> is capable
                     of supporting.
@@ -9043,7 +8744,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Features to be added to
                     <filename><link linkend='var-MACHINE_FEATURES'>MACHINE_FEATURES</link></filename>
                     if not also present in
@@ -9067,7 +8767,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Features from
                     <filename><link linkend='var-MACHINE_FEATURES_BACKFILL'>MACHINE_FEATURES_BACKFILL</link></filename>
                     that should not be backfilled (i.e. added to
@@ -9085,7 +8784,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A colon-separated list of overrides that apply to the
                     current machine.
                     By default, this list includes the value of
@@ -9126,7 +8824,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The email address of the distribution maintainer.
                 </para>
             </glossdef>
@@ -9138,7 +8835,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies additional paths from which the OpenEmbedded
                     build system gets source code.
                     When the build system searches for source code, it first
@@ -9167,7 +8863,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a prefix has been added to
                     <link linkend='var-PN'><filename>PN</filename></link> to create a special version
                     of a recipe or package (i.e. a Multilib version).
@@ -9219,7 +8914,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable has been replaced by the
                     <filename>KERNEL_MODULE_AUTOLOAD</filename> variable.
                     You should replace all occurrences of
@@ -9248,7 +8942,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies
                     <ulink url='http://linux.die.net/man/5/modprobe.d'><filename>modprobe.d</filename></ulink>
                     syntax lines for inclusion in the
@@ -9309,7 +9002,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Controls creation of the <filename>modules-*.tgz</filename>
                     file.
                     Set this variable to "0" to disable creation of this
@@ -9325,7 +9017,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The link name of the kernel module tarball.
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -9355,7 +9046,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The base name of the kernel module tarball.
                     This variable is set in the
                     <filename>meta/classes/kernel-artifact-names.bbclass</filename>
@@ -9382,7 +9072,6 @@
             <glossdef>
                 <para role="glossdeffirst">
 -->
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
 <!--
                     Serves the same purpose as
                     <link linkend='var-MULTIMACH_TARGET_SYS'><filename>MULTIMACH_TARGET_SYS</filename></link>,
@@ -9409,7 +9098,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Uniquely identifies the type of the target system for
                     which packages are being built.
                     This variable allows output for different types of target
@@ -9448,7 +9136,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A string identifying the host distribution.
                     Strings consist of the host distributor ID
                     followed by the release, as reported by the
@@ -9478,7 +9165,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments to run
                     <filename>nm</filename>.
                 </para>
@@ -9491,7 +9177,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Avoids QA errors when you use a non-common, non-CLOSED
                     license in a recipe.
                     Packages exist, such as the linux-firmware package, with
@@ -9525,7 +9210,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Prevents installation of all "recommended-only" packages.
                     Recommended-only packages are packages installed only
                     through the
@@ -9586,7 +9270,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Disables auto package from splitting
                     <filename>.debug</filename> files. If a recipe requires
                     <filename>FILES_${PN}-dbg</filename> to be set manually,
@@ -9612,7 +9295,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments to run
                     <filename>objcopy</filename>.
                 </para>
@@ -9625,7 +9307,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments to run
                     <filename>objdump</filename>.
                 </para>
@@ -9638,7 +9319,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-binconfig'><filename>binconfig</filename></link>
                     class, this variable
@@ -9672,7 +9352,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     An internal variable used to tell the OpenEmbedded build
                     system what Python modules to import for every Python
                     function run by the system.
@@ -9691,7 +9370,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The name of the build environment setup script for the
                     purposes of setting up the environment within the
                     extensible SDK.
@@ -9713,7 +9391,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Controls how the OpenEmbedded build system spawns
                     interactive terminals on the host development system
                     (e.g. using the BitBake command with the
@@ -9745,7 +9422,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory from which the top-level build environment
                     setup script is sourced.
                     The Yocto Project provides a top-level build environment
@@ -9769,7 +9445,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Declares the oldest version of the Linux kernel that the
                     produced binaries must support.
                     This variable is passed into the build of the Embedded
@@ -9792,7 +9467,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A colon-separated list of overrides that currently apply.
                     Overrides are a BitBake mechanism that allows variables to
                     be selectively overridden at the end of parsing.
@@ -9856,7 +9530,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The recipe name and version.
                     <filename>P</filename> is comprised of the following:
                     <literallayout class='monospaced'>
@@ -9866,13 +9539,46 @@
             </glossdef>
         </glossentry>
 
+        <glossentry id='var-PACKAGE_ADD_METADATA'><glossterm>PACKAGE_ADD_METADATA</glossterm>
+            <info>
+                PACKAGE_ADD_METADATA[doc] = "This variable defines additional metadata to add to packages."
+            </info>
+            <glossdef>
+                <para role="glossdeffirst">
+<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
+                    This variable defines additional metdata to add to packages.
+                </para>
+
+                <para>
+                    You may find you need to inject additional metadata into
+                    packages. This variable allows you to do that by setting
+                    the injected data as the value. Multiple fields can be
+                    added by splitting the content with the literal separator
+                    "\n".
+                </para>
+
+                <para>
+                    The suffixes '_IPK', '_DEB', or '_RPM' can be applied to
+                    the variable to do package type specific settings. It can
+                    also be made package specific by using the package name as
+                    a suffix.
+                </para>
+
+                <para>
+                    You can find out more about applying this variable in
+                    the
+                    "<ulink url='&YOCTO_DOCS_DEV_URL;#adding-custom-metadata-to-packages'>Adding custom metadata to packages</ulink>"
+                    section in the Yocto Project Development Tasks Manual.
+                </para>
+            </glossdef>
+        </glossentry>
+
         <glossentry id='var-PACKAGE_ARCH'><glossterm>PACKAGE_ARCH</glossterm>
             <info>
                 PACKAGE_ARCH[doc] = "The architecture of the resulting package or packages."
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The architecture of the resulting package or packages.
                 </para>
 
@@ -9908,7 +9614,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of architectures compatible with
                     the target machine.
                     This variable is set automatically and should not
@@ -9928,7 +9633,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Enables easily adding packages to
                     <filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
                     before <filename>${<link linkend='var-PN'>PN</link>}</filename>
@@ -9944,7 +9648,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable, which is set in the
                     <filename>local.conf</filename> configuration file found in
                     the <filename>conf</filename> folder of the
@@ -9994,7 +9697,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Determines how to split up the binary and debug information
                     when creating <filename>*-dbg</filename> packages to be
                     used with the GNU Project Debugger (GDB).
@@ -10059,7 +9761,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Prevents specific packages from being installed when
                     you are installing complementary packages.
                 </para>
@@ -10085,7 +9786,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists packages that should not be installed into an image.
                     For example:
                     <literallayout class='monospaced'>
@@ -10137,7 +9837,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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 such as XScale and ARM926-EJS.
@@ -10151,7 +9850,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Optionally specifies the package architectures used as
                     part of the package feed URIs during the build.
                     When used, the <filename>PACKAGE_FEED_ARCHS</filename>
@@ -10206,7 +9904,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the base path used when constructing package feed
                     URIs.
                     The <filename>PACKAGE_FEED_BASE_PATHS</filename> variable
@@ -10253,7 +9950,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the front portion of the package feed URI
                     used by the OpenEmbedded build system.
                     Each final package feed URI is comprised of
@@ -10298,7 +9994,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The final list of packages passed to the package manager
                     for installation into the image.
                 </para>
@@ -10333,7 +10028,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of packages the OpenEmbedded build
                     system attempts to install when creating an image.
                     If a listed package fails to install, the build system
@@ -10349,7 +10043,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions run to pre-process the
                     <link linkend='var-PKGD'><filename>PKGD</filename></link>
                     directory prior to splitting the files out to individual
@@ -10364,7 +10057,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of dependencies for post-installation and
                     pre-installation scripts on native/cross tools.
                     If your post-installation or pre-installation script can
@@ -10389,7 +10081,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable provides a means of enabling or disabling
                     features of a recipe on a per-recipe basis.
                     <filename>PACKAGECONFIG</filename> blocks are defined
@@ -10528,7 +10219,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A space-separated list of configuration options generated
                     from the
                     <link linkend='var-PACKAGECONFIG'><filename>PACKAGECONFIG</filename></link>
@@ -10559,7 +10249,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     For recipes inheriting the
                     <link linkend='ref-classes-packagegroup'><filename>packagegroup</filename></link>
                     class, setting
@@ -10580,7 +10269,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The list of packages the recipe creates.
                     The default value is the following:
                     <literallayout class='monospaced'>
@@ -10621,7 +10309,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A promise that your recipe satisfies runtime dependencies
                     for optional modules that are found in other recipes.
                     <filename>PACKAGES_DYNAMIC</filename>
@@ -10664,7 +10351,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions run to perform additional
                     splitting of files into individual packages.
                     Recipes can either prepend to this variable or prepend
@@ -10686,7 +10372,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Extra options passed to the <filename>make</filename>
                     command during the
                     <link linkend='ref-tasks-compile'><filename>do_compile</filename></link>
@@ -10743,7 +10428,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Extra options passed to the
                     <filename>make install</filename> command during the
                     <link linkend='ref-tasks-install'><filename>do_install</filename></link>
@@ -10780,7 +10464,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Determines the action to take when a patch fails.
                     You can set this variable to one of two values: "noop" and
                     "user".
@@ -10808,7 +10491,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the utility used to apply patches for a recipe
                     during the
                     <link linkend='ref-tasks-patch'><filename>do_patch</filename></link>
@@ -10839,7 +10521,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The epoch of the recipe.
                     By default, this variable is unset.
                     The variable is used to make upgrades possible when the
@@ -10861,7 +10542,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the recipe or package name and includes all version and revision
                     numbers (i.e. <filename>glibc-2.13-r20+svnr15508/</filename> and
                     <filename>bash-4.2-r1/</filename>).
@@ -10879,7 +10559,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-pixbufcache'><filename>pixbufcache</filename></link>
                     class, this variable identifies packages that contain
@@ -10900,7 +10579,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The name of the resulting package created by the
                     OpenEmbedded build system.
                     <note>
@@ -10924,7 +10602,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The path to <filename>pkg-config</filename> files for the
                     current build context.
                     <filename>pkg-config</filename> reads this variable
@@ -10939,7 +10616,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the destination directory for files to be
                     packaged before they are split into individual packages.
                     This directory defaults to the following:
@@ -10960,7 +10636,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to a shared, global-state directory that holds data
                     generated during the packaging process.
                     During the packaging process, the
@@ -10991,7 +10666,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the parent directory for files to be packaged
                     after they have been split into individual packages.
                     This directory defaults to the following:
@@ -11015,7 +10689,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to a temporary work area where the
                     <link linkend='ref-tasks-package'><filename>do_package</filename></link>
                     task saves package metadata.
@@ -11044,7 +10717,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The epoch of the package(s) built by the recipe.
                     By default, <filename>PKGE</filename> is set to
                     <link linkend='var-PE'><filename>PE</filename></link>.
@@ -11058,7 +10730,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The revision of the package(s) built by the recipe.
                     By default, <filename>PKGR</filename> is set to
                     <link linkend='var-PR'><filename>PR</filename></link>.
@@ -11072,7 +10743,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The version of the package(s) built by the
                     recipe.
                     By default, <filename>PKGV</filename> is set to
@@ -11087,7 +10757,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable can have two separate functions depending on the context: a recipe
                     name or a resulting package name.
                 </para>
@@ -11124,7 +10793,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists recipes you do not want the OpenEmbedded build system
                     to build.
                     This variable works in conjunction with the
@@ -11151,7 +10819,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call once the
                     OpenEmbedded build system has created the host part of
                     the SDK.
@@ -11180,7 +10847,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call once the
                     OpenEmbedded build system has created the target part of
                     the SDK.
@@ -11209,7 +10875,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The revision of the recipe. The default value for this
                     variable is "r0".
                     Subsequent revisions of the recipe conventionally have the
@@ -11265,7 +10930,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If multiple recipes provide the same item, this variable
                     determines which recipe is preferred and thus provides
                     the item (i.e. the preferred provider).
@@ -11315,7 +10979,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If multiple versions of recipes exist, this
                     variable determines which version is given preference.
                     You must always suffix the variable with the
@@ -11407,7 +11070,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies additional paths from which the OpenEmbedded
                     build system gets source code.
                     When the build system searches for source code, it first
@@ -11456,7 +11118,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Indicates the importance of a package.
                 </para>
 
@@ -11482,7 +11143,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies libraries installed within a recipe that
                     should be ignored by the OpenEmbedded build system's
                     shared library resolver.
@@ -11524,7 +11184,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of aliases by which a particular recipe can be
                     known.
                     By default, a recipe's own
@@ -11613,7 +11272,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The network based
                     <link linkend='var-PR'><filename>PR</filename></link>
                     service host and port.
@@ -11643,7 +11301,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies whether or not
                     <ulink url='&YOCTO_DOCS_DEV_URL;#testing-packages-with-ptest'>Package Test</ulink>
                     (ptest) functionality is enabled when building a recipe.
@@ -11662,7 +11319,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The version of the recipe.
                     The version is normally extracted from the recipe filename.
                     For example, if the recipe is named
@@ -11688,7 +11344,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When used by recipes that inherit the
                     <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
                     <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
@@ -11724,7 +11379,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When used by recipes that inherit the
                     <link linkend='ref-classes-distutils3'><filename>distutils3</filename></link>,
                     <link linkend='ref-classes-setuptools3'><filename>setuptools3</filename></link>,
@@ -11760,7 +11414,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments to run
                     <filename>ranlib</filename>.
                 </para>
@@ -11773,7 +11426,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The list of packages that conflict with packages.
                     Note that packages will not be installed if conflicting
                     packages are not first removed.
@@ -11822,7 +11474,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists runtime dependencies of a package.
                     These dependencies are other packages that must be
                     installed in order for the package to function correctly.
@@ -11985,7 +11636,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-distro_features_check'><filename>distro_features_check</filename></link>
                     class, this
@@ -12008,7 +11658,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     With <filename>rm_work</filename> enabled, this
                     variable specifies a list of recipes whose work directories
                     should not be removed.
@@ -12024,7 +11673,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the root home directory.
                     By default, this directory is set as follows in the
                     BitBake configuration file:
@@ -12061,7 +11709,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Indicates a filesystem image to include as the root
                     filesystem.
                 </para>
@@ -12081,7 +11728,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call after the
                     OpenEmbedded build system has installed packages.
                     You can specify functions separated by semicolons:
@@ -12108,7 +11754,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call once the
                     OpenEmbedded build system has created the root filesystem.
                     You can specify functions separated by semicolons:
@@ -12135,7 +11780,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call after the
                     OpenEmbedded build system has removed unnecessary
                     packages.
@@ -12168,7 +11812,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call before the
                     OpenEmbedded build system has created the root filesystem.
                     You can specify functions separated by semicolons:
@@ -12195,7 +11838,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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
@@ -12224,7 +11866,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of packages that extends the usability of a package
                     being built.
                     The package being built does not depend on this list of
@@ -12317,7 +11958,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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)
@@ -12373,7 +12013,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of additional packages that you can suggest for
                     installation by the package manager at the time a package
                     is installed.
@@ -12402,7 +12041,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The location in the
                     <link linkend='build-directory'>Build Directory</link>
                     where unpacked recipe source code resides.
@@ -12455,7 +12093,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of command-line utilities that should be
                     checked for during the initial sanity checking process when
                     running BitBake.
@@ -12471,7 +12108,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of the host distribution identifiers that the
                     build system has been tested against.
                     Identifiers consist of the host distributor ID
@@ -12496,7 +12132,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The target architecture for the SDK.
                     Typically, you do not directly set this variable.
                     Instead, use
@@ -12511,7 +12146,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory set up and used by the
                     <link linkend='ref-classes-populate-sdk'><filename>populate_sdk_base</filename></link>
                     class to which the SDK is deployed.
@@ -12530,7 +12164,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The parent directory used by the OpenEmbedded build system
                     when creating SDK output.
                     The
@@ -12556,7 +12189,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Controls whether or not shared state artifacts are copied
                     into the extensible SDK.
                     The default value of "full" copies all of the required
@@ -12580,7 +12212,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The manifest file for the host part of the SDK.
                     This file lists all the installed packages that make up
                     the host part of the SDK.
@@ -12613,7 +12244,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When set to "1", specifies to include the packagedata for
                     all recipes in the "world" target in the extensible SDK.
                     Including this data allows the
@@ -12638,7 +12268,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When set to "1", specifies to include the toolchain in the
                     extensible SDK.
                     Including the toolchain is useful particularly when
@@ -12665,7 +12294,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of classes to remove from the
                     <link linkend='var-INHERIT'><filename>INHERIT</filename></link>
                     value globally within the extensible SDK configuration.
@@ -12699,7 +12327,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of variables not allowed through from the
                     OpenEmbedded build system configuration into the extensible
                     SDK configuration.
@@ -12743,7 +12370,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of variables allowed through from the OpenEmbedded
                     build system configuration into the extensible SDK
                     configuration.
@@ -12779,7 +12405,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The base name for SDK output files.
                     The name is derived from the
                     <link linkend='var-DISTRO'><filename>DISTRO</filename></link>,
@@ -12802,7 +12427,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the operating system for which the SDK
                     will be built.
                     The default value is the value of
@@ -12817,7 +12441,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The location used by the OpenEmbedded build system when
                     creating SDK output.
                     The
@@ -12847,7 +12470,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of architectures compatible with
                     the SDK machine.
                     This variable is set automatically and should not
@@ -12867,7 +12489,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of functions to call once the
                     OpenEmbedded build system creates the SDK.
                     You can specify functions separated by semicolons:
@@ -12895,7 +12516,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The toolchain binary prefix used for
                     <filename>nativesdk</filename> recipes.
                     The OpenEmbedded build system uses the
@@ -12913,7 +12533,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of shared state tasks added to the extensible SDK.
                     By default, the following tasks are added:
                     <literallayout class='monospaced'>
@@ -12940,7 +12559,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the system, including the architecture and the
                     operating system, for which the SDK will be built.
                 </para>
@@ -12964,7 +12582,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The manifest file for the target part of the SDK.
                     This file lists all the installed packages that make up
                     the target part of the SDK.
@@ -12997,7 +12614,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of targets to install from shared state as part of
                     the standard or extensible SDK installation.
                     The default value is "${PN}" (i.e. the image from which
@@ -13017,7 +12633,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The title to be printed when running the SDK installer.
                     By default, this title is based on the
                     <link linkend='var-DISTRO_NAME'><filename>DISTRO_NAME</filename></link>
@@ -13050,7 +12665,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     An optional URL for an update server for the extensible
                     SDK.
                     If set, the value is used as the default update server when
@@ -13066,7 +12680,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the name of the SDK vendor.
                 </para>
             </glossdef>
@@ -13078,7 +12691,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the version of the SDK.
                     The distribution configuration file (e.g.
                     <filename>/meta-poky/conf/distro/poky.conf</filename>)
@@ -13104,7 +12716,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The default installation directory for the Extensible SDK.
                     By default, this directory is based on the
                     <link linkend='var-DISTRO'><filename>DISTRO</filename></link>
@@ -13134,7 +12745,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Equivalent to
                     <filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>.
                     However, this variable applies to the SDK generated from an
@@ -13152,7 +12762,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The machine for which the SDK is built.
                     In other words, the SDK is built such that it
                     runs on the target you specify with the
@@ -13184,7 +12793,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the path offered to the user for installation
                     of the SDK that is generated by the OpenEmbedded build
                     system.
@@ -13202,7 +12810,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The full path to the sysroot used for cross-compilation
                     within an SDK as it will be when installed into the
                     default
@@ -13217,7 +12824,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The section in which packages should be categorized.
                     Package management utilities can make use of this variable.
                 </para>
@@ -13230,7 +12836,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the optimization flags passed to the C compiler
                     when building for the target.
                     The flags are passed through the default value of the
@@ -13255,7 +12860,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines a serial console (TTY) to enable using
                     <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
                     Provide a value that specifies the baud rate followed by
@@ -13281,7 +12885,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines a serial console (TTY) to enable using
                     <ulink url='https://en.wikipedia.org/wiki/Getty_(Unix)'>getty</ulink>.
                     Provide a value that specifies the baud rate followed by
@@ -13300,7 +12903,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies serial consoles, which must be listed in
                     <link linkend='var-SERIAL_CONSOLES'><filename>SERIAL_CONSOLES</filename></link>,
                     to check against <filename>/proc/console</filename>
@@ -13326,7 +12928,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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.
@@ -13378,7 +12979,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of recipes that are completely stable and will
                     never change.
                     The ABI for the recipes in the list are presented by
@@ -13402,7 +13002,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the number of bits for the target system CPU.
                     The value should be either "32" or "64".
                 </para>
@@ -13415,7 +13014,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the endian byte order of the target system.
                     The value should be either "le" for little-endian or "be" for big-endian.
                 </para>
@@ -13428,7 +13026,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Enables removal of all files from the "Provides" section of
                     an RPM package.
                     Removal of these files is required for packages containing
@@ -13455,7 +13052,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Groups together machines based upon the same family
                     of SOC (System On Chip).
                     You typically set this variable in a common
@@ -13477,7 +13073,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the suffix for shared libraries used on the
                     target platform.
                     By default, this suffix is ".so.*" for all Linux-based
@@ -13499,7 +13094,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines the suffix for the development symbolic link
                     (symlink) for shared libraries on the target platform.
                     By default, this suffix is ".so" for Linux-based
@@ -13521,7 +13115,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When you are fetching files to create a mirror of sources
                     (i.e. creating a source mirror), setting
                     <filename>SOURCE_MIRROR_FETCH</filename> to "1" in your
@@ -13553,7 +13146,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Defines your own
                     <link linkend='var-PREMIRRORS'><filename>PREMIRRORS</filename></link>
                     from which to first fetch source before attempting to fetch
@@ -13584,7 +13176,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Maps commonly used license names to their SPDX counterparts
                     found in <filename>meta/files/common-licenses/</filename>.
                     For the default <filename>SPDXLICENSEMAP</filename>
@@ -13606,7 +13197,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of prefixes for <link linkend='var-PN'><filename>PN</filename></link> used by the
                     OpenEmbedded build system to create variants of recipes or packages.
                     The list specifies the prefixes to strip off during certain circumstances
@@ -13621,7 +13211,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The file type for the Secondary Program Loader (SPL).
                     Some devices use an SPL from which to boot (e.g. the
                     BeagleBone development board).
@@ -13663,7 +13252,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The list of source files - local or remote.
                     This variable tells the OpenEmbedded build system which bits
                     to pull in for the build and how to pull them in.
@@ -13855,7 +13443,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     By default, the OpenEmbedded build system automatically detects whether
                     <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
                     contains files that are machine-specific.
@@ -13872,7 +13459,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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).
                 </para>
@@ -13885,7 +13471,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Returns the version string of the current package.
                     This string is used to help define the value of
                     <link linkend='var-PV'><filename>PV</filename></link>.
@@ -13923,7 +13508,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The revision of the source code used to build the package.
                     This variable applies to Subversion, Git, Mercurial, and
                     Bazaar only.
@@ -13953,7 +13537,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory for the shared state cache.
                 </para>
             </glossdef>
@@ -13965,7 +13548,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If set to "1", allows fetches from
                     mirrors that are specified in
                     <link linkend='var-SSTATE_MIRRORS'><filename>SSTATE_MIRRORS</filename></link>
@@ -13988,7 +13570,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Configures the OpenEmbedded build system to search other
                     mirror locations for prebuilt cache data objects before
                     building out the data.
@@ -14049,7 +13630,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Controls the list of files the OpenEmbedded build system
                     scans for hardcoded installation paths. The variable uses a
                     space-separated list of filenames (not paths) with standard
@@ -14084,7 +13664,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the <filename>/lib</filename>
                     subdirectory of the sysroot directory for the
                     build host.
@@ -14098,7 +13677,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the <filename>/lib</filename>
                     subdirectory of the sysroot directory for the target
                     for which the current recipe is being built
@@ -14113,7 +13691,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the
                     <filename>/usr/bin</filename> subdirectory of the
                     sysroot directory for the target for which the current
@@ -14129,7 +13706,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the directory containing binary
                     configuration scripts.
                     These scripts provide configuration information for
@@ -14155,7 +13731,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the
                     <filename>/usr/bin</filename> subdirectory of the
                     sysroot directory for the build host.
@@ -14169,7 +13744,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                 <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                      Specifies the path to the <filename>/usr/share</filename>
                      subdirectory of the sysroot directory for the target
                      for which the current recipe is being built
@@ -14184,7 +13758,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the <filename>/usr/share</filename>
                     subdirectory of the sysroot directory for the build host.
                 </para>
@@ -14197,7 +13770,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Helps construct the <filename>recipe-sysroots</filename>
                     directory, which is used during packaging.
                 </para>
@@ -14236,7 +13808,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the sysroot directory for the system
                     on which the component is built to run (the system that
                     hosts the component).
@@ -14307,7 +13878,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the sysroot directory used when
                     building components that run on the build host itself.
                 </para>
@@ -14320,7 +13890,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the sysroot used for the system for
                     which the component generates code.
                     For components that do not generate code, which is the
@@ -14352,7 +13921,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the <filename>/etc</filename>
                     subdirectory of the sysroot directory for the
                     build host.
@@ -14366,7 +13934,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the <filename>/usr</filename>
                     subdirectory of the sysroot directory for the target
                     for which the current recipe is being built
@@ -14381,7 +13948,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the
                     <filename>/usr/include</filename> subdirectory of the
                     sysroot directory for the target for which the current
@@ -14397,7 +13963,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the <filename>/usr/include</filename>
                     subdirectory of the sysroot directory for the build host.
                 </para>
@@ -14410,7 +13975,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the directory containing the kernel build
                     artifacts.
                     Recipes building software that needs to access kernel
@@ -14429,7 +13993,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory with kernel headers that are required to build out-of-tree
                     modules.
                 </para>
@@ -14442,7 +14005,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the <filename>/usr/lib</filename>
                     subdirectory of the sysroot directory for the target for
                     which the current recipe is being built
@@ -14457,7 +14019,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the path to the <filename>/usr/lib</filename>
                     subdirectory of the sysroot directory for the build host.
                 </para>
@@ -14470,7 +14031,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     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.
@@ -14507,7 +14067,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the base directory in which the OpenEmbedded
                     build system places stamps.
                     The default directory is
@@ -14522,7 +14081,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The minimal command and arguments to run
                     <filename>strip</filename>, which is used to strip
                     symbols.
@@ -14536,7 +14094,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The short (72 characters or less) summary of the binary package for packaging
                     systems such as <filename>opkg</filename>, <filename>rpm</filename>, or
                     <filename>dpkg</filename>.
@@ -14554,7 +14111,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory in which files checked out of a Subversion
                     system are stored.
                 </para>
@@ -14567,7 +14123,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the kernel boot default console.
                     If you want to use a console other than the default,
                     set this variable in your recipe as follows where "X" is
@@ -14592,7 +14147,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Lists additional options to add to the syslinux file.
                     You need to set this variable in your recipe.
                     If you want to list multiple options, separate the options
@@ -14613,7 +14167,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the alternate serial port or turns it off.
                     To turn off serial, set this variable to an empty string
                     in your recipe.
@@ -14637,7 +14190,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     An <filename>.LSS</filename> file used as the background
                     for the VGA boot menu when you use the boot menu.
                     You need to set this variable in your recipe.
@@ -14658,7 +14210,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the alternate console=tty... kernel boot argument.
                     The variable's default value is set in the
                     <link linkend='ref-classes-syslinux'><filename>syslinux</filename></link>
@@ -14680,7 +14231,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the temporary directory under the work directory
                     (default
                     "<filename>${</filename><link linkend='var-WORKDIR'><filename>WORKDIR</filename></link><filename>}/sysroot-destdir</filename>")
@@ -14698,7 +14248,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Directories that are staged into the sysroot by the
                     <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
                     task.
@@ -14722,7 +14271,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Directories that are not staged into the sysroot by the
                     <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
                     task.
@@ -14752,7 +14300,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Extra directories staged into the sysroot by the
                     <link linkend='ref-tasks-populate_sysroot'><filename>do_populate_sysroot</filename></link>
                     task for <filename>-native</filename> recipes, in addition
@@ -14787,7 +14334,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of functions to execute after files are staged into
                     the sysroot.
                     These functions are usually used to apply additional
@@ -14803,7 +14349,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
                     class, this variable specifies whether the specified service
@@ -14833,7 +14378,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When
                     <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
                     is set to "systemd-boot", the
@@ -14861,7 +14405,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When
                     <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
                     is set to "systemd-boot", the
@@ -14891,7 +14434,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When
                     <link linkend='var-EFI_PROVIDER'><filename>EFI_PROVIDER</filename></link>
                     is set to "systemd-boot", the
@@ -14919,7 +14461,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
                     class, this variable locates the systemd unit files when
@@ -14949,7 +14490,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-systemd'><filename>systemd</filename></link>
                     class, this variable specifies the systemd service name for
@@ -14974,7 +14514,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When using
                     <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
                     specifies a space-separated list of the virtual terminals
@@ -15003,7 +14542,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable points to a directory were BitBake places
                     temporary files, which consist mostly of task logs and
                     scripts, when building a particular recipe.
@@ -15032,7 +14570,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The target machine's architecture.
                     The OpenEmbedded build system supports many
                     architectures.
@@ -15065,7 +14602,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies architecture-specific assembler flags for the
                     target system.
                     <filename>TARGET_AS_ARCH</filename> is initialized from
@@ -15085,7 +14621,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies architecture-specific C compiler flags for the
                     target system.
                     <filename>TARGET_CC_ARCH</filename> is initialized from
@@ -15109,7 +14644,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This is a specific kernel compiler flag for a CPU or
                     Application Binary Interface (ABI) tune.
                     The flag is used rarely and only for cases where a
@@ -15134,7 +14668,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C compiler when building
                     for the target.
                     When building in the target context,
@@ -15158,7 +14691,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C pre-processor
                     (i.e. to both the C and the C++ compilers) when building
                     for the target.
@@ -15183,7 +14715,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the C++ compiler when
                     building for the target.
                     When building in the target context,
@@ -15207,7 +14738,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the method for handling FPU code.
                     For FPU-less targets, which include most ARM CPUs, the variable must be
                     set to "soft".
@@ -15222,7 +14752,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies architecture-specific linker flags for the
                     target system.
                     <filename>TARGET_LD_ARCH</filename> is initialized from
@@ -15242,7 +14771,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the flags to pass to the linker when building
                     for the target.
                     When building in the target context,
@@ -15268,7 +14796,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the target's operating system.
                     The variable can be set to "linux" for glibc-based systems
                     (GNU C Library) and to "linux-musl" for musl libc.
@@ -15284,7 +14811,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the prefix used for the toolchain binary target
                     tools.
                 </para>
@@ -15320,7 +14846,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the system, including the architecture and the
                     operating system, for which the build is occurring in
                     the context of the current recipe.
@@ -15363,7 +14888,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the name of the target vendor.
                 </para>
             </glossdef>
@@ -15375,7 +14899,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the GNU standard C library
                     (<filename>libc</filename>) variant to use during the
                     build process.
@@ -15395,7 +14918,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a suffix to be appended onto the
                     <link linkend='var-TMPDIR'><filename>TMPDIR</filename></link>
                     value.
@@ -15426,7 +14948,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the toolchain selector.
                     <filename>TCMODE</filename> controls the characteristics
                     of the generated packages and images by telling the
@@ -15498,7 +15019,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The location the OpenEmbedded build system uses to export
                     tests when the
                     <link linkend='var-TEST_EXPORT_ONLY'><filename>TEST_EXPORT_ONLY</filename></link>
@@ -15518,7 +15038,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies to export the tests only.
                     Set this variable to "1" if you do not want to run the
                     tests but you want them to be exported in a manner that
@@ -15533,7 +15052,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Holds the SSH log and the boot log for QEMU machines.
                     The <filename>TEST_LOG_DIR</filename> variable defaults
                     to <filename>"${WORKDIR}/testimage"</filename>.
@@ -15552,7 +15070,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     For automated hardware testing, specifies the command to
                     use to control the power of the target machine under test.
                     Typically, this command would point to a script that
@@ -15572,7 +15089,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     For automated hardware testing, specifies additional
                     arguments to pass through to the command specified in
                     <link linkend='var-TEST_POWERCONTROL_CMD'><filename>TEST_POWERCONTROL_CMD</filename></link>.
@@ -15591,7 +15107,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The time in seconds allowed for an image to boot before
                     automated runtime tests begin to run against an
                     image.
@@ -15615,7 +15130,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     For automated hardware testing, specifies the command
                     to use to connect to the serial console of the target
                     machine under test.
@@ -15641,7 +15155,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     For automated hardware testing, specifies additional
                     arguments to pass through to the command specified in
                     <link linkend='var-TEST_SERIALCONTROL_CMD'><filename>TEST_SERIALCONTROL_CMD</filename></link>.
@@ -15660,7 +15173,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The IP address of the build machine (host machine).
                     This IP address is usually automatically detected.
                     However, if detection fails, this variable needs to be set
@@ -15683,7 +15195,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the target controller to use when running tests
                     against a test image.
                     The default controller to use is "qemu":
@@ -15744,7 +15255,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The IP address of your hardware under test.
                     The <filename>TEST_TARGET_IP</filename> variable has no
                     effect when
@@ -15774,7 +15284,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     An ordered list of tests (modules) to run against
                     an image when performing automated runtime testing.
                 </para>
@@ -15833,7 +15342,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Automatically runs the series of automated tests for
                     images when an image is successfully built.
                     Setting <filename>TESTIMAGE_AUTO</filename> to "1"
@@ -15874,7 +15382,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The directory in which the file BitBake is currently
                     parsing is located.
                     Do not manually set this variable.
@@ -15888,7 +15395,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The time the build was started.
                     Times appear using the hour, minute, and second (HMS)
                     format (e.g. "140159" for one minute and fifty-nine
@@ -15903,7 +15409,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable is the base directory the OpenEmbedded
                     build system uses for all build output and intermediate
                     files (other than the shared state cache).
@@ -15945,7 +15450,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable lists packages the OpenEmbedded build system
                     uses when building an SDK, which contains a
                     cross-development environment.
@@ -15987,7 +15491,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable defines the name used for the toolchain
                     output.
                     The
@@ -16013,7 +15516,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     This variable lists packages the OpenEmbedded build system
                     uses when it creates the target part of an SDK
                     (i.e. the part built for the target hardware), which
@@ -16046,7 +15548,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The top-level
                     <link linkend='build-directory'>Build Directory</link>.
                     BitBake automatically sets this variable when you
@@ -16062,7 +15563,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A sanitized version of
                     <link linkend='var-TARGET_ARCH'><filename>TARGET_ARCH</filename></link>.
                     This variable is used where the architecture is needed in
@@ -16084,7 +15584,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The GNU canonical architecture for a specific architecture
                     (i.e. <filename>arm</filename>,
                     <filename>armeb</filename>,
@@ -16143,7 +15642,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies architecture-specific assembler flags for
                     the target system.
                     The set of flags is based on the selected tune features.
@@ -16174,7 +15672,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies architecture-specific C compiler flags for
                     the target system.
                     The set of flags is based on the selected tune features.
@@ -16199,7 +15696,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies architecture-specific linker flags for
                     the target system.
                     The set of flags is based on the selected tune features.
@@ -16230,7 +15726,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Features used to "tune" a compiler for optimal use
                     given a specific processor.
                     The features are defined within the tune files and allow
@@ -16264,7 +15759,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The package architecture understood by the packaging
                     system to define the architecture, ABI, and tuning of
                     output packages.
@@ -16295,7 +15789,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     An underlying Application Binary Interface (ABI) used by
                     a particular tuning in a given toolchain layer.
                     Providers that use prebuilt libraries can use the
@@ -16323,7 +15816,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     If set, the OpenEmbedded system ignores the
                     <link linkend='var-TUNEABI_WHITELIST'><filename>TUNEABI_WHITELIST</filename></link>
                     variable.
@@ -16350,7 +15842,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A whitelist of permissible
                     <link linkend='var-TUNEABI'><filename>TUNEABI</filename></link>
                     values.
@@ -16378,7 +15869,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies CPU or Application Binary Interface (ABI)
                     tuning features that conflict with <replaceable>feature</replaceable>.
                 </para>
@@ -16404,7 +15894,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a valid CPU or Application Binary Interface (ABI)
                     tuning feature.
                     The specified feature is stored as a flag.
@@ -16434,7 +15923,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Configures the
                     <link linkend='var-UBOOT_MACHINE'><filename>UBOOT_MACHINE</filename></link>
                     and can also define
@@ -16477,7 +15965,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the entry point for the U-Boot image.
                     During U-Boot image creation, the
                     <filename>UBOOT_ENTRYPOINT</filename> variable is passed
@@ -16493,7 +15980,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the load address for the U-Boot image.
                     During U-Boot image creation, the
                     <filename>UBOOT_LOADADDRESS</filename> variable is passed
@@ -16509,7 +15995,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Appends a string to the name of the local version of the
                     U-Boot image.
                     For example, assuming the version of the U-Boot image
@@ -16529,7 +16014,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the value passed on the
                     <filename>make</filename> command line when building
                     a U-Boot image.
@@ -16553,7 +16037,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the target called in the
                     <filename>Makefile</filename>.
                     The default target is "all".
@@ -16567,7 +16050,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Points to the generated U-Boot extension.
                     For example, <filename>u-boot.sb</filename> has a
                     <filename>.sb</filename> extension.
@@ -16586,7 +16068,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the target used for building U-Boot.
                     The target is passed directly as part of the "make" command
                     (e.g. SPL and AIS).
@@ -16603,7 +16084,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a list of options that, if reported by the
                     configure script as being invalid, should not generate a
                     warning during the
@@ -16641,7 +16121,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     For recipes inheriting the
                     <link linkend='ref-classes-update-rc.d'><filename>update-rc.d</filename></link>
                     class, <filename>UPDATERCPN</filename> specifies
@@ -16664,7 +16143,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     You can perform a per-recipe check for what the latest
                     upstream source code version is by calling
                     <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
@@ -16693,7 +16171,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Use the <filename>UPSTREAM_CHECK_REGEX</filename> variable
                     to specify a different regular expression instead of the
                     default one when the package checking system is parsing
@@ -16712,7 +16189,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     You can perform a per-recipe check for what the latest
                     upstream source code version is by calling
                     <filename>bitbake -c checkpkg</filename> <replaceable>recipe</replaceable>.
@@ -16736,7 +16212,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Determines if <filename>devtmpfs</filename> is used for
                     <filename>/dev</filename> population.
                     The default value used for <filename>USE_DEVFS</filename>
@@ -16761,7 +16236,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When using
                     <ulink url='&YOCTO_DOCS_DEV_URL;#new-recipe-enabling-system-services'>SysVinit</ulink>,
                     determines whether or not to run a
@@ -16787,7 +16261,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     A list of classes to globally inherit.
                     These classes are used by the OpenEmbedded build system
                     to enable extra features (e.g.
@@ -16815,7 +16288,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
 
                     If set to <filename>error</filename>, forces the
                     OpenEmbedded build system to produce an error if the user
@@ -16875,7 +16347,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a password file to use for obtaining static
                     group identification (<filename>gid</filename>) values
                     when the OpenEmbedded build system adds a group to the
@@ -16911,7 +16382,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
                     class, this variable
@@ -16948,7 +16418,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When inheriting the
                     <link linkend='ref-classes-useradd'><filename>useradd</filename></link>
                     class, this variable
@@ -16979,7 +16448,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies a password file to use for obtaining static
                     user identification (<filename>uid</filename>) values
                     when the OpenEmbedded build system adds a user to the
@@ -17015,7 +16483,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     When set to "useradd-staticids", causes the
                     OpenEmbedded build system to base all user and group
                     additions on a static
@@ -17068,7 +16535,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the persistence of the target's
                     <filename>/var/log</filename> directory, which is used to
                     house postinstall target log files.
@@ -17093,7 +16559,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the quality assurance checks whose failures are
                     reported as warnings by the OpenEmbedded build system.
                     You set this variable in your distribution configuration
@@ -17177,7 +16642,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     The pathname of the work directory in which the OpenEmbedded
                     build system builds a recipe.
                     This directory is located within the
@@ -17239,7 +16703,6 @@
             </info>
             <glossdef>
                 <para role="glossdeffirst">
-<!--                <para role="glossdeffirst"><imagedata fileref="figures/define-generic.png" /> -->
                     Specifies the packages that should be installed to
                     provide an X server and drivers for the current machine,
                     assuming your image directly includes
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index 37493ed..f2ee0d1 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -50,14 +50,14 @@
 svn://.*/.*   http://downloads.yoctoproject.org/mirror/sources/ \n"
 
 SANITY_TESTED_DISTROS ?= " \
-            poky-2.7 \n \
             poky-3.0 \n \
             poky-3.1 \n \
             ubuntu-16.04 \n \
             ubuntu-18.04 \n \
-            ubuntu-19.04 \n \
+            ubuntu-20.04 \n \
             fedora-30 \n \
             fedora-31 \n \
+            fedora-32 \n \
             centos-7 \n \
             centos-8 \n \
             debian-8 \n \
diff --git a/poky/meta-poky/conf/layer.conf b/poky/meta-poky/conf/layer.conf
index 234be13..7241af0 100644
--- a/poky/meta-poky/conf/layer.conf
+++ b/poky/meta-poky/conf/layer.conf
@@ -9,7 +9,7 @@
 BBFILE_PATTERN_yocto = "^${LAYERDIR}/"
 BBFILE_PRIORITY_yocto = "5"
 
-LAYERSERIES_COMPAT_yocto = "dunfell"
+LAYERSERIES_COMPAT_yocto = "gatesgarth"
 
 # This should only be incremented on significant changes that will
 # cause compatibility issues with other layers
diff --git a/poky/meta-selftest/conf/layer.conf b/poky/meta-selftest/conf/layer.conf
index a4bd461..37570aa 100644
--- a/poky/meta-selftest/conf/layer.conf
+++ b/poky/meta-selftest/conf/layer.conf
@@ -9,4 +9,4 @@
 BBFILE_PATTERN_selftest = "^${LAYERDIR}/"
 BBFILE_PRIORITY_selftest = "5"
 
-LAYERSERIES_COMPAT_selftest = "dunfell"
+LAYERSERIES_COMPAT_selftest = "gatesgarth"
diff --git a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
index 66e45c7..d75df0c 100644
--- a/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
+++ b/poky/meta-selftest/recipes-test/devtool/devtool-upgrade-test1_1.5.3.bb.upgraded
@@ -9,7 +9,6 @@
 UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
 RECIPE_NO_UPDATE_REASON = "This recipe is used to test devtool upgrade feature"
 
-SRC_URI[md5sum] = "062bca5ff33df1dd09472e7fc3bbe332"
 SRC_URI[sha256sum] = "9dd45391806b0ed215abee4c5ac1597d018c386fe9c1f5afd2f6bc3b07fd82c3"
 
 S = "${WORKDIR}/pv-${PV}"
diff --git a/poky/meta-skeleton/conf/layer.conf b/poky/meta-skeleton/conf/layer.conf
index 5e449a4..cea5c74 100644
--- a/poky/meta-skeleton/conf/layer.conf
+++ b/poky/meta-skeleton/conf/layer.conf
@@ -14,4 +14,4 @@
 
 LAYERDEPENDS_skeleton = "core"
 
-LAYERSERIES_COMPAT_skeleton = "dunfell"
+LAYERSERIES_COMPAT_skeleton = "gatesgarth"
diff --git a/poky/meta-yocto-bsp/conf/layer.conf b/poky/meta-yocto-bsp/conf/layer.conf
index 64b1248..bf0c1bf 100644
--- a/poky/meta-yocto-bsp/conf/layer.conf
+++ b/poky/meta-yocto-bsp/conf/layer.conf
@@ -9,4 +9,4 @@
 BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
 BBFILE_PRIORITY_yoctobsp = "5"
 LAYERVERSION_yoctobsp = "4"
-LAYERSERIES_COMPAT_yoctobsp = "dunfell"
+LAYERSERIES_COMPAT_yoctobsp = "gatesgarth"
diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass
index 48b4913..780c562 100644
--- a/poky/meta/classes/archiver.bbclass
+++ b/poky/meta/classes/archiver.bbclass
@@ -193,7 +193,13 @@
                 del decoded[5][param]
         encoded = bb.fetch2.encodeurl(decoded)
         urls[i] = encoded
-    fetch = bb.fetch2.Fetch(urls, d)
+
+    # Cleanup SRC_URI before call bb.fetch2.Fetch() since now SRC_URI is in the
+    # variable "urls", otherwise there might be errors like:
+    # The SRCREV_FORMAT variable must be set when multiple SCMs are used
+    ld = bb.data.createCopy(d)
+    ld.setVar('SRC_URI', '')
+    fetch = bb.fetch2.Fetch(urls, ld)
     tarball_suffix = {}
     for url in fetch.urls:
         local = fetch.localpath(url).rstrip("/");
@@ -583,7 +589,9 @@
 addtask do_ar_mirror after do_fetch
 addtask do_dumpdata
 addtask do_ar_recipe
-addtask do_deploy_archives before do_build
+addtask do_deploy_archives
+do_build[recrdeptask] += "do_deploy_archives"
+do_populate_sdk[recrdeptask] += "do_deploy_archives"
 
 python () {
     # Add tasks in the correct order, specifically for linux-yocto to avoid race condition.
diff --git a/poky/meta/classes/base.bbclass b/poky/meta/classes/base.bbclass
index 45f9435..4c681cc 100644
--- a/poky/meta/classes/base.bbclass
+++ b/poky/meta/classes/base.bbclass
@@ -570,8 +570,7 @@
                 if unskipped_pkgs:
                     for pkg in skipped_pkgs:
                         bb.debug(1, "Skipping the package %s at do_rootfs because of incompatible license(s): %s" % (pkg, ' '.join(skipped_pkgs[pkg])))
-                        mlprefix = d.getVar('MLPREFIX')
-                        d.setVar('LICENSE_EXCLUSION-' + mlprefix + pkg, ' '.join(skipped_pkgs[pkg]))
+                        d.setVar('LICENSE_EXCLUSION-' + pkg, ' '.join(skipped_pkgs[pkg]))
                     for pkg in unskipped_pkgs:
                         bb.debug(1, "Including the package %s" % pkg)
                 else:
@@ -584,19 +583,6 @@
                         bb.debug(1, "Skipping recipe %s because of incompatible license(s): %s" % (pn, ' '.join(incompatible_lic)))
                         raise bb.parse.SkipRecipe("it has incompatible license(s): %s" % ' '.join(incompatible_lic))
 
-        # 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():
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index 2a530a0..556ac6e 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -65,7 +65,7 @@
 
 }
 
-addtask cve_check before do_build
+addtask cve_check before do_build after do_fetch
 do_cve_check[depends] = "cve-update-db-native:do_populate_cve_db"
 do_cve_check[nostamp] = "1"
 
diff --git a/poky/meta/classes/fontcache.bbclass b/poky/meta/classes/fontcache.bbclass
index 97e7f17..624a420 100644
--- a/poky/meta/classes/fontcache.bbclass
+++ b/poky/meta/classes/fontcache.bbclass
@@ -7,7 +7,7 @@
 inherit qemu
 
 FONT_PACKAGES ??= "${PN}"
-FONT_EXTRA_RDEPENDS ?= "fontconfig-utils"
+FONT_EXTRA_RDEPENDS ?= "${MLPREFIX}fontconfig-utils"
 FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig"
 FONTCONFIG_CACHE_PARAMS ?= "-v"
 # You can change this to e.g. FC_DEBUG=16 to debug fc-cache issues,
diff --git a/poky/meta/classes/go-mod.bbclass b/poky/meta/classes/go-mod.bbclass
new file mode 100644
index 0000000..5871d02
--- /dev/null
+++ b/poky/meta/classes/go-mod.bbclass
@@ -0,0 +1,20 @@
+# Handle Go Modules support
+#
+# When using Go Modules, the the current working directory MUST be at or below
+# the location of the 'go.mod' file when the go tool is used, and there is no
+# way to tell it to look elsewhere.  It will automatically look upwards for the
+# file, but not downwards.
+#
+# To support this use case, we provide the `GO_WORKDIR` variable, which defaults
+# to `GO_IMPORT` but allows for easy override.
+#
+# Copyright 2020 (C) O.S. Systems Software LTDA.
+
+# The '-modcacherw' option ensures we have write access to the cached objects so
+# we avoid errors during clean task as well as when removing the TMPDIR.
+export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -modcacherw"
+
+inherit go
+
+GO_WORKDIR ?= "${GO_IMPORT}"
+do_compile[dirs] += "${B}/src/${GO_WORKDIR}"
diff --git a/poky/meta/classes/go.bbclass b/poky/meta/classes/go.bbclass
index c99689a..a9e31b5 100644
--- a/poky/meta/classes/go.bbclass
+++ b/poky/meta/classes/go.bbclass
@@ -41,7 +41,7 @@
 GO_LINKMODE ?= ""
 GO_LINKMODE_class-nativesdk = "--linkmode=external"
 GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} -extldflags '${GO_EXTLDFLAGS}'"'
-export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS}"
+export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -trimpath"
 export GOPATH_OMIT_IN_ACTIONID ?= "1"
 export GOPTESTBUILDFLAGS ?= "${GOBUILDFLAGS} -c"
 export GOPTESTFLAGS ?= ""
diff --git a/poky/meta/classes/image_types.bbclass b/poky/meta/classes/image_types.bbclass
index f82f1d8..ab05cc9 100644
--- a/poky/meta/classes/image_types.bbclass
+++ b/poky/meta/classes/image_types.bbclass
@@ -273,7 +273,7 @@
     ubi ubifs multiubi \
     tar tar.gz tar.bz2 tar.xz tar.lz4 tar.zst \
     cpio cpio.gz cpio.xz cpio.lzma cpio.lz4 \
-    wic wic.gz wic.bz2 wic.lzma \
+    wic wic.gz wic.bz2 wic.lzma wic.zst \
     container \
     f2fs \
 "
diff --git a/poky/meta/classes/image_types_wic.bbclass b/poky/meta/classes/image_types_wic.bbclass
index 96ed047..7b1db50 100644
--- a/poky/meta/classes/image_types_wic.bbclass
+++ b/poky/meta/classes/image_types_wic.bbclass
@@ -142,7 +142,7 @@
     depdir = d.getVar('IMGDEPLOYDIR')
     bb.utils.copyfile(os.path.join(outdir, basename) + '.env', os.path.join(depdir, basename) + '.env')
 }
-addtask do_flush_pseudodb after do_image before do_image_wic
+addtask do_flush_pseudodb after do_rootfs before do_image do_image_qa
 addtask do_rootfs_wicenv after do_image before do_image_wic
 do_rootfs_wicenv[vardeps] += "${WICVARS}"
 do_rootfs_wicenv[prefuncs] = 'set_image_size'
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index 8b19f44..b7c6138 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -26,7 +26,7 @@
             textrel incompatible-license files-invalid \
             infodir build-deps src-uri-bad symlink-to-sysroot multilib \
             invalid-packageconfig host-user-contaminated uppercase-pn patch-fuzz \
-            mime mime-xdg \
+            mime mime-xdg unlisted-pkg-lics \
             "
 ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch pkgconfig la \
             perms dep-cmp pkgvarcheck perm-config perm-line perm-link \
@@ -898,6 +898,25 @@
                 sane = False
     return sane
 
+QAPKGTEST[unlisted-pkg-lics] = "package_qa_check_unlisted_pkg_lics"
+def package_qa_check_unlisted_pkg_lics(package, d, messages):
+    """
+    Check that all licenses for a package are among the licenses for the recipe.
+    """
+    pkg_lics = d.getVar('LICENSE_' + package)
+    if not pkg_lics:
+        return True
+
+    recipe_lics_set = oe.license.list_licenses(d.getVar('LICENSE'))
+    unlisted = oe.license.list_licenses(pkg_lics) - recipe_lics_set
+    if not unlisted:
+        return True
+
+    package_qa_add_message(messages, "unlisted-pkg-lics",
+                           "LICENSE_%s includes licenses (%s) that are not "
+                           "listed in LICENSE" % (package, ' '.join(unlisted)))
+    return False
+
 def package_qa_check_encoding(keys, encode, d):
     def check_encoding(key, enc):
         sane = True
diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass
index 6846d60..20a0135 100644
--- a/poky/meta/classes/kernel.bbclass
+++ b/poky/meta/classes/kernel.bbclass
@@ -331,6 +331,21 @@
 
 do_compile_kernelmodules() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
+	if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
+		# kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH may not
+		# be set....
+		if [ "${SOURCE_DATE_EPOCH}" = "" -o "${SOURCE_DATE_EPOCH}" = "0" ]; then
+			# The source directory is not necessarily a git repository, so we
+			# specify the git-dir to ensure that git does not query a
+			# repository in any parent directory.
+			SOURCE_DATE_EPOCH=`git --git-dir="${S}/.git" log -1 --pretty=%ct 2>/dev/null || echo "${REPRODUCIBLE_TIMESTAMP_ROOTFS}"`
+		fi
+
+		ts=`LC_ALL=C date -d @$SOURCE_DATE_EPOCH`
+		export KBUILD_BUILD_TIMESTAMP="$ts"
+		export KCONFIG_NOTIMESTAMP=1
+		bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
+	fi
 	if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
 		cc_extra=$(get_cc_option)
 		oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
@@ -696,6 +711,7 @@
 		else
 			TAR_ARGS=""
 		fi
+		TAR_ARGS="$TAR_ARGS --owner=0 --group=0"
 		tar $TAR_ARGS -cv -C ${D}${root_prefix} lib | gzip -9n > $deployDir/modules-${MODULE_TARBALL_NAME}.tgz
 
 		ln -sf modules-${MODULE_TARBALL_NAME}.tgz $deployDir/modules-${MODULE_TARBALL_LINK_NAME}.tgz
diff --git a/poky/meta/classes/multilib.bbclass b/poky/meta/classes/multilib.bbclass
index ee677da..9f726e4 100644
--- a/poky/meta/classes/multilib.bbclass
+++ b/poky/meta/classes/multilib.bbclass
@@ -91,13 +91,12 @@
 multilib_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise"
 
 python __anonymous () {
-    variant = d.getVar("BBEXTENDVARIANT")
-
-    import oe.classextend
-
-    clsextend = oe.classextend.ClassExtender(variant, d)
-
     if bb.data.inherits_class('image', d):
+        variant = d.getVar("BBEXTENDVARIANT")
+        import oe.classextend
+
+        clsextend = oe.classextend.ClassExtender(variant, d)
+
         clsextend.map_depends_variable("PACKAGE_INSTALL")
         clsextend.map_depends_variable("LINGUAS_INSTALL")
         clsextend.map_depends_variable("RDEPENDS")
@@ -109,6 +108,22 @@
         bb.build.deltask('do_populate_sdk', d)
         bb.build.deltask('do_populate_sdk_ext', d)
         return
+}
+
+python multilib_virtclass_handler_postkeyexp () {
+    cls = d.getVar("BBEXTENDCURR")
+    variant = d.getVar("BBEXTENDVARIANT")
+    if cls != "multilib" or not variant:
+        return
+
+    variant = d.getVar("BBEXTENDVARIANT")
+
+    import oe.classextend
+
+    clsextend = oe.classextend.ClassExtender(variant, d)
+
+    if bb.data.inherits_class('image', d):
+        return
 
     clsextend.map_depends_variable("DEPENDS")
     clsextend.map_variable("PROVIDES")
@@ -129,6 +144,9 @@
     reset_alternative_priority(d)
 }
 
+addhandler multilib_virtclass_handler_postkeyexp
+multilib_virtclass_handler_postkeyexp[eventmask] = "bb.event.RecipePostKeyExpansion"
+
 def reset_alternative_priority(d):
     if not bb.data.inherits_class('update-alternatives', d):
         return
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index 0b5cf47..0af5f66 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -1508,7 +1508,7 @@
 
 PKGDESTWORK = "${WORKDIR}/pkgdata"
 
-PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO pkg_postinst pkg_postrm pkg_preinst pkg_prerm"
+PKGDATA_VARS = "PN PE PV PR PKGE PKGV PKGR LICENSE DESCRIPTION SUMMARY RDEPENDS RPROVIDES RRECOMMENDS RSUGGESTS RREPLACES RCONFLICTS SECTION PKG ALLOW_EMPTY FILES CONFFILES FILES_INFO PACKAGE_ADD_METADATA pkg_postinst pkg_postrm pkg_preinst pkg_prerm"
 
 python emit_pkgdata() {
     from glob import glob
@@ -2263,7 +2263,7 @@
 
 # Since bitbake can't determine which variables are accessed during package
 # iteration, we need to list them here:
-PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm pkg_postinst_ontarget 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 pkg_postinst_ontarget 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_ADD_METADATA"
 
 def gen_packagevar(d, pkgvars="PACKAGEVARS"):
     ret = []
diff --git a/poky/meta/classes/package_deb.bbclass b/poky/meta/classes/package_deb.bbclass
index 790b26a..cb723fc 100644
--- a/poky/meta/classes/package_deb.bbclass
+++ b/poky/meta/classes/package_deb.bbclass
@@ -283,8 +283,9 @@
 # Otherwise allarch packages may change depending on override configuration
 deb_write_pkg[vardepsexclude] = "OVERRIDES"
 
-# Indirect references to these vars
-do_package_write_deb[vardeps] += "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE"
+# Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
+DEBEXTRAVARS = "PKGV PKGR PKGV DESCRIPTION SECTION PRIORITY MAINTAINER DPKG_ARCH PN HOMEPAGE PACKAGE_ADD_METADATA_DEB"
+do_package_write_deb[vardeps] += "${@gen_packagevar(d, 'DEBEXTRAVARS')}"
 
 SSTATETASKS += "do_package_write_deb"
 do_package_write_deb[sstate-inputdirs] = "${PKGWRITEDIRDEB}"
diff --git a/poky/meta/classes/package_ipk.bbclass b/poky/meta/classes/package_ipk.bbclass
index c008559..79cb36c 100644
--- a/poky/meta/classes/package_ipk.bbclass
+++ b/poky/meta/classes/package_ipk.bbclass
@@ -238,7 +238,7 @@
         bb.utils.unlockfile(lf)
 
 # Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
-IPKEXTRAVARS = "PRIORITY MAINTAINER PACKAGE_ARCH HOMEPAGE"
+IPKEXTRAVARS = "PRIORITY MAINTAINER PACKAGE_ARCH HOMEPAGE PACKAGE_ADD_METADATA_IPK"
 ipk_write_pkg[vardeps] += "${@gen_packagevar(d, 'IPKEXTRAVARS')}"
 
 # Otherwise allarch packages may change depending on override configuration
diff --git a/poky/meta/classes/package_rpm.bbclass b/poky/meta/classes/package_rpm.bbclass
index 9145717..519c22b 100644
--- a/poky/meta/classes/package_rpm.bbclass
+++ b/poky/meta/classes/package_rpm.bbclass
@@ -286,16 +286,18 @@
 
     # Construct the SPEC file...
     srcname    = d.getVar('PN')
-    srcsummary = (d.getVar('SUMMARY') or d.getVar('DESCRIPTION') or ".")
-    srcversion = d.getVar('PKGV').replace('-', '+')
-    srcrelease = d.getVar('PKGR')
-    srcepoch   = (d.getVar('PKGE') or "")
-    srclicense = d.getVar('LICENSE')
-    srcsection = d.getVar('SECTION')
-    srcmaintainer  = d.getVar('MAINTAINER')
-    srchomepage    = d.getVar('HOMEPAGE')
-    srcdescription = d.getVar('DESCRIPTION') or "."
-    srccustomtagschunk = get_package_additional_metadata("rpm", d)
+    localdata = bb.data.createCopy(d)
+    localdata.setVar('OVERRIDES', d.getVar("OVERRIDES", False) + ":" + srcname)
+    srcsummary = (localdata.getVar('SUMMARY') or localdata.getVar('DESCRIPTION') or ".")
+    srcversion = localdata.getVar('PKGV').replace('-', '+')
+    srcrelease = localdata.getVar('PKGR')
+    srcepoch   = (localdata.getVar('PKGE') or "")
+    srclicense = localdata.getVar('LICENSE')
+    srcsection = localdata.getVar('SECTION')
+    srcmaintainer  = localdata.getVar('MAINTAINER')
+    srchomepage    = localdata.getVar('HOMEPAGE')
+    srcdescription = localdata.getVar('DESCRIPTION') or "."
+    srccustomtagschunk = get_package_additional_metadata("rpm", localdata)
 
     srcdepends     = d.getVar('DEPENDS')
     srcrdepends    = []
@@ -621,6 +623,10 @@
 # Otherwise allarch packages may change depending on override configuration
 write_specfile[vardepsexclude] = "OVERRIDES"
 
+# Have to list any variables referenced as X_<pkg> that aren't in pkgdata here
+RPMEXTRAVARS = "PACKAGE_ADD_METADATA_RPM"
+write_specfile[vardeps] += "${@gen_packagevar(d, 'RPMEXTRAVARS')}"
+
 python do_package_rpm () {
     workdir = d.getVar('WORKDIR')
     tmpdir = d.getVar('TMPDIR')
diff --git a/poky/meta/classes/sanity.bbclass b/poky/meta/classes/sanity.bbclass
index 292c559..e021b9d 100644
--- a/poky/meta/classes/sanity.bbclass
+++ b/poky/meta/classes/sanity.bbclass
@@ -784,6 +784,12 @@
     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 whether 'inherit' directive is found (used for a class to inherit)
+    # in conf file it's supposed to be uppercase INHERIT
+    inherit = d.getVar('inherit')
+    if inherit:
+        status.addresult("Please don't use inherit directive in your local.conf. The directive is supposed to be used in classes and recipes only to inherit of bbclasses. Here INHERIT should be used.\n")
+
     # Check that the DISTRO is valid, if set
     # need to take into account DISTRO renaming DISTRO
     distro = d.getVar('DISTRO')
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index bdade79..f7700f1 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -833,8 +833,8 @@
 
 # Normally target distro features will not be applied to native builds:
 # Native distro features on this list will use the target feature value
-DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation"
-DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation"
+DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation opengl"
+DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation opengl"
 
 DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit gobject-introspection-data ldconfig"
 MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 256666c..51e6da6 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -2,7 +2,7 @@
 #
 # This file contains a list of recipe maintainers.
 #
-# Please submit any patches against recipes in meta to the 
+# Please submit any patches against recipes in meta to the
 # OE-Core mail list (openembedded-core@lists.openembedded.org)
 # For recipes in meta-yocto please use the Poky list (poky@yoctoproject.org)
 #
@@ -579,6 +579,8 @@
 RECIPE_MAINTAINER_pn-python3-dbus = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-dbusmock = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-docutils = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-pycryptodome = "Joshua Watt <JPEWhacker@gmail.com>"
+RECIPE_MAINTAINER_pn-python3-pycryptodomex = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER_pn-python3-extras = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-git = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-gitdb = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
@@ -591,6 +593,7 @@
 RECIPE_MAINTAINER_pn-python3-pbr = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-pip = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-pycairo = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-pyelftools = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER_pn-python3-pygments = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-pygobject = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-pyparsing = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
diff --git a/poky/meta/conf/layer.conf b/poky/meta/conf/layer.conf
index f03eb48..da93d64 100644
--- a/poky/meta/conf/layer.conf
+++ b/poky/meta/conf/layer.conf
@@ -7,12 +7,12 @@
 BBFILE_PATTERN_core = "^${LAYERDIR}/"
 BBFILE_PRIORITY_core = "5"
 
-LAYERSERIES_CORENAMES = "dunfell"
+LAYERSERIES_CORENAMES = "dunfell gatesgarth"
 
 # This should only be incremented on significant changes that will
 # cause compatibility issues with other layers
 LAYERVERSION_core = "11"
-LAYERSERIES_COMPAT_core = "dunfell"
+LAYERSERIES_COMPAT_core = "gatesgarth"
 
 BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"
 
diff --git a/poky/meta/conf/machine/include/tune-cortexa53.inc b/poky/meta/conf/machine/include/tune-cortexa53.inc
index 6c0b443..b7327d0 100644
--- a/poky/meta/conf/machine/include/tune-cortexa53.inc
+++ b/poky/meta/conf/machine/include/tune-cortexa53.inc
@@ -13,5 +13,9 @@
 TUNE_FEATURES_tune-cortexa53-crypto   = "aarch64 cortexa53 crc crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa53             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa53-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa53 cortexa53-crypto"
+
+TUNE_PKGARCH_tune-cortexa53 = "cortexa53"
+TUNE_PKGARCH_tune-cortexa53-crypto = "cortexa53-crypto"
+
 BASE_LIB_tune-cortexa53               = "lib64"
 BASE_LIB_tune-cortexa53-crypto        = "lib64"
diff --git a/poky/meta/conf/machine/include/tune-cortexa55.inc b/poky/meta/conf/machine/include/tune-cortexa55.inc
index 8242cc9..2749448 100644
--- a/poky/meta/conf/machine/include/tune-cortexa55.inc
+++ b/poky/meta/conf/machine/include/tune-cortexa55.inc
@@ -6,12 +6,9 @@
 require conf/machine/include/arm/arch-armv8a.inc
 
 # Little Endian base configs
-AVAILTUNES += "cortexa55 cortexa55-crypto"
+AVAILTUNES += "cortexa55"
 ARMPKGARCH_tune-cortexa55             = "cortexa55"
-ARMPKGARCH_tune-cortexa55-crypto      = "cortexa55"
-TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crc"
-TUNE_FEATURES_tune-cortexa55-crypto   = "aarch64 cortexa55 crc crypto"
-PACKAGE_EXTRA_ARCHS_tune-cortexa55             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa55"
-PACKAGE_EXTRA_ARCHS_tune-cortexa55-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa55 cortexa55-crypto"
+TUNE_FEATURES_tune-cortexa55          = "aarch64 cortexa55 crc crypto"
+TUNE_PKGARCH_tune-cortexa55           = "cortexa55"
+PACKAGE_EXTRA_ARCHS_tune-cortexa55    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa55"
 BASE_LIB_tune-cortexa55               = "lib64"
-BASE_LIB_tune-cortexa55-crypto        = "lib64"
diff --git a/poky/meta/conf/machine/include/tune-cortexa57-cortexa53.inc b/poky/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
index d05e93f..b95d63e 100644
--- a/poky/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
+++ b/poky/meta/conf/machine/include/tune-cortexa57-cortexa53.inc
@@ -1,18 +1,16 @@
 DEFAULTTUNE ?= "cortexa57-cortexa53"
-require conf/machine/include/arm/arch-armv8a.inc
 
 TUNEVALID[cortexa57-cortexa53] = "Enable big.LITTLE Cortex-A57.Cortex-A53 specific processor optimizations"
 TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "aarch64", " -march=armv8-a", "" ,d)}"
-
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", " -mcpu=cortex-a57.cortex-a53", "", d)}"
 MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", "cortexa57-cortexa53:", "" ,d)}"
 
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa57-cortexa53", " -mtune=cortex-a57.cortex-a53", "", d)}"
+require conf/machine/include/arm/arch-armv8a.inc
 
 # Little Endian base configs
 AVAILTUNES += "cortexa57-cortexa53"
 ARMPKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
-TUNE_FEATURES_tune-cortexa57-cortexa53 = "${TUNE_FEATURES_tune-aarch64} cortexa57-cortexa53"
+TUNE_FEATURES_tune-cortexa57-cortexa53 = "aarch64 cortexa57-cortexa53"
+TUNE_PKGARCH_tune-cortexa57-cortexa53 = "cortexa57-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa57-cortexa53 = "${PACKAGE_EXTRA_ARCHS_tune-aarch64} cortexa57-cortexa53"
 BASE_LIB_tune-cortexa57-cortexa53 = "lib64"
diff --git a/poky/meta/conf/machine/include/tune-cortexa57.inc b/poky/meta/conf/machine/include/tune-cortexa57.inc
new file mode 100644
index 0000000..e8ddeb5
--- /dev/null
+++ b/poky/meta/conf/machine/include/tune-cortexa57.inc
@@ -0,0 +1,19 @@
+DEFAULTTUNE ?= "cortexa57"
+
+TUNEVALID[cortexa57] = "Enable Cortex-A57 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa57', ' -mcpu=cortex-a57', '', d)}"
+
+require conf/machine/include/arm/arch-armv8a.inc
+
+# Little Endian base configs
+AVAILTUNES += "cortexa57 cortexa57-crypto"
+ARMPKGARCH_tune-cortexa57             = "cortexa57"
+ARMPKGARCH_tune-cortexa57-crypto      = "cortexa57"
+TUNE_FEATURES_tune-cortexa57          = "aarch64 cortexa57 crc"
+TUNE_FEATURES_tune-cortexa57-crypto   = "aarch64 cortexa57 crc crypto"
+PACKAGE_EXTRA_ARCHS_tune-cortexa57             = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc} cortexa57"
+PACKAGE_EXTRA_ARCHS_tune-cortexa57-crypto      = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa57 cortexa57-crypto"
+TUNE_PKGARCH_tune-cortexa57 = "cortexa57"
+TUNE_PKGARCH_tune-cortexa57-crypto = "cortexa57-crypto"
+BASE_LIB_tune-cortexa57               = "lib64"
+BASE_LIB_tune-cortexa57-crypto        = "lib64"
diff --git a/poky/meta/conf/machine/include/tune-cortexa72-cortexa53.inc b/poky/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
index f208b98..fd1ffeb 100644
--- a/poky/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
+++ b/poky/meta/conf/machine/include/tune-cortexa72-cortexa53.inc
@@ -1,23 +1,22 @@
 DEFAULTTUNE ?= "cortexa72-cortexa53"
 
-require conf/machine/include/arm/arch-armv8a.inc
-
 TUNEVALID[cortexa72-cortexa53] = "Enable big.LITTLE Cortex-A72.Cortex-A53 specific processor optimizations"
-
 TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", " -mcpu=cortex-a72.cortex-a53", "", d)}"
 MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", "cortexa72-cortexa53:", "" ,d)}"
 
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa72-cortexa53", " -mtune=cortex-a72.cortex-a53", "", d)}"
+require conf/machine/include/arm/arch-armv8a.inc
 
 # cortexa72.cortexa53 implies crc support
 AVAILTUNES += "cortexa72-cortexa53 cortexa72-cortexa53-crypto"
 ARMPKGARCH_tune-cortexa72-cortexa53                  = "cortexa72-cortexa53"
 ARMPKGARCH_tune-cortexa72-cortexa53-crypto           = "cortexa72-cortexa53"
-TUNE_FEATURES_tune-cortexa72-cortexa53               = "${TUNE_FEATURES_tune-armv8a-crc} cortexa72-cortexa53"
-TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "${TUNE_FEATURES_tune-armv8a-crc-crypto} cortexa72-cortexa53"
+TUNE_FEATURES_tune-cortexa72-cortexa53               = "aarch64 crc cortexa72-cortexa53"
+TUNE_FEATURES_tune-cortexa72-cortexa53-crypto        = "aarch64 crc crypto cortexa72-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa72-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa72-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72-cortexa53 cortexa72-cortexa53-crypto"
+TUNE_PKGARCH_tune-cortexa72-cortexa53                = "cortexa72-cortexa53"
+TUNE_PKGARCH_tune-cortexa72-cortexa53-crypto         = "cortexa72-cortexa53-crypto"
 BASE_LIB_tune-cortexa72-cortexa53                    = "lib64"
 BASE_LIB_tune-cortexa72-cortexa53-crypto             = "lib64"
 
diff --git a/poky/meta/conf/machine/include/tune-cortexa72.inc b/poky/meta/conf/machine/include/tune-cortexa72.inc
index 00f7745..23640d5 100644
--- a/poky/meta/conf/machine/include/tune-cortexa72.inc
+++ b/poky/meta/conf/machine/include/tune-cortexa72.inc
@@ -10,4 +10,5 @@
 ARMPKGARCH_tune-cortexa72             = "cortexa72"
 TUNE_FEATURES_tune-cortexa72          = "aarch64 cortexa72 crc crypto"
 PACKAGE_EXTRA_ARCHS_tune-cortexa72    = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa72"
+TUNE_PKGARCH_tune-cortexa72           = "cortexa72"
 BASE_LIB_tune-cortexa72               = "lib64"
diff --git a/poky/meta/conf/machine/include/tune-cortexa73-cortexa53.inc b/poky/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
index 8df4182..ab87c88 100644
--- a/poky/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
+++ b/poky/meta/conf/machine/include/tune-cortexa73-cortexa53.inc
@@ -1,23 +1,22 @@
 DEFAULTTUNE ?= "cortexa73-cortexa53"
 
-require conf/machine/include/arm/arch-armv8a.inc
-
 TUNEVALID[cortexa73-cortexa53] = "Enable big.LITTLE Cortex-A73.Cortex-A53 specific processor optimizations"
-
 TUNECONFLICTS[aarch64] = "armv4 armv5 armv6 armv7 armv7a"
-
 MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", "cortexa73-cortexa53:", "" ,d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", " -mcpu=cortex-a73.cortex-a53", "", d)}"
 
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "cortexa73-cortexa53", " -mtune=cortex-a73.cortex-a53", "", d)}"
+require conf/machine/include/arm/arch-armv8a.inc
 
 # cortexa73.cortexa53 implies crc support
 AVAILTUNES += "cortexa73-cortexa53 cortexa73-cortexa53-crypto"
 ARMPKGARCH_tune-cortexa73-cortexa53                  = "cortexa73-cortexa53"
 ARMPKGARCH_tune-cortexa73-cortexa53-crypto           = "cortexa73-cortexa53"
-TUNE_FEATURES_tune-cortexa73-cortexa53               = "${TUNE_FEATURES_tune-armv8a-crc} cortexa73-cortexa53"
-TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "${TUNE_FEATURES_tune-armv8a-crc-crypto} cortexa73-cortexa53"
+TUNE_FEATURES_tune-cortexa73-cortexa53               = "aarch64 crc cortexa73-cortexa53"
+TUNE_FEATURES_tune-cortexa73-cortexa53-crypto        = "aarch64 crc crypto cortexa73-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53         = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc}        cortexa73-cortexa53"
 PACKAGE_EXTRA_ARCHS_tune-cortexa73-cortexa53-crypto  = "${PACKAGE_EXTRA_ARCHS_tune-armv8a-crc-crypto} cortexa73-cortexa53 cortexa73-cortexa53-crypto"
+TUNE_PKGARCH_tune-cortexa73-cortexa53                = "cortexa73-cortexa53"
+TUNE_PKGARCH_tune-cortexa73-cortexa53-crypto         = "cortexa73-cortexa53-crypto"
 BASE_LIB_tune-cortexa73-cortexa53                    = "lib64"
 BASE_LIB_tune-cortexa73-cortexa53-crypto             = "lib64"
 
diff --git a/poky/meta/conf/machine/qemuarm64.conf b/poky/meta/conf/machine/qemuarm64.conf
index 1e2d4f0..7965fac 100644
--- a/poky/meta/conf/machine/qemuarm64.conf
+++ b/poky/meta/conf/machine/qemuarm64.conf
@@ -2,7 +2,7 @@
 #@NAME: QEMU ARMv8 machine
 #@DESCRIPTION: Machine configuration for running an ARMv8 system on QEMU
 
-require conf/machine/include/arm/arch-armv8a.inc
+require conf/machine/include/tune-cortexa57.inc
 require conf/machine/include/qemu.inc
 
 KERNEL_IMAGETYPE = "Image"
diff --git a/poky/meta/files/common-licenses/Unlicense b/poky/meta/files/common-licenses/Unlicense
new file mode 100644
index 0000000..68a49da
--- /dev/null
+++ b/poky/meta/files/common-licenses/Unlicense
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org/>
diff --git a/poky/meta/lib/oe/classextend.py b/poky/meta/lib/oe/classextend.py
index f02fbe9..e1049ce 100644
--- a/poky/meta/lib/oe/classextend.py
+++ b/poky/meta/lib/oe/classextend.py
@@ -4,11 +4,21 @@
 
 import collections
 
+def get_packages(d):
+    pkgs = d.getVar("PACKAGES_NONML")
+    extcls = d.getVar("EXTENDERCLASS")
+    return extcls.rename_packages_internal(pkgs)
+
+def get_depends(varprefix, d):
+    extcls = d.getVar("EXTENDERCLASS")
+    return extcls.map_depends_variable(varprefix + "_NONML")
+
 class ClassExtender(object):
     def __init__(self, extname, d):
         self.extname = extname
         self.d = d
         self.pkgs_mapping = []
+        self.d.setVar("EXTENDERCLASS", self)
 
     def extend_name(self, name):
         if name.startswith("kernel-") or name == "virtual/kernel":
@@ -24,7 +34,7 @@
             if not subs.startswith(self.extname):
                 return "virtual/" + self.extname + "-" + subs
             return name
-        if name.startswith("/"):
+        if name.startswith("/") or (name.startswith("${") and name.endswith("}")):
             return name
         if not name.startswith(self.extname):
             return self.extname + "-" + name
@@ -89,8 +99,14 @@
         for dep in deps:
             newdeps[self.map_depends(dep)] = deps[dep]
 
-        self.d.setVar(varname, bb.utils.join_deps(newdeps, False).replace("EXTENDPKGV", "${EXTENDPKGV}"))
+        if not varname.endswith("_NONML"):
+            #if varname == "DEPENDS":
+            self.d.renameVar(varname, varname + "_NONML")
+            self.d.setVar(varname, "${@oe.classextend.get_depends('%s', d)}" % varname)
+            self.d.appendVarFlag(varname, "vardeps", " " + varname + "_NONML")
+        ret = bb.utils.join_deps(newdeps, False).replace("EXTENDPKGV", "${EXTENDPKGV}")
         self.d.setVar("EXTENDPKGV", orig)
+        return ret
 
     def map_packagevars(self):
         for pkg in (self.d.getVar("PACKAGES").split() + [""]):
@@ -109,10 +125,23 @@
                continue
             self.pkgs_mapping.append([pkg, self.extend_name(pkg)])
 
-        self.d.setVar("PACKAGES", " ".join([row[1] for row in self.pkgs_mapping]))
+        self.d.renameVar("PACKAGES", "PACKAGES_NONML")
+        self.d.setVar("PACKAGES", "${@oe.classextend.get_packages(d)}")
+
+    def rename_packages_internal(self, pkgs):
+        self.pkgs_mapping = []
+        for pkg in (self.d.expand(pkgs) or "").split():
+            if pkg.startswith(self.extname):
+               self.pkgs_mapping.append([pkg.split(self.extname + "-")[1], pkg])
+               continue
+            self.pkgs_mapping.append([pkg, self.extend_name(pkg)])
+
+        return " ".join([row[1] for row in self.pkgs_mapping])
 
     def rename_package_variables(self, variables):
         for pkg_mapping in self.pkgs_mapping:
+            if pkg_mapping[0].startswith("${") and pkg_mapping[0].endswith("}"):
+                continue
             for subs in variables:
                 self.d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1]))
 
diff --git a/poky/meta/lib/oe/recipeutils.py b/poky/meta/lib/oe/recipeutils.py
index 732420e..29473a9 100644
--- a/poky/meta/lib/oe/recipeutils.py
+++ b/poky/meta/lib/oe/recipeutils.py
@@ -1076,6 +1076,18 @@
                  'RECIPE_UPSTREAM_VERSION',
                  'RECIPE_UPSTREAM_DATE',
                  'CHECK_DATE',
+                 'FETCHCMD_bzr',
+                 'FETCHCMD_ccrc',
+                 'FETCHCMD_cvs',
+                 'FETCHCMD_git',
+                 'FETCHCMD_hg',
+                 'FETCHCMD_npm',
+                 'FETCHCMD_osc',
+                 'FETCHCMD_p4',
+                 'FETCHCMD_repo',
+                 'FETCHCMD_s3',
+                 'FETCHCMD_svn',
+                 'FETCHCMD_wget',
             )
 
     with bb.tinfoil.Tinfoil() as tinfoil:
diff --git a/poky/meta/lib/oe/terminal.py b/poky/meta/lib/oe/terminal.py
index a1daa2b..eb10a6e 100644
--- a/poky/meta/lib/oe/terminal.py
+++ b/poky/meta/lib/oe/terminal.py
@@ -207,7 +207,10 @@
             spawn(terminal.name, sh_cmd, title, env, d)
             break
         except UnsupportedTerminal:
-            continue
+            pass
+        except:
+            bb.warn("Terminal %s is supported but did not start" % (terminal.name))
+    # when we've run out of options
     else:
         raise NoSupportedTerminals(get_cmd_list())
 
diff --git a/poky/meta/lib/oeqa/core/runner.py b/poky/meta/lib/oeqa/core/runner.py
index 1284295..00b7d0b 100644
--- a/poky/meta/lib/oeqa/core/runner.py
+++ b/poky/meta/lib/oeqa/core/runner.py
@@ -182,8 +182,10 @@
             (status, log) = self._getTestResultDetails(case)
 
             t = ""
+            duration = 0
             if case.id() in self.starttime and case.id() in self.endtime:
-                t = " (" + "{0:.2f}".format(self.endtime[case.id()] - self.starttime[case.id()]) + "s)"
+                duration = self.endtime[case.id()] - self.starttime[case.id()]
+                t = " (" + "{0:.2f}".format(duration) + "s)"
 
             if status not in logs:
                 logs[status] = []
@@ -191,6 +193,8 @@
             report = {'status': status}
             if log:
                 report['log'] = log
+            if duration:
+                report['duration'] = duration
             if dump_streams and case.id() in self.logged_output:
                 (stdout, stderr) = self.logged_output[case.id()]
                 report['stdout'] = stdout
diff --git a/poky/meta/lib/oeqa/core/utils/concurrencytest.py b/poky/meta/lib/oeqa/core/utils/concurrencytest.py
index fac59f7..01c3983 100644
--- a/poky/meta/lib/oeqa/core/utils/concurrencytest.py
+++ b/poky/meta/lib/oeqa/core/utils/concurrencytest.py
@@ -77,14 +77,17 @@
     # a very basic TestResult proxy, in order to modify add* calls
     def __init__(self, target):
         self.result = target
+        self.failed_tests = 0
 
     def _addResult(self, method, test, *args, exception = False, **kwargs):
         return method(test, *args, **kwargs)
 
     def addError(self, test, err = None, **kwargs):
+        self.failed_tests += 1
         self._addResult(self.result.addError, test, err, exception = True, **kwargs)
 
     def addFailure(self, test, err = None, **kwargs):
+        self.failed_tests += 1
         self._addResult(self.result.addFailure, test, err, exception = True, **kwargs)
 
     def addSuccess(self, test, **kwargs):
@@ -96,6 +99,9 @@
     def addUnexpectedSuccess(self, test, **kwargs):
         self._addResult(self.result.addUnexpectedSuccess, test, **kwargs)
 
+    def wasSuccessful(self):
+        return self.failed_tests == 0
+
     def __getattr__(self, attr):
         return getattr(self.result, attr)
 
@@ -287,10 +293,10 @@
                 # as per default in parent code
                 subunit_client.buffer = True
                 subunit_result = AutoTimingTestResultDecorator(subunit_client)
-                process_suite.run(ExtraResultsEncoderTestResult(subunit_result))
+                unittest_result = process_suite.run(ExtraResultsEncoderTestResult(subunit_result))
                 if ourpid != os.getpid():
                     os._exit(0)
-                if newbuilddir:
+                if newbuilddir and unittest_result.wasSuccessful():
                     removebuilddir(newbuilddir)
             except:
                 # Don't do anything with process children
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index 2b9c499..dea519e 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -209,7 +209,7 @@
         image_name = 'core-image-minimal'
 
         all_image_types = set(get_bb_var("IMAGE_TYPES", image_name).split())
-        blacklist = set(('container', 'elf', 'f2fs', 'multiubi', 'tar.zst'))
+        blacklist = set(('container', 'elf', 'f2fs', 'multiubi', 'tar.zst', 'wic.zst'))
         img_types = all_image_types - blacklist
 
         config = 'IMAGE_FSTYPES += "%s"\n'\
diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
index 09d3de7..793c98a 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -188,18 +188,14 @@
             self.skipTest('virgl isn\'t working with Opensuse 15.0')
 
         qemu_packageconfig = get_bb_var('PACKAGECONFIG', 'qemu-system-native')
-        sdl_packageconfig = get_bb_var('PACKAGECONFIG', 'libsdl2-native')
+        qemu_distrofeatures = get_bb_var('DISTRO_FEATURES', 'qemu-system-native')
         features = 'INHERIT += "testimage"\n'
         if 'gtk+' not in qemu_packageconfig:
             features += 'PACKAGECONFIG_append_pn-qemu-system-native = " gtk+"\n'
         if 'sdl' not in qemu_packageconfig:
             features += 'PACKAGECONFIG_append_pn-qemu-system-native = " sdl"\n'
-        if 'virglrenderer' not in qemu_packageconfig:
-            features += 'PACKAGECONFIG_append_pn-qemu-system-native = " virglrenderer"\n'
-        if 'glx' not in qemu_packageconfig:
-            features += 'PACKAGECONFIG_append_pn-qemu-system-native = " glx"\n'
-        if 'opengl' not in sdl_packageconfig:
-            features += 'PACKAGECONFIG_append_pn-libsdl2-native = " opengl"\n'
+        if 'opengl' not in qemu_distrofeatures:
+            features += 'DISTRO_FEATURES_append = " opengl"\n'
         features += 'TEST_SUITES = "ping ssh virgl"\n'
         features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n'
         features += 'IMAGE_INSTALL_append = " kmscube"\n'
@@ -231,12 +227,10 @@
             dripath = subprocess.check_output("pkg-config --variable=dridriverdir dri", shell=True)
         except subprocess.CalledProcessError as e:
             self.skipTest("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.")
-        qemu_packageconfig = get_bb_var('PACKAGECONFIG', 'qemu-system-native')
+        qemu_distrofeatures = get_bb_var('DISTRO_FEATURES', 'qemu-system-native')
         features = 'INHERIT += "testimage"\n'
-        if 'virglrenderer' not in qemu_packageconfig:
-            features += 'PACKAGECONFIG_append_pn-qemu-system-native = " virglrenderer"\n'
-        if 'glx' not in qemu_packageconfig:
-            features += 'PACKAGECONFIG_append_pn-qemu-system-native = " glx"\n'
+        if 'opengl' not in qemu_distrofeatures:
+            features += 'DISTRO_FEATURES_append = " opengl"\n'
         features += 'TEST_SUITES = "ping ssh virgl"\n'
         features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n'
         features += 'IMAGE_INSTALL_append = " kmscube"\n'
diff --git a/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb b/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
similarity index 92%
rename from poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb
rename to poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
index 9954d7f..7888aba 100644
--- a/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.11.bb
+++ b/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
@@ -12,14 +12,14 @@
                     file://lib/aarch64/initplat.c;beginline=2;endline=15;md5=8ed772501da77b2b3345aa6df8744c9e \
                    "
 
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/files/${BP}.tar.bz2 \
            file://parallel-make-archives.patch \
            file://lib-Makefile-fix-parallel-issue.patch \
            file://gnu-efi-3.0.9-fix-clang-build.patch \
            "
 
-SRC_URI[md5sum] = "21148bbcccec385a9bfdf5f678959577"
-SRC_URI[sha256sum] = "f28da792a2532e91e18e0101468811739a22cde9eee5eacfd0efb9bf3a61d6b9"
+SRC_URI[md5sum] = "926763ff37bc9db3a9035cec41eb2f45"
+SRC_URI[sha256sum] = "0196f2e1fd3c334b66e610a608a0e59233474c7a01bec7bc53989639aa327669"
 
 COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
 COMPATIBLE_HOST_armv4 = 'null'
diff --git a/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb b/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb
index 3251d0f..fa90a12 100644
--- a/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb
+++ b/poky/meta/recipes-bsp/u-boot/libubootenv_0.2.bb
@@ -1,5 +1,5 @@
 SUMMARY = "U-Boot libraries and tools to access environment"
-DEPENDS += "mtd-utils"
+DEPENDS += "mtd-utils zlib"
 
 DESCRIPTION = "This package contains tools and libraries to read \
 and modify U-Boot environment. \
diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
index 3a2c24f..2b0c711 100644
--- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
+++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -81,6 +81,11 @@
 	rm -rf ${D}${datadir}/dbus-1/interfaces
 	test -d ${D}${datadir}/dbus-1 && rmdir --ignore-fail-on-non-empty ${D}${datadir}/dbus-1
 	rm -rf ${D}${libdir}/avahi
+
+	# Move example service files out of /etc/avahi/services so we don't
+	# advertise ssh & sftp-ssh by default
+	install -d ${D}${docdir}/avahi
+	mv ${D}${sysconfdir}/avahi/services/* ${D}${docdir}/avahi
 }
 
 PACKAGES =+ "${@bb.utils.contains("PACKAGECONFIG", "libdns_sd", "libavahi-compat-libdnssd", "", d)}"
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_5.6.0.bb
similarity index 65%
rename from poky/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb
rename to poky/meta/recipes-connectivity/iproute2/iproute2_5.6.0.bb
index 7ad4b8e..9ab9053 100644
--- a/poky/meta/recipes-connectivity/iproute2/iproute2_5.5.0.bb
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2_5.6.0.bb
@@ -4,8 +4,8 @@
            file://0001-libc-compat.h-add-musl-workaround.patch \
           "
 
-SRC_URI[md5sum] = "ee8e2cdb416d4a8ef39525d39ab7c2d0"
-SRC_URI[sha256sum] = "bac543435cac208a11db44c9cc8e35aa902befef8750594654ee71941c388f7b"
+SRC_URI[md5sum] = "9da0c352707c34b8b1fec3bf42fcfd09"
+SRC_URI[sha256sum] = "1b5b0e25ce6e23da7526ea1da044e814ad85ba761b10dd29c2b027c056b04692"
 
 # CFLAGS are computed in Makefile and reference CCOPTS
 #
diff --git a/poky/meta/recipes-core/glibc/glibc-package.inc b/poky/meta/recipes-core/glibc/glibc-package.inc
index 285a9aa..ff25fd4 100644
--- a/poky/meta/recipes-core/glibc/glibc-package.inc
+++ b/poky/meta/recipes-core/glibc/glibc-package.inc
@@ -24,7 +24,7 @@
 INSANE_SKIP_${PN}_append_aarch64 = " libdir"
 
 FILES_${PN} = "${libc_baselibs} ${libexecdir}/*"
-RRECOMMENDS_${PN} = "${@bb.utils.filter('DISTRO_FEATURES', 'ldconfig', d)}"
+RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}"
 FILES_ldconfig = "${base_sbindir}/ldconfig ${sysconfdir}/ld.so.conf"
 FILES_ldd = "${bindir}/ldd"
 FILES_libsegfault = "${base_libdir}/libSegFault*"
@@ -152,7 +152,7 @@
 }
 
 do_install_armmultilib () {
-	oe_multilib_header bits/endian.h bits/fcntl.h bits/fenv.h bits/fp-fast.h bits/hwcap.h bits/ipc.h bits/link.h bits/wordsize.h
+	oe_multilib_header bits/endian.h bits/fcntl.h bits/fenv.h bits/fp-fast.h bits/hwcap.h bits/ipc.h bits/link.h
 	oe_multilib_header bits/local_lim.h bits/mman.h bits/msq.h bits/pthreadtypes.h bits/pthreadtypes-arch.h  bits/sem.h  bits/semaphore.h bits/setjmp.h
 	oe_multilib_header bits/shm.h bits/sigstack.h bits/stat.h bits/statfs.h bits/typesizes.h
 	oe_multilib_header bits/procfs-id.h bits/procfs.h bits/shmlba.h
diff --git a/poky/meta/recipes-core/glibc/glibc/0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch b/poky/meta/recipes-core/glibc/glibc/0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch
new file mode 100644
index 0000000..cbef2f2
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch
@@ -0,0 +1,67 @@
+From 9cb0a756b017f5961b70ac781d3eaec6c82513cb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 May 2020 17:05:45 -0700
+Subject: [PATCH] wordsize.h: Unify the header between arm and aarch64
+
+This helps OE multilibs to not sythesize this header which causes all
+kind of recursions and other issues since wordsize is fundamental header
+and ends up including itself in many case e.g. clang tidy, bpf etc.
+
+Upstream-Status: Inappropriate [ OE-Specific ]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/aarch64/bits/wordsize.h          | 8 ++++++--
+ sysdeps/{aarch64 => arm}/bits/wordsize.h | 8 ++++++--
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+ copy sysdeps/{aarch64 => arm}/bits/wordsize.h (85%)
+
+diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/aarch64/bits/wordsize.h
+index ee01841773..34fcdef1f1 100644
+--- a/sysdeps/aarch64/bits/wordsize.h
++++ b/sysdeps/aarch64/bits/wordsize.h
+@@ -17,12 +17,16 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#ifdef __LP64__
++#if defined (__aarch64__) && defined (__LP64__)
+ # define __WORDSIZE			64
+-#else
++#elif defined (__aarch64__)
+ # define __WORDSIZE			32
+ # define __WORDSIZE32_SIZE_ULONG	1
+ # define __WORDSIZE32_PTRDIFF_LONG	1
++#else
++# define __WORDSIZE			32
++# define __WORDSIZE32_SIZE_ULONG	0
++# define __WORDSIZE32_PTRDIFF_LONG	0
+ #endif
+ 
+ #define __WORDSIZE_TIME64_COMPAT32	0
+diff --git a/sysdeps/aarch64/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h
+similarity index 85%
+copy from sysdeps/aarch64/bits/wordsize.h
+copy to sysdeps/arm/bits/wordsize.h
+index ee01841773..34fcdef1f1 100644
+--- a/sysdeps/aarch64/bits/wordsize.h
++++ b/sysdeps/arm/bits/wordsize.h
+@@ -17,12 +17,16 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#ifdef __LP64__
++#if defined (__aarch64__) && defined (__LP64__)
+ # define __WORDSIZE			64
+-#else
++#elif defined (__aarch64__)
+ # define __WORDSIZE			32
+ # define __WORDSIZE32_SIZE_ULONG	1
+ # define __WORDSIZE32_PTRDIFF_LONG	1
++#else
++# define __WORDSIZE			32
++# define __WORDSIZE32_SIZE_ULONG	0
++# define __WORDSIZE32_PTRDIFF_LONG	0
+ #endif
+ 
+ #define __WORDSIZE_TIME64_COMPAT32	0
diff --git a/poky/meta/recipes-core/glibc/glibc_2.31.bb b/poky/meta/recipes-core/glibc/glibc_2.31.bb
index 2032311..61679e2 100644
--- a/poky/meta/recipes-core/glibc/glibc_2.31.bb
+++ b/poky/meta/recipes-core/glibc/glibc_2.31.bb
@@ -40,6 +40,7 @@
            file://0027-intl-Emit-no-lines-in-bison-generated-files.patch \
            file://0028-inject-file-assembly-directives.patch \
            file://0029-locale-prevent-maybe-uninitialized-errors-with-Os-BZ.patch \
+           file://0030-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch \
            "
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build-${TARGET_SYS}"
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.15.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.16.bb
similarity index 100%
rename from poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.15.bb
rename to poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.16.bb
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
index 2d2a0b0..da7607a 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -10,7 +10,7 @@
 inherit autotools pkgconfig
 
 SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}"
-SRCREV = "823437d015cd4ab4d100ed205f218681b03ae45c"
+SRCREV = "4ffa4d38396c334a1e002427c22281b047a3d6a6"
 SRCBRANCH ?= "develop"
 
 PROVIDES = "virtual/crypt"
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.15.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.16.bb
similarity index 100%
rename from poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.15.bb
rename to poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.16.bb
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index 82379fd..6aa6998 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,7 +4,7 @@
 require musl.inc
 inherit linuxloader
 
-SRCREV = "040c1d16b468c50c04fc94edff521f1637708328"
+SRCREV = "1b4e84c56df0f8ca30f6bc05962a860f869e71df"
 
 BASEVER = "1.2.0"
 
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-base.bb b/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
index 1f802da..90b79ad 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-base.bb
@@ -110,16 +110,16 @@
     machine_features= set(d.getVar("MACHINE_FEATURES").split())
 
     if "bluetooth" in distro_features and not "bluetooth" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
-        d.setVar("ADD_BT", "packagegroup-base-bluetooth")
+        d.setVar("ADD_BT", "${MLPREFIX}packagegroup-base-bluetooth")
 
     if "wifi" in distro_features and not "wifi" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
-        d.setVar("ADD_WIFI", "packagegroup-base-wifi")
+        d.setVar("ADD_WIFI", "${MLPREFIX}packagegroup-base-wifi")
 
     if "3g" in distro_features and not "3g" in machine_features and ("pcmcia" in machine_features or "pci" in machine_features or "usbhost" in machine_features):
-        d.setVar("ADD_3G", "packagegroup-base-3g")
+        d.setVar("ADD_3G", "${MLPREFIX}packagegroup-base-3g")
 
     if "nfc" in distro_features and not "nfc" in machine_features and ("usbhost" in machine_features):
-        d.setVar("ADD_NFC", "packagegroup-base-nfc")
+        d.setVar("ADD_NFC", "${MLPREFIX}packagegroup-base-nfc")
 }
 
 #
diff --git a/poky/meta/recipes-core/psplash/psplash_git.bb b/poky/meta/recipes-core/psplash/psplash_git.bb
index 22c71f0..44f0007 100644
--- a/poky/meta/recipes-core/psplash/psplash_git.bb
+++ b/poky/meta/recipes-core/psplash/psplash_git.bb
@@ -22,6 +22,7 @@
 python __anonymous() {
     oldpkgs = d.getVar("PACKAGES").split()
     splashfiles = d.getVar('SPLASH_IMAGES').split()
+    mlprefix = d.getVar('MLPREFIX') or ''
     pkgs = []
     localpaths = []
     for uri in splashfiles:
@@ -46,9 +47,9 @@
     # Set these so that we have less work to do in do_compile and do_install_append
     d.setVar("SPLASH_INSTALL", " ".join(pkgs))
     d.setVar("SPLASH_LOCALPATHS", " ".join(localpaths))
+    for p in pkgs:
+        d.prependVar("PACKAGES", "%s%s " % (mlprefix, p))
 
-    d.prependVar("PACKAGES", "%s " % (" ".join(pkgs)))
-    mlprefix = d.getVar('MLPREFIX') or ''
     pn = d.getVar('PN') or ''
     for p in pkgs:
         ep = '%s%s' % (mlprefix, p)
diff --git a/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb b/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb
index 5b16b50..2952c21 100644
--- a/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb
+++ b/poky/meta/recipes-devtools/apt/apt-native_1.2.31.bb
@@ -2,6 +2,4 @@
 
 SRC_URI += "file://noconfigure.patch \
             file://no-curl.patch \
-            file://gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch \
-            file://gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch \
-            file://gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch"
+"
diff --git a/poky/meta/recipes-devtools/apt/apt.inc b/poky/meta/recipes-devtools/apt/apt.inc
index 13f5969..87d5337 100644
--- a/poky/meta/recipes-devtools/apt/apt.inc
+++ b/poky/meta/recipes-devtools/apt/apt.inc
@@ -17,6 +17,7 @@
            file://0001-environment.mak-musl-based-systems-can-generate-shar.patch \
            file://0001-apt-1.2.12-Fix-musl-build.patch \
            file://0001-Include-array.h-for-std-array.patch \
+           file://0001-The-C.UTF-8-locale-is-not-portable-use-std-locale-cl.patch \
            "
 SRC_URI[md5sum] = "d30eed9304e82ea8238c854b5c5a34d9"
 SRC_URI[sha256sum] = "03ded4f5e9b8d43ecec083704b2dcabf20c182ed382db9ac7251da0b0b038059"
diff --git a/poky/meta/recipes-devtools/apt/apt/0001-The-C.UTF-8-locale-is-not-portable-use-std-locale-cl.patch b/poky/meta/recipes-devtools/apt/apt/0001-The-C.UTF-8-locale-is-not-portable-use-std-locale-cl.patch
new file mode 100644
index 0000000..ce5c005
--- /dev/null
+++ b/poky/meta/recipes-devtools/apt/apt/0001-The-C.UTF-8-locale-is-not-portable-use-std-locale-cl.patch
@@ -0,0 +1,27 @@
+From 7e8839731ae3fdf7502b91643aa6b252f6c5eaa6 Mon Sep 17 00:00:00 2001
+From: Adrian Bunk <bunk@stusta.de>
+Date: Thu, 14 May 2020 00:08:21 +0300
+Subject: The C.UTF-8 locale is not portable, use std::locale::classic()
+
+Upstream-Status: Inappropriate [Similar fix already in apt >= 1.3]
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+---
+ ftparchive/writer.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc
+index 25963820a..6ad571d2a 100644
+--- a/ftparchive/writer.cc
++++ b/ftparchive/writer.cc
+@@ -984,7 +984,7 @@ ReleaseWriter::ReleaseWriter(FileFd * const GivenOutput, string const &/*DB*/) :
+    AddPatterns(_config->FindVector("APT::FTPArchive::Release::Patterns"));
+ 
+    time_t const now = time(NULL);
+-   auto const posix = std::locale("C.UTF-8");
++   auto const posix = std::locale::classic();
+ 
+    // FIXME: use TimeRFC1123 here? But that uses GMT to satisfy HTTP/1.1
+    std::ostringstream datestr;
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch b/poky/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch
deleted file mode 100644
index 438de20..0000000
--- a/poky/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-avoid-changing-the-global-LC_TIME-for-Release.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 7ef2b2dba0e0bee450da3c8450ea782a3e7d6429 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Tue, 22 Aug 2017 11:49:01 -0500
-Subject: [PATCH 3/3] Revert "avoid changing the global LC_TIME for Release
- writing"
-
-This reverts commit 78e7b683c645e907db12658405a4b201a6243ea8.
-
-After we drop debian8 and centos7 that has gcc < 5 (std::put_time not available) 
-versions this patch can be remove.
-
-Signed-off-by: Anibal Limon <limon.anibal@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- ftparchive/writer.cc | 29 +++++++++++++++++------------
- 1 file changed, 17 insertions(+), 12 deletions(-)
-
-diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc
-index 2596382..e43a643 100644
---- a/ftparchive/writer.cc
-+++ b/ftparchive/writer.cc
-@@ -37,7 +37,6 @@
- #include <unistd.h>
- #include <ctime>
- #include <iostream>
--#include <iomanip>
- #include <sstream>
- #include <memory>
- #include <utility>
-@@ -984,29 +983,35 @@ ReleaseWriter::ReleaseWriter(FileFd * const GivenOutput, string const &/*DB*/) :
-    AddPatterns(_config->FindVector("APT::FTPArchive::Release::Patterns"));
- 
-    time_t const now = time(NULL);
--   auto const posix = std::locale("C.UTF-8");
- 
--   // FIXME: use TimeRFC1123 here? But that uses GMT to satisfy HTTP/1.1
--   std::ostringstream datestr;
--   datestr.imbue(posix);
--   datestr << std::put_time(gmtime(&now), "%a, %d %b %Y %H:%M:%S UTC");
-+   setlocale(LC_TIME, "C");
-+
-+   char datestr[128];
-+   if (strftime(datestr, sizeof(datestr), "%a, %d %b %Y %H:%M:%S UTC",
-+                gmtime(&now)) == 0)
-+   {
-+      datestr[0] = '\0';
-+   }
- 
-    time_t const validuntil = now + _config->FindI("APT::FTPArchive::Release::ValidTime", 0);
--   std::ostringstream validstr;
--   if (validuntil != now)
-+   char validstr[128];
-+   if (now == validuntil ||
-+       strftime(validstr, sizeof(validstr), "%a, %d %b %Y %H:%M:%S UTC",
-+                gmtime(&validuntil)) == 0)
-    {
--      datestr.imbue(posix);
--      validstr << std::put_time(gmtime(&validuntil), "%a, %d %b %Y %H:%M:%S UTC");
-+      validstr[0] = '\0';
-    }
- 
-+   setlocale(LC_TIME, "");
-+
-    map<string,string> Fields;
-    Fields["Origin"] = "";
-    Fields["Label"] = "";
-    Fields["Suite"] = "";
-    Fields["Version"] = "";
-    Fields["Codename"] = "";
--   Fields["Date"] = datestr.str();
--   Fields["Valid-Until"] = validstr.str();
-+   Fields["Date"] = datestr;
-+   Fields["Valid-Until"] = validstr;
-    Fields["Architectures"] = "";
-    Fields["Components"] = "";
-    Fields["Description"] = "";
--- 
-2.1.4
-
diff --git a/poky/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch b/poky/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch
deleted file mode 100644
index 088a66a..0000000
--- a/poky/meta/recipes-devtools/apt/apt/gcc_4.x_Revert-use-de-localed-std-put_time-instead-rolling-o.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From c72ef9b6ae83a0a2fbbefd5c050335f65f0d2bc9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Tue, 22 Aug 2017 11:48:46 -0500
-Subject: [PATCH 2/3] Revert "use de-localed std::put_time instead rolling our
- own"
-
-This reverts commit 4ed2a17ab4334f019c00512aa54a162f0bf083c4.
-
-After we drop debian8 and centos7 that has gcc < 5 (std::put_time not available) 
-versions this patch can be remove.
-
-Signed-off-by: Anibal Limon <limon.anibal@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- apt-pkg/contrib/strutl.cc | 14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
-index c2ff01d..e9ef2be 100644
---- a/apt-pkg/contrib/strutl.cc
-+++ b/apt-pkg/contrib/strutl.cc
-@@ -760,11 +760,15 @@ string TimeRFC1123(time_t Date)
-    if (gmtime_r(&Date, &Conv) == NULL)
-       return "";
- 
--   auto const posix = std::locale::classic();
--   std::ostringstream datestr;
--   datestr.imbue(posix);
--   datestr << std::put_time(&Conv, "%a, %d %b %Y %H:%M:%S GMT");
--   return datestr.str();
-+   char Buf[300];
-+   const char *Day[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};
-+   const char *Month[] = {"Jan","Feb","Mar","Apr","May","Jun","Jul",
-+                          "Aug","Sep","Oct","Nov","Dec"};
-+
-+   snprintf(Buf, sizeof(Buf), "%s, %02i %s %i %02i:%02i:%02i GMT",Day[Conv.tm_wday],
-+	   Conv.tm_mday,Month[Conv.tm_mon],Conv.tm_year+1900,Conv.tm_hour,
-+	   Conv.tm_min,Conv.tm_sec);
-+   return Buf;
- }
- 									/*}}}*/
- // ReadMessages - Read messages from the FD				/*{{{*/
--- 
-2.1.4
-
diff --git a/poky/meta/recipes-devtools/apt/apt/gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch b/poky/meta/recipes-devtools/apt/apt/gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch
deleted file mode 100644
index cb32591..0000000
--- a/poky/meta/recipes-devtools/apt/apt/gcc_4.x_apt-pkg-contrib-strutl.cc-Include-array-header.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From ff8562f7724c4db4b83635af9e627f3495222327 Mon Sep 17 00:00:00 2001
-From: Anibal Limon <limon.anibal@gmail.com>
-Date: Tue, 22 Aug 2017 04:41:31 -0500
-Subject: [PATCH 1/3] apt-pkg/contrib/strutl.cc: Include array header
-
-If GCC version is less than 5 the array header needs to be included
-to support std::array.
-
-After we drop debian8 and centos7 that has gcc < 5 versions this patch
-can be remove.
-
-Signed-off-by: Anibal Limon <limon.anibal@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- apt-pkg/contrib/strutl.cc | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/apt-pkg/contrib/strutl.cc b/apt-pkg/contrib/strutl.cc
-index 60d0ca8..c2ff01d 100644
---- a/apt-pkg/contrib/strutl.cc
-+++ b/apt-pkg/contrib/strutl.cc
-@@ -27,6 +27,7 @@
- #include <sstream>
- #include <string>
- #include <vector>
-+#include <array>
- 
- #include <stddef.h>
- #include <stdlib.h>
--- 
-2.1.4
-
diff --git a/poky/meta/recipes-devtools/bison/bison/0001-bison-fix-the-parallel-build.patch b/poky/meta/recipes-devtools/bison/bison/0001-bison-fix-the-parallel-build.patch
new file mode 100644
index 0000000..c3be91a
--- /dev/null
+++ b/poky/meta/recipes-devtools/bison/bison/0001-bison-fix-the-parallel-build.patch
@@ -0,0 +1,63 @@
+From e0dbcee6e25b3c0cb11a627bbfe3af45ef67ec30 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 14 May 2020 15:23:16 +0800
+Subject: [PATCH] bison: fix the parallel build
+
+Explicitly make the BUILT_SOURCES which
+are the generated headers such as stdio.h,
+fcntl.h and etc to be the dependencies of
+the gl_LIBOBJS such as libbison_a-sprintf.o,
+libbison_a-printf.o and etc to guarantee the
+BUILT_SOURCES is generated before begin to
+compile EXTRA_lib_libbison_a_SOURCES such as
+fprintf.c in parallel builid, otherwise there
+may come below error:
+ | muscle-tab.c:(.text+0x77a): undefined reference to `rpl_sprintf'
+
+It does the same for src_bison_OBJECTS and
+lib_libbison_a_OBJECTS to make sure BUILT_SOURCES
+generated before begin to compile src_bison_SOURCES
+which contains AnnotationList.c and etc.
+
+BTW, the MOSTLYCLEANFILES also contains the
+generated header needs to be created early
+in the build process, so add it also in to
+avoid below error:
+ | ./lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory
+
+Upstream-Status: Submitted [bison-patches@gnu.org maillist]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ lib/gnulib.mk | 2 ++
+ src/local.mk  | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/lib/gnulib.mk b/lib/gnulib.mk
+index c21c656..27fb3dc 100644
+--- a/lib/gnulib.mk
++++ b/lib/gnulib.mk
+@@ -120,6 +120,8 @@ lib_libbison_a_SOURCES =
+ lib_libbison_a_LIBADD = $(gl_LIBOBJS)
+ lib_libbison_a_DEPENDENCIES = $(gl_LIBOBJS)
+ EXTRA_lib_libbison_a_SOURCES =
++$(lib_libbison_a_OBJECTS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h)
++$(gl_LIBOBJS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h)
+ 
+ lib_libbison_a_CPPFLAGS = $(AM_CPPFLAGS) -DDEFAULT_TEXT_DOMAIN=\"bison-gnulib\"
+ 
+diff --git a/src/local.mk b/src/local.mk
+index 61dc573..b5b9079 100644
+--- a/src/local.mk
++++ b/src/local.mk
+@@ -24,6 +24,7 @@ if RELOCATABLE_VIA_LD
+   src_bison_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
+ endif
+ 
++$(src_bison_OBJECTS): $(BUILT_SOURCES) $(MOSTLYCLEANFILES:%.h)
+ src_bison_CFLAGS = $(AM_CFLAGS) $(WERROR_CFLAGS)
+ src_bison_SOURCES =                             \
+   src/AnnotationList.c                          \
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/bison/bison_3.5.4.bb b/poky/meta/recipes-devtools/bison/bison_3.5.4.bb
index 59c34f7..124bc41 100644
--- a/poky/meta/recipes-devtools/bison/bison_3.5.4.bb
+++ b/poky/meta/recipes-devtools/bison/bison_3.5.4.bb
@@ -12,6 +12,7 @@
 SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
            file://dont-depend-on-help2man.patch.patch \
            file://add-with-bisonlocaledir.patch \
+           file://0001-bison-fix-the-parallel-build.patch \
 "
 SRC_URI[sha256sum] = "4c17e99881978fa32c05933c5262457fa5b2b611668454f8dc2a695cd6b3720c"
 
diff --git a/poky/meta/recipes-devtools/file/file_5.38.bb b/poky/meta/recipes-devtools/file/file_5.38.bb
index 007db47..48cf8ab 100644
--- a/poky/meta/recipes-devtools/file/file_5.38.bb
+++ b/poky/meta/recipes-devtools/file/file_5.38.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;beginline=2;md5=0251eaec1188b20d9a72c502ecfdda1b"
 
 DEPENDS = "file-replacement-native"
-DEPENDS_class-native = ""
+DEPENDS_class-native = "bzip2-replacement-native"
 
 SRC_URI = "git://github.com/file/file.git"
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1.inc b/poky/meta/recipes-devtools/gcc/gcc-10.1.inc
index 245f0a6..a3de91a 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-10.1.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.1.inc
@@ -65,7 +65,7 @@
            file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \
            file://0036-Enable-CET-in-cross-compiler-if-possible.patch \
            file://0037-mingw32-Enable-operation_not_supported.patch \
-           file://0038-Revert-AArch64-Use-__getauxval-instead-of-getauxval-.patch \
+           file://0038-libatomic-Do-not-enforce-march-on-aarch64.patch \
 "
 SRC_URI[sha256sum] = "b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2"
 
@@ -87,7 +87,6 @@
     ${SSP} \
     --enable-libitm \
     --disable-bootstrap \
-    --disable-libmudflap \
     --with-system-zlib \
     ${@'--with-linker-hash-style=${LINKER_HASH_STYLE}' if '${LINKER_HASH_STYLE}' else ''} \
     --enable-linker-build-id \
@@ -99,7 +98,6 @@
 "
 
 EXTRA_OECONF_INITIAL = "\
-    --disable-libmudflap \
     --disable-libgomp \
     --disable-libitm \
     --disable-libquadmath \
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-Revert-AArch64-Use-__getauxval-instead-of-getauxval-.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-Revert-AArch64-Use-__getauxval-instead-of-getauxval-.patch
deleted file mode 100644
index fc92282..0000000
--- a/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-Revert-AArch64-Use-__getauxval-instead-of-getauxval-.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 2101fb718935c7cf1cc2ad201bdeb1e635b54b0a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 11 May 2020 11:03:41 -0700
-Subject: [PATCH] Revert "[AArch64] Use __getauxval instead of getauxval in LSE
- detection code in libgcc"
-
-This reverts commit 5a57016dd2758cc63a544f191f77635342397a72.
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libgcc/config/aarch64/lse-init.c | 17 ++++++++---------
- 1 file changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/libgcc/config/aarch64/lse-init.c b/libgcc/config/aarch64/lse-init.c
-index 00e9ab8cd1c..74acef25cce 100644
---- a/libgcc/config/aarch64/lse-init.c
-+++ b/libgcc/config/aarch64/lse-init.c
-@@ -29,20 +29,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- _Bool __aarch64_have_lse_atomics
-   __attribute__((visibility("hidden"), nocommon));
- 
--/* Gate availability of __getauxval on glibc.  All AArch64-supporting glibc
--   versions support it.  */
--#ifdef __gnu_linux__
-+/* Disable initialization of __aarch64_have_lse_atomics during bootstrap.  */
-+#if !defined(inhibit_libc) && defined(HAVE_SYS_AUXV_H)
-+# include <sys/auxv.h>
- 
--# define AT_HWCAP	16
--# define HWCAP_ATOMICS	(1 << 8)
--
--unsigned long int __getauxval (unsigned long int);
-+/* Disable initialization if the system headers are too old.  */
-+# if defined(AT_HWCAP) && defined(HWCAP_ATOMICS)
- 
- static void __attribute__((constructor))
- init_have_lse_atomics (void)
- {
--  unsigned long hwcap = __getauxval (AT_HWCAP);
-+  unsigned long hwcap = getauxval (AT_HWCAP);
-   __aarch64_have_lse_atomics = (hwcap & HWCAP_ATOMICS) != 0;
- }
- 
--#endif /* __gnu_linux__  */
-+# endif /* HWCAP */
-+#endif /* inhibit_libc */
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-libatomic-Do-not-enforce-march-on-aarch64.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-libatomic-Do-not-enforce-march-on-aarch64.patch
new file mode 100644
index 0000000..3946ace
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/0038-libatomic-Do-not-enforce-march-on-aarch64.patch
@@ -0,0 +1,42 @@
+From 38d262bfe7c0c894c364dc6e4dc7971e78a73974 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 May 2020 15:10:38 -0700
+Subject: [PATCH] libatomic: Do not enforce march on aarch64
+
+OE passes the right options via gcc compiler cmdline via TUNE_CCARGS
+this can conflict between -mcpu settings and -march setting here, since
+-mcpu will translate into an appropriate -march, lets depend on that
+instead of setting it explicitly
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libatomic/Makefile.am | 1 -
+ libatomic/Makefile.in | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
+index 133fbbca77e..ac1ca645876 100644
+--- a/libatomic/Makefile.am
++++ b/libatomic/Makefile.am
+@@ -125,7 +125,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS)))
+ ## On a target-specific basis, include alternates to be selected by IFUNC.
+ if HAVE_IFUNC
+ if ARCH_AARCH64_LINUX
+-IFUNC_OPTIONS	     = -march=armv8-a+lse
+ libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS)))
+ endif
+ if ARCH_ARM_LINUX
+diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
+index a51807e95c9..97df2d7ff03 100644
+--- a/libatomic/Makefile.in
++++ b/libatomic/Makefile.in
+@@ -431,7 +431,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files)))
+ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
+ 	_$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
+ 	$(am__append_3) $(am__append_4)
+-@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv8-a+lse
+ @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64
+ @ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586
+ @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16
diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
index 38c1672..df1432e 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -18,10 +18,6 @@
 EXTRA_OECONF_append = " --cache-file=${B}/config.cache"
 EXTRA_OECONF_append_libc-newlib = " --with-newlib"
 
-# cortex-a55 is ARMv8.2-a based but libatomic explicitly asks for -march=armv8.1-a
-# which caused -march conflicts in gcc
-TUNE_CCARGS_remove = "-mcpu=cortex-a55+crc -mcpu=cortex-a55 -mcpu=cortex-a55+crc+crypto"
-
 # Disable ifuncs for libatomic on arm conflicts -march/-mcpu
 EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no "
 EXTRA_OECONF_append_armeb = " libat_cv_have_ifunc=no "
@@ -51,7 +47,6 @@
 RUNTIMETARGET_libc-newlib = "libstdc++-v3"
 
 # libiberty
-# libmudflap
 # libgfortran needs separate recipe due to libquadmath dependency
 
 SLIB = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
@@ -171,9 +166,6 @@
     libssp \
     libssp-dev \
     libssp-staticdev \
-    libmudflap \
-    libmudflap-dev \
-    libmudflap-staticdev \
     libquadmath \
     libquadmath-dev \
     libquadmath-staticdev \
@@ -246,17 +238,6 @@
 FILES_libquadmath-staticdev = "${libdir}/libquadmath.a"
 SUMMARY_libquadmath-staticdev = "GNU quad-precision math library - static development files"
 
-# NOTE: mudflap has been removed as of gcc 4.9 and has been superseded by the address sanitiser
-FILES_libmudflap = "${libdir}/libmudflap*.so.*"
-SUMMARY_libmudflap = "Pointer debugging library for gcc"
-FILES_libmudflap-dev = "\
-    ${libdir}/libmudflap*.so \
-    ${libdir}/libmudflap.la \
-"
-SUMMARY_libmudflap-dev = "Pointer debugging library for gcc - development files"
-FILES_libmudflap-staticdev = "${libdir}/libmudflap.a"
-SUMMARY_libmudflap-staticdev = "Pointer debugging library for gcc - static development files"
-
 FILES_libgomp = "${libdir}/libgomp*${SOLIBS}"
 SUMMARY_libgomp = "GNU OpenMP parallel programming library"
 FILES_libgomp-dev = "\
diff --git a/poky/meta/recipes-devtools/glide/glide_0.13.3.bb b/poky/meta/recipes-devtools/glide/glide_0.13.3.bb
index ebad0ec..31295ed 100644
--- a/poky/meta/recipes-devtools/glide/glide_0.13.3.bb
+++ b/poky/meta/recipes-devtools/glide/glide_0.13.3.bb
@@ -9,6 +9,10 @@
 
 inherit go
 
+# New Go versions has Go modules support enabled by default and cause the Glide
+# tool build to fail.
+export GO111MODULE = "off"
+
 RDEPENDS_${PN}-dev += "bash"
 RDEPENDS_${PN}-ptest += "bash"
 
diff --git a/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb b/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb
index 615cb28..496224a 100644
--- a/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb
+++ b/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb
@@ -13,6 +13,10 @@
 
 inherit go
 
+# New Go versions has Go modules support enabled by default and cause the Glide
+# tool build to fail.
+export GO111MODULE = "off"
+
 GO_INSTALL = "${GO_IMPORT}/cmd/dep"
 
 RDEPENDS_${PN}-dev += "bash"
diff --git a/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch b/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
index 464ccc4..138ff9d 100644
--- a/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
+++ b/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
@@ -1,4 +1,4 @@
-From 5c24356762bc4274d3ca4930b0bc7754f4ffd19b Mon Sep 17 00:00:00 2001
+From fa6ebd96c7f330edcd74abf61584592eabb9e726 Mon Sep 17 00:00:00 2001
 From: Ed Bartosh <ed.bartosh@linux.intel.com>
 Date: Tue, 13 Jun 2017 14:55:52 +0300
 Subject: [PATCH] Disabled reading host configs.
@@ -12,10 +12,10 @@
  1 file changed, 8 deletions(-)
 
 diff --git a/config.c b/config.c
-index f086883..1c3f9bd 100644
+index 265d494..15e64dd 100644
 --- a/config.c
 +++ b/config.c
-@@ -701,14 +701,6 @@ void read_config(void)
+@@ -740,14 +740,6 @@ void read_config(void)
  	memcpy(devices, const_devices,
  	       nr_const_devices*sizeof(struct device));
  
diff --git a/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb b/poky/meta/recipes-devtools/mtools/mtools_4.0.24.bb
similarity index 90%
rename from poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb
rename to poky/meta/recipes-devtools/mtools/mtools_4.0.24.bb
index 2093d80..d7cc72d 100644
--- a/poky/meta/recipes-devtools/mtools/mtools_4.0.23.bb
+++ b/poky/meta/recipes-devtools/mtools/mtools_4.0.24.bb
@@ -24,8 +24,8 @@
 	glibc-gconv-ibm866 \
 	glibc-gconv-ibm869 \
 	"
-SRC_URI[md5sum] = "1d17b58c53a46b29c7f521d4a55ccef1"
-SRC_URI[sha256sum] = "f188db26751aeb5692a79b2380b440ecc05fd1848a52f869d7ca1193f2ef8ee3"
+SRC_URI[md5sum] = "aeaf34406e9d28922b7c09a35ca5955e"
+SRC_URI[sha256sum] = "24f4a2da9219f98498eb1b340cd96db7ef9b684c067d1bdeb6e85efdd13b2fb9"
 
 SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
            file://mtools-makeinfo.patch \
diff --git a/poky/meta/recipes-devtools/perl/perl_5.30.2.bb b/poky/meta/recipes-devtools/perl/perl_5.30.2.bb
index 778c420..26138ea 100644
--- a/poky/meta/recipes-devtools/perl/perl_5.30.2.bb
+++ b/poky/meta/recipes-devtools/perl/perl_5.30.2.bb
@@ -328,7 +328,7 @@
 
 python() {
     if d.getVar('CLASSOVERRIDE') == "class-target":
-        d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*(?<!native)$")
+        d.setVar("PACKAGES_DYNAMIC", "^${MLPREFIX}perl-module-.*(?<!native)$")
     elif d.getVar('CLASSOVERRIDE') == "class-native":
         d.setVar("PACKAGES_DYNAMIC", "^perl-module-.*-native$")
     elif d.getVar('CLASSOVERRIDE') == "class-nativesdk":
diff --git a/poky/meta/recipes-devtools/python/python-pycryptodome.inc b/poky/meta/recipes-devtools/python/python-pycryptodome.inc
new file mode 100644
index 0000000..68b084e
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python-pycryptodome.inc
@@ -0,0 +1,26 @@
+SUMMARY = "Cryptographic library for Python"
+DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level\
+ cryptographic primitives."
+HOMEPAGE = "http://www.pycryptodome.org"
+LICENSE = "PD & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=6dc0e2a13d2f25d6f123c434b761faba"
+
+inherit pypi
+
+RDEPENDS_${PN} += " \
+    ${PYTHON_PN}-io \
+    ${PYTHON_PN}-math \
+"
+
+RDEPENDS_${PN}-tests += " \
+    ${PYTHON_PN}-unittest \
+"
+
+PACKAGES =+ "${PN}-tests"
+
+FILES_${PN}-tests = " \
+    ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \
+    ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python-setuptools.inc b/poky/meta/recipes-devtools/python/python-setuptools.inc
index 6726e06..e9ad93d 100644
--- a/poky/meta/recipes-devtools/python/python-setuptools.inc
+++ b/poky/meta/recipes-devtools/python/python-setuptools.inc
@@ -18,6 +18,7 @@
 DEPENDS += "${PYTHON_PN}"
 
 RDEPENDS_${PN} = "\
+  ${PYTHON_PN}-2to3 \
   ${PYTHON_PN}-compile \
   ${PYTHON_PN}-compression \
   ${PYTHON_PN}-ctypes \
@@ -27,6 +28,7 @@
   ${PYTHON_PN}-json \
   ${PYTHON_PN}-netserver \
   ${PYTHON_PN}-numbers \
+  ${PYTHON_PN}-pickle \
   ${PYTHON_PN}-pkgutil \
   ${PYTHON_PN}-plistlib \
   ${PYTHON_PN}-shell \
diff --git a/poky/meta/recipes-devtools/python/python3-magic_0.4.15.bb b/poky/meta/recipes-devtools/python/python3-magic_0.4.18.bb
similarity index 77%
rename from poky/meta/recipes-devtools/python/python3-magic_0.4.15.bb
rename to poky/meta/recipes-devtools/python/python3-magic_0.4.18.bb
index 698016b..be423ad 100644
--- a/poky/meta/recipes-devtools/python/python3-magic_0.4.15.bb
+++ b/poky/meta/recipes-devtools/python/python3-magic_0.4.18.bb
@@ -11,8 +11,8 @@
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "e384c95a47218f66c6501cd6dd45ff59"
-SRC_URI[sha256sum] = "f3765c0f582d2dfc72c15f3b5a82aecfae9498bd29ca840d72f37d7bd38bfcd5"
+SRC_URI[md5sum] = "5edc6caa39cc62641850f6b1b6f284ba"
+SRC_URI[sha256sum] = "b757db2a5289ea3f1ced9e60f072965243ea43a2221430048fd8cacab17be0ce"
 
 RDEPENDS_${PN} += "file"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb
new file mode 100644
index 0000000..8f19984
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb
@@ -0,0 +1,5 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "f1add21b6d179179b3c177c33d18a2186a09cc0d3af41ff5ed3f377360b869f2"
+
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb
new file mode 100644
index 0000000..abb03b9
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb
@@ -0,0 +1,9 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "50163324834edd0c9ce3e4512ded3e221c969086e10fdd5d3fdcaadac5e24a78"
+
+FILES_${PN}-tests = " \
+    ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \
+    ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \
+"
diff --git a/poky/meta/recipes-devtools/python/python3-pyelftools_0.26.bb b/poky/meta/recipes-devtools/python/python3-pyelftools_0.26.bb
new file mode 100644
index 0000000..575dfc4
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pyelftools_0.26.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "pyelftools is a pure-Python library for parsing and analyzing ELF files and DWARF debugging information"
+HOMEPAGE = "https://github.com/eliben/pyelftools"
+SECTION = "devel/python"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc"
+
+SRC_URI[md5sum] = "0ba0de4b47127249c4d632ae299cb0e8"
+SRC_URI[sha256sum] = "86ac6cee19f6c945e8dedf78c6ee74f1112bd14da5a658d8c9d4103aed5756a2"
+
+PYPI_PACKAGE = "pyelftools"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-devtools/python/python3_3.8.2.bb b/poky/meta/recipes-devtools/python/python3_3.8.2.bb
index a4a16fd..0474f07 100644
--- a/poky/meta/recipes-devtools/python/python3_3.8.2.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.8.2.bb
@@ -311,8 +311,8 @@
 
 # manual dependency additions
 RRECOMMENDS_${PN}-core_append_class-nativesdk = " nativesdk-python3-modules"
-RRECOMMENDS_${PN}-crypt_append_class-target = " openssl ca-certificates"
-RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " openssl ca-certificates"
+RRECOMMENDS_${PN}-crypt_append_class-target = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
+RRECOMMENDS_${PN}-crypt_append_class-nativesdk = " ${MLPREFIX}openssl ${MLPREFIX}ca-certificates"
 
 # For historical reasons PN is empty and provided by python3-modules
 FILES_${PN} = ""
@@ -322,7 +322,7 @@
 FILES_${PN}-idle += "${bindir}/idle3 ${bindir}/idle${PYTHON_MAJMIN}"
 
 # provide python-pyvenv from python3-venv
-RPROVIDES_${PN}-venv += "python3-pyvenv"
+RPROVIDES_${PN}-venv += "${MLPREFIX}python3-pyvenv"
 
 # package libpython3
 PACKAGES =+ "libpython3 libpython3-staticdev"
@@ -333,8 +333,8 @@
 # catch all the rest (unsorted)
 PACKAGES += "${PN}-misc"
 RDEPENDS_${PN}-misc += "python3-core python3-email python3-codecs python3-pydoc python3-pickle python3-audio"
-RDEPENDS_${PN}-modules_append_class-target = " python3-misc"
-RDEPENDS_${PN}-modules_append_class-nativesdk = " python3-misc"
+RDEPENDS_${PN}-modules_append_class-target = " ${MLPREFIX}python3-misc"
+RDEPENDS_${PN}-modules_append_class-nativesdk = " ${MLPREFIX}python3-misc"
 FILES_${PN}-misc = "${libdir}/python${PYTHON_MAJMIN} ${libdir}/python${PYTHON_MAJMIN}/lib-dynload"
 
 # catch manpage
@@ -348,5 +348,5 @@
 RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}"
 RDEPENDS_${PN}-dev = ""
 
-RDEPENDS_${PN}-tests_append_class-target = " bash"
-RDEPENDS_${PN}-tests_append_class-nativesdk = " bash"
+RDEPENDS_${PN}-tests_append_class-target = " ${MLPREFIX}bash"
+RDEPENDS_${PN}-tests_append_class-nativesdk = " ${MLPREFIX}bash"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb
index d83ee59..7394385 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu-system-native_4.2.0.bb
@@ -9,7 +9,9 @@
 
 EXTRA_OECONF_append = " --target-list=${@get_qemu_system_target_list(d)}"
 
-PACKAGECONFIG ??= "fdt alsa kvm"
+PACKAGECONFIG ??= "fdt alsa kvm \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \
+"
 
 # Handle distros such as CentOS 5 32-bit that do not have kvm support
 PACKAGECONFIG_remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}"
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index 7a1ccf2..126e7d4 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -37,6 +37,7 @@
 	   file://CVE-2020-7211.patch \
 	   file://0001-qemu-Do-not-include-file-if-not-exists.patch \
            file://CVE-2020-11102.patch \
+	   file://CVE-2020-11869.patch \
 	   "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-11869.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-11869.patch
new file mode 100644
index 0000000..ca7ffed
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-11869.patch
@@ -0,0 +1,97 @@
+From ac2071c3791b67fc7af78b8ceb320c01ca1b5df7 Mon Sep 17 00:00:00 2001
+From: BALATON Zoltan <balaton@eik.bme.hu>
+Date: Mon, 6 Apr 2020 22:34:26 +0200
+Subject: [PATCH] ati-vga: Fix checks in ati_2d_blt() to avoid crash
+
+In some corner cases (that never happen during normal operation but a
+malicious guest could program wrong values) pixman functions were
+called with parameters that result in a crash. Fix this and add more
+checks to disallow such cases.
+
+Reported-by: Ziming Zhang <ezrakiez@gmail.com>
+Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
+Message-id: 20200406204029.19559747D5D@zero.eik.bme.hu
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+
+Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commit;h=ac2071c3791b67fc7af78b8ceb320c01ca1b5df7]
+CVE: CVE-2020-11869
+Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
+---
+ hw/display/ati_2d.c | 37 ++++++++++++++++++++++++++-----------
+ 1 file changed, 26 insertions(+), 11 deletions(-)
+
+diff --git a/hw/display/ati_2d.c b/hw/display/ati_2d.c
+index 42e8231..23a8ae0 100644
+--- a/hw/display/ati_2d.c
++++ b/hw/display/ati_2d.c
+@@ -53,12 +53,20 @@ void ati_2d_blt(ATIVGAState *s)
+             s->vga.vbe_start_addr, surface_data(ds), surface_stride(ds),
+             surface_bits_per_pixel(ds),
+             (s->regs.dp_mix & GMC_ROP3_MASK) >> 16);
+-    int dst_x = (s->regs.dp_cntl & DST_X_LEFT_TO_RIGHT ?
+-                 s->regs.dst_x : s->regs.dst_x + 1 - s->regs.dst_width);
+-    int dst_y = (s->regs.dp_cntl & DST_Y_TOP_TO_BOTTOM ?
+-                 s->regs.dst_y : s->regs.dst_y + 1 - s->regs.dst_height);
++    unsigned dst_x = (s->regs.dp_cntl & DST_X_LEFT_TO_RIGHT ?
++                      s->regs.dst_x : s->regs.dst_x + 1 - s->regs.dst_width);
++    unsigned dst_y = (s->regs.dp_cntl & DST_Y_TOP_TO_BOTTOM ?
++                      s->regs.dst_y : s->regs.dst_y + 1 - s->regs.dst_height);
+     int bpp = ati_bpp_from_datatype(s);
++    if (!bpp) {
++        qemu_log_mask(LOG_GUEST_ERROR, "Invalid bpp\n");
++        return;
++    }
+     int dst_stride = DEFAULT_CNTL ? s->regs.dst_pitch : s->regs.default_pitch;
++    if (!dst_stride) {
++        qemu_log_mask(LOG_GUEST_ERROR, "Zero dest pitch\n");
++        return;
++    }
+     uint8_t *dst_bits = s->vga.vram_ptr + (DEFAULT_CNTL ?
+                         s->regs.dst_offset : s->regs.default_offset);
+ 
+@@ -82,12 +90,16 @@ void ati_2d_blt(ATIVGAState *s)
+     switch (s->regs.dp_mix & GMC_ROP3_MASK) {
+     case ROP3_SRCCOPY:
+     {
+-        int src_x = (s->regs.dp_cntl & DST_X_LEFT_TO_RIGHT ?
+-                     s->regs.src_x : s->regs.src_x + 1 - s->regs.dst_width);
+-        int src_y = (s->regs.dp_cntl & DST_Y_TOP_TO_BOTTOM ?
+-                     s->regs.src_y : s->regs.src_y + 1 - s->regs.dst_height);
++        unsigned src_x = (s->regs.dp_cntl & DST_X_LEFT_TO_RIGHT ?
++                       s->regs.src_x : s->regs.src_x + 1 - s->regs.dst_width);
++        unsigned src_y = (s->regs.dp_cntl & DST_Y_TOP_TO_BOTTOM ?
++                       s->regs.src_y : s->regs.src_y + 1 - s->regs.dst_height);
+         int src_stride = DEFAULT_CNTL ?
+                          s->regs.src_pitch : s->regs.default_pitch;
++        if (!src_stride) {
++            qemu_log_mask(LOG_GUEST_ERROR, "Zero source pitch\n");
++            return;
++        }
+         uint8_t *src_bits = s->vga.vram_ptr + (DEFAULT_CNTL ?
+                             s->regs.src_offset : s->regs.default_offset);
+ 
+@@ -137,8 +149,10 @@ void ati_2d_blt(ATIVGAState *s)
+                                     dst_y * surface_stride(ds),
+                                     s->regs.dst_height * surface_stride(ds));
+         }
+-        s->regs.dst_x += s->regs.dst_width;
+-        s->regs.dst_y += s->regs.dst_height;
++        s->regs.dst_x = (s->regs.dp_cntl & DST_X_LEFT_TO_RIGHT ?
++                         dst_x + s->regs.dst_width : dst_x);
++        s->regs.dst_y = (s->regs.dp_cntl & DST_Y_TOP_TO_BOTTOM ?
++                         dst_y + s->regs.dst_height : dst_y);
+         break;
+     }
+     case ROP3_PATCOPY:
+@@ -179,7 +193,8 @@ void ati_2d_blt(ATIVGAState *s)
+                                     dst_y * surface_stride(ds),
+                                     s->regs.dst_height * surface_stride(ds));
+         }
+-        s->regs.dst_y += s->regs.dst_height;
++        s->regs.dst_y = (s->regs.dp_cntl & DST_Y_TOP_TO_BOTTOM ?
++                         dst_y + s->regs.dst_height : dst_y);
+         break;
+     }
+     default:
+-- 
+1.8.3.1
diff --git a/poky/meta/recipes-devtools/qemu/qemu_4.2.0.bb b/poky/meta/recipes-devtools/qemu/qemu_4.2.0.bb
index f0c1daa..a4018cc 100644
--- a/poky/meta/recipes-devtools/qemu/qemu_4.2.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu_4.2.0.bb
@@ -21,5 +21,8 @@
 PACKAGECONFIG ??= " \
     fdt sdl kvm \
     ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \
 "
-PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm"
+PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '' ,d)} \
+"
diff --git a/poky/meta/recipes-devtools/ruby/ruby_2.7.0.bb b/poky/meta/recipes-devtools/ruby/ruby_2.7.1.bb
similarity index 95%
rename from poky/meta/recipes-devtools/ruby/ruby_2.7.0.bb
rename to poky/meta/recipes-devtools/ruby/ruby_2.7.1.bb
index 7f07080..3dd9fb0 100644
--- a/poky/meta/recipes-devtools/ruby/ruby_2.7.0.bb
+++ b/poky/meta/recipes-devtools/ruby/ruby_2.7.1.bb
@@ -8,8 +8,8 @@
            file://0001-Modify-shebang-of-libexec-y2racc-and-libexec-racc2y.patch \
            "
 
-SRC_URI[md5sum] = "bf4a54e8231176e109a42c546b4725a9"
-SRC_URI[sha256sum] = "8c99aa93b5e2f1bc8437d1bbbefd27b13e7694025331f77245d0c068ef1f8cbe"
+SRC_URI[md5sum] = "debb9c325bf65021214451660f46e909"
+SRC_URI[sha256sum] = "d418483bdd0000576c1370571121a6eb24582116db0b7bb2005e90e250eae418"
 
 PACKAGECONFIG ??= ""
 PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
diff --git a/poky/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch b/poky/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch
new file mode 100644
index 0000000..fc88186
--- /dev/null
+++ b/poky/meta/recipes-devtools/squashfs-tools/files/0001-squashfs-tools-fix-build-failure-against-gcc-10.patch
@@ -0,0 +1,45 @@
+From 94e1911ca24726b7cb3efe2f8b9eb7a784757e18 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sun, 26 Jan 2020 18:35:13 +0000
+Subject: [PATCH] squashfs-tools: fix build failure against gcc-10
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On gcc-10 (and gcc-9 -fno-common) build fails as:
+
+```
+cc ... -o mksquashfs
+ld: read_fs.o:(.bss+0x0):
+  multiple definition of `fwriter_buffer'; mksquashfs.o:(.bss+0x400c90): first defined here
+ld: read_fs.o:(.bss+0x8):
+  multiple definition of `bwriter_buffer'; mksquashfs.o:(.bss+0x400c98): first defined here
+```
+
+gcc-10 will change the default from -fcommon to fno-common:
+https://gcc.gnu.org/PR85678.
+
+The error also happens if CFLAGS=-fno-common passed explicitly.
+
+Reported-by: Toralf Förster
+Bug: https://bugs.gentoo.org/706456
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
+Upstream-Status: Backport [https://github.com/plougher/squashfs-tools/commit/fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5]
+---
+ squashfs-tools/mksquashfs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h
+index 1beefef..b650306 100644
+--- a/squashfs-tools/mksquashfs.h
++++ b/squashfs-tools/mksquashfs.h
+@@ -143,7 +143,7 @@ struct append_file {
+ #endif
+ 
+ extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
+-struct cache *bwriter_buffer, *fwriter_buffer;
++extern struct cache *bwriter_buffer, *fwriter_buffer;
+ extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
+ 	*to_frag, *locked_fragment, *to_process_frag;
+ extern struct append_file **file_mapping;
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
index 9bcf026..b06951d 100644
--- a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
+++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
@@ -8,6 +8,7 @@
 PV = "4.4"
 SRCREV = "52eb4c279cd283ed9802dd1ceb686560b22ffb67"
 SRC_URI = "git://github.com/plougher/squashfs-tools.git;protocol=https \
+           file://0001-squashfs-tools-fix-build-failure-against-gcc-10.patch;striplevel=2 \
 "
 
 S = "${WORKDIR}/git/squashfs-tools"
diff --git a/poky/meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch b/poky/meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch
new file mode 100644
index 0000000..44cb153
--- /dev/null
+++ b/poky/meta/recipes-devtools/syslinux/syslinux/0010-Workaround-multiple-definition-of-symbol-errors.patch
@@ -0,0 +1,97 @@
+From 951928f2cad5682c2844e6bd0f7201236c5d9b66 Mon Sep 17 00:00:00 2001
+From: Merlin Mathesius <mmathesi@redhat.com>
+Date: Wed, 13 May 2020 08:02:27 -0500
+Subject: [PATCH] Workaround multiple definition of symbol errors
+
+Lifted from Fedora https://src.fedoraproject.org/rpms/syslinux/blob/master/f/0005-Workaround-multiple-definition-of-symbol-errors.patch
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ com32/cmenu/Makefile           | 2 +-
+ com32/elflink/ldlinux/Makefile | 2 +-
+ com32/gpllib/Makefile          | 2 +-
+ com32/hdt/Makefile             | 2 +-
+ core/Makefile                  | 2 +-
+ dos/Makefile                   | 2 +-
+ efi/Makefile                   | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+
+--- a/com32/cmenu/Makefile
++++ b/com32/cmenu/Makefile
+@@ -49,7 +49,7 @@ makeoutputdirs:
+ 	@mkdir -p $(OBJ)/libmenu
+ 
+ libmenu/libmenu.elf: $(LIBMENU)
+-	$(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) \
++	$(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) \
+ 		-o $@ $^
+ 
+ tidy dist:
+--- a/com32/elflink/ldlinux/Makefile
++++ b/com32/elflink/ldlinux/Makefile
+@@ -33,7 +33,7 @@ endif
+ all: $(BTARGET) ldlinux_lnx.a
+ 
+ ldlinux.elf : $(OBJS)
+-	$(LD) $(LDFLAGS) -soname $(SONAME) -o $@ $^ $(LIBS)
++	$(LD) $(LDFLAGS) -z muldefs -soname $(SONAME) -o $@ $^ $(LIBS)
+ 
+ LNXCFLAGS += -D__export='__attribute__((visibility("default")))'
+ LNXLIBOBJS = get_key.lo
+--- a/com32/gpllib/Makefile
++++ b/com32/gpllib/Makefile
+@@ -24,7 +24,7 @@ makeoutputdirs:
+ 		$(addprefix $(OBJ),$(sort $(dir $(LIBOBJS)))),$(b))
+ 
+ libgpl.elf : $(LIBOBJS)
+-	$(LD) -shared $(LDFLAGS) -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^
++	$(LD) -shared $(LDFLAGS) -z muldefs -soname $(patsubst %.elf,%.c32,$(@F)) -o $@ $^
+ 
+ tidy dist clean:
+ 	find . \( -name \*.o -o -name .\*.d -o -name \*.tmp \) -print0 | \
+--- a/com32/hdt/Makefile
++++ b/com32/hdt/Makefile
+@@ -52,7 +52,7 @@ QEMU			?= qemu-kvm
+ all: $(MODULES) $(TESTFILES)
+ 
+ hdt.elf : $(OBJS) $(LIBS) $(C_LIBS)
+-	$(LD) $(LDFLAGS) -o $@ $^
++	$(LD) $(LDFLAGS) -z muldefs -o $@ $^
+ 
+ memtest:
+ 	-[ ! -f $(FLOPPY_DIR)/$(MEMTEST) ] && $(WGET) $(MEMTEST_URL) -O $(FLOPPY_DIR)/$(MEMTEST)
+--- a/core/Makefile
++++ b/core/Makefile
+@@ -156,7 +156,7 @@ LDSCRIPT = $(SRC)/$(ARCH)/syslinux.ld
+ NASM_ELF = elf
+ 
+ %.elf: %.o $(LIBDEP) $(LDSCRIPT) $(AUXLIBS)
+-	$(LD) $(LDFLAGS) -pie -Bsymbolic \
++	$(LD) $(LDFLAGS) -z muldefs -pie -Bsymbolic \
+ 		-T $(LDSCRIPT) \
+ 		--unresolved-symbols=report-all \
+ 		-E --hash-style=gnu -M -o $@ $< \
+--- a/dos/Makefile
++++ b/dos/Makefile
+@@ -19,7 +19,7 @@ include $(MAKEDIR)/embedded.mk
+ CFLAGS	+= -D__MSDOS__ -mregparm=3 -DREGPARM=3
+ # CFLAGS  += -DDEBUG
+ 
+-LDFLAGS	 = -T $(SRC)/dosexe.ld
++LDFLAGS	 = -T $(SRC)/dosexe.ld -z muldefs
+ OPTFLAGS = -g
+ INCLUDES = -include code16.h -nostdinc -iwithprefix include \
+ 	   -I$(SRC) -I$(SRC)/.. -I$(SRC)/../libfat \
+--- a/efi/Makefile
++++ b/efi/Makefile
+@@ -71,7 +71,7 @@ $(OBJS): | $(OBJ)/$(ARCH)
+ BTARGET  = syslinux.efi
+ 
+ syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS)
+-	$(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi
++	$(LD) $(LDFLAGS) -z muldefs --strip-debug -o $@ $^ -lgnuefi -lefi
+ 
+ # We need to rename the .hash section because the EFI firmware
+ # linker really doesn't like it.
diff --git a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
index e9dbefb..3e7eef3 100644
--- a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
+++ b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
@@ -20,6 +20,7 @@
            file://0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch \
            file://0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch \
            file://0009-linux-syslinux-implement-install_bootblock.patch \
+           file://0010-Workaround-multiple-definition-of-symbol-errors.patch \
            file://0001-install-don-t-install-obsolete-file-com32.ld.patch \
            "
 
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch b/poky/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch
new file mode 100644
index 0000000..9afa7f6
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch
@@ -0,0 +1,144 @@
+From abbc0761fa0349d49b10dc8c0f10af6bc0578c40 Mon Sep 17 00:00:00 2001
+From: Mark Wielaard <mark@klomp.org>
+Date: Tue, 12 May 2020 16:58:36 +0200
+Subject: [PATCH 1/2] gcc10 arm64 build needs __getauxval for linking with
+ libgcc
+
+Provide a new library libgcc-sup-<platform>.a that contains symbols
+needed by libgcc. This needs to be linked after -lgcc to provide
+any symbols missing which would normally be provided by glibc.
+At the moment this only provides __getauxval on arm64 linux.
+
+https://bugs.kde.org/show_bug.cgi?id=421321
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [https://sourceware.org/git/?p=valgrind.git;a=commit;h=abbc0761fa0349d49b10dc8c0f10af6bc0578c40]
+
+---
+ Makefile.tool.am         |  3 +-
+ coregrind/Makefile.am    | 26 +++++++++++++++++
+ coregrind/m_libgcc_sup.c | 61 ++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 89 insertions(+), 1 deletion(-)
+ create mode 100644 coregrind/m_libgcc_sup.c
+
+diff --git a/Makefile.tool.am b/Makefile.tool.am
+index cc2fa0ee6..2bf90de5d 100644
+--- a/Makefile.tool.am
++++ b/Makefile.tool.am
+@@ -17,7 +17,8 @@ TOOL_DEPENDENCIES_@VGCONF_PLATFORM_SEC_CAPS@ = \
+ endif
+ 
+ 
+-TOOL_LDADD_COMMON = -lgcc
++TOOL_LDADD_COMMON = -lgcc \
++	$(top_builddir)/coregrind/libgcc-sup-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
+ TOOL_LDADD_@VGCONF_PLATFORM_PRI_CAPS@ = \
+ 	$(TOOL_DEPENDENCIES_@VGCONF_PLATFORM_PRI_CAPS@) $(TOOL_LDADD_COMMON)
+ if VGCONF_HAVE_PLATFORM_SEC
+diff --git a/coregrind/Makefile.am b/coregrind/Makefile.am
+index 6a1a925fb..1753fb633 100644
+--- a/coregrind/Makefile.am
++++ b/coregrind/Makefile.am
+@@ -542,6 +542,32 @@ libcoregrind_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_DEPENDENCIES = \
+     libnolto_coregrind-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
+ endif
+ 
++#----------------------------------------------------------------------------
++# libgcc-sup-<platform>.a
++# Special supplemental library for functions normally supplied by glibc
++# used by libgcc.
++#----------------------------------------------------------------------------
++
++pkglib_LIBRARIES  += libgcc-sup-@VGCONF_ARCH_PRI@-@VGCONF_OS@.a
++if VGCONF_HAVE_PLATFORM_SEC
++pkglib_LIBRARIES += libgcc-sup-@VGCONF_ARCH_SEC@-@VGCONF_OS@.a
++endif
++
++libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_SOURCES = \
++	m_libgcc_sup.c
++libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CPPFLAGS = \
++	$(AM_CPPFLAGS_@VGCONF_PLATFORM_PRI_CAPS@)
++libgcc_sup_@VGCONF_ARCH_PRI@_@VGCONF_OS@_a_CFLAGS = \
++	$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_PRI_CAPS@)
++if VGCONF_HAVE_PLATFORM_SEC
++libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_SOURCES = \
++	m_libgcc_sup.c
++libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CPPFLAGS = \
++	$(AM_CPPFLAGS_@VGCONF_PLATFORM_SEC_CAPS@)
++libgcc_sup_@VGCONF_ARCH_SEC@_@VGCONF_OS@_a_CFLAGS = \
++	$(AM_CFLAGS_PSO_@VGCONF_PLATFORM_SEC_CAPS@)
++endif
++
+ #----------------------------------------------------------------------------
+ # libreplacemalloc_toolpreload-<platform>.a
+ #----------------------------------------------------------------------------
+diff --git a/coregrind/m_libgcc_sup.c b/coregrind/m_libgcc_sup.c
+new file mode 100644
+index 000000000..e29325459
+--- /dev/null
++++ b/coregrind/m_libgcc_sup.c
+@@ -0,0 +1,61 @@
++/* -*- mode: C; c-basic-offset: 3; -*- */
++
++/*--------------------------------------------------------------------*/
++/*--- Supplemental functions for libgcc normally provided by glibc ---*/
++/*--------------------------------------------------------------------*/
++
++/*
++   This file is part of Valgrind, a dynamic binary instrumentation
++   framework.
++
++   Copyright (C) 2020 Mark Wielaard
++      mark@klomp.org
++
++   This program is free software; you can redistribute it and/or
++   modify it under the terms of the GNU General Public License as
++   published by the Free Software Foundation; either version 2 of the
++   License, or (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful, but
++   WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with this program; if not, see <http://www.gnu.org/licenses/>.
++
++   The GNU General Public License is contained in the file COPYING.
++*/
++
++#include "config.h"
++#include "pub_core_basics.h"
++#include "pub_core_clientstate.h"
++
++/*====================================================================*/
++/*=== arm64 libgcc support function for init_have_lse_atomics      ===*/
++/*====================================================================*/
++
++#if defined(VGP_arm64_linux)
++struct auxv
++{
++   Word a_type;
++   union {
++      void *a_ptr;
++      Word a_val;
++   } u;
++};
++#define AT_NULL 0
++
++unsigned long int __getauxval (unsigned long int type);
++unsigned long int __getauxval (unsigned long int type)
++{
++   struct auxv *p;
++   for (p = (struct auxv *) VG_(client_auxv);
++        p != NULL && p->a_type != AT_NULL;
++        p++)
++      if (p->a_type == type)
++         return p->u.a_val;
++
++   return 0;
++}
++#endif
+-- 
+2.26.2
+
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb b/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
index 7954437..a764d18 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
+++ b/poky/meta/recipes-devtools/valgrind/valgrind_3.15.0.bb
@@ -42,6 +42,7 @@
            file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \
            file://0001-tests-Make-pthread_detatch-call-portable-across-plat.patch \
            file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \
+           file://0001-gcc10-arm64-build-needs-__getauxval-for-linking-with.patch \
            "
 SRC_URI[md5sum] = "46e5fbdcbc3502a5976a317a0860a975"
 SRC_URI[sha256sum] = "417c7a9da8f60dd05698b3a7bc6002e4ef996f14c13f0ff96679a16873e78ab1"
diff --git a/poky/meta/recipes-extended/acpica/acpica_20200214.bb b/poky/meta/recipes-extended/acpica/acpica_20200430.bb
similarity index 91%
rename from poky/meta/recipes-extended/acpica/acpica_20200214.bb
rename to poky/meta/recipes-extended/acpica/acpica_20200430.bb
index cfa9fec..478be7f 100644
--- a/poky/meta/recipes-extended/acpica/acpica_20200214.bb
+++ b/poky/meta/recipes-extended/acpica/acpica_20200430.bb
@@ -17,8 +17,8 @@
 DEPENDS = "m4-native flex-native bison-native"
 
 SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
-SRC_URI[md5sum] = "3505ba6170b77db1399eae0e2a959113"
-SRC_URI[sha256sum] = "e77ab9f8557ca104f6e8f49efaa8eead29f78ca11cadfc8989012469ecc0738e"
+SRC_URI[sha256sum] = "fb807f1dec31664f972af37d213abf72987afe33abf68c83051e298da35d297c"
+
 UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
 
 S = "${WORKDIR}/acpica-unix-${PV}"
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript/i686 b/poky/meta/recipes-extended/ghostscript/ghostscript/i686
deleted file mode 120000
index 87aaca5..0000000
--- a/poky/meta/recipes-extended/ghostscript/ghostscript/i686
+++ /dev/null
@@ -1 +0,0 @@
-i586
\ No newline at end of file
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch b/poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
index 02c2fef..f2fc8ee 100644
--- a/poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-Add-more-musl-exclusions.patch
@@ -1,35 +1,22 @@
-From 788c47ceef7f115ab7f7aa17f918e58795f4e6c7 Mon Sep 17 00:00:00 2001
+From ad8e73306cb8293f7d32841e1599fd9048801f1f Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 20 Dec 2019 13:06:05 +0100
 Subject: [PATCH] Add more musl exclusions
 
 Upstream-Status: Pending
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+[ pvorel: rebase for 20200515: enable accept4_01 ]
 [ pvorel: rebase for 20200120: enable fanotify13, fanotify15, setxattr03 ]
 Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
 ---
- testcases/kernel/syscalls/accept4/Makefile      | 4 ++++
  testcases/kernel/syscalls/timer_create/Makefile | 4 ++++
- 2 files changed, 8 insertions(+)
+ 1 file changed, 4 insertions(+)
 
-diff --git a/testcases/kernel/syscalls/accept4/Makefile b/testcases/kernel/syscalls/accept4/Makefile
-index 504042e11..94db06266 100644
---- a/testcases/kernel/syscalls/accept4/Makefile
-+++ b/testcases/kernel/syscalls/accept4/Makefile
-@@ -20,4 +20,8 @@ top_srcdir		?= ../../../..
- 
- include $(top_srcdir)/include/mk/testcases.mk
- 
-+ifeq ($(LIBC),musl)
-+FILTER_OUT_MAKE_TARGETS        := accept4_01
-+endif
-+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
 diff --git a/testcases/kernel/syscalls/timer_create/Makefile b/testcases/kernel/syscalls/timer_create/Makefile
-index 8de247075..eb240f432 100644
+index ada241fe1..d454b01e7 100644
 --- a/testcases/kernel/syscalls/timer_create/Makefile
 +++ b/testcases/kernel/syscalls/timer_create/Makefile
-@@ -20,6 +20,10 @@ top_srcdir		?= ../../../..
+@@ -5,6 +5,10 @@ top_srcdir		?= ../../../..
  
  include $(top_srcdir)/include/mk/testcases.mk
  
@@ -40,5 +27,6 @@
  CPPFLAGS		+= -D_GNU_SOURCE -I$(abs_srcdir)/../include
  
  LDLIBS			+= -lpthread -lrt
---
-2.25.1
+-- 
+2.26.2
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch b/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch
index b1a9995..29b2bf7 100644
--- a/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-build-Add-option-to-select-libc-implementation.patch
@@ -1,15 +1,16 @@
-From be453d1be826b862d47e08663fd69eea9dd62730 Mon Sep 17 00:00:00 2001
+From 74958c3e341de713b596c8cfd35b2391d6c7bc09 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 7 Jan 2016 18:19:03 +0000
-Subject: [PATCH 1/6] build: Add option to select libc implementation
+Subject: [PATCH] build: Add option to select libc implementation
 
 There are more than glibc for C library implementation available on
 linux now a days, uclibc cloaked like glibc but musl e.g. is very
-different and does not implement all GNU extentions
+different and does not implement all GNU extensions.
 
 Disable tests specifically not building _yet_ on musl based systems
 
-Upstream-Status: Pending
+Upstream-Status: Pending (pvorel: this is not going to be fixed, instead
+each test needs to be fixed)
 
 rt_tgsigqueueinfo fails with:
 rt_tgsigqueueinfo01.c: In function 'sigusr1_handler':
@@ -19,18 +20,17 @@
       |                      __si_fields
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+[ pvorel: rebase for 20200515: enable pty, ioctl ]
 [ pvorel: rebase for 20200120: enable mallopt, profil, rpc016,
 rt_sigsuspend, sbrk_mutex, setdomainname, sethostname, sigsuspend,
 testpi-3, testpi-5, testpi-6, ustat; move rt_tgsigqueueinfo
 from 0006-rt_tgsigqueueinfo-disable-test-on-musl.patch ]
 Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
-Signed-off-by: Petr Vorel <pvorel@suse.cz>
 ---
  Makefile                           | 5 +++++
- testcases/kernel/Makefile          | 5 ++++-
  testcases/kernel/sched/Makefile    | 4 +++-
  testcases/kernel/syscalls/Makefile | 4 ++++
- 4 files changed, 16 insertions(+), 2 deletions(-)
+ 3 files changed, 12 insertions(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
 index 768ca4606..e9d679a71 100644
@@ -48,28 +48,6 @@
  # CLEAN_TARGETS:	Targets which exist solely in clean.
  # COMMON_TARGETS:	Targets which exist in all, clean, and install.
  # INSTALL_TARGETS:	Targets which exist in clean and install (contains
-diff --git a/testcases/kernel/Makefile b/testcases/kernel/Makefile
-index 3319b3163..94ea362c8 100644
---- a/testcases/kernel/Makefile
-+++ b/testcases/kernel/Makefile
-@@ -49,13 +49,16 @@ SUBDIRS			+= connectors \
- 			   logging \
- 			   mem \
- 			   numa \
--			   pty \
- 			   sched \
- 			   security \
- 			   sound \
- 			   tracing \
- 			   uevents \
- 
-+ifneq ($(LIBC),musl)
-+SUBDIRS			+= pty
-+endif
-+
- ifeq ($(WITH_POWER_MANAGEMENT_TESTSUITE),yes)
- SUBDIRS			+= power_management
- endif
 diff --git a/testcases/kernel/sched/Makefile b/testcases/kernel/sched/Makefile
 index 6a57d79ee..74bb93370 100644
 --- a/testcases/kernel/sched/Makefile
@@ -84,19 +62,20 @@
 +endif
  include $(top_srcdir)/include/mk/generic_trunk_target.mk
 diff --git a/testcases/kernel/syscalls/Makefile b/testcases/kernel/syscalls/Makefile
-index 45a00cf7d..af5a591a0 100644
+index c6dc8d9e7..aa50761ea 100644
 --- a/testcases/kernel/syscalls/Makefile
 +++ b/testcases/kernel/syscalls/Makefile
-@@ -29,6 +29,10 @@ FILTER_OUT_DIRS	+= capget capset chmod chown clone fork getcontext llseek \
+@@ -15,6 +15,10 @@ FILTER_OUT_DIRS	+= capget capset chmod chown clone fork getcontext llseek \
  		   mincore mprotect nftw profil remap_file_pages sbrk
  endif
  
 +ifeq ($(LIBC),musl)
-+FILTER_OUT_DIRS	+= confstr fmtmsg getcontext ioctl rt_tgsigqueueinfo
++FILTER_OUT_DIRS	+= confstr fmtmsg getcontext rt_tgsigqueueinfo
 +endif
 +
  ifeq ($(UCLIBC),1)
  FILTER_OUT_DIRS	+= profil
  endif
---
-2.25.1
+-- 
+2.26.2
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-ptrace01-Fix-missing-format-string.patch b/poky/meta/recipes-extended/ltp/ltp/0001-ptrace01-Fix-missing-format-string.patch
new file mode 100644
index 0000000..27b890e
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-ptrace01-Fix-missing-format-string.patch
@@ -0,0 +1,33 @@
+From adb9587466a493fdd9d4410f1b8b130ebca06daa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 May 2020 22:21:23 -0700
+Subject: [PATCH] ptrace01: Fix missing format string
+
+Fixes
+| ptrace01.c:89:2: error: format string is not a string literal
+(potentially insecure) [-Werror,-Wformat-security]
+|         tst_res(TINFO, tc->message);
+|         ^              ~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [58424835952641f4fd60c0ae3ab6c64decca3f8a]
+---
+ testcases/kernel/syscalls/ptrace/ptrace01.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/testcases/kernel/syscalls/ptrace/ptrace01.c b/testcases/kernel/syscalls/ptrace/ptrace01.c
+index 87a99e4150..9071bbabaf 100644
+--- a/testcases/kernel/syscalls/ptrace/ptrace01.c
++++ b/testcases/kernel/syscalls/ptrace/ptrace01.c
+@@ -86,7 +86,7 @@ static void run(unsigned int i)
+ 
+ 	got_signal = 0;
+ 
+-	tst_res(TINFO, tc->message);
++	tst_res(TINFO, "%s", tc->message);
+ 
+ 	if (tc->handler == 1) {
+ 		parent_act.sa_handler = parent_handler;
+-- 
+2.26.2
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch
deleted file mode 100644
index ac8f08e..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 89c5841bd148a7ae70c65f4a1ca5996b7f0cddfa Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 19 Feb 2020 22:52:04 -0800
-Subject: [PATCH] syscalls: Check for time64 unsafe syscalls before using them
-
-musl is using 64bit time_t now on 32bit architectures and these syscalls
-no longer exist, therefore its better to check for them being available
-before using them
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Reviewed-by: Yang Xu <xuyang2018.jy@cn.fujitsu.com>
-Reviewed-by: Petr Vorel <pvorel@suse.cz>
-Signed-off-by: Petr Vorel <pvorel@suse.cz>
-Upstream-Status: accepted as 5b57ae2913e2d2d167cbd3822784b4c4ba336812
----
- lib/tst_clocks.c                                 | 16 ++++++----------
- .../syscalls/gettimeofday/gettimeofday01.c       |  6 ++----
- .../syscalls/gettimeofday/gettimeofday02.c       |  8 +++-----
- 3 files changed, 11 insertions(+), 19 deletions(-)
-
-diff --git a/lib/tst_clocks.c b/lib/tst_clocks.c
-index 5195da38f..fa2f1cb84 100644
---- a/lib/tst_clocks.c
-+++ b/lib/tst_clocks.c
-@@ -3,28 +3,24 @@
-  * Copyright (c) 2017 Cyril Hrubis <chrubis@suse.cz>
-  */
-
--/*
-- * clock_gettime() and clock_getres() functions
-- */
--
--#define _GNU_SOURCE
--#include <unistd.h>
- #include <time.h>
--#include <sys/syscall.h>
-
-+#define TST_NO_DEFAULT_MAIN
-+#include "tst_test.h"
- #include "tst_clocks.h"
-+#include "lapi/syscalls.h"
- 
- int tst_clock_getres(clockid_t clk_id, struct timespec *res)
- {
--	return syscall(SYS_clock_getres, clk_id, res);
-+	return tst_syscall(__NR_clock_getres, clk_id, res);
- }
- 
- int tst_clock_gettime(clockid_t clk_id, struct timespec *ts)
- {
--	return syscall(SYS_clock_gettime, clk_id, ts);
-+	return tst_syscall(__NR_clock_gettime, clk_id, ts);
- }
- 
- int tst_clock_settime(clockid_t clk_id, struct timespec *ts)
- {
--	return syscall(SYS_clock_settime, clk_id, ts);
-+	return tst_syscall(__NR_clock_settime, clk_id, ts);
- }
-diff --git a/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c b/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
-index 583d8f7b9..08ea1673a 100644
---- a/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
-+++ b/testcases/kernel/syscalls/gettimeofday/gettimeofday01.c
-@@ -38,10 +38,8 @@
- #include <sys/time.h>
- #include <errno.h>
- #include "test.h"
--#include <sys/syscall.h>
- #include <unistd.h>
--
--#define gettimeofday(a,b)  syscall(__NR_gettimeofday,a,b)
-+#include "lapi/syscalls.h"
- 
- char *TCID = "gettimeofday01";
- int TST_TOTAL = 1;
-@@ -63,7 +61,7 @@ int main(int ac, char **av)
- 	for (lc = 0; TEST_LOOPING(lc); lc++) {
- 		tst_count = 0;
- 
--		TEST(gettimeofday((void *)-1, (void *)-1));
-+		TEST(ltp_syscall(__NR_gettimeofday, (void *)-1, (void *)-1));
- 
- 		/* gettimeofday returns an int, so we need to turn the long
- 		 * TEST_RETURN into an int to test with */
-diff --git a/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c b/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
-index 1d60f448e..5170ad2f7 100644
---- a/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
-+++ b/testcases/kernel/syscalls/gettimeofday/gettimeofday02.c
-@@ -16,14 +16,12 @@
- #include <stdint.h>
- #include <sys/time.h>
- #include <stdlib.h>
--#include <sys/syscall.h>
- #include <unistd.h>
- #include <time.h>
- #include <errno.h>
- 
- #include "tst_test.h"
--
--#define gettimeofday(a,b)  syscall(__NR_gettimeofday,a,b)
-+#include "lapi/syscalls.h"
- 
- static volatile sig_atomic_t done;
- static char *str_rtime;
-@@ -48,13 +46,13 @@ static void verify_gettimeofday(void)
- 
- 	alarm(rtime);
- 
--	if (gettimeofday(&tv1, NULL)) {
-+	if (tst_syscall(__NR_gettimeofday, &tv1, NULL)) {
- 		tst_res(TBROK | TERRNO, "gettimeofday() failed");
- 		return;
- 	}
- 
- 	while (!done) {
--		if (gettimeofday(&tv2, NULL)) {
-+		if (tst_syscall(__NR_gettimeofday, &tv2, NULL)) {
- 			tst_res(TBROK | TERRNO, "gettimeofday() failed");
- 			return;
- 		}
---
-2.25.1
diff --git a/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch b/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch
deleted file mode 100644
index df3e883..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 1ce47a6ed811fd78ed04ea2f82e6321c6bca57b6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 7 Jan 2016 19:40:08 +0000
-Subject: [PATCH] Check if __GLIBC_PREREQ is defined before using it
-
-__GLIBC_PREREQ is specific to glibc so it should be checked if it is
-defined or not.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
----
- testcases/kernel/syscalls/accept4/accept4_01.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c
-index 29e18f27d..07444a46f 100644
---- a/testcases/kernel/syscalls/accept4/accept4_01.c
-+++ b/testcases/kernel/syscalls/accept4/accept4_01.c
-@@ -38,6 +38,7 @@
- static struct sockaddr_in *conn_addr, *accept_addr;
- static int listening_fd;
- 
-+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- #if !(__GLIBC_PREREQ(2, 10))
- static int
- accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)
-@@ -56,6 +57,7 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)
- #endif
- }
- #endif
-+#endif
- 
- static int create_listening_socket(void)
- {
-@@ -114,12 +116,17 @@ static void verify_accept4(unsigned int nr)
- 	SAFE_CONNECT(connfd, (struct sockaddr *)conn_addr, sizeof(*conn_addr));
- 	addrlen = sizeof(*accept_addr);
- 
-+#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
- #if !(__GLIBC_PREREQ(2, 10))
- 	TEST(accept4_01(listening_fd, (struct sockaddr *)accept_addr, &addrlen,
- 				tcase->cloexec | tcase->nonblock));
- #else
- 	TEST(accept4(listening_fd, (struct sockaddr *)accept_addr, &addrlen,
- 				tcase->cloexec | tcase->nonblock));
-+#endif
-+#else
-+	TEST(accept4(listening_fd, (struct sockaddr *)&claddr, &addrlen,
-+				tcase->cloexec | tcase->nonblock));
- #endif
- 	if (TST_RET == -1) {
- 		if (TST_ERR == ENOSYS)
diff --git a/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch b/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch
index 5622a64..e93886c 100644
--- a/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch
+++ b/poky/meta/recipes-extended/ltp/ltp/0004-guard-mallocopt-with-__GLIBC__.patch
@@ -5,9 +5,9 @@
 
 mallocopt is not available on non glibc implementations
 
-Upstream-Status: Pending
-
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
+[ Upstream-Status: accepted in 967612c454aea66770b64f69287671037fe895b3 ]
 ---
  utils/benchmark/ebizzy-0.3/ebizzy.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch b/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch
deleted file mode 100644
index 350091a..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 4b7db094d6fc5659001ae8dc17078bb65d46b9c9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Fri, 13 May 2016 11:11:28 -0500
-Subject: [PATCH] acl: Security fix on string printf
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes build error when compiled with -Werror=format-security:
-
-acl1.c: In function ‘test_acl_default’:
-acl1.c:305:2: error: format not a string literal and no format arguments [-Werror=format-security]
-  305 |  printf(cmd);
-
-Patch taken from openembedded-core,
-original bug report: https://bugzilla.yoctoproject.org/9548
-
-[YOCTO #9548]
-
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
-Signed-off-by: Petr Vorel <pvorel@suse.cz>
-Upstream-Status: accepted in 4b7db094d6fc5659001ae8dc17078bb65d46b9c9
----
- testcases/network/nfsv4/acl/acl1.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/testcases/network/nfsv4/acl/acl1.c b/testcases/network/nfsv4/acl/acl1.c
-index aae9484e5..ad778cd33 100644
---- a/testcases/network/nfsv4/acl/acl1.c
-+++ b/testcases/network/nfsv4/acl/acl1.c
-@@ -302,7 +302,7 @@ void test_acl_default(char *dir, acl_t acl)
- 	char *cmd = malloc(256);
- 
- 	strcpy(cmd, "chmod 7777 ");
--	printf(cmd);
-+	printf(cmd, NULL);
- 	strcat(cmd, dir);
- 	system(cmd);
- 	acl2 = acl_get_file(path, ACL_TYPE_ACCESS);
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-extended/ltp/ltp_20200120.bb b/poky/meta/recipes-extended/ltp/ltp_20200515.bb
similarity index 91%
rename from poky/meta/recipes-extended/ltp/ltp_20200120.bb
rename to poky/meta/recipes-extended/ltp/ltp_20200515.bb
index deac391..67c7590 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20200120.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20200515.bb
@@ -27,21 +27,19 @@
 
 CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__"
 CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__"
-SRCREV = "4079aaf264d0e9ead042b59d1c5f4e643620d0d5"
+SRCREV = "0d79a93e6ca44d9bc95973faea6bcd7b0c6d1f43"
 
 SRC_URI = "git://github.com/linux-test-project/ltp.git \
            file://0001-build-Add-option-to-select-libc-implementation.patch \
-           file://0003-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \
            file://0004-guard-mallocopt-with-__GLIBC__.patch \
            file://0007-Fix-test_proc_kill-hanging.patch \
-           file://0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \
            file://0001-Add-more-musl-exclusions.patch \
-           file://0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch \
+           file://0001-ptrace01-Fix-missing-format-string.patch \
            "
 
 S = "${WORKDIR}/git"
 
-inherit autotools-brokensep
+inherit autotools-brokensep pkgconfig
 
 TARGET_CC_ARCH += "${LDFLAGS}"
 
@@ -74,23 +72,32 @@
          -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
          -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
          -e 's@[^ ]*--sysroot=[^ "]*@@g' 
+
+    # The controllers memcg_stree test seems to cause us hangs and takes 900s
+    # (maybe we expect more regular output?), anyhow, skip it
+    sed -e '/^memcg_stress/d' -i ${D}${prefix}/runtest/controllers
 }
 
 RDEPENDS_${PN} = "\
     attr \
     bash \
+    bc \
+    coreutils \
     cpio \
     cronie \
     curl \
+    e2fsprogs \
     e2fsprogs-mke2fs \
     expect \
     file \
     gawk \
+    gdb \
     gzip \
     iproute2 \
     ldd \
     libaio \
     logrotate \
+    net-tools \
     perl \
     python3-core \
     procps \
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index 15a8e6d..16c2f9f 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -32,21 +32,23 @@
     namemap["packagegroup-core-full-cmdline-sys-services"] = "packagegroup-core-sys-services"
 
     packages = d.getVar("PACKAGES").split()
+    mlprefix = d.getVar("MLPREFIX")
     for pkg in packages:
+        pkg2 = pkg[len(mlprefix):]
         if pkg.endswith('-dev'):
-            mapped = namemap.get(pkg[:-4], None)
+            mapped = namemap.get(pkg2[:-4], None)
             if mapped:
                 mapped += '-dev'
         elif pkg.endswith('-dbg'):
-            mapped = namemap.get(pkg[:-4], None)
+            mapped = namemap.get(pkg2[:-4], None)
             if mapped:
                 mapped += '-dbg'
         else:
-            mapped = namemap.get(pkg, None)
+            mapped = namemap.get(pkg2, None)
 
         if mapped:
             oldtaskname = mapped.replace("packagegroup-core", "task-core")
-            mapstr = " %s %s" % (mapped, oldtaskname)
+            mapstr = " %s%s %s%s" % (mlprefix, mapped, mlprefix, oldtaskname)
             d.appendVar("RPROVIDES_%s" % pkg, mapstr)
             d.appendVar("RREPLACES_%s" % pkg, mapstr)
             d.appendVar("RCONFLICTS_%s" % pkg, mapstr)
diff --git a/poky/meta/recipes-extended/sysstat/sysstat_12.2.1.bb b/poky/meta/recipes-extended/sysstat/sysstat_12.2.1.bb
deleted file mode 100644
index 2a90f89..0000000
--- a/poky/meta/recipes-extended/sysstat/sysstat_12.2.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require sysstat.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
-
-SRC_URI += "file://0001-configure.in-remove-check-for-chkconfig.patch"
-
-SRC_URI[md5sum] = "9dfff5fac24e35bd92fb7896debf2ffb"
-SRC_URI[sha256sum] = "8edb0e19b514ac560a098a02933a4735b881296d61014db89bf80f05dd7a4732"
diff --git a/poky/meta/recipes-extended/sysstat/sysstat_12.2.2.bb b/poky/meta/recipes-extended/sysstat/sysstat_12.2.2.bb
new file mode 100644
index 0000000..333d102
--- /dev/null
+++ b/poky/meta/recipes-extended/sysstat/sysstat_12.2.2.bb
@@ -0,0 +1,8 @@
+require sysstat.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a23a74b3f4caf9616230789d94217acb"
+
+SRC_URI += "file://0001-configure.in-remove-check-for-chkconfig.patch"
+
+SRC_URI[md5sum] = "1073fdf7bba58483a467a8a0681beeda"
+SRC_URI[sha256sum] = "78388b64acec81378b962e66b40e57acd4b18ff17a849bc9308f95d290248c9c"
diff --git a/poky/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch b/poky/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch
deleted file mode 100644
index 198f198..0000000
--- a/poky/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8f91385dbd5e7c14b36ecbd8a01ca82c709f6d77 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 24 Jun 2016 18:19:29 +0000
-Subject: [PATCH] Include linux/param.h for EXEC_PAGESIZE definition
-
-Musl does not include linux/param.h whereas glibc
-does, so it fails to build on musl.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- src/watchdog.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/watchdog.c b/src/watchdog.c
-index acf6450..486384a 100644
---- a/src/watchdog.c
-+++ b/src/watchdog.c
-@@ -26,6 +26,9 @@
- #include <sys/param.h>		/* For EXEC_PAGESIZE */
- #include <linux/oom.h>
- #include <linux/watchdog.h>
-+#ifdef __linux__
-+#include <linux/param.h>
-+#endif
- #include <string.h>
- 
- #include <libgen.h>
--- 
-1.8.3.1
-
diff --git a/poky/meta/recipes-extended/watchdog/watchdog_5.15.bb b/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
similarity index 88%
rename from poky/meta/recipes-extended/watchdog/watchdog_5.15.bb
rename to poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
index 1acab2e..0199487 100644
--- a/poky/meta/recipes-extended/watchdog/watchdog_5.15.bb
+++ b/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
@@ -6,17 +6,16 @@
 BUGTRACKER = "http://sourceforge.net/tracker/?group_id=172030&atid=860194"
 
 LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ecc0551bf54ad97f6b541720f84d6569"
+LIC_FILES_CHKSUM = "file://COPYING;md5=084236108b1d4a9851bf5213fea586fd"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/watchdog/watchdog-${PV}.tar.gz \
-           file://0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch \
            file://0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch \
            file://watchdog.init \
            file://wd_keepalive.init \
 "
 
-SRC_URI[md5sum] = "678c32f6f35a0492c9c1b76b4aa88828"
-SRC_URI[sha256sum] = "ffdc865137ad5d8e53664bd22bad4de6ca136d1b4636720320cb52af0c18947c"
+SRC_URI[md5sum] = "1b4f51cabc64d1bee2fce7cdd626831f"
+SRC_URI[sha256sum] = "b8e7c070e1b72aee2663bdc13b5cc39f76c9232669cfbb1ac0adc7275a3b019d"
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/watchdog/files/watchdog/"
 UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/"
diff --git a/poky/meta/recipes-extended/xz/xz_5.2.4.bb b/poky/meta/recipes-extended/xz/xz_5.2.5.bb
similarity index 91%
rename from poky/meta/recipes-extended/xz/xz_5.2.4.bb
rename to poky/meta/recipes-extended/xz/xz_5.2.5.bb
index 1c4450a..af21b60 100644
--- a/poky/meta/recipes-extended/xz/xz_5.2.4.bb
+++ b/poky/meta/recipes-extended/xz/xz_5.2.5.bb
@@ -23,8 +23,8 @@
                     "
 
 SRC_URI = "https://tukaani.org/xz/xz-${PV}.tar.gz"
-SRC_URI[md5sum] = "5ace3264bdd00c65eeec2891346f65e6"
-SRC_URI[sha256sum] = "b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145"
+SRC_URI[md5sum] = "0d270c997aff29708c74d53f599ef717"
+SRC_URI[sha256sum] = "f6f4910fd033078738bd82bfba4f49219d03b17eb0794eb91efbae419f4aba10"
 UPSTREAM_CHECK_REGEX = "xz-(?P<pver>\d+(\.\d+)+)\.tar"
 
 CACHED_CONFIGUREVARS += "gl_cv_posix_shell=/bin/sh"
diff --git a/poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb b/poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb
index a3325b5..d5a88df 100644
--- a/poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb
+++ b/poky/meta/recipes-gnome/gcr/gcr_3.36.0.bb
@@ -8,7 +8,7 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
 
-DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt \
+DEPENDS = "gtk+3 p11-kit glib-2.0 libgcrypt gnupg-native \
            ${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'libxslt-native', '', d)}"
 
 GNOMEBASEBUILDCLASS = "meson"
diff --git a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.0.bb b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb
similarity index 80%
rename from poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.0.bb
rename to poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb
index a68175d..f54b242 100644
--- a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.0.bb
+++ b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.36.1.bb
@@ -13,6 +13,6 @@
 
 inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even
 
-SRC_URI[archive.md5sum] = "697db9e6b2ae058f8a0d0b023e32ceac"
-SRC_URI[archive.sha256sum] = "764ab683286536324533a58d4e95fc57f81adaba7d880dd0ebbbced63e960ea6"
+SRC_URI[archive.md5sum] = "708ddd8dec388ebda5539667604197c3"
+SRC_URI[archive.sha256sum] = "004bdbe43cf8290f2de7d8537e14d8957610ca479a4fa368e34dbd03f03ec9d9"
 SRC_URI += "file://0001-Do-not-skip-gir-installation-for-cross-compiling.patch"
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3.inc b/poky/meta/recipes-gnome/gtk+/gtk+3.inc
index 5d1f59e..6154154 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -46,6 +46,8 @@
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl wayland x11', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)}"
+PACKAGECONFIG_class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
 
 PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes"
 # this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build
diff --git a/poky/meta/recipes-gnome/libsecret/files/0001-meson-add-option-introspection.patch b/poky/meta/recipes-gnome/libsecret/files/0001-meson-add-option-introspection.patch
new file mode 100644
index 0000000..51ee66f
--- /dev/null
+++ b/poky/meta/recipes-gnome/libsecret/files/0001-meson-add-option-introspection.patch
@@ -0,0 +1,137 @@
+meson: add option introspection
+
+Add an option 'introspection' for meson which could control whether
+build GIR files or not.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libsecret/-/merge_requests/53]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ libsecret/meson.build | 86 ++++++++++++++++++++++---------------------
+ meson.build           |  1 +
+ meson_options.txt     |  1 +
+ 3 files changed, 46 insertions(+), 42 deletions(-)
+
+diff --git a/libsecret/meson.build b/libsecret/meson.build
+index 759b5ef..2ee8850 100644
+--- a/libsecret/meson.build
++++ b/libsecret/meson.build
+@@ -104,50 +104,52 @@ libsecret_dep = declare_dependency(
+ )
+ 
+ # GObject Introspection
+-libsecret_gir_sources = [
+-  'secret-attributes.c',
+-  'secret-attributes.h',
+-  'secret-backend.c',
+-  'secret-backend.h',
+-  'secret-collection.c',
+-  'secret-collection.h',
+-  'secret-item.c',
+-  'secret-item.h',
+-  'secret-methods.c',
+-  'secret-password.c',
+-  'secret-password.h',
+-  'secret-paths.c',
+-  'secret-paths.h',
+-  'secret-prompt.c',
+-  'secret-prompt.h',
+-  'secret-retrievable.c',
+-  'secret-retrievable.h',
+-  'secret-schema.c',
+-  'secret-schema.h',
+-  'secret-schemas.c',
+-  'secret-schemas.h',
+-  'secret-service.c',
+-  'secret-service.h',
+-  'secret-types.h',
+-  'secret-value.c',
+-  'secret-value.h',
+-]
+-libsecret_gir_sources += version_h
+-libsecret_gir_sources += _enums_generated
+-
+-libsecret_gir = gnome.generate_gir(libsecret,
+-  sources: libsecret_gir_sources,
+-  namespace: 'Secret',
+-  nsversion: api_version_major,
+-  export_packages: 'libsecret-@0@'.format(api_version_major),
+-  includes: [ 'GObject-2.0', 'Gio-2.0' ],
+-  header: 'libsecret/secret.h',
+-  extra_args: [ '-D SECRET_COMPILATION'],
+-  install: true,
+-)
++if with_gir
++  libsecret_gir_sources = [
++    'secret-attributes.c',
++    'secret-attributes.h',
++    'secret-backend.c',
++    'secret-backend.h',
++    'secret-collection.c',
++    'secret-collection.h',
++    'secret-item.c',
++    'secret-item.h',
++    'secret-methods.c',
++    'secret-password.c',
++    'secret-password.h',
++    'secret-paths.c',
++    'secret-paths.h',
++    'secret-prompt.c',
++    'secret-prompt.h',
++    'secret-retrievable.c',
++    'secret-retrievable.h',
++    'secret-schema.c',
++    'secret-schema.h',
++    'secret-schemas.c',
++    'secret-schemas.h',
++    'secret-service.c',
++    'secret-service.h',
++    'secret-types.h',
++    'secret-value.c',
++    'secret-value.h',
++  ]
++  libsecret_gir_sources += version_h
++  libsecret_gir_sources += _enums_generated
++
++  libsecret_gir = gnome.generate_gir(libsecret,
++    sources: libsecret_gir_sources,
++    namespace: 'Secret',
++    nsversion: api_version_major,
++    export_packages: 'libsecret-@0@'.format(api_version_major),
++    includes: [ 'GObject-2.0', 'Gio-2.0' ],
++    header: 'libsecret/secret.h',
++    extra_args: [ '-D SECRET_COMPILATION'],
++    install: true,
++  )
++endif
+ 
+ # Vapi
+-if with_vapi
++if with_vapi and with_gir
+   libsecret_vapi = gnome.generate_vapi('libsecret-@0@'.format(api_version_major),
+     sources: libsecret_gir[0],
+     metadata_dirs: meson.source_root() / 'libsecret',
+diff --git a/meson.build b/meson.build
+index a26d046..d22e008 100644
+--- a/meson.build
++++ b/meson.build
+@@ -22,6 +22,7 @@ with_gcrypt = get_option('gcrypt')
+ enable_debug = get_option('debugging')
+ with_vapi = get_option('vapi')
+ with_gtkdoc = get_option('gtk_doc')
++with_gir = get_option('introspection')
+ 
+ # Some variables
+ config_h_dir = include_directories('.')
+diff --git a/meson_options.txt b/meson_options.txt
+index c1fda5d..445aeb0 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -3,3 +3,4 @@ option('gcrypt', type: 'boolean', value: true, description: 'With gcrypt and tra
+ option('debugging', type: 'boolean', value: false, description: 'Turn debugging on/off')
+ option('vapi', type: 'boolean', value: true, description: 'Create VAPI file.')
+ option('gtk_doc', type: 'boolean', value: true, description: 'Build reference documentation using gtk-doc')
++option('introspection', type: 'boolean', value: true, description: 'Create GIR file.')
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-gnome/libsecret/libsecret_0.20.3.bb b/poky/meta/recipes-gnome/libsecret/libsecret_0.20.3.bb
index d3a0c2f..533015a 100644
--- a/poky/meta/recipes-gnome/libsecret/libsecret_0.20.3.bb
+++ b/poky/meta/recipes-gnome/libsecret/libsecret_0.20.3.bb
@@ -13,15 +13,13 @@
 
 DEPENDS += "glib-2.0 libgcrypt gettext-native"
 
+SRC_URI += "file://0001-meson-add-option-introspection.patch"
+
 SRC_URI[archive.md5sum] = "47c3fdfeb111a87b509ad271e4a6f496"
 SRC_URI[archive.sha256sum] = "4fcb3c56f8ac4ab9c75b66901fb0104ec7f22aa9a012315a14c0d6dffa5290e4"
 
 GTKDOC_MESON_OPTION = 'gtk_doc'
 
-# gobject-introspection is mandatory and cannot be configured
-REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
-UNKNOWN_CONFIGURE_WHITELIST_append = " introspection"
-
 PACKAGECONFIG[manpages] = "-Dmanpage=true,-Dmanpage=false,libxslt-native xmlto-native"
 
 # http://errors.yoctoproject.org/Errors/Details/20228/
diff --git a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
index b772c2e..092c77b 100644
--- a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
@@ -42,6 +42,8 @@
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
                    trace"
+PACKAGECONFIG_class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
+PACKAGECONFIG_class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
diff --git a/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb b/poky/meta/recipes-graphics/freetype/freetype_2.10.2.bb
similarity index 92%
rename from poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb
rename to poky/meta/recipes-graphics/freetype/freetype_2.10.2.bb
index d1c0930..1034ddc 100644
--- a/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb
+++ b/poky/meta/recipes-graphics/freetype/freetype_2.10.2.bb
@@ -15,8 +15,8 @@
 SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BP}.tar.xz \
            file://use-right-libtool.patch \
           "
-SRC_URI[md5sum] = "bd42e75127f8431923679480efb5ba8f"
-SRC_URI[sha256sum] = "16dbfa488a21fe827dc27eaf708f42f7aa3bb997d745d31a19781628c36ba26f"
+SRC_URI[md5sum] = "7c0d5a39f232d7eb9f9d7da76bf08074"
+SRC_URI[sha256sum] = "1543d61025d2e6312e0a1c563652555f17378a204a61e99928c9fcef030a2d8b"
 
 UPSTREAM_CHECK_REGEX = "freetype-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
index 0782c6c..6646ef7 100644
--- a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
+++ b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
@@ -19,8 +19,6 @@
 inherit meson pkgconfig features_check
 
 REQUIRED_DISTRO_FEATURES = "opengl"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-REQUIRED_DISTRO_FEATURES_class-nativesdk = ""
 
 PACKAGECONFIG[egl] = "-Degl=yes, -Degl=no, virtual/egl"
 PACKAGECONFIG[x11] = "-Dglx=yes, -Dglx=no -Dx11=false, virtual/libx11 virtual/libgl"
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
index c1c941e..83dce86 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
@@ -45,8 +45,8 @@
 # and BSP layers to pick either (desktop) opengl, gles2, or no GL
 PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
 
-PACKAGECONFIG_class-native = "x11"
-PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG_class-native = "x11 ${PACKAGECONFIG_GL}"
+PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}"
 PACKAGECONFIG ??= " \
     ${PACKAGECONFIG_GL} \
     ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.6.1.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.6.1.bb
deleted file mode 100644
index 2c84523..0000000
--- a/poky/meta/recipes-graphics/libva/libva-initial_2.6.1.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require libva.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-SRC_URI[md5sum] = "aef13eb48e01a47d1416d97462a22a11"
-SRC_URI[sha256sum] = "6c57eb642d828af2411aa38f55dc10111e8c98976dbab8fd62e48629401eaea5"
-
-do_install_append () {
-	rm -f ${D}${libdir}/*.so*
-}
diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb
new file mode 100644
index 0000000..3e2b806
--- /dev/null
+++ b/poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb
@@ -0,0 +1,8 @@
+require libva.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
+SRC_URI[sha256sum] = "a00ff19d9f969259b9784172adad7788dbf3de827d985c5d27c230efd5d98a04"
+
+do_install_append () {
+	rm -f ${D}${libdir}/*.so*
+}
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.6.0.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb
similarity index 90%
rename from poky/meta/recipes-graphics/libva/libva-utils_2.6.0.bb
rename to poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb
index 03b3802..92a5b09 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.6.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb
@@ -14,8 +14,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
 
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.6-branch"
-SRCREV = "8ea1eba433dcbceb0e5dcb54b8e3f984987f7a17"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.7-branch"
+SRCREV = "5a24c635f6fb2b9ac31cab3360afca50e1860812"
 S = "${WORKDIR}/git"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
diff --git a/poky/meta/recipes-graphics/libva/libva_2.6.1.bb b/poky/meta/recipes-graphics/libva/libva_2.7.1.bb
similarity index 84%
rename from poky/meta/recipes-graphics/libva/libva_2.6.1.bb
rename to poky/meta/recipes-graphics/libva/libva_2.7.1.bb
index e8cb867..b2deb01 100644
--- a/poky/meta/recipes-graphics/libva/libva_2.6.1.bb
+++ b/poky/meta/recipes-graphics/libva/libva_2.7.1.bb
@@ -1,8 +1,7 @@
 require libva.inc
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-SRC_URI[md5sum] = "aef13eb48e01a47d1416d97462a22a11"
-SRC_URI[sha256sum] = "6c57eb642d828af2411aa38f55dc10111e8c98976dbab8fd62e48629401eaea5"
+SRC_URI[sha256sum] = "a00ff19d9f969259b9784172adad7788dbf3de827d985c5d27c230efd5d98a04"
 
 PACKAGECONFIG ??= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', '', d)} \
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index fede691..bb43a9a 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -212,18 +212,20 @@
               ("gles", "libgles3",)):
         if not p[0] in pkgconfig:
             continue
-        fullp = p[1] + "-mesa"
-        pkgs = " ".join(p[1:])
+        mlprefix = d.getVar("MLPREFIX")
+        fullp = mlprefix + p[1] + "-mesa"
+        mlprefix = d.getVar("MLPREFIX")
+        pkgs = " ".join(mlprefix + x for x in p[1:])
         d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
         d.appendVar("RREPLACES_" + fullp, pkgs)
         d.appendVar("RPROVIDES_" + fullp, pkgs)
         d.appendVar("RCONFLICTS_" + fullp, pkgs)
 
-        d.appendVar("RRECOMMENDS_" + fullp, " mesa-megadriver")
+        d.appendVar("RRECOMMENDS_" + fullp, " ${MLPREFIX}mesa-megadriver")
 
         # For -dev, the first element is both the Debian and original name
         fullp += "-dev"
-        pkgs = p[1] + "-dev"
+        pkgs = mlprefix + p[1] + "-dev"
         d.setVar("DEBIAN_NOAUTONAME_" + fullp, "1")
         d.appendVar("RREPLACES_" + fullp, pkgs)
         d.appendVar("RPROVIDES_" + fullp, pkgs)
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
index 1046b85..29b1262 100644
--- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
+++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
@@ -22,5 +22,3 @@
 BBCLASSEXTEND = "native nativesdk"
 
 REQUIRED_DISTRO_FEATURES = "opengl"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-REQUIRED_DISTRO_FEATURES_class-nativesdk = ""
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200122.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200421.bb
similarity index 98%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200122.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200421.bb
index 7173409..fa0507a 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200122.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200421.bb
@@ -125,7 +125,7 @@
                     file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
                     file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
                     file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
-                    file://WHENCE;md5=c27d0c06cd5d376d8ab55860e65ba4e4 \
+                    file://WHENCE;md5=cb9a66eff0464b55335d3a7374fbc51c \
                     "
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
@@ -196,8 +196,8 @@
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz"
 
-SRC_URI[md5sum] = "ac291b21f366ae2a37193ec8f14c39d2"
-SRC_URI[sha256sum] = "a30e811b3736a72b874ac27e10662f5e5409b1cadf8aab7ba88e8f8bc8083986"
+SRC_URI[md5sum] = "229a93395f4033da68429f165a62b952"
+SRC_URI[sha256sum] = "6dd7cba25d694c031f65529b9027cc8faaffaddfae70a4e3b58c2e4a0af3bfa8"
 
 inherit allarch
 
@@ -288,7 +288,7 @@
              ${PN}-qat ${PN}-qat-license \
              ${PN}-qcom-license \
              ${PN}-qcom-venus-1.8 ${PN}-qcom-venus-4.2 \
-             ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 \
+             ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a530 ${PN}-qcom-adreno-a630 \
              ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \
              ${PN}-whence-license \
              ${PN}-license \
@@ -849,13 +849,15 @@
 FILES_${PN}-qcom-venus-4.2 = "${nonarch_base_libdir}/firmware/qcom/venus-4.2/*"
 FILES_${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a300_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw"
 FILES_${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.*"
+FILES_${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*"
 FILES_${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*"
 FILES_${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*"
-FILES_${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.*"
+FILES_${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn"
 RDEPENDS_${PN}-qcom-venus-1.8 = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-venus-4.2 = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-adreno-a3xx = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-adreno-a530 = "${PN}-qcom-license"
+RDEPENDS_${PN}-qcom-adreno-a630 = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-sdm845-audio = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-sdm845-compute = "${PN}-qcom-license"
 RDEPENDS_${PN}-qcom-sdm845-modem = "${PN}-qcom-license"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
index d550bf5..f6acb29 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
@@ -11,13 +11,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "c7609ad17612bd59c1cadb53faf23be8fd7250ef"
-SRCREV_meta ?= "054d410d1a73e4729f1fe7540db058de69fe8cfe"
+SRCREV_machine ?= "5db46f8cf9b485f320287147ce593789ee0b5447"
+SRCREV_meta ?= "4ed477131e6e508d335d70c070eb84a5c3d673e5"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "5.4.34"
+LINUX_VERSION ?= "5.4.40"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
index 078a15c..f797aa1 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
@@ -6,7 +6,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "5.4.34"
+LINUX_VERSION ?= "5.4.40"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine_qemuarm ?= "ba0b1e26460cb764005af5758334fc1777760dfd"
-SRCREV_machine ?= "e378a5626133c1f46c7ee4ede3785dbb805dc5ab"
-SRCREV_meta ?= "054d410d1a73e4729f1fe7540db058de69fe8cfe"
+SRCREV_machine_qemuarm ?= "b84f9483ed29096cd9bb6b1922666e8a275dd496"
+SRCREV_machine ?= "29f44c85c379c38f15e544828e7e77b3c008f378"
+SRCREV_meta ?= "4ed477131e6e508d335d70c070eb84a5c3d673e5"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
index e225094..65afdc3 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
@@ -12,16 +12,16 @@
 KBRANCH_qemux86-64 ?= "v5.4/standard/base"
 KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
 
-SRCREV_machine_qemuarm ?= "440e41f2f471ba2bb5e3c801ffc140523bdd59b1"
-SRCREV_machine_qemuarm64 ?= "e378a5626133c1f46c7ee4ede3785dbb805dc5ab"
-SRCREV_machine_qemumips ?= "941c329c8810e946840bd2f4ab983a94651e563f"
-SRCREV_machine_qemuppc ?= "e378a5626133c1f46c7ee4ede3785dbb805dc5ab"
-SRCREV_machine_qemuriscv64 ?= "e378a5626133c1f46c7ee4ede3785dbb805dc5ab"
-SRCREV_machine_qemux86 ?= "e378a5626133c1f46c7ee4ede3785dbb805dc5ab"
-SRCREV_machine_qemux86-64 ?= "e378a5626133c1f46c7ee4ede3785dbb805dc5ab"
-SRCREV_machine_qemumips64 ?= "b73834a11da2d4327cc3cb9f33fa3540f24d56aa"
-SRCREV_machine ?= "e378a5626133c1f46c7ee4ede3785dbb805dc5ab"
-SRCREV_meta ?= "054d410d1a73e4729f1fe7540db058de69fe8cfe"
+SRCREV_machine_qemuarm ?= "cbe84f8dbb7fe4a67a337795d81cca735346f4c8"
+SRCREV_machine_qemuarm64 ?= "29f44c85c379c38f15e544828e7e77b3c008f378"
+SRCREV_machine_qemumips ?= "b0ad6cf1238ec97860a9e26a6da1aa431c5b96fb"
+SRCREV_machine_qemuppc ?= "29f44c85c379c38f15e544828e7e77b3c008f378"
+SRCREV_machine_qemuriscv64 ?= "29f44c85c379c38f15e544828e7e77b3c008f378"
+SRCREV_machine_qemux86 ?= "29f44c85c379c38f15e544828e7e77b3c008f378"
+SRCREV_machine_qemux86-64 ?= "29f44c85c379c38f15e544828e7e77b3c008f378"
+SRCREV_machine_qemumips64 ?= "5247564ab2b897a678ed0cd8fb2905c918fc64df"
+SRCREV_machine ?= "29f44c85c379c38f15e544828e7e77b3c008f378"
+SRCREV_meta ?= "4ed477131e6e508d335d70c070eb84a5c3d673e5"
 
 # remap qemuarm to qemuarma15 for the 5.4 kernel
 # KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "5.4.34"
+LINUX_VERSION ?= "5.4.40"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Update-for-kernel-5.7-use-vmalloc_sync_mappings-on-k.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Update-for-kernel-5.7-use-vmalloc_sync_mappings-on-k.patch
new file mode 100644
index 0000000..58f4d29
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Update-for-kernel-5.7-use-vmalloc_sync_mappings-on-k.patch
@@ -0,0 +1,853 @@
+From a2cc0e06330e55eefe668f7d6370de6d3177a907 Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Date: Tue, 5 May 2020 13:38:31 -0400
+Subject: [PATCH] Update for kernel 5.7: use vmalloc_sync_mappings on kernels
+ >= 5.7
+
+Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/da0fcb1497ff2437407883647a8a0bba12bd0f91]
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ lib/ringbuffer/ring_buffer_backend.c |  4 +--
+ lttng-abi.c                          |  4 +--
+ lttng-context-callstack.c            |  2 +-
+ lttng-context-cgroup-ns.c            |  2 +-
+ lttng-context-cpu-id.c               |  2 +-
+ lttng-context-egid.c                 |  2 +-
+ lttng-context-euid.c                 |  2 +-
+ lttng-context-gid.c                  |  2 +-
+ lttng-context-hostname.c             |  2 +-
+ lttng-context-interruptible.c        |  2 +-
+ lttng-context-ipc-ns.c               |  2 +-
+ lttng-context-migratable.c           |  2 +-
+ lttng-context-mnt-ns.c               |  2 +-
+ lttng-context-need-reschedule.c      |  2 +-
+ lttng-context-net-ns.c               |  2 +-
+ lttng-context-nice.c                 |  2 +-
+ lttng-context-perf-counters.c        |  2 +-
+ lttng-context-pid-ns.c               |  2 +-
+ lttng-context-pid.c                  |  2 +-
+ lttng-context-ppid.c                 |  2 +-
+ lttng-context-preemptible.c          |  2 +-
+ lttng-context-prio.c                 |  2 +-
+ lttng-context-procname.c             |  2 +-
+ lttng-context-sgid.c                 |  2 +-
+ lttng-context-suid.c                 |  2 +-
+ lttng-context-tid.c                  |  2 +-
+ lttng-context-uid.c                  |  2 +-
+ lttng-context-user-ns.c              |  2 +-
+ lttng-context-uts-ns.c               |  2 +-
+ lttng-context-vegid.c                |  2 +-
+ lttng-context-veuid.c                |  2 +-
+ lttng-context-vgid.c                 |  2 +-
+ lttng-context-vpid.c                 |  2 +-
+ lttng-context-vppid.c                |  2 +-
+ lttng-context-vsgid.c                |  2 +-
+ lttng-context-vsuid.c                |  2 +-
+ lttng-context-vtid.c                 |  2 +-
+ lttng-context-vuid.c                 |  2 +-
+ lttng-context.c                      |  2 +-
+ lttng-events.c                       | 10 +++---
+ lttng-ring-buffer-client.h           |  4 +--
+ lttng-ring-buffer-metadata-client.h  |  4 +--
+ lttng-syscalls.c                     |  2 +-
+ probes/lttng-kprobes.c               |  2 +-
+ probes/lttng-kretprobes.c            |  2 +-
+ probes/lttng-tracepoint-event-impl.h |  4 +--
+ probes/lttng-uprobes.c               |  2 +-
+ probes/lttng.c                       |  2 +-
+ tests/probes/lttng-test.c            |  2 +-
+ wrapper/vmalloc.h                    | 49 ++++++++++++++++++++++++++--
+ 50 files changed, 104 insertions(+), 61 deletions(-)
+
+diff --git a/lib/ringbuffer/ring_buffer_backend.c b/lib/ringbuffer/ring_buffer_backend.c
+index d4bec25..d232b7f 100644
+--- a/lib/ringbuffer/ring_buffer_backend.c
++++ b/lib/ringbuffer/ring_buffer_backend.c
+@@ -17,7 +17,7 @@
+ #include <linux/vmalloc.h>
+ 
+ #include <wrapper/mm.h>
+-#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_all() */
++#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <wrapper/ringbuffer/config.h>
+ #include <wrapper/ringbuffer/backend.h>
+ #include <wrapper/ringbuffer/frontend.h>
+@@ -156,7 +156,7 @@ int lib_ring_buffer_backend_allocate(const struct lib_ring_buffer_config *config
+ 	 * If kmalloc ever uses vmalloc underneath, make sure the buffer pages
+ 	 * will not fault.
+ 	 */
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	wrapper_clear_current_oom_origin();
+ 	vfree(pages);
+ 	return 0;
+diff --git a/lttng-abi.c b/lttng-abi.c
+index b63e376..826ecab 100644
+--- a/lttng-abi.c
++++ b/lttng-abi.c
+@@ -30,7 +30,7 @@
+ #include <linux/uaccess.h>
+ #include <linux/slab.h>
+ #include <linux/err.h>
+-#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_all() */
++#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <wrapper/ringbuffer/vfs.h>
+ #include <wrapper/ringbuffer/backend.h>
+ #include <wrapper/ringbuffer/frontend.h>
+@@ -1938,7 +1938,7 @@ int __init lttng_abi_init(void)
+ {
+ 	int ret = 0;
+ 
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	lttng_clock_ref();
+ 
+ 	ret = lttng_tp_mempool_init();
+diff --git a/lttng-context-callstack.c b/lttng-context-callstack.c
+index 195990a..ba35a39 100644
+--- a/lttng-context-callstack.c
++++ b/lttng-context-callstack.c
+@@ -141,7 +141,7 @@ int __lttng_add_callstack_generic(struct lttng_ctx **ctx,
+ 	field->record = lttng_callstack_record;
+ 	field->priv = fdata;
+ 	field->destroy = lttng_callstack_destroy;
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ 
+ error_create:
+diff --git a/lttng-context-cgroup-ns.c b/lttng-context-cgroup-ns.c
+index 81486e5..f324b7e 100644
+--- a/lttng-context-cgroup-ns.c
++++ b/lttng-context-cgroup-ns.c
+@@ -97,7 +97,7 @@ int lttng_add_cgroup_ns_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = cgroup_ns_record;
+ 	field->get_value = cgroup_ns_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_cgroup_ns_to_ctx);
+diff --git a/lttng-context-cpu-id.c b/lttng-context-cpu-id.c
+index 3778225..6e2f3f4 100644
+--- a/lttng-context-cpu-id.c
++++ b/lttng-context-cpu-id.c
+@@ -68,7 +68,7 @@ int lttng_add_cpu_id_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = cpu_id_record;
+ 	field->get_value = cpu_id_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_cpu_id_to_ctx);
+diff --git a/lttng-context-egid.c b/lttng-context-egid.c
+index 51536e2..bdcebb9 100644
+--- a/lttng-context-egid.c
++++ b/lttng-context-egid.c
+@@ -70,7 +70,7 @@ int lttng_add_egid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = egid_record;
+ 	field->get_value = egid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_egid_to_ctx);
+diff --git a/lttng-context-euid.c b/lttng-context-euid.c
+index 1bcd53f..c2b8dcd 100644
+--- a/lttng-context-euid.c
++++ b/lttng-context-euid.c
+@@ -70,7 +70,7 @@ int lttng_add_euid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = euid_record;
+ 	field->get_value = euid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_euid_to_ctx);
+diff --git a/lttng-context-gid.c b/lttng-context-gid.c
+index da54207..c355e8c 100644
+--- a/lttng-context-gid.c
++++ b/lttng-context-gid.c
+@@ -70,7 +70,7 @@ int lttng_add_gid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = gid_record;
+ 	field->get_value = gid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_gid_to_ctx);
+diff --git a/lttng-context-hostname.c b/lttng-context-hostname.c
+index e485aa9..17dbd57 100644
+--- a/lttng-context-hostname.c
++++ b/lttng-context-hostname.c
+@@ -101,7 +101,7 @@ int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = hostname_record;
+ 	field->get_value = hostname_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_hostname_to_ctx);
+diff --git a/lttng-context-interruptible.c b/lttng-context-interruptible.c
+index f3da199..8bd279a 100644
+--- a/lttng-context-interruptible.c
++++ b/lttng-context-interruptible.c
+@@ -75,7 +75,7 @@ int lttng_add_interruptible_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = interruptible_record;
+ 	field->get_value = interruptible_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_interruptible_to_ctx);
+diff --git a/lttng-context-ipc-ns.c b/lttng-context-ipc-ns.c
+index 78d5966..40b901b 100644
+--- a/lttng-context-ipc-ns.c
++++ b/lttng-context-ipc-ns.c
+@@ -96,7 +96,7 @@ int lttng_add_ipc_ns_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = ipc_ns_record;
+ 	field->get_value = ipc_ns_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_ipc_ns_to_ctx);
+diff --git a/lttng-context-migratable.c b/lttng-context-migratable.c
+index e3d8ede..65154b8 100644
+--- a/lttng-context-migratable.c
++++ b/lttng-context-migratable.c
+@@ -68,7 +68,7 @@ int lttng_add_migratable_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = migratable_record;
+ 	field->get_value = migratable_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_migratable_to_ctx);
+diff --git a/lttng-context-mnt-ns.c b/lttng-context-mnt-ns.c
+index b5bb955..cb59776 100644
+--- a/lttng-context-mnt-ns.c
++++ b/lttng-context-mnt-ns.c
+@@ -98,7 +98,7 @@ int lttng_add_mnt_ns_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = mnt_ns_record;
+ 	field->get_value = mnt_ns_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_mnt_ns_to_ctx);
+diff --git a/lttng-context-need-reschedule.c b/lttng-context-need-reschedule.c
+index f29fb28..94efaa5 100644
+--- a/lttng-context-need-reschedule.c
++++ b/lttng-context-need-reschedule.c
+@@ -68,7 +68,7 @@ int lttng_add_need_reschedule_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = need_reschedule_record;
+ 	field->get_value = need_reschedule_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_need_reschedule_to_ctx);
+diff --git a/lttng-context-net-ns.c b/lttng-context-net-ns.c
+index 6694037..37de09f 100644
+--- a/lttng-context-net-ns.c
++++ b/lttng-context-net-ns.c
+@@ -97,7 +97,7 @@ int lttng_add_net_ns_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = net_ns_record;
+ 	field->get_value = net_ns_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_net_ns_to_ctx);
+diff --git a/lttng-context-nice.c b/lttng-context-nice.c
+index 563e805..acaba85 100644
+--- a/lttng-context-nice.c
++++ b/lttng-context-nice.c
+@@ -68,7 +68,7 @@ int lttng_add_nice_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = nice_record;
+ 	field->get_value = nice_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_nice_to_ctx);
+diff --git a/lttng-context-perf-counters.c b/lttng-context-perf-counters.c
+index 43c4077..6b04d12 100644
+--- a/lttng-context-perf-counters.c
++++ b/lttng-context-perf-counters.c
+@@ -321,7 +321,7 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
+ 	field->u.perf_counter = perf_field;
+ 	lttng_context_update(*ctx);
+ 
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ 
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
+diff --git a/lttng-context-pid-ns.c b/lttng-context-pid-ns.c
+index f039f26..ccf629d 100644
+--- a/lttng-context-pid-ns.c
++++ b/lttng-context-pid-ns.c
+@@ -98,7 +98,7 @@ int lttng_add_pid_ns_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = pid_ns_record;
+ 	field->get_value = pid_ns_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_pid_ns_to_ctx);
+diff --git a/lttng-context-pid.c b/lttng-context-pid.c
+index b3caabb..326eabe 100644
+--- a/lttng-context-pid.c
++++ b/lttng-context-pid.c
+@@ -68,7 +68,7 @@ int lttng_add_pid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = pid_record;
+ 	field->get_value = pid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_pid_to_ctx);
+diff --git a/lttng-context-ppid.c b/lttng-context-ppid.c
+index ef84ad1..ff25288 100644
+--- a/lttng-context-ppid.c
++++ b/lttng-context-ppid.c
+@@ -90,7 +90,7 @@ int lttng_add_ppid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = ppid_record;
+ 	field->get_value = ppid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_ppid_to_ctx);
+diff --git a/lttng-context-preemptible.c b/lttng-context-preemptible.c
+index 328f2a4..867805b 100644
+--- a/lttng-context-preemptible.c
++++ b/lttng-context-preemptible.c
+@@ -86,7 +86,7 @@ int lttng_add_preemptible_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = preemptible_record;
+ 	field->get_value = preemptible_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_preemptible_to_ctx);
+diff --git a/lttng-context-prio.c b/lttng-context-prio.c
+index b5d21e7..367f7bd 100644
+--- a/lttng-context-prio.c
++++ b/lttng-context-prio.c
+@@ -89,7 +89,7 @@ int lttng_add_prio_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = prio_record;
+ 	field->get_value = prio_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_prio_to_ctx);
+diff --git a/lttng-context-procname.c b/lttng-context-procname.c
+index 54007d1..8f18ca2 100644
+--- a/lttng-context-procname.c
++++ b/lttng-context-procname.c
+@@ -72,7 +72,7 @@ int lttng_add_procname_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = procname_record;
+ 	field->get_value = procname_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_procname_to_ctx);
+diff --git a/lttng-context-sgid.c b/lttng-context-sgid.c
+index 61c8d53..2a58cbd 100644
+--- a/lttng-context-sgid.c
++++ b/lttng-context-sgid.c
+@@ -70,7 +70,7 @@ int lttng_add_sgid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = sgid_record;
+ 	field->get_value = sgid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_sgid_to_ctx);
+diff --git a/lttng-context-suid.c b/lttng-context-suid.c
+index 66d3ef5..ab3e2a9 100644
+--- a/lttng-context-suid.c
++++ b/lttng-context-suid.c
+@@ -70,7 +70,7 @@ int lttng_add_suid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = suid_record;
+ 	field->get_value = suid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_suid_to_ctx);
+diff --git a/lttng-context-tid.c b/lttng-context-tid.c
+index d2a20e6..f6defc4 100644
+--- a/lttng-context-tid.c
++++ b/lttng-context-tid.c
+@@ -71,7 +71,7 @@ int lttng_add_tid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = tid_record;
+ 	field->get_value = tid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_tid_to_ctx);
+diff --git a/lttng-context-uid.c b/lttng-context-uid.c
+index 5f11de2..5593852 100644
+--- a/lttng-context-uid.c
++++ b/lttng-context-uid.c
+@@ -70,7 +70,7 @@ int lttng_add_uid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = uid_record;
+ 	field->get_value = uid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_uid_to_ctx);
+diff --git a/lttng-context-user-ns.c b/lttng-context-user-ns.c
+index 746e4d9..0ed62e3 100644
+--- a/lttng-context-user-ns.c
++++ b/lttng-context-user-ns.c
+@@ -82,7 +82,7 @@ int lttng_add_user_ns_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = user_ns_record;
+ 	field->get_value = user_ns_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_user_ns_to_ctx);
+diff --git a/lttng-context-uts-ns.c b/lttng-context-uts-ns.c
+index 7352a3d..283bc73 100644
+--- a/lttng-context-uts-ns.c
++++ b/lttng-context-uts-ns.c
+@@ -96,7 +96,7 @@ int lttng_add_uts_ns_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = uts_ns_record;
+ 	field->get_value = uts_ns_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_uts_ns_to_ctx);
+diff --git a/lttng-context-vegid.c b/lttng-context-vegid.c
+index 604da2a..1431dac 100644
+--- a/lttng-context-vegid.c
++++ b/lttng-context-vegid.c
+@@ -70,7 +70,7 @@ int lttng_add_vegid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = vegid_record;
+ 	field->get_value = vegid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_vegid_to_ctx);
+diff --git a/lttng-context-veuid.c b/lttng-context-veuid.c
+index 983ae6a..a1b5b70 100644
+--- a/lttng-context-veuid.c
++++ b/lttng-context-veuid.c
+@@ -70,7 +70,7 @@ int lttng_add_veuid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = veuid_record;
+ 	field->get_value = veuid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_veuid_to_ctx);
+diff --git a/lttng-context-vgid.c b/lttng-context-vgid.c
+index e08c77d..0eed24e 100644
+--- a/lttng-context-vgid.c
++++ b/lttng-context-vgid.c
+@@ -70,7 +70,7 @@ int lttng_add_vgid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = vgid_record;
+ 	field->get_value = vgid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_vgid_to_ctx);
+diff --git a/lttng-context-vpid.c b/lttng-context-vpid.c
+index 982ce55..b5b6ce0 100644
+--- a/lttng-context-vpid.c
++++ b/lttng-context-vpid.c
+@@ -83,7 +83,7 @@ int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = vpid_record;
+ 	field->get_value = vpid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_vpid_to_ctx);
+diff --git a/lttng-context-vppid.c b/lttng-context-vppid.c
+index 66d6382..347ac63 100644
+--- a/lttng-context-vppid.c
++++ b/lttng-context-vppid.c
+@@ -112,7 +112,7 @@ int lttng_add_vppid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = vppid_record;
+ 	field->get_value = vppid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_vppid_to_ctx);
+diff --git a/lttng-context-vsgid.c b/lttng-context-vsgid.c
+index aca5eda..3daf889 100644
+--- a/lttng-context-vsgid.c
++++ b/lttng-context-vsgid.c
+@@ -70,7 +70,7 @@ int lttng_add_vsgid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = vsgid_record;
+ 	field->get_value = vsgid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_vsgid_to_ctx);
+diff --git a/lttng-context-vsuid.c b/lttng-context-vsuid.c
+index 66c1300..d7fb0db 100644
+--- a/lttng-context-vsuid.c
++++ b/lttng-context-vsuid.c
+@@ -70,7 +70,7 @@ int lttng_add_vsuid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = vsuid_record;
+ 	field->get_value = vsuid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_vsuid_to_ctx);
+diff --git a/lttng-context-vtid.c b/lttng-context-vtid.c
+index 8fd68a8..e81ba0e 100644
+--- a/lttng-context-vtid.c
++++ b/lttng-context-vtid.c
+@@ -83,7 +83,7 @@ int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = vtid_record;
+ 	field->get_value = vtid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_vtid_to_ctx);
+diff --git a/lttng-context-vuid.c b/lttng-context-vuid.c
+index 6ae575f..33e22d3 100644
+--- a/lttng-context-vuid.c
++++ b/lttng-context-vuid.c
+@@ -70,7 +70,7 @@ int lttng_add_vuid_to_ctx(struct lttng_ctx **ctx)
+ 	field->record = vuid_record;
+ 	field->get_value = vuid_get_value;
+ 	lttng_context_update(*ctx);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return 0;
+ }
+ EXPORT_SYMBOL_GPL(lttng_add_vuid_to_ctx);
+diff --git a/lttng-context.c b/lttng-context.c
+index eb4534c..a6d4ee6 100644
+--- a/lttng-context.c
++++ b/lttng-context.c
+@@ -11,7 +11,7 @@
+ #include <linux/list.h>
+ #include <linux/mutex.h>
+ #include <linux/slab.h>
+-#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_all() */
++#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <lttng-events.h>
+ #include <lttng-tracer.h>
+ 
+diff --git a/lttng-events.c b/lttng-events.c
+index a1c8445..401f646 100644
+--- a/lttng-events.c
++++ b/lttng-events.c
+@@ -30,7 +30,7 @@
+ #include <linux/uuid.h>
+ #include <linux/dmi.h>
+ 
+-#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_all() */
++#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <wrapper/random.h>
+ #include <wrapper/tracepoint.h>
+ #include <wrapper/list.h>
+@@ -2753,9 +2753,9 @@ end:
+  * Registers a transport which can be used as output to extract the data out of
+  * LTTng. The module calling this registration function must ensure that no
+  * trap-inducing code will be executed by the transport functions. E.g.
+- * vmalloc_sync_all() must be called between a vmalloc and the moment the memory
++ * vmalloc_sync_mappings() must be called between a vmalloc and the moment the memory
+  * is made visible to the transport function. This registration acts as a
+- * vmalloc_sync_all. Therefore, only if the module allocates virtual memory
++ * vmalloc_sync_mappings. Therefore, only if the module allocates virtual memory
+  * after its registration must it synchronize the TLBs.
+  */
+ void lttng_transport_register(struct lttng_transport *transport)
+@@ -2763,9 +2763,9 @@ void lttng_transport_register(struct lttng_transport *transport)
+ 	/*
+ 	 * Make sure no page fault can be triggered by the module about to be
+ 	 * registered. We deal with this here so we don't have to call
+-	 * vmalloc_sync_all() in each module's init.
++	 * vmalloc_sync_mappings() in each module's init.
+ 	 */
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 
+ 	mutex_lock(&sessions_mutex);
+ 	list_add_tail(&transport->node, &lttng_transport_list);
+diff --git a/lttng-ring-buffer-client.h b/lttng-ring-buffer-client.h
+index d5c512c..ff62830 100644
+--- a/lttng-ring-buffer-client.h
++++ b/lttng-ring-buffer-client.h
+@@ -10,7 +10,7 @@
+ #include <linux/module.h>
+ #include <linux/types.h>
+ #include <lib/bitfield.h>
+-#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_all() */
++#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <wrapper/trace-clock.h>
+ #include <lttng-events.h>
+ #include <lttng-tracer.h>
+@@ -766,7 +766,7 @@ static int __init lttng_ring_buffer_client_init(void)
+ 	 * This vmalloc sync all also takes care of the lib ring buffer
+ 	 * vmalloc'd module pages when it is built as a module into LTTng.
+ 	 */
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	lttng_transport_register(&lttng_relay_transport);
+ 	return 0;
+ }
+diff --git a/lttng-ring-buffer-metadata-client.h b/lttng-ring-buffer-metadata-client.h
+index 17ffd75..a098b8d 100644
+--- a/lttng-ring-buffer-metadata-client.h
++++ b/lttng-ring-buffer-metadata-client.h
+@@ -9,7 +9,7 @@
+ 
+ #include <linux/module.h>
+ #include <linux/types.h>
+-#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_all() */
++#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <lttng-events.h>
+ #include <lttng-tracer.h>
+ 
+@@ -428,7 +428,7 @@ static int __init lttng_ring_buffer_client_init(void)
+ 	 * This vmalloc sync all also takes care of the lib ring buffer
+ 	 * vmalloc'd module pages when it is built as a module into LTTng.
+ 	 */
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	lttng_transport_register(&lttng_relay_transport);
+ 	return 0;
+ }
+diff --git a/lttng-syscalls.c b/lttng-syscalls.c
+index fb14f6b..97f1ba9 100644
+--- a/lttng-syscalls.c
++++ b/lttng-syscalls.c
+@@ -760,7 +760,7 @@ int lttng_syscalls_register(struct lttng_channel *chan, void *filter)
+ 	struct lttng_kernel_event ev;
+ 	int ret;
+ 
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 
+ 	if (!chan->sc_table) {
+ 		/* create syscall table mapping syscall to events */
+diff --git a/probes/lttng-kprobes.c b/probes/lttng-kprobes.c
+index c0a15e4..a44eaa1 100644
+--- a/probes/lttng-kprobes.c
++++ b/probes/lttng-kprobes.c
+@@ -132,7 +132,7 @@ int lttng_kprobes_register(const char *name,
+ 	 * Well.. kprobes itself puts the page fault handler on the blacklist,
+ 	 * but we can never be too careful.
+ 	 */
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 
+ 	ret = register_kprobe(&event->u.kprobe.kp);
+ 	if (ret)
+diff --git a/probes/lttng-kretprobes.c b/probes/lttng-kretprobes.c
+index 4b18d46..ab98ff2 100644
+--- a/probes/lttng-kretprobes.c
++++ b/probes/lttng-kretprobes.c
+@@ -221,7 +221,7 @@ int lttng_kretprobes_register(const char *name,
+ 	 * Well.. kprobes itself puts the page fault handler on the blacklist,
+ 	 * but we can never be too careful.
+ 	 */
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 
+ 	ret = register_kretprobe(&lttng_krp->krp);
+ 	if (ret)
+diff --git a/probes/lttng-tracepoint-event-impl.h b/probes/lttng-tracepoint-event-impl.h
+index 321cdfa..77b8638 100644
+--- a/probes/lttng-tracepoint-event-impl.h
++++ b/probes/lttng-tracepoint-event-impl.h
+@@ -15,7 +15,7 @@
+ #include <probes/lttng.h>
+ #include <probes/lttng-types.h>
+ #include <probes/lttng-probe-user.h>
+-#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_all() */
++#include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <wrapper/ringbuffer/frontend_types.h>
+ #include <wrapper/ringbuffer/backend.h>
+ #include <wrapper/rcu.h>
+@@ -1391,7 +1391,7 @@ static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = {
+ #ifndef TP_MODULE_NOINIT
+ static int TP_ID(__lttng_events_init__, TRACE_SYSTEM)(void)
+ {
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	return lttng_probe_register(&TP_ID(__probe_desc___, TRACE_SYSTEM));
+ }
+ 
+diff --git a/probes/lttng-uprobes.c b/probes/lttng-uprobes.c
+index 64d8237..bc10128 100644
+--- a/probes/lttng-uprobes.c
++++ b/probes/lttng-uprobes.c
+@@ -161,7 +161,7 @@ int lttng_uprobes_add_callsite(struct lttng_event *event,
+ 	}
+ 
+ 	/* Ensure the memory we just allocated don't trigger page faults. */
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 
+ 	uprobe_handler->event = event;
+ 	uprobe_handler->up_consumer.handler = lttng_uprobes_handler_pre;
+diff --git a/probes/lttng.c b/probes/lttng.c
+index 383202c..05bc138 100644
+--- a/probes/lttng.c
++++ b/probes/lttng.c
+@@ -116,7 +116,7 @@ int __init lttng_logger_init(void)
+ {
+ 	int ret = 0;
+ 
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 
+ 	/* /dev/lttng-logger */
+ 	ret = misc_register(&logger_dev);
+diff --git a/tests/probes/lttng-test.c b/tests/probes/lttng-test.c
+index e347639..b450e7d 100644
+--- a/tests/probes/lttng-test.c
++++ b/tests/probes/lttng-test.c
+@@ -97,7 +97,7 @@ int __init lttng_test_init(void)
+ 	int ret = 0;
+ 
+ 	(void) wrapper_lttng_fixup_sig(THIS_MODULE);
+-	wrapper_vmalloc_sync_all();
++	wrapper_vmalloc_sync_mappings();
+ 	lttng_test_filter_event_dentry =
+ 			proc_create_data(LTTNG_TEST_FILTER_EVENT_FILE,
+ 				S_IRUGO | S_IWUGO, NULL,
+diff --git a/wrapper/vmalloc.h b/wrapper/vmalloc.h
+index 0c3eb86..54715b5 100644
+--- a/wrapper/vmalloc.h
++++ b/wrapper/vmalloc.h
+@@ -21,8 +21,35 @@
+ #include <linux/kallsyms.h>
+ #include <wrapper/kallsyms.h>
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
++
++static inline
++void wrapper_vmalloc_sync_mappings(void)
++{
++	void (*vmalloc_sync_mappings_sym)(void);
++
++	vmalloc_sync_mappings_sym = (void *) kallsyms_lookup_funcptr("vmalloc_sync_mappings");
++	if (vmalloc_sync_mappings_sym) {
++		vmalloc_sync_mappings_sym();
++	} else {
++#ifdef CONFIG_X86
++		/*
++		 * Only x86 needs vmalloc_sync_mappings to make sure LTTng does not
++		 * trigger recursive page faults.
++		 */
++		printk_once(KERN_WARNING "LTTng: vmalloc_sync_mappings symbol lookup failed.\n");
++		printk_once(KERN_WARNING "Page fault handler and NMI tracing might trigger faults.\n");
++#endif
++	}
++}
++
++#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
++
++/*
++ * Map vmalloc_sync_mappings to vmalloc_sync_all() on kernels before 5.7.
++ */
+ static inline
+-void wrapper_vmalloc_sync_all(void)
++void wrapper_vmalloc_sync_mappings(void)
+ {
+ 	void (*vmalloc_sync_all_sym)(void);
+ 
+@@ -40,13 +67,29 @@ void wrapper_vmalloc_sync_all(void)
+ #endif
+ 	}
+ }
++
++#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
++
+ #else
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
++
++static inline
++void wrapper_vmalloc_sync_mappings(void)
++{
++	return vmalloc_sync_mappings();
++}
++
++#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
++
+ static inline
+-void wrapper_vmalloc_sync_all(void)
++void wrapper_vmalloc_sync_mappings(void)
+ {
+ 	return vmalloc_sync_all();
+ }
++
++#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
++
+ #endif
+ 
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
+@@ -61,7 +104,7 @@ void *lttng_kvmalloc_node(unsigned long size, gfp_t flags, int node)
+ 		 * Make sure we don't trigger recursive page faults in the
+ 		 * tracing fast path.
+ 		 */
+-		wrapper_vmalloc_sync_all();
++		wrapper_vmalloc_sync_mappings();
+ 	}
+ 	return ret;
+ }
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-missing-wrapper-rename-to-wrapper_vmalloc_sync_m.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-missing-wrapper-rename-to-wrapper_vmalloc_sync_m.patch
new file mode 100644
index 0000000..807fe93
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-missing-wrapper-rename-to-wrapper_vmalloc_sync_m.patch
@@ -0,0 +1,32 @@
+From 4d1817c129310945bf0b8227ebc0fbb4f6299dc7 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Wed, 6 May 2020 11:03:32 -0400
+Subject: [PATCH 2/4] Fix: missing wrapper rename to
+ wrapper_vmalloc_sync_mappings
+
+Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/c1ba644f2edf6a5bc030111ce4167a8798cc1053]
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: Idf7082a980c5a604bfef5c69906678b5083a9bbf
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ wrapper/vmalloc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/wrapper/vmalloc.h b/wrapper/vmalloc.h
+index 54715b5..5d0b389 100644
+--- a/wrapper/vmalloc.h
++++ b/wrapper/vmalloc.h
+@@ -216,7 +216,7 @@ void *lttng_kvmalloc_node(unsigned long size, gfp_t flags, int node)
+ 		 * Make sure we don't trigger recursive page faults in the
+ 		 * tracing fast path.
+ 		 */
+-		wrapper_vmalloc_sync_all();
++		wrapper_vmalloc_sync_mappings();
+ 	}
+ 	return ret;
+ }
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-Use-vmalloc_sync_mappings-on-kernel-5.6-as-well.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-Use-vmalloc_sync_mappings-on-kernel-5.6-as-well.patch
new file mode 100644
index 0000000..48d7e2f
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-Use-vmalloc_sync_mappings-on-kernel-5.6-as-well.patch
@@ -0,0 +1,88 @@
+From 23cfd7b53ec1521d3c23ceddfda49352c2d349dc Mon Sep 17 00:00:00 2001
+From: Ovidiu Panait <ovidiu.panait@windriver.com>
+Date: Thu, 14 May 2020 13:05:24 +0300
+Subject: [PATCH 3/4] Fix: Use vmalloc_sync_mappings on kernel 5.6 as well
+
+Upstream commit [1], that got rid of vmalloc_sync_all and introduced
+vmalloc_sync_mappings, is a v5.6 commit:
+$ git tag --contains 763802b53a427ed3cbd419dbba255c414fdd9e7c
+v5.6
+v5.6-rc7
+v5.7-rc1
+v5.7-rc2
+v5.7-rc3
+
+Extend the LINUX_VERSION_CODE check to v5.6 to fix the following warnings:
+...
+[  483.242037] LTTng: vmalloc_sync_all symbol lookup failed.
+[  483.257056] Page fault handler and NMI tracing might trigger faults.
+...
+
+[1] https://github.com/torvalds/linux/commit/763802b53a427ed3cbd419dbba255c414fdd9e7c
+
+Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/da356b324dfc160e09b8966b691792037badf455]
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ wrapper/vmalloc.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/wrapper/vmalloc.h b/wrapper/vmalloc.h
+index 5d0b389..d905f60 100644
+--- a/wrapper/vmalloc.h
++++ b/wrapper/vmalloc.h
+@@ -21,7 +21,7 @@
+ #include <linux/kallsyms.h>
+ #include <wrapper/kallsyms.h>
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
+ 
+ static inline
+ void wrapper_vmalloc_sync_mappings(void)
+@@ -43,7 +43,7 @@ void wrapper_vmalloc_sync_mappings(void)
+ 	}
+ }
+ 
+-#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
++#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
+ 
+ /*
+  * Map vmalloc_sync_mappings to vmalloc_sync_all() on kernels before 5.7.
+@@ -68,11 +68,11 @@ void wrapper_vmalloc_sync_mappings(void)
+ 	}
+ }
+ 
+-#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
++#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
+ 
+ #else
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
+ 
+ static inline
+ void wrapper_vmalloc_sync_mappings(void)
+@@ -80,7 +80,7 @@ void wrapper_vmalloc_sync_mappings(void)
+ 	return vmalloc_sync_mappings();
+ }
+ 
+-#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
++#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
+ 
+ static inline
+ void wrapper_vmalloc_sync_mappings(void)
+@@ -88,7 +88,7 @@ void wrapper_vmalloc_sync_mappings(void)
+ 	return vmalloc_sync_all();
+ }
+ 
+-#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,7,0)) */
++#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)) */
+ 
+ #endif
+ 
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Update-Use-vmalloc_sync_mappings-for-stable-kernels.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Update-Use-vmalloc_sync_mappings-for-stable-kernels.patch
new file mode 100644
index 0000000..a0b8704
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Update-Use-vmalloc_sync_mappings-for-stable-kernels.patch
@@ -0,0 +1,67 @@
+From f419315f28a1da656c4faa8a852a2928ce38c72d Mon Sep 17 00:00:00 2001
+From: Ovidiu Panait <ovidiu.panait@windriver.com>
+Date: Thu, 14 May 2020 14:27:17 +0300
+Subject: [PATCH 4/4] Update: Use vmalloc_sync_mappings for stable kernels
+
+Starting from v5.4.28/v5.2.37/v4.19.113/v4.14.175/v4.9.218/v4.4.218, stable
+kernel branches backported v5.6 upstream commit [1], causing the following
+warnings:
+...
+[  483.242037] LTTng: vmalloc_sync_all symbol lookup failed.
+[  483.257056] Page fault handler and NMI tracing might trigger faults.
+...
+
+Extend check for vmalloc_sync_mappings for stable kernels as well.
+
+[1] https://github.com/torvalds/linux/commit/763802b53a427ed3cbd419dbba255c414fdd9e7c
+
+[ Edit: minor coding style fix by Mathieu Desnoyers. ]
+
+Upstream-Status: Backport [https://github.com/lttng/lttng-modules/commit/5939591f87dc291bc858caf72decfb8569d802e3]
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ wrapper/vmalloc.h | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/wrapper/vmalloc.h b/wrapper/vmalloc.h
+index d905f60..c7538ae 100644
+--- a/wrapper/vmalloc.h
++++ b/wrapper/vmalloc.h
+@@ -20,8 +20,15 @@
+ 
+ #include <linux/kallsyms.h>
+ #include <wrapper/kallsyms.h>
++#include <lttng-kernel-version.h>
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) \
++  || LTTNG_KERNEL_RANGE(5,4,28, 5,5,0)            \
++  || LTTNG_KERNEL_RANGE(5,2,37, 5,3,0)            \
++  || LTTNG_KERNEL_RANGE(4,19,113, 4,20,0)         \
++  || LTTNG_KERNEL_RANGE(4,14,175, 4,15,0)         \
++  || LTTNG_KERNEL_RANGE(4,9,218, 4,10,0)          \
++  || LTTNG_KERNEL_RANGE(4,4,218, 4,5,0))
+ 
+ static inline
+ void wrapper_vmalloc_sync_mappings(void)
+@@ -72,7 +79,13 @@ void wrapper_vmalloc_sync_mappings(void)
+ 
+ #else
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0) \
++  || LTTNG_KERNEL_RANGE(5,4,28, 5,5,0)            \
++  || LTTNG_KERNEL_RANGE(5,2,37, 5,3,0)            \
++  || LTTNG_KERNEL_RANGE(4,19,113, 4,20,0)         \
++  || LTTNG_KERNEL_RANGE(4,14,175, 4,15,0)         \
++  || LTTNG_KERNEL_RANGE(4,9,218, 4,10,0)          \
++  || LTTNG_KERNEL_RANGE(4,4,218, 4,5,0))
+ 
+ static inline
+ void wrapper_vmalloc_sync_mappings(void)
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.11.2.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.0.bb
similarity index 74%
rename from poky/meta/recipes-kernel/lttng/lttng-modules_2.11.2.bb
rename to poky/meta/recipes-kernel/lttng/lttng-modules_2.12.0.bb
index 6fff096..4a6c42e 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.11.2.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.0.bb
@@ -11,10 +11,14 @@
 SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
            file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
+           file://0001-Update-for-kernel-5.7-use-vmalloc_sync_mappings-on-k.patch \
+           file://0002-Fix-missing-wrapper-rename-to-wrapper_vmalloc_sync_m.patch \
+           file://0003-Fix-Use-vmalloc_sync_mappings-on-kernel-5.6-as-well.patch \
+           file://0004-Update-Use-vmalloc_sync_mappings-for-stable-kernels.patch \
            "
 
-SRC_URI[md5sum] = "2e3bc8cfb264fa13f374618b46f170e7"
-SRC_URI[sha256sum] = "8a42240813b8fd1d001835cd6f5ec687f7d7f3b26070d4e21604c35a51a6441d"
+SRC_URI[md5sum] = "be252df5013ea03894921d0b493c7b6c"
+SRC_URI[sha256sum] = "efeb2ae60e96dbe9a9b342d3a80dfc7642f06a8c09686089d491ad696bb98f4d"
 
 export INSTALL_MOD_DIR="kernel/lttng-modules"
 
@@ -33,11 +37,11 @@
 BBCLASSEXTEND = "devupstream:target"
 LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128"
 DEFAULT_PREFERENCE_class-devupstream = "-1"
-SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.11 \
+SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.12 \
            file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
            file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
            "
 SRCREV_class-devupstream = "17c413953603f063f2a9d6c3788bec914ce6f955"
-PV_class-devupstream = "2.11.2+git${SRCPV}"
+PV_class-devupstream = "2.12.0+git${SRCPV}"
 S_class-devupstream = "${WORKDIR}/git"
 SRCREV_FORMAT ?= "lttng_git"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch
new file mode 100644
index 0000000..a150d64
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools/0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch
@@ -0,0 +1,43 @@
+From e5d94cf4882cc6516af52b794c6acb8e4d6469a3 Mon Sep 17 00:00:00 2001
+From: Ovidiu Panait <ovidiu.panait@windriver.com>
+Date: Mon, 18 May 2020 16:39:26 +0300
+Subject: [PATCH] tests: gen-ust-events-ns/tp.h: Fix build with musl libc
+
+Fix the following build error with musl libc:
+In file included from ../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/tp.h:14,
+                 from ../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/tp.c:10:
+../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/tp.h:17:10: error: unknown type name 'ino_t'; did you mean 'int8_t'?
+   17 |  TP_ARGS(ino_t, ns_ino),
+      |          ^~~~~
+../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/tp.h:17:10: error: unknown type name 'ino_t'; did you mean 'int8_t'?
+   17 |  TP_ARGS(ino_t, ns_ino),
+      |          ^~~~~
+../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/./tp.h:17:2: error: unknown type name 'ino_t'; did you mean 'int8_t'?
+   17 |  TP_ARGS(ino_t, ns_ino),
+      |  ^~~~~~~
+../../../../../lttng-tools-2.12.0/tests/utils/testapp/gen-ust-events-ns/./tp.h:17:2: error: unknown type name 'ino_t'; did you mean 'int8_t'?
+   17 |  TP_ARGS(ino_t, ns_ino),
+      |  ^~~~~~~
+
+Upstream-Status: Submitted [https://github.com/lttng/lttng-tools/pull/161]
+
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ tests/utils/testapp/gen-ust-events-ns/tp.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/utils/testapp/gen-ust-events-ns/tp.h b/tests/utils/testapp/gen-ust-events-ns/tp.h
+index 4dbfed5..e0ddb29 100644
+--- a/tests/utils/testapp/gen-ust-events-ns/tp.h
++++ b/tests/utils/testapp/gen-ust-events-ns/tp.h
+@@ -11,6 +11,7 @@
+ #if !defined(_TRACEPOINT_TP_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
+ #define _TRACEPOINT_TP_H
+ 
++#include <sys/types.h>
+ #include <lttng/tracepoint.h>
+ 
+ TRACEPOINT_EVENT(tp, tptest,
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools/x32.patch b/poky/meta/recipes-kernel/lttng/lttng-tools/x32.patch
deleted file mode 100644
index 42cebf9..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-tools/x32.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Fix build for x32
-
-Signed-off-by: Christopher Larson <chris_larson@mentor.com>
-
-Fix build error of src/common/utils.c for x32.
-
-Upstream-Status: Submitted [https://github.com/lttng/lttng-tools/pull/150]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-diff --git a/src/bin/lttng/utils.c b/src/bin/lttng/utils.c
-index 0e96ef0c..5c79c8c7 100644
---- a/src/bin/lttng/utils.c
-+++ b/src/bin/lttng/utils.c
-@@ -158,7 +158,7 @@ unsigned int fls_u32(uint32_t x)
- #define HAS_FLS_U32
- #endif
- 
--#if defined(__x86_64)
-+#if defined(__x86_64) && !defined(__ILP32__)
- static inline
- unsigned int fls_u64(uint64_t x)
- {
-diff --git a/src/common/utils.c b/src/common/utils.c
-index 08139e5e..3c389981 100644
---- a/src/common/utils.c
-+++ b/src/common/utils.c
-@@ -1223,7 +1223,7 @@ static inline unsigned int fls_u32(uint32_t x)
- #define HAS_FLS_U32
- #endif
- 
--#if defined(__x86_64)
-+#if defined(__x86_64) && !defined(__ILP32__)
- static inline
- unsigned int fls_u64(uint64_t x)
- {
diff --git a/poky/meta/recipes-kernel/lttng/lttng-tools_2.11.2.bb b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.0.bb
similarity index 92%
rename from poky/meta/recipes-kernel/lttng/lttng-tools_2.11.2.bb
rename to poky/meta/recipes-kernel/lttng/lttng-tools_2.12.0.bb
index 36a19ec..148a792 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-tools_2.11.2.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-tools_2.12.0.bb
@@ -5,9 +5,9 @@
 and interpret them."
 
 LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=01d7fc4496aacf37d90df90b90b0cac1 \
-                    file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://lgpl-2.1.txt;md5=0f0d71500e6a57fd24d825f33242b9ca"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=40ef17463fbd6f377db3c47b1cbaded8 \
+                    file://LICENSES/GPL-2.0;md5=e68f69a54b44ba526ad7cb963e18fbce \
+                    file://LICENSES/LGPL-2.1;md5=9920968d0f2ff585ce61fae30344dd95"
 
 DEPENDS = "liburcu popt libxml2 util-linux"
 RDEPENDS_${PN} = "libgcc"
@@ -29,15 +29,15 @@
 PACKAGECONFIG_remove_arc = "lttng-ust"
 
 SRC_URI = "https://lttng.org/files/lttng-tools/lttng-tools-${PV}.tar.bz2 \
-           file://x32.patch \
            file://0001-tests-do-not-strip-a-helper-library.patch \
            file://run-ptest \
            file://lttng-sessiond.service \
            file://0001-tests-regression-disable-the-tools-live-tests.patch \
+           file://0001-tests-gen-ust-events-ns-tp.h-Fix-build-with-musl-lib.patch \
            "
 
-SRC_URI[md5sum] = "68ed78f7fa4235477ea577e48b3cd245"
-SRC_URI[sha256sum] = "936477305b25f65c5dd22db9161287d30a309ce868b6180857b1fd1fb5e6a56b"
+SRC_URI[md5sum] = "4592201ea981f0722438345fb1f009d2"
+SRC_URI[sha256sum] = "405661d27617dc79a42712174a051a45c7ca12d167576c0d93f2de708ed29445"
 
 inherit autotools ptest pkgconfig useradd python3-dir manpages systemd
 
@@ -71,7 +71,7 @@
         install -D "${B}/$f" "${D}${PTEST_PATH}/$f"
     done
 
-    for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-3.0.xsd; do
+    for f in config/tap-driver.sh config/test-driver src/common/config/session.xsd src/common/mi-lttng-4.0.xsd; do
         install -D "${S}/$f" "${D}${PTEST_PATH}/$f"
     done
 
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.11.1.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
similarity index 93%
rename from poky/meta/recipes-kernel/lttng/lttng-ust_2.11.1.bb
rename to poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
index 3bd0dfa..ad544d1 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-ust_2.11.1.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.0.bb
@@ -31,8 +31,8 @@
            file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \
            "
 
-SRC_URI[md5sum] = "7de04a8ff1f0a4effa09a42620ec4081"
-SRC_URI[sha256sum] = "7fbab963d60741ffd4d8dd0a246f6cf168cdfe3b2385798bd90550f5f0bba869"
+SRC_URI[md5sum] = "3bf4a04c305271d13cf6596c4e7b9b3c"
+SRC_URI[sha256sum] = "1983edb525f3f27e3494088d8d5389b4c71af66bbfe63c6f1df2ad95aa44a528"
 
 CVE_PRODUCT = "ust"
 
diff --git a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
index 460e05a..0be1422 100644
--- a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
+++ b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
@@ -12,6 +12,8 @@
 do_configure[depends] += "virtual/kernel:do_shared_workdir openssl-native:do_populate_sysroot"
 do_compile[depends] += "virtual/kernel:do_compile_kernelmodules"
 
+RDEPENDS_${PN}-dev = ""
+
 DEPENDS += "bc-native bison-native"
 
 EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb
index 9882e12..d092b15 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-plugins_1.2.1.bb
@@ -167,7 +167,7 @@
 "
 
 RDEPENDS_${PN}-pulseaudio-conf += "\
-        libasound-module-conf-pulse \
-        libasound-module-ctl-pulse \
-        libasound-module-pcm-pulse \
+        ${MLPREFIX}libasound-module-conf-pulse \
+        ${MLPREFIX}libasound-module-ctl-pulse \
+        ${MLPREFIX}libasound-module-pcm-pulse \
 "
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb
index 288c715..e9941c7 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb
@@ -39,8 +39,8 @@
           "
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '' ,d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2' ,d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'webgl opengl', '', d)} \
+                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', 'webgl gles2', d)} \
                    enchant \
                    libsecret \
                   "
diff --git a/poky/meta/recipes-support/atk/at-spi2-atk_2.34.2.bb b/poky/meta/recipes-support/atk/at-spi2-atk_2.34.2.bb
index 107d312..02a4d47 100644
--- a/poky/meta/recipes-support/atk/at-spi2-atk_2.34.2.bb
+++ b/poky/meta/recipes-support/atk/at-spi2-atk_2.34.2.bb
@@ -9,7 +9,7 @@
 DEPENDS = "dbus glib-2.0 glib-2.0-native atk at-spi2-core libxml2"
 
 GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase features_check upstream-version-is-even
+inherit gnomebase upstream-version-is-even
 
 PACKAGES =+ "${PN}-gnome ${PN}-gtk2"
 
diff --git a/poky/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb b/poky/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb
index 7c4db85..694c5f0 100644
--- a/poky/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb
+++ b/poky/meta/recipes-support/bmap-tools/bmap-tools_3.5.bb
@@ -11,7 +11,7 @@
 
 SRC_URI = "git://github.com/intel/${BPN}"
 
-SRCREV = "db7087b883bf52cbff063ad17a41cc1cbb85104d"
+SRCREV = "a17f0e3ff8669dd3b1c44a741ae4f8162155faed"
 S = "${WORKDIR}/git"
 PV .= "+git${SRCPV}"
 
diff --git a/poky/meta/recipes-support/boost/boost.inc b/poky/meta/recipes-support/boost/boost.inc
index 8eb9494..ca140d5 100644
--- a/poky/meta/recipes-support/boost/boost.inc
+++ b/poky/meta/recipes-support/boost/boost.inc
@@ -62,12 +62,16 @@
 python __anonymous () {
     packages = []
     extras = []
+    mlprefix = d.getVar("MLPREFIX")
     for lib in d.getVar('BOOST_LIBS').split():
         extras.append("--with-%s" % lib)
-        pkg = "boost-%s" % lib.replace("_", "-")
-        packages.append(pkg)
+        pkg = "boost-%s" % (lib.replace("_", "-"))
+        packages.append(mlprefix + pkg)
         if not d.getVar("FILES_%s" % pkg):
-                d.setVar("FILES_%s" % pkg, "${libdir}/libboost_%s*.so.*" % lib)
+                d.setVar("FILES_%s%s" % (mlprefix, pkg), "${libdir}/libboost_%s*.so.*" % lib)
+        else:
+                d.setVar("FILES_%s%s" % (mlprefix, pkg), d.getVar("FILES_%s" % pkg))
+
     d.setVar("BOOST_PACKAGES", " ".join(packages))
     d.setVar("BJAM_EXTRA", " ".join(extras))
 }
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_143.bb b/poky/meta/recipes-support/diffoscope/diffoscope_144.bb
similarity index 75%
rename from poky/meta/recipes-support/diffoscope/diffoscope_143.bb
rename to poky/meta/recipes-support/diffoscope/diffoscope_144.bb
index 4ba3832..3a877ca 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_143.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_144.bb
@@ -7,8 +7,8 @@
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "a86cf8467a5dec99832d5c082928f937"
-SRC_URI[sha256sum] = "a1fb4dd97af92bb8ce275d1caf465971726919e28efe5f043bd3ea9afb50574a"
+SRC_URI[md5sum] = "4ee9d1a36086caa31ccbc6300ad31652"
+SRC_URI[sha256sum] = "9a45464b7b7184fa1ad2af9c52ebac8f00b3dd5dcf9e15dfc00c653c26fcc345"
 
 RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic"
 
diff --git a/poky/meta/recipes-support/iso-codes/iso-codes_4.4.bb b/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb
similarity index 91%
rename from poky/meta/recipes-support/iso-codes/iso-codes_4.4.bb
rename to poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb
index 332af02..6f9868f 100644
--- a/poky/meta/recipes-support/iso-codes/iso-codes_4.4.bb
+++ b/poky/meta/recipes-support/iso-codes/iso-codes_4.5.0.bb
@@ -6,7 +6,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
 SRC_URI = "git://salsa.debian.org/iso-codes-team/iso-codes.git;protocol=http"
-SRCREV = "38edb926592954b87eb527124da0ec68d2a748f3"
+SRCREV = "a36019e5014bff251f83d522ddcfebaecf52afd3"
 
 # inherit gettext cannot be used, because it adds gettext-native to BASEDEPENDS which
 # are inhibited by allarch
diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.68.4.bb b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb
similarity index 90%
rename from poky/meta/recipes-support/libsoup/libsoup-2.4_2.68.4.bb
rename to poky/meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb
index 6731b33..d10db79 100644
--- a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.68.4.bb
+++ b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.70.0.bb
@@ -10,8 +10,8 @@
 SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
 
 SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz"
-SRC_URI[md5sum] = "603f3a945cd6ecc1fda644d7853b3b81"
-SRC_URI[sha256sum] = "2d50b12922cc516ab6a7c35844d42f9c8a331668bbdf139232743d82582b3294"
+SRC_URI[md5sum] = "c539f5b5ab534f024dc4e6a14e6d3f54"
+SRC_URI[sha256sum] = "54b020f74aefa438918d8e53cff62e2b1e59efe2de53e06b19a4b07b1f4d5342"
 
 CVE_PRODUCT = "libsoup"
 
diff --git a/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb b/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb
index 8c500dc..d9ca073 100644
--- a/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb
+++ b/poky/meta/recipes-support/pinentry/pinentry_1.1.0.bb
@@ -28,7 +28,6 @@
 PACKAGECONFIG[qt] = "--enable-pinentry-qt, --disable-pinentry-qt, qtbase-native qtbase"
 PACKAGECONFIG[gtk2] = "--enable-pinentry-gtk2, --disable-pinentry-gtk2, gtk+ glib-2.0"
 
-#To use libsecret, add meta-gnome
 PACKAGECONFIG[secret] = "--enable-libsecret, --disable-libsecret, libsecret"
 
 EXTRA_OECONF = " \
diff --git a/poky/meta/recipes-support/re2c/re2c_1.0.1.bb b/poky/meta/recipes-support/re2c/re2c_1.0.1.bb
deleted file mode 100644
index 35200ec..0000000
--- a/poky/meta/recipes-support/re2c/re2c_1.0.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Tool for writing very fast and very flexible scanners"
-HOMEPAGE = "http://re2c.sourceforge.net/"
-AUTHOR = "Marcus Börger <helly@users.sourceforge.net>"
-SECTION = "devel"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://README;beginline=146;md5=881056c9add17f8019ccd8c382ba963a"
-
-SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "e2c6cf52fc6a21595f21bc82db5324f8"
-SRC_URI[sha256sum] = "605058d18a00e01bfc32aebf83af35ed5b13180b4e9f279c90843afab2c66c7c"
-UPSTREAM_CHECK_URI = "https://github.com/skvadrik/re2c/releases"
-
-BBCLASSEXTEND = "native"
-
-inherit autotools
diff --git a/poky/meta/recipes-support/re2c/re2c_1.3.bb b/poky/meta/recipes-support/re2c/re2c_1.3.bb
new file mode 100644
index 0000000..0e1d938
--- /dev/null
+++ b/poky/meta/recipes-support/re2c/re2c_1.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Tool for writing very fast and very flexible scanners"
+HOMEPAGE = "http://re2c.sourceforge.net/"
+AUTHOR = "Marcus Börger <helly@users.sourceforge.net>"
+SECTION = "devel"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d"
+
+SRC_URI = "https://github.com/skvadrik/re2c/releases/download/${PV}/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "f37f25ff760e90088e7d03d1232002c2c2672646d5844fdf8e0d51a5cd75a503"
+UPSTREAM_CHECK_URI = "https://github.com/skvadrik/re2c/releases"
+
+BBCLASSEXTEND = "native nativesdk"
+
+inherit autotools
diff --git a/poky/scripts/lib/checklayer/__init__.py b/poky/scripts/lib/checklayer/__init__.py
index 5aeec2f..1138000 100644
--- a/poky/scripts/lib/checklayer/__init__.py
+++ b/poky/scripts/lib/checklayer/__init__.py
@@ -143,6 +143,9 @@
 
 def _find_layer_depends(depend, layers):
     for layer in layers:
+        if 'collections' not in layer:
+            continue
+
         for collection in layer['collections']:
             if depend == collection:
                 return layer
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index cb6dce3..f962a71 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -391,12 +391,12 @@
             newvalues['SRC_URI[%s.md5sum]' % name] = None
             newvalues['SRC_URI[%s.sha256sum]' % name] = None
 
-    if md5 and sha256:
+    if sha256:
         if addnames:
             nameprefix = '%s.' % addnames[0]
         else:
             nameprefix = ''
-        newvalues['SRC_URI[%smd5sum]' % nameprefix] = md5
+        newvalues['SRC_URI[%smd5sum]' % nameprefix] = None
         newvalues['SRC_URI[%ssha256sum]' % nameprefix] = sha256
 
     if srcsubdir_new != srcsubdir_old:
diff --git a/poky/scripts/lib/resulttool/log.py b/poky/scripts/lib/resulttool/log.py
index f1bfd99..eb3927e 100644
--- a/poky/scripts/lib/resulttool/log.py
+++ b/poky/scripts/lib/resulttool/log.py
@@ -34,13 +34,17 @@
         return 1
 
     for _, run_name, _, r in resultutils.test_run_results(results):
-        if args.dump_ptest and 'ptestresult.sections' in r:
-            for name, ptest in r['ptestresult.sections'].items():
-                logdata = resultutils.ptestresult_get_log(r, name)
+        if args.dump_ptest:
+            for sectname in ['ptestresult.sections', 'ltpposixresult.sections', 'ltpresult.sections']:
+             if sectname in r:
+              for name, ptest in r[sectname].items():
+                logdata = resultutils.generic_get_log(sectname, r, name)
                 if logdata is not None:
                     dest_dir = args.dump_ptest
                     if args.prepend_run:
                         dest_dir = os.path.join(dest_dir, run_name)
+                    if not sectname.startswith("ptest"):
+                        dest_dir = os.path.join(dest_dir, sectname.split(".")[0])
 
                     os.makedirs(dest_dir, exist_ok=True)
                     dest = os.path.join(dest_dir, '%s.log' % name)
@@ -49,10 +53,13 @@
                         f.write(logdata)
 
         if args.raw_ptest:
-            rawlog = resultutils.ptestresult_get_rawlogs(r)
-            if rawlog is not None:
-                print(rawlog)
-            else:
+            found = False
+            for sectname in ['ptestresult.rawlogs', 'ltpposixresult.rawlogs', 'ltpresult.rawlogs']:
+                rawlog = resultutils.generic_get_rawlogs(sectname, r)
+                if rawlog is not None:
+                    print(rawlog)
+                    found = True
+            if not found:
                 print('Raw ptest logs not found')
                 return 1
 
diff --git a/poky/scripts/lib/resulttool/report.py b/poky/scripts/lib/resulttool/report.py
index 7ceceac..f0ca50e 100644
--- a/poky/scripts/lib/resulttool/report.py
+++ b/poky/scripts/lib/resulttool/report.py
@@ -96,7 +96,6 @@
         if 'ltpresult.sections' in result and suite not in result['ltpresult.sections']:
             try:
                 _, suite, suite1, test = k.split(".", 3)
-                print("split2: %s %s %s" % (suite, suite1, test))
                 if suite + "." + suite1 in result['ltpresult.sections']:
                     suite = suite + "." + suite1
             except ValueError:
diff --git a/poky/scripts/lib/resulttool/resultutils.py b/poky/scripts/lib/resulttool/resultutils.py
index 5fec01f..8917022 100644
--- a/poky/scripts/lib/resulttool/resultutils.py
+++ b/poky/scripts/lib/resulttool/resultutils.py
@@ -130,23 +130,29 @@
             return data.decode("utf-8", errors='ignore')
     return None
 
-def ptestresult_get_log(results, section):
-    if 'ptestresult.sections' not in results:
+def generic_get_log(sectionname, results, section):
+    if sectionname not in results:
         return None
-    if section not in results['ptestresult.sections']:
+    if section not in results[sectionname]:
         return None
 
-    ptest = results['ptestresult.sections'][section]
+    ptest = results[sectionname][section]
     if 'log' not in ptest:
         return None
     return decode_log(ptest['log'])
 
+def ptestresult_get_log(results, section):
+    return generic_get_log('ptestresuls.sections', results, section)
+
+def generic_get_rawlogs(sectname, results):
+    if sectname not in results:
+        return None
+    if 'log' not in results[sectname]:
+        return None
+    return decode_log(results[sectname]['log'])
+
 def ptestresult_get_rawlogs(results):
-    if 'ptestresult.rawlogs' not in results:
-        return None
-    if 'log' not in results['ptestresult.rawlogs']:
-        return None
-    return decode_log(results['ptestresult.rawlogs']['log'])
+    return generic_get_rawlogs('ptestresult.rawlogs', results)
 
 def save_resultsdata(results, destdir, fn="testresults.json", ptestjson=False, ptestlogs=False):
     for res in results:
diff --git a/poky/scripts/multilib_header_wrapper.h b/poky/scripts/multilib_header_wrapper.h
index c81e7ee..88f3193 100644
--- a/poky/scripts/multilib_header_wrapper.h
+++ b/poky/scripts/multilib_header_wrapper.h
@@ -5,26 +5,9 @@
  * 
  */
 
-#pragma once
-
-#if defined (__bpf__)
-#define __MHWORDSIZE			64
-#elif defined (__arm__)
-#define __MHWORDSIZE			32
-#elif defined (__aarch64__) && defined ( __LP64__)
-#define __MHWORDSIZE			64
-#elif defined (__aarch64__)
-#define __MHWORDSIZE			32
-#else
 #include <bits/wordsize.h>
-#if defined (__WORDSIZE)
-#define __MHWORDSIZE			__WORDSIZE
-#else
-#error "__WORDSIZE is not defined"
-#endif
-#endif
 
-#if __MHWORDSIZE == 32
+#if __WORDSIZE == 32
 
 #ifdef _MIPS_SIM
 
@@ -40,7 +23,7 @@
 #include <ENTER_HEADER_FILENAME_HERE-32.h>
 #endif
 
-#elif __MHWORDSIZE == 64
+#elif __WORDSIZE == 64
 #include <ENTER_HEADER_FILENAME_HERE-64.h>
 #else
 #error "Unknown __WORDSIZE detected"
