poky: subtree update:20946c63c2..c17113f1e2

Adrian Bunk (3):
      shadow: musl now supports secure_getenv
      kmod: Replace dolt hacks with backport of upstream dolt removal
      btrfs-tools: Add a PACKAGECONFIG for zstd

Alexander Kanavin (12):
      linux-yocto: add drm-bochs support
      mesa: fix upstream version check
      conf/conf-notes.txt: add a mention of common tools
      conf/conf-notes.txt: add a mention of common tools
      gtk-doc: upgrade 1.30 -> 1.31
      desktop-file-utils: upgrade 0.23 -> 0.24
      libdazzle: upgrade 3.32.2 -> 3.32.3
      rt-tests: exclude another development version
      vala: upgrade 0.44.5 -> 0.44.7
      epiphany: upgrade 3.32.3 -> 3.32.4
      libmodulemd: depend on target python at build time
      createrepo-c: upgrade 0.14.3 -> 0.15.0

Alistair Francis (3):
      qemu: Upgrade to version 4.1
      scripts/runqemu: Add support for the BIOS variable
      qemuriscv64: Specify the firmware as a bios instead of kernel

Anuj Mittal (2):
      binutils: fix CVE-2019-14250 CVE-2019-14444
      patch: backport fixes

Bruce Ashfield (6):
      kernel-devsrc: tweak for v5.3+
      kern-tools: Add SPDX license headers to source files
      linux-yocto: arch/x86/boot: use prefix map to avoid embedded paths
      kernel-yocto: import security fragments from meta-security
      kconf_check: tweak CONFIG_ regex
      linux-yocto/4.19: make drm-bochs feature available

Changqing Li (2):
      dbus: disable test-bus
      qemumips/qemumips64: move QB_SYSTEM_NAME to corresponding conf

Chen Qi (1):
      target-sdk-provides-dummy: extend packages for multilib case

He Zhe (2):
      ltp: Fix tgkill03 failure
      ltp: Fix ustat02 failure

Hongxu Jia (3):
      nfs-utils: decrease RLIMIT_NOFILE to 4k for systemd
      distcc: upgrade 3.3.2 -> 3.3.3
      ncurses: upgrade 6.1+20181013 -> 6.1+20190803

Jaewon Lee (1):
      devtool: build: Also run deploy for devtool build if applicable

Jason Wessel (2):
      cross-localedef-native: Add hardlink resolver from util-linux
      libc-package.bbclass: Split locale hard link processing into two parts

Jon Mason (1):
      resulttool: Prevent multiple results for the same test

Kai Kang (1):
      webkitgtk: disable gold on mipsn32

Kevin Hao (1):
      psplash: Avoid mount the psplash tmpfs twice

Khem Raj (10):
      musl: Update to latest tip
      systemd: Drop musl __secure_getenv patch
      mesa: Add packageconfigs for vc4 and v3d
      util-linux: Make pam specific logic apply to target recipe alone
      systemd.bbclass: Limit rm_sysvinit_initddir and rm_systemd_unitdir to target alone
      systemd: Refresh patch after removal of __secure_getenv patch
      gcc-9: Upgrade to 9.2
      gcc: Search in OE specific target gcclibdir
      opensbi: Disable SECURITY_CFLAGS since it cant link with libssp
      libffi: Upgrade to 3.3-rc0

Lei Maohui (2):
      nativesdk-qemu: support aarch64_be.
      at: fix a spelling mistake.

Mikko Rapeli (1):
      stress-ng: provide stress

Mingli Yu (1):
      python3: fix the test_locale output format

Oleksandr Kravchuk (8):
      ffmpeg: update to 4.2
      python-setuptools: update to 41.1.0
      python3-scons: update to 3.1.1
      ofono: update to 1.30
      bitbake.conf: fix XORG_MIRROR URL
      cups: update to 2.2.12
      git: update to 2.23.0
      python-setuptools: update to 41.2.0

Otavio Salvador (2):
      linux-firmware: Upgrade 20190618 -> 20190815
      kmscube: Bump revision to f632b23

Philippe Normand (1):
      libtasn1: Enable nativesdk support

Ricardo Ribalda Delgado (1):
      packagegroup-core-base-utils: Make it machine specific

Richard Purdie (7):
      yocto-check-layer: Ensure we use OEBasicHash as the signature handler
      package: Fix race between do_package and do_packagedata
      bitbake: cookerdata: Delay the setup of the siggen slightly to allow metadata defined siggens
      bitbake: runqueue: Small but critical fix
      bitbake: runqueue: Optimise holdoff task handling
      bitbake: runqueue: Further optimise holdoff tasks
      bitbake: runqueue: Optimise build_taskdepdata slightly

Ross Burton (2):
      systemd: add PACKAGECONFIG for gnu-efi
      pango: upgrade to 1.44.5

Trevor Gamblin (2):
      quilt: Export QUILT_PC variable in ptest Makefile
      quilt: added less to RDEPENDS list

Wes Lindauer (5):
      iw: Fix license field to BSD-2-Clause
      openssh: Update LICENSE field with missing values
      shadow: Fix BSD license file checksum
      sudo: Fix BSD license file checksum
      libunwind: Fix MIT license file checksum

Yuan Chao (1):
      libnss-nis: upgrade 3.0 -> 3.1

Zang Ruochen (3):
      acpid: upgrade 2.0.31 -> 2.0.32
      lz4:upgrade 1.9.1 -> 1.9.2
      python3-pip:upgrade 19.2.1 -> 19.2.2

Change-Id: I2068692bfdbbf18f892761a12f85e913b8212f3f
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
diff --git a/poky/bitbake/lib/bb/cookerdata.py b/poky/bitbake/lib/bb/cookerdata.py
index 144e803..96a8e6b 100644
--- a/poky/bitbake/lib/bb/cookerdata.py
+++ b/poky/bitbake/lib/bb/cookerdata.py
@@ -268,11 +268,11 @@
 
     def parseBaseConfiguration(self):
         try:
-            bb.parse.init_parser(self.basedata)
             self.data = self.parseConfigurationFiles(self.prefiles, self.postfiles)
 
             if self.data.getVar("BB_WORKERCONTEXT", False) is None:
                 bb.fetch.fetcher_init(self.data)
+            bb.parse.init_parser(self.data)
             bb.codeparser.parser_cache_init(self.data)
 
             bb.event.fire(bb.event.ConfigParsed(), self.data)
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 7fa074f..4f69578 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -1711,6 +1711,7 @@
         self.stampcache = {}
 
         self.holdoff_tasks = set()
+        self.holdoff_need_update = True
         self.sqdone = False
 
         self.stats = RunQueueStats(len(self.rqdata.runtaskentries))
@@ -2039,6 +2040,8 @@
             if self.can_start_task():
                 return True
 
+        self.update_holdofftasks()
+
         if not self.sq_live and not self.sqdone and not self.sq_deferred and not self.updated_taskhash_queue and not self.holdoff_tasks:
             logger.info("Setscene tasks completed")
 
@@ -2157,12 +2160,11 @@
 
         return True
 
-    def filtermcdeps(self, task, deps):
+    def filtermcdeps(self, task, mc, deps):
         ret = set()
-        mainmc = mc_from_tid(task)
         for dep in deps:
-            mc = mc_from_tid(dep)
-            if mc != mainmc:
+            thismc = mc_from_tid(dep)
+            if thismc != mc:
                 continue
             ret.add(dep)
         return ret
@@ -2171,9 +2173,10 @@
     # as most code can't handle them
     def build_taskdepdata(self, task):
         taskdepdata = {}
+        mc = mc_from_tid(task)
         next = self.rqdata.runtaskentries[task].depends.copy()
         next.add(task)
-        next = self.filtermcdeps(task, next)
+        next = self.filtermcdeps(task, mc, next)
         while next:
             additional = []
             for revdep in next:
@@ -2183,7 +2186,7 @@
                 provides = self.rqdata.dataCaches[mc].fn_provides[taskfn]
                 taskhash = self.rqdata.runtaskentries[revdep].hash
                 unihash = self.rqdata.runtaskentries[revdep].unihash
-                deps = self.filtermcdeps(task, deps)
+                deps = self.filtermcdeps(task, mc, deps)
                 taskdepdata[revdep] = [pn, taskname, fn, deps, provides, taskhash, unihash]
                 for revdep2 in deps:
                     if revdep2 not in taskdepdata:
@@ -2194,6 +2197,32 @@
         return taskdepdata
 
     def update_holdofftasks(self):
+
+        if not self.holdoff_need_update:
+            return
+
+        notcovered = set(self.scenequeue_notcovered)
+        notcovered |= self.cantskip
+        for tid in self.scenequeue_notcovered:
+            notcovered |= self.sqdata.sq_covered_tasks[tid]
+        notcovered |= self.sqdata.unskippable.difference(self.rqdata.runq_setscene_tids)
+        notcovered.intersection_update(self.tasks_scenequeue_done)
+
+        covered = set(self.scenequeue_covered)
+        for tid in self.scenequeue_covered:
+            covered |= self.sqdata.sq_covered_tasks[tid]
+        covered.difference_update(notcovered)
+        covered.intersection_update(self.tasks_scenequeue_done)
+
+        for tid in notcovered | covered:
+            if len(self.rqdata.runtaskentries[tid].depends) == 0:
+                self.setbuildable(tid)
+            elif self.rqdata.runtaskentries[tid].depends.issubset(self.runq_complete):
+                 self.setbuildable(tid)
+
+        self.tasks_covered = covered
+        self.tasks_notcovered = notcovered
+
         self.holdoff_tasks = set()
 
         for tid in self.rqdata.runq_setscene_tids:
@@ -2205,6 +2234,8 @@
                 if dep not in self.runq_complete:
                     self.holdoff_tasks.add(dep)
 
+        self.holdoff_need_update = False
+
     def process_possible_migrations(self):
 
         changed = set()
@@ -2283,6 +2314,7 @@
                 continue
 
             self.pending_migrations.remove(tid)
+            changed = True
 
             if tid in self.tasks_scenequeue_done:
                 self.tasks_scenequeue_done.remove(tid)
@@ -2323,7 +2355,7 @@
             self.sqdone = False
 
         if changed:
-            self.update_holdofftasks()
+            self.holdoff_need_update = True
 
     def scenequeue_updatecounters(self, task, fail=False):
 
@@ -2350,29 +2382,7 @@
                         new.add(dep)
             next = new
 
-        notcovered = set(self.scenequeue_notcovered)
-        notcovered |= self.cantskip
-        for tid in self.scenequeue_notcovered:
-            notcovered |= self.sqdata.sq_covered_tasks[tid]
-        notcovered |= self.sqdata.unskippable.difference(self.rqdata.runq_setscene_tids)
-        notcovered.intersection_update(self.tasks_scenequeue_done)
-
-        covered = set(self.scenequeue_covered)
-        for tid in self.scenequeue_covered:
-            covered |= self.sqdata.sq_covered_tasks[tid]
-        covered.difference_update(notcovered)
-        covered.intersection_update(self.tasks_scenequeue_done)
-
-        for tid in notcovered | covered:
-            if len(self.rqdata.runtaskentries[tid].depends) == 0:
-                self.setbuildable(tid)
-            elif self.rqdata.runtaskentries[tid].depends.issubset(self.runq_complete):
-                 self.setbuildable(tid)
-
-        self.tasks_covered = covered
-        self.tasks_notcovered = notcovered
-
-        self.update_holdofftasks()
+        self.holdoff_need_update = True
 
     def sq_task_completeoutright(self, task):
         """
diff --git a/poky/meta-poky/conf/conf-notes.txt b/poky/meta-poky/conf/conf-notes.txt
index f1a4f4d..67c177d 100644
--- a/poky/meta-poky/conf/conf-notes.txt
+++ b/poky/meta-poky/conf/conf-notes.txt
@@ -10,3 +10,8 @@
     meta-ide-support
 
 You can also run generated qemu images with a command like 'runqemu qemux86'
+
+Other commonly useful commands are:
+ - 'devtool' and 'recipetool' handle common recipe tasks
+ - 'bitbake-layers' handles common layer tasks
+ - 'oe-pkgdata-util' handles common target package tasks
diff --git a/poky/meta/classes/libc-package.bbclass b/poky/meta/classes/libc-package.bbclass
index 8859dad..a66e540 100644
--- a/poky/meta/classes/libc-package.bbclass
+++ b/poky/meta/classes/libc-package.bbclass
@@ -82,6 +82,9 @@
 	parent=$(dirname ${localedir})
 	mkdir -p ${PKGD}/$parent
 	tar -cf - -C $treedir/$parent -p $(basename ${localedir}) | tar -xf - -C ${PKGD}$parent
+
+	# Finalize tree by chaning all duplicate files into hard links
+	cross-localedef-hardlink -c -v ${WORKDIR}/locale-tree
 }
 
 inherit qemu
@@ -265,7 +268,7 @@
                 bb.error("locale_arch_options not found for target_arch=" + target_arch)
                 bb.fatal("unknown arch:" + target_arch + " for locale_arch_options")
 
-            localedef_opts += " --force  --no-archive --prefix=%s \
+            localedef_opts += " --force --no-hard-links --no-archive --prefix=%s \
                 --inputfile=%s/%s/i18n/locales/%s --charmap=%s %s/%s" \
                 % (treedir, treedir, datadir, locale, encoding, outputpath, name)
 
@@ -273,7 +276,7 @@
                 (path, i18npath, gconvpath, localedef_opts)
         else: # earlier slower qemu way 
             qemu = qemu_target_binary(d) 
-            localedef_opts = "--force --no-archive --prefix=%s \
+            localedef_opts = "--force --no-hard-links --no-archive --prefix=%s \
                 --inputfile=%s/i18n/locales/%s --charmap=%s %s" \
                 % (treedir, datadir, locale, encoding, name)
 
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index e67bb5b..114d6559 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -2252,14 +2252,18 @@
 }
 addtask do_package_setscene
 
-do_packagedata () {
-	:
+# Copy from PKGDESTWORK to tempdirectory as tempdirectory can be cleaned at both
+# do_package_setscene and do_packagedata_setscene leading to races
+python do_packagedata () {
+    src = d.expand("${PKGDESTWORK}")
+    dest = d.expand("${WORKDIR}/pkgdata-pdata-input")
+    oe.path.copyhardlinktree(src, dest)
 }
 
 addtask packagedata before do_build after do_package
 
 SSTATETASKS += "do_packagedata"
-do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}"
+do_packagedata[sstate-inputdirs] = "${WORKDIR}/pkgdata-pdata-input"
 do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}"
 do_packagedata[stamp-extra-info] = "${MACHINE_ARCH}"
 
diff --git a/poky/meta/classes/systemd.bbclass b/poky/meta/classes/systemd.bbclass
index d1cb17d..747055b8 100644
--- a/poky/meta/classes/systemd.bbclass
+++ b/poky/meta/classes/systemd.bbclass
@@ -214,7 +214,6 @@
         if (os.path.exists(systemd_libdir) and not os.listdir(systemd_libdir)):
             os.rmdir(systemd_libdir)
 }
-do_install[postfuncs] += "rm_systemd_unitdir "
 
 python rm_sysvinit_initddir (){
     import shutil
@@ -229,4 +228,8 @@
         if (os.path.exists(systemd_system_unitdir) and os.listdir(systemd_system_unitdir)):
             shutil.rmtree(sysv_initddir)
 }
-do_install[postfuncs] += "rm_sysvinit_initddir "
+
+do_install[postfuncs] += "${RMINITDIR} "
+RMINITDIR_class-target = " rm_sysvinit_initddir rm_systemd_unitdir "
+RMINITDIR = ""
+
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index ddcac09..1311e6b 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -649,7 +649,7 @@
 KERNELORG_MIRROR = "https://cdn.kernel.org/pub"
 SOURCEFORGE_MIRROR = "https://downloads.sourceforge.net"
 XLIBS_MIRROR = "https://xlibs.freedesktop.org/release"
-XORG_MIRROR = "http://xorg.freedesktop.org/releases"
+XORG_MIRROR = "https://www.x.org/releases/"
 SAVANNAH_GNU_MIRROR = "https://download.savannah.gnu.org/releases"
 SAVANNAH_NONGNU_MIRROR = "https://download.savannah.nongnu.org/releases"
 CPAN_MIRROR = "https://search.cpan.org/CPAN"
diff --git a/poky/meta/conf/conf-notes.txt b/poky/meta/conf/conf-notes.txt
index f1a4f4d..5af13a8 100644
--- a/poky/meta/conf/conf-notes.txt
+++ b/poky/meta/conf/conf-notes.txt
@@ -9,4 +9,9 @@
     meta-toolchain
     meta-ide-support
 
-You can also run generated qemu images with a command like 'runqemu qemux86'
+You can also run generated qemu images with a command like 'runqemu qemux86'.
+
+Other commonly useful commands are:
+ - 'devtool' and 'recipetool' handle common recipe tasks
+ - 'bitbake-layers' handles common layer tasks
+ - 'oe-pkgdata-util' handles common target package tasks
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index a595507..6a2308d 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -200,7 +200,7 @@
 RECIPE_MAINTAINER_pn-gcc-runtime = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER_pn-gcc-sanitizers = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER_pn-gcc-source-8.3.0 = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER_pn-gcc-source-9.1.0 = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER_pn-gcc-source-9.2.0 = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER_pn-gccmakedep = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER_pn-gconf = "Ross Burton <ross.burton@intel.com>"
 RECIPE_MAINTAINER_pn-gcr = "Alexander Kanavin <alex.kanavin@gmail.com>"
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index 1966dbd..c89b8e0 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -24,7 +24,7 @@
 GDBVERSION ?= "8.3%"
 GLIBCVERSION ?= "2.30%"
 LINUXLIBCVERSION ?= "5.0%"
-QEMUVERSION ?= "4.0%"
+QEMUVERSION ?= "4.1%"
 GOVERSION ?= "1.12%"
 # This can not use wildcards like 8.0.% since it is also used in mesa to denote
 # llvm version being used, so always bump it with llvm recipe version bump
diff --git a/poky/meta/conf/machine/include/qemuboot-mips.inc b/poky/meta/conf/machine/include/qemuboot-mips.inc
index 75bb988..a5f9ed8 100644
--- a/poky/meta/conf/machine/include/qemuboot-mips.inc
+++ b/poky/meta/conf/machine/include/qemuboot-mips.inc
@@ -6,4 +6,3 @@
 QB_OPT_APPEND = "-vga cirrus -show-cursor -usb -device usb-tablet"
 # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
 QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
-QB_SYSTEM_NAME = "qemu-system-${TUNE_ARCH}"
diff --git a/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/poky/meta/conf/machine/include/riscv/qemuriscv.inc
index 84d09fa..f1cb628 100644
--- a/poky/meta/conf/machine/include/riscv/qemuriscv.inc
+++ b/poky/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -26,7 +26,7 @@
 QB_KERNEL_CMDLINE_APPEND = "earlycon=sbi"
 QB_MEM = "-m 512"
 QB_MACHINE = "-machine virt"
-QB_DEFAULT_KERNEL = "fw_jump.elf"
+QB_DEFAULT_BIOS = "fw_jump.elf"
 QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
 QB_NETWORK_DEVICE = "-device virtio-net-device,netdev=net0,mac=@MAC@"
 QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw -device virtio-blk-device,drive=disk0"
diff --git a/poky/meta/conf/machine/qemumips.conf b/poky/meta/conf/machine/qemumips.conf
index 48d9f41..31ad754 100644
--- a/poky/meta/conf/machine/qemumips.conf
+++ b/poky/meta/conf/machine/qemumips.conf
@@ -10,3 +10,5 @@
 KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
 
 SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1"
+
+QB_SYSTEM_NAME = "qemu-system-mips"
diff --git a/poky/meta/conf/machine/qemumips64.conf b/poky/meta/conf/machine/qemumips64.conf
index 1872e7b..6d51746 100644
--- a/poky/meta/conf/machine/qemumips64.conf
+++ b/poky/meta/conf/machine/qemumips64.conf
@@ -12,3 +12,5 @@
 KERNEL_ALT_IMAGETYPE = "vmlinux.bin"
 
 SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1"
+
+QB_SYSTEM_NAME = "qemu-system-mips64"
diff --git a/poky/meta/conf/machine/qemuriscv64.conf b/poky/meta/conf/machine/qemuriscv64.conf
index dba8f09..99b48b3 100644
--- a/poky/meta/conf/machine/qemuriscv64.conf
+++ b/poky/meta/conf/machine/qemuriscv64.conf
@@ -4,8 +4,6 @@
 
 require conf/machine/include/riscv/qemuriscv.inc
 
-QB_OPT_APPEND += "-show-cursor -monitor null -device loader,file=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE},addr=0x80200000"
-
 EXTRA_IMAGEDEPENDS += "u-boot"
 UBOOT_MACHINE = "qemu-riscv64_defconfig"
 UBOOT_ELF = "u-boot"
diff --git a/poky/meta/recipes-bsp/acpid/acpid_2.0.31.bb b/poky/meta/recipes-bsp/acpid/acpid_2.0.31.bb
deleted file mode 100644
index 4074921..0000000
--- a/poky/meta/recipes-bsp/acpid/acpid_2.0.31.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require acpid.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
-                    file://acpid.h;endline=24;md5=324a9cf225ae69ddaad1bf9d942115b5"
-
-SRC_URI[md5sum] = "599dd38681b5917eeeafb58176793952"
-SRC_URI[sha256sum] = "fc9dc669ed85d9a1739aa76915e0667c6697c5431160f8dfb253046c6a072cc3"
diff --git a/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb b/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb
new file mode 100644
index 0000000..227e4a4
--- /dev/null
+++ b/poky/meta/recipes-bsp/acpid/acpid_2.0.32.bb
@@ -0,0 +1,7 @@
+require acpid.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+                    file://acpid.h;endline=24;md5=324a9cf225ae69ddaad1bf9d942115b5"
+
+SRC_URI[md5sum] = "248995264b9d1cd8bdb923d5b190fd44"
+SRC_URI[sha256sum] = "f2d2d30b3edc3234bd82f6f7186699a6aa3c85c8d20bc4e30e9b3c68a1ed157e"
diff --git a/poky/meta/recipes-bsp/opensbi/opensbi_0.4.bb b/poky/meta/recipes-bsp/opensbi/opensbi_0.4.bb
index 3827528..b030436 100644
--- a/poky/meta/recipes-bsp/opensbi/opensbi_0.4.bb
+++ b/poky/meta/recipes-bsp/opensbi/opensbi_0.4.bb
@@ -49,3 +49,5 @@
 
 COMPATIBLE_HOST = "(riscv64|riscv32).*"
 INHIBIT_PACKAGE_STRIP = "1"
+
+SECURITY_CFLAGS = ""
diff --git a/poky/meta/recipes-connectivity/iw/iw_5.0.1.bb b/poky/meta/recipes-connectivity/iw/iw_5.0.1.bb
index e127963..87b21e6 100644
--- a/poky/meta/recipes-connectivity/iw/iw_5.0.1.bb
+++ b/poky/meta/recipes-connectivity/iw/iw_5.0.1.bb
@@ -4,7 +4,7 @@
 to the kernel recently. "
 HOMEPAGE = "http://wireless.kernel.org/en/users/Documentation/iw"
 SECTION = "base"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=878618a5c4af25e9b93ef0be1a93f774"
 
 DEPENDS = "libnl"
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
index 3c3a802..c01415d 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-mountd.service
@@ -11,6 +11,7 @@
 [Service]
 EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf
 ExecStart=@SBINDIR@/rpc.mountd -F $MOUNTD_OPTS
+LimitNOFILE=@HIGH_RLIMIT_NOFILE@
 
 [Install]
 WantedBy=multi-user.target
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
index 6e196b8..4fa64e1 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/nfs-statd.service
@@ -8,6 +8,7 @@
 [Service]
 EnvironmentFile=-@SYSCONFDIR@/nfs-utils.conf
 ExecStart=@SBINDIR@/rpc.statd -F $STATD_OPTS
+LimitNOFILE=@HIGH_RLIMIT_NOFILE@
 
 [Install]
 WantedBy=multi-user.target
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
index ac4437b..28f9898 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.3.3.bb
@@ -119,6 +119,9 @@
 	make clean
 }
 
+# Works on systemd only
+HIGH_RLIMIT_NOFILE ??= "4096"
+
 do_install_append () {
 	install -d ${D}${sysconfdir}/init.d
 	install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver
@@ -133,6 +136,7 @@
 	install -m 0644 ${WORKDIR}/nfs-statd.service ${D}${systemd_unitdir}/system/
 	sed -i -e 's,@SBINDIR@,${sbindir},g' \
 		-e 's,@SYSCONFDIR@,${sysconfdir},g' \
+		-e 's,@HIGH_RLIMIT_NOFILE@,${HIGH_RLIMIT_NOFILE},g' \
 		${D}${systemd_unitdir}/system/*.service
 	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
 	    install -m 0644 ${WORKDIR}/proc-fs-nfsd.mount ${D}${systemd_unitdir}/system/
diff --git a/poky/meta/recipes-connectivity/ofono/ofono/0001-Makefile.am-Don-t-overwrite-src_ofonod_DEPENDENCIES.patch b/poky/meta/recipes-connectivity/ofono/ofono/0001-Makefile.am-Don-t-overwrite-src_ofonod_DEPENDENCIES.patch
deleted file mode 100644
index 77073dd..0000000
--- a/poky/meta/recipes-connectivity/ofono/ofono/0001-Makefile.am-Don-t-overwrite-src_ofonod_DEPENDENCIES.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From eeaf8dac80f15a2b7c18d1d4ee63106973a6a873 Mon Sep 17 00:00:00 2001
-From: Adrian Bunk <bunk@kernel.org>
-Date: Tue, 21 May 2019 14:13:35 +0300
-Subject: Makefile.am: Don't overwrite src_ofonod_DEPENDENCIES
-
-src_ofonod_DEPENDENCIES did overwrite the dependencies
-automatically generated from src_ofonod_LDADD with
-incomplete dependencies.
-
-This fixes the following build error:
-...
-  CCLD     src/ofonod
-libtool:   error: cannot find the library 'gdbus/libgdbus-internal.la' or unhandled argument 'gdbus/libgdbus-internal.la'
-make: *** [Makefile:3448: src/ofonod] Error 1
-
-Upstream-Status: Submitted
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
----
- Makefile.am | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index d2e310d5..5edc4488 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -6,12 +6,10 @@ noinst_LTLIBRARIES =
- if EXTERNAL_ELL
- ell_cflags = @ELL_CFLAGS@
- ell_ldadd = @ELL_LIBS@
--ell_dependencies =
- ell_built_sources =
- else
- ell_cflags =
- ell_ldadd = ell/libell-internal.la
--ell_dependencies = $(ell_ldadd)
- ell_built_sources = ell/internal ell/ell.h
- 
- noinst_LTLIBRARIES += ell/libell-internal.la
-@@ -729,8 +727,6 @@ src_ofonod_LDADD = gdbus/libgdbus-internal.la $(builtin_libadd) $(ell_ldadd) \
- src_ofonod_LDFLAGS = -Wl,--export-dynamic \
- 				-Wl,--version-script=$(srcdir)/src/ofono.ver
- 
--src_ofonod_DEPENDENCIES = $(ell_dependencies)
--
- BUILT_SOURCES = $(local_headers) $(ell_built_sources) src/builtin.h
- 
- CLEANFILES = $(BUILT_SOURCES) $(rules_DATA)
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Add-check-for-explicit_bzero-support.patch b/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Add-check-for-explicit_bzero-support.patch
deleted file mode 100644
index 4676bb7..0000000
--- a/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Add-check-for-explicit_bzero-support.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From dff595671bf5a46f7c9231966a6cd7d2a0183076 Mon Sep 17 00:00:00 2001
-From: Marcel Holtmann <marcel@holtmann.org>
-Date: Wed, 15 May 2019 09:39:44 +0200
-Subject: build: Add check for explicit_bzero support
-
-Upstream-Status: Backport
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
----
- configure.ac | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index bacb7ac5..cad35c5d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -54,6 +54,8 @@ AC_ARG_ENABLE(pie, AC_HELP_STRING([--enable-pie],
- 	fi
- ])
- 
-+AC_CHECK_FUNCS(explicit_bzero)
-+
- AC_CHECK_FUNC(signalfd, dummy=yes,
- 			AC_MSG_ERROR(signalfd support is required))
- 
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Fix-a-race-condition.patch b/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Fix-a-race-condition.patch
deleted file mode 100644
index 2e2aa88..0000000
--- a/poky/meta/recipes-connectivity/ofono/ofono/0001-build-Fix-a-race-condition.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3e43e3342f3fada1624a28500a5337019fed7d89 Mon Sep 17 00:00:00 2001
-From: Adrian Bunk <bunk@kernel.org>
-Date: Thu, 9 May 2019 12:19:51 +0300
-Subject: build: Fix a race condition
-
-ell/ell.h was written before ell/ existed
-
-Upstream-Status: Backport
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
----
- Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index a569c4a3..d2e310d5 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1107,6 +1107,7 @@ ell/internal: Makefile
- 	done > $@
- 
- ell/ell.h: Makefile
-+	$(AM_V_at)$(MKDIR_P) ell
- 	$(AM_V_at)echo -n > $@
- 	$(AM_V_GEN)for f in $(ell_headers) ; do \
- 		echo "#include <$$f>" >> $@ ; \
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-connectivity/ofono/ofono/0001-main-Quiet-ld-errors-with-external-ell.patch b/poky/meta/recipes-connectivity/ofono/ofono/0001-main-Quiet-ld-errors-with-external-ell.patch
deleted file mode 100644
index f9858e7..0000000
--- a/poky/meta/recipes-connectivity/ofono/ofono/0001-main-Quiet-ld-errors-with-external-ell.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 48e31f9fc3cf3c486c3d27a67b2687f6df0c5c71 Mon Sep 17 00:00:00 2001
-From: Denis Kenzior <denkenz@gmail.com>
-Date: Thu, 16 May 2019 15:10:53 -0500
-Subject: main: Quiet ld errors with external ell
-
-When oFono is built with --enable-external-ell, the compiler for some
-reason does not generate a debug section on some systems.  This is due
-to the fact that l_debug is never called.  However, ell also does not
-call l_debug, yet when built-in ell is used, the section is created by
-the compiler.
-
-For now work around this by adding a no-op l_debug() call in main.c.
-The real fix is to migrate all of the oFono logging functionality to use
-ell instead.
-
-Upstream-Status: Backport
-Signed-off-by: Adrian Bunk <bunk@stusta.de>
----
- src/main.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/main.c b/src/main.c
-index 8623a060..4529cde1 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -236,6 +236,7 @@ int main(int argc, char **argv)
- 	event_loop = g_main_loop_new(NULL, FALSE);
- 
- 	l_log_set_stderr();
-+	l_debug("");
- 	l_debug_enable("*");
- 	l_main_init();
- 
--- 
-2.20.1
-
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_1.29.bb b/poky/meta/recipes-connectivity/ofono/ofono_1.29.bb
deleted file mode 100644
index 900a6d2..0000000
--- a/poky/meta/recipes-connectivity/ofono/ofono_1.29.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require ofono.inc
-
-SRC_URI  = "\
-  ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
-  file://ofono \
-  file://0001-build-Fix-a-race-condition.patch \
-  file://0001-build-Add-check-for-explicit_bzero-support.patch \
-  file://0001-main-Quiet-ld-errors-with-external-ell.patch \
-  file://0001-Makefile.am-Don-t-overwrite-src_ofonod_DEPENDENCIES.patch \
-  file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
-"
-SRC_URI[md5sum] = "4fa0372630ff03f223452e4d05efa8f8"
-SRC_URI[sha256sum] = "67f0f8e5740dea5b46309e40667d1e560be39c90ef08dd01ff9e9ce8e61f0679"
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_1.30.bb b/poky/meta/recipes-connectivity/ofono/ofono_1.30.bb
new file mode 100644
index 0000000..c916cb1
--- /dev/null
+++ b/poky/meta/recipes-connectivity/ofono/ofono_1.30.bb
@@ -0,0 +1,9 @@
+require ofono.inc
+
+SRC_URI  = "\
+  ${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
+  file://ofono \
+  file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
+"
+SRC_URI[md5sum] = "2b1ce11a4db1f4b5c8cd96eb7e96ba0c"
+SRC_URI[sha256sum] = "8079735efc5d7f33be9e792e791f2f7ff75c31ce67d477b994673e32319eec5c"
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
index 35cdf71..01eaecd 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_8.0p1.bb
@@ -5,7 +5,7 @@
 and for executing commands on a remote machine."
 HOMEPAGE = "http://www.openssh.com/"
 SECTION = "console/network"
-LICENSE = "BSD"
+LICENSE = "BSD & ISC & MIT"
 LIC_FILES_CHKSUM = "file://LICENCE;md5=429658c6612f3a9b1293782366ab29d8"
 
 DEPENDS = "zlib openssl virtual/crypt"
diff --git a/poky/meta/recipes-core/dbus/dbus/run-ptest b/poky/meta/recipes-core/dbus/dbus/run-ptest
index cf2e68f..48535e1 100755
--- a/poky/meta/recipes-core/dbus/dbus/run-ptest
+++ b/poky/meta/recipes-core/dbus/dbus/run-ptest
@@ -21,7 +21,8 @@
      #these programs are used by testcase test-bus, don't run here
      if [ $i = "test/test-service" ] \
         || [ $i = "test/test-shell-service" ] \
-        || [ $i = "test/test-segfault" ]
+        || [ $i = "test/test-segfault" ] \
+        || [ $i = "test/test-bus" ]
      then
          continue
      fi
diff --git a/poky/meta/recipes-core/glibc/cross-localedef-native_2.30.bb b/poky/meta/recipes-core/glibc/cross-localedef-native_2.30.bb
index e4923c7..29cd43e 100644
--- a/poky/meta/recipes-core/glibc/cross-localedef-native_2.30.bb
+++ b/poky/meta/recipes-core/glibc/cross-localedef-native_2.30.bb
@@ -30,6 +30,8 @@
            file://0022-eglibc-Forward-port-cross-locale-generation-support.patch \
            file://0023-Define-DUMMY_LOCALE_T-if-not-defined.patch \
            file://0024-localedef-add-to-archive-uses-a-hard-coded-locale-pa.patch \
+           file://add-cross-localedef-hardlink.patch \
+           file://allow-compile-separate-from-util-linux-hardlink.patch \
 "
 # Makes for a rather long rev (22 characters), but...
 #
@@ -43,4 +45,5 @@
 do_install() {
 	install -d ${D}${bindir}
 	install -m 0755 ${B}/localedef ${D}${bindir}/cross-localedef
+	install -m 0755 ${B}/cross-localedef-hardlink ${D}${bindir}/cross-localedef-hardlink
 }
diff --git a/poky/meta/recipes-core/glibc/glibc/add-cross-localedef-hardlink.patch b/poky/meta/recipes-core/glibc/glibc/add-cross-localedef-hardlink.patch
new file mode 100644
index 0000000..8471121
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/add-cross-localedef-hardlink.patch
@@ -0,0 +1,1115 @@
+---
+ locale/programs/c.h                        |  407 ++++++++++++++++++++++
+ locale/programs/cross-localedef-hardlink.c |  528 +++++++++++++++++++++++++++++
+ locale/programs/xalloc.h                   |  129 +++++++
+ localedef/Makefile.in                      |    8 
+ 4 files changed, 1071 insertions(+), 1 deletion(-)
+
+--- /dev/null
++++ b/locale/programs/cross-localedef-hardlink.c
+@@ -0,0 +1,528 @@
++/*
++ * hardlink - consolidate duplicate files via hardlinks
++ *
++ * Copyright (C) 2018 Red Hat, Inc. All rights reserved.
++ * Written by Jakub Jelinek <jakub@redhat.com>
++ *
++ * Copyright (C) 2019 Karel Zak <kzak@redhat.com>
++ *
++ * 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 would 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, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ */
++#include <sys/types.h>
++#include <stdlib.h>
++#include <getopt.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <sys/stat.h>
++#include <sys/mman.h>
++#include <string.h>
++#include <dirent.h>
++#include <fcntl.h>
++#include <errno.h>
++#ifdef HAVE_PCRE
++# define PCRE2_CODE_UNIT_WIDTH 8
++# include <pcre2.h>
++#endif
++
++#include "c.h"
++#include "xalloc.h"
++#include "nls.h"
++#include "closestream.h"
++
++#define NHASH   (1<<17)  /* Must be a power of 2! */
++#define NBUF    64
++
++struct hardlink_file;
++
++struct hardlink_hash {
++	struct hardlink_hash *next;
++	struct hardlink_file *chain;
++	off_t size;
++	time_t mtime;
++};
++
++struct hardlink_dir {
++	struct hardlink_dir *next;
++	char name[];
++};
++
++struct hardlink_file {
++	struct hardlink_file *next;
++	ino_t ino;
++	dev_t dev;
++	unsigned int cksum;
++	char name[];
++};
++
++struct hardlink_dynstr {
++	char *buf;
++	size_t alloc;
++};
++
++struct hardlink_ctl {
++	struct hardlink_dir *dirs;
++	struct hardlink_hash *hps[NHASH];
++	char iobuf1[BUFSIZ];
++	char iobuf2[BUFSIZ];
++	/* summary counters */
++	unsigned long long ndirs;
++	unsigned long long nobjects;
++	unsigned long long nregfiles;
++	unsigned long long ncomp;
++	unsigned long long nlinks;
++	unsigned long long nsaved;
++	/* current device */
++	dev_t dev;
++	/* flags */
++	unsigned int verbose;
++	unsigned int
++		no_link:1,
++		content_only:1,
++		force:1;
++};
++/* ctl is in global scope due use in atexit() */
++struct hardlink_ctl global_ctl;
++
++__attribute__ ((always_inline))
++static inline unsigned int hash(off_t size, time_t mtime)
++{
++	return (size ^ mtime) & (NHASH - 1);
++}
++
++__attribute__ ((always_inline))
++static inline int stcmp(struct stat *st1, struct stat *st2, int content_scope)
++{
++	if (content_scope)
++		return st1->st_size != st2->st_size;
++
++	return st1->st_mode != st2->st_mode
++		|| st1->st_uid != st2->st_uid
++		|| st1->st_gid != st2->st_gid
++		|| st1->st_size != st2->st_size
++		|| st1->st_mtime != st2->st_mtime;
++}
++
++static void print_summary(void)
++{
++	struct hardlink_ctl const *const ctl = &global_ctl;
++
++	if (!ctl->verbose)
++		return;
++
++	if (ctl->verbose > 1 && ctl->nlinks)
++		fputc('\n', stdout);
++
++	printf(_("Directories:   %9lld\n"), ctl->ndirs);
++	printf(_("Objects:       %9lld\n"), ctl->nobjects);
++	printf(_("Regular files: %9lld\n"), ctl->nregfiles);
++	printf(_("Comparisons:   %9lld\n"), ctl->ncomp);
++	printf(  "%s%9lld\n", (ctl->no_link ?
++	       _("Would link:    ") :
++	       _("Linked:        ")), ctl->nlinks);
++	printf(  "%s %9lld\n", (ctl->no_link ?
++	       _("Would save:   ") :
++	       _("Saved:        ")), ctl->nsaved);
++}
++
++static void __attribute__((__noreturn__)) usage(void)
++{
++	fputs(USAGE_HEADER, stdout);
++	printf(_(" %s [options] directory...\n"), program_invocation_short_name);
++
++	fputs(USAGE_SEPARATOR, stdout);
++	puts(_("Consolidate duplicate files using hardlinks."));
++
++	fputs(USAGE_OPTIONS, stdout);
++	puts(_(" -c, --content          compare only contents, ignore permission, etc."));
++	puts(_(" -n, --dry-run          don't actually link anything"));
++	puts(_(" -v, --verbose          print summary after hardlinking"));
++	puts(_(" -vv                    print every hardlinked file and summary"));
++	puts(_(" -f, --force            force hardlinking across filesystems"));
++	puts(_(" -x, --exclude <regex>  exclude files matching pattern"));
++
++	fputs(USAGE_SEPARATOR, stdout);
++	printf(USAGE_HELP_OPTIONS(16)); /* char offset to align option descriptions */
++	printf(USAGE_MAN_TAIL("hardlink(1)"));
++	exit(EXIT_SUCCESS);
++}
++
++__attribute__ ((always_inline))
++static inline size_t add2(size_t a, size_t b)
++{
++	size_t sum = a + b;
++
++	if (sum < a)
++		errx(EXIT_FAILURE, _("integer overflow"));
++	return sum;
++}
++
++__attribute__ ((always_inline))
++static inline size_t add3(size_t a, size_t b, size_t c)
++{
++	return add2(add2(a, b), c);
++}
++
++static void growstr(struct hardlink_dynstr *str, size_t newlen)
++{
++	if (newlen < str->alloc)
++		return;
++	str->buf = xrealloc(str->buf, str->alloc = add2(newlen, 1));
++}
++
++static void process_path(struct hardlink_ctl *ctl, const char *name)
++{
++	struct stat st, st2, st3;
++	const size_t namelen = strlen(name);
++
++	ctl->nobjects++;
++	if (lstat(name, &st))
++		return;
++
++	if (st.st_dev != ctl->dev && !ctl->force) {
++		if (ctl->dev)
++			errx(EXIT_FAILURE,
++			     _("%s is on different filesystem than the rest "
++			       "(use -f option to override)."), name);
++		ctl->dev = st.st_dev;
++	}
++	if (S_ISDIR(st.st_mode)) {
++		struct hardlink_dir *dp = xmalloc(add3(sizeof(*dp), namelen, 1));
++		memcpy(dp->name, name, namelen + 1);
++		dp->next = ctl->dirs;
++		ctl->dirs = dp;
++
++	} else if (S_ISREG(st.st_mode)) {
++		int fd, i;
++		struct hardlink_file *fp, *fp2;
++		struct hardlink_hash *hp;
++		const char *n1, *n2;
++		unsigned int buf[NBUF];
++		int cksumsize = sizeof(buf);
++		unsigned int cksum;
++		time_t mtime = ctl->content_only ? 0 : st.st_mtime;
++		unsigned int hsh = hash(st.st_size, mtime);
++		off_t fsize;
++
++		ctl->nregfiles++;
++		if (ctl->verbose > 1)
++			printf("%s\n", name);
++
++		fd = open(name, O_RDONLY);
++		if (fd < 0)
++			return;
++
++		if ((size_t)st.st_size < sizeof(buf)) {
++			cksumsize = st.st_size;
++			memset(((char *)buf) + cksumsize, 0,
++			       (sizeof(buf) - cksumsize) % sizeof(buf[0]));
++		}
++		if (read(fd, buf, cksumsize) != cksumsize) {
++			close(fd);
++			return;
++		}
++		cksumsize = (cksumsize + sizeof(buf[0]) - 1) / sizeof(buf[0]);
++		for (i = 0, cksum = 0; i < cksumsize; i++) {
++			if (cksum + buf[i] < cksum)
++				cksum += buf[i] + 1;
++			else
++				cksum += buf[i];
++		}
++		for (hp = ctl->hps[hsh]; hp; hp = hp->next) {
++			if (hp->size == st.st_size && hp->mtime == mtime)
++				break;
++		}
++		if (!hp) {
++			hp = xmalloc(sizeof(*hp));
++			hp->size = st.st_size;
++			hp->mtime = mtime;
++			hp->chain = NULL;
++			hp->next = ctl->hps[hsh];
++			ctl->hps[hsh] = hp;
++		}
++		for (fp = hp->chain; fp; fp = fp->next) {
++			if (fp->cksum == cksum)
++				break;
++		}
++		for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next) {
++			if (fp2->ino == st.st_ino && fp2->dev == st.st_dev) {
++				close(fd);
++				return;
++			}
++		}
++		for (fp2 = fp; fp2 && fp2->cksum == cksum; fp2 = fp2->next) {
++
++			if (!lstat(fp2->name, &st2) && S_ISREG(st2.st_mode) &&
++			    !stcmp(&st, &st2, ctl->content_only) &&
++			    st2.st_ino != st.st_ino &&
++			    st2.st_dev == st.st_dev) {
++
++				int fd2 = open(fp2->name, O_RDONLY);
++				if (fd2 < 0)
++					continue;
++
++				if (fstat(fd2, &st2) || !S_ISREG(st2.st_mode)
++				    || st2.st_size == 0) {
++					close(fd2);
++					continue;
++				}
++				ctl->ncomp++;
++				lseek(fd, 0, SEEK_SET);
++
++				for (fsize = st.st_size; fsize > 0;
++				     fsize -= (off_t)sizeof(ctl->iobuf1)) {
++					ssize_t xsz;
++					ssize_t rsize = fsize > (ssize_t) sizeof(ctl->iobuf1) ?
++							(ssize_t) sizeof(ctl->iobuf1) : fsize;
++
++					if ((xsz = read(fd, ctl->iobuf1, rsize)) != rsize)
++						warn(_("cannot read %s"), name);
++					else if ((xsz = read(fd2, ctl->iobuf2, rsize)) != rsize)
++						warn(_("cannot read %s"), fp2->name);
++
++					if (xsz != rsize) {
++						close(fd);
++						close(fd2);
++						return;
++					}
++					if (memcmp(ctl->iobuf1, ctl->iobuf2, rsize))
++						break;
++				}
++				close(fd2);
++				if (fsize > 0)
++					continue;
++				if (lstat(name, &st3)) {
++					warn(_("cannot stat %s"), name);
++					close(fd);
++					return;
++				}
++				st3.st_atime = st.st_atime;
++				if (stcmp(&st, &st3, 0)) {
++					warnx(_("file %s changed underneath us"), name);
++					close(fd);
++					return;
++				}
++				n1 = fp2->name;
++				n2 = name;
++
++				if (!ctl->no_link) {
++					const char *suffix =
++					    ".$$$___cleanit___$$$";
++					const size_t suffixlen = strlen(suffix);
++					size_t n2len = strlen(n2);
++					struct hardlink_dynstr nam2 = { NULL, 0 };
++
++					growstr(&nam2, add2(n2len, suffixlen));
++					memcpy(nam2.buf, n2, n2len);
++					memcpy(&nam2.buf[n2len], suffix,
++					       suffixlen + 1);
++					/* First create a temporary link to n1 under a new name */
++					if (link(n1, nam2.buf)) {
++						warn(_("failed to hardlink %s to %s (create temporary link as %s failed)"),
++							n1, n2, nam2.buf);
++						free(nam2.buf);
++						continue;
++					}
++					/* Then rename into place over the existing n2 */
++					if (rename(nam2.buf, n2)) {
++						warn(_("failed to hardlink %s to %s (rename temporary link to %s failed)"),
++							n1, n2, n2);
++						/* Something went wrong, try to remove the now redundant temporary link */
++						if (unlink(nam2.buf))
++							warn(_("failed to remove temporary link %s"), nam2.buf);
++						free(nam2.buf);
++						continue;
++					}
++					free(nam2.buf);
++				}
++				ctl->nlinks++;
++				if (st3.st_nlink > 1) {
++					/* We actually did not save anything this time, since the link second argument
++					   had some other links as well.  */
++					if (ctl->verbose > 1)
++						printf(_(" %s %s to %s\n"),
++							(ctl->no_link ? _("Would link") : _("Linked")),
++							n1, n2);
++				} else {
++					ctl->nsaved += ((st.st_size + 4095) / 4096) * 4096;
++					if (ctl->verbose > 1)
++						printf(_(" %s %s to %s, %s %jd\n"),
++							(ctl->no_link ? _("Would link") : _("Linked")),
++							n1, n2,
++							(ctl->no_link ? _("would save") : _("saved")),
++							(intmax_t)st.st_size);
++				}
++				close(fd);
++				return;
++			}
++		}
++		fp2 = xmalloc(add3(sizeof(*fp2), namelen, 1));
++		close(fd);
++		fp2->ino = st.st_ino;
++		fp2->dev = st.st_dev;
++		fp2->cksum = cksum;
++		memcpy(fp2->name, name, namelen + 1);
++
++		if (fp) {
++			fp2->next = fp->next;
++			fp->next = fp2;
++		} else {
++			fp2->next = hp->chain;
++			hp->chain = fp2;
++		}
++		return;
++	}
++}
++
++int main(int argc, char **argv)
++{
++	int ch;
++	int i;
++#ifdef HAVE_PCRE
++	int errornumber;
++	PCRE2_SIZE erroroffset;
++	pcre2_code *re = NULL;
++	PCRE2_SPTR exclude_pattern = NULL;
++	pcre2_match_data *match_data = NULL;
++#endif
++	struct hardlink_dynstr nam1 = { NULL, 0 };
++	struct hardlink_ctl *ctl = &global_ctl;
++
++	static const struct option longopts[] = {
++		{ "content",    no_argument, NULL, 'c' },
++		{ "dry-run",    no_argument, NULL, 'n' },
++		{ "exclude",    required_argument, NULL, 'x' },
++		{ "force",      no_argument, NULL, 'f' },
++		{ "help",       no_argument, NULL, 'h' },
++		{ "verbose",    no_argument, NULL, 'v' },
++		{ "version",    no_argument, NULL, 'V' },
++		{ NULL, 0, NULL, 0 },
++	};
++
++	setlocale(LC_ALL, "");
++	bindtextdomain(PACKAGE, LOCALEDIR);
++	textdomain(PACKAGE);
++	close_stdout_atexit();
++
++	while ((ch = getopt_long(argc, argv, "cnvfx:Vh", longopts, NULL)) != -1) {
++		switch (ch) {
++		case 'n':
++			ctl->no_link = 1;
++			break;
++		case 'v':
++			ctl->verbose++;
++			break;
++		case 'c':
++			ctl->content_only = 1;
++			break;
++		case 'f':
++			ctl->force = 1;
++			break;
++		case 'x':
++#ifdef HAVE_PCRE
++			exclude_pattern = (PCRE2_SPTR) optarg;
++#else
++			errx(EXIT_FAILURE,
++			     _("option --exclude not supported (built without pcre2)"));
++#endif
++			break;
++		case 'V':
++			print_version(EXIT_SUCCESS);
++		case 'h':
++			usage();
++		default:
++			errtryhelp(EXIT_FAILURE);
++		}
++	}
++
++	if (optind == argc) {
++		warnx(_("no directory specified"));
++		errtryhelp(EXIT_FAILURE);
++	}
++
++#ifdef HAVE_PCRE
++	if (exclude_pattern) {
++		re = pcre2_compile(exclude_pattern, /* the pattern */
++				   PCRE2_ZERO_TERMINATED, /* indicates pattern is zero-terminate */
++				   0, /* default options */
++				   &errornumber, &erroroffset, NULL); /* use default compile context */
++		if (!re) {
++			PCRE2_UCHAR buffer[256];
++			pcre2_get_error_message(errornumber, buffer,
++						sizeof(buffer));
++			errx(EXIT_FAILURE, _("pattern error at offset %d: %s"),
++				(int)erroroffset, buffer);
++		}
++		match_data = pcre2_match_data_create_from_pattern(re, NULL);
++	}
++#endif
++	atexit(print_summary);
++
++	for (i = optind; i < argc; i++)
++		process_path(ctl, argv[i]);
++
++	while (ctl->dirs) {
++		DIR *dh;
++		struct dirent *di;
++		struct hardlink_dir *dp = ctl->dirs;
++		size_t nam1baselen = strlen(dp->name);
++
++		ctl->dirs = dp->next;
++		growstr(&nam1, add2(nam1baselen, 1));
++		memcpy(nam1.buf, dp->name, nam1baselen);
++		free(dp);
++		nam1.buf[nam1baselen++] = '/';
++		nam1.buf[nam1baselen] = 0;
++		dh = opendir(nam1.buf);
++
++		if (dh == NULL)
++			continue;
++		ctl->ndirs++;
++
++		while ((di = readdir(dh)) != NULL) {
++			if (!di->d_name[0])
++				continue;
++			if (di->d_name[0] == '.') {
++				if (!di->d_name[1] || !strcmp(di->d_name, ".."))
++					continue;
++			}
++#ifdef HAVE_PCRE
++			if (re && pcre2_match(re, /* compiled regex */
++					      (PCRE2_SPTR) di->d_name, strlen(di->d_name), 0, /* start at offset 0 */
++					      0, /* default options */
++					      match_data, /* block for storing the result */
++					      NULL) /* use default match context */
++			    >=0) {
++				if (ctl->verbose) {
++					nam1.buf[nam1baselen] = 0;
++					printf(_("Skipping %s%s\n"), nam1.buf, di->d_name);
++				}
++				continue;
++			}
++#endif
++			{
++				size_t subdirlen;
++				growstr(&nam1,
++					add2(nam1baselen, subdirlen =
++					     strlen(di->d_name)));
++				memcpy(&nam1.buf[nam1baselen], di->d_name,
++				       add2(subdirlen, 1));
++			}
++			process_path(ctl, nam1.buf);
++		}
++		closedir(dh);
++	}
++
++	return 0;
++}
+--- a/localedef/Makefile.in
++++ b/localedef/Makefile.in
+@@ -40,6 +40,8 @@ WARNFLAGS	= -Wall -Wno-format
+ FULLCC		= $(CC) $(CPPFLAGS) $(CFLAGS) \
+ 		  $(DEFINES) $(INCLUDES) $(WARNFLAGS)
+ 
++CROSS_LOCALEDEF_HARDLINK_OBJS = cross-localedef-hardlink.o
++
+ LOCALEDEF_OBJS	= charmap.o charmap-dir.o ld-address.o ld-collate.o \
+ 		  ld-ctype.o ld-identification.o ld-measurement.o \
+ 		  ld-messages.o ld-monetary.o ld-name.o ld-numeric.o \
+@@ -54,11 +56,14 @@ LOCALEDEF_OBJS	= charmap.o charmap-dir.o
+ 		  asprintf.o getdelim.o localedef_extra.o \
+ 		  obstack_printf.o vasprintf.o
+ 
+-all:		localedef$(EXEEXT)
++all:		localedef$(EXEEXT) cross-localedef-hardlink$(EXEEXT)
+ 
+ localedef$(EXEEXT): $(LOCALEDEF_OBJS)
+ 		$(CC) -o $@ $(LOCALEDEF_OBJS) $(LIBS)
+ 
++cross-localedef-hardlink$(EXEEXT): $(CROSS_LOCALEDEF_HARDLINK_OBJS)
++		$(CC) -o $@ $(CROSS_LOCALEDEF_HARDLINK_OBJS) $(LIBS)
++
+ clean:
+ 		rm -f locale$(EXEEXT) $(LOCALEDEF_OBJS)
+ 
+@@ -77,6 +82,7 @@ clean:
+ %.o: $(srcdir)/%.c
+ 		$(FULLCC) -c -o $@ $<
+ 
++cross-localedef-hardlink.o: glibc/locale/programs/cross-localedef-hardlink.c
+ charmap.o: glibc/locale/programs/charmap.c
+ charmap-dir.o: glibc/locale/programs/charmap-dir.c
+ ld-address.o: glibc/locale/programs/ld-address.c
+--- /dev/null
++++ b/locale/programs/c.h
+@@ -0,0 +1,407 @@
++/*
++ * Fundamental C definitions.
++ */
++
++#ifndef UTIL_LINUX_C_H
++#define UTIL_LINUX_C_H
++
++#include <limits.h>
++#include <stddef.h>
++#include <stdint.h>
++#include <stdio.h>
++#include <unistd.h>
++#include <stdarg.h>
++#include <stdlib.h>
++#include <string.h>
++#include <errno.h>
++
++#include <assert.h>
++
++#ifdef HAVE_ERR_H
++# include <err.h>
++#endif
++
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>     /* for major, minor */
++#endif
++
++#ifndef LOGIN_NAME_MAX
++# define LOGIN_NAME_MAX 256
++#endif
++
++#ifndef NAME_MAX
++# define NAME_MAX PATH_MAX
++#endif
++
++/*
++ * __GNUC_PREREQ is deprecated in favour of __has_attribute() and
++ * __has_feature(). The __has macros are supported by clang and gcc>=5.
++ */
++#ifndef __GNUC_PREREQ
++# if defined __GNUC__ && defined __GNUC_MINOR__
++#  define __GNUC_PREREQ(maj, min) \
++	((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
++# else
++#  define __GNUC_PREREQ(maj, min) 0
++# endif
++#endif
++
++#ifdef __GNUC__
++
++/* &a[0] degrades to a pointer: a different type from an array */
++# define __must_be_array(a) \
++	UL_BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(__typeof__(a), __typeof__(&a[0])))
++
++# define ignore_result(x) __extension__ ({ \
++	__typeof__(x) __dummy __attribute__((__unused__)) = (x); (void) __dummy; \
++})
++
++#else /* !__GNUC__ */
++# define __must_be_array(a)	0
++# define __attribute__(_arg_)
++# define ignore_result(x) ((void) (x))
++#endif /* !__GNUC__ */
++
++/*
++ * It evaluates to 1 if the attribute/feature is supported by the current
++ * compilation targed. Fallback for old compilers.
++ */
++#ifndef __has_attribute
++  #define __has_attribute(x) 0
++#endif
++
++#ifndef __has_feature
++  #define __has_feature(x) 0
++#endif
++
++/*
++ * Function attributes
++ */
++#ifndef __ul_alloc_size
++# if (__has_attribute(alloc_size) && __has_attribute(warn_unused_result)) || __GNUC_PREREQ (4, 3)
++#  define __ul_alloc_size(s) __attribute__((alloc_size(s), warn_unused_result))
++# else
++#  define __ul_alloc_size(s)
++# endif
++#endif
++
++#ifndef __ul_calloc_size
++# if (__has_attribute(alloc_size) && __has_attribute(warn_unused_result)) || __GNUC_PREREQ (4, 3)
++#  define __ul_calloc_size(n, s) __attribute__((alloc_size(n, s), warn_unused_result))
++# else
++#  define __ul_calloc_size(n, s)
++# endif
++#endif
++
++#if __has_attribute(returns_nonnull) || __GNUC_PREREQ (4, 9)
++# define __ul_returns_nonnull __attribute__((returns_nonnull))
++#else
++# define __ul_returns_nonnull
++#endif
++
++/*
++ * Force a compilation error if condition is true, but also produce a
++ * result (of value 0 and type size_t), so the expression can be used
++ * e.g. in a structure initializer (or wherever else comma expressions
++ * aren't permitted).
++ */
++#define UL_BUILD_BUG_ON_ZERO(e) __extension__ (sizeof(struct { int:-!!(e); }))
++#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))
++
++#ifndef ARRAY_SIZE
++# define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
++#endif
++
++#ifndef PATH_MAX
++# define PATH_MAX 4096
++#endif
++
++#ifndef TRUE
++# define TRUE 1
++#endif
++
++#ifndef FALSE
++# define FALSE 0
++#endif
++
++#ifndef min
++# define min(x, y) __extension__ ({		\
++	__typeof__(x) _min1 = (x);		\
++	__typeof__(y) _min2 = (y);		\
++	(void) (&_min1 == &_min2);		\
++	_min1 < _min2 ? _min1 : _min2; })
++#endif
++
++#ifndef max
++# define max(x, y) __extension__ ({		\
++	__typeof__(x) _max1 = (x);		\
++	__typeof__(y) _max2 = (y);		\
++	(void) (&_max1 == &_max2);		\
++	_max1 > _max2 ? _max1 : _max2; })
++#endif
++
++#ifndef cmp_numbers
++# define cmp_numbers(x, y) __extension__ ({	\
++	__typeof__(x) _a = (x);			\
++	__typeof__(y) _b = (y);			\
++	(void) (&_a == &_b);			\
++	_a == _b ? 0 : _a > _b ? 1 : -1; })
++#endif
++
++#ifndef offsetof
++#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
++#endif
++
++/*
++ * container_of - cast a member of a structure out to the containing structure
++ * @ptr:	the pointer to the member.
++ * @type:	the type of the container struct this is embedded in.
++ * @member:	the name of the member within the struct.
++ */
++#ifndef container_of
++#define container_of(ptr, type, member) __extension__ ({	\
++	const __typeof__( ((type *)0)->member ) *__mptr = (ptr); \
++	(type *)( (char *)__mptr - offsetof(type,member) );})
++#endif
++
++#ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME
++# ifdef HAVE___PROGNAME
++extern char *__progname;
++#  define program_invocation_short_name __progname
++# else
++#  ifdef HAVE_GETEXECNAME
++#   define program_invocation_short_name \
++		prog_inv_sh_nm_from_file(getexecname(), 0)
++#  else
++#   define program_invocation_short_name \
++		prog_inv_sh_nm_from_file(__FILE__, 1)
++#  endif
++static char prog_inv_sh_nm_buf[256];
++static inline char *
++prog_inv_sh_nm_from_file(char *f, char stripext)
++{
++	char *t;
++
++	if ((t = strrchr(f, '/')) != NULL)
++		t++;
++	else
++		t = f;
++
++	strncpy(prog_inv_sh_nm_buf, t, sizeof(prog_inv_sh_nm_buf) - 1);
++	prog_inv_sh_nm_buf[sizeof(prog_inv_sh_nm_buf) - 1] = '\0';
++
++	if (stripext && (t = strrchr(prog_inv_sh_nm_buf, '.')) != NULL)
++		*t = '\0';
++
++	return prog_inv_sh_nm_buf;
++}
++# endif
++#endif
++
++
++#ifndef HAVE_ERR_H
++static inline void
++errmsg(char doexit, int excode, char adderr, const char *fmt, ...)
++{
++	fprintf(stderr, "%s: ", program_invocation_short_name);
++	if (fmt != NULL) {
++		va_list argp;
++		va_start(argp, fmt);
++		vfprintf(stderr, fmt, argp);
++		va_end(argp);
++		if (adderr)
++			fprintf(stderr, ": ");
++	}
++	if (adderr)
++		fprintf(stderr, "%m");
++	fprintf(stderr, "\n");
++	if (doexit)
++		exit(excode);
++}
++
++#ifndef HAVE_ERR
++# define err(E, FMT...) errmsg(1, E, 1, FMT)
++#endif
++
++#ifndef HAVE_ERRX
++# define errx(E, FMT...) errmsg(1, E, 0, FMT)
++#endif
++
++#ifndef HAVE_WARN
++# define warn(FMT...) errmsg(0, 0, 1, FMT)
++#endif
++
++#ifndef HAVE_WARNX
++# define warnx(FMT...) errmsg(0, 0, 0, FMT)
++#endif
++#endif /* !HAVE_ERR_H */
++
++
++/* Don't use inline function to avoid '#include "nls.h"' in c.h
++ */
++#define errtryhelp(eval) __extension__ ({ \
++	fprintf(stderr, _("Try '%s --help' for more information.\n"), \
++			program_invocation_short_name); \
++	exit(eval); \
++})
++
++/* After failed execvp() */
++#define EX_EXEC_FAILED		126	/* Program located, but not usable. */
++#define EX_EXEC_ENOENT		127	/* Could not find program to exec.  */
++#define errexec(name)	err(errno == ENOENT ? EX_EXEC_ENOENT : EX_EXEC_FAILED, \
++			_("failed to execute %s"), name)
++
++
++static inline __attribute__((const)) int is_power_of_2(unsigned long num)
++{
++	return (num != 0 && ((num & (num - 1)) == 0));
++}
++
++#ifndef HAVE_LOFF_T
++typedef int64_t loff_t;
++#endif
++
++#if !defined(HAVE_DIRFD) && (!defined(HAVE_DECL_DIRFD) || HAVE_DECL_DIRFD == 0) && defined(HAVE_DIR_DD_FD)
++#include <sys/types.h>
++#include <dirent.h>
++static inline int dirfd(DIR *d)
++{
++	return d->dd_fd;
++}
++#endif
++
++/*
++ * Fallback defines for old versions of glibc
++ */
++#include <fcntl.h>
++
++#ifdef O_CLOEXEC
++#define UL_CLOEXECSTR	"e"
++#else
++#define UL_CLOEXECSTR	""
++#endif
++
++#ifndef O_CLOEXEC
++#define O_CLOEXEC 0
++#endif
++
++#ifdef __FreeBSD_kernel__
++#ifndef F_DUPFD_CLOEXEC
++#define F_DUPFD_CLOEXEC	17	/* Like F_DUPFD, but FD_CLOEXEC is set */
++#endif
++#endif
++
++
++#ifndef AI_ADDRCONFIG
++#define AI_ADDRCONFIG 0x0020
++#endif
++
++#ifndef IUTF8
++#define IUTF8 0040000
++#endif
++
++/*
++ * MAXHOSTNAMELEN replacement
++ */
++static inline size_t get_hostname_max(void)
++{
++	long len = sysconf(_SC_HOST_NAME_MAX);
++
++	if (0 < len)
++		return len;
++
++#ifdef MAXHOSTNAMELEN
++	return MAXHOSTNAMELEN;
++#elif HOST_NAME_MAX
++	return HOST_NAME_MAX;
++#endif
++	return 64;
++}
++
++
++/*
++ * Constant strings for usage() functions. For more info see
++ * Documentation/{howto-usage-function.txt,boilerplate.c}
++ */
++#define USAGE_HEADER     ("\nUsage:\n")
++#define USAGE_OPTIONS    ("\nOptions:\n")
++#define USAGE_FUNCTIONS  ("\nFunctions:\n")
++#define USAGE_COMMANDS   ("\nCommands:\n")
++#define USAGE_COLUMNS    ("\nAvailable output columns:\n")
++#define USAGE_SEPARATOR    "\n"
++
++#define USAGE_OPTSTR_HELP     ("display this help")
++#define USAGE_OPTSTR_VERSION  ("display version")
++
++#define USAGE_HELP_OPTIONS(marg_dsc) \
++		"%-" #marg_dsc "s%s\n" \
++		"%-" #marg_dsc "s%s\n" \
++		, " -h, --help",    USAGE_OPTSTR_HELP \
++		, " -V, --version", USAGE_OPTSTR_VERSION
++
++#define USAGE_MAN_TAIL(_man)   ("\nFor more details see %s.\n"), _man
++
++#define UTIL_LINUX_VERSION ("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING
++
++#define print_version(eval) __extension__ ({ \
++		printf(UTIL_LINUX_VERSION); \
++		exit(eval); \
++})
++
++/*
++ * scanf modifiers for "strings allocation"
++ */
++#ifdef HAVE_SCANF_MS_MODIFIER
++#define UL_SCNsA	"%ms"
++#elif defined(HAVE_SCANF_AS_MODIFIER)
++#define UL_SCNsA	"%as"
++#endif
++
++/*
++ * seek stuff
++ */
++#ifndef SEEK_DATA
++# define SEEK_DATA	3
++#endif
++#ifndef SEEK_HOLE
++# define SEEK_HOLE	4
++#endif
++
++
++/*
++ * Macros to convert #define'itions to strings, for example
++ * #define XYXXY 42
++ * printf ("%s=%s\n", stringify(XYXXY), stringify_value(XYXXY));
++ */
++#define stringify_value(s) stringify(s)
++#define stringify(s) #s
++
++/*
++ * UL_ASAN_BLACKLIST is a macro to tell AddressSanitizer (a compile-time
++ * instrumentation shipped with Clang and GCC) to not instrument the
++ * annotated function.  Furthermore, it will prevent the compiler from
++ * inlining the function because inlining currently breaks the blacklisting
++ * mechanism of AddressSanitizer.
++ */
++#if __has_feature(address_sanitizer) && __has_attribute(no_sanitize_memory) && __has_attribute(no_sanitize_address)
++# define UL_ASAN_BLACKLIST __attribute__((noinline)) __attribute__((no_sanitize_memory)) __attribute__((no_sanitize_address))
++#else
++# define UL_ASAN_BLACKLIST	/* nothing */
++#endif
++
++/*
++ * Note that sysconf(_SC_GETPW_R_SIZE_MAX) returns *initial* suggested size for
++ * pwd buffer and in some cases it is not large enough. See POSIX and
++ * getpwnam_r man page for more details.
++ */
++#define UL_GETPW_BUFSIZ	(16 * 1024)
++
++/*
++ * Darwin or other BSDs may only have MAP_ANON. To get it on Darwin we must
++ * define _DARWIN_C_SOURCE before including sys/mman.h. We do this in config.h.
++ */
++#if !defined MAP_ANONYMOUS && defined MAP_ANON
++# define MAP_ANONYMOUS  (MAP_ANON)
++#endif
++
++#endif /* UTIL_LINUX_C_H */
+--- /dev/null
++++ b/locale/programs/xalloc.h
+@@ -0,0 +1,129 @@
++/*
++ * Copyright (C) 2010 Davidlohr Bueso <dave@gnu.org>
++ *
++ * This file may be redistributed under the terms of the
++ * GNU Lesser General Public License.
++ *
++ * General memory allocation wrappers for malloc, realloc, calloc and strdup
++ */
++
++#ifndef UTIL_LINUX_XALLOC_H
++#define UTIL_LINUX_XALLOC_H
++
++#include <stdlib.h>
++#include <string.h>
++
++#include "c.h"
++
++#ifndef XALLOC_EXIT_CODE
++# define XALLOC_EXIT_CODE EXIT_FAILURE
++#endif
++
++static inline void __attribute__((__noreturn__))
++__err_oom(const char *file, unsigned int line)
++{
++	err(XALLOC_EXIT_CODE, "%s: %u: cannot allocate memory", file, line);
++}
++
++#define err_oom()	__err_oom(__FILE__, __LINE__)
++
++static inline __ul_alloc_size(1) __ul_returns_nonnull
++void *xmalloc(const size_t size)
++{
++        void *ret = malloc(size);
++
++        if (!ret && size)
++                err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size);
++        return ret;
++}
++
++static inline __ul_alloc_size(2) __ul_returns_nonnull
++void *xrealloc(void *ptr, const size_t size)
++{
++        void *ret = realloc(ptr, size);
++
++        if (!ret && size)
++                err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size);
++        return ret;
++}
++
++static inline __ul_calloc_size(1, 2) __ul_returns_nonnull
++void *xcalloc(const size_t nelems, const size_t size)
++{
++        void *ret = calloc(nelems, size);
++
++        if (!ret && size && nelems)
++                err(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size);
++        return ret;
++}
++
++static inline char __attribute__((warn_unused_result)) __ul_returns_nonnull
++*xstrdup(const char *str)
++{
++        char *ret;
++
++        if (!str)
++                return NULL;
++
++        ret = strdup(str);
++
++        if (!ret)
++                err(XALLOC_EXIT_CODE, "cannot duplicate string");
++        return ret;
++}
++
++static inline char * __attribute__((warn_unused_result)) __ul_returns_nonnull
++xstrndup(const char *str, size_t size)
++{
++        char *ret;
++
++        if (!str)
++                return NULL;
++
++        ret = strndup(str, size);
++
++        if (!ret)
++                err(XALLOC_EXIT_CODE, "cannot duplicate string");
++        return ret;
++}
++
++
++static inline int __attribute__ ((__format__(printf, 2, 3)))
++    xasprintf(char **strp, const char *fmt, ...)
++{
++	int ret;
++	va_list args;
++	va_start(args, fmt);
++	ret = vasprintf(&(*strp), fmt, args);
++	va_end(args);
++	if (ret < 0)
++		err(XALLOC_EXIT_CODE, "cannot allocate string");
++	return ret;
++}
++
++static inline int  __attribute__ ((__format__(printf, 2, 0)))
++xvasprintf(char **strp, const char *fmt, va_list ap)
++{
++	int ret = vasprintf(&(*strp), fmt, ap);
++	if (ret < 0)
++		err(XALLOC_EXIT_CODE, "cannot allocate string");
++	return ret;
++}
++
++
++static inline char * __attribute__((warn_unused_result)) xgethostname(void)
++{
++	char *name;
++	size_t sz = get_hostname_max() + 1;
++
++	name = xmalloc(sizeof(char) * sz);
++
++	if (gethostname(name, sz) != 0) {
++		free(name);
++		return NULL;
++	}
++	name[sz - 1] = '\0';
++	return name;
++}
++
++#endif
diff --git a/poky/meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch b/poky/meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch
new file mode 100644
index 0000000..1148ebf
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/allow-compile-separate-from-util-linux-hardlink.patch
@@ -0,0 +1,226 @@
+---
+ locale/programs/c.h                        |    2 
+ locale/programs/cross-localedef-hardlink.c |   79 +++++++++++++----------------
+ 2 files changed, 39 insertions(+), 42 deletions(-)
+
+--- a/locale/programs/cross-localedef-hardlink.c
++++ b/locale/programs/cross-localedef-hardlink.c
+@@ -20,6 +20,8 @@
+  * with this program; if not, write to the Free Software Foundation, Inc.,
+  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+  */
++
++#undef HAVE_PCRE
+ #include <sys/types.h>
+ #include <stdlib.h>
+ #include <getopt.h>
+@@ -38,8 +40,8 @@
+ 
+ #include "c.h"
+ #include "xalloc.h"
+-#include "nls.h"
+-#include "closestream.h"
++//#include "nls.h"
++//#include "closestream.h"
+ 
+ #define NHASH   (1<<17)  /* Must be a power of 2! */
+ #define NBUF    64
+@@ -124,33 +126,33 @@ static void print_summary(void)
+ 	if (ctl->verbose > 1 && ctl->nlinks)
+ 		fputc('\n', stdout);
+ 
+-	printf(_("Directories:   %9lld\n"), ctl->ndirs);
+-	printf(_("Objects:       %9lld\n"), ctl->nobjects);
+-	printf(_("Regular files: %9lld\n"), ctl->nregfiles);
+-	printf(_("Comparisons:   %9lld\n"), ctl->ncomp);
++	printf(("Directories:   %9lld\n"), ctl->ndirs);
++	printf(("Objects:       %9lld\n"), ctl->nobjects);
++	printf(("Regular files: %9lld\n"), ctl->nregfiles);
++	printf(("Comparisons:   %9lld\n"), ctl->ncomp);
+ 	printf(  "%s%9lld\n", (ctl->no_link ?
+-	       _("Would link:    ") :
+-	       _("Linked:        ")), ctl->nlinks);
++	       ("Would link:    ") :
++	       ("Linked:        ")), ctl->nlinks);
+ 	printf(  "%s %9lld\n", (ctl->no_link ?
+-	       _("Would save:   ") :
+-	       _("Saved:        ")), ctl->nsaved);
++	       ("Would save:   ") :
++	       ("Saved:        ")), ctl->nsaved);
+ }
+ 
+ static void __attribute__((__noreturn__)) usage(void)
+ {
+ 	fputs(USAGE_HEADER, stdout);
+-	printf(_(" %s [options] directory...\n"), program_invocation_short_name);
++	printf((" %s [options] directory...\n"), program_invocation_short_name);
+ 
+ 	fputs(USAGE_SEPARATOR, stdout);
+-	puts(_("Consolidate duplicate files using hardlinks."));
++	puts(("Consolidate duplicate files using hardlinks."));
+ 
+ 	fputs(USAGE_OPTIONS, stdout);
+-	puts(_(" -c, --content          compare only contents, ignore permission, etc."));
+-	puts(_(" -n, --dry-run          don't actually link anything"));
+-	puts(_(" -v, --verbose          print summary after hardlinking"));
+-	puts(_(" -vv                    print every hardlinked file and summary"));
+-	puts(_(" -f, --force            force hardlinking across filesystems"));
+-	puts(_(" -x, --exclude <regex>  exclude files matching pattern"));
++	puts((" -c, --content          compare only contents, ignore permission, etc."));
++	puts((" -n, --dry-run          don't actually link anything"));
++	puts((" -v, --verbose          print summary after hardlinking"));
++	puts((" -vv                    print every hardlinked file and summary"));
++	puts((" -f, --force            force hardlinking across filesystems"));
++	puts((" -x, --exclude <regex>  exclude files matching pattern"));
+ 
+ 	fputs(USAGE_SEPARATOR, stdout);
+ 	printf(USAGE_HELP_OPTIONS(16)); /* char offset to align option descriptions */
+@@ -164,7 +166,7 @@ static inline size_t add2(size_t a, size
+ 	size_t sum = a + b;
+ 
+ 	if (sum < a)
+-		errx(EXIT_FAILURE, _("integer overflow"));
++		errx(EXIT_FAILURE, ("integer overflow"));
+ 	return sum;
+ }
+ 
+@@ -193,7 +195,7 @@ static void process_path(struct hardlink
+ 	if (st.st_dev != ctl->dev && !ctl->force) {
+ 		if (ctl->dev)
+ 			errx(EXIT_FAILURE,
+-			     _("%s is on different filesystem than the rest "
++			     ("%s is on different filesystem than the rest "
+ 			       "(use -f option to override)."), name);
+ 		ctl->dev = st.st_dev;
+ 	}
+@@ -287,9 +289,9 @@ static void process_path(struct hardlink
+ 							(ssize_t) sizeof(ctl->iobuf1) : fsize;
+ 
+ 					if ((xsz = read(fd, ctl->iobuf1, rsize)) != rsize)
+-						warn(_("cannot read %s"), name);
++						warn(("cannot read %s"), name);
+ 					else if ((xsz = read(fd2, ctl->iobuf2, rsize)) != rsize)
+-						warn(_("cannot read %s"), fp2->name);
++						warn(("cannot read %s"), fp2->name);
+ 
+ 					if (xsz != rsize) {
+ 						close(fd);
+@@ -303,13 +305,13 @@ static void process_path(struct hardlink
+ 				if (fsize > 0)
+ 					continue;
+ 				if (lstat(name, &st3)) {
+-					warn(_("cannot stat %s"), name);
++					warn(("cannot stat %s"), name);
+ 					close(fd);
+ 					return;
+ 				}
+ 				st3.st_atime = st.st_atime;
+ 				if (stcmp(&st, &st3, 0)) {
+-					warnx(_("file %s changed underneath us"), name);
++					warnx(("file %s changed underneath us"), name);
+ 					close(fd);
+ 					return;
+ 				}
+@@ -329,18 +331,18 @@ static void process_path(struct hardlink
+ 					       suffixlen + 1);
+ 					/* First create a temporary link to n1 under a new name */
+ 					if (link(n1, nam2.buf)) {
+-						warn(_("failed to hardlink %s to %s (create temporary link as %s failed)"),
++						warn(("failed to hardlink %s to %s (create temporary link as %s failed)"),
+ 							n1, n2, nam2.buf);
+ 						free(nam2.buf);
+ 						continue;
+ 					}
+ 					/* Then rename into place over the existing n2 */
+ 					if (rename(nam2.buf, n2)) {
+-						warn(_("failed to hardlink %s to %s (rename temporary link to %s failed)"),
++						warn(("failed to hardlink %s to %s (rename temporary link to %s failed)"),
+ 							n1, n2, n2);
+ 						/* Something went wrong, try to remove the now redundant temporary link */
+ 						if (unlink(nam2.buf))
+-							warn(_("failed to remove temporary link %s"), nam2.buf);
++							warn(("failed to remove temporary link %s"), nam2.buf);
+ 						free(nam2.buf);
+ 						continue;
+ 					}
+@@ -351,16 +353,16 @@ static void process_path(struct hardlink
+ 					/* We actually did not save anything this time, since the link second argument
+ 					   had some other links as well.  */
+ 					if (ctl->verbose > 1)
+-						printf(_(" %s %s to %s\n"),
+-							(ctl->no_link ? _("Would link") : _("Linked")),
++						printf((" %s %s to %s\n"),
++							(ctl->no_link ? ("Would link") : ("Linked")),
+ 							n1, n2);
+ 				} else {
+ 					ctl->nsaved += ((st.st_size + 4095) / 4096) * 4096;
+ 					if (ctl->verbose > 1)
+-						printf(_(" %s %s to %s, %s %jd\n"),
+-							(ctl->no_link ? _("Would link") : _("Linked")),
++						printf((" %s %s to %s, %s %jd\n"),
++							(ctl->no_link ? ("Would link") : ("Linked")),
+ 							n1, n2,
+-							(ctl->no_link ? _("would save") : _("saved")),
++							(ctl->no_link ? ("would save") : ("saved")),
+ 							(intmax_t)st.st_size);
+ 				}
+ 				close(fd);
+@@ -410,11 +412,6 @@ int main(int argc, char **argv)
+ 		{ NULL, 0, NULL, 0 },
+ 	};
+ 
+-	setlocale(LC_ALL, "");
+-	bindtextdomain(PACKAGE, LOCALEDIR);
+-	textdomain(PACKAGE);
+-	close_stdout_atexit();
+-
+ 	while ((ch = getopt_long(argc, argv, "cnvfx:Vh", longopts, NULL)) != -1) {
+ 		switch (ch) {
+ 		case 'n':
+@@ -434,7 +431,7 @@ int main(int argc, char **argv)
+ 			exclude_pattern = (PCRE2_SPTR) optarg;
+ #else
+ 			errx(EXIT_FAILURE,
+-			     _("option --exclude not supported (built without pcre2)"));
++			     ("option --exclude not supported (built without pcre2)"));
+ #endif
+ 			break;
+ 		case 'V':
+@@ -447,7 +444,7 @@ int main(int argc, char **argv)
+ 	}
+ 
+ 	if (optind == argc) {
+-		warnx(_("no directory specified"));
++		warnx(("no directory specified"));
+ 		errtryhelp(EXIT_FAILURE);
+ 	}
+ 
+@@ -461,7 +458,7 @@ int main(int argc, char **argv)
+ 			PCRE2_UCHAR buffer[256];
+ 			pcre2_get_error_message(errornumber, buffer,
+ 						sizeof(buffer));
+-			errx(EXIT_FAILURE, _("pattern error at offset %d: %s"),
++			errx(EXIT_FAILURE, ("pattern error at offset %d: %s"),
+ 				(int)erroroffset, buffer);
+ 		}
+ 		match_data = pcre2_match_data_create_from_pattern(re, NULL);
+@@ -506,7 +503,7 @@ int main(int argc, char **argv)
+ 			    >=0) {
+ 				if (ctl->verbose) {
+ 					nam1.buf[nam1baselen] = 0;
+-					printf(_("Skipping %s%s\n"), nam1.buf, di->d_name);
++					printf(("Skipping %s%s\n"), nam1.buf, di->d_name);
+ 				}
+ 				continue;
+ 			}
+--- a/locale/programs/c.h
++++ b/locale/programs/c.h
+@@ -240,7 +240,7 @@ errmsg(char doexit, int excode, char add
+ /* Don't use inline function to avoid '#include "nls.h"' in c.h
+  */
+ #define errtryhelp(eval) __extension__ ({ \
+-	fprintf(stderr, _("Try '%s --help' for more information.\n"), \
++	fprintf(stderr, ("Try '%s --help' for more information.\n"), \
+ 			program_invocation_short_name); \
+ 	exit(eval); \
+ })
diff --git a/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb b/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb
index c33cb80..87b8bfa 100644
--- a/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb
+++ b/poky/meta/recipes-core/meta/target-sdk-provides-dummy.bb
@@ -1,6 +1,6 @@
 DUMMYARCH = "sdk-provides-dummy-target"
 
-DUMMYPROVIDES = "\
+DUMMYPROVIDES_PACKAGES = "\
     busybox \
     busybox-dev \
     busybox-src \
@@ -42,15 +42,19 @@
     perl-module-threads \
     perl-module-warnings \
     perl-module-warnings-register \
+    pkgconfig \
+    pkgconfig-dev \
+    pkgconfig-src \
+"
+
+DUMMYPROVIDES = "\
+    ${@' '.join([multilib_pkg_extend(d, pkg) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES').split()])} \
     /bin/sh \
     /bin/bash \
     /usr/bin/env \
     /usr/bin/perl \
     libperl.so.5 \
     libperl.so.5()(64bit) \
-    pkgconfig \
-    pkgconfig-dev \
-    pkgconfig-src \
 "
 
 require dummy-sdk-package.inc
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index 6425b5c..64aee6c 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 = "d0b547dfb5f7678cab6bc39dd736ed6454357ca4"
+SRCREV = "29e8737f81ccc9fbadcf61a75318aa3d0516aafa"
 
 BASEVER = "1.1.23"
 
diff --git a/poky/meta/recipes-core/ncurses/ncurses_6.1+20181013.bb b/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
similarity index 87%
rename from poky/meta/recipes-core/ncurses/ncurses_6.1+20181013.bb
rename to poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
index ef6ca98..a44d78e 100644
--- a/poky/meta/recipes-core/ncurses/ncurses_6.1+20181013.bb
+++ b/poky/meta/recipes-core/ncurses/ncurses_6.1+20190803.bb
@@ -5,7 +5,7 @@
             file://config.cache \
 "
 # commit id corresponds to the revision in package version
-SRCREV = "7a97a7f937762ba342d5b2fd7cd090885a809835"
+SRCREV = "3c9b2677c96c645496997321bf2fe465a5e7e21f"
 S = "${WORKDIR}/git"
 EXTRA_OECONF += "--with-abi-version=5 --cache-file=${B}/config.cache"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+(\+\d+)*)"
diff --git a/poky/meta/recipes-core/psplash/files/psplash-init b/poky/meta/recipes-core/psplash/files/psplash-init
index fee23e6..dcb7519 100755
--- a/poky/meta/recipes-core/psplash/files/psplash-init
+++ b/poky/meta/recipes-core/psplash/files/psplash-init
@@ -25,7 +25,9 @@
 
 export TMPDIR=/mnt/.psplash
 [ -d $TMPDIR ] || mkdir -p $TMPDIR
-mount tmpfs -t tmpfs $TMPDIR -o,size=40k
+if [ ! mountpoint -q $TMPDIR ]; then
+	mount tmpfs -t tmpfs $TMPDIR -o,size=40k
+fi
 
 rotation=0
 if [ -e /etc/rotation ]; then
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch b/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch
deleted file mode 100644
index 3797975..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0001-Use-getenv-when-secure-versions-are-not-available.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b8055a61b5df6b43b8d3117936587b874b0a339b Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 11:01:18 +0800
-Subject: [PATCH 01/24] Use getenv when secure versions are not available
-
-musl doesnt implement secure version, so we default
-to it if configure does not detect a secure implementation
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Denied
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/basic/missing_stdlib.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
-index 188a8d4..c0ffe86 100644
---- a/src/basic/missing_stdlib.h
-+++ b/src/basic/missing_stdlib.h
-@@ -8,6 +8,6 @@
- #  if HAVE___SECURE_GETENV
- #    define secure_getenv __secure_getenv
- #  else
--#    error "neither secure_getenv nor __secure_getenv are available"
-+#    define secure_getenv getenv
- #  endif
- #endif
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
index df1043b..47ee279 100644
--- a/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -76,7 +76,7 @@
 --- a/src/basic/missing_stdlib.h
 +++ b/src/basic/missing_stdlib.h
 @@ -11,3 +11,15 @@
- #    define secure_getenv getenv
+ #    error "neither secure_getenv nor __secure_getenv are available"
  #  endif
  #endif
 +
diff --git a/poky/meta/recipes-core/systemd/systemd_242.bb b/poky/meta/recipes-core/systemd/systemd_242.bb
index 1953fef..b368ca8 100644
--- a/poky/meta/recipes-core/systemd/systemd_242.bb
+++ b/poky/meta/recipes-core/systemd/systemd_242.bb
@@ -32,7 +32,7 @@
 
 # patches needed by musl
 SRC_URI_append_libc-musl = " ${SRC_URI_MUSL}"
-SRC_URI_MUSL = "file://0001-Use-getenv-when-secure-versions-are-not-available.patch \
+SRC_URI_MUSL = "\
                file://0002-don-t-use-glibc-specific-qsort_r.patch \
                file://0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch \
                file://0004-add-fallback-parse_printf_format-implementation.patch \
@@ -126,6 +126,7 @@
 PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup"
 PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus"
 PACKAGECONFIG[efi] = "-Defi=true,-Defi=false"
+PACKAGECONFIG[gnu-efi] = "-Dgnu-efi=true -Defi-libdir=${STAGING_LIBDIR} -Defi-includedir=${STAGING_INCDIR}/efi,-Dgnu-efi=false,gnu-efi"
 PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils"
 PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
 # Sign the journal for anti-tampering
diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc
index 84c7012..1fa8236 100644
--- a/poky/meta/recipes-core/util-linux/util-linux.inc
+++ b/poky/meta/recipes-core/util-linux/util-linux.inc
@@ -190,20 +190,19 @@
 	echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall
 
 	rm -f ${D}${bindir}/chkdupexe
+}
 
-	if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
+do_install_append_class-target () {
+	if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
 		install -d ${D}${sysconfdir}/pam.d
 		install -m 0644 ${WORKDIR}/runuser.pamd ${D}${sysconfdir}/pam.d/runuser
 		install -m 0644 ${WORKDIR}/runuser-l.pamd ${D}${sysconfdir}/pam.d/runuser-l
-	fi
-	if [ "${@bb.utils.filter('PACKAGECONFIG', 'pam', d)}" ]; then
 		# Required for "su -" aka "su --login" because
 		# otherwise it uses "other", which has "auth pam_deny.so"
 		# and thus prevents the operation.
 		ln -s su ${D}${sysconfdir}/pam.d/su-l
 	fi
 }
-
 # nologin causes a conflict with shadow-native
 # kill causes a conflict with coreutils-native (if ${bindir}==${base_bindir})
 do_install_append_class-native () {
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.32.inc b/poky/meta/recipes-devtools/binutils/binutils-2.32.inc
index 31c24a3..d3c5293 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.32.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.32.inc
@@ -50,6 +50,8 @@
      file://CVE-2019-9077.patch \
      file://CVE-2019-9071.patch \
      file://CVE-2019-12972.patch \
+     file://CVE-2019-14250.patch \
+     file://CVE-2019-14444.patch \
 "
 S  = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch b/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch
new file mode 100644
index 0000000..c915a83
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14250.patch
@@ -0,0 +1,33 @@
+From df78be05daf4eb07f60f50ec1080cb979af32ec0 Mon Sep 17 00:00:00 2001
+From: marxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Tue, 23 Jul 2019 07:33:32 +0000
+Subject: [PATCH] libiberty: Check zero value shstrndx in simple-object-elf.c
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@273718 138bc75d-0d04-0410-961f-82ee72b054a4
+
+CVE: CVE-2019-14250
+Upstream-Status: Backport [from gcc: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=273718]
+[Removed Changelog entry]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+diff --git a/libiberty/simple-object-elf.c b/libiberty/simple-object-elf.c
+index 502388991a08..bdee963634d6 100644
+--- a/libiberty/simple-object-elf.c
++++ b/libiberty/simple-object-elf.c
+@@ -548,7 +548,15 @@ simple_object_elf_match (unsigned char header[SIMPLE_OBJECT_MATCH_HEADER_LEN],
+       XDELETE (eor);
+       return NULL;
+     }
+-
++  
++  if (eor->shstrndx == 0)
++    {
++      *errmsg = "invalid ELF shstrndx == 0";
++      *err = 0;
++      XDELETE (eor);
++      return NULL;
++    }
++  
+   return (void *) eor;
+ }
+ 
diff --git a/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch b/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch
new file mode 100644
index 0000000..85b9a9f
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/CVE-2019-14444.patch
@@ -0,0 +1,28 @@
+From e17869db99195849826eaaf5d2d0eb2cfdd7a2a7 Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Mon, 5 Aug 2019 10:40:35 +0100
+Subject: [PATCH] Catch potential integer overflow in readelf when processing
+ corrupt binaries.
+
+	PR 24829
+	* readelf.c (apply_relocations): Catch potential integer overflow
+	whilst checking reloc location against section size.
+
+CVE: CVE-2019-14444
+Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e17869db99195849826eaaf5d2d0eb2cfdd7a2a7]
+[Removed Changelog entry]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+diff --git a/binutils/readelf.c b/binutils/readelf.c
+index b896ad9f406..e785fde43e7 100644
+--- a/binutils/readelf.c
++++ b/binutils/readelf.c
+@@ -13366,7 +13366,7 @@ apply_relocations (Filedata *                 filedata,
+ 	    }
+ 
+ 	  rloc = start + rp->r_offset;
+-	  if ((rloc + reloc_size) > end || (rloc < start))
++	  if (rloc >= end || (rloc + reloc_size) > end || (rloc < start))
+ 	    {
+ 	      warn (_("skipping invalid relocation offset 0x%lx in section %s\n"),
+ 		    (unsigned long) rp->r_offset,
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.2.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.2.1.bb
index 138ec74..647516c 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.2.1.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.2.1.bb
@@ -24,7 +24,8 @@
 CLEANBROKEN = "1"
 
 PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native"
-EXTRA_OECONF = " --disable-zstd"
+PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd"
+
 EXTRA_OECONF_append_libc-musl = " --disable-backtrace "
 EXTRA_PYTHON_CFLAGS = "${DEBUG_PREFIX_MAP}"
 EXTRA_PYTHON_CFLAGS_class-native = ""
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.3.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.0.bb
similarity index 90%
rename from poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.3.bb
rename to poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.0.bb
index 22b9f3d..ae0a35d 100644
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.14.3.bb
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.0.bb
@@ -8,7 +8,7 @@
            file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
            "
 
-SRCREV = "de9d8337885d953baae501cce75decc11d5468dd"
+SRCREV = "2077ba104eae04bb819e9e0c906c8c835b62e7a6"
 
 S = "${WORKDIR}/git"
 
@@ -17,7 +17,7 @@
 
 inherit cmake pkgconfig bash-completion distutils3-base
 
-EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF"
+EXTRA_OECMAKE = " -DPYTHON_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} -DPYTHON_DESIRED=3 -DWITH_ZCHUNK=OFF -DENABLE_DRPM=OFF"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb b/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb
similarity index 73%
rename from poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb
rename to poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb
index 6446f47..aecba07 100644
--- a/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.23.bb
+++ b/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.24.bb
@@ -7,8 +7,8 @@
                     file://src/validator.c;beginline=4;endline=27;md5=281e1114ee6c486a1a0a4295986b9416"
 
 SRC_URI = "http://freedesktop.org/software/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[md5sum] = "599133d51cc9a41bfec186414906b6f1"
-SRC_URI[sha256sum] = "6c094031bdec46c9f621708f919084e1cb5294e2c5b1e4c883b3e70cb8903385"
+SRC_URI[md5sum] = "9364b82e14cfcad881161aa7ea5257ae"
+SRC_URI[sha256sum] = "a1de5da60cbdbe91e5c9c10ac9afee6c3deb019e0cee5fdb9a99dddc245f83d9"
 
 DEPENDS = "glib-2.0"
 
@@ -17,3 +17,8 @@
 EXTRA_OECONF += "ac_cv_prog_EMACS=no"
 
 BBCLASSEXTEND = "native nativesdk"
+
+do_install_append() {
+        rm -rf ${D}${datadir}/emacs
+}
+
diff --git a/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb b/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb
similarity index 97%
rename from poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb
rename to poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb
index a93604b..7942deb 100644
--- a/poky/meta/recipes-devtools/distcc/distcc_3.3.2.bb
+++ b/poky/meta/recipes-devtools/distcc/distcc_3.3.3.bb
@@ -20,7 +20,7 @@
            file://distccmon-gnome.desktop \
            file://distcc \
            file://distcc.service"
-SRCREV = "8600f0857dac55ea393dc11a860948692d215fc8"
+SRCREV = "4cde9bcfbda589abd842e3bbc652ce369085eaae"
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig update-rc.d useradd systemd
diff --git a/poky/meta/recipes-devtools/gcc/gcc-8.3/0021-Ensure-target-gcc-headers-can-be-included.patch b/poky/meta/recipes-devtools/gcc/gcc-8.3/0021-Ensure-target-gcc-headers-can-be-included.patch
index 60d7269..58b4d1a 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-8.3/0021-Ensure-target-gcc-headers-can-be-included.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-8.3/0021-Ensure-target-gcc-headers-can-be-included.patch
@@ -1,4 +1,4 @@
-From 476eda9054df443d094273c8b61fce63d940adfc Mon Sep 17 00:00:00 2001
+From 94cc995cee76a9d59204a900fcaa2afb2eaa75c2 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 20 Feb 2015 10:25:11 +0000
 Subject: [PATCH 21/40] Ensure target gcc headers can be included
@@ -23,14 +23,14 @@
  4 files changed, 15 insertions(+), 7 deletions(-)
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 71a8275c39f..5ae693fb06c 100644
+index 71a8275c39f..aa4adc3db24 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
 @@ -614,6 +614,7 @@ libexecdir = @libexecdir@
  
  # Directory in which the compiler finds libraries etc.
  libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
-+libsubdir_target = gcc/$(target_noncanonical)/$(version)
++libsubdir_target = $(target_noncanonical)/$(version)
  # Directory in which the compiler finds executables
  libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
  # Directory in which all plugin resources are installed
@@ -94,5 +94,5 @@
  #undef MD_EXEC_PREFIX
  #undef MD_STARTFILE_PREFIX
 -- 
-2.21.0
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1.inc b/poky/meta/recipes-devtools/gcc/gcc-9.1.inc
deleted file mode 100644
index 4c648a1..0000000
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1.inc
+++ /dev/null
@@ -1,117 +0,0 @@
-require gcc-common.inc
-
-# Third digit in PV should be incremented after a minor release
-
-PV = "9.1.0"
-
-# BINV should be incremented to a revision after a minor gcc release
-
-BINV = "9.1.0"
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-9.1:${FILE_DIRNAME}/gcc-9.1/backport:"
-
-DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
-NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native"
-
-LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
-
-LIC_FILES_CHKSUM = "\
-    file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-    file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
-    file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
-    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-    file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
-"
-
-BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
-#RELEASE ?= "5a5ca2d"
-#BASEURI ?= "https://repo.or.cz/official-gcc.git/snapshot/${RELEASE}.tar.gz;downloadfilename=gcc-${RELEASE}.tar.gz"
-SRC_URI = "\
-           ${BASEURI} \
-           file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
-           file://0002-gcc-poison-system-directories.patch \
-           file://0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \
-           file://0004-64-bit-multilib-hack.patch \
-           file://0005-optional-libstdc.patch \
-           file://0007-COLLECT_GCC_OPTIONS.patch \
-           file://0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
-           file://0009-fortran-cross-compile-hack.patch \
-           file://0010-cpp-honor-sysroot.patch \
-           file://0011-MIPS64-Default-to-N64-ABI.patch \
-           file://0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
-           file://0013-gcc-Fix-argument-list-too-long-error.patch \
-           file://0014-Disable-sdt.patch \
-           file://0015-libtool.patch \
-           file://0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
-           file://0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
-           file://0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
-           file://0019-export-CPP.patch \
-           file://0020-Ensure-target-gcc-headers-can-be-included.patch \
-           file://0021-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \
-           file://0022-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
-           file://0023-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
-           file://0024-aarch64-Add-support-for-musl-ldso.patch \
-           file://0025-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
-           file://0026-handle-sysroot-support-for-nativesdk-gcc.patch \
-           file://0027-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
-           file://0028-Fix-various-_FOR_BUILD-and-related-variables.patch \
-           file://0029-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
-           file://0030-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
-           file://0031-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \
-           file://0032-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
-           file://0033-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
-           file://0034-sync-gcc-stddef.h-with-musl.patch \
-           file://0035-fix-segmentation-fault-in-precompiled-header-generat.patch \
-           file://0036-Fix-for-testsuite-failure.patch \
-           file://0037-Re-introduce-spe-commandline-options.patch \
-"
-SRC_URI[md5sum] = "6069ae3737cf02bf2cb44a391ef0e937"
-SRC_URI[sha256sum] = "79a66834e96a6050d8fe78db2c3b32fb285b230b855d0a66288235bc04b327a0"
-S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
-# For dev release snapshotting
-#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/official-gcc-${RELEASE}"
-#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
-
-# Language Overrides
-FORTRAN = ""
-JAVA = ""
-
-LTO = "--enable-lto"
-SSP ?= "--disable-libssp"
-SSP_mingw32 = "--enable-libssp"
-
-EXTRA_OECONF_BASE = "\
-    ${LTO} \
-    ${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 \
-    --with-ppl=no \
-    --with-cloog=no \
-    --enable-checking=release \
-    --enable-cheaders=c_global \
-    --without-isl \
-"
-
-EXTRA_OECONF_INITIAL = "\
-    --disable-libmudflap \
-    --disable-libgomp \
-    --disable-libitm \
-    --disable-libquadmath \
-    --with-system-zlib \
-    --disable-lto \
-    --disable-plugin \
-    --enable-linker-build-id \
-    --enable-decimal-float=no \
-    --without-isl \
-    --disable-libssp \
-"
-
-EXTRA_OECONF_PATHS = "\
-    --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
-    --with-sysroot=/not/exist \
-    --with-build-sysroot=${STAGING_DIR_TARGET} \
-"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.2.inc b/poky/meta/recipes-devtools/gcc/gcc-9.2.inc
new file mode 100644
index 0000000..1c3e200
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2.inc
@@ -0,0 +1,118 @@
+require gcc-common.inc
+
+# Third digit in PV should be incremented after a minor release
+
+PV = "9.2.0"
+
+# BINV should be incremented to a revision after a minor gcc release
+
+BINV = "9.2.0"
+
+FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-9.2:${FILE_DIRNAME}/gcc-9.2/backport:"
+
+DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
+NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native"
+
+LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
+
+LIC_FILES_CHKSUM = "\
+    file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+    file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
+    file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
+    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+    file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
+"
+
+BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
+#RELEASE ?= "5a5ca2d"
+#BASEURI ?= "https://repo.or.cz/official-gcc.git/snapshot/${RELEASE}.tar.gz;downloadfilename=gcc-${RELEASE}.tar.gz"
+SRC_URI = "\
+           ${BASEURI} \
+           file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
+           file://0002-gcc-poison-system-directories.patch \
+           file://0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch \
+           file://0004-64-bit-multilib-hack.patch \
+           file://0005-optional-libstdc.patch \
+           file://0006-COLLECT_GCC_OPTIONS.patch \
+           file://0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
+           file://0008-fortran-cross-compile-hack.patch \
+           file://0009-cpp-honor-sysroot.patch \
+           file://0010-MIPS64-Default-to-N64-ABI.patch \
+           file://0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
+           file://0012-gcc-Fix-argument-list-too-long-error.patch \
+           file://0013-Disable-sdt.patch \
+           file://0014-libtool.patch \
+           file://0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
+           file://0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
+           file://0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
+           file://0018-export-CPP.patch \
+           file://0019-Ensure-target-gcc-headers-can-be-included.patch \
+           file://0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch \
+           file://0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
+           file://0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch \
+           file://0023-aarch64-Add-support-for-musl-ldso.patch \
+           file://0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
+           file://0025-handle-sysroot-support-for-nativesdk-gcc.patch \
+           file://0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
+           file://0027-Fix-various-_FOR_BUILD-and-related-variables.patch \
+           file://0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
+           file://0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
+           file://0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch \
+           file://0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
+           file://0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
+           file://0033-sync-gcc-stddef.h-with-musl.patch \
+           file://0034-fix-segmentation-fault-in-precompiled-header-generat.patch \
+           file://0035-Fix-for-testsuite-failure.patch \
+           file://0036-Re-introduce-spe-commandline-options.patch \
+"
+S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
+SRC_URI[md5sum] = "3818ad8600447f05349098232c2ddc78"
+SRC_URI[sha256sum] = "ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206"
+
+# For dev release snapshotting
+#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/official-gcc-${RELEASE}"
+#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
+
+# Language Overrides
+FORTRAN = ""
+JAVA = ""
+
+LTO = "--enable-lto"
+SSP ?= "--disable-libssp"
+SSP_mingw32 = "--enable-libssp"
+
+EXTRA_OECONF_BASE = "\
+    ${LTO} \
+    ${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 \
+    --with-ppl=no \
+    --with-cloog=no \
+    --enable-checking=release \
+    --enable-cheaders=c_global \
+    --without-isl \
+"
+
+EXTRA_OECONF_INITIAL = "\
+    --disable-libmudflap \
+    --disable-libgomp \
+    --disable-libitm \
+    --disable-libquadmath \
+    --with-system-zlib \
+    --disable-lto \
+    --disable-plugin \
+    --enable-linker-build-id \
+    --enable-decimal-float=no \
+    --without-isl \
+    --disable-libssp \
+"
+
+EXTRA_OECONF_PATHS = "\
+    --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
+    --with-sysroot=/not/exist \
+    --with-build-sysroot=${STAGING_DIR_TARGET} \
+"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
similarity index 79%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
index 33c910c..9065c30 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
@@ -1,7 +1,7 @@
-From f1f6d84aadc4e3cde707b1ec8490f5dc46d4c8e0 Mon Sep 17 00:00:00 2001
+From 863325ec3c6eb4987be63509ac407b2d13617342 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 08:37:11 +0400
-Subject: [PATCH 01/37] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
+Subject: [PATCH 01/36] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
@@ -12,10 +12,10 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/configure b/configure
-index adf4fda0f69..8a04eea4c71 100755
+index abd93a990a9..b121088d778 100755
 --- a/configure
 +++ b/configure
-@@ -7602,7 +7602,7 @@ fi
+@@ -7603,7 +7603,7 @@ fi
  # for target_alias and gcc doesn't manage it consistently.
  target_configargs="--cache-file=./config.cache ${target_configargs}"
  
@@ -25,10 +25,10 @@
   *" newlib "*)
    case " $target_configargs " in
 diff --git a/configure.ac b/configure.ac
-index 87f2aee0500..01b46b8bed4 100644
+index 9db4fd14aa2..aad93c4d183 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -3118,7 +3118,7 @@ fi
+@@ -3119,7 +3119,7 @@ fi
  # for target_alias and gcc doesn't manage it consistently.
  target_configargs="--cache-file=./config.cache ${target_configargs}"
  
@@ -38,5 +38,5 @@
   *" newlib "*)
    case " $target_configargs " in
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0002-gcc-poison-system-directories.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch
similarity index 91%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0002-gcc-poison-system-directories.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch
index 1231567..a1116e7 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0002-gcc-poison-system-directories.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0002-gcc-poison-system-directories.patch
@@ -1,7 +1,7 @@
-From 733ca3372e4125170d4531bcd33e48eeb36bfec0 Mon Sep 17 00:00:00 2001
+From 68e78bc15de215fa15c7d8b56bd2e2b0539b34fa Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 08:59:00 +0400
-Subject: [PATCH 02/37] gcc: poison-system-directories
+Subject: [PATCH 02/36] gcc: poison-system-directories
 
 Add /sw/include and /opt/include based on the original
 zecke-no-host-includes.patch patch.  The original patch checked for
@@ -26,7 +26,7 @@
  7 files changed, 68 insertions(+)
 
 diff --git a/gcc/common.opt b/gcc/common.opt
-index 9a5e9af06ca..211f2b2260e 100644
+index d342c4f3749..c64fd4a6c50 100644
 --- a/gcc/common.opt
 +++ b/gcc/common.opt
 @@ -684,6 +684,10 @@ Wreturn-local-addr
@@ -41,7 +41,7 @@
  Common Var(warn_shadow) Warning
  Warn when one variable shadows another.  Same as -Wshadow=global.
 diff --git a/gcc/config.in b/gcc/config.in
-index 48a533bf208..fc3043bbdfb 100644
+index a718ceaf3da..5713342efb1 100644
 --- a/gcc/config.in
 +++ b/gcc/config.in
 @@ -200,6 +200,12 @@
@@ -58,7 +58,7 @@
     optimizer and back end) to be checked for dynamic type safety at runtime.
     This is quite expensive. */
 diff --git a/gcc/configure b/gcc/configure
-index d6a48ef76e7..2e08396622e 100755
+index 481071b4265..a6ea3a8a84c 100755
 --- a/gcc/configure
 +++ b/gcc/configure
 @@ -995,6 +995,7 @@ with_system_zlib
@@ -78,7 +78,7 @@
    --enable-plugin         enable plugin support
    --enable-host-shared    build host code as shared libraries
    --disable-libquadmath-support
-@@ -29717,6 +29720,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
+@@ -29750,6 +29753,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
  fi
  
  
@@ -99,10 +99,10 @@
  
  
 diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 78370352938..7d34911573e 100644
+index ce2825580c6..d42bbd4fd1c 100644
 --- a/gcc/configure.ac
 +++ b/gcc/configure.ac
-@@ -6375,6 +6375,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
+@@ -6378,6 +6378,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
                  [specify that runtime libraries should be
                   installed in a compiler-specific directory])])
  
@@ -120,10 +120,10 @@
  AC_SUBST(subdirs)
  AC_SUBST(srcdir)
 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index 99fd97404e1..001868e1509 100644
+index 6ef36ce02aa..09414d8cc05 100644
 --- a/gcc/doc/invoke.texi
 +++ b/gcc/doc/invoke.texi
-@@ -330,6 +330,7 @@ Objective-C and Objective-C++ Dialects}.
+@@ -332,6 +332,7 @@ Objective-C and Objective-C++ Dialects}.
  -Wpacked  -Wpacked-bitfield-compat -Wpacked-not-aligned  -Wpadded @gol
  -Wparentheses  -Wno-pedantic-ms-format @gol
  -Wplacement-new  -Wplacement-new=@var{n} @gol
@@ -131,7 +131,7 @@
  -Wpointer-arith  -Wpointer-compare  -Wno-pointer-to-int-cast @gol
  -Wno-pragmas  -Wno-prio-ctor-dtor  -Wredundant-decls @gol
  -Wrestrict  -Wno-return-local-addr @gol
-@@ -6254,6 +6255,14 @@ made up of data only and thus requires no special treatment.  But, for
+@@ -6289,6 +6290,14 @@ made up of data only and thus requires no special treatment.  But, for
  most targets, it is made up of code and thus requires the stack to be
  made executable in order for the program to work properly.
  
@@ -147,7 +147,7 @@
  @opindex Wfloat-equal
  @opindex Wno-float-equal
 diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 797ed36616f..79c38d858d1 100644
+index 4f57765b012..a2601a6bb06 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -1042,6 +1042,8 @@ proper position among the other output files.  */
@@ -199,5 +199,5 @@
  
  /* Use given -I paths for #include "..." but not #include <...>, and
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
similarity index 92%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
index 916c374..23039d2 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0003-gcc-4.3.3-SYSROOT_CFLAGS_FOR_TARGET.patch
@@ -1,7 +1,7 @@
-From 320352cc741c89f1a9b2ee7929193d255e65f27a Mon Sep 17 00:00:00 2001
+From f8d60c4114acb92361c7b2f4a4561d4661e8da9d Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:08:31 +0400
-Subject: [PATCH 03/37] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET
+Subject: [PATCH 03/36] gcc-4.3.3: SYSROOT_CFLAGS_FOR_TARGET
 
 Before committing, I noticed that PR/32161 was marked as a dup of PR/32009, but my previous patch did not fix it.
 
@@ -26,10 +26,10 @@
  1 file changed, 32 insertions(+)
 
 diff --git a/configure b/configure
-index 8a04eea4c71..3b0eed74847 100755
+index b121088d778..93aae5bb26f 100755
 --- a/configure
 +++ b/configure
-@@ -6863,6 +6863,38 @@ fi
+@@ -6864,6 +6864,38 @@ fi
  
  
  
@@ -69,5 +69,5 @@
  # the named directory are copied to $(tooldir)/sys-include.
  if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0004-64-bit-multilib-hack.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch
similarity index 97%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0004-64-bit-multilib-hack.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch
index 137261b..a79c40c 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0004-64-bit-multilib-hack.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0004-64-bit-multilib-hack.patch
@@ -1,7 +1,7 @@
-From 150d946082b3e21614d1cd0eb4752871495fe519 Mon Sep 17 00:00:00 2001
+From c2081c51db589471ea713870c72f13999abda815 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:10:06 +0400
-Subject: [PATCH 04/37] 64-bit multilib hack.
+Subject: [PATCH 04/36] 64-bit multilib hack.
 
 GCC has internal multilib handling code but it assumes a very specific rigid directory
 layout. The build system implementation of multilib layout is very generic and allows
@@ -115,5 +115,5 @@
  rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c
  	$(COMPILE) $<
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0005-optional-libstdc.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch
similarity index 91%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0005-optional-libstdc.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch
index d8e970a..f4fac91 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0005-optional-libstdc.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0005-optional-libstdc.patch
@@ -1,7 +1,7 @@
-From a3323ea74f0793b35af4a4cdbe5e99fe21e4816b Mon Sep 17 00:00:00 2001
+From e7e504f4a90cfa395e7f8ee779f8c3ed687802ca Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:12:56 +0400
-Subject: [PATCH 05/37] optional libstdc
+Subject: [PATCH 05/36] optional libstdc
 
 gcc-runtime builds libstdc++ separately from gcc-cross-*. Its configure tests using g++
 will not run correctly since by default the linker will try to link against libstdc++
@@ -25,10 +25,10 @@
  4 files changed, 37 insertions(+), 1 deletion(-)
 
 diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
-index 88c72c51c21..a7029592aa3 100644
+index 916cc67b453..41619fa591c 100644
 --- a/gcc/c-family/c.opt
 +++ b/gcc/c-family/c.opt
-@@ -1948,6 +1948,10 @@ nostdinc++
+@@ -1952,6 +1952,10 @@ nostdinc++
  C++ ObjC++
  Do not search standard system include directories for C++.
  
@@ -52,10 +52,10 @@
  	  library = -1;
  	  break;
 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index 001868e1509..4186c2616ab 100644
+index 09414d8cc05..a43969bc9f0 100644
 --- a/gcc/doc/invoke.texi
 +++ b/gcc/doc/invoke.texi
-@@ -226,6 +226,9 @@ in the following sections.
+@@ -228,6 +228,9 @@ in the following sections.
  -fno-weak  -nostdinc++ @gol
  -fvisibility-inlines-hidden @gol
  -fvisibility-ms-compat @gol
@@ -65,7 +65,7 @@
  -fext-numeric-literals @gol
  -Wabi=@var{n}  -Wabi-tag  -Wconversion-null  -Wctor-dtor-privacy @gol
  -Wdelete-non-virtual-dtor  -Wdeprecated-copy  -Wdeprecated-copy-dtor @gol
-@@ -536,7 +539,7 @@ Objective-C and Objective-C++ Dialects}.
+@@ -538,7 +541,7 @@ Objective-C and Objective-C++ Dialects}.
  -pie  -pthread  -r  -rdynamic @gol
  -s  -static  -static-pie  -static-libgcc  -static-libstdc++ @gol
  -static-libasan  -static-libtsan  -static-liblsan  -static-libubsan @gol
@@ -74,7 +74,7 @@
  -T @var{script}  -Wl,@var{option}  -Xlinker @var{option} @gol
  -u @var{symbol}  -z @var{keyword}}
  
-@@ -13259,6 +13262,33 @@ Specify that the program entry point is @var{entry}.  The argument is
+@@ -13312,6 +13315,33 @@ Specify that the program entry point is @var{entry}.  The argument is
  interpreted by the linker; the GNU linker accepts either a symbol name
  or an address.
  
@@ -109,7 +109,7 @@
  @opindex pie
  Produce a dynamically linked position independent executable on targets
 diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 79c38d858d1..308872aef5f 100644
+index a2601a6bb06..cd6c6fc95db 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -1052,6 +1052,7 @@ proper position among the other output files.  */
@@ -121,5 +121,5 @@
  #endif
  
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0007-COLLECT_GCC_OPTIONS.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch
similarity index 85%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0007-COLLECT_GCC_OPTIONS.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch
index a522ada..9f7e603 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0007-COLLECT_GCC_OPTIONS.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0006-COLLECT_GCC_OPTIONS.patch
@@ -1,7 +1,7 @@
-From c7b8c2a6e81daaa50047c336c8ee90086aa4d4d5 Mon Sep 17 00:00:00 2001
+From b9260cd3ac26b0302824ed466a548464c864d95f Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:16:28 +0400
-Subject: [PATCH 07/37] COLLECT_GCC_OPTIONS
+Subject: [PATCH 06/36] COLLECT_GCC_OPTIONS
 
 This patch adds --sysroot into COLLECT_GCC_OPTIONS which is used to
 invoke collect2.
@@ -14,7 +14,7 @@
  1 file changed, 9 insertions(+)
 
 diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 308872aef5f..30845e5b125 100644
+index cd6c6fc95db..7da9c5d457b 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -4804,6 +4804,15 @@ set_collect_gcc_options (void)
@@ -34,5 +34,5 @@
      {
        const char *const *args;
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
similarity index 92%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
index 2ef94a0..28f8fc2 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0008-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0007-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
@@ -1,7 +1,7 @@
-From 2f65b8bbf9c7c4bc0b94bb7ba9f6a8eb8675c9ab Mon Sep 17 00:00:00 2001
+From 88e728dad53d48c4a19f15e19f66fd23f4820b4a Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:17:25 +0400
-Subject: [PATCH 08/37] Use the defaults.h in ${B} instead of ${S}, and t-oe in
+Subject: [PATCH 07/36] Use the defaults.h in ${B} instead of ${S}, and t-oe in
  ${B}
 
 Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that
@@ -27,7 +27,7 @@
  4 files changed, 7 insertions(+), 7 deletions(-)
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 508c674cbdc..3ccff1614bb 100644
+index 5f43d9de00e..41f0f592ff4 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
 @@ -540,7 +540,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
@@ -40,7 +40,7 @@
  TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
  TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
 diff --git a/gcc/configure b/gcc/configure
-index d36cb51bc2c..7acc7e487b0 100755
+index a6ea3a8a84c..e3bcf8abe9a 100755
 --- a/gcc/configure
 +++ b/gcc/configure
 @@ -12341,8 +12341,8 @@ for f in $tm_file; do
@@ -55,7 +55,7 @@
      * )
         tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
 diff --git a/gcc/configure.ac b/gcc/configure.ac
-index dfa88c35f3f..f5d5e5c16a8 100644
+index d42bbd4fd1c..2ebc377a74d 100644
 --- a/gcc/configure.ac
 +++ b/gcc/configure.ac
 @@ -1968,8 +1968,8 @@ for f in $tm_file; do
@@ -92,5 +92,5 @@
  
  # Add multiple inclusion protection guard, part two.
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0009-fortran-cross-compile-hack.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch
similarity index 84%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0009-fortran-cross-compile-hack.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch
index 7959714..24e3abe 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0009-fortran-cross-compile-hack.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0008-fortran-cross-compile-hack.patch
@@ -1,7 +1,7 @@
-From eda94df7d2389b6c36428e5687d5f0722d3375c3 Mon Sep 17 00:00:00 2001
+From 010f09f2963ede24e85134e5fab2fa627a9afa05 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:20:01 +0400
-Subject: [PATCH 09/37] fortran cross-compile hack.
+Subject: [PATCH 08/36] fortran cross-compile hack.
 
 * Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used
 used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross
@@ -16,10 +16,10 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/libgfortran/configure b/libgfortran/configure
-index 487d8c090e2..a02b49293ac 100755
+index 60867b93d0e..3fc9fca5b7b 100755
 --- a/libgfortran/configure
 +++ b/libgfortran/configure
-@@ -13056,7 +13056,7 @@ esac
+@@ -13071,7 +13071,7 @@ esac
  
  # We need gfortran to compile parts of the library
  #AC_PROG_FC(gfortran)
@@ -29,7 +29,7 @@
  ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
  ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
 diff --git a/libgfortran/configure.ac b/libgfortran/configure.ac
-index c06db7b1a78..5b4b1b7f1f2 100644
+index 7cfce28ab69..6cd515ee1a4 100644
 --- a/libgfortran/configure.ac
 +++ b/libgfortran/configure.ac
 @@ -250,7 +250,7 @@ AC_SUBST(enable_static)
@@ -42,5 +42,5 @@
  
  # extra LD Flags which are required for targets
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0010-cpp-honor-sysroot.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch
similarity index 92%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0010-cpp-honor-sysroot.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch
index b680e6f..6af0a01 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0010-cpp-honor-sysroot.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0009-cpp-honor-sysroot.patch
@@ -1,7 +1,7 @@
-From c2ec131f19d656fd916c45f51186633c789db6e9 Mon Sep 17 00:00:00 2001
+From 45e9cd39d9c62454d46b9e9473a0c1034ceca15d Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:22:00 +0400
-Subject: [PATCH 10/37] cpp: honor sysroot.
+Subject: [PATCH 09/36] cpp: honor sysroot.
 
 Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile
 preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location
@@ -37,7 +37,7 @@
 +      "  cc1plus -fpreprocessed %i %I %(cc1_options) %2"
        "  %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
 diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 30845e5b125..cef26c454d7 100644
+index 7da9c5d457b..4e7c45b268c 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -1349,7 +1349,7 @@ static const struct compiler default_compilers[] =
@@ -50,5 +50,5 @@
    {"@assembler",
     "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0011-MIPS64-Default-to-N64-ABI.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch
similarity index 85%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0011-MIPS64-Default-to-N64-ABI.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch
index d59a31b..bc0c6d5 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0011-MIPS64-Default-to-N64-ABI.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0010-MIPS64-Default-to-N64-ABI.patch
@@ -1,7 +1,7 @@
-From 52b915732de89d8676868641af462df81211bb39 Mon Sep 17 00:00:00 2001
+From 1ff4108d707b34e399e9dc418ad1ecc42f72676d Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:23:08 +0400
-Subject: [PATCH 11/37] MIPS64: Default to N64 ABI
+Subject: [PATCH 10/36] MIPS64: Default to N64 ABI
 
 MIPS64 defaults to n32 ABI, this patch makes it
 so that it defaults to N64 ABI
@@ -14,10 +14,10 @@
  1 file changed, 5 insertions(+), 5 deletions(-)
 
 diff --git a/gcc/config.gcc b/gcc/config.gcc
-index a189cb19f63..293ed8d585d 100644
+index ddd3b8f4d9d..fdfc0bd3e82 100644
 --- a/gcc/config.gcc
 +++ b/gcc/config.gcc
-@@ -2267,29 +2267,29 @@ mips*-*-linux*)				# Linux MIPS, either endian.
+@@ -2282,29 +2282,29 @@ mips*-*-linux*)				# Linux MIPS, either endian.
  			default_mips_arch=mips32
  			;;
  		mips64el-st-linux-gnu)
@@ -53,5 +53,5 @@
  			;;
  	esac
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
similarity index 91%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
index 1ff85c8..21908bc 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0012-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0011-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
@@ -1,7 +1,7 @@
-From 0e13b09ae400d8c8755e2869c72a158ed0dbc0b6 Mon Sep 17 00:00:00 2001
+From a93743732b2125aebd9a6d65e999d7506b01d6b3 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:24:50 +0400
-Subject: [PATCH 12/37] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
+Subject: [PATCH 11/36] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
  relative to SYSTEMLIBS_DIR
 
 This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
@@ -23,12 +23,11 @@
  gcc/config/i386/linux64.h    |  6 +++---
  gcc/config/linux.h           |  8 ++++----
  gcc/config/mips/linux.h      | 12 ++++++------
- gcc/config/riscv/linux.h     |  2 +-
  gcc/config/rs6000/linux64.h  | 15 +++++----------
  gcc/config/sh/linux.h        |  2 +-
  gcc/config/sparc/linux.h     |  2 +-
  gcc/config/sparc/linux64.h   |  4 ++--
- 12 files changed, 29 insertions(+), 34 deletions(-)
+ 11 files changed, 28 insertions(+), 33 deletions(-)
 
 diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
 index 824861befec..6afacce3292 100644
@@ -153,24 +152,11 @@
  
  #undef MUSL_DYNAMIC_LINKER32
  #define MUSL_DYNAMIC_LINKER32 \
-diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
-index 58dd18b89f3..112ba9cd764 100644
---- a/gcc/config/riscv/linux.h
-+++ b/gcc/config/riscv/linux.h
-@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.  If not see
-     GNU_USER_TARGET_OS_CPP_BUILTINS();				\
-   } while (0)
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
- 
- #define MUSL_ABI_SUFFIX \
-   "%{mabi=ilp32:-sf}" \
 diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index 5380f6a6a6f..c0f2dc1f43e 100644
+index 9946d3fed94..45a9a7cae59 100644
 --- a/gcc/config/rs6000/linux64.h
 +++ b/gcc/config/rs6000/linux64.h
-@@ -435,24 +435,19 @@ extern int dot_symbols;
+@@ -423,24 +423,19 @@ extern int dot_symbols;
  #undef	LINK_OS_DEFAULT_SPEC
  #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
  
@@ -242,5 +228,5 @@
  #ifdef SPARC_BI_ARCH
  
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0013-gcc-Fix-argument-list-too-long-error.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch
similarity index 85%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0013-gcc-Fix-argument-list-too-long-error.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch
index f853ff9..6053979 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0013-gcc-Fix-argument-list-too-long-error.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0012-gcc-Fix-argument-list-too-long-error.patch
@@ -1,7 +1,7 @@
-From d8a24eca2d7a222d4910c8a508d75d0d1418e201 Mon Sep 17 00:00:00 2001
+From 2cb227cd8069c73242286f64183fb203f8d2618a Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:26:37 +0400
-Subject: [PATCH 13/37] gcc: Fix argument list too long error.
+Subject: [PATCH 12/36] gcc: Fix argument list too long error.
 
 There would be an "Argument list too long" error when the
 build directory is longer than 200, this is caused by:
@@ -23,10 +23,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 3ccff1614bb..88b1aec732b 100644
+index 41f0f592ff4..0064a282488 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
-@@ -3538,7 +3538,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
+@@ -3537,7 +3537,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
  # We keep the directory structure for files in config or c-family and .def
  # files. All other files are flattened to a single directory.
  	$(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
@@ -36,5 +36,5 @@
  	for file in $$headers; do \
  	  if [ -f $$file ] ; then \
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0014-Disable-sdt.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch
similarity index 89%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0014-Disable-sdt.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch
index 945cf8f..a21a63c 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0014-Disable-sdt.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0013-Disable-sdt.patch
@@ -1,7 +1,7 @@
-From d5e52580314ef6056ca701fcc030c7c884cb1d7f Mon Sep 17 00:00:00 2001
+From aea5ffa9d704f4eb8fa93366884d3c26a1dbec49 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:28:10 +0400
-Subject: [PATCH 14/37] Disable sdt.
+Subject: [PATCH 13/36] Disable sdt.
 
 We don't list dtrace in DEPENDS so we shouldn't be depending on this header.
 It may or may not exist from preivous builds though. To be determinstic, disable
@@ -25,10 +25,10 @@
  4 files changed, 19 insertions(+), 19 deletions(-)
 
 diff --git a/gcc/configure b/gcc/configure
-index 7acc7e487b0..6a87ab693ea 100755
+index e3bcf8abe9a..1f1d22ca666 100755
 --- a/gcc/configure
 +++ b/gcc/configure
-@@ -29292,12 +29292,12 @@ fi
+@@ -29332,12 +29332,12 @@ fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5
  $as_echo_n "checking sys/sdt.h in the target C library... " >&6; }
  have_sys_sdt_h=no
@@ -48,10 +48,10 @@
  $as_echo "$have_sys_sdt_h" >&6; }
  
 diff --git a/gcc/configure.ac b/gcc/configure.ac
-index f5d5e5c16a8..a50765171be 100644
+index 2ebc377a74d..ddc85197588 100644
 --- a/gcc/configure.ac
 +++ b/gcc/configure.ac
-@@ -5985,15 +5985,15 @@ fi
+@@ -5995,15 +5995,15 @@ fi
  AC_SUBST([enable_default_ssp])
  
  # Test for <sys/sdt.h> on the target.
@@ -77,10 +77,10 @@
  # Check if TFmode long double should be used by default or not.
  # Some glibc targets used DFmode long double, but with glibc 2.4
 diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
-index 15848e364ab..8d3da1cc526 100755
+index 5acf79cba54..191bc6c5796 100755
 --- a/libstdc++-v3/configure
 +++ b/libstdc++-v3/configure
-@@ -22084,11 +22084,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+@@ -22085,11 +22085,11 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
  ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
  ac_compiler_gnu=$ac_cv_c_compiler_gnu
  
@@ -96,7 +96,7 @@
  $as_echo "$glibcxx_cv_sys_sdt_h" >&6; }
  
 diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
-index ad5b4117cfd..2341645ba6f 100644
+index dadd8827b49..6b1ce9957d3 100644
 --- a/libstdc++-v3/configure.ac
 +++ b/libstdc++-v3/configure.ac
 @@ -230,7 +230,7 @@ GLIBCXX_CHECK_SC_NPROCESSORS_ONLN
@@ -109,5 +109,5 @@
  # Check for available headers.
  AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0015-libtool.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch
similarity index 91%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0015-libtool.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch
index 764460b..7a8f3af 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0015-libtool.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0014-libtool.patch
@@ -1,7 +1,7 @@
-From d7c605d92094c75dc2717d9dd830e525b2c8b0ff Mon Sep 17 00:00:00 2001
+From 6c4d0c303ebc3e1c7e554d54a8bb807d77ed41fd Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:29:11 +0400
-Subject: [PATCH 15/37] libtool
+Subject: [PATCH 14/36] libtool
 
 libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64
 when running on am x86_64 build host.
@@ -38,5 +38,5 @@
        oldlibs=
        if test -z "$rpath"; then
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
similarity index 91%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
index 398074b..d06ae27 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0016-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0015-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
@@ -1,7 +1,7 @@
-From c3addf8bc41190d46d98eb7690ff4583eebd5943 Mon Sep 17 00:00:00 2001
+From c5662ff1e7dea2291b9cb7a83cfff3001dd31f53 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:30:32 +0400
-Subject: [PATCH 16/37] gcc: armv4: pass fix-v4bx to linker to support EABI.
+Subject: [PATCH 15/36] gcc: armv4: pass fix-v4bx to linker to support EABI.
 
 The LINK_SPEC for linux gets overwritten by linux-eabi.h which
 means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result
@@ -39,5 +39,5 @@
  		       LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
  
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
similarity index 92%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
index 7d5c94a..310caec 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0017-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
@@ -1,7 +1,7 @@
-From e1071f4e749586fcb3edcacf43d4dd44081d16ec Mon Sep 17 00:00:00 2001
+From e3b693b9d6dc9496f7c98a13b28182d23084215c Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:33:04 +0400
-Subject: [PATCH 17/37] Use the multilib config files from ${B} instead of
+Subject: [PATCH 16/36] Use the multilib config files from ${B} instead of
  using the ones from ${S}
 
 Use the multilib config files from ${B} instead of using the ones from ${S}
@@ -18,7 +18,7 @@
  2 files changed, 36 insertions(+), 8 deletions(-)
 
 diff --git a/gcc/configure b/gcc/configure
-index 6a87ab693ea..2e822caf66d 100755
+index 1f1d22ca666..911de2cf017 100755
 --- a/gcc/configure
 +++ b/gcc/configure
 @@ -12321,10 +12321,20 @@ done
@@ -58,7 +58,7 @@
         f=`echo $f | sed 's/^..//'`
         tm_file_list="${tm_file_list} $f"
 diff --git a/gcc/configure.ac b/gcc/configure.ac
-index a50765171be..70e7bac78c4 100644
+index ddc85197588..b413ae9bf25 100644
 --- a/gcc/configure.ac
 +++ b/gcc/configure.ac
 @@ -1948,10 +1948,20 @@ done
@@ -98,5 +98,5 @@
         f=`echo $f | sed 's/^..//'`
         tm_file_list="${tm_file_list} $f"
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
similarity index 84%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
index 596337b..ad1d1d4 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0018-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0017-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
@@ -1,7 +1,7 @@
-From 1ffbbb39c9848aa7a04da18fb79b1f0bd7731e00 Mon Sep 17 00:00:00 2001
+From 09d9ccc1d471020949d1285a5276f17504fd60dd Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 20 Feb 2015 09:39:38 +0000
-Subject: [PATCH 18/37] Avoid using libdir from .la which usually points to a
+Subject: [PATCH 17/36] Avoid using libdir from .la which usually points to a
  host path
 
 Upstream-Status: Inappropriate [embedded specific]
@@ -27,5 +27,5 @@
  	    absdir="$libdir"
  	  fi
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0019-export-CPP.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch
similarity index 93%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0019-export-CPP.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch
index 50d17dd..0f728ec 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0019-export-CPP.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0018-export-CPP.patch
@@ -1,7 +1,7 @@
-From 5ece023b88eaba16d8744f8f2ff72345ec3b7f92 Mon Sep 17 00:00:00 2001
+From 987338cd847a723de533bb317e452a60b1e52165 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 20 Feb 2015 09:40:59 +0000
-Subject: [PATCH 19/37] export CPP
+Subject: [PATCH 18/36] export CPP
 
 The OE environment sets and exports CPP as being the target gcc. When
 building gcc-cross-canadian for a mingw targetted sdk, the following can be found
@@ -37,7 +37,7 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/Makefile.in b/Makefile.in
-index 28539a45372..b21e0791f55 100644
+index 64e091ba71d..255822e3f27 100644
 --- a/Makefile.in
 +++ b/Makefile.in
 @@ -149,6 +149,7 @@ BUILD_EXPORTS = \
@@ -49,5 +49,5 @@
  	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
  	CXX="$(CXX_FOR_BUILD)"; export CXX; \
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0020-Ensure-target-gcc-headers-can-be-included.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch
similarity index 90%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0020-Ensure-target-gcc-headers-can-be-included.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch
index f37c6f3..af0ea5c 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0020-Ensure-target-gcc-headers-can-be-included.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0019-Ensure-target-gcc-headers-can-be-included.patch
@@ -1,7 +1,7 @@
-From 89f7a8e5c55b31bff011cd7466d78cd84d1eb307 Mon Sep 17 00:00:00 2001
+From d27ba49e2e5c608c43265462d6831363cc7f565b Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 20 Feb 2015 10:25:11 +0000
-Subject: [PATCH 20/37] Ensure target gcc headers can be included
+Subject: [PATCH 19/36] Ensure target gcc headers can be included
 
 There are a few headers installed as part of the OpenEmbedded
 gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe
@@ -23,18 +23,18 @@
  4 files changed, 15 insertions(+), 7 deletions(-)
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 88b1aec732b..eb1dc304de2 100644
+index 0064a282488..98d1488171f 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
 @@ -618,6 +618,7 @@ libexecdir = @libexecdir@
  
  # Directory in which the compiler finds libraries etc.
  libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
-+libsubdir_target = gcc/$(target_noncanonical)/$(version)
++libsubdir_target = $(target_noncanonical)/$(version)
  # Directory in which the compiler finds executables
  libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
  # Directory in which all plugin resources are installed
-@@ -2867,6 +2868,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
+@@ -2866,6 +2867,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
  
  PREPROCESSOR_DEFINES = \
    -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
@@ -76,7 +76,7 @@
 +
  #endif  /* ! GCC_DEFAULTS_H */
 diff --git a/gcc/gcc.c b/gcc/gcc.c
-index cef26c454d7..14b1a6e8c44 100644
+index 4e7c45b268c..1a3704b2763 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -1470,13 +1470,6 @@ static const char *gcc_libexec_prefix;
@@ -94,5 +94,5 @@
  #undef MD_EXEC_PREFIX
  #undef MD_STARTFILE_PREFIX
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0021-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
similarity index 92%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0021-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
index ef98572..b0f96d0 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0021-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0020-gcc-4.8-won-t-build-with-disable-dependency-tracking.patch
@@ -1,7 +1,7 @@
-From 2a1895aca3d9020d0d5ac74975221727384ef8a6 Mon Sep 17 00:00:00 2001
+From 83bcd4cc47ae63971c888c117abd00dfd506532c Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 20 Feb 2015 11:17:19 +0000
-Subject: [PATCH 21/37] gcc 4.8+ won't build with --disable-dependency-tracking
+Subject: [PATCH 20/36] gcc 4.8+ won't build with --disable-dependency-tracking
 
 since the *.Ppo files don't get created unless --enable-dependency-tracking is true.
 
@@ -50,5 +50,5 @@
  M_IFUNC = $(if $(PAT_S),$(IFUNC_DEF) $(IFUNC_OPT))
  M_FILE = $(PAT_BASE)_n.c
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0022-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch
similarity index 87%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0022-Don-t-search-host-directory-during-relink-if-inst_pr.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch
index 8316c4d..f36ca29 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0022-Don-t-search-host-directory-during-relink-if-inst_pr.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0021-Don-t-search-host-directory-during-relink-if-inst_pr.patch
@@ -1,7 +1,7 @@
-From 4b9f8cfbfb48a1a9781b7c3a9b867732ef37b7c5 Mon Sep 17 00:00:00 2001
+From 667cc8d43e8fb4ac09654ee408da482f96b09580 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 3 Mar 2015 08:21:19 +0000
-Subject: [PATCH 22/37] Don't search host directory during "relink" if
+Subject: [PATCH 21/36] Don't search host directory during "relink" if
  $inst_prefix is provided
 
 http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html
@@ -34,5 +34,5 @@
  		esac
  	      fi
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0023-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
similarity index 82%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0023-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
index fdea599..d5b9150 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0023-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0022-Use-SYSTEMLIBS_DIR-replacement-instead-of-hardcoding.patch
@@ -1,7 +1,7 @@
-From 3a554b321250f6ddf1277e5559890ee977e78cb0 Mon Sep 17 00:00:00 2001
+From 279c4de48e3fd61e2f268787ed3f1d69ed9224f8 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 28 Apr 2015 23:15:27 -0700
-Subject: [PATCH 23/37] Use SYSTEMLIBS_DIR replacement instead of hardcoding
+Subject: [PATCH 22/36] Use SYSTEMLIBS_DIR replacement instead of hardcoding
  base_libdir
 
 Upstream-Status: Pending
@@ -12,7 +12,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index 9d0292d64f2..51661995fc7 100644
+index 5e8b34ded03..7e628bf661e 100644
 --- a/gcc/config/aarch64/aarch64-linux.h
 +++ b/gcc/config/aarch64/aarch64-linux.h
 @@ -21,7 +21,7 @@
@@ -25,5 +25,5 @@
  #undef MUSL_DYNAMIC_LINKER
  #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0024-aarch64-Add-support-for-musl-ldso.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch
similarity index 83%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0024-aarch64-Add-support-for-musl-ldso.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch
index f53c994..f811306 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0024-aarch64-Add-support-for-musl-ldso.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0023-aarch64-Add-support-for-musl-ldso.patch
@@ -1,7 +1,7 @@
-From b7001034f35e7e5090fa95cb9a622469300cd45d Mon Sep 17 00:00:00 2001
+From 1277d12058334087443828dfd57d44e3b1dfcc9a Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 28 Apr 2015 23:18:39 -0700
-Subject: [PATCH 24/37] aarch64: Add support for musl ldso
+Subject: [PATCH 23/36] aarch64: Add support for musl ldso
 
 Upstream-Status: Pending
 
@@ -11,7 +11,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index 51661995fc7..db687f753f6 100644
+index 7e628bf661e..1717cbe5471 100644
 --- a/gcc/config/aarch64/aarch64-linux.h
 +++ b/gcc/config/aarch64/aarch64-linux.h
 @@ -24,7 +24,7 @@
@@ -24,5 +24,5 @@
  #undef  ASAN_CC1_SPEC
  #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0025-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch
similarity index 93%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0025-libcc1-fix-libcc1-s-install-path-and-rpath.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch
index 7b80655..298b096 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0025-libcc1-fix-libcc1-s-install-path-and-rpath.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0024-libcc1-fix-libcc1-s-install-path-and-rpath.patch
@@ -1,7 +1,7 @@
-From 4d05ea7a12d1ba4515220c5c16f71ac650219db6 Mon Sep 17 00:00:00 2001
+From 4a0487ad75accd780dd155aa59086cc4b11cfc47 Mon Sep 17 00:00:00 2001
 From: Robert Yang <liezhi.yang@windriver.com>
 Date: Sun, 5 Jul 2015 20:25:18 -0700
-Subject: [PATCH 25/37] libcc1: fix libcc1's install path and rpath
+Subject: [PATCH 24/36] libcc1: fix libcc1's install path and rpath
 
 * Install libcc1.so and libcc1plugin.so into
   $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we
@@ -50,5 +50,5 @@
  @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la
  shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0026-handle-sysroot-support-for-nativesdk-gcc.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch
similarity index 97%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0026-handle-sysroot-support-for-nativesdk-gcc.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch
index 7062c03..ba62bc1 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0026-handle-sysroot-support-for-nativesdk-gcc.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0025-handle-sysroot-support-for-nativesdk-gcc.patch
@@ -1,7 +1,7 @@
-From fe175ac845f1ac6965ede0240e9b763ae520614d Mon Sep 17 00:00:00 2001
+From a183c82ea2af934a8d30055a791dc1d80c9067a9 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 7 Dec 2015 23:39:54 +0000
-Subject: [PATCH 26/37] handle sysroot support for nativesdk-gcc
+Subject: [PATCH 25/36] handle sysroot support for nativesdk-gcc
 
 Being able to build a nativesdk gcc is useful, particularly in cases
 where the host compiler may be of an incompatible version (or a 32
@@ -149,7 +149,7 @@
  				   (see update_path in prefix.c) */
    const char cplusplus;		/* Only look here if we're compiling C++.  */
 diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 14b1a6e8c44..857310092d9 100644
+index 1a3704b2763..db0e2934038 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -253,6 +253,8 @@ FILE *report_times_to_file = NULL;
@@ -209,5 +209,5 @@
  	    value = do_spec_1 (startfile_spec, 0, NULL);
  	    if (value != 0)
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0027-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch
similarity index 94%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0027-Search-target-sysroot-gcc-version-specific-dirs-with.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch
index e3ec943..fde206e 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0027-Search-target-sysroot-gcc-version-specific-dirs-with.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0026-Search-target-sysroot-gcc-version-specific-dirs-with.patch
@@ -1,7 +1,7 @@
-From bf07530706382c90fb89f7d8a727eb9aeb29a56a Mon Sep 17 00:00:00 2001
+From dab4db14e319f3239a2b4c7d1fbf2971936e27ba Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 7 Dec 2015 23:41:45 +0000
-Subject: [PATCH 27/37] Search target sysroot gcc version specific dirs with
+Subject: [PATCH 26/36] Search target sysroot gcc version specific dirs with
  multilib.
 
 We install the gcc libraries (such as crtbegin.p) into
@@ -51,7 +51,7 @@
  1 file changed, 28 insertions(+), 1 deletion(-)
 
 diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 857310092d9..6363e63b8ff 100644
+index db0e2934038..1c21d1b08eb 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -2610,7 +2610,7 @@ for_each_path (const struct path_prefix *paths,
@@ -98,5 +98,5 @@
  	      ret = callback (path, callback_info);
  	      if (ret)
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0028-Fix-various-_FOR_BUILD-and-related-variables.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch
similarity index 93%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0028-Fix-various-_FOR_BUILD-and-related-variables.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch
index bdcbd32..5d89e8e 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0028-Fix-various-_FOR_BUILD-and-related-variables.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0027-Fix-various-_FOR_BUILD-and-related-variables.patch
@@ -1,7 +1,7 @@
-From 16ab14b7221b3491cd43ab745f57b60ca83089df Mon Sep 17 00:00:00 2001
+From 8e84bb09d2b7a60487a30e438bb109f31c2c254b Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 7 Dec 2015 23:42:45 +0000
-Subject: [PATCH 28/37] Fix various _FOR_BUILD and related variables
+Subject: [PATCH 27/36] Fix various _FOR_BUILD and related variables
 
 When doing a FOR_BUILD thing, you have to override CFLAGS with
 CFLAGS_FOR_BUILD. And if you use C++, you also have to override
@@ -26,7 +26,7 @@
  5 files changed, 14 insertions(+), 3 deletions(-)
 
 diff --git a/Makefile.in b/Makefile.in
-index b21e0791f55..0e573791202 100644
+index 255822e3f27..9dc0dff0474 100644
 --- a/Makefile.in
 +++ b/Makefile.in
 @@ -152,6 +152,7 @@ BUILD_EXPORTS = \
@@ -64,7 +64,7 @@
  	"FLEX=$(FLEX)" \
  	"INSTALL=$(INSTALL)" \
 diff --git a/Makefile.tpl b/Makefile.tpl
-index 126296fb49a..15fb236bcc0 100644
+index 41cae58a267..d3f6b79acdc 100644
 --- a/Makefile.tpl
 +++ b/Makefile.tpl
 @@ -154,6 +154,7 @@ BUILD_EXPORTS = \
@@ -94,7 +94,7 @@
  	CFLAGS="$(CFLAGS)"; export CFLAGS; \
  	CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index eb1dc304de2..93a43146846 100644
+index 21472745c2c..8c93f03ffdc 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
 @@ -805,7 +805,7 @@ BUILD_LDFLAGS=@BUILD_LDFLAGS@
@@ -107,7 +107,7 @@
  # Actual name to use when installing a native compiler.
  GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
 diff --git a/gcc/configure b/gcc/configure
-index 2e822caf66d..2c50676a2bf 100755
+index 911de2cf017..325ace34cdf 100755
 --- a/gcc/configure
 +++ b/gcc/configure
 @@ -11965,7 +11965,7 @@ else
@@ -120,7 +120,7 @@
  		--enable-languages=${enable_languages-all} \
  		--target=$target_alias --host=$build_alias --build=$build_alias
 diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 70e7bac78c4..d29eb580429 100644
+index b413ae9bf25..72a6c95121b 100644
 --- a/gcc/configure.ac
 +++ b/gcc/configure.ac
 @@ -1743,7 +1743,7 @@ else
@@ -133,5 +133,5 @@
  		--enable-languages=${enable_languages-all} \
  		--target=$target_alias --host=$build_alias --build=$build_alias
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0029-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch
similarity index 84%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0029-nios2-Define-MUSL_DYNAMIC_LINKER.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch
index 08da1ab..84d92a3 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0029-nios2-Define-MUSL_DYNAMIC_LINKER.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0028-nios2-Define-MUSL_DYNAMIC_LINKER.patch
@@ -1,7 +1,7 @@
-From e293df9a5734b43cb60cc47a3f5ff9af50fee3aa Mon Sep 17 00:00:00 2001
+From 5647f773e28b528a67800ef06ca44730f9f5dc7e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 2 Feb 2016 10:26:10 -0800
-Subject: [PATCH 29/37] nios2: Define MUSL_DYNAMIC_LINKER
+Subject: [PATCH 28/36] nios2: Define MUSL_DYNAMIC_LINKER
 
 Upstream-Status: Pending
 
@@ -24,5 +24,5 @@
  #undef LINK_SPEC
  #define LINK_SPEC LINK_SPEC_ENDIAN \
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0030-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
similarity index 90%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0030-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
index 792e852..d19e5a0 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0030-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0029-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
@@ -1,7 +1,7 @@
-From 6232013df7fd65c994869789fa4b93c8d2303d1c Mon Sep 17 00:00:00 2001
+From 474043ca7a064ca7b0a32308a0ed6f7c546f17b2 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 27 Jun 2017 18:10:54 -0700
-Subject: [PATCH 30/37] Add ssp_nonshared to link commandline for musl targets
+Subject: [PATCH 29/36] Add ssp_nonshared to link commandline for musl targets
 
 when -fstack-protector options are enabled we need to
 link with ssp_shared on musl since it does not provide
@@ -41,10 +41,10 @@
  
  #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
 diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
-index 96b97877989..0bbde54c844 100644
+index ffceb32bf65..c82cb2ad05b 100644
 --- a/gcc/config/rs6000/linux.h
 +++ b/gcc/config/rs6000/linux.h
-@@ -107,6 +107,16 @@
+@@ -94,6 +94,16 @@
  					 " -m elf32ppclinux")
  #endif
  
@@ -62,10 +62,10 @@
  #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \
    %{!static-pie: \
 diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index 982ca274621..83c07b275da 100644
+index 45a9a7cae59..d1e88a40e82 100644
 --- a/gcc/config/rs6000/linux64.h
 +++ b/gcc/config/rs6000/linux64.h
-@@ -461,6 +461,16 @@ extern int dot_symbols;
+@@ -456,6 +456,16 @@ extern int dot_symbols;
  					   " -m elf64ppc")
  #endif
  
@@ -83,5 +83,5 @@
    %{!static-pie: \
      %{rdynamic:-export-dynamic} \
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0031-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
similarity index 96%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0031-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
index efa40be..f5769bc 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0031-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0030-libgcc-Add-knob-to-use-ldbl-128-on-ppc.patch
@@ -1,7 +1,7 @@
-From 1877b2ee5835a3716e6544706fbccd8c656e0a32 Mon Sep 17 00:00:00 2001
+From baab61ae3938ee2fa9ec03a20793508516a46dae Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Apr 2016 20:03:28 +0000
-Subject: [PATCH 31/37] libgcc: Add knob to use ldbl-128 on ppc
+Subject: [PATCH 30/36] libgcc: Add knob to use ldbl-128 on ppc
 
 musl does not support ldbl 128 so we can not assume
 that linux as a whole supports ldbl-128 bits, instead
@@ -121,5 +121,5 @@
  [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
      [shared library versioning (aka "SONAME") variant to provide on AIX])],
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0032-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
similarity index 86%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0032-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
index 3de8345..dc2141d 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0032-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0031-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch
@@ -1,7 +1,7 @@
-From 9d76a765a12677597134953352b25dc16dea721e Mon Sep 17 00:00:00 2001
+From 266dcc78e4d9d38de2809118977d97dc9270cf1f Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 4 May 2016 21:11:34 -0700
-Subject: [PATCH 32/37] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
+Subject: [PATCH 31/36] Link libgcc using LDFLAGS, not just SHLIB_LDFLAGS
 
 Upstream-Status: Pending
 
@@ -25,5 +25,5 @@
  	$(SHLIB_OBJS) $(SHLIB_LC) && \
  	rm -f $(SHLIB_DIR)/$(SHLIB_SOLINK) && \
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0033-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
similarity index 91%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0033-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
index d8cc643..8dde016 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0033-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0032-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
@@ -1,7 +1,7 @@
-From 6c001e08bcd0568367a4aa2f991ab7d85b43a43d Mon Sep 17 00:00:00 2001
+From 9975b6ed3570bbf7c7d2d82f4d5f733d24ccacf5 Mon Sep 17 00:00:00 2001
 From: Szabolcs Nagy <nsz@port70.net>
 Date: Sat, 24 Oct 2015 20:09:53 +0000
-Subject: [PATCH 33/37] libgcc_s: Use alias for __cpu_indicator_init instead of
+Subject: [PATCH 32/36] libgcc_s: Use alias for __cpu_indicator_init instead of
  symver
 
 Adapter from
@@ -39,10 +39,10 @@
  3 files changed, 6 insertions(+), 6 deletions(-)
 
 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
-index 88557f26c44..839308e2799 100644
+index 2b37296e537..dd380ddba88 100644
 --- a/gcc/config/i386/i386.c
 +++ b/gcc/config/i386/i386.c
-@@ -36577,10 +36577,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
+@@ -36658,10 +36658,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
      {
      case IX86_BUILTIN_CPU_INIT:
        {
@@ -82,5 +82,5 @@
 +HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
  CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0034-sync-gcc-stddef.h-with-musl.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch
similarity index 95%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0034-sync-gcc-stddef.h-with-musl.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch
index a2c35ab..b99ac42 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0034-sync-gcc-stddef.h-with-musl.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0033-sync-gcc-stddef.h-with-musl.patch
@@ -1,7 +1,7 @@
-From 83ba95929c5908ae0f51ce148a30f85b085a178a Mon Sep 17 00:00:00 2001
+From 39e2f61d262f9f6c7a91068998dea80791ef665e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 3 Feb 2017 12:56:00 -0800
-Subject: [PATCH 34/37] sync gcc stddef.h with musl
+Subject: [PATCH 33/36] sync gcc stddef.h with musl
 
 musl defines ptrdiff_t size_t and wchar_t
 so dont define them here if musl is definining them
@@ -87,5 +87,5 @@
  #endif /* _STDDEF_H or __need_wchar_t.  */
  
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0035-fix-segmentation-fault-in-precompiled-header-generat.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch
similarity index 92%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0035-fix-segmentation-fault-in-precompiled-header-generat.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch
index ad1f6e7..06a3c9f 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0035-fix-segmentation-fault-in-precompiled-header-generat.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0034-fix-segmentation-fault-in-precompiled-header-generat.patch
@@ -1,7 +1,7 @@
-From c4f89e62c56975fee99304c9cbbe5be6e8bc9ed6 Mon Sep 17 00:00:00 2001
+From aaa896a57b0004a74c1d474e74b21f41147a65cb Mon Sep 17 00:00:00 2001
 From: Juro Bystricky <juro.bystricky@intel.com>
 Date: Mon, 19 Mar 2018 22:31:20 -0700
-Subject: [PATCH 35/37] fix segmentation fault in precompiled header generation
+Subject: [PATCH 34/36] fix segmentation fault in precompiled header generation
 
 Prevent a segmentation fault which occurs when using incorrect
 structure trying to access name of some named operators, such as
@@ -56,5 +56,5 @@
  	buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node);
        break;
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0036-Fix-for-testsuite-failure.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch
similarity index 98%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0036-Fix-for-testsuite-failure.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch
index 4fb0698..7470cbf 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0036-Fix-for-testsuite-failure.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0035-Fix-for-testsuite-failure.patch
@@ -1,7 +1,7 @@
-From 8d773b5ba6cf396ca76611963127ba2b516272b3 Mon Sep 17 00:00:00 2001
+From 0f9d449c739df03782ce9d29f6b68d9af976a607 Mon Sep 17 00:00:00 2001
 From: RAGHUNATH LOLUR <raghunath.lolur@kpit.com>
 Date: Wed, 6 Dec 2017 22:52:26 -0800
-Subject: [PATCH 36/37] Fix for testsuite failure
+Subject: [PATCH 35/36] Fix for testsuite failure
 
 2017-11-16  Raghunath Lolur  <raghunath.lolur@kpit.com>
 
@@ -139,7 +139,7 @@
  #include "funcspec-56.inc"
  
 diff --git a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c
-index 3fbdc881dda..6b4d9d1252a 100644
+index 8561a3c26d6..6377f814645 100644
 --- a/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c
 +++ b/gcc/testsuite/gcc.target/i386/interrupt-387-err-1.c
 @@ -1,5 +1,5 @@
@@ -254,5 +254,5 @@
  __attribute__((vector_size((elcount)*sizeof(type)))) type
  
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-9.1/0037-Re-introduce-spe-commandline-options.patch b/poky/meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch
similarity index 84%
rename from poky/meta/recipes-devtools/gcc/gcc-9.1/0037-Re-introduce-spe-commandline-options.patch
rename to poky/meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch
index 251097e..4dbcd98 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-9.1/0037-Re-introduce-spe-commandline-options.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc-9.2/0036-Re-introduce-spe-commandline-options.patch
@@ -1,7 +1,7 @@
-From 49d3dbe240226206d09ff646499cd398cb60bd12 Mon Sep 17 00:00:00 2001
+From 71e99c2b58a9eb00cdd65a04aeb6fb78227e3297 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 6 Jun 2018 12:10:22 -0700
-Subject: [PATCH 37/37] Re-introduce spe commandline options
+Subject: [PATCH 36/36] Re-introduce spe commandline options
 
 This should ensure that we keep accepting
 spe options
@@ -14,7 +14,7 @@
  1 file changed, 12 insertions(+)
 
 diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
-index 2e90bf37747..ebd297da46b 100644
+index f4b5c91e11f..69869350fce 100644
 --- a/gcc/config/rs6000/rs6000.opt
 +++ b/gcc/config/rs6000/rs6000.opt
 @@ -345,6 +345,18 @@ mdebug=
@@ -37,5 +37,5 @@
  Target RejectNegative Var(rs6000_altivec_abi) Save
  Use the AltiVec ABI extensions.
 -- 
-2.20.1
+2.22.1
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.1.bb b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-cross-canadian_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross_9.1.bb b/poky/meta/recipes-devtools/gcc/gcc-cross_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-cross_9.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-cross_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.1.bb b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-crosssdk_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb b/poky/meta/recipes-devtools/gcc/gcc-runtime_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-runtime_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.1.bb b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-sanitizers_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-source_9.1.bb b/poky/meta/recipes-devtools/gcc/gcc-source_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-source_9.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-source_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc_9.1.bb b/poky/meta/recipes-devtools/gcc/gcc_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc_9.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgcc-initial_9.1.bb b/poky/meta/recipes-devtools/gcc/libgcc-initial_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/libgcc-initial_9.1.bb
rename to poky/meta/recipes-devtools/gcc/libgcc-initial_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgcc_9.1.bb b/poky/meta/recipes-devtools/gcc/libgcc_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/libgcc_9.1.bb
rename to poky/meta/recipes-devtools/gcc/libgcc_9.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgfortran_9.1.bb b/poky/meta/recipes-devtools/gcc/libgfortran_9.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/libgfortran_9.1.bb
rename to poky/meta/recipes-devtools/gcc/libgfortran_9.2.bb
diff --git a/poky/meta/recipes-devtools/git/git_2.22.1.bb b/poky/meta/recipes-devtools/git/git_2.22.1.bb
deleted file mode 100644
index e0ed146..0000000
--- a/poky/meta/recipes-devtools/git/git_2.22.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require git.inc
-
-EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
-                 ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
-                 "
-EXTRA_OEMAKE += "NO_GETTEXT=1"
-
-SRC_URI[tarball.md5sum] = "b379ee9b8c7733d01fc49998148621ef"
-SRC_URI[tarball.sha256sum] = "83bf264bfa4573faddb396cbc7f5518db082f9573aa3c8ea08b8a30d23a46adc"
-SRC_URI[manpages.md5sum] = "70aaf2da41c21b0864e9b1bb8231172c"
-SRC_URI[manpages.sha256sum] = "228da34377a6795619e1822a4fad00c87300135b811643bdb816afe4a92040f9"
diff --git a/poky/meta/recipes-devtools/git/git_2.23.0.bb b/poky/meta/recipes-devtools/git/git_2.23.0.bb
new file mode 100644
index 0000000..1539182
--- /dev/null
+++ b/poky/meta/recipes-devtools/git/git_2.23.0.bb
@@ -0,0 +1,11 @@
+require git.inc
+
+EXTRA_OECONF += "ac_cv_snprintf_returns_bogus=no \
+                 ac_cv_fread_reads_directories=${ac_cv_fread_reads_directories=yes} \
+                 "
+EXTRA_OEMAKE += "NO_GETTEXT=1"
+
+SRC_URI[tarball.md5sum] = "203c238ffdcef76f9bd6c67cfbaf949f"
+SRC_URI[tarball.sha256sum] = "e3396c90888111a01bf607346db09b0fbf49a95bc83faf9506b61195936f0cfe"
+SRC_URI[manpages.md5sum] = "90a72e553de712d798d68b15b57bc928"
+SRC_URI[manpages.sha256sum] = "a5b0998f95c2290386d191d34780d145ea67e527fac98541e0350749bf76be75"
diff --git a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
index 9ac7e14..63d3fad 100644
--- a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
+++ b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
@@ -17,7 +17,7 @@
 
 EXTRA_OEMESON = "-Ddeveloper_build=false -Dbuild_api_v1=true -Dbuild_api_v2=true"
 
-DEPENDS += "glib-2.0 libyaml glib-2.0-native"
+DEPENDS += "glib-2.0 libyaml glib-2.0-native python3"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch b/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch
new file mode 100644
index 0000000..9891526
--- /dev/null
+++ b/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch
@@ -0,0 +1,93 @@
+From 7f770b9c20da1a192dad8cb572a6391f2773285a Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Thu, 3 May 2018 14:31:55 +0200
+Subject: [PATCH 1/2] Don't leak temporary file on failed ed-style patch
+
+Now that we write ed-style patches to a temporary file before we
+apply them, we need to ensure that the temporary file is removed
+before we leave, even on fatal error.
+
+* src/pch.c (do_ed_script): Use global TMPEDNAME instead of local
+  tmpname. Don't unlink the file directly, instead tag it for removal
+  at exit time.
+* src/patch.c (cleanup): Unlink TMPEDNAME at exit.
+
+This closes bug #53820:
+https://savannah.gnu.org/bugs/index.php?53820
+
+Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)")
+
+Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/patch.git/commit/?id=19599883ffb6a450d2884f081f8ecf68edbed7ee]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ src/common.h |  2 ++
+ src/pch.c    | 12 +++++-------
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/common.h b/src/common.h
+index ec50b40..22238b5 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -94,10 +94,12 @@ XTERN char const *origsuff;
+ XTERN char const * TMPINNAME;
+ XTERN char const * TMPOUTNAME;
+ XTERN char const * TMPPATNAME;
++XTERN char const * TMPEDNAME;
+ 
+ XTERN bool TMPINNAME_needs_removal;
+ XTERN bool TMPOUTNAME_needs_removal;
+ XTERN bool TMPPATNAME_needs_removal;
++XTERN bool TMPEDNAME_needs_removal;
+ 
+ #ifdef DEBUGGING
+ XTERN int debug;
+diff --git a/src/pch.c b/src/pch.c
+index 16e001a..c1a62cf 100644
+--- a/src/pch.c
++++ b/src/pch.c
+@@ -2392,7 +2392,6 @@ do_ed_script (char const *inname, char const *outname,
+     file_offset beginning_of_this_line;
+     size_t chars_read;
+     FILE *tmpfp = 0;
+-    char const *tmpname;
+     int tmpfd;
+     pid_t pid;
+ 
+@@ -2404,12 +2403,13 @@ do_ed_script (char const *inname, char const *outname,
+ 	   invalid commands and treats the next line as a new command, which
+ 	   can lead to arbitrary command execution.  */
+ 
+-	tmpfd = make_tempfile (&tmpname, 'e', NULL, O_RDWR | O_BINARY, 0);
++	tmpfd = make_tempfile (&TMPEDNAME, 'e', NULL, O_RDWR | O_BINARY, 0);
+ 	if (tmpfd == -1)
+-	  pfatal ("Can't create temporary file %s", quotearg (tmpname));
++        pfatal ("Can't create temporary file %s", quotearg (TMPEDNAME));
++        TMPEDNAME_needs_removal = true;
+ 	tmpfp = fdopen (tmpfd, "w+b");
+ 	if (! tmpfp)
+-	  pfatal ("Can't open stream for file %s", quotearg (tmpname));
++        pfatal ("Can't open stream for file %s", quotearg (TMPEDNAME));
+       }
+ 
+     for (;;) {
+@@ -2449,8 +2449,7 @@ do_ed_script (char const *inname, char const *outname,
+       write_fatal ();
+ 
+     if (lseek (tmpfd, 0, SEEK_SET) == -1)
+-      pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname));
+-
++        pfatal ("Can't rewind to the beginning of file %s", quotearg (TMPEDNAME));
+     if (! dry_run && ! skip_rest_of_patch) {
+ 	int exclusive = *outname_needs_removal ? 0 : O_EXCL;
+ 	*outname_needs_removal = true;
+@@ -2482,7 +2481,6 @@ do_ed_script (char const *inname, char const *outname,
+     }
+ 
+     fclose (tmpfp);
+-    safe_unlink (tmpname);
+ 
+     if (ofp)
+       {
+-- 
+2.17.0
+
diff --git a/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch b/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch
new file mode 100644
index 0000000..d6a219a1
--- /dev/null
+++ b/poky/meta/recipes-devtools/patch/patch/0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch
@@ -0,0 +1,80 @@
+From 369dcccdfa6336e5a873d6d63705cfbe04c55727 Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Mon, 7 May 2018 15:14:45 +0200
+Subject: Don't leak temporary file on failed multi-file ed-style patch
+
+The previous fix worked fine with single-file ed-style patches, but
+would still leak temporary files in the case of multi-file ed-style
+patch. Fix that case as well, and extend the test case to check for
+it.
+
+* src/patch.c (main): Unlink TMPEDNAME if needed before moving to
+  the next file in a patch.
+
+This closes bug #53820:
+https://savannah.gnu.org/bugs/index.php?53820
+
+Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)")
+Fixes: 19599883ffb6 ("Don't leak temporary file on failed ed-style patch")
+
+Upstream-Status: Backport [http://git.savannah.gnu.org/cgit/patch.git/commit/?id=369dcccdfa6336e5a873d6d63705cfbe04c55727]
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ src/patch.c    |  1 +
+ tests/ed-style | 31 +++++++++++++++++++++++++++++++
+ 2 files changed, 32 insertions(+)
+
+diff --git a/src/patch.c b/src/patch.c
+index 9146597..81c7a02 100644
+--- a/src/patch.c
++++ b/src/patch.c
+@@ -236,6 +236,7 @@ main (int argc, char **argv)
+ 	    }
+ 	  remove_if_needed (TMPOUTNAME, &TMPOUTNAME_needs_removal);
+ 	}
++      remove_if_needed (TMPEDNAME, &TMPEDNAME_needs_removal);
+ 
+       if (! skip_rest_of_patch && ! file_type)
+ 	{
+diff --git a/tests/ed-style b/tests/ed-style
+index 6b6ef9d..504e6e5 100644
+--- a/tests/ed-style
++++ b/tests/ed-style
+@@ -38,3 +38,34 @@ EOF
+ check 'cat foo' <<EOF
+ foo
+ EOF
++
++# Test the case where one ed-style patch modifies several files
++
++cat > ed3.diff <<EOF
++--- foo
+++++ foo
++1c
++bar
++.
++--- baz
+++++ baz
++0a
++baz
++.
++EOF
++
++# Apparently we can't create a file with such a patch, while it works fine
++# when the file name is provided on the command line
++cat > baz <<EOF
++EOF
++
++check 'patch -e -i ed3.diff' <<EOF
++EOF
++
++check 'cat foo' <<EOF
++bar
++EOF
++
++check 'cat baz' <<EOF
++baz
++EOF
+-- 
+cgit v1.0-41-gc330
+
diff --git a/poky/meta/recipes-devtools/patch/patch_2.7.6.bb b/poky/meta/recipes-devtools/patch/patch_2.7.6.bb
index 8908910..5d7f55f 100644
--- a/poky/meta/recipes-devtools/patch/patch_2.7.6.bb
+++ b/poky/meta/recipes-devtools/patch/patch_2.7.6.bb
@@ -8,6 +8,8 @@
             file://0001-Fix-swapping-fake-lines-in-pch_swap.patch \
             file://CVE-2019-13636.patch \
             file://0001-Invoke-ed-directly-instead-of-using-the-shell.patch \
+            file://0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch \
+            file://0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch \
 "
 
 SRC_URI[md5sum] = "4c68cee989d83c87b00a3860bcd05600"
diff --git a/poky/meta/recipes-devtools/python/python-setuptools.inc b/poky/meta/recipes-devtools/python/python-setuptools.inc
index f49e078..322197e 100644
--- a/poky/meta/recipes-devtools/python/python-setuptools.inc
+++ b/poky/meta/recipes-devtools/python/python-setuptools.inc
@@ -10,8 +10,8 @@
 
 SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch"
 
-SRC_URI[md5sum] = "6404ca798bb9a9073aff3b91b2df35c8"
-SRC_URI[sha256sum] = "a222d126f5471598053c9a77f4b5d4f26eaa1f150ad6e01dcf1a42e185d05613"
+SRC_URI[md5sum] = "a3470ce184da33f0fa6c9f44f6221bc0"
+SRC_URI[sha256sum] = "66b86bbae7cc7ac2e867f52dc08a6bd064d938bac59dfec71b9b565dd36d6012"
 
 DEPENDS += "${PYTHON_PN}"
 
diff --git a/poky/meta/recipes-devtools/python/python-setuptools_41.0.1.bb b/poky/meta/recipes-devtools/python/python-setuptools_41.2.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python-setuptools_41.0.1.bb
rename to poky/meta/recipes-devtools/python/python-setuptools_41.2.0.bb
diff --git a/poky/meta/recipes-devtools/python/python3-pip_19.2.1.bb b/poky/meta/recipes-devtools/python/python3-pip_19.2.2.bb
similarity index 81%
rename from poky/meta/recipes-devtools/python/python3-pip_19.2.1.bb
rename to poky/meta/recipes-devtools/python/python3-pip_19.2.2.bb
index ebf1f25..faafbc1 100644
--- a/poky/meta/recipes-devtools/python/python3-pip_19.2.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pip_19.2.2.bb
@@ -6,8 +6,8 @@
 
 DEPENDS += "python3 python3-setuptools-native"
 
-SRC_URI[md5sum] = "e9ac3e030e88b6c076a20ab371a30742"
-SRC_URI[sha256sum] = "258d702483dd749400aec59c23d638a5b2249ae28a0f478b6cab12ad45681a80"
+SRC_URI[md5sum] = "2ba0a3b76d39ccd90ca22bfa82fc635f"
+SRC_URI[sha256sum] = "e05103825871e210d50a44c7e448587b0ed99dd775d3ef586304c58f40224a53"
 
 inherit pypi distutils3
 
diff --git a/poky/meta/recipes-devtools/python/python3-scons-native_3.1.0.bb b/poky/meta/recipes-devtools/python/python3-scons-native_3.1.1.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-scons-native_3.1.0.bb
rename to poky/meta/recipes-devtools/python/python3-scons-native_3.1.1.bb
diff --git a/poky/meta/recipes-devtools/python/python3-scons_3.1.0.bb b/poky/meta/recipes-devtools/python/python3-scons_3.1.1.bb
similarity index 82%
rename from poky/meta/recipes-devtools/python/python3-scons_3.1.0.bb
rename to poky/meta/recipes-devtools/python/python3-scons_3.1.1.bb
index f1545da..0c7aaea 100644
--- a/poky/meta/recipes-devtools/python/python3-scons_3.1.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-scons_3.1.1.bb
@@ -4,8 +4,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=37bb53a08e6beaea0c90e7821d731284"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/scons/scons-${PV}.tar.gz"
-SRC_URI[md5sum] = "e2fe9d16f81b0285b969238af4b552ff"
-SRC_URI[sha256sum] = "f3f548d738d4a2179123ecd744271ec413b2d55735ea7625a59b1b59e6cd132f"
+SRC_URI[md5sum] = "35b2a3993313bbedd221d4d5758fd2fd"
+SRC_URI[sha256sum] = "4cea417fdd7499a36f407923d03b4b7000b0f9e8fd7b31b316b9ce7eba9143a5"
 
 S = "${WORKDIR}/scons-${PV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_41.0.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools_41.2.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-setuptools_41.0.1.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools_41.2.0.bb
diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch b/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch
new file mode 100644
index 0000000..35b7e0c
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3/0001-test_locale.py-correct-the-test-output-format.patch
@@ -0,0 +1,46 @@
+From b94995e0c694ec9561efec0d1a59b323340e6105 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 5 Aug 2019 15:57:39 +0800
+Subject: [PATCH] test_locale.py: correct the test output format
+
+Before this patch:
+ # python3 -m test -v test_locale
+ [snip]
+ test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous) ... testing with ('tr_TR', 'ISO8859-9') ok
+ [snip]
+
+ After this patch:
+ # python3 -m test -v test_locale
+ [snip]
+ test_getsetlocale_issue1813 (test.test_locale.TestMiscellaneous) ... testing with ('tr_TR', 'ISO8859-9')... ok
+ [snip]
+
+ Make the test ended with "... ok" is common in python
+ unittest world, we should make it keep consistent
+ with other test cases in case it may be ignored to
+ record in the report if we use the common filter
+ "... ok".
+
+Upstream-Status: Submitted [https://github.com/python/cpython/pull/15132]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Lib/test/test_locale.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py
+index e2c2178..558d63c 100644
+--- a/Lib/test/test_locale.py
++++ b/Lib/test/test_locale.py
+@@ -527,7 +527,7 @@ class TestMiscellaneous(unittest.TestCase):
+             self.skipTest('test needs Turkish locale')
+         loc = locale.getlocale(locale.LC_CTYPE)
+         if verbose:
+-            print('testing with %a' % (loc,), end=' ', flush=True)
++            print('testing with %a...' % (loc,), end=' ', flush=True)
+         locale.setlocale(locale.LC_CTYPE, loc)
+         self.assertEqual(loc, locale.getlocale(locale.LC_CTYPE))
+ 
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-devtools/python/python3_3.7.4.bb b/poky/meta/recipes-devtools/python/python3_3.7.4.bb
index 59d7024..80c9b29 100644
--- a/poky/meta/recipes-devtools/python/python3_3.7.4.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.7.4.bb
@@ -27,6 +27,7 @@
 	   file://crosspythonpath.patch \
            file://reformat_sysconfig.py \
            file://0001-Use-FLAG_REF-always-for-interned-strings.patch \
+           file://0001-test_locale.py-correct-the-test-output-format.patch \
            "
 
 SRC_URI_append_class-native = " \
diff --git a/poky/meta/recipes-devtools/qemu/qemu-native.inc b/poky/meta/recipes-devtools/qemu/qemu-native.inc
index c04297c..69c2c43 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-native.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu-native.inc
@@ -3,8 +3,8 @@
 require qemu.inc
 
 SRC_URI_append = " \
-            file://0011-fix-libcap-header-issue-on-some-distro.patch \
-            file://0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
+            file://0010-fix-libcap-header-issue-on-some-distro.patch \
+            file://0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch \
             "
 
 EXTRA_OEMAKE_append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-native_4.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/qemu/qemu-native_4.0.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu-native_4.1.0.bb
diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
similarity index 98%
rename from poky/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
index 964dcee..d83ee59 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-system-native_4.0.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu-system-native_4.1.0.bb
@@ -2,7 +2,7 @@
 
 require qemu-native.inc
 
-# As some of the files installed by qemu-native and qemu-system-native 
+# As some of the files installed by qemu-native and qemu-system-native
 # are the same, we depend on qemu-native to get the full installation set
 # and avoid file clashes
 DEPENDS = "glib-2.0-native zlib-native pixman-native qemu-native bison-native"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-targets.inc b/poky/meta/recipes-devtools/qemu/qemu-targets.inc
index 550d6f0..8184ef5 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-targets.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu-targets.inc
@@ -13,7 +13,7 @@
             softmmuonly += arch + "-softmmu,"
             archs.remove(arch)
     linuxuseronly = ""
-    for arch in ['armeb', 'alpha', 'ppc64abi32', 'sparc32plus']:
+    for arch in ['armeb', 'alpha', 'ppc64abi32', 'sparc32plus', 'aarch64_be']:
         if arch in archs:
             linuxuseronly += arch + "-linux-user,"
             archs.remove(arch)
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index 46c40b7..d2dd2bc 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -17,20 +17,16 @@
            file://0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch \
            file://0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch \
            file://0004-qemu-disable-Valgrind.patch \
-           file://0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch \
-           file://0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \
-           file://0007-chardev-connect-socket-to-a-spawned-command.patch \
-           file://0008-apic-fixup-fallthrough-to-PIC.patch \
-           file://0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
-           file://0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
-           file://0013-target-arm-Fix-vector-operation-segfault.patch \
-           file://0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch \
-	   file://CVE-2019-12155.patch \
+           file://0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch \
+           file://0006-chardev-connect-socket-to-a-spawned-command.patch \
+           file://0007-apic-fixup-fallthrough-to-PIC.patch \
+           file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
+           file://0009-Fix-webkitgtk-builds.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
-SRC_URI[md5sum] = "0afeca336fd57ae3d3086ec07f59d708"
-SRC_URI[sha256sum] = "13a93dfe75b86734326f8d5b475fde82ec692d5b5a338b4262aeeb6b0fa4e469"
+SRC_URI[md5sum] = "cdf2b5ca52b9abac9bacb5842fa420f8"
+SRC_URI[sha256sum] = "656e60218689bdeec69903087fd7582d5d3e72238d02f4481d8dc6d79fd909c6"
 
 COMPATIBLE_HOST_mipsarchn32 = "null"
 COMPATIBLE_HOST_mipsarchn64 = "null"
@@ -141,7 +137,7 @@
 PACKAGECONFIG[gtk+] = "--enable-gtk,--disable-gtk,gtk+3 gettext-native"
 PACKAGECONFIG[vte] = "--enable-vte,--disable-vte,vte gettext-native"
 PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng,"
-PACKAGECONFIG[ssh2] = "--enable-libssh2,--disable-libssh2,libssh2,"
+PACKAGECONFIG[ssh] = "--enable-libssh,--disable-libssh,libssh,"
 PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt,"
 PACKAGECONFIG[nettle] = "--enable-nettle,--disable-nettle,nettle"
 PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb1"
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
index 5373915..9478102 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Add-missing-wacom-HID-descriptor.patch
@@ -1,4 +1,4 @@
-From 1cb804cf0e47116202011f3386b4739af668224a Mon Sep 17 00:00:00 2001
+From 4655dc18074e0be9d239f51dac32b61435da8549 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Thu, 27 Nov 2014 14:04:29 +0000
 Subject: [PATCH] qemu: Add missing wacom HID descriptor
@@ -19,10 +19,10 @@
  1 file changed, 93 insertions(+), 1 deletion(-)
 
 diff --git a/hw/usb/dev-wacom.c b/hw/usb/dev-wacom.c
-index ac0bc83b..6f9b22d4 100644
+index 8c43db93..3ff8ca28 100644
 --- a/hw/usb/dev-wacom.c
 +++ b/hw/usb/dev-wacom.c
-@@ -72,6 +72,89 @@ static const USBDescStrings desc_strings = {
+@@ -74,6 +74,89 @@ static const USBDescStrings desc_strings = {
      [STR_SERIALNUMBER]     = "1",
  };
  
@@ -112,7 +112,7 @@
  static const USBDescIface desc_iface_wacom = {
      .bInterfaceNumber              = 0,
      .bNumEndpoints                 = 1,
-@@ -89,7 +172,7 @@ static const USBDescIface desc_iface_wacom = {
+@@ -91,7 +174,7 @@ static const USBDescIface desc_iface_wacom = {
                  0x00,          /*  u8  country_code */
                  0x01,          /*  u8  num_descriptors */
                  0x22,          /*  u8  type: Report */
@@ -121,7 +121,7 @@
              },
          },
      },
-@@ -269,6 +352,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
+@@ -271,6 +354,15 @@ static void usb_wacom_handle_control(USBDevice *dev, USBPacket *p,
      }
  
      switch (request) {
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch b/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
index 7b7c5d7..2ccddd5 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0002-Add-subpackage-ptest-which-runs-all-unit-test-cases-.patch
@@ -1,4 +1,4 @@
-From 281116b31981b0b9e174bda8abe00f4eaa33c2ae Mon Sep 17 00:00:00 2001
+From 67751f3a23e3db3012f391b3b3b73a4484488ce9 Mon Sep 17 00:00:00 2001
 From: Juro Bystricky <juro.bystricky@intel.com>
 Date: Thu, 31 Aug 2017 11:06:56 -0700
 Subject: [PATCH] Add subpackage -ptest which runs all unit test cases for
@@ -15,10 +15,10 @@
  1 file changed, 8 insertions(+)
 
 diff --git a/tests/Makefile.include b/tests/Makefile.include
-index 36fc73fe..01fecd4d 100644
+index fd7fdb86..83b7f409 100644
 --- a/tests/Makefile.include
 +++ b/tests/Makefile.include
-@@ -1184,4 +1184,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
+@@ -1183,4 +1183,12 @@ all: $(QEMU_IOTESTS_HELPERS-y)
  -include $(wildcard tests/*.d)
  -include $(wildcard tests/libqos/*.d)
  
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch b/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
index 9a18ca1..5c42d68 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0003-qemu-Add-addition-environment-space-to-boot-loader-q.patch
@@ -1,4 +1,4 @@
-From bf04acef9ec31ddcc18ddbb4ac5b7b1e7368bf7d Mon Sep 17 00:00:00 2001
+From 235b94f1188597873c8776b019fed49947983392 Mon Sep 17 00:00:00 2001
 From: Jason Wessel <jason.wessel@windriver.com>
 Date: Fri, 28 Mar 2014 17:42:43 +0800
 Subject: [PATCH] qemu: Add addition environment space to boot loader
@@ -19,7 +19,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c
-index 439665ab..285c78ef 100644
+index 20e019bf..d150b01c 100644
 --- a/hw/mips/mips_malta.c
 +++ b/hw/mips/mips_malta.c
 @@ -60,7 +60,7 @@
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch b/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
index 9e32608..0ac4ab4 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0004-qemu-disable-Valgrind.patch
@@ -1,4 +1,4 @@
-From e40f797548bc3ff06c71b6cbe042a46406894d18 Mon Sep 17 00:00:00 2001
+From 3ad7a375015d47fdf5016e03e11fa93440d6d8bd Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Tue, 20 Oct 2015 22:19:08 +0100
 Subject: [PATCH] qemu: disable Valgrind
@@ -13,10 +13,10 @@
  1 file changed, 9 deletions(-)
 
 diff --git a/configure b/configure
-index 1c563a70..eaf9bb5e 100755
+index 714e7fb6..dad4fc59 100755
 --- a/configure
 +++ b/configure
-@@ -5311,15 +5311,6 @@ fi
+@@ -5335,15 +5335,6 @@ fi
  # check if we have valgrind/valgrind.h
  
  valgrind_h=no
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch b/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
deleted file mode 100644
index 819720a..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-Limit-paths-searched-during-user-mode-emulation.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From 547c3710a1493d2fd6bb56b819cf162db433756a Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 9 Mar 2016 22:49:02 +0000
-Subject: [PATCH] qemu: Limit paths searched during user mode emulation
-
-By default qemu builds a complete list of directories within the user
-emulation sysroot (-L option). The OE sysroot directory is large and
-this is confusing, for example it indexes all pkgdata. In particular this
-confuses strace of qemu binaries with tons of irrelevant paths.
-
-This patch stops the code indexing up front and instead only indexes
-things if/as/when it needs to. This drastically reduces the files it
-reads and reduces memory usage and cleans up strace.
-
-It would also avoid the infinite directory traversal bug in [YOCTO #6996]
-although the code could still be vulnerable if it parsed those specific
-paths.
-
-RP
-2016/3/9
-Upstream-Status: Pending
-
----
- util/path.c | 44 ++++++++++++++++++++++----------------------
- 1 file changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/util/path.c b/util/path.c
-index 7f9fc272..a416cd4a 100644
---- a/util/path.c
-+++ b/util/path.c
-@@ -15,6 +15,7 @@ struct pathelem
-     char *name;
-     /* Full path name, eg. /usr/gnemul/x86-linux/lib. */
-     char *pathname;
-+    int populated_entries;
-     struct pathelem *parent;
-     /* Children */
-     unsigned int num_entries;
-@@ -45,6 +46,7 @@ static struct pathelem *new_entry(const char *root,
-     new->name = g_strdup(name);
-     new->pathname = g_strdup_printf("%s/%s", root, name);
-     new->num_entries = 0;
-+    new->populated_entries = 0;
-     return new;
- }
- 
-@@ -53,15 +55,16 @@ static struct pathelem *new_entry(const char *root,
- /* Not all systems provide this feature */
- #if defined(DT_DIR) && defined(DT_UNKNOWN) && defined(DT_LNK)
- # define dirent_type(dirent) ((dirent)->d_type)
--# define is_dir_maybe(type) \
--    ((type) == DT_DIR || (type) == DT_UNKNOWN || (type) == DT_LNK)
-+# define is_not_dir(type) \
-+    ((type) != DT_DIR && (type) != DT_UNKNOWN && (type) != DT_LNK)
- #else
- # define dirent_type(dirent) (1)
--# define is_dir_maybe(type)  (type)
-+# define is_not_dir(type)  (0)
- #endif
- 
- static struct pathelem *add_dir_maybe(struct pathelem *path)
- {
-+    unsigned int i;
-     DIR *dir;
- 
-     if ((dir = opendir(path->pathname)) != NULL) {
-@@ -74,6 +77,11 @@ static struct pathelem *add_dir_maybe(struct pathelem *path)
-         }
-         closedir(dir);
-     }
-+
-+    for (i = 0; i < path->num_entries; i++)
-+        (path->entries[i])->parent = path;
-+
-+    path->populated_entries = 1;
-     return path;
- }
- 
-@@ -89,26 +97,16 @@ static struct pathelem *add_entry(struct pathelem *root, const char *name,
-     e = &root->entries[root->num_entries-1];
- 
-     *e = new_entry(root->pathname, root, name);
--    if (is_dir_maybe(type)) {
--        *e = add_dir_maybe(*e);
-+    if (is_not_dir(type)) {
-+        (*e)->populated_entries = 1;
-     }
- 
-     return root;
- }
- 
--/* This needs to be done after tree is stabilized (ie. no more reallocs!). */
--static void set_parents(struct pathelem *child, struct pathelem *parent)
--{
--    unsigned int i;
--
--    child->parent = parent;
--    for (i = 0; i < child->num_entries; i++)
--        set_parents(child->entries[i], child);
--}
--
- /* FIXME: Doesn't handle DIR/.. where DIR is not in emulated dir. */
- static const char *
--follow_path(const struct pathelem *cursor, const char *name)
-+follow_path(struct pathelem *cursor, struct pathelem **source, const char *name)
- {
-     unsigned int i, namelen;
- 
-@@ -119,14 +117,18 @@ follow_path(const struct pathelem *cursor, const char *name)
-         return cursor->pathname;
- 
-     if (strneq(name, namelen, ".."))
--        return follow_path(cursor->parent, name + namelen);
-+        return follow_path(cursor->parent, &cursor->parent, name + namelen);
- 
-     if (strneq(name, namelen, "."))
--        return follow_path(cursor, name + namelen);
-+        return follow_path(cursor, source, name + namelen);
-+
-+    if (!cursor->populated_entries)
-+        *source = add_dir_maybe(cursor);
-+        cursor = *source;
- 
-     for (i = 0; i < cursor->num_entries; i++)
-         if (strneq(name, namelen, cursor->entries[i]->name))
--            return follow_path(cursor->entries[i], name + namelen);
-+            return follow_path(cursor->entries[i], &cursor->entries[i], name + namelen);
- 
-     /* Not found */
-     return NULL;
-@@ -160,8 +162,6 @@ void init_paths(const char *prefix)
-         g_free(base->name);
-         g_free(base);
-         base = NULL;
--    } else {
--        set_parents(base, base);
-     }
- }
- 
-@@ -173,5 +173,5 @@ const char *path(const char *name)
-     if (!base || !name || name[0] != '/')
-         return name;
- 
--    return follow_path(base, name) ?: name;
-+    return follow_path(base, &base, name) ?: name;
- }
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch b/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
similarity index 83%
rename from poky/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
rename to poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
index b62a588..a736815 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0006-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0005-qemu-native-set-ld.bfd-fix-cflags-and-set-some-envir.patch
@@ -1,4 +1,4 @@
-From 107fd860529a3c1319d54c3c225758457b0d9394 Mon Sep 17 00:00:00 2001
+From 80e6070bcdfe636b103a13598e6c38ad0d0e7624 Mon Sep 17 00:00:00 2001
 From: Stephen Arnold <sarnold@vctlabs.com>
 Date: Sun, 12 Jun 2016 18:09:56 -0700
 Subject: [PATCH] qemu-native: set ld.bfd, fix cflags, and set some environment
@@ -10,10 +10,10 @@
  1 file changed, 4 deletions(-)
 
 diff --git a/configure b/configure
-index eaf9bb5e..de2933d1 100755
+index dad4fc59..685bbe5e 100755
 --- a/configure
 +++ b/configure
-@@ -5928,10 +5928,6 @@ write_c_skeleton
+@@ -5971,10 +5971,6 @@ write_c_skeleton
  if test "$gcov" = "yes" ; then
    CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
    LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch b/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
similarity index 93%
rename from poky/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch
rename to poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
index f3f3dc3..a423855 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0007-chardev-connect-socket-to-a-spawned-command.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
@@ -1,4 +1,4 @@
-From 136e159482a1bc8676cbe6e767055d0c3fb20065 Mon Sep 17 00:00:00 2001
+From ad853601e75f6d0dd09672bcca05fbe4fac766a4 Mon Sep 17 00:00:00 2001
 From: Alistair Francis <alistair.francis@xilinx.com>
 Date: Thu, 21 Dec 2017 11:35:16 -0800
 Subject: [PATCH] chardev: connect socket to a spawned command
@@ -52,10 +52,10 @@
  3 files changed, 109 insertions(+)
 
 diff --git a/chardev/char-socket.c b/chardev/char-socket.c
-index 3916505d..a8e9dce8 100644
+index 7ca5d97a..207fae4a 100644
 --- a/chardev/char-socket.c
 +++ b/chardev/char-socket.c
-@@ -1273,6 +1273,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
+@@ -1278,6 +1278,67 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
      return true;
  }
  
@@ -123,7 +123,7 @@
  
  static void qmp_chardev_open_socket(Chardev *chr,
                                      ChardevBackend *backend,
-@@ -1281,6 +1342,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
+@@ -1286,6 +1347,9 @@ static void qmp_chardev_open_socket(Chardev *chr,
  {
      SocketChardev *s = SOCKET_CHARDEV(chr);
      ChardevSocket *sock = backend->u.socket.data;
@@ -133,7 +133,7 @@
      bool do_nodelay     = sock->has_nodelay ? sock->nodelay : false;
      bool is_listen      = sock->has_server  ? sock->server  : true;
      bool is_telnet      = sock->has_telnet  ? sock->telnet  : false;
-@@ -1346,6 +1410,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
+@@ -1351,6 +1415,14 @@ static void qmp_chardev_open_socket(Chardev *chr,
  
      update_disconnected_filename(s);
  
@@ -148,7 +148,7 @@
      if (s->is_listen) {
          if (qmp_chardev_open_socket_server(chr, is_telnet || is_tn3270,
                                             is_waitconnect, errp) < 0) {
-@@ -1365,9 +1437,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
+@@ -1370,9 +1442,26 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
      const char *host = qemu_opt_get(opts, "host");
      const char *port = qemu_opt_get(opts, "port");
      const char *fd = qemu_opt_get(opts, "fd");
@@ -175,7 +175,7 @@
      if ((!!path + !!fd + !!host) != 1) {
          error_setg(errp,
                     "Exactly one of 'path', 'fd' or 'host' required");
-@@ -1410,12 +1499,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
+@@ -1415,12 +1504,24 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
      sock->has_tls_authz = qemu_opt_get(opts, "tls-authz");
      sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
  
@@ -201,10 +201,10 @@
          addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET;
          addr->u.inet.data = g_new(InetSocketAddress, 1);
 diff --git a/chardev/char.c b/chardev/char.c
-index 514cd6b0..36a40d67 100644
+index 7b6b2cb1..0c2ca64b 100644
 --- a/chardev/char.c
 +++ b/chardev/char.c
-@@ -835,6 +835,9 @@ QemuOptsList qemu_chardev_opts = {
+@@ -837,6 +837,9 @@ QemuOptsList qemu_chardev_opts = {
          },{
              .name = "path",
              .type = QEMU_OPT_STRING,
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch b/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
similarity index 90%
rename from poky/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch
rename to poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
index 13037f3..b50e8c2 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0008-apic-fixup-fallthrough-to-PIC.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
@@ -1,4 +1,4 @@
-From 1b3f264e2ba18caf658fae27293c426c8366c6a3 Mon Sep 17 00:00:00 2001
+From f51e49e7d7d87b7254242b7360f99c2df94a5a2d Mon Sep 17 00:00:00 2001
 From: Mark Asselstine <mark.asselstine@windriver.com>
 Date: Tue, 26 Feb 2013 11:43:28 -0500
 Subject: [PATCH] apic: fixup fallthrough to PIC
@@ -30,10 +30,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/hw/intc/apic.c b/hw/intc/apic.c
-index 6ea619c3..f892811e 100644
+index bce89911..df4b582e 100644
 --- a/hw/intc/apic.c
 +++ b/hw/intc/apic.c
-@@ -604,7 +604,7 @@ int apic_accept_pic_intr(DeviceState *dev)
+@@ -603,7 +603,7 @@ int apic_accept_pic_intr(DeviceState *dev)
      APICCommonState *s = APIC(dev);
      uint32_t lvt0;
  
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch b/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
similarity index 90%
rename from poky/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
rename to poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
index c572ff9..e562f25 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0009-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
@@ -1,4 +1,4 @@
-From a33ae91504ea4d254b5ace64a84791d3c96c9773 Mon Sep 17 00:00:00 2001
+From 25a064f91f73630e5dff2a6aeb23d953c469cea6 Mon Sep 17 00:00:00 2001
 From: Alistair Francis <alistair.francis@xilinx.com>
 Date: Wed, 17 Jan 2018 10:51:49 -0800
 Subject: [PATCH] linux-user: Fix webkitgtk hangs on 32-bit x86 target
@@ -19,10 +19,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/linux-user/main.c b/linux-user/main.c
-index a0aba9cb..34c54924 100644
+index 8ffc5251..4067e739 100644
 --- a/linux-user/main.c
 +++ b/linux-user/main.c
-@@ -69,7 +69,7 @@ int have_guest_base;
+@@ -77,7 +77,7 @@ int have_guest_base;
        (TARGET_LONG_BITS == 32 || defined(TARGET_ABI32))
  /* There are a number of places where we assign reserved_va to a variable
     of type abi_ulong and expect it to fit.  Avoid the last page.  */
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch b/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch
new file mode 100644
index 0000000..4072d94
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0009-Fix-webkitgtk-builds.patch
@@ -0,0 +1,137 @@
+From b633b9a1813fcd715dce44659a89293f1c64ae8c Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@lge.com>
+Date: Fri, 1 Jun 2018 08:41:07 +0000
+Subject: [PATCH] Fix webkitgtk builds
+
+This is a partial revert of "linux-user: fix mmap/munmap/mprotect/mremap/shmat".
+
+This patch fixes qemu-i386 hangs during gobject-introspection in webkitgtk build
+when musl is used on qemux86. This is the same issue that
+0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch was
+fixing in the 2.11 release.
+
+This patch also fixes a build failure when building webkitgtk for
+qemumips. A QEMU assert is seen while building webkitgtk:
+page_check_range: Assertion `start < ((target_ulong)1 << L1_MAP_ADDR_SPACE_BITS)' failed.
+
+This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583.
+
+Upstream-Status: Pending
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ include/exec/cpu-all.h  |  6 +-----
+ include/exec/cpu_ldst.h |  5 ++++-
+ linux-user/mmap.c       | 17 ++++-------------
+ linux-user/syscall.c    |  5 +----
+ 4 files changed, 10 insertions(+), 23 deletions(-)
+
+diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
+index 536ea58f81..4c63a6a2e4 100644
+--- a/include/exec/cpu-all.h
++++ b/include/exec/cpu-all.h
+@@ -162,12 +162,8 @@ extern unsigned long guest_base;
+ extern int have_guest_base;
+ extern unsigned long reserved_va;
+ 
+-#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
+-#define GUEST_ADDR_MAX (~0ul)
+-#else
+-#define GUEST_ADDR_MAX (reserved_va ? reserved_va - 1 : \
++#define GUEST_ADDR_MAX (reserved_va ? reserved_va : \
+                                     (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
+-#endif
+ #else
+ 
+ #include "exec/hwaddr.h"
+diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
+index 9151fdb042..cb2b8f329f 100644
+--- a/include/exec/cpu_ldst.h
++++ b/include/exec/cpu_ldst.h
+@@ -65,7 +65,10 @@ typedef uint64_t abi_ptr;
+ #if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
+ #define guest_addr_valid(x) (1)
+ #else
+-#define guest_addr_valid(x) ((x) <= GUEST_ADDR_MAX)
++#define guest_addr_valid(x) ({ \
++    ((x) < (1ul << TARGET_VIRT_ADDR_SPACE_BITS)) && \
++    (!reserved_va || ((x) < reserved_va)); \
++})
+ #endif
+ #define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base)
+ 
+diff --git a/linux-user/mmap.c b/linux-user/mmap.c
+index 46a6e3a761..7735465462 100644
+--- a/linux-user/mmap.c
++++ b/linux-user/mmap.c
+@@ -78,7 +78,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
+         return -TARGET_EINVAL;
+     len = TARGET_PAGE_ALIGN(len);
+     end = start + len;
+-    if (!guest_range_valid(start, len)) {
++    if (end < start) {
+         return -TARGET_ENOMEM;
+     }
+     prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
+@@ -495,8 +495,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
+          * It can fail only on 64-bit host with 32-bit target.
+          * On any other target/host host mmap() handles this error correctly.
+          */
+-        if (!guest_range_valid(start, len)) {
+-            errno = ENOMEM;
++        if ((unsigned long)start + len - 1 > (abi_ulong) -1) {
++            errno = EINVAL;
+             goto fail;
+         }
+ 
+@@ -636,10 +636,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
+     if (start & ~TARGET_PAGE_MASK)
+         return -TARGET_EINVAL;
+     len = TARGET_PAGE_ALIGN(len);
+-    if (len == 0 || !guest_range_valid(start, len)) {
++    if (len == 0)
+         return -TARGET_EINVAL;
+-    }
+-
+     mmap_lock();
+     end = start + len;
+     real_start = start & qemu_host_page_mask;
+@@ -694,13 +692,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
+     int prot;
+     void *host_addr;
+ 
+-    if (!guest_range_valid(old_addr, old_size) ||
+-        ((flags & MREMAP_FIXED) &&
+-         !guest_range_valid(new_addr, new_size))) {
+-        errno = ENOMEM;
+-        return -1;
+-    }
+-
+     mmap_lock();
+ 
+     if (flags & MREMAP_FIXED) {
+diff --git a/linux-user/syscall.c b/linux-user/syscall.c
+index 8b41a03901..bc5d85de02 100644
+--- a/linux-user/syscall.c
++++ b/linux-user/syscall.c
+@@ -4031,9 +4031,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
+             return -TARGET_EINVAL;
+         }
+     }
+-    if (!guest_range_valid(shmaddr, shm_info.shm_segsz)) {
+-        return -TARGET_EINVAL;
+-    }
+ 
+     mmap_lock();
+ 
+@@ -6881,7 +6878,7 @@ static int open_self_maps(void *cpu_env, int fd)
+         }
+         if (h2g_valid(min)) {
+             int flags = page_get_flags(h2g(min));
+-            max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX) + 1;
++            max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX);
+             if (page_check_range(h2g(min), max - min, flags) == -1) {
+                 continue;
+             }
+-- 
+2.22.0
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch b/poky/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
deleted file mode 100644
index 3418eb7..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/0010-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 2a66bd95c856de6950fbd802c5b99075207c1d76 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <martin.jansa@lge.com>
-Date: Fri, 1 Jun 2018 08:41:07 +0000
-Subject: [PATCH] Revert "linux-user: fix mmap/munmap/mprotect/mremap/shmat"
-
-Causes qemu-i386 to hang during gobject-introspection in webkitgtk build
-when musl is used on qemux86 - the same issue as
-0010-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch
-was fixing in 2.11.0 release, but with this patch the fix no longer worked
-as discussed here:
-http://lists.openembedded.org/pipermail/openembedded-core/2018-May/150302.html
-http://lists.openembedded.org/pipermail/openembedded-core/2018-June/151382.html
-
-This reverts commit ebf9a3630c911d0cfc9c20f7cafe9ba4f88cf583.
-
-Upstream-Status: Pending
-
----
- include/exec/cpu-all.h  |  6 +-----
- include/exec/cpu_ldst.h | 16 +++++++++-------
- linux-user/mmap.c       | 17 ++++-------------
- linux-user/syscall.c    |  5 +----
- 4 files changed, 15 insertions(+), 29 deletions(-)
-
-diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
-index b16c9ec5..612db6a0 100644
---- a/include/exec/cpu-all.h
-+++ b/include/exec/cpu-all.h
-@@ -163,12 +163,8 @@ extern unsigned long guest_base;
- extern int have_guest_base;
- extern unsigned long reserved_va;
- 
--#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
--#define GUEST_ADDR_MAX (~0ul)
--#else
--#define GUEST_ADDR_MAX (reserved_va ? reserved_va - 1 : \
-+#define GUEST_ADDR_MAX (reserved_va ? reserved_va : \
-                                     (1ul << TARGET_VIRT_ADDR_SPACE_BITS) - 1)
--#endif
- #else
- 
- #include "exec/hwaddr.h"
-diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
-index d78041d7..845639f7 100644
---- a/include/exec/cpu_ldst.h
-+++ b/include/exec/cpu_ldst.h
-@@ -62,13 +62,15 @@ typedef uint64_t abi_ptr;
- /* All direct uses of g2h and h2g need to go away for usermode softmmu.  */
- #define g2h(x) ((void *)((unsigned long)(abi_ptr)(x) + guest_base))
- 
--#define guest_addr_valid(x) ((x) <= GUEST_ADDR_MAX)
--#define h2g_valid(x) guest_addr_valid((unsigned long)(x) - guest_base)
--
--static inline int guest_range_valid(unsigned long start, unsigned long len)
--{
--    return len - 1 <= GUEST_ADDR_MAX && start <= GUEST_ADDR_MAX - len + 1;
--}
-+#if HOST_LONG_BITS <= TARGET_VIRT_ADDR_SPACE_BITS
-+#define h2g_valid(x) 1
-+#else
-+#define h2g_valid(x) ({ \
-+    unsigned long __guest = (unsigned long)(x) - guest_base; \
-+    (__guest < (1ul << TARGET_VIRT_ADDR_SPACE_BITS)) && \
-+    (!reserved_va || (__guest < reserved_va)); \
-+})
-+#endif
- 
- #define h2g_nocheck(x) ({ \
-     unsigned long __ret = (unsigned long)(x) - guest_base; \
-diff --git a/linux-user/mmap.c b/linux-user/mmap.c
-index e0249efe..cfe34b35 100644
---- a/linux-user/mmap.c
-+++ b/linux-user/mmap.c
-@@ -79,7 +79,7 @@ int target_mprotect(abi_ulong start, abi_ulong len, int prot)
-         return -TARGET_EINVAL;
-     len = TARGET_PAGE_ALIGN(len);
-     end = start + len;
--    if (!guest_range_valid(start, len)) {
-+    if (end < start) {
-         return -TARGET_ENOMEM;
-     }
-     prot &= PROT_READ | PROT_WRITE | PROT_EXEC;
-@@ -490,8 +490,8 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int prot,
-          * It can fail only on 64-bit host with 32-bit target.
-          * On any other target/host host mmap() handles this error correctly.
-          */
--        if (!guest_range_valid(start, len)) {
--            errno = ENOMEM;
-+        if ((unsigned long)start + len - 1 > (abi_ulong) -1) {
-+            errno = EINVAL;
-             goto fail;
-         }
- 
-@@ -631,10 +631,8 @@ int target_munmap(abi_ulong start, abi_ulong len)
-     if (start & ~TARGET_PAGE_MASK)
-         return -TARGET_EINVAL;
-     len = TARGET_PAGE_ALIGN(len);
--    if (len == 0 || !guest_range_valid(start, len)) {
-+    if (len == 0)
-         return -TARGET_EINVAL;
--    }
--
-     mmap_lock();
-     end = start + len;
-     real_start = start & qemu_host_page_mask;
-@@ -689,13 +687,6 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
-     int prot;
-     void *host_addr;
- 
--    if (!guest_range_valid(old_addr, old_size) ||
--        ((flags & MREMAP_FIXED) &&
--         !guest_range_valid(new_addr, new_size))) {
--        errno = ENOMEM;
--        return -1;
--    }
--
-     mmap_lock();
- 
-     if (flags & MREMAP_FIXED) {
-diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 96cd4bf8..e6754772 100644
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -3860,9 +3860,6 @@ static inline abi_ulong do_shmat(CPUArchState *cpu_env,
-             return -TARGET_EINVAL;
-         }
-     }
--    if (!guest_range_valid(shmaddr, shm_info.shm_segsz)) {
--        return -TARGET_EINVAL;
--    }
- 
-     mmap_lock();
- 
-@@ -6633,7 +6630,7 @@ static int open_self_maps(void *cpu_env, int fd)
-         }
-         if (h2g_valid(min)) {
-             int flags = page_get_flags(h2g(min));
--            max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX) + 1;
-+            max = h2g_valid(max - 1) ? max : (uintptr_t)g2h(GUEST_ADDR_MAX);
-             if (page_check_range(h2g(min), max - min, flags) == -1) {
-                 continue;
-             }
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch b/poky/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
similarity index 100%
rename from poky/meta/recipes-devtools/qemu/qemu/0011-fix-libcap-header-issue-on-some-distro.patch
rename to poky/meta/recipes-devtools/qemu/qemu/0010-fix-libcap-header-issue-on-some-distro.patch
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/poky/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
similarity index 97%
rename from poky/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
rename to poky/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
index 0466419..e5ebfc1 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0012-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0011-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
@@ -37,7 +37,7 @@
      if (err && err != ESRCH) {
          fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
 +        fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
-+        cpu_dump_state(cpu, stderr, fprintf, 0);
++        cpu_dump_state(cpu, stderr, 0);
 +        backtrace_print();
          exit(1);
      }
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch b/poky/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
deleted file mode 100644
index c1dd957..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/0013-target-arm-Fix-vector-operation-segfault.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 2f143d3ad1c05e91cf2cdf5de06d59a80a95e6c8 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Thu, 23 May 2019 14:47:43 +0100
-Subject: [PATCH] target/arm: Fix vector operation segfault
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Commit 89e68b575 "target/arm: Use vector operations for saturation"
-causes this abort() when booting QEMU ARM with a Cortex-A15:
-
-0  0x00007ffff4c2382f in raise () at /usr/lib/libc.so.6
-1  0x00007ffff4c0e672 in abort () at /usr/lib/libc.so.6
-2  0x00005555559c1839 in disas_neon_data_insn (insn=<optimized out>, s=<optimized out>) at ./target/arm/translate.c:6673
-3  0x00005555559c1839 in disas_neon_data_insn (s=<optimized out>, insn=<optimized out>) at ./target/arm/translate.c:6386
-4  0x00005555559cd8a4 in disas_arm_insn (insn=4081107068, s=0x7fffe59a9510) at ./target/arm/translate.c:9289
-5  0x00005555559cd8a4 in arm_tr_translate_insn (dcbase=0x7fffe59a9510, cpu=<optimized out>) at ./target/arm/translate.c:13612
-6  0x00005555558d1d39 in translator_loop (ops=0x5555561cc580 <arm_translator_ops>, db=0x7fffe59a9510, cpu=0x55555686a2f0, tb=<optimized out>, max_insns=<optimized out>) at ./accel/tcg/translator.c:96
-7  0x00005555559d10d4 in gen_intermediate_code (cpu=cpu@entry=0x55555686a2f0, tb=tb@entry=0x7fffd7840080 <code_gen_buffer+126091347>, max_insns=max_insns@entry=512) at ./target/arm/translate.c:13901
-8  0x00005555558d06b9 in tb_gen_code (cpu=cpu@entry=0x55555686a2f0, pc=3067096216, cs_base=0, flags=192, cflags=-16252928, cflags@entry=524288) at ./accel/tcg/translate-all.c:1736
-9  0x00005555558ce467 in tb_find (cf_mask=524288, tb_exit=1, last_tb=0x7fffd783e640 <code_gen_buffer+126084627>, cpu=0x1) at ./accel/tcg/cpu-exec.c:407
-10 0x00005555558ce467 in cpu_exec (cpu=cpu@entry=0x55555686a2f0) at ./accel/tcg/cpu-exec.c:728
-11 0x000055555588b0cf in tcg_cpu_exec (cpu=0x55555686a2f0) at ./cpus.c:1431
-12 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=0x55555686a2f0) at ./cpus.c:1735
-13 0x000055555588d223 in qemu_tcg_cpu_thread_fn (arg=arg@entry=0x55555686a2f0) at ./cpus.c:1709
-14 0x0000555555d2629a in qemu_thread_start (args=<optimized out>) at ./util/qemu-thread-posix.c:502
-15 0x00007ffff4db8a92 in start_thread () at /usr/lib/libpthread.
-
-This patch ensures that we don't hit the abort() in the second switch
-case in disas_neon_data_insn() as we will return from the first case.
-
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
-Tested-by: Alex Bennée <alex.bennee@linaro.org>
-Message-id: ad91b397f360b2fc7f4087e476f7df5b04d42ddb.1558021877.git.alistair.francis@wdc.com
-Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-Upstream-Status: Backport [4.1.0]
----
- target/arm/translate.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/target/arm/translate.c b/target/arm/translate.c
-index dd053c80d6..298c262825 100644
---- a/target/arm/translate.c
-+++ b/target/arm/translate.c
-@@ -6598,13 +6598,13 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
-             tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
-                            rn_ofs, rm_ofs, vec_size, vec_size,
-                            (u ? uqadd_op : sqadd_op) + size);
--            break;
-+            return 0;
- 
-         case NEON_3R_VQSUB:
-             tcg_gen_gvec_4(rd_ofs, offsetof(CPUARMState, vfp.qc),
-                            rn_ofs, rm_ofs, vec_size, vec_size,
-                            (u ? uqsub_op : sqsub_op) + size);
--            break;
-+            return 0;
- 
-         case NEON_3R_VMUL: /* VMUL */
-             if (u) {
--- 
-2.21.0
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch b/poky/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
deleted file mode 100644
index 7cac8ef..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/0014-linux-user-fix-to-handle-variably-sized-SIOCGSTAMP-w.patch
+++ /dev/null
@@ -1,339 +0,0 @@
-From 8104018ba4c66e568d2583a3a0ee940851ee7471 Mon Sep 17 00:00:00 2001
-From: Daniel P. Berrangé <berrange@redhat.com>
-Date: Tue, 23 Jul 2019 17:50:00 +0200
-Subject: [PATCH] linux-user: fix to handle variably sized SIOCGSTAMP with new
- kernels
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The SIOCGSTAMP symbol was previously defined in the
-asm-generic/sockios.h header file. QEMU sees that header
-indirectly via sys/socket.h
-
-In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
-the asm-generic/sockios.h header no longer defines SIOCGSTAMP.
-Instead it provides only SIOCGSTAMP_OLD, which only uses a
-32-bit time_t on 32-bit architectures.
-
-The linux/sockios.h header then defines SIOCGSTAMP using
-either SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. If
-SIOCGSTAMP_NEW is used, then the tv_sec field is 64-bit even
-on 32-bit architectures
-
-To cope with this we must now convert the old and new type from
-the target to the host one.
-
-Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-Reviewed-by: Arnd Bergmann <arnd@arndb.de>
-Message-Id: <20190718130641.15294-1-laurent@vivier.eu>
-Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
----
-Upstream-Status: Backport [upstream commit: 6d5d5dde9adb5acb32e6b8e3dfbf47fff0f308d2]
-
- linux-user/ioctls.h        |  21 +++++-
- linux-user/syscall.c       | 140 +++++++++++++++++++++++++++++--------
- linux-user/syscall_defs.h  |  30 +++++++-
- linux-user/syscall_types.h |   6 --
- 4 files changed, 159 insertions(+), 38 deletions(-)
-
-diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
-index ae8951625f..e6a27ad9d6 100644
---- a/linux-user/ioctls.h
-+++ b/linux-user/ioctls.h
-@@ -219,8 +219,25 @@
-   IOCTL(SIOCGRARP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_arpreq)))
-   IOCTL(SIOCGIWNAME, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_char_ifreq)))
-   IOCTL(SIOCGPGRP, IOC_R, MK_PTR(TYPE_INT)) /* pid_t */
--  IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval)))
--  IOCTL(SIOCGSTAMPNS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec)))
-+
-+  /*
-+   * We can't use IOCTL_SPECIAL() because it will set
-+   * host_cmd to XXX_OLD and XXX_NEW and these macros
-+   * are not defined with kernel prior to 5.2.
-+   * We must set host_cmd to the same value as in target_cmd
-+   * otherwise the consistency check in syscall_init()
-+   * will trigger an error.
-+   * host_cmd is ignored by the do_ioctl_XXX() helpers.
-+   * FIXME: create a macro to define this kind of entry
-+   */
-+  { TARGET_SIOCGSTAMP_OLD, TARGET_SIOCGSTAMP_OLD,
-+    "SIOCGSTAMP_OLD", IOC_R, do_ioctl_SIOCGSTAMP },
-+  { TARGET_SIOCGSTAMPNS_OLD, TARGET_SIOCGSTAMPNS_OLD,
-+    "SIOCGSTAMPNS_OLD", IOC_R, do_ioctl_SIOCGSTAMPNS },
-+  { TARGET_SIOCGSTAMP_NEW, TARGET_SIOCGSTAMP_NEW,
-+    "SIOCGSTAMP_NEW", IOC_R, do_ioctl_SIOCGSTAMP },
-+  { TARGET_SIOCGSTAMPNS_NEW, TARGET_SIOCGSTAMPNS_NEW,
-+    "SIOCGSTAMPNS_NEW", IOC_R, do_ioctl_SIOCGSTAMPNS },
- 
-   IOCTL(RNDGETENTCNT, IOC_R, MK_PTR(TYPE_INT))
-   IOCTL(RNDADDTOENTCNT, IOC_W, MK_PTR(TYPE_INT))
-diff --git a/linux-user/syscall.c b/linux-user/syscall.c
-index 96cd4bf86d..6df480e13d 100644
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -37,6 +37,7 @@
- #include <sched.h>
- #include <sys/timex.h>
- #include <sys/socket.h>
-+#include <linux/sockios.h>
- #include <sys/un.h>
- #include <sys/uio.h>
- #include <poll.h>
-@@ -1139,8 +1140,9 @@ static inline abi_long copy_from_user_timeval(struct timeval *tv,
- {
-     struct target_timeval *target_tv;
- 
--    if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1))
-+    if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1)) {
-         return -TARGET_EFAULT;
-+    }
- 
-     __get_user(tv->tv_sec, &target_tv->tv_sec);
-     __get_user(tv->tv_usec, &target_tv->tv_usec);
-@@ -1155,8 +1157,26 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
- {
-     struct target_timeval *target_tv;
- 
--    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0))
-+    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
-+        return -TARGET_EFAULT;
-+    }
-+
-+    __put_user(tv->tv_sec, &target_tv->tv_sec);
-+    __put_user(tv->tv_usec, &target_tv->tv_usec);
-+
-+    unlock_user_struct(target_tv, target_tv_addr, 1);
-+
-+    return 0;
-+}
-+
-+static inline abi_long copy_to_user_timeval64(abi_ulong target_tv_addr,
-+                                             const struct timeval *tv)
-+{
-+    struct target__kernel_sock_timeval *target_tv;
-+
-+    if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
-         return -TARGET_EFAULT;
-+    }
- 
-     __put_user(tv->tv_sec, &target_tv->tv_sec);
-     __put_user(tv->tv_usec, &target_tv->tv_usec);
-@@ -1166,6 +1186,48 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
-     return 0;
- }
- 
-+static inline abi_long target_to_host_timespec(struct timespec *host_ts,
-+                                               abi_ulong target_addr)
-+{
-+    struct target_timespec *target_ts;
-+
-+    if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1)) {
-+        return -TARGET_EFAULT;
-+    }
-+    __get_user(host_ts->tv_sec, &target_ts->tv_sec);
-+    __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+    unlock_user_struct(target_ts, target_addr, 0);
-+    return 0;
-+}
-+
-+static inline abi_long host_to_target_timespec(abi_ulong target_addr,
-+                                               struct timespec *host_ts)
-+{
-+    struct target_timespec *target_ts;
-+
-+    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
-+        return -TARGET_EFAULT;
-+    }
-+    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
-+    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+    unlock_user_struct(target_ts, target_addr, 1);
-+    return 0;
-+}
-+
-+static inline abi_long host_to_target_timespec64(abi_ulong target_addr,
-+                                                 struct timespec *host_ts)
-+{
-+    struct target__kernel_timespec *target_ts;
-+
-+    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
-+        return -TARGET_EFAULT;
-+    }
-+    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
-+    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
-+    unlock_user_struct(target_ts, target_addr, 1);
-+    return 0;
-+}
-+
- static inline abi_long copy_from_user_timezone(struct timezone *tz,
-                                                abi_ulong target_tz_addr)
- {
-@@ -4790,6 +4852,54 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp,
-     return get_errno(safe_ioctl(fd, ie->host_cmd, sig));
- }
- 
-+static abi_long do_ioctl_SIOCGSTAMP(const IOCTLEntry *ie, uint8_t *buf_temp,
-+                                    int fd, int cmd, abi_long arg)
-+{
-+    struct timeval tv;
-+    abi_long ret;
-+
-+    ret = get_errno(safe_ioctl(fd, SIOCGSTAMP, &tv));
-+    if (is_error(ret)) {
-+        return ret;
-+    }
-+
-+    if (cmd == (int)TARGET_SIOCGSTAMP_OLD) {
-+        if (copy_to_user_timeval(arg, &tv)) {
-+            return -TARGET_EFAULT;
-+        }
-+    } else {
-+        if (copy_to_user_timeval64(arg, &tv)) {
-+            return -TARGET_EFAULT;
-+        }
-+    }
-+
-+    return ret;
-+}
-+
-+static abi_long do_ioctl_SIOCGSTAMPNS(const IOCTLEntry *ie, uint8_t *buf_temp,
-+                                      int fd, int cmd, abi_long arg)
-+{
-+    struct timespec ts;
-+    abi_long ret;
-+
-+    ret = get_errno(safe_ioctl(fd, SIOCGSTAMPNS, &ts));
-+    if (is_error(ret)) {
-+        return ret;
-+    }
-+
-+    if (cmd == (int)TARGET_SIOCGSTAMPNS_OLD) {
-+        if (host_to_target_timespec(arg, &ts)) {
-+            return -TARGET_EFAULT;
-+        }
-+    } else{
-+        if (host_to_target_timespec64(arg, &ts)) {
-+            return -TARGET_EFAULT;
-+        }
-+    }
-+
-+    return ret;
-+}
-+
- #ifdef TIOCGPTPEER
- static abi_long do_ioctl_tiocgptpeer(const IOCTLEntry *ie, uint8_t *buf_temp,
-                                      int fd, int cmd, abi_long arg)
-@@ -6160,32 +6270,6 @@ static inline abi_long target_ftruncate64(void *cpu_env, abi_long arg1,
- }
- #endif
- 
--static inline abi_long target_to_host_timespec(struct timespec *host_ts,
--                                               abi_ulong target_addr)
--{
--    struct target_timespec *target_ts;
--
--    if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1))
--        return -TARGET_EFAULT;
--    __get_user(host_ts->tv_sec, &target_ts->tv_sec);
--    __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
--    unlock_user_struct(target_ts, target_addr, 0);
--    return 0;
--}
--
--static inline abi_long host_to_target_timespec(abi_ulong target_addr,
--                                               struct timespec *host_ts)
--{
--    struct target_timespec *target_ts;
--
--    if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0))
--        return -TARGET_EFAULT;
--    __put_user(host_ts->tv_sec, &target_ts->tv_sec);
--    __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
--    unlock_user_struct(target_ts, target_addr, 1);
--    return 0;
--}
--
- static inline abi_long target_to_host_itimerspec(struct itimerspec *host_itspec,
-                                                  abi_ulong target_addr)
- {
-diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
-index 12c8407144..c918419306 100644
---- a/linux-user/syscall_defs.h
-+++ b/linux-user/syscall_defs.h
-@@ -208,16 +208,34 @@ struct target_linger {
-     abi_int l_linger;       /* How long to linger for       */
- };
- 
-+#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
-+struct target_timeval {
-+    abi_long tv_sec;
-+    abi_int tv_usec;
-+};
-+#define target__kernel_sock_timeval target_timeval
-+#else
- struct target_timeval {
-     abi_long tv_sec;
-     abi_long tv_usec;
- };
- 
-+struct target__kernel_sock_timeval {
-+    abi_llong tv_sec;
-+    abi_llong tv_usec;
-+};
-+#endif
-+
- struct target_timespec {
-     abi_long tv_sec;
-     abi_long tv_nsec;
- };
- 
-+struct target__kernel_timespec {
-+    abi_llong tv_sec;
-+    abi_llong tv_nsec;
-+};
-+
- struct target_timezone {
-     abi_int tz_minuteswest;
-     abi_int tz_dsttime;
-@@ -743,8 +761,16 @@ struct target_pollfd {
- #define TARGET_SIOCATMARK      0x8905
- #define TARGET_SIOCGPGRP       0x8904
- #endif
--#define TARGET_SIOCGSTAMP      0x8906          /* Get stamp (timeval) */
--#define TARGET_SIOCGSTAMPNS    0x8907          /* Get stamp (timespec) */
-+#if defined(TARGET_SH4)
-+#define TARGET_SIOCGSTAMP_OLD   TARGET_IOR('s', 100, struct target_timeval)
-+#define TARGET_SIOCGSTAMPNS_OLD TARGET_IOR('s', 101, struct target_timespec)
-+#else
-+#define TARGET_SIOCGSTAMP_OLD   0x8906
-+#define TARGET_SIOCGSTAMPNS_OLD 0x8907
-+#endif
-+
-+#define TARGET_SIOCGSTAMP_NEW   TARGET_IOR(0x89, 0x06, abi_llong[2])
-+#define TARGET_SIOCGSTAMPNS_NEW TARGET_IOR(0x89, 0x07, abi_llong[2])
- 
- /* Networking ioctls */
- #define TARGET_SIOCADDRT       0x890B          /* add routing table entry */
-diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
-index b98a23b0f1..4e36983826 100644
---- a/linux-user/syscall_types.h
-+++ b/linux-user/syscall_types.h
-@@ -14,12 +14,6 @@ STRUCT(serial_icounter_struct,
- STRUCT(sockaddr,
-        TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
- 
--STRUCT(timeval,
--       MK_ARRAY(TYPE_LONG, 2))
--
--STRUCT(timespec,
--       MK_ARRAY(TYPE_LONG, 2))
--
- STRUCT(rtentry,
-        TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
-        TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
--- 
-2.21.0
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
deleted file mode 100644
index c49a5e9..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2019-12155.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d52680fc932efb8a2f334cc6993e705ed1e31e99 Mon Sep 17 00:00:00 2001
-From: Prasad J Pandit <pjp@fedoraproject.org>
-Date: Thu, 25 Apr 2019 12:05:34 +0530
-Subject: [PATCH] qxl: check release info object
-
-When releasing spice resources in release_resource() routine,
-if release info object 'ext.info' is null, it leads to null
-pointer dereference. Add check to avoid it.
-
-Reported-by: Bugs SysSec <bugs-syssec@rub.de>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Message-id: 20190425063534.32747-1-ppandit@redhat.com
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-
-Upstream-Status: Backport
-CVE: CVE-2019-12155
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- hw/display/qxl.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/hw/display/qxl.c b/hw/display/qxl.c
-index c8ce5781e03..632923add23 100644
---- a/hw/display/qxl.c
-+++ b/hw/display/qxl.c
-@@ -777,6 +777,9 @@ static void interface_release_resource(QXLInstance *sin,
-     QXLReleaseRing *ring;
-     uint64_t *item, id;
- 
-+    if (!ext.info) {
-+        return;
-+    }
-     if (ext.group_id == MEMSLOT_GROUP_HOST) {
-         /* host group -> vga mode update request */
-         QXLCommandExt *cmdext = (void *)(intptr_t)(ext.info->id);
diff --git a/poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb b/poky/meta/recipes-devtools/qemu/qemu_4.1.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/qemu/qemu_4.0.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu_4.1.0.bb
diff --git a/poky/meta/recipes-devtools/quilt/quilt.inc b/poky/meta/recipes-devtools/quilt/quilt.inc
index dcba62c..433e9b4 100644
--- a/poky/meta/recipes-devtools/quilt/quilt.inc
+++ b/poky/meta/recipes-devtools/quilt/quilt.inc
@@ -78,7 +78,7 @@
 FILES_${PN}-doc = "${mandir}/man1/quilt.1 ${docdir}/${BPN}"
 FILES_guards-doc = "${mandir}/man1/guards.1"
 
-RDEPENDS_${PN} = "bash patch diffstat bzip2 util-linux"
+RDEPENDS_${PN} = "bash patch diffstat bzip2 util-linux less"
 RDEPENDS_${PN}_class-native = "diffstat-native patch-native bzip2-native"
 
 RDEPENDS_${PN}-ptest = "make file sed gawk diffutils findutils ed perl \
diff --git a/poky/meta/recipes-devtools/quilt/quilt/Makefile b/poky/meta/recipes-devtools/quilt/quilt/Makefile
index 7b3ac8a..1f6cd24 100644
--- a/poky/meta/recipes-devtools/quilt/quilt/Makefile
+++ b/poky/meta/recipes-devtools/quilt/quilt/Makefile
@@ -2,7 +2,8 @@
 QUILT_DIR :=    $(CURDIR)/quilt
 QUILTRC :=      $(CURDIR)/test/test.quiltrc
 export QUILT_DIR QUILTRC
-CHECK_ENV := P=patches/; _P=../patches/; export P _P
+CHECK_ENV := P=patches/; _P=../patches/; export P _P;
+CHECK_ENV += QUILT_PC=.pc; export QUILT_PC
 -include test/.depend
 
 check-% : test/%.test
diff --git a/poky/meta/recipes-devtools/vala/vala_0.44.5.bb b/poky/meta/recipes-devtools/vala/vala_0.44.5.bb
deleted file mode 100644
index 518c9eb..0000000
--- a/poky/meta/recipes-devtools/vala/vala_0.44.5.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \
-           file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
-           "
-
-SRC_URI[md5sum] = "1e8b8595168446c529b11236cf75e328"
-SRC_URI[sha256sum] = "bb8f8185b805411511786733c4b769c3ee6af8bc879609bffb6c46b8999bc27f"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.44.7.bb b/poky/meta/recipes-devtools/vala/vala_0.44.7.bb
new file mode 100644
index 0000000..807ca7a
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.44.7.bb
@@ -0,0 +1,8 @@
+require ${BPN}.inc
+
+SRC_URI += "file://0001-git-version-gen-don-t-append-dirty-if-we-re-not-in-g.patch \
+           file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch \
+           "
+
+SRC_URI[md5sum] = "27fd30535c51af5b87b0e7ffdbd906ef"
+SRC_URI[sha256sum] = "bf1ff4f59d5de2d626e98e98ef81cb75dc1e6a27610a7de4133597c430f1bd7c"
diff --git a/poky/meta/recipes-extended/at/at/pam.conf.patch b/poky/meta/recipes-extended/at/at/pam.conf.patch
index c9f337e..38e7fc1 100644
--- a/poky/meta/recipes-extended/at/at/pam.conf.patch
+++ b/poky/meta/recipes-extended/at/at/pam.conf.patch
@@ -24,7 +24,7 @@
 -@include common-auth
 -@include common-account
 +auth       include    common-auth
-+acount     include    common-account
++account     include    common-account
  session    required   pam_loginuid.so
 -@include common-session-noninteractive
 +session    include    common-session-noninteractive
diff --git a/poky/meta/recipes-extended/cups/cups_2.2.11.bb b/poky/meta/recipes-extended/cups/cups_2.2.11.bb
deleted file mode 100644
index aeb2e14..0000000
--- a/poky/meta/recipes-extended/cups/cups_2.2.11.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require cups.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f212b4338db0da8cb892e94bf2949460"
-
-SRC_URI[md5sum] = "7afbbcd2497e7d742583c492f6de40cd"
-SRC_URI[sha256sum] = "f58010813fd6903f690cdb0c0b91e4d1bc9e5b9570c28734229ba3ed2908b76c"
diff --git a/poky/meta/recipes-extended/cups/cups_2.2.12.bb b/poky/meta/recipes-extended/cups/cups_2.2.12.bb
new file mode 100644
index 0000000..8e5534a
--- /dev/null
+++ b/poky/meta/recipes-extended/cups/cups_2.2.12.bb
@@ -0,0 +1,6 @@
+require cups.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f212b4338db0da8cb892e94bf2949460"
+
+SRC_URI[md5sum] = "e763689f7735d3fe95a2943397189e40"
+SRC_URI[sha256sum] = "0f61ab449e4748a24c6ab355b481ff7691247a140d327b2b7526fce34b7f9aa8"
diff --git a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
index 4fbd4b1..a1d914e 100644
--- a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
+++ b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
@@ -13,12 +13,11 @@
 SECTION = "libs"
 DEPENDS += "libtirpc libnsl2"
 
-PV = "3.0+git${SRCPV}"
+PV = "3.1+git${SRCPV}"
 
-SRCREV = "d4aea48657a8e90d7922574b8021ee03915a36cb"
+SRCREV = "062f31999b35393abf7595cb89dfc9590d5a42ad"
 
 SRC_URI = "git://github.com/thkukuk/libnss_nis \
-           file://0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch \
           "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/libnss-nis/libnss-nis/0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch b/poky/meta/recipes-extended/libnss-nis/libnss-nis/0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch
deleted file mode 100644
index 348c8c9..0000000
--- a/poky/meta/recipes-extended/libnss-nis/libnss-nis/0001-nis-hosts-Remove-use-of-RES_USE_INET6.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-From e41ddbd89a4bb042ac00469fa5880ba584c25c05 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 25 Jul 2019 12:10:56 -0700
-Subject: [PATCH] nis-hosts: Remove use of RES_USE_INET6
-
-Upstream glibc dropped it starting glibc 2.30
-see
-https://sourceware.org/git/?p=glibc.git;a=commit;h=3f8b44be0a658266adff5ece1e4bc3ce097a5dbe
-
-Fixes issue #6
-
-Upstream-Status: Submitted [https://github.com/thkukuk/libnss_nis/pull/7]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/nis-hosts.c | 55 ++++++++++++-------------------------------------
- 1 file changed, 13 insertions(+), 42 deletions(-)
-
-diff --git a/src/nis-hosts.c b/src/nis-hosts.c
-index 307b46e..bd3c4ad 100644
---- a/src/nis-hosts.c
-+++ b/src/nis-hosts.c
-@@ -35,15 +35,12 @@
- #include "libc-lock.h"
- #include "nss-nis.h"
- 
--/* Get implementation for some internal functions. */
--#include "mapv4v6addr.h"
--
- #define ENTNAME         hostent
- #define DATABASE        "hosts"
- #define NEED_H_ERRNO
- 
--#define EXTRA_ARGS      , af, flags
--#define EXTRA_ARGS_DECL , int af, int flags
-+#define EXTRA_ARGS      , af
-+#define EXTRA_ARGS_DECL , int af
- 
- #define ENTDATA hostent_data
- struct hostent_data
-@@ -67,19 +64,8 @@ LINE_PARSER
-    /* Parse address.  */
-    if (af != AF_INET6 && inet_pton (AF_INET, addr, entdata->host_addr) > 0)
-      {
--       assert ((flags & AI_V4MAPPED) == 0 || af != AF_UNSPEC);
--       if (flags & AI_V4MAPPED)
--	 {
--	   map_v4v6_address ((char *) entdata->host_addr,
--			     (char *) entdata->host_addr);
--	   result->h_addrtype = AF_INET6;
--	   result->h_length = IN6ADDRSZ;
--	 }
--       else
--	 {
--	   result->h_addrtype = AF_INET;
--	   result->h_length = INADDRSZ;
--	 }
-+       result->h_addrtype = AF_INET;
-+       result->h_length = INADDRSZ;
-      }
-    else if (af != AF_INET
- 	    && inet_pton (AF_INET6, addr, entdata->host_addr) > 0)
-@@ -134,7 +120,7 @@ strong_alias (_nss_nis_sethostent, _nss_nis_endhostent)
- static enum nss_status
- internal_nis_gethostent_r (struct hostent *host, char *buffer,
- 			   size_t buflen, int *errnop, int *h_errnop,
--			   int af, int flags)
-+			   int af)
- {
-   char *domain;
-   if (yp_get_default_domain (&domain))
-@@ -203,7 +189,7 @@ internal_nis_gethostent_r (struct hostent *host, char *buffer,
- 	++p;
-       free (result);
- 
--      parse_res = parse_line (p, host, data, buflen, errnop, af, flags);
-+      parse_res = parse_line (p, host, data, buflen, errnop, af);
-       if (parse_res == -1)
- 	{
- 	  free (outkey);
-@@ -232,8 +218,7 @@ _nss_nis_gethostent_r (struct hostent *host, char *buffer, size_t buflen,
-   __libc_lock_lock (lock);
- 
-   status = internal_nis_gethostent_r (host, buffer, buflen, errnop, h_errnop,
--			((_res.options & RES_USE_INET6) ? AF_INET6 : AF_INET),
--			((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0 ));
-+			AF_INET);
- 
-   __libc_lock_unlock (lock);
- 
-@@ -244,7 +229,7 @@ _nss_nis_gethostent_r (struct hostent *host, char *buffer, size_t buflen,
- static enum nss_status
- internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
- 			   char *buffer, size_t buflen, int *errnop,
--			   int *h_errnop, int flags)
-+			   int *h_errnop)
- {
-   uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct parser_data);
-   buffer += pad;
-@@ -318,7 +303,7 @@ internal_gethostbyname2_r (const char *name, int af, struct hostent *host,
-     ++p;
-   free (result);
- 
--  int parse_res = parse_line (p, host, data, buflen, errnop, af, flags);
-+  int parse_res = parse_line (p, host, data, buflen, errnop, af);
- 
-   if (parse_res < 1 || host->h_addrtype != af)
-     {
-@@ -351,8 +336,7 @@ _nss_nis_gethostbyname2_r (const char *name, int af, struct hostent *host,
-     }
- 
-   return internal_gethostbyname2_r (name, af, host, buffer, buflen, errnop,
--				    h_errnop,
--			((_res.options & RES_USE_INET6) ? AI_V4MAPPED : 0));
-+				    h_errnop);
- }
- 
- 
-@@ -360,18 +344,8 @@ enum nss_status
- _nss_nis_gethostbyname_r (const char *name, struct hostent *host, char *buffer,
- 			  size_t buflen, int *errnop, int *h_errnop)
- {
--  if (_res.options & RES_USE_INET6)
--    {
--      enum nss_status status;
--
--      status = internal_gethostbyname2_r (name, AF_INET6, host, buffer, buflen,
--					  errnop, h_errnop, AI_V4MAPPED);
--      if (status == NSS_STATUS_SUCCESS)
--	return status;
--    }
--
-   return internal_gethostbyname2_r (name, AF_INET, host, buffer, buflen,
--				    errnop, h_errnop, 0);
-+				    errnop, h_errnop);
- }
- 
- 
-@@ -433,9 +407,7 @@ _nss_nis_gethostbyaddr_r (const void *addr, socklen_t addrlen, int af,
-     ++p;
-   free (result);
- 
--  int parse_res = parse_line (p, host, data, buflen, errnop, af,
--			      ((_res.options & RES_USE_INET6)
--			       ? AI_V4MAPPED : 0));
-+  int parse_res = parse_line (p, host, data, buflen, errnop, af);
-   if (parse_res < 1)
-     {
-       if (parse_res == -1)
-@@ -532,8 +504,7 @@ _nss_nis_gethostbyname4_r (const char *name, struct gaih_addrtuple **pat,
-   buflen -= pad;
- 
-   struct hostent host;
--  int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC,
--			      0);
-+  int parse_res = parse_line (result, &host, data, buflen, errnop, AF_UNSPEC);
-   if (parse_res < 1)
-     {
-       if (parse_res == -1)
--- 
-2.22.0
-
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch
new file mode 100644
index 0000000..6ea2615
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch
@@ -0,0 +1,75 @@
+From e747d0456adc080a1d31fb653bda9dc491795c80 Mon Sep 17 00:00:00 2001
+From: Jan Stancek <jstancek@redhat.com>
+Date: Sun, 16 Jun 2019 11:14:16 +0200
+Subject: [PATCH] syscalls/tgkill03: wait for defunct tid to get detached
+
+Case where defunct tid is used has been observed to sporadically fail:
+  tgkill03.c:96: FAIL: Defunct tid should have failed with ESRCH: SUCCESS
+
+glibc __pthread_timedjoin_ex() waits for CLONE_CHILD_CLEARTID to clear tid,
+and then resumes. Kernel clears it (glibc pd->tid) at:
+  do_exit
+    exit_mm
+      mm_release
+        put_user(0, tsk->clear_child_tid);
+
+but kernel tid is still valid, presumably until:
+  release_task
+    __exit_signal
+      __unhash_process
+        detach_pid
+
+To avoid race wait until /proc/<pid>/task/<tid> disappears.
+
+Signed-off-by: Jan Stancek <jstancek@redhat.com>
+Reviewed-by: Li Wang <liwang@redhat.com>
+Acked-by: Sumit Garg <sumit.garg@linaro.org>
+
+Upstream-Status: Backport
+[https://github.com/linux-test-project/ltp/commit/e747d0456adc080a1d31fb653bda9dc491795c80]
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+---
+ testcases/kernel/syscalls/tgkill/tgkill03.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/testcases/kernel/syscalls/tgkill/tgkill03.c b/testcases/kernel/syscalls/tgkill/tgkill03.c
+index f5bbdc5..593a217 100644
+--- a/testcases/kernel/syscalls/tgkill/tgkill03.c
++++ b/testcases/kernel/syscalls/tgkill/tgkill03.c
+@@ -7,6 +7,7 @@
+ 
+ #include <pthread.h>
+ #include <pwd.h>
++#include <stdio.h>
+ #include <sys/types.h>
+ 
+ #include "tst_safe_pthread.h"
+@@ -42,6 +43,7 @@ static void setup(void)
+ {
+ 	sigset_t sigusr1;
+ 	pthread_t defunct_thread;
++	char defunct_tid_path[PATH_MAX];
+ 
+ 	sigemptyset(&sigusr1);
+ 	sigaddset(&sigusr1, SIGUSR1);
+@@ -55,8 +57,9 @@ static void setup(void)
+ 	TST_CHECKPOINT_WAIT(0);
+ 
+ 	SAFE_PTHREAD_CREATE(&defunct_thread, NULL, defunct_thread_func, NULL);
+-
+ 	SAFE_PTHREAD_JOIN(defunct_thread, NULL);
++	sprintf(defunct_tid_path, "/proc/%d/task/%d", getpid(), defunct_tid);
++	TST_RETRY_FN_EXP_BACKOFF(access(defunct_tid_path, R_OK), -1, 15);
+ }
+ 
+ static void cleanup(void)
+@@ -108,4 +111,5 @@ static struct tst_test test = {
+ 	.setup = setup,
+ 	.cleanup = cleanup,
+ 	.test = run,
++	.timeout = 20,
+ };
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch b/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch
new file mode 100644
index 0000000..c936b78
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch
@@ -0,0 +1,36 @@
+From 156776a3e29491b363fdc9811912e1298655d060 Mon Sep 17 00:00:00 2001
+From: Steven Price <steven.price@arm.com>
+Date: Fri, 19 Jul 2019 13:48:17 +0100
+Subject: [PATCH] ustat02: Fix EFAULT in 32bit compatibility mode
+
+The size of dev_t is larger than 32 bits which causes the dev argument
+to be passed incorrectly. On Arm this means that the EFAULT test case
+actually returns EINVAL because the device number isn't recognised.
+
+Signed-off-by: Steven Price <steven.price@arm.com>
+Acked-by: Li Wang <liwang@redhat.com>
+
+Upstream-Status: Backport
+[https://github.com/linux-test-project/ltp/commit/156776a3e29491b363fdc9811912e1298655d060]
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+---
+ testcases/kernel/syscalls/ustat/ustat02.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/testcases/kernel/syscalls/ustat/ustat02.c b/testcases/kernel/syscalls/ustat/ustat02.c
+index 9bbe4f3..1a0e9e0 100644
+--- a/testcases/kernel/syscalls/ustat/ustat02.c
++++ b/testcases/kernel/syscalls/ustat/ustat02.c
+@@ -36,7 +36,7 @@ int TST_TOTAL = ARRAY_SIZE(tc);
+ 
+ void run(unsigned int test)
+ {
+-	TEST(tst_syscall(__NR_ustat, *tc[test].dev, tc[test].buf));
++	TEST(tst_syscall(__NR_ustat, (unsigned int)*tc[test].dev, tc[test].buf));
+ 
+ 	if ((TST_RET == -1) && (TST_ERR == tc[test].exp_errno))
+ 		tst_res(TPASS | TTERRNO, "ustat(2) expected failure");
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-extended/ltp/ltp_20190517.bb b/poky/meta/recipes-extended/ltp/ltp_20190517.bb
index c62f261..b0e2f96 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20190517.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20190517.bb
@@ -43,6 +43,8 @@
            file://0012-getrlimit03-adjust-a-bit-of-code-to-compatiable-with.patch \
            file://0001-Add-configure-time-check-for-getdents-getdents64-API.patch \
            file://0002-check-for-RES_USE_INET6-during-configure.patch \
+           file://0001-syscalls-tgkill03-wait-for-defunct-tid-to-get-detach.patch \
+           file://0001-ustat02-Fix-EFAULT-in-32bit-compatibility-mode.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
index 18e2271..7501837 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
@@ -11,6 +11,8 @@
 
 VIRTUAL-RUNTIME_vim ?= "vim-tiny"
 
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
 RDEPENDS_${PN} = "\
     base-passwd \
     bash \
diff --git a/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch b/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch
deleted file mode 100644
index 8c8234d..0000000
--- a/poky/meta/recipes-extended/shadow/files/0002-gettime-Use-secure_getenv-over-getenv.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 3d921155e0a761f61c8f1ec37328724aee1e2eda Mon Sep 17 00:00:00 2001
-From: Chris Lamb <chris@chris-lamb.co.uk>
-Date: Sun, 31 Mar 2019 15:59:45 +0100
-Subject: [PATCH 2/2] gettime: Use secure_getenv over getenv.
-
-Upstream-Status: Backport
-Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
----
- README            | 1 +
- configure.ac      | 3 +++
- lib/defines.h     | 6 ++++++
- libmisc/gettime.c | 2 +-
- 4 files changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/README b/README
-index 952ac5787f06..26cfff1e8fa8 100644
---- a/README
-+++ b/README
-@@ -51,6 +51,7 @@ Brian R. Gaeke <brg@dgate.org>
- Calle Karlsson <ckn@kash.se>
- Chip Rosenthal <chip@unicom.com>
- Chris Evans <lady0110@sable.ox.ac.uk>
-+Chris Lamb <chris@chris-lamb.co.uk>
- Cristian Gafton <gafton@sorosis.ro>
- Dan Walsh <dwalsh@redhat.com>
- Darcy Boese <possum@chardonnay.niagara.com>
-diff --git a/configure.ac b/configure.ac
-index da236722766b..a738ad662cc3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -110,6 +110,9 @@ AC_REPLACE_FUNCS(sgetgrent sgetpwent sgetspent)
- AC_REPLACE_FUNCS(snprintf strcasecmp strdup strerror strstr)
- 
- AC_CHECK_FUNC(setpgrp)
-+AC_CHECK_FUNC(secure_getenv, [AC_DEFINE(HAS_SECURE_GETENV,
-+                                        1,
-+                                        [Defined to 1 if you have the declaration of 'secure_getenv'])])
- 
- if test "$ac_cv_header_shadow_h" = "yes"; then
- 	AC_CACHE_CHECK(for working shadow group support,
-diff --git a/lib/defines.h b/lib/defines.h
-index cded1417fd12..2fb1b56eca6b 100644
---- a/lib/defines.h
-+++ b/lib/defines.h
-@@ -382,4 +382,10 @@ extern char *strerror ();
- # endif
- #endif
- 
-+#ifdef HAVE_SECURE_GETENV
-+#  define shadow_getenv(name) secure_getenv(name)
-+# else
-+#  define shadow_getenv(name) getenv(name)
-+#endif
-+
- #endif				/* _DEFINES_H_ */
-diff --git a/libmisc/gettime.c b/libmisc/gettime.c
-index 53eaf51670bb..0e25a4b75061 100644
---- a/libmisc/gettime.c
-+++ b/libmisc/gettime.c
-@@ -52,7 +52,7 @@
- 	unsigned long long epoch;
- 
- 	fallback = time (NULL);
--	source_date_epoch = getenv ("SOURCE_DATE_EPOCH");
-+	source_date_epoch = shadow_getenv ("SOURCE_DATE_EPOCH");
- 
- 	if (!source_date_epoch)
- 		return fallback;
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index 7f82d20..7f8ee78 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -4,7 +4,7 @@
 SECTION = "base/utils"
 LICENSE = "BSD | Artistic-1.0"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ed80ff1c2b40843cf5768e5229cf16e5 \
-                    file://src/passwd.c;beginline=8;endline=30;md5=d83888ea14ae61951982d77125947661"
+                    file://src/passwd.c;beginline=2;endline=30;md5=5720ff729a6ff39ecc9f64555d75f4af"
 
 DEPENDS = "virtual/crypt"
 
@@ -12,7 +12,6 @@
 SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/${PV}/${BP}.tar.gz \
            file://shadow-4.1.3-dots-in-usernames.patch \
            file://0001-Make-the-sp_lstchg-shadow-field-reproducible-re.-71.patch  \
-           file://0002-gettime-Use-secure_getenv-over-getenv.patch \
            file://0001-configure.ac-fix-configure-error-with-dash.patch \
            ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
            "
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb
index e800040..7d194b3 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.10.00.bb
@@ -14,6 +14,11 @@
 
 DEPENDS = "coreutils-native"
 
+PROVIDES = "stress"
+RPROVIDES_${PN} = "stress"
+RREPLACES_${PN} = "stress"
+RCONFLICTS_${PN} = "stress"
+
 inherit bash-completion
 
 do_install() {
diff --git a/poky/meta/recipes-extended/sudo/sudo.inc b/poky/meta/recipes-extended/sudo/sudo.inc
index 90f2039..15075bc 100644
--- a/poky/meta/recipes-extended/sudo/sudo.inc
+++ b/poky/meta/recipes-extended/sudo/sudo.inc
@@ -6,12 +6,12 @@
 LICENSE = "ISC & BSD & Zlib"
 LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=6c76b73603ac7763ab0516ebfbe67b42 \
                     file://plugins/sudoers/redblack.c;beginline=1;endline=46;md5=4a162fc04b86b03f5632180fe6076cda \
-                    file://lib/util/reallocarray.c;beginline=3;endline=16;md5=85b0905b795d4d58bf2e00635649eec6 \
+                    file://lib/util/reallocarray.c;beginline=3;endline=15;md5=b47f1f85a12f05a0744cd8b1b6f41a0d \
                     file://lib/util/fnmatch.c;beginline=3;endline=27;md5=67f83ee9bd456557397082f8f1be0efd \
-                    file://lib/util/getcwd.c;beginline=5;endline=27;md5=449af4cc57fc7d46f42090608ba3e681 \
-                    file://lib/util/glob.c;beginline=6;endline=31;md5=5872733146b9eb0deb79e1f664815b85 \
-                    file://lib/util/snprintf.c;beginline=6;endline=34;md5=c82c1b3a5c32e08545c9ec5d71e41e50 \
-                    file://include/sudo_queue.h;beginline=5;endline=27;md5=449af4cc57fc7d46f42090608ba3e681 \
+                    file://lib/util/getcwd.c;beginline=2;endline=27;md5=09068a19b4f6b6f0a0958655bfe98b63 \
+                    file://lib/util/glob.c;beginline=2;endline=31;md5=1f2f771c35fb0658d567a7824007e56d \
+                    file://lib/util/snprintf.c;beginline=3;endline=33;md5=63e48e1b992bce749a19dd9b2256e9a0 \
+                    file://include/sudo_queue.h;beginline=2;endline=27;md5=082b138b72ba3e568a13a25c3bf254dc \
                     file://lib/util/inet_pton.c;beginline=3;endline=17;md5=3970ab0518ab79cbd0bafb697f10b33a \
                     file://lib/util/arc4random.c;beginline=3;endline=20;md5=15bdc89c1b003fa4d7353e6296ebfd68 \
                     file://lib/util/arc4random_uniform.c;beginline=3;endline=17;md5=31e630ac814d692fd0ab7a942659b46f \
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.32.4.bb
similarity index 83%
rename from poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_3.32.4.bb
index de1b6e2..44af469 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_3.32.3.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.32.4.bb
@@ -13,8 +13,8 @@
 SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
            file://0002-help-meson.build-disable-the-use-of-yelp.patch \
            "
-SRC_URI[archive.md5sum] = "c4976507bf3de69f27a050ad09531f5a"
-SRC_URI[archive.sha256sum] = "3ccb6859a43b839b714aa425cb185056f1e8604adbaab6a1bc179d1ba641a33f"
+SRC_URI[archive.md5sum] = "6a5eada8a3870ab4d0fcd5168559776f"
+SRC_URI[archive.sha256sum] = "c9a828578301af77ac9f3d3ce253b02f9f3a1561840cc8d74dd5645f92d0a995"
 
 FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
 RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
diff --git a/poky/meta/recipes-gnome/gtk-doc/files/0001-highlight.py-correctly-set-permissions-on-file-to-be.patch b/poky/meta/recipes-gnome/gtk-doc/files/0001-highlight.py-correctly-set-permissions-on-file-to-be.patch
deleted file mode 100644
index bb8f55c..0000000
--- a/poky/meta/recipes-gnome/gtk-doc/files/0001-highlight.py-correctly-set-permissions-on-file-to-be.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 63bc4cd1ce2d918c6566a4e0c7d830713432fc82 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 28 Jun 2019 13:08:24 +0200
-Subject: [PATCH] highlight.py: correctly set permissions on file to be written
-
-Upstream-Status: Backport [https://github.com/GNOME/gtk-doc/commit/12d9a698fb58f3d1a840d3bfc0d15a3a9f57afc1]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- gtkdoc/highlight.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gtkdoc/highlight.py b/gtkdoc/highlight.py
-index 8f6e470..82e11e8 100644
---- a/gtkdoc/highlight.py
-+++ b/gtkdoc/highlight.py
-@@ -47,6 +47,6 @@ def highlight_code(code, lang='c'):
- 
- 
- def append_style_defs(css_file_name):
--    os.chmod(css_file_name, stat.S_IWRITE)
-+    os.chmod(css_file_name, 0o644)
-     with open(css_file_name, 'at', newline='\n', encoding='utf-8') as css:
-         css.write(HTML_FORMATTER.get_style_defs())
diff --git a/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch b/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch
index 5674a38..8c9bc95 100644
--- a/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch
+++ b/poky/meta/recipes-gnome/gtk-doc/files/pkg-config-native.patch
@@ -1,4 +1,4 @@
-From 31254fac614bb6ee28cf6fdd514a9563a5d781a8 Mon Sep 17 00:00:00 2001
+From 9537a7998a220b698b26d926a111bb400ff1ce01 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Mon, 5 Sep 2016 22:25:44 +0100
 Subject: [PATCH] Use native pkg-config when looking for gtk-doc.
diff --git a/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.30.bb b/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.31.bb
similarity index 90%
rename from poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.30.bb
rename to poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.31.bb
index fce0329..4f97ce0 100644
--- a/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.30.bb
+++ b/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.31.bb
@@ -18,13 +18,12 @@
 PACKAGECONFIG[working-scripts] = ",,libxslt-native xmlto-native python3-six python3-pygments"
 PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0"
 
-SRC_URI[archive.md5sum] = "1045ba29ca0693ced2045523407aae4c"
-SRC_URI[archive.sha256sum] = "a4f6448eb838ccd30d76a33b1fd095f81aea361f03b12c7b23df181d21b7069e"
+SRC_URI[archive.md5sum] = "6239713011369a4fbdc7619350403772"
+SRC_URI[archive.sha256sum] = "a51687956d0377ac70904d03fdc73c9e116589b4a01453fa92162442b3657011"
 SRC_URI += "file://0001-Do-not-hardocode-paths-to-perl-python-in-scripts.patch \
            file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \
            file://conditionaltests.patch \
            file://no-clobber.patch \
-           file://0001-highlight.py-correctly-set-permissions-on-file-to-be.patch \
            "
 SRC_URI_append_class-native = " file://pkg-config-native.patch"
 
diff --git a/poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.2.bb b/poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.3.bb
similarity index 73%
rename from poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.2.bb
rename to poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.3.bb
index 58e78a5..e1a1183 100644
--- a/poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.2.bb
+++ b/poky/meta/recipes-gnome/libdazzle/libdazzle_3.32.3.bb
@@ -7,8 +7,8 @@
 
 DEPENDS = "glib-2.0-native glib-2.0 gtk+3"
 
-SRC_URI[archive.md5sum] = "b5c99a8f483a0defe7c7124a3220e412"
-SRC_URI[archive.sha256sum] = "413f8dfb8706760e0c649e2994bd10524ac0736601dd03ad2036293bed3bf141"
+SRC_URI[archive.md5sum] = "b6da085649dcda2795e6980a84667950"
+SRC_URI[archive.sha256sum] = "6c8d9b1514b5f6422107596f4145b89b8f2a99abef6383e086dfcd28c28667e8"
 
 GIR_MESON_OPTION = 'with_introspection'
 
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
index fd90d20..2b6837f 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -6,7 +6,7 @@
 
 LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
 
-SRCREV = "e888ea1d233b2639b87a68e099d18d4e919905df"
+SRCREV = "f632b23a528ed6b4e1fddd774db005c30ab65568"
 SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https \
     file://detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch"
 UPSTREAM_CHECK_COMMITS = "1"
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 60d07f5..fcd1988 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -94,10 +94,14 @@
 
 PACKAGECONFIG[etnaviv] = ""
 PACKAGECONFIG[kmsro] = ""
+PACKAGECONFIG[vc4] = ""
+PACKAGECONFIG[v3d] = ""
 
 GALLIUMDRIVERS = "swrast"
 GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}"
 GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}"
+GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}"
+GALLIUMDRIVERS_append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}"
 
 # radeonsi requires LLVM
 GALLIUMDRIVERS_LLVM33 = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}"
diff --git a/poky/meta/recipes-graphics/mesa/mesa_19.1.1.bb b/poky/meta/recipes-graphics/mesa/mesa_19.1.1.bb
index 1a34a65..1d5d00f 100644
--- a/poky/meta/recipes-graphics/mesa/mesa_19.1.1.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa_19.1.1.bb
@@ -9,6 +9,8 @@
 SRC_URI[md5sum] = "07cd8cd79de28ec1a374ee3a06e47789"
 SRC_URI[sha256sum] = "72114b16b4a84373b2acda060fe2bb1d45ea2598efab3ef2d44bdeda74f15581"
 
+UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
+
 #because we cannot rely on the fact that all apps will use pkgconfig,
 #make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
 do_install_append() {
diff --git a/poky/meta/recipes-graphics/pango/pango_1.44.3.bb b/poky/meta/recipes-graphics/pango/pango_1.44.5.bb
similarity index 83%
rename from poky/meta/recipes-graphics/pango/pango_1.44.3.bb
rename to poky/meta/recipes-graphics/pango/pango_1.44.5.bb
index 1973c63..a143723 100644
--- a/poky/meta/recipes-graphics/pango/pango_1.44.3.bb
+++ b/poky/meta/recipes-graphics/pango/pango_1.44.5.bb
@@ -15,11 +15,9 @@
 
 inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection
 
-SRC_URI += "file://run-ptest \
-            "
-
-SRC_URI[archive.md5sum] = "7f91f1b5883ff848b445ab11ebabcf03"
-SRC_URI[archive.sha256sum] = "290bb100ca5c7025ec3f97332eaf783b76ba1f444110f06ac5ee3285e3e5aece"
+SRC_URI += "file://run-ptest"
+SRC_URI[archive.md5sum] = "b6bf689e3ce4f46b0fd887b64c850ea1"
+SRC_URI[archive.sha256sum] = "8527dfcbeedb4390149b6f94620c0fa64e26046ab85042c2a7556438847d7fc1"
 
 DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi"
 
@@ -38,7 +36,8 @@
 FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}"
 FILES_${PN}-dev += "${libdir}/pango/${LIBV}/modules/*.la"
 
-RDEPENDS_${PN}-ptest += "liberation-fonts cantarell-fonts"
+RDEPENDS_${PN}-ptest += "cantarell-fonts"
+RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-en-us"
 
 RPROVIDES_${PN} += "pango-modules pango-module-indic-lang \
                     pango-module-basic-fc pango-module-arabic-lang"
diff --git a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
index 5c1d7f6..8ca7193 100644
--- a/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
+++ b/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb
@@ -1,10 +1,10 @@
 SUMMARY = "Tools for managing Yocto Project style branched kernels"
 LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=a6c2fa8aef1bda400e2828845ba0d06c"
+LIC_FILES_CHKSUM = "file://git/tools/kgit;beginline=5;endline=9;md5=9c30e971d435e249624278c3e343e501"
 
 DEPENDS = "git-native"
 
-SRCREV = "af1a779f662c81da521e4d602f3c6446547d12a2"
+SRCREV = "bb6df0ef2365689cd3df6f76a8838cddae0d9343"
 PR = "r12"
 PV = "0.2+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/kmod/kmod.inc b/poky/meta/recipes-kernel/kmod/kmod.inc
index e68860f..3344538 100644
--- a/poky/meta/recipes-kernel/kmod/kmod.inc
+++ b/poky/meta/recipes-kernel/kmod/kmod.inc
@@ -20,6 +20,7 @@
 
 SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git \
            file://depmod-search.conf \
+           file://0001-build-Stop-using-dolt.patch \
            file://avoid_parallel_tests.patch \
           "
 
@@ -28,14 +29,8 @@
 EXTRA_AUTORECONF += "--install --symlink"
 EXTRA_OECONF +=" --enable-tools --with-zlib"
 
-CACHED_CONFIGUREVARS += "ac_cv_path_DOLT_BASH='/usr/bin/env bash'"
-
 PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
 PACKAGECONFIG[logging] = " --enable-logging,--disable-logging"
 PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native"
 
 GTKDOC_DOCDIR = "${S}/libkmod/docs"
-
-do_configure_append () {
-	sed -i 's#}libtool#}${TARGET_SYS}-libtool#' ${B}/doltlibtool
-}
diff --git a/poky/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch b/poky/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch
new file mode 100644
index 0000000..c915ad5
--- /dev/null
+++ b/poky/meta/recipes-kernel/kmod/kmod/0001-build-Stop-using-dolt.patch
@@ -0,0 +1,28 @@
+From f8b8d7b330433511d19a936ddfc7b7d1af5490b5 Mon Sep 17 00:00:00 2001
+From: Adrian Bunk <bunk@kernel.org>
+Date: Wed, 20 Feb 2019 14:22:04 +0200
+Subject: build: Stop using dolt
+
+This does regress "make -12" from 0.7s to 0.9s on my
+Coffee Lake machine, but even on slower hardware this
+will not amount to a noticable slowdown.
+
+On the other hand using dolt can create problems for
+people doing cross-compilation, e.g. Yocto has two
+hacks just for dolt in kmod:
+https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/recipes-kernel/kmod/kmod.inc?id=a17abae00785c76cfffe5381a22fb2c86b982e82
+
+Signed-off-by: Adrian Bunk <bunk@kernel.org>
+Upstream-Status: Backport
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -17,7 +17,6 @@ AM_MAINTAINER_MODE([enable])
+ AM_INIT_AUTOMAKE([check-news foreign 1.11 silent-rules tar-pax no-dist-gzip dist-xz subdir-objects color-tests parallel-tests])
+ AM_SILENT_RULES([yes])
+ LT_INIT([disable-static pic-only])
+-DOLT
+ 
+ AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])])
+ AS_IF([test "x$enable_largefile" = "xno"], [AC_MSG_ERROR([--disable-largefile is not supported by kmod])])
+
diff --git a/poky/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch b/poky/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch
index 990c338..04a8204 100644
--- a/poky/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch
+++ b/poky/meta/recipes-kernel/kmod/kmod/avoid_parallel_tests.patch
@@ -20,7 +20,7 @@
 index ee72283..60980c0 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -14,7 +14,7 @@ AC_USE_SYSTEM_EXTENSIONS
+@@ -14,8 +14,8 @@ AC_USE_SYSTEM_EXTENSIONS
  AC_SYS_LARGEFILE
  AC_PREFIX_DEFAULT([/usr])
  AM_MAINTAINER_MODE([enable])
@@ -28,4 +28,5 @@
 +AM_INIT_AUTOMAKE([check-news foreign 1.11 silent-rules tar-pax no-dist-gzip dist-xz subdir-objects color-tests serial-tests])
  AM_SILENT_RULES([yes])
  LT_INIT([disable-static pic-only])
- DOLT
+
+ AS_IF([test "x$enable_static" = "xyes"], [AC_MSG_ERROR([--enable-static is not supported by kmod])])
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190618.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb
similarity index 99%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190618.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb
index 9afaad7..5186388 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190618.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20190815.bb
@@ -123,7 +123,7 @@
                     file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
                     file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
                     file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
-                    file://WHENCE;md5=55814698bbae7c7dd40c9fbde91af0a8 \
+                    file://WHENCE;md5=37a01e379219d1e06dbccfa90a8fc0ad \
                     "
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
@@ -192,7 +192,7 @@
 
 PE = "1"
 
-SRCREV = "0731d06eadc7d9c52e58f354727101813b8da6ea"
+SRCREV = "07b925b450bfb4cf3e141c612ec5b104658cd020"
 
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git"
 
diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
index 5ec5929..3900489 100644
--- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -65,7 +65,6 @@
     )
 
     # then drop all but the needed Makefiles/Kconfig files
-    rm -rf $kerneldir/build/Documentation
     rm -rf $kerneldir/build/scripts
     rm -rf $kerneldir/build/include
 
@@ -205,11 +204,12 @@
 	    cp -a --parents arch/x86/purgatory/sha256.c $kerneldir/build/ 2>/dev/null || :
 
 	    cp -a --parents arch/x86/purgatory/stack.S $kerneldir/build/
-	    cp -a --parents arch/x86/purgatory/string.c $kerneldir/build/
+	    cp -a --parents arch/x86/purgatory/string.c $kerneldir/build/ 2>/dev/null || :
 	    cp -a --parents arch/x86/purgatory/setup-x86_64.S $kerneldir/build/
 	    cp -a --parents arch/x86/purgatory/entry64.S $kerneldir/build/
 	    cp -a --parents arch/x86/boot/string.h $kerneldir/build/
 	    cp -a --parents arch/x86/boot/string.c $kerneldir/build/
+	    cp -a --parents arch/x86/boot/compressed/string.c $kerneldir/build/ 2>/dev/null || :
 	    cp -a --parents arch/x86/boot/ctype.h $kerneldir/build/
 	fi
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 96117cc..2268faf51 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -46,7 +46,7 @@
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc"
 KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
index 4013a0c..f431f11 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_4.19.bb
@@ -12,7 +12,7 @@
 }
 
 SRCREV_machine ?= "ca2e3322f4c5678eaef6434c808d0842c805d74d"
-SRCREV_meta ?= "960be4218436fbbb3500e019f7abf02fa94e6aac"
+SRCREV_meta ?= "20a6158aa35dbf11819382ef1eeb28915afea765"
 
 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-4.19;destsuffix=${KMETA}"
@@ -38,7 +38,7 @@
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
index 9e822f2..22f3bf1 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
@@ -11,8 +11,8 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "9c1e84c9b81b6bf1df55f26f2e0517266c37f7eb"
-SRCREV_meta ?= "c2e34d9ab2894edc6abc6be9ac89907bf4348447"
+SRCREV_machine ?= "e6cb812b5532630b6fc6dfd7778d57a4907d3180"
+SRCREV_meta ?= "7f6e97c357746382d4339e7e0463637e715acd4b"
 
 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.0;destsuffix=${KMETA}"
@@ -38,7 +38,7 @@
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
index 4759d80..2255a7b 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_4.19.bb
@@ -17,7 +17,7 @@
 
 SRCREV_machine_qemuarm ?= "b5a2efa31290f31384971494031285d394635938"
 SRCREV_machine ?= "4ec6f255163da37a4c83528e5835b6b9baccee63"
-SRCREV_meta ?= "960be4218436fbbb3500e019f7abf02fa94e6aac"
+SRCREV_meta ?= "20a6158aa35dbf11819382ef1eeb28915afea765"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
index a171965..33672c6 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
@@ -15,9 +15,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine_qemuarm ?= "fabee455f397ba8054f35a3ad5f2250bbad93bef"
-SRCREV_machine ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
-SRCREV_meta ?= "c2e34d9ab2894edc6abc6be9ac89907bf4348447"
+SRCREV_machine_qemuarm ?= "b9001287984b0066814c8739f38d629de73739b7"
+SRCREV_machine ?= "55dd15336b7301b686a0c183f5372b49c1003d03"
+SRCREV_meta ?= "7f6e97c357746382d4339e7e0463637e715acd4b"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb b/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
index cee8af7..8f5f711 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_4.19.bb
@@ -19,7 +19,7 @@
 SRCREV_machine_qemux86-64 ?= "4ec6f255163da37a4c83528e5835b6b9baccee63"
 SRCREV_machine_qemumips64 ?= "ca47368b698795cd5cada84dbfcceda1f47da1aa"
 SRCREV_machine ?= "4ec6f255163da37a4c83528e5835b6b9baccee63"
-SRCREV_meta ?= "960be4218436fbbb3500e019f7abf02fa94e6aac"
+SRCREV_meta ?= "20a6158aa35dbf11819382ef1eeb28915afea765"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.19;destsuffix=${KMETA} \
@@ -43,7 +43,7 @@
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb
index 0e4a372..887e88e 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.0.bb
@@ -12,16 +12,16 @@
 KBRANCH_qemux86-64 ?= "v5.0/standard/base"
 KBRANCH_qemumips64 ?= "v5.0/standard/mti-malta64"
 
-SRCREV_machine_qemuarm ?= "9161b2fa2f1cec0ba02976c389c788445858e0de"
-SRCREV_machine_qemuarm64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
-SRCREV_machine_qemumips ?= "7de9b8f0db98e51a666477c8e2b64f1964b45410"
-SRCREV_machine_qemuppc ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
+SRCREV_machine_qemuarm ?= "d1ed980ad989252d42386c8bc63b2f5f11985ea4"
+SRCREV_machine_qemuarm64 ?= "55dd15336b7301b686a0c183f5372b49c1003d03"
+SRCREV_machine_qemumips ?= "1520e78195e64f27be46a46a8d6711c8470fb083"
+SRCREV_machine_qemuppc ?= "55dd15336b7301b686a0c183f5372b49c1003d03"
 SRCREV_machine_qemuriscv64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
-SRCREV_machine_qemux86 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
-SRCREV_machine_qemux86-64 ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
-SRCREV_machine_qemumips64 ?= "5a8b27bcc0b16077ab8edfcd3fb25c80dc2c652e"
-SRCREV_machine ?= "00638cdd8f92869a0f89ebe3289fdbd856ba9458"
-SRCREV_meta ?= "c2e34d9ab2894edc6abc6be9ac89907bf4348447"
+SRCREV_machine_qemux86 ?= "55dd15336b7301b686a0c183f5372b49c1003d03"
+SRCREV_machine_qemux86-64 ?= "55dd15336b7301b686a0c183f5372b49c1003d03"
+SRCREV_machine_qemumips64 ?= "9d4105b32cf123a861bc754377d2f2e156278a7e"
+SRCREV_machine ?= "55dd15336b7301b686a0c183f5372b49c1003d03"
+SRCREV_meta ?= "7f6e97c357746382d4339e7e0463637e715acd4b"
 
 # remap qemuarm to qemuarma15 for the 5.0 kernel
 # KMACHINE_qemuarm ?= "qemuarma15"
@@ -47,7 +47,7 @@
 # Functionality flags
 KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
 KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
 KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.1.4.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.bb
similarity index 97%
rename from poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.1.4.bb
rename to poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.bb
index 884973d..2d69d8b 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.1.4.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.2.bb
@@ -26,8 +26,8 @@
 SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
            file://mips64_cpu_detection.patch \
            "
-SRC_URI[md5sum] = "5307931aeb7aaee5e1509d9996040661"
-SRC_URI[sha256sum] = "f1f049a82fcfbf156564e73a3935d7e750891fab2abf302e735104fd4050a7e1"
+SRC_URI[md5sum] = "fb33a9110251873002869664686b2a3f"
+SRC_URI[sha256sum] = "023f10831a97ad93d798f53a3640e55cd564abfeba807ecbe8524dac4fedecd5"
 
 # Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
 ARM_INSTRUCTION_SET_armv4 = "arm"
diff --git a/poky/meta/recipes-rt/rt-tests/rt-tests.inc b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
index 84a8f67..227eb99 100644
--- a/poky/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -3,8 +3,8 @@
 PE = "1"
 
 SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git"
-# 1.2 and 1.3 and 1.4 seem to be development versions
-UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(?!1\.2)(?!1\.3)(?!1\.4)(\d+(\.\d+)+))"
+# 1.2 to 1.5 seem to be development versions
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(?!1\.[2-5])(\d+(\.\d+)+))"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.24.3.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.24.3.bb
index c42c3de..0e5ee5b 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.24.3.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.24.3.bb
@@ -88,6 +88,7 @@
 EXTRA_OECMAKE_append_armv6 = " -DENABLE_JIT=OFF "
 EXTRA_OECMAKE_append_armv4 = " -DENABLE_JIT=OFF "
 
+EXTRA_OECMAKE_append_mipsarchn32 = " -DUSE_LD_GOLD=OFF "
 EXTRA_OECMAKE_append_powerpc = " -DUSE_LD_GOLD=OFF "
 
 # JIT not supported on MIPS either
diff --git a/poky/meta/recipes-support/gnutls/libtasn1_4.14.bb b/poky/meta/recipes-support/gnutls/libtasn1_4.14.bb
index cb7fed4..7158e48 100644
--- a/poky/meta/recipes-support/gnutls/libtasn1_4.14.bb
+++ b/poky/meta/recipes-support/gnutls/libtasn1_4.14.bb
@@ -20,4 +20,4 @@
 
 inherit autotools texinfo lib_package gtk-doc
 
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch b/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch
deleted file mode 100644
index 589c4d3..0000000
--- a/poky/meta/recipes-support/libffi/libffi/0001-New-RISC-V-port-281.patch
+++ /dev/null
@@ -1,827 +0,0 @@
-From 8ac73103bf12ce4f776940cb17f3ced15a362f23 Mon Sep 17 00:00:00 2001
-From: Stef O'Rear <sorear2@gmail.com>
-Date: Sun, 11 Mar 2018 05:55:15 -0700
-Subject: [PATCH] New RISC-V port (#281)
-
-* Add RISC-V support
-
-This patch adds support for the RISC-V architecture (https://riscv.org).
-
-This patch has been tested using QEMU user-mode emulation and GCC 7.2.0
-in the following configurations:
-
-* -march=rv32imac -mabi=ilp32
-* -march=rv32g -mabi=ilp32d
-* -march=rv64imac -mabi=lp64
-* -march=rv64g -mabi=lp64d
-
-The ABI currently can be found at
-https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md .
-
-* Add RISC-V to README
-
-* RISC-V: fix configure.host
-
-Upstream-Status: Backport [https://github.com/libffi/libffi/commit/3840d49aaa831d649b1597518a2903dfed0d57f3]
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
----
- Makefile.am           |   4 +
- configure.ac          |   5 +
- src/riscv/ffi.c       | 445 ++++++++++++++++++++++++++++++++++++++++++
- src/riscv/ffitarget.h |  68 +++++++
- src/riscv/sysv.S      | 214 ++++++++++++++++++++
- 5 files changed, 736 insertions(+)
- create mode 100644 src/riscv/ffi.c
- create mode 100644 src/riscv/ffitarget.h
- create mode 100644 src/riscv/sysv.S
-
-diff --git a/Makefile.am b/Makefile.am
-index 0e40451..3837650 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -32,6 +32,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 ChangeLog.libgcj			\
- 	 src/powerpc/asm.h src/powerpc/aix.S src/powerpc/darwin.S	\
- 	 src/powerpc/aix_closure.S src/powerpc/darwin_closure.S		\
- 	 src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h		\
-+	 src/riscv/ffi.c src/riscv/ffitarget.h src/riscv/sysv.S		\
- 	 src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h		\
- 	 src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h src/sh64/ffi.c	\
- 	 src/sh64/sysv.S src/sh64/ffitarget.h src/sparc/v8.S		\
-@@ -122,6 +123,9 @@ endif
- if MIPS
- nodist_libffi_la_SOURCES += src/mips/ffi.c src/mips/o32.S src/mips/n32.S
- endif
-+if RISCV
-+nodist_libffi_la_SOURCES += src/riscv/ffi.c src/riscv/sysv.S
-+endif
- if BFIN
- nodist_libffi_la_SOURCES += src/bfin/ffi.c src/bfin/sysv.S
- endif
-diff --git a/configure.ac b/configure.ac
-index ce30853..33375aa 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -226,6 +226,10 @@ case "$host" in
- 	TARGET=MIPS; TARGETDIR=mips
- 	;;
- 
-+  riscv*-*-*)
-+	TARGET=RISCV; TARGETDIR=riscv
-+	;;
-+
-   nios2*-linux*)
- 	TARGET=NIOS2; TARGETDIR=nios2
- 	;;
-@@ -298,6 +302,7 @@ if test $TARGETDIR = unknown; then
- fi
- 
- AM_CONDITIONAL(MIPS, test x$TARGET = xMIPS)
-+AM_CONDITIONAL(RISCV, test x$TARGET = xRISCV)
- AM_CONDITIONAL(BFIN, test x$TARGET = xBFIN)
- AM_CONDITIONAL(SPARC, test x$TARGET = xSPARC)
- AM_CONDITIONAL(X86, test x$TARGET = xX86)
-diff --git a/src/riscv/ffi.c b/src/riscv/ffi.c
-new file mode 100644
-index 0000000..b744fdd
---- /dev/null
-+++ b/src/riscv/ffi.c
-@@ -0,0 +1,445 @@
-+/* -----------------------------------------------------------------------
-+   ffi.c - Copyright (c) 2015 Michael Knyszek <mknyszek@berkeley.edu>
-+                         2015 Andrew Waterman <waterman@cs.berkeley.edu>
-+                         2018 Stef O'Rear <sorear2@gmail.com>
-+   Based on MIPS N32/64 port
-+
-+   RISC-V Foreign Function Interface
-+
-+   Permission is hereby granted, free of charge, to any person obtaining
-+   a copy of this software and associated documentation files (the
-+   ``Software''), to deal in the Software without restriction, including
-+   without limitation the rights to use, copy, modify, merge, publish,
-+   distribute, sublicense, and/or sell copies of the Software, and to
-+   permit persons to whom the Software is furnished to do so, subject to
-+   the following conditions:
-+
-+   The above copyright notice and this permission notice shall be included
-+   in all copies or substantial portions of the Software.
-+
-+   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 OR COPYRIGHT
-+   HOLDERS 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.
-+   ----------------------------------------------------------------------- */
-+
-+#include <ffi.h>
-+#include <ffi_common.h>
-+
-+#include <stdlib.h>
-+#include <stdint.h>
-+
-+#if __riscv_float_abi_double
-+#define ABI_FLEN 64
-+#define ABI_FLOAT double
-+#elif __riscv_float_abi_single
-+#define ABI_FLEN 32
-+#define ABI_FLOAT float
-+#endif
-+
-+#define NARGREG 8
-+#define STKALIGN 16
-+#define MAXCOPYARG (2 * sizeof(double))
-+
-+typedef struct call_context
-+{
-+#if ABI_FLEN
-+    ABI_FLOAT fa[8];
-+#endif
-+    size_t a[8];
-+    /* used by the assembly code to in-place construct its own stack frame */
-+    char frame[16];
-+} call_context;
-+
-+typedef struct call_builder
-+{
-+    call_context *aregs;
-+    int used_integer;
-+    int used_float;
-+    size_t *used_stack;
-+} call_builder;
-+
-+/* integer (not pointer) less than ABI XLEN */
-+/* FFI_TYPE_INT does not appear to be used */
-+#if __SIZEOF_POINTER__ == 8
-+#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT64)
-+#else
-+#define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT32)
-+#endif
-+
-+#if ABI_FLEN
-+typedef struct {
-+    char as_elements, type1, offset2, type2;
-+} float_struct_info;
-+
-+#if ABI_FLEN >= 64
-+#define IS_FLOAT(type) ((type) >= FFI_TYPE_FLOAT && (type) <= FFI_TYPE_DOUBLE)
-+#else
-+#define IS_FLOAT(type) ((type) == FFI_TYPE_FLOAT)
-+#endif
-+
-+static ffi_type **flatten_struct(ffi_type *in, ffi_type **out, ffi_type **out_end) {
-+    int i;
-+    if (out == out_end) return out;
-+    if (in->type != FFI_TYPE_STRUCT) {
-+        *(out++) = in;
-+    } else {
-+        for (i = 0; in->elements[i]; i++)
-+            out = flatten_struct(in->elements[i], out, out_end);
-+    }
-+    return out;
-+}
-+
-+/* Structs with at most two fields after flattening, one of which is of
-+   floating point type, are passed in multiple registers if sufficient
-+   registers are available. */
-+static float_struct_info struct_passed_as_elements(call_builder *cb, ffi_type *top) {
-+    float_struct_info ret = {0, 0, 0, 0};
-+    ffi_type *fields[3];
-+    int num_floats, num_ints;
-+    int num_fields = flatten_struct(top, fields, fields + 3) - fields;
-+
-+    if (num_fields == 1) {
-+        if (IS_FLOAT(fields[0]->type)) {
-+            ret.as_elements = 1;
-+            ret.type1 = fields[0]->type;
-+        }
-+    } else if (num_fields == 2) {
-+        num_floats = IS_FLOAT(fields[0]->type) + IS_FLOAT(fields[1]->type);
-+        num_ints = IS_INT(fields[0]->type) + IS_INT(fields[1]->type);
-+        if (num_floats == 0 || num_floats + num_ints != 2)
-+            return ret;
-+        if (cb->used_float + num_floats > NARGREG || cb->used_integer + (2 - num_floats) > NARGREG)
-+            return ret;
-+        if (!IS_FLOAT(fields[0]->type) && !IS_FLOAT(fields[1]->type))
-+            return ret;
-+
-+        ret.type1 = fields[0]->type;
-+        ret.type2 = fields[1]->type;
-+        ret.offset2 = ALIGN(fields[0]->size, fields[1]->alignment);
-+        ret.as_elements = 1;
-+    }
-+
-+    return ret;
-+}
-+#endif
-+
-+/* allocates a single register, float register, or XLEN-sized stack slot to a datum */
-+static void marshal_atom(call_builder *cb, int type, void *data) {
-+    size_t value = 0;
-+    switch (type) {
-+        case FFI_TYPE_UINT8: value = *(uint8_t *)data; break;
-+        case FFI_TYPE_SINT8: value = *(int8_t *)data; break;
-+        case FFI_TYPE_UINT16: value = *(uint16_t *)data; break;
-+        case FFI_TYPE_SINT16: value = *(int16_t *)data; break;
-+        /* 32-bit quantities are always sign-extended in the ABI */
-+        case FFI_TYPE_UINT32: value = *(int32_t *)data; break;
-+        case FFI_TYPE_SINT32: value = *(int32_t *)data; break;
-+#if __SIZEOF_POINTER__ == 8
-+        case FFI_TYPE_UINT64: value = *(uint64_t *)data; break;
-+        case FFI_TYPE_SINT64: value = *(int64_t *)data; break;
-+#endif
-+        case FFI_TYPE_POINTER: value = *(size_t *)data; break;
-+
-+        /* float values may be recoded in an implementation-defined way
-+           by hardware conforming to 2.1 or earlier, so use asm to
-+           reinterpret floats as doubles */
-+#if ABI_FLEN >= 32
-+        case FFI_TYPE_FLOAT:
-+            asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(float *)data));
-+            return;
-+#endif
-+#if ABI_FLEN >= 64
-+        case FFI_TYPE_DOUBLE:
-+            asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(double *)data));
-+            return;
-+#endif
-+        default: FFI_ASSERT(0); break;
-+    }
-+
-+    if (cb->used_integer == NARGREG) {
-+        *cb->used_stack++ = value;
-+    } else {
-+        cb->aregs->a[cb->used_integer++] = value;
-+    }
-+}
-+
-+static void unmarshal_atom(call_builder *cb, int type, void *data) {
-+    size_t value;
-+    switch (type) {
-+#if ABI_FLEN >= 32
-+        case FFI_TYPE_FLOAT:
-+            asm("" : "=f"(*(float *)data) : "0"(cb->aregs->fa[cb->used_float++]));
-+            return;
-+#endif
-+#if ABI_FLEN >= 64
-+        case FFI_TYPE_DOUBLE:
-+            asm("" : "=f"(*(double *)data) : "0"(cb->aregs->fa[cb->used_float++]));
-+            return;
-+#endif
-+    }
-+
-+    if (cb->used_integer == NARGREG) {
-+        value = *cb->used_stack++;
-+    } else {
-+        value = cb->aregs->a[cb->used_integer++];
-+    }
-+
-+    switch (type) {
-+        case FFI_TYPE_UINT8: *(uint8_t *)data = value; break;
-+        case FFI_TYPE_SINT8: *(uint8_t *)data = value; break;
-+        case FFI_TYPE_UINT16: *(uint16_t *)data = value; break;
-+        case FFI_TYPE_SINT16: *(uint16_t *)data = value; break;
-+        case FFI_TYPE_UINT32: *(uint32_t *)data = value; break;
-+        case FFI_TYPE_SINT32: *(uint32_t *)data = value; break;
-+#if __SIZEOF_POINTER__ == 8
-+        case FFI_TYPE_UINT64: *(uint64_t *)data = value; break;
-+        case FFI_TYPE_SINT64: *(uint64_t *)data = value; break;
-+#endif
-+        case FFI_TYPE_POINTER: *(size_t *)data = value; break;
-+        default: FFI_ASSERT(0); break;
-+    }
-+}
-+
-+/* adds an argument to a call, or a not by reference return value */
-+static void marshal(call_builder *cb, ffi_type *type, int var, void *data) {
-+    size_t realign[2];
-+
-+#if ABI_FLEN
-+    if (!var && type->type == FFI_TYPE_STRUCT) {
-+        float_struct_info fsi = struct_passed_as_elements(cb, type);
-+        if (fsi.as_elements) {
-+            marshal_atom(cb, fsi.type1, data);
-+            if (fsi.offset2)
-+                marshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2);
-+            return;
-+        }
-+    }
-+
-+    if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) {
-+        marshal_atom(cb, type->type, data);
-+        return;
-+    }
-+#endif
-+
-+    if (type->size > 2 * __SIZEOF_POINTER__) {
-+        /* pass by reference */
-+        marshal_atom(cb, FFI_TYPE_POINTER, &data);
-+    } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) {
-+        marshal_atom(cb, type->type, data);
-+    } else {
-+        /* overlong integers, soft-float floats, and structs without special
-+           float handling are treated identically from this point on */
-+
-+        /* variadics are aligned even in registers */
-+        if (type->alignment > __SIZEOF_POINTER__) {
-+            if (var)
-+                cb->used_integer = ALIGN(cb->used_integer, 2);
-+            cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__);
-+        }
-+
-+        memcpy(realign, data, type->size);
-+        if (type->size > 0)
-+            marshal_atom(cb, FFI_TYPE_POINTER, realign);
-+        if (type->size > __SIZEOF_POINTER__)
-+            marshal_atom(cb, FFI_TYPE_POINTER, realign + 1);
-+    }
-+}
-+
-+/* for arguments passed by reference returns the pointer, otherwise the arg is copied (up to MAXCOPYARG bytes) */
-+static void *unmarshal(call_builder *cb, ffi_type *type, int var, void *data) {
-+    size_t realign[2];
-+    void *pointer;
-+
-+#if ABI_FLEN
-+    if (!var && type->type == FFI_TYPE_STRUCT) {
-+        float_struct_info fsi = struct_passed_as_elements(cb, type);
-+        if (fsi.as_elements) {
-+            unmarshal_atom(cb, fsi.type1, data);
-+            if (fsi.offset2)
-+                unmarshal_atom(cb, fsi.type2, ((char*)data) + fsi.offset2);
-+            return data;
-+        }
-+    }
-+
-+    if (!var && cb->used_float < NARGREG && IS_FLOAT(type->type)) {
-+        unmarshal_atom(cb, type->type, data);
-+        return data;
-+    }
-+#endif
-+
-+    if (type->size > 2 * __SIZEOF_POINTER__) {
-+        /* pass by reference */
-+        unmarshal_atom(cb, FFI_TYPE_POINTER, (char*)&pointer);
-+        return pointer;
-+    } else if (IS_INT(type->type) || type->type == FFI_TYPE_POINTER) {
-+        unmarshal_atom(cb, type->type, data);
-+        return data;
-+    } else {
-+        /* overlong integers, soft-float floats, and structs without special
-+           float handling are treated identically from this point on */
-+
-+        /* variadics are aligned even in registers */
-+        if (type->alignment > __SIZEOF_POINTER__) {
-+            if (var)
-+                cb->used_integer = ALIGN(cb->used_integer, 2);
-+            cb->used_stack = (size_t *)ALIGN(cb->used_stack, 2*__SIZEOF_POINTER__);
-+        }
-+
-+        if (type->size > 0)
-+            unmarshal_atom(cb, FFI_TYPE_POINTER, realign);
-+        if (type->size > __SIZEOF_POINTER__)
-+            unmarshal_atom(cb, FFI_TYPE_POINTER, realign + 1);
-+        memcpy(data, realign, type->size);
-+        return data;
-+    }
-+}
-+
-+static int passed_by_ref(call_builder *cb, ffi_type *type, int var) {
-+#if ABI_FLEN
-+    if (!var && type->type == FFI_TYPE_STRUCT) {
-+        float_struct_info fsi = struct_passed_as_elements(cb, type);
-+        if (fsi.as_elements) return 0;
-+    }
-+#endif
-+
-+    return type->size > 2 * __SIZEOF_POINTER__;
-+}
-+
-+/* Perform machine dependent cif processing */
-+ffi_status ffi_prep_cif_machdep(ffi_cif *cif) {
-+    cif->riscv_nfixedargs = cif->nargs;
-+    return FFI_OK;
-+}
-+
-+/* Perform machine dependent cif processing when we have a variadic function */
-+
-+ffi_status ffi_prep_cif_machdep_var(ffi_cif *cif, unsigned int nfixedargs, unsigned int ntotalargs) {
-+    cif->riscv_nfixedargs = nfixedargs;
-+    return FFI_OK;
-+}
-+
-+/* Low level routine for calling functions */
-+extern void ffi_call_asm(void *stack, struct call_context *regs, void (*fn)(void)) FFI_HIDDEN;
-+
-+void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue)
-+{
-+    /* this is a conservative estimate, assuming a complex return value and
-+       that all remaining arguments are long long / __int128 */
-+    size_t arg_bytes = cif->nargs <= 3 ? 0 :
-+        ALIGN(2 * sizeof(size_t) * (cif->nargs - 3), STKALIGN);
-+    size_t rval_bytes = 0;
-+    if (rvalue == NULL && cif->rtype->size > 2*__SIZEOF_POINTER__)
-+        rval_bytes = ALIGN(cif->rtype->size, STKALIGN);
-+    size_t alloc_size = arg_bytes + rval_bytes + sizeof(call_context);
-+
-+    /* the assembly code will deallocate all stack data at lower addresses
-+       than the argument region, so we need to allocate the frame and the
-+       return value after the arguments in a single allocation */
-+    size_t alloc_base;
-+    /* Argument region must be 16-byte aligned */
-+    if (_Alignof(max_align_t) >= STKALIGN) {
-+        /* since sizeof long double is normally 16, the compiler will
-+           guarantee alloca alignment to at least that much */
-+        alloc_base = (size_t)alloca(alloc_size);
-+    } else {
-+        alloc_base = ALIGN(alloca(alloc_size + STKALIGN - 1), STKALIGN);
-+    }
-+
-+    if (rval_bytes)
-+        rvalue = (void*)(alloc_base + arg_bytes);
-+
-+    call_builder cb;
-+    cb.used_float = cb.used_integer = 0;
-+    cb.aregs = (call_context*)(alloc_base + arg_bytes + rval_bytes);
-+    cb.used_stack = (void*)alloc_base;
-+
-+    int return_by_ref = passed_by_ref(&cb, cif->rtype, 0);
-+    if (return_by_ref)
-+        marshal(&cb, &ffi_type_pointer, 0, &rvalue);
-+
-+    int i;
-+    for (i = 0; i < cif->nargs; i++)
-+        marshal(&cb, cif->arg_types[i], i >= cif->riscv_nfixedargs, avalue[i]);
-+
-+    ffi_call_asm((void*)alloc_base, cb.aregs, fn);
-+
-+    cb.used_float = cb.used_integer = 0;
-+    if (!return_by_ref && rvalue)
-+        unmarshal(&cb, cif->rtype, 0, rvalue);
-+}
-+
-+extern void ffi_closure_asm(void) FFI_HIDDEN;
-+
-+ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void (*fun)(ffi_cif*,void*,void**,void*), void *user_data, void *codeloc)
-+{
-+    uint32_t *tramp = (uint32_t *) &closure->tramp[0];
-+    uint64_t fn = (uint64_t) (uintptr_t) ffi_closure_asm;
-+
-+    if (cif->abi <= FFI_FIRST_ABI || cif->abi >= FFI_LAST_ABI)
-+        return FFI_BAD_ABI;
-+
-+    /* we will call ffi_closure_inner with codeloc, not closure, but as long
-+       as the memory is readable it should work */
-+
-+    tramp[0] = 0x00000317; /* auipc t1, 0 (i.e. t0 <- codeloc) */
-+#if __SIZEOF_POINTER__ == 8
-+    tramp[1] = 0x01033383; /* ld t2, 16(t1) */
-+#else
-+    tramp[1] = 0x01032383; /* lw t2, 16(t1) */
-+#endif
-+    tramp[2] = 0x00038067; /* jr t2 */
-+    tramp[3] = 0x00000013; /* nop */
-+    tramp[4] = fn;
-+    tramp[5] = fn >> 32;
-+
-+    closure->cif = cif;
-+    closure->fun = fun;
-+    closure->user_data = user_data;
-+
-+    __builtin___clear_cache(codeloc, codeloc + FFI_TRAMPOLINE_SIZE);
-+
-+    return FFI_OK;
-+}
-+
-+/* Called by the assembly code with aregs pointing to saved argument registers
-+   and stack pointing to the stacked arguments.  Return values passed in
-+   registers will be reloaded from aregs. */
-+void FFI_HIDDEN ffi_closure_inner(size_t *stack, call_context *aregs, ffi_closure *closure) {
-+    ffi_cif *cif = closure->cif;
-+    void **avalue = alloca(cif->nargs * sizeof(void*));
-+    /* storage for arguments which will be copied by unmarshal().  We could
-+       theoretically avoid the copies in many cases and use at most 128 bytes
-+       of memory, but allocating disjoint storage for each argument is
-+       simpler. */
-+    char *astorage = alloca(cif->nargs * MAXCOPYARG);
-+    void *rvalue;
-+    call_builder cb;
-+    int return_by_ref;
-+    int i;
-+
-+    cb.aregs = aregs;
-+    cb.used_integer = cb.used_float = 0;
-+    cb.used_stack = stack;
-+
-+    return_by_ref = passed_by_ref(&cb, cif->rtype, 0);
-+    if (return_by_ref)
-+        unmarshal(&cb, &ffi_type_pointer, 0, &rvalue);
-+    else
-+        rvalue = alloca(cif->rtype->size);
-+
-+    for (i = 0; i < cif->nargs; i++)
-+        avalue[i] = unmarshal(&cb, cif->arg_types[i],
-+            i >= cif->riscv_nfixedargs, astorage + i*MAXCOPYARG);
-+
-+    (closure->fun)(cif, rvalue, avalue, closure->user_data);
-+
-+    if (!return_by_ref && cif->rtype->type != FFI_TYPE_VOID) {
-+        cb.used_integer = cb.used_float = 0;
-+        marshal(&cb, cif->rtype, 0, rvalue);
-+    }
-+}
-diff --git a/src/riscv/ffitarget.h b/src/riscv/ffitarget.h
-new file mode 100644
-index 0000000..fcaa899
---- /dev/null
-+++ b/src/riscv/ffitarget.h
-@@ -0,0 +1,68 @@
-+/* -----------------------------------------------------------------*-C-*-
-+   ffitarget.h - 2014 Michael Knyszek
-+
-+   Target configuration macros for RISC-V.
-+
-+   Permission is hereby granted, free of charge, to any person obtaining
-+   a copy of this software and associated documentation files (the
-+   ``Software''), to deal in the Software without restriction, including
-+   without limitation the rights to use, copy, modify, merge, publish,
-+   distribute, sublicense, and/or sell copies of the Software, and to
-+   permit persons to whom the Software is furnished to do so, subject to
-+   the following conditions:
-+
-+   The above copyright notice and this permission notice shall be included
-+   in all copies or substantial portions of the Software.
-+
-+   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 OR COPYRIGHT
-+   HOLDERS 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.
-+
-+   ----------------------------------------------------------------------- */
-+
-+#ifndef LIBFFI_TARGET_H
-+#define LIBFFI_TARGET_H
-+
-+#ifndef LIBFFI_H
-+#error "Please do not include ffitarget.h directly into your source.  Use ffi.h instead."
-+#endif
-+
-+#ifndef __riscv
-+#error "libffi was configured for a RISC-V target but this does not appear to be a RISC-V compiler."
-+#endif
-+
-+#ifndef LIBFFI_ASM
-+
-+typedef unsigned long ffi_arg;
-+typedef   signed long ffi_sarg;
-+
-+/* FFI_UNUSED_NN and riscv_unused are to maintain ABI compatibility with a
-+   distributed Berkeley patch from 2014, and can be removed at SONAME bump */
-+typedef enum ffi_abi {
-+    FFI_FIRST_ABI = 0,
-+    FFI_SYSV,
-+    FFI_UNUSED_1,
-+    FFI_UNUSED_2,
-+    FFI_UNUSED_3,
-+    FFI_LAST_ABI,
-+
-+    FFI_DEFAULT_ABI = FFI_SYSV
-+} ffi_abi;
-+
-+#endif /* LIBFFI_ASM */
-+
-+/* ---- Definitions for closures ----------------------------------------- */
-+
-+#define FFI_CLOSURES 1
-+#define FFI_TRAMPOLINE_SIZE 24
-+#define FFI_NATIVE_RAW_API 0
-+#define FFI_EXTRA_CIF_FIELDS unsigned riscv_nfixedargs; unsigned riscv_unused;
-+#define FFI_TARGET_SPECIFIC_VARIADIC
-+
-+#endif
-+
-diff --git a/src/riscv/sysv.S b/src/riscv/sysv.S
-new file mode 100644
-index 0000000..2d09865
---- /dev/null
-+++ b/src/riscv/sysv.S
-@@ -0,0 +1,214 @@
-+/* -----------------------------------------------------------------------
-+   ffi.c - Copyright (c) 2015 Michael Knyszek <mknyszek@berkeley.edu>
-+                         2015 Andrew Waterman <waterman@cs.berkeley.edu>
-+                         2018 Stef O'Rear <sorear2@gmail.com>
-+
-+   RISC-V Foreign Function Interface
-+
-+   Permission is hereby granted, free of charge, to any person obtaining
-+   a copy of this software and associated documentation files (the
-+   ``Software''), to deal in the Software without restriction, including
-+   without limitation the rights to use, copy, modify, merge, publish,
-+   distribute, sublicense, and/or sell copies of the Software, and to
-+   permit persons to whom the Software is furnished to do so, subject to
-+   the following conditions:
-+
-+   The above copyright notice and this permission notice shall be included
-+   in all copies or substantial portions of the Software.
-+
-+   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 OR COPYRIGHT
-+   HOLDERS 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.
-+   ----------------------------------------------------------------------- */
-+
-+#define LIBFFI_ASM
-+#include <fficonfig.h>
-+#include <ffi.h>
-+
-+/* Define aliases so that we can handle all ABIs uniformly */
-+
-+#if __SIZEOF_POINTER__ == 8
-+#define PTRS 8
-+#define LARG ld
-+#define SARG sd
-+#else
-+#define PTRS 4
-+#define LARG lw
-+#define SARG sw
-+#endif
-+
-+#if __riscv_float_abi_double
-+#define FLTS 8
-+#define FLARG fld
-+#define FSARG fsd
-+#elif __riscv_float_abi_single
-+#define FLTS 4
-+#define FLARG flw
-+#define FSARG fsw
-+#else
-+#define FLTS 0
-+#endif
-+
-+#define fp s0
-+
-+    .text
-+    .globl  ffi_call_asm
-+    .type   ffi_call_asm, @function
-+    .hidden ffi_call_asm
-+/*
-+  struct call_context {
-+      floatreg fa[8];
-+      intreg a[8];
-+      intreg pad[rv32 ? 2 : 0];
-+      intreg save_fp, save_ra;
-+  }
-+  void ffi_call_asm(size_t *stackargs, struct call_context *regargs,
-+      void (*fn)(void));
-+*/
-+
-+#define FRAME_LEN (8 * FLTS + 8 * PTRS + 16)
-+
-+ffi_call_asm:
-+    .cfi_startproc
-+
-+    /*
-+      We are NOT going to set up an ordinary stack frame.  In order to pass
-+      the stacked args to the called function, we adjust our stack pointer to
-+      a0, which is in the _caller's_ alloca area.  We establish our own stack
-+      frame at the end of the call_context.
-+
-+      Anything below the arguments will be freed at this point, although we
-+      preserve the call_context so that it can be read back in the caller.
-+    */
-+
-+    .cfi_def_cfa 11, FRAME_LEN # interim CFA based on a1
-+    SARG    fp, FRAME_LEN - 2*PTRS(a1)
-+    .cfi_offset 8, -2*PTRS
-+    SARG    ra, FRAME_LEN - 1*PTRS(a1)
-+    .cfi_offset 1, -1*PTRS
-+
-+    addi    fp, a1, FRAME_LEN
-+    mv      sp, a0
-+    .cfi_def_cfa 8, 0 # our frame is fully set up
-+
-+    # Load arguments
-+    mv      t1, a2
-+
-+#if FLTS
-+    FLARG   fa0, -FRAME_LEN+0*FLTS(fp)
-+    FLARG   fa1, -FRAME_LEN+1*FLTS(fp)
-+    FLARG   fa2, -FRAME_LEN+2*FLTS(fp)
-+    FLARG   fa3, -FRAME_LEN+3*FLTS(fp)
-+    FLARG   fa4, -FRAME_LEN+4*FLTS(fp)
-+    FLARG   fa5, -FRAME_LEN+5*FLTS(fp)
-+    FLARG   fa6, -FRAME_LEN+6*FLTS(fp)
-+    FLARG   fa7, -FRAME_LEN+7*FLTS(fp)
-+#endif
-+
-+    LARG    a0, -FRAME_LEN+8*FLTS+0*PTRS(fp)
-+    LARG    a1, -FRAME_LEN+8*FLTS+1*PTRS(fp)
-+    LARG    a2, -FRAME_LEN+8*FLTS+2*PTRS(fp)
-+    LARG    a3, -FRAME_LEN+8*FLTS+3*PTRS(fp)
-+    LARG    a4, -FRAME_LEN+8*FLTS+4*PTRS(fp)
-+    LARG    a5, -FRAME_LEN+8*FLTS+5*PTRS(fp)
-+    LARG    a6, -FRAME_LEN+8*FLTS+6*PTRS(fp)
-+    LARG    a7, -FRAME_LEN+8*FLTS+7*PTRS(fp)
-+
-+    /* Call */
-+    jalr    t1
-+
-+    /* Save return values - only a0/a1 (fa0/fa1) are used */
-+#if FLTS
-+    FSARG   fa0, -FRAME_LEN+0*FLTS(fp)
-+    FSARG   fa1, -FRAME_LEN+1*FLTS(fp)
-+#endif
-+
-+    SARG    a0, -FRAME_LEN+8*FLTS+0*PTRS(fp)
-+    SARG    a1, -FRAME_LEN+8*FLTS+1*PTRS(fp)
-+
-+    /* Restore and return */
-+    addi    sp, fp, -FRAME_LEN
-+    .cfi_def_cfa 2, FRAME_LEN
-+    LARG    ra, -1*PTRS(fp)
-+    .cfi_restore 1
-+    LARG    fp, -2*PTRS(fp)
-+    .cfi_restore 8
-+    ret
-+    .cfi_endproc
-+    .size   ffi_call_asm, .-ffi_call_asm
-+
-+
-+/*
-+  ffi_closure_asm. Expects address of the passed-in ffi_closure in t1.
-+  void ffi_closure_inner(size_t *stackargs, struct call_context *regargs,
-+      ffi_closure *closure);
-+*/
-+
-+    .globl ffi_closure_asm
-+    .hidden ffi_closure_asm
-+    .type ffi_closure_asm, @function
-+ffi_closure_asm:
-+    .cfi_startproc
-+
-+    addi    sp,  sp, -FRAME_LEN
-+    .cfi_def_cfa_offset FRAME_LEN
-+
-+    /* make a frame */
-+    SARG    fp, FRAME_LEN - 2*PTRS(sp)
-+    .cfi_offset 8, -2*PTRS
-+    SARG    ra, FRAME_LEN - 1*PTRS(sp)
-+    .cfi_offset 1, -1*PTRS
-+    addi    fp, sp, FRAME_LEN
-+
-+    /* save arguments */
-+#if FLTS
-+    FSARG   fa0, 0*FLTS(sp)
-+    FSARG   fa1, 1*FLTS(sp)
-+    FSARG   fa2, 2*FLTS(sp)
-+    FSARG   fa3, 3*FLTS(sp)
-+    FSARG   fa4, 4*FLTS(sp)
-+    FSARG   fa5, 5*FLTS(sp)
-+    FSARG   fa6, 6*FLTS(sp)
-+    FSARG   fa7, 7*FLTS(sp)
-+#endif
-+
-+    SARG    a0, 8*FLTS+0*PTRS(sp)
-+    SARG    a1, 8*FLTS+1*PTRS(sp)
-+    SARG    a2, 8*FLTS+2*PTRS(sp)
-+    SARG    a3, 8*FLTS+3*PTRS(sp)
-+    SARG    a4, 8*FLTS+4*PTRS(sp)
-+    SARG    a5, 8*FLTS+5*PTRS(sp)
-+    SARG    a6, 8*FLTS+6*PTRS(sp)
-+    SARG    a7, 8*FLTS+7*PTRS(sp)
-+
-+    /* enter C */
-+    addi    a0, sp, FRAME_LEN
-+    mv      a1, sp
-+    mv      a2, t1
-+
-+    call    ffi_closure_inner
-+
-+    /* return values */
-+#if FLTS
-+    FLARG   fa0, 0*FLTS(sp)
-+    FLARG   fa1, 1*FLTS(sp)
-+#endif
-+
-+    LARG    a0, 8*FLTS+0*PTRS(sp)
-+    LARG    a1, 8*FLTS+1*PTRS(sp)
-+
-+    /* restore and return */
-+    LARG    ra, FRAME_LEN-1*PTRS(sp)
-+    .cfi_restore 1
-+    LARG    fp, FRAME_LEN-2*PTRS(sp)
-+    .cfi_restore 8
-+    addi    sp, sp, FRAME_LEN
-+    .cfi_def_cfa_offset 0
-+    ret
-+    .cfi_endproc
-+    .size ffi_closure_asm, .-ffi_closure_asm
diff --git a/poky/meta/recipes-support/libffi/libffi/0001-libffi-Support-musl-x32-build.patch b/poky/meta/recipes-support/libffi/libffi/0001-libffi-Support-musl-x32-build.patch
deleted file mode 100644
index 6b167c8..0000000
--- a/poky/meta/recipes-support/libffi/libffi/0001-libffi-Support-musl-x32-build.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 69c3906c85c791716bf650aa36d9361d22acf3fb Mon Sep 17 00:00:00 2001
-From: sweeaun <swee.aun.khor@intel.com>
-Date: Thu, 6 Jul 2017 16:32:46 -0700
-Subject: [PATCH] libffi: Support musl x32 build
-
-Support libffi build with target musl-x32.
-
-Upstream-Status: Pending
-
-Signed-off-by: sweeaun <swee.aun.khor@intel.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index a7bf5ee..8ebe99c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -177,7 +177,7 @@ case "$host" in
- 	TARGETDIR=x86
- 	if test $ac_cv_sizeof_size_t = 4; then
- 	  case "$host" in
--	    *-gnux32)
-+	    *-gnux32 | *-muslx32)
- 	      TARGET=X86_64
- 	      ;;
- 	    *)
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-support/libffi/libffi/0001-mips-Use-compiler-internal-define-for-linux.patch b/poky/meta/recipes-support/libffi/libffi/0001-mips-Use-compiler-internal-define-for-linux.patch
deleted file mode 100644
index db96e63..0000000
--- a/poky/meta/recipes-support/libffi/libffi/0001-mips-Use-compiler-internal-define-for-linux.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From a5efaa96fd934eb245c234a5275fcf62698ef986 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 2 Apr 2015 21:38:03 -0700
-Subject: [PATCH] mips: Use compiler internal define for linux
-
-__linux__ is defined by compiler when building for
-linux platforms, lets use it
-
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/mips/ffitarget.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mips/ffitarget.h b/src/mips/ffitarget.h
-index 717d659..6faa358 100644
---- a/src/mips/ffitarget.h
-+++ b/src/mips/ffitarget.h
-@@ -32,7 +32,7 @@
- #error "Please do not include ffitarget.h directly into your source.  Use ffi.h instead."
- #endif
- 
--#ifdef linux
-+#ifdef __linux__
- # include <asm/sgidefs.h>
- #elif defined(__rtems__)
- /*
--- 
-2.1.4
-
diff --git a/poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch b/poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch
deleted file mode 100644
index 61c9eb3..0000000
--- a/poky/meta/recipes-support/libffi/libffi/0001-mips-fix-MIPS-softfloat-build-issue.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From 655e82c92d5c3875aee04322f1993d6b0774a7bf Mon Sep 17 00:00:00 2001
-From: Yousong Zhou <yszhou4tech@gmail.com>
-Date: Mon, 15 Aug 2016 15:00:13 +0800
-Subject: [PATCH] mips: fix MIPS softfloat build issue
-
-The patch for o32.S is taken from OpenWrt packages repo 3a7a4bf "libffi:
-fix MIPS softfloat build issue with current binutils"
-
-Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
----
-Upstream-Status: Backport [https://github.com/libffi/libffi/commit/2ded2a4f494165c93293afc14ab0be1243cf8c49]
- src/mips/n32.S | 17 +++++++++++++++++
- src/mips/o32.S | 17 +++++++++++++++++
- 2 files changed, 34 insertions(+)
-
-diff --git a/src/mips/n32.S b/src/mips/n32.S
-index c6985d3..8f25994 100644
---- a/src/mips/n32.S
-+++ b/src/mips/n32.S
-@@ -107,6 +107,16 @@ loadregs:
- 
- 	REG_L	t6, 3*FFI_SIZEOF_ARG($fp)  # load the flags word into t6.
- 
-+#ifdef __mips_soft_float
-+	REG_L	a0, 0*FFI_SIZEOF_ARG(t9)
-+	REG_L	a1, 1*FFI_SIZEOF_ARG(t9)
-+	REG_L	a2, 2*FFI_SIZEOF_ARG(t9)
-+	REG_L	a3, 3*FFI_SIZEOF_ARG(t9)
-+	REG_L	a4, 4*FFI_SIZEOF_ARG(t9)
-+	REG_L	a5, 5*FFI_SIZEOF_ARG(t9)
-+	REG_L	a6, 6*FFI_SIZEOF_ARG(t9)
-+	REG_L	a7, 7*FFI_SIZEOF_ARG(t9)
-+#else
- 	and	t4, t6, ((1<<FFI_FLAG_BITS)-1)
- 	REG_L	a0, 0*FFI_SIZEOF_ARG(t9)
- 	beqz	t4, arg1_next
-@@ -193,6 +203,7 @@ arg7_next:
- arg8_doublep:	
-  	l.d	$f19, 7*FFI_SIZEOF_ARG(t9)	
- arg8_next:	
-+#endif
- 
- callit:		
- 	# Load the function pointer
-@@ -214,6 +225,7 @@ retint:
- 	b	epilogue
- 
- retfloat:
-+#ifndef __mips_soft_float
- 	bne     t6, FFI_TYPE_FLOAT, retdouble
- 	jal	t9
- 	REG_L	t4, 4*FFI_SIZEOF_ARG($fp)
-@@ -272,6 +284,7 @@ retstruct_f_d:
- 	s.s	$f0, 0(t4)
- 	s.d	$f2, 8(t4)
- 	b	epilogue
-+#endif
- 
- retstruct_d_soft:
- 	bne	t6, FFI_TYPE_STRUCT_D_SOFT, retstruct_f_soft
-@@ -429,6 +442,7 @@ ffi_closure_N32:
- 	REG_S	a6, A6_OFF2($sp)
- 	REG_S	a7, A7_OFF2($sp)
- 
-+#ifndef __mips_soft_float
- 	# Store all possible float/double registers.
- 	s.d	$f12, F12_OFF2($sp)
- 	s.d	$f13, F13_OFF2($sp)
-@@ -438,6 +452,7 @@ ffi_closure_N32:
- 	s.d	$f17, F17_OFF2($sp)
- 	s.d	$f18, F18_OFF2($sp)
- 	s.d	$f19, F19_OFF2($sp)
-+#endif
- 
- 	# Call ffi_closure_mips_inner_N32 to do the real work.
- 	LA	t9, ffi_closure_mips_inner_N32
-@@ -458,6 +473,7 @@ cls_retint:
- 	b	cls_epilogue
- 
- cls_retfloat:
-+#ifndef __mips_soft_float
- 	bne     v0, FFI_TYPE_FLOAT, cls_retdouble
- 	l.s	$f0, V0_OFF2($sp)
- 	b	cls_epilogue
-@@ -500,6 +516,7 @@ cls_retstruct_f_d:
- 	l.s	$f0, V0_OFF2($sp)
- 	l.d	$f2, V1_OFF2($sp)
- 	b	cls_epilogue
-+#endif
- 	
- cls_retstruct_small2:	
- 	REG_L	v0, V0_OFF2($sp)
-diff --git a/src/mips/o32.S b/src/mips/o32.S
-index eb27981..429dd0a 100644
---- a/src/mips/o32.S
-+++ b/src/mips/o32.S
-@@ -82,13 +82,16 @@ sixteen:
- 		
- 	ADDU	$sp, 4 * FFI_SIZEOF_ARG		# adjust $sp to new args
- 
-+#ifndef __mips_soft_float
- 	bnez	t0, pass_d			# make it quick for int
-+#endif
- 	REG_L	a0, 0*FFI_SIZEOF_ARG($sp)	# just go ahead and load the
- 	REG_L	a1, 1*FFI_SIZEOF_ARG($sp)	# four regs.
- 	REG_L	a2, 2*FFI_SIZEOF_ARG($sp)
- 	REG_L	a3, 3*FFI_SIZEOF_ARG($sp)
- 	b	call_it
- 
-+#ifndef __mips_soft_float
- pass_d:
- 	bne	t0, FFI_ARGS_D, pass_f
- 	l.d	$f12, 0*FFI_SIZEOF_ARG($sp)	# load $fp regs from args
-@@ -130,6 +133,7 @@ pass_f_d:
-  #	bne	t0, FFI_ARGS_F_D, call_it
- 	l.s	$f12, 0*FFI_SIZEOF_ARG($sp)	# load $fp regs from args
- 	l.d	$f14, 2*FFI_SIZEOF_ARG($sp)	# passing double and float
-+#endif
- 
- call_it:	
- 	# Load the function pointer
-@@ -158,14 +162,23 @@ retfloat:
- 	bne     t2, FFI_TYPE_FLOAT, retdouble
- 	jalr	t9
- 	REG_L	t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
-+#ifndef __mips_soft_float
- 	s.s	$f0, 0(t0)
-+#else
-+	REG_S	v0, 0(t0)
-+#endif
- 	b	epilogue
- 
- retdouble:	
- 	bne	t2, FFI_TYPE_DOUBLE, noretval
- 	jalr	t9
- 	REG_L	t0, SIZEOF_FRAME + 4*FFI_SIZEOF_ARG($fp)
-+#ifndef __mips_soft_float
- 	s.d	$f0, 0(t0)
-+#else
-+	REG_S	v1, 4(t0)
-+	REG_S	v0, 0(t0)
-+#endif
- 	b	epilogue
- 	
- noretval:	
-@@ -261,9 +274,11 @@ $LCFI7:
- 	li	$13, 1		# FFI_O32
- 	bne	$16, $13, 1f	# Skip fp save if FFI_O32_SOFT_FLOAT
- 	
-+#ifndef __mips_soft_float
- 	# Store all possible float/double registers.
- 	s.d	$f12, FA_0_0_OFF2($fp)
- 	s.d	$f14, FA_1_0_OFF2($fp)
-+#endif
- 1:	
- 	# Call ffi_closure_mips_inner_O32 to do the work.
- 	la	t9, ffi_closure_mips_inner_O32
-@@ -281,6 +296,7 @@ $LCFI7:
- 	li	$13, 1		# FFI_O32
- 	bne	$16, $13, 1f	# Skip fp restore if FFI_O32_SOFT_FLOAT
- 
-+#ifndef __mips_soft_float
- 	li	$9, FFI_TYPE_FLOAT
- 	l.s	$f0, V0_OFF2($fp)
- 	beq	$8, $9, closure_done
-@@ -288,6 +304,7 @@ $LCFI7:
- 	li	$9, FFI_TYPE_DOUBLE
- 	l.d	$f0, V0_OFF2($fp)
- 	beq	$8, $9, closure_done
-+#endif
- 1:	
- 	REG_L	$3, V1_OFF2($fp)
- 	REG_L	$2, V0_OFF2($fp)
--- 
-2.9.3
-
diff --git a/poky/meta/recipes-support/libffi/libffi/not-win32.patch b/poky/meta/recipes-support/libffi/libffi/not-win32.patch
index 80c40a4..86a7fc9 100644
--- a/poky/meta/recipes-support/libffi/libffi/not-win32.patch
+++ b/poky/meta/recipes-support/libffi/libffi/not-win32.patch
@@ -11,12 +11,10 @@
 Upstream-Status: Inappropriate
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 
-Index: libffi-3.2.1/configure.ac
-===================================================================
---- libffi-3.2.1.orig/configure.ac
-+++ libffi-3.2.1/configure.ac
-@@ -592,7 +592,7 @@ AC_ARG_ENABLE(purify-safety,
- 
+--- a/configure.ac
++++ b/configure.ac
+@@ -350,7 +350,7 @@ AC_ARG_ENABLE(multi-os-directory,
+                           
  # These variables are only ever used when we cross-build to X86_WIN32.
  # And we only support this with GCC, so...
 -if test "x$GCC" = "xyes"; then
diff --git a/poky/meta/recipes-support/libffi/libffi_3.2.1.bb b/poky/meta/recipes-support/libffi/libffi_3.3~rc0.bb
similarity index 70%
rename from poky/meta/recipes-support/libffi/libffi_3.2.1.bb
rename to poky/meta/recipes-support/libffi/libffi_3.3~rc0.bb
index f2c684a..dadde0b 100644
--- a/poky/meta/recipes-support/libffi/libffi_3.2.1.bb
+++ b/poky/meta/recipes-support/libffi/libffi_3.3~rc0.bb
@@ -10,20 +10,21 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3610bb17683a0089ed64055416b2ae1b"
 
-SRC_URI = "https://sourceware.org/pub/libffi/${BP}.tar.gz \
+SRC_URI = "https://github.com/libffi/libffi/releases/download/v3.3-rc0/libffi-3.3-rc0.tar.gz \
            file://not-win32.patch \
-           file://0001-mips-Use-compiler-internal-define-for-linux.patch \
-           file://0001-mips-fix-MIPS-softfloat-build-issue.patch \
-           file://0001-libffi-Support-musl-x32-build.patch \
-           file://0001-New-RISC-V-port-281.patch \
            "
-
-SRC_URI[md5sum] = "83b89587607e3eb65c70d361f13bab43"
-SRC_URI[sha256sum] = "d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37"
+SRC_URI[md5sum] = "8d2a82a78faf10a5e53c27d986e8f04e"
+SRC_URI[sha256sum] = "403d67aabf1c05157855ea2b1d9950263fb6316536c8c333f5b9ab1eb2f20ecf"
 
 EXTRA_OECONF += "--disable-builddir"
 EXTRA_OEMAKE_class-target = "LIBTOOLFLAGS='--tag=CC'"
-inherit autotools texinfo
+inherit autotools texinfo multilib_header
+
+S = "${WORKDIR}/${BPN}-3.3-rc0"
+
+do_install_append() {
+	oe_multilib_header ffi.h
+}
 
 FILES_${PN}-dev += "${libdir}/libffi-${PV}"
 
diff --git a/poky/meta/recipes-support/libunwind/libunwind.inc b/poky/meta/recipes-support/libunwind/libunwind.inc
index 36851d0..5726589 100644
--- a/poky/meta/recipes-support/libunwind/libunwind.inc
+++ b/poky/meta/recipes-support/libunwind/libunwind.inc
@@ -2,7 +2,7 @@
 DESCRIPTION = "a portable and efficient C programming interface (API) to determine the call-chain of a program"
 HOMEPAGE = "http://www.nongnu.org/libunwind"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;beginline=3;md5=3fced11d6df719b47505837a51c16ae5"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d80c8ed4062b8339b715f90fa68cc9f"
 DEPENDS += "libatomic-ops"
 
 inherit autotools multilib_header
diff --git a/poky/meta/recipes-support/lz4/lz4_1.9.1.bb b/poky/meta/recipes-support/lz4/lz4_1.9.2.bb
similarity index 94%
rename from poky/meta/recipes-support/lz4/lz4_1.9.1.bb
rename to poky/meta/recipes-support/lz4/lz4_1.9.2.bb
index de1f970..f0a8416 100644
--- a/poky/meta/recipes-support/lz4/lz4_1.9.1.bb
+++ b/poky/meta/recipes-support/lz4/lz4_1.9.2.bb
@@ -9,7 +9,7 @@
 
 PE = "1"
 
-SRCREV = "398e36c756a3067de8e2b35dd380baef040dfe0d"
+SRCREV = "fdf2ef5809ca875c454510610764d9125ef2ebbd"
 
 SRC_URI = "git://github.com/lz4/lz4.git \
            file://run-ptest \
diff --git a/poky/scripts/lib/checklayer/__init__.py b/poky/scripts/lib/checklayer/__init__.py
index 8244cf0..5aeec2f 100644
--- a/poky/scripts/lib/checklayer/__init__.py
+++ b/poky/scripts/lib/checklayer/__init__.py
@@ -245,7 +245,7 @@
     sigs = {}
     tune2tasks = {}
 
-    cmd = ''
+    cmd = 'BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE BB_SIGNATURE_HANDLER" BB_SIGNATURE_HANDLER="OEBasicHash" '
     if machine:
         cmd += 'MACHINE=%s ' % machine
     cmd += 'bitbake '
diff --git a/poky/scripts/lib/devtool/build.py b/poky/scripts/lib/devtool/build.py
index 7543398..935ffab 100644
--- a/poky/scripts/lib/devtool/build.py
+++ b/poky/scripts/lib/devtool/build.py
@@ -11,7 +11,8 @@
 import logging
 import argparse
 import tempfile
-from devtool import exec_build_env_command, check_workspace_recipe, DevtoolError
+from devtool import exec_build_env_command, setup_tinfoil, check_workspace_recipe, DevtoolError
+from devtool import parse_recipe
 
 logger = logging.getLogger('devtool')
 
@@ -43,12 +44,22 @@
 def build(args, config, basepath, workspace):
     """Entry point for the devtool 'build' subcommand"""
     workspacepn = check_workspace_recipe(workspace, args.recipename, bbclassextend=True)
+    tinfoil = setup_tinfoil(config_only=False, basepath=basepath)
+    try:
+        rd = parse_recipe(config, tinfoil, args.recipename, appends=True, filter_workspace=False)
+        if not rd:
+            return 1
+        deploytask = 'do_deploy' in rd.getVar('__BBTASKS')
+    finally:
+        tinfoil.shutdown()
 
     if args.clean:
         # use clean instead of cleansstate to avoid messing things up in eSDK
         build_tasks = ['do_clean']
     else:
         build_tasks = _get_build_tasks(config)
+        if deploytask:
+            build_tasks.append('do_deploy')
 
     bbappend = workspace[workspacepn]['bbappend']
     if args.disable_parallel_make:
diff --git a/poky/scripts/lib/resulttool/report.py b/poky/scripts/lib/resulttool/report.py
index a48c59f..f706280 100644
--- a/poky/scripts/lib/resulttool/report.py
+++ b/poky/scripts/lib/resulttool/report.py
@@ -203,8 +203,22 @@
             testresults = resultutils.load_resultsdata(source_dir)
         for testsuite in testresults:
             for resultid in testresults[testsuite]:
+                skip = False
                 result = testresults[testsuite][resultid]
                 machine = result['configuration']['MACHINE']
+
+                # Check to see if there is already results for these kinds of tests for the machine
+                for key in result['result'].keys():
+                    testtype = str(key).split('.')[0]
+                    if ((machine in self.ptests and testtype == "ptestresult" and self.ptests[machine]) or
+                        (machine in self.ltptests and testtype == "ltpiresult" and self.ltptests[machine]) or
+                        (machine in self.ltpposixtests and testtype == "ltpposixresult" and self.ltpposixtests[machine])):
+                        print("Already have test results for %s on %s, skipping %s" %(str(key).split('.')[0], machine, resultid))
+                        skip = True
+                        break
+                if skip:
+                    break
+
                 test_count_report = self.get_aggregated_test_result(logger, result, machine)
                 test_count_report['machine'] = machine
                 test_count_report['testseries'] = result['configuration']['TESTSERIES']
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index df3c8aa..e9b8373 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -59,6 +59,7 @@
 Usage: you can run this script with any valid combination
 of the following environment variables (in any order):
   KERNEL - the kernel image file to use
+  BIOS - the bios image file to use
   ROOTFS - the rootfs image file or nfsroot directory to use
   DEVICE_TREE - the device tree blob to use
   MACHINE - the machine name (optional, autodetected from KERNEL filename if unspecified)
@@ -77,8 +78,6 @@
     audio - enable audio
     [*/]ovmf* - OVMF firmware file or base name for booting with UEFI
   tcpserial=<port> - specify tcp serial port number
-  biosdir=<dir> - specify custom bios dir
-  biosfilename=<filename> - specify bios filename
   qemuparams=<xyz> - specify custom parameters to QEMU
   bootparams=<xyz> - specify custom kernel parameters during boot
   help, -h, --help: print this text
@@ -129,6 +128,7 @@
         self.env_vars = ('MACHINE',
                         'ROOTFS',
                         'KERNEL',
+                        'BIOS',
                         'DEVICE_TREE',
                         'DEPLOY_DIR_IMAGE',
                         'OE_TMPDIR',
@@ -155,6 +155,7 @@
         self.qemuboot = ''
         self.qbconfload = False
         self.kernel = ''
+        self.bios = ''
         self.kernel_cmdline = ''
         self.kernel_cmdline_script = ''
         self.bootparams = ''
@@ -171,7 +172,6 @@
         self.saved_stty = ''
         self.audio_enabled = False
         self.tcpserial_portnum = ''
-        self.custombiosdir = ''
         self.taplock = ''
         self.taplock_descriptor = None
         self.portlocks = {}
@@ -480,10 +480,6 @@
                 self.qemu_opt_script += ' -vnc :0'
             elif arg.startswith('tcpserial='):
                 self.tcpserial_portnum = '%s' % arg[len('tcpserial='):]
-            elif arg.startswith('biosdir='):
-                self.custombiosdir = arg[len('biosdir='):]
-            elif arg.startswith('biosfilename='):
-                self.qemu_opt_script += ' -bios %s' % arg[len('biosfilename='):]
             elif arg.startswith('qemuparams='):
                 self.qemuparams = ' %s' % arg[len('qemuparams='):]
             elif arg.startswith('bootparams='):
@@ -725,25 +721,30 @@
             if not os.path.exists(self.dtb):
                 raise RunQemuError('DTB not found: %s, %s or %s' % cmds)
 
-    def check_biosdir(self):
-        """Check custombiosdir"""
-        if not self.custombiosdir:
+    def check_bios(self):
+        """Check and set bios"""
+
+        # See if the user supplied a BIOS option
+        if self.get('BIOS'):
+            self.bios = self.get('BIOS')
+
+        # QB_DEFAULT_BIOS is always a full file path
+        bios_name = os.path.basename(self.get('QB_DEFAULT_BIOS'))
+
+        # The user didn't want a bios to be loaded
+        if (bios_name == "" or bios_name == "none") and not self.bios:
             return
 
-        biosdir = ""
-        biosdir_native = "%s/%s" % (self.get('STAGING_DIR_NATIVE'), self.custombiosdir)
-        biosdir_host = "%s/%s" % (self.get('STAGING_DIR_HOST'), self.custombiosdir)
-        for i in (self.custombiosdir, biosdir_native, biosdir_host):
-            if os.path.isdir(i):
-                biosdir = i
-                break
+        if not self.bios:
+            deploy_dir_image = self.get('DEPLOY_DIR_IMAGE')
+            self.bios = "%s/%s" % (deploy_dir_image, bios_name)
 
-        if biosdir:
-            logger.debug("Assuming biosdir is: %s" % biosdir)
-            self.qemu_opt_script += ' -L %s' % biosdir
-        else:
-            logger.error("Custom BIOS directory not found. Tried: %s, %s, and %s" % (self.custombiosdir, biosdir_native, biosdir_host))
-            raise RunQemuError("Invalid custombiosdir: %s" % self.custombiosdir)
+            if not self.bios:
+                raise RunQemuError('BIOS not found: %s' % bios_match_name)
+
+        if not os.path.exists(self.bios):
+            raise RunQemuError("KERNEL %s not found" % self.bios)
+
 
     def check_mem(self):
         """
@@ -811,7 +812,7 @@
         self.check_ovmf()
         self.check_kernel()
         self.check_dtb()
-        self.check_biosdir()
+        self.check_bios()
         self.check_mem()
         self.check_tcpserial()
 
@@ -923,6 +924,8 @@
         logger.info('Continuing with the following parameters:\n')
         if not self.fstype in self.vmtypes:
             print('KERNEL: [%s]' % self.kernel)
+            if self.bios:
+                print('BIOS: [%s]' % self.bios)
             if self.dtb:
                 print('DTB: [%s]' % self.dtb)
         print('MACHINE: [%s]' % self.get('MACHINE'))
@@ -1339,6 +1342,8 @@
             kernel_opts = "-kernel %s -append '%s %s %s %s'" % (self.kernel, self.kernel_cmdline,
                                                                 self.kernel_cmdline_script, self.get('QB_KERNEL_CMDLINE_APPEND'),
                                                                 self.bootparams)
+            if self.bios:
+                kernel_opts += " -bios %s" % self.bios
             if self.dtb:
                 kernel_opts += " -dtb %s" % self.dtb
         else: