poky: subtree update:2dcd1f2a21..9d1b332292

Alejandro Hernandez Samaniego (2):
      baremetal-helloworld: Enable RISC-V 64 port
      baremetal-image: Fix post process command rootfs_update_timestamp

Alexander Kanavin (94):
      python3: add markdown/smartypants/typogrify modules
      gi-docgen: add a recipe and class
      gdk-pixbuf/pango: replace gtk-doc with gi-docgen
      vala: upgrade 0.50.4 -> 0.52.2
      xkbcomp: upgrade 1.4.4 -> 1.4.5
      stress-ng: upgrade 0.12.05 -> 0.12.06
      xserver-xorg: upgrade 1.20.10 -> 1.20.11
      xorgproto: upgrade 2020.1 -> 2021.3
      dpkg: update 1.20.7.1 -> 1.20.9
      puzzles: update to latest revision
      cmake: update 3.19.5 -> 3.20.1
      meson: update 0.57.1 -> 0.57.2
      systemd: backport a patch to avoid unnecessary rsync dependency with latest meson
      pulseaudio: unbreak build with latest meson
      libdnf: upgrade 0.58.0 -> 0.62.0
      bluez5: upgrade 5.56 -> 5.58
      libxkbcommon: update 1.0.3 -> 1.2.1
      libgudev: update 234 -> 236
      vulkan-samples: update to latest revision
      gnupg: upgrade 2.2.27 -> 2.3.1
      virglrenderer: update 0.8.2 -> 0.9.1
      webkitgtk: update 2.30.6 -> 2.32.0
      acl: upgrade 2.2.53 -> 2.3.1
      bind: upgrade 9.16.12 -> 9.16.13
      bison: upgrade 3.7.5 -> 3.7.6
      createrepo-c: upgrade 0.17.0 -> 0.17.2
      cronie: upgrade 1.5.5 -> 1.5.7
      dnf: upgrade 4.6.0 -> 4.7.0
      e2fsprogs: upgrade 1.46.1 -> 1.46.2
      gnu-efi: upgrade 3.0.12 -> 3.0.13
      systemd-boot: backport a fix to address failures with new gnu-efi
      gobject-introspection: upgrade 1.66.1 -> 1.68.0
      gtk+3: upgrade 3.24.25 -> 3.24.28
      harfbuzz: upgrade 2.7.4 -> 2.8.0
      less: upgrade 563 -> 581
      libfm: upgrade 1.3.1 -> 1.3.2
      libinput: upgrade 1.16.4 -> 1.17.1
      libwpe: upgrade 1.8.0 -> 1.10.0
      libxres: upgrade 1.2.0 -> 1.2.1
      linux-firmware: upgrade 20210208 -> 20210315
      pango: upgrade 1.48.2 -> 1.48.4
      piglit: upgrade to latest revision
      pkgconf: upgrade 1.7.3 -> 1.7.4
      python3-hypothesis: upgrade 6.2.0 -> 6.9.1
      python3-importlib-metadata: upgrade 3.4.0 -> 3.10.1
      python3-pytest: upgrade 6.2.2 -> 6.2.3
      python3-setuptools-scm: upgrade 5.0.1 -> 6.0.1
      x264: upgrade to latest revision
      ptest: add a test for orphaned ptests, and restore ones found by it
      swig: fix upstream version check
      liberation-fonts: fix upstream version check
      Revert "go: Use dl.google.com for SRC_URI"
      powertop: update 2.13 -> 2.14
      mesa: add lmsensors PACKAGECONFIG
      ffmpeg: update 4.3.2 -> 4.4
      qemu: use 4 cores in qemu guests
      avahi: disable gtk bits
      gdk-pixbuf: rewrite the cross-build support for tests
      gnome: drop upstream even condition from a few recipes
      expat: upgrade 2.2.10 -> 2.3.0
      meson.bbclass: split python routines into a separate class
      gstreamer1.0-plugins-base: backport a patch to fix meson 0.58 builds
      meson: update 0.57.2 -> 0.58.0
      qemu: backport a patch to fix meson 0.58 builds
      nativesdk-meson: correctly set cpu_family
      bitbake: fetch2/wget: when checking latest versions, consider all numerical directories
      mklibs: remove recipes and class
      local.conf: Drop support for mklibs
      u-boot: upgrade 2021.01 -> 2021.04
      gdk-pixbuf: update a patch status
      systemd: update 247.6 -> 248.3
      systemd-conf: do not version in lockstep with systemd
      gnu-config: update to latest revision
      mmc-utils: update to latest revision
      python3-smartypants: fix upstream version check
      at: upgrade 3.2.1 -> 3.2.2
      gnomebase: trim the SRC_URI directory from the back
      gsettings-desktop-schemas: upgrade 3.38.0 -> 40.0
      igt-gpu-tools: upgrade 1.25 -> 1.26
      mesa: update 21.0.3 -> 21.1.1
      vulkan-samples: update to latest revision
      libgpg-error: update 1.41 -> 1.42
      webkitgtk: update 2.32.0 -> 2.32.1
      glib-2.0: update 2.68.1 -> 2.68.2
      apt: upgrade 2.2.2 -> 2.2.3
      cmake: update 3.20.1 -> 3.20.2
      libdnf: update 0.62.0 -> 0.63.0
      harfbuzz: update 2.8.0 -> 2.8.1
      curl: update 7.76.0 -> 7.76.1
      systemtap: update 4.4 -> 4.5
      wayland: package target binaries into -tools, not into -dev
      ptest: add newly discovered missing runtime dependencies across recipes
      images: remove sato/weston ptest images
      images: add ptest images based on core-image-minimal

Andreas Müller (1):
      gstreamer1.0-plugins-good: fix build with gcc11

Andrej Valek (1):
      expat: upgrade 2.3.0 -> 2.4.1

Anuj Mittal (1):
      lsb-release: fix reproducibility failure

Armin Kuster (5):
      bitbake: hashserv/server.py: drop unused imports
      bitbake: hashserver/client.py: drop unused imports
      poky.yaml: fedora33: add missing pkgs
      systemctl: Stop tracebacks use formated error messages
      package_manager/rpm: decode systemctl failures

Bastian Krause (1):
      ccache: version bump 4.2.1 -> 4.3

Bruce Ashfield (18):
      linux-yocto/5.4: qemuppc32: reduce serial shutdown issues
      kern-tools: Kconfiglib: add support for bare 'modules' keyword
      lttng-modules: update devupstream to v2.13-rc
      lttng-modules: update to v2.12.6
      kernel-yocto: provide debug / summary information for metadata
      linux-yocto/5.10: update to v5.10.35
      linux-yocto/5.4: update to v5.4.117
      linux-yocto/5.10: ktypes/standard: disable obsolete crypto options by default
      linux-yocto/5.10: update to v5.10.36
      linux-yocto/5.4: update to v5.4.118
      linux-yocto/5.10: update to v5.10.37
      linux-yocto/5.4: update to v5.4.119
      kernel-devsrc: adjust NM and OBJTOOL variables for target
      linux-yocto/5.10: update to v5.10.38
      linux-yocto-dev: bump to v5.13+
      linux-yocto/5.4: update to v5.4.120
      linux-yocto/5.10: update to v5.10.41
      linux-yocto/5.4: update to v5.4.123

Carlos Rafael Giani (1):
      ffmpeg: Add libopus packageconfig

Changqing Li (2):
      unfs3: correct configure option
      pkgconfig: update SRC_URI

Chen Qi (3):
      db: update CVE_PRODUCT
      rt-tests: update SRCREV
      xxhash: backport patch to fix special char problem

Daniel McGregor (3):
      lib/oe/gpg_sign.py: Fix gpg verification
      sstate: Ignore sstate signing key
      bison: Make libtextstyle and libreadline optional

Daniel Wagenknecht (1):
      kernel-dev: document KCONFIG_MODE

Douglas Royds (3):
      Revert "icecc: Don't use icecc when INHIBIT_DEFAULT_DEPS is set"
      icecc: Demote "could not get ICECC_CC" warning to note
      icecc-create-env: Silence warning: invalid ICECC_ENV_EXEC

Drew Moseley (1):
      manuals: fix a few incorrect option specifications.

Guillaume Champagne (1):
      image-live.bbclass: order do_bootimg after do_rootfs

Joshua Watt (1):
      zstd: Add patch to fix MinGW builds

Kai Kang (1):
      grub2.inc: remove '-O2' from CFLAGS

Khem Raj (17):
      swig: Upgrade to 4.0.2
      python3-markdown: Upgrade to 3.3.4
      ffmpeg: Fix build on mips
      npth: Check for pthread_create for including lpthread
      gcc: Add target gcc include search for musl config too
      gcc: Extend .gccrelocprefix section support to musl configs
      gcc: Refresh patch to fix patch fuzz
      musl: Fix __NR_fstatat syscall name for riscv
      libxfixes: Update to 6.0.0 release
      xorgproto: Upgrade to 2021.4 release
      glibc: Update to latest 2.33 branch
      systemd: Fix 248.3 on musl
      glibc: Enable memory tagging for aarch64
      gcc: Update to latest on release/gcc-11 branch
      apt: Add missing <array> header
      ovmf: Fix VLA warnings with GCC 11
      libucontext: Switch to meson build system

Martin Jansa (4):
      gcc-sanitizers: Package up static hwasan files as well
      webkitgtk: fix build without opengl in DISTRO_FEATURES
      binutils: backport DWARF-5 support for gold
      sstatesig.py: make it fatal error when sstate manifest isn't found

Michael Halstead (3):
      releases: update to include 3.2.4
      uninative: Upgrade to 3.2 (gcc11 support)
      releases: update to include 3.3.1

Michael Opdenacker (8):
      manuals: reduce verbosity with "worry about" expression
      manuals: reduce verbosity related to "the following" expression
      ref-manual: simplify style
      kernel-dev manual: simplify style
      dev-manual: simplify style
      sdk-manual: simplify style and fix formating
      overview-manual: simplify style and add missings references
      manuals: simplify style

Mike Crowe (2):
      npm.bbclass: Allow nodedir to be overridden by NPM_NODEDIR
      libnotify: Make gtk+3 dependency optional

Ming Liu (4):
      kernel-fitimage.bbclass: fix a wrong conditional check
      initramfs-framework:rootfs: fix wrong indentions
      kernel-fitimage.bbclass: drop unit addresses from bootscr sections
      uboot-sign/kernel-fitimage: split generate_rsa_keys task

Nikolay Papenkov (1):
      flex: correct license information

Nisha Parrakat (1):
      squashfs-tools: package squashfs-fs.h

Peter Kjellerstedt (3):
      libcap: Configure Make variables correctly without a horrible hack
      util-linux.inc: Do not modify BPN
      native.bbclass: Do not remove "-native" in the middle of recipe names

Petr Vorel (1):
      ltp: Update to 20210524

Richard Purdie (92):
      oeqa/qemurunner: Fix binary vs str issue
      oeqa/qemurunner: Improve handling of run_serial for shutdown commands
      ptest-packagelists: Add expat-ptest to fast ptests
      puzzles: Upstream changed to main branch for development
      grub2: Add CVE whitelist entries for issues fixed in 2.06
      glibc: Document and whitelist CVE-2019-1010022-25
      qemu: Exclude CVE-2017-5957 from cve-check
      qemu: Exclude CVE-2007-0998 from cve-check
      qemu: Exclude CVE-2018-18438 from cve-check
      jquery: Exclude CVE-2007-2379 from cve-check
      logrotate: Exclude CVE-2011-1548,1549,1550 from cve-check
      openssh: Exclude CVE-2007-2768 from cve-check
      ovmf: Improve reproducibility by enabling prefix mapping
      bind: Exclude CVE-2019-6470 from cve-check
      openssh: Exclude CVE-2008-3844 from cve-check
      unzip: Exclude CVE-2008-0888 from cve-check
      cpio: Exclude CVE-2010-4226 from cve-check
      xinetd: Exclude CVE-2013-4342 from cve-check
      ghostscript: Exclude CVE-2013-6629 from cve-check
      bluez: Exclude CVE-2020-12352 CVE-2020-24490 from cve-check
      tiff: Exclude CVE-2015-7313 from cve-check
      ovmf: Disable lto to aid reproducibility
      ovmf: Fix other reproducibility issues
      rpm: Exclude CVE-2021-20271 from cve-check
      coreutils: Exclude CVE-2016-2781 from cve-check
      librsvg: Exclude CVE-2018-1000041 from cve-check
      avahi: Exclude CVE-2021-26720 from cve-check
      qemu: Set SMP to 4 cpus for arm/x86 only
      qemuboot-x86: Switch to IvyBridge and q35 instead of pc
      qemu-x86: Add commandline options to improve boot
      sstate: Handle manifest 'corruption' issue
      lttng-ust: Upgrade 2.12.1 -> 2.12.2
      qemu: Upgrade 5.2.0 -> 6.0.0
      python3-markupsafe: Upgrade 1.1.1 -> 2.0.0
      python3-jinja2: Upgrade 2.11.3 -> 3.0.0
      ofono: upgrade 1.31 -> 1.32
      libnss-mdns: upgrade 0.14.1 -> 0.15
      python3-git: upgrade 3.1.14 -> 3.1.17
      bind: upgrade 9.16.13 -> 9.16.15
      vala: upgrade 0.52.2 -> 0.52.3
      libjpeg-turbo: upgrade 2.0.6 -> 2.1.0
      btrfs-tools: upgrade 5.12 -> 5.12.1
      python3-hypothesis: upgrade 6.9.1 -> 6.12.0
      python3-numpy: upgrade 1.20.2 -> 1.20.3
      gtk+3: upgrade 3.24.28 -> 3.24.29
      sudo: upgrade 1.9.6p1 -> 1.9.7
      stress-ng: upgrade 0.12.06 -> 0.12.08
      less: upgrade 581 -> 586
      libtirpc: upgrade 1.3.1 -> 1.3.2
      libinput: upgrade 1.17.1 -> 1.17.2
      zstd: upgrade 1.4.9 -> 1.5.0
      hdparm: upgrade 9.61 -> 9.62
      libxkbcommon: upgrade 1.2.1 -> 1.3.0
      spirv-tools: upgrade 2020.7 -> 2021.1
      diffoscope: upgrade 172 -> 175
      mpg123: upgrade 1.26.5 -> 1.27.2
      sqlite3: upgrade 3.35.3 -> 3.35.5
      wayland-protocols: upgrade 1.20 -> 1.21
      shaderc: upgrade 2020.5 -> 2021.0
      wpebackend-fdo: upgrade 1.8.3 -> 1.8.4
      libxcrypt-compat: upgrade 4.4.19 -> 4.4.20
      Revert "cml1.bbclass: Return sorted list of cfg files"
      bitbake: server/process: Handle error in heartbeat funciton in OOM case
      glibc: Add 8GB VM usage cap for usermode test suite
      cve-extra-exclusions.inc: add exclusion list for intractable CVE's
      rpm: Drop CVE exclusion as database fixed to handle
      cve-extra-exclusions: Fix typos
      grub: Exclude CVE-2019-14865 from cve-check
      cve-extra-exclusions.inc: Clean up merged CPE updates
      ltp: Disable problematic tests causing autobuilder hangs
      python3-setuptools: upgrade 56.0.0 -> 56.2.0
      distro/maintainers: Fix up the ptest image entries
      oeqa/runtime/rpm: Drop log message counting test component
      linux-firmware: upgrade 20210315 -> 20210511
      libxcrypt: Upgrade 4.4.20 -> 4.4.22
      iproute2: upgrade 5.11.0 -> 5.12.0
      libx11: upgrade 1.7.0 -> 1.7.1
      python3-hypothesis: upgrade 6.12.0 -> 6.13.7
      pango: upgrade 1.48.4 -> 1.48.5
      python3-importlib-metadata: upgrade 4.0.1 -> 4.3.0
      libmodulemd: upgrade 2.12.0 -> 2.12.1
      vte: upgrade 0.64.0 -> 0.64.1
      libinput: upgrade 1.17.2 -> 1.17.3
      gi-docgen: upgrade 2021.5 -> 2021.6
      kmod: upgrade 28 -> 29
      xorgproto: upgrade 2021.4 -> 2021.4.99.1
      libpcre2: upgrade 10.36 -> 10.37
      libepoxy: upgrade 1.5.5 -> 1.5.8
      python3-jinja2: upgrade 3.0.0 -> 3.0.1
      curl: upgrade 7.76.1 -> 7.77.0
      python3-setuptools: upgrade 56.2.0 -> 57.0.0
      oeqa/qemurunner: Improve timeout handling

Richard Weinberger (1):
      Add support for erofs filesystems

Robert Joslyn (3):
      liberation-fonts: Update to 2.1.4
      epiphany: Update to 40.1
      btrfs-tools: Update to 5.12

Robert P. J. Day (8):
      sdk-manual: couple minor fixes in using.rst
      sdk-manual: various cleanups to intro.rst
      ref-manual: delete references to dead LSB compliance
      ref-manual: delete extraneous back quote
      image.bbclass: fix comment "pacackages" -> "packages"
      meta/lib/oe/rootfs.py: Fix typo "Restoreing" -> "Restoring"
      bitbake.conf: alphabetize contents of ASSUME_PROVIDED
      ref-manual: add links to some variables in glossary

Romain Naour (1):
      dejagnu: needs expect at runtime

Ross Burton (12):
      cairo: backport patch for CVE-2020-35492
      libnotify: whitelist CVE-2013-7381 (specific to the NodeJS bindings)
      builder: whitelist CVE-2008-4178 (a different builder)
      libarchive: disable redundant libxml2 PACKAGECONFIG
      meson: update patch status
      cups: whitelist CVE-2021-25317
      libsolv: add missing db dependency
      rpm: turn Berkeley DB hard dependency into PACKAGECONFIG
      python3: update status on upstreamed patch
      ref-manual: Ubuntu 20.04 is also LTS
      package_rpm: pass XZ_THREADS to rpm
      gcc: revert libstc++-gdb.py installation changes

Samuli Piippo (3):
      gcc-cross-canadian: add symlinks for ld.bfd and ld.gold
      libarchive: enable zstd support
      cmake-native: enabled zstd support

Stefan Ghinea (1):
      boost: fix do_fetch failure

Steve Sakoman (1):
      expat: set CVE_PRODUCT

Tony Tascioglu (3):
      libxml2: Reformat runtest.patch
      libxml2: Add bash dependency for ptests.
      libxml2: Update to 2.9.12

Trevor Gamblin (2):
      python3: upgrade 3.9.4 -> 3.9.5
      bind: upgrade 9.16.15 -> 9.16.16

Ulrich Ölmann (1):
      local.conf.sample: fix typo

Vinícius Ossanes Aquino (1):
      lttng-modules: backport patches to fix build against 5.12+ kernel

Yann Dirson (1):
      linux-firmware: include all relevant files in -bcm4356

hongxu (1):
      gdk-pixbuf: fix nativesdk do_configure failed

wangmy (21):
      python3-pygments: upgrade 2.8.1 -> 2.9.0
      at-spi2-core: upgrade 2.40.0 -> 2.40.1
      ell: upgrade 0.39 -> 0.40
      kexec-tools: upgrade 2.0.21 -> 2.0.22
      go: upgrade 1.16.3 -> 1.16.4
      python3-attrs: upgrade 20.3.0 -> 21.2.0
      python3-six: upgrade 1.15.0 -> 1.16.0
      vulkan-samples: update to latest revision
      vulkan-headers: upgrade 1.2.170.0 -> 1.2.176.0
      vulkan-tools: upgrade 1.2.170.0 -> 1.2.176.0
      vulkan-loader: upgrade 1.2.170.0 -> 1.2.176.0
      distcc: upgrade 3.3.5 -> 3.4
      libdrm: upgrade 2.4.105 -> 2.4.106
      libidn2: upgrade 2.3.0 -> 2.3.1
      libtasn1: upgrade 4.16.0 -> 4.17.0
      python3-libarchive-c: upgrade 2.9 -> 3.0
      python3-markupsafe: upgrade 2.0.0 -> 2.0.1
      python3-more-itertools: upgrade 8.7.0 -> 8.8.0
      python3-pytest: upgrade 6.2.3 -> 6.2.4
      logrotate: upgrade 3.18.0 -> 3.18.1
      stress-ng: upgrade 0.12.08 -> 0.12.09

zhengruoqin (10):
      busybox: upgrade 1.33.0 -> 1.33.1
      rng-tools: upgrade 6.11 -> 6.12
      rpcbind: upgrade 1.2.5 -> 1.2.6
      sysklogd: upgrade 2.2.2 -> 2.2.3
      python3-importlib-metadata: upgrade 3.10.1 -> 4.0.1
      python3-sortedcontainers: upgrade 2.3.0 -> 2.4.0
      rxvt-unicode: upgrade 9.22 -> 9.26
      libedit: upgrade 20210419-3.1 -> 20210522-3.1
      libtest-needs-perl: upgrade 0.002006 -> 0.002009
      libucontext: upgrade 0.10 -> 1.1

Change-Id: I5e5148036ac2a7918974733e5751c3392139b17e
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/poky/meta/classes/baremetal-image.bbclass b/poky/meta/classes/baremetal-image.bbclass
index b0f5e88..8708a54 100644
--- a/poky/meta/classes/baremetal-image.bbclass
+++ b/poky/meta/classes/baremetal-image.bbclass
@@ -50,6 +50,10 @@
         if os.path.lexists(manifest_link):
             os.remove(manifest_link)
         os.symlink(os.path.basename(manifest_name), manifest_link)
+    # A lot of postprocess commands assume the existence of rootfs/etc
+    sysconfdir = d.getVar("IMAGE_ROOTFS") + d.getVar('sysconfdir')
+    bb.utils.mkdirhier(sysconfdir)
+
     execute_pre_post_process(d, d.getVar('ROOTFS_POSTPROCESS_COMMAND'))
 }
 
@@ -73,7 +77,19 @@
 QB_MEM ?= "-m 256"
 QB_DEFAULT_FSTYPE ?= "bin"
 QB_DTB ?= ""
-QB_OPT_APPEND = "-nographic"
+QB_OPT_APPEND_append = " -nographic"
+
+# RISC-V tunes set the BIOS, unset, and instruct QEMU to
+# ignore the BIOS and boot from -kernel
+QB_DEFAULT_BIOS_qemuriscv64 = ""
+QB_OPT_APPEND_append_qemuriscv64 = " -bios none"
+
+
+# Use the medium-any code model for the RISC-V 64 bit implementation,
+# since medlow can only access addresses below 0x80000000 and RAM
+# starts at 0x80000000 on RISC-V 64
+CFLAGS_append_qemuriscv64 = " -mcmodel=medany"
+
 
 # This next part is necessary to trick the build system into thinking
 # its building an image recipe so it generates the qemuboot.conf
diff --git a/poky/meta/classes/cml1.bbclass b/poky/meta/classes/cml1.bbclass
index 1c3d70b..d319d66 100644
--- a/poky/meta/classes/cml1.bbclass
+++ b/poky/meta/classes/cml1.bbclass
@@ -6,7 +6,7 @@
         if s.endswith('.cfg'):
             sources_list.append(s)
 
-    return sorted(sources_list)
+    return sources_list
 
 cml1_do_configure() {
 	set -e
diff --git a/poky/meta/classes/gi-docgen.bbclass b/poky/meta/classes/gi-docgen.bbclass
new file mode 100644
index 0000000..5750f70
--- /dev/null
+++ b/poky/meta/classes/gi-docgen.bbclass
@@ -0,0 +1,24 @@
+# gi-docgen is a new gnome documentation generator, which
+# seems to be a successor to gtk-doc:
+# https://gitlab.gnome.org/GNOME/gi-docgen
+
+# This variable is set to True if api-documentation is in
+# DISTRO_FEATURES, and False otherwise.
+GIDOCGEN_ENABLED ?= "${@bb.utils.contains('DISTRO_FEATURES', 'api-documentation', 'True', 'False', d)}"
+# When building native recipes, disable gi-docgen, as it is not necessary,
+# pulls in additional dependencies, and makes build times longer
+GIDOCGEN_ENABLED_class-native = "False"
+GIDOCGEN_ENABLED_class-nativesdk = "False"
+
+# meson: default option name to enable/disable gi-docgen. This matches most
+# projects' configuration. In doubts - check meson_options.txt in project's
+# source path.
+GIDOCGEN_MESON_OPTION ?= 'gtk_doc'
+GIDOCGEN_MESON_ENABLE_FLAG ?= 'true'
+GIDOCGEN_MESON_DISABLE_FLAG ?= 'false'
+
+# Auto enable/disable based on GIDOCGEN_ENABLED
+EXTRA_OEMESON_prepend = "-D${GIDOCGEN_MESON_OPTION}=${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '${GIDOCGEN_MESON_ENABLE_FLAG}', '${GIDOCGEN_MESON_DISABLE_FLAG}', d)} "
+
+DEPENDS_append = "${@' gi-docgen-native gi-docgen' if d.getVar('GIDOCGEN_ENABLED') == 'True' else ''}"
+
diff --git a/poky/meta/classes/gnomebase.bbclass b/poky/meta/classes/gnomebase.bbclass
index efcb6ca..884b1a1 100644
--- a/poky/meta/classes/gnomebase.bbclass
+++ b/poky/meta/classes/gnomebase.bbclass
@@ -1,5 +1,6 @@
 def gnome_verdir(v):
-    return oe.utils.trim_version(v, 2)
+    return ".".join(v.split(".")[:-1])
+
 
 GNOME_COMPRESS_TYPE ?= "xz"
 SECTION ?= "x11/gnome"
diff --git a/poky/meta/classes/icecc.bbclass b/poky/meta/classes/icecc.bbclass
index d095305..80943fc 100644
--- a/poky/meta/classes/icecc.bbclass
+++ b/poky/meta/classes/icecc.bbclass
@@ -138,10 +138,6 @@
     if icecc_is_cross_canadian(bb, d):
         return "no"
 
-    if d.getVar('INHIBIT_DEFAULT_DEPS', False):
-        # We don't have a compiler, so no icecc
-        return "no"
-
     pn = d.getVar('PN')
     bpn = d.getVar('BPN')
 
@@ -362,7 +358,7 @@
     ICECC_WHICH_AS="${@bb.utils.which(os.getenv('PATH'), 'as')}"
     if [ ! -x "${ICECC_CC}" -o ! -x "${ICECC_CXX}" ]
     then
-        bbwarn "Cannot use icecc: could not get ICECC_CC or ICECC_CXX"
+        bbnote "Cannot use icecc: could not get ICECC_CC or ICECC_CXX"
         return
     fi
 
diff --git a/poky/meta/classes/image-live.bbclass b/poky/meta/classes/image-live.bbclass
index 8b08305..fd876ed 100644
--- a/poky/meta/classes/image-live.bbclass
+++ b/poky/meta/classes/image-live.bbclass
@@ -261,4 +261,4 @@
 do_bootimg[subimages] = "hddimg iso"
 do_bootimg[imgsuffix] = "."
 
-addtask bootimg before do_image_complete
+addtask bootimg before do_image_complete after do_rootfs
diff --git a/poky/meta/classes/image-mklibs.bbclass b/poky/meta/classes/image-mklibs.bbclass
deleted file mode 100644
index 68e11d4..0000000
--- a/poky/meta/classes/image-mklibs.bbclass
+++ /dev/null
@@ -1,56 +0,0 @@
-do_rootfs[depends] += "mklibs-native:do_populate_sysroot"
-
-IMAGE_PREPROCESS_COMMAND += "mklibs_optimize_image; "
-
-inherit linuxloader
-
-mklibs_optimize_image_doit() {
-	rm -rf ${WORKDIR}/mklibs
-	mkdir -p ${WORKDIR}/mklibs/dest
-	cd ${IMAGE_ROOTFS}
-	du -bs > ${WORKDIR}/mklibs/du.before.mklibs.txt
-
-	# Build a list of dynamically linked executable ELF files.
-	# Omit libc/libpthread as a special case because it has an interpreter
-	# but is primarily what we intend to strip down.
-	for i in `find . -type f -executable ! -name 'libc-*' ! -name 'libpthread-*'`; do
-		file $i | grep -q ELF || continue
-		${HOST_PREFIX}readelf -l $i | grep -q INTERP || continue
-		echo $i
-	done > ${WORKDIR}/mklibs/executables.list
-
-	dynamic_loader=${@get_linuxloader(d)}
-
-	mklibs -v \
-		--ldlib ${dynamic_loader} \
-		--libdir ${baselib} \
-		--sysroot ${PKG_CONFIG_SYSROOT_DIR} \
-		--gcc-options "--sysroot=${PKG_CONFIG_SYSROOT_DIR}" \
-		--root ${IMAGE_ROOTFS} \
-		--target `echo ${TARGET_PREFIX} | sed 's/-$//' ` \
-		-d ${WORKDIR}/mklibs/dest \
-		`cat ${WORKDIR}/mklibs/executables.list`
-
-	cd ${WORKDIR}/mklibs/dest
-	for i in *
-	do
-		cp $i `find ${IMAGE_ROOTFS} -name $i`
-	done
-
-	cd ${IMAGE_ROOTFS}
-	du -bs > ${WORKDIR}/mklibs/du.after.mklibs.txt
-
-	echo rootfs size before mklibs optimization: `cat ${WORKDIR}/mklibs/du.before.mklibs.txt`
-	echo rootfs size after mklibs optimization: `cat ${WORKDIR}/mklibs/du.after.mklibs.txt`
-}
-
-mklibs_optimize_image() {
-	for img in ${MKLIBS_OPTIMIZED_IMAGES}
-	do
-		if [ "${img}" = "${PN}" ] || [ "${img}" = "all" ]
-		then
-			mklibs_optimize_image_doit
-			break
-		fi
-	done
-}
diff --git a/poky/meta/classes/image.bbclass b/poky/meta/classes/image.bbclass
index 353cc67..67603d9 100644
--- a/poky/meta/classes/image.bbclass
+++ b/poky/meta/classes/image.bbclass
@@ -38,7 +38,7 @@
 # Generate companion debugfs?
 IMAGE_GEN_DEBUGFS ?= "0"
 
-# These pacackages will be installed as additional into debug rootfs
+# These packages will be installed as additional into debug rootfs
 IMAGE_INSTALL_DEBUGFS ?= ""
 
 # These packages will be removed from a read-only rootfs after all other
diff --git a/poky/meta/classes/image_types.bbclass b/poky/meta/classes/image_types.bbclass
index 8028691..2a45d45 100644
--- a/poky/meta/classes/image_types.bbclass
+++ b/poky/meta/classes/image_types.bbclass
@@ -108,6 +108,11 @@
 IMAGE_CMD_squashfs-lzo = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-lzo ${EXTRA_IMAGECMD} -noappend -comp lzo"
 IMAGE_CMD_squashfs-lz4 = "mksquashfs ${IMAGE_ROOTFS} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.squashfs-lz4 ${EXTRA_IMAGECMD} -noappend -comp lz4"
 
+IMAGE_CMD_erofs = "mkfs.erofs ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.erofs ${IMAGE_ROOTFS}"
+IMAGE_CMD_erofs-lz4 = "mkfs.erofs -zlz4 ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.erofs-lz4 ${IMAGE_ROOTFS}"
+IMAGE_CMD_erofs-lz4hc = "mkfs.erofs -zlz4hc ${EXTRA_IMAGECMD} ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.erofs-lz4hc ${IMAGE_ROOTFS}"
+
+
 IMAGE_CMD_TAR ?= "tar"
 # ignore return code 1 "file changed as we read it" as other tasks(e.g. do_image_wic) may be hardlinking rootfs
 IMAGE_CMD_tar = "${IMAGE_CMD_TAR} --sort=name --format=posix --numeric-owner -cf ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.tar -C ${IMAGE_ROOTFS} . || [ $? -eq 1 ]"
@@ -243,6 +248,9 @@
 do_image_ubifs[depends] += "mtd-utils-native:do_populate_sysroot"
 do_image_multiubi[depends] += "mtd-utils-native:do_populate_sysroot"
 do_image_f2fs[depends] += "f2fs-tools-native:do_populate_sysroot"
+do_image_erofs[depends] += "erofs-utils-native:do_populate_sysroot"
+do_image_erofs_lz4[depends] += "erofs-utils-native:do_populate_sysroot"
+do_image_erofs_lz4hc[depends] += "erofs-utils-native:do_populate_sysroot"
 
 # This variable is available to request which values are suitable for IMAGE_FSTYPES
 IMAGE_TYPES = " \
@@ -261,6 +269,7 @@
     wic wic.gz wic.bz2 wic.lzma wic.zst \
     container \
     f2fs \
+    erofs erofs-lz4 erofs-lz4hc \
 "
 
 # Compression is a special case of conversion. The old variable
diff --git a/poky/meta/classes/kernel-fitimage.bbclass b/poky/meta/classes/kernel-fitimage.bbclass
index 5cfd8af..e363eeb 100644
--- a/poky/meta/classes/kernel-fitimage.bbclass
+++ b/poky/meta/classes/kernel-fitimage.bbclass
@@ -217,13 +217,13 @@
 	bootscr_sign_keyname="${UBOOT_SIGN_KEYNAME}"
 
         cat << EOF >> ${1}
-                bootscr@${2} {
+                bootscr-${2} {
                         description = "U-boot script";
                         data = /incbin/("${3}");
                         type = "script";
                         arch = "${UBOOT_ARCH}";
                         compression = "none";
-                        hash@1 {
+                        hash-1 {
                                 algo = "${bootscr_csum}";
                         };
                 };
@@ -232,7 +232,7 @@
 	if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${FIT_SIGN_INDIVIDUAL}" = "1" -a -n "${bootscr_sign_keyname}" ] ; then
 		sed -i '$ d' ${1}
 		cat << EOF >> ${1}
-                        signature@1 {
+                        signature-1 {
                                 algo = "${bootscr_csum},${bootscr_sign_algo}";
                                 key-name-hint = "${bootscr_sign_keyname}";
                         };
@@ -331,7 +331,7 @@
 
 	conf_csum="${FIT_HASH_ALG}"
 	conf_sign_algo="${FIT_SIGN_ALG}"
-	if [ -n "${UBOOT_SIGN_ENABLE}" ] ; then
+	if [ "${UBOOT_SIGN_ENABLE}" = "1" ] ; then
 		conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
 	fi
 
@@ -383,7 +383,7 @@
 	if [ -n "${bootscr_id}" ]; then
 		conf_desc="${conf_desc}${sep}u-boot script"
 		sep=", "
-		bootscr_line="bootscr = \"bootscr@${bootscr_id}\";"
+		bootscr_line="bootscr = \"bootscr-${bootscr_id}\";"
 	fi
 
 	if [ -n "${config_id}" ]; then
@@ -667,7 +667,34 @@
 
 addtask assemble_fitimage_initramfs before do_deploy after do_bundle_initramfs
 
-addtask generate_rsa_keys before do_assemble_fitimage after do_compile
+do_kernel_generate_rsa_keys() {
+	if [ "${UBOOT_SIGN_ENABLE}" = "0" ] && [ "${FIT_GENERATE_KEYS}" = "1" ]; then
+		bbwarn "FIT_GENERATE_KEYS is set to 1 even though UBOOT_SIGN_ENABLE is set to 0. The keys will not be generated as they won't be used."
+	fi
+
+	if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ "${FIT_GENERATE_KEYS}" = "1" ]; then
+
+		# Generate keys only if they don't already exist
+		if [ ! -f "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key ] || \
+			[ ! -f "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".crt ]; then
+
+			# make directory if it does not already exist
+			mkdir -p "${UBOOT_SIGN_KEYDIR}"
+
+			echo "Generating RSA private key for signing fitImage"
+			openssl genrsa ${FIT_KEY_GENRSA_ARGS} -out \
+				"${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key \
+			"${FIT_SIGN_NUMBITS}"
+
+			echo "Generating certificate for signing fitImage"
+			openssl req ${FIT_KEY_REQ_ARGS} "${FIT_KEY_SIGN_PKCS}" \
+				-key "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key \
+				-out "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".crt
+		fi
+	fi
+}
+
+addtask kernel_generate_rsa_keys before do_assemble_fitimage after do_compile
 
 kernel_do_deploy[vardepsexclude] = "DATETIME"
 kernel_do_deploy_append() {
@@ -718,13 +745,13 @@
 # - Removes do_assemble_fitimage. FIT generation is done through
 #   do_assemble_fitimage_initramfs. do_assemble_fitimage is not needed
 #   and should not be part of the tasks to be executed.
-# - Since do_generate_rsa_keys is inserted by default
+# - Since do_kernel_generate_rsa_keys is inserted by default
 #   between do_compile and do_assemble_fitimage, this is
-#   not suitable in case of initramfs bundles.  do_generate_rsa_keys
+#   not suitable in case of initramfs bundles.  do_kernel_generate_rsa_keys
 #   should be between do_bundle_initramfs and do_assemble_fitimage_initramfs.
 python () {
     if d.getVar('INITRAMFS_IMAGE_BUNDLE') == "1":
         bb.build.deltask('do_assemble_fitimage', d)
-        bb.build.deltask('generate_rsa_keys', d)
-        bb.build.addtask('generate_rsa_keys', 'do_assemble_fitimage_initramfs', 'do_bundle_initramfs', d)
+        bb.build.deltask('kernel_generate_rsa_keys', d)
+        bb.build.addtask('kernel_generate_rsa_keys', 'do_assemble_fitimage_initramfs', 'do_bundle_initramfs', d)
 }
diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass
index 30f07de..ba139dd 100644
--- a/poky/meta/classes/kernel-yocto.bbclass
+++ b/poky/meta/classes/kernel-yocto.bbclass
@@ -113,6 +113,8 @@
 	cd ${S}
 	export KMETA=${KMETA}
 
+	bbnote "do_kernel_metadata: for summary/debug, set KCONF_AUDIT_LEVEL > 0"
+
 	# if kernel tools are available in-tree, they are preferred
 	# and are placed on the path before any external tools. Unless
 	# the external tools flag is set, in that case we do nothing.
@@ -290,6 +292,21 @@
 			fi
 		fi
 	fi
+
+	if [ ${KCONF_AUDIT_LEVEL} -gt 0 ]; then
+		bbnote "kernel meta data summary for ${KMACHINE} (${LINUX_KERNEL_TYPE}):"
+		bbnote "======================================================================"
+		if [ -n "${KMETA_EXTERNAL_BSPS}" ]; then
+			bbnote "Non kernel-cache (external) bsp"
+		fi
+		bbnote "BSP entry point / definition: $bsp_definition"
+		if [ -n "$in_tree_defconfig" ]; then
+			bbnote "KBUILD_DEFCONFIG: ${KBUILD_DEFCONFIG}"
+		fi
+		bbnote "Fragments from SRC_URI: $sccs_from_src_uri"
+		bbnote "KERNEL_FEATURES: $KERNEL_FEATURES_FINAL"
+		bbnote "Final scc/cfg list: $sccs_defconfig $bsp_definition $sccs $KERNEL_FEATURES_FINAL"
+	fi
 }
 
 do_patch() {
diff --git a/poky/meta/classes/meson-routines.bbclass b/poky/meta/classes/meson-routines.bbclass
new file mode 100644
index 0000000..be3aeed
--- /dev/null
+++ b/poky/meta/classes/meson-routines.bbclass
@@ -0,0 +1,51 @@
+inherit siteinfo
+
+def meson_array(var, d):
+    items = d.getVar(var).split()
+    return repr(items[0] if len(items) == 1 else items)
+
+# Map our ARCH values to what Meson expects:
+# http://mesonbuild.com/Reference-tables.html#cpu-families
+def meson_cpu_family(var, d):
+    import re
+    arch = d.getVar(var)
+    if arch == 'powerpc':
+        return 'ppc'
+    elif arch == 'powerpc64' or arch == 'powerpc64le':
+        return 'ppc64'
+    elif arch == 'armeb':
+        return 'arm'
+    elif arch == 'aarch64_be':
+        return 'aarch64'
+    elif arch == 'mipsel':
+        return 'mips'
+    elif arch == 'mips64el':
+        return 'mips64'
+    elif re.match(r"i[3-6]86", arch):
+        return "x86"
+    elif arch == "microblazeel":
+        return "microblaze"
+    else:
+        return arch
+
+# Map our OS values to what Meson expects:
+# https://mesonbuild.com/Reference-tables.html#operating-system-names
+def meson_operating_system(var, d):
+    os = d.getVar(var)
+    if "mingw" in os:
+        return "windows"
+    # avoid e.g 'linux-gnueabi'
+    elif "linux" in os:
+        return "linux"
+    else:
+        return os
+
+def meson_endian(prefix, d):
+    arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
+    sitedata = siteinfo_data_for_machine(arch, os, d)
+    if "endian-little" in sitedata:
+        return "little"
+    elif "endian-big" in sitedata:
+        return "big"
+    else:
+        bb.fatal("Cannot determine endianism for %s-%s" % (arch, os))
diff --git a/poky/meta/classes/meson.bbclass b/poky/meta/classes/meson.bbclass
index bf9b02e..8ae0285 100644
--- a/poky/meta/classes/meson.bbclass
+++ b/poky/meta/classes/meson.bbclass
@@ -1,4 +1,4 @@
-inherit siteinfo python3native
+inherit python3native meson-routines
 
 DEPENDS_append = " meson-native ninja-native"
 
@@ -35,56 +35,6 @@
 MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross"
 MESON_CROSS_FILE_class-nativesdk = "--cross-file ${WORKDIR}/meson.cross"
 
-def meson_array(var, d):
-    items = d.getVar(var).split()
-    return repr(items[0] if len(items) == 1 else items)
-
-# Map our ARCH values to what Meson expects:
-# http://mesonbuild.com/Reference-tables.html#cpu-families
-def meson_cpu_family(var, d):
-    import re
-    arch = d.getVar(var)
-    if arch == 'powerpc':
-        return 'ppc'
-    elif arch == 'powerpc64' or arch == 'powerpc64le':
-        return 'ppc64'
-    elif arch == 'armeb':
-        return 'arm'
-    elif arch == 'aarch64_be':
-        return 'aarch64'
-    elif arch == 'mipsel':
-        return 'mips'
-    elif arch == 'mips64el':
-        return 'mips64'
-    elif re.match(r"i[3-6]86", arch):
-        return "x86"
-    elif arch == "microblazeel":
-        return "microblaze"
-    else:
-        return arch
-
-# Map our OS values to what Meson expects:
-# https://mesonbuild.com/Reference-tables.html#operating-system-names
-def meson_operating_system(var, d):
-    os = d.getVar(var)
-    if "mingw" in os:
-        return "windows"
-    # avoid e.g 'linux-gnueabi'
-    elif "linux" in os:
-        return "linux"
-    else:
-        return os
-
-def meson_endian(prefix, d):
-    arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
-    sitedata = siteinfo_data_for_machine(arch, os, d)
-    if "endian-little" in sitedata:
-        return "little"
-    elif "endian-big" in sitedata:
-        return "big"
-    else:
-        bb.fatal("Cannot determine endianism for %s-%s" % (arch, os))
-
 addtask write_config before do_configure
 do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS LDFLAGS"
 do_write_config() {
diff --git a/poky/meta/classes/native.bbclass b/poky/meta/classes/native.bbclass
index a0838e4..561cc23 100644
--- a/poky/meta/classes/native.bbclass
+++ b/poky/meta/classes/native.bbclass
@@ -119,6 +119,7 @@
     pn = e.data.getVar("PN")
     if not pn.endswith("-native"):
         return
+    bpn = e.data.getVar("BPN")
 
     # Set features here to prevent appends and distro features backfill
     # from modifying native distro features
@@ -146,7 +147,10 @@
             elif "-cross-" in dep:
                 newdeps.append(dep.replace("-cross", "-native"))
             elif not dep.endswith("-native"):
-                newdeps.append(dep.replace("-native", "") + "-native")
+                # Replace ${PN} with ${BPN} in the dependency to make sure
+                # dependencies on, e.g., ${PN}-foo become ${BPN}-foo-native
+                # rather than ${BPN}-native-foo-native.
+                newdeps.append(dep.replace(pn, bpn) + "-native")
             else:
                 newdeps.append(dep)
         d.setVar(varname, " ".join(newdeps), parsing=True)
@@ -166,7 +170,7 @@
         if prov.find(pn) != -1:
             nprovides.append(prov)
         elif not prov.endswith("-native"):
-            nprovides.append(prov.replace(prov, prov + "-native"))
+            nprovides.append(prov + "-native")
         else:
             nprovides.append(prov)
     e.data.setVar("PROVIDES", ' '.join(nprovides))
diff --git a/poky/meta/classes/npm.bbclass b/poky/meta/classes/npm.bbclass
index 55a6985..8f8712a 100644
--- a/poky/meta/classes/npm.bbclass
+++ b/poky/meta/classes/npm.bbclass
@@ -247,8 +247,10 @@
         # Add node-gyp configuration
         configs.append(("arch", d.getVar("NPM_ARCH")))
         configs.append(("release", "true"))
-        sysroot = d.getVar("RECIPE_SYSROOT_NATIVE")
-        nodedir = os.path.join(sysroot, d.getVar("prefix_native").strip("/"))
+        nodedir = d.getVar("NPM_NODEDIR")
+        if not nodedir:
+            sysroot = d.getVar("RECIPE_SYSROOT_NATIVE")
+            nodedir = os.path.join(sysroot, d.getVar("prefix_native").strip("/"))
         configs.append(("nodedir", nodedir))
         configs.append(("python", d.getVar("PYTHON")))
 
diff --git a/poky/meta/classes/package_rpm.bbclass b/poky/meta/classes/package_rpm.bbclass
index 84a9a6d..86706da 100644
--- a/poky/meta/classes/package_rpm.bbclass
+++ b/poky/meta/classes/package_rpm.bbclass
@@ -684,8 +684,8 @@
     cmd = cmd + " --define '_use_internal_dependency_generator 0'"
     cmd = cmd + " --define '_binaries_in_noarch_packages_terminate_build 0'"
     cmd = cmd + " --define '_build_id_links none'"
-    cmd = cmd + " --define '_binary_payload w6T.xzdio'"
-    cmd = cmd + " --define '_source_payload w6T.xzdio'"
+    cmd = cmd + " --define '_binary_payload w6T%d.xzdio'" % int(d.getVar("XZ_THREADS"))
+    cmd = cmd + " --define '_source_payload w6T%d.xzdio'" % int(d.getVar("XZ_THREADS"))
     cmd = cmd + " --define 'clamp_mtime_to_source_date_epoch 1'"
     cmd = cmd + " --define 'use_source_date_epoch_as_buildtime 1'"
     cmd = cmd + " --define '_buildhost reproducible'"
diff --git a/poky/meta/classes/ptest.bbclass b/poky/meta/classes/ptest.bbclass
index 47611ed..4669162 100644
--- a/poky/meta/classes/ptest.bbclass
+++ b/poky/meta/classes/ptest.bbclass
@@ -20,6 +20,8 @@
 
 PACKAGES =+ "${@bb.utils.contains('PTEST_ENABLED', '1', '${PN}-ptest', '', d)}"
 
+require conf/distro/include/ptest-packagelists.inc
+
 do_configure_ptest() {
     :
 }
@@ -116,4 +118,13 @@
     if not(d.getVar('PTEST_ENABLED') == "1"):
         for i in ['do_configure_ptest_base', 'do_compile_ptest_base', 'do_install_ptest_base']:
             bb.build.deltask(i, d)
+
+    # This checks that ptest package is actually included
+    # in standard oe-core ptest images - only for oe-core recipes
+    if not 'meta/recipes' in d.getVar('FILE') or not(d.getVar('PTEST_ENABLED') == "1"):
+        return
+
+    enabled_ptests = " ".join([d.getVar('PTESTS_FAST'),d.getVar('PTESTS_SLOW'), d.getVar('PTESTS_PROBLEMS')]).split()
+    if (d.getVar('PN') + "-ptest").replace(d.getVar('MLPREFIX'), '') not in enabled_ptests:
+         bb.error("Recipe %s supports ptests but is not included in oe-core's conf/distro/include/ptest-packagelists.inc" % d.getVar("PN"))
 }
diff --git a/poky/meta/classes/qemuboot.bbclass b/poky/meta/classes/qemuboot.bbclass
index 1f8012e..2b50dda 100644
--- a/poky/meta/classes/qemuboot.bbclass
+++ b/poky/meta/classes/qemuboot.bbclass
@@ -19,6 +19,9 @@
 # QB_CPU_KVM: the similar to QB_CPU, but used when kvm, e.g., '-cpu kvm64',
 #             set it when support kvm.
 #
+# QB_SMP: amount of CPU cores inside qemu guest, each mapped to a thread on the host,
+#             e.g. "-smp 8".
+#
 # QB_KERNEL_CMDLINE_APPEND: options to append to kernel's -append
 #                           option, e.g., "console=ttyS0 console=tty"
 #
@@ -80,6 +83,7 @@
 # See "runqemu help" for more info
 
 QB_MEM ?= "-m 256"
+QB_SMP ?= ""
 QB_SERIAL_OPT ?= "-serial mon:stdio -serial null"
 QB_DEFAULT_KERNEL ?= "${KERNEL_IMAGETYPE}"
 QB_DEFAULT_FSTYPE ?= "ext4"
diff --git a/poky/meta/classes/sstate.bbclass b/poky/meta/classes/sstate.bbclass
index b1c608d..3a3f7cc 100644
--- a/poky/meta/classes/sstate.bbclass
+++ b/poky/meta/classes/sstate.bbclass
@@ -319,6 +319,8 @@
     if os.path.exists(i):
         with open(i, "r") as f:
             manifests = f.readlines()
+    # We append new entries, we don't remove older entries which may have the same
+    # manifest name but different versions from stamp/workdir. See below.
     if filedata not in manifests:
         with open(i, "a+") as f:
             f.write(filedata)
@@ -704,6 +706,8 @@
 
     return
 
+sstate_package[vardepsexclude] += "SSTATE_SIG_KEY"
+
 def pstaging_fetch(sstatefetch, d):
     import bb.fetch2
 
@@ -1183,11 +1187,21 @@
         i = d.expand("${SSTATE_MANIFESTS}/index-" + a)
         if not os.path.exists(i):
             continue
+        manseen = set()
+        ignore = []
         with open(i, "r") as f:
             lines = f.readlines()
-            for l in lines:
+            for l in reversed(lines):
                 try:
                     (stamp, manifest, workdir) = l.split()
+                    # The index may have multiple entries for the same manifest as the code above only appends
+                    # new entries and there may be an entry with matching manifest but differing version in stamp/workdir.
+                    # The last entry in the list is the valid one, any earlier entries with matching manifests
+                    # should be ignored.
+                    if manifest in manseen:
+                        ignore.append(l)
+                        continue
+                    manseen.add(manifest)
                     if stamp not in stamps and stamp not in preservestamps and stamp in machineindex:
                         toremove.append(l)
                         if stamp not in seen:
@@ -1218,6 +1232,8 @@
 
         with open(i, "w") as f:
             for l in lines:
+                if l in ignore:
+                    continue
                 f.write(l)
     machineindex |= set(stamps)
     with open(mi, "w") as f:
diff --git a/poky/meta/classes/uboot-sign.bbclass b/poky/meta/classes/uboot-sign.bbclass
index d11882f..29b2edc 100644
--- a/poky/meta/classes/uboot-sign.bbclass
+++ b/poky/meta/classes/uboot-sign.bbclass
@@ -255,32 +255,7 @@
 	fi
 }
 
-do_generate_rsa_keys() {
-	if [ "${UBOOT_SIGN_ENABLE}" = "0" ] && [ "${FIT_GENERATE_KEYS}" = "1" ]; then
-		bbwarn "FIT_GENERATE_KEYS is set to 1 even though UBOOT_SIGN_ENABLE is set to 0. The keys will not be generated as they won't be used."
-	fi
-
-	if [ "${UBOOT_SIGN_ENABLE}" = "1" ] && [ "${FIT_GENERATE_KEYS}" = "1" ]; then
-
-		# Generate keys only if they don't already exist
-		if [ ! -f "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key ] || \
-			[ ! -f "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".crt ]; then
-
-			# make directory if it does not already exist
-			mkdir -p "${UBOOT_SIGN_KEYDIR}"
-
-			echo "Generating RSA private key for signing fitImage"
-			openssl genrsa ${FIT_KEY_GENRSA_ARGS} -out \
-				"${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key \
-				"${FIT_SIGN_NUMBITS}"
-
-			echo "Generating certificate for signing fitImage"
-			openssl req ${FIT_KEY_REQ_ARGS} "${FIT_KEY_SIGN_PKCS}" \
-				-key "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".key \
-				-out "${UBOOT_SIGN_KEYDIR}/${UBOOT_SIGN_KEYNAME}".crt
-		fi
-	fi
-
+do_uboot_generate_rsa_keys() {
 	if [ "${SPL_SIGN_ENABLE}" = "0" ] && [ "${UBOOT_FIT_GENERATE_KEYS}" = "1" ]; then
 		bbwarn "UBOOT_FIT_GENERATE_KEYS is set to 1 eventhough SPL_SIGN_ENABLE is set to 0. The keys will not be generated as they won't be used."
 	fi
@@ -308,7 +283,7 @@
 
 }
 
-addtask generate_rsa_keys before do_uboot_assemble_fitimage after do_compile
+addtask uboot_generate_rsa_keys before do_uboot_assemble_fitimage after do_compile
 
 # Create a ITS file for the U-boot FIT, for use when
 # we want to sign it so that the SPL can verify it
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 4fa47d8..f451ba6 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -173,25 +173,25 @@
 # python-native should be here but python relies on building
 # its own in staging
 ASSUME_PROVIDED = "\
+    bash-native \
     bzip2-native \
     chrpath-native \
+    diffstat-native \
     file-native \
     findutils-native \
     gawk-native \
     git-native \
     grep-native \
-    diffstat-native \
-    patch-native \
-    libgcc-native \
     hostperl-runtime-native \
     hostpython-runtime-native \
-    tar-native \
-    virtual/libintl-native \
-    virtual/libiconv-native \
-    virtual/crypt-native \
-    texinfo-native \
-    bash-native \
+    libgcc-native \
+    patch-native \
     sed-native \
+    tar-native \
+    texinfo-native \
+    virtual/crypt-native \
+    virtual/libiconv-native \
+    virtual/libintl-native \
     wget-native \
     "
 # gzip-native should be listed above?
diff --git a/poky/meta/conf/distro/include/cve-extra-exclusions.inc b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
new file mode 100644
index 0000000..cf07acc
--- /dev/null
+++ b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
@@ -0,0 +1,73 @@
+# This file contains a list of CVE's where resolution has proven to be impractical
+# or there is no reasonable action the Yocto Project can take to resolve the issue.
+# It contains all the information we are aware of about an issue and analysis about
+# why we believe it can't be fixed/handled. Additional information is welcome through
+# patches to the file.
+#
+# Include this file in your local.conf or distro.conf to exclude these CVE's
+# from the cve-check results or add to the bitbake command with:
+#     -R conf/distro/include/cve-extra-exclusions.inc
+#
+# The file is not included by default since users should review this data to ensure
+# it matches their expectations and usage of the project.
+#
+# We may also include "in-flight" information about current/ongoing CVE work with
+# the aim of sharing that work and ensuring we don't duplicate it.
+#
+
+
+# strace https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2000-0006
+# CVE is more than 20 years old with no resolution evident
+# broken links in CVE database references make resolution impractical
+CVE_CHECK_WHITELIST += "CVE-2000-0006"
+
+# epiphany https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-0238
+# The issue here is spoofing of domain names using characters from other character sets.
+# There has been much discussion amongst the epiphany and webkit developers and
+# whilst there are improvements about how domains are handled and displayed to the user
+# there is unlikely ever to be a single fix to webkit or epiphany which addresses this
+# problem. Whitelisted as there isn't any mitigation or fix or way to progress this further
+# we can seem to take.
+CVE_CHECK_WHITELIST += "CVE-2005-0238"
+
+# glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-4756
+# Issue is memory exhaustion via glob() calls, e.g. from within an ftp server
+# Best discussion in https://bugzilla.redhat.com/show_bug.cgi?id=681681
+# Upstream don't see it as a security issue, ftp servers shouldn't be passing
+# this to libc glob. Exclude as upstream have no plans to add BSD's GLOB_LIMIT or similar
+CVE_CHECK_WHITELIST += "CVE-2010-4756"
+
+# go https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-29509
+# go https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-29511
+# The encoding/xml package in go can potentially be used for security exploits if not used correctly
+# CVE applies to a netapp product as well as flagging a general issue. We don't ship anything
+# exposing this interface in an exploitable way
+CVE_CHECK_WHITELIST += "CVE-2020-29509 CVE-2020-29511"
+
+
+
+#### CPE update pending ####
+
+# groff:groff-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2000-0803
+# Appears it was fixed in https://git.savannah.gnu.org/cgit/groff.git/commit/?id=07f95f1674217275ed4612f1dcaa95a88435c6a7
+# so from 1.17 onwards. Reported to the database for update by RP 2021/5/9. Update accepted 2021/5/10.
+#CVE_CHECK_WHITELIST += "CVE-2000-0803"
+
+
+
+#### Upstream still working on ####
+
+# qemu:qemu-native:qemu-system-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-20255
+# There was a proposed patch https://lists.gnu.org/archive/html/qemu-devel/2021-02/msg06098.html
+# however qemu maintainers are sure the patch is incorrect and should not be applied.
+
+# flex:flex-native https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-6293
+# Upstream bug, still open: https://github.com/westes/flex/issues/414
+# Causes memory exhaustion so potential DoS but no buffer overflow, low priority
+
+# wget https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-31879
+# https://mail.gnu.org/archive/html/bug-wget/2021-02/msg00002.html
+# No response upstream as of 2021/5/12
+
+
+
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 140f7b4..fa7eb9d 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -111,19 +111,17 @@
 RECIPE_MAINTAINER_pn-core-image-tiny-initramfs = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-full-cmdline = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-kernel-dev = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-core-image-ptest-all = "Richard Purdie <richard.purdie@linuxfoundation.org>"
+RECIPE_MAINTAINER_pn-core-image-ptest-fast = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-sato = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-sato-sdk = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-testmaster-initramfs = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-testmaster = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-clutter = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-weston = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER_pn-core-image-weston-ptest-all = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER_pn-core-image-weston-ptest-fast = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-weston-sdk = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-x11 = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-core-image-sato-dev = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER_pn-core-image-sato-ptest-fast = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER_pn-core-image-sato-sdk-ptest = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-coreutils = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER_pn-cpio = "Denys Dmytriyenko <denis@denix.org>"
 RECIPE_MAINTAINER_pn-cracklib = "Armin Kuster <akuster808@gmail.com>"
@@ -171,6 +169,7 @@
 RECIPE_MAINTAINER_pn-enchant2 = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-encodings = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-epiphany = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-erofs-utils = "Richard Weinberger <richard@nod.at>"
 RECIPE_MAINTAINER_pn-ethtool = "Changhyeok Bae <changhyeok.bae@gmail.com>"
 RECIPE_MAINTAINER_pn-eudev = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-expat = "Yi Zhao <yi.zhao@windriver.com>"
@@ -205,6 +204,7 @@
 RECIPE_MAINTAINER_pn-gettext = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER_pn-gettext-minimal-native = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER_pn-ghostscript = "Hongxu Jia <hongxu.jia@windriver.com>"
+RECIPE_MAINTAINER_pn-gi-docgen = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-git = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER_pn-glew = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-glib-2.0 = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -507,7 +507,6 @@
 RECIPE_MAINTAINER_pn-mini-x-session = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-minicom = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-mkfontscale = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-mklibs-native = "Robert Yang <liezhi.yang@windriver.com>"
 RECIPE_MAINTAINER_pn-mmc-utils = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-mobile-broadband-provider-info = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-modutils-initscripts = "Yi Zhao <yi.zhao@windriver.com>"
@@ -608,6 +607,7 @@
 RECIPE_MAINTAINER_pn-python3-libarchive-c = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER_pn-python3-magic = "Joshua Watt <JPEWhacker@gmail.com>"
 RECIPE_MAINTAINER_pn-python3-mako = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
+RECIPE_MAINTAINER_pn-python3-markdown = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-python3-markupsafe = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-python3-more-itertools = "Tim Orling <timothy.t.orling@linux.intel.com>"
 RECIPE_MAINTAINER_pn-python3-nose = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
@@ -630,11 +630,13 @@
 RECIPE_MAINTAINER_pn-python3-setuptools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-setuptools-scm = "Tim Orling <timothy.t.orling@linux.intel.com>"
 RECIPE_MAINTAINER_pn-python3-six = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
+RECIPE_MAINTAINER_pn-python3-smartypants = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-python3-smmap = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-sortedcontainers = "Tim Orling <timothy.t.orling@linux.intel.com>"
 RECIPE_MAINTAINER_pn-python3-subunit = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-testtools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-toml = "Tim Orling <timothy.t.orling@linux.intel.com>"
+RECIPE_MAINTAINER_pn-python3-typogrify = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-python3-wcwidth = "Tim Orling <timothy.t.orling@linux.intel.com>"
 RECIPE_MAINTAINER_pn-python3-zipp = "Tim Orling <timothy.t.orling@linux.intel.com>"
 RECIPE_MAINTAINER_pn-qemu = "Richard Purdie <richard.purdie@linuxfoundation.org>"
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index e0a876d..aef7034 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -14,17 +14,21 @@
     diffutils-ptest \
     elfutils-ptest \
     ethtool-ptest \
+    expat-ptest \
     flex-ptest \
     gawk-ptest \
     gdbm-ptest \
     gdk-pixbuf-ptest \
     gettext-ptest \
+    glib-networking-ptest \
     gzip-ptest \
     json-glib-ptest \
     libconvert-asn1-perl-ptest \
     liberror-perl-ptest \
+    libnl-ptest \
     libmodule-build-perl-ptest \
     libpcre-ptest \
+    libssh2-ptest \
     libtimedate-perl-ptest \
     libtest-needs-perl-ptest \
     liburi-perl-ptest \
@@ -43,6 +47,12 @@
     opkg-ptest \
     pango-ptest \
     parted-ptest \
+    python3-atomicwrites-ptest \
+    python3-jinja2-ptest \
+    python3-markupsafe-ptest \
+    python3-more-itertools-ptest \
+    python3-pluggy-ptest \
+    python3-wcwidth-ptest \
     qemu-ptest \
     quilt-ptest \
     sed-ptest \
@@ -51,17 +61,7 @@
     zlib-ptest \
 "
 PTESTS_FAST_remove_mips64 = "qemu-ptest"
-
-#PTESTS_PROBLEMS = "\
-#    ruby-ptest \ # Timeout
-#    clutter-1.0-ptest \ # Doesn't build due to depends on cogl-1.0
-#    lz4-ptest \ # Needs a rewrite
-#    rt-tests-ptest \ # Needs to be checked whether it runs at all
-#    bash-ptest \ # Test outcomes are non-deterministic by design
-#    ifupdown-ptest \ # Tested separately in lib/oeqa/selftest/cases/imagefeatures.py
-#    mdadm-ptest \ # Tests rely on non-deterministic sleep() amounts
-#    libinput-ptest \ # Tests need an unloaded system to be reliable
-#"
+PTESTS_PROBLEMS_append_mips64 = "qemu-ptest"
 
 PTESTS_SLOW = "\
     babeltrace-ptest \
@@ -85,3 +85,32 @@
 "
 
 PTESTS_SLOW_remove_riscv64 = "valgrind-ptest"
+PTESTS_PROBLEMS_append_riscv64 = "valgrind-ptest"
+
+#    ruby-ptest \ # Timeout
+#    clutter-1.0-ptest \ # Doesn't build due to depends on cogl-1.0
+#    lz4-ptest \ # Needs a rewrite
+#    rt-tests-ptest \ # Needs to be checked whether it runs at all
+#    bash-ptest \ # Test outcomes are non-deterministic by design
+#    ifupdown-ptest \ # Tested separately in lib/oeqa/selftest/cases/imagefeatures.py
+#    mdadm-ptest \ # Tests rely on non-deterministic sleep() amounts
+#    libinput-ptest \ # Tests need an unloaded system to be reliable
+#    libpam-ptest \ # Needs pam DISTRO_FEATURE
+#    numactl-ptest \ # qemu not (yet) configured for numa; all tests are skipped
+#    libseccomp-ptest \ #  tests failed: 38; add to slow tests once addressed
+#    python3-numpy-ptest \ # requires even more RAM and (possibly) disk space; multiple failures
+
+PTESTS_PROBLEMS = "\
+    ruby-ptest \
+    clutter-1.0-ptest \
+    lz4-ptest \
+    rt-tests-ptest \
+    bash-ptest \
+    ifupdown-ptest \
+    mdadm-ptest \
+    libinput-ptest \
+    libpam-ptest \
+    libseccomp-ptest \
+    numactl-ptest \
+    python3-numpy-ptest \
+"
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index a0c35ee..c6e5ac6 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -22,7 +22,7 @@
 GDBVERSION ?= "10.%"
 GLIBCVERSION ?= "2.33"
 LINUXLIBCVERSION ?= "5.10%"
-QEMUVERSION ?= "5.2%"
+QEMUVERSION ?= "6.0%"
 GOVERSION ?= "1.16%"
 # 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/distro/include/yocto-uninative.inc b/poky/meta/conf/distro/include/yocto-uninative.inc
index 05b79d1..740cca0 100644
--- a/poky/meta/conf/distro/include/yocto-uninative.inc
+++ b/poky/meta/conf/distro/include/yocto-uninative.inc
@@ -8,7 +8,7 @@
 
 UNINATIVE_MAXGLIBCVERSION = "2.33"
 
-UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/3.1/"
-UNINATIVE_CHECKSUM[aarch64] ?= "7fa12b9fe7a95934cc09beb0e8a25ff97179ef3105116015d32548eadd27b024"
-UNINATIVE_CHECKSUM[i686] ?= "bbfcdd48336800b5af97e294918c6586a0a8fa903f127f813b0bd5110de8c55c"
-UNINATIVE_CHECKSUM[x86_64] ?= "5d0611df544edff6428cef7d871257a91aa6ba1bd92f5365a2df8deb54b6b31e"
+UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/3.2/"
+UNINATIVE_CHECKSUM[aarch64] ?= "4f0872cdca2775b637a8a99815ca5c8dd42146abe903a24a50ee0448358c764b"
+UNINATIVE_CHECKSUM[i686] ?= "e2eeab92e67263db37d9bb6d4c58579abd1f47ff4cded3171bde572fece124b2"
+UNINATIVE_CHECKSUM[x86_64] ?= "3ee8c7d55e2d4c7ae3887cddb97219f97b94efddfeee2e24923c0cb0e8ce84c6"
diff --git a/poky/meta/conf/machine/include/qemuboot-x86.inc b/poky/meta/conf/machine/include/qemuboot-x86.inc
index 2a4760c..a2dcdc6 100644
--- a/poky/meta/conf/machine/include/qemuboot-x86.inc
+++ b/poky/meta/conf/machine/include/qemuboot-x86.inc
@@ -1,13 +1,14 @@
 # For runqemu
 IMAGE_CLASSES += "qemuboot"
-QB_CPU_x86 = "-cpu core2duo"
-QB_CPU_KVM_x86 = "-cpu core2duo"
+QB_SMP = "-smp 4"
+QB_CPU_x86 = "-cpu IvyBridge -machine q35"
+QB_CPU_KVM_x86 = "-cpu IvyBridge -machine q35"
 
-QB_CPU_x86-64 = "-cpu core2duo"
-QB_CPU_KVM_x86-64 = "-cpu core2duo"
+QB_CPU_x86-64 = "-cpu IvyBridge -machine q35"
+QB_CPU_KVM_x86-64 = "-cpu IvyBridge -machine q35"
 
 QB_AUDIO_DRV = "alsa"
 QB_AUDIO_OPT = "-soundhw ac97,es1370"
-QB_KERNEL_CMDLINE_APPEND = "oprofile.timer=1"
+QB_KERNEL_CMDLINE_APPEND = "oprofile.timer=1 tsc=reliable no_timer_check rcupdate.rcu_expedited=1"
 QB_OPT_APPEND = "-usb -device usb-tablet"
 
diff --git a/poky/meta/conf/machine/qemuarm.conf b/poky/meta/conf/machine/qemuarm.conf
index e5ec4cc..34fcde6 100644
--- a/poky/meta/conf/machine/qemuarm.conf
+++ b/poky/meta/conf/machine/qemuarm.conf
@@ -16,6 +16,7 @@
 QB_SYSTEM_NAME = "qemu-system-arm"
 QB_MACHINE = "-machine virt,highmem=off"
 QB_CPU = "-cpu cortex-a15"
+QB_SMP = "-smp 4"
 # Standard Serial console
 QB_KERNEL_CMDLINE_APPEND = "vmalloc=256"
 # For graphics to work we need to define the VGA device as well as the necessary USB devices
diff --git a/poky/meta/conf/machine/qemuarm64.conf b/poky/meta/conf/machine/qemuarm64.conf
index 51f7ecd..150a074 100644
--- a/poky/meta/conf/machine/qemuarm64.conf
+++ b/poky/meta/conf/machine/qemuarm64.conf
@@ -16,6 +16,7 @@
 QB_SYSTEM_NAME = "qemu-system-aarch64"
 QB_MACHINE = "-machine virt"
 QB_CPU = "-cpu cortex-a57"
+QB_SMP = "-smp 4"
 QB_CPU_KVM = "-cpu host -machine gic-version=3"
 # For graphics to work we need to define the VGA device as well as the necessary USB devices
 QB_GRAPHICS = "-device VGA,edid=on"
diff --git a/poky/meta/lib/oe/gpg_sign.py b/poky/meta/lib/oe/gpg_sign.py
index 7634d7e..492f096 100644
--- a/poky/meta/lib/oe/gpg_sign.py
+++ b/poky/meta/lib/oe/gpg_sign.py
@@ -111,7 +111,7 @@
 
     def verify(self, sig_file):
         """Verify signature"""
-        cmd = self.gpg_cmd + [" --verify", "--no-permission-warning"]
+        cmd = self.gpg_cmd + ["--verify", "--no-permission-warning"]
         if self.gpg_path:
             cmd += ["--homedir", self.gpg_path]
 
diff --git a/poky/meta/lib/oe/package_manager/rpm/__init__.py b/poky/meta/lib/oe/package_manager/rpm/__init__.py
index 6df0092..b3925810 100644
--- a/poky/meta/lib/oe/package_manager/rpm/__init__.py
+++ b/poky/meta/lib/oe/package_manager/rpm/__init__.py
@@ -199,6 +199,9 @@
 
         failed_scriptlets_pkgnames = collections.OrderedDict()
         for line in output.splitlines():
+            if line.startswith("Error: Systemctl"):
+                bb.error(line)
+
             if line.startswith("Error in POSTIN scriptlet in rpm package"):
                 failed_scriptlets_pkgnames[line.split()[-1]] = True
 
diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py
index 4b48cdb..ad9fd77 100644
--- a/poky/meta/lib/oe/rootfs.py
+++ b/poky/meta/lib/oe/rootfs.py
@@ -167,7 +167,7 @@
             pass
         bb.utils.rename(self.image_rootfs, self.image_rootfs + '-dbg')
 
-        bb.note("  Restoreing original rootfs...")
+        bb.note("  Restoring original rootfs...")
         bb.utils.rename(self.image_rootfs + '-orig', self.image_rootfs)
 
     def _exec_shell_cmd(self, cmd):
diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py
index 6cd6e11..e86a09b 100644
--- a/poky/meta/lib/oe/sstatesig.py
+++ b/poky/meta/lib/oe/sstatesig.py
@@ -453,7 +453,7 @@
         manifest = d2.expand("${SSTATE_MANIFESTS}/manifest-%s-%s.%s" % (pkgarch, taskdata, taskname))
         if os.path.exists(manifest):
             return manifest, d2
-    bb.error("Manifest %s not found in %s (variant '%s')?" % (manifest, d2.expand(" ".join(pkgarchs)), variant))
+    bb.fatal("Manifest %s not found in %s (variant '%s')?" % (manifest, d2.expand(" ".join(pkgarchs)), variant))
     return None, d2
 
 def OEOuthashBasic(path, sigfile, task, d):
diff --git a/poky/meta/lib/oeqa/runtime/cases/rpm.py b/poky/meta/lib/oeqa/runtime/cases/rpm.py
index 8e18b42..7a9d62c 100644
--- a/poky/meta/lib/oeqa/runtime/cases/rpm.py
+++ b/poky/meta/lib/oeqa/runtime/cases/rpm.py
@@ -141,13 +141,4 @@
 
         self.tc.target.run('rm -f %s' % self.dst)
 
-        # if using systemd this should ensure all entries are flushed to /var
-        status, output = self.target.run("journalctl --sync")
-        # Get the amount of entries in the log file
-        status, output = self.target.run(check_log_cmd)
-        msg = 'Failed to get the final size of the log file.'
-        self.assertEqual(0, status, msg=msg)
 
-        # Check that there's enough of them
-        self.assertGreaterEqual(int(output), 80,
-                                   'Cound not find sufficient amount of rpm entries in /var/log/messages, found {} entries'.format(output))
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index 69fee27..0032f6e 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -73,6 +73,8 @@
         self.monitorpipe = None
 
         self.logger = logger
+        # Whether we're expecting an exit and should show related errors
+        self.canexit = False
 
         # Enable testing other OS's
         # Set commands for target communication, and default to Linux ALWAYS
@@ -275,14 +277,33 @@
 
         if self.runqemu_exited:
             self.logger.warning("runqemu after timeout")
-            return False
 
         if self.runqemu.returncode:
             self.logger.warning('runqemu exited with code %d' % self.runqemu.returncode)
-            return False
 
         if not self.is_alive():
-            self.logger.warning('is_alive() failed later')
+            self.logger.error("Qemu pid didn't appear in %s seconds (%s)" %
+                              (self.runqemutime, time.strftime("%D %H:%M:%S")))
+
+            qemu_pid = None
+            if os.path.isfile(self.qemu_pidfile):
+                with open(self.qemu_pidfile, 'r') as f:
+                    qemu_pid = f.read().strip()
+
+            self.logger.error("Status information, poll status: %s, pidfile exists: %s, pidfile contents %s, proc pid exists %s"
+                % (self.runqemu.poll(), os.path.isfile(self.qemu_pidfile), str(qemu_pid), os.path.exists("/proc/" + str(qemu_pid))))
+
+            # Dump all processes to help us to figure out what is going on...
+            ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0]
+            processes = ps.decode("utf-8")
+            self.logger.debug("Running processes:\n%s" % processes)
+            self._dump_host()
+            op = self.getOutput(output)
+            self.stop()
+            if op:
+                self.logger.error("Output from runqemu:\n%s" % op)
+            else:
+                self.logger.error("No output from runqemu.\n")
             return False
 
         # Create the client socket for the QEMU Monitor Control Socket
@@ -324,31 +345,6 @@
         # Release the qemu porcess to continue running
         self.run_monitor('cont')
 
-        if not self.is_alive():
-            self.logger.error("Qemu pid didn't appear in %s seconds (%s)" %
-                              (self.runqemutime, time.strftime("%D %H:%M:%S")))
-
-            qemu_pid = None
-            if os.path.isfile(self.qemu_pidfile):
-                with open(self.qemu_pidfile, 'r') as f:
-                    qemu_pid = f.read().strip()
-
-            self.logger.error("Status information, poll status: %s, pidfile exists: %s, pidfile contents %s, proc pid exists %s"
-                % (self.runqemu.poll(), os.path.isfile(self.qemu_pidfile), str(qemu_pid), os.path.exists("/proc/" + str(qemu_pid))))
-
-            # Dump all processes to help us to figure out what is going on...
-            ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0]
-            processes = ps.decode("utf-8")
-            self.logger.debug("Running processes:\n%s" % processes)
-            self._dump_host()
-            op = self.getOutput(output)
-            self.stop()
-            if op:
-                self.logger.error("Output from runqemu:\n%s" % op)
-            else:
-                self.logger.error("No output from runqemu.\n")
-            return False
-
         # We are alive: qemu is running
         out = self.getOutput(output)
         netconf = False # network configuration is not required by default
@@ -543,6 +539,7 @@
             self.thread.join()
 
     def allowexit(self):
+        self.canexit = True
         if self.thread:
             self.thread.allowexit()
 
@@ -604,7 +601,9 @@
                     if re.search(self.boot_patterns['search_cmd_finished'], data):
                         break
                 else:
-                    raise Exception("No data on serial console socket")
+                    if self.canexit:
+                        return (1, "")
+                    raise Exception("No data on serial console socket, connection closed?")
 
         if data:
             if raw:
@@ -724,7 +723,7 @@
             data = self.readsock.recv(count)
         except socket.error as e:
             if e.errno == errno.EAGAIN or e.errno == errno.EWOULDBLOCK:
-                return ''
+                return b''
             else:
                 raise
 
@@ -737,7 +736,7 @@
             # until qemu exits.
             if not self.canexit:
                 raise Exception("Console connection closed unexpectedly")
-            return ''
+            return b''
 
         return data
 
diff --git a/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb b/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.13.bb
similarity index 94%
rename from poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
rename to poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.13.bb
index d271266..fa98860 100644
--- a/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.12.bb
+++ b/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.13.bb
@@ -19,8 +19,7 @@
            file://gnu-efi-3.0.9-fix-clang-build.patch \
            "
 
-SRC_URI[md5sum] = "926763ff37bc9db3a9035cec41eb2f45"
-SRC_URI[sha256sum] = "0196f2e1fd3c334b66e610a608a0e59233474c7a01bec7bc53989639aa327669"
+SRC_URI[sha256sum] = "2fccf715279c46ee69c4859186af8150d07a13f4d19876e5459cd65be82d3b7d"
 
 COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
 COMPATIBLE_HOST_armv4 = 'null'
diff --git a/poky/meta/recipes-bsp/grub/grub2.inc b/poky/meta/recipes-bsp/grub/grub2.inc
index 590deb8..3c6b434 100644
--- a/poky/meta/recipes-bsp/grub/grub2.inc
+++ b/poky/meta/recipes-bsp/grub/grub2.inc
@@ -27,6 +27,16 @@
 REALPV = "2.06~rc1"
 PV = "2.04+${REALPV}"
 
+# Fixed in 2.06~rc1, can be removed for 2.06 final
+CVE_CHECK_WHITELIST += "\
+    CVE-2020-14308 CVE-2020-14309 CVE-2020-14310 CVE-2020-14311 CVE-2020-10713 \
+    CVE-2020-14372 CVE-2020-15705 CVE-2020-15706 CVE-2020-15707 \
+    CVE-2020-25632 CVE-2020-25647 CVE-2020-27749 CVE-2020-27779 \
+    CVE-2021-3418 CVE-2021-20225 CVE-2021-20233"
+
+# Applies only to RHEL
+CVE_CHECK_WHITELIST += "CVE-2019-14865"
+
 S = "${WORKDIR}/grub-${REALPV}"
 
 UPSTREAM_CHECK_URI = "${GNU_MIRROR}/grub"
@@ -49,6 +59,8 @@
 
 inherit autotools gettext texinfo pkgconfig
 
+CFLAGS_remove = "-O2"
+
 EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} \
                 --disable-grub-mkfont \
                 --program-prefix="" \
diff --git a/poky/meta/recipes-bsp/u-boot/files/0001-add-valid-fdt-check.patch b/poky/meta/recipes-bsp/u-boot/files/0001-add-valid-fdt-check.patch
deleted file mode 100644
index d4ac9e2..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/0001-add-valid-fdt-check.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From ea1a9ec5f430359720d9a0621ed1acfbba6a142a Mon Sep 17 00:00:00 2001
-From: Heinrich Schuchardt <xypron.glpk@gmx.de>
-Date: Wed, 13 Jan 2021 02:09:12 +0100
-Subject: [PATCH] image-fit: fit_check_format check for valid FDT
-
-fit_check_format() must check that the buffer contains a flattened device
-tree before calling any device tree library functions.
-
-Failure to do may cause segmentation faults.
-
-Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
-
-Upstream-Status: Backport[https://github.com/u-boot/u-boot/commit/ea1a9ec5f430359720d9a0621ed1acfbba6a142a]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- common/image-fit.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/common/image-fit.c b/common/image-fit.c
-index 6a8787ca0a..21c44bdf69 100644
---- a/common/image-fit.c
-+++ b/common/image-fit.c
-@@ -1553,6 +1553,12 @@ int fit_image_check_comp(const void *fit, int noffset, uint8_t comp)
-  */
- int fit_check_format(const void *fit)
- {
-+	/* A FIT image must be a valid FDT */
-+	if (fdt_check_header(fit)) {
-+		debug("Wrong FIT format: not a flattened device tree\n");
-+		return 0;
-+	}
-+
- 	/* mandatory / node 'description' property */
- 	if (fdt_getprop(fit, 0, FIT_DESC_PROP, NULL) == NULL) {
- 		debug("Wrong FIT format: no description\n");
diff --git a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-1.patch b/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-1.patch
deleted file mode 100644
index 98ec2c7..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-1.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 8a7d4cf9820ea16fabd25a6379351b4dc291204b Mon Sep 17 00:00:00 2001
-From: Simon Glass <sjg@chromium.org>
-Date: Mon, 15 Feb 2021 17:08:05 -0700
-Subject: [PATCH] fdt_region: Check for a single root node of the correct name
-
-At present fdt_find_regions() assumes that the FIT is a valid devicetree.
-If the FIT has two root nodes this is currently not detected in this
-function, nor does libfdt's fdt_check_full() notice. Also it is possible
-for the root node to have a name even though it should not.
-
-Add checks for these and return -FDT_ERR_BADSTRUCTURE if a problem is
-detected.
-
-CVE-2021-27097
-
-Signed-off-by: Simon Glass <sjg@chromium.org>
-Reported-by: Bruce Monroe <bruce.monroe@intel.com>
-Reported-by: Arie Haenel <arie.haenel@intel.com>
-Reported-by: Julien Lenoir <julien.lenoir@intel.com>
-
-CVE: CVE-2021-27097
-Upstream-Status: Backport[https://github.com/u-boot/u-boot/commit/8a7d4cf9820ea16fabd25a6379351b4dc291204b]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- common/fdt_region.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/common/fdt_region.c b/common/fdt_region.c
-index ff12c518e9..e4ef0ca770 100644
---- a/common/fdt_region.c
-+++ b/common/fdt_region.c
-@@ -43,6 +43,7 @@ int fdt_find_regions(const void *fdt, char * const inc[], int inc_count,
- 	int depth = -1;
- 	int want = 0;
- 	int base = fdt_off_dt_struct(fdt);
-+	bool expect_end = false;
- 
- 	end = path;
- 	*end = '\0';
-@@ -59,6 +60,10 @@ int fdt_find_regions(const void *fdt, char * const inc[], int inc_count,
- 		tag = fdt_next_tag(fdt, offset, &nextoffset);
- 		stop_at = nextoffset;
- 
-+		/* If we see two root nodes, something is wrong */
-+		if (expect_end && tag != FDT_END)
-+			return -FDT_ERR_BADLAYOUT;
-+
- 		switch (tag) {
- 		case FDT_PROP:
- 			include = want >= 2;
-@@ -81,6 +86,10 @@ int fdt_find_regions(const void *fdt, char * const inc[], int inc_count,
- 			if (depth == FDT_MAX_DEPTH)
- 				return -FDT_ERR_BADSTRUCTURE;
- 			name = fdt_get_name(fdt, offset, &len);
-+
-+			/* The root node must have an empty name */
-+			if (!depth && *name)
-+				return -FDT_ERR_BADLAYOUT;
- 			if (end - path + 2 + len >= path_len)
- 				return -FDT_ERR_NOSPACE;
- 			if (end != path + 1)
-@@ -108,6 +117,8 @@ int fdt_find_regions(const void *fdt, char * const inc[], int inc_count,
- 			while (end > path && *--end != '/')
- 				;
- 			*end = '\0';
-+			if (depth == -1)
-+				expect_end = true;
- 			break;
- 
- 		case FDT_END:
diff --git a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-2.patch b/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-2.patch
deleted file mode 100644
index b13c44e..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-2.patch
+++ /dev/null
@@ -1,419 +0,0 @@
-From c5819701a3de61e2ba2ef7ad0b616565b32305e5 Mon Sep 17 00:00:00 2001
-From: Simon Glass <sjg@chromium.org>
-Date: Mon, 15 Feb 2021 17:08:09 -0700
-Subject: [PATCH] image: Adjust the workings of fit_check_format()
-
-At present this function does not accept a size for the FIT. This means
-that it must be read from the FIT itself, introducing potential security
-risk. Update the function to include a size parameter, which can be
-invalid, in which case fit_check_format() calculates it.
-
-For now no callers pass the size, but this can be updated later.
-
-Also adjust the return value to an error code so that all the different
-types of problems can be distinguished by the user.
-
-Signed-off-by: Simon Glass <sjg@chromium.org>
-Reported-by: Bruce Monroe <bruce.monroe@intel.com>
-Reported-by: Arie Haenel <arie.haenel@intel.com>
-Reported-by: Julien Lenoir <julien.lenoir@intel.com>
-
-CVE: CVE-2021-27097 CVE-2021-27138
-Upstream-Status: Backport[https://github.com/u-boot/u-boot/commit/c5819701a3de61e2ba2ef7ad0b616565b32305e5]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- arch/arm/cpu/armv8/sec_firmware.c  |  2 +-
- cmd/bootm.c                        |  6 ++---
- cmd/disk.c                         |  2 +-
- cmd/fpga.c                         |  2 +-
- cmd/nand.c                         |  2 +-
- cmd/source.c                       |  2 +-
- cmd/ximg.c                         |  2 +-
- common/image-fdt.c                 |  2 +-
- common/image-fit.c                 | 46 +++++++++++++++++---------------------
- common/splash_source.c             |  6 ++---
- common/update.c                    |  4 ++--
- drivers/fpga/socfpga_arria10.c     |  6 ++---
- drivers/net/fsl-mc/mc.c            |  2 +-
- drivers/net/pfe_eth/pfe_firmware.c |  2 +-
- include/image.h                    | 21 ++++++++++++++++-
- tools/fit_common.c                 |  3 ++-
- tools/fit_image.c                  |  2 +-
- tools/mkimage.h                    |  2 ++
- 18 files changed, 65 insertions(+), 49 deletions(-)
-
-diff --git a/arch/arm/cpu/armv8/sec_firmware.c b/arch/arm/cpu/armv8/sec_firmware.c
-index bfc0fac3ef..0561f5efd1 100644
---- a/arch/arm/cpu/armv8/sec_firmware.c
-+++ b/arch/arm/cpu/armv8/sec_firmware.c
-@@ -316,7 +316,7 @@ __weak bool sec_firmware_is_valid(const void *sec_firmware_img)
- 		return false;
- 	}
- 
--	if (!fit_check_format(sec_firmware_img)) {
-+	if (fit_check_format(sec_firmware_img, IMAGE_SIZE_INVAL)) {
- 		printf("SEC Firmware: Bad firmware image (bad FIT header)\n");
- 		return false;
- 	}
-diff --git a/cmd/bootm.c b/cmd/bootm.c
-index e6b0e04413..a0f823f968 100644
---- a/cmd/bootm.c
-+++ b/cmd/bootm.c
-@@ -291,7 +291,7 @@ static int image_info(ulong addr)
- 	case IMAGE_FORMAT_FIT:
- 		puts("   FIT image found\n");
- 
--		if (!fit_check_format(hdr)) {
-+		if (fit_check_format(hdr, IMAGE_SIZE_INVAL)) {
- 			puts("Bad FIT image format!\n");
- 			unmap_sysmem(hdr);
- 			return 1;
-@@ -368,7 +368,7 @@ static int do_imls_nor(void)
- #endif
- #if defined(CONFIG_FIT)
- 			case IMAGE_FORMAT_FIT:
--				if (!fit_check_format(hdr))
-+				if (fit_check_format(hdr, IMAGE_SIZE_INVAL))
- 					goto next_sector;
- 
- 				printf("FIT Image at %08lX:\n", (ulong)hdr);
-@@ -448,7 +448,7 @@ static int nand_imls_fitimage(struct mtd_info *mtd, int nand_dev, loff_t off,
- 		return ret;
- 	}
- 
--	if (!fit_check_format(imgdata)) {
-+	if (fit_check_format(imgdata, IMAGE_SIZE_INVAL)) {
- 		free(imgdata);
- 		return 0;
- 	}
-diff --git a/cmd/disk.c b/cmd/disk.c
-index 8060e753eb..3195db9127 100644
---- a/cmd/disk.c
-+++ b/cmd/disk.c
-@@ -114,7 +114,7 @@ int common_diskboot(struct cmd_tbl *cmdtp, const char *intf, int argc,
- 	/* This cannot be done earlier,
- 	 * we need complete FIT image in RAM first */
- 	if (genimg_get_format((void *) addr) == IMAGE_FORMAT_FIT) {
--		if (!fit_check_format(fit_hdr)) {
-+		if (fit_check_format(fit_hdr, IMAGE_SIZE_INVAL)) {
- 			bootstage_error(BOOTSTAGE_ID_IDE_FIT_READ);
- 			puts("** Bad FIT image format\n");
- 			return 1;
-diff --git a/cmd/fpga.c b/cmd/fpga.c
-index 8ae1c936fb..51410a8e42 100644
---- a/cmd/fpga.c
-+++ b/cmd/fpga.c
-@@ -330,7 +330,7 @@ static int do_fpga_loadmk(struct cmd_tbl *cmdtp, int flag, int argc,
- 			return CMD_RET_FAILURE;
- 		}
- 
--		if (!fit_check_format(fit_hdr)) {
-+		if (fit_check_format(fit_hdr, IMAGE_SIZE_INVAL)) {
- 			puts("Bad FIT image format\n");
- 			return CMD_RET_FAILURE;
- 		}
-diff --git a/cmd/nand.c b/cmd/nand.c
-index 92d039af8f..97e117a979 100644
---- a/cmd/nand.c
-+++ b/cmd/nand.c
-@@ -917,7 +917,7 @@ static int nand_load_image(struct cmd_tbl *cmdtp, struct mtd_info *mtd,
- #if defined(CONFIG_FIT)
- 	/* This cannot be done earlier, we need complete FIT image in RAM first */
- 	if (genimg_get_format ((void *)addr) == IMAGE_FORMAT_FIT) {
--		if (!fit_check_format (fit_hdr)) {
-+		if (fit_check_format(fit_hdr, IMAGE_SIZE_INVAL)) {
- 			bootstage_error(BOOTSTAGE_ID_NAND_FIT_READ);
- 			puts ("** Bad FIT image format\n");
- 			return 1;
-diff --git a/cmd/source.c b/cmd/source.c
-index b6c709a3d2..71f71528ad 100644
---- a/cmd/source.c
-+++ b/cmd/source.c
-@@ -107,7 +107,7 @@ int image_source_script(ulong addr, const char *fit_uname)
- #if defined(CONFIG_FIT)
- 	case IMAGE_FORMAT_FIT:
- 		fit_hdr = buf;
--		if (!fit_check_format (fit_hdr)) {
-+		if (fit_check_format(fit_hdr, IMAGE_SIZE_INVAL)) {
- 			puts ("Bad FIT image format\n");
- 			return 1;
- 		}
-diff --git a/cmd/ximg.c b/cmd/ximg.c
-index 159ba51648..ef738ebfa2 100644
---- a/cmd/ximg.c
-+++ b/cmd/ximg.c
-@@ -136,7 +136,7 @@ do_imgextract(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
- 			"at %08lx ...\n", uname, addr);
- 
- 		fit_hdr = (const void *)addr;
--		if (!fit_check_format(fit_hdr)) {
-+		if (fit_check_format(fit_hdr, IMAGE_SIZE_INVAL)) {
- 			puts("Bad FIT image format\n");
- 			return 1;
- 		}
-diff --git a/common/image-fdt.c b/common/image-fdt.c
-index 327a8c4c39..4105259212 100644
---- a/common/image-fdt.c
-+++ b/common/image-fdt.c
-@@ -399,7 +399,7 @@ int boot_get_fdt(int flag, int argc, char *const argv[], uint8_t arch,
- 			 */
- #if CONFIG_IS_ENABLED(FIT)
- 			/* check FDT blob vs FIT blob */
--			if (fit_check_format(buf)) {
-+			if (!fit_check_format(buf, IMAGE_SIZE_INVAL)) {
- 				ulong load, len;
- 
- 				fdt_noffset = boot_get_fdt_fit(images,
-diff --git a/common/image-fit.c b/common/image-fit.c
-index 9637d747fb..402f08fc9d 100644
---- a/common/image-fit.c
-+++ b/common/image-fit.c
-@@ -8,6 +8,8 @@
-  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-  */
- 
-+#define LOG_CATEGORY LOGC_BOOT
-+
- #ifdef USE_HOSTCC
- #include "mkimage.h"
- #include <time.h>
-@@ -1550,49 +1552,41 @@ int fit_image_check_comp(const void *fit, int noffset, uint8_t comp)
- 	return (comp == image_comp);
- }
- 
--/**
-- * fit_check_format - sanity check FIT image format
-- * @fit: pointer to the FIT format image header
-- *
-- * fit_check_format() runs a basic sanity FIT image verification.
-- * Routine checks for mandatory properties, nodes, etc.
-- *
-- * returns:
-- *     1, on success
-- *     0, on failure
-- */
--int fit_check_format(const void *fit)
-+int fit_check_format(const void *fit, ulong size)
- {
-+	int ret;
-+
- 	/* A FIT image must be a valid FDT */
--	if (fdt_check_header(fit)) {
--		debug("Wrong FIT format: not a flattened device tree\n");
--		return 0;
-+	ret = fdt_check_header(fit);
-+	if (ret) {
-+		log_debug("Wrong FIT format: not a flattened device tree (err=%d)\n",
-+			  ret);
-+		return -ENOEXEC;
- 	}
- 
- 	/* mandatory / node 'description' property */
--	if (fdt_getprop(fit, 0, FIT_DESC_PROP, NULL) == NULL) {
--		debug("Wrong FIT format: no description\n");
--		return 0;
-+	if (!fdt_getprop(fit, 0, FIT_DESC_PROP, NULL)) {
-+		log_debug("Wrong FIT format: no description\n");
-+		return -ENOMSG;
- 	}
- 
- 	if (IMAGE_ENABLE_TIMESTAMP) {
- 		/* mandatory / node 'timestamp' property */
--		if (fdt_getprop(fit, 0, FIT_TIMESTAMP_PROP, NULL) == NULL) {
--			debug("Wrong FIT format: no timestamp\n");
--			return 0;
-+		if (!fdt_getprop(fit, 0, FIT_TIMESTAMP_PROP, NULL)) {
-+			log_debug("Wrong FIT format: no timestamp\n");
-+			return -ENODATA;
- 		}
- 	}
- 
- 	/* mandatory subimages parent '/images' node */
- 	if (fdt_path_offset(fit, FIT_IMAGES_PATH) < 0) {
--		debug("Wrong FIT format: no images parent node\n");
--		return 0;
-+		log_debug("Wrong FIT format: no images parent node\n");
-+		return -ENOENT;
- 	}
- 
--	return 1;
-+	return 0;
- }
- 
--
- /**
-  * fit_conf_find_compat
-  * @fit: pointer to the FIT format image header
-@@ -1929,7 +1923,7 @@ int fit_image_load(bootm_headers_t *images, ulong addr,
- 	printf("## Loading %s from FIT Image at %08lx ...\n", prop_name, addr);
- 
- 	bootstage_mark(bootstage_id + BOOTSTAGE_SUB_FORMAT);
--	if (!fit_check_format(fit)) {
-+	if (fit_check_format(fit, IMAGE_SIZE_INVAL)) {
- 		printf("Bad FIT %s image format!\n", prop_name);
- 		bootstage_error(bootstage_id + BOOTSTAGE_SUB_FORMAT);
- 		return -ENOEXEC;
-diff --git a/common/splash_source.c b/common/splash_source.c
-index f51ca5ddf3..bad9a7790a 100644
---- a/common/splash_source.c
-+++ b/common/splash_source.c
-@@ -336,10 +336,10 @@ static int splash_load_fit(struct splash_location *location, u32 bmp_load_addr)
- 	if (res < 0)
- 		return res;
- 
--	res = fit_check_format(fit_header);
--	if (!res) {
-+	res = fit_check_format(fit_header, IMAGE_SIZE_INVAL);
-+	if (res) {
- 		debug("Could not find valid FIT image\n");
--		return -EINVAL;
-+		return res;
- 	}
- 
- 	/* Get the splash image node */
-diff --git a/common/update.c b/common/update.c
-index a5879cb52c..f0848954e5 100644
---- a/common/update.c
-+++ b/common/update.c
-@@ -286,7 +286,7 @@ int update_tftp(ulong addr, char *interface, char *devstring)
- got_update_file:
- 	fit = map_sysmem(addr, 0);
- 
--	if (!fit_check_format((void *)fit)) {
-+	if (fit_check_format((void *)fit, IMAGE_SIZE_INVAL)) {
- 		printf("Bad FIT format of the update file, aborting "
- 							"auto-update\n");
- 		return 1;
-@@ -363,7 +363,7 @@ int fit_update(const void *fit)
- 	if (!fit)
- 		return -EINVAL;
- 
--	if (!fit_check_format((void *)fit)) {
-+	if (fit_check_format((void *)fit, IMAGE_SIZE_INVAL)) {
- 		printf("Bad FIT format of the update file, aborting auto-update\n");
- 		return -EINVAL;
- 	}
-diff --git a/drivers/fpga/socfpga_arria10.c b/drivers/fpga/socfpga_arria10.c
-index 44e1ac54c3..18f99676d2 100644
---- a/drivers/fpga/socfpga_arria10.c
-+++ b/drivers/fpga/socfpga_arria10.c
-@@ -565,10 +565,10 @@ static int first_loading_rbf_to_buffer(struct udevice *dev,
- 	if (ret < 0)
- 		return ret;
- 
--	ret = fit_check_format(buffer_p);
--	if (!ret) {
-+	ret = fit_check_format(buffer_p, IMAGE_SIZE_INVAL);
-+	if (ret) {
- 		debug("FPGA: No valid FIT image was found.\n");
--		return -EBADF;
-+		return ret;
- 	}
- 
- 	confs_noffset = fdt_path_offset(buffer_p, FIT_CONFS_PATH);
-diff --git a/drivers/net/fsl-mc/mc.c b/drivers/net/fsl-mc/mc.c
-index 84db6be624..81265ee356 100644
---- a/drivers/net/fsl-mc/mc.c
-+++ b/drivers/net/fsl-mc/mc.c
-@@ -141,7 +141,7 @@ int parse_mc_firmware_fit_image(u64 mc_fw_addr,
- 		return -EINVAL;
- 	}
- 
--	if (!fit_check_format(fit_hdr)) {
-+	if (fit_check_format(fit_hdr, IMAGE_SIZE_INVAL)) {
- 		printf("fsl-mc: ERR: Bad firmware image (bad FIT header)\n");
- 		return -EINVAL;
- 	}
-diff --git a/drivers/net/pfe_eth/pfe_firmware.c b/drivers/net/pfe_eth/pfe_firmware.c
-index 41999e176d..eee70a2e73 100644
---- a/drivers/net/pfe_eth/pfe_firmware.c
-+++ b/drivers/net/pfe_eth/pfe_firmware.c
-@@ -160,7 +160,7 @@ static int pfe_fit_check(void)
- 		return ret;
- 	}
- 
--	if (!fit_check_format(pfe_fit_addr)) {
-+	if (fit_check_format(pfe_fit_addr, IMAGE_SIZE_INVAL)) {
- 		printf("PFE Firmware: Bad firmware image (bad FIT header)\n");
- 		ret = -1;
- 		return ret;
-diff --git a/include/image.h b/include/image.h
-index 41473dbb9c..8c152c5c5f 100644
---- a/include/image.h
-+++ b/include/image.h
-@@ -134,6 +134,9 @@ extern ulong image_load_addr;		/* Default Load Address */
- extern ulong image_save_addr;		/* Default Save Address */
- extern ulong image_save_size;		/* Default Save Size */
- 
-+/* An invalid size, meaning that the image size is not known */
-+#define IMAGE_SIZE_INVAL	(-1UL)
-+
- enum ih_category {
- 	IH_ARCH,
- 	IH_COMP,
-@@ -1141,7 +1144,23 @@ int fit_image_check_os(const void *fit, int noffset, uint8_t os);
- int fit_image_check_arch(const void *fit, int noffset, uint8_t arch);
- int fit_image_check_type(const void *fit, int noffset, uint8_t type);
- int fit_image_check_comp(const void *fit, int noffset, uint8_t comp);
--int fit_check_format(const void *fit);
-+
-+/**
-+ * fit_check_format() - Check that the FIT is valid
-+ *
-+ * This performs various checks on the FIT to make sure it is suitable for
-+ * use, looking for mandatory properties, nodes, etc.
-+ *
-+ * If FIT_FULL_CHECK is enabled, it also runs it through libfdt to make
-+ * sure that there are no strange tags or broken nodes in the FIT.
-+ *
-+ * @fit: pointer to the FIT format image header
-+ * @return 0 if OK, -ENOEXEC if not an FDT file, -EINVAL if the full FDT check
-+ *	failed (e.g. due to bad structure), -ENOMSG if the description is
-+ *	missing, -ENODATA if the timestamp is missing, -ENOENT if the /images
-+ *	path is missing
-+ */
-+int fit_check_format(const void *fit, ulong size);
- 
- int fit_conf_find_compat(const void *fit, const void *fdt);
- 
-diff --git a/tools/fit_common.c b/tools/fit_common.c
-index cdf987d3c1..52b63296f8 100644
---- a/tools/fit_common.c
-+++ b/tools/fit_common.c
-@@ -26,7 +26,8 @@
- int fit_verify_header(unsigned char *ptr, int image_size,
- 			struct image_tool_params *params)
- {
--	if (fdt_check_header(ptr) != EXIT_SUCCESS || !fit_check_format(ptr))
-+	if (fdt_check_header(ptr) != EXIT_SUCCESS ||
-+	    fit_check_format(ptr, IMAGE_SIZE_INVAL))
- 		return EXIT_FAILURE;
- 
- 	return EXIT_SUCCESS;
-diff --git a/tools/fit_image.c b/tools/fit_image.c
-index 06faeda7c2..d440d143c6 100644
---- a/tools/fit_image.c
-+++ b/tools/fit_image.c
-@@ -883,7 +883,7 @@ static int fit_extract_contents(void *ptr, struct image_tool_params *params)
- 	/* Indent string is defined in header image.h */
- 	p = IMAGE_INDENT_STRING;
- 
--	if (!fit_check_format(fit)) {
-+	if (fit_check_format(fit, IMAGE_SIZE_INVAL)) {
- 		printf("Bad FIT image format\n");
- 		return -1;
- 	}
-diff --git a/tools/mkimage.h b/tools/mkimage.h
-index 5b096a545b..0d3148444c 100644
---- a/tools/mkimage.h
-+++ b/tools/mkimage.h
-@@ -29,6 +29,8 @@
- #define debug(fmt,args...)
- #endif /* MKIMAGE_DEBUG */
- 
-+#define log_debug(fmt, args...)	debug(fmt, ##args)
-+
- static inline void *map_sysmem(ulong paddr, unsigned long len)
- {
- 	return (void *)(uintptr_t)paddr;
diff --git a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-3.patch b/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-3.patch
deleted file mode 100644
index 86f7e8c..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-3.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 6f3c2d8aa5e6cbd80b5e869bbbddecb66c329d01 Mon Sep 17 00:00:00 2001
-From: Simon Glass <sjg@chromium.org>
-Date: Mon, 15 Feb 2021 17:08:10 -0700
-Subject: [PATCH] image: Add an option to do a full check of the FIT
-
-Some strange modifications of the FIT can introduce security risks. Add an
-option to check it thoroughly, using libfdt's fdt_check_full() function.
-
-Enable this by default if signature verification is enabled.
-
-CVE-2021-27097
-
-Signed-off-by: Simon Glass <sjg@chromium.org>
-Reported-by: Bruce Monroe <bruce.monroe@intel.com>
-Reported-by: Arie Haenel <arie.haenel@intel.com>
-Reported-by: Julien Lenoir <julien.lenoir@intel.com>
-
-CVE: CVE-2021-27097
-Upstream-Status: Backport[https://github.com/u-boot/u-boot/commit/6f3c2d8aa5e6cbd80b5e869bbbddecb66c329d01]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- common/Kconfig.boot | 20 ++++++++++++++++++++
- common/image-fit.c  | 16 ++++++++++++++++
- 2 files changed, 36 insertions(+)
-
-diff --git a/common/Kconfig.boot b/common/Kconfig.boot
-index 5eaabdfc27..7532e55edb 100644
---- a/common/Kconfig.boot
-+++ b/common/Kconfig.boot
-@@ -63,6 +63,15 @@ config FIT_ENABLE_SHA512_SUPPORT
- 	  SHA512 checksum is a 512-bit (64-byte) hash value used to check that
- 	  the image contents have not been corrupted.
- 
-+config FIT_FULL_CHECK
-+	bool "Do a full check of the FIT before using it"
-+	default y
-+	help
-+	  Enable this do a full check of the FIT to make sure it is valid. This
-+	  helps to protect against carefully crafted FITs which take advantage
-+	  of bugs or omissions in the code. This includes a bad structure,
-+	  multiple root nodes and the like.
-+
- config FIT_SIGNATURE
- 	bool "Enable signature verification of FIT uImages"
- 	depends on DM
-@@ -70,6 +79,7 @@ config FIT_SIGNATURE
- 	select RSA
- 	select RSA_VERIFY
- 	select IMAGE_SIGN_INFO
-+	select FIT_FULL_CHECK
- 	help
- 	  This option enables signature verification of FIT uImages,
- 	  using a hash signed and verified using RSA. If
-@@ -159,6 +169,15 @@ config SPL_FIT_PRINT
- 	help
- 	  Support printing the content of the fitImage in a verbose manner in SPL.
- 
-+config SPL_FIT_FULL_CHECK
-+	bool "Do a full check of the FIT before using it"
-+	help
-+	  Enable this do a full check of the FIT to make sure it is valid. This
-+	  helps to protect against carefully crafted FITs which take advantage
-+	  of bugs or omissions in the code. This includes a bad structure,
-+	  multiple root nodes and the like.
-+
-+
- config SPL_FIT_SIGNATURE
- 	bool "Enable signature verification of FIT firmware within SPL"
- 	depends on SPL_DM
-@@ -168,6 +187,7 @@ config SPL_FIT_SIGNATURE
- 	select SPL_RSA
- 	select SPL_RSA_VERIFY
- 	select SPL_IMAGE_SIGN_INFO
-+	select SPL_FIT_FULL_CHECK
- 
- config SPL_LOAD_FIT
- 	bool "Enable SPL loading U-Boot as a FIT (basic fitImage features)"
-diff --git a/common/image-fit.c b/common/image-fit.c
-index f6c0428a96..bcf395f6a1 100644
---- a/common/image-fit.c
-+++ b/common/image-fit.c
-@@ -1580,6 +1580,22 @@ int fit_check_format(const void *fit, ulong size)
- 		return -ENOEXEC;
- 	}
- 
-+	if (CONFIG_IS_ENABLED(FIT_FULL_CHECK)) {
-+		/*
-+		 * If we are not given the size, make do wtih calculating it.
-+		 * This is not as secure, so we should consider a flag to
-+		 * control this.
-+		 */
-+		if (size == IMAGE_SIZE_INVAL)
-+			size = fdt_totalsize(fit);
-+		ret = fdt_check_full(fit, size);
-+
-+		if (ret) {
-+			log_debug("FIT check error %d\n", ret);
-+			return -EINVAL;
-+		}
-+	}
-+
- 	/* mandatory / node 'description' property */
- 	if (!fdt_getprop(fit, 0, FIT_DESC_PROP, NULL)) {
- 		log_debug("Wrong FIT format: no description\n");
diff --git a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-4.patch b/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-4.patch
deleted file mode 100644
index 060cac1..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27097-4.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 124c255731c76a2b09587378b2bcce561bcd3f2d Mon Sep 17 00:00:00 2001
-From: Simon Glass <sjg@chromium.org>
-Date: Mon, 15 Feb 2021 17:08:11 -0700
-Subject: [PATCH] libfdt: Check for multiple/invalid root nodes
-
-It is possible to construct a devicetree blob with multiple root nodes.
-Update fdt_check_full() to check for this, along with a root node with an
-invalid name.
-
-CVE-2021-27097
-
-Signed-off-by: Simon Glass <sjg@chromium.org>
-Reported-by: Bruce Monroe <bruce.monroe@intel.com>
-Reported-by: Arie Haenel <arie.haenel@intel.com>
-Reported-by: Julien Lenoir <julien.lenoir@intel.com>
-
-CVE: CVE-2021-27097
-Upstream-Status: Backport[https://github.com/u-boot/u-boot/commit/124c255731c76a2b09587378b2bcce561bcd3f2d]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- scripts/dtc/libfdt/fdt_ro.c | 17 +++++++++++++++++
- test/py/tests/test_vboot.py |  3 ++-
- 2 files changed, 19 insertions(+), 1 deletion(-)
-
-diff --git a/scripts/dtc/libfdt/fdt_ro.c b/scripts/dtc/libfdt/fdt_ro.c
-index d984bab036..efe7efe921 100644
---- a/scripts/dtc/libfdt/fdt_ro.c
-+++ b/scripts/dtc/libfdt/fdt_ro.c
-@@ -867,6 +867,7 @@ int fdt_check_full(const void *fdt, size_t bufsize)
- 	unsigned depth = 0;
- 	const void *prop;
- 	const char *propname;
-+	bool expect_end = false;
- 
- 	if (bufsize < FDT_V1_SIZE)
- 		return -FDT_ERR_TRUNCATED;
-@@ -887,6 +888,10 @@ int fdt_check_full(const void *fdt, size_t bufsize)
- 		if (nextoffset < 0)
- 			return nextoffset;
- 
-+		/* If we see two root nodes, something is wrong */
-+		if (expect_end && tag != FDT_END)
-+			return -FDT_ERR_BADLAYOUT;
-+
- 		switch (tag) {
- 		case FDT_NOP:
- 			break;
-@@ -900,12 +905,24 @@ int fdt_check_full(const void *fdt, size_t bufsize)
- 			depth++;
- 			if (depth > INT_MAX)
- 				return -FDT_ERR_BADSTRUCTURE;
-+
-+			/* The root node must have an empty name */
-+			if (depth == 1) {
-+				const char *name;
-+				int len;
-+
-+				name = fdt_get_name(fdt, offset, &len);
-+				if (*name || len)
-+					return -FDT_ERR_BADLAYOUT;
-+			}
- 			break;
- 
- 		case FDT_END_NODE:
- 			if (depth == 0)
- 				return -FDT_ERR_BADSTRUCTURE;
- 			depth--;
-+			if (depth == 0)
-+				expect_end = true;
- 			break;
- 
- 		case FDT_PROP:
diff --git a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27138-1.patch b/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27138-1.patch
deleted file mode 100644
index 562f815..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27138-1.patch
+++ /dev/null
@@ -1,245 +0,0 @@
-From 79af75f7776fc20b0d7eb6afe1e27c00fdb4b9b4 Mon Sep 17 00:00:00 2001
-From: Simon Glass <sjg@chromium.org>
-Date: Mon, 15 Feb 2021 17:08:06 -0700
-Subject: [PATCH] fit: Don't allow verification of images with @ nodes
-
-When searching for a node called 'fred', any unit address appended to the
-name is ignored by libfdt, meaning that 'fred' can match 'fred@1'. This
-means that we cannot be sure that the node originally intended is the one
-that is used.
-
-Disallow use of nodes with unit addresses.
-
-Update the forge test also, since it uses @ addresses.
-
-CVE-2021-27138
-
-Signed-off-by: Simon Glass <sjg@chromium.org>
-Reported-by: Bruce Monroe <bruce.monroe@intel.com>
-Reported-by: Arie Haenel <arie.haenel@intel.com>
-Reported-by: Julien Lenoir <julien.lenoir@intel.com>
-
-CVE: CVE-2021-27138
-Upstream-Status: Backport[https://github.com/u-boot/u-boot/commit/79af75f7776fc20b0d7eb6afe1e27c00fdb4b9b4]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- common/image-fit-sig.c       | 22 ++++++++++++++++++++--
- common/image-fit.c           | 20 +++++++++++++++-----
- test/py/tests/test_fit.py    | 24 ++++++++++++------------
- test/py/tests/vboot_forge.py | 12 ++++++------
- 4 files changed, 53 insertions(+), 25 deletions(-)
-
-diff --git a/common/image-fit-sig.c b/common/image-fit-sig.c
-index 897e04c7a3..34ebb8edfe 100644
---- a/common/image-fit-sig.c
-+++ b/common/image-fit-sig.c
-@@ -149,6 +149,14 @@ static int fit_image_verify_sig(const void *fit, int image_noffset,
- 	fdt_for_each_subnode(noffset, fit, image_noffset) {
- 		const char *name = fit_get_name(fit, noffset, NULL);
- 
-+		/*
-+		 * We don't support this since libfdt considers names with the
-+		 * name root but different @ suffix to be equal
-+		 */
-+		if (strchr(name, '@')) {
-+			err_msg = "Node name contains @";
-+			goto error;
-+		}
- 		if (!strncmp(name, FIT_SIG_NODENAME,
- 			     strlen(FIT_SIG_NODENAME))) {
- 			ret = fit_image_check_sig(fit, noffset, data,
-@@ -398,9 +406,10 @@ error:
- 	return -EPERM;
- }
- 
--int fit_config_verify_required_sigs(const void *fit, int conf_noffset,
--				    const void *sig_blob)
-+static int fit_config_verify_required_sigs(const void *fit, int conf_noffset,
-+					   const void *sig_blob)
- {
-+	const char *name = fit_get_name(fit, conf_noffset, NULL);
- 	int noffset;
- 	int sig_node;
- 	int verified = 0;
-@@ -408,6 +417,15 @@ int fit_config_verify_required_sigs(const void *fit, int conf_noffset,
- 	bool reqd_policy_all = true;
- 	const char *reqd_mode;
- 
-+	/*
-+	 * We don't support this since libfdt considers names with the
-+	 * name root but different @ suffix to be equal
-+	 */
-+	if (strchr(name, '@')) {
-+		printf("Configuration node '%s' contains '@'\n", name);
-+		return -EPERM;
-+	}
-+
- 	/* Work out what we need to verify */
- 	sig_node = fdt_subnode_offset(sig_blob, 0, FIT_SIG_NODENAME);
- 	if (sig_node < 0) {
-diff --git a/common/image-fit.c b/common/image-fit.c
-index adc3e551de..c3dc814115 100644
---- a/common/image-fit.c
-+++ b/common/image-fit.c
-@@ -1369,21 +1369,31 @@ error:
-  */
- int fit_image_verify(const void *fit, int image_noffset)
- {
-+	const char *name = fit_get_name(fit, image_noffset, NULL);
- 	const void	*data;
- 	size_t		size;
--	int		noffset = 0;
- 	char		*err_msg = "";
- 
-+	if (strchr(name, '@')) {
-+		/*
-+		 * We don't support this since libfdt considers names with the
-+		 * name root but different @ suffix to be equal
-+		 */
-+		err_msg = "Node name contains @";
-+		goto err;
-+	}
- 	/* Get image data and data length */
- 	if (fit_image_get_data_and_size(fit, image_noffset, &data, &size)) {
- 		err_msg = "Can't get image data/size";
--		printf("error!\n%s for '%s' hash node in '%s' image node\n",
--		       err_msg, fit_get_name(fit, noffset, NULL),
--		       fit_get_name(fit, image_noffset, NULL));
--		return 0;
-+		goto err;
- 	}
- 
- 	return fit_image_verify_with_data(fit, image_noffset, data, size);
-+
-+err:
-+	printf("error!\n%s in '%s' image node\n", err_msg,
-+	       fit_get_name(fit, image_noffset, NULL));
-+	return 0;
- }
- 
- /**
-diff --git a/test/py/tests/test_fit.py b/test/py/tests/test_fit.py
-index 84b3f95850..6d5b43c3ba 100755
---- a/test/py/tests/test_fit.py
-+++ b/test/py/tests/test_fit.py
-@@ -17,7 +17,7 @@ base_its = '''
-         #address-cells = <1>;
- 
-         images {
--                kernel@1 {
-+                kernel-1 {
-                         data = /incbin/("%(kernel)s");
-                         type = "kernel";
-                         arch = "sandbox";
-@@ -26,7 +26,7 @@ base_its = '''
-                         load = <0x40000>;
-                         entry = <0x8>;
-                 };
--                kernel@2 {
-+                kernel-2 {
-                         data = /incbin/("%(loadables1)s");
-                         type = "kernel";
-                         arch = "sandbox";
-@@ -35,19 +35,19 @@ base_its = '''
-                         %(loadables1_load)s
-                         entry = <0x0>;
-                 };
--                fdt@1 {
-+                fdt-1 {
-                         description = "snow";
-                         data = /incbin/("%(fdt)s");
-                         type = "flat_dt";
-                         arch = "sandbox";
-                         %(fdt_load)s
-                         compression = "%(compression)s";
--                        signature@1 {
-+                        signature-1 {
-                                 algo = "sha1,rsa2048";
-                                 key-name-hint = "dev";
-                         };
-                 };
--                ramdisk@1 {
-+                ramdisk-1 {
-                         description = "snow";
-                         data = /incbin/("%(ramdisk)s");
-                         type = "ramdisk";
-@@ -56,7 +56,7 @@ base_its = '''
-                         %(ramdisk_load)s
-                         compression = "%(compression)s";
-                 };
--                ramdisk@2 {
-+                ramdisk-2 {
-                         description = "snow";
-                         data = /incbin/("%(loadables2)s");
-                         type = "ramdisk";
-@@ -67,10 +67,10 @@ base_its = '''
-                 };
-         };
-         configurations {
--                default = "conf@1";
--                conf@1 {
--                        kernel = "kernel@1";
--                        fdt = "fdt@1";
-+                default = "conf-1";
-+                conf-1 {
-+                        kernel = "kernel-1";
-+                        fdt = "fdt-1";
-                         %(ramdisk_config)s
-                         %(loadables_config)s
-                 };
-@@ -410,7 +410,7 @@ def test_fit(u_boot_console):
- 
-         # Try a ramdisk
-         with cons.log.section('Kernel + FDT + Ramdisk load'):
--            params['ramdisk_config'] = 'ramdisk = "ramdisk@1";'
-+            params['ramdisk_config'] = 'ramdisk = "ramdisk-1";'
-             params['ramdisk_load'] = 'load = <%#x>;' % params['ramdisk_addr']
-             fit = make_fit(mkimage, params)
-             cons.restart_uboot()
-@@ -419,7 +419,7 @@ def test_fit(u_boot_console):
- 
-         # Configuration with some Loadables
-         with cons.log.section('Kernel + FDT + Ramdisk load + Loadables'):
--            params['loadables_config'] = 'loadables = "kernel@2", "ramdisk@2";'
-+            params['loadables_config'] = 'loadables = "kernel-2", "ramdisk-2";'
-             params['loadables1_load'] = ('load = <%#x>;' %
-                                          params['loadables1_addr'])
-             params['loadables2_load'] = ('load = <%#x>;' %
-diff --git a/test/py/tests/vboot_forge.py b/test/py/tests/vboot_forge.py
-index 0fb7ef4024..b41105bd0e 100644
---- a/test/py/tests/vboot_forge.py
-+++ b/test/py/tests/vboot_forge.py
-@@ -376,12 +376,12 @@ def manipulate(root, strblock):
-     """
-     Maliciously manipulates the structure to create a crafted FIT file
-     """
--    # locate /images/kernel@1 (frankly, it just expects it to be the first one)
-+    # locate /images/kernel-1 (frankly, it just expects it to be the first one)
-     kernel_node = root[0][0]
-     # clone it to save time filling all the properties
-     fake_kernel = kernel_node.clone()
-     # rename the node
--    fake_kernel.name = b'kernel@2'
-+    fake_kernel.name = b'kernel-2'
-     # get rid of signatures/hashes
-     fake_kernel.children = []
-     # NOTE: this simply replaces the first prop... either description or data
-@@ -391,13 +391,13 @@ def manipulate(root, strblock):
-     root[0].children.append(fake_kernel)
- 
-     # modify the default configuration
--    root[1].props[0].value = b'conf@2\x00'
-+    root[1].props[0].value = b'conf-2\x00'
-     # clone the first (only?) configuration
-     fake_conf = root[1][0].clone()
-     # rename and change kernel and fdt properties to select the crafted kernel
--    fake_conf.name = b'conf@2'
--    fake_conf.props[0].value = b'kernel@2\x00'
--    fake_conf.props[1].value = b'fdt@1\x00'
-+    fake_conf.name = b'conf-2'
-+    fake_conf.props[0].value = b'kernel-2\x00'
-+    fake_conf.props[1].value = b'fdt-1\x00'
-     # insert the new configuration under /configurations
-     root[1].children.append(fake_conf)
- 
diff --git a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27138-2.patch b/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27138-2.patch
deleted file mode 100644
index 946196c..0000000
--- a/poky/meta/recipes-bsp/u-boot/files/CVE-2021-27138-2.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 3f04db891a353f4b127ed57279279f851c6b4917 Mon Sep 17 00:00:00 2001
-From: Simon Glass <sjg@chromium.org>
-Date: Mon, 15 Feb 2021 17:08:12 -0700
-Subject: [PATCH] image: Check for unit addresses in FITs
-
-Using unit addresses in a FIT is a security risk. Add a check for this
-and disallow it.
-
-CVE-2021-27138
-
-Signed-off-by: Simon Glass <sjg@chromium.org>
-Reported-by: Bruce Monroe <bruce.monroe@intel.com>
-Reported-by: Arie Haenel <arie.haenel@intel.com>
-Reported-by: Julien Lenoir <julien.lenoir@intel.com>
-
-CVE: CVE-2021-27138
-Upstream-Status: Backport[https://github.com/u-boot/u-boot/commit/3f04db891a353f4b127ed57279279f851c6b4917]
-Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
----
- common/image-fit.c          | 56 +++++++++++++++++++++++++++++++++++++++++----
- test/py/tests/test_vboot.py |  9 ++++----
- 2 files changed, 57 insertions(+), 8 deletions(-)
-
-diff --git a/common/image-fit.c b/common/image-fit.c
-index bcf395f6a1..28b3d2b191 100644
---- a/common/image-fit.c
-+++ b/common/image-fit.c
-@@ -1568,6 +1568,34 @@ int fit_image_check_comp(const void *fit, int noffset, uint8_t comp)
- 	return (comp == image_comp);
- }
- 
-+/**
-+ * fdt_check_no_at() - Check for nodes whose names contain '@'
-+ *
-+ * This checks the parent node and all subnodes recursively
-+ *
-+ * @fit: FIT to check
-+ * @parent: Parent node to check
-+ * @return 0 if OK, -EADDRNOTAVAIL is a node has a name containing '@'
-+ */
-+static int fdt_check_no_at(const void *fit, int parent)
-+{
-+	const char *name;
-+	int node;
-+	int ret;
-+
-+	name = fdt_get_name(fit, parent, NULL);
-+	if (!name || strchr(name, '@'))
-+		return -EADDRNOTAVAIL;
-+
-+	fdt_for_each_subnode(node, fit, parent) {
-+		ret = fdt_check_no_at(fit, node);
-+		if (ret)
-+			return ret;
-+	}
-+
-+	return 0;
-+}
-+
- int fit_check_format(const void *fit, ulong size)
- {
- 	int ret;
-@@ -1589,10 +1617,27 @@ int fit_check_format(const void *fit, ulong size)
- 		if (size == IMAGE_SIZE_INVAL)
- 			size = fdt_totalsize(fit);
- 		ret = fdt_check_full(fit, size);
-+		if (ret)
-+			ret = -EINVAL;
-+
-+		/*
-+		 * U-Boot stopped using unit addressed in 2017. Since libfdt
-+		 * can match nodes ignoring any unit address, signature
-+		 * verification can see the wrong node if one is inserted with
-+		 * the same name as a valid node but with a unit address
-+		 * attached. Protect against this by disallowing unit addresses.
-+		 */
-+		if (!ret && CONFIG_IS_ENABLED(FIT_SIGNATURE)) {
-+			ret = fdt_check_no_at(fit, 0);
- 
-+			if (ret) {
-+				log_debug("FIT check error %d\n", ret);
-+				return ret;
-+			}
-+		}
- 		if (ret) {
- 			log_debug("FIT check error %d\n", ret);
--			return -EINVAL;
-+			return ret;
- 		}
- 	}
- 
-@@ -1955,10 +2000,13 @@ int fit_image_load(bootm_headers_t *images, ulong addr,
- 	printf("## Loading %s from FIT Image at %08lx ...\n", prop_name, addr);
- 
- 	bootstage_mark(bootstage_id + BOOTSTAGE_SUB_FORMAT);
--	if (fit_check_format(fit, IMAGE_SIZE_INVAL)) {
--		printf("Bad FIT %s image format!\n", prop_name);
-+	ret = fit_check_format(fit, IMAGE_SIZE_INVAL);
-+	if (ret) {
-+		printf("Bad FIT %s image format! (err=%d)\n", prop_name, ret);
-+		if (CONFIG_IS_ENABLED(FIT_SIGNATURE) && ret == -EADDRNOTAVAIL)
-+			printf("Signature checking prevents use of unit addresses (@) in nodes\n");
- 		bootstage_error(bootstage_id + BOOTSTAGE_SUB_FORMAT);
--		return -ENOEXEC;
-+		return ret;
- 	}
- 	bootstage_mark(bootstage_id + BOOTSTAGE_SUB_FORMAT_OK);
- 	if (fit_uname) {
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
index 993478a..dbbb9ff 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,16 +12,9 @@
 
 # We use the revision in order to avoid having to fetch it from the
 # repo during parse
-SRCREV = "c4fddedc48f336eabc4ce3f74940e6aa372de18c"
+SRCREV = "b46dd116ce03e235f2a7d4843c6278e1da44b5e1"
 
 SRC_URI = "git://git.denx.de/u-boot.git \
-           file://0001-add-valid-fdt-check.patch \
-           file://CVE-2021-27097-1.patch \
-           file://CVE-2021-27097-2.patch \
-           file://CVE-2021-27097-3.patch \
-           file://CVE-2021-27097-4.patch \
-           file://CVE-2021-27138-1.patch \
-           file://CVE-2021-27138-2.patch \
           "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.01.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.04.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.01.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot-tools_2021.04.bb
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2021.01.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2021.04.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot_2021.01.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot_2021.04.bb
diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
index c8a3f87..5c46bbf 100644
--- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
+++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -30,10 +30,13 @@
 SRC_URI[md5sum] = "229c6aa30674fc43c202b22c5f8c2be7"
 SRC_URI[sha256sum] = "060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda"
 
+# Issue only affects Debian/SUSE, not us
+CVE_CHECK_WHITELIST += "CVE-2021-26720"
+
 DEPENDS = "expat libcap libdaemon glib-2.0 intltool-native"
 
 # For gtk related PACKAGECONFIGs: gtk, gtk3
-AVAHI_GTK ?= "gtk3"
+AVAHI_GTK ?= ""
 
 PACKAGECONFIG ??= "dbus ${@bb.utils.contains_any('DISTRO_FEATURES','x11 wayland','${AVAHI_GTK}','',d)}"
 PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.16/0001-avoid-start-failure-with-bind-user.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/0001-avoid-start-failure-with-bind-user.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/0001-avoid-start-failure-with-bind-user.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.16/0001-named-lwresd-V-and-start-log-hide-build-options.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/0001-named-lwresd-V-and-start-log-hide-build-options.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/0001-named-lwresd-V-and-start-log-hide-build-options.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.16/bind-ensure-searching-for-json-headers-searches-sysr.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/bind-ensure-searching-for-json-headers-searches-sysr.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/bind-ensure-searching-for-json-headers-searches-sysr.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/bind9 b/poky/meta/recipes-connectivity/bind/bind-9.16.16/bind9
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/bind9
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/bind9
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.16/conf.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/conf.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/conf.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind-9.16.16/generate-rndc-key.sh
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/generate-rndc-key.sh
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/generate-rndc-key.sh
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.16/init.d-add-support-for-read-only-rootfs.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/init.d-add-support-for-read-only-rootfs.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/init.d-add-support-for-read-only-rootfs.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.16/make-etc-initd-bind-stop-work.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/make-etc-initd-bind-stop-work.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/make-etc-initd-bind-stop-work.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.12/named.service b/poky/meta/recipes-connectivity/bind/bind-9.16.16/named.service
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.12/named.service
rename to poky/meta/recipes-connectivity/bind/bind-9.16.16/named.service
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.16.12.bb b/poky/meta/recipes-connectivity/bind/bind_9.16.16.bb
similarity index 94%
rename from poky/meta/recipes-connectivity/bind/bind_9.16.12.bb
rename to poky/meta/recipes-connectivity/bind/bind_9.16.16.bb
index 09f7703..b152598 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.16.12.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.16.16.bb
@@ -20,12 +20,16 @@
            file://0001-avoid-start-failure-with-bind-user.patch \
            "
 
-SRC_URI[sha256sum] = "9914af9311fd349cab441097898d94fb28d0bfd9bf6ed04fe1f97f042644da7f"
+SRC_URI[sha256sum] = "6c913902adf878e7dc5e229cea94faefc9d40f44775a30213edd08860f761d7b"
 
 UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
 # stay at 9.16 follow the ESV versions divisible by 4
 UPSTREAM_CHECK_REGEX = "(?P<pver>9.(16|20|24|28)(\.\d+)+(-P\d+)*)/"
 
+# Issue only affects dhcpd with recent bind versions. We don't ship dhcpd anymore
+# so the issue doesn't affect us.
+CVE_CHECK_WHITELIST += "CVE-2019-6470"
+
 inherit autotools update-rc.d systemd useradd pkgconfig multilib_header update-alternatives
 
 # PACKAGECONFIGs readline and libedit should NOT be set at same time
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5.inc b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
index 74b59e4..635cad8 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -53,6 +53,7 @@
            file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
            file://0001-test-gatt-Fix-hung-issue.patch \
            file://0001-audio-Rename-pause-funciton-to-avoid-shadowing-glibc.patch \
+           file://0001-Makefile.am-add-missing-mkdir-for-ell-shared.patch \
            "
 S = "${WORKDIR}/bluez-${PV}"
 
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-add-missing-mkdir-for-ell-shared.patch b/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-add-missing-mkdir-for-ell-shared.patch
new file mode 100644
index 0000000..03b42f7
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5/0001-Makefile.am-add-missing-mkdir-for-ell-shared.patch
@@ -0,0 +1,25 @@
+From d341ba650af1b7068d9ad034732b4f41b91bb2c1 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sun, 25 Apr 2021 18:56:41 +0200
+Subject: [PATCH] Makefile.am: add missing mkdir for ell/shared
+
+This addresses build errors out of source tree.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index be5d5c7..72ad425 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -623,6 +623,7 @@ lib/bluetooth/%.h: lib/%.h
+ 	$(AM_V_GEN)$(LN_S) -f $(abspath $<) $@
+ 
+ ell/shared: Makefile
++	$(AM_V_at)$(MKDIR_P) ell
+ 	$(AM_V_GEN)for f in $(ell_shared) ; do \
+ 		if [ ! -f $$f ] ; then \
+ 			$(LN_S) -t ell -f $(abs_srcdir)/../ell/$$f ; \
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5_5.56.bb b/poky/meta/recipes-connectivity/bluez5/bluez5_5.58.bb
similarity index 87%
rename from poky/meta/recipes-connectivity/bluez5/bluez5_5.56.bb
rename to poky/meta/recipes-connectivity/bluez5/bluez5_5.58.bb
index 676cb2d..eb8475e 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5_5.56.bb
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5_5.58.bb
@@ -1,7 +1,9 @@
 require bluez5.inc
 
-SRC_URI[md5sum] = "e6c51b2aefa7c56ff072819a78611fa5"
-SRC_URI[sha256sum] = "59c4dba9fc8aae2a6a5f8f12f19bc1b0c2dc27355c7ca3123eed3fe6bd7d0b9d"
+SRC_URI[sha256sum] = "c8065e75a5eb67236849ef68a354b1700540305a8c88ef0a0fd6288f19daf1f1"
+
+# These issues have kernel fixes rather than bluez fixes so exclude here
+CVE_CHECK_WHITELIST += "CVE-2020-12352 CVE-2020-24490"
 
 # noinst programs in Makefile.tools that are conditional on READLINE
 # support
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_5.11.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_5.12.0.bb
similarity index 75%
rename from poky/meta/recipes-connectivity/iproute2/iproute2_5.11.0.bb
rename to poky/meta/recipes-connectivity/iproute2/iproute2_5.12.0.bb
index e27b42d..3631123 100644
--- a/poky/meta/recipes-connectivity/iproute2/iproute2_5.11.0.bb
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2_5.12.0.bb
@@ -4,7 +4,7 @@
            file://0001-libc-compat.h-add-musl-workaround.patch \
            "
 
-SRC_URI[sha256sum] = "c5e2ea108212b3445051b35953ec267f9f3469e1d5c67ac034ab559849505c54"
+SRC_URI[sha256sum] = "9d268db98a36ee2a0e3ff3b92b2efff66fc1138a51e409bdef6ab3cfe15f326f"
 
 # CFLAGS are computed in Makefile and reference CCOPTS
 #
diff --git a/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb b/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.bb
similarity index 95%
rename from poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb
rename to poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.bb
index 9a83898..75e8ba0 100644
--- a/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.14.1.bb
+++ b/poky/meta/recipes-connectivity/libnss-mdns/libnss-mdns_0.15.bb
@@ -11,7 +11,7 @@
 SRC_URI = "git://github.com/lathiat/nss-mdns \
            "
 
-SRCREV = "41c9c5e78f287ed4b41ac438c1873fa71bfa70ae"
+SRCREV = "65ad25563937682ab2770c36d56667a754837102"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb b/poky/meta/recipes-connectivity/ofono/ofono_1.32.bb
similarity index 92%
rename from poky/meta/recipes-connectivity/ofono/ofono_1.31.bb
rename to poky/meta/recipes-connectivity/ofono/ofono_1.32.bb
index 2425ef7..f3d875b 100644
--- a/poky/meta/recipes-connectivity/ofono/ofono_1.31.bb
+++ b/poky/meta/recipes-connectivity/ofono/ofono_1.32.bb
@@ -13,8 +13,7 @@
     file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
     file://0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch \
 "
-SRC_URI[md5sum] = "1c26340e3c6ed132cc812595081bb3dc"
-SRC_URI[sha256sum] = "a15c5d28096c10eb30e47a68b6dc2e7c4a5a99d7f4cfedf0b69624f33d859e9b"
+SRC_URI[sha256sum] = "f7d775887b7b80cf3b82e3f0a6c2696c6d01963d222ca2217919d21b9e803042"
 
 inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
 
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_8.6p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_8.6p1.bb
index be56fe4..e8f041c 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_8.6p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_8.6p1.bb
@@ -27,10 +27,16 @@
            "
 SRC_URI[sha256sum] = "c3e6e4da1621762c850d03b47eed1e48dff4cc9608ddeb547202a234df8ed7ae"
 
+# This CVE is specific to OpenSSH with the pam opie which we don't build/use here
+CVE_CHECK_WHITELIST += "CVE-2007-2768"
+
 # This CVE is specific to OpenSSH server, as used in Fedora and Red Hat Enterprise Linux 7
 # and when running in a Kerberos environment. As such it is not relevant to OpenEmbedded
 CVE_CHECK_WHITELIST += "CVE-2014-9278"
 
+# CVE only applies to some distributed RHEL binaries
+CVE_CHECK_WHITELIST += "CVE-2008-3844"
+
 PAM_SRC_URI = "file://sshd"
 
 inherit manpages useradd update-rc.d update-alternatives systemd
diff --git a/poky/meta/recipes-core/busybox/busybox/0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch b/poky/meta/recipes-core/busybox/busybox/0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch
deleted file mode 100644
index 67c9f18..0000000
--- a/poky/meta/recipes-core/busybox/busybox/0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From fe791386ebc270219ca00406c9fdadc5130b64ee Mon Sep 17 00:00:00 2001
-From: Samuel Sapalski <samuel.sapalski@nokia.com>
-Date: Wed, 3 Mar 2021 16:31:22 +0100
-Subject: [PATCH] decompress_gunzip: Fix DoS if gzip is corrupt
-
-On certain corrupt gzip files, huft_build will set the error bit on
-the result pointer. If afterwards abort_unzip is called huft_free
-might run into a segmentation fault or an invalid pointer to
-free(p).
-
-In order to mitigate this, we check in huft_free if the error bit
-is set and clear it before the linked list is freed.
-
-Signed-off-by: Samuel Sapalski <samuel.sapalski@nokia.com>
-Signed-off-by: Peter Kaestle <peter.kaestle@nokia.com>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-
-Upstream-Status: Backport
-CVE: CVE-2021-28831
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- archival/libarchive/decompress_gunzip.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c
-index eb3b64930..e93cd5005 100644
---- a/archival/libarchive/decompress_gunzip.c
-+++ b/archival/libarchive/decompress_gunzip.c
-@@ -220,10 +220,20 @@ static const uint8_t border[] ALIGN1 = {
-  * each table.
-  * t: table to free
-  */
-+#define BAD_HUFT(p) ((uintptr_t)(p) & 1)
-+#define ERR_RET     ((huft_t*)(uintptr_t)1)
- static void huft_free(huft_t *p)
- {
- 	huft_t *q;
- 
-+	/*
-+	 * If 'p' has the error bit set we have to clear it, otherwise we might run
-+	 * into a segmentation fault or an invalid pointer to free(p)
-+	 */
-+	if (BAD_HUFT(p)) {
-+		p = (huft_t*)((uintptr_t)(p) ^ (uintptr_t)(ERR_RET));
-+	}
-+
- 	/* Go through linked list, freeing from the malloced (t[-1]) address. */
- 	while (p) {
- 		q = (--p)->v.t;
-@@ -289,8 +299,6 @@ static unsigned fill_bitbuffer(STATE_PARAM unsigned bitbuffer, unsigned *current
-  * or a valid pointer to a Huffman table, ORed with 0x1 if incompete table
-  * is given: "fixed inflate" decoder feeds us such data.
-  */
--#define BAD_HUFT(p) ((uintptr_t)(p) & 1)
--#define ERR_RET     ((huft_t*)(uintptr_t)1)
- static huft_t* huft_build(const unsigned *b, const unsigned n,
- 			const unsigned s, const struct cp_ext *cp_ext,
- 			unsigned *m)
diff --git a/poky/meta/recipes-core/busybox/busybox_1.33.0.bb b/poky/meta/recipes-core/busybox/busybox_1.33.1.bb
similarity index 92%
rename from poky/meta/recipes-core/busybox/busybox_1.33.0.bb
rename to poky/meta/recipes-core/busybox/busybox_1.33.1.bb
index c334c42..a71ff53 100644
--- a/poky/meta/recipes-core/busybox/busybox_1.33.0.bb
+++ b/poky/meta/recipes-core/busybox/busybox_1.33.1.bb
@@ -47,9 +47,8 @@
            file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \
            file://rev.cfg \
            file://pgrep.cfg \
-           file://0001-decompress_gunzip-Fix-DoS-if-gzip-is-corrupt.patch \
            file://0001-gen_build_files-Use-C-locale-when-calling-sed-on-glo.patch \
            "
 SRC_URI_append_libc-musl = " file://musl.cfg "
 
-SRC_URI[tarball.sha256sum] = "d568681c91a85edc6710770cebc1e80e042ad74d305b5c2e6d57a5f3de3b8fbd"
+SRC_URI[tarball.sha256sum] = "12cec6bd2b16d8a9446dd16130f2b92982f1819f6e1c5f5887b6db03f5660d28"
diff --git a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb
index c1962cc..f3fe31f 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb
@@ -26,6 +26,10 @@
 SRC_URI[md5sum] = "022042695b7d5bcf1a93559a9735e668"
 SRC_URI[sha256sum] = "4458d8de7849df44ccab15e16b1548b285224dbba5f08fac070c1c0e0bcc4cfa"
 
+# http://git.savannah.gnu.org/cgit/coreutils.git/commit/?id=v8.27-101-gf5d7c0842
+# runcon is not really a sandbox command, use `runcon ... setsid ...` to avoid this particular issue.
+CVE_CHECK_WHITELIST += "CVE-2016-2781"
+
 EXTRA_OECONF_class-native = "--without-gmp"
 EXTRA_OECONF_class-target = "--enable-install-program=arch,hostname --libexecdir=${libdir}"
 EXTRA_OECONF_class-nativesdk = "--enable-install-program=arch,hostname"
diff --git a/poky/meta/recipes-core/ell/ell_0.39.bb b/poky/meta/recipes-core/ell/ell_0.40.bb
similarity index 90%
rename from poky/meta/recipes-core/ell/ell_0.39.bb
rename to poky/meta/recipes-core/ell/ell_0.40.bb
index 68ec4cb..d088676 100644
--- a/poky/meta/recipes-core/ell/ell_0.39.bb
+++ b/poky/meta/recipes-core/ell/ell_0.40.bb
@@ -17,7 +17,7 @@
 SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz \
            file://0001-pem.c-do-not-use-rawmemchr.patch \
            "
-SRC_URI[sha256sum] = "653e2e139e23ed31e03c56c05f15321a9e818e2dca00a315c18d2c7b72f15d08"
+SRC_URI[sha256sum] = "b9bf5c14f2963591ea1372049c05646919a9ed46fcee5cd11ede1022c99ffbbd"
 
 do_configure_prepend () {
     mkdir -p ${S}/build-aux
diff --git a/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch b/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
deleted file mode 100644
index c5c18ea..0000000
--- a/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From aa84835a00bfd65e784d58411e76f60658e939dc Mon Sep 17 00:00:00 2001
-From: Oleksandr Popovych <oleksandr.s.popovych@globallogic.com>
-Date: Tue, 18 Feb 2020 19:04:55 +0200
-Subject: [PATCH] Add output of tests result
-
-Added console output of testing results in form 'RESULT: TEST_NAME'.
-
-Changed verbose mode of test application set by '-v' ('--verbose')
-argument to CK_NORMAL.
-Added new supported argument '-vv' ('--extra-verbose') that changes
-verbose mode of test application to CK_VERBOSE. Results of each test
-are shown in output only if this mode is set.
-
-Upstream-Status: Denied
-
-This patch changes potentially deprecated feature that shoud be changed
-in upstream. [https://github.com/libexpat/libexpat/issues/382]
-
-Signed-off-by: Oleksandr Popovych <oleksandr.s.popovych@globallogic.com>
----
- tests/minicheck.c | 10 +++++++++-
- tests/runtests.c  |  4 +++-
- 2 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/expat/tests/minicheck.c b/expat/tests/minicheck.c
-index a5a1efb..94fa412 100644
---- a/tests/minicheck.c
-+++ b/tests/minicheck.c
-@@ -164,6 +164,8 @@ srunner_run_all(SRunner *runner, int verbosity) {
-       if (tc->setup != NULL) {
-         /* setup */
-         if (setjmp(env)) {
-+          if (verbosity >= CK_VERBOSE)
-+            printf("SKIP: %s\n", _check_current_function);
-           add_failure(runner, verbosity);
-           continue;
-         }
-@@ -171,6 +173,8 @@ srunner_run_all(SRunner *runner, int verbosity) {
-       }
-       /* test */
-       if (setjmp(env)) {
-+        if (verbosity >= CK_VERBOSE)
-+          printf("FAIL: %s\n", _check_current_function);
-         add_failure(runner, verbosity);
-         continue;
-       }
-@@ -178,12 +182,16 @@ srunner_run_all(SRunner *runner, int verbosity) {
-
-       /* teardown */
-       if (tc->teardown != NULL) {
--        if (setjmp(env)) {
-+        if (setjmp(env)) {
-+          if (verbosity >= CK_VERBOSE)
-+           printf("PASS: %s\n", _check_current_function);
-           add_failure(runner, verbosity);
-           continue;
-         }
-         tc->teardown();
-       }
-+      if (verbosity >= CK_VERBOSE)
-+        printf("PASS: %s\n", _check_current_function);
-     }
-     tc = tc->next_tcase;
-   }
-diff --git a/tests/runtests.c b/expat/tests/runtests.c
-index 7791fe0..75724e5 100644
---- a/tests/runtests.c
-+++ b/tests/runtests.c
-@@ -11619,9 +11619,11 @@ main(int argc, char *argv[]) {
-   for (i = 1; i < argc; ++i) {
-     char *opt = argv[i];
-     if (strcmp(opt, "-v") == 0 || strcmp(opt, "--verbose") == 0)
--      verbosity = CK_VERBOSE;
-+      verbosity = CK_NORMAL;
-     else if (strcmp(opt, "-q") == 0 || strcmp(opt, "--quiet") == 0)
-       verbosity = CK_SILENT;
-+    else if (strcmp(opt, "-vv") == 0 || strcmp(opt, "--extra-verbose") == 0)
-+	verbosity = CK_VERBOSE;
-     else {
-       fprintf(stderr, "runtests: unknown option '%s'\n", opt);
-       return 2;
---
-2.17.1
diff --git a/poky/meta/recipes-core/expat/expat/run-ptest b/poky/meta/recipes-core/expat/expat/run-ptest
index 1b39cec..59d8ab5 100644
--- a/poky/meta/recipes-core/expat/expat/run-ptest
+++ b/poky/meta/recipes-core/expat/expat/run-ptest
@@ -18,6 +18,6 @@
 
 echo "Architecture: $(uname -m)" > ${output}
 echo "Image: $(uname -sr)" >> ${output}
-${TIME} -f 'Execution time: %e s' bash -c "testCheck runtests -vv" |& tee -a ${output}
-${TIME} -f 'Execution time: %e s' bash -c "testCheck runtestspp -vv" |& tee -a ${output}
+${TIME} -f 'Execution time: %e s' bash -c "testCheck runtests -v" |& tee -a ${output}
+${TIME} -f 'Execution time: %e s' bash -c "testCheck runtestspp -v" |& tee -a ${output}
 echo
diff --git a/poky/meta/recipes-core/expat/expat_2.2.10.bb b/poky/meta/recipes-core/expat/expat_2.4.1.bb
similarity index 81%
rename from poky/meta/recipes-core/expat/expat_2.2.10.bb
rename to poky/meta/recipes-core/expat/expat_2.4.1.bb
index fa263775..451158a 100644
--- a/poky/meta/recipes-core/expat/expat_2.2.10.bb
+++ b/poky/meta/recipes-core/expat/expat_2.4.1.bb
@@ -8,11 +8,10 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \
            file://libtool-tag.patch \
-	   file://run-ptest \
-	   file://0001-Add-output-of-tests-result.patch \
-	  "
+           file://run-ptest \
+           "
 
-SRC_URI[sha256sum] = "b2c160f1b60e92da69de8e12333096aeb0c3bf692d41c60794de278af72135a5"
+SRC_URI[sha256sum] = "2f9b6a580b94577b150a7d5617ad4643a4301a6616ff459307df3e225bcfbf40"
 
 EXTRA_OECMAKE_class-native += "-DEXPAT_BUILD_DOCS=OFF"
 
@@ -25,3 +24,5 @@
 }
 
 BBCLASSEXTEND += "native nativesdk"
+
+CVE_PRODUCT = "expat libexpat"
diff --git a/poky/meta/recipes-core/gettext/gettext_0.21.bb b/poky/meta/recipes-core/gettext/gettext_0.21.bb
index bc14867..b86e8d8 100644
--- a/poky/meta/recipes-core/gettext/gettext_0.21.bb
+++ b/poky/meta/recipes-core/gettext/gettext_0.21.bb
@@ -174,7 +174,7 @@
     fi
 }
 
-RDEPENDS_${PN}-ptest += "make"
+RDEPENDS_${PN}-ptest += "make xz"
 RDEPENDS_${PN}-ptest_append_libc-glibc = "\
     glibc-gconv-big5 \
     glibc-charmap-big5 \
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index 7cf89c8..7fbc07a 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -1,4 +1,4 @@
-From ff790dd7086e28896f8e7630135f756cc6f06c80 Mon Sep 17 00:00:00 2001
+From b7abbba886d3743616f8cc0e8b441c879128bbda Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Fri, 11 Mar 2016 15:35:55 +0000
 Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
@@ -19,7 +19,7 @@
  1 file changed, 11 insertions(+), 1 deletion(-)
 
 diff --git a/gio/giomodule.c b/gio/giomodule.c
-index ca1daf2..954a250 100644
+index a2909a8..1f4ab82 100644
 --- a/gio/giomodule.c
 +++ b/gio/giomodule.c
 @@ -51,6 +51,8 @@
@@ -31,7 +31,7 @@
  #endif
  #include <glib/gstdio.h>
  
-@@ -1212,7 +1214,15 @@ get_gio_module_dir (void)
+@@ -1213,7 +1215,15 @@ get_gio_module_dir (void)
                                       NULL);
        g_free (install_dir);
  #else
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.1.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.2.bb
similarity index 96%
rename from poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.1.bb
rename to poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.2.bb
index accc2ca..0cf1688 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.1.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.68.2.bb
@@ -20,7 +20,7 @@
            "
 SRC_URI_append_class-native = " file://relocate-modules.patch"
 
-SRC_URI[sha256sum] = "241654b96bd36b88aaa12814efc4843b578e55d47440103727959ac346944333"
+SRC_URI[sha256sum] = "ecc7798a9cc034eabdfd7f246e6dd461cdbf1175fcc2e9867cc7da7b7309e0fb"
 
 # Find any meson cross files in FILESPATH that are relevant for the current
 # build (using siteinfo) and add them to EXTRA_OEMESON.
diff --git a/poky/meta/recipes-core/glibc/glibc-version.inc b/poky/meta/recipes-core/glibc/glibc-version.inc
index 3a95173..376ead6 100644
--- a/poky/meta/recipes-core/glibc/glibc-version.inc
+++ b/poky/meta/recipes-core/glibc/glibc-version.inc
@@ -1,6 +1,6 @@
 SRCBRANCH ?= "release/2.33/master"
 PV = "2.33"
-SRCREV_glibc ?= "9826b03b747b841f5fc6de2054bf1ef3f5c4bdf3"
+SRCREV_glibc ?= "3f5080aedd164c1f92a53552dd3e0b82ac6d2bd3"
 SRCREV_localedef ?= "bd644c9e6f3e20c5504da1488448173c69c56c28"
 
 GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git"
diff --git a/poky/meta/recipes-core/glibc/glibc/0001-nptl-Remove-private-futex-optimization-BZ-27304.patch b/poky/meta/recipes-core/glibc/glibc/0001-nptl-Remove-private-futex-optimization-BZ-27304.patch
deleted file mode 100644
index 39fde5b..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0001-nptl-Remove-private-futex-optimization-BZ-27304.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From c4ad832276f4dadfa40904109b26a521468f66bc Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Thu, 4 Feb 2021 15:00:20 +0100
-Subject: [PATCH] nptl: Remove private futex optimization [BZ #27304]
-
-It is effectively used, unexcept for pthread_cond_destroy, where we do
-not want it; see bug 27304.  The internal locks do not support a
-process-shared mode.
-
-This fixes commit dc6cfdc934db9997c33728082d63552b9eee4563 ("nptl:
-Move pthread_cond_destroy implementation into libc").
-
-Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
-
-Upstream-Status: Backport [https://sourceware.org/bugzilla/show_bug.cgi?id=27304]
-Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
----
- sysdeps/nptl/lowlevellock-futex.h | 14 +-------------
- 1 file changed, 1 insertion(+), 13 deletions(-)
-
-diff --git a/sysdeps/nptl/lowlevellock-futex.h b/sysdeps/nptl/lowlevellock-futex.h
-index ecb729da6b..ca96397a4a 100644
---- a/sysdeps/nptl/lowlevellock-futex.h
-+++ b/sysdeps/nptl/lowlevellock-futex.h
-@@ -50,20 +50,8 @@
- #define LLL_SHARED	FUTEX_PRIVATE_FLAG
- 
- #ifndef __ASSEMBLER__
--
--# if IS_IN (libc) || IS_IN (rtld)
--/* In libc.so or ld.so all futexes are private.  */
--#  define __lll_private_flag(fl, private)			\
--  ({								\
--    /* Prevent warnings in callers of this macro.  */		\
--    int __lll_private_flag_priv __attribute__ ((unused));	\
--    __lll_private_flag_priv = (private);			\
--    ((fl) | FUTEX_PRIVATE_FLAG);				\
--  })
--# else
--#  define __lll_private_flag(fl, private) \
-+# define __lll_private_flag(fl, private) \
-   (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
--# endif
- 
- # define lll_futex_syscall(nargs, futexp, op, ...)                      \
-   ({                                                                    \
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/glibc/glibc/0031-x86-Require-full-ISA-support-for-x86-64-level-marker.patch b/poky/meta/recipes-core/glibc/glibc/0031-x86-Require-full-ISA-support-for-x86-64-level-marker.patch
deleted file mode 100644
index 3cb60b2..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0031-x86-Require-full-ISA-support-for-x86-64-level-marker.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From b1971f6f1331d738d1d6b376b4741668a7546125 Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Tue, 2 Feb 2021 13:45:58 -0800
-Subject: [PATCH] x86: Require full ISA support for x86-64 level marker [BZ #27318]
-
-Since -march=sandybridge enables ISAs in x86-64 ISA level v3, the v3
-marker is set on libc.so.  We couldn't set the needed ISA marker to v2
-since this libc won't run on all v2 machines.  Technically, the v3 marker
-is correct.  But the resulting libc.so won't run on Sandy Brigde, which
-is a v2 machine, even when libc is compiled with -march=sandybridge:
-
-$ ./elf/ld.so ./libc.so
-./libc.so: (p) CPU ISA level is lower than required: needed: 7; got: 3
-
-Instead, we require full ISA support for x86-64 level marker and disable
-x86-64 level marker for -march=sandybridge which enables ISAs between v2
-and v3.
-
-Upstream-Status: Submitted [https://sourceware.org/pipermail/libc-alpha/2021-February/122297.html]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-
- sysdeps/x86/configure    |  7 ++++++-
- sysdeps/x86/configure.ac |  2 +-
- sysdeps/x86/isa-level.c  | 21 ++++++++++++++++++++-
- 3 files changed, 27 insertions(+), 3 deletions(-)
-
-diff --git a/sysdeps/x86/configure b/sysdeps/x86/configure
-index 5e32dc62b3..5b20646843 100644
---- a/sysdeps/x86/configure
-+++ b/sysdeps/x86/configure
-@@ -133,7 +133,12 @@ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -nostartfiles -nostdlib -r -o conftest c
-   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-   test $ac_status = 0; }; }; then
-   count=`LC_ALL=C $READELF -n conftest | grep NT_GNU_PROPERTY_TYPE_0 | wc -l`
--  if test "$count" = 1; then
-+  if test "$count" = 1 && { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -DINCLUDE_X86_ISA_LEVEL -S -o conftest.s $srcdir/sysdeps/x86/isa-level.c'
-+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
-+  (eval $ac_try) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }; }; then
-     libc_cv_include_x86_isa_level=yes
-   fi
- fi
-diff --git a/sysdeps/x86/configure.ac b/sysdeps/x86/configure.ac
-index f94088f377..54ecd33d2c 100644
---- a/sysdeps/x86/configure.ac
-+++ b/sysdeps/x86/configure.ac
-@@ -100,7 +100,7 @@ EOF
- libc_cv_include_x86_isa_level=no
- if AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -nostartfiles -nostdlib -r -o conftest conftest1.S conftest2.S); then
-   count=`LC_ALL=C $READELF -n conftest | grep NT_GNU_PROPERTY_TYPE_0 | wc -l`
--  if test "$count" = 1; then
-+  if test "$count" = 1 && AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -DINCLUDE_X86_ISA_LEVEL -S -o conftest.s $srcdir/sysdeps/x86/isa-level.c); then
-     libc_cv_include_x86_isa_level=yes
-   fi
- fi
-diff --git a/sysdeps/x86/isa-level.c b/sysdeps/x86/isa-level.c
-index aaf524cb56..7f83449061 100644
---- a/sysdeps/x86/isa-level.c
-+++ b/sysdeps/x86/isa-level.c
-@@ -25,12 +25,17 @@
-    License along with the GNU C Library; if not, see
-    <https://www.gnu.org/licenses/>.  */
- 
--#include <elf.h>
-+#ifdef _LIBC
-+# include <elf.h>
-+#endif
- 
- /* ELF program property for x86 ISA level.  */
- #ifdef INCLUDE_X86_ISA_LEVEL
- # if defined __x86_64__ || defined __FXSR__ || !defined _SOFT_FLOAT \
-      || defined  __MMX__ || defined __SSE__ || defined __SSE2__
-+#  if !defined __SSE__ || !defined __SSE2__
-+#   error "Missing ISAs for x86-64 ISA level baseline"
-+#  endif
- #  define ISA_BASELINE	GNU_PROPERTY_X86_ISA_1_BASELINE
- # else
- #  define ISA_BASELINE	0
-@@ -40,6 +45,11 @@
-      || (defined __x86_64__ && defined __LAHF_SAHF__) \
-      || defined __POPCNT__ || defined __SSE3__ \
-      || defined __SSSE3__ || defined __SSE4_1__ || defined __SSE4_2__
-+#  if !defined __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 \
-+     || !defined __POPCNT__ || !defined __SSE3__ \
-+     || !defined __SSSE3__ || !defined __SSE4_1__ || !defined __SSE4_2__
-+#   error "Missing ISAs for x86-64 ISA level v2"
-+#  endif
- #  define ISA_V2	GNU_PROPERTY_X86_ISA_1_V2
- # else
- #  define ISA_V2	0
-@@ -48,6 +58,10 @@
- # if defined __AVX__ || defined __AVX2__ || defined __F16C__ \
-      || defined __FMA__ || defined __LZCNT__ || defined __MOVBE__ \
-      || defined __XSAVE__
-+# if !defined __AVX__ || !defined __AVX2__ || !defined __F16C__ \
-+     || !defined __FMA__ || !defined __LZCNT__
-+#   error "Missing ISAs for x86-64 ISA level v3"
-+#  endif
- #  define ISA_V3	GNU_PROPERTY_X86_ISA_1_V3
- # else
- #  define ISA_V3	0
-@@ -55,6 +69,11 @@
- 
- # if defined __AVX512F__ || defined __AVX512BW__ || defined __AVX512CD__ \
-      || defined __AVX512DQ__ || defined __AVX512VL__
-+#  if !defined __AVX512F__ || !defined __AVX512BW__ \
-+      || !defined __AVX512CD__ || !defined __AVX512DQ__ \
-+      || !defined __AVX512VL__
-+#   error "Missing ISAs for x86-64 ISA level v4"
-+#  endif
- #  define ISA_V4	GNU_PROPERTY_X86_ISA_1_V4
- # else
- #  define ISA_V4	0
diff --git a/poky/meta/recipes-core/glibc/glibc/0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch b/poky/meta/recipes-core/glibc/glibc/0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch
deleted file mode 100644
index e904b28..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 044e603b698093cf48f6e6229e0b66acf05227e4 Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Fri, 19 Feb 2021 13:29:00 +0100
-Subject: [PATCH] string: Work around GCC PR 98512 in rawmemchr
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=044e603b698093cf48f6e6229e0b66acf05227e4]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- string/rawmemchr.c | 26 +++++++++++++++-----------
- 1 file changed, 15 insertions(+), 11 deletions(-)
-
-diff --git a/string/rawmemchr.c b/string/rawmemchr.c
-index 59bbeeaa42..b8523118e5 100644
---- a/string/rawmemchr.c
-+++ b/string/rawmemchr.c
-@@ -22,24 +22,28 @@
- # define RAWMEMCHR __rawmemchr
- #endif
- 
--/* Find the first occurrence of C in S.  */
--void *
--RAWMEMCHR (const void *s, int c)
--{
--  DIAG_PUSH_NEEDS_COMMENT;
-+/* The pragmata should be nested inside RAWMEMCHR below, but that
-+   triggers GCC PR 98512.  */
-+DIAG_PUSH_NEEDS_COMMENT;
- #if __GNUC_PREREQ (7, 0)
--  /* GCC 8 warns about the size passed to memchr being larger than
--     PTRDIFF_MAX; the use of SIZE_MAX is deliberate here.  */
--  DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow=");
-+/* GCC 8 warns about the size passed to memchr being larger than
-+   PTRDIFF_MAX; the use of SIZE_MAX is deliberate here.  */
-+DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-overflow=");
- #endif
- #if __GNUC_PREREQ (11, 0)
--  /* Likewise GCC 11, with a different warning option.  */
--  DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread");
-+/* Likewise GCC 11, with a different warning option.  */
-+DIAG_IGNORE_NEEDS_COMMENT (11, "-Wstringop-overread");
- #endif
-+
-+/* Find the first occurrence of C in S.  */
-+void *
-+RAWMEMCHR (const void *s, int c)
-+{
-   if (c != '\0')
-     return memchr (s, c, (size_t)-1);
--  DIAG_POP_NEEDS_COMMENT;
-   return (char *)s + strlen (s);
- }
- libc_hidden_def (__rawmemchr)
- weak_alias (__rawmemchr, rawmemchr)
-+
-+DIAG_POP_NEEDS_COMMENT;
--- 
-2.30.1
-
diff --git a/poky/meta/recipes-core/glibc/glibc/0033-x86-Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch b/poky/meta/recipes-core/glibc/glibc/0033-x86-Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch
deleted file mode 100644
index 3a004e2..0000000
--- a/poky/meta/recipes-core/glibc/glibc/0033-x86-Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-From 750b00a1ddae220403fd892a6fd4e0791ffd154a Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Fri, 18 Sep 2020 07:55:14 -0700
-Subject: [PATCH] x86: Handle _SC_LEVEL1_ICACHE_LINESIZE [BZ #27444]
-
-    x86: Move x86 processor cache info to cpu_features
-
-missed _SC_LEVEL1_ICACHE_LINESIZE.
-
-1. Add level1_icache_linesize to struct cpu_features.
-2. Initialize level1_icache_linesize by calling handle_intel,
-handle_zhaoxin and handle_amd with _SC_LEVEL1_ICACHE_LINESIZE.
-3. Return level1_icache_linesize for _SC_LEVEL1_ICACHE_LINESIZE.
-
-Upstream-Status: Backport [https://sourceware.org/bugzilla/show_bug.cgi?id=27444]
-Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
----
- sysdeps/x86/Makefile                          |  8 +++
- sysdeps/x86/cacheinfo.c                       |  3 +
- sysdeps/x86/dl-cacheinfo.h                    |  6 ++
- sysdeps/x86/include/cpu-features.h            |  2 +
- .../x86/tst-sysconf-cache-linesize-static.c   |  1 +
- sysdeps/x86/tst-sysconf-cache-linesize.c      | 57 +++++++++++++++++++
- 6 files changed, 77 insertions(+)
- create mode 100644 sysdeps/x86/tst-sysconf-cache-linesize-static.c
- create mode 100644 sysdeps/x86/tst-sysconf-cache-linesize.c
-
-diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
-index dd82674342..d231263051 100644
---- a/sysdeps/x86/Makefile
-+++ b/sysdeps/x86/Makefile
-@@ -208,3 +208,11 @@ $(objpfx)check-cet.out: $(..)sysdeps/x86/check-cet.awk \
- generated += check-cet.out
- endif
- endif
-+
-+ifeq ($(subdir),posix)
-+tests += \
-+  tst-sysconf-cache-linesize \
-+  tst-sysconf-cache-linesize-static
-+tests-static += \
-+  tst-sysconf-cache-linesize-static
-+endif
-diff --git a/sysdeps/x86/cacheinfo.c b/sysdeps/x86/cacheinfo.c
-index 7b8df45e3b..5ea4723ca6 100644
---- a/sysdeps/x86/cacheinfo.c
-+++ b/sysdeps/x86/cacheinfo.c
-@@ -32,6 +32,9 @@ __cache_sysconf (int name)
-     case _SC_LEVEL1_ICACHE_SIZE:
-       return cpu_features->level1_icache_size;
- 
-+    case _SC_LEVEL1_ICACHE_LINESIZE:
-+      return cpu_features->level1_icache_linesize;
-+
-     case _SC_LEVEL1_DCACHE_SIZE:
-       return cpu_features->level1_dcache_size;
- 
-diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
-index a31fa0783a..7cd00b92f1 100644
---- a/sysdeps/x86/dl-cacheinfo.h
-+++ b/sysdeps/x86/dl-cacheinfo.h
-@@ -707,6 +707,7 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
-   long int core;
-   unsigned int threads = 0;
-   unsigned long int level1_icache_size = -1;
-+  unsigned long int level1_icache_linesize = -1;
-   unsigned long int level1_dcache_size = -1;
-   unsigned long int level1_dcache_assoc = -1;
-   unsigned long int level1_dcache_linesize = -1;
-@@ -726,6 +727,8 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
- 
-       level1_icache_size
- 	= handle_intel (_SC_LEVEL1_ICACHE_SIZE, cpu_features);
-+      level1_icache_linesize
-+	= handle_intel (_SC_LEVEL1_ICACHE_LINESIZE, cpu_features);
-       level1_dcache_size = data;
-       level1_dcache_assoc
- 	= handle_intel (_SC_LEVEL1_DCACHE_ASSOC, cpu_features);
-@@ -753,6 +756,7 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
-       shared = handle_zhaoxin (_SC_LEVEL3_CACHE_SIZE);
- 
-       level1_icache_size = handle_zhaoxin (_SC_LEVEL1_ICACHE_SIZE);
-+      level1_icache_linesize = handle_zhaoxin (_SC_LEVEL1_ICACHE_LINESIZE);
-       level1_dcache_size = data;
-       level1_dcache_assoc = handle_zhaoxin (_SC_LEVEL1_DCACHE_ASSOC);
-       level1_dcache_linesize = handle_zhaoxin (_SC_LEVEL1_DCACHE_LINESIZE);
-@@ -772,6 +776,7 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
-       shared = handle_amd (_SC_LEVEL3_CACHE_SIZE);
- 
-       level1_icache_size = handle_amd (_SC_LEVEL1_ICACHE_SIZE);
-+      level1_icache_linesize = handle_amd (_SC_LEVEL1_ICACHE_LINESIZE);
-       level1_dcache_size = data;
-       level1_dcache_assoc = handle_amd (_SC_LEVEL1_DCACHE_ASSOC);
-       level1_dcache_linesize = handle_amd (_SC_LEVEL1_DCACHE_LINESIZE);
-@@ -833,6 +838,7 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
-     }
- 
-   cpu_features->level1_icache_size = level1_icache_size;
-+  cpu_features->level1_icache_linesize = level1_icache_linesize;
-   cpu_features->level1_dcache_size = level1_dcache_size;
-   cpu_features->level1_dcache_assoc = level1_dcache_assoc;
-   cpu_features->level1_dcache_linesize = level1_dcache_linesize;
-diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu-features.h
-index 624736b40e..39a3f4f311 100644
---- a/sysdeps/x86/include/cpu-features.h
-+++ b/sysdeps/x86/include/cpu-features.h
-@@ -874,6 +874,8 @@ struct cpu_features
-   unsigned long int rep_stosb_threshold;
-   /* _SC_LEVEL1_ICACHE_SIZE.  */
-   unsigned long int level1_icache_size;
-+  /* _SC_LEVEL1_ICACHE_LINESIZE.  */
-+  unsigned long int level1_icache_linesize;
-   /* _SC_LEVEL1_DCACHE_SIZE.  */
-   unsigned long int level1_dcache_size;
-   /* _SC_LEVEL1_DCACHE_ASSOC.  */
-diff --git a/sysdeps/x86/tst-sysconf-cache-linesize-static.c b/sysdeps/x86/tst-sysconf-cache-linesize-static.c
-new file mode 100644
-index 0000000000..152ae68821
---- /dev/null
-+++ b/sysdeps/x86/tst-sysconf-cache-linesize-static.c
-@@ -0,0 +1 @@
-+#include "tst-sysconf-cache-linesize.c"
-diff --git a/sysdeps/x86/tst-sysconf-cache-linesize.c b/sysdeps/x86/tst-sysconf-cache-linesize.c
-new file mode 100644
-index 0000000000..642dbde5d2
---- /dev/null
-+++ b/sysdeps/x86/tst-sysconf-cache-linesize.c
-@@ -0,0 +1,57 @@
-+/* Test system cache line sizes.
-+   Copyright (C) 2021 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, see
-+   <https://www.gnu.org/licenses/>.  */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <array_length.h>
-+
-+static struct
-+{
-+  const char *name;
-+  int _SC_val;
-+} sc_options[] =
-+  {
-+#define N(name) { "_SC_"#name, _SC_##name }
-+    N (LEVEL1_ICACHE_LINESIZE),
-+    N (LEVEL1_DCACHE_LINESIZE),
-+    N (LEVEL2_CACHE_LINESIZE)
-+  };
-+
-+static int
-+do_test (void)
-+{
-+  int result = EXIT_SUCCESS;
-+
-+  for (int i = 0; i < array_length (sc_options); ++i)
-+    {
-+      long int scret = sysconf (sc_options[i]._SC_val);
-+      if (scret < 0)
-+	{
-+	  printf ("sysconf (%s) returned < 0 (%ld)\n",
-+		  sc_options[i].name, scret);
-+	  result = EXIT_FAILURE;
-+	}
-+      else
-+	printf ("sysconf (%s): %ld\n", sc_options[i].name, scret);
-+    }
-+
-+  return result;
-+}
-+
-+#include <support/test-driver.c>
diff --git a/poky/meta/recipes-core/glibc/glibc/CVE-2021-27645.patch b/poky/meta/recipes-core/glibc/glibc/CVE-2021-27645.patch
deleted file mode 100644
index 26c5c0d..0000000
--- a/poky/meta/recipes-core/glibc/glibc/CVE-2021-27645.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From dca565886b5e8bd7966e15f0ca42ee5cff686673 Mon Sep 17 00:00:00 2001
-From: DJ Delorie <dj@redhat.com>
-Date: Thu, 25 Feb 2021 16:08:21 -0500
-Subject: [PATCH] nscd: Fix double free in netgroupcache [BZ #27462]
-
-In commit 745664bd798ec8fd50438605948eea594179fba1 a use-after-free
-was fixed, but this led to an occasional double-free.  This patch
-tracks the "live" allocation better.
-
-Tested manually by a third party.
-
-Related: RHBZ 1927877
-
-Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
-Reviewed-by: Carlos O'Donell <carlos@redhat.com>
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=dca565886b5e8bd7966e15f0ca42ee5cff686673]
-
-CVE: CVE-2021-27645
-
-Reviewed-by: Carlos O'Donell <carlos@redhat.com>
-Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
----
- nscd/netgroupcache.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
-index dba6ceec1b..ad2daddafd 100644
---- a/nscd/netgroupcache.c
-+++ b/nscd/netgroupcache.c
-@@ -248,7 +248,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
- 					     : NULL);
- 				    ndomain = (ndomain ? newbuf + ndomaindiff
- 					       : NULL);
--				    buffer = newbuf;
-+				    *tofreep = buffer = newbuf;
- 				  }
- 
- 				nhost = memcpy (buffer + bufused,
-@@ -319,7 +319,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
- 		    else if (status == NSS_STATUS_TRYAGAIN && e == ERANGE)
- 		      {
- 			buflen *= 2;
--			buffer = xrealloc (buffer, buflen);
-+			*tofreep = buffer = xrealloc (buffer, buflen);
- 		      }
- 		    else if (status == NSS_STATUS_RETURN
- 			     || status == NSS_STATUS_NOTFOUND
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/glibc/glibc/check-test-wrapper b/poky/meta/recipes-core/glibc/glibc/check-test-wrapper
index f8e04e0..6ec9b9b 100644
--- a/poky/meta/recipes-core/glibc/glibc/check-test-wrapper
+++ b/poky/meta/recipes-core/glibc/glibc/check-test-wrapper
@@ -2,6 +2,7 @@
 import sys
 import os
 import subprocess
+import resource
 
 env = os.environ.copy()
 args = sys.argv[1:]
@@ -44,6 +45,14 @@
     qemuargs += ["-L", sysroot]
     qemuargs += ["-E", "LD_LIBRARY_PATH={}".format(":".join(libpaths))]
     command = qemuargs + args
+
+    # We've seen qemu-arm using up all system memory for some glibc
+    # tests e.g. nptl/tst-pthread-timedlock-lockloop
+    # Cap at 8GB since no test should need more than that
+    # (5GB adds 7 failures for qemuarm glibc test run)
+    limit = 8*1024*1024*1024
+    resource.setrlimit(resource.RLIMIT_AS, (limit, limit))
+
 elif targettype == "ssh":
     host = os.environ.get("SSH_HOST", None)
     user = os.environ.get("SSH_HOST_USER", None)
diff --git a/poky/meta/recipes-core/glibc/glibc_2.33.bb b/poky/meta/recipes-core/glibc/glibc_2.33.bb
index 5e0baa5..b70cd09 100644
--- a/poky/meta/recipes-core/glibc/glibc_2.33.bb
+++ b/poky/meta/recipes-core/glibc/glibc_2.33.bb
@@ -1,7 +1,20 @@
 require glibc.inc
 require glibc-version.inc
 
-CVE_CHECK_WHITELIST += "CVE-2020-10029"
+CVE_CHECK_WHITELIST += "CVE-2020-10029 CVE-2021-27645"
+
+# glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-1010022
+# glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-1010023
+# glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-1010024
+# Upstream glibc maintainers dispute there is any issue and have no plans to address it further.
+# "this is being treated as a non-security bug and no real threat."
+CVE_CHECK_WHITELIST += "CVE-2019-1010022 CVE-2019-1010023 CVE-2019-1010024"
+
+# glibc https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2019-1010025
+# Allows for ASLR bypass so can bypass some hardening, not an exploit in itself, may allow
+# easier access for another. "ASLR bypass itself is not a vulnerability."
+# Potential patch at https://sourceware.org/bugzilla/show_bug.cgi?id=22853
+CVE_CHECK_WHITELIST += "CVE-2019-1010025"
 
 DEPENDS += "gperf-native bison-native make-native"
 
@@ -43,11 +56,6 @@
            file://0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \
            file://0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch \
            file://0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch \
-           file://0031-x86-Require-full-ISA-support-for-x86-64-level-marker.patch \
-           file://0032-string-Work-around-GCC-PR-98512-in-rawmemchr.patch \
-           file://0033-x86-Handle-_SC_LEVEL1_ICACHE_LINESIZE-BZ-27444.patch \
-           file://CVE-2021-27645.patch \
-           file://0001-nptl-Remove-private-futex-optimization-BZ-27304.patch \
            "
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build-${TARGET_SYS}"
@@ -82,6 +90,7 @@
 
 EXTRA_OECONF_append_x86 = " --enable-cet"
 EXTRA_OECONF_append_x86-64 = " --enable-cet"
+EXTRA_OECONF_append_aarch64 = " --enable-memory-tagging"
 
 PACKAGECONFIG ??= "nscd"
 PACKAGECONFIG[nscd] = "--enable-nscd,--disable-nscd"
diff --git a/poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb b/poky/meta/recipes-core/images/core-image-ptest-all.bb
similarity index 85%
rename from poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
rename to poky/meta/recipes-core/images/core-image-ptest-all.bb
index eea89a5..c1d6aa2 100644
--- a/poky/meta/recipes-sato/images/core-image-sato-sdk-ptest.bb
+++ b/poky/meta/recipes-core/images/core-image-ptest-all.bb
@@ -1,15 +1,13 @@
 inherit features_check
 REQUIRED_DISTRO_FEATURES = "ptest"
 
-require core-image-sato-sdk.bb
+require core-image-minimal.bb
 require conf/distro/include/ptest-packagelists.inc
 
 DESCRIPTION += "Also includes ptest packages."
 HOMEPAGE = "https://www.yoctoproject.org/"
 
-PROVIDES += "core-image-sato-ptest"
-
-# Also include ptests which may not otherwise be included in a sato image
+# Include the full set of ptests
 IMAGE_INSTALL += "${PTESTS_FAST} ${PTESTS_SLOW}"
 
 # This image is sufficiently large (~1.8GB) that we need to be careful that it fits in a live
diff --git a/poky/meta/recipes-sato/images/core-image-sato-ptest-fast.bb b/poky/meta/recipes-core/images/core-image-ptest-fast.bb
similarity index 91%
rename from poky/meta/recipes-sato/images/core-image-sato-ptest-fast.bb
rename to poky/meta/recipes-core/images/core-image-ptest-fast.bb
index d37ad00..40df274 100644
--- a/poky/meta/recipes-sato/images/core-image-sato-ptest-fast.bb
+++ b/poky/meta/recipes-core/images/core-image-ptest-fast.bb
@@ -1,9 +1,10 @@
 inherit features_check
 REQUIRED_DISTRO_FEATURES = "ptest"
 
-require core-image-sato-sdk.bb
+require core-image-minimal.bb
 require conf/distro/include/ptest-packagelists.inc
 
+# Include only fast (< 30 sec) ptests
 IMAGE_INSTALL += "${PTESTS_FAST}"
 
 DESCRIPTION += "Also includes ptest packages with fast execution times to allow for more automated QA."
diff --git a/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs b/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
index 10b9583..e0efbe6 100644
--- a/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
+++ b/poky/meta/recipes-core/initrdscripts/initramfs-framework/rootfs
@@ -56,8 +56,8 @@
 					# It is unlikely to change, but keep trying anyway.
 					# Perhaps we pick a different device next time.
 					umount $ROOTFS_DIR
-					fi
 				fi
+			fi
 		fi
 		debug "Sleeping for $delay second(s) to wait root to settle..."
 		sleep $delay
diff --git a/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch b/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
index 5448fe0..0772998 100644
--- a/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
+++ b/poky/meta/recipes-core/libxcrypt/files/fix_cflags_handling.patch
@@ -1,3 +1,8 @@
+From fd9a46695594c3cd836ecb7d959f03f605e69a2f Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Fri, 30 Apr 2021 10:35:02 +0100
+Subject: [PATCH] libxcrypt: Update to 4.4.19 release and fix symbol version
+
 If you pass CFLAGS with a leading space, " " gets passed to popen and convinces
 gcc to try and open a file called " ". This results in a confusing error message
 like:
@@ -9,8 +14,12 @@
 Upstream-Status: Submitted [https://github.com/besser82/libxcrypt/pull/126]
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 
-Index: a/build-aux/compute-symver-floor
-===================================================================
+---
+ build-aux/compute-symver-floor | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/build-aux/compute-symver-floor b/build-aux/compute-symver-floor
+index 4ec82e1..8117342 100644
 --- a/build-aux/compute-symver-floor
 +++ b/build-aux/compute-symver-floor
 @@ -36,6 +36,8 @@ sub preprocessor_check {
@@ -20,5 +29,5 @@
 +        # Remove empty elements, particularly leading ones which cause issues with popen below
 +        @CFLAGS = grep {$_} @CFLAGS;
  
-         # We call ensure_C_locale here, not from the main section,
-         # because this sub might not get called at all, in which
+         # Remove empty elements, particularly leading ones which
+         # cause issues with popen below.
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.19.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.22.bb
similarity index 100%
rename from poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.19.bb
rename to poky/meta/recipes-core/libxcrypt/libxcrypt-compat_4.4.22.bb
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
index 694e555..e4505a6 100644
--- a/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
+++ b/poky/meta/recipes-core/libxcrypt/libxcrypt.inc
@@ -10,7 +10,7 @@
 inherit autotools pkgconfig
 
 SRC_URI = "git://github.com/besser82/libxcrypt.git;branch=${SRCBRANCH}"
-SRCREV = "c79119414d7e30017d7b49566e7e4ea35112bdc8"
+SRCREV = "3df9620d08db207367c0c5152148665b5ce422e1"
 SRCBRANCH ?= "develop"
 
 SRC_URI += "file://fix_cflags_handling.patch"
diff --git a/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.19.bb b/poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.22.bb
similarity index 100%
rename from poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.19.bb
rename to poky/meta/recipes-core/libxcrypt/libxcrypt_4.4.22.bb
diff --git a/poky/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch b/poky/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch
index 5e9a0a5..6d9ede6 100644
--- a/poky/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch
+++ b/poky/meta/recipes-core/libxml/libxml2/0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch
@@ -1,4 +1,4 @@
-From 2b5fb416aa275fd2a17a0139a2f783998bcb42cc Mon Sep 17 00:00:00 2001
+From ea1993d1d9a18c5e61b9cb271892b0a48f508d32 Mon Sep 17 00:00:00 2001
 From: Peter Kjellerstedt <pkj@axis.com>
 Date: Fri, 9 Jun 2017 17:50:46 +0200
 Subject: [PATCH] Make ptest run the python tests if python is enabled
@@ -8,16 +8,14 @@
 
 Upstream-Status: Inappropriate [OE specific]
 Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
-
 ---
- Makefile.am                  |  2 +-
- python/Makefile.am           |  9 +++++++++
- python/tests/Makefile.am     | 10 ++++++++++
- python/tests/tstLastError.py |  2 +-
- 4 files changed, 21 insertions(+), 2 deletions(-)
+ Makefile.am              |  2 +-
+ python/Makefile.am       |  9 +++++++++
+ python/tests/Makefile.am | 10 ++++++++++
+ 3 files changed, 20 insertions(+), 1 deletion(-)
 
 diff --git a/Makefile.am b/Makefile.am
-index ae62274..bd1e425 100644
+index b428452b..dc18d6dd 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -203,9 +203,9 @@ install-ptest:
@@ -32,7 +30,7 @@
  runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \
            testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)
 diff --git a/python/Makefile.am b/python/Makefile.am
-index 34aed96..ba3ec6a 100644
+index 34aed96c..ba3ec6a4 100644
 --- a/python/Makefile.am
 +++ b/python/Makefile.am
 @@ -48,7 +48,16 @@ GENERATED = libxml2class.py libxml2class.txt $(BUILT_SOURCES)
@@ -53,7 +51,7 @@
  tests test: all
  	cd tests && $(MAKE) tests
 diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am
-index 227e24d..021bb29 100644
+index 227e24df..3568c2d2 100644
 --- a/python/tests/Makefile.am
 +++ b/python/tests/Makefile.am
 @@ -59,6 +59,11 @@ XMLS=		\
@@ -83,16 +81,6 @@
 +
  tests:
  endif
-diff --git a/python/tests/tstLastError.py b/python/tests/tstLastError.py
-index 81d0acc..162c8db 100755
---- a/python/tests/tstLastError.py
-+++ b/python/tests/tstLastError.py
-@@ -25,7 +25,7 @@ class TestCase(unittest.TestCase):
-         when the exception is raised, check the libxml2.lastError for
-         expected values."""
-         # disable the default error handler
--        libxml2.registerErrorHandler(None,None)
-+        libxml2.registerErrorHandler(lambda ctx,str: None,None)
-         try:
-             f(*args)
-         except exc:
+--
+2.25.1
+
diff --git a/poky/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch b/poky/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch
deleted file mode 100644
index 88eb65a..0000000
--- a/poky/meta/recipes-core/libxml/libxml2/CVE-2019-20388.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7ffcd44d7e6c46704f8af0321d9314cd26e0e18a Mon Sep 17 00:00:00 2001
-From: Zhipeng Xie <xiezhipeng1@huawei.com>
-Date: Tue, 20 Aug 2019 16:33:06 +0800
-Subject: [PATCH] Fix memory leak in xmlSchemaValidateStream
-
-When ctxt->schema is NULL, xmlSchemaSAXPlug->xmlSchemaPreRun
-alloc a new schema for ctxt->schema and set vctxt->xsiAssemble
-to 1. Then xmlSchemaVStart->xmlSchemaPreRun initialize
-vctxt->xsiAssemble to 0 again which cause the alloced schema
-can not be freed anymore.
-
-Found with libFuzzer.
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/commit/7ffcd44d7e6c46704f8af0321d9314cd26e0e18a]
-CVE: CVE-2019-20388
-
-Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com>
-Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
----
- xmlschemas.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/xmlschemas.c b/xmlschemas.c
-index 301c8449..39d92182 100644
---- a/xmlschemas.c
-+++ b/xmlschemas.c
-@@ -28090,7 +28090,6 @@ xmlSchemaPreRun(xmlSchemaValidCtxtPtr vctxt) {
-     vctxt->nberrors = 0;
-     vctxt->depth = -1;
-     vctxt->skipDepth = -1;
--    vctxt->xsiAssemble = 0;
-     vctxt->hasKeyrefs = 0;
- #ifdef ENABLE_IDC_NODE_TABLES_TEST
-     vctxt->createIDCNodeTables = 1;
--- 
-2.24.1
-
diff --git a/poky/meta/recipes-core/libxml/libxml2/CVE-2020-24977.patch b/poky/meta/recipes-core/libxml/libxml2/CVE-2020-24977.patch
deleted file mode 100644
index 8224346..0000000
--- a/poky/meta/recipes-core/libxml/libxml2/CVE-2020-24977.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 50f06b3efb638efb0abd95dc62dca05ae67882c2 Mon Sep 17 00:00:00 2001
-From: Nick Wellnhofer <wellnhofer@aevum.de>
-Date: Fri, 7 Aug 2020 21:54:27 +0200
-Subject: [PATCH] Fix out-of-bounds read with 'xmllint --htmlout'
-
-Make sure that truncated UTF-8 sequences don't cause an out-of-bounds
-array access.
-
-Thanks to @SuhwanSong and the Agency for Defense Development (ADD) for
-the report.
-
-Fixes #178.
-
-CVE: CVE-2020-24977
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/-/commit/50f06b3efb638efb0abd95dc62dca05ae67882c2]
-
-Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
----
- xmllint.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/xmllint.c b/xmllint.c
-index f6a8e463..c647486f 100644
---- a/xmllint.c
-+++ b/xmllint.c
-@@ -528,6 +528,12 @@ static void
- xmlHTMLEncodeSend(void) {
-     char *result;
- 
-+    /*
-+     * xmlEncodeEntitiesReentrant assumes valid UTF-8, but the buffer might
-+     * end with a truncated UTF-8 sequence. This is a hack to at least avoid
-+     * an out-of-bounds read.
-+     */
-+    memset(&buffer[sizeof(buffer)-4], 0, 4);
-     result = (char *) xmlEncodeEntitiesReentrant(NULL, BAD_CAST buffer);
-     if (result) {
- 	xmlGenericError(xmlGenericErrorContext, "%s", result);
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch b/poky/meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch
deleted file mode 100644
index facfefd..0000000
--- a/poky/meta/recipes-core/libxml/libxml2/CVE-2020-7595.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 0e1a49c8907645d2e155f0d89d4d9895ac5112b5 Mon Sep 17 00:00:00 2001
-From: Zhipeng Xie <xiezhipeng1@huawei.com>
-Date: Thu, 12 Dec 2019 17:30:55 +0800
-Subject: [PATCH] Fix infinite loop in xmlStringLenDecodeEntities
-
-When ctxt->instate == XML_PARSER_EOF,xmlParseStringEntityRef
-return NULL which cause a infinite loop in xmlStringLenDecodeEntities
-
-Found with libFuzzer.
-
-Signed-off-by: Zhipeng Xie <xiezhipeng1@huawei.com>
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/libxml2/commit/0e1a49c89076]
-CVE: CVE-2020-7595
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> 
----
- parser.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/parser.c b/parser.c
-index d1c31963..a34bb6cd 100644
---- a/parser.c
-+++ b/parser.c
-@@ -2646,7 +2646,8 @@ xmlStringLenDecodeEntities(xmlParserCtxtPtr ctxt, const xmlChar *str, int len,
-     else
-         c = 0;
-     while ((c != 0) && (c != end) && /* non input consuming loop */
--	   (c != end2) && (c != end3)) {
-+           (c != end2) && (c != end3) &&
-+           (ctxt->instate != XML_PARSER_EOF)) {
- 
- 	if (c == 0) break;
-         if ((c == '&') && (str[1] == '#')) {
--- 
-2.24.1
-
diff --git a/poky/meta/recipes-core/libxml/libxml2/fix-python39.patch b/poky/meta/recipes-core/libxml/libxml2/fix-python39.patch
deleted file mode 100644
index 32590f9..0000000
--- a/poky/meta/recipes-core/libxml/libxml2/fix-python39.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From e4fb36841800038c289997432ca547c9bfef9db1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
-Date: Fri, 28 Feb 2020 12:48:14 +0100
-Subject: [PATCH] Parenthesize Py<type>_Check() in ifs
-
-In C, if expressions should be parenthesized.
-PyLong_Check, PyUnicode_Check etc. happened to expand to a parenthesized
-expression before, but that's not API to rely on.
-
-Since Python 3.9.0a4 it needs to be parenthesized explicitly.
-
-Fixes https://gitlab.gnome.org/GNOME/libxml2/issues/149
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- python/libxml.c |  4 ++--
- python/types.c  | 12 ++++++------
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/python/libxml.c b/python/libxml.c
-index bc676c4e0..81e709f34 100644
---- a/python/libxml.c
-+++ b/python/libxml.c
-@@ -294,7 +294,7 @@ xmlPythonFileReadRaw (void * context, char * buffer, int len) {
- 	lenread = PyBytes_Size(ret);
- 	data = PyBytes_AsString(ret);
- #ifdef PyUnicode_Check
--    } else if PyUnicode_Check (ret) {
-+    } else if (PyUnicode_Check (ret)) {
- #if PY_VERSION_HEX >= 0x03030000
-         Py_ssize_t size;
- 	const char *tmp;
-@@ -359,7 +359,7 @@ xmlPythonFileRead (void * context, char * buffer, int len) {
- 	lenread = PyBytes_Size(ret);
- 	data = PyBytes_AsString(ret);
- #ifdef PyUnicode_Check
--    } else if PyUnicode_Check (ret) {
-+    } else if (PyUnicode_Check (ret)) {
- #if PY_VERSION_HEX >= 0x03030000
-         Py_ssize_t size;
- 	const char *tmp;
-diff --git a/python/types.c b/python/types.c
-index c2bafeb19..ed284ec74 100644
---- a/python/types.c
-+++ b/python/types.c
-@@ -602,16 +602,16 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
-     if (obj == NULL) {
-         return (NULL);
-     }
--    if PyFloat_Check (obj) {
-+    if (PyFloat_Check (obj)) {
-         ret = xmlXPathNewFloat((double) PyFloat_AS_DOUBLE(obj));
--    } else if PyLong_Check(obj) {
-+    } else if (PyLong_Check(obj)) {
- #ifdef PyLong_AS_LONG
-         ret = xmlXPathNewFloat((double) PyLong_AS_LONG(obj));
- #else
-         ret = xmlXPathNewFloat((double) PyInt_AS_LONG(obj));
- #endif
- #ifdef PyBool_Check
--    } else if PyBool_Check (obj) {
-+    } else if (PyBool_Check (obj)) {
- 
-         if (obj == Py_True) {
-           ret = xmlXPathNewBoolean(1);
-@@ -620,14 +620,14 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
-           ret = xmlXPathNewBoolean(0);
-         }
- #endif
--    } else if PyBytes_Check (obj) {
-+    } else if (PyBytes_Check (obj)) {
-         xmlChar *str;
- 
-         str = xmlStrndup((const xmlChar *) PyBytes_AS_STRING(obj),
-                          PyBytes_GET_SIZE(obj));
-         ret = xmlXPathWrapString(str);
- #ifdef PyUnicode_Check
--    } else if PyUnicode_Check (obj) {
-+    } else if (PyUnicode_Check (obj)) {
- #if PY_VERSION_HEX >= 0x03030000
-         xmlChar *str;
- 	const char *tmp;
-@@ -650,7 +650,7 @@ libxml_xmlXPathObjectPtrConvert(PyObject *obj)
- 	ret = xmlXPathWrapString(str);
- #endif
- #endif
--    } else if PyList_Check (obj) {
-+    } else if (PyList_Check (obj)) {
-         int i;
-         PyObject *node;
-         xmlNodePtr cur;
--- 
-GitLab
-
diff --git a/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch b/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch
index e6998f6..90fa193 100644
--- a/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch
+++ b/poky/meta/recipes-core/libxml/libxml2/libxml-m4-use-pkgconfig.patch
@@ -1,7 +1,8 @@
-From 43edc9a445ed66cceb7533eadeef242940b4592c Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sat, 11 May 2019 20:37:12 +0800
+From f57da62218cf72c1342da82abafdac6b0a2e4997 Mon Sep 17 00:00:00 2001
+From: Tony Tascioglu <tony.tascioglu@windriver.com>
+Date: Fri, 14 May 2021 11:50:35 -0400
 Subject: [PATCH] AM_PATH_XML2 uses xml-config which we disable through
+
 binconfig-disabled.bbclass, so port it to use pkg-config instead.
 
 Upstream-Status: Pending
@@ -9,16 +10,22 @@
 
 Rebase to 2.9.9
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Updated to apply cleanly to v2.9.12
+
+Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
 ---
- libxml.m4 | 186 ++------------------------------------------------------------
- 1 file changed, 5 insertions(+), 181 deletions(-)
+ libxml.m4 | 190 ++----------------------------------------------------
+ 1 file changed, 5 insertions(+), 185 deletions(-)
 
 diff --git a/libxml.m4 b/libxml.m4
-index 2d7a6f5..1c53585 100644
+index 09de9fe2..1c535853 100644
 --- a/libxml.m4
 +++ b/libxml.m4
-@@ -1,188 +1,12 @@
+@@ -1,192 +1,12 @@
 -# Configure paths for LIBXML2
+-# Simon Josefsson 2020-02-12
+-# Fix autoconf 2.70+ warnings
 -# Mike Hommey 2004-06-19
 -# use CPPFLAGS instead of CFLAGS
 -# Toshio Kuratomi 2001-04-21
@@ -78,7 +85,8 @@
 -dnl (Also sanity checks the results of xml2-config to some extent)
 -dnl
 -      rm -f conf.xmltest
--      AC_TRY_RUN([
+-      AC_RUN_IFELSE(
+-            [AC_LANG_SOURCE([[
 -#include <stdlib.h>
 -#include <stdio.h>
 -#include <string.h>
@@ -148,12 +156,12 @@
 -        printf("*** being found. The easiest way to fix this is to remove the old version\n");
 -        printf("*** of LIBXML, but you can also set the XML2_CONFIG environment to point to the\n");
 -        printf("*** correct copy of xml2-config. (In this case, you will have to\n");
--        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+-        printf("*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf\n");
 -        printf("*** so that the correct libraries are found at run-time))\n");
 -    }
 -  return 1;
 -}
--],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+-]])],, no_xml=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
 -       CPPFLAGS="$ac_save_CPPFLAGS"
 -       LIBS="$ac_save_LIBS"
 -     fi
@@ -178,10 +186,11 @@
 -          echo "*** Could not run libxml test program, checking why..."
 -          CPPFLAGS="$CPPFLAGS $XML_CPPFLAGS"
 -          LIBS="$LIBS $XML_LIBS"
--          AC_TRY_LINK([
+-	  AC_LINK_IFELSE(
+-            [AC_LANG_PROGRAM([[
 -#include <libxml/xmlversion.h>
 -#include <stdio.h>
--],      [ LIBXML_TEST_VERSION; return 0;],
+-]],    [[ LIBXML_TEST_VERSION; return 0;]])],
 -        [ echo "*** The test program compiled, but did not run. This usually means"
 -          echo "*** that the run-time linker is not finding LIBXML or finding the wrong"
 -          echo "*** version of LIBXML. If it is not finding LIBXML, you'll need to set your"
diff --git a/poky/meta/recipes-core/libxml/libxml2/remove-fuzz-from-ptests.patch b/poky/meta/recipes-core/libxml/libxml2/remove-fuzz-from-ptests.patch
new file mode 100644
index 0000000..e80c460
--- /dev/null
+++ b/poky/meta/recipes-core/libxml/libxml2/remove-fuzz-from-ptests.patch
@@ -0,0 +1,43 @@
+From e49a0d4a8f3f725d6f683854e1cad36a3cd02962 Mon Sep 17 00:00:00 2001
+From: Tony Tascioglu <tony.tascioglu@windriver.com>
+Date: Wed, 19 May 2021 19:43:56 -0400
+Subject: [PATCH] Remove fuzz testing from executing with ptests.
+
+Upstream version 2.9.12 introduced new fuzz-testing and a corresponding
+folder fuzz. These tests are not required for ptests of this package.
+
+This patch removes the fuzz testing targets from the Makefile.
+Otherwise, running the ptests will fail due to the invalid directory.
+
+Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
+---
+ Makefile.am | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index a9284b95..3d7b344d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,9 +2,9 @@
+
+ ACLOCAL_AMFLAGS = -I m4
+
+-SUBDIRS = include . doc example fuzz xstc $(PYTHON_SUBDIR)
++SUBDIRS = include . doc example xstc $(PYTHON_SUBDIR)
+
+-DIST_SUBDIRS = include . doc example fuzz python xstc
++DIST_SUBDIRS = include . doc example python xstc
+
+ AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include
+
+@@ -210,7 +210,6 @@ runtests: runtest$(EXEEXT) testrecurse$(EXEEXT) testapi$(EXEEXT) \
+ 	    $(CHECKER) ./runxmlconf$(EXEEXT)
+ 	@(if [ "$(PYTHON_SUBDIR)" != "" ] ; then cd python ; \
+ 	    $(MAKE) tests ; fi)
+-	@cd fuzz; $(MAKE) tests
+
+ check: all runtests
+
+--
+2.25.1
+
diff --git a/poky/meta/recipes-core/libxml/libxml2/runtest.patch b/poky/meta/recipes-core/libxml/libxml2/runtest.patch
index 0dbb353..c7a90cd 100644
--- a/poky/meta/recipes-core/libxml/libxml2/runtest.patch
+++ b/poky/meta/recipes-core/libxml/libxml2/runtest.patch
@@ -1,28 +1,33 @@
-Add 'install-ptest' rule. Print a standard result line for
-each test.
+From 6172ccd1e74bc181f5298f19e240234e12876abe Mon Sep 17 00:00:00 2001
+From: Tony Tascioglu <tony.tascioglu@windriver.com>
+Date: Tue, 11 May 2021 11:57:46 -0400
+Subject: [PATCH] Add 'install-ptest' rule.
+
+Print a standard result line for each test.
 
 Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-Upstream-Status: Backport
+Upstream-Status: Pending
 
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Tony Tascioglu <tony.tascioglu@windriver.com>
 ---
- Makefile.am   |   9 ++++
+ Makefile.am   |   9 +++
  runsuite.c    |   1 +
  runtest.c     |   2 +
  runxmlconf.c  |   1 +
- testapi.c     | 122 ++++++++++++++++++++++++++++++---------------
- testchar.c    | 156 +++++++++++++++++++++++++++++++++++++++++-----------------
+ testapi.c     | 122 ++++++++++++++++++++++++++-------------
+ testchar.c    | 156 +++++++++++++++++++++++++++++++++++---------------
  testdict.c    |   1 +
  testlimits.c  |   1 +
  testrecurse.c |   2 +
  9 files changed, 210 insertions(+), 85 deletions(-)
 
 diff --git a/Makefile.am b/Makefile.am
-index 9c630be..7cfd04b 100644
+index 05d1671f..ae622745 100644
 --- a/Makefile.am
 +++ b/Makefile.am
-@@ -202,6 +202,15 @@ runxmlconf_LDADD= $(LDADDS)
+@@ -198,6 +198,15 @@ runxmlconf_LDADD= $(LDADDS)
  #testOOM_DEPENDENCIES = $(DEPS)
  #testOOM_LDADD= $(LDADDS)
  
@@ -39,10 +44,10 @@
            testchar$(EXEEXT) testdict$(EXEEXT) runxmlconf$(EXEEXT)
  	[ -d test   ] || $(LN_S) $(srcdir)/test   .
 diff --git a/runsuite.c b/runsuite.c
-index aaab13e..9ba2c5d 100644
+index d24b5ec3..f7ff2521 100644
 --- a/runsuite.c
 +++ b/runsuite.c
-@@ -1162,6 +1162,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
+@@ -1147,6 +1147,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
  
      if (logfile != NULL)
          fclose(logfile);
@@ -51,10 +56,10 @@
  }
  #else /* !SCHEMAS */
 diff --git a/runtest.c b/runtest.c
-index addda5c..8ba5d59 100644
+index ffa98d04..470f95cb 100644
 --- a/runtest.c
 +++ b/runtest.c
-@@ -4501,6 +4501,7 @@ launchTests(testDescPtr tst) {
+@@ -4508,6 +4508,7 @@ launchTests(testDescPtr tst) {
      xmlCharEncCloseFunc(ebcdicHandler);
      xmlCharEncCloseFunc(eucJpHandler);
  
@@ -62,7 +67,7 @@
      return(err);
  }
  
-@@ -4577,6 +4578,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
+@@ -4588,6 +4589,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
      xmlCleanupParser();
      xmlMemoryDump();
  
@@ -71,7 +76,7 @@
  }
  
 diff --git a/runxmlconf.c b/runxmlconf.c
-index cef20f4..4f291fb 100644
+index 70f61017..e882b3a1 100644
 --- a/runxmlconf.c
 +++ b/runxmlconf.c
 @@ -595,6 +595,7 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
@@ -83,7 +88,7 @@
  }
  
 diff --git a/testapi.c b/testapi.c
-index 4a751e2..7ccc066 100644
+index ff8b470d..52b51d78 100644
 --- a/testapi.c
 +++ b/testapi.c
 @@ -1246,49 +1246,91 @@ static int
@@ -219,7 +224,7 @@
  }
  
 diff --git a/testchar.c b/testchar.c
-index 0d08792..f555d3b 100644
+index 6866a175..7bce0132 100644
 --- a/testchar.c
 +++ b/testchar.c
 @@ -23,7 +23,7 @@ static void errorHandler(void *unused, xmlErrorPtr err) {
@@ -797,7 +802,7 @@
      /*
       * Cleanup function for the XML library.
 diff --git a/testdict.c b/testdict.c
-index 40bebd0..114b934 100644
+index 40bebd05..114b9347 100644
 --- a/testdict.c
 +++ b/testdict.c
 @@ -440,5 +440,6 @@ int main(void)
@@ -808,7 +813,7 @@
      return(ret);
  }
 diff --git a/testlimits.c b/testlimits.c
-index 68c94db..1584434 100644
+index 059116a6..f0bee68d 100644
 --- a/testlimits.c
 +++ b/testlimits.c
 @@ -1634,5 +1634,6 @@ main(int argc ATTRIBUTE_UNUSED, char **argv ATTRIBUTE_UNUSED) {
@@ -819,7 +824,7 @@
      return(ret);
  }
 diff --git a/testrecurse.c b/testrecurse.c
-index f95ae1c..74c8f8b 100644
+index 0cbe25a6..3ecadb40 100644
 --- a/testrecurse.c
 +++ b/testrecurse.c
 @@ -892,6 +892,7 @@ launchTests(testDescPtr tst) {
@@ -838,5 +843,5 @@
      return(ret);
  }
 -- 
-2.7.4
+2.25.1
 
diff --git a/poky/meta/recipes-core/libxml/libxml2_2.9.10.bb b/poky/meta/recipes-core/libxml/libxml2_2.9.12.bb
similarity index 82%
rename from poky/meta/recipes-core/libxml/libxml2_2.9.10.bb
rename to poky/meta/recipes-core/libxml/libxml2_2.9.12.bb
index 07ae686..955d934 100644
--- a/poky/meta/recipes-core/libxml/libxml2_2.9.10.bb
+++ b/poky/meta/recipes-core/libxml/libxml2_2.9.12.bb
@@ -5,9 +5,9 @@
 SECTION = "libs"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://Copyright;md5=2044417e2e5006b65a8b9067b683fcf1 \
-                    file://hash.c;beginline=6;endline=15;md5=96f7296605eae807670fb08947829969 \
-                    file://list.c;beginline=4;endline=13;md5=cdbfa3dee51c099edb04e39f762ee907 \
-                    file://trio.c;beginline=5;endline=14;md5=6c025753c86d958722ec76e94cae932e"
+                    file://hash.c;beginline=6;endline=15;md5=e77f77b12cb69e203d8b4090a0eee879 \
+                    file://list.c;beginline=4;endline=13;md5=b9c25b021ccaf287e50060602d20f3a7 \
+                    file://trio.c;beginline=5;endline=14;md5=cd4f61e27f88c1d43df112966b1cd28f"
 
 DEPENDS = "zlib virtual/libiconv"
 
@@ -20,15 +20,10 @@
            file://libxml-m4-use-pkgconfig.patch \
            file://0001-Make-ptest-run-the-python-tests-if-python-is-enabled.patch \
            file://fix-execution-of-ptests.patch \
-           file://CVE-2020-7595.patch \
-           file://CVE-2019-20388.patch \
-           file://CVE-2020-24977.patch \
-           file://fix-python39.patch \
+           file://remove-fuzz-from-ptests.patch \
            "
 
-SRC_URI[libtar.md5sum] = "10942a1dc23137a8aa07f0639cbfece5"
-SRC_URI[libtar.sha256sum] = "aafee193ffb8fe0c82d4afef6ef91972cbaf5feea100edc2f262750611b4be1f"
-SRC_URI[testtar.md5sum] = "ae3d1ebe000a3972afa104ca7f0e1b4a"
+SRC_URI[libtar.sha256sum] = "c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92"
 SRC_URI[testtar.sha256sum] = "96151685cec997e1f9f3387e3626d61e6284d4d6e66e0e440c209286c03e9cc7"
 
 BINCONFIG = "${bindir}/xml2-config"
@@ -43,7 +38,7 @@
 
 inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3native', '', d)}
 
-RDEPENDS_${PN}-ptest += "make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell  python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
+RDEPENDS_${PN}-ptest += "bash make ${@bb.utils.contains('PACKAGECONFIG', 'python', 'libgcc python3-core python3-logging python3-shell  python3-stringold python3-threading python3-unittest ${PN}-python', '', d)}"
 
 RDEPENDS_${PN}-python += "${@bb.utils.contains('PACKAGECONFIG', 'python', 'python3-core', '', d)}"
 
diff --git a/poky/meta/recipes-core/musl/libucontext/0001-meson-Add-option-to-pass-cpu.patch b/poky/meta/recipes-core/musl/libucontext/0001-meson-Add-option-to-pass-cpu.patch
new file mode 100644
index 0000000..1fdc9f7
--- /dev/null
+++ b/poky/meta/recipes-core/musl/libucontext/0001-meson-Add-option-to-pass-cpu.patch
@@ -0,0 +1,49 @@
+From a530eed9e7e6872e10fe92efaf1e9739471c30ca Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 30 May 2021 08:30:28 -0700
+Subject: [PATCH] meson: Add option to pass cpu
+
+This helps with cross compile setups, where host_cpu != target_cpu
+therefore detecting it on the fly will end up with wrong cpu to build
+for
+
+Upstream-Status: Submitted [https://github.com/kaniini/libucontext/pull/28]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ meson.build       | 6 +++++-
+ meson_options.txt | 4 +++-
+ 2 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index e863780..2b4bdbd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -6,7 +6,11 @@ project(
+   version : run_command('head', files('VERSION')).stdout()
+ )
+ 
+-cpu = host_machine.cpu_family()
++cpu = get_option('cpu')
++if cpu == ''
++  cpu = host_machine.cpu_family()
++endif
++
+ if cpu == 'sh4'
+   cpu = 'sh'
+ endif
+diff --git a/meson_options.txt b/meson_options.txt
+index d4201d1..864d83c 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,4 +1,6 @@
+ option('freestanding', type : 'boolean', value : false,
+        description: 'Do not use system headers')
+ option('export_unprefixed', type : 'boolean', value : true,
+-       description: 'Export POSIX 2004 ucontext names as alises')
+\ No newline at end of file
++       description: 'Export POSIX 2004 ucontext names as alises')
++option('cpu', type : 'string', value : '',
++       description: 'Target CPU architecture for cross compile')
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-core/musl/libucontext_git.bb b/poky/meta/recipes-core/musl/libucontext_git.bb
index 11affeb..d8ae824 100644
--- a/poky/meta/recipes-core/musl/libucontext_git.bb
+++ b/poky/meta/recipes-core/musl/libucontext_git.bb
@@ -8,10 +8,11 @@
 SECTION = "libs"
 DEPENDS = ""
 
-PV = "0.10+${SRCPV}"
-SRCREV = "19fa1bbfc26efb92147b5e85cc0ca02a0e837561"
+PV = "1.1+${SRCPV}"
+SRCREV = "335ee864ef6f4a5d4b525453fd9dbfb3507cfecc"
 SRC_URI = "git://github.com/kaniini/libucontext \
-"
+           file://0001-meson-Add-option-to-pass-cpu.patch \
+           "
 
 S = "${WORKDIR}/git"
 
@@ -49,16 +50,5 @@
             return a
         bb.error("cannot map '%s' to a linux kernel architecture" % a)
 
-export ARCH = "${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
-
-CFLAGS += "-Iarch/${ARCH} -Iarch/common"
-
-EXTRA_OEMAKE = "CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}' LIBDIR='${base_libdir}'"
-
-do_compile() {
-    oe_runmake ARCH=${ARCH}
-}
-
-do_install() {
-    oe_runmake ARCH="${ARCH}" DESTDIR="${D}" install
-}
+EXTRA_OEMESON = "-Dcpu=${@map_kernel_arch(d.getVar('TARGET_ARCH'), d)}"
+inherit meson
diff --git a/poky/meta/recipes-core/musl/musl/0001-riscv-Rename-__NR_fstatat-__NR_newfstatat.patch b/poky/meta/recipes-core/musl/musl/0001-riscv-Rename-__NR_fstatat-__NR_newfstatat.patch
new file mode 100644
index 0000000..9d9f16c
--- /dev/null
+++ b/poky/meta/recipes-core/musl/musl/0001-riscv-Rename-__NR_fstatat-__NR_newfstatat.patch
@@ -0,0 +1,32 @@
+From 40732d03990632049d5ba63dd736269a81756b16 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 19 May 2021 00:30:05 -0700
+Subject: [PATCH] riscv: Rename __NR_fstatat __NR_newfstatat
+
+on riscv64 this syscall is called __NR_newfstatat
+this helps the name match kernel UAPI for external
+programs
+
+Upstream-Status: Submitted [https://www.openwall.com/lists/musl/2021/05/19/3]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Cc: zabolcs Nagy <nsz@port70.net>
+---
+ arch/riscv64/bits/syscall.h.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/riscv64/bits/syscall.h.in b/arch/riscv64/bits/syscall.h.in
+index f9c421d0..39c0d650 100644
+--- a/arch/riscv64/bits/syscall.h.in
++++ b/arch/riscv64/bits/syscall.h.in
+@@ -76,7 +76,7 @@
+ #define __NR_splice 76
+ #define __NR_tee 77
+ #define __NR_readlinkat 78
+-#define __NR_fstatat 79
++#define __NR_newfstatat 79
+ #define __NR_fstat 80
+ #define __NR_sync 81
+ #define __NR_fsync 82
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index ef8bc2e..795b888 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -15,6 +15,7 @@
 SRC_URI = "git://git.musl-libc.org/musl \
            file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
            file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
+           file://0001-riscv-Rename-__NR_fstatat-__NR_newfstatat.patch \
           "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/ovmf/ovmf/0001-Fix-VLA-parameter-warning.patch b/poky/meta/recipes-core/ovmf/ovmf/0001-Fix-VLA-parameter-warning.patch
new file mode 100644
index 0000000..d658123
--- /dev/null
+++ b/poky/meta/recipes-core/ovmf/ovmf/0001-Fix-VLA-parameter-warning.patch
@@ -0,0 +1,51 @@
+From 498627ebda6271b59920f43a0b9b6187edeb7b09 Mon Sep 17 00:00:00 2001
+From: Adrian Herrera <adr.her.arc.95@gmail.com>
+Date: Mon, 22 Mar 2021 21:06:47 +0000
+Subject: [PATCH] Fix VLA parameter warning
+
+Make VLA buffer types consistent in declarations and definitions.
+Resolves build crash when using -Werror due to "vla-parameter" warning.
+
+Upstream-Status: Submitted [https://github.com/google/brotli/pull/893]
+Signed-off-by: Adrian Herrera <adr.her.arc.95@gmail.com>
+---
+ c/dec/decode.c | 6 ++++--
+ c/enc/encode.c | 5 +++--
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c b/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
+index 114c505..bb6f1ab 100644
+--- a/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
++++ b/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
+@@ -2030,8 +2030,10 @@ static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands(
+ }
+ 
+ BrotliDecoderResult BrotliDecoderDecompress(
+-    size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,
+-    uint8_t* decoded_buffer) {
++    size_t encoded_size,
++    const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
++    size_t* decoded_size,
++    uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]) {
+   BrotliDecoderState s;
+   BrotliDecoderResult result;
+   size_t total_out = 0;
+diff --git a/c/enc/encode.c b/c/enc/encode.c
+index 68548ef..ab0a490 100644
+--- a/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
++++ c/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
+@@ -1470,8 +1470,9 @@ static size_t MakeUncompressedStream(
+ 
+ BROTLI_BOOL BrotliEncoderCompress(
+     int quality, int lgwin, BrotliEncoderMode mode, size_t input_size,
+-    const uint8_t* input_buffer, size_t* encoded_size,
+-    uint8_t* encoded_buffer) {
++    const uint8_t input_buffer[BROTLI_ARRAY_PARAM(input_size)],
++    size_t* encoded_size,
++    uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(*encoded_size)]) {
+   BrotliEncoderState* s;
+   size_t out_size = *encoded_size;
+   const uint8_t* input_start = input_buffer;
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch b/poky/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch
new file mode 100644
index 0000000..0165fae
--- /dev/null
+++ b/poky/meta/recipes-core/ovmf/ovmf/debug_prefix_map.patch
@@ -0,0 +1,93 @@
+We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in
+ --debug-prefix-map to nasm (we carry a patch to nasm for this). The
+tools definitions file is built by ovmf-native so we need to pass this in
+at target build time when we know the right values so we use the environment.
+
+By using determininistc file paths during the ovmf build, it removes the 
+opportunitity for gcc/ld to change the output binaries due to path lengths 
+overflowing section sizes and causing small changes in the binary output. 
+Previously we relied on the stripped output being the same which isn't always
+the case if the size of the debug symbols varies.
+
+Upstream-Status: Pending [gcc parts may be upstreamable, nasm patch isn't upstream yet]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+
+Index: git/BaseTools/Conf/tools_def.template
+===================================================================
+--- git.orig/BaseTools/Conf/tools_def.template
++++ git/BaseTools/Conf/tools_def.template
+@@ -1918,7 +1918,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     = --a
+ *_*_*_DTCPP_PATH                   = DEF(DTCPP_BIN)

+ *_*_*_DTC_PATH                     = DEF(DTC_BIN)

+ 

+-DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common

++DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common ENV(GCC_PREFIX_MAP)

+ DEFINE GCC_IA32_CC_FLAGS           = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe

+ DEFINE GCC_X64_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe

+ DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie

+@@ -1936,8 +1936,8 @@ DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = -fu
+ DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)

+ DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)

+ DEFINE GCC_IA32_X64_DLINK_FLAGS    = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map

+-DEFINE GCC_ASM_FLAGS               = -c -x assembler -imacros AutoGen.h

+-DEFINE GCC_PP_FLAGS                = -E -x assembler-with-cpp -include AutoGen.h

++DEFINE GCC_ASM_FLAGS               = -c -x assembler -imacros AutoGen.h ENV(GCC_PREFIX_MAP)

++DEFINE GCC_PP_FLAGS                = -E -x assembler-with-cpp -include AutoGen.h ENV(GCC_PREFIX_MAP)

+ DEFINE GCC_VFRPP_FLAGS             = -x c -E -P -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h

+ DEFINE GCC_ASLPP_FLAGS             = -x c -E -include AutoGen.h

+ DEFINE GCC_ASLCC_FLAGS             = -x c

+@@ -2082,7 +2082,7 @@ DEFINE GCC_PP_FLAGS
+ *_GCC48_IA32_DLINK2_FLAGS         = DEF(GCC48_IA32_DLINK2_FLAGS)

+ *_GCC48_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)

+ *_GCC48_IA32_OBJCOPY_FLAGS        =

+-*_GCC48_IA32_NASM_FLAGS           = -f elf32

++*_GCC48_IA32_NASM_FLAGS           = -f elf32 ENV(NASM_PREFIX_MAP)

+ 

+   DEBUG_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Os

+ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable

+@@ -2110,7 +2110,7 @@ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(
+ *_GCC48_X64_DLINK2_FLAGS         = DEF(GCC48_X64_DLINK2_FLAGS)

+ *_GCC48_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)

+ *_GCC48_X64_OBJCOPY_FLAGS        =

+-*_GCC48_X64_NASM_FLAGS           = -f elf64

++*_GCC48_X64_NASM_FLAGS           = -f elf64 ENV(NASM_PREFIX_MAP)

+ 

+   DEBUG_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS) -Os

+ RELEASE_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable

+@@ -2222,7 +2222,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(G
+ *_GCC49_IA32_DLINK2_FLAGS         = DEF(GCC49_IA32_DLINK2_FLAGS)

+ *_GCC49_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)

+ *_GCC49_IA32_OBJCOPY_FLAGS        =

+-*_GCC49_IA32_NASM_FLAGS           = -f elf32

++*_GCC49_IA32_NASM_FLAGS           = -f elf32 ENV(NASM_PREFIX_MAP)

+ 

+   DEBUG_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Os

+ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable

+@@ -2250,7 +2250,7 @@ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(
+ *_GCC49_X64_DLINK2_FLAGS         = DEF(GCC49_X64_DLINK2_FLAGS)

+ *_GCC49_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)

+ *_GCC49_X64_OBJCOPY_FLAGS        =

+-*_GCC49_X64_NASM_FLAGS           = -f elf64

++*_GCC49_X64_NASM_FLAGS           = -f elf64 ENV(NASM_PREFIX_MAP)

+ 

+   DEBUG_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -Os

+ RELEASE_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable

+@@ -2368,7 +2368,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -
+ *_GCC5_IA32_DLINK2_FLAGS         = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie

+ *_GCC5_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)

+ *_GCC5_IA32_OBJCOPY_FLAGS        =

+-*_GCC5_IA32_NASM_FLAGS           = -f elf32

++*_GCC5_IA32_NASM_FLAGS           = -f elf32 ENV(NASM_PREFIX_MAP)

+ 

+   DEBUG_GCC5_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto -Os

+   DEBUG_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386

+@@ -2400,7 +2400,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    = DEF(G
+ *_GCC5_X64_DLINK2_FLAGS          = DEF(GCC5_X64_DLINK2_FLAGS)

+ *_GCC5_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)

+ *_GCC5_X64_OBJCOPY_FLAGS         =

+-*_GCC5_X64_NASM_FLAGS            = -f elf64

++*_GCC5_X64_NASM_FLAGS            = -f elf64 ENV(NASM_PREFIX_MAP)

+ 

+   DEBUG_GCC5_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os

+   DEBUG_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os

diff --git a/poky/meta/recipes-core/ovmf/ovmf/reproducible.patch b/poky/meta/recipes-core/ovmf/ovmf/reproducible.patch
new file mode 100644
index 0000000..5d2aeaa
--- /dev/null
+++ b/poky/meta/recipes-core/ovmf/ovmf/reproducible.patch
@@ -0,0 +1,165 @@
+This patch fixes various things which make the build more reproducible. Some changes
+here only change intermediate artefacts but that means when you have two build trees
+giving differing results, the differences can be isolated more easily. The issues here
+usually become apparent with longer paths.
+
+This was all debugged with:
+TMPDIR = "${TOPDIR}/tmp"
+vs.
+TMPDIR = "${TOPDIR}/tmp-inital-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath-mylongpath"
+
+The patch specifically:
+
+ * Sorts output in GNUmakefile
+ * Always generates indirect flags files used to avoid pathlength issues else the 
+   compile commands suddenly change when using longer paths
+ * Sorts the AutoGenTimeStamp file contents
+ * Makes the TargetDescBlock objects from BuildEngine sortable to allow the makefile fix
+ * Fix ElfConvert within GenFw so that only the basename of the binary being converted 
+   is used, else the output from "GenFw XXX.bin" differs from "GenFw /long/path/XXX.bin"
+   with sufficiently long paths
+
+Upstream-Status: Pending [At least some of this might be interesting to upstream]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: git/BaseTools/Source/Python/AutoGen/GenMake.py
+===================================================================
+--- git.orig/BaseTools/Source/Python/AutoGen/GenMake.py
++++ git/BaseTools/Source/Python/AutoGen/GenMake.py
+@@ -571,7 +571,7 @@ cleanlib:
+                 os.remove(RespFileList)

+ 

+         # convert source files and binary files to build targets

+-        self.ResultFileList = [str(T.Target) for T in MyAgo.CodaTargetList]

++        self.ResultFileList = sorted([str(T.Target) for T in MyAgo.CodaTargetList])

+         if len(self.ResultFileList) == 0 and len(MyAgo.SourceFileList) != 0:

+             EdkLogger.error("build", AUTOGEN_ERROR, "Nothing to build",

+                             ExtraData="[%s]" % str(MyAgo))

+@@ -722,7 +722,7 @@ cleanlib:
+         OutputFile = ''

+         DepsFileList = []

+ 

+-        for Cmd in self.GenFfsList:

++        for Cmd in sorted(self.GenFfsList):

+             if Cmd[2]:

+                 for CopyCmd in Cmd[2]:

+                     Src, Dst = CopyCmd

+@@ -755,7 +755,7 @@ cleanlib:
+             self.BuildTargetList.append('\t%s' % CmdString)

+ 

+             self.ParseSecCmd(DepsFileList, Cmd[1])

+-            for SecOutputFile, SecDepsFile, SecCmd in self.FfsOutputFileList :

++            for SecOutputFile, SecDepsFile, SecCmd in sorted(self.FfsOutputFileList):

+                 self.BuildTargetList.append('%s : %s' % (self.ReplaceMacro(SecOutputFile), self.ReplaceMacro(SecDepsFile)))

+                 self.BuildTargetList.append('\t%s' % self.ReplaceMacro(SecCmd))

+             self.FfsOutputFileList = []

+@@ -794,13 +794,13 @@ cleanlib:
+ 

+     def CommandExceedLimit(self):

+         FlagDict = {

+-                    'CC'    :  { 'Macro' : '$(CC_FLAGS)',    'Value' : False},

+-                    'PP'    :  { 'Macro' : '$(PP_FLAGS)',    'Value' : False},

+-                    'APP'   :  { 'Macro' : '$(APP_FLAGS)',   'Value' : False},

+-                    'ASLPP' :  { 'Macro' : '$(ASLPP_FLAGS)', 'Value' : False},

+-                    'VFRPP' :  { 'Macro' : '$(VFRPP_FLAGS)', 'Value' : False},

+-                    'ASM'   :  { 'Macro' : '$(ASM_FLAGS)',   'Value' : False},

+-                    'ASLCC' :  { 'Macro' : '$(ASLCC_FLAGS)', 'Value' : False},

++                    'CC'    :  { 'Macro' : '$(CC_FLAGS)',    'Value' : True},

++                    'PP'    :  { 'Macro' : '$(PP_FLAGS)',    'Value' : True},

++                    'APP'   :  { 'Macro' : '$(APP_FLAGS)',   'Value' : True},

++                    'ASLPP' :  { 'Macro' : '$(ASLPP_FLAGS)', 'Value' : True},

++                    'VFRPP' :  { 'Macro' : '$(VFRPP_FLAGS)', 'Value' : True},

++                    'ASM'   :  { 'Macro' : '$(ASM_FLAGS)',   'Value' : True},

++                    'ASLCC' :  { 'Macro' : '$(ASLCC_FLAGS)', 'Value' : True},

+                    }

+ 

+         RespDict = {}

+@@ -1003,9 +1003,9 @@ cleanlib:
+                 if not self.ObjTargetDict.get(T.Target.SubDir):

+                     self.ObjTargetDict[T.Target.SubDir] = set()

+                 self.ObjTargetDict[T.Target.SubDir].add(NewFile)

+-        for Type in self._AutoGenObject.Targets:

++        for Type in sorted(self._AutoGenObject.Targets):

+             resp_file_number = 0

+-            for T in self._AutoGenObject.Targets[Type]:

++            for T in sorted(self._AutoGenObject.Targets[Type]):

+                 # Generate related macros if needed

+                 if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros:

+                     self.FileListMacros[T.FileListMacro] = []

+Index: git/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
+===================================================================
+--- git.orig/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
++++ git/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
+@@ -1484,6 +1484,9 @@ class ModuleAutoGen(AutoGen):
+             for File in Files:

+                 if File.lower().endswith('.pdb'):

+                     AsBuiltInfDict['binary_item'].append('DISPOSABLE|' + File)

++

++        AsBuiltInfDict['binary_item'] = sorted(AsBuiltInfDict['binary_item'])

++

+         HeaderComments = self.Module.HeaderComments

+         StartPos = 0

+         for Index in range(len(HeaderComments)):

+@@ -1759,7 +1762,7 @@ class ModuleAutoGen(AutoGen):
+             if os.path.exists (self.TimeStampPath):

+                 os.remove (self.TimeStampPath)

+ 

+-            SaveFileOnChange(self.TimeStampPath, "\n".join(FileSet), False)

++            SaveFileOnChange(self.TimeStampPath, "\n".join(sorted(FileSet)), False)

+ 

+         # Ignore generating makefile when it is a binary module

+         if self.IsBinaryModule:

+Index: git/BaseTools/Source/Python/AutoGen/BuildEngine.py
+===================================================================
+--- git.orig/BaseTools/Source/Python/AutoGen/BuildEngine.py
++++ git/BaseTools/Source/Python/AutoGen/BuildEngine.py
+@@ -70,6 +70,9 @@ class TargetDescBlock(object):
+         else:

+             return str(Other) == self.Target.Path

+ 

++    def __lt__(self, other):

++        return str(self) < str(other)

++

+     def AddInput(self, Input):

+         if Input not in self.Inputs:

+             self.Inputs.append(Input)

+Index: git/BaseTools/Source/C/GenFw/Elf64Convert.c
+===================================================================
+--- git.orig/BaseTools/Source/C/GenFw/Elf64Convert.c
++++ git/BaseTools/Source/C/GenFw/Elf64Convert.c
+@@ -14,6 +14,8 @@ SPDX-License-Identifier: BSD-2-Clause-Pa
+ #ifndef __GNUC__

+ #include <windows.h>

+ #include <io.h>

++#else

++#define _GNU_SOURCE

+ #endif

+ #include <assert.h>

+ #include <stdio.h>

+@@ -770,7 +772,7 @@ ScanSections64 (
+   }

+   mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) +

+                 sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) +

+-                strlen(mInImageName) + 1;

++                strlen(basename(mInImageName)) + 1;

+ 

+   mCoffOffset = CoffAlign(mCoffOffset);

+   if (SectionCount == 0) {

+@@ -1609,7 +1611,7 @@ WriteDebug64 (
+   EFI_IMAGE_DEBUG_DIRECTORY_ENTRY     *Dir;

+   EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY *Nb10;

+ 

+-  Len = strlen(mInImageName) + 1;

++  Len = strlen(basename(mInImageName)) + 1;

+ 

+   Dir = (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY*)(mCoffFile + mDebugOffset);

+   Dir->Type = EFI_IMAGE_DEBUG_TYPE_CODEVIEW;

+@@ -1619,7 +1621,7 @@ WriteDebug64 (
+ 

+   Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);

+   Nb10->Signature = CODEVIEW_SIGNATURE_NB10;

+-  strcpy ((char *)(Nb10 + 1), mInImageName);

++  strcpy ((char *)(Nb10 + 1), basename(mInImageName));

+ 

+ 

+   NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);

diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb
index 896b3b6..888ea08 100644
--- a/poky/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb
@@ -17,6 +17,9 @@
            file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
            file://0004-ovmf-Update-to-latest.patch \
            file://zero.patch \
+           file://debug_prefix_map.patch \
+           file://reproducible.patch \
+           file://0001-Fix-VLA-parameter-warning.patch \
            "
 
 PV = "edk2-stable202102"
@@ -101,9 +104,23 @@
     # to make ovmf-native reusable across distros.
     sed -i \
         -e 's#^\(DEFINE GCC.*DLINK.*FLAGS  *=\)#\1 -fuse-ld=bfd#' \
+        -e 's#-flto#-fno-lto#g' \
+        -e 's#-DUSING_LTO##g' \
         ${S}/BaseTools/Conf/tools_def.template
 }
 
+# We disable lto above since the results are not reproducible and make it hard to compare
+# binary build aretfacts to debug reproducibility problems.
+# Surprisingly, if you disable lto, you see compiler warnings which are fatal. We therefore
+# have to hack warnings overrides into GCC_PREFIX_MAP to allow it to build.
+
+# We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in
+# --debug-prefix-map to nasm (we carry a patch to nasm for this). The
+# tools definitions are built by ovmf-native so we need to pass this in
+# at target build time when we know the right values.
+export NASM_PREFIX_MAP = "--debug-prefix-map=${WORKDIR}=/usr/src/debug/ovmf/${EXTENDPE}${PV}-${PR}"
+export GCC_PREFIX_MAP = "${DEBUG_PREFIX_MAP} -Wno-stringop-overflow -Wno-maybe-uninitialized"
+
 GCC_VER="$(${CC} -v 2>&1 | tail -n1 | awk '{print $3}')"
 
 fixup_target_tools() {
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_247.6.bb b/poky/meta/recipes-core/systemd/systemd-boot_248.3.bb
similarity index 100%
rename from poky/meta/recipes-core/systemd/systemd-boot_247.6.bb
rename to poky/meta/recipes-core/systemd/systemd-boot_248.3.bb
diff --git a/poky/meta/recipes-core/systemd/systemd-conf_247.6.bb b/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
similarity index 98%
rename from poky/meta/recipes-core/systemd/systemd-conf_247.6.bb
rename to poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
index ea35e83..235923b 100644
--- a/poky/meta/recipes-core/systemd/systemd-conf_247.6.bb
+++ b/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
@@ -5,6 +5,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 
+PE = "1"
+
 PACKAGECONFIG ??= "dhcp-ethernet"
 PACKAGECONFIG[dhcp-ethernet] = ""
 
diff --git a/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl b/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl
index de733e2..e8c3d2d 100755
--- a/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl
+++ b/poky/meta/recipes-core/systemd/systemd-systemctl/systemctl
@@ -160,7 +160,9 @@
 
 
 class SystemdUnitNotFoundError(Exception):
-    pass
+    def __init__(self, path, unit):
+        self.path = path
+        self.unit = unit
 
 
 class SystemdUnit():
@@ -224,7 +226,10 @@
 
         try:
             for also in config.get('Install', 'Also'):
-                SystemdUnit(self.root, also).enable()
+                try:
+                    SystemdUnit(self.root, also).enable()
+                except SystemdUnitNotFoundError as e:
+                    sys.exit("Error: Systemctl also enable issue with  %s (%s)" % (service, e.unit))
 
         except KeyError:
             pass
@@ -265,7 +270,10 @@
         state = presets.state(service)
 
         if state == "enable" or state is None:
-            SystemdUnit(root, service).enable()
+            try:
+                SystemdUnit(root, service).enable()
+            except SystemdUnitNotFoundError:
+                sys.exit("Error: Systemctl preset_all issue in %s" % service)
 
     # If we populate the systemd links we also create /etc/machine-id, which
     # allows systemd to boot with the filesystem read-only before generating
@@ -307,10 +315,16 @@
 
     if command == "mask":
         for service in args.service:
-            SystemdUnit(root, service).mask()
+            try:
+                SystemdUnit(root, service).mask()
+            except SystemdUnitNotFoundError as e:
+                sys.exit("Error: Systemctl main mask issue in %s (%s)" % (service, e.unit))
     elif command == "enable":
         for service in args.service:
-            SystemdUnit(root, service).enable()
+            try:
+                SystemdUnit(root, service).enable()
+            except SystemdUnitNotFoundError as e:
+                sys.exit("Error: Systemctl main enable issue in %s (%s)" % (service, e.unit))
     elif command == "preset-all":
         if len(args.service) != 0:
             sys.exit("Too many arguments.")
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index 7d3b306..0524a25 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -14,8 +14,9 @@
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
                     file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "17472dca0160cbe7b807ca648475fd70d0d62fe5"
-SRCBRANCH = "v247-stable"
-SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
+SRCREV = "37c4cfde0ce613f0f00544d3f4e2e72bf93d9c76"
+SRCBRANCH = "v248-stable"
+SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH} \
+"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-analyze-resolve-executable-path-if-it-is-relative.patch b/poky/meta/recipes-core/systemd/systemd/0001-analyze-resolve-executable-path-if-it-is-relative.patch
deleted file mode 100644
index fd7f94a..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0001-analyze-resolve-executable-path-if-it-is-relative.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From b9b7a8e3825f0433e120f7a6d7d5d635a839cab9 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <mingli.yu@windriver.com>
-Date: Thu, 21 Jan 2021 06:19:44 +0000
-Subject: [PATCH] analyze: resolve executable path if it is relative
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/commit/f1fb046a985521f7d4a662f02546686ff20b7e5d]
-
-Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
----
- src/analyze/analyze-verify.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/src/analyze/analyze-verify.c b/src/analyze/analyze-verify.c
-index a9c89173bf..969523df18 100644
---- a/src/analyze/analyze-verify.c
-+++ b/src/analyze/analyze-verify.c
-@@ -115,14 +115,17 @@ static int verify_socket(Unit *u) {
- }
- 
- int verify_executable(Unit *u, const ExecCommand *exec) {
-+        int r;
-+
-         if (!exec)
-                 return 0;
- 
-         if (exec->flags & EXEC_COMMAND_IGNORE_FAILURE)
-                 return 0;
- 
--        if (access(exec->path, X_OK) < 0)
--                return log_unit_error_errno(u, errno, "Command %s is not executable: %m", exec->path);
-+        r = find_executable_full(exec->path, false, NULL);
-+        if (r < 0)
-+                return log_unit_error_errno(u, r, "Command %s is not executable: %m", exec->path);
- 
-         return 0;
- }
--- 
-2.26.2
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch b/poky/meta/recipes-core/systemd/systemd/0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch
deleted file mode 100644
index 89ef39b..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From 150d9cade6d475570395cb418b824524dead9577 Mon Sep 17 00:00:00 2001
-From: Joshua Watt <JPEWhacker@gmail.com>
-Date: Fri, 30 Oct 2020 08:15:43 -0500
-Subject: [PATCH] logind: Restore chvt as non-root user without polkit
-
-4acf0cfd2f ("logind: check PolicyKit before allowing VT switch") broke
-the ability to write user sessions that run graphical sessions (e.g.
-weston/X11). This was partially amended in 19bb87fbfa ("login: allow
-non-console sessions to change vt") by changing the default PolicyKit
-policy so that non-root users are again allowed to switch the VT. This
-makes the policy when PolKit is not enabled (as on many embedded
-systems) match the default PolKit policy and allows launching graphical
-sessions as a non-root user.
-
-Closes #17473
----
- src/login/logind-dbus.c         | 11 ++-------
- src/login/logind-polkit.c       | 26 +++++++++++++++++++++
- src/login/logind-polkit.h       | 10 ++++++++
- src/login/logind-seat-dbus.c    | 41 ++++-----------------------------
- src/login/logind-session-dbus.c | 11 ++-------
- src/login/meson.build           |  1 +
- 6 files changed, 46 insertions(+), 54 deletions(-)
- create mode 100644 src/login/logind-polkit.c
- create mode 100644 src/login/logind-polkit.h
-
-diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
-index 0f83ed99bc..a3765d88ba 100644
---- a/src/login/logind-dbus.c
-+++ b/src/login/logind-dbus.c
-@@ -30,6 +30,7 @@
- #include "format-util.h"
- #include "fs-util.h"
- #include "logind-dbus.h"
-+#include "logind-polkit.h"
- #include "logind-seat-dbus.h"
- #include "logind-session-dbus.h"
- #include "logind-user-dbus.h"
-@@ -1047,15 +1048,7 @@ static int method_activate_session_on_seat(sd_bus_message *message, void *userda
-                 return sd_bus_error_setf(error, BUS_ERROR_SESSION_NOT_ON_SEAT,
-                                          "Session %s not on seat %s", session_name, seat_name);
- 
--        r = bus_verify_polkit_async(
--                        message,
--                        CAP_SYS_ADMIN,
--                        "org.freedesktop.login1.chvt",
--                        NULL,
--                        false,
--                        UID_INVALID,
--                        &m->polkit_registry,
--                        error);
-+        r = check_polkit_chvt(message, m, error);
-         if (r < 0)
-                 return r;
-         if (r == 0)
-diff --git a/src/login/logind-polkit.c b/src/login/logind-polkit.c
-new file mode 100644
-index 0000000000..9072570cc6
---- /dev/null
-+++ b/src/login/logind-polkit.c
-@@ -0,0 +1,26 @@
-+/* SPDX-License-Identifier: LGPL-2.1+ */
-+
-+#include "bus-polkit.h"
-+#include "logind-polkit.h"
-+#include "missing_capability.h"
-+#include "user-util.h"
-+
-+int check_polkit_chvt(sd_bus_message *message, Manager *manager, sd_bus_error *error) {
-+#if ENABLE_POLKIT
-+        return bus_verify_polkit_async(
-+                        message,
-+                        CAP_SYS_ADMIN,
-+                        "org.freedesktop.login1.chvt",
-+                        NULL,
-+                        false,
-+                        UID_INVALID,
-+                        &manager->polkit_registry,
-+                        error);
-+#else
-+        /* Allow chvt when polkit is not present. This allows a service to start a graphical session as a
-+         * non-root user when polkit is not compiled in, matching the default polkit policy */
-+        return 1;
-+#endif
-+}
-+
-+
-diff --git a/src/login/logind-polkit.h b/src/login/logind-polkit.h
-new file mode 100644
-index 0000000000..476c077a8a
---- /dev/null
-+++ b/src/login/logind-polkit.h
-@@ -0,0 +1,10 @@
-+/* SPDX-License-Identifier: LGPL-2.1+ */
-+#pragma once
-+
-+#include "sd-bus.h"
-+
-+#include "bus-object.h"
-+#include "logind.h"
-+
-+int check_polkit_chvt(sd_bus_message *message, Manager *manager, sd_bus_error *error);
-+
-diff --git a/src/login/logind-seat-dbus.c b/src/login/logind-seat-dbus.c
-index a945132284..f22e9e2734 100644
---- a/src/login/logind-seat-dbus.c
-+++ b/src/login/logind-seat-dbus.c
-@@ -9,6 +9,7 @@
- #include "bus-polkit.h"
- #include "bus-util.h"
- #include "logind-dbus.h"
-+#include "logind-polkit.h"
- #include "logind-seat-dbus.h"
- #include "logind-seat.h"
- #include "logind-session-dbus.h"
-@@ -179,15 +180,7 @@ static int method_activate_session(sd_bus_message *message, void *userdata, sd_b
-         if (session->seat != s)
-                 return sd_bus_error_setf(error, BUS_ERROR_SESSION_NOT_ON_SEAT, "Session %s not on seat %s", name, s->id);
- 
--        r = bus_verify_polkit_async(
--                        message,
--                        CAP_SYS_ADMIN,
--                        "org.freedesktop.login1.chvt",
--                        NULL,
--                        false,
--                        UID_INVALID,
--                        &s->manager->polkit_registry,
--                        error);
-+        r = check_polkit_chvt(message, s->manager, error);
-         if (r < 0)
-                 return r;
-         if (r == 0)
-@@ -215,15 +208,7 @@ static int method_switch_to(sd_bus_message *message, void *userdata, sd_bus_erro
-         if (to <= 0)
-                 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid virtual terminal");
- 
--        r = bus_verify_polkit_async(
--                        message,
--                        CAP_SYS_ADMIN,
--                        "org.freedesktop.login1.chvt",
--                        NULL,
--                        false,
--                        UID_INVALID,
--                        &s->manager->polkit_registry,
--                        error);
-+        r = check_polkit_chvt(message, s->manager, error);
-         if (r < 0)
-                 return r;
-         if (r == 0)
-@@ -243,15 +228,7 @@ static int method_switch_to_next(sd_bus_message *message, void *userdata, sd_bus
-         assert(message);
-         assert(s);
- 
--        r = bus_verify_polkit_async(
--                        message,
--                        CAP_SYS_ADMIN,
--                        "org.freedesktop.login1.chvt",
--                        NULL,
--                        false,
--                        UID_INVALID,
--                        &s->manager->polkit_registry,
--                        error);
-+        r = check_polkit_chvt(message, s->manager, error);
-         if (r < 0)
-                 return r;
-         if (r == 0)
-@@ -271,15 +248,7 @@ static int method_switch_to_previous(sd_bus_message *message, void *userdata, sd
-         assert(message);
-         assert(s);
- 
--        r = bus_verify_polkit_async(
--                        message,
--                        CAP_SYS_ADMIN,
--                        "org.freedesktop.login1.chvt",
--                        NULL,
--                        false,
--                        UID_INVALID,
--                        &s->manager->polkit_registry,
--                        error);
-+        r = check_polkit_chvt(message, s->manager, error);
-         if (r < 0)
-                 return r;
-         if (r == 0)
-diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c
-index ccc5ac8df2..57c8a4e900 100644
---- a/src/login/logind-session-dbus.c
-+++ b/src/login/logind-session-dbus.c
-@@ -11,6 +11,7 @@
- #include "fd-util.h"
- #include "logind-brightness.h"
- #include "logind-dbus.h"
-+#include "logind-polkit.h"
- #include "logind-seat-dbus.h"
- #include "logind-session-dbus.h"
- #include "logind-session-device.h"
-@@ -192,15 +193,7 @@ int bus_session_method_activate(sd_bus_message *message, void *userdata, sd_bus_
-         assert(message);
-         assert(s);
- 
--        r = bus_verify_polkit_async(
--                        message,
--                        CAP_SYS_ADMIN,
--                        "org.freedesktop.login1.chvt",
--                        NULL,
--                        false,
--                        UID_INVALID,
--                        &s->manager->polkit_registry,
--                        error);
-+        r = check_polkit_chvt(message, s->manager, error);
-         if (r < 0)
-                 return r;
-         if (r == 0)
-diff --git a/src/login/meson.build b/src/login/meson.build
-index 0a7d3d5440..7e46be2add 100644
---- a/src/login/meson.build
-+++ b/src/login/meson.build
-@@ -26,6 +26,7 @@ liblogind_core_sources = files('''
-         logind-device.h
-         logind-inhibit.c
-         logind-inhibit.h
-+        logind-polkit.c
-         logind-seat-dbus.c
-         logind-seat-dbus.h
-         logind-seat.c
--- 
-2.28.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-test-parse-argument-Include-signal.h.patch b/poky/meta/recipes-core/systemd/systemd/0001-test-parse-argument-Include-signal.h.patch
new file mode 100644
index 0000000..3af1daa
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0001-test-parse-argument-Include-signal.h.patch
@@ -0,0 +1,29 @@
+From 1adde6721ead386ccee6efe48038d6944b96319a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 24 May 2021 18:26:27 -0700
+Subject: [PATCH] test-parse-argument: Include signal.h
+
+Fixes
+src/test/test-parse-argument.c:49:29: error: use of undeclared identifier 'SIGABRT'
+
+Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/19718]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/test/test-parse-argument.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/test/test-parse-argument.c b/src/test/test-parse-argument.c
+index 4081a9f25a..820d69f092 100644
+--- a/src/test/test-parse-argument.c
++++ b/src/test/test-parse-argument.c
+@@ -3,6 +3,7 @@
+ #include "parse-argument.h"
+ #include "stdio-util.h"
+ #include "tests.h"
++#include <signal.h>
+ 
+ static void test_parse_json_argument(void) {
+         log_info("/* %s */", __func__);
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch b/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
index d856bcb..4cdf66e 100644
--- a/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
@@ -1,7 +1,7 @@
-From 66ece0b870b3a34fdabc48b88437e6cc354e9fce Mon Sep 17 00:00:00 2001
+From 159c53612444ec1df492bae528a5a88a275b93bf Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 13:41:41 +0800
-Subject: [PATCH 02/26] don't use glibc-specific qsort_r
+Subject: [PATCH] don't use glibc-specific qsort_r
 
 Upstream-Status: Inappropriate [musl specific]
 
@@ -12,6 +12,7 @@
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
 [Rebased for v247]
 Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
 ---
  src/basic/sort-util.h              | 14 ------------
  src/libsystemd/sd-hwdb/hwdb-util.c | 19 +++++++++++-----
@@ -19,14 +20,13 @@
  3 files changed, 38 insertions(+), 31 deletions(-)
 
 diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
-index 1d194a1f04..3394c9eb72 100644
+index 49586a4a24..d92a5ab0ed 100644
 --- a/src/basic/sort-util.h
 +++ b/src/basic/sort-util.h
-@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *base, size_t nmemb, size_t size, __compar_f
-                 int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \
+@@ -55,18 +55,4 @@ static inline void _qsort_safe(void *base, size_t nmemb, size_t size, __compar_f
                  _qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
          })
--
+ 
 -static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_d_fn_t compar, void *userdata) {
 -        if (nmemb <= 1)
 -                return;
@@ -40,11 +40,13 @@
 -                int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
 -                qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \
 -        })
+-
+ int cmp_int(const int *a, const int *b);
 diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c
-index 4c94ba9c88..95495dba6d 100644
+index fd45ff0f54..ac4b63c49b 100644
 --- a/src/libsystemd/sd-hwdb/hwdb-util.c
 +++ b/src/libsystemd/sd-hwdb/hwdb-util.c
-@@ -126,9 +126,13 @@ static void trie_free(struct trie *trie) {
+@@ -126,9 +126,13 @@ static struct trie* trie_free(struct trie *trie) {
  
  DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
  
@@ -85,10 +87,10 @@
  }
  
 diff --git a/src/shared/format-table.c b/src/shared/format-table.c
-index a13a198b7a..bce10bc607 100644
+index dccb796b26..c3ab8ac296 100644
 --- a/src/shared/format-table.c
 +++ b/src/shared/format-table.c
-@@ -1243,30 +1243,32 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
+@@ -1290,30 +1290,32 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
          return CMP(index_a, index_b);
  }
  
@@ -131,7 +133,7 @@
          }
  
          /* Order identical lines by the order there were originally added in */
-@@ -1844,7 +1846,12 @@ int table_print(Table *t, FILE *f) {
+@@ -1952,7 +1954,12 @@ int table_print(Table *t, FILE *f) {
                  for (size_t i = 0; i < n_rows; i++)
                          sorted[i] = i * t->n_columns;
  
@@ -145,7 +147,7 @@
          }
  
          if (t->display_map)
-@@ -2440,7 +2447,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
+@@ -2580,7 +2587,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
                  for (size_t i = 0; i < n_rows; i++)
                          sorted[i] = i * t->n_columns;
  
@@ -159,6 +161,3 @@
          }
  
          if (t->display_map)
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch b/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
index f43a22a..9b1768d 100644
--- a/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
@@ -1,7 +1,7 @@
-From 9f0d5996bbb2db3679a4075fa8301750b786c03b Mon Sep 17 00:00:00 2001
+From 4afb8adc83348bf75964fc10af7902e04dd62637 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 13:55:12 +0800
-Subject: [PATCH 03/26] missing_type.h: add __compare_fn_t and comparison_fn_t
+Subject: [PATCH] missing_type.h: add __compare_fn_t and comparison_fn_t
 
 Make it work with musl where comparison_fn_t and __compare_fn_t
 is not provided.
@@ -13,11 +13,12 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [Rebased for v242]
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
+
 ---
- src/basic/missing_type.h | 9 +++++++++
- src/basic/sort-util.h    | 1 +
- src/core/kmod-setup.c    | 1 +
- src/journal/catalog.c    | 1 +
+ src/basic/missing_type.h            | 9 +++++++++
+ src/basic/sort-util.h               | 1 +
+ src/core/kmod-setup.c               | 1 +
+ src/libsystemd/sd-journal/catalog.c | 1 +
  4 files changed, 12 insertions(+)
 
 diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
@@ -38,7 +39,7 @@
 +typedef int (*__compar_fn_t)(const void *, const void *);
 +#endif
 diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
-index 3394c9eb72..d9cb2aecb6 100644
+index d92a5ab0ed..a63867c716 100644
 --- a/src/basic/sort-util.h
 +++ b/src/basic/sort-util.h
 @@ -4,6 +4,7 @@
@@ -61,10 +62,10 @@
  
  #if HAVE_KMOD
  #include "module-util.h"
-diff --git a/src/journal/catalog.c b/src/journal/catalog.c
-index 0f6ad8a29e..4e1077ade4 100644
---- a/src/journal/catalog.c
-+++ b/src/journal/catalog.c
+diff --git a/src/libsystemd/sd-journal/catalog.c b/src/libsystemd/sd-journal/catalog.c
+index aea3241d18..75e6c56a28 100644
+--- a/src/libsystemd/sd-journal/catalog.c
++++ b/src/libsystemd/sd-journal/catalog.c
 @@ -28,6 +28,7 @@
  #include "string-util.h"
  #include "strv.h"
@@ -73,6 +74,3 @@
  
  const char * const catalog_file_dirs[] = {
          "/usr/local/lib/systemd/catalog/",
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch b/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
index bdd64a0..dc40a2f 100644
--- a/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
@@ -1,7 +1,7 @@
-From f3dbe29f7620a063af4d8eb3ea7c48ecd410200d Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Mon, 25 Feb 2019 14:04:21 +0800
-Subject: [PATCH 04/26] add fallback parse_printf_format implementation
+From 6c18e5f9373da3e3b38f2c5727e2aefe07fcbbd9 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sat, 22 May 2021 20:26:24 +0200
+Subject: [PATCH] [PATCH] add fallback parse_printf_format implementation
 
 Upstream-Status: Inappropriate [musl specific]
 
@@ -11,21 +11,21 @@
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 ---
- meson.build                     |   1 +
- src/basic/meson.build           |   5 +
- src/basic/parse-printf-format.c | 273 ++++++++++++++++++++++++++++++++
- src/basic/parse-printf-format.h |  57 +++++++
- src/basic/stdio-util.h          |   2 +-
- src/journal/journal-send.c      |   2 +-
+ meson.build                              |   1 +
+ src/basic/meson.build                    |   5 +
+ src/basic/parse-printf-format.c          | 273 +++++++++++++++++++++++
+ src/basic/parse-printf-format.h          |  57 +++++
+ src/basic/stdio-util.h                   |   2 +-
+ src/libsystemd/sd-journal/journal-send.c |   2 +-
  6 files changed, 338 insertions(+), 2 deletions(-)
  create mode 100644 src/basic/parse-printf-format.c
  create mode 100644 src/basic/parse-printf-format.h
 
 diff --git a/meson.build b/meson.build
-index f406d595e6..6aa47fc755 100644
+index 27186d63a3..2abb7b3188 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -646,6 +646,7 @@ endif
+@@ -675,6 +675,7 @@ endif
  foreach header : ['crypt.h',
                    'linux/memfd.h',
                    'linux/vm_sockets.h',
@@ -34,21 +34,21 @@
                    'valgrind/memcheck.h',
                    'valgrind/valgrind.h',
 diff --git a/src/basic/meson.build b/src/basic/meson.build
-index 1183ea83ad..aa5c958850 100644
+index 60ef801a25..aba2172edd 100644
 --- a/src/basic/meson.build
 +++ b/src/basic/meson.build
-@@ -322,6 +322,11 @@ foreach item : [['af',     af_list_txt,     'af',         ''],
- endforeach
+@@ -341,6 +341,11 @@ endforeach
  
  basic_sources += generated_gperf_headers
-+
+ 
 +if conf.get('HAVE_PRINTF_H') != 1
 +        basic_sources += [files('parse-printf-format.c')]
 +endif
 +
- basic_gcrypt_sources = files(
-         'gcrypt-util.c',
-         'gcrypt-util.h')
++
+ ############################################################
+ 
+ arch_list = [
 diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
 new file mode 100644
 index 0000000000..49437e5445
@@ -410,10 +410,10 @@
  
  #define snprintf_ok(buf, len, fmt, ...) \
          ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len))
-diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
+diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
 index fd3fd7ef9c..e8e6ad555b 100644
---- a/src/journal/journal-send.c
-+++ b/src/journal/journal-send.c
+--- a/src/libsystemd/sd-journal/journal-send.c
++++ b/src/libsystemd/sd-journal/journal-send.c
 @@ -2,7 +2,6 @@
  
  #include <errno.h>
@@ -431,5 +431,5 @@
  #define SNDBUF_SIZE (8*1024*1024)
  
 -- 
-2.27.0
+2.24.0
 
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 d63e3c0..814c28f 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
@@ -1,7 +1,7 @@
-From 5aeae0ea89f5af74ed5d95bed1d87a03b3801ff0 Mon Sep 17 00:00:00 2001
+From 6b0732ac7164914ce16e231e35980b849bdfc4c8 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 14:18:21 +0800
-Subject: [PATCH 05/26] src/basic/missing.h: check for missing strndupa
+Subject: [PATCH] src/basic/missing.h: check for missing strndupa
 
 include missing.h  for definition of strndupa
 
@@ -17,6 +17,7 @@
 [rebased for systemd 244]
 [Rebased for v247]
 Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
 ---
  meson.build                                |  1 +
  src/backlight/backlight.c                  |  1 +
@@ -25,6 +26,7 @@
  src/basic/log.c                            |  1 +
  src/basic/missing_stdlib.h                 | 12 ++++++++++++
  src/basic/mkdir.c                          |  1 +
+ src/basic/mountpoint-util.c                |  1 +
  src/basic/parse-util.c                     |  1 +
  src/basic/path-lookup.c                    |  1 +
  src/basic/proc-cmdline.c                   |  1 +
@@ -41,12 +43,12 @@
  src/coredump/coredump-vacuum.c             |  1 +
  src/journal-remote/journal-remote-main.c   |  1 +
  src/journal/journalctl.c                   |  1 +
- src/journal/sd-journal.c                   |  1 +
  src/libsystemd/sd-bus/bus-message.c        |  1 +
  src/libsystemd/sd-bus/bus-objects.c        |  1 +
  src/libsystemd/sd-bus/bus-socket.c         |  1 +
  src/libsystemd/sd-bus/sd-bus.c             |  1 +
  src/libsystemd/sd-bus/test-bus-benchmark.c |  1 +
+ src/libsystemd/sd-journal/sd-journal.c     |  1 +
  src/locale/keymap-util.c                   |  1 +
  src/login/pam_systemd.c                    |  1 +
  src/network/generator/network-generator.c  |  1 +
@@ -68,14 +70,14 @@
  src/udev/udev-builtin-path_id.c            |  1 +
  src/udev/udev-event.c                      |  1 +
  src/udev/udev-rules.c                      |  1 +
- 50 files changed, 61 insertions(+)
+ 51 files changed, 62 insertions(+)
 
 --- a/meson.build
 +++ b/meson.build
-@@ -535,6 +535,7 @@ foreach ident : [
-                                  #include <sys/wait.h>'''],
-         ['mallinfo',          '''#include <malloc.h>'''],
+@@ -550,6 +550,7 @@ foreach ident : [
+         ['execveat',          '''#include <unistd.h>'''],
          ['close_range',       '''#include <unistd.h>'''],
+         ['epoll_pwait2',      '''#include <sys/epoll.h>'''],
 +        ['strndupa' ,         '''#include <string.h>'''],
  ]
  
@@ -102,7 +104,7 @@
          _cleanup_free_ char *fs = NULL;
 --- a/src/basic/env-util.c
 +++ b/src/basic/env-util.c
-@@ -15,6 +15,7 @@
+@@ -18,6 +18,7 @@
  #include "string-util.h"
  #include "strv.h"
  #include "utf8.h"
@@ -148,9 +150,19 @@
  
  int mkdir_safe_internal(
                  const char *path,
+--- a/src/basic/mountpoint-util.c
++++ b/src/basic/mountpoint-util.c
+@@ -12,6 +12,7 @@
+ #include "missing_stat.h"
+ #include "missing_syscall.h"
+ #include "mkdir.h"
++#include "missing_stdlib.h"
+ #include "mountpoint-util.h"
+ #include "parse-util.h"
+ #include "path-util.h"
 --- a/src/basic/parse-util.c
 +++ b/src/basic/parse-util.c
-@@ -22,6 +22,7 @@
+@@ -19,6 +19,7 @@
  #include "stat-util.h"
  #include "string-util.h"
  #include "strv.h"
@@ -197,7 +209,7 @@
 +#include "missing_stdlib.h"
  
  #if HAVE_SELINUX
- DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free);
+ DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(context_t, context_free, NULL);
 --- a/src/basic/time-util.c
 +++ b/src/basic/time-util.c
 @@ -27,6 +27,7 @@
@@ -220,10 +232,10 @@
  
 --- a/src/core/dbus-cgroup.c
 +++ b/src/core/dbus-cgroup.c
-@@ -16,6 +16,7 @@
- #include "fileio.h"
+@@ -17,6 +17,7 @@
  #include "limits-util.h"
  #include "path-util.h"
+ #include "percent-util.h"
 +#include "missing_stdlib.h"
  
  BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
@@ -240,7 +252,7 @@
  static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
 --- a/src/core/dbus-util.c
 +++ b/src/core/dbus-util.c
-@@ -7,6 +7,7 @@
+@@ -9,6 +9,7 @@
  #include "unit-printf.h"
  #include "user-util.h"
  #include "unit.h"
@@ -251,7 +263,7 @@
 --- a/src/core/execute.c
 +++ b/src/core/execute.c
 @@ -96,6 +96,7 @@
- #include "unit.h"
+ #include "unit-serialize.h"
  #include "user-util.h"
  #include "utmp-wtmp.h"
 +#include "missing_stdlib.h"
@@ -290,7 +302,7 @@
  #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL)   /* 4 GiB */
 --- a/src/journal-remote/journal-remote-main.c
 +++ b/src/journal-remote/journal-remote-main.c
-@@ -22,6 +22,7 @@
+@@ -24,6 +24,7 @@
  #include "stat-util.h"
  #include "string-table.h"
  #include "strv.h"
@@ -300,7 +312,7 @@
  #define CERT_FILE     CERTIFICATE_ROOT "/certs/journal-remote.pem"
 --- a/src/journal/journalctl.c
 +++ b/src/journal/journalctl.c
-@@ -73,6 +73,7 @@
+@@ -72,6 +72,7 @@
  #include "unit-name.h"
  #include "user-util.h"
  #include "varlink.h"
@@ -308,19 +320,9 @@
  
  #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
  #define PROCESS_INOTIFY_INTERVAL 1024   /* Every 1,024 messages processed */
---- a/src/journal/sd-journal.c
-+++ b/src/journal/sd-journal.c
-@@ -40,6 +40,7 @@
- #include "string-util.h"
- #include "strv.h"
- #include "syslog-util.h"
-+#include "missing_stdlib.h"
- 
- #define JOURNAL_FILES_MAX 7168
- 
 --- a/src/libsystemd/sd-bus/bus-message.c
 +++ b/src/libsystemd/sd-bus/bus-message.c
-@@ -21,6 +21,7 @@
+@@ -20,6 +20,7 @@
  #include "strv.h"
  #include "time-util.h"
  #include "utf8.h"
@@ -330,7 +332,7 @@
  
 --- a/src/libsystemd/sd-bus/bus-objects.c
 +++ b/src/libsystemd/sd-bus/bus-objects.c
-@@ -13,6 +13,7 @@
+@@ -12,6 +12,7 @@
  #include "set.h"
  #include "string-util.h"
  #include "strv.h"
@@ -351,9 +353,9 @@
 --- a/src/libsystemd/sd-bus/sd-bus.c
 +++ b/src/libsystemd/sd-bus/sd-bus.c
 @@ -41,6 +41,7 @@
- #include "process-util.h"
  #include "string-util.h"
  #include "strv.h"
+ #include "user-util.h"
 +#include "missing_stdlib.h"
  
  #define log_debug_bus_message(m)                                         \
@@ -361,16 +363,26 @@
 --- a/src/libsystemd/sd-bus/test-bus-benchmark.c
 +++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
 @@ -14,6 +14,7 @@
- #include "missing_resource.h"
+ #include "string-util.h"
  #include "time-util.h"
  #include "util.h"
 +#include "missing_stdlib.h"
  
  #define MAX_SIZE (2*1024*1024)
  
+--- a/src/libsystemd/sd-journal/sd-journal.c
++++ b/src/libsystemd/sd-journal/sd-journal.c
+@@ -40,6 +40,7 @@
+ #include "string-util.h"
+ #include "strv.h"
+ #include "syslog-util.h"
++#include "missing_stdlib.h"
+ 
+ #define JOURNAL_FILES_MAX 7168
+ 
 --- a/src/locale/keymap-util.c
 +++ b/src/locale/keymap-util.c
-@@ -21,6 +21,7 @@
+@@ -24,6 +24,7 @@
  #include "string-util.h"
  #include "strv.h"
  #include "tmpfile-util.h"
@@ -410,17 +422,17 @@
          Settings *s;
 --- a/src/nss-mymachines/nss-mymachines.c
 +++ b/src/nss-mymachines/nss-mymachines.c
-@@ -19,6 +19,7 @@
+@@ -21,6 +21,7 @@
  #include "nss-util.h"
  #include "signal-util.h"
  #include "string-util.h"
 +#include "missing_stdlib.h"
  
- NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
- NSS_GETPW_PROTOTYPES(mymachines);
+ static void setup_logging(void) {
+         /* We need a dummy function because log_parse_environment is a macro. */
 --- a/src/portable/portable.c
 +++ b/src/portable/portable.c
-@@ -31,6 +31,7 @@
+@@ -32,6 +32,7 @@
  #include "strv.h"
  #include "tmpfile-util.h"
  #include "user-util.h"
@@ -430,7 +442,7 @@
  
 --- a/src/resolve/resolvectl.c
 +++ b/src/resolve/resolvectl.c
-@@ -37,6 +37,7 @@
+@@ -41,6 +41,7 @@
  #include "terminal-util.h"
  #include "utf8.h"
  #include "verbs.h"
@@ -460,7 +472,7 @@
          char *cgroup_path;
 --- a/src/shared/bus-unit-util.c
 +++ b/src/shared/bus-unit-util.c
-@@ -44,6 +44,7 @@
+@@ -45,6 +45,7 @@
  #include "unit-def.h"
  #include "user-util.h"
  #include "utf8.h"
@@ -551,16 +563,16 @@
 --- a/src/udev/udev-builtin-path_id.c
 +++ b/src/udev/udev-builtin-path_id.c
 @@ -22,6 +22,7 @@
- #include "strv.h"
  #include "sysexits.h"
  #include "udev-builtin.h"
+ #include "udev-util.h"
 +#include "missing_stdlib.h"
  
  _printf_(2,3)
  static void path_prepend(char **path, const char *fmt, ...) {
 --- a/src/udev/udev-event.c
 +++ b/src/udev/udev-event.c
-@@ -34,6 +34,7 @@
+@@ -33,6 +33,7 @@
  #include "udev-util.h"
  #include "udev-watch.h"
  #include "user-util.h"
@@ -570,7 +582,7 @@
          sd_device *device;
 --- a/src/udev/udev-rules.c
 +++ b/src/udev/udev-rules.c
-@@ -30,6 +30,7 @@
+@@ -31,6 +31,7 @@
  #include "udev-rules.h"
  #include "user-util.h"
  #include "virt.h"
@@ -578,13 +590,13 @@
  
  #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
  
---- a/src/basic/mountpoint-util.c
-+++ b/src/basic/mountpoint-util.c
-@@ -10,6 +10,7 @@
- #include "fs-util.h"
- #include "missing_stat.h"
- #include "missing_syscall.h"
-+#include "missing_stdlib.h"
- #include "mountpoint-util.h"
+--- a/src/basic/percent-util.c
++++ b/src/basic/percent-util.c
+@@ -3,6 +3,7 @@
+ #include "percent-util.h"
+ #include "string-util.h"
  #include "parse-util.h"
- #include "path-util.h"
++#include "missing_stdlib.h"
+ 
+ static int parse_parts_value_whole(const char *p, const char *symbol) {
+         const char *pc, *n;
diff --git a/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch b/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
index a978558..54d7142 100644
--- a/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
@@ -1,7 +1,7 @@
-From d3ed0da271738fd0fc3d3e4d82d6f5810334b05e Mon Sep 17 00:00:00 2001
+From 2069f0b0d5ab8f869aeba635a347e0b11d362b30 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 26 Oct 2017 22:10:42 -0700
-Subject: [PATCH 06/26] Include netinet/if_ether.h
+Subject: [PATCH] Include netinet/if_ether.h
 
 Fixes
 /path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
@@ -31,6 +31,7 @@
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 [rebased for systemd 247]
 Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
 ---
  src/libsystemd-network/sd-dhcp6-client.c  | 1 -
  src/libsystemd/sd-netlink/netlink-types.c | 1 +
@@ -56,7 +57,7 @@
  21 files changed, 26 insertions(+), 8 deletions(-)
 
 diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
-index 66f87c4b95..de1264ae46 100644
+index 410bfda10e..e70ed8be92 100644
 --- a/src/libsystemd-network/sd-dhcp6-client.c
 +++ b/src/libsystemd-network/sd-dhcp6-client.c
 @@ -5,7 +5,6 @@
@@ -68,7 +69,7 @@
  
  #include "sd-dhcp6-client.h"
 diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
-index 6fb6c147d9..8eda02d202 100644
+index ed7b9a8cd1..112c0b09e4 100644
 --- a/src/libsystemd/sd-netlink/netlink-types.c
 +++ b/src/libsystemd/sd-netlink/netlink-types.c
 @@ -3,6 +3,7 @@
@@ -80,7 +81,7 @@
  #include <linux/netlink.h>
  #include <linux/rtnetlink.h>
 diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
-index bb67beb665..f5780f1aec 100644
+index e7c4ed3c7c..3a1e4f9072 100644
 --- a/src/machine/machine-dbus.c
 +++ b/src/machine/machine-dbus.c
 @@ -3,6 +3,7 @@
@@ -92,7 +93,7 @@
  /* When we include libgen.h because we need dirname() we immediately
   * undefine basename() since libgen.h defines it as a macro to the POSIX
 diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c
-index e27f36067b..8868f1da5d 100644
+index cf7ca88d6f..34ab468191 100644
 --- a/src/network/netdev/bond.c
 +++ b/src/network/netdev/bond.c
 @@ -1,5 +1,6 @@
@@ -103,7 +104,7 @@
  #include "bond.h"
  #include "bond-util.h"
 diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c
-index 1f59cd8b42..5fdbae7e99 100644
+index 38432f1578..79ccfe578e 100644
 --- a/src/network/netdev/bridge.c
 +++ b/src/network/netdev/bridge.c
 @@ -1,5 +1,6 @@
@@ -114,7 +115,7 @@
  
  #include "bridge.h"
 diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
-index 82e71c3920..fbae86e216 100644
+index 77c5f8c4e7..04be1b4ab2 100644
 --- a/src/network/netdev/macsec.c
 +++ b/src/network/netdev/macsec.c
 @@ -1,5 +1,6 @@
@@ -125,19 +126,19 @@
  #include <linux/if_ether.h>
  #include <linux/if_macsec.h>
 diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf
-index 4e89761f2c..91251fa6ec 100644
+index 8abe044890..3c54c58928 100644
 --- a/src/network/netdev/netdev-gperf.gperf
 +++ b/src/network/netdev/netdev-gperf.gperf
-@@ -2,6 +2,7 @@
+@@ -3,6 +3,7 @@
  #if __GNUC__ >= 7
  _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
  #endif
 +#include <netinet/if_ether.h>
  #include <stddef.h>
  #include "bareudp.h"
- #include "bond.h"
+ #include "batadv.h"
 diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
-index 9f390b5781..62aeafb1e4 100644
+index b31f0fa81a..c80e1ff537 100644
 --- a/src/network/netdev/netdev.c
 +++ b/src/network/netdev/netdev.c
 @@ -1,5 +1,6 @@
@@ -148,7 +149,7 @@
  #include <netinet/in.h>
  #include <unistd.h>
 diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c
-index e53c73c30c..9bf0771b84 100644
+index 2847b336c9..4d6af8c642 100644
 --- a/src/network/networkd-brvlan.c
 +++ b/src/network/networkd-brvlan.c
 @@ -4,6 +4,7 @@
@@ -160,7 +161,7 @@
  #include <stdbool.h>
  
 diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
-index 9f58121350..554d006cb8 100644
+index 00d055cf8d..65821c1d31 100644
 --- a/src/network/networkd-dhcp-common.c
 +++ b/src/network/networkd-dhcp-common.c
 @@ -1,7 +1,8 @@
@@ -171,9 +172,9 @@
 +#include <net/if_arp.h>
 +#include <net/if.h>
  
+ #include "bus-error.h"
  #include "dhcp-internal.h"
- #include "dhcp6-internal.h"
-@@ -10,6 +11,7 @@
+@@ -11,6 +12,7 @@
  #include "networkd-dhcp-common.h"
  #include "networkd-link.h"
  #include "networkd-manager.h"
@@ -182,7 +183,7 @@
  #include "parse-util.h"
  #include "socket-util.h"
 diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c
-index cf279c640d..bae541029b 100644
+index 5cdf432c27..93cffb9863 100644
 --- a/src/network/networkd-dhcp-server.c
 +++ b/src/network/networkd-dhcp-server.c
 @@ -1,8 +1,8 @@
@@ -197,7 +198,7 @@
  #include "sd-dhcp-server.h"
  
 diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
-index f3c1e5f609..e4ef6eca63 100644
+index 23dc3a45db..7ae6c2467a 100644
 --- a/src/network/networkd-dhcp4.c
 +++ b/src/network/networkd-dhcp4.c
 @@ -1,9 +1,9 @@
@@ -212,7 +213,7 @@
  #include "escape.h"
  #include "alloc-util.h"
 diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
-index 5c077c1ec8..fa98042aa5 100644
+index aa077d6219..4f6ce22059 100644
 --- a/src/network/networkd-dhcp6.c
 +++ b/src/network/networkd-dhcp6.c
 @@ -3,9 +3,9 @@
@@ -227,7 +228,7 @@
  #include "sd-dhcp6-client.h"
  
 diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
-index 3bfe636691..e0c68c8ad3 100644
+index 8219d95b0d..c92230453b 100644
 --- a/src/network/networkd-link.c
 +++ b/src/network/networkd-link.c
 @@ -1,8 +1,8 @@
@@ -241,7 +242,7 @@
  #include <unistd.h>
  
 diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
-index 3254641461..f0ada419fd 100644
+index e5ffd35b6f..871ebb32c6 100644
 --- a/src/network/networkd-network.c
 +++ b/src/network/networkd-network.c
 @@ -1,5 +1,6 @@
@@ -252,7 +253,7 @@
  #include <netinet/in.h>
  #include <linux/netdevice.h>
 diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
-index 0ed89584ef..e7e157c201 100644
+index a74541a6c9..a10549b336 100644
 --- a/src/network/networkd-route.c
 +++ b/src/network/networkd-route.c
 @@ -1,7 +1,10 @@
@@ -268,7 +269,7 @@
  #include "alloc-util.h"
  #include "netlink-util.h"
 diff --git a/src/network/test-network-tables.c b/src/network/test-network-tables.c
-index 475cac7527..9bae6eda16 100644
+index ce34449554..0b5dc01182 100644
 --- a/src/network/test-network-tables.c
 +++ b/src/network/test-network-tables.c
 @@ -1,5 +1,6 @@
@@ -279,7 +280,7 @@
  #include "dhcp6-internal.h"
  #include "dhcp6-protocol.h"
 diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
-index e6fab262f2..41dd3d7df7 100644
+index 654d36a83a..f4ed42d543 100644
 --- a/src/shared/ethtool-util.c
 +++ b/src/shared/ethtool-util.c
 @@ -1,5 +1,6 @@
@@ -290,7 +291,7 @@
  #include <sys/ioctl.h>
  #include <linux/ethtool.h>
 diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h
-index f94b3e15bf..08a7e4fa09 100644
+index 11e2906681..a171df0737 100644
 --- a/src/shared/ethtool-util.h
 +++ b/src/shared/ethtool-util.h
 @@ -3,6 +3,7 @@
@@ -302,7 +303,7 @@
  
  #include "conf-parser.h"
 diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
-index d12fd0e299..636806dc23 100644
+index 31e5d0cd67..f25f821364 100644
 --- a/src/udev/net/link-config.c
 +++ b/src/udev/net/link-config.c
 @@ -1,5 +1,6 @@
@@ -323,6 +324,3 @@
  #include "alloc-util.h"
  #include "device-util.h"
  #include "errno-util.h"
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
index 6865421..2ff08c7 100644
--- a/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -1,8 +1,7 @@
-From 87a14dde13c8fa68239a4ab62914a093062b3b29 Mon Sep 17 00:00:00 2001
+From bca73ff2fbff2dc311040a87a4f536f89af07ad6 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 14:56:21 +0800
-Subject: [PATCH 07/26] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
- defined
+Subject: [PATCH] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not defined
 
 If the standard library doesn't provide brace
 expansion users just won't get it.
@@ -17,6 +16,7 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
 ---
  src/basic/glob-util.c     | 12 ++++++++++++
  src/test/test-glob-util.c | 16 ++++++++++++++++
@@ -115,10 +115,10 @@
  
          (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
 diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
-index 9906c70eef..5eb63b1d57 100644
+index 6b73d1e6d5..26b3b74275 100644
 --- a/src/tmpfiles/tmpfiles.c
 +++ b/src/tmpfiles/tmpfiles.c
-@@ -63,6 +63,12 @@
+@@ -66,6 +66,12 @@
  #include "umask-util.h"
  #include "user-util.h"
  
@@ -131,7 +131,7 @@
  /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
   * them in the file system. This is intended to be used to create
   * properly owned directories beneath /tmp, /var/tmp, /run, which are
-@@ -1936,7 +1942,9 @@ finish:
+@@ -1947,7 +1953,9 @@ finish:
  
  static int glob_item(Item *i, action_t action) {
          _cleanup_globfree_ glob_t g = {
@@ -141,7 +141,7 @@
          };
          int r = 0, k;
          char **fn;
-@@ -1956,7 +1964,9 @@ static int glob_item(Item *i, action_t action) {
+@@ -1967,7 +1975,9 @@ static int glob_item(Item *i, action_t action) {
  
  static int glob_item_recursively(Item *i, fdaction_t action) {
          _cleanup_globfree_ glob_t g = {
@@ -151,6 +151,3 @@
          };
          int r = 0, k;
          char **fn;
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch b/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
index 94cdc2e..142ca01 100644
--- a/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
@@ -1,7 +1,7 @@
-From 8caea3fe87d55fd16de7d1b8266239fa954cb498 Mon Sep 17 00:00:00 2001
+From e0d1912f0246c97e5e7b4177691363d2d077e11d Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:00:06 +0800
-Subject: [PATCH 08/26] add missing FTW_ macros for musl
+Subject: [PATCH] add missing FTW_ macros for musl
 
 This is to avoid build failures like below for musl.
 
@@ -10,6 +10,7 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/basic/missing_type.h | 20 ++++++++++++++++++++
  1 file changed, 20 insertions(+)
@@ -42,6 +43,3 @@
 +#ifndef FTW_SKIP_SIBLINGS
 +#define FTW_SKIP_SIBLINGS 3
 +#endif
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
index 76cc75c..53f0a1b 100644
--- a/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
@@ -1,17 +1,18 @@
-From d8e4f0aa1760e4c7bb8476beecd35025c9cbb95a Mon Sep 17 00:00:00 2001
+From bb41fe773881a8f1d9615d388320b9c6fc47bfe5 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:03:47 +0800
-Subject: [PATCH 09/26] fix missing of __register_atfork for non-glibc builds
+Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
 
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/basic/process-util.c | 7 +++++++
  1 file changed, 7 insertions(+)
 
 diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index 0851613fc9..4417101569 100644
+index 7d4301eadb..caa9dfe3a3 100644
 --- a/src/basic/process-util.c
 +++ b/src/basic/process-util.c
 @@ -18,6 +18,9 @@
@@ -24,7 +25,7 @@
  
  #include "alloc-util.h"
  #include "architecture.h"
-@@ -1143,11 +1146,15 @@ void reset_cached_pid(void) {
+@@ -1121,11 +1124,15 @@ void reset_cached_pid(void) {
          cached_pid = CACHED_PID_UNSET;
  }
  
@@ -40,6 +41,3 @@
  
  pid_t getpid_cached(void) {
          static bool installed = false;
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch b/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
index aeacd86..af1a6bb 100644
--- a/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
@@ -1,7 +1,7 @@
-From e45bb02174812e4935214f42a18725be320770d5 Mon Sep 17 00:00:00 2001
+From dc40487e0ac26e3ca317429b9c3e8f01772de60a Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:12:41 +0800
-Subject: [PATCH 10/26] Use uintmax_t for handling rlim_t
+Subject: [PATCH] Use uintmax_t for handling rlim_t
 
 PRIu{32,64} is not right format to represent rlim_t type
 therefore use %ju and typecast the rlim_t variables to
@@ -20,6 +20,7 @@
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 [Rebased for v241]
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/basic/format-util.h |  8 +-------
  src/basic/rlimit-util.c | 10 +++++-----
@@ -46,10 +47,10 @@
  #if SIZEOF_DEV_T == 8
  #  define DEV_FMT "%" PRIu64
 diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
-index 880976312c..9e1b61cd4a 100644
+index 23d108d5df..94373c9422 100644
 --- a/src/basic/rlimit-util.c
 +++ b/src/basic/rlimit-util.c
-@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
+@@ -308,13 +308,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
          if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
                  s = strdup("infinity");
          else if (rl->rlim_cur >= RLIM_INFINITY)
@@ -67,7 +68,7 @@
  
          if (!s)
                  return -ENOMEM;
-@@ -403,7 +403,7 @@ int rlimit_nofile_safe(void) {
+@@ -405,7 +405,7 @@ int rlimit_nofile_safe(void) {
  
          rl.rlim_cur = FD_SETSIZE;
          if (setrlimit(RLIMIT_NOFILE, &rl) < 0)
@@ -77,10 +78,10 @@
          return 1;
  }
 diff --git a/src/core/execute.c b/src/core/execute.c
-index 89632e0582..335283776c 100644
+index f82fc294c0..4696d055a8 100644
 --- a/src/core/execute.c
 +++ b/src/core/execute.c
-@@ -5288,9 +5288,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
+@@ -5370,9 +5370,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
          for (unsigned i = 0; i < RLIM_NLIMITS; i++)
                  if (c->rlimit[i]) {
                          fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
@@ -92,6 +93,3 @@
                  }
  
          if (c->ioprio_set) {
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
index 6d7fdbc..b1d7827 100644
--- a/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
@@ -1,13 +1,13 @@
-From d1db531ddd3bbf94d5e764b7917bcc8684ff6357 Mon Sep 17 00:00:00 2001
+From f8be7b283309e4332eedc088774daac637afef7b Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Wed, 28 Feb 2018 21:25:22 -0800
-Subject: [PATCH 11/26] test-sizeof.c: Disable tests for missing typedefs in
- musl
+Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
 
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/test/test-sizeof.c | 4 ++++
  1 file changed, 4 insertions(+)
@@ -37,6 +37,3 @@
          info(pid_t);
          info(uid_t);
          info(gid_t);
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
index c15b6e7..5f21787 100644
--- a/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -1,7 +1,7 @@
-From 03e89da266edf70121a19ffc32a78cc3b97585ef Mon Sep 17 00:00:00 2001
+From 06915b70735caa66987af758ebdc4207757ae758 Mon Sep 17 00:00:00 2001
 From: Andre McCurdy <armccurdy@gmail.com>
 Date: Tue, 10 Oct 2017 14:33:30 -0700
-Subject: [PATCH 12/26] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
+Subject: [PATCH] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
 
 Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
 thing to do and it's not portable (not supported by musl). See:
@@ -25,20 +25,22 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+
 ---
- src/basic/fs-util.h          | 22 +++++++++++++++++++++-
+ src/basic/fs-util.h          | 23 +++++++++++++++++++++--
  src/shared/base-filesystem.c |  6 +++---
- 2 files changed, 24 insertions(+), 4 deletions(-)
+ 2 files changed, 24 insertions(+), 5 deletions(-)
 
 diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
-index 5dc8853eac..0491b3dae2 100644
+index 027037f7a7..16eb379caf 100644
 --- a/src/basic/fs-util.h
 +++ b/src/basic/fs-util.h
-@@ -43,7 +43,27 @@ int futimens_opath(int fd, const struct timespec ts[2]);
+@@ -44,8 +44,27 @@ int futimens_opath(int fd, const struct timespec ts[2]);
  int fd_warn_permissions(const char *path, int fd);
  int stat_warn_permissions(const char *path, const struct stat *st);
  
--#define laccess(path, mode) faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW)
+-#define laccess(path, mode)                                             \
+-        (faccessat(AT_FDCWD, (path), (mode), AT_SYMLINK_NOFOLLOW) < 0 ? -errno : 0)
 +/*
 +   Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right thing to
 +   do and it's not portable (not supported by musl). See:
@@ -94,6 +96,3 @@
                                                  continue;
                                  }
  
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
index 89736bc..51b1457 100644
--- a/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
@@ -1,8 +1,7 @@
-From dd134880e9a16595ab473934577e873c748e9c7a Mon Sep 17 00:00:00 2001
+From 0c44af262cfa07c57db4b32de1f7610af47797f4 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 27 May 2018 08:36:44 -0700
-Subject: [PATCH 13/26] Define glibc compatible basename() for non-glibc
- systems
+Subject: [PATCH] Define glibc compatible basename() for non-glibc systems
 
 Fixes builds with musl, even though systemd is adamant about
 using non-posix basename implementation, we have a way out
@@ -10,12 +9,13 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/machine/machine-dbus.c | 5 +++++
  1 file changed, 5 insertions(+)
 
 diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
-index f5780f1aec..aec5825b3e 100644
+index 3a1e4f9072..ab87b9882c 100644
 --- a/src/machine/machine-dbus.c
 +++ b/src/machine/machine-dbus.c
 @@ -11,6 +11,11 @@
@@ -30,6 +30,3 @@
  #include "alloc-util.h"
  #include "bus-common-errors.h"
  #include "bus-get-properties.h"
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
index e95d2ae..7444d43 100644
--- a/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -1,7 +1,7 @@
-From 55af446156da863b5b36a1109845858956a4c274 Mon Sep 17 00:00:00 2001
+From 0f4b60e34a806055c678eb97a7ec7e21291bcf48 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Wed, 4 Jul 2018 15:00:44 +0800
-Subject: [PATCH 14/26] Do not disable buffering when writing to oom_score_adj
+Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
 
 On musl, disabling buffering when writing to oom_score_adj will
 cause the following error.
@@ -19,15 +19,16 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
 ---
  src/basic/process-util.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/basic/process-util.c b/src/basic/process-util.c
-index 4417101569..556dab8ebf 100644
+index caa9dfe3a3..6101f43db5 100644
 --- a/src/basic/process-util.c
 +++ b/src/basic/process-util.c
-@@ -1536,7 +1536,7 @@ int set_oom_score_adjust(int value) {
+@@ -1523,7 +1523,7 @@ int set_oom_score_adjust(int value) {
          sprintf(t, "%i", value);
  
          return write_string_file("/proc/self/oom_score_adj", t,
@@ -36,6 +37,3 @@
  }
  
  int pidfd_get_pid(int fd, pid_t *ret) {
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
index 5cdcf84..90cc70d 100644
--- a/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -1,7 +1,7 @@
-From e382845aed90cfe4496a8351d57d4466dd2e9a9c Mon Sep 17 00:00:00 2001
+From c30ab62d18ce88187f5eb6c236e0977c9337f68d Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Tue, 10 Jul 2018 15:40:17 +0800
-Subject: [PATCH 15/26] distinguish XSI-compliant strerror_r from GNU-specifi
+Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi
  strerror_r
 
 XSI-compliant strerror_r and GNU-specifi strerror_r are different.
@@ -18,28 +18,12 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
- src/journal/journal-send.c        | 5 +++++
- src/libsystemd/sd-bus/bus-error.c | 5 +++++
+ src/libsystemd/sd-bus/bus-error.c        | 5 +++++
+ src/libsystemd/sd-journal/journal-send.c | 5 +++++
  2 files changed, 10 insertions(+)
 
-diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
-index e8e6ad555b..8ca5271d02 100644
---- a/src/journal/journal-send.c
-+++ b/src/journal/journal-send.c
-@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
-                 char* j;
- 
-                 errno = 0;
-+#ifndef __GLIBC__
-+                strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
-+                j = buffer + 8 + k;
-+#else
-                 j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
-+#endif
-                 if (errno == 0) {
-                         char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
- 
 diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
 index 8da2024a50..9605a9b869 100644
 --- a/src/libsystemd/sd-bus/bus-error.c
@@ -57,6 +41,20 @@
                  if (errno == ERANGE || strlen(x) >= k - 1) {
                          free(m);
                          k *= 2;
--- 
-2.27.0
-
+diff --git a/src/libsystemd/sd-journal/journal-send.c b/src/libsystemd/sd-journal/journal-send.c
+index e8e6ad555b..8ca5271d02 100644
+--- a/src/libsystemd/sd-journal/journal-send.c
++++ b/src/libsystemd/sd-journal/journal-send.c
+@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
+                 char* j;
+ 
+                 errno = 0;
++#ifndef __GLIBC__
++                strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
++                j = buffer + 8 + k;
++#else
+                 j = strerror_r(_saved_errno_, buffer + 8 + k, n - 8 - k);
++#endif
+                 if (errno == 0) {
+                         char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
+ 
diff --git a/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
index 9a125de..de7f9ec 100644
--- a/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
@@ -1,7 +1,7 @@
-From 0c7af5f288231a8c0545e169e01ba5ee173cafe7 Mon Sep 17 00:00:00 2001
+From fa86e5578256dddb296fd30128929ea7c4b792a4 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:18:00 +0800
-Subject: [PATCH 16/26] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
+Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
 
 for currently unknown reasons they get exported to the shared libries
 even without being listed in the sym file
@@ -11,6 +11,7 @@
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 [Rebased for v241]
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/libsystemd/sd-bus/bus-error.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
@@ -30,6 +31,3 @@
  
  /* Additional maps registered with sd_bus_error_add_map() are in this
   * NULL terminated array */
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch b/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
index 31747c6..d9ef2b8 100644
--- a/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
@@ -1,7 +1,7 @@
-From 32dd7a47b87793cd836ab4bb776d1524f24c2d58 Mon Sep 17 00:00:00 2001
+From 11e730694706fa354a0e43c588ef66677a777d9a Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:27:54 +0800
-Subject: [PATCH 17/26] missing_type.h: add __compar_d_fn_t definition
+Subject: [PATCH] missing_type.h: add __compar_d_fn_t definition
 
 Fix the following compile failure:
 src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean '__compar_fn_t'?
@@ -9,6 +9,7 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/basic/missing_type.h | 1 +
  1 file changed, 1 insertion(+)
@@ -25,6 +26,3 @@
  #endif
  
  #ifndef __COMPAR_FN_T
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch b/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
index 56d361a..3b60854 100644
--- a/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
@@ -1,7 +1,7 @@
-From bfc3416edeb69082ac9b9c9e844f12d7b45bb006 Mon Sep 17 00:00:00 2001
+From 45bae28d3da6607d33d54f4b30a500f5249aadde Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:44:54 +0800
-Subject: [PATCH 18/26] avoid redefinition of prctl_mm_map structure
+Subject: [PATCH] avoid redefinition of prctl_mm_map structure
 
 Fix the following compile failure:
 error: redefinition of 'struct prctl_mm_map'
@@ -9,6 +9,7 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/basic/missing_prctl.h | 2 ++
  1 file changed, 2 insertions(+)
@@ -27,6 +28,3 @@
  
  /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
  #ifndef PR_CAP_AMBIENT
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch b/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
index 6ca1964..7d6433f 100644
--- a/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
@@ -1,16 +1,17 @@
-From e427f03de2c56e868bb0f24aa231315b2dae1b71 Mon Sep 17 00:00:00 2001
+From 6e593ff2afbe4bfe15eee2ec34e51490a38462f5 Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Fri, 7 Aug 2020 15:19:27 +0000
-Subject: [PATCH 19/26] Handle missing LOCK_EX
+Subject: [PATCH] Handle missing LOCK_EX
 
 Upstream-Status: Inappropriate [musl specific]
 Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+
 ---
  src/partition/makefs.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/src/partition/makefs.c b/src/partition/makefs.c
-index fd924d2231..b97580fdcc 100644
+index 7c94fbfedb..42f966722d 100644
 --- a/src/partition/makefs.c
 +++ b/src/partition/makefs.c
 @@ -6,6 +6,7 @@
@@ -21,6 +22,3 @@
  
  #include "alloc-util.h"
  #include "blockdev-util.h"
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch b/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
index f74de43..1faee1c 100644
--- a/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
@@ -1,7 +1,7 @@
-From 9abbc5e69e21aef0d4d4567e69302fa660b76c53 Mon Sep 17 00:00:00 2001
+From ac579b296aa29c2f1dad9425c6d795e154ec8f7c Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Fri, 7 Aug 2020 15:20:17 +0000
-Subject: [PATCH 20/26] Fix incompatible pointer type struct sockaddr_un *
+Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un *
 
 | ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c: In function 'cant_be_in_netns':
 | ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:4893:25: error: passing argument 2 of 'connect' from incompatible pointer type [-Werror=incompatible-pointer-types]
@@ -18,15 +18,16 @@
 
 Upstream-Status: Inappropriate [musl specific]
 Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+
 ---
  src/nspawn/nspawn.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 0842731c18..3528b7ff14 100644
+index a4ac8ed2bb..0c41a48d4b 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -5084,7 +5084,7 @@ static int cant_be_in_netns(void) {
+@@ -5125,7 +5125,7 @@ static int cant_be_in_netns(void) {
          if (fd < 0)
                  return log_error_errno(errno, "Failed to allocate udev control socket: %m");
  
@@ -35,6 +36,3 @@
  
                  if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno))
                          return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch b/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
index fa6652a..14c8ff7 100644
--- a/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
@@ -1,7 +1,7 @@
-From 1f5bc54bed0b365e7e448c26f6c792dbe8b3b198 Mon Sep 17 00:00:00 2001
+From 6bc78df50adb48d24a2abfdf65b44b932cc5a571 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 16:53:06 +0800
-Subject: [PATCH 21/26] test-json.c: define M_PIl
+Subject: [PATCH] test-json.c: define M_PIl
 
 Fix the following compile failure:
 src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this function); did you mean 'M_PI'?
@@ -9,6 +9,7 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+
 ---
  src/test/test-json.c | 4 ++++
  1 file changed, 4 insertions(+)
@@ -28,6 +29,3 @@
  static void test_tokenizer(const char *data, ...) {
          unsigned line = 0, column = 0;
          void *state = NULL;
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch b/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
index 675fd20..bd627c5 100644
--- a/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
@@ -1,7 +1,7 @@
-From 564dba5ad0cd884e3f69fa19ca64095413578ea5 Mon Sep 17 00:00:00 2001
+From 7cb6579572b50ef44bc0a321a4c73cce55b0c2f2 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Fri, 1 Mar 2019 15:22:15 +0800
-Subject: [PATCH 22/26] do not disable buffer in writing files
+Subject: [PATCH] do not disable buffer in writing files
 
 Do not disable buffer in writing files, otherwise we get
 failure at boot for musl like below.
@@ -18,10 +18,12 @@
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
 ---
  src/basic/cgroup-util.c                 | 10 +++++-----
  src/basic/procfs-util.c                 |  4 ++--
  src/basic/smack-util.c                  |  2 +-
+ src/basic/sysctl-util.c                 |  2 +-
  src/basic/util.c                        |  2 +-
  src/binfmt/binfmt.c                     |  6 +++---
  src/core/main.c                         |  4 ++--
@@ -32,18 +34,15 @@
  src/nspawn/nspawn-cgroup.c              |  2 +-
  src/nspawn/nspawn.c                     |  6 +++---
  src/shared/cgroup-setup.c               |  4 ++--
- src/shared/sysctl-util.c                |  2 +-
  src/sleep/sleep.c                       |  8 ++++----
- src/udev/udevadm-trigger.c              |  2 +-
- src/udev/udevd.c                        |  2 +-
  src/vconsole/vconsole-setup.c           |  2 +-
- 18 files changed, 35 insertions(+), 35 deletions(-)
+ 16 files changed, 33 insertions(+), 33 deletions(-)
 
 diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
-index bb960f183c..cb804c5f4b 100644
+index 50c1ae1b2b..5b40e92163 100644
 --- a/src/basic/cgroup-util.c
 +++ b/src/basic/cgroup-util.c
-@@ -759,7 +759,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+@@ -765,7 +765,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
  
          sc = strstrip(contents);
          if (isempty(sc)) {
@@ -52,7 +51,7 @@
                  if (r < 0)
                          return r;
          } else if (!path_equal(sc, agent))
-@@ -777,7 +777,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+@@ -783,7 +783,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
  
          sc = strstrip(contents);
          if (streq(sc, "0")) {
@@ -61,7 +60,7 @@
                  if (r < 0)
                          return r;
  
-@@ -804,7 +804,7 @@ int cg_uninstall_release_agent(const char *controller) {
+@@ -810,7 +810,7 @@ int cg_uninstall_release_agent(const char *controller) {
          if (r < 0)
                  return r;
  
@@ -70,7 +69,7 @@
          if (r < 0)
                  return r;
  
-@@ -814,7 +814,7 @@ int cg_uninstall_release_agent(const char *controller) {
+@@ -820,7 +820,7 @@ int cg_uninstall_release_agent(const char *controller) {
          if (r < 0)
                  return r;
  
@@ -79,7 +78,7 @@
          if (r < 0)
                  return r;
  
-@@ -1646,7 +1646,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
+@@ -1650,7 +1650,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
          if (r < 0)
                  return r;
  
@@ -121,11 +120,24 @@
          if (r < 0)
                  return r;
  
+diff --git a/src/basic/sysctl-util.c b/src/basic/sysctl-util.c
+index c96b5cd77f..d2476d9665 100644
+--- a/src/basic/sysctl-util.c
++++ b/src/basic/sysctl-util.c
+@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
+ 
+         log_debug("Setting '%s' to '%s'", p, value);
+ 
+-        return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER);
++        return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0);
+ }
+ 
+ int sysctl_read(const char *property, char **ret) {
 diff --git a/src/basic/util.c b/src/basic/util.c
-index f98ecf3858..13e0f7431f 100644
+index 955b18bd2a..6d89c90176 100644
 --- a/src/basic/util.c
 +++ b/src/basic/util.c
-@@ -267,7 +267,7 @@ void disable_coredumps(void) {
+@@ -234,7 +234,7 @@ void disable_coredumps(void) {
          if (detect_container() > 0)
                  return;
  
@@ -135,7 +147,7 @@
                  log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
  }
 diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
-index 43ed2f385b..37a6f578f7 100644
+index f6b72e0bae..e9fd4d06be 100644
 --- a/src/binfmt/binfmt.c
 +++ b/src/binfmt/binfmt.c
 @@ -48,7 +48,7 @@ static int delete_rule(const char *rule) {
@@ -156,7 +168,7 @@
          if (r < 0)
                  return log_error_errno(r, "Failed to add binary format: %m");
  
-@@ -223,7 +223,7 @@ static int run(int argc, char *argv[]) {
+@@ -222,7 +222,7 @@ static int run(int argc, char *argv[]) {
                  }
  
                  /* Flush out all rules */
@@ -166,10 +178,10 @@
                  STRV_FOREACH(f, files) {
                          k = apply_file(*f, true);
 diff --git a/src/core/main.c b/src/core/main.c
-index a280b756ff..334532cd42 100644
+index 3ee8d0a869..ec36e3e80f 100644
 --- a/src/core/main.c
 +++ b/src/core/main.c
-@@ -1382,7 +1382,7 @@ static int bump_unix_max_dgram_qlen(void) {
+@@ -1401,7 +1401,7 @@ static int bump_unix_max_dgram_qlen(void) {
          if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN)
                  return 0;
  
@@ -178,7 +190,7 @@
          if (r < 0)
                  return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
                                        "Failed to bump AF_UNIX datagram queue length, ignoring: %m");
-@@ -1666,7 +1666,7 @@ static void initialize_core_pattern(bool skip_setup) {
+@@ -1678,7 +1678,7 @@ static void initialize_core_pattern(bool skip_setup) {
          if (getpid_cached() != 1)
                  return;
  
@@ -188,7 +200,7 @@
                  log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern);
  }
 diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
-index 1fe592af70..603942a000 100644
+index 8cc1696a4f..ab7b4ba2c3 100644
 --- a/src/core/smack-setup.c
 +++ b/src/core/smack-setup.c
 @@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) {
@@ -214,7 +226,7 @@
                  log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
  #endif
 diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c
-index d8f91f4e66..a088e6e2d8 100644
+index 58e35e403e..1d0beb4008 100644
 --- a/src/hibernate-resume/hibernate-resume.c
 +++ b/src/hibernate-resume/hibernate-resume.c
 @@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
@@ -227,20 +239,20 @@
                  log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
                  return EXIT_FAILURE;
 diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
-index d06f90ce1d..43d0a58750 100644
+index d82f01a164..b8fd63346c 100644
 --- a/src/libsystemd/sd-device/sd-device.c
 +++ b/src/libsystemd/sd-device/sd-device.c
-@@ -1976,7 +1976,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
+@@ -1987,7 +1987,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
          if (!value)
                  return -ENOMEM;
  
 -        r = write_string_file(path, value, WRITE_STRING_FILE_DISABLE_BUFFER | WRITE_STRING_FILE_NOFOLLOW);
 +        r = write_string_file(path, value, 0 | WRITE_STRING_FILE_NOFOLLOW);
          if (r < 0) {
-                 if (r == -ELOOP)
-                         return -EINVAL;
+                 /* On failure, clear cache entry, as we do not know how it fails. */
+                 device_remove_cached_sysattr_value(device, sysattr);
 diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
-index 7d757aa286..a5d9da5b7e 100644
+index 3bc424b83b..5f5eef0843 100644
 --- a/src/login/logind-dbus.c
 +++ b/src/login/logind-dbus.c
 @@ -1330,7 +1330,7 @@ static int trigger_device(Manager *m, sd_device *d) {
@@ -266,10 +278,10 @@
                  log_error_errno(r, "Failed to move process: %m");
                  goto finish;
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 3528b7ff14..11b0c20f95 100644
+index 0c41a48d4b..9c893b18e4 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -2667,7 +2667,7 @@ static int reset_audit_loginuid(void) {
+@@ -2695,7 +2695,7 @@ static int reset_audit_loginuid(void) {
          if (streq(p, "4294967295"))
                  return 0;
  
@@ -278,7 +290,7 @@
          if (r < 0) {
                  log_error_errno(r,
                                  "Failed to reset audit login UID. This probably means that your kernel is too\n"
-@@ -3920,13 +3920,13 @@ static int setup_uid_map(pid_t pid) {
+@@ -3948,13 +3948,13 @@ static int setup_uid_map(pid_t pid) {
  
          xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
          xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, arg_uid_shift, arg_uid_range);
@@ -316,21 +328,8 @@
                          if (r < 0) {
                                  log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
                                                  FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
-diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c
-index 670c33108b..7c7c3dcfb6 100644
---- a/src/shared/sysctl-util.c
-+++ b/src/shared/sysctl-util.c
-@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
- 
-         log_debug("Setting '%s' to '%s'", p, value);
- 
--        return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | WRITE_STRING_FILE_DISABLE_BUFFER);
-+        return write_string_file(p, value, WRITE_STRING_FILE_VERIFY_ON_FAILURE | 0);
- }
- 
- int sysctl_read(const char *property, char **content) {
 diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index 39ab554290..d0e566645d 100644
+index 262d4cea66..0523e8dc9b 100644
 --- a/src/sleep/sleep.c
 +++ b/src/sleep/sleep.c
 @@ -48,7 +48,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
@@ -369,34 +368,8 @@
                  if (k >= 0)
                          return 0;
                  log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
-diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c
-index 5c74184c33..65f528314e 100644
---- a/src/udev/udevadm-trigger.c
-+++ b/src/udev/udevadm-trigger.c
-@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set **settle_s
-                 if (!filename)
-                         return log_oom();
- 
--                r = write_string_file(filename, action, WRITE_STRING_FILE_DISABLE_BUFFER);
-+                r = write_string_file(filename, action, 0);
-                 if (r < 0) {
-                         bool ignore = IN_SET(r, -ENOENT, -ENODEV);
- 
-diff --git a/src/udev/udevd.c b/src/udev/udevd.c
-index d24b8d4398..d123a43904 100644
---- a/src/udev/udevd.c
-+++ b/src/udev/udevd.c
-@@ -1192,7 +1192,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) {
- 
-         filename = strjoina(syspath, "/uevent");
-         log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath);
--        r = write_string_file(filename, "change", WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file(filename, "change", 0);
-         if (r < 0)
-                 return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename);
-         return 0;
 diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
-index b28e2853e1..115b7233a0 100644
+index d1c3febdd5..1cc68694d1 100644
 --- a/src/vconsole/vconsole-setup.c
 +++ b/src/vconsole/vconsole-setup.c
 @@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
@@ -408,6 +381,3 @@
          if (r < 0)
                  return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8));
  
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch b/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
index 1cc3985..7d1bd60 100644
--- a/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
@@ -1,7 +1,7 @@
-From bbda4a48a34662393117fc677c3a678d4ce4c2ec Mon Sep 17 00:00:00 2001
+From d73755cc60f401f0f20f357752e45aeeeef8e83f Mon Sep 17 00:00:00 2001
 From: Scott Murray <scott.murray@konsulko.com>
 Date: Fri, 13 Sep 2019 19:26:27 -0400
-Subject: [PATCH 25/26] Handle __cpu_mask usage
+Subject: [PATCH] Handle __cpu_mask usage
 
 Fixes errors:
 
@@ -18,6 +18,7 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
 ---
  src/shared/cpu-set-util.h | 2 ++
  src/test/test-sizeof.c    | 2 +-
@@ -55,6 +56,3 @@
  
  /* Print information about various types. Useful when diagnosing
   * gcc diagnostics on an unfamiliar architecture. */
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch b/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
index 4180afb..068600f 100644
--- a/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
@@ -1,7 +1,7 @@
-From 47bf88f74717b417e4adbcc04256334b2335c873 Mon Sep 17 00:00:00 2001
+From 04e94f9a15101daa8f65a9af269d26cda2a24056 Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Tue, 10 Mar 2020 11:05:20 +0000
-Subject: [PATCH 26/26] Handle missing gshadow
+Subject: [PATCH] Handle missing gshadow
 
 gshadow usage is now present in the userdb code. Mask all uses of it to
 allow compilation on musl
@@ -10,6 +10,7 @@
 Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
 [Rebased for v247]
 Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+
 ---
  src/shared/user-record-nss.c | 20 ++++++++++++++++++++
  src/shared/user-record-nss.h |  4 ++++
@@ -138,10 +139,10 @@
  #include <shadow.h>
  
 diff --git a/src/shared/userdb.c b/src/shared/userdb.c
-index 2d480283d1..0d19764f2e 100644
+index 613350bd46..5c821d28cd 100644
 --- a/src/shared/userdb.c
 +++ b/src/shared/userdb.c
-@@ -929,13 +929,16 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
+@@ -938,13 +938,16 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
                  if (gr) {
                          _cleanup_free_ char *buffer = NULL;
                          bool incomplete = false;
@@ -155,10 +156,10 @@
                                  iterator->synthesize_nobody = false;
  
 +#if ENABLE_GSHADOW
-                         r = nss_sgrp_for_group(gr, &sgrp, &buffer);
-                         if (r < 0) {
-                                 log_debug_errno(r, "Failed to acquire shadow entry for group %s, ignoring: %m", gr->gr_name);
-@@ -943,6 +946,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
+                         if (!FLAGS_SET(iterator->flags, USERDB_AVOID_SHADOW)) {
+                                 r = nss_sgrp_for_group(gr, &sgrp, &buffer);
+                                 if (r < 0) {
+@@ -957,6 +960,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
                          }
  
                          r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
@@ -168,6 +169,3 @@
                          if (r < 0)
                                  return r;
  
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0027-proc-dont-trigger-mount-error-with-invalid-options-o.patch b/poky/meta/recipes-core/systemd/systemd/0027-proc-dont-trigger-mount-error-with-invalid-options-o.patch
deleted file mode 100644
index 94a4c30..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0027-proc-dont-trigger-mount-error-with-invalid-options-o.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 297aba739cd689e4dc9f43bb1422ec88d481099a Mon Sep 17 00:00:00 2001
-From: Paul Gortmaker <paul.gortmaker@windriver.com>
-Date: Wed, 13 Jan 2021 21:09:33 +0000
-Subject: [PATCH] proc: dont trigger mount error with invalid options on old
- kernels
-
-As of commit 4e39995371738b04d98d27b0d34ea8fe09ec9fab ("core: introduce
-ProtectProc= and ProcSubset= to expose hidepid= and subset= procfs
-mount options") kernels older than v5.8 generate multple warnings at
-boot, as seen in this Yocto build from today:
-
-     qemux86-64 login: root
-     [   65.829009] proc: Bad value for 'hidepid'
-     root@qemux86-64:~# dmesg|grep proc:
-     [   16.990706] proc: Bad value for 'hidepid'
-     [   28.060178] proc: Bad value for 'hidepid'
-     [   28.874229] proc: Bad value for 'hidepid'
-     [   32.685107] proc: Bad value for 'hidepid'
-     [   65.829009] proc: Bad value for 'hidepid'
-     root@qemux86-64:~#
-
-The systemd maintainer has dismissed this as something people should
-simply ignore[1] and has no interest in trying to avoid it by
-proactively checking the kernel version, so people can safely assume
-that they will never see this version check commit upstream.
-
-However, as can be seen above, telling people to just ignore it is not
-an option, as we'll end up answering the same question and dealing with
-the same bug over and over again.
-
-The commit that triggers this is systemd v247-rc1~378^2~3 -- so any
-systemd 247 and above plus kernel v5.7 or older will need this.
-
-[1] https://github.com/systemd/systemd/issues/16896
-
-Upstream-Status: Denied [https://github.com/systemd/systemd/issues/16896]
-Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-
-Index: git/src/core/namespace.c
-===================================================================
---- git.orig/src/core/namespace.c
-+++ git/src/core/namespace.c
-@@ -4,7 +4,9 @@
- #include <linux/loop.h>
- #include <sched.h>
- #include <stdio.h>
-+#include <stdlib.h>
- #include <sys/mount.h>
-+#include <sys/utsname.h>
- #include <unistd.h>
- #include <linux/fs.h>
- 
-@@ -860,13 +862,32 @@ static int mount_sysfs(const MountEntry
- 
- static int mount_procfs(const MountEntry *m, const NamespaceInfo *ns_info) {
-         const char *entry_path;
--        int r;
-+        int r, major, minor;
-+        struct utsname uts;
-+        bool old = false;
- 
-         assert(m);
-         assert(ns_info);
- 
-         entry_path = mount_entry_path(m);
- 
-+        /* If uname says that the system is older than v5.8, then the textual hidepid= stuff is not
-+         * supported by the kernel, and thus the per-instance hidepid= neither, which means we
-+         * really don't want to use it, since it would affect our host's /proc * mount. Hence let's
-+         * gracefully fallback to a classic, unrestricted version. */
-+
-+        r = uname(&uts);
-+        if (r < 0)
-+               return errno;
-+
-+        major = atoi(uts.release);
-+        minor = atoi(strchr(uts.release, '.') + 1);
-+
-+        if (major < 5 || (major == 5 && minor < 8)) {
-+                log_debug("Pre v5.8 kernel detected [v%d.%d] - skipping hidepid=", major, minor);
-+                old = true;
-+        }
-+
-         /* Mount a new instance, so that we get the one that matches our user namespace, if we are running in
-          * one. i.e we don't reuse existing mounts here under any condition, we want a new instance owned by
-          * our user namespace and with our hidepid= settings applied. Hence, let's get rid of everything
-@@ -875,8 +896,8 @@ static int mount_procfs(const MountEntry
-         (void) mkdir_p_label(entry_path, 0755);
-         (void) umount_recursive(entry_path, 0);
- 
--        if (ns_info->protect_proc != PROTECT_PROC_DEFAULT ||
--            ns_info->proc_subset != PROC_SUBSET_ALL) {
-+        if (!old && (ns_info->protect_proc != PROTECT_PROC_DEFAULT ||
-+            ns_info->proc_subset != PROC_SUBSET_ALL)) {
-                 _cleanup_free_ char *opts = NULL;
- 
-                 /* Starting with kernel 5.8 procfs' hidepid= logic is truly per-instance (previously it
diff --git a/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
index bbee6e6..2289404 100644
--- a/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -1,4 +1,4 @@
-From 7b32582c066549fea0f7180a6c575e7fa37a867f Mon Sep 17 00:00:00 2001
+From 366cd28f5f93ba7c861cd32a718251770d74830e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 12 Apr 2021 23:44:53 -0700
 Subject: [PATCH] missing_syscall.h: Define MIPS ABI defines for musl
@@ -10,15 +10,16 @@
 Upstream-Status: Pending
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  src/basic/missing_syscall.h | 6 ++++++
  1 file changed, 6 insertions(+)
 
 diff --git a/src/basic/missing_syscall.h b/src/basic/missing_syscall.h
-index 0594a1b930..495d161334 100644
+index 1384324804..0202d00372 100644
 --- a/src/basic/missing_syscall.h
 +++ b/src/basic/missing_syscall.h
-@@ -15,6 +15,12 @@
+@@ -20,6 +20,12 @@
  #include <asm/sgidefs.h>
  #endif
  
@@ -28,9 +29,6 @@
 +#define _MIPS_SIM_ABI64		3
 +#endif
 +
- #if defined(__x86_64__) && defined(__ILP32__)
- #  define systemd_SC_arch_bias(x) ((x) | /* __X32_SYSCALL_BIT */ 0x40000000)
- #elif defined(__ia64__)
--- 
-2.31.1
-
+ #include "missing_keyctl.h"
+ #include "missing_stat.h"
+ #include "missing_syscall_def.h"
diff --git a/poky/meta/recipes-core/systemd/systemd_247.6.bb b/poky/meta/recipes-core/systemd/systemd_248.3.bb
similarity index 98%
rename from poky/meta/recipes-core/systemd/systemd_247.6.bb
rename to poky/meta/recipes-core/systemd/systemd_248.3.bb
index ce6ac7e..4e65656 100644
--- a/poky/meta/recipes-core/systemd/systemd_247.6.bb
+++ b/poky/meta/recipes-core/systemd/systemd_248.3.bb
@@ -14,7 +14,8 @@
 # that we don't build both udev and systemd in world builds.
 REQUIRED_DISTRO_FEATURES = "systemd"
 
-SRC_URI += "file://touchscreen.rules \
+SRC_URI += " \
+           file://touchscreen.rules \
            file://00-create-volatile.conf \
            ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'file://org.freedesktop.hostname1_no_polkit.conf', '', d)} \
            ${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', 'file://00-hostnamed-network-user.conf', '', d)} \
@@ -24,9 +25,7 @@
            file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
            file://0003-implment-systemd-sysv-install-for-OE.patch \
            file://0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch \
-           file://0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch \
-           file://0027-proc-dont-trigger-mount-error-with-invalid-options-o.patch \
-           file://0001-analyze-resolve-executable-path-if-it-is-relative.patch \
+           file://0001-test-parse-argument-Include-signal.h.patch \
            "
 
 # patches needed by musl
@@ -474,6 +473,7 @@
                          ${rootlibexecdir}/systemd/systemd-machined \
                          ${rootlibexecdir}/systemd/systemd-pull \
                          ${exec_prefix}/lib/tmpfiles.d/systemd-nspawn.conf \
+                         ${exec_prefix}/lib/tmpfiles.d/README \
                          ${systemd_system_unitdir}/systemd-nspawn@.service \
                          ${libdir}/libnss_mymachines.so.2 \
                          ${datadir}/dbus-1/system-services/org.freedesktop.import1.service \
@@ -605,6 +605,7 @@
                 ${exec_prefix}/lib/environment.d \
                 ${localstatedir} \
                 ${rootlibexecdir}/modprobe.d/systemd.conf \
+                ${rootlibexecdir}/modprobe.d/README \
                 ${datadir}/dbus-1/system.d/org.freedesktop.timedate1.conf \
                 ${datadir}/dbus-1/system.d/org.freedesktop.locale1.conf \
                 ${datadir}/dbus-1/system.d/org.freedesktop.network1.conf \
@@ -647,6 +648,7 @@
                ${rootlibexecdir}/udev/ata_id \
                ${rootlibexecdir}/udev/cdrom_id \
                ${rootlibexecdir}/udev/collect \
+               ${rootlibexecdir}/udev/dmi_memory_id \
                ${rootlibexecdir}/udev/fido_id \
                ${rootlibexecdir}/udev/findkeyboards \
                ${rootlibexecdir}/udev/keyboard-force-release.sh \
@@ -674,6 +676,7 @@
                ${rootlibexecdir}/udev/rules.d/61-autosuspend-manual.rules \
                ${rootlibexecdir}/udev/rules.d/64-btrfs.rules \
                ${rootlibexecdir}/udev/rules.d/70-joystick.rules \
+               ${rootlibexecdir}/udev/rules.d/70-memory.rules \
                ${rootlibexecdir}/udev/rules.d/70-mouse.rules \
                ${rootlibexecdir}/udev/rules.d/70-power-switch.rules \
                ${rootlibexecdir}/udev/rules.d/70-touchpad.rules \
@@ -683,6 +686,7 @@
                ${rootlibexecdir}/udev/rules.d/80-drivers.rules \
                ${rootlibexecdir}/udev/rules.d/80-net-setup-link.rules \
                ${rootlibexecdir}/udev/rules.d/90-vconsole.rules \
+               ${rootlibexecdir}/udev/rules.d/README \
                ${sysconfdir}/udev \
                ${sysconfdir}/init.d/systemd-udevd \
                ${systemd_unitdir}/system/*udev* \
diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc
index cbf6102..6b47f41 100644
--- a/poky/meta/recipes-core/util-linux/util-linux.inc
+++ b/poky/meta/recipes-core/util-linux/util-linux.inc
@@ -27,8 +27,7 @@
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/util-linux:"
 MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
-BPN = "util-linux"
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${MAJOR_VERSION}/${BP}.tar.xz \
+SRC_URI = "${KERNELORG_MIRROR}/linux/utils/util-linux/v${MAJOR_VERSION}/util-linux-${PV}.tar.xz \
            file://configure-sbindir.patch \
            file://runuser.pamd \
            file://runuser-l.pamd \
diff --git a/poky/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch b/poky/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch
index e0e7e0c..a9a8eb6 100644
--- a/poky/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch
+++ b/poky/meta/recipes-devtools/apt/apt/0001-Do-not-init-tables-from-dpkg-configuration.patch
@@ -1,4 +1,4 @@
-From 382f8381ef8baf754057e376a6d9bf840ca6d543 Mon Sep 17 00:00:00 2001
+From 5fb6355c7dd00c97fe90e805ace075b6e9b6952d Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 10 May 2019 16:47:38 +0200
 Subject: [PATCH] Do not init tables from dpkg configuration
diff --git a/poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch b/poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
index c14dc2a..34d0c4b 100644
--- a/poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
+++ b/poky/meta/recipes-devtools/apt/apt/0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch
@@ -1,4 +1,4 @@
-From a603b3281f3f60a87531c8cec4843f970170d409 Mon Sep 17 00:00:00 2001
+From 76f8386cac7f13688b386686e0b1fc4b1b574f53 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Thu, 21 May 2020 20:13:25 +0000
 Subject: [PATCH] Revert "always run 'dpkg --configure -a' at the end of our
diff --git a/poky/meta/recipes-devtools/apt/apt/0001-aptwebserver.cc-Include-array.patch b/poky/meta/recipes-devtools/apt/apt/0001-aptwebserver.cc-Include-array.patch
new file mode 100644
index 0000000..cfee50c
--- /dev/null
+++ b/poky/meta/recipes-devtools/apt/apt/0001-aptwebserver.cc-Include-array.patch
@@ -0,0 +1,32 @@
+From f999aeb5ceb77b81c36e6a55300a521aaa2da882 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 26 May 2021 22:12:46 -0700
+Subject: [PATCH] aptwebserver.cc: Include <array>
+
+This helps getting std::array definition
+
+Fixes
+test/interactive-helper/aptwebserver.cc:36:55: error: constexpr variable cannot have non-literal type 'const std::array<std::array<const char *, 2>, 6>'
+   constexpr std::array<std::array<char const *,2>,6> htmlencode = {{
+
+Upstream-Status: Submitted [https://github.com/Debian/apt/pull/133]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ test/interactive-helper/aptwebserver.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/test/interactive-helper/aptwebserver.cc b/test/interactive-helper/aptwebserver.cc
+index 58ba54f84..0e030c7e9 100644
+--- a/test/interactive-helper/aptwebserver.cc
++++ b/test/interactive-helper/aptwebserver.cc
+@@ -22,6 +22,7 @@
+ #include <unistd.h>
+ 
+ #include <algorithm>
++#include <array>
+ #include <fstream>
+ #include <iostream>
+ #include <list>
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-devtools/apt/apt_2.2.2.bb b/poky/meta/recipes-devtools/apt/apt_2.2.3.bb
similarity index 95%
rename from poky/meta/recipes-devtools/apt/apt_2.2.2.bb
rename to poky/meta/recipes-devtools/apt/apt_2.2.3.bb
index 192aec4..fe00fb0 100644
--- a/poky/meta/recipes-devtools/apt/apt_2.2.2.bb
+++ b/poky/meta/recipes-devtools/apt/apt_2.2.3.bb
@@ -13,6 +13,7 @@
            file://0001-srvrec-Keep-support-for-older-resolver.patch \
            file://0001-cmake-Do-not-build-po-files.patch \
            file://0001-Hide-fstatat64-and-prlimit64-defines-on-musl.patch \
+           file://0001-aptwebserver.cc-Include-array.patch \
            "
 
 SRC_URI_append_class-native = " \
@@ -25,7 +26,7 @@
            file://0001-Revert-always-run-dpkg-configure-a-at-the-end-of-our.patch \
            "
 
-SRC_URI[sha256sum] = "c5449a4c2126a12497a9949cd10209926005d329f6ce7942a3781fa2fcf50487"
+SRC_URI[sha256sum] = "2880474bc08c79f103cd30d24a9c30c78b480c65076e466d24df93b9fa05ab27"
 LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 # the package is taken from snapshots.debian.org; that source is static and goes stale
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.36.inc b/poky/meta/recipes-devtools/binutils/binutils-2.36.inc
index 66080df..d54e2a3 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.36.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.36.inc
@@ -36,6 +36,7 @@
      file://0015-sync-with-OE-libtool-changes.patch \
      file://0016-Check-for-clang-before-checking-gcc-version.patch \
      file://0017-Add-support-for-the-DW_FORM_strx-forms-to-the-BFD-li.patch \
+     file://0018-Add-DWARF-5-support-in-gold.patch \
      file://CVE-2021-20197.patch \
 "
 S  = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0018-Add-DWARF-5-support-in-gold.patch b/poky/meta/recipes-devtools/binutils/binutils/0018-Add-DWARF-5-support-in-gold.patch
new file mode 100644
index 0000000..353b680
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0018-Add-DWARF-5-support-in-gold.patch
@@ -0,0 +1,1374 @@
+From 29dab7648672342418a9d32767e3b3182d9e6a30 Mon Sep 17 00:00:00 2001
+From: Cary Coutant <ccoutant@gmail.com>
+Date: Wed, 17 Mar 2021 21:31:15 -0700
+Subject: [PATCH] Add DWARF 5 support in gold.
+
+elfcpp/
+	PR gold/27246
+	* dwarf.h (enum DW_LNCT): Add line number table content type codes.
+	(enum DW_LINE_OPS): Reformat.
+	(enum DW_LINE_EXTENDED_OPS): Reformat.
+	(enum DW_CHILDREN): Reformat.
+	(enum DW_RLE): Add range list entry types.
+	(enum DW_SECT): Update values for DWARF 5.
+
+gold/
+	PR gold/27246
+	* dwarf_reader.cc (Dwarf_abbrev_table::do_get_abbrev): Handle
+	DW_FORM_implicit_const.
+	(Dwarf_ranges_table::read_ranges_table): Add version parameter;
+	Adjust all callers.  Look for .debug_rnglists section if DWARF 5.
+	(Dwarf_ranges_table::read_range_list_v5): New method.
+	(Dwarf_die::read_attributes): Handle new DWARF 5 DW_FORM codes.
+	(Dwarf_die::skip_attributes): Likewise.
+	(Dwarf_info_reader::do_parse): Support DWARF 5 unit header format.
+	(Dwarf_info_reader::read_3bytes_from_pointer): New method.
+	(Sized_dwarf_line_info::Sized_dwarf_line_info): Initialize
+	str_buffer_, str_buffer_start, reloc_map_, line_number_map_.
+	Look for .debug_line_str section.
+	(Sized_dwarf_line_info::read_header_prolog): Support DWARF 5 prolog.
+	(Sized_dwarf_line_info::read_header_tables): Rename to...
+	(Sized_dwarf_line_info::read_header_tables_v2): ... this.
+	(Sized_dwarf_line_info::read_header_tables_v5): New method.
+	(Sized_dwarf_line_info::process_one_opcode): Insert missing "this->".
+	Change advance_line to signed int64_t.
+	(Sized_dwarf_line_info::read_lines): Add endptr parameter; adjust
+	callers.  Insert missing "this->".
+	(Sized_dwarf_line_info::read_line_mappings): Support DWARF 5.
+	(Sized_dwarf_line_info::do_addr2line): Add debug code.
+	* dwarf_reader.h (Dwarf_abbrev_table::Attribute): Add implicit_const
+	field. Adjust constructor.
+	(Dwarf_abbrev_table::add_sttribute): Add implicit_const parameter.
+	(Dwarf_ranges_table::read_ranges_table): Add version parameter.
+	(Dwarf_ranges_table::read_range_list_v5): New method.
+	(Dwarf_die): Remove unused attr_off field.
+	(Dwarf_info_reader::Dwarf_info_reader): Initialize unit_type_ field.
+	(Dwarf_info_reader::is_type_unit): New method.
+	(Dwarf_info_reader::read_3bytes_from_pointer): New method.
+	(Dwarf_info_reader::read_range_list): Call read_range_list_v5 for
+	DWARF 5 range lists.
+	(Dwarf_info_reader::is_type_unit_): Remove.
+	(Dwarf_info_reader::unit_type_): New field.
+	(Sized_dwarf_line_info::~Sized_dwarf_line_info): Delete
+	str_buffer_start_.
+	(Sized_dwarf_line_info::read_header_tables): Rename to...
+	(Sized_dwarf_line_info::read_header_tables_v2): ... this.
+	(Sized_dwarf_line_info::read_header_tables_v5): New method.
+	(Sized_dwarf_line_info::read_lines): Add endptr parameter.
+	(Sized_dwarf_line_info::Dwarf_line_infoHeader): Add address_size field.
+	(Sized_dwarf_line_info::str_buffer_): New field.
+	(Sized_dwarf_line_info::str_buffer_end_): New field.
+	(Sized_dwarf_line_info::str_buffer_start_): New field.
+	(Sized_dwarf_line_info::end_of_header_length_): New field.
+	(Sized_dwarf_line_info::end_of_unit_): New field.
+
+Upstream-Status: Backport [5cde809b7b9 Add DWARF 5 support in gold.]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ elfcpp/dwarf.h       |  89 +++++--
+ gold/dwarf_reader.cc | 591 +++++++++++++++++++++++++++++++++++++------
+ gold/dwarf_reader.h  | 103 ++++++--
+ 3 files changed, 654 insertions(+), 129 deletions(-)
+
+diff --git a/elfcpp/dwarf.h b/elfcpp/dwarf.h
+index e24347f8481..c9a9e02369c 100644
+--- a/elfcpp/dwarf.h
++++ b/elfcpp/dwarf.h
+@@ -152,35 +152,48 @@ enum DW_EH_PE
+   DW_EH_PE_indirect = 0x80
+ };
+ 
++// Line number table content type codes.
++
++enum DW_LNCT
++{
++  DW_LNCT_path            = 0x1,
++  DW_LNCT_directory_index = 0x2,
++  DW_LNCT_timestamp       = 0x3,
++  DW_LNCT_size            = 0x4,
++  DW_LNCT_MD5             = 0x5,
++  DW_LNCT_lo_user         = 0x2000,
++  DW_LNCT_hi_user         = 0x3fff
++};
++
+ // Line number opcodes.
+ 
+ enum DW_LINE_OPS
+ {
+-  DW_LNS_extended_op = 0,
+-  DW_LNS_copy = 1,
+-  DW_LNS_advance_pc = 2,
+-  DW_LNS_advance_line = 3,
+-  DW_LNS_set_file = 4,
+-  DW_LNS_set_column = 5,
+-  DW_LNS_negate_stmt = 6,
+-  DW_LNS_set_basic_block = 7,
+-  DW_LNS_const_add_pc = 8,
+-  DW_LNS_fixed_advance_pc = 9,
++  DW_LNS_extended_op        = 0x00,
++  DW_LNS_copy               = 0x01,
++  DW_LNS_advance_pc         = 0x02,
++  DW_LNS_advance_line       = 0x03,
++  DW_LNS_set_file           = 0x04,
++  DW_LNS_set_column         = 0x05,
++  DW_LNS_negate_stmt        = 0x06,
++  DW_LNS_set_basic_block    = 0x07,
++  DW_LNS_const_add_pc       = 0x08,
++  DW_LNS_fixed_advance_pc   = 0x09,
+   // DWARF 3.
+-  DW_LNS_set_prologue_end = 10,
+-  DW_LNS_set_epilogue_begin = 11,
+-  DW_LNS_set_isa = 12
++  DW_LNS_set_prologue_end   = 0x0a,
++  DW_LNS_set_epilogue_begin = 0x0b,
++  DW_LNS_set_isa            = 0x0c
+ };
+ 
+ // Line number extended opcodes.
+ 
+ enum DW_LINE_EXTENDED_OPS
+ {
+-  DW_LNE_end_sequence = 1,
+-  DW_LNE_set_address = 2,
+-  DW_LNE_define_file = 3,
++  DW_LNE_end_sequence                = 0x01,
++  DW_LNE_set_address                 = 0x02,
++  DW_LNE_define_file                 = 0x03,
+   // DWARF4.
+-  DW_LNE_set_discriminator = 4,
++  DW_LNE_set_discriminator           = 0x04,
+   // HP extensions.
+   DW_LNE_HP_negate_is_UV_update      = 0x11,
+   DW_LNE_HP_push_context             = 0x12,
+@@ -191,13 +204,15 @@ enum DW_LINE_EXTENDED_OPS
+   DW_LNE_HP_negate_post_semantics    = 0x17,
+   DW_LNE_HP_negate_function_exit     = 0x18,
+   DW_LNE_HP_negate_front_end_logical = 0x19,
+-  DW_LNE_HP_define_proc              = 0x20
++  DW_LNE_HP_define_proc              = 0x20,
++  DW_LNE_lo_user                     = 0x80,
++  DW_LNE_hi_user                     = 0xff
+ };
+ 
+ enum DW_CHILDREN
+ {
+-  DW_CHILDREN_no		     =0x00,
+-  DW_CHILDREN_yes		     =0x01
++  DW_CHILDREN_no  = 0,
++  DW_CHILDREN_yes = 1
+ };
+ 
+ // Source language names and codes.
+@@ -247,20 +262,38 @@ enum DW_LANG
+   DW_LANG_HP_Assembler = 0x8007
+ };
+ 
++// Range list entry kinds in .debug_rnglists* section.
++
++enum DW_RLE
++{
++  DW_RLE_end_of_list   = 0x00,
++  DW_RLE_base_addressx = 0x01,
++  DW_RLE_startx_endx   = 0x02,
++  DW_RLE_startx_length = 0x03,
++  DW_RLE_offset_pair   = 0x04,
++  DW_RLE_base_address  = 0x05,
++  DW_RLE_start_end     = 0x06,
++  DW_RLE_start_length  = 0x07
++};
++
+ // DWARF section identifiers used in the package format.
+ // Extensions for Fission.  See http://gcc.gnu.org/wiki/DebugFissionDWP.
++// Added (with changes) in DWARF 5.
+ 
+ enum DW_SECT
+ {
+-  DW_SECT_INFO = 1,
+-  DW_SECT_TYPES = 2,
+-  DW_SECT_ABBREV = 3,
+-  DW_SECT_LINE = 4,
+-  DW_SECT_LOC = 5,
++  DW_SECT_INFO        = 1,
++  DW_SECT_ABBREV      = 3,
++  DW_SECT_LINE        = 4,
++  DW_SECT_LOCLISTS    = 5,
+   DW_SECT_STR_OFFSETS = 6,
+-  DW_SECT_MACINFO = 7,
+-  DW_SECT_MACRO = 8,
+-  DW_SECT_MAX = DW_SECT_MACRO,
++  DW_SECT_MACINFO     = 7,
++  DW_SECT_RNGLISTS    = 8,
++  DW_SECT_MAX = DW_SECT_RNGLISTS,
++  // These were used only for the experimental Fission support in DWARF 4.
++  DW_SECT_TYPES       = 2,
++  DW_SECT_LOC         = 5,
++  DW_SECT_MACRO       = 8
+ };
+ 
+ } // End namespace elfcpp.
+diff --git a/gold/dwarf_reader.cc b/gold/dwarf_reader.cc
+index f0e6b89bde2..83a0114ed39 100644
+--- a/gold/dwarf_reader.cc
++++ b/gold/dwarf_reader.cc
+@@ -26,6 +26,7 @@
+ #include <utility>
+ #include <vector>
+ 
++#include "debug.h"
+ #include "elfcpp_swap.h"
+ #include "dwarf.h"
+ #include "object.h"
+@@ -275,6 +276,14 @@ Dwarf_abbrev_table::do_get_abbrev(unsigned int code)
+ 	  uint64_t form = read_unsigned_LEB_128(this->buffer_pos_, &len);
+ 	  this->buffer_pos_ += len;
+ 
++	  // For DW_FORM_implicit_const, read the constant.
++	  int64_t implicit_const = 0;
++	  if (form == elfcpp::DW_FORM_implicit_const)
++	    {
++	      implicit_const = read_signed_LEB_128(this->buffer_pos_, &len);
++	      this->buffer_pos_ += len;
++	    }
++
+ 	  // A (0,0) pair terminates the list.
+ 	  if (attr == 0 && form == 0)
+ 	    break;
+@@ -282,7 +291,7 @@ Dwarf_abbrev_table::do_get_abbrev(unsigned int code)
+ 	  if (attr == elfcpp::DW_AT_sibling)
+ 	    entry->has_sibling_attribute = true;
+ 
+-	  entry->add_attribute(attr, form);
++	  entry->add_attribute(attr, form, implicit_const);
+ 	}
+ 
+       this->store_abbrev(nextcode, entry);
+@@ -302,8 +311,16 @@ Dwarf_ranges_table::read_ranges_table(
+     Relobj* object,
+     const unsigned char* symtab,
+     off_t symtab_size,
+-    unsigned int ranges_shndx)
++    unsigned int ranges_shndx,
++    unsigned int version)
+ {
++  const std::string section_name(version < 5
++				 ? ".debug_ranges"
++				 : ".debug_rnglists");
++  const std::string compressed_section_name(version < 5
++					    ? ".zdebug_ranges"
++					    : ".zdebug_rnglists");
++
+   // If we've already read this abbrev table, return immediately.
+   if (this->ranges_shndx_ > 0
+       && this->ranges_shndx_ == ranges_shndx)
+@@ -318,7 +335,7 @@ Dwarf_ranges_table::read_ranges_table(
+       for (unsigned int i = 1; i < object->shnum(); ++i)
+ 	{
+ 	  std::string name = object->section_name(i);
+-	  if (name == ".debug_ranges" || name == ".zdebug_ranges")
++	  if (name == section_name || name == compressed_section_name)
+ 	    {
+ 	      ranges_shndx = i;
+ 	      this->output_section_offset_ = object->output_section_offset(i);
+@@ -393,7 +410,7 @@ Dwarf_ranges_table::read_range_list(
+ {
+   Dwarf_range_list* ranges;
+ 
+-  if (!this->read_ranges_table(object, symtab, symtab_size, ranges_shndx))
++  if (!this->read_ranges_table(object, symtab, symtab_size, ranges_shndx, 4))
+     return NULL;
+ 
+   // Correct the offset.  For incremental update links, we have a
+@@ -459,6 +476,125 @@ Dwarf_ranges_table::read_range_list(
+   return ranges;
+ }
+ 
++// Read a DWARF 5 range list from section RANGES_SHNDX at offset RANGES_OFFSET.
++
++Dwarf_range_list*
++Dwarf_ranges_table::read_range_list_v5(
++    Relobj* object,
++    const unsigned char* symtab,
++    off_t symtab_size,
++    unsigned int addr_size,
++    unsigned int ranges_shndx,
++    off_t offset)
++{
++  Dwarf_range_list* ranges;
++
++  if (!this->read_ranges_table(object, symtab, symtab_size, ranges_shndx, 5))
++    return NULL;
++
++  ranges = new Dwarf_range_list();
++  off_t base = 0;
++  unsigned int shndx0 = 0;
++
++  // Correct the offset.  For incremental update links, we have a
++  // relocated offset that is relative to the output section, but
++  // here we need an offset relative to the input section.
++  offset -= this->output_section_offset_;
++
++  // Read the range list at OFFSET.
++  const unsigned char* prle = this->ranges_buffer_ + offset;
++  while (prle < this->ranges_buffer_end_)
++    {
++      off_t start;
++      off_t end;
++      unsigned int shndx1 = 0;
++      unsigned int shndx2 = 0;
++      size_t len;
++
++      // Read the entry type.
++      unsigned int rle_type = *prle++;
++      offset += 1;
++
++      if (rle_type == elfcpp::DW_RLE_end_of_list)
++	break;
++
++      switch (rle_type)
++	{
++	  case elfcpp::DW_RLE_base_address:
++	    if (addr_size == 4)
++	      base = this->dwinfo_->read_from_pointer<32>(prle);
++	    else
++	      base = this->dwinfo_->read_from_pointer<64>(prle);
++	    if (this->ranges_reloc_mapper_ != NULL)
++		shndx0 = this->lookup_reloc(offset, &base);
++	    prle += addr_size;
++	    offset += addr_size;
++	    break;
++
++	  case elfcpp::DW_RLE_offset_pair:
++	    start = read_unsigned_LEB_128(prle, &len);
++	    prle += len;
++	    offset += len;
++	    end = read_unsigned_LEB_128(prle, &len);
++	    prle += len;
++	    offset += len;
++	    if (shndx0 == 0 || object->is_section_included(shndx0))
++	      ranges->add(shndx0, base + start, base + end);
++	    break;
++
++	  case elfcpp::DW_RLE_start_end:
++	    if (addr_size == 4)
++	      {
++		start = this->dwinfo_->read_from_pointer<32>(prle);
++		end = this->dwinfo_->read_from_pointer<32>(prle + 4);
++	      }
++	    else
++	      {
++		start = this->dwinfo_->read_from_pointer<64>(prle);
++		end = this->dwinfo_->read_from_pointer<64>(prle + 8);
++	      }
++	    if (this->ranges_reloc_mapper_ != NULL)
++	      {
++		shndx1 = this->lookup_reloc(offset, &start);
++		shndx2 = this->lookup_reloc(offset + addr_size, &end);
++		if (shndx1 != shndx2)
++		  gold_warning(_("%s: DWARF info may be corrupt; offsets in a "
++				 "range list entry are in different sections"),
++			       object->name().c_str());
++	      }
++	    prle += addr_size * 2;
++	    offset += addr_size * 2;
++	    if (shndx1 == 0 || object->is_section_included(shndx1))
++	      ranges->add(shndx1, start, end);
++	    break;
++
++	  case elfcpp::DW_RLE_start_length:
++	    if (addr_size == 4)
++	      start = this->dwinfo_->read_from_pointer<32>(prle);
++	    else
++	      start = this->dwinfo_->read_from_pointer<64>(prle);
++	    if (this->ranges_reloc_mapper_ != NULL)
++	      shndx1 = this->lookup_reloc(offset, &start);
++	    prle += addr_size;
++	    offset += addr_size;
++	    end = start + read_unsigned_LEB_128(prle, &len);
++	    prle += len;
++	    offset += len;
++	    if (shndx1 == 0 || object->is_section_included(shndx1))
++	      ranges->add(shndx1, start, end);
++	    break;
++
++	  default:
++	    gold_warning(_("%s: DWARF range list contains "
++			   "unsupported entry type (%d)"),
++			 object->name().c_str(), rle_type);
++	    break;
++	}
++    }
++
++  return ranges;
++}
++
+ // Look for a relocation at offset OFF in the range table,
+ // and return the section index and offset of the target.
+ 
+@@ -709,7 +845,13 @@ Dwarf_die::read_attributes()
+ 	  case elfcpp::DW_FORM_flag_present:
+ 	    attr_value.val.intval = 1;
+ 	    break;
++	  case elfcpp::DW_FORM_implicit_const:
++	    attr_value.val.intval =
++		this->abbrev_code_->attributes[i].implicit_const;
++	    break;
+ 	  case elfcpp::DW_FORM_strp:
++	  case elfcpp::DW_FORM_strp_sup:
++	  case elfcpp::DW_FORM_line_strp:
+ 	    {
+ 	      off_t str_off;
+ 	      if (this->dwinfo_->offset_size() == 4)
+@@ -722,6 +864,26 @@ Dwarf_die::read_attributes()
+ 	      attr_value.val.refval = str_off;
+ 	      break;
+ 	    }
++	  case elfcpp::DW_FORM_strx:
++	  case elfcpp::DW_FORM_GNU_str_index:
++	    attr_value.val.uintval = read_unsigned_LEB_128(pattr, &len);
++	    pattr += len;
++	    break;
++	  case elfcpp::DW_FORM_strx1:
++	    attr_value.val.uintval = *pattr++;
++	    break;
++	  case elfcpp::DW_FORM_strx2:
++	    attr_value.val.uintval =
++		this->dwinfo_->read_from_pointer<16>(&pattr);
++	    break;
++	  case elfcpp::DW_FORM_strx3:
++	    attr_value.val.uintval =
++		this->dwinfo_->read_3bytes_from_pointer(&pattr);
++	    break;
++	  case elfcpp::DW_FORM_strx4:
++	    attr_value.val.uintval =
++		this->dwinfo_->read_from_pointer<32>(&pattr);
++	    break;
+ 	  case elfcpp::DW_FORM_sec_offset:
+ 	    {
+ 	      off_t sec_off;
+@@ -747,7 +909,6 @@ Dwarf_die::read_attributes()
+ 		  this->dwinfo_->lookup_reloc(attr_off, &sec_off);
+ 	      attr_value.aux.shndx = shndx;
+ 	      attr_value.val.refval = sec_off;
+-	      ref_form = true;
+ 	      break;
+ 	    }
+ 	  case elfcpp::DW_FORM_ref_addr:
+@@ -815,6 +976,7 @@ Dwarf_die::read_attributes()
+ 	      break;
+ 	    }
+ 	  case elfcpp::DW_FORM_ref4:
++	  case elfcpp::DW_FORM_ref_sup4:
+ 	    {
+ 	      off_t sec_off;
+ 	      sec_off = this->dwinfo_->read_from_pointer<32>(&pattr);
+@@ -835,11 +997,20 @@ Dwarf_die::read_attributes()
+ 	      attr_value.val.intval = sec_off;
+ 	      break;
+ 	    }
++	  case elfcpp::DW_FORM_data16:
++	    {
++	      // For now, treat this as a 16-byte block.
++	      attr_value.val.blockval = pattr;
++	      attr_value.aux.blocklen = 16;
++	      pattr += 16;
++	      break;
++	    }
+ 	  case elfcpp::DW_FORM_ref_sig8:
+ 	    attr_value.val.uintval =
+ 		this->dwinfo_->read_from_pointer<64>(&pattr);
+ 	    break;
+ 	  case elfcpp::DW_FORM_ref8:
++	  case elfcpp::DW_FORM_ref_sup8:
+ 	    {
+ 	      off_t sec_off;
+ 	      sec_off = this->dwinfo_->read_from_pointer<64>(&pattr);
+@@ -856,11 +1027,29 @@ Dwarf_die::read_attributes()
+ 	    pattr += len;
+ 	    break;
+ 	  case elfcpp::DW_FORM_udata:
++	    attr_value.val.uintval = read_unsigned_LEB_128(pattr, &len);
++	    pattr += len;
++	    break;
++	  case elfcpp::DW_FORM_addrx:
+ 	  case elfcpp::DW_FORM_GNU_addr_index:
+-	  case elfcpp::DW_FORM_GNU_str_index:
+ 	    attr_value.val.uintval = read_unsigned_LEB_128(pattr, &len);
+ 	    pattr += len;
+ 	    break;
++	  case elfcpp::DW_FORM_addrx1:
++	    attr_value.val.uintval = *pattr++;
++	    break;
++	  case elfcpp::DW_FORM_addrx2:
++	    attr_value.val.uintval =
++		this->dwinfo_->read_from_pointer<16>(&pattr);
++	    break;
++	  case elfcpp::DW_FORM_addrx3:
++	    attr_value.val.uintval =
++		this->dwinfo_->read_3bytes_from_pointer(&pattr);
++	    break;
++	  case elfcpp::DW_FORM_addrx4:
++	    attr_value.val.uintval =
++		this->dwinfo_->read_from_pointer<32>(&pattr);
++	    break;
+ 	  case elfcpp::DW_FORM_sdata:
+ 	    attr_value.val.intval = read_signed_LEB_128(pattr, &len);
+ 	    pattr += len;
+@@ -870,6 +1059,11 @@ Dwarf_die::read_attributes()
+ 	    len = strlen(attr_value.val.stringval);
+ 	    pattr += len + 1;
+ 	    break;
++	  case elfcpp::DW_FORM_loclistx:
++	  case elfcpp::DW_FORM_rnglistx:
++	    attr_value.val.uintval = read_unsigned_LEB_128(pattr, &len);
++	    pattr += len;
++	    break;
+ 	  default:
+ 	    return false;
+ 	}
+@@ -954,9 +1148,12 @@ Dwarf_die::skip_attributes()
+       switch(form)
+ 	{
+ 	  case elfcpp::DW_FORM_flag_present:
++	  case elfcpp::DW_FORM_implicit_const:
+ 	    break;
+ 	  case elfcpp::DW_FORM_strp:
+ 	  case elfcpp::DW_FORM_sec_offset:
++	  case elfcpp::DW_FORM_strp_sup:
++	  case elfcpp::DW_FORM_line_strp:
+ 	    pattr += this->dwinfo_->offset_size();
+ 	    break;
+ 	  case elfcpp::DW_FORM_addr:
+@@ -993,23 +1190,42 @@ Dwarf_die::skip_attributes()
+ 	  case elfcpp::DW_FORM_data1:
+ 	  case elfcpp::DW_FORM_ref1:
+ 	  case elfcpp::DW_FORM_flag:
++	  case elfcpp::DW_FORM_strx1:
++	  case elfcpp::DW_FORM_addrx1:
+ 	    pattr += 1;
+ 	    break;
+ 	  case elfcpp::DW_FORM_data2:
+ 	  case elfcpp::DW_FORM_ref2:
++	  case elfcpp::DW_FORM_strx2:
++	  case elfcpp::DW_FORM_addrx2:
+ 	    pattr += 2;
+ 	    break;
++	  case elfcpp::DW_FORM_strx3:
++	  case elfcpp::DW_FORM_addrx3:
++	    pattr += 3;
++	    break;
+ 	  case elfcpp::DW_FORM_data4:
+ 	  case elfcpp::DW_FORM_ref4:
++	  case elfcpp::DW_FORM_ref_sup4:
++	  case elfcpp::DW_FORM_strx4:
++	  case elfcpp::DW_FORM_addrx4:
+ 	    pattr += 4;
+ 	    break;
+ 	  case elfcpp::DW_FORM_data8:
+ 	  case elfcpp::DW_FORM_ref8:
+ 	  case elfcpp::DW_FORM_ref_sig8:
++	  case elfcpp::DW_FORM_ref_sup8:
+ 	    pattr += 8;
+ 	    break;
++	  case elfcpp::DW_FORM_data16:
++	    pattr += 16;
++	    break;
+ 	  case elfcpp::DW_FORM_ref_udata:
+ 	  case elfcpp::DW_FORM_udata:
++	  case elfcpp::DW_FORM_addrx:
++	  case elfcpp::DW_FORM_strx:
++	  case elfcpp::DW_FORM_loclistx:
++	  case elfcpp::DW_FORM_rnglistx:
+ 	  case elfcpp::DW_FORM_GNU_addr_index:
+ 	  case elfcpp::DW_FORM_GNU_str_index:
+ 	    read_unsigned_LEB_128(pattr, &len);
+@@ -1313,6 +1529,13 @@ Dwarf_info_reader::do_parse()
+ 	  elfcpp::Swap_unaligned<16, big_endian>::readval(pinfo);
+       pinfo += 2;
+ 
++      // DWARF 5: Read the unit type (1 byte) and address size (1 byte).
++      if (this->cu_version_ >= 5)
++	{
++	  this->unit_type_ = *pinfo++;
++	  this->address_size_ = *pinfo++;
++	}
++
+       // Read debug_abbrev_offset (4 or 8 bytes).
+       if (this->offset_size_ == 4)
+ 	abbrev_offset = elfcpp::Swap_unaligned<32, big_endian>::readval(pinfo);
+@@ -1333,13 +1556,14 @@ Dwarf_info_reader::do_parse()
+ 	}
+       pinfo += this->offset_size_;
+ 
+-      // Read address_size (1 byte).
+-      this->address_size_ = *pinfo++;
++      // DWARF 2-4: Read address_size (1 byte).
++      if (this->cu_version_ < 5)
++	this->address_size_ = *pinfo++;
+ 
+       // For type units, read the two extra fields.
+       uint64_t signature = 0;
+       off_t type_offset = 0;
+-      if (this->is_type_unit_)
++      if (this->is_type_unit())
+         {
+ 	  if (!this->check_buffer(pinfo + 8 + this->offset_size_))
+ 	    break;
+@@ -1369,7 +1593,7 @@ Dwarf_info_reader::do_parse()
+       if (root_die.tag() != 0)
+ 	{
+ 	  // Visit the CU or TU.
+-	  if (this->is_type_unit_)
++	  if (this->is_type_unit())
+ 	    this->visit_type_unit(section_offset + this->cu_offset_,
+ 				  cu_end - cu_start, type_offset, signature,
+ 				  &root_die);
+@@ -1460,6 +1684,19 @@ Dwarf_info_reader::read_from_pointer(const unsigned char** source)
+   return return_value;
+ }
+ 
++// Read a 3-byte integer.  Update SOURCE after read.
++inline typename elfcpp::Valtype_base<32>::Valtype
++Dwarf_info_reader::read_3bytes_from_pointer(const unsigned char** source)
++{
++  typename elfcpp::Valtype_base<32>::Valtype return_value;
++  if (this->object_->is_big_endian())
++    return_value = ((*source)[0] << 16) | ((*source)[1] << 8) | (*source)[2];
++  else
++    return_value = ((*source)[2] << 16) | ((*source)[1] << 8) | (*source)[0];
++  *source += 3;
++  return return_value;
++}
++
+ // Look for a relocation at offset ATTR_OFF in the dwarf info,
+ // and return the section index and offset of the target.
+ 
+@@ -1561,27 +1798,40 @@ Sized_dwarf_line_info<size, big_endian>::Sized_dwarf_line_info(
+     Object* object,
+     unsigned int read_shndx)
+   : data_valid_(false), buffer_(NULL), buffer_start_(NULL),
++    str_buffer_(NULL), str_buffer_start_(NULL),
+     reloc_mapper_(NULL), symtab_buffer_(NULL), directories_(), files_(),
+-    current_header_index_(-1)
++    current_header_index_(-1), reloc_map_(), line_number_map_()
+ {
+-  unsigned int debug_shndx;
++  unsigned int debug_line_shndx = 0;
++  unsigned int debug_line_str_shndx = 0;
+ 
+-  for (debug_shndx = 1; debug_shndx < object->shnum(); ++debug_shndx)
++  for (unsigned int i = 1; i < object->shnum(); ++i)
+     {
++      section_size_type buffer_size;
++      bool is_new = false;
++
+       // FIXME: do this more efficiently: section_name() isn't super-fast
+-      std::string name = object->section_name(debug_shndx);
++      std::string name = object->section_name(i);
+       if (name == ".debug_line" || name == ".zdebug_line")
+ 	{
+-	  section_size_type buffer_size;
+-	  bool is_new = false;
+-	  this->buffer_ = object->decompressed_section_contents(debug_shndx,
+-								&buffer_size,
+-								&is_new);
++	  this->buffer_ =
++	      object->decompressed_section_contents(i, &buffer_size, &is_new);
+ 	  if (is_new)
+ 	    this->buffer_start_ = this->buffer_;
+ 	  this->buffer_end_ = this->buffer_ + buffer_size;
+-	  break;
++	  debug_line_shndx = i;
++	}
++      else if (name == ".debug_line_str" || name == ".zdebug_line_str")
++	{
++	  this->str_buffer_ =
++	      object->decompressed_section_contents(i, &buffer_size, &is_new);
++	  if (is_new)
++	    this->str_buffer_start_ = this->str_buffer_;
++	  this->str_buffer_end_ = this->str_buffer_ + buffer_size;
++	  debug_line_str_shndx = i;
+ 	}
++      if (debug_line_shndx > 0 && debug_line_str_shndx > 0)
++        break;
+     }
+   if (this->buffer_ == NULL)
+     return;
+@@ -1594,7 +1844,7 @@ Sized_dwarf_line_info<size, big_endian>::Sized_dwarf_line_info(
+       unsigned int reloc_sh_type = object->section_type(i);
+       if ((reloc_sh_type == elfcpp::SHT_REL
+ 	   || reloc_sh_type == elfcpp::SHT_RELA)
+-	  && object->section_info(i) == debug_shndx)
++	  && object->section_info(i) == debug_line_shndx)
+ 	{
+ 	  reloc_shndx = i;
+ 	  this->track_relocs_type_ = reloc_sh_type;
+@@ -1640,65 +1890,80 @@ Sized_dwarf_line_info<size, big_endian>::read_header_prolog(
+   uint32_t initial_length = elfcpp::Swap_unaligned<32, big_endian>::readval(lineptr);
+   lineptr += 4;
+ 
+-  // In DWARF2/3, if the initial length is all 1 bits, then the offset
++  // In DWARF, if the initial length is all 1 bits, then the offset
+   // size is 8 and we need to read the next 8 bytes for the real length.
+   if (initial_length == 0xffffffff)
+     {
+-      header_.offset_size = 8;
++      this->header_.offset_size = 8;
+       initial_length = elfcpp::Swap_unaligned<64, big_endian>::readval(lineptr);
+       lineptr += 8;
+     }
+   else
+-    header_.offset_size = 4;
++    this->header_.offset_size = 4;
+ 
+-  header_.total_length = initial_length;
++  this->header_.total_length = initial_length;
+ 
+-  gold_assert(lineptr + header_.total_length <= buffer_end_);
++  this->end_of_unit_ = lineptr + initial_length;
++  gold_assert(this->end_of_unit_ <= buffer_end_);
+ 
+-  header_.version = elfcpp::Swap_unaligned<16, big_endian>::readval(lineptr);
++  this->header_.version =
++      elfcpp::Swap_unaligned<16, big_endian>::readval(lineptr);
+   lineptr += 2;
+ 
+-  // Skip address size and segment selector for DWARF5.
+-  if (header_.version >= 5)
+-    lineptr += 2;
++  // We can only read versions 2-5 of the DWARF line number table.
++  // For other versions, just skip the entire line number table.
++  if (this->header_.version < 2 || this->header_.version > 5)
++    return this->end_of_unit_;
+ 
+-  if (header_.offset_size == 4)
+-    header_.prologue_length = elfcpp::Swap_unaligned<32, big_endian>::readval(lineptr);
++  // DWARF 5 only: address size and segment selector.
++  if (this->header_.version >= 5)
++    {
++      this->header_.address_size = *lineptr;
++      // We ignore the segment selector.
++      lineptr += 2;
++    }
++
++  if (this->header_.offset_size == 4)
++    this->header_.prologue_length =
++	elfcpp::Swap_unaligned<32, big_endian>::readval(lineptr);
+   else
+-    header_.prologue_length = elfcpp::Swap_unaligned<64, big_endian>::readval(lineptr);
+-  lineptr += header_.offset_size;
++    this->header_.prologue_length =
++	elfcpp::Swap_unaligned<64, big_endian>::readval(lineptr);
++  lineptr += this->header_.offset_size;
+ 
+-  header_.min_insn_length = *lineptr;
++  this->end_of_header_length_ = lineptr;
++
++  this->header_.min_insn_length = *lineptr;
+   lineptr += 1;
+ 
+-  if (header_.version < 4)
+-    header_.max_ops_per_insn = 1;
++  if (this->header_.version < 4)
++    this->header_.max_ops_per_insn = 1;
+   else
+     {
+       // DWARF 4 added the maximum_operations_per_instruction field.
+-      header_.max_ops_per_insn = *lineptr;
++      this->header_.max_ops_per_insn = *lineptr;
+       lineptr += 1;
+       // TODO: Add support for values other than 1.
+-      gold_assert(header_.max_ops_per_insn == 1);
++      gold_assert(this->header_.max_ops_per_insn == 1);
+     }
+ 
+-  header_.default_is_stmt = *lineptr;
++  this->header_.default_is_stmt = *lineptr;
+   lineptr += 1;
+ 
+-  header_.line_base = *reinterpret_cast<const signed char*>(lineptr);
++  this->header_.line_base = *reinterpret_cast<const signed char*>(lineptr);
+   lineptr += 1;
+ 
+-  header_.line_range = *lineptr;
++  this->header_.line_range = *lineptr;
+   lineptr += 1;
+ 
+-  header_.opcode_base = *lineptr;
++  this->header_.opcode_base = *lineptr;
+   lineptr += 1;
+ 
+-  header_.std_opcode_lengths.resize(header_.opcode_base + 1);
+-  header_.std_opcode_lengths[0] = 0;
+-  for (int i = 1; i < header_.opcode_base; i++)
++  this->header_.std_opcode_lengths.resize(this->header_.opcode_base + 1);
++  this->header_.std_opcode_lengths[0] = 0;
++  for (int i = 1; i < this->header_.opcode_base; i++)
+     {
+-      header_.std_opcode_lengths[i] = *lineptr;
++      this->header_.std_opcode_lengths[i] = *lineptr;
+       lineptr += 1;
+     }
+ 
+@@ -1707,10 +1972,11 @@ Sized_dwarf_line_info<size, big_endian>::read_header_prolog(
+ 
+ // The header for a debug_line section is mildly complicated, because
+ // the line info is very tightly encoded.
++// This routine is for DWARF versions 2, 3, and 4.
+ 
+ template<int size, bool big_endian>
+ const unsigned char*
+-Sized_dwarf_line_info<size, big_endian>::read_header_tables(
++Sized_dwarf_line_info<size, big_endian>::read_header_tables_v2(
+     const unsigned char* lineptr)
+ {
+   ++this->current_header_index_;
+@@ -1775,6 +2041,169 @@ Sized_dwarf_line_info<size, big_endian>::read_header_tables(
+   return lineptr;
+ }
+ 
++// This routine is for DWARF version 5.
++
++template<int size, bool big_endian>
++const unsigned char*
++Sized_dwarf_line_info<size, big_endian>::read_header_tables_v5(
++    const unsigned char* lineptr)
++{
++  size_t len;
++
++  ++this->current_header_index_;
++
++  gold_assert(static_cast<int>(this->directories_.size())
++	      == this->current_header_index_);
++  gold_assert(static_cast<int>(this->files_.size())
++	      == this->current_header_index_);
++
++  // Read the directory list.
++  unsigned int format_count = *lineptr;
++  lineptr += 1;
++
++  unsigned int *types = new unsigned int[format_count];
++  unsigned int *forms = new unsigned int[format_count];
++
++  for (unsigned int i = 0; i < format_count; i++)
++    {
++      types[i] = read_unsigned_LEB_128(lineptr, &len);
++      lineptr += len;
++      forms[i] = read_unsigned_LEB_128(lineptr, &len);
++      lineptr += len;
++    }
++
++  uint64_t entry_count = read_unsigned_LEB_128(lineptr, &len);
++  lineptr += len;
++  this->directories_.push_back(std::vector<std::string>(0));
++  std::vector<std::string>& dir_list = this->directories_.back();
++
++  for (unsigned int j = 0; j < entry_count; j++)
++    {
++      std::string dirname;
++
++      for (unsigned int i = 0; i < format_count; i++)
++       {
++	 if (types[i] == elfcpp::DW_LNCT_path)
++	   {
++	     if (forms[i] == elfcpp::DW_FORM_string)
++	       {
++		 dirname = reinterpret_cast<const char*>(lineptr);
++		 lineptr += dirname.size() + 1;
++	       }
++	     else if (forms[i] == elfcpp::DW_FORM_line_strp)
++	       {
++		 uint64_t offset;
++		 if (this->header_.offset_size == 4)
++		   offset =
++		       elfcpp::Swap_unaligned<32, big_endian>::readval(lineptr);
++		 else
++		   offset =
++		       elfcpp::Swap_unaligned<64, big_endian>::readval(lineptr);
++		 typename Reloc_map::const_iterator it
++		     = this->reloc_map_.find(lineptr - this->buffer_);
++		 if (it != reloc_map_.end())
++		   {
++		     if (this->track_relocs_type_ == elfcpp::SHT_RELA)
++		       offset = 0;
++		     offset += it->second.second;
++		   }
++		 lineptr += this->header_.offset_size;
++		 dirname = reinterpret_cast<const char*>(this->str_buffer_
++							 + offset);
++	       }
++	     else
++	       return lineptr;
++	   }
++	 else
++	   return lineptr;
++       }
++      dir_list.push_back(dirname);
++    }
++
++  delete[] types;
++  delete[] forms;
++
++  // Read the filenames list.
++  format_count = *lineptr;
++  lineptr += 1;
++
++  types = new unsigned int[format_count];
++  forms = new unsigned int[format_count];
++
++  for (unsigned int i = 0; i < format_count; i++)
++    {
++      types[i] = read_unsigned_LEB_128(lineptr, &len);
++      lineptr += len;
++      forms[i] = read_unsigned_LEB_128(lineptr, &len);
++      lineptr += len;
++    }
++
++  entry_count = read_unsigned_LEB_128(lineptr, &len);
++  lineptr += len;
++  this->files_.push_back(
++      std::vector<std::pair<int, std::string> >(0));
++  std::vector<std::pair<int, std::string> >& file_list = this->files_.back();
++
++  for (unsigned int j = 0; j < entry_count; j++)
++    {
++      const char* path = NULL;
++      int dirindex = 0;
++
++      for (unsigned int i = 0; i < format_count; i++)
++       {
++	 if (types[i] == elfcpp::DW_LNCT_path)
++	   {
++	     if (forms[i] == elfcpp::DW_FORM_string)
++	       {
++		 path = reinterpret_cast<const char*>(lineptr);
++		 lineptr += strlen(path) + 1;
++	       }
++	     else if (forms[i] == elfcpp::DW_FORM_line_strp)
++	       {
++		 uint64_t offset;
++		 if (this->header_.offset_size == 4)
++		   offset = elfcpp::Swap_unaligned<32, big_endian>::readval(lineptr);
++		 else
++		   offset = elfcpp::Swap_unaligned<64, big_endian>::readval(lineptr);
++		 typename Reloc_map::const_iterator it
++		     = this->reloc_map_.find(lineptr - this->buffer_);
++		 if (it != reloc_map_.end())
++		   {
++		     if (this->track_relocs_type_ == elfcpp::SHT_RELA)
++		       offset = 0;
++		     offset += it->second.second;
++		   }
++		 lineptr += this->header_.offset_size;
++		 path = reinterpret_cast<const char*>(this->str_buffer_
++						      + offset);
++	       }
++	     else
++	       return lineptr;
++	   }
++	 else if (types[i] == elfcpp::DW_LNCT_directory_index)
++	   {
++	     if (forms[i] == elfcpp::DW_FORM_udata)
++	       {
++		 dirindex = read_unsigned_LEB_128(lineptr, &len);
++		 lineptr += len;
++	       }
++	     else
++	       return lineptr;
++	   }
++	 else
++	   return lineptr;
++       }
++      gold_debug(DEBUG_LOCATION, "File %3d: %s",
++		 static_cast<int>(file_list.size()), path);
++      file_list.push_back(std::make_pair(dirindex, path));
++    }
++
++  delete[] types;
++  delete[] forms;
++
++  return lineptr;
++}
++
+ // Process a single opcode in the .debug.line structure.
+ 
+ template<int size, bool big_endian>
+@@ -1790,15 +2219,15 @@ Sized_dwarf_line_info<size, big_endian>::process_one_opcode(
+ 
+   // If the opcode is great than the opcode_base, it is a special
+   // opcode. Most line programs consist mainly of special opcodes.
+-  if (opcode >= header_.opcode_base)
++  if (opcode >= this->header_.opcode_base)
+     {
+-      opcode -= header_.opcode_base;
+-      const int advance_address = ((opcode / header_.line_range)
+-                                   * header_.min_insn_length);
++      opcode -= this->header_.opcode_base;
++      const int advance_address = ((opcode / this->header_.line_range)
++                                   * this->header_.min_insn_length);
+       lsm->address += advance_address;
+ 
+-      const int advance_line = ((opcode % header_.line_range)
+-                                + header_.line_base);
++      const int advance_line = ((opcode % this->header_.line_range)
++                                + this->header_.line_base);
+       lsm->line_num += advance_line;
+       lsm->basic_block = true;
+       *len = oplen;
+@@ -1818,13 +2247,13 @@ Sized_dwarf_line_info<size, big_endian>::process_one_opcode(
+         const uint64_t advance_address
+             = read_unsigned_LEB_128(start, &templen);
+         oplen += templen;
+-        lsm->address += header_.min_insn_length * advance_address;
++        lsm->address += this->header_.min_insn_length * advance_address;
+       }
+       break;
+ 
+     case elfcpp::DW_LNS_advance_line:
+       {
+-        const uint64_t advance_line = read_signed_LEB_128(start, &templen);
++        const int64_t advance_line = read_signed_LEB_128(start, &templen);
+         oplen += templen;
+         lsm->line_num += advance_line;
+       }
+@@ -1865,9 +2294,9 @@ Sized_dwarf_line_info<size, big_endian>::process_one_opcode(
+ 
+     case elfcpp::DW_LNS_const_add_pc:
+       {
+-        const int advance_address = (header_.min_insn_length
+-                                     * ((255 - header_.opcode_base)
+-                                        / header_.line_range));
++        const int advance_address = (this->header_.min_insn_length
++                                     * ((255 - this->header_.opcode_base)
++                                        / this->header_.line_range));
+         lsm->address += advance_address;
+       }
+       break;
+@@ -1950,7 +2379,7 @@ Sized_dwarf_line_info<size, big_endian>::process_one_opcode(
+     default:
+       {
+         // Ignore unknown opcode  silently
+-        for (int i = 0; i < header_.std_opcode_lengths[opcode]; i++)
++        for (int i = 0; i < this->header_.std_opcode_lengths[opcode]; i++)
+           {
+             size_t templen;
+             read_unsigned_LEB_128(start, &templen);
+@@ -1970,28 +2399,24 @@ Sized_dwarf_line_info<size, big_endian>::process_one_opcode(
+ template<int size, bool big_endian>
+ unsigned const char*
+ Sized_dwarf_line_info<size, big_endian>::read_lines(unsigned const char* lineptr,
++                                                    unsigned const char* endptr,
+                                                     unsigned int shndx)
+ {
+   struct LineStateMachine lsm;
+ 
+-  // LENGTHSTART is the place the length field is based on.  It is the
+-  // point in the header after the initial length field.
+-  const unsigned char* lengthstart = buffer_;
+-
+-  // In 64 bit dwarf, the initial length is 12 bytes, because of the
+-  // 0xffffffff at the start.
+-  if (header_.offset_size == 8)
+-    lengthstart += 12;
+-  else
+-    lengthstart += 4;
+-
+-  while (lineptr < lengthstart + header_.total_length)
++  while (lineptr < endptr)
+     {
+-      ResetLineStateMachine(&lsm, header_.default_is_stmt);
++      ResetLineStateMachine(&lsm, this->header_.default_is_stmt);
+       while (!lsm.end_sequence)
+         {
+           size_t oplength;
++
++	  if (lineptr >= endptr)
++	    break;
++
+           bool add_line = this->process_one_opcode(lineptr, &lsm, &oplength);
++          lineptr += oplength;
++
+           if (add_line
+               && (shndx == -1U || lsm.shndx == -1U || shndx == lsm.shndx))
+             {
+@@ -2012,11 +2437,10 @@ Sized_dwarf_line_info<size, big_endian>::read_lines(unsigned const char* lineptr
+ 		map.back().last_line_for_offset = false;
+ 	      map.push_back(entry);
+             }
+-          lineptr += oplength;
+         }
+     }
+ 
+-  return lengthstart + header_.total_length;
++  return endptr;
+ }
+ 
+ // Read the relocations into a Reloc_map.
+@@ -2057,9 +2481,17 @@ Sized_dwarf_line_info<size, big_endian>::read_line_mappings(unsigned int shndx)
+     {
+       const unsigned char* lineptr = this->buffer_;
+       lineptr = this->read_header_prolog(lineptr);
+-      lineptr = this->read_header_tables(lineptr);
+-      lineptr = this->read_lines(lineptr, shndx);
+-      this->buffer_ = lineptr;
++      if (this->header_.version >= 2 && this->header_.version <= 4)
++	{
++	  lineptr = this->read_header_tables_v2(lineptr);
++	  lineptr = this->read_lines(lineptr, this->end_of_unit_, shndx);
++	}
++      else if (this->header_.version == 5)
++	{
++	  lineptr = this->read_header_tables_v5(lineptr);
++	  lineptr = this->read_lines(lineptr, this->end_of_unit_, shndx);
++	}
++      this->buffer_ = this->end_of_unit_;
+     }
+ 
+   // Sort the lines numbers, so addr2line can use binary search.
+@@ -2215,6 +2647,9 @@ Sized_dwarf_line_info<size, big_endian>::do_addr2line(
+     off_t offset,
+     std::vector<std::string>* other_lines)
+ {
++  gold_debug(DEBUG_LOCATION, "do_addr2line: shndx %u offset %08x",
++	     shndx, static_cast<int>(offset));
++
+   if (this->data_valid_ == false)
+     return "";
+ 
+diff --git a/gold/dwarf_reader.h b/gold/dwarf_reader.h
+index 80b2231327c..921a1f7c876 100644
+--- a/gold/dwarf_reader.h
++++ b/gold/dwarf_reader.h
+@@ -173,11 +173,12 @@ class Dwarf_abbrev_table
+   // An attribute list entry.
+   struct Attribute
+   {
+-    Attribute(unsigned int a, unsigned int f)
+-      : attr(a), form(f)
++    Attribute(unsigned int a, unsigned int f, int c)
++      : attr(a), form(f), implicit_const(c)
+     { }
+     unsigned int attr;
+     unsigned int form;
++    int implicit_const;
+   };
+ 
+   // An abbrev code entry.
+@@ -190,9 +191,9 @@ class Dwarf_abbrev_table
+     }
+ 
+     void
+-    add_attribute(unsigned int attr, unsigned int form)
++    add_attribute(unsigned int attr, unsigned int form, int implicit_const)
+     {
+-      this->attributes.push_back(Attribute(attr, form));
++      this->attributes.push_back(Attribute(attr, form, implicit_const));
+     }
+ 
+     // The DWARF tag.
+@@ -349,14 +350,15 @@ class Dwarf_ranges_table
+       delete this->ranges_reloc_mapper_;
+   }
+ 
+-  // Read the ranges table from an object file.
++  // Fetch the contents of the ranges table from an object file.
+   bool
+   read_ranges_table(Relobj* object,
+ 		    const unsigned char* symtab,
+ 		    off_t symtab_size,
+-		    unsigned int ranges_shndx);
++		    unsigned int ranges_shndx,
++		    unsigned int version);
+ 
+-  // Read the range table from an object file.
++  // Read the DWARF 2/3/4 range table.
+   Dwarf_range_list*
+   read_range_list(Relobj* object,
+ 		  const unsigned char* symtab,
+@@ -365,6 +367,15 @@ class Dwarf_ranges_table
+ 		  unsigned int ranges_shndx,
+ 		  off_t ranges_offset);
+ 
++  // Read the DWARF 5 rnglists table.
++  Dwarf_range_list*
++  read_range_list_v5(Relobj* object,
++		     const unsigned char* symtab,
++		     off_t symtab_size,
++		     unsigned int address_size,
++		     unsigned int ranges_shndx,
++		     off_t ranges_offset);
++
+   // Look for a relocation at offset OFF in the range table,
+   // and return the section index and offset of the target.
+   unsigned int
+@@ -490,8 +501,6 @@ class Dwarf_die
+       unsigned int shndx;
+       // Block length for block forms.
+       unsigned int blocklen;
+-      // Attribute offset for DW_FORM_strp.
+-      unsigned int attr_off;
+     } aux;
+   };
+ 
+@@ -684,6 +693,10 @@ class Dwarf_die
+ // calls the various visit_xxx() methods for each header.  Clients
+ // should derive a new class from this one and implement the
+ // visit_compilation_unit() and visit_type_unit() functions.
++// IS_TYPE_UNIT is true if we are reading from a .debug_types section,
++// which is used only in DWARF 4. For DWARF 5, it will be false,
++// and we will determine whether it's a type init when we parse the
++// header.
+ 
+ class Dwarf_info_reader
+ {
+@@ -695,7 +708,7 @@ class Dwarf_info_reader
+ 		    unsigned int shndx,
+ 		    unsigned int reloc_shndx,
+ 		    unsigned int reloc_type)
+-    : is_type_unit_(is_type_unit), object_(object), symtab_(symtab),
++    : object_(object), symtab_(symtab),
+       symtab_size_(symtab_size), shndx_(shndx), reloc_shndx_(reloc_shndx),
+       reloc_type_(reloc_type), abbrev_shndx_(0), string_shndx_(0),
+       buffer_(NULL), buffer_end_(NULL), cu_offset_(0), cu_length_(0),
+@@ -703,7 +716,12 @@ class Dwarf_info_reader
+       abbrev_table_(), ranges_table_(this),
+       reloc_mapper_(NULL), string_buffer_(NULL), string_buffer_end_(NULL),
+       owns_string_buffer_(false), string_output_section_offset_(0)
+-  { }
++  {
++    // For DWARF 4, we infer the unit type from the section name.
++    // For DWARF 5, we will read this from the unit header.
++    this->unit_type_ =
++	(is_type_unit ? elfcpp::DW_UT_type : elfcpp::DW_UT_compile);
++  }
+ 
+   virtual
+   ~Dwarf_info_reader()
+@@ -714,6 +732,13 @@ class Dwarf_info_reader
+       delete[] this->string_buffer_;
+   }
+ 
++  bool
++  is_type_unit() const
++  {
++    return (this->unit_type_ == elfcpp::DW_UT_type
++	    || this->unit_type_ == elfcpp::DW_UT_split_type);
++  }
++
+   // Begin parsing the debug info.  This calls visit_compilation_unit()
+   // or visit_type_unit() for each compilation or type unit found in the
+   // section, and visit_die() for each top-level DIE.
+@@ -745,6 +770,9 @@ class Dwarf_info_reader
+   inline typename elfcpp::Valtype_base<valsize>::Valtype
+   read_from_pointer(const unsigned char** source);
+ 
++  inline typename elfcpp::Valtype_base<32>::Valtype
++  read_3bytes_from_pointer(const unsigned char** source);
++
+   // Look for a relocation at offset ATTR_OFF in the dwarf info,
+   // and return the section index and offset of the target.
+   unsigned int
+@@ -818,12 +846,20 @@ class Dwarf_info_reader
+   Dwarf_range_list*
+   read_range_list(unsigned int ranges_shndx, off_t ranges_offset)
+   {
+-    return this->ranges_table_.read_range_list(this->object_,
+-					       this->symtab_,
+-					       this->symtab_size_,
+-					       this->address_size_,
+-					       ranges_shndx,
+-					       ranges_offset);
++    if (this->cu_version_ < 5)
++      return this->ranges_table_.read_range_list(this->object_,
++						 this->symtab_,
++						 this->symtab_size_,
++						 this->address_size_,
++						 ranges_shndx,
++						 ranges_offset);
++    else
++      return this->ranges_table_.read_range_list_v5(this->object_,
++						    this->symtab_,
++						    this->symtab_size_,
++						    this->address_size_,
++						    ranges_shndx,
++						    ranges_offset);
+   }
+ 
+   // Return the object.
+@@ -873,8 +909,8 @@ class Dwarf_info_reader
+   bool
+   do_read_string_table(unsigned int string_shndx);
+ 
+-  // True if this is a type unit; false for a compilation unit.
+-  bool is_type_unit_;
++  // The unit type (DW_UT_xxx).
++  unsigned int unit_type_;
+   // The object containing the .debug_info or .debug_types input section.
+   Relobj* object_;
+   // The ELF symbol table.
+@@ -1008,6 +1044,8 @@ class Sized_dwarf_line_info : public Dwarf_line_info
+   {
+     if (this->buffer_start_ != NULL)
+       delete[] this->buffer_start_;
++    if (this->str_buffer_start_ != NULL)
++      delete[] this->str_buffer_start_;
+   }
+ 
+  private:
+@@ -1030,19 +1068,23 @@ class Sized_dwarf_line_info : public Dwarf_line_info
+   void
+   read_relocs();
+ 
+-  // Reads the DWARF2/3 header for this line info.  Each takes as input
++  // Reads the DWARF header for this line info.  Each takes as input
+   // a starting buffer position, and returns the ending position.
+   const unsigned char*
+   read_header_prolog(const unsigned char* lineptr);
+ 
+   const unsigned char*
+-  read_header_tables(const unsigned char* lineptr);
++  read_header_tables_v2(const unsigned char* lineptr);
++
++  const unsigned char*
++  read_header_tables_v5(const unsigned char* lineptr);
+ 
+-  // Reads the DWARF2/3 line information.  If shndx is non-negative,
++  // Reads the DWARF line information.  If shndx is non-negative,
+   // discard all line information that doesn't pertain to the given
+   // section.
+   const unsigned char*
+-  read_lines(const unsigned char* lineptr, unsigned int shndx);
++  read_lines(const unsigned char* lineptr, const unsigned char* endptr,
++	     unsigned int shndx);
+ 
+   // Process a single line info opcode at START using the state
+   // machine at LSM.  Return true if we should define a line using the
+@@ -1069,6 +1111,7 @@ class Sized_dwarf_line_info : public Dwarf_line_info
+   {
+     off_t total_length;
+     int version;
++    int address_size;
+     off_t prologue_length;
+     int min_insn_length; // insn stands for instruction
+     int max_ops_per_insn; // Added in DWARF-4.
+@@ -1089,6 +1132,20 @@ class Sized_dwarf_line_info : public Dwarf_line_info
+   // of the buffer.
+   const unsigned char* buffer_start_;
+ 
++  // str_buffer is the buffer for the line table strings.
++  const unsigned char* str_buffer_;
++  const unsigned char* str_buffer_end_;
++  // If the buffer was allocated temporarily, and therefore must be
++  // deallocated in the dtor, this contains a pointer to the start
++  // of the buffer.
++  const unsigned char* str_buffer_start_;
++
++  // Pointer to the end of the header_length field (aka prologue_length).
++  const unsigned char* end_of_header_length_;
++
++  // Pointer to the end of the current compilation unit.
++  const unsigned char* end_of_unit_;
++
+   // This has relocations that point into buffer.
+   Sized_elf_reloc_mapper<size, big_endian>* reloc_mapper_;
+   // The type of the reloc section in track_relocs_--SHT_REL or SHT_RELA.
diff --git a/poky/meta/recipes-devtools/bison/bison_3.7.5.bb b/poky/meta/recipes-devtools/bison/bison_3.7.5.bb
deleted file mode 100644
index c8bbea4..0000000
--- a/poky/meta/recipes-devtools/bison/bison_3.7.5.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "GNU Project parser generator (yacc replacement)"
-DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \
-an LALR(1) or GLR parser for that grammar.  Bison is upward compatible with Yacc: all properly-written Yacc \
-grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \
-little trouble."
-HOMEPAGE = "http://www.gnu.org/software/bison/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SECTION = "devel"
-DEPENDS = "bison-native flex-native"
-
-SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
-           file://add-with-bisonlocaledir.patch \
-           file://0001-Use-mapped-file-name-for-symbols.patch \
-           "
-SRC_URI[sha256sum] = "e8c53bc5bc396d636622d0f25e31ca92fd53f00b09629f13ef540d564a6b31ab"
-
-# No point in hardcoding path to m4, just use PATH
-EXTRA_OECONF += "M4=m4"
-
-inherit autotools gettext texinfo
-
-# The automatic m4 path detection gets confused, so force the right value
-acpaths = "-I ./m4"
-
-do_compile_prepend() {
-	for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done
-}
-
-do_install_append_class-native() {
-	create_wrapper ${D}/${bindir}/bison \
-		BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison
-}
-do_install_append_class-nativesdk() {
-	create_wrapper ${D}/${bindir}/bison \
-		BISON_PKGDATADIR=${datadir}/bison
-}
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/bison/bison_3.7.6.bb b/poky/meta/recipes-devtools/bison/bison_3.7.6.bb
new file mode 100644
index 0000000..a8d57f2
--- /dev/null
+++ b/poky/meta/recipes-devtools/bison/bison_3.7.6.bb
@@ -0,0 +1,53 @@
+SUMMARY = "GNU Project parser generator (yacc replacement)"
+DESCRIPTION = "Bison is a general-purpose parser generator that converts an annotated context-free grammar into \
+an LALR(1) or GLR parser for that grammar.  Bison is upward compatible with Yacc: all properly-written Yacc \
+grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with \
+little trouble."
+HOMEPAGE = "http://www.gnu.org/software/bison/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+SECTION = "devel"
+DEPENDS = "bison-native flex-native"
+
+SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
+           file://add-with-bisonlocaledir.patch \
+           file://0001-Use-mapped-file-name-for-symbols.patch \
+           "
+SRC_URI[sha256sum] = "67d68ce1e22192050525643fc0a7a22297576682bef6a5c51446903f5aeef3cf"
+
+inherit autotools gettext texinfo
+
+# No point in hardcoding path to m4, just use PATH
+CACHED_CONFIGUREVARS = "ac_cv_path_M4=m4"
+
+PACKAGECONFIG ??= "readline ${@ 'textstyle' if d.getVar('USE_NLS') == 'yes' else ''}"
+PACKAGECONFIG_class-native ??= ""
+
+# Make readline and textstyle optional. There are recipie for these, but leave them
+# disabled for the native recipe. This prevents host contamination of the native tool.
+PACKAGECONFIG[readline] = "--with-libreadline-prefix,--without-libreadline-prefix,readline"
+PACKAGECONFIG[textstyle] = "--with-libtextstyle-prefix,--without-libtextstyle-prefix,gettext"
+
+# Include the cached configure variables, configure is really good at finding
+# libreadline, even if we don't want it.
+CACHED_CONFIGUREVARS += "${@bb.utils.contains('PACKAGECONFIG', 'readline', '', ' \
+                           ac_cv_header_readline_history_h=no \
+                           ac_cv_header_readline_readline_h=no \
+                           gl_cv_lib_readline=no', d)}"
+
+# The automatic m4 path detection gets confused, so force the right value
+acpaths = "-I ./m4"
+
+do_compile_prepend() {
+	for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done
+}
+
+do_install_append_class-native() {
+	create_wrapper ${D}/${bindir}/bison \
+		BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison
+}
+do_install_append_class-nativesdk() {
+	create_wrapper ${D}/${bindir}/bison \
+		BISON_PKGDATADIR=${datadir}/bison
+}
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.11.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.12.1.bb
similarity index 92%
rename from poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.11.1.bb
rename to poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.12.1.bb
index b5e0561..3fc959b 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.11.1.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.12.1.bb
@@ -7,10 +7,10 @@
 
 HOMEPAGE = "https://btrfs.wiki.kernel.org"
 
-LICENSE = "GPLv2 & LGPLv3+"
+LICENSE = "GPLv2 & LGPLv2.1+"
 LIC_FILES_CHKSUM = " \
     file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067 \
-    file://libbtrfsutil/COPYING.LESSER;md5=3000208d539ec061b899bce1d9ce9404 \
+    file://libbtrfsutil/COPYING;md5=4fbd65380cdd255951079008b364516c \
 "
 SECTION = "base"
 DEPENDS = "lzo util-linux zlib"
@@ -19,7 +19,7 @@
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
            file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
            "
-SRCREV = "8d5051f279f7994fb80536ef8f846f06d121d898"
+SRCREV = "96d77fcefdd3b9fd297b5aabbce6dc43e2315ee2"
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ??= " \
@@ -31,6 +31,7 @@
 PACKAGECONFIG[manpages] = "--enable-documentation, --disable-documentation, asciidoc-native xmlto-native"
 PACKAGECONFIG[programs] = "--enable-programs,--disable-programs"
 PACKAGECONFIG[convert] = "--enable-convert --with-convert=ext2,--disable-convert --without-convert,e2fsprogs"
+PACKAGECONFIG[zoned] = "--enable-zoned,--disable-zoned"
 PACKAGECONFIG[python] = "--enable-python,--disable-python,python3-setuptools-native"
 PACKAGECONFIG[zstd] = "--enable-zstd,--disable-zstd,zstd"
 
diff --git a/poky/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch b/poky/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch
deleted file mode 100644
index 51ca0e8..0000000
--- a/poky/meta/recipes-devtools/ccache/ccache/0001-doc-allow-disabling-docs-man-page-generation.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From aebabafe085dd1b84027a1e31e5566c82528bd62 Mon Sep 17 00:00:00 2001
-From: Bastian Krause <bst@pengutronix.de>
-Date: Tue, 4 May 2021 11:41:56 +0200
-Subject: [PATCH] doc: allow disabling docs/man page generation
-
-The assumption that HTML documentation and manual pages should be
-generated if the required tools (asciidoc) are present is not always
-true. So add a cmake option that allows disabling the docs/man page
-generation. The default is to generate docs/man pages like before.
-
-Origin: https://github.com/ccache/ccache/pull/844
-Upstream-Status: Submitted
-Signed-off-by: Bastian Krause <bst@pengutronix.de>
----
- doc/CMakeLists.txt | 128 +++++++++++++++++++++++----------------------
- 1 file changed, 66 insertions(+), 62 deletions(-)
-
-diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
-index c5ce224d..74b7831b 100644
---- a/doc/CMakeLists.txt
-+++ b/doc/CMakeLists.txt
-@@ -1,70 +1,74 @@
-+option(BUILD_DOCS "Indicates whether HTML documentation and manual pages should be built or not" ON)
-+
- find_program(ASCIIDOC_EXE asciidoc)
- mark_as_advanced(ASCIIDOC_EXE) # Don't show in CMake UIs
- 
--if(NOT ASCIIDOC_EXE)
--  message(WARNING "Could not find asciidoc; documentation will not be generated")
--else()
--  #
--  # HTML documentation
--  #
--  function(generate_html adoc_file)
--    get_filename_component(base_name "${adoc_file}" NAME_WE)
--    set(html_file "${base_name}.html")
--    add_custom_command(
--      OUTPUT "${html_file}"
--      COMMAND
--        ${ASCIIDOC_EXE}
--          -o "${html_file}"
--          -a revnumber="${CCACHE_VERSION}"
--          -a toc
--          -b xhtml11
--          "${CMAKE_SOURCE_DIR}/${adoc_file}"
--      MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/${adoc_file}"
--    )
--    set(html_files "${html_files}" "${html_file}" PARENT_SCOPE)
--  endfunction()
-+if (BUILD_DOCS)
-+  if(NOT ASCIIDOC_EXE)
-+    message(WARNING "Could not find asciidoc; documentation will not be generated")
-+  else()
-+    #
-+    # HTML documentation
-+    #
-+    function(generate_html adoc_file)
-+      get_filename_component(base_name "${adoc_file}" NAME_WE)
-+      set(html_file "${base_name}.html")
-+      add_custom_command(
-+        OUTPUT "${html_file}"
-+        COMMAND
-+          ${ASCIIDOC_EXE}
-+            -o "${html_file}"
-+            -a revnumber="${CCACHE_VERSION}"
-+            -a toc
-+            -b xhtml11
-+            "${CMAKE_SOURCE_DIR}/${adoc_file}"
-+        MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/${adoc_file}"
-+      )
-+      set(html_files "${html_files}" "${html_file}" PARENT_SCOPE)
-+    endfunction()
- 
--  generate_html(LICENSE.adoc)
--  generate_html(doc/AUTHORS.adoc)
--  generate_html(doc/MANUAL.adoc)
--  generate_html(doc/NEWS.adoc)
-+    generate_html(LICENSE.adoc)
-+    generate_html(doc/AUTHORS.adoc)
-+    generate_html(doc/MANUAL.adoc)
-+    generate_html(doc/NEWS.adoc)
- 
--  add_custom_target(doc-html DEPENDS "${html_files}")
--  set(doc_files "${html_files}")
-+    add_custom_target(doc-html DEPENDS "${html_files}")
-+    set(doc_files "${html_files}")
- 
--  #
--  # Man page
--  #
--  find_program(A2X_EXE a2x)
--  mark_as_advanced(A2X_EXE) # Don't show in CMake UIs
--  if(NOT A2X_EXE)
--    message(WARNING "Could not find a2x; man page will not be generated")
--  else()
--    # MANUAL.adoc -> MANUAL.xml -> man page
--    add_custom_command(
--      OUTPUT MANUAL.xml
--      COMMAND
--        ${ASCIIDOC_EXE}
--          -o -
--          -a revnumber=${CCACHE_VERSION}
--          -d manpage
--          -b docbook "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc"
--        | perl -pe 's!<literal>\(.*?\)</literal>!<emphasis role="strong">\\1</emphasis>!g'
--            >MANUAL.xml
--      MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc"
--    )
--    add_custom_command(
--      OUTPUT ccache.1
--      COMMAND ${A2X_EXE} --doctype manpage --format manpage MANUAL.xml
--      MAIN_DEPENDENCY MANUAL.xml
--    )
--    add_custom_target(doc-man-page DEPENDS ccache.1)
--    install(
--      FILES "${CMAKE_CURRENT_BINARY_DIR}/ccache.1"
--      DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
--    )
--    set(doc_files "${doc_files}" ccache.1)
--  endif()
-+    #
-+    # Man page
-+    #
-+    find_program(A2X_EXE a2x)
-+    mark_as_advanced(A2X_EXE) # Don't show in CMake UIs
-+    if(NOT A2X_EXE)
-+      message(WARNING "Could not find a2x; man page will not be generated")
-+    else()
-+      # MANUAL.adoc -> MANUAL.xml -> man page
-+      add_custom_command(
-+        OUTPUT MANUAL.xml
-+        COMMAND
-+          ${ASCIIDOC_EXE}
-+            -o -
-+            -a revnumber=${CCACHE_VERSION}
-+            -d manpage
-+            -b docbook "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc"
-+          | perl -pe 's!<literal>\(.*?\)</literal>!<emphasis role="strong">\\1</emphasis>!g'
-+              >MANUAL.xml
-+        MAIN_DEPENDENCY "${CMAKE_SOURCE_DIR}/doc/MANUAL.adoc"
-+      )
-+      add_custom_command(
-+        OUTPUT ccache.1
-+        COMMAND ${A2X_EXE} --doctype manpage --format manpage MANUAL.xml
-+        MAIN_DEPENDENCY MANUAL.xml
-+      )
-+      add_custom_target(doc-man-page DEPENDS ccache.1)
-+      install(
-+        FILES "${CMAKE_CURRENT_BINARY_DIR}/ccache.1"
-+        DESTINATION "${CMAKE_INSTALL_MANDIR}/man1"
-+      )
-+      set(doc_files "${doc_files}" ccache.1)
-+    endif()
- 
--  add_custom_target(doc ALL DEPENDS "${doc_files}")
-+    add_custom_target(doc ALL DEPENDS "${doc_files}")
-+  endif()
- endif()
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.2.1.bb b/poky/meta/recipes-devtools/ccache/ccache_4.3.bb
similarity index 72%
rename from poky/meta/recipes-devtools/ccache/ccache_4.2.1.bb
rename to poky/meta/recipes-devtools/ccache/ccache_4.3.bb
index 8dd5893..53a0bcf 100644
--- a/poky/meta/recipes-devtools/ccache/ccache_4.2.1.bb
+++ b/poky/meta/recipes-devtools/ccache/ccache_4.3.bb
@@ -11,10 +11,8 @@
 
 DEPENDS = "zstd"
 
-SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz \
-           file://0001-doc-allow-disabling-docs-man-page-generation.patch \
-	   "
-SRC_URI[sha256sum] = "320d2b17d2f76393e5d4bb28c8dee5ca783248e9cd23dff0654694d60f8a4b62"
+SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "b9789c42e52c73e99428f311a34def9ffec3462736439afd12dbacc7987c1533"
 
 UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/"
 
@@ -24,4 +22,4 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-PACKAGECONFIG[docs] = "-DBUILD_DOCS=ON,-DBUILD_DOCS=OFF,asciidoc"
+PACKAGECONFIG[docs] = "-DENABLE_DOCUMENTATION=ON,-DENABLE_DOCUMENTATION=OFF,asciidoc"
diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.19.5.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.20.2.bb
similarity index 97%
rename from poky/meta/recipes-devtools/cmake/cmake-native_3.19.5.bb
rename to poky/meta/recipes-devtools/cmake/cmake-native_3.20.2.bb
index d91e42e..335097d 100644
--- a/poky/meta/recipes-devtools/cmake/cmake-native_3.19.5.bb
+++ b/poky/meta/recipes-devtools/cmake/cmake-native_3.20.2.bb
@@ -1,7 +1,7 @@
 require cmake.inc
 inherit native
 
-DEPENDS += "bzip2-replacement-native xz-native zlib-native curl-native ncurses-native"
+DEPENDS += "bzip2-replacement-native xz-native zlib-native curl-native ncurses-native zstd-native"
 
 SRC_URI += "file://OEToolchainConfig.cmake \
             file://environment.d-cmake.sh \
diff --git a/poky/meta/recipes-devtools/cmake/cmake.inc b/poky/meta/recipes-devtools/cmake/cmake.inc
index e0f59a6..be43760 100644
--- a/poky/meta/recipes-devtools/cmake/cmake.inc
+++ b/poky/meta/recipes-devtools/cmake/cmake.inc
@@ -10,19 +10,18 @@
 BUGTRACKER = "http://public.kitware.com/Bug/my_view_page.php"
 SECTION = "console/utils"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://Copyright.txt;md5=c721f56fce89ba2eadc2fdd8ba1f4d83 \
+LIC_FILES_CHKSUM = "file://Copyright.txt;md5=31023e1d3f51ca90a58f55bcee8e2339 \
                     file://Source/cmake.h;beginline=1;endline=2;md5=a5f70e1fef8614734eae0d62b4f5891b \
                     "
 
 CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
 
 SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \
-           file://0002-cmake-Prevent-the-detection-of-Qt5.patch \
            file://0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch \
            file://0004-Fail-silently-if-system-Qt-installation-is-broken.patch \
 "
 
-SRC_URI[sha256sum] = "c432296eb5dec6d71eae15d140f6297d63df44e9ffe3e453628d1dc8fc4201ce"
+SRC_URI[sha256sum] = "aecf6ecb975179eb3bb6a4a50cae192d41e92b9372b02300f9e8f1d5f559544e"
 
 UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch b/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
index 8181510..9609f5f 100644
--- a/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
+++ b/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
@@ -1,4 +1,4 @@
-From 66d5b27dc37ef6243f6549e16d0285ba6c064a6e Mon Sep 17 00:00:00 2001
+From e75f76b00cc9c1cfc231c5e731e975552f5dd13e Mon Sep 17 00:00:00 2001
 From: Cody P Schafer <dev@codyps.com>
 Date: Thu, 27 Apr 2017 11:35:05 -0400
 Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default
@@ -25,7 +25,7 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake
-index bae270d..5bb6bc0 100644
+index bae270de..5bb6bc0d 100644
 --- a/Modules/CMakeDetermineSystem.cmake
 +++ b/Modules/CMakeDetermineSystem.cmake
 @@ -111,6 +111,13 @@ else()
diff --git a/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch b/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch
deleted file mode 100644
index 33db07c..0000000
--- a/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 98abade8cc119e076e4c5f1461c5188f6d49c1d8 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Wed, 17 Jan 2018 10:02:14 -0200
-Subject: [PATCH] cmake: Prevent the detection of Qt5
-
-Organization: O.S. Systems Software LTDA.
-
-CMake doesn't have dependency on qt4/qt5, so these tests usually fail
-but still can cause undeterministic results or build failures (when
-OE_QMAKE_PATH_EXTERNAL_HOST_BINS is undefined or native qmake removed
-while running the test in cmake)
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-
----
- Source/QtDialog/CMakeLists.txt                     | 2 +-
- Tests/CMakeLists.txt                               | 2 +-
- Tests/Qt4And5Automoc/CMakeLists.txt                | 4 ++--
- Tests/QtAutogen/AutogenGuiTest.cmake               | 3 +--
- Tests/QtAutogen/MacOsFW/CMakeLists.txt             | 2 +-
- Tests/RunCMake/CMakeLists.txt                      | 2 +-
- Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake | 2 +-
- 7 files changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt
-index 452a303..d0a9fb4 100644
---- a/Source/QtDialog/CMakeLists.txt
-+++ b/Source/QtDialog/CMakeLists.txt
-@@ -3,7 +3,7 @@
- 
- project(QtDialog)
- CMake_OPTIONAL_COMPONENT(cmake-gui)
--find_package(Qt5Widgets REQUIRED)
-+#find_package(Qt5Widgets REQUIRED)
- 
- set(CMake_QT_EXTRA_LIBRARIES)
- 
-diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
-index 1fb47cb..e022229 100644
---- a/Tests/CMakeLists.txt
-+++ b/Tests/CMakeLists.txt
-@@ -251,7 +251,7 @@ if(BUILD_TESTING)
-     set(CMake_TEST_Qt5 1)
-   endif()
-   if(CMake_TEST_Qt5)
--    find_package(Qt5Widgets QUIET NO_MODULE)
-+    #find_package(Qt5Widgets QUIET NO_MODULE)
-   endif()
- 
-   if(NOT CMake_TEST_EXTERNAL_CMAKE)
-diff --git a/Tests/Qt4And5Automoc/CMakeLists.txt b/Tests/Qt4And5Automoc/CMakeLists.txt
-index ad74961..a9dd74b 100644
---- a/Tests/Qt4And5Automoc/CMakeLists.txt
-+++ b/Tests/Qt4And5Automoc/CMakeLists.txt
-@@ -3,11 +3,11 @@ cmake_minimum_required(VERSION 2.8.12)
- project(Qt4And5Automoc)
- 
- if (QT_REVERSE_FIND_ORDER)
--  find_package(Qt5Core REQUIRED)
-+  #find_package(Qt5Core REQUIRED)
-   find_package(Qt4 REQUIRED)
- else()
-   find_package(Qt4 REQUIRED)
--  find_package(Qt5Core REQUIRED)
-+  #find_package(Qt5Core REQUIRED)
- endif()
- 
- set(CMAKE_AUTOMOC ON)
-diff --git a/Tests/QtAutogen/AutogenGuiTest.cmake b/Tests/QtAutogen/AutogenGuiTest.cmake
-index b76d341..a6e0acb 100644
---- a/Tests/QtAutogen/AutogenGuiTest.cmake
-+++ b/Tests/QtAutogen/AutogenGuiTest.cmake
-@@ -22,8 +22,7 @@ if (QT_TEST_VERSION EQUAL 4)
-   endmacro()
- 
- elseif(QT_TEST_VERSION EQUAL 5)
--
--  find_package(Qt5Widgets REQUIRED)
-+  #find_package(Qt5Widgets REQUIRED)
- 
-   set(QT_QTCORE_TARGET Qt5::Core)
-   set(QT_LIBRARIES Qt5::Widgets)
-diff --git a/Tests/QtAutogen/MacOsFW/CMakeLists.txt b/Tests/QtAutogen/MacOsFW/CMakeLists.txt
-index c08efc4..87e25d9 100644
---- a/Tests/QtAutogen/MacOsFW/CMakeLists.txt
-+++ b/Tests/QtAutogen/MacOsFW/CMakeLists.txt
-@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.10)
- project(MacOsFW)
- include("../AutogenGuiTest.cmake")
- 
--find_package(Qt5Test REQUIRED)
-+#find_package(Qt5Test REQUIRED)
- 
- set(CMAKE_CXX_STANDARD 11)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output/bin)
-diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
-index 370dd76..6bacbff 100644
---- a/Tests/RunCMake/CMakeLists.txt
-+++ b/Tests/RunCMake/CMakeLists.txt
-@@ -473,7 +473,7 @@ if(NOT WIN32)
- endif ()
- 
- find_package(Qt4 QUIET)
--find_package(Qt5Core QUIET)
-+#find_package(Qt5Core QUIET)
- if (QT4_FOUND AND Qt5Core_FOUND AND NOT Qt5Core_VERSION VERSION_LESS 5.1.0)
-   add_RunCMake_test(IncompatibleQt)
- endif()
-diff --git a/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake b/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake
-index 4fccdc4..b76e1e5 100644
---- a/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake
-+++ b/Tests/RunCMake/IncompatibleQt/IncompatibleQt.cmake
-@@ -1,6 +1,6 @@
- 
- find_package(Qt4 REQUIRED)
--find_package(Qt5Core REQUIRED)
-+#find_package(Qt5Core REQUIRED)
- 
- add_executable(mainexe main.cpp)
- target_link_libraries(mainexe Qt4::QtCore Qt5::Core)
diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.19.5.bb b/poky/meta/recipes-devtools/cmake/cmake_3.20.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cmake/cmake_3.19.5.bb
rename to poky/meta/recipes-devtools/cmake/cmake_3.20.2.bb
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
index d675af4..4b84457 100644
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch
@@ -1,4 +1,4 @@
-From 218a4760945be7a404df6515ffbc769c92791f9b Mon Sep 17 00:00:00 2001
+From 6f8f6d151b831b60f6e7892aa9294a6361353c72 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 30 Dec 2016 18:31:02 +0200
 Subject: [PATCH] Do not set PYTHON_INSTALL_DIR by running python
@@ -11,11 +11,11 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt
-index 855127f..dff1d97 100644
+index ecc262d..a86514c 100644
 --- a/src/python/CMakeLists.txt
 +++ b/src/python/CMakeLists.txt
 @@ -14,7 +14,7 @@ if (NOT SKBUILD)
-     FIND_PACKAGE(PythonInterp 3 EXACT REQUIRED)
+     FIND_PACKAGE(PythonLibs 3 REQUIRED)
  endif (NOT SKBUILD)
  
 -EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -c "from sys import stdout; from distutils import sysconfig; stdout.write(sysconfig.get_python_lib(True))" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.0.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.2.bb
similarity index 96%
rename from poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.0.bb
rename to poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.2.bb
index e043380..76bdd69 100644
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.0.bb
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.17.2.bb
@@ -8,7 +8,7 @@
            file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
            "
 
-SRCREV = "909a0636665ed96f97babc3b887f9badc88875c3"
+SRCREV = "8eff6ed99f5fd0ba844cb8513963435caab5fd3c"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb b/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb
index 0a007bb..ce242c3 100644
--- a/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb
+++ b/poky/meta/recipes-devtools/dejagnu/dejagnu_1.6.2.bb
@@ -7,6 +7,7 @@
 SECTION = "devel"
 
 DEPENDS += "expect-native"
+RDEPENDS_${PN} = "expect"
 
 inherit autotools
 
diff --git a/poky/meta/recipes-devtools/distcc/distcc_3.3.5.bb b/poky/meta/recipes-devtools/distcc/distcc_3.4.bb
similarity index 97%
rename from poky/meta/recipes-devtools/distcc/distcc_3.3.5.bb
rename to poky/meta/recipes-devtools/distcc/distcc_3.4.bb
index 5c26441..3bab6d5 100644
--- a/poky/meta/recipes-devtools/distcc/distcc_3.3.5.bb
+++ b/poky/meta/recipes-devtools/distcc/distcc_3.4.bb
@@ -20,7 +20,7 @@
            file://distcc \
            file://distcc.service \
            "
-SRCREV = "8572e2a1af39e69b2a2d74622fed6d2dd7dca9b7"
+SRCREV = "50d821efe99cae82c05be0a4ab3b4035ef0d3883"
 S = "${WORKDIR}/git"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-rpm-miscutils.py-fix-usage-of-_.patch b/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-rpm-miscutils.py-fix-usage-of-_.patch
new file mode 100644
index 0000000..99afe09
--- /dev/null
+++ b/poky/meta/recipes-devtools/dnf/dnf/0001-dnf-rpm-miscutils.py-fix-usage-of-_.patch
@@ -0,0 +1,39 @@
+From 2729c00f0060beab8537a9bebc796b170949093d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 4 May 2021 22:03:30 +0200
+Subject: [PATCH 1/2] dnf/rpm/miscutils.py: fix usage of _()
+
+Specifically:
+- an import of _ was missing
+- _ was reused for a different purpose
+
+Upstream-Status: Submitted [https://github.com/rpm-software-management/dnf/pull/1762]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ dnf/rpm/miscutils.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
+index 235aaf28f..7e33d4c42 100644
+--- a/dnf/rpm/miscutils.py
++++ b/dnf/rpm/miscutils.py
+@@ -22,6 +22,7 @@ import subprocess
+ import logging
+ 
+ from dnf.i18n import ucd
++from dnf.i18n import _
+ from shutil import which
+ 
+ 
+@@ -46,7 +47,7 @@ def _verifyPkgUsingRpmkeys(package, installroot):
+             env={'LC_ALL': 'C'},
+             stdout=subprocess.PIPE,
+             cwd='/') as p:
+-        data, _ = p.communicate()
++        data, err = p.communicate()
+     if p.returncode != 0 or data != (package.encode('ascii', 'strict') + b': digests signatures OK\n'):
+         return 0
+     else:
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-devtools/dnf/dnf/0002-dnf-rpm-miscutils.py-do-not-hardcode-usr-bin-rpmkeys.patch b/poky/meta/recipes-devtools/dnf/dnf/0002-dnf-rpm-miscutils.py-do-not-hardcode-usr-bin-rpmkeys.patch
new file mode 100644
index 0000000..b4c9e07
--- /dev/null
+++ b/poky/meta/recipes-devtools/dnf/dnf/0002-dnf-rpm-miscutils.py-do-not-hardcode-usr-bin-rpmkeys.patch
@@ -0,0 +1,37 @@
+From dc14022a99dc017c52c484efb32729729baf854c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 4 May 2021 22:07:32 +0200
+Subject: [PATCH 2/2] dnf/rpm/miscutils.py: do not hardcode /usr/bin/rpmkeys
+
+Some build systems (e.g. Yocto) place a specially configured
+rpmkeys executable elsewhere and set up PATH accordingly;
+it's better to always take it from there.
+
+Upstream-Status: Submitted [https://github.com/rpm-software-management/dnf/pull/1763]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ dnf/rpm/miscutils.py | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/dnf/rpm/miscutils.py b/dnf/rpm/miscutils.py
+index 7e33d4c42..fcd956db9 100644
+--- a/dnf/rpm/miscutils.py
++++ b/dnf/rpm/miscutils.py
+@@ -30,11 +30,9 @@ logger = logging.getLogger('dnf')
+ 
+ 
+ def _verifyPkgUsingRpmkeys(package, installroot):
+-    rpmkeys_binary = '/usr/bin/rpmkeys'
+-    if not os.path.isfile(rpmkeys_binary):
+-        rpmkeys_binary = which("rpmkeys")
+-        logger.info(_('Using rpmkeys executable from {path} to verify signature for package: {package}.').format(
+-            path=rpmkeys_binary, package=package))
++    rpmkeys_binary = which("rpmkeys")
++    logger.info(_('Using rpmkeys executable from {path} to verify signature for package: {package}.').format(
++        path=rpmkeys_binary, package=package))
+ 
+     if not os.path.isfile(rpmkeys_binary):
+         logger.critical(_('Cannot find rpmkeys executable to verify signatures.'))
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.6.0.bb b/poky/meta/recipes-devtools/dnf/dnf_4.7.0.bb
similarity index 94%
rename from poky/meta/recipes-devtools/dnf/dnf_4.6.0.bb
rename to poky/meta/recipes-devtools/dnf/dnf_4.7.0.bb
index 6651e64..7314eaf 100644
--- a/poky/meta/recipes-devtools/dnf/dnf_4.6.0.bb
+++ b/poky/meta/recipes-devtools/dnf/dnf_4.7.0.bb
@@ -16,9 +16,11 @@
            file://0030-Run-python-scripts-using-env.patch \
            file://0001-set-python-path-for-completion_helper.patch \
            file://0001-dnf-write-the-log-lock-to-root.patch \
+           file://0001-dnf-rpm-miscutils.py-fix-usage-of-_.patch \
+           file://0002-dnf-rpm-miscutils.py-do-not-hardcode-usr-bin-rpmkeys.patch \
            "
 
-SRCREV = "c826d7db401ebf9b59b2fa74570a919e4af2673e"
+SRCREV = "395541fbf8f87f81cdca7567f22be1182e55bea7"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.7.1.bb b/poky/meta/recipes-devtools/dpkg/dpkg_1.20.9.bb
similarity index 93%
rename from poky/meta/recipes-devtools/dpkg/dpkg_1.20.7.1.bb
rename to poky/meta/recipes-devtools/dpkg/dpkg_1.20.9.bb
index 55ac84f..60ae3ff 100644
--- a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.7.1.bb
+++ b/poky/meta/recipes-devtools/dpkg/dpkg_1.20.9.bb
@@ -1,7 +1,7 @@
 require dpkg.inc
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-SRC_URI = "git://salsa.debian.org/dpkg-team/dpkg.git;protocol=https;branch=sid \
+SRC_URI = "git://salsa.debian.org/dpkg-team/dpkg.git;protocol=https;branch=1.20.x \
            file://noman.patch \
            file://remove-tar-no-timestamp.patch \
            file://arch_pm.patch \
@@ -19,6 +19,6 @@
 
 SRC_URI_append_class-native = " file://0001-build.c-ignore-return-of-1-from-tar-cf.patch"
 
-SRCREV = "667bf0aeb92e0e7bb225ee273569c5e2389083bd"
+SRCREV = "2177b782b16e77e97c9643961a5ae3c639bcc4a3"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-lib-ext2fs-unix_io.c-do-unlock-on-error.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-lib-ext2fs-unix_io.c-do-unlock-on-error.patch
new file mode 100644
index 0000000..26f972b
--- /dev/null
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-lib-ext2fs-unix_io.c-do-unlock-on-error.patch
@@ -0,0 +1,24 @@
+From 42ba67f9a51ef959e7fd8dac29b5398c121c6976 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 30 Apr 2021 23:45:56 +0200
+Subject: [PATCH] lib/ext2fs/unix_io.c: do unlock on error
+
+Upstream-Status: Submitted [https://github.com/tytso/e2fsprogs/pull/68]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ lib/ext2fs/unix_io.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c
+index 64eee342..528c2fbc 100644
+--- a/lib/ext2fs/unix_io.c
++++ b/lib/ext2fs/unix_io.c
+@@ -398,7 +398,7 @@ static errcode_t raw_write_blk(io_channel channel,
+ 		mutex_lock(data, BOUNCE_MTX);
+ 		if (ext2fs_llseek(data->dev, location, SEEK_SET) < 0) {
+ 			retval = errno ? errno : EXT2_ET_LLSEEK_FAILED;
+-			goto error_out;
++			goto error_unlock;
+ 		}
+ 		actual = write(data->dev, buf, size);
+ 		mutex_unlock(data, BOUNCE_MTX);
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-lib-ext2fs-unix_io.c-revert-parts-of-libext2fs-fix-p.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-lib-ext2fs-unix_io.c-revert-parts-of-libext2fs-fix-p.patch
new file mode 100644
index 0000000..2452f7e
--- /dev/null
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-lib-ext2fs-unix_io.c-revert-parts-of-libext2fs-fix-p.patch
@@ -0,0 +1,48 @@
+From 3593063f735f453d43f461292e26913436c11ca3 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sat, 1 May 2021 13:06:12 +0200
+Subject: [PATCH] lib/ext2fs/unix_io.c: revert parts of "libext2fs: fix
+ potential races in unix_io"
+
+Upstream-Status: Submitted [https://github.com/tytso/e2fsprogs/pull/68]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ lib/ext2fs/unix_io.c | 15 ++++++++-------
+ 1 file changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c
+index 528c2fbc..f4916b21 100644
+--- a/lib/ext2fs/unix_io.c
++++ b/lib/ext2fs/unix_io.c
+@@ -311,10 +311,10 @@ bounce_read:
+ 			size += really_read;
+ 			goto short_read;
+ 		}
+-		actual = size;
+-		if (actual > align_size)
+-			actual = align_size;
+-		actual -= offset;
++		if ((actual + offset) > align_size)
++			actual = align_size - offset;
++		if (actual > size)
++			actual = size;
+ 		memcpy(buf, data->bounce + offset, actual);
+ 
+ 		really_read += actual;
+@@ -455,9 +455,10 @@ bounce_write:
+ 			}
+ 		}
+ 		actual = size;
+-		if (actual > align_size)
+-			actual = align_size;
+-		actual -= offset;
++		if ((actual + offset) > align_size)
++			actual = align_size - offset;
++		if (actual > size)
++			actual = size;
+ 		memcpy(((char *)data->bounce) + offset, buf, actual);
+ 		if (ext2fs_llseek(data->dev, aligned_blk * align_size, SEEK_SET) < 0) {
+ 			retval = errno ? errno : EXT2_ET_LLSEEK_FAILED;
+-- 
+2.24.0
+
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
index d7c07c3..e8b2aaf 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/e2fsprogs-fix-missing-check-for-permission-denied.patch
@@ -1,4 +1,4 @@
-From 9263b8764702f2b26ddaaf80808ebab31a1dba3b Mon Sep 17 00:00:00 2001
+From 8957443bcbea43685c76eb3cbc5009f7fd529283 Mon Sep 17 00:00:00 2001
 From: Jackie Huang <jackie.huang@windriver.com>
 Date: Wed, 10 Aug 2016 11:19:44 +0800
 Subject: [PATCH] Fix missing check for permission denied.
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
index 88d0ae7..96eb7f2 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/quiet-debugfs.patch
@@ -1,4 +1,4 @@
-From 6e4c1644a3a8cacf7c1f5953cc378589bb046d5a Mon Sep 17 00:00:00 2001
+From 3b75308cc75adc249db6ca36e42fe93309b9a018 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Mon, 23 Dec 2013 13:38:34 +0000
 Subject: [PATCH] e2fsprogs: silence debugfs
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/debugfs/debugfs.c b/debugfs/debugfs.c
-index 132c5f9d..98063727 100644
+index b67a88bc..76dd5556 100644
 --- a/debugfs/debugfs.c
 +++ b/debugfs/debugfs.c
-@@ -2510,7 +2510,7 @@ static int source_file(const char *cmd_file, int ss_idx)
+@@ -2518,7 +2518,7 @@ static int source_file(const char *cmd_file, int ss_idx)
  		cp = strchr(buf, '\r');
  		if (cp)
  			*cp = 0;
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.1.bb b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.2.bb
similarity index 95%
rename from poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.1.bb
rename to poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.2.bb
index be8b67c..fc022f3 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.1.bb
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.46.2.bb
@@ -4,6 +4,8 @@
            file://run-ptest \
            file://ptest.patch \
            file://mkdir_p.patch \
+           file://0001-lib-ext2fs-unix_io.c-do-unlock-on-error.patch \
+           file://0001-lib-ext2fs-unix_io.c-revert-parts-of-libext2fs-fix-p.patch \
            "
 
 SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \
@@ -11,7 +13,7 @@
 "
 
 
-SRCREV = "3114c623f56b0d61f5f34b85f7b23d28f6c848c0"
+SRCREV = "1eea0e2bd9a6760ebad834d5d2cf700fffe5ebe2"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+\.\d+(\.\d+)*)$"
 
 EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} \
diff --git a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.2.1.bb b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.2.1.bb
new file mode 100644
index 0000000..6435fea
--- /dev/null
+++ b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.2.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Tools for erofs filesystems"
+LICENSE = "GPLv2+"
+SECTION = "base"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94fa01670a2a8f2d3ab2de15004e0848"
+HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README"
+
+SRCREV = "d1f4953edfcf4f51c71ba91586e21fc6ce9f6db9"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "util-linux-libuuid"
+
+inherit pkgconfig autotools
+
+PACKAGECONFIG ??= "lz4"
+PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
+
+EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
index 1d43d22..54e7e01 100644
--- a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
+++ b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
@@ -3,12 +3,14 @@
 lexical patterns in text."
 HOMEPAGE = "http://sourceforge.net/projects/flex/"
 SECTION = "devel"
-LICENSE = "BSD-2-Clause"
+LICENSE = "BSD-3-Clause & LGPL-2.0+"
+LICENSE_${PN}-libfl = "BSD-3-Clause"
 
 DEPENDS = "${@bb.utils.contains('PTEST_ENABLED', '1', 'bison-native flex-native', '', d)}"
 BBCLASSEXTEND = "native nativesdk"
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=e4742cf92e89040b39486a6219b68067"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e4742cf92e89040b39486a6219b68067 \
+                    file://src/gettext.h;beginline=1;endline=17;md5=9c05dda2f58d89b850c399cf22e1a00c"
 
 SRC_URI = "https://github.com/westes/flex/releases/download/v${PV}/flex-${PV}.tar.gz \
            file://run-ptest \
diff --git a/poky/meta/recipes-devtools/gcc/gcc-11.1.inc b/poky/meta/recipes-devtools/gcc/gcc-11.1.inc
index 7130022..bf29879 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-11.1.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-11.1.inc
@@ -6,7 +6,7 @@
 
 # BINV should be incremented to a revision after a minor gcc release
 
-BINV = "11.1.0"
+BINV = "11.1.1"
 
 FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
 
@@ -25,7 +25,10 @@
 
 #RELEASE ?= "5b2ac9b40c325e9209c0bd55955db84aad4a0cc5"
 #BASEURI ?= "https://github.com/gcc-mirror/gcc/archive/${RELEASE}.zip;downloadfilename=gcc-${PV}-${RELEASE}.zip"
-BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
+
+BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz \
+            http://downloads.yoctoproject.org/mirror/sources/gcc-11.1.0-9ee61d2b51df012c659359873637cc2162ecccf3.patch;apply=yes;name=backports \
+           "
 SRC_URI = "\
            ${BASEURI} \
            file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
@@ -65,8 +68,10 @@
            file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \
            file://0036-mingw32-Enable-operation_not_supported.patch \
            file://0037-libatomic-Do-not-enforce-march-on-aarch64.patch \
+           file://0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch \
 "
 SRC_URI[sha256sum] = "4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf"
+SRC_URI[backports.sha256sum] = "69274bebd6c069a13443d4af61070e854740a639ec4d66eedf3e80070363587b"
 
 S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}"
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
index 878feaf..1872fae 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc
@@ -124,7 +124,7 @@
 	dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/
 	install -d $dest
 	suffix=${EXEEXT}
-	for t in ar as ld nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do
+	for t in ar as ld ld.bfd ld.gold nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do
 		if [ "$t" = "g77" -o "$t" = "gfortran" ] && [ ! -e ${D}${bindir}/${TARGET_PREFIX}$t$suffix ]; then
 			continue
 		fi
diff --git a/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc
index d0348c4..59e91da 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc
@@ -90,7 +90,9 @@
     ${libdir}/libhwasan.so \
     ${libdir}/libasan.la \
 "
-FILES_libasan-staticdev += "${libdir}/libasan.a"
+FILES_libasan-staticdev += "${libdir}/libasan.a \
+    ${libdir}/libhwasan.a \
+"
 
 FILES_libubsan += "${libdir}/libubsan.so.*"
 FILES_libubsan-dev += "\
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch
new file mode 100644
index 0000000..a3e31e4
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-Revert-libstdc-Install-libstdc-gdb.py-more-robustly-.patch
@@ -0,0 +1,76 @@
+This change breaks installation on baremetal targets, so whilst the cause is
+investigated revert the commit.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 8ec52bd0ba2141ef0bcc6f93e26a23d662b40f78 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Wed, 26 May 2021 19:54:29 +0100
+Subject: [PATCH] Revert "libstdc++: Install libstdc++*-gdb.py more robustly
+ [PR 99453]"
+
+This reverts commit dbb87d6a9c37c8eca80d77782717a8144515c16d.
+---
+ libstdc++-v3/python/Makefile.am | 20 ++++++++++++++++----
+ libstdc++-v3/python/Makefile.in | 14 ++++++++++++--
+ 2 files changed, 28 insertions(+), 6 deletions(-)
+
+diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am
+index 0c2b207b86e..01517a2a522 100644
+--- a/libstdc++-v3/python/Makefile.am
++++ b/libstdc++-v3/python/Makefile.am
+@@ -44,9 +44,21 @@ gdb.py: hook.in Makefile
+ install-data-local: gdb.py
+ 	@$(mkdir_p) $(DESTDIR)$(toolexeclibdir)
+ ## We want to install gdb.py as SOMETHING-gdb.py.  SOMETHING is the
+-## full name of the final library.  We use the libtool .la file to get
+-## the correct name.
+-	@libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
+-	          $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
++## full name of the final library.  We want to ignore symlinks, the
++## .la file, and any previous -gdb.py file.  This is inherently
++## fragile, but there does not seem to be a better option, because
++## libtool hides the real names from us.
++	@here=`pwd`; cd $(DESTDIR)$(toolexeclibdir); \
++	  for file in libstdc++.*; do \
++	    case $$file in \
++	      *-gdb.py) ;; \
++	      *.la) ;; \
++	      *) if test -h $$file; then \
++	           continue; \
++	         fi; \
++	         libname=$$file;; \
++	    esac; \
++	  done; \
++	cd $$here; \
+ 	echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
+ 	$(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
+diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in
+index 2efe0b96a19..c35dbe55961 100644
+--- a/libstdc++-v3/python/Makefile.in
++++ b/libstdc++-v3/python/Makefile.in
+@@ -607,8 +607,18 @@ gdb.py: hook.in Makefile
+ 
+ install-data-local: gdb.py
+ 	@$(mkdir_p) $(DESTDIR)$(toolexeclibdir)
+-	@libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \
+-	          $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
++	@here=`pwd`; cd $(DESTDIR)$(toolexeclibdir); \
++	  for file in libstdc++.*; do \
++	    case $$file in \
++	      *-gdb.py) ;; \
++	      *.la) ;; \
++	      *) if test -h $$file; then \
++	           continue; \
++	         fi; \
++	         libname=$$file;; \
++	    esac; \
++	  done; \
++	cd $$here; \
+ 	echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
+ 	$(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
+ 
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch b/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch
index 98472dd..120d5a2 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0019-Ensure-target-gcc-headers-can-be-included.patch
@@ -1,4 +1,4 @@
-From 9b4eb0e18a953d79d20c78d3ba741af6d71ab9ca Mon Sep 17 00:00:00 2001
+From 6f410ed8fb7eee11ba7a25634c2257666b98ef52 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] Ensure target gcc headers can be included
@@ -11,14 +11,18 @@
 picking up these headers under the sysroot supplied on the gcc
 command line in order to resolve this.
 
+Extend target gcc headers search to musl too
+
 Upstream-Status: Pending
 
 Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- gcc/Makefile.in  | 2 ++
- gcc/cppdefault.c | 4 ++++
- 2 files changed, 6 insertions(+)
+ gcc/Makefile.in           | 2 ++
+ gcc/config/linux.h        | 8 ++++++++
+ gcc/config/rs6000/sysv4.h | 8 ++++++++
+ gcc/cppdefault.c          | 4 ++++
+ 4 files changed, 22 insertions(+)
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
 index 59c45c81393..9b17d120aa1 100644
@@ -40,6 +44,58 @@
    -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \
    -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
    -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
+diff --git a/gcc/config/linux.h b/gcc/config/linux.h
+index 87efc5f69fe..b525bcd56b3 100644
+--- a/gcc/config/linux.h
++++ b/gcc/config/linux.h
+@@ -165,6 +165,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ #define INCLUDE_DEFAULTS_MUSL_TOOL
+ #endif
+ 
++#ifdef GCC_INCLUDE_SUBDIR_TARGET
++#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET		\
++    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
++#else
++#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
++#endif
++
+ #ifdef NATIVE_SYSTEM_HEADER_DIR
+ #define INCLUDE_DEFAULTS_MUSL_NATIVE			\
+     { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },	\
+@@ -191,6 +198,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+     INCLUDE_DEFAULTS_MUSL_PREFIX			\
+     INCLUDE_DEFAULTS_MUSL_CROSS				\
+     INCLUDE_DEFAULTS_MUSL_TOOL				\
++    INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET			\
+     INCLUDE_DEFAULTS_MUSL_NATIVE			\
+     { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
+     { 0, 0, 0, 0, 0, 0 }				\
+diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
+index 510abe169c5..0c2bba5ea32 100644
+--- a/gcc/config/rs6000/sysv4.h
++++ b/gcc/config/rs6000/sysv4.h
+@@ -995,6 +995,13 @@ ncrtn.o%s"
+ #define INCLUDE_DEFAULTS_MUSL_TOOL
+ #endif
+ 
++#ifdef GCC_INCLUDE_SUBDIR_TARGET
++#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET            \
++    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
++#else
++#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
++#endif
++
+ #ifdef NATIVE_SYSTEM_HEADER_DIR
+ #define INCLUDE_DEFAULTS_MUSL_NATIVE			\
+     { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },	\
+@@ -1021,6 +1028,7 @@ ncrtn.o%s"
+     INCLUDE_DEFAULTS_MUSL_PREFIX			\
+     INCLUDE_DEFAULTS_MUSL_CROSS				\
+     INCLUDE_DEFAULTS_MUSL_TOOL				\
++    INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET			\
+     INCLUDE_DEFAULTS_MUSL_NATIVE			\
+     { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
+     { 0, 0, 0, 0, 0, 0 }				\
 diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
 index c503d14fc3f..d54d6ce0076 100644
 --- a/gcc/cppdefault.c
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch b/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch
index 3958e9c..b1054fa 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0024-handle-sysroot-support-for-nativesdk-gcc.patch
@@ -1,4 +1,4 @@
-From 35c084a051bcd6587ebc73e4acb045cb2bdf7e99 Mon Sep 17 00:00:00 2001
+From 354682ad8f71f62643dcd83f64b51b5979615a0c 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] handle sysroot support for nativesdk-gcc
@@ -23,6 +23,9 @@
 Upstream-Status: Inappropriate
 RP 2015/7/28
 
+Extend the gccrelocprefix support to musl config too, this ensures
+that gcc will get right bits in SDK installations
+
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
 Added PREFIXVAR and EXEC_PREFIXVAR to support runtime relocation.  Without
@@ -32,16 +35,18 @@
 
 Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
 ---
- gcc/c-family/c-opts.c |  4 +--
- gcc/cppdefault.c      | 63 ++++++++++++++++++++++++++-----------------
- gcc/cppdefault.h      | 13 ++++-----
- gcc/gcc.c             | 20 +++++++++-----
- gcc/incpath.c         | 12 ++++-----
- gcc/prefix.c          |  6 +++--
- 6 files changed, 70 insertions(+), 48 deletions(-)
+ gcc/c-family/c-opts.c     |  4 +--
+ gcc/config/linux.h        | 24 +++++++--------
+ gcc/config/rs6000/sysv4.h | 24 +++++++--------
+ gcc/cppdefault.c          | 63 ++++++++++++++++++++++++---------------
+ gcc/cppdefault.h          | 13 ++++----
+ gcc/gcc.c                 | 20 +++++++++----
+ gcc/incpath.c             | 12 ++++----
+ gcc/prefix.c              |  6 ++--
+ 8 files changed, 94 insertions(+), 72 deletions(-)
 
 diff --git a/gcc/c-family/c-opts.c b/gcc/c-family/c-opts.c
-index bd15b9cd902..2bd667e3f58 100644
+index 89e05a4c551..5577383665d 100644
 --- a/gcc/c-family/c-opts.c
 +++ b/gcc/c-family/c-opts.c
 @@ -1436,8 +1436,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain)
@@ -55,6 +60,162 @@
  
    path = (char *) xmalloc (prefix_len + suffix_len + 1);
    memcpy (path, prefix, prefix_len);
+diff --git a/gcc/config/linux.h b/gcc/config/linux.h
+index b525bcd56b3..ba02c013e30 100644
+--- a/gcc/config/linux.h
++++ b/gcc/config/linux.h
+@@ -129,53 +129,53 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+  * Unfortunately, this is mostly duplicated from cppdefault.c */
+ #if DEFAULT_LIBC == LIBC_MUSL
+ #define INCLUDE_DEFAULTS_MUSL_GPP			\
+-    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,		\
++    { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,		\
+       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },		\
+-    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,		\
++    { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,	\
+       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },		\
+-    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,	\
++    { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,	\
+       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
+ 
+ #ifdef LOCAL_INCLUDE_DIR
+ #define INCLUDE_DEFAULTS_MUSL_LOCAL			\
+-    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },		\
+-    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
++    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },		\
++    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_LOCAL
+ #endif
+ 
+ #ifdef PREFIX_INCLUDE_DIR
+ #define INCLUDE_DEFAULTS_MUSL_PREFIX			\
+-    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
++    { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0},
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_PREFIX
+ #endif
+ 
+ #ifdef CROSS_INCLUDE_DIR
+ #define INCLUDE_DEFAULTS_MUSL_CROSS			\
+-    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
++    { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0},
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_CROSS
+ #endif
+ 
+ #ifdef TOOL_INCLUDE_DIR
+ #define INCLUDE_DEFAULTS_MUSL_TOOL			\
+-    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
++    { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0},
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_TOOL
+ #endif
+ 
+ #ifdef GCC_INCLUDE_SUBDIR_TARGET
+ #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET		\
+-    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
++    { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0},
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
+ #endif
+ 
+ #ifdef NATIVE_SYSTEM_HEADER_DIR
+ #define INCLUDE_DEFAULTS_MUSL_NATIVE			\
+-    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },	\
+-    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
++    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 2 },	\
++    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 0 },
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_NATIVE
+ #endif
+@@ -200,7 +200,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+     INCLUDE_DEFAULTS_MUSL_TOOL				\
+     INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET			\
+     INCLUDE_DEFAULTS_MUSL_NATIVE			\
+-    { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
++    { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },		\
+     { 0, 0, 0, 0, 0, 0 }				\
+   }
+ #endif
+diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
+index 0c2bba5ea32..313a8de4417 100644
+--- a/gcc/config/rs6000/sysv4.h
++++ b/gcc/config/rs6000/sysv4.h
+@@ -959,53 +959,53 @@ ncrtn.o%s"
+ /* Include order changes for musl, same as in generic linux.h.  */
+ #if DEFAULT_LIBC == LIBC_MUSL
+ #define INCLUDE_DEFAULTS_MUSL_GPP			\
+-    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,		\
++    { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,		\
+       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },		\
+-    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,		\
++    { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,	\
+       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },		\
+-    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,	\
++    { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,	\
+       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
+ 
+ #ifdef LOCAL_INCLUDE_DIR
+ #define INCLUDE_DEFAULTS_MUSL_LOCAL			\
+-    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },		\
+-    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
++    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },		\
++    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_LOCAL
+ #endif
+ 
+ #ifdef PREFIX_INCLUDE_DIR
+ #define INCLUDE_DEFAULTS_MUSL_PREFIX			\
+-    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
++    { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0},
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_PREFIX
+ #endif
+ 
+ #ifdef CROSS_INCLUDE_DIR
+ #define INCLUDE_DEFAULTS_MUSL_CROSS			\
+-    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
++    { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0},
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_CROSS
+ #endif
+ 
+ #ifdef TOOL_INCLUDE_DIR
+ #define INCLUDE_DEFAULTS_MUSL_TOOL			\
+-    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
++    { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0},
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_TOOL
+ #endif
+ 
+ #ifdef GCC_INCLUDE_SUBDIR_TARGET
+ #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET            \
+-    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
++    { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0},
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
+ #endif
+ 
+ #ifdef NATIVE_SYSTEM_HEADER_DIR
+ #define INCLUDE_DEFAULTS_MUSL_NATIVE			\
+-    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },	\
+-    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
++    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 2 },	\
++    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 0 },
+ #else
+ #define INCLUDE_DEFAULTS_MUSL_NATIVE
+ #endif
+@@ -1030,7 +1030,7 @@ ncrtn.o%s"
+     INCLUDE_DEFAULTS_MUSL_TOOL				\
+     INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET			\
+     INCLUDE_DEFAULTS_MUSL_NATIVE			\
+-    { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
++    { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },		\
+     { 0, 0, 0, 0, 0, 0 }				\
+   }
+ #endif
 diff --git a/gcc/cppdefault.c b/gcc/cppdefault.c
 index d54d6ce0076..784a92a0c24 100644
 --- a/gcc/cppdefault.c
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
index edca9e3..9c616d2 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0028-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
@@ -22,12 +22,10 @@
  gcc/config/rs6000/linux64.h | 10 ++++++++++
  3 files changed, 27 insertions(+)
 
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 87efc5f69fe..3c7b7c538b9 100644
 --- a/gcc/config/linux.h
 +++ b/gcc/config/linux.h
-@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-     { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
+@@ -203,6 +203,13 @@ see the files COPYING3 and COPYING.RUNTI
+     { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },		\
      { 0, 0, 0, 0, 0, 0 }				\
    }
 +#ifdef TARGET_LIBC_PROVIDES_SSP
@@ -40,8 +38,6 @@
  #endif
  
  #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
-diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
-index 47c9d9ac0b6..d065f88b377 100644
 --- a/gcc/config/rs6000/linux.h
 +++ b/gcc/config/rs6000/linux.h
 @@ -94,6 +94,16 @@
@@ -61,8 +57,6 @@
  #undef LINK_OS_LINUX_SPEC
  #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 a11e01faa3d..ce464f3626b 100644
 --- a/gcc/config/rs6000/linux64.h
 +++ b/gcc/config/rs6000/linux64.h
 @@ -369,6 +369,16 @@ extern int dot_symbols;
diff --git a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
index d4ec459..8d7d6ac 100644
--- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -9,8 +9,8 @@
 
 INHIBIT_DEFAULT_DEPS = "1"
 
-SRCREV = "277b4ed1776f721145b2649d888f1deb445fecc5"
-PV = "20210424+git${SRCPV}"
+SRCREV = "92fac9b5ceb9f111a04d7f8f98831570e77886c6"
+PV = "20210522+git${SRCPV}"
 
 SRC_URI = "git://git.savannah.gnu.org/config.git \
            file://gnu-configize.in"
diff --git a/poky/meta/recipes-devtools/go/go-1.16.3.inc b/poky/meta/recipes-devtools/go/go-1.16.4.inc
similarity index 88%
rename from poky/meta/recipes-devtools/go/go-1.16.3.inc
rename to poky/meta/recipes-devtools/go/go-1.16.4.inc
index ebd25a5..71c17de 100644
--- a/poky/meta/recipes-devtools/go/go-1.16.3.inc
+++ b/poky/meta/recipes-devtools/go/go-1.16.4.inc
@@ -1,7 +1,7 @@
 require go-common.inc
 
 GO_BASEVERSION = "1.16"
-PV = "1.16.3"
+PV = "1.16.4"
 FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
@@ -17,4 +17,4 @@
     file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
     file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \
 "
-SRC_URI[main.sha256sum] = "b298d29de9236ca47a023e382313bcc2d2eed31dfa706b60a04103ce83a71a25"
+SRC_URI[main.sha256sum] = "ae4f6b6e2a1677d31817984655a762074b5356da50fb58722b99104870d43503"
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.16.3.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.16.4.bb
similarity index 83%
rename from poky/meta/recipes-devtools/go/go-binary-native_1.16.3.bb
rename to poky/meta/recipes-devtools/go/go-binary-native_1.16.4.bb
index d01a2bd..8c046e8 100644
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.16.3.bb
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.16.4.bb
@@ -8,8 +8,8 @@
 PROVIDES = "go-native"
 
 SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
-SRC_URI[go_linux_amd64.sha256sum] = "951a3c7c6ce4e56ad883f97d9db74d3d6d80d5fec77455c6ada6c1f7ac4776d2"
-SRC_URI[go_linux_arm64.sha256sum] = "566b1d6f17d2bc4ad5f81486f0df44f3088c3ed47a3bec4099d8ed9939e90d5d"
+SRC_URI[go_linux_amd64.sha256sum] = "7154e88f5a8047aad4b80ebace58a059e36e7e2e4eb3b383127a28c711b4ff59"
+SRC_URI[go_linux_arm64.sha256sum] = "8b18eb05ddda2652d69ab1b1dd1f40dd731799f43c6a58b512ad01ae5b5bba21"
 
 UPSTREAM_CHECK_URI = "https://golang.org/dl/"
 UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
diff --git a/poky/meta/recipes-devtools/go/go-common.inc b/poky/meta/recipes-devtools/go/go-common.inc
index c368b95..39a681a 100644
--- a/poky/meta/recipes-devtools/go/go-common.inc
+++ b/poky/meta/recipes-devtools/go/go-common.inc
@@ -14,7 +14,7 @@
 
 inherit goarch
 
-SRC_URI = "https://dl.google.com/go/go${PV}.src.tar.gz;name=main"
+SRC_URI = "https://golang.org/dl/go${PV}.src.tar.gz;name=main"
 S = "${WORKDIR}/go"
 B = "${S}"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.src\.tar"
diff --git a/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.3.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.16.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross-canadian_1.16.3.bb
rename to poky/meta/recipes-devtools/go/go-cross-canadian_1.16.4.bb
diff --git a/poky/meta/recipes-devtools/go/go-cross_1.16.3.bb b/poky/meta/recipes-devtools/go/go-cross_1.16.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross_1.16.3.bb
rename to poky/meta/recipes-devtools/go/go-cross_1.16.4.bb
diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.16.3.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.16.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-crosssdk_1.16.3.bb
rename to poky/meta/recipes-devtools/go/go-crosssdk_1.16.4.bb
diff --git a/poky/meta/recipes-devtools/go/go-native_1.16.3.bb b/poky/meta/recipes-devtools/go/go-native_1.16.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-native_1.16.3.bb
rename to poky/meta/recipes-devtools/go/go-native_1.16.4.bb
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.16.3.bb b/poky/meta/recipes-devtools/go/go-runtime_1.16.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-runtime_1.16.3.bb
rename to poky/meta/recipes-devtools/go/go-runtime_1.16.4.bb
diff --git a/poky/meta/recipes-devtools/go/go_1.16.3.bb b/poky/meta/recipes-devtools/go/go_1.16.4.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go_1.16.3.bb
rename to poky/meta/recipes-devtools/go/go_1.16.4.bb
diff --git a/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb b/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
index 231c1c2..61b8487 100644
--- a/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
+++ b/poky/meta/recipes-devtools/icecc-create-env/icecc-create-env_0.1.bb
@@ -11,6 +11,7 @@
 
 DEPENDS = ""
 INHIBIT_DEFAULT_DEPS = "1"
+ICECC_DISABLED = "1"
 
 # This is needed, because otherwise there is dependency loop from quilt-native
 # Dependency loop #1 found:
diff --git a/poky/meta/recipes-devtools/jquery/jquery_3.6.0.bb b/poky/meta/recipes-devtools/jquery/jquery_3.6.0.bb
index 6590596..0379273 100644
--- a/poky/meta/recipes-devtools/jquery/jquery_3.6.0.bb
+++ b/poky/meta/recipes-devtools/jquery/jquery_3.6.0.bb
@@ -19,6 +19,11 @@
 
 UPSTREAM_CHECK_REGEX = "jquery-(?P<pver>\d+(\.\d+)+)\.js"
 
+# https://github.com/jquery/jquery/issues/3927
+# There are ways jquery can expose security issues but any issues are in the apps exposing them
+# and there is little we can directly do
+CVE_CHECK_WHITELIST += "CVE-2007-2379"
+
 inherit allarch
 
 do_install() {
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf/0001-libdnf-config.h-avoid-the-use-of-non-portable-__WORD.patch b/poky/meta/recipes-devtools/libdnf/libdnf/0001-libdnf-config.h-avoid-the-use-of-non-portable-__WORD.patch
index f8d256e..b740521 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf/0001-libdnf-config.h-avoid-the-use-of-non-portable-__WORD.patch
+++ b/poky/meta/recipes-devtools/libdnf/libdnf/0001-libdnf-config.h-avoid-the-use-of-non-portable-__WORD.patch
@@ -1,23 +1,26 @@
-From 8aa5402393fabaf4fff51be3af4868e8dfab6da7 Mon Sep 17 00:00:00 2001
+From fc0b81bb717db3f41513f09f6661676a7aea6dd4 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 9 Mar 2021 19:30:42 +0000
 Subject: [PATCH] libdnf/config.h: avoid the use of non-portable __WORDSIZE
 
 Upstream-Status: Submitted [https://github.com/rpm-software-management/libdnf/pull/1159]
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
 ---
- libdnf/config.h | 8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
+ libdnf/config.h | 9 +++------
+ 1 file changed, 3 insertions(+), 6 deletions(-)
 
 diff --git a/libdnf/config.h b/libdnf/config.h
-index 16121f6f..2925923e 100644
+index 01b330b4..dbd53f5e 100644
 --- a/libdnf/config.h
 +++ b/libdnf/config.h
-@@ -18,12 +18,10 @@
-  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-  */
+@@ -20,14 +20,11 @@
  
+ #ifdef __APPLE__
+ #include <stdint.h>
+-#else
 -#include <bits/wordsize.h>
+ #endif
 +#include <limits.h>
  
 -#if __WORDSIZE == 32
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.58.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.63.0.bb
similarity index 94%
rename from poky/meta/recipes-devtools/libdnf/libdnf_0.58.0.bb
rename to poky/meta/recipes-devtools/libdnf/libdnf_0.63.0.bb
index dbe68d5..79e8865 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf_0.58.0.bb
+++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.63.0.bb
@@ -14,8 +14,8 @@
            file://0001-libdnf-config.h-avoid-the-use-of-non-portable-__WORD.patch \
            "
 
-SRCREV = "85278894f21bc1957dc47a2a09ddacf59bc3cda8"
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
+SRCREV = "669a5c691acba91693d238d6262ac99a440aa9b3"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(?!4\.90)\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/libedit/libedit_20210419-3.1.bb b/poky/meta/recipes-devtools/libedit/libedit_20210522-3.1.bb
similarity index 87%
rename from poky/meta/recipes-devtools/libedit/libedit_20210419-3.1.bb
rename to poky/meta/recipes-devtools/libedit/libedit_20210522-3.1.bb
index a34b773..43e6f22 100644
--- a/poky/meta/recipes-devtools/libedit/libedit_20210419-3.1.bb
+++ b/poky/meta/recipes-devtools/libedit/libedit_20210522-3.1.bb
@@ -13,7 +13,7 @@
 SRC_URI = "http://www.thrysoee.dk/editline/${BP}.tar.gz \
            file://stdc-predef.patch \
           "
-SRC_URI[sha256sum] = "571ebe44b74860823e24a08cf04086ff104fd7dfa1020abf26c52543134f5602"
+SRC_URI[sha256sum] = "0220bc2047e927c0c1984ef5f7b4eb2a9469a5b7bf12ba573ca3b23ca02bbb6f"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
index 2f60ce8..771b2c0 100644
--- a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
+++ b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
@@ -8,8 +8,8 @@
            file://0001-modulemd-generate-the-manpage-only-if-the-feature-is.patch \
            "
 
-PV = "2.12.0"
-SRCREV = "aaed38c899a958a88a6a368a70510e350ebe336c"
+PV = "2.12.1"
+SRCREV = "c0897fa0e9d7d1305fd4813b1010c1d4cca42346"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/meson/meson.inc b/poky/meta/recipes-devtools/meson/meson.inc
index e186ded..f603814 100644
--- a/poky/meta/recipes-devtools/meson/meson.inc
+++ b/poky/meta/recipes-devtools/meson/meson.inc
@@ -12,21 +12,13 @@
            file://0003-native_bindir.patch \
            file://0001-python-module-do-not-manipulate-the-environment-when.patch \
            file://disable-rpath-handling.patch \
-           file://cross-prop-default.patch \
            file://0001-modules-python.py-do-not-substitute-python-s-install.patch \
-           file://0001-minstall-Correctly-set-uid-gid-of-installed-files.patch \
            file://gi-target-dep.patch \
+           file://0001-Make-CPU-family-warnings-fatal.patch \
+           file://0002-Support-building-allarch-recipes-again.patch \
+           file://4e312c19e693a69b0650ce6c8a8903163c959996.patch \
            "
-SRC_URI[sha256sum] = "72e1c782ba9bda204f4a1ed57f98d027d7b6eb9414c723eebbd6ec7f1955c8a6"
-
-SRC_URI_append_class-native = " \
-    file://0001-Make-CPU-family-warnings-fatal.patch \
-    file://0002-Support-building-allarch-recipes-again.patch \
-"
-
-# remove at next version upgrade or when output changes
-PR = "r1"
-HASHEQUIV_HASH_VERSION .= ".1"
+SRC_URI[sha256sum] = "f4820df0bc969c99019fd4af8ca5f136ee94c63d8a5ad67e7eb73bdbc9182fdd"
 
 UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases"
 UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
index 48941c9..bcccfab 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
@@ -1,41 +1,43 @@
-From 76934bcbf2cfa7304e8864e28c51f58adda0392f Mon Sep 17 00:00:00 2001
+From b64032a2eb1fb760f4ffd5b4b666e2433cf80d39 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Tue, 3 Jul 2018 13:59:09 +0100
-Subject: [PATCH] Make CPU family warnings fatal
+Subject: [PATCH 1/2] Make CPU family warnings fatal
 
 Upstream-Status: Inappropriate [OE specific]
 Signed-off-by: Ross Burton <ross.burton@intel.com>
-
 ---
  mesonbuild/envconfig.py   | 2 +-
  mesonbuild/environment.py | 4 +---
  2 files changed, 2 insertions(+), 4 deletions(-)
 
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index ba35d16..2d3c34c 100644
+index c6a4df3..4d58c91 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -254,7 +254,7 @@ class MachineInfo:
-
+@@ -266,7 +266,7 @@ class MachineInfo:
+ 
          cpu_family = literal['cpu_family']
          if cpu_family not in known_cpu_families:
--            mlog.warning('Unknown CPU family {}, please report this at https://github.com/mesonbuild/meson/issues/new'.format(cpu_family))
+-            mlog.warning(f'Unknown CPU family {cpu_family}, please report this at https://github.com/mesonbuild/meson/issues/new')
 +            raise EnvironmentException('Unknown CPU family {}, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.'.format(cpu_family))
-
+ 
          endian = literal['endian']
          if endian not in ('little', 'big'):
 diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index 756dd81..4d2c2b6 100644
+index fc9b703..eea8345 100644
 --- a/mesonbuild/environment.py
 +++ b/mesonbuild/environment.py
-@@ -434,9 +434,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
+@@ -436,9 +436,7 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
              trial = 'ppc64'
-
+ 
      if trial not in known_cpu_families:
 -        mlog.warning('Unknown CPU family {!r}, please report this at '
 -                     'https://github.com/mesonbuild/meson/issues/new with the '
 -                     'output of `uname -a` and `cat /proc/cpuinfo`'.format(trial))
 +        raise EnvironmentException('Unknown CPU family %s, see https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for directions.' % trial)
-
+ 
      return trial
+ 
+-- 
+2.24.0
 
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch b/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
index 471f150..ce90e51 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch
@@ -1,4 +1,4 @@
-From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001
+From 2f9c59e0489e569c5382404667c10f5c200a72ad Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Fri, 4 Aug 2017 16:16:41 +0300
 Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling
@@ -20,11 +20,11 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
-index bcf77b9..6a4b472 100644
+index dc2979e..c9ff9bd 100644
 --- a/mesonbuild/modules/gnome.py
 +++ b/mesonbuild/modules/gnome.py
-@@ -974,6 +974,10 @@ This will become a hard error in the future.''')
-             args.append('--{}={}'.format(program_name, path))
+@@ -1053,6 +1053,10 @@ class GnomeModule(ExtensionModule):
+             args.append(f'--{program_name}={path}')
          if namespace:
              args.append('--namespace=' + namespace)
 +        gtkdoc_exe_wrapper = state.environment.properties.host.get('gtkdoc_exe_wrapper', None)
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-minstall-Correctly-set-uid-gid-of-installed-files.patch b/poky/meta/recipes-devtools/meson/meson/0001-minstall-Correctly-set-uid-gid-of-installed-files.patch
deleted file mode 100644
index d55b7cc..0000000
--- a/poky/meta/recipes-devtools/meson/meson/0001-minstall-Correctly-set-uid-gid-of-installed-files.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3f6f4964dc79ae986f44afe1687922381f237edd Mon Sep 17 00:00:00 2001
-From: Peter Kjellerstedt <pkj@axis.com>
-Date: Wed, 3 Mar 2021 12:47:28 +0100
-Subject: [PATCH] minstall: Correctly set uid/gid of installed files
-
-In commit caab4d3d, the uid and gid arguments passed to os.chown() by
-set_chown() were accidentally swapped, causing files to end up with
-incorrect owner/group if the owner and group are not the same.
-
-Upstream-Status: Backport [https://github.com/mesonbuild/meson/commit/6226ac26ef63335bfb817db02b3f295c78214a82]
-Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
----
- mesonbuild/minstall.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mesonbuild/minstall.py b/mesonbuild/minstall.py
-index 785ff5869..07da408aa 100644
---- a/mesonbuild/minstall.py
-+++ b/mesonbuild/minstall.py
-@@ -148,7 +148,7 @@ def set_chown(path: str, user: T.Optional[str] = None, group: T.Optional[str] =
-         Use a real function rather than a lambda to help mypy out. Also real
-         functions are faster.
-         """
--        real_os_chown(path, gid, uid, dir_fd=dir_fd, follow_symlinks=follow_symlinks)
-+        real_os_chown(path, uid, gid, dir_fd=dir_fd, follow_symlinks=follow_symlinks)
- 
-     try:
-         os.chown = chown
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch b/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
index eb0e90d..fdadc68 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
@@ -1,4 +1,4 @@
-From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001
+From 2264e67d7c2c22ca634fd26ea8ada6f0344ab280 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 19 Nov 2018 14:24:26 +0100
 Subject: [PATCH] python module: do not manipulate the environment when calling
@@ -12,10 +12,10 @@
  1 file changed, 12 deletions(-)
 
 diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py
-index 07be318..b770603 100644
+index 422155b..aaf5844 100644
 --- a/mesonbuild/modules/python.py
 +++ b/mesonbuild/modules/python.py
-@@ -71,11 +71,6 @@ class PythonDependency(ExternalDependency):
+@@ -70,11 +70,6 @@ class PythonDependency(ExternalDependency):
                  old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR')
                  old_pkg_path = os.environ.get('PKG_CONFIG_PATH')
  
@@ -26,9 +26,9 @@
 -
                  try:
                      self.pkgdep = PkgConfigDependency(pkg_name, environment, kwargs)
-                     mlog.debug('Found "{}" via pkgconfig lookup in LIBPC ({})'.format(pkg_name, pkg_libdir))
-@@ -84,13 +79,6 @@ class PythonDependency(ExternalDependency):
-                     mlog.debug('"{}" could not be found in LIBPC ({})'.format(pkg_name, pkg_libdir))
+                     mlog.debug(f'Found "{pkg_name}" via pkgconfig lookup in LIBPC ({pkg_libdir})')
+@@ -83,13 +78,6 @@ class PythonDependency(ExternalDependency):
+                     mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir})')
                      mlog.debug(e)
  
 -                if old_pkg_path is not None:
@@ -39,5 +39,5 @@
 -                else:
 -                    os.environ.pop('PKG_CONFIG_LIBDIR', None)
              else:
-                 mlog.debug('"{}" could not be found in LIBPC ({}), this is likely due to a relocated python installation'.format(pkg_name, pkg_libdir))
+                 mlog.debug(f'"{pkg_name}" could not be found in LIBPC ({pkg_libdir}), this is likely due to a relocated python installation')
  
diff --git a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
index d0fe112..dcc1ce9 100644
--- a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
@@ -1,26 +1,28 @@
-From 6efb6114836fd4a1e012aa03b37f3beeeb22b466 Mon Sep 17 00:00:00 2001
+From 656bf55fed01df2d2e2ad6d9d9887173cb16b85c Mon Sep 17 00:00:00 2001
 From: Peter Kjellerstedt <pkj@axis.com>
 Date: Thu, 26 Jul 2018 16:32:49 +0200
-Subject: [PATCH] Support building allarch recipes again
+Subject: [PATCH 2/2] Support building allarch recipes again
 
 This registers "allarch" as a known CPU family.
 
 Upstream-Status: Inappropriate [OE specific]
 Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
-
 ---
  mesonbuild/envconfig.py | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 2d3c34c..b9e7908 100644
+index 4d58c91..ff01ad1 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -38,6 +38,7 @@ _T = T.TypeVar('_T')
-
-
+@@ -36,6 +36,7 @@ from pathlib import Path
+ 
+ 
  known_cpu_families = (
 +    'allarch',
      'aarch64',
      'alpha',
      'arc',
+-- 
+2.24.0
+
diff --git a/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch b/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
index ed85116..89257b9 100644
--- a/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0003-native_bindir.patch
@@ -1,4 +1,4 @@
-From 1546e1f95a119175b7a4e4272a26dd85505e5ede Mon Sep 17 00:00:00 2001
+From 30e97d4090a3d3f5b7ddcaf27cfa17f3c8c1d462 Mon Sep 17 00:00:00 2001
 From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
 Date: Wed, 15 Nov 2017 15:05:01 +0100
 Subject: [PATCH] native_bindir
@@ -18,23 +18,22 @@
 
 ---
  mesonbuild/dependencies/base.py | 19 +++++++++++--------
- mesonbuild/dependencies/ui.py   |  6 +++---
- 2 files changed, 14 insertions(+), 11 deletions(-)
+ 1 file changed, 11 insertions(+), 8 deletions(-)
 
 diff --git a/mesonbuild/dependencies/base.py b/mesonbuild/dependencies/base.py
-index cd77b4b..7e3f338 100644
+index 14380d4..d0c443f 100644
 --- a/mesonbuild/dependencies/base.py
 +++ b/mesonbuild/dependencies/base.py
-@@ -192,7 +192,7 @@ class Dependency:
+@@ -179,7 +179,7 @@ class Dependency:
      def get_exe_args(self, compiler):
          return []
  
 -    def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any]) -> str:
 +    def get_pkgconfig_variable(self, variable_name: str, kwargs: T.Dict[str, T.Any], use_native=False) -> str:
-         raise DependencyException('{!r} is not a pkgconfig dependency'.format(self.name))
+         raise DependencyException(f'{self.name!r} is not a pkgconfig dependency')
  
      def get_configtool_variable(self, variable_name):
-@@ -280,7 +280,7 @@ class InternalDependency(Dependency):
+@@ -267,7 +267,7 @@ class InternalDependency(Dependency):
              return True
          return any(d.is_built() for d in self.ext_deps)
  
@@ -43,7 +42,7 @@
          raise DependencyException('Method "get_pkgconfig_variable()" is '
                                    'invalid for an internal dependency')
  
-@@ -658,8 +658,11 @@ class PkgConfigDependency(ExternalDependency):
+@@ -645,8 +645,11 @@ class PkgConfigDependency(ExternalDependency):
          return s.format(self.__class__.__name__, self.name, self.is_found,
                          self.version_reqs)
  
@@ -57,16 +56,16 @@
          p, out, err = Popen_safe(cmd, env=env)
          rc, out, err = p.returncode, out.strip(), err.strip()
          call = ' '.join(cmd)
-@@ -685,7 +688,7 @@ class PkgConfigDependency(ExternalDependency):
-             env['PKG_CONFIG_LIBDIR'] = new_pkg_config_libdir
-             mlog.debug('PKG_CONFIG_LIBDIR: ' + new_pkg_config_libdir)
+@@ -674,7 +677,7 @@ class PkgConfigDependency(ExternalDependency):
+             if key.startswith('PKG_'):
+                 mlog.debug(f'env[{key}]: {value}')
  
 -    def _call_pkgbin(self, args, env=None):
 +    def _call_pkgbin(self, args, env=None, use_native=False):
          # Always copy the environment since we're going to modify it
          # with pkg-config variables
          if env is None:
-@@ -699,7 +702,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -688,7 +691,7 @@ class PkgConfigDependency(ExternalDependency):
          targs = tuple(args)
          cache = PkgConfigDependency.pkgbin_cache
          if (self.pkgbin, targs, fenv) not in cache:
@@ -75,7 +74,7 @@
          return cache[(self.pkgbin, targs, fenv)]
  
      def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]:
-@@ -905,7 +908,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -894,7 +897,7 @@ class PkgConfigDependency(ExternalDependency):
                                        (self.name, out_raw))
          self.link_args, self.raw_link_args = self._search_libs(out, out_raw)
  
@@ -84,7 +83,7 @@
          options = ['--variable=' + variable_name, self.name]
  
          if 'define_variable' in kwargs:
-@@ -918,7 +921,7 @@ class PkgConfigDependency(ExternalDependency):
+@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency):
  
              options = ['--define-variable=' + '='.join(definition)] + options
  
@@ -93,34 +92,3 @@
          variable = ''
          if ret != 0:
              if self.required:
-diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py
-index d897d76..a598d2e 100644
---- a/mesonbuild/dependencies/ui.py
-+++ b/mesonbuild/dependencies/ui.py
-@@ -325,7 +325,7 @@ class QtBaseDependency(ExternalDependency):
-         self.bindir = self.get_pkgconfig_host_bins(core)
-         if not self.bindir:
-             # If exec_prefix is not defined, the pkg-config file is broken
--            prefix = core.get_pkgconfig_variable('exec_prefix', {})
-+            prefix = core.get_pkgconfig_variable('exec_prefix', {}, use_native=True)
-             if prefix:
-                 self.bindir = os.path.join(prefix, 'bin')
- 
-@@ -528,7 +528,7 @@ class Qt4Dependency(QtBaseDependency):
-         applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
-         for application in applications:
-             try:
--                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}))
-+                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, {}, use_native=True))
-             except MesonException:
-                 pass
- 
-@@ -538,7 +538,7 @@ class Qt5Dependency(QtBaseDependency):
-         QtBaseDependency.__init__(self, 'qt5', env, kwargs)
- 
-     def get_pkgconfig_host_bins(self, core):
--        return core.get_pkgconfig_variable('host_bins', {})
-+        return core.get_pkgconfig_variable('host_bins', {}, use_native=True)
- 
-     def get_private_includes(self, mod_inc_dir, module):
-         return _qt_get_private_includes(mod_inc_dir, module, self.version)
diff --git a/poky/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch b/poky/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
new file mode 100644
index 0000000..76daf01
--- /dev/null
+++ b/poky/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch
@@ -0,0 +1,412 @@
+From 4e312c19e693a69b0650ce6c8a8903163c959996 Mon Sep 17 00:00:00 2001
+From: Xavier Claessens <xavier.claessens@collabora.com>
+Date: Tue, 11 May 2021 09:18:47 -0400
+Subject: [PATCH] gnome: Fix gtkdoc generation
+
+install_scripts used to replace @BUILD_ROOT@ and @SOURCE_ROOT@ but it
+was not documented and got removed in Meson 0.58.0. gnome.gtkdoc() was
+relying on that behaviour, but it has always been broken in the case the
+source or build directory contains spaces.
+
+Fix this by changing get_include_args() to substitue paths directly
+which will then get escaped correctly.
+
+Add a unit test that builds GObject documentation which is where this
+issue has been spotted.
+
+Fixes: #8744
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ mesonbuild/modules/__init__.py                | 54 +++++++++----------
+ mesonbuild/modules/gnome.py                   | 15 +++---
+ mesonbuild/modules/hotdoc.py                  |  3 +-
+ mesonbuild/modules/qt.py                      |  4 +-
+ mesonbuild/modules/windows.py                 |  5 +-
+ .../10 gtk-doc/doc/foobar1/foobar-docs.sgml   |  2 +-
+ .../doc/foobar1/foobar-sections.txt           | 16 ++++++
+ .../10 gtk-doc/doc/foobar1/foobar.types       |  4 ++
+ .../10 gtk-doc/doc/foobar1/meson.build        |  6 ++-
+ test cases/frameworks/10 gtk-doc/foo.c        | 30 +++++++++++
+ .../frameworks/10 gtk-doc/include/foo.h       | 18 +++++++
+ test cases/frameworks/10 gtk-doc/meson.build  | 12 +++++
+ test cases/frameworks/10 gtk-doc/test.json    |  4 +-
+ 13 files changed, 127 insertions(+), 46 deletions(-)
+ create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
+ create mode 100644 test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
+ create mode 100644 test cases/frameworks/10 gtk-doc/foo.c
+
+diff --git a/mesonbuild/modules/__init__.py b/mesonbuild/modules/__init__.py
+index ddb5e3e6cf3..c0970294c34 100644
+--- a/mesonbuild/modules/__init__.py
++++ b/mesonbuild/modules/__init__.py
+@@ -56,6 +56,33 @@ def __init__(self, interpreter: 'Interpreter') -> None:
+         self.target_machine = interpreter.builtin['target_machine'].held_object
+         self.current_node = interpreter.current_node
+ 
++    def get_include_args(self, include_dirs, prefix='-I'):
++        if not include_dirs:
++            return []
++
++        srcdir = self.environment.get_source_dir()
++        builddir = self.environment.get_build_dir()
++
++        dirs_str = []
++        for dirs in unholder(include_dirs):
++            if isinstance(dirs, str):
++                dirs_str += [f'{prefix}{dirs}']
++                continue
++
++            # Should be build.IncludeDirs object.
++            basedir = dirs.get_curdir()
++            for d in dirs.get_incdirs():
++                expdir = os.path.join(basedir, d)
++                srctreedir = os.path.join(srcdir, expdir)
++                buildtreedir = os.path.join(builddir, expdir)
++                dirs_str += [f'{prefix}{buildtreedir}',
++                             f'{prefix}{srctreedir}']
++            for d in dirs.get_extra_build_dirs():
++                dirs_str += [f'{prefix}{d}']
++
++        return dirs_str
++
++
+ class ModuleObject:
+     """Base class for all objects returned by modules
+     """
+@@ -71,33 +98,6 @@ def __init__(self, interpreter: T.Optional['Interpreter'] = None) -> None:
+ class ExtensionModule(ModuleObject):
+     pass
+ 
+-def get_include_args(include_dirs, prefix='-I'):
+-    '''
+-    Expand include arguments to refer to the source and build dirs
+-    by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution
+-    '''
+-    if not include_dirs:
+-        return []
+-
+-    dirs_str = []
+-    for dirs in unholder(include_dirs):
+-        if isinstance(dirs, str):
+-            dirs_str += [f'{prefix}{dirs}']
+-            continue
+-
+-        # Should be build.IncludeDirs object.
+-        basedir = dirs.get_curdir()
+-        for d in dirs.get_incdirs():
+-            expdir = os.path.join(basedir, d)
+-            srctreedir = os.path.join('@SOURCE_ROOT@', expdir)
+-            buildtreedir = os.path.join('@BUILD_ROOT@', expdir)
+-            dirs_str += [f'{prefix}{buildtreedir}',
+-                         f'{prefix}{srctreedir}']
+-        for d in dirs.get_extra_build_dirs():
+-            dirs_str += [f'{prefix}{d}']
+-
+-    return dirs_str
+-
+ def is_module_library(fname):
+     '''
+     Check if the file is a library-like file generated by a module-specific
+diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
+index d0b053d4f76..c91cda66f8b 100644
+--- a/mesonbuild/modules/gnome.py
++++ b/mesonbuild/modules/gnome.py
+@@ -26,7 +26,6 @@
+ from .. import mesonlib
+ from .. import interpreter
+ from . import GResourceTarget, GResourceHeaderTarget, GirTarget, TypelibTarget, VapiTarget
+-from . import get_include_args
+ from . import ExtensionModule
+ from . import ModuleReturnValue
+ from ..mesonlib import (
+@@ -394,7 +393,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
+                     gi_includes.update([girdir])
+             if isinstance(dep, InternalDependency):
+                 cflags.update(dep.get_compile_args())
+-                cflags.update(get_include_args(dep.include_directories))
++                cflags.update(state.get_include_args(dep.include_directories))
+                 for lib in unholder(dep.libraries):
+                     if isinstance(lib, build.SharedLibrary):
+                         internal_ldflags.update(self._get_link_args(state, lib, depends, include_rpath))
+@@ -443,7 +442,7 @@ def _get_dependencies_flags(self, deps, state, depends, include_rpath=False,
+                     else:
+                         external_ldflags.update([lib])
+             elif isinstance(dep, (build.StaticLibrary, build.SharedLibrary)):
+-                cflags.update(get_include_args(dep.get_include_dirs()))
++                cflags.update(state.get_include_args(dep.get_include_dirs()))
+                 depends.append(dep)
+             else:
+                 mlog.log(f'dependency {dep!r} not handled to build gir files')
+@@ -853,7 +852,7 @@ def generate_gir(self, state, args, kwargs):
+         scan_command += self._scan_header(kwargs)
+         scan_command += self._scan_extra_args(kwargs)
+         scan_command += ['-I' + srcdir, '-I' + builddir]
+-        scan_command += get_include_args(girtargets_inc_dirs)
++        scan_command += state.get_include_args(girtargets_inc_dirs)
+         scan_command += ['--filelist=' + self._make_gir_filelist(state, srcdir, ns, nsversion, girtargets, libsources)]
+         scan_command += self._scan_link_withs(state, depends, kwargs)
+         scan_command += self._scan_include(state, depends, gir_inc_dirs, kwargs)
+@@ -863,8 +862,8 @@ def generate_gir(self, state, args, kwargs):
+         scan_command += ['--cflags-begin']
+         scan_command += cflags
+         scan_command += ['--cflags-end']
+-        scan_command += get_include_args(inc_dirs)
+-        scan_command += get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
++        scan_command += state.get_include_args(inc_dirs)
++        scan_command += state.get_include_args(list(gi_includes) + gir_inc_dirs + inc_dirs, prefix='--add-include-path=')
+         scan_command += list(internal_ldflags)
+         scan_command += self._scan_gir_targets(state, girtargets)
+         scan_command += self._scan_langs(state, [lc[0] for lc in langs_compilers])
+@@ -886,7 +885,7 @@ def generate_gir(self, state, args, kwargs):
+ 
+         typelib_output = f'{ns}-{nsversion}.typelib'
+         typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@']
+-        typelib_cmd += get_include_args(gir_inc_dirs, prefix='--includedir=')
++        typelib_cmd += state.get_include_args(gir_inc_dirs, prefix='--includedir=')
+ 
+         for incdir in typelib_includes:
+             typelib_cmd += ["--includedir=" + incdir]
+@@ -1127,7 +1126,7 @@ def _get_build_args(self, kwargs, state, depends):
+                     'Gir include dirs should be include_directories().')
+ 
+         cflags.extend(deps_cflags)
+-        cflags.extend(get_include_args(inc_dirs))
++        cflags.extend(state.get_include_args(inc_dirs))
+         ldflags = []
+         ldflags.extend(internal_ldflags)
+         ldflags.extend(external_ldflags)
+diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py
+index bf8cd229c0d..89a5d938ea7 100644
+--- a/mesonbuild/modules/hotdoc.py
++++ b/mesonbuild/modules/hotdoc.py
+@@ -22,7 +22,6 @@
+ from mesonbuild.coredata import MesonException
+ from . import ModuleReturnValue
+ from . import ExtensionModule
+-from . import get_include_args
+ from ..dependencies import Dependency, InternalDependency
+ from ..interpreterbase import FeatureNew, InvalidArguments, noPosargs, noKwargs
+ from ..interpreter import CustomTargetHolder
+@@ -191,7 +190,7 @@ def process_dependencies(self, deps):
+         for dep in mesonlib.listify(ensure_list(deps)):
+             dep = getattr(dep, "held_object", dep)
+             if isinstance(dep, InternalDependency):
+-                inc_args = get_include_args(dep.include_directories)
++                inc_args = self.state.get_include_args(dep.include_directories)
+                 cflags.update([self.replace_dirs_in_string(x)
+                                for x in inc_args])
+                 cflags.update(self.process_dependencies(dep.libraries))
+diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py
+index b7389bd59af..1bf0099d1df 100644
+--- a/mesonbuild/modules/qt.py
++++ b/mesonbuild/modules/qt.py
+@@ -23,7 +23,7 @@
+ from ..mesonlib import MesonException, extract_as_list, File, unholder, version_compare
+ from ..dependencies import Dependency
+ import xml.etree.ElementTree as ET
+-from . import ModuleReturnValue, get_include_args, ExtensionModule
++from . import ModuleReturnValue, ExtensionModule
+ from ..interpreterbase import noPosargs, permittedKwargs, FeatureNew, FeatureNewKwargs
+ from ..interpreter import extract_required_kwarg
+ from ..programs import NonExistingExternalProgram
+@@ -239,7 +239,7 @@ def preprocess(self, state, args, kwargs):
+             ui_gen = build.Generator([self.uic], ui_kwargs)
+             ui_output = ui_gen.process_files(f'Qt{self.qt_version} ui', ui_files, state)
+             sources.append(ui_output)
+-        inc = get_include_args(include_dirs=include_directories)
++        inc = state.get_include_args(include_dirs=include_directories)
+         compile_args = []
+         for dep in unholder(dependencies):
+             if isinstance(dep, Dependency):
+diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py
+index d7a86380885..c4fdc196681 100644
+--- a/mesonbuild/modules/windows.py
++++ b/mesonbuild/modules/windows.py
+@@ -19,7 +19,6 @@
+ from .. import mlog
+ from .. import mesonlib, build
+ from ..mesonlib import MachineChoice, MesonException, extract_as_list, unholder
+-from . import get_include_args
+ from . import ModuleReturnValue
+ from . import ExtensionModule
+ from ..interpreter import CustomTargetHolder
+@@ -83,12 +82,12 @@ def compile_resources(self, state, args, kwargs):
+         wrc_depends = extract_as_list(kwargs, 'depends', pop = True)
+         for d in wrc_depends:
+             if isinstance(d, CustomTargetHolder):
+-                extra_args += get_include_args([d.outdir_include()])
++                extra_args += state.get_include_args([d.outdir_include()])
+         inc_dirs = extract_as_list(kwargs, 'include_directories', pop = True)
+         for incd in inc_dirs:
+             if not isinstance(incd.held_object, (str, build.IncludeDirs)):
+                 raise MesonException('Resource include dirs should be include_directories().')
+-        extra_args += get_include_args(inc_dirs)
++        extra_args += state.get_include_args(inc_dirs)
+ 
+         rescomp, rescomp_type = self._find_resource_compiler(state)
+         if rescomp_type == ResourceCompilerType.rc:
+diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml
+index 95f73efdf45..6ccd087dc18 100644
+--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml	
++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml	
+@@ -35,7 +35,7 @@
+     </partintro>
+     <xi:include href="xml/foo.xml"/>
+     <xi:include href="../../include/bar.xml"/>
+-    <xi:include href="xml/foo-version.xml"/>
++    <xi:include href="xml/version.xml"/>
+   </reference>
+ 
+ </book>
+diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt
+new file mode 100644
+index 00000000000..d14c8dab010
+--- /dev/null
++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt	
+@@ -0,0 +1,16 @@
++<SECTION>
++<FILE>foo</FILE>
++<TITLE>FooObj</TITLE>
++FooObj
++FooObjClass
++foo_do_something
++</SECTION>
++
++<SECTION>
++<FILE>version</FILE>
++<TITLE>version</TITLE>
++FOO_MAJOR_VERSION
++FOO_MINOR_VERSION
++FOO_MICRO_VERSION
++</SECTION>
++
+diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types
+new file mode 100644
+index 00000000000..0a9c046f3ed
+--- /dev/null
++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types	
+@@ -0,0 +1,4 @@
++% This include is useless it's a regression test for https://github.com/mesonbuild/meson/issues/8744
++#include <foo.h>
++
++foo_obj_get_type
+diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build
+index 149c6e956aa..f4b3724dbae 100644
+--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build	
++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build	
+@@ -1,5 +1,9 @@
+ gnome.gtkdoc('foobar',
+-  src_dir : inc,
++  src_dir : [inc, '.'],
+   main_sgml : 'foobar-docs.sgml',
+   content_files : [docbook, version_xml],
++  dependencies: foo_dep,
++  # Manually written types file for regression test:
++  # https://github.com/mesonbuild/meson/issues/8744
++  gobject_typesfile: 'foobar.types',
+   install : true)
+diff --git a/test cases/frameworks/10 gtk-doc/foo.c b/test cases/frameworks/10 gtk-doc/foo.c
+new file mode 100644
+index 00000000000..36c0639ec08
+--- /dev/null
++++ b/test cases/frameworks/10 gtk-doc/foo.c	
+@@ -0,0 +1,30 @@
++#include <foo.h>
++
++
++struct _FooObj {
++  GObject parent;
++  int dummy;
++};
++
++G_DEFINE_TYPE(FooObj, foo_obj, G_TYPE_OBJECT)
++
++static void foo_obj_init (FooObj *self)
++{
++}
++
++static void foo_obj_class_init (FooObjClass *klass)
++{
++}
++
++/**
++ * foo_do_something:
++ * @self: self
++ *
++ * Useless function.
++ *
++ * Returns: 0.
++ */
++int foo_do_something(FooObj *self)
++{
++  return 0;
++}
+diff --git a/test cases/frameworks/10 gtk-doc/include/foo.h b/test cases/frameworks/10 gtk-doc/include/foo.h
+index 7b8946b6a86..510f3d1ecb5 100644
+--- a/test cases/frameworks/10 gtk-doc/include/foo.h	
++++ b/test cases/frameworks/10 gtk-doc/include/foo.h	
+@@ -1,5 +1,7 @@
+ #pragma once
+ 
++#include <glib-object.h>
++
+ /**
+  * FooIndecision:
+  * @FOO_MAYBE:     Something maybe
+@@ -13,3 +15,19 @@ typedef enum {
+     FOO_POSSIBLY,
+ } FooIndecision;
+ 
++/**
++ * FooObjClass:
++ *
++ * The class
++ */
++
++/**
++ * FooObj:
++ *
++ * The instance
++ */
++
++#define FOO_TYPE_OBJ foo_obj_get_type()
++G_DECLARE_FINAL_TYPE(FooObj, foo_obj, FOO, OBJ, GObject)
++
++int foo_do_something(FooObj *self);
+diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test cases/frameworks/10 gtk-doc/meson.build
+index 5c22ad0afa4..292980fafa7 100644
+--- a/test cases/frameworks/10 gtk-doc/meson.build	
++++ b/test cases/frameworks/10 gtk-doc/meson.build	
+@@ -24,4 +24,16 @@ if gtkdoc_ver.version_compare('<1.26')
+   error('MESON_SKIP_TEST gtk-doc test requires gtkdoc >= 1.26.')
+ endif
+ 
++gobject = dependency('gobject-2.0')
++
++libfoo = library('foo', 'foo.c',
++  include_directories: inc,
++  dependencies: gobject,
++)
++
++foo_dep = declare_dependency(
++  link_with: libfoo,
++  include_directories: inc,
++)
++
+ subdir('doc')
+diff --git a/test cases/frameworks/10 gtk-doc/test.json b/test cases/frameworks/10 gtk-doc/test.json
+index c44126cc741..03ad0595817 100644
+--- a/test cases/frameworks/10 gtk-doc/test.json	
++++ b/test cases/frameworks/10 gtk-doc/test.json	
+@@ -4,8 +4,8 @@
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/BAR.html"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.devhelp2"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar.html"},
+-    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo.html"},
+-    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foobar-foo-version.html"},
++    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/FooObj.html"},
++    {"type": "file", "file": "usr/share/gtk-doc/html/foobar/foo-version.html"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/home.png"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/index.html"},
+     {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left.png"},
diff --git a/poky/meta/recipes-devtools/meson/meson/cross-prop-default.patch b/poky/meta/recipes-devtools/meson/meson/cross-prop-default.patch
deleted file mode 100644
index 772395e..0000000
--- a/poky/meta/recipes-devtools/meson/meson/cross-prop-default.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-meson.build files that use cc.run() in native builds can silently fallback to
-meson.get_cross_property() in cross builds without an exe-wrapper, but there's
-no way to know that this is happening.
-
-As the defaults may be pessimistic (for example, disabling the support for a
-feature that should be enabled) emit a warning when the default is used, so that
-the recipe can explicitly set the cross property as relevant.
-
-Upstream-Status: Submitted [https://github.com/mesonbuild/meson/pull/5071]
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
-index 3c3cfae0..10e741ae 100644
---- a/mesonbuild/interpreter.py
-+++ b/mesonbuild/interpreter.py
-@@ -1890,6 +1890,7 @@ class MesonMain(InterpreterObject):
-             return props[propname]
-         except Exception:
-             if len(args) == 2:
-+                mlog.warning('Cross property %s is using default value %s' % (propname, args[1]))
-                 return args[1]
-             raise InterpreterException('Unknown cross property: %s.' % propname)
- 
diff --git a/poky/meta/recipes-devtools/meson/meson/gi-target-dep.patch b/poky/meta/recipes-devtools/meson/meson/gi-target-dep.patch
index 25b30ca..29e164c 100644
--- a/poky/meta/recipes-devtools/meson/meson/gi-target-dep.patch
+++ b/poky/meta/recipes-devtools/meson/meson/gi-target-dep.patch
@@ -3,7 +3,7 @@
 native pkg-config can be used and the build will try to link native and host
 binaries together.
 
-Upstream-Status: Pending
+Upstream-Status: Backport [589236226856f591c9e8daf0cb7aa1aef8862388]
 Signed-off-by: Ross Burton <ross.burton@arm.com>
 
 diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
diff --git a/poky/meta/recipes-devtools/meson/meson_0.57.1.bb b/poky/meta/recipes-devtools/meson/meson_0.58.0.bb
similarity index 100%
rename from poky/meta/recipes-devtools/meson/meson_0.57.1.bb
rename to poky/meta/recipes-devtools/meson/meson_0.58.0.bb
diff --git a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.57.1.bb b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
similarity index 78%
rename from poky/meta/recipes-devtools/meson/nativesdk-meson_0.57.1.bb
rename to poky/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
index 8778cab..74e1a71 100644
--- a/poky/meta/recipes-devtools/meson/nativesdk-meson_0.57.1.bb
+++ b/poky/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb
@@ -1,21 +1,11 @@
 include meson.inc
 
-inherit siteinfo
+inherit meson-routines
 inherit nativesdk
 
 SRC_URI += "file://meson-setup.py \
             file://meson-wrapper"
 
-def meson_endian(prefix, d):
-    arch, os = d.getVar(prefix + "_ARCH"), d.getVar(prefix + "_OS")
-    sitedata = siteinfo_data_for_machine(arch, os, d)
-    if "endian-little" in sitedata:
-        return "little"
-    elif "endian-big" in sitedata:
-        return "big"
-    else:
-        bb.fatal("Cannot determine endianism for %s-%s" % (arch, os))
-
 # The cross file logic is similar but not identical to that in meson.bbclass,
 # since it's generating for an SDK rather than a cross-compile. Important
 # differences are:
@@ -44,7 +34,7 @@
 
 [host_machine]
 system = '${SDK_OS}'
-cpu_family = '${SDK_ARCH}'
+cpu_family = '${@meson_cpu_family("SDK_ARCH", d)}'
 cpu = '${SDK_ARCH}'
 endian = '${@meson_endian("SDK", d)}'
 EOF
diff --git a/poky/meta/recipes-devtools/mklibs/files/ac_init_fix.patch b/poky/meta/recipes-devtools/mklibs/files/ac_init_fix.patch
deleted file mode 100644
index 422af10..0000000
--- a/poky/meta/recipes-devtools/mklibs/files/ac_init_fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Get the version of mklibs by simpler means. The MKLIBS_VERSION string in the 
-configure.ac file is replaced with real version string by the 
-do_configure_prepend() function from the recipe .bb file.
-
-Upstream-Status: Inappropriate [configuration]
-
-Nitin A Kamble <nitin.a.kamble@intel.com>
-Date: 2011/01/24
-
-Index: mklibs/configure.ac
-===================================================================
---- mklibs.orig/configure.ac	2010-02-21 17:34:56.000000000 -0800
-+++ mklibs/configure.ac	2011-01-24 18:52:19.943242079 -0800
-@@ -1,4 +1,4 @@
--AC_INIT([mklibs],m4_esyscmd(dpkg-parsechangelog | perl -ne 'print $1 if m/^Version: (.*)$/;'))
-+AC_INIT([mklibs], MKLIBS_VERSION)
- AM_INIT_AUTOMAKE([foreign no-define])
- AC_CONFIG_HEADERS([config.h])
- AM_MAINTAINER_MODE
diff --git a/poky/meta/recipes-devtools/mklibs/files/avoid-failure-on-symbol-provided-by-application.patch b/poky/meta/recipes-devtools/mklibs/files/avoid-failure-on-symbol-provided-by-application.patch
deleted file mode 100644
index 17d9af4..0000000
--- a/poky/meta/recipes-devtools/mklibs/files/avoid-failure-on-symbol-provided-by-application.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From dcb45256970b15b672d0004533826c94083356e5 Mon Sep 17 00:00:00 2001
-From: Yuanjie Huang <yuanjie.huang@windriver.com>
-Date: Fri, 17 Apr 2015 14:48:20 +0800
-Subject: [PATCH 4/6] avoid failure on symbol provided by application
-
-Upstream-Status: Pending
-
-Undefined symbols in a library can be provided by the application
-that links to the library, such as `logsink' in libmultipath.so.0.
-This fix checks the type of object in which the symbol is needed
-and the existence of the symbol in application, when a symbol
-cannot be provided by libraries. It prevents false alarm on absence
-of symbols.
-
-Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
-
----
- src/mklibs | 28 ++++++++++++++++++++++++----
- 1 file changed, 24 insertions(+), 4 deletions(-)
-
-diff --git a/src/mklibs b/src/mklibs
-index a3533c0..66b7a09 100755
---- a/src/mklibs
-+++ b/src/mklibs
-@@ -133,9 +133,9 @@ class Symbol(object):
-         return '@'.join(ret)
- 
- class UndefinedSymbol(Symbol):
--    def __init__(self, name, weak, version, library):
-+    def __init__(self, name, weak, version, library, object):
-         super(UndefinedSymbol, self).__init__(name, version, library)
--        self.weak, self.library = weak, library
-+        self.weak, self.library, self.object = weak, library, object
- 
- def symbol_is_blacklisted(name):
-     # The ARM Embedded ABI spec states symbols under this namespace as
-@@ -152,6 +152,11 @@ def undefined_symbols(obj):
- 
-     output = command("mklibs-readelf", "--print-symbols-undefined", obj)
- 
-+    if len(obj) > len(dest_path) and obj[:len(dest_path)] == dest_path:
-+        object = obj[len(dest_path) + 1:-len('-so-stripped')]
-+    else:
-+        object = obj
-+
-     result = []
-     for line in output:
-         name, weak_string, version_string, library_string = line.split()[:4]
-@@ -171,7 +176,7 @@ def undefined_symbols(obj):
-         if library_string.lower() != 'none':
-             library = library_string
- 
--        result.append(UndefinedSymbol(name, weak, version, library))
-+        result.append(UndefinedSymbol(name, weak, version, library, object))
- 
-     return result
- 
-@@ -498,12 +503,13 @@ while 1:
-                      and re.search("^ps_", str(symbol)))
-                 and not (re.search("ld-linux.so.3$", str(symbol)))
-                 and not (re.search("^__gnu_local_gp", str(symbol)))):
--                debug(DEBUG_SPAM, "needed_symbols adding %s, weak: %s" % (symbol, symbol.weak))
-+                debug(DEBUG_SPAM, "needed_symbols adding %s, weak: %s, for %s" % (symbol, symbol.weak, obj))
-                 needed_symbols[str(symbol)] = symbol
-         libraries.update(library_depends(obj))
- 
-     # calculate what symbols are present in small_libs and available_libs
-     present_symbols = {}
-+    present_symbol_progs = {}
-     checked_libs = small_libs
-     checked_libs.extend(available_libs)
-     checked_libs.append(sysroot + ldlib)
-@@ -513,6 +519,12 @@ while 1:
-             names = symbol.base_names()
-             for name in names:
-                 present_symbols[name] = symbol
-+            if not so_pattern.match(lib):
-+                debug(DEBUG_SPAM, "present_symbol_progs adding %s, from executable %s" % (' '.join(names), lib))
-+                for name in names:
-+                    progs = present_symbol_progs.get(name, set())
-+                    progs.add(lib)
-+                    present_symbol_progs[name] = progs
- 
-     # are we finished?
-     num_unresolved = 0
-@@ -568,6 +580,14 @@ while 1:
-     for name in needed_symbols:
-         if not name in symbol_provider:
-             if not needed_symbols[name].weak:
-+                # WORKAROUND: Undefined symbols in a library can be provided by the application
-+                # that links to the library. So if the object which requires the symbol is a library
-+                # and some application can provide the symbol, the undefined symbol is skipped.
-+                symbol = needed_symbols[name]
-+                if so_pattern.match(symbol.object) and present_symbol_progs.get(name, None):
-+                    debug(DEBUG_SPAM, "symbol %s in library %s is provided by executable %s" \
-+                          % (name, symbol.object, ' '.join(present_symbol_progs[name])))
-+                    continue
-                 raise Exception("No library provides non-weak %s" % name)
-         else:
-             lib = symbol_provider[name]
--- 
-2.16.1
-
diff --git a/poky/meta/recipes-devtools/mklibs/files/fix_STT_GNU_IFUNC.patch b/poky/meta/recipes-devtools/mklibs/files/fix_STT_GNU_IFUNC.patch
deleted file mode 100644
index d27a489..0000000
--- a/poky/meta/recipes-devtools/mklibs/files/fix_STT_GNU_IFUNC.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-The libc6-dev in Ubuntu 9.04 is so old that the elf.h doesn't
-define STT_GNU_IFUNC, so we have to define it ourselves.
-
-Upstream-Status: Inappropriate [other] - old release specific, maybe removable
-
--- Dexuan Cui (dexuan.cui@intel.com) Feb 16, 2011.
-
-diff --git a/src/mklibs-readelf/main.cpp b/src/mklibs-readelf/main.cpp
-index 2444c39..56d93f8 100644
---- a/src/mklibs-readelf/main.cpp
-+++ b/src/mklibs-readelf/main.cpp
-@@ -6,6 +6,14 @@
- #include <vector>
- 
- #include <elf.h>
-+/*
-+ * The /usr/include/elf.h in some distributions(like Ubuntu 9.04) doesn't
-+ * define the macro. We need to define it here.
-+ */
-+#ifndef STT_GNU_IFUNC
-+#define STT_GNU_IFUNC   10              /* Symbol is indirect code object */
-+#endif
-+
- #include <getopt.h>
- 
- #include "elf.hpp"
diff --git a/poky/meta/recipes-devtools/mklibs/files/fix_cross_compile.patch b/poky/meta/recipes-devtools/mklibs/files/fix_cross_compile.patch
deleted file mode 100644
index 13e4606..0000000
--- a/poky/meta/recipes-devtools/mklibs/files/fix_cross_compile.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Remove dependency on dpkg
-
-Upstream-Status: Submitted
-
-Asking the host OS whether it supports multiarch is not useful
-in a cross-compilation environment, or if the user has specified
-a libdir explicitly. So this patch, based on the work of Mentor
-Graphics, removes mklibs's dependency on dpkg package.
-
-Signed-off-by: Yuanjie Huang <Yuanjie.Huang@windriver.com>
- src/mklibs | 30 +++++++++++++++++++-----------
- 1 file changed, 19 insertions(+), 11 deletions(-)
-
-diff --git a/src/mklibs b/src/mklibs
-index d9b784b..c5614ea 100755
---- a/src/mklibs
-+++ b/src/mklibs
-@@ -261,6 +261,11 @@ def extract_soname(so_file):
-     return ""
- 
- def multiarch(paths):
-+    # Asking the host OS whether it supports multiarch is not useful
-+    # in a cross-compilation environment, or if the user has specified
-+    # a libdir explicitly.
-+    if sysroot != "" or libdir != "":
-+        return paths
-     devnull = open('/dev/null', 'w')
-     dpkg_architecture = subprocess.Popen(
-         ['dpkg-architecture', '-qDEB_HOST_MULTIARCH'],
-@@ -340,7 +345,7 @@ lib_path = []
- dest_path = "DEST"
- ldlib = "LDLIB"
- include_default_lib_path = "yes"
--default_lib_path = multiarch(["/lib/", "/usr/lib/", "/usr/X11R6/lib/"])
-+default_lib_path = ["/lib/", "/usr/lib/", "/usr/X11R6/lib/"]
- libc_extras_dir = "/usr/lib/libc_pic"
- libc_extras_dir_default = True
- libdir = "lib"
-@@ -386,7 +391,7 @@ for opt, arg in optlist:
-     elif opt == "--libdir":
-         libdir = arg
-     elif opt in ("--help", "-h"):
--	usage(0)
-+        usage(0)
-         sys.exit(0)
-     elif opt in ("--version", "-V"):
-         version(vers)
-@@ -395,6 +400,7 @@ for opt, arg in optlist:
-         print "WARNING: unknown option: " + opt + "\targ: " + arg
- 
- if include_default_lib_path == "yes":
-+    default_lib_path = multiarch(default_lib_path)
-     lib_path.extend([a.replace("/lib/", "/" + libdir + "/") for a in default_lib_path])
- 
- if libc_extras_dir_default:
-@@ -661,16 +669,16 @@ ld_path_name = os.path.dirname(ldlib)
- ld_full_path = "../" + ldlib
- ld_file = find_lib(ld_file_name)
- 
--if ld_path_name != "/lib":
--    if os.access(dest_path + "/" + ld_file_name, os.F_OK):
--        os.remove(dest_path + "/" + ld_file_name)
-+#if ld_path_name != "/lib":
-+#    if os.access(dest_path + "/" + ld_file_name, os.F_OK):
-+#        os.remove(dest_path + "/" + ld_file_name)
- 
--if not os.path.exists(dest_path + "/../" + ld_path_name):
--    os.mkdir(dest_path + "/../" + ld_path_name)
-+#if not os.path.exists(dest_path + "/../" + ld_path_name):
-+#    os.mkdir(dest_path + "/../" + ld_path_name)
- 
--if not os.access(dest_path + "/" + ld_full_path, os.F_OK):
--    debug(DEBUG_NORMAL, "I: stripping and copying dynamic linker to " + ld_full_path)
-+if not os.access(dest_path + "/" + ld_file_name, os.F_OK):
-+    debug(DEBUG_NORMAL, "I: stripping and copying dynamic linker to " + ld_file_name)
-     command(target + "objcopy", "--strip-unneeded -R .note -R .comment",
--            ld_file, dest_path + "/" + ld_full_path)
-+            ld_file, dest_path + "/" + ld_file_name)
- 
--os.chmod(dest_path + "/" + ld_full_path, 0755)
-+os.chmod(dest_path + "/" + ld_file_name, 0755)
diff --git a/poky/meta/recipes-devtools/mklibs/files/show-GNU-unique-symbols-as-provided-symbols.patch b/poky/meta/recipes-devtools/mklibs/files/show-GNU-unique-symbols-as-provided-symbols.patch
deleted file mode 100644
index bc56593..0000000
--- a/poky/meta/recipes-devtools/mklibs/files/show-GNU-unique-symbols-as-provided-symbols.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From eddf04c7f8312e9c29cdb24e431b7e4fb2cc70ed Mon Sep 17 00:00:00 2001
-From: Yuanjie Huang <yuanjie.huang@windriver.com>
-Date: Wed, 15 Apr 2015 14:00:06 +0800
-Subject: [PATCH] Show GNU unique symbols as provided symbols
-
-Upstream-Status: Submitted
-
-GNU Unique symbol is a GNU extension employed by new version of GCC
-by default. Even Standard C++ library in GCC 4.9 provides some symbols,
-such as _ZNSs4_Rep20_S_empty_rep_storageE in this binding type instead
-of ELF standard weak binding.
-This patch adds support of this new binding type to mklibs-readelf.
-
-Signed-off-by: Yuanjie Huang <yuanjie.huang@windriver.com>
----
- src/mklibs-readelf/main.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mklibs-readelf/main.cpp b/src/mklibs-readelf/main.cpp
-index 56d93f8..0134530 100644
---- a/src/mklibs-readelf/main.cpp
-+++ b/src/mklibs-readelf/main.cpp
-@@ -88,7 +88,7 @@ static void process_symbols_provided (const Elf::section_type<Elf::section_type_
-     uint8_t type = symbol->get_type ();
-     const std::string &name = symbol->get_name_string ();
- 
--    if (bind != STB_GLOBAL && bind != STB_WEAK)
-+    if (bind != STB_GLOBAL && bind != STB_WEAK && bind != STB_GNU_UNIQUE)
-       continue;
-     if (shndx == SHN_UNDEF || shndx == SHN_ABS)
-       continue;
--- 
-1.8.5.2.233.g932f7e4
-
diff --git a/poky/meta/recipes-devtools/mklibs/files/sysrooted-ldso.patch b/poky/meta/recipes-devtools/mklibs/files/sysrooted-ldso.patch
deleted file mode 100644
index 75500a0..0000000
--- a/poky/meta/recipes-devtools/mklibs/files/sysrooted-ldso.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-In cross builds we will have to respect sysroot
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: mklibs-0.1.39/src/mklibs
-===================================================================
---- mklibs-0.1.39.orig/src/mklibs	2014-03-01 18:25:36.000000000 +0000
-+++ mklibs-0.1.39/src/mklibs	2014-10-19 00:51:46.813534596 +0000
-@@ -495,7 +495,7 @@
-     present_symbols = {}
-     checked_libs = small_libs
-     checked_libs.extend(available_libs)
--    checked_libs.append(ldlib)
-+    checked_libs.append(sysroot + ldlib)
-     for lib in checked_libs:
-         for symbol in provided_symbols(lib):
-             debug(DEBUG_SPAM, "present_symbols adding %s" % symbol)
diff --git a/poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.44.bb b/poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.44.bb
deleted file mode 100644
index 1784af1..0000000
--- a/poky/meta/recipes-devtools/mklibs/mklibs-native_0.1.44.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Shared library optimisation tool"
-DESCRIPTION = "mklibs produces cut-down shared libraries that contain only the routines required by a particular set of executables."
-HOMEPAGE = "https://launchpad.net/mklibs"
-SECTION = "devel"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=98d31037b13d896e33890738ef01af64"
-
-SRC_URI = "http://snapshot.debian.org/archive/debian/20180828T214102Z/pool/main/m/mklibs/mklibs_${PV}.tar.xz \
-	file://ac_init_fix.patch\
-	file://fix_STT_GNU_IFUNC.patch\
-	file://sysrooted-ldso.patch \
-	file://avoid-failure-on-symbol-provided-by-application.patch \
-	file://show-GNU-unique-symbols-as-provided-symbols.patch \
-	file://fix_cross_compile.patch \
-"
-
-SRC_URI[md5sum] = "6b6eeb9b4016c6a7317acc28c89e32cc"
-SRC_URI[sha256sum] = "3af0b6bd35e5b6fc58d8b68827fbae2ff6b7e20dd2b238ccb9b49d84722066c2"
-
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/m/mklibs/"
-
-inherit autotools gettext native
diff --git a/poky/meta/recipes-devtools/mmc/mmc-utils/0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch b/poky/meta/recipes-devtools/mmc/mmc-utils/0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch
deleted file mode 100644
index 1270735..0000000
--- a/poky/meta/recipes-devtools/mmc/mmc-utils/0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 04fbe6ddb5f1e02efbcae3cdf5beb16757a98948 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 10 May 2019 12:58:01 -0700
-Subject: [PATCH] mmc_cmd.c: Use extra braces when initializing subobjects
-
-clang warns with -Werror,-Wmissing-braces, as following error
-| mmc_cmds.c:1886:36: error: suggest braces around initialization of subobject [-Werror,-W
-missing-braces]
-|         struct rpmb_frame frame_status = {0};
-|                                           ^
-|                                           {}
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- mmc_cmds.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mmc_cmds.c b/mmc_cmds.c
-index 19a9da1..838e8c3 100644
---- a/mmc_cmds.c
-+++ b/mmc_cmds.c
-@@ -1883,7 +1883,7 @@ static int do_rpmb_op(int fd,
- 	u_int16_t rpmb_type;
- 	struct mmc_ioc_multi_cmd *mioc;
- 	struct mmc_ioc_cmd *ioc;
--	struct rpmb_frame frame_status = {0};
-+	struct rpmb_frame frame_status = {{0}};
- 
- 	if (!frame_in || !frame_out || !out_cnt)
- 		return -EINVAL;
diff --git a/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb b/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
index 8fe6069..bdd0bf7 100644
--- a/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
+++ b/poky/meta/recipes-devtools/mmc/mmc-utils_git.bb
@@ -5,13 +5,11 @@
 LIC_FILES_CHKSUM = "file://mmc.c;beginline=1;endline=20;md5=fae32792e20f4d27ade1c5a762d16b7d"
 
 SRCBRANCH ?= "master"
-SRCREV = "73d6c59af8d1bcedf5de4aa1f5d5b7f765f545f5"
+SRCREV = "43282e80e174cc73b09b81a4d17cb3a7b4dc5cfc"
 
 PV = "0.1+git${SRCPV}"
 
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git;branch=${SRCBRANCH} \
-           file://0001-mmc_cmd.c-Use-extra-braces-when-initializing-subobje.patch \
-           "
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git;branch=${SRCBRANCH}"
 UPSTREAM_CHECK_COMMITS = "1"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002006.bb b/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002009.bb
similarity index 86%
rename from poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002006.bb
rename to poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002009.bb
index c44ee63..2234f6a 100644
--- a/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002006.bb
+++ b/poky/meta/recipes-devtools/perl/libtest-needs-perl_0.002009.bb
@@ -17,8 +17,8 @@
 
 SRC_URI = "https://cpan.metacpan.org/authors/id/H/HA/${CPAN_AUTHOR}/${CPAN_NAME}-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "d5c96d51d8d5510f7c0b7f354c49af1c"
-SRC_URI[sha256sum] = "77f9fff0c96c5e09f34d0416b3533c3319f7cd0bb1f7fe8f8072ad59f433f0e5"
+SRC_URI[md5sum] = "5643cd323afb77d20363acbaf9b12bcc"
+SRC_URI[sha256sum] = "571c21193ad16195df58b06b268798796a391b398c443271721d2cc0fb7c4ac3"
 
 S = "${WORKDIR}/${CPAN_NAME}-${PV}"
 
diff --git a/poky/meta/recipes-devtools/pkgconf/pkgconf_1.7.3.bb b/poky/meta/recipes-devtools/pkgconf/pkgconf_1.7.4.bb
similarity index 96%
rename from poky/meta/recipes-devtools/pkgconf/pkgconf_1.7.3.bb
rename to poky/meta/recipes-devtools/pkgconf/pkgconf_1.7.4.bb
index 12496c3..9383210 100644
--- a/poky/meta/recipes-devtools/pkgconf/pkgconf_1.7.3.bb
+++ b/poky/meta/recipes-devtools/pkgconf/pkgconf_1.7.4.bb
@@ -20,7 +20,7 @@
     file://pkg-config-native.in \
     file://pkg-config-esdk.in \
 "
-SRC_URI[sha256sum] = "b846aea51cf696c3392a0ae58bef93e2e72f8e7073ca6ad1ed8b01c85871f9c0"
+SRC_URI[sha256sum] = "d73f32c248a4591139a6b17777c80d4deab6b414ec2b3d21d0a24be348c476ab"
 
 inherit autotools
 
diff --git a/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb b/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
index 72db876..964d85f 100644
--- a/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
+++ b/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb
@@ -11,7 +11,7 @@
 SRCREV = "edf8e6f0ea77ede073f07bff0d2ae1fc7a38103b"
 PV = "0.29.2+git${SRCPV}"
 
-SRC_URI = "git://anongit.freedesktop.org/pkg-config \
+SRC_URI = "git://gitlab.freedesktop.org/pkg-config/pkg-config.git;branch=master;protocol=https \
            file://pkg-config-esdk.in \
            file://pkg-config-native.in \
            file://fix-glib-configure-libtool-usage.patch \
diff --git a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.2.bb b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.3.bb
similarity index 95%
rename from poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.2.bb
rename to poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.3.bb
index 0a60ca7..d160fd6 100644
--- a/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.2.bb
+++ b/poky/meta/recipes-devtools/python-numpy/python3-numpy_1.20.3.bb
@@ -12,7 +12,7 @@
            file://0001-numpy-core-Define-RISCV-32-support.patch \
            file://run-ptest \
 "
-SRC_URI[sha256sum] = "c049f410c78e76ffb0af830a8afbdf8baac09897b4152b97b1a3b8345ee338ff"
+SRC_URI[sha256sum] = "b7340f0628ce1823c151e3d2a2a8cba2a3ff1357fba4475a24b1816e75c21f90"
 
 UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
index 680edbe..1082fe7 100644
--- a/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
+++ b/poky/meta/recipes-devtools/python/files/0001-conditionally-do-not-fetch-code-by-easy_install.patch
@@ -1,4 +1,4 @@
-From 6380cc63f79abe8b8404c9be5ed5f213a70c8c6a Mon Sep 17 00:00:00 2001
+From f6afc18e08a6c428ce8becd114c535a6840f1b9f Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 17 Jul 2018 10:13:38 +0800
 Subject: [PATCH] conditionally do not fetch code by easy_install
@@ -15,7 +15,7 @@
  1 file changed, 5 insertions(+)
 
 diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
-index eeb21b5..eca1edd 100644
+index 45adb6a..9ac3342 100644
 --- a/setuptools/command/easy_install.py
 +++ b/setuptools/command/easy_install.py
 @@ -636,6 +636,11 @@ class easy_install(Command):
diff --git a/poky/meta/recipes-devtools/python/python3-attrs_20.3.0.bb b/poky/meta/recipes-devtools/python/python3-attrs_21.2.0.bb
similarity index 74%
rename from poky/meta/recipes-devtools/python/python3-attrs_20.3.0.bb
rename to poky/meta/recipes-devtools/python/python3-attrs_21.2.0.bb
index 55cfda7..e89fbc9 100644
--- a/poky/meta/recipes-devtools/python/python3-attrs_20.3.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-attrs_21.2.0.bb
@@ -3,8 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
 
-SRC_URI[sha256sum] = "832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
-SRC_URI[md5sum] = "4fe38f89297b2b446d83190fce189f29"
+SRC_URI[sha256sum] = "ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
 
 inherit pypi setuptools3
 
diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.14.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.17.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-git_3.1.14.bb
rename to poky/meta/recipes-devtools/python/python3-git_3.1.17.bb
index 911c8f1..009cac6 100644
--- a/poky/meta/recipes-devtools/python/python3-git_3.1.14.bb
+++ b/poky/meta/recipes-devtools/python/python3-git_3.1.17.bb
@@ -12,7 +12,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "be27633e7509e58391f10207cd32b2a6cf5b908f92d9cd30da2e514e1137af61"
+SRC_URI[sha256sum] = "ee24bdc93dce357630764db659edaf6b8d664d4ff5447ccfeedd2dc5c253f41e"
 
 DEPENDS += " ${PYTHON_PN}-gitdb"
 
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.2.0.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.13.7.bb
similarity index 81%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_6.2.0.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_6.13.7.bb
index be94183..7688ff6 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.2.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.13.7.bb
@@ -7,7 +7,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "c16fbde26b65c98a2464c48209b066c2f6dab5e8e38acd9d959021eb8d58b6c0"
+SRC_URI[sha256sum] = "262bb8cee0293ad06c453e78cf89bddcb613b91f82ea5587f3787611ee62861b"
 
 RDEPENDS_${PN} += "python3-attrs python3-core python3-sortedcontainers"
 
diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_3.4.0.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.3.0.bb
similarity index 87%
rename from poky/meta/recipes-devtools/python/python3-importlib-metadata_3.4.0.bb
rename to poky/meta/recipes-devtools/python/python3-importlib-metadata_4.3.0.bb
index 81f24e5..f4ac3c4 100644
--- a/poky/meta/recipes-devtools/python/python3-importlib-metadata_3.4.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-importlib-metadata_4.3.0.bb
@@ -8,7 +8,7 @@
 PYPI_PACKAGE = "importlib_metadata"
 UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/"
 
-SRC_URI[sha256sum] = "fa5daa4477a7414ae34e95942e4dd07f62adf589143c875c133c1e53c4eff38d"
+SRC_URI[sha256sum] = "c4646abbce80191bb548636f846e353ff1edc46a06bc536ea0a60d53211dc690"
 
 S = "${WORKDIR}/importlib_metadata-${PV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb b/poky/meta/recipes-devtools/python/python3-jinja2_3.0.1.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb
rename to poky/meta/recipes-devtools/python/python3-jinja2_3.0.1.bb
index 11a4d54..b37a043 100644
--- a/poky/meta/recipes-devtools/python/python3-jinja2_2.11.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-jinja2_3.0.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=5dc88300786f1c214c1e9827a5229462"
 
-SRC_URI[sha256sum] = "a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"
+SRC_URI[sha256sum] = "703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"
 
 PYPI_PACKAGE = "Jinja2"
 
diff --git a/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb b/poky/meta/recipes-devtools/python/python3-libarchive-c_3.0.bb
similarity index 77%
rename from poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb
rename to poky/meta/recipes-devtools/python/python3-libarchive-c_3.0.bb
index 3a2d873..d291955 100644
--- a/poky/meta/recipes-devtools/python/python3-libarchive-c_2.9.bb
+++ b/poky/meta/recipes-devtools/python/python3-libarchive-c_3.0.bb
@@ -9,8 +9,8 @@
 
 inherit pypi setuptools3
 
-SRC_URI[md5sum] = "083bd2cb0043c1e22a52cb9a05e31532"
-SRC_URI[sha256sum] = "9919344cec203f5db6596a29b5bc26b07ba9662925a05e24980b84709232ef60"
+SRC_URI[md5sum] = "920885f5910aa8245e30896996e0415b"
+SRC_URI[sha256sum] = "6f12fa9cf0e44579e5f45bbf11aa455a930fbfdb13ea0ce3c3dfe7b9b9a452ba"
 
 RDEPENDS_${PN} += "\
   libarchive \
diff --git a/poky/meta/recipes-devtools/python/python3-markdown_3.3.4.bb b/poky/meta/recipes-devtools/python/python3-markdown_3.3.4.bb
new file mode 100644
index 0000000..47cccbe
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-markdown_3.3.4.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A Python implementation of John Gruber's Markdown."
+HOMEPAGE = "https://python-markdown.github.io/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=745aaad0c69c60039e638bff9ffc59ed"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "Markdown"
+SRC_URI[sha256sum] = "31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49"
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS_${PN} += "${PYTHON_PN}-logging ${PYTHON_PN}-setuptools"
diff --git a/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb b/poky/meta/recipes-devtools/python/python3-markupsafe_2.0.1.bb
similarity index 81%
rename from poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb
rename to poky/meta/recipes-devtools/python/python3-markupsafe_2.0.1.bb
index cade4e0..5be43b6 100644
--- a/poky/meta/recipes-devtools/python/python3-markupsafe_1.1.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-markupsafe_2.0.1.bb
@@ -3,8 +3,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[md5sum] = "43fd756864fe42063068e092e220c57b"
-SRC_URI[sha256sum] = "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"
+SRC_URI[sha256sum] = "594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"
 
 PYPI_PACKAGE = "MarkupSafe"
 inherit pypi setuptools3
diff --git a/poky/meta/recipes-devtools/python/python3-more-itertools_8.7.0.bb b/poky/meta/recipes-devtools/python/python3-more-itertools_8.8.0.bb
similarity index 74%
rename from poky/meta/recipes-devtools/python/python3-more-itertools_8.7.0.bb
rename to poky/meta/recipes-devtools/python/python3-more-itertools_8.8.0.bb
index 0cb6191..1c0e84d 100644
--- a/poky/meta/recipes-devtools/python/python3-more-itertools_8.7.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-more-itertools_8.8.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
 
-SRC_URI[sha256sum] = "c5d6da9ca3ff65220c3bfd2a8db06d698f05d4d2b9be57e1deb2be5a45019713"
+SRC_URI[sha256sum] = "83f0308e05477c68f56ea3a888172c78ed5d5b3c282addb67508e7ba6c8f813a"
 
 inherit pypi setuptools3 ptest
 
@@ -11,9 +11,13 @@
 	file://run-ptest \
 "
 
+RDEPENDS_${PN} += " \
+        ${PYTHON_PN}-asyncio \
+        "
+
 RDEPENDS_${PN}-ptest += " \
 	${PYTHON_PN}-pytest \
-"
+        "
 
 do_install_ptest() {
 	install -d ${D}${PTEST_PATH}/tests
diff --git a/poky/meta/recipes-devtools/python/python3-pygments_2.8.1.bb b/poky/meta/recipes-devtools/python/python3-pygments_2.9.0.bb
similarity index 82%
rename from poky/meta/recipes-devtools/python/python3-pygments_2.8.1.bb
rename to poky/meta/recipes-devtools/python/python3-pygments_2.9.0.bb
index a2e0083..7fedcb5 100644
--- a/poky/meta/recipes-devtools/python/python3-pygments_2.8.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pygments_2.9.0.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=98419e351433ac106a24e3ad435930bc"
 
 inherit setuptools3
-SRC_URI[sha256sum] = "2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94"
+SRC_URI[sha256sum] = "a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f"
 
 DEPENDS += "\
             ${PYTHON_PN} \
diff --git a/poky/meta/recipes-devtools/python/python3-pytest_6.2.2.bb b/poky/meta/recipes-devtools/python/python3-pytest_6.2.4.bb
similarity index 92%
rename from poky/meta/recipes-devtools/python/python3-pytest_6.2.2.bb
rename to poky/meta/recipes-devtools/python/python3-pytest_6.2.4.bb
index d221cbc..fa43e6e 100644
--- a/poky/meta/recipes-devtools/python/python3-pytest_6.2.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-pytest_6.2.4.bb
@@ -7,7 +7,7 @@
 
 SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch "
 
-SRC_URI[sha256sum] = "9d1edf9e7d0b84d72ea3dbcdfd22b35fb543a5e8f2a60092dd578936bf63d7f9"
+SRC_URI[sha256sum] = "50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b"
 
 inherit update-alternatives pypi setuptools3
 
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb b/poky/meta/recipes-devtools/python/python3-setuptools-scm_6.0.1.bb
similarity index 89%
rename from poky/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools-scm_6.0.1.bb
index ead80da..24409ed 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools-scm_6.0.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
 
-SRC_URI[sha256sum] = "c85b6b46d0edd40d2301038cdea96bb6adc14d62ef943e75afb08b3e7bcf142a"
+SRC_URI[sha256sum] = "d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92"
 
 PYPI_PACKAGE = "setuptools_scm"
 inherit pypi setuptools3
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools/reproducibility.patch b/poky/meta/recipes-devtools/python/python3-setuptools/reproducibility.patch
new file mode 100644
index 0000000..149d8ad
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-setuptools/reproducibility.patch
@@ -0,0 +1,40 @@
+The License-File lines in PKG-INFO change ordering depending on the order on disk, 
+for example for python-packaging, one build shows:
+
+License-File: LICENSE
+License-File: LICENSE.APACHE
+License-File: LICENSE.BSD
+
+and the other shows:
+
+License-File: LICENSE
+License-File: LICENSE.BSD
+License-File: LICENSE.APACHE
+
+This is because glob uses os.listdir() which is unsorted. Sort the result to avoid this.
+
+Upstream-Status: Submitted [https://github.com/pypa/setuptools/issues/2691]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: setuptools-57.0.0/setuptools/dist.py
+===================================================================
+--- setuptools-57.0.0.orig/setuptools/dist.py
++++ setuptools-57.0.0/setuptools/dist.py
+@@ -15,7 +15,7 @@ import distutils.command
+ from distutils.util import strtobool
+ from distutils.debug import DEBUG
+ from distutils.fancy_getopt import translate_longopt
+-from glob import iglob
++from glob import glob
+ import itertools
+ import textwrap
+ from typing import List, Optional, TYPE_CHECKING
+@@ -603,7 +603,7 @@ class Distribution(_Distribution):
+         return (
+             path
+             for pattern in patterns
+-            for path in iglob(pattern)
++            for path in sorted(glob(pattern))
+             if not path.endswith('~')
+             and os.path.isfile(path)
+         )
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_56.0.0.bb b/poky/meta/recipes-devtools/python/python3-setuptools_57.0.0.bb
similarity index 88%
rename from poky/meta/recipes-devtools/python/python3-setuptools_56.0.0.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools_57.0.0.bb
index 07a82ad..a15b51e 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_56.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_57.0.0.bb
@@ -8,9 +8,10 @@
 
 SRC_URI_append_class-native = " file://0001-conditionally-do-not-fetch-code-by-easy_install.patch"
 
-SRC_URI += "file://0001-change-shebang-to-python3.patch"
+SRC_URI += "file://0001-change-shebang-to-python3.patch \
+            file://reproducibility.patch"
 
-SRC_URI[sha256sum] = "08a1c0f99455307c48690f00d5c2ac2c1ccfab04df00454fef854ec145b81302"
+SRC_URI[sha256sum] = "401cbf33a7bf817d08014d51560fc003b895c4cdc1a5b521ad2969e928a07535"
 
 DEPENDS += "${PYTHON_PN}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-six_1.15.0.bb b/poky/meta/recipes-devtools/python/python3-six_1.15.0.bb
deleted file mode 100644
index 6c6f3f9..0000000
--- a/poky/meta/recipes-devtools/python/python3-six_1.15.0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-inherit setuptools3
-require python-six.inc
-
-SRC_URI[md5sum] = "9f90a0eaa0ea7747fda01ca79d21ebcb"
-SRC_URI[sha256sum] = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"
diff --git a/poky/meta/recipes-devtools/python/python3-six_1.16.0.bb b/poky/meta/recipes-devtools/python/python3-six_1.16.0.bb
new file mode 100644
index 0000000..1ba48d4
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-six_1.16.0.bb
@@ -0,0 +1,4 @@
+inherit setuptools3
+require python-six.inc
+
+SRC_URI[sha256sum] = "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"
diff --git a/poky/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb b/poky/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb
new file mode 100644
index 0000000..ba34082
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-smartypants_2.0.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Translator of plain ASCII punctuation characters into 'smart' typographic punctuation HTML entities"
+HOMEPAGE = "https://pythonhosted.org/smartypants/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=977036977591ac666c728921ecc54c4f"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "smartypants"
+SRC_URI[sha256sum] = "7812353a32022699a1aa8cd5626e01c94a946dcaeedaee2d0b382bae4c4cbf36"
+
+BBCLASSEXTEND = "native"
+
+UPSTREAM_CHECK_REGEX = "/${PYPI_PACKAGE}/(?P<pver>(?!2\.0\.1)(\d+[\.\-_]*)+)/"
diff --git a/poky/meta/recipes-devtools/python/python3-sortedcontainers_2.3.0.bb b/poky/meta/recipes-devtools/python/python3-sortedcontainers_2.4.0.bb
similarity index 79%
rename from poky/meta/recipes-devtools/python/python3-sortedcontainers_2.3.0.bb
rename to poky/meta/recipes-devtools/python/python3-sortedcontainers_2.4.0.bb
index 6060c03..0755d3e 100644
--- a/poky/meta/recipes-devtools/python/python3-sortedcontainers_2.3.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-sortedcontainers_2.4.0.bb
@@ -4,6 +4,6 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=7c7c6a1a12ec816da16c1839137d53ae"
 
 inherit pypi setuptools3
-SRC_URI[sha256sum] = "59cc937650cf60d677c16775597c89a960658a09cf7c1a668f86e1e4464b10a1"
+SRC_URI[sha256sum] = "25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-typogrify_2.0.7.bb b/poky/meta/recipes-devtools/python/python3-typogrify_2.0.7.bb
new file mode 100644
index 0000000..3becb0d
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-typogrify_2.0.7.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Filters to enhance web typography, including support for Django & Jinja templates"
+HOMEPAGE = "https://github.com/mintchaos/typogrify"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=12bc792d6f5415dbf421f3fd183c6dd2"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "typogrify"
+SRC_URI[sha256sum] = "8be4668cda434163ce229d87ca273a11922cb1614cb359970b7dc96eed13cb38"
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS_${PN} += "${PYTHON_PN}-smartypants"
+
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch b/poky/meta/recipes-devtools/python/python3/0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch
index 237645b..9ed0385 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Makefile-fix-Issue36464-parallel-build-race-problem.patch
@@ -9,8 +9,7 @@
 attempting to install python-config into a nonexistent BINDIR. Ensure it also
 exists in the libainstall target.
 
-Upstream-Status: Submitted [https://github.com/python/cpython/pull/13186]
-
+Upstream-Status: Backport [https://github.com/python/cpython/commit/a25c46bd7dd47a2f95b32d17ee2f66de214892c6]
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 ---
  Makefile.pre.in | 2 +-
diff --git a/poky/meta/recipes-devtools/python/python3_3.9.4.bb b/poky/meta/recipes-devtools/python/python3_3.9.5.bb
similarity index 98%
rename from poky/meta/recipes-devtools/python/python3_3.9.4.bb
rename to poky/meta/recipes-devtools/python/python3_3.9.5.bb
index cb371ce..f4002f2 100644
--- a/poky/meta/recipes-devtools/python/python3_3.9.4.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.9.5.bb
@@ -38,7 +38,7 @@
            file://12-distutils-prefix-is-inside-staging-area.patch \
            file://0001-Don-t-search-system-for-headers-libraries.patch \
            "
-SRC_URI[sha256sum] = "4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134"
+SRC_URI[sha256sum] = "0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83"
 
 # exclude pre-releases for both python 2.x and 3.x
 UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
@@ -344,6 +344,7 @@
 FILES_libpython3 = "${libdir}/libpython*.so.*"
 FILES_libpython3-staticdev += "${libdir}/python${PYTHON_MAJMIN}/config-${PYTHON_MAJMIN}-*/libpython${PYTHON_MAJMIN}.a"
 INSANE_SKIP_${PN}-dev += "dev-elf"
+INSANE_SKIP_${PN}-ptest = "dev-deps"
 
 # catch all the rest (unsorted)
 PACKAGES += "${PN}-misc"
@@ -367,7 +368,7 @@
 # See https://bugs.python.org/issue18748 and https://bugs.python.org/issue37395
 RDEPENDS_libpython3_append_libc-glibc = " libgcc"
 RDEPENDS_${PN}-ctypes_append_libc-glibc = " ${MLPREFIX}ldconfig"
-RDEPENDS_${PN}-ptest = "${PN}-modules ${PN}-tests unzip bzip2 libgcc tzdata-europe coreutils sed"
+RDEPENDS_${PN}-ptest = "${PN}-modules ${PN}-tests ${PN}-dev unzip bzip2 libgcc tzdata-europe coreutils sed"
 RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-tr-tr.iso-8859-9"
 RDEPENDS_${PN}-tkinter += "${@bb.utils.contains('PACKAGECONFIG', 'tk', 'tk tk-lib', '', d)}"
 RDEPENDS_${PN}-idle += "${@bb.utils.contains('PACKAGECONFIG', 'tk', '${PN}-tkinter tcl', '', d)}"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-native_5.2.0.bb b/poky/meta/recipes-devtools/qemu/qemu-native_6.0.0.bb
similarity index 89%
rename from poky/meta/recipes-devtools/qemu/qemu-native_5.2.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu-native_6.0.0.bb
index c8acff8..d23d7a8 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-native_5.2.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu-native_6.0.0.bb
@@ -6,4 +6,4 @@
 
 EXTRA_OECONF_append = " --target-list=${@get_qemu_usermode_target_list(d)} --disable-tools --disable-blobs --disable-guest-agent"
 
-PACKAGECONFIG ??= ""
+PACKAGECONFIG ??= "pie"
diff --git a/poky/meta/recipes-devtools/qemu/qemu-system-native_5.2.0.bb b/poky/meta/recipes-devtools/qemu/qemu-system-native_6.0.0.bb
similarity index 96%
rename from poky/meta/recipes-devtools/qemu/qemu-system-native_5.2.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu-system-native_6.0.0.bb
index 390dade..9d7d0cd 100644
--- a/poky/meta/recipes-devtools/qemu/qemu-system-native_5.2.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu-system-native_6.0.0.bb
@@ -11,7 +11,7 @@
 
 EXTRA_OECONF_append = " --target-list=${@get_qemu_system_target_list(d)}"
 
-PACKAGECONFIG ??= "fdt alsa kvm \
+PACKAGECONFIG ??= "fdt alsa kvm pie \
     ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
 "
 
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index 384b0c1..0cbd663 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -25,46 +25,29 @@
            file://0010-configure-Add-pkg-config-handling-for-libgcrypt.patch \
            file://0001-Add-enable-disable-udev.patch \
            file://0001-qemu-Do-not-include-file-if-not-exists.patch \
-           file://mingwfix.patch \
-           file://mmap.patch \
            file://mmap2.patch \
            file://determinism.patch \
            file://0001-tests-meson.build-use-relative-path-to-refer-to-file.patch \
-           file://CVE-2021-20203.patch \
-           file://CVE-2020-35517_1.patch \
-           file://CVE-2020-35517_2.patch \
-           file://CVE-2020-35517_3.patch \
-           file://CVE-2021-20181.patch \
-           file://CVE-2020-29443.patch \
-           file://CVE-2021-20221.patch \
-           file://CVE-2021-3409_1.patch \
-           file://CVE-2021-3409_2.patch \
-           file://CVE-2021-3409_3.patch \
-           file://CVE-2021-3409_4.patch \
-           file://CVE-2021-3409_5.patch \
-           file://CVE-2021-3409_6.patch \
-           file://CVE-2021-3416_1.patch \
-           file://CVE-2021-3416_2.patch \
-           file://CVE-2021-3416_3.patch \
-           file://CVE-2021-3416_4.patch \
-           file://CVE-2021-3416_5.patch \
-           file://CVE-2021-3416_6.patch \
-           file://CVE-2021-3416_7.patch \
-           file://CVE-2021-3416_8.patch \
-           file://CVE-2021-3416_9.patch \
-           file://CVE-2021-3416_10.patch \
-           file://CVE-2021-20257.patch \
-           file://CVE-2020-27821.patch \
-           file://CVE-2021-20263.patch \
-           file://CVE-2021-3392.patch \
+           file://0001-configure-fix-detection-of-gdbus-codegen.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
-SRC_URI[sha256sum] = "cb18d889b628fbe637672b0326789d9b0e3b8027e0445b936537c78549df17bc"
+SRC_URI[sha256sum] = "87bc1a471ca24b97e7005711066007d443423d19aacda3d442558ae032fa30b9"
 
 SRC_URI_append_class-target = " file://cross.patch"
 SRC_URI_append_class-nativesdk = " file://cross.patch"
 
+# Applies against virglrender < 0.6.0 and not qemu itself
+CVE_CHECK_WHITELIST += "CVE-2017-5957"
+
+# The VNC server can expose host files uder some circumstances. We don't
+# enable it by default.
+CVE_CHECK_WHITELIST += "CVE-2007-0998"
+
+# 'The issues identified by this CVE were determined to not constitute a vulnerability.'
+# https://bugzilla.redhat.com/show_bug.cgi?id=1609015#c11
+CVE_CHECK_WHITELIST += "CVE-2018-18438"
+
 COMPATIBLE_HOST_mipsarchn32 = "null"
 COMPATIBLE_HOST_mipsarchn64 = "null"
 
@@ -82,8 +65,6 @@
 	find ${D}${PTEST_PATH}/tests -type f -name "*.[Sshcodp]" | xargs -i rm -rf {}
 
 	# Don't check the file genreated by configure
-        sed -i -e 's,${HOSTTOOLS_DIR}/python3,${bindir}/python3,' \
-            ${D}/${PTEST_PATH}/tests/qemu-iotests/common.env 
 	sed -i -e "1s,#!/usr/bin/bash,#!${base_bindir}/bash," ${D}${PTEST_PATH}/tests/data/acpi/disassemle-aml.sh
 
 	# Strip the paths from the QEMU variable, we can use PATH
@@ -110,7 +91,7 @@
     --extra-cflags='${CFLAGS}' \
     --extra-ldflags='${LDFLAGS}' \
     --with-git=/bin/false \
-    --disable-git-update \
+    --with-git-submodules=ignore \
     --meson=meson \
     ${PACKAGECONFIG_CONFARGS} \
     "
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch
index c99adee..4b37967 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-Add-enable-disable-udev.patch
@@ -12,13 +12,13 @@
  configure | 4 ++++
  1 file changed, 4 insertions(+)
 
-Index: qemu-5.2.0/configure
+Index: qemu-6.0.0/configure
 ===================================================================
---- qemu-5.2.0.orig/configure
-+++ qemu-5.2.0/configure
-@@ -1525,6 +1525,10 @@ for opt do
+--- qemu-6.0.0.orig/configure
++++ qemu-6.0.0/configure
+@@ -1565,6 +1565,10 @@ for opt do
    ;;
-   --disable-libdaxctl) libdaxctl=no
+   --disable-gio) gio=no
    ;;
 +  --enable-libudev) libudev="yes"
 +  ;;
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-configure-fix-detection-of-gdbus-codegen.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-configure-fix-detection-of-gdbus-codegen.patch
new file mode 100644
index 0000000..8bffc31
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-configure-fix-detection-of-gdbus-codegen.patch
@@ -0,0 +1,50 @@
+From 464cfc64201b21386030b8f353fe9724a3413a85 Mon Sep 17 00:00:00 2001
+From: Paolo Bonzini <pbonzini@redhat.com>
+Date: Wed, 5 May 2021 10:15:34 -0400
+Subject: [PATCH] configure: fix detection of gdbus-codegen
+
+"pkg-config --variable=gdbus_codegen gio-2.0" returns "gdbus-codegen",
+and it does not pass test -x (which does not walk the path).
+
+Meson 0.58.0 notices that something is iffy, as the dbus_vmstate1
+assignment in tests/qtest/meson.build uses an empty string as the
+command, and fails very eloquently:
+
+../tests/qtest/meson.build:92:2: ERROR: No program name specified.
+
+Use the "has" function instead of test -x, and fix the generation
+of config-host.mak since meson.build expects that GDBUS_CODEGEN
+is absent, rather than empty, if the tool is unavailable.
+
+Reported-by: Sebastian Mitterle <smitterl@redhat.com>
+Fixes: #178
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commitdiff;h=5ecfb76ccc056eb6127e44268e475827ae73b9e0]
+(not in 6.0.0, should be kept when upgrading)
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+Index: qemu-6.0.0/configure
+===================================================================
+--- qemu-6.0.0.orig/configure
++++ qemu-6.0.0/configure
+@@ -3366,7 +3366,7 @@ if ! test "$gio" = "no"; then
+         gio_cflags=$($pkg_config --cflags gio-2.0)
+         gio_libs=$($pkg_config --libs gio-2.0)
+         gdbus_codegen=$($pkg_config --variable=gdbus_codegen gio-2.0)
+-        if [ ! -x "$gdbus_codegen" ]; then
++        if ! has "$gdbus_codegen"; then
+             gdbus_codegen=
+         fi
+         # Check that the libraries actually work -- Ubuntu 18.04 ships
+@@ -5704,6 +5704,8 @@ if test "$gio" = "yes" ; then
+     echo "CONFIG_GIO=y" >> $config_host_mak
+     echo "GIO_CFLAGS=$gio_cflags" >> $config_host_mak
+     echo "GIO_LIBS=$gio_libs" >> $config_host_mak
++fi
++if test "$gdbus_codegen" != "" ; then
+     echo "GDBUS_CODEGEN=$gdbus_codegen" >> $config_host_mak
+ fi
+ echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
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 8ce12bd..2f2d19f 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
@@ -20,10 +20,10 @@
  hw/usb/dev-wacom.c | 94 +++++++++++++++++++++++++++++++++++++++++++++-
  1 file changed, 93 insertions(+), 1 deletion(-)
 
-Index: qemu-5.2.0/hw/usb/dev-wacom.c
+Index: qemu-6.0.0/hw/usb/dev-wacom.c
 ===================================================================
---- qemu-5.2.0.orig/hw/usb/dev-wacom.c
-+++ qemu-5.2.0/hw/usb/dev-wacom.c
+--- qemu-6.0.0.orig/hw/usb/dev-wacom.c
++++ qemu-6.0.0/hw/usb/dev-wacom.c
 @@ -69,6 +69,89 @@ static const USBDescStrings desc_strings
      [STR_SERIALNUMBER]     = "1",
  };
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch
index 3fe9aa6..b8d288d 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-qemu-Do-not-include-file-if-not-exists.patch
@@ -15,11 +15,11 @@
  linux-user/syscall.c | 2 ++
  1 file changed, 2 insertions(+)
 
-Index: qemu-5.2.0/linux-user/syscall.c
+Index: qemu-6.0.0/linux-user/syscall.c
 ===================================================================
---- qemu-5.2.0.orig/linux-user/syscall.c
-+++ qemu-5.2.0/linux-user/syscall.c
-@@ -109,7 +109,9 @@
+--- qemu-6.0.0.orig/linux-user/syscall.c
++++ qemu-6.0.0/linux-user/syscall.c
+@@ -113,7 +113,9 @@
  #include <linux/blkpg.h>
  #include <netpacket/packet.h>
  #include <linux/netlink.h>
@@ -28,4 +28,4 @@
 +#endif
  #include <linux/rtc.h>
  #include <sound/asound.h>
- #ifdef CONFIG_BTRFS
+ #ifdef HAVE_BTRFS_H
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0001-tests-meson.build-use-relative-path-to-refer-to-file.patch b/poky/meta/recipes-devtools/qemu/qemu/0001-tests-meson.build-use-relative-path-to-refer-to-file.patch
index 5cb5757..d5e1ab4 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0001-tests-meson.build-use-relative-path-to-refer-to-file.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0001-tests-meson.build-use-relative-path-to-refer-to-file.patch
@@ -16,19 +16,16 @@
  tests/meson.build   | 2 +-
  1 files changed, 1 insertions(+), 1 deletion(-)
 
-diff --git a/tests/meson.build b/tests/meson.build
-index afeb6be..54684b5 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -113,7 +113,7 @@ tests = {
+Index: qemu-6.0.0/tests/unit/meson.build
+===================================================================
+--- qemu-6.0.0.orig/tests/unit/meson.build
++++ qemu-6.0.0/tests/unit/meson.build
+@@ -42,7 +42,7 @@ tests = {
    'test-keyval': [testqapi],
    'test-logging': [],
    'test-uuid': [],
 -  'ptimer-test': ['ptimer-test-stubs.c', meson.source_root() / 'hw/core/ptimer.c'],
-+  'ptimer-test': ['ptimer-test-stubs.c', '../hw/core/ptimer.c'],
++  'ptimer-test': ['ptimer-test-stubs.c', '../../hw/core/ptimer.c'],
    'test-qapi-util': [],
  }
  
--- 
-2.29.2
-
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 fd54f96..733789b 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
@@ -18,13 +18,13 @@
  hw/mips/malta.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-Index: qemu-5.2.0/hw/mips/malta.c
+Index: qemu-6.0.0/hw/mips/malta.c
 ===================================================================
---- qemu-5.2.0.orig/hw/mips/malta.c
-+++ qemu-5.2.0/hw/mips/malta.c
-@@ -62,7 +62,7 @@
- 
- #define ENVP_ADDR           0x80002000l
+--- qemu-6.0.0.orig/hw/mips/malta.c
++++ qemu-6.0.0/hw/mips/malta.c
+@@ -65,7 +65,7 @@
+ #define ENVP_PADDR          0x2000
+ #define ENVP_VADDR          cpu_mips_phys_to_kseg0(NULL, ENVP_PADDR)
  #define ENVP_NB_ENTRIES     16
 -#define ENVP_ENTRY_SIZE     256
 +#define ENVP_ENTRY_SIZE     1024
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 a0bd1c5..330bcae 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
@@ -12,11 +12,11 @@
  configure | 9 ---------
  1 file changed, 9 deletions(-)
 
-Index: qemu-5.2.0/configure
+Index: qemu-6.0.0/configure
 ===================================================================
---- qemu-5.2.0.orig/configure
-+++ qemu-5.2.0/configure
-@@ -5001,15 +5001,6 @@ fi
+--- qemu-6.0.0.orig/configure
++++ qemu-6.0.0/configure
+@@ -4648,15 +4648,6 @@ fi
  # check if we have valgrind/valgrind.h
  
  valgrind_h=no
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch b/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
index 201125c..05dc849 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0006-chardev-connect-socket-to-a-spawned-command.patch
@@ -51,11 +51,11 @@
  qapi/char.json        |   5 +++
  3 files changed, 109 insertions(+)
 
-Index: qemu-5.2.0/chardev/char-socket.c
+Index: qemu-6.0.0/chardev/char-socket.c
 ===================================================================
---- qemu-5.2.0.orig/chardev/char-socket.c
-+++ qemu-5.2.0/chardev/char-socket.c
-@@ -1308,6 +1308,67 @@ static bool qmp_chardev_validate_socket(
+--- qemu-6.0.0.orig/chardev/char-socket.c
++++ qemu-6.0.0/chardev/char-socket.c
+@@ -1362,6 +1362,67 @@ static bool qmp_chardev_validate_socket(
      return true;
  }
  
@@ -123,7 +123,7 @@
  
  static void qmp_chardev_open_socket(Chardev *chr,
                                      ChardevBackend *backend,
-@@ -1316,6 +1377,9 @@ static void qmp_chardev_open_socket(Char
+@@ -1370,6 +1431,9 @@ static void qmp_chardev_open_socket(Char
  {
      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;
-@@ -1381,6 +1445,14 @@ static void qmp_chardev_open_socket(Char
+@@ -1446,6 +1510,14 @@ static void qmp_chardev_open_socket(Char
  
      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) {
-@@ -1400,6 +1472,9 @@ static void qemu_chr_parse_socket(QemuOp
+@@ -1465,6 +1537,9 @@ static void qemu_chr_parse_socket(QemuOp
      const char *host = qemu_opt_get(opts, "host");
      const char *port = qemu_opt_get(opts, "port");
      const char *fd = qemu_opt_get(opts, "fd");
@@ -158,7 +158,7 @@
  #ifdef CONFIG_LINUX
      bool tight = qemu_opt_get_bool(opts, "tight", true);
      bool abstract = qemu_opt_get_bool(opts, "abstract", false);
-@@ -1407,6 +1482,20 @@ static void qemu_chr_parse_socket(QemuOp
+@@ -1472,6 +1547,20 @@ static void qemu_chr_parse_socket(QemuOp
      SocketAddressLegacy *addr;
      ChardevSocket *sock;
  
@@ -179,7 +179,7 @@
      if ((!!path + !!fd + !!host) != 1) {
          error_setg(errp,
                     "Exactly one of 'path', 'fd' or 'host' required");
-@@ -1448,13 +1537,24 @@ static void qemu_chr_parse_socket(QemuOp
+@@ -1522,13 +1611,24 @@ static void qemu_chr_parse_socket(QemuOp
      sock->tls_creds = g_strdup(qemu_opt_get(opts, "tls-creds"));
      sock->has_tls_authz = qemu_opt_get(opts, "tls-authz");
      sock->tls_authz = g_strdup(qemu_opt_get(opts, "tls-authz"));
@@ -204,11 +204,11 @@
  #ifdef CONFIG_LINUX
          q_unix->has_tight = true;
          q_unix->tight = tight;
-Index: qemu-5.2.0/chardev/char.c
+Index: qemu-6.0.0/chardev/char.c
 ===================================================================
---- qemu-5.2.0.orig/chardev/char.c
-+++ qemu-5.2.0/chardev/char.c
-@@ -839,6 +839,9 @@ QemuOptsList qemu_chardev_opts = {
+--- qemu-6.0.0.orig/chardev/char.c
++++ qemu-6.0.0/chardev/char.c
+@@ -840,6 +840,9 @@ QemuOptsList qemu_chardev_opts = {
              .name = "path",
              .type = QEMU_OPT_STRING,
          },{
@@ -218,10 +218,10 @@
              .name = "host",
              .type = QEMU_OPT_STRING,
          },{
-Index: qemu-5.2.0/qapi/char.json
+Index: qemu-6.0.0/qapi/char.json
 ===================================================================
---- qemu-5.2.0.orig/qapi/char.json
-+++ qemu-5.2.0/qapi/char.json
+--- qemu-6.0.0.orig/qapi/char.json
++++ qemu-6.0.0/qapi/char.json
 @@ -250,6 +250,10 @@
  #
  # @addr: socket address to listen on (server=true)
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch b/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
index 294cf51..3491fa8 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0007-apic-fixup-fallthrough-to-PIC.patch
@@ -29,11 +29,11 @@
  hw/intc/apic.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-Index: qemu-5.2.0/hw/intc/apic.c
+Index: qemu-6.0.0/hw/intc/apic.c
 ===================================================================
---- qemu-5.2.0.orig/hw/intc/apic.c
-+++ qemu-5.2.0/hw/intc/apic.c
-@@ -605,7 +605,7 @@ int apic_accept_pic_intr(DeviceState *de
+--- qemu-6.0.0.orig/hw/intc/apic.c
++++ qemu-6.0.0/hw/intc/apic.c
+@@ -606,7 +606,7 @@ int apic_accept_pic_intr(DeviceState *de
      APICCommonState *s = APIC(dev);
      uint32_t lvt0;
  
diff --git a/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch b/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
index c5d206b..cc6a5fe 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
@@ -14,11 +14,11 @@
  configure | 48 ++++++++++++++++++++++++++++++++++++++++--------
  1 file changed, 40 insertions(+), 8 deletions(-)
 
-Index: qemu-5.2.0/configure
+Index: qemu-6.0.0/configure
 ===================================================================
---- qemu-5.2.0.orig/configure
-+++ qemu-5.2.0/configure
-@@ -2956,6 +2956,30 @@ has_libgcrypt() {
+--- qemu-6.0.0.orig/configure
++++ qemu-6.0.0/configure
+@@ -2847,6 +2847,30 @@ has_libgcrypt() {
      return 0
  }
  
@@ -49,7 +49,7 @@
  
  if test "$nettle" != "no"; then
      pass="no"
-@@ -2994,7 +3018,14 @@ fi
+@@ -2885,7 +2909,14 @@ fi
  
  if test "$gcrypt" != "no"; then
      pass="no"
@@ -65,7 +65,7 @@
          gcrypt_cflags=$(libgcrypt-config --cflags)
          gcrypt_libs=$(libgcrypt-config --libs)
          # Debian has removed -lgpg-error from libgcrypt-config
-@@ -3004,12 +3035,12 @@ if test "$gcrypt" != "no"; then
+@@ -2895,12 +2926,12 @@ if test "$gcrypt" != "no"; then
          then
              gcrypt_libs="$gcrypt_libs -lgpg-error"
          fi
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-27821.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-27821.patch
deleted file mode 100644
index 58622f0..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-27821.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 279f90a9ab07304f0a49fc10e4bfd1243a8cddbe Mon Sep 17 00:00:00 2001
-From: Paolo Bonzini <pbonzini@redhat.com>
-Date: Tue, 1 Dec 2020 09:29:56 -0500
-Subject: [PATCH 1/2] memory: clamp cached translation in case it points to an
- MMIO region
-
-In using the address_space_translate_internal API, address_space_cache_init
-forgot one piece of advice that can be found in the code for
-address_space_translate_internal:
-
-    /* MMIO registers can be expected to perform full-width accesses based only
-     * on their address, without considering adjacent registers that could
-     * decode to completely different MemoryRegions.  When such registers
-     * exist (e.g. I/O ports 0xcf8 and 0xcf9 on most PC chipsets), MMIO
-     * regions overlap wildly.  For this reason we cannot clamp the accesses
-     * here.
-     *
-     * If the length is small (as is the case for address_space_ldl/stl),
-     * everything works fine.  If the incoming length is large, however,
-     * the caller really has to do the clamping through memory_access_size.
-     */
-
-address_space_cache_init is exactly one such case where "the incoming length
-is large", therefore we need to clamp the resulting length---not to
-memory_access_size though, since we are not doing an access yet, but to
-the size of the resulting section.  This ensures that subsequent accesses
-to the cached MemoryRegionSection will be in range.
-
-With this patch, the enclosed testcase notices that the used ring does
-not fit into the MSI-X table and prints a "qemu-system-x86_64: Cannot map used"
-error.
-
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-
-Upstream-Status: Backport [4bfb024bc76973d40a359476dc0291f46e435442]
-CVE: CVE-2020-27821
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- softmmu/physmem.c       | 10 ++++++++
- tests/qtest/fuzz-test.c | 51 +++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 61 insertions(+)
-
-diff --git a/softmmu/physmem.c b/softmmu/physmem.c
-index 3027747c0..2cd1de4a2 100644
---- a/softmmu/physmem.c
-+++ b/softmmu/physmem.c
-@@ -3255,6 +3255,7 @@ int64_t address_space_cache_init(MemoryRegionCache *cache,
-     AddressSpaceDispatch *d;
-     hwaddr l;
-     MemoryRegion *mr;
-+    Int128 diff;
- 
-     assert(len > 0);
- 
-@@ -3263,6 +3264,15 @@ int64_t address_space_cache_init(MemoryRegionCache *cache,
-     d = flatview_to_dispatch(cache->fv);
-     cache->mrs = *address_space_translate_internal(d, addr, &cache->xlat, &l, true);
- 
-+    /*
-+     * cache->xlat is now relative to cache->mrs.mr, not to the section itself.
-+     * Take that into account to compute how many bytes are there between
-+     * cache->xlat and the end of the section.
-+     */
-+    diff = int128_sub(cache->mrs.size,
-+		      int128_make64(cache->xlat - cache->mrs.offset_within_region));
-+    l = int128_get64(int128_min(diff, int128_make64(l)));
-+
-     mr = cache->mrs.mr;
-     memory_region_ref(mr);
-     if (memory_access_is_direct(mr, is_write)) {
-diff --git a/tests/qtest/fuzz-test.c b/tests/qtest/fuzz-test.c
-index 9cb4c42bd..28739248e 100644
---- a/tests/qtest/fuzz-test.c
-+++ b/tests/qtest/fuzz-test.c
-@@ -47,6 +47,55 @@ static void test_lp1878642_pci_bus_get_irq_level_assert(void)
-     qtest_outl(s, 0x5d02, 0xebed205d);
- }
- 
-+/*
-+ * Here a MemoryRegionCache pointed to an MMIO region but had a
-+ * larger size than the underlying region.
-+ */
-+static void test_mmio_oob_from_memory_region_cache(void)
-+{
-+    QTestState *s;
-+
-+    s = qtest_init("-M pc-q35-5.2 -display none -m 512M "
-+		   "-device virtio-scsi,num_queues=8,addr=03.0 ");
-+
-+    qtest_outl(s, 0xcf8, 0x80001811);
-+    qtest_outb(s, 0xcfc, 0x6e);
-+    qtest_outl(s, 0xcf8, 0x80001824);
-+    qtest_outl(s, 0xcf8, 0x80001813);
-+    qtest_outl(s, 0xcfc, 0xa080000);
-+    qtest_outl(s, 0xcf8, 0x80001802);
-+    qtest_outl(s, 0xcfc, 0x5a175a63);
-+    qtest_outb(s, 0x6e08, 0x9e);
-+    qtest_writeb(s, 0x9f003, 0xff);
-+    qtest_writeb(s, 0x9f004, 0x01);
-+    qtest_writeb(s, 0x9e012, 0x0e);
-+    qtest_writeb(s, 0x9e01b, 0x0e);
-+    qtest_writeb(s, 0x9f006, 0x01);
-+    qtest_writeb(s, 0x9f008, 0x01);
-+    qtest_writeb(s, 0x9f00a, 0x01);
-+    qtest_writeb(s, 0x9f00c, 0x01);
-+    qtest_writeb(s, 0x9f00e, 0x01);
-+    qtest_writeb(s, 0x9f010, 0x01);
-+    qtest_writeb(s, 0x9f012, 0x01);
-+    qtest_writeb(s, 0x9f014, 0x01);
-+    qtest_writeb(s, 0x9f016, 0x01);
-+    qtest_writeb(s, 0x9f018, 0x01);
-+    qtest_writeb(s, 0x9f01a, 0x01);
-+    qtest_writeb(s, 0x9f01c, 0x01);
-+    qtest_writeb(s, 0x9f01e, 0x01);
-+    qtest_writeb(s, 0x9f020, 0x01);
-+    qtest_writeb(s, 0x9f022, 0x01);
-+    qtest_writeb(s, 0x9f024, 0x01);
-+    qtest_writeb(s, 0x9f026, 0x01);
-+    qtest_writeb(s, 0x9f028, 0x01);
-+    qtest_writeb(s, 0x9f02a, 0x01);
-+    qtest_writeb(s, 0x9f02c, 0x01);
-+    qtest_writeb(s, 0x9f02e, 0x01);
-+    qtest_writeb(s, 0x9f030, 0x01);
-+    qtest_outb(s, 0x6e10, 0x00);
-+    qtest_quit(s);
-+}
-+
- int main(int argc, char **argv)
- {
-     const char *arch = qtest_get_arch();
-@@ -58,6 +107,8 @@ int main(int argc, char **argv)
-                        test_lp1878263_megasas_zero_iov_cnt);
-         qtest_add_func("fuzz/test_lp1878642_pci_bus_get_irq_level_assert",
-                        test_lp1878642_pci_bus_get_irq_level_assert);
-+        qtest_add_func("fuzz/test_mmio_oob_from_memory_region_cache",
-+                       test_mmio_oob_from_memory_region_cache);
-     }
- 
-     return g_test_run();
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-29443.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-29443.patch
deleted file mode 100644
index c72324f..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-29443.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From c9a71afe182be5b62bd2ccdaf861695e0ec0731a Mon Sep 17 00:00:00 2001
-From: Prasad J Pandit <pjp@fedoraproject.org>
-Date: Mon, 18 Jan 2021 17:21:30 +0530
-Subject: [PATCH] ide: atapi: check logical block address and read size
- (CVE-2020-29443)
-
-While processing ATAPI cmd_read/cmd_read_cd commands,
-Logical Block Address (LBA) maybe invalid OR closer to the last block,
-leading to an OOB access issues. Add range check to avoid it.
-
-Fixes: CVE-2020-29443
-Reported-by: Wenxiang Qian <leonwxqian@gmail.com>
-Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
-Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-Message-Id: <20210118115130.457044-1-ppandit@redhat.com>
-Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-
-Upstream-Status: Backport [b8d7f1bc59276fec85e4d09f1567613a3e14d31e]
-CVE: CVE-2020-29443
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/ide/atapi.c | 30 ++++++++++++++++++++++++------
- 1 file changed, 24 insertions(+), 6 deletions(-)
-
-diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c
-index e79157863..b626199e3 100644
---- a/hw/ide/atapi.c
-+++ b/hw/ide/atapi.c
-@@ -322,6 +322,8 @@ static void ide_atapi_cmd_reply(IDEState *s, int size, int max_size)
- static void ide_atapi_cmd_read_pio(IDEState *s, int lba, int nb_sectors,
-                                    int sector_size)
- {
-+    assert(0 <= lba && lba < (s->nb_sectors >> 2));
-+
-     s->lba = lba;
-     s->packet_transfer_size = nb_sectors * sector_size;
-     s->elementary_transfer_size = 0;
-@@ -420,6 +422,8 @@ eot:
- static void ide_atapi_cmd_read_dma(IDEState *s, int lba, int nb_sectors,
-                                    int sector_size)
- {
-+    assert(0 <= lba && lba < (s->nb_sectors >> 2));
-+
-     s->lba = lba;
-     s->packet_transfer_size = nb_sectors * sector_size;
-     s->io_buffer_size = 0;
-@@ -973,35 +977,49 @@ static void cmd_prevent_allow_medium_removal(IDEState *s, uint8_t* buf)
- 
- static void cmd_read(IDEState *s, uint8_t* buf)
- {
--    int nb_sectors, lba;
-+    unsigned int nb_sectors, lba;
-+
-+    /* Total logical sectors of ATAPI_SECTOR_SIZE(=2048) bytes */
-+    uint64_t total_sectors = s->nb_sectors >> 2;
- 
-     if (buf[0] == GPCMD_READ_10) {
-         nb_sectors = lduw_be_p(buf + 7);
-     } else {
-         nb_sectors = ldl_be_p(buf + 6);
-     }
--
--    lba = ldl_be_p(buf + 2);
-     if (nb_sectors == 0) {
-         ide_atapi_cmd_ok(s);
-         return;
-     }
- 
-+    lba = ldl_be_p(buf + 2);
-+    if (lba >= total_sectors || lba + nb_sectors - 1 >= total_sectors) {
-+        ide_atapi_cmd_error(s, ILLEGAL_REQUEST, ASC_LOGICAL_BLOCK_OOR);
-+        return;
-+    }
-+
-     ide_atapi_cmd_read(s, lba, nb_sectors, 2048);
- }
- 
- static void cmd_read_cd(IDEState *s, uint8_t* buf)
- {
--    int nb_sectors, lba, transfer_request;
-+    unsigned int nb_sectors, lba, transfer_request;
- 
--    nb_sectors = (buf[6] << 16) | (buf[7] << 8) | buf[8];
--    lba = ldl_be_p(buf + 2);
-+    /* Total logical sectors of ATAPI_SECTOR_SIZE(=2048) bytes */
-+    uint64_t total_sectors = s->nb_sectors >> 2;
- 
-+    nb_sectors = (buf[6] << 16) | (buf[7] << 8) | buf[8];
-     if (nb_sectors == 0) {
-         ide_atapi_cmd_ok(s);
-         return;
-     }
- 
-+    lba = ldl_be_p(buf + 2);
-+    if (lba >= total_sectors || lba + nb_sectors - 1 >= total_sectors) {
-+        ide_atapi_cmd_error(s, ILLEGAL_REQUEST, ASC_LOGICAL_BLOCK_OOR);
-+        return;
-+    }
-+
-     transfer_request = buf[9] & 0xf8;
-     if (transfer_request == 0x00) {
-         /* nothing */
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_1.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_1.patch
deleted file mode 100644
index 73a4cb2..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_1.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From 8afaaee976965b7fb90ec225a51d60f35c5f173c Mon Sep 17 00:00:00 2001
-From: Stefan Hajnoczi <stefanha@redhat.com>
-Date: Thu, 4 Feb 2021 15:02:06 +0000
-Subject: [PATCH] virtiofsd: extract lo_do_open() from lo_open()
-
-Both lo_open() and lo_create() have similar code to open a file. Extract
-a common lo_do_open() function from lo_open() that will be used by
-lo_create() in a later commit.
-
-Since lo_do_open() does not otherwise need fuse_req_t req, convert
-lo_add_fd_mapping() to use struct lo_data *lo instead.
-
-Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-Message-Id: <20210204150208.367837-2-stefanha@redhat.com>
-Reviewed-by: Greg Kurz <groug@kaod.org>
-Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
-Upstream-Status: Backport
-[https://github.com/qemu/qemu/commit/8afaaee976965b7fb90ec225a51d60f35c5f173c]
-
-CVE: CVE-2020-35517
-
-Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
----
- tools/virtiofsd/passthrough_ll.c | 73 +++++++++++++++++++++++++---------------
- 1 file changed, 46 insertions(+), 27 deletions(-)
-
-diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
-index 5fb36d9..f14fa51 100644
---- a/tools/virtiofsd/passthrough_ll.c
-+++ b/tools/virtiofsd/passthrough_ll.c
-@@ -459,17 +459,17 @@ static void lo_map_remove(struct lo_map *map, size_t key)
- }
- 
- /* Assumes lo->mutex is held */
--static ssize_t lo_add_fd_mapping(fuse_req_t req, int fd)
-+static ssize_t lo_add_fd_mapping(struct lo_data *lo, int fd)
- {
-     struct lo_map_elem *elem;
- 
--    elem = lo_map_alloc_elem(&lo_data(req)->fd_map);
-+    elem = lo_map_alloc_elem(&lo->fd_map);
-     if (!elem) {
-         return -1;
-     }
- 
-     elem->fd = fd;
--    return elem - lo_data(req)->fd_map.elems;
-+    return elem - lo->fd_map.elems;
- }
- 
- /* Assumes lo->mutex is held */
-@@ -1651,6 +1651,38 @@ static void update_open_flags(int writeback, int allow_direct_io,
-     }
- }
- 
-+static int lo_do_open(struct lo_data *lo, struct lo_inode *inode,
-+                      struct fuse_file_info *fi)
-+{
-+    char buf[64];
-+    ssize_t fh;
-+    int fd;
-+
-+    update_open_flags(lo->writeback, lo->allow_direct_io, fi);
-+
-+    sprintf(buf, "%i", inode->fd);
-+    fd = openat(lo->proc_self_fd, buf, fi->flags & ~O_NOFOLLOW);
-+    if (fd == -1) {
-+        return errno;
-+    }
-+
-+    pthread_mutex_lock(&lo->mutex);
-+    fh = lo_add_fd_mapping(lo, fd);
-+    pthread_mutex_unlock(&lo->mutex);
-+    if (fh == -1) {
-+        close(fd);
-+        return ENOMEM;
-+    }
-+
-+    fi->fh = fh;
-+    if (lo->cache == CACHE_NONE) {
-+        fi->direct_io = 1;
-+    } else if (lo->cache == CACHE_ALWAYS) {
-+        fi->keep_cache = 1;
-+    }
-+    return 0;
-+}
-+
- static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
-                       mode_t mode, struct fuse_file_info *fi)
- {
-@@ -1691,7 +1723,7 @@ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
-         ssize_t fh;
- 
-         pthread_mutex_lock(&lo->mutex);
--        fh = lo_add_fd_mapping(req, fd);
-+        fh = lo_add_fd_mapping(lo, fd);
-         pthread_mutex_unlock(&lo->mutex);
-         if (fh == -1) {
-             close(fd);
-@@ -1892,38 +1924,25 @@ static void lo_fsyncdir(fuse_req_t req, fuse_ino_t ino, int datasync,
- 
- static void lo_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
- {
--    int fd;
--    ssize_t fh;
--    char buf[64];
-     struct lo_data *lo = lo_data(req);
-+    struct lo_inode *inode = lo_inode(req, ino);
-+    int err;
- 
-     fuse_log(FUSE_LOG_DEBUG, "lo_open(ino=%" PRIu64 ", flags=%d)\n", ino,
-              fi->flags);
- 
--    update_open_flags(lo->writeback, lo->allow_direct_io, fi);
--
--    sprintf(buf, "%i", lo_fd(req, ino));
--    fd = openat(lo->proc_self_fd, buf, fi->flags & ~O_NOFOLLOW);
--    if (fd == -1) {
--        return (void)fuse_reply_err(req, errno);
--    }
--
--    pthread_mutex_lock(&lo->mutex);
--    fh = lo_add_fd_mapping(req, fd);
--    pthread_mutex_unlock(&lo->mutex);
--    if (fh == -1) {
--        close(fd);
--        fuse_reply_err(req, ENOMEM);
-+    if (!inode) {
-+        fuse_reply_err(req, EBADF);
-         return;
-     }
- 
--    fi->fh = fh;
--    if (lo->cache == CACHE_NONE) {
--        fi->direct_io = 1;
--    } else if (lo->cache == CACHE_ALWAYS) {
--        fi->keep_cache = 1;
-+    err = lo_do_open(lo, inode, fi);
-+    lo_inode_put(lo, &inode);
-+    if (err) {
-+        fuse_reply_err(req, err);
-+    } else {
-+        fuse_reply_open(req, fi);
-     }
--    fuse_reply_open(req, fi);
- }
- 
- static void lo_release(fuse_req_t req, fuse_ino_t ino,
--- 
-1.8.3.1
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_2.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_2.patch
deleted file mode 100644
index bf11bdb..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_2.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 22d2ece71e533310da31f2857ebc4a00d91968b3 Mon Sep 17 00:00:00 2001
-From: Stefan Hajnoczi <stefanha@redhat.com>
-Date: Thu, 4 Feb 2021 15:02:07 +0000
-Subject: [PATCH] virtiofsd: optionally return inode pointer from
- lo_do_lookup()
-
-lo_do_lookup() finds an existing inode or allocates a new one. It
-increments nlookup so that the inode stays alive until the client
-releases it.
-
-Existing callers don't need the struct lo_inode so the function doesn't
-return it. Extend the function to optionally return the inode. The next
-commit will need it.
-
-Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-Reviewed-by: Greg Kurz <groug@kaod.org>
-Message-Id: <20210204150208.367837-3-stefanha@redhat.com>
-Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
-Upstream-Status: Backport
-[https://github.com/qemu/qemu/commit/22d2ece71e533310da31f2857ebc4a00d91968b3]
-
-CVE: CVE-2020-35517
-
-Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
----
- tools/virtiofsd/passthrough_ll.c | 29 +++++++++++++++++++++--------
- 1 file changed, 21 insertions(+), 8 deletions(-)
-
-diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
-index f14fa51..aa35fc6 100644
---- a/tools/virtiofsd/passthrough_ll.c
-+++ b/tools/virtiofsd/passthrough_ll.c
-@@ -831,11 +831,13 @@ static int do_statx(struct lo_data *lo, int dirfd, const char *pathname,
- }
- 
- /*
-- * Increments nlookup and caller must release refcount using
-- * lo_inode_put(&parent).
-+ * Increments nlookup on the inode on success. unref_inode_lolocked() must be
-+ * called eventually to decrement nlookup again. If inodep is non-NULL, the
-+ * inode pointer is stored and the caller must call lo_inode_put().
-  */
- static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
--                        struct fuse_entry_param *e)
-+                        struct fuse_entry_param *e,
-+                        struct lo_inode **inodep)
- {
-     int newfd;
-     int res;
-@@ -845,6 +847,10 @@ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
-     struct lo_inode *inode = NULL;
-     struct lo_inode *dir = lo_inode(req, parent);
- 
-+    if (inodep) {
-+        *inodep = NULL;
-+    }
-+
-     /*
-      * name_to_handle_at() and open_by_handle_at() can reach here with fuse
-      * mount point in guest, but we don't have its inode info in the
-@@ -913,7 +919,14 @@ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
-         pthread_mutex_unlock(&lo->mutex);
-     }
-     e->ino = inode->fuse_ino;
--    lo_inode_put(lo, &inode);
-+
-+    /* Transfer ownership of inode pointer to caller or drop it */
-+    if (inodep) {
-+        *inodep = inode;
-+    } else {
-+        lo_inode_put(lo, &inode);
-+    }
-+
-     lo_inode_put(lo, &dir);
- 
-     fuse_log(FUSE_LOG_DEBUG, "  %lli/%s -> %lli\n", (unsigned long long)parent,
-@@ -948,7 +961,7 @@ static void lo_lookup(fuse_req_t req, fuse_ino_t parent, const char *name)
-         return;
-     }
- 
--    err = lo_do_lookup(req, parent, name, &e);
-+    err = lo_do_lookup(req, parent, name, &e, NULL);
-     if (err) {
-         fuse_reply_err(req, err);
-     } else {
-@@ -1056,7 +1069,7 @@ static void lo_mknod_symlink(fuse_req_t req, fuse_ino_t parent,
-         goto out;
-     }
- 
--    saverr = lo_do_lookup(req, parent, name, &e);
-+    saverr = lo_do_lookup(req, parent, name, &e, NULL);
-     if (saverr) {
-         goto out;
-     }
-@@ -1534,7 +1547,7 @@ static void lo_do_readdir(fuse_req_t req, fuse_ino_t ino, size_t size,
- 
-         if (plus) {
-             if (!is_dot_or_dotdot(name)) {
--                err = lo_do_lookup(req, ino, name, &e);
-+                err = lo_do_lookup(req, ino, name, &e, NULL);
-                 if (err) {
-                     goto error;
-                 }
-@@ -1732,7 +1745,7 @@ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
-         }
- 
-         fi->fh = fh;
--        err = lo_do_lookup(req, parent, name, &e);
-+        err = lo_do_lookup(req, parent, name, &e, NULL);
-     }
-     if (lo->cache == CACHE_NONE) {
-         fi->direct_io = 1;
--- 
-1.8.3.1
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_3.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_3.patch
deleted file mode 100644
index f348f3f..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-35517_3.patch
+++ /dev/null
@@ -1,303 +0,0 @@
-From a3fdbbc7f271bff7d53d0501b29d910ece0b3789 Mon Sep 17 00:00:00 2001
-From: Stefan Hajnoczi <stefanha@redhat.com>
-Date: Thu, 4 Feb 2021 15:02:08 +0000
-Subject: [PATCH] virtiofsd: prevent opening of special files (CVE-2020-35517)
-
-A well-behaved FUSE client does not attempt to open special files with
-FUSE_OPEN because they are handled on the client side (e.g. device nodes
-are handled by client-side device drivers).
-
-The check to prevent virtiofsd from opening special files is missing in
-a few cases, most notably FUSE_OPEN. A malicious client can cause
-virtiofsd to open a device node, potentially allowing the guest to
-escape. This can be exploited by a modified guest device driver. It is
-not exploitable from guest userspace since the guest kernel will handle
-special files inside the guest instead of sending FUSE requests.
-
-This patch fixes this issue by introducing the lo_inode_open() function
-to check the file type before opening it. This is a short-term solution
-because it does not prevent a compromised virtiofsd process from opening
-device nodes on the host.
-
-Restructure lo_create() to try O_CREAT | O_EXCL first. Note that O_CREAT
-| O_EXCL does not follow symlinks, so O_NOFOLLOW masking is not
-necessary here. If the file exists and the user did not specify O_EXCL,
-open it via lo_do_open().
-
-Reported-by: Alex Xu <alex@alxu.ca>
-Fixes: CVE-2020-35517
-Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-Reviewed-by: Vivek Goyal <vgoyal@redhat.com>
-Reviewed-by: Greg Kurz <groug@kaod.org>
-Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-Message-Id: <20210204150208.367837-4-stefanha@redhat.com>
-Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-
-Upstream-Status: Backport
-[https://github.com/qemu/qemu/commit/a3fdbbc7f271bff7d53d0501b29d910ece0b3789]
-
-CVE: CVE-2020-35517
-
-Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
----
- tools/virtiofsd/passthrough_ll.c | 144 ++++++++++++++++++++-----------
- 1 file changed, 92 insertions(+), 52 deletions(-)
-
-diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
-index aa35fc6ba5a5..147b59338a18 100644
---- a/tools/virtiofsd/passthrough_ll.c
-+++ b/tools/virtiofsd/passthrough_ll.c
-@@ -555,6 +555,38 @@ static int lo_fd(fuse_req_t req, fuse_ino_t ino)
-     return fd;
- }
- 
-+/*
-+ * Open a file descriptor for an inode. Returns -EBADF if the inode is not a
-+ * regular file or a directory.
-+ *
-+ * Use this helper function instead of raw openat(2) to prevent security issues
-+ * when a malicious client opens special files such as block device nodes.
-+ * Symlink inodes are also rejected since symlinks must already have been
-+ * traversed on the client side.
-+ */
-+static int lo_inode_open(struct lo_data *lo, struct lo_inode *inode,
-+                         int open_flags)
-+{
-+    g_autofree char *fd_str = g_strdup_printf("%d", inode->fd);
-+    int fd;
-+
-+    if (!S_ISREG(inode->filetype) && !S_ISDIR(inode->filetype)) {
-+        return -EBADF;
-+    }
-+
-+    /*
-+     * The file is a symlink so O_NOFOLLOW must be ignored. We checked earlier
-+     * that the inode is not a special file but if an external process races
-+     * with us then symlinks are traversed here. It is not possible to escape
-+     * the shared directory since it is mounted as "/" though.
-+     */
-+    fd = openat(lo->proc_self_fd, fd_str, open_flags & ~O_NOFOLLOW);
-+    if (fd < 0) {
-+        return -errno;
-+    }
-+    return fd;
-+}
-+
- static void lo_init(void *userdata, struct fuse_conn_info *conn)
- {
-     struct lo_data *lo = (struct lo_data *)userdata;
-@@ -684,9 +716,9 @@ static void lo_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
-         if (fi) {
-             truncfd = fd;
-         } else {
--            sprintf(procname, "%i", ifd);
--            truncfd = openat(lo->proc_self_fd, procname, O_RDWR);
-+            truncfd = lo_inode_open(lo, inode, O_RDWR);
-             if (truncfd < 0) {
-+                errno = -truncfd;
-                 goto out_err;
-             }
-         }
-@@ -848,7 +880,7 @@ static int lo_do_lookup(fuse_req_t req, fuse_ino_t parent, const char *name,
-     struct lo_inode *dir = lo_inode(req, parent);
- 
-     if (inodep) {
--        *inodep = NULL;
-+        *inodep = NULL; /* in case there is an error */
-     }
- 
-     /*
-@@ -1664,19 +1696,26 @@ static void update_open_flags(int writeback, int allow_direct_io,
-     }
- }
- 
-+/*
-+ * Open a regular file, set up an fd mapping, and fill out the struct
-+ * fuse_file_info for it. If existing_fd is not negative, use that fd instead
-+ * opening a new one. Takes ownership of existing_fd.
-+ *
-+ * Returns 0 on success or a positive errno.
-+ */
- static int lo_do_open(struct lo_data *lo, struct lo_inode *inode,
--                      struct fuse_file_info *fi)
-+                      int existing_fd, struct fuse_file_info *fi)
- {
--    char buf[64];
-     ssize_t fh;
--    int fd;
-+    int fd = existing_fd;
- 
-     update_open_flags(lo->writeback, lo->allow_direct_io, fi);
- 
--    sprintf(buf, "%i", inode->fd);
--    fd = openat(lo->proc_self_fd, buf, fi->flags & ~O_NOFOLLOW);
--    if (fd == -1) {
--        return errno;
-+    if (fd < 0) {
-+        fd = lo_inode_open(lo, inode, fi->flags);
-+        if (fd < 0) {
-+            return -fd;
-+        }
-     }
- 
-     pthread_mutex_lock(&lo->mutex);
-@@ -1699,9 +1738,10 @@ static int lo_do_open(struct lo_data *lo, struct lo_inode *inode,
- static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
-                       mode_t mode, struct fuse_file_info *fi)
- {
--    int fd;
-+    int fd = -1;
-     struct lo_data *lo = lo_data(req);
-     struct lo_inode *parent_inode;
-+    struct lo_inode *inode = NULL;
-     struct fuse_entry_param e;
-     int err;
-     struct lo_cred old = {};
-@@ -1727,36 +1767,38 @@ static void lo_create(fuse_req_t req, fuse_ino_t parent, const char *name,
- 
-     update_open_flags(lo->writeback, lo->allow_direct_io, fi);
- 
--    fd = openat(parent_inode->fd, name, (fi->flags | O_CREAT) & ~O_NOFOLLOW,
--                mode);
-+    /* Try to create a new file but don't open existing files */
-+    fd = openat(parent_inode->fd, name, fi->flags | O_CREAT | O_EXCL, mode);
-     err = fd == -1 ? errno : 0;
--    lo_restore_cred(&old);
- 
--    if (!err) {
--        ssize_t fh;
-+    lo_restore_cred(&old);
- 
--        pthread_mutex_lock(&lo->mutex);
--        fh = lo_add_fd_mapping(lo, fd);
--        pthread_mutex_unlock(&lo->mutex);
--        if (fh == -1) {
--            close(fd);
--            err = ENOMEM;
--            goto out;
--        }
-+    /* Ignore the error if file exists and O_EXCL was not given */
-+    if (err && (err != EEXIST || (fi->flags & O_EXCL))) {
-+        goto out;
-+    }
- 
--        fi->fh = fh;
--        err = lo_do_lookup(req, parent, name, &e, NULL);
-+    err = lo_do_lookup(req, parent, name, &e, &inode);
-+    if (err) {
-+        goto out;
-     }
--    if (lo->cache == CACHE_NONE) {
--        fi->direct_io = 1;
--    } else if (lo->cache == CACHE_ALWAYS) {
--        fi->keep_cache = 1;
-+
-+    err = lo_do_open(lo, inode, fd, fi);
-+    fd = -1; /* lo_do_open() takes ownership of fd */
-+    if (err) {
-+        /* Undo lo_do_lookup() nlookup ref */
-+        unref_inode_lolocked(lo, inode, 1);
-     }
- 
- out:
-+    lo_inode_put(lo, &inode);
-     lo_inode_put(lo, &parent_inode);
- 
-     if (err) {
-+        if (fd >= 0) {
-+            close(fd);
-+        }
-+
-         fuse_reply_err(req, err);
-     } else {
-         fuse_reply_create(req, &e, fi);
-@@ -1770,7 +1812,6 @@ static struct lo_inode_plock *lookup_create_plock_ctx(struct lo_data *lo,
-                                                       pid_t pid, int *err)
- {
-     struct lo_inode_plock *plock;
--    char procname[64];
-     int fd;
- 
-     plock =
-@@ -1787,12 +1828,10 @@ static struct lo_inode_plock *lookup_create_plock_ctx(struct lo_data *lo,
-     }
- 
-     /* Open another instance of file which can be used for ofd locks. */
--    sprintf(procname, "%i", inode->fd);
--
-     /* TODO: What if file is not writable? */
--    fd = openat(lo->proc_self_fd, procname, O_RDWR);
--    if (fd == -1) {
--        *err = errno;
-+    fd = lo_inode_open(lo, inode, O_RDWR);
-+    if (fd < 0) {
-+        *err = -fd;
-         free(plock);
-         return NULL;
-     }
-@@ -1949,7 +1988,7 @@ static void lo_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
-         return;
-     }
- 
--    err = lo_do_open(lo, inode, fi);
-+    err = lo_do_open(lo, inode, -1, fi);
-     lo_inode_put(lo, &inode);
-     if (err) {
-         fuse_reply_err(req, err);
-@@ -2014,39 +2053,40 @@ static void lo_flush(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi)
- static void lo_fsync(fuse_req_t req, fuse_ino_t ino, int datasync,
-                      struct fuse_file_info *fi)
- {
-+    struct lo_inode *inode = lo_inode(req, ino);
-+    struct lo_data *lo = lo_data(req);
-     int res;
-     int fd;
--    char *buf;
- 
-     fuse_log(FUSE_LOG_DEBUG, "lo_fsync(ino=%" PRIu64 ", fi=0x%p)\n", ino,
-              (void *)fi);
- 
--    if (!fi) {
--        struct lo_data *lo = lo_data(req);
--
--        res = asprintf(&buf, "%i", lo_fd(req, ino));
--        if (res == -1) {
--            return (void)fuse_reply_err(req, errno);
--        }
-+    if (!inode) {
-+        fuse_reply_err(req, EBADF);
-+        return;
-+    }
- 
--        fd = openat(lo->proc_self_fd, buf, O_RDWR);
--        free(buf);
--        if (fd == -1) {
--            return (void)fuse_reply_err(req, errno);
-+    if (!fi) {
-+        fd = lo_inode_open(lo, inode, O_RDWR);
-+        if (fd < 0) {
-+            res = -fd;
-+            goto out;
-         }
-     } else {
-         fd = lo_fi_fd(req, fi);
-     }
- 
-     if (datasync) {
--        res = fdatasync(fd);
-+        res = fdatasync(fd) == -1 ? errno : 0;
-     } else {
--        res = fsync(fd);
-+        res = fsync(fd) == -1 ? errno : 0;
-     }
-     if (!fi) {
-         close(fd);
-     }
--    fuse_reply_err(req, res == -1 ? errno : 0);
-+out:
-+    lo_inode_put(lo, &inode);
-+    fuse_reply_err(req, res);
- }
- 
- static void lo_read(fuse_req_t req, fuse_ino_t ino, size_t size, off_t offset,
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20181.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20181.patch
deleted file mode 100644
index 1b8c77f..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20181.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From c2d2d14e8deece958bbc4fc649d22c3564bc4e7e Mon Sep 17 00:00:00 2001
-From: Greg Kurz <groug@kaod.org>
-Date: Thu, 14 Jan 2021 17:04:12 +0100
-Subject: [PATCH] 9pfs: Fully restart unreclaim loop (CVE-2021-20181)
-
-Depending on the client activity, the server can be asked to open a huge
-number of file descriptors and eventually hit RLIMIT_NOFILE. This is
-currently mitigated using a reclaim logic : the server closes the file
-descriptors of idle fids, based on the assumption that it will be able
-to re-open them later. This assumption doesn't hold of course if the
-client requests the file to be unlinked. In this case, we loop on the
-entire fid list and mark all related fids as unreclaimable (the reclaim
-logic will just ignore them) and, of course, we open or re-open their
-file descriptors if needed since we're about to unlink the file.
-
-This is the purpose of v9fs_mark_fids_unreclaim(). Since the actual
-opening of a file can cause the coroutine to yield, another client
-request could possibly add a new fid that we may want to mark as
-non-reclaimable as well. The loop is thus restarted if the re-open
-request was actually transmitted to the backend. This is achieved
-by keeping a reference on the first fid (head) before traversing
-the list.
-
-This is wrong in several ways:
-- a potential clunk request from the client could tear the first
-  fid down and cause the reference to be stale. This leads to a
-  use-after-free error that can be detected with ASAN, using a
-  custom 9p client
-- fids are added at the head of the list : restarting from the
-  previous head will always miss fids added by a some other
-  potential request
-
-All these problems could be avoided if fids were being added at the
-end of the list. This can be achieved with a QSIMPLEQ, but this is
-probably too much change for a bug fix. For now let's keep it
-simple and just restart the loop from the current head.
-
-Fixes: CVE-2021-20181
-Buglink: https://bugs.launchpad.net/qemu/+bug/1911666
-Reported-by: Zero Day Initiative <zdi-disclosures@trendmicro.com>
-Reviewed-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
-Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
-Message-Id: <161064025265.1838153.15185571283519390907.stgit@bahia.lan>
-Signed-off-by: Greg Kurz <groug@kaod.org>
-
-Upstream-Status: Backport [89fbea8737e8f7b954745a1ffc4238d377055305]
-CVE: CVE-2021-20181
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/9pfs/9p.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c
-index 94df440fc..6026b51a1 100644
---- a/hw/9pfs/9p.c
-+++ b/hw/9pfs/9p.c
-@@ -502,9 +502,9 @@ static int coroutine_fn v9fs_mark_fids_unreclaim(V9fsPDU *pdu, V9fsPath *path)
- {
-     int err;
-     V9fsState *s = pdu->s;
--    V9fsFidState *fidp, head_fid;
-+    V9fsFidState *fidp;
- 
--    head_fid.next = s->fid_list;
-+again:
-     for (fidp = s->fid_list; fidp; fidp = fidp->next) {
-         if (fidp->path.size != path->size) {
-             continue;
-@@ -524,7 +524,7 @@ static int coroutine_fn v9fs_mark_fids_unreclaim(V9fsPDU *pdu, V9fsPath *path)
-              * switched to the worker thread
-              */
-             if (err == 0) {
--                fidp = &head_fid;
-+                goto again;
-             }
-         }
-     }
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20203.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20203.patch
deleted file mode 100644
index 269c6f1..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20203.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From: Prasad J Pandit <pjp@fedoraproject.org>
-
-While activating device in vmxnet3_acticate_device(), it does not
-validate guest supplied configuration values against predefined
-minimum - maximum limits. This may lead to integer overflow or
-OOB access issues. Add checks to avoid it.
-
-Fixes: CVE-2021-20203
-Buglink: https://bugs.launchpad.net/qemu/+bug/1913873
-Reported-by: Gaoning Pan <pgn@zju.edu.cn>
-Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
-
-Upstream-Status: Acepted [https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg07935.html]
-CVE: CVE-2021-20203
-Signed-off-by: Minjae Kim <flowergom@gmail.com>
----
- hw/net/vmxnet3.c | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
-index eff299f629..4a910ca971 100644
---- a/hw/net/vmxnet3.c
-+++ b/hw/net/vmxnet3.c
-@@ -1420,6 +1420,7 @@ static void vmxnet3_activate_device(VMXNET3State *s)
-     vmxnet3_setup_rx_filtering(s);
-     /* Cache fields from shared memory */
-     s->mtu = VMXNET3_READ_DRV_SHARED32(d, s->drv_shmem, devRead.misc.mtu);
-+    assert(VMXNET3_MIN_MTU <= s->mtu && s->mtu < VMXNET3_MAX_MTU);
-     VMW_CFPRN("MTU is %u", s->mtu);
- 
-     s->max_rx_frags =
-@@ -1473,6 +1474,9 @@ static void vmxnet3_activate_device(VMXNET3State *s)
-         /* Read rings memory locations for TX queues */
-         pa = VMXNET3_READ_TX_QUEUE_DESCR64(d, qdescr_pa, conf.txRingBasePA);
-         size = VMXNET3_READ_TX_QUEUE_DESCR32(d, qdescr_pa, conf.txRingSize);
-+        if (size > VMXNET3_TX_RING_MAX_SIZE) {
-+            size = VMXNET3_TX_RING_MAX_SIZE;
-+        }
- 
-         vmxnet3_ring_init(d, &s->txq_descr[i].tx_ring, pa, size,
-                           sizeof(struct Vmxnet3_TxDesc), false);
-@@ -1483,6 +1487,9 @@ static void vmxnet3_activate_device(VMXNET3State *s)
-         /* TXC ring */
-         pa = VMXNET3_READ_TX_QUEUE_DESCR64(d, qdescr_pa, conf.compRingBasePA);
-         size = VMXNET3_READ_TX_QUEUE_DESCR32(d, qdescr_pa, conf.compRingSize);
-+        if (size > VMXNET3_TC_RING_MAX_SIZE) {
-+            size = VMXNET3_TC_RING_MAX_SIZE;
-+        }
-         vmxnet3_ring_init(d, &s->txq_descr[i].comp_ring, pa, size,
-                           sizeof(struct Vmxnet3_TxCompDesc), true);
-         VMXNET3_RING_DUMP(VMW_CFPRN, "TXC", i, &s->txq_descr[i].comp_ring);
-@@ -1524,6 +1531,9 @@ static void vmxnet3_activate_device(VMXNET3State *s)
-             /* RX rings */
-             pa = VMXNET3_READ_RX_QUEUE_DESCR64(d, qd_pa, conf.rxRingBasePA[j]);
-             size = VMXNET3_READ_RX_QUEUE_DESCR32(d, qd_pa, conf.rxRingSize[j]);
-+            if (size > VMXNET3_RX_RING_MAX_SIZE) {
-+                size = VMXNET3_RX_RING_MAX_SIZE;
-+            }
-             vmxnet3_ring_init(d, &s->rxq_descr[i].rx_ring[j], pa, size,
-                               sizeof(struct Vmxnet3_RxDesc), false);
-             VMW_CFPRN("RX queue %d:%d: Base: %" PRIx64 ", Size: %d",
-@@ -1533,6 +1543,9 @@ static void vmxnet3_activate_device(VMXNET3State *s)
-         /* RXC ring */
-         pa = VMXNET3_READ_RX_QUEUE_DESCR64(d, qd_pa, conf.compRingBasePA);
-         size = VMXNET3_READ_RX_QUEUE_DESCR32(d, qd_pa, conf.compRingSize);
-+        if (size > VMXNET3_RC_RING_MAX_SIZE) {
-+            size = VMXNET3_RC_RING_MAX_SIZE;
-+        }
-         vmxnet3_ring_init(d, &s->rxq_descr[i].comp_ring, pa, size,
-                           sizeof(struct Vmxnet3_RxCompDesc), true);
-         VMW_CFPRN("RXC queue %d: Base: %" PRIx64 ", Size: %d", i, pa, size);
--- 
-2.29.2
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20221.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20221.patch
deleted file mode 100644
index d762a51..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20221.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From e428bcfb86fb46d9773ae11e69712052dcff3d45 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>
-Date: Sun, 31 Jan 2021 11:34:01 +0100
-Subject: [PATCH] hw/intc/arm_gic: Fix interrupt ID in GICD_SGIR register
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Per the ARM Generic Interrupt Controller Architecture specification
-(document "ARM IHI 0048B.b (ID072613)"), the SGIINTID field is 4 bit,
-not 10:
-
-  - 4.3 Distributor register descriptions
-  - 4.3.15 Software Generated Interrupt Register, GICD_SG
-
-    - Table 4-21 GICD_SGIR bit assignments
-
-    The Interrupt ID of the SGI to forward to the specified CPU
-    interfaces. The value of this field is the Interrupt ID, in
-    the range 0-15, for example a value of 0b0011 specifies
-    Interrupt ID 3.
-
-Correct the irq mask to fix an undefined behavior (which eventually
-lead to a heap-buffer-overflow, see [Buglink]):
-
-   $ echo 'writel 0x8000f00 0xff4affb0' | qemu-system-aarch64 -M virt,accel=qtest -qtest stdio
-   [I 1612088147.116987] OPENED
-  [R +0.278293] writel 0x8000f00 0xff4affb0
-  ../hw/intc/arm_gic.c:1498:13: runtime error: index 944 out of bounds for type 'uint8_t [16][8]'
-  SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../hw/intc/arm_gic.c:1498:13
-
-This fixes a security issue when running with KVM on Arm with
-kernel-irqchip=off. (The default is kernel-irqchip=on, which is
-unaffected, and which is also the correct choice for performance.)
-
-Cc: qemu-stable@nongnu.org
-Fixes: CVE-2021-20221
-Fixes: 9ee6e8bb853 ("ARMv7 support.")
-Buglink: https://bugs.launchpad.net/qemu/+bug/1913916
-Buglink: https://bugs.launchpad.net/qemu/+bug/1913917
-Reported-by: Alexander Bulekov <alxndr@bu.edu>
-Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-Message-id: 20210131103401.217160-1-f4bug@amsat.org
-Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
-Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-
-Upstream-Status: Backport [edfe2eb4360cde4ed5d95bda7777edcb3510f76a]
-CVE: CVE-2021-20221
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/intc/arm_gic.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
-index c60dc6b5e..fbde60de0 100644
---- a/hw/intc/arm_gic.c
-+++ b/hw/intc/arm_gic.c
-@@ -1474,7 +1474,7 @@ static void gic_dist_writel(void *opaque, hwaddr offset,
-         int target_cpu;
- 
-         cpu = gic_get_current_cpu(s);
--        irq = value & 0x3ff;
-+        irq = value & 0xf;
-         switch ((value >> 24) & 3) {
-         case 0:
-             mask = (value >> 16) & ALL_CPU_MASK;
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20257.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20257.patch
deleted file mode 100644
index 7175b24..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20257.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From affdf476543405045c281a7c67d1eaedbcea8135 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang@redhat.com>
-Date: Wed, 24 Feb 2021 13:45:28 +0800
-Subject: [PATCH] e1000: fail early for evil descriptor
-
-During procss_tx_desc(), driver can try to chain data descriptor with
-legacy descriptor, when will lead underflow for the following
-calculation in process_tx_desc() for bytes:
-
-            if (tp->size + bytes > msh)
-                bytes = msh - tp->size;
-
-This will lead a infinite loop. So check and fail early if tp->size if
-greater or equal to msh.
-
-Reported-by: Alexander Bulekov <alxndr@bu.edu>
-Reported-by: Cheolwoo Myung <cwmyung@snu.ac.kr>
-Reported-by: Ruhr-University Bochum <bugs-syssec@rub.de>
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [3de46e6fc489c52c9431a8a832ad8170a7569bd8]
-CVE: CVE-2021-20257
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/e1000.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/hw/net/e1000.c b/hw/net/e1000.c
-index cf22c4f07..c3564c7ce 100644
---- a/hw/net/e1000.c
-+++ b/hw/net/e1000.c
-@@ -670,6 +670,9 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *dp)
-         msh = tp->tso_props.hdr_len + tp->tso_props.mss;
-         do {
-             bytes = split_size;
-+            if (tp->size >= msh) {
-+                goto eop;
-+            }
-             if (tp->size + bytes > msh)
-                 bytes = msh - tp->size;
- 
-@@ -695,6 +698,7 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *dp)
-         tp->size += split_size;
-     }
- 
-+eop:
-     if (!(txd_lower & E1000_TXD_CMD_EOP))
-         return;
-     if (!(tp->cptse && tp->size < tp->tso_props.hdr_len)) {
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20263.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20263.patch
deleted file mode 100644
index 4f9a91f..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-20263.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-From aaa5f8e00c2e85a893b972f1e243fb14c26b70dc Mon Sep 17 00:00:00 2001
-From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
-Date: Wed, 24 Feb 2021 19:56:25 +0000
-Subject: [PATCH 2/2] virtiofs: drop remapped security.capability xattr as
- needed
-
-On Linux, the 'security.capability' xattr holds a set of
-capabilities that can change when an executable is run, giving
-a limited form of privilege escalation to those programs that
-the writer of the file deemed worthy.
-
-Any write causes the 'security.capability' xattr to be dropped,
-stopping anyone from gaining privilege by modifying a blessed
-file.
-
-Fuse relies on the daemon to do this dropping, and in turn the
-daemon relies on the host kernel to drop the xattr for it.  However,
-with the addition of -o xattrmap, the xattr that the guest
-stores its capabilities in is now not the same as the one that
-the host kernel automatically clears.
-
-Where the mapping changes 'security.capability', explicitly clear
-the remapped name to preserve the same behaviour.
-
-This bug is assigned CVE-2021-20263.
-
-Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
-Reviewed-by: Vivek Goyal <vgoyal@redhat.com>
-
-Upstream-Status: Backport [e586edcb410543768ef009eaa22a2d9dd4a53846]
-CVE: CVE-2021-20263
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- docs/tools/virtiofsd.rst         |  4 ++
- tools/virtiofsd/passthrough_ll.c | 77 +++++++++++++++++++++++++++++++-
- 2 files changed, 80 insertions(+), 1 deletion(-)
-
-diff --git a/docs/tools/virtiofsd.rst b/docs/tools/virtiofsd.rst
-index 866b7db3e..00554c75b 100644
---- a/docs/tools/virtiofsd.rst
-+++ b/docs/tools/virtiofsd.rst
-@@ -228,6 +228,10 @@ The 'map' type adds a number of separate rules to add **prepend** as a prefix
- to the matched **key** (or all attributes if **key** is empty).
- There may be at most one 'map' rule and it must be the last rule in the set.
- 
-+Note: When the 'security.capability' xattr is remapped, the daemon has to do
-+extra work to remove it during many operations, which the host kernel normally
-+does itself.
-+
- xattr-mapping Examples
- ----------------------
- 
-diff --git a/tools/virtiofsd/passthrough_ll.c b/tools/virtiofsd/passthrough_ll.c
-index 03c5e0d13..c9197da86 100644
---- a/tools/virtiofsd/passthrough_ll.c
-+++ b/tools/virtiofsd/passthrough_ll.c
-@@ -160,6 +160,7 @@ struct lo_data {
-     int posix_lock;
-     int xattr;
-     char *xattrmap;
-+    char *xattr_security_capability;
-     char *source;
-     char *modcaps;
-     double timeout;
-@@ -226,6 +227,8 @@ static __thread bool cap_loaded = 0;
- 
- static struct lo_inode *lo_find(struct lo_data *lo, struct stat *st,
-                                 uint64_t mnt_id);
-+static int xattr_map_client(const struct lo_data *lo, const char *client_name,
-+                            char **out_name);
- 
- static int is_dot_or_dotdot(const char *name)
- {
-@@ -365,6 +368,37 @@ out:
-     return ret;
- }
- 
-+/*
-+ * The host kernel normally drops security.capability xattr's on
-+ * any write, however if we're remapping xattr names we need to drop
-+ * whatever the clients security.capability is actually stored as.
-+ */
-+static int drop_security_capability(const struct lo_data *lo, int fd)
-+{
-+    if (!lo->xattr_security_capability) {
-+        /* We didn't remap the name, let the host kernel do it */
-+        return 0;
-+    }
-+    if (!fremovexattr(fd, lo->xattr_security_capability)) {
-+        /* All good */
-+        return 0;
-+    }
-+
-+    switch (errno) {
-+    case ENODATA:
-+        /* Attribute didn't exist, that's fine */
-+        return 0;
-+
-+    case ENOTSUP:
-+        /* FS didn't support attribute anyway, also fine */
-+        return 0;
-+
-+    default:
-+        /* Hmm other error */
-+        return errno;
-+    }
-+}
-+
- static void lo_map_init(struct lo_map *map)
- {
-     map->elems = NULL;
-@@ -717,6 +751,11 @@ static void lo_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
-         uid_t uid = (valid & FUSE_SET_ATTR_UID) ? attr->st_uid : (uid_t)-1;
-         gid_t gid = (valid & FUSE_SET_ATTR_GID) ? attr->st_gid : (gid_t)-1;
- 
-+        saverr = drop_security_capability(lo, ifd);
-+        if (saverr) {
-+            goto out_err;
-+        }
-+
-         res = fchownat(ifd, "", uid, gid, AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW);
-         if (res == -1) {
-             goto out_err;
-@@ -735,6 +774,14 @@ static void lo_setattr(fuse_req_t req, fuse_ino_t ino, struct stat *attr,
-             }
-         }
- 
-+	saverr = drop_security_capability(lo, truncfd);
-+        if (saverr) {
-+            if (!fi) {
-+                close(truncfd);
-+            }
-+            goto out_err;
-+        }
-+
-         res = ftruncate(truncfd, attr->st_size);
-         if (!fi) {
-             saverr = errno;
-@@ -1726,6 +1773,13 @@ static int lo_do_open(struct lo_data *lo, struct lo_inode *inode,
-         if (fd < 0) {
-             return -fd;
-         }
-+        if (fi->flags & (O_TRUNC)) {
-+            int err = drop_security_capability(lo, fd);
-+            if (err) {
-+                close(fd);
-+                return err;
-+            }
-+        }
-     }
- 
-     pthread_mutex_lock(&lo->mutex);
-@@ -2114,6 +2168,12 @@ static void lo_write_buf(fuse_req_t req, fuse_ino_t ino,
-              "lo_write_buf(ino=%" PRIu64 ", size=%zd, off=%lu)\n", ino,
-              out_buf.buf[0].size, (unsigned long)off);
- 
-+    res = drop_security_capability(lo_data(req), out_buf.buf[0].fd);
-+    if (res) {
-+        fuse_reply_err(req, res);
-+        return;
-+    }
-+
-     /*
-      * If kill_priv is set, drop CAP_FSETID which should lead to kernel
-      * clearing setuid/setgid on file.
-@@ -2353,6 +2413,7 @@ static void parse_xattrmap(struct lo_data *lo)
- {
-     const char *map = lo->xattrmap;
-     const char *tmp;
-+    int ret;
- 
-     lo->xattr_map_nentries = 0;
-     while (*map) {
-@@ -2383,7 +2444,7 @@ static void parse_xattrmap(struct lo_data *lo)
-              * the last entry.
-              */
-             parse_xattrmap_map(lo, map, sep);
--            return;
-+            break;
-         } else {
-             fuse_log(FUSE_LOG_ERR,
-                      "%s: Unexpected type;"
-@@ -2452,6 +2513,19 @@ static void parse_xattrmap(struct lo_data *lo)
-         fuse_log(FUSE_LOG_ERR, "Empty xattr map\n");
-         exit(1);
-     }
-+
-+    ret = xattr_map_client(lo, "security.capability",
-+                           &lo->xattr_security_capability);
-+    if (ret) {
-+        fuse_log(FUSE_LOG_ERR, "Failed to map security.capability: %s\n",
-+                strerror(ret));
-+        exit(1);
-+    }
-+    if (!strcmp(lo->xattr_security_capability, "security.capability")) {
-+        /* 1-1 mapping, don't need to do anything */
-+        free(lo->xattr_security_capability);
-+        lo->xattr_security_capability = NULL;
-+    }
- }
- 
- /*
-@@ -3480,6 +3554,7 @@ static void fuse_lo_data_cleanup(struct lo_data *lo)
- 
-     free(lo->xattrmap);
-     free_xattrmap(lo);
-+    free(lo->xattr_security_capability);
-     free(lo->source);
- }
- 
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3392.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3392.patch
deleted file mode 100644
index af94cff..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3392.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 3791642c8d60029adf9b00bcb4e34d7d8a1aea4d Mon Sep 17 00:00:00 2001
-From: Michael Tokarev <mjt@tls.msk.ru>
-Date: Mon, 19 Apr 2021 15:42:47 +0200
-Subject: [PATCH] mptsas: Remove unused MPTSASState 'pending' field
- (CVE-2021-3392)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-While processing SCSI i/o requests in mptsas_process_scsi_io_request(),
-the Megaraid emulator appends new MPTSASRequest object 'req' to
-the 's->pending' queue. In case of an error, this same object gets
-dequeued in mptsas_free_request() only if SCSIRequest object
-'req->sreq' is initialised. This may lead to a use-after-free issue.
-
-Since s->pending is actually not used, simply remove it from
-MPTSASState.
-
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Reported-by: Cheolwoo Myung <cwmyung@snu.ac.kr>
-Message-id: 20210419134247.1467982-1-f4bug@amsat.org
-Message-Id: <20210416102243.1293871-1-mjt@msgid.tls.msk.ru>
-Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
-Reported-by: Cheolwoo Myung <cwmyung@snu.ac.kr>
-BugLink: https://bugs.launchpad.net/qemu/+bug/1914236 (CVE-2021-3392)
-Fixes: e351b826112 ("hw: Add support for LSI SAS1068 (mptsas) device")
-[PMD: Reworded description, added more tags]
-Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
-Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-
-CVE: CVE-2021-3392
-Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commit;h=3791642c8d60029adf9b00bcb4e34d7d8a1aea4d]
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- hw/scsi/mptsas.c | 6 ------
- hw/scsi/mptsas.h | 1 -
- 2 files changed, 7 deletions(-)
-
-diff --git a/hw/scsi/mptsas.c b/hw/scsi/mptsas.c
-index 7416e7870614..db3219e7d206 100644
---- a/hw/scsi/mptsas.c
-+++ b/hw/scsi/mptsas.c
-@@ -251,13 +251,10 @@ static int mptsas_build_sgl(MPTSASState *s, MPTSASRequest *req, hwaddr addr)
- 
- static void mptsas_free_request(MPTSASRequest *req)
- {
--    MPTSASState *s = req->dev;
--
-     if (req->sreq != NULL) {
-         req->sreq->hba_private = NULL;
-         scsi_req_unref(req->sreq);
-         req->sreq = NULL;
--        QTAILQ_REMOVE(&s->pending, req, next);
-     }
-     qemu_sglist_destroy(&req->qsg);
-     g_free(req);
-@@ -303,7 +300,6 @@ static int mptsas_process_scsi_io_request(MPTSASState *s,
-     }
- 
-     req = g_new0(MPTSASRequest, 1);
--    QTAILQ_INSERT_TAIL(&s->pending, req, next);
-     req->scsi_io = *scsi_io;
-     req->dev = s;
- 
-@@ -1319,8 +1315,6 @@ static void mptsas_scsi_realize(PCIDevice *dev, Error **errp)
- 
-     s->request_bh = qemu_bh_new(mptsas_fetch_requests, s);
- 
--    QTAILQ_INIT(&s->pending);
--
-     scsi_bus_new(&s->bus, sizeof(s->bus), &dev->qdev, &mptsas_scsi_info, NULL);
- }
- 
-diff --git a/hw/scsi/mptsas.h b/hw/scsi/mptsas.h
-index b85ac1a5fcc7..c046497db719 100644
---- a/hw/scsi/mptsas.h
-+++ b/hw/scsi/mptsas.h
-@@ -79,7 +79,6 @@ struct MPTSASState {
-     uint16_t reply_frame_size;
- 
-     SCSIBus bus;
--    QTAILQ_HEAD(, MPTSASRequest) pending;
- };
- 
- void mptsas_fix_scsi_io_endianness(MPIMsgSCSIIORequest *req);
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_1.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_1.patch
deleted file mode 100644
index f9395ad..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_1.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From c01ae9a35b3c6b4a8e1f1bfa0a0caafe394f8b5c Mon Sep 17 00:00:00 2001
-From: Bin Meng <bmeng.cn@gmail.com>
-Date: Tue, 16 Feb 2021 11:46:52 +0800
-Subject: [PATCH 1/6] hw/sd: sdhci: Simplify updating s->prnsts in
- sdhci_sdma_transfer_multi_blocks()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-s->prnsts is updated in both branches of the if () else () statement.
-Move the common bits outside so that it is cleaner.
-
-Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
-Tested-by: Alexander Bulekov <alxndr@bu.edu>
-Reviewed-by: Alexander Bulekov <alxndr@bu.edu>
-Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-Message-Id: <1613447214-81951-5-git-send-email-bmeng.cn@gmail.com>
-Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-Upstream-Status: Backport [8bc1f1aa51d32c3184e7b19d5b94c35ecc06f056]
-CVE: CVE-2021-3409
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/sd/sdhci.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
-index 2f8b74a84..f83c5e295 100644
---- a/hw/sd/sdhci.c
-+++ b/hw/sd/sdhci.c
-@@ -596,9 +596,9 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState *s)
-         page_aligned = true;
-     }
- 
-+    s->prnsts |= SDHC_DATA_INHIBIT | SDHC_DAT_LINE_ACTIVE;
-     if (s->trnmod & SDHC_TRNS_READ) {
--        s->prnsts |= SDHC_DOING_READ | SDHC_DATA_INHIBIT |
--                SDHC_DAT_LINE_ACTIVE;
-+        s->prnsts |= SDHC_DOING_READ;
-         while (s->blkcnt) {
-             if (s->data_count == 0) {
-                 sdbus_read_data(&s->sdbus, s->fifo_buffer, block_size);
-@@ -625,8 +625,7 @@ static void sdhci_sdma_transfer_multi_blocks(SDHCIState *s)
-             }
-         }
-     } else {
--        s->prnsts |= SDHC_DOING_WRITE | SDHC_DATA_INHIBIT |
--                SDHC_DAT_LINE_ACTIVE;
-+        s->prnsts |= SDHC_DOING_WRITE;
-         while (s->blkcnt) {
-             begin = s->data_count;
-             if (((boundary_count + begin) < block_size) && page_aligned) {
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_2.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_2.patch
deleted file mode 100644
index f3d2bb1..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_2.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From b9bb4700798bce98888c51d7b6dbc19ec49159d5 Mon Sep 17 00:00:00 2001
-From: Bin Meng <bmeng.cn@gmail.com>
-Date: Wed, 3 Mar 2021 20:26:35 +0800
-Subject: [PATCH 2/6] hw/sd: sdhci: Don't transfer any data when command time
- out
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-At the end of sdhci_send_command(), it starts a data transfer if the
-command register indicates data is associated. But the data transfer
-should only be initiated when the command execution has succeeded.
-
-With this fix, the following reproducer:
-
-outl 0xcf8 0x80001810
-outl 0xcfc 0xe1068000
-outl 0xcf8 0x80001804
-outw 0xcfc 0x7
-write 0xe106802c 0x1 0x0f
-write 0xe1068004 0xc 0x2801d10101fffffbff28a384
-write 0xe106800c 0x1f 0x9dacbbcad9e8f7061524334251606f7e8d9cabbac9d8e7f60514233241505f
-write 0xe1068003 0x28 0x80d000251480d000252280d000253080d000253e80d000254c80d000255a80d000256880d0002576
-write 0xe1068003 0x1 0xfe
-
-cannot be reproduced with the following QEMU command line:
-
-$ qemu-system-x86_64 -nographic -M pc-q35-5.0 \
-      -device sdhci-pci,sd-spec-version=3 \
-      -drive if=sd,index=0,file=null-co://,format=raw,id=mydrive \
-      -device sd-card,drive=mydrive \
-      -monitor none -serial none -qtest stdio
-
-Cc: qemu-stable@nongnu.org
-Fixes: CVE-2020-17380
-Fixes: CVE-2020-25085
-Fixes: CVE-2021-3409
-Fixes: d7dfca0807a0 ("hw/sdhci: introduce standard SD host controller")
-Reported-by: Alexander Bulekov <alxndr@bu.edu>
-Reported-by: Cornelius Aschermann (Ruhr-Universität Bochum)
-Reported-by: Sergej Schumilo (Ruhr-Universität Bochum)
-Reported-by: Simon Wörner (Ruhr-Universität Bochum)
-Buglink: https://bugs.launchpad.net/qemu/+bug/1892960
-Buglink: https://bugs.launchpad.net/qemu/+bug/1909418
-Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1928146
-Acked-by: Alistair Francis <alistair.francis@wdc.com>
-Tested-by: Alexander Bulekov <alxndr@bu.edu>
-Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
-Message-Id: <20210303122639.20004-2-bmeng.cn@gmail.com>
-Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-Upstream-Status: Backport [b263d8f928001b5cfa2a993ea43b7a5b3a1811e8]
-CVE: CVE-2021-3409
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/sd/sdhci.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
-index f83c5e295..44f8a82ea 100644
---- a/hw/sd/sdhci.c
-+++ b/hw/sd/sdhci.c
-@@ -326,6 +326,7 @@ static void sdhci_send_command(SDHCIState *s)
-     SDRequest request;
-     uint8_t response[16];
-     int rlen;
-+    bool timeout = false;
- 
-     s->errintsts = 0;
-     s->acmd12errsts = 0;
-@@ -349,6 +350,7 @@ static void sdhci_send_command(SDHCIState *s)
-             trace_sdhci_response16(s->rspreg[3], s->rspreg[2],
-                                    s->rspreg[1], s->rspreg[0]);
-         } else {
-+            timeout = true;
-             trace_sdhci_error("timeout waiting for command response");
-             if (s->errintstsen & SDHC_EISEN_CMDTIMEOUT) {
-                 s->errintsts |= SDHC_EIS_CMDTIMEOUT;
-@@ -369,7 +371,7 @@ static void sdhci_send_command(SDHCIState *s)
- 
-     sdhci_update_irq(s);
- 
--    if (s->blksize && (s->cmdreg & SDHC_CMD_DATA_PRESENT)) {
-+    if (!timeout && s->blksize && (s->cmdreg & SDHC_CMD_DATA_PRESENT)) {
-         s->data_count = 0;
-         sdhci_data_transfer(s);
-     }
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_3.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_3.patch
deleted file mode 100644
index c3b37ed..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_3.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 405ca416ccc8135544a4fe5732974497244128c9 Mon Sep 17 00:00:00 2001
-From: Bin Meng <bmeng.cn@gmail.com>
-Date: Wed, 3 Mar 2021 20:26:36 +0800
-Subject: [PATCH 3/6] hw/sd: sdhci: Don't write to SDHC_SYSAD register when
- transfer is in progress
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Per "SD Host Controller Standard Specification Version 7.00"
-chapter 2.2.1 SDMA System Address Register:
-
-This register can be accessed only if no transaction is executing
-(i.e., after a transaction has stopped).
-
-With this fix, the following reproducer:
-
-outl 0xcf8 0x80001010
-outl 0xcfc 0xfbefff00
-outl 0xcf8 0x80001001
-outl 0xcfc 0x06000000
-write 0xfbefff2c 0x1 0x05
-write 0xfbefff0f 0x1 0x37
-write 0xfbefff0a 0x1 0x01
-write 0xfbefff0f 0x1 0x29
-write 0xfbefff0f 0x1 0x02
-write 0xfbefff0f 0x1 0x03
-write 0xfbefff04 0x1 0x01
-write 0xfbefff05 0x1 0x01
-write 0xfbefff07 0x1 0x02
-write 0xfbefff0c 0x1 0x33
-write 0xfbefff0e 0x1 0x20
-write 0xfbefff0f 0x1 0x00
-write 0xfbefff2a 0x1 0x01
-write 0xfbefff0c 0x1 0x00
-write 0xfbefff03 0x1 0x00
-write 0xfbefff05 0x1 0x00
-write 0xfbefff2a 0x1 0x02
-write 0xfbefff0c 0x1 0x32
-write 0xfbefff01 0x1 0x01
-write 0xfbefff02 0x1 0x01
-write 0xfbefff03 0x1 0x01
-
-cannot be reproduced with the following QEMU command line:
-
-$ qemu-system-x86_64 -nographic -machine accel=qtest -m 512M \
-       -nodefaults -device sdhci-pci,sd-spec-version=3 \
-       -drive if=sd,index=0,file=null-co://,format=raw,id=mydrive \
-       -device sd-card,drive=mydrive -qtest stdio
-
-Cc: qemu-stable@nongnu.org
-Fixes: CVE-2020-17380
-Fixes: CVE-2020-25085
-Fixes: CVE-2021-3409
-Fixes: d7dfca0807a0 ("hw/sdhci: introduce standard SD host controller")
-Reported-by: Alexander Bulekov <alxndr@bu.edu>
-Reported-by: Cornelius Aschermann (Ruhr-Universität Bochum)
-Reported-by: Sergej Schumilo (Ruhr-Universität Bochum)
-Reported-by: Simon Wörner (Ruhr-Universität Bochum)
-Buglink: https://bugs.launchpad.net/qemu/+bug/1892960
-Buglink: https://bugs.launchpad.net/qemu/+bug/1909418
-Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1928146
-Tested-by: Alexander Bulekov <alxndr@bu.edu>
-Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
-Message-Id: <20210303122639.20004-3-bmeng.cn@gmail.com>
-Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-Upstream-Status: Backport [8be45cc947832b3c02144c9d52921f499f2d77fe]
-CVE: CVE-2021-3409
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/sd/sdhci.c | 20 +++++++++++---------
- 1 file changed, 11 insertions(+), 9 deletions(-)
-
-diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
-index 44f8a82ea..d8a46f307 100644
---- a/hw/sd/sdhci.c
-+++ b/hw/sd/sdhci.c
-@@ -1121,15 +1121,17 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
- 
-     switch (offset & ~0x3) {
-     case SDHC_SYSAD:
--        s->sdmasysad = (s->sdmasysad & mask) | value;
--        MASKED_WRITE(s->sdmasysad, mask, value);
--        /* Writing to last byte of sdmasysad might trigger transfer */
--        if (!(mask & 0xFF000000) && TRANSFERRING_DATA(s->prnsts) && s->blkcnt &&
--                s->blksize && SDHC_DMA_TYPE(s->hostctl1) == SDHC_CTRL_SDMA) {
--            if (s->trnmod & SDHC_TRNS_MULTI) {
--                sdhci_sdma_transfer_multi_blocks(s);
--            } else {
--                sdhci_sdma_transfer_single_block(s);
-+        if (!TRANSFERRING_DATA(s->prnsts)) {
-+            s->sdmasysad = (s->sdmasysad & mask) | value;
-+            MASKED_WRITE(s->sdmasysad, mask, value);
-+            /* Writing to last byte of sdmasysad might trigger transfer */
-+            if (!(mask & 0xFF000000) && s->blkcnt && s->blksize &&
-+                SDHC_DMA_TYPE(s->hostctl1) == SDHC_CTRL_SDMA) {
-+                if (s->trnmod & SDHC_TRNS_MULTI) {
-+                    sdhci_sdma_transfer_multi_blocks(s);
-+                } else {
-+                    sdhci_sdma_transfer_single_block(s);
-+                }
-             }
-         }
-         break;
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_4.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_4.patch
deleted file mode 100644
index d5be997..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_4.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From b672bcaf5522294a4d8de3e88e0932d55585ee3b Mon Sep 17 00:00:00 2001
-From: Bin Meng <bmeng.cn@gmail.com>
-Date: Wed, 3 Mar 2021 20:26:37 +0800
-Subject: [PATCH 4/6] hw/sd: sdhci: Correctly set the controller status for
- ADMA
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When an ADMA transfer is started, the codes forget to set the
-controller status to indicate a transfer is in progress.
-
-With this fix, the following 2 reproducers:
-
-https://paste.debian.net/plain/1185136
-https://paste.debian.net/plain/1185141
-
-cannot be reproduced with the following QEMU command line:
-
-$ qemu-system-x86_64 -nographic -machine accel=qtest -m 512M \
-      -nodefaults -device sdhci-pci,sd-spec-version=3 \
-      -drive if=sd,index=0,file=null-co://,format=raw,id=mydrive \
-      -device sd-card,drive=mydrive -qtest stdio
-
-Cc: qemu-stable@nongnu.org
-Fixes: CVE-2020-17380
-Fixes: CVE-2020-25085
-Fixes: CVE-2021-3409
-Fixes: d7dfca0807a0 ("hw/sdhci: introduce standard SD host controller")
-Reported-by: Alexander Bulekov <alxndr@bu.edu>
-Reported-by: Cornelius Aschermann (Ruhr-Universität Bochum)
-Reported-by: Sergej Schumilo (Ruhr-Universität Bochum)
-Reported-by: Simon Wörner (Ruhr-Universität Bochum)
-Buglink: https://bugs.launchpad.net/qemu/+bug/1892960
-Buglink: https://bugs.launchpad.net/qemu/+bug/1909418
-Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1928146
-Tested-by: Alexander Bulekov <alxndr@bu.edu>
-Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
-Message-Id: <20210303122639.20004-4-bmeng.cn@gmail.com>
-Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-Upstream-Status: Backport [bc6f28995ff88f5d82c38afcfd65406f0ae375aa]
-CVE: CVE-2021-3409
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/sd/sdhci.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
-index d8a46f307..7de03c6dd 100644
---- a/hw/sd/sdhci.c
-+++ b/hw/sd/sdhci.c
-@@ -768,7 +768,9 @@ static void sdhci_do_adma(SDHCIState *s)
- 
-         switch (dscr.attr & SDHC_ADMA_ATTR_ACT_MASK) {
-         case SDHC_ADMA_ATTR_ACT_TRAN:  /* data transfer */
-+            s->prnsts |= SDHC_DATA_INHIBIT | SDHC_DAT_LINE_ACTIVE;
-             if (s->trnmod & SDHC_TRNS_READ) {
-+                s->prnsts |= SDHC_DOING_READ;
-                 while (length) {
-                     if (s->data_count == 0) {
-                         sdbus_read_data(&s->sdbus, s->fifo_buffer, block_size);
-@@ -796,6 +798,7 @@ static void sdhci_do_adma(SDHCIState *s)
-                     }
-                 }
-             } else {
-+                s->prnsts |= SDHC_DOING_WRITE;
-                 while (length) {
-                     begin = s->data_count;
-                     if ((length + begin) < block_size) {
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_5.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_5.patch
deleted file mode 100644
index 7199056..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_5.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From c2298884cf6bcf2b047b4bae5f78432b052b5729 Mon Sep 17 00:00:00 2001
-From: Bin Meng <bmeng.cn@gmail.com>
-Date: Wed, 3 Mar 2021 20:26:38 +0800
-Subject: [PATCH 5/6] hw/sd: sdhci: Limit block size only when SDHC_BLKSIZE
- register is writable
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The codes to limit the maximum block size is only necessary when
-SDHC_BLKSIZE register is writable.
-
-Tested-by: Alexander Bulekov <alxndr@bu.edu>
-Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
-Message-Id: <20210303122639.20004-5-bmeng.cn@gmail.com>
-Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-Upstream-Status: Backport [5cd7aa3451b76bb19c0f6adc2b931f091e5d7fcd]
-CVE: CVE-2021-3409
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/sd/sdhci.c | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
-index 7de03c6dd..6c780126e 100644
---- a/hw/sd/sdhci.c
-+++ b/hw/sd/sdhci.c
-@@ -1142,15 +1142,15 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
-         if (!TRANSFERRING_DATA(s->prnsts)) {
-             MASKED_WRITE(s->blksize, mask, extract32(value, 0, 12));
-             MASKED_WRITE(s->blkcnt, mask >> 16, value >> 16);
--        }
- 
--        /* Limit block size to the maximum buffer size */
--        if (extract32(s->blksize, 0, 12) > s->buf_maxsz) {
--            qemu_log_mask(LOG_GUEST_ERROR, "%s: Size 0x%x is larger than "
--                          "the maximum buffer 0x%x\n", __func__, s->blksize,
--                          s->buf_maxsz);
-+            /* Limit block size to the maximum buffer size */
-+            if (extract32(s->blksize, 0, 12) > s->buf_maxsz) {
-+                qemu_log_mask(LOG_GUEST_ERROR, "%s: Size 0x%x is larger than "
-+                              "the maximum buffer 0x%x\n", __func__, s->blksize,
-+                              s->buf_maxsz);
- 
--            s->blksize = deposit32(s->blksize, 0, 12, s->buf_maxsz);
-+                s->blksize = deposit32(s->blksize, 0, 12, s->buf_maxsz);
-+            }
-         }
- 
-         break;
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_6.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_6.patch
deleted file mode 100644
index 624c1f6..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3409_6.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From db916870a839346767b6d5ca7d0eed3128ba5fea Mon Sep 17 00:00:00 2001
-From: Bin Meng <bmeng.cn@gmail.com>
-Date: Wed, 3 Mar 2021 20:26:39 +0800
-Subject: [PATCH 6/6] hw/sd: sdhci: Reset the data pointer of s->fifo_buffer[]
- when a different block size is programmed
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-If the block size is programmed to a different value from the
-previous one, reset the data pointer of s->fifo_buffer[] so that
-s->fifo_buffer[] can be filled in using the new block size in
-the next transfer.
-
-With this fix, the following reproducer:
-
-outl 0xcf8 0x80001010
-outl 0xcfc 0xe0000000
-outl 0xcf8 0x80001001
-outl 0xcfc 0x06000000
-write 0xe000002c 0x1 0x05
-write 0xe0000005 0x1 0x02
-write 0xe0000007 0x1 0x01
-write 0xe0000028 0x1 0x10
-write 0x0 0x1 0x23
-write 0x2 0x1 0x08
-write 0xe000000c 0x1 0x01
-write 0xe000000e 0x1 0x20
-write 0xe000000f 0x1 0x00
-write 0xe000000c 0x1 0x32
-write 0xe0000004 0x2 0x0200
-write 0xe0000028 0x1 0x00
-write 0xe0000003 0x1 0x40
-
-cannot be reproduced with the following QEMU command line:
-
-$ qemu-system-x86_64 -nographic -machine accel=qtest -m 512M \
-      -nodefaults -device sdhci-pci,sd-spec-version=3 \
-      -drive if=sd,index=0,file=null-co://,format=raw,id=mydrive \
-      -device sd-card,drive=mydrive -qtest stdio
-
-Cc: qemu-stable@nongnu.org
-Fixes: CVE-2020-17380
-Fixes: CVE-2020-25085
-Fixes: CVE-2021-3409
-Fixes: d7dfca0807a0 ("hw/sdhci: introduce standard SD host controller")
-Reported-by: Alexander Bulekov <alxndr@bu.edu>
-Reported-by: Cornelius Aschermann (Ruhr-Universität Bochum)
-Reported-by: Sergej Schumilo (Ruhr-Universität Bochum)
-Reported-by: Simon Wörner (Ruhr-Universität Bochum)
-Buglink: https://bugs.launchpad.net/qemu/+bug/1892960
-Buglink: https://bugs.launchpad.net/qemu/+bug/1909418
-Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1928146
-Tested-by: Alexander Bulekov <alxndr@bu.edu>
-Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
-Message-Id: <20210303122639.20004-6-bmeng.cn@gmail.com>
-Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
-
-Upstream-Status: Backport [cffb446e8fd19a14e1634c7a3a8b07be3f01d5c9]
-CVE: CVE-2021-3409
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/sd/sdhci.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
-index 6c780126e..216842420 100644
---- a/hw/sd/sdhci.c
-+++ b/hw/sd/sdhci.c
-@@ -1140,6 +1140,8 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
-         break;
-     case SDHC_BLKSIZE:
-         if (!TRANSFERRING_DATA(s->prnsts)) {
-+            uint16_t blksize = s->blksize;
-+
-             MASKED_WRITE(s->blksize, mask, extract32(value, 0, 12));
-             MASKED_WRITE(s->blkcnt, mask >> 16, value >> 16);
- 
-@@ -1151,6 +1153,16 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val, unsigned size)
- 
-                 s->blksize = deposit32(s->blksize, 0, 12, s->buf_maxsz);
-             }
-+
-+            /*
-+             * If the block size is programmed to a different value from
-+             * the previous one, reset the data pointer of s->fifo_buffer[]
-+             * so that s->fifo_buffer[] can be filled in using the new block
-+             * size in the next transfer.
-+             */
-+            if (blksize != s->blksize) {
-+                s->data_count = 0;
-+            }
-         }
- 
-         break;
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_1.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_1.patch
deleted file mode 100644
index 5bacd67..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_1.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From 4b1988a29d67277d6c8ce1df52975f5616592913 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang@redhat.com>
-Date: Wed, 24 Feb 2021 11:44:36 +0800
-Subject: [PATCH 01/10] net: introduce qemu_receive_packet()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Some NIC supports loopback mode and this is done by calling
-nc->info->receive() directly which in fact suppresses the effort of
-reentrancy check that is done in qemu_net_queue_send().
-
-Unfortunately we can't use qemu_net_queue_send() here since for
-loopback there's no sender as peer, so this patch introduce a
-qemu_receive_packet() which is used for implementing loopback mode
-for a NIC with this check.
-
-NIC that supports loopback mode will be converted to this helper.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [705df5466c98f3efdd2b68d3b31dad86858acad7]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- include/net/net.h   |  5 +++++
- include/net/queue.h |  8 ++++++++
- net/net.c           | 38 +++++++++++++++++++++++++++++++-------
- net/queue.c         | 22 ++++++++++++++++++++++
- 4 files changed, 66 insertions(+), 7 deletions(-)
-
-diff --git a/include/net/net.h b/include/net/net.h
-index 778fc787c..03f058ecb 100644
---- a/include/net/net.h
-+++ b/include/net/net.h
-@@ -143,12 +143,17 @@ void *qemu_get_nic_opaque(NetClientState *nc);
- void qemu_del_net_client(NetClientState *nc);
- typedef void (*qemu_nic_foreach)(NICState *nic, void *opaque);
- void qemu_foreach_nic(qemu_nic_foreach func, void *opaque);
-+int qemu_can_receive_packet(NetClientState *nc);
- int qemu_can_send_packet(NetClientState *nc);
- ssize_t qemu_sendv_packet(NetClientState *nc, const struct iovec *iov,
-                           int iovcnt);
- ssize_t qemu_sendv_packet_async(NetClientState *nc, const struct iovec *iov,
-                                 int iovcnt, NetPacketSent *sent_cb);
- ssize_t qemu_send_packet(NetClientState *nc, const uint8_t *buf, int size);
-+ssize_t qemu_receive_packet(NetClientState *nc, const uint8_t *buf, int size);
-+ssize_t qemu_receive_packet_iov(NetClientState *nc,
-+                                const struct iovec *iov,
-+                                int iovcnt);
- ssize_t qemu_send_packet_raw(NetClientState *nc, const uint8_t *buf, int size);
- ssize_t qemu_send_packet_async(NetClientState *nc, const uint8_t *buf,
-                                int size, NetPacketSent *sent_cb);
-diff --git a/include/net/queue.h b/include/net/queue.h
-index c0269bb1d..9f2f289d7 100644
---- a/include/net/queue.h
-+++ b/include/net/queue.h
-@@ -55,6 +55,14 @@ void qemu_net_queue_append_iov(NetQueue *queue,
- 
- void qemu_del_net_queue(NetQueue *queue);
- 
-+ssize_t qemu_net_queue_receive(NetQueue *queue,
-+                               const uint8_t *data,
-+                               size_t size);
-+
-+ssize_t qemu_net_queue_receive_iov(NetQueue *queue,
-+                                   const struct iovec *iov,
-+                                   int iovcnt);
-+
- ssize_t qemu_net_queue_send(NetQueue *queue,
-                             NetClientState *sender,
-                             unsigned flags,
-diff --git a/net/net.c b/net/net.c
-index 6a2c3d956..5e15e5d27 100644
---- a/net/net.c
-+++ b/net/net.c
-@@ -528,6 +528,17 @@ int qemu_set_vnet_be(NetClientState *nc, bool is_be)
- #endif
- }
- 
-+int qemu_can_receive_packet(NetClientState *nc)
-+{
-+    if (nc->receive_disabled) {
-+        return 0;
-+    } else if (nc->info->can_receive &&
-+               !nc->info->can_receive(nc)) {
-+        return 0;
-+    }
-+    return 1;
-+}
-+
- int qemu_can_send_packet(NetClientState *sender)
- {
-     int vm_running = runstate_is_running();
-@@ -540,13 +551,7 @@ int qemu_can_send_packet(NetClientState *sender)
-         return 1;
-     }
- 
--    if (sender->peer->receive_disabled) {
--        return 0;
--    } else if (sender->peer->info->can_receive &&
--               !sender->peer->info->can_receive(sender->peer)) {
--        return 0;
--    }
--    return 1;
-+    return qemu_can_receive_packet(sender->peer);
- }
- 
- static ssize_t filter_receive_iov(NetClientState *nc,
-@@ -679,6 +684,25 @@ ssize_t qemu_send_packet(NetClientState *nc, const uint8_t *buf, int size)
-     return qemu_send_packet_async(nc, buf, size, NULL);
- }
- 
-+ssize_t qemu_receive_packet(NetClientState *nc, const uint8_t *buf, int size)
-+{
-+    if (!qemu_can_receive_packet(nc)) {
-+        return 0;
-+    }
-+
-+    return qemu_net_queue_receive(nc->incoming_queue, buf, size);
-+}
-+
-+ssize_t qemu_receive_packet_iov(NetClientState *nc, const struct iovec *iov,
-+                                int iovcnt)
-+{
-+    if (!qemu_can_receive_packet(nc)) {
-+        return 0;
-+    }
-+
-+    return qemu_net_queue_receive_iov(nc->incoming_queue, iov, iovcnt);
-+}
-+
- ssize_t qemu_send_packet_raw(NetClientState *nc, const uint8_t *buf, int size)
- {
-     return qemu_send_packet_async_with_flags(nc, QEMU_NET_PACKET_FLAG_RAW,
-diff --git a/net/queue.c b/net/queue.c
-index 19e32c80f..c872d51df 100644
---- a/net/queue.c
-+++ b/net/queue.c
-@@ -182,6 +182,28 @@ static ssize_t qemu_net_queue_deliver_iov(NetQueue *queue,
-     return ret;
- }
- 
-+ssize_t qemu_net_queue_receive(NetQueue *queue,
-+                               const uint8_t *data,
-+                               size_t size)
-+{
-+    if (queue->delivering) {
-+        return 0;
-+    }
-+
-+    return qemu_net_queue_deliver(queue, NULL, 0, data, size);
-+}
-+
-+ssize_t qemu_net_queue_receive_iov(NetQueue *queue,
-+                                   const struct iovec *iov,
-+                                   int iovcnt)
-+{
-+    if (queue->delivering) {
-+        return 0;
-+    }
-+
-+    return qemu_net_queue_deliver_iov(queue, NULL, 0, iov, iovcnt);
-+}
-+
- ssize_t qemu_net_queue_send(NetQueue *queue,
-                             NetClientState *sender,
-                             unsigned flags,
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_10.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_10.patch
deleted file mode 100644
index 7deec1a..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_10.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 65b851efd3d0280425c202f4e5880c48f8334dae Mon Sep 17 00:00:00 2001
-From: Alexander Bulekov <alxndr@bu.edu>
-Date: Mon, 1 Mar 2021 14:35:30 -0500
-Subject: [PATCH 10/10] lan9118: switch to use qemu_receive_packet() for
- loopback
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_packet() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com
-Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [37cee01784ff0df13e5209517e1b3594a5e792d1]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/lan9118.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/net/lan9118.c b/hw/net/lan9118.c
-index ab57c02c8..75f18ae2d 100644
---- a/hw/net/lan9118.c
-+++ b/hw/net/lan9118.c
-@@ -669,7 +669,7 @@ static void do_tx_packet(lan9118_state *s)
-     /* FIXME: Honor TX disable, and allow queueing of packets.  */
-     if (s->phy_control & 0x4000)  {
-         /* This assumes the receive routine doesn't touch the VLANClient.  */
--        lan9118_receive(qemu_get_queue(s->nic), s->txp->data, s->txp->len);
-+        qemu_receive_packet(qemu_get_queue(s->nic), s->txp->data, s->txp->len);
-     } else {
-         qemu_send_packet(qemu_get_queue(s->nic), s->txp->data, s->txp->len);
-     }
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_2.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_2.patch
deleted file mode 100644
index 5e53e20..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_2.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From e2a48a3c7cc33dbbe89f896e0f07462cb04ff6b5 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang@redhat.com>
-Date: Wed, 24 Feb 2021 12:13:22 +0800
-Subject: [PATCH 02/10] e1000: switch to use qemu_receive_packet() for loopback
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_packet() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [1caff0340f49c93d535c6558a5138d20d475315c]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/e1000.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/net/e1000.c b/hw/net/e1000.c
-index d7d05ae30..cf22c4f07 100644
---- a/hw/net/e1000.c
-+++ b/hw/net/e1000.c
-@@ -546,7 +546,7 @@ e1000_send_packet(E1000State *s, const uint8_t *buf, int size)
- 
-     NetClientState *nc = qemu_get_queue(s->nic);
-     if (s->phy_reg[PHY_CTRL] & MII_CR_LOOPBACK) {
--        nc->info->receive(nc, buf, size);
-+        qemu_receive_packet(nc, buf, size);
-     } else {
-         qemu_send_packet(nc, buf, size);
-     }
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_3.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_3.patch
deleted file mode 100644
index 3fc469e..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_3.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c041a4da1ff119715e0ccf2d4a7af62568f17b93 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang@redhat.com>
-Date: Wed, 24 Feb 2021 12:57:40 +0800
-Subject: [PATCH 03/10] dp8393x: switch to use qemu_receive_packet() for
- loopback packet
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_packet() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [331d2ac9ea307c990dc86e6493e8f0c48d14bb33]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/dp8393x.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/net/dp8393x.c b/hw/net/dp8393x.c
-index 205c0decc..533a8304d 100644
---- a/hw/net/dp8393x.c
-+++ b/hw/net/dp8393x.c
-@@ -506,7 +506,7 @@ static void dp8393x_do_transmit_packets(dp8393xState *s)
-             s->regs[SONIC_TCR] |= SONIC_TCR_CRSL;
-             if (nc->info->can_receive(nc)) {
-                 s->loopback_packet = 1;
--                nc->info->receive(nc, s->tx_buffer, tx_len);
-+                qemu_receive_packet(nc, s->tx_buffer, tx_len);
-             }
-         } else {
-             /* Transmit packet */
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_4.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_4.patch
deleted file mode 100644
index e14f377..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_4.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 9ac5345344b75995bc96d171eaa5dc8d26bf0e21 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang@redhat.com>
-Date: Wed, 24 Feb 2021 13:00:01 +0800
-Subject: [PATCH 04/10] msf2-mac: switch to use qemu_receive_packet() for
- loopback
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_packet() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [26194a58f4eb83c5bdf4061a1628508084450ba1]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/msf2-emac.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/net/msf2-emac.c b/hw/net/msf2-emac.c
-index 32ba9e841..3e6206044 100644
---- a/hw/net/msf2-emac.c
-+++ b/hw/net/msf2-emac.c
-@@ -158,7 +158,7 @@ static void msf2_dma_tx(MSF2EmacState *s)
-          * R_CFG1 bit 0 is set.
-          */
-         if (s->regs[R_CFG1] & R_CFG1_LB_EN_MASK) {
--            nc->info->receive(nc, buf, size);
-+            qemu_receive_packet(nc, buf, size);
-         } else {
-             qemu_send_packet(nc, buf, size);
-         }
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_5.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_5.patch
deleted file mode 100644
index c3f8f97..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_5.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From d465dc79c9ee729d91ef086b993e956b1935be69 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang@redhat.com>
-Date: Wed, 24 Feb 2021 13:14:35 +0800
-Subject: [PATCH 05/10] sungem: switch to use qemu_receive_packet() for
- loopback
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_packet() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [8c92060d3c0248bd4d515719a35922cd2391b9b4]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/sungem.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/net/sungem.c b/hw/net/sungem.c
-index 33c3722df..3684a4d73 100644
---- a/hw/net/sungem.c
-+++ b/hw/net/sungem.c
-@@ -306,7 +306,7 @@ static void sungem_send_packet(SunGEMState *s, const uint8_t *buf,
-     NetClientState *nc = qemu_get_queue(s->nic);
- 
-     if (s->macregs[MAC_XIFCFG >> 2] & MAC_XIFCFG_LBCK) {
--        nc->info->receive(nc, buf, size);
-+        qemu_receive_packet(nc, buf, size);
-     } else {
-         qemu_send_packet(nc, buf, size);
-     }
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_6.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_6.patch
deleted file mode 100644
index 855c697..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_6.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c0010f9b2bafe866fe32e3c2688454bc24147136 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang@redhat.com>
-Date: Wed, 24 Feb 2021 13:27:52 +0800
-Subject: [PATCH 06/10] tx_pkt: switch to use qemu_receive_packet_iov() for
- loopback
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_receive_iov() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [8c552542b81e56ff532dd27ec6e5328954bdda73]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/net_tx_pkt.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/net/net_tx_pkt.c b/hw/net/net_tx_pkt.c
-index da262edc3..1f9aa59ec 100644
---- a/hw/net/net_tx_pkt.c
-+++ b/hw/net/net_tx_pkt.c
-@@ -553,7 +553,7 @@ static inline void net_tx_pkt_sendv(struct NetTxPkt *pkt,
-     NetClientState *nc, const struct iovec *iov, int iov_cnt)
- {
-     if (pkt->is_loopback) {
--        nc->info->receive_iov(nc, iov, iov_cnt);
-+        qemu_receive_packet_iov(nc, iov, iov_cnt);
-     } else {
-         qemu_sendv_packet(nc, iov, iov_cnt);
-     }
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_7.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_7.patch
deleted file mode 100644
index 4e1115d..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_7.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 64b38675c728354e4015e4bec3d975cd4cb8a981 Mon Sep 17 00:00:00 2001
-From: Alexander Bulekov <alxndr@bu.edu>
-Date: Fri, 26 Feb 2021 13:47:53 -0500
-Subject: [PATCH 07/10] rtl8139: switch to use qemu_receive_packet() for
- loopback
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_packet() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Buglink: https://bugs.launchpad.net/qemu/+bug/1910826
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com
-Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [5311fb805a4403bba024e83886fa0e7572265de4]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/rtl8139.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
-index ba5ace1ab..d2dd03e6a 100644
---- a/hw/net/rtl8139.c
-+++ b/hw/net/rtl8139.c
-@@ -1795,7 +1795,7 @@ static void rtl8139_transfer_frame(RTL8139State *s, uint8_t *buf, int size,
-         }
- 
-         DPRINTF("+++ transmit loopback mode\n");
--        rtl8139_do_receive(qemu_get_queue(s->nic), buf, size, do_interrupt);
-+        qemu_receive_packet(qemu_get_queue(s->nic), buf, size);
- 
-         if (iov) {
-             g_free(buf2);
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_8.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_8.patch
deleted file mode 100644
index ed71646..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_8.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 023ce62f0a788ad3a8233c7a828554bceeafd031 Mon Sep 17 00:00:00 2001
-From: Alexander Bulekov <alxndr@bu.edu>
-Date: Mon, 1 Mar 2021 10:33:34 -0500
-Subject: [PATCH 08/10] pcnet: switch to use qemu_receive_packet() for loopback
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_packet() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Buglink: https://bugs.launchpad.net/qemu/+bug/1917085
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com
-Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [99ccfaa1edafd79f7a3a0ff7b58ae4da7c514928]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/pcnet.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
-index f3f18d859..dcd3fc494 100644
---- a/hw/net/pcnet.c
-+++ b/hw/net/pcnet.c
-@@ -1250,7 +1250,7 @@ txagain:
-             if (BCR_SWSTYLE(s) == 1)
-                 add_crc = !GET_FIELD(tmd.status, TMDS, NOFCS);
-             s->looptest = add_crc ? PCNET_LOOPTEST_CRC : PCNET_LOOPTEST_NOCRC;
--            pcnet_receive(qemu_get_queue(s->nic), s->buffer, s->xmit_pos);
-+            qemu_receive_packet(qemu_get_queue(s->nic), s->buffer, s->xmit_pos);
-             s->looptest = 0;
-         } else {
-             if (s->nic) {
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_9.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_9.patch
deleted file mode 100644
index 39d32b3..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/CVE-2021-3416_9.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From ecf7e62bb2cb02c9bd40082504ae376f3e19ffd2 Mon Sep 17 00:00:00 2001
-From: Alexander Bulekov <alxndr@bu.edu>
-Date: Mon, 1 Mar 2021 14:33:43 -0500
-Subject: [PATCH 09/10] cadence_gem: switch to use qemu_receive_packet() for
- loopback
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This patch switches to use qemu_receive_packet() which can detect
-reentrancy and return early.
-
-This is intended to address CVE-2021-3416.
-
-Cc: Prasad J Pandit <ppandit@redhat.com>
-Cc: qemu-stable@nongnu.org
-Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
-Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
-Signed-off-by: Jason Wang <jasowang@redhat.com>
-
-Upstream-Status: Backport [e73adfbeec9d4e008630c814759052ed945c3fed]
-CVE: CVE-2021-3416
-
-Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
----
- hw/net/cadence_gem.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/hw/net/cadence_gem.c b/hw/net/cadence_gem.c
-index 7a534691f..43b760e3f 100644
---- a/hw/net/cadence_gem.c
-+++ b/hw/net/cadence_gem.c
-@@ -1275,8 +1275,8 @@ static void gem_transmit(CadenceGEMState *s)
-                 /* Send the packet somewhere */
-                 if (s->phy_loop || (s->regs[GEM_NWCTRL] &
-                                     GEM_NWCTRL_LOCALLOOP)) {
--                    gem_receive(qemu_get_queue(s->nic), s->tx_packet,
--                                total_bytes);
-+                    qemu_receive_packet(qemu_get_queue(s->nic), s->tx_packet,
-+                                        total_bytes);
-                 } else {
-                     qemu_send_packet(qemu_get_queue(s->nic), s->tx_packet,
-                                      total_bytes);
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/qemu/qemu/cross.patch b/poky/meta/recipes-devtools/qemu/qemu/cross.patch
index 438c1ad..a0fc39e 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/cross.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/cross.patch
@@ -6,19 +6,19 @@
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 
 
-Index: qemu-5.2.0/configure
+Index: qemu-6.0.0/configure
 ===================================================================
---- qemu-5.2.0.orig/configure
-+++ qemu-5.2.0/configure
-@@ -6973,7 +6973,6 @@ if has $sdl2_config; then
+--- qemu-6.0.0.orig/configure
++++ qemu-6.0.0/configure
+@@ -6371,7 +6371,6 @@ if has $sdl2_config; then
  fi
  echo "strip = [$(meson_quote $strip)]" >> $cross
  echo "windres = [$(meson_quote $windres)]" >> $cross
--if test -n "$cross_prefix"; then
+-if test "$cross_compile" = "yes"; then
      cross_arg="--cross-file config-meson.cross"
      echo "[host_machine]" >> $cross
      if test "$mingw32" = "yes" ; then
-@@ -6999,9 +6998,6 @@ if test -n "$cross_prefix"; then
+@@ -6403,9 +6402,6 @@ if test "$cross_compile" = "yes"; then
      else
          echo "endian = 'little'" >> $cross
      fi
diff --git a/poky/meta/recipes-devtools/qemu/qemu/determinism.patch b/poky/meta/recipes-devtools/qemu/qemu/determinism.patch
index cb1c907..330a312 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/determinism.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/determinism.patch
@@ -4,38 +4,19 @@
 Replace the full paths with relative ones. I couldn't figure out how to get
 meson to pass relative paths but we can fix that in the script.
 
-For the keymaps, omit the timestamps as they don't matter to us.
-
 Upstream-Status: Pending [some version of all/part of this may be accepted]
 RP 2021/3/1
 
-Index: qemu-5.2.0/scripts/decodetree.py
+Index: qemu-6.0.0/scripts/decodetree.py
 ===================================================================
---- qemu-5.2.0.orig/scripts/decodetree.py
-+++ qemu-5.2.0/scripts/decodetree.py
-@@ -1303,8 +1303,8 @@ def main():
+--- qemu-6.0.0.orig/scripts/decodetree.py
++++ qemu-6.0.0/scripts/decodetree.py
+@@ -1304,7 +1304,7 @@ def main():
      toppat = ExcMultiPattern(0)
  
      for filename in args:
 -        input_file = filename
--        f = open(filename, 'r')
 +        input_file = os.path.relpath(filename)
-+        f = open(input_file, 'r')
+         f = open(filename, 'rt', encoding='utf-8')
          parse_file(f, toppat)
          f.close()
- 
-Index: qemu-5.2.0/ui/keycodemapdb/tools/keymap-gen
-===================================================================
---- qemu-5.2.0.orig/ui/keycodemapdb/tools/keymap-gen
-+++ qemu-5.2.0/ui/keycodemapdb/tools/keymap-gen
-@@ -317,9 +317,8 @@ class LanguageGenerator(object):
-         raise NotImplementedError()
- 
-     def generate_header(self, database, args):
--        today = time.strftime("%Y-%m-%d %H:%M")
-         self._boilerplate([
--            "This file is auto-generated from keymaps.csv on %s" % today,
-+            "This file is auto-generated from keymaps.csv",
-             "Database checksum sha256(%s)" % database.mapchecksum,
-             "To re-generate, run:",
-             "  %s" % args,
diff --git a/poky/meta/recipes-devtools/qemu/qemu/mingwfix.patch b/poky/meta/recipes-devtools/qemu/qemu/mingwfix.patch
deleted file mode 100644
index 8d76cef..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/mingwfix.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-OE assumes that mingw files are in a unix like file layout. The
-'flattening' done by configure in qemu for mingw32 breaks things
-for us. We are discussing with upstream but for now, hack this to
-disable it and use the unix like layout everywhere.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg01073.html]
-
-Index: qemu-5.2.0/configure
-===================================================================
---- qemu-5.2.0.orig/configure
-+++ qemu-5.2.0/configure
-@@ -1541,7 +1541,7 @@ libdir="${libdir:-$prefix/lib}"
- libexecdir="${libexecdir:-$prefix/libexec}"
- includedir="${includedir:-$prefix/include}"
- 
--if test "$mingw32" = "yes" ; then
-+if test "$mingw32" = "dontwantthis" ; then
-     mandir="$prefix"
-     datadir="$prefix"
-     docdir="$prefix"
diff --git a/poky/meta/recipes-devtools/qemu/qemu/mmap.patch b/poky/meta/recipes-devtools/qemu/qemu/mmap.patch
deleted file mode 100644
index edd9734..0000000
--- a/poky/meta/recipes-devtools/qemu/qemu/mmap.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-If mremap() is called without the MREMAP_MAYMOVE flag with a start address
-just before the end of memory (reserved_va) where new_size would exceed 
-GUEST_ADD_MAX, the assert(end - 1 <= GUEST_ADDR_MAX) in page_set_flags() 
-would trigger.
-
-Add an extra guard to the guest_range_valid() checks to prevent this and
-avoid asserting binaries when reserved_va is set.
-
-This meant a test case now gives the same behaviour regardless of whether
-reserved_va is set or not.
-
-Upstream-Status: Backport [https://github.com/qemu/qemu/commit/ccc5ccc17f8cfbfd87d9aede5d12a2d47c56e712]
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org
-
-Index: qemu-5.2.0/linux-user/mmap.c
-===================================================================
---- qemu-5.2.0.orig/linux-user/mmap.c
-+++ qemu-5.2.0/linux-user/mmap.c
-@@ -727,7 +727,9 @@ abi_long target_mremap(abi_ulong old_add
- 
-     if (!guest_range_valid(old_addr, old_size) ||
-         ((flags & MREMAP_FIXED) &&
--         !guest_range_valid(new_addr, new_size))) {
-+         !guest_range_valid(new_addr, new_size)) ||
-+        ((flags & MREMAP_MAYMOVE) == 0 &&
-+         !guest_range_valid(old_addr, new_size))) {
-         errno = ENOMEM;
-         return -1;
-     }
diff --git a/poky/meta/recipes-devtools/qemu/qemu/mmap2.patch b/poky/meta/recipes-devtools/qemu/qemu/mmap2.patch
index 1652131..e115473 100644
--- a/poky/meta/recipes-devtools/qemu/qemu/mmap2.patch
+++ b/poky/meta/recipes-devtools/qemu/qemu/mmap2.patch
@@ -13,27 +13,26 @@
 Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg01355.html]
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org
 
-Index: qemu-5.2.0/linux-user/mmap.c
+Index: qemu-6.0.0/linux-user/mmap.c
 ===================================================================
---- qemu-5.2.0.orig/linux-user/mmap.c
-+++ qemu-5.2.0/linux-user/mmap.c
-@@ -722,12 +722,14 @@ abi_long target_mremap(abi_ulong old_add
+--- qemu-6.0.0.orig/linux-user/mmap.c
++++ qemu-6.0.0/linux-user/mmap.c
+@@ -733,12 +733,16 @@ abi_long target_mremap(abi_ulong old_add
      int prot;
      void *host_addr;
  
--    if (!guest_range_valid(old_addr, old_size) ||
+-    if (!guest_range_valid_untagged(old_addr, old_size) ||
 -        ((flags & MREMAP_FIXED) &&
--         !guest_range_valid(new_addr, new_size)) ||
--        ((flags & MREMAP_MAYMOVE) == 0 &&
--         !guest_range_valid(old_addr, new_size))) {
--        errno = ENOMEM;
-+    if (!guest_range_valid(old_addr, old_size)) {
++    if (!guest_range_valid_untagged(old_addr, old_size)) {
 +        errno = EFAULT;
 +        return -1;
 +    }
-+
-+    if (((flags & MREMAP_FIXED) && !guest_range_valid(new_addr, new_size)) ||
-+        ((flags & MREMAP_MAYMOVE) == 0 && !guest_range_valid(old_addr, new_size))) {
++    
++    if (((flags & MREMAP_FIXED) &&
+          !guest_range_valid_untagged(new_addr, new_size)) ||
+         ((flags & MREMAP_MAYMOVE) == 0 &&
+          !guest_range_valid_untagged(old_addr, new_size))) {
+-        errno = ENOMEM;
 +        errno = EINVAL;
          return -1;
      }
diff --git a/poky/meta/recipes-devtools/qemu/qemu_5.2.0.bb b/poky/meta/recipes-devtools/qemu/qemu_6.0.0.bb
similarity index 93%
rename from poky/meta/recipes-devtools/qemu/qemu_5.2.0.bb
rename to poky/meta/recipes-devtools/qemu/qemu_6.0.0.bb
index f265204..90b135a 100644
--- a/poky/meta/recipes-devtools/qemu/qemu_5.2.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemu_6.0.0.bb
@@ -19,11 +19,11 @@
 }
 
 PACKAGECONFIG ??= " \
-    fdt sdl kvm \
+    fdt sdl kvm pie \
     ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
     ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
 "
-PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm \
+PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm pie \
     ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virglrenderer glx', '', d)} \
 "
diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb b/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb
index 7c03b41..95a6f5c 100644
--- a/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb
+++ b/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb
@@ -47,7 +47,7 @@
 
 S = "${WORKDIR}/git"
 
-DEPENDS = "libgcrypt db file popt xz bzip2 elfutils python3"
+DEPENDS = "libgcrypt file popt xz bzip2 elfutils python3"
 DEPENDS_append_class-native = " file-replacement-native bzip2-replacement-native"
 
 inherit autotools gettext pkgconfig python3native
@@ -70,11 +70,12 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'inhibit', '', d)}"
+PACKAGECONFIG ??= "bdb ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'inhibit', '', d)}"
 # The inhibit plugin serves no purpose outside of the target
 PACKAGECONFIG_remove_class-native = "inhibit"
 PACKAGECONFIG_remove_class-nativesdk = "inhibit"
 
+PACKAGECONFIG[bdb] = "--enable-bdb,--disable-bdb,db"
 PACKAGECONFIG[imaevm] = "--with-imaevm,,ima-evm-utils"
 PACKAGECONFIG[inhibit] = "--enable-inhibit-plugin,--disable-inhibit-plugin,dbus"
 PACKAGECONFIG[rpm2archive] = "--with-archive,--without-archive,libarchive"
diff --git a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
index 2b1409d..137e509 100644
--- a/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
+++ b/poky/meta/recipes-devtools/squashfs-tools/squashfs-tools_git.bb
@@ -32,7 +32,9 @@
 }
 
 do_install() {
+	install -d "${D}${includedir}"
 	oe_runmake install INSTALL_DIR=${D}${sbindir}
+	install -m 0644 "${S}"/squashfs_fs.h "${D}${includedir}"
 }
 
 ARM_INSTRUCTION_SET_armv4 = "arm"
diff --git a/poky/meta/recipes-devtools/swig/swig.inc b/poky/meta/recipes-devtools/swig/swig.inc
index e62718c..292bca3 100644
--- a/poky/meta/recipes-devtools/swig/swig.inc
+++ b/poky/meta/recipes-devtools/swig/swig.inc
@@ -13,6 +13,8 @@
 DEPENDS = "libpcre bison-native"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/swig/files/swig/"
+UPSTREAM_CHECK_REGEX = "swig-(?P<pver>\d+(\.\d+)+)"
 
 inherit autotools python3native pkgconfig
 
diff --git a/poky/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch b/poky/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch
deleted file mode 100644
index 885c395..0000000
--- a/poky/meta/recipes-devtools/swig/swig/0001-Add-Node-7.x-aka-V8-5.2-support.patch
+++ /dev/null
@@ -1,330 +0,0 @@
-From 1a5aadcd66e85c63d228bfd811a521d617c22a38 Mon Sep 17 00:00:00 2001
-From: Patrick Schneider <patrick.schneider@meetnow.eu>
-Date: Thu, 13 Apr 2017 15:02:53 +0200
-Subject: [PATCH] Add Node 7.x aka V8 5.2+ support
-
-* Use WeakCallbackInfo instead of WeakCallbackData
-* Use GetPrivate instead of GetHiddenValue
-* Adopted new signature for SetWeak to support destructor calling
-* SetAccessor deprecation fixed
-* Proper version checks where applicable
-
-Upstream-Status: Submitted [https://github.com/swig/swig/pull/968]
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
----
- Lib/javascript/v8/javascriptcode.swg    | 27 +++++++++++++++++-----
- Lib/javascript/v8/javascripthelpers.swg | 29 +++++++++++++++++++++---
- Lib/javascript/v8/javascriptinit.swg    | 16 +++++++++++--
- Lib/javascript/v8/javascriptrun.swg     | 40 ++++++++++++++++++++++++++++-----
- 4 files changed, 95 insertions(+), 17 deletions(-)
-
-diff --git a/Lib/javascript/v8/javascriptcode.swg b/Lib/javascript/v8/javascriptcode.swg
-index fb7d55c..b8c5089 100644
---- a/Lib/javascript/v8/javascriptcode.swg
-+++ b/Lib/javascript/v8/javascriptcode.swg
-@@ -133,10 +133,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
-   SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
- static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SWIGV8_Proxy *proxy) {
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
-   v8::Local<v8::Object> object = data.GetValue();
-   SWIGV8_Proxy *proxy = data.GetParameter();
-+#else
-+  static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
-+  SWIGV8_Proxy *proxy = data.GetParameter();
- #endif
- 
-   if(proxy->swigCMemOwn && proxy->swigCObject) {
-@@ -147,7 +150,9 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
-   }
-   delete proxy;
- 
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   object.Clear();
-+#endif
-   
- #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
-   object.Dispose();
-@@ -155,7 +160,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
-   object.Dispose(isolate);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x032100)
-   object->Dispose(isolate);
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   object->Dispose();
- #endif
- }
-@@ -177,10 +182,13 @@ static void $jswrapper(v8::Isolate *isolate, v8::Persistent<v8::Value> object, v
-   SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
- static void $jswrapper(v8::Isolate *isolate, v8::Persistent< v8::Object> *object, SWIGV8_Proxy *proxy) {
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
-   v8::Local<v8::Object> object = data.GetValue();
-   SWIGV8_Proxy *proxy = data.GetParameter();
-+#else
-+static void $jswrapper(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
-+  SWIGV8_Proxy *proxy = data.GetParameter();
- #endif
- 
-   if(proxy->swigCMemOwn && proxy->swigCObject) {
-@@ -197,7 +205,7 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
-   object->Dispose(isolate);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
-   object->Dispose();
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   object.Clear();
- #endif
- }
-@@ -211,7 +219,11 @@ static void $jswrapper(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &dat
-  * ----------------------------------------------------------------------------- */
- %fragment("js_getter", "templates")
- %{
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- static SwigV8ReturnValue $jswrapper(v8::Local<v8::String> property, const SwigV8PropertyCallbackInfo &info) {
-+#else
-+static SwigV8ReturnValue $jswrapper(v8::Local<v8::Name> property, const SwigV8PropertyCallbackInfo &info) {
-+#endif
-   SWIGV8_HANDLESCOPE();
-   
-   v8::Handle<v8::Value> jsresult;
-@@ -233,8 +245,11 @@ fail:
-  * ----------------------------------------------------------------------------- */
- %fragment("js_setter", "templates")
- %{
--static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value,
--  const SwigV8PropertyCallbackInfoVoid &info) {
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-+static void $jswrapper(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
-+#else
-+static void $jswrapper(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid &info) {
-+#endif
-   SWIGV8_HANDLESCOPE();
-   
-   $jslocals
-diff --git a/Lib/javascript/v8/javascripthelpers.swg b/Lib/javascript/v8/javascripthelpers.swg
-index 091467d..7461079 100644
---- a/Lib/javascript/v8/javascripthelpers.swg
-+++ b/Lib/javascript/v8/javascripthelpers.swg
-@@ -6,11 +6,16 @@ typedef v8::InvocationCallback  SwigV8FunctionCallback;
- typedef v8::AccessorGetter      SwigV8AccessorGetterCallback;
- typedef v8::AccessorSetter      SwigV8AccessorSetterCallback;
- typedef v8::AccessorInfo        SwigV8PropertyCallbackInfoVoid;
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- typedef v8::FunctionCallback            SwigV8FunctionCallback;
- typedef v8::AccessorGetterCallback      SwigV8AccessorGetterCallback;
- typedef v8::AccessorSetterCallback      SwigV8AccessorSetterCallback;
- typedef v8::PropertyCallbackInfo<void>  SwigV8PropertyCallbackInfoVoid;
-+#else
-+typedef v8::FunctionCallback            SwigV8FunctionCallback;
-+typedef v8::AccessorNameGetterCallback  SwigV8AccessorGetterCallback;
-+typedef v8::AccessorNameSetterCallback  SwigV8AccessorSetterCallback;
-+typedef v8::PropertyCallbackInfo<void>  SwigV8PropertyCallbackInfoVoid;
- #endif
- 
- /**
-@@ -65,18 +70,36 @@ SWIGRUNTIME void SWIGV8_AddStaticFunction(v8::Handle<v8::Object> obj, const char
-  */
- SWIGRUNTIME void SWIGV8_AddStaticVariable(v8::Handle<v8::Object> obj, const char* symbol,
-   SwigV8AccessorGetterCallback getter, SwigV8AccessorSetterCallback setter) {
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   obj->SetAccessor(SWIGV8_SYMBOL_NEW(symbol), getter, setter);
-+#else
-+  obj->SetAccessor(SWIGV8_CURRENT_CONTEXT(), SWIGV8_SYMBOL_NEW(symbol), getter, setter);
-+#endif
- }
- 
--SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value,
--  const SwigV8PropertyCallbackInfoVoid& info)
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::String> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
-+#else
-+SWIGRUNTIME void JS_veto_set_variable(v8::Local<v8::Name> property, v8::Local<v8::Value> value, const SwigV8PropertyCallbackInfoVoid& info)
-+#endif
- {
-     char buffer[256];
-     char msg[512];
-     int res;
- 
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-     property->WriteUtf8(buffer, 256);
-     res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
-+#else
-+    v8::Local<v8::String> sproperty;
-+    if (property->ToString(SWIGV8_CURRENT_CONTEXT()).ToLocal(&sproperty)) {
-+      sproperty->WriteUtf8(buffer, 256);
-+      res = sprintf(msg, "Tried to write read-only variable: %s.", buffer);
-+    }
-+    else {
-+      res = -1;
-+    }
-+#endif
- 
-     if(res<0) {
-       SWIG_exception(SWIG_ERROR, "Tried to write read-only variable.");
-diff --git a/Lib/javascript/v8/javascriptinit.swg b/Lib/javascript/v8/javascriptinit.swg
-index 34befa7..86008d9 100644
---- a/Lib/javascript/v8/javascriptinit.swg
-+++ b/Lib/javascript/v8/javascriptinit.swg
-@@ -7,15 +7,27 @@ SWIG_V8_SetModule(void *, swig_module_info *swig_module) {
-   v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
-   v8::Local<v8::External> mod = SWIGV8_EXTERNAL_NEW(swig_module);
-   assert(!mod.IsEmpty());
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   global_obj->SetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"), mod);
-+#else
-+  v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
-+  global_obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, mod);
-+#endif
- }
- 
- SWIGRUNTIME swig_module_info *
- SWIG_V8_GetModule(void *) {
-   v8::Local<v8::Object> global_obj = SWIGV8_CURRENT_CONTEXT()->Global();
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   v8::Local<v8::Value> moduleinfo = global_obj->GetHiddenValue(SWIGV8_STRING_NEW("swig_module_info_data"));
-+#else
-+  v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("swig_module_info_data"));
-+  v8::Local<v8::Value> moduleinfo;
-+  if (!global_obj->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&moduleinfo))
-+    return 0;
-+#endif
- 
--  if (moduleinfo.IsEmpty())
-+  if (moduleinfo.IsEmpty() || moduleinfo->IsNull() || moduleinfo->IsUndefined())
-   {
-     // It's not yet loaded
-     return 0;
-@@ -23,7 +35,7 @@ SWIG_V8_GetModule(void *) {
- 
-   v8::Local<v8::External> moduleinfo_extern = v8::Local<v8::External>::Cast(moduleinfo);
- 
--  if (moduleinfo_extern.IsEmpty())
-+  if (moduleinfo_extern.IsEmpty() || moduleinfo_extern->IsNull() || moduleinfo_extern->IsUndefined())
-   {
-     // Something's not right
-     return 0;
-diff --git a/Lib/javascript/v8/javascriptrun.swg b/Lib/javascript/v8/javascriptrun.swg
-index 5ac52a5..30002c0 100644
---- a/Lib/javascript/v8/javascriptrun.swg
-+++ b/Lib/javascript/v8/javascriptrun.swg
-@@ -193,8 +193,10 @@ public:
-   void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Value> object, void *parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
-   void (*dtor) (v8::Isolate *isolate, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy);
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   void (*dtor) (const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data);
-+#else
-+  void (*dtor) (const v8::WeakCallbackInfo<SWIGV8_Proxy> &data);
- #endif
- };
- 
-@@ -241,9 +243,12 @@ SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Val
-   SWIGV8_Proxy *proxy = static_cast<SWIGV8_Proxy *>(parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
- SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(v8::Isolate *, v8::Persistent< v8::Object > *object, SWIGV8_Proxy *proxy) {
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackData<v8::Object, SWIGV8_Proxy> &data) {
-   SWIGV8_Proxy *proxy = data.GetParameter();
-+#else
-+SWIGRUNTIME void SWIGV8_Proxy_DefaultDtor(const v8::WeakCallbackInfo<SWIGV8_Proxy> &data) {
-+  SWIGV8_Proxy *proxy = data.GetParameter();
- #endif
- 
-   delete proxy;
-@@ -312,12 +317,18 @@ SWIGRUNTIME void SWIGV8_SetPrivateData(v8::Handle<v8::Object> obj, void *ptr, sw
-   } else {
-     cdata->handle.MakeWeak(cdata, SWIGV8_Proxy_DefaultDtor);
-   }
--#else
-+#elifif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
-     cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor);
-   } else {
-     cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor);
-   }
-+#else
-+  if(cdata->swigCMemOwn && (SWIGV8_ClientData*)info->clientdata) {
-+    cdata->handle.SetWeak(cdata, ((SWIGV8_ClientData*)info->clientdata)->dtor, v8::WeakCallbackType::kParameter);
-+  } else {
-+    cdata->handle.SetWeak(cdata, SWIGV8_Proxy_DefaultDtor, v8::WeakCallbackType::kParameter);
-+  }
- #endif
- 
- #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
-@@ -470,7 +481,14 @@ int SwigV8Packed_Check(v8::Handle<v8::Value> valRef) {
-   
-   v8::Handle<v8::Object> objRef = valRef->ToObject();
-   if(objRef->InternalFieldCount() < 1) return false;
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   v8::Handle<v8::Value> flag = objRef->GetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"));
-+#else
-+  v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
-+  v8::Local<v8::Value> flag;
-+  if (!objRef->GetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey).ToLocal(&flag))
-+    return false;
-+#endif
-   return (flag->IsBoolean() && flag->BooleanValue());
- }
- 
-@@ -519,10 +537,13 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persist
-   SwigV8PackedData *cdata = static_cast<SwigV8PackedData *>(parameter);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
- SWIGRUNTIME void _wrap_SwigV8PackedData_delete(v8::Isolate *isolate, v8::Persistent<v8::Object> *object, SwigV8PackedData *cdata) {
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
- SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Object, SwigV8PackedData> &data) {
-   v8::Local<v8::Object> object = data.GetValue();
-   SwigV8PackedData *cdata = data.GetParameter();
-+#else
-+SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackInfo<SwigV8PackedData> &data) {
-+  SwigV8PackedData *cdata = data.GetParameter();
- #endif
- 
-   delete cdata;
-@@ -537,7 +558,7 @@ SWIGRUNTIME void _wrap_SwigV8PackedData_delete(const v8::WeakCallbackData<v8::Ob
-   object->Dispose(isolate);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
-   object->Dispose();
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   object.Clear();
- #endif
- }
-@@ -550,7 +571,12 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
- //  v8::Handle<v8::Object> obj = SWIGV8_OBJECT_NEW();
-   v8::Local<v8::Object> obj = SWIGV8_OBJECT_NEW();
- 
-+#if (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   obj->SetHiddenValue(SWIGV8_STRING_NEW("__swig__packed_data__"), SWIGV8_BOOLEAN_NEW(true));
-+#else
-+  v8::Local<v8::Private> privateKey = v8::Private::ForApi(v8::Isolate::GetCurrent(), SWIGV8_STRING_NEW("__swig__packed_data__"));
-+  obj->SetPrivate(SWIGV8_CURRENT_CONTEXT(), privateKey, SWIGV8_BOOLEAN_NEW(true));
-+#endif
- 
- #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031511)
-   obj->SetPointerInInternalField(0, cdata);
-@@ -573,9 +599,11 @@ v8::Handle<v8::Value> SWIGV8_NewPackedObj(void *data, size_t size, swig_type_inf
-   cdata->handle.MakeWeak(v8::Isolate::GetCurrent(), cdata, _wrap_SwigV8PackedData_delete);
- #elif (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < SWIGV8_SETWEAK_VERSION)
-   cdata->handle.MakeWeak(cdata, _wrap_SwigV8PackedData_delete);
--#else
-+#elif (V8_MAJOR_VERSION-0) < 5 || (V8_MAJOR_VERSION == 5 && V8_MINOR_VERSION < 2)
-   cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete);
- //  v8::V8::SetWeak(&cdata->handle, cdata, _wrap_SwigV8PackedData_delete);
-+#else
-+  cdata->handle.SetWeak(cdata, _wrap_SwigV8PackedData_delete, v8::WeakCallbackType::kParameter);
- #endif
- 
- #if (V8_MAJOR_VERSION-0) < 4 && (SWIG_V8_VERSION < 0x031710)
--- 
-2.9.5
-
diff --git a/poky/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch b/poky/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch
deleted file mode 100644
index f4ed782..0000000
--- a/poky/meta/recipes-devtools/swig/swig/0001-Fix-generated-code-for-constant-expressions-containi.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-From 90ba174fcea1618af57aa594199541d47a89b7f6 Mon Sep 17 00:00:00 2001
-From: William S Fulton <wsf@fultondesigns.co.uk>
-Date: Sun, 17 Sep 2017 19:02:55 +0100
-Subject: [PATCH 1/2] Fix generated code for constant expressions containing
- wchar_t L literals.
-
-Such as:
-  # define __WCHAR_MAX    (0x7fffffff + L'\0')
-
-Reported on swig-user mailing list.
----
- CHANGES.current                                         | 5 +++++
- Examples/test-suite/csharp/preproc_constants_c_runme.cs | 3 ++-
- Examples/test-suite/csharp/preproc_constants_runme.cs   | 2 ++
- Examples/test-suite/d/preproc_constants_c_runme.1.d     | 2 ++
- Examples/test-suite/d/preproc_constants_c_runme.2.d     | 2 ++
- Examples/test-suite/d/preproc_constants_runme.1.d       | 2 ++
- Examples/test-suite/d/preproc_constants_runme.2.d       | 2 ++
- Examples/test-suite/php/preproc_constants_c_runme.php   | 2 ++
- Examples/test-suite/php/preproc_constants_runme.php     | 2 ++
- Examples/test-suite/php5/preproc_constants_c_runme.php  | 2 ++
- Examples/test-suite/php5/preproc_constants_runme.php    | 2 ++
- Examples/test-suite/preproc_constants.i                 | 3 +++
- Source/CParse/parser.y                                  | 2 +-
- 13 files changed, 29 insertions(+), 2 deletions(-)
-
-Upstream-Status: Backport
-[https://github.com/swig/swig/commit/90ba174fcea1618af57aa594199541d47a89b7f6]
-Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
-
-diff --git a/Examples/test-suite/csharp/preproc_constants_c_runme.cs b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
-index 76c684d..1c28e49 100644
---- a/Examples/test-suite/csharp/preproc_constants_c_runme.cs
-+++ b/Examples/test-suite/csharp/preproc_constants_c_runme.cs
-@@ -61,7 +61,8 @@ public class runme {
-     assert( typeof(int) == preproc_constants_c.EXPR_LAND.GetType() );
-     assert( typeof(int) == preproc_constants_c.EXPR_LOR.GetType() );
-     assert( typeof(double) == preproc_constants_c.EXPR_CONDITIONAL.GetType() );
--
-+    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MAX.GetType() );
-+    assert( typeof(int) == preproc_constants_c.EXPR_WCHAR_MIN.GetType() );
-   }
-   static void assert(bool assertion) {
-     if (!assertion)
-diff --git a/Examples/test-suite/csharp/preproc_constants_runme.cs b/Examples/test-suite/csharp/preproc_constants_runme.cs
-index 9fae591..6b02e30 100644
---- a/Examples/test-suite/csharp/preproc_constants_runme.cs
-+++ b/Examples/test-suite/csharp/preproc_constants_runme.cs
-@@ -60,6 +60,8 @@ public class runme {
-     assert( typeof(bool) == preproc_constants.EXPR_LAND.GetType() );
-     assert( typeof(bool) == preproc_constants.EXPR_LOR.GetType() );
-     assert( typeof(double) == preproc_constants.EXPR_CONDITIONAL.GetType() );
-+    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MAX.GetType() );
-+    assert( typeof(int) == preproc_constants.EXPR_WCHAR_MIN.GetType() );
- 
-   }
-   static void assert(bool assertion) {
-diff --git a/Examples/test-suite/d/preproc_constants_c_runme.1.d b/Examples/test-suite/d/preproc_constants_c_runme.1.d
-index d846c71..2b349af 100644
---- a/Examples/test-suite/d/preproc_constants_c_runme.1.d
-+++ b/Examples/test-suite/d/preproc_constants_c_runme.1.d
-@@ -61,4 +61,6 @@ void main() {
-   static assert(is(int == typeof(EXPR_LAND())));
-   static assert(is(int == typeof(EXPR_LOR())));
-   static assert(is(double == typeof(EXPR_CONDITIONAL())));
-+  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
-+  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
- }
-diff --git a/Examples/test-suite/d/preproc_constants_c_runme.2.d b/Examples/test-suite/d/preproc_constants_c_runme.2.d
-index 9bdbb93..1bac525 100644
---- a/Examples/test-suite/d/preproc_constants_c_runme.2.d
-+++ b/Examples/test-suite/d/preproc_constants_c_runme.2.d
-@@ -61,4 +61,6 @@ void main() {
-   static assert(is(int == typeof(EXPR_LAND())));
-   static assert(is(int == typeof(EXPR_LOR())));
-   static assert(is(double == typeof(EXPR_CONDITIONAL())));
-+  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
-+  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
- }
-diff --git a/Examples/test-suite/d/preproc_constants_runme.1.d b/Examples/test-suite/d/preproc_constants_runme.1.d
-index 009405f..f743f48 100644
---- a/Examples/test-suite/d/preproc_constants_runme.1.d
-+++ b/Examples/test-suite/d/preproc_constants_runme.1.d
-@@ -60,4 +60,6 @@ void main() {
-   static assert(is(bool == typeof(EXPR_LAND())));
-   static assert(is(bool == typeof(EXPR_LOR())));
-   static assert(is(double == typeof(EXPR_CONDITIONAL())));
-+  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
-+  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
- }
-diff --git a/Examples/test-suite/d/preproc_constants_runme.2.d b/Examples/test-suite/d/preproc_constants_runme.2.d
-index 2d92ef0..0d96c37 100644
---- a/Examples/test-suite/d/preproc_constants_runme.2.d
-+++ b/Examples/test-suite/d/preproc_constants_runme.2.d
-@@ -60,4 +60,6 @@ void main() {
-   static assert(is(bool == typeof(EXPR_LAND())));
-   static assert(is(bool == typeof(EXPR_LOR())));
-   static assert(is(double == typeof(EXPR_CONDITIONAL())));
-+  static assert(is(int == typeof(EXPR_WCHAR_MAX())));
-+  static assert(is(int == typeof(EXPR_WCHAR_MIN())));
- }
-diff --git a/Examples/test-suite/php/preproc_constants_c_runme.php b/Examples/test-suite/php/preproc_constants_c_runme.php
-index af9b76e..e59fe18 100644
---- a/Examples/test-suite/php/preproc_constants_c_runme.php
-+++ b/Examples/test-suite/php/preproc_constants_c_runme.php
-@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
- check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
- check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
- check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
-+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
-+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
- 
- ?>
-diff --git a/Examples/test-suite/php/preproc_constants_runme.php b/Examples/test-suite/php/preproc_constants_runme.php
-index 5c9119b..8e117ea 100644
---- a/Examples/test-suite/php/preproc_constants_runme.php
-+++ b/Examples/test-suite/php/preproc_constants_runme.php
-@@ -61,5 +61,7 @@ check::equal(gettype(preproc_constants::EXPR_OR), "integer", "preproc_constants.
- check::equal(gettype(preproc_constants::EXPR_LAND), "boolean", "preproc_constants.EXPR_LAND has unexpected type");
- check::equal(gettype(preproc_constants::EXPR_LOR), "boolean", "preproc_constants.EXPR_LOR has unexpected type");
- check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
-+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
-+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
- 
- ?>
-diff --git a/Examples/test-suite/php5/preproc_constants_c_runme.php b/Examples/test-suite/php5/preproc_constants_c_runme.php
-index 1ea0195..d978fab 100644
---- a/Examples/test-suite/php5/preproc_constants_c_runme.php
-+++ b/Examples/test-suite/php5/preproc_constants_c_runme.php
-@@ -62,5 +62,7 @@ check::equal(gettype(preproc_constants_c::EXPR_OR), "integer", "preproc_constant
- check::equal(gettype(preproc_constants_c::EXPR_LAND), "integer", "preproc_constants.EXPR_LAND has unexpected type");
- check::equal(gettype(preproc_constants_c::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
- check::equal(gettype(preproc_constants_c::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
-+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
-+check::equal(gettype(preproc_constants_c::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
- 
- ?>
-diff --git a/Examples/test-suite/php5/preproc_constants_runme.php b/Examples/test-suite/php5/preproc_constants_runme.php
-index fb9ee4f..7527026 100644
---- a/Examples/test-suite/php5/preproc_constants_runme.php
-+++ b/Examples/test-suite/php5/preproc_constants_runme.php
-@@ -70,5 +70,7 @@ check::equal(gettype(preproc_constants::EXPR_LAND), "integer", "preproc_constant
- check::equal(gettype(preproc_constants::EXPR_LOR), "integer", "preproc_constants.EXPR_LOR has unexpected type");
- 
- check::equal(gettype(preproc_constants::EXPR_CONDITIONAL), "double", "preproc_constants.EXPR_CONDITIONAL has unexpected type");
-+check::equal(gettype(preproc_constants::EXPR_WCHAR_MAX), "integer", "preproc_constants.EXPR_WCHAR_MAX has unexpected type");
-+check::equal(gettype(preproc_constants::EXPR_WCHAR_MIN), "integer", "preproc_constants.EXPR_WCHAR_MIN has unexpected type");
- 
- ?>
-diff --git a/Examples/test-suite/preproc_constants.i b/Examples/test-suite/preproc_constants.i
-index 3a999ad..16b44c9 100644
---- a/Examples/test-suite/preproc_constants.i
-+++ b/Examples/test-suite/preproc_constants.i
-@@ -87,6 +87,9 @@
- #define EXPR_LOR         0xFF || 1
- #define EXPR_CONDITIONAL true ? 2 : 2.2
- 
-+#define EXPR_WCHAR_MAX   (0x7fffffff + L'\0')
-+#define EXPR_WCHAR_MIN   (-EXPR_WCHAR_MAX - 1)
-+
- #define EXPR_CHAR_COMPOUND_ADD 'A' + 12
- #define EXPR_CHAR_COMPOUND_LSHIFT 'B' << 6
- #define H_SUPPRESS_SCALING_MAGIC (('s'<<24) | ('u'<<16) | ('p'<<8) | 'p')
-diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y
-index 2e92cd0..273dadb 100644
---- a/Source/CParse/parser.y
-+++ b/Source/CParse/parser.y
-@@ -194,7 +194,7 @@ int SWIG_cparse_template_reduce(int treduce) {
-  * ----------------------------------------------------------------------------- */
- 
- static int promote_type(int t) {
--  if (t <= T_UCHAR || t == T_CHAR) return T_INT;
-+  if (t <= T_UCHAR || t == T_CHAR || t == T_WCHAR) return T_INT;
-   return t;
- }
- 
--- 
-2.9.5
-
diff --git a/poky/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch b/poky/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
index 81df3e2..f27f80e 100644
--- a/poky/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
+++ b/poky/meta/recipes-devtools/swig/swig/0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch
@@ -13,13 +13,11 @@
  Source/Modules/main.cxx |   24 ++++++++++++++++++++++--
  1 file changed, 22 insertions(+), 2 deletions(-)
 
-diff --git a/Source/Modules/main.cxx b/Source/Modules/main.cxx
-index d2f5d3b..cbb0a12 100644
 --- a/Source/Modules/main.cxx
 +++ b/Source/Modules/main.cxx
-@@ -26,6 +26,11 @@ char cvsroot_main_cxx[] = "$Id$";
- #include "cparse.h"
+@@ -25,6 +25,11 @@
  #include <ctype.h>
+ #include <errno.h>
  #include <limits.h>		// for INT_MAX
 +#ifndef _WIN32
 +#include <cstddef>
@@ -29,7 +27,7 @@
  
  // Global variables
  
-@@ -902,9 +907,9 @@ int SWIG_main(int argc, char *argv[], Language *l) {
+@@ -934,9 +939,9 @@ int SWIG_main(int argc, char *argv[], co
  
    // Check for SWIG_LIB environment variable
    if ((c = getenv("SWIG_LIB")) == (char *) 0) {
@@ -40,7 +38,7 @@
      if (!(GetModuleFileName(0, buf, MAX_PATH) == 0 || (p = strrchr(buf, '\\')) == 0)) {
        *(p + 1) = '\0';
        SwigLib = NewStringf("%sLib", buf); // Native windows installation path
-@@ -914,7 +919,22 @@ int SWIG_main(int argc, char *argv[], Language *l) {
+@@ -946,7 +951,22 @@ int SWIG_main(int argc, char *argv[], co
      if (Len(SWIG_LIB_WIN_UNIX) > 0)
        SwigLibWinUnix = NewString(SWIG_LIB_WIN_UNIX); // Unix installation path using a drive letter (for msys/mingw)
  #else
@@ -64,6 +62,3 @@
  #endif
    } else {
      SwigLib = NewString(c);
--- 
-1.7.9.5
-
diff --git a/poky/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch b/poky/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
index 1b1128a..114de7e 100644
--- a/poky/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
+++ b/poky/meta/recipes-devtools/swig/swig/0001-configure-use-pkg-config-for-pcre-detection.patch
@@ -9,11 +9,9 @@
  configure.ac | 38 +++++++-------------------------------
  1 file changed, 7 insertions(+), 31 deletions(-)
 
-diff --git a/configure.ac b/configure.ac
-index 0c984b7..6edcec1 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -70,38 +70,14 @@ AC_MSG_RESULT([$with_pcre])
+@@ -52,38 +52,14 @@ AC_MSG_RESULT([$with_pcre])
  
  dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script
  if test x"${with_pcre}" = xyes ; then
@@ -59,6 +57,3 @@
  
  
  dnl CCache
--- 
-1.9.3
-
diff --git a/poky/meta/recipes-devtools/swig/swig/Python-Fix-new-GCC8-warnings-in-generated-code.patch b/poky/meta/recipes-devtools/swig/swig/Python-Fix-new-GCC8-warnings-in-generated-code.patch
deleted file mode 100644
index a913859..0000000
--- a/poky/meta/recipes-devtools/swig/swig/Python-Fix-new-GCC8-warnings-in-generated-code.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From b6c0ef4b8f6e5c089ac7104b3aaba8f1d17b8b82 Mon Sep 17 00:00:00 2001
-From: Olly Betts <olly@survex.com>
-Date: Mon, 11 Jun 2018 15:51:53 +1200
-Subject: [PATCH] [Python] Fix new GCC8 warnings in generated code
-
-Avoid casts between incompatible function types where possible (when
-keyword args are in use, it is not possible to avoid such warnings as
-they are inherent in the design of Python's C API in that particular
-case).  Fixes #1259.
-
-Upstream-Status: Backport
-[https://github.com/swig/swig/commit/7f9883011029674553a2a4b623d459f02b512458]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- Lib/python/pyinit.swg     |  4 ++--
- Lib/python/pyrun.swg      | 34 ++++++++++++++++++++++++++--------
- Source/Modules/python.cxx | 26 +++++++++++++-------------
- 3 files changed, 41 insertions(+), 23 deletions(-)
-
-diff --git a/Lib/python/pyinit.swg b/Lib/python/pyinit.swg
-index 2cc5828..6bf68c1 100644
---- a/Lib/python/pyinit.swg
-+++ b/Lib/python/pyinit.swg
-@@ -368,8 +368,8 @@ SWIG_init(void) {
-     (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL
-   };
-   static SwigPyGetSet thisown_getset_closure = {
--    (PyCFunction) SwigPyObject_own,
--    (PyCFunction) SwigPyObject_own
-+    SwigPyObject_own,
-+    SwigPyObject_own
-   };
-   static PyGetSetDef thisown_getset_def = {
-     (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure
-diff --git a/Lib/python/pyrun.swg b/Lib/python/pyrun.swg
-index ab1237f..3d0b1b3 100644
---- a/Lib/python/pyrun.swg
-+++ b/Lib/python/pyrun.swg
-@@ -465,6 +465,14 @@ SwigPyObject_repr(SwigPyObject *v, PyObject *args)
-   return repr;  
- }
- 
-+/* We need a version taking two PyObject* parameters so it's a valid
-+ * PyCFunction to use in swigobject_methods[]. */
-+SWIGRUNTIME PyObject *
-+SwigPyObject_repr2(PyObject *v, PyObject *SWIGUNUSEDPARM(args))
-+{
-+  return SwigPyObject_repr((SwigPyObject*)v);
-+}
-+
- SWIGRUNTIME int
- SwigPyObject_compare(SwigPyObject *v, SwigPyObject *w)
- {
-@@ -594,11 +602,7 @@ SwigPyObject_append(PyObject* v, PyObject* next)
- }
- 
- SWIGRUNTIME PyObject* 
--#ifdef METH_NOARGS
--SwigPyObject_next(PyObject* v)
--#else
- SwigPyObject_next(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
--#endif
- {
-   SwigPyObject *sobj = (SwigPyObject *) v;
-   if (sobj->next) {    
-@@ -633,6 +637,20 @@ SwigPyObject_acquire(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
-   return SWIG_Py_Void();
- }
- 
-+#ifdef METH_NOARGS
-+static PyObject*
-+SwigPyObject_disown2(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
-+{
-+  return SwigPyObject_disown(v);
-+}
-+
-+static PyObject*
-+SwigPyObject_acquire2(PyObject* v, PyObject *SWIGUNUSEDPARM(args))
-+{
-+  return SwigPyObject_acquire(v);
-+}
-+#endif
-+
- SWIGINTERN PyObject*
- SwigPyObject_own(PyObject *v, PyObject *args)
- {
-@@ -673,12 +691,12 @@ SwigPyObject_own(PyObject *v, PyObject *args)
- #ifdef METH_O
- static PyMethodDef
- swigobject_methods[] = {
--  {(char *)"disown",  (PyCFunction)SwigPyObject_disown,  METH_NOARGS,  (char *)"releases ownership of the pointer"},
--  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire, METH_NOARGS,  (char *)"acquires ownership of the pointer"},
-+  {(char *)"disown",  (PyCFunction)SwigPyObject_disown2, METH_NOARGS,  (char *)"releases ownership of the pointer"},
-+  {(char *)"acquire", (PyCFunction)SwigPyObject_acquire2,METH_NOARGS,  (char *)"acquires ownership of the pointer"},
-   {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS, (char *)"returns/sets ownership of the pointer"},
-   {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_O,       (char *)"appends another 'this' object"},
-   {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_NOARGS,  (char *)"returns the next 'this' object"},
--  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,    METH_NOARGS,  (char *)"returns object representation"},
-+  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr2,   METH_NOARGS,  (char *)"returns object representation"},
-   {0, 0, 0, 0}  
- };
- #else
-@@ -689,7 +707,7 @@ swigobject_methods[] = {
-   {(char *)"own",     (PyCFunction)SwigPyObject_own,     METH_VARARGS,  (char *)"returns/sets ownership of the pointer"},
-   {(char *)"append",  (PyCFunction)SwigPyObject_append,  METH_VARARGS,  (char *)"appends another 'this' object"},
-   {(char *)"next",    (PyCFunction)SwigPyObject_next,    METH_VARARGS,  (char *)"returns the next 'this' object"},
--  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,   METH_VARARGS,  (char *)"returns object representation"},
-+  {(char *)"__repr__",(PyCFunction)SwigPyObject_repr,    METH_VARARGS,  (char *)"returns object representation"},
-   {0, 0, 0, 0}  
- };
- #endif
-diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
-index a6801fc..72eaa77 100644
---- a/Source/Modules/python.cxx
-+++ b/Source/Modules/python.cxx
-@@ -1109,7 +1109,7 @@ public:
-    * ------------------------------------------------------------ */
-   int add_pyinstancemethod_new() {
-     String *name = NewString("SWIG_PyInstanceMethod_New");
--    Printf(methods, "\t { (char *)\"%s\", (PyCFunction)%s, METH_O, NULL},\n", name, name);
-+    Printf(methods, "\t { \"%s\", %s, METH_O, NULL},\n", name, name);
-     Delete(name);
-     return 0;
-   }
-@@ -2479,17 +2479,17 @@ public:
-     if (!kw) {
-       if (n && funpack) {
- 	if (num_required == 0 && num_arguments == 0) {
--	  Printf(methods, "\t { (char *)\"%s\", (PyCFunction)%s, METH_NOARGS, ", name, function);
-+	  Printf(methods, "\t { \"%s\", %s, METH_NOARGS, ", name, function);
- 	} else if (num_required == 1 && num_arguments == 1) {
--	  Printf(methods, "\t { (char *)\"%s\", (PyCFunction)%s, METH_O, ", name, function);
-+	  Printf(methods, "\t { \"%s\", %s, METH_O, ", name, function);
- 	} else {
--	  Printf(methods, "\t { (char *)\"%s\", %s, METH_VARARGS, ", name, function);
-+	  Printf(methods, "\t { \"%s\", %s, METH_VARARGS, ", name, function);
- 	}
-       } else {
--	Printf(methods, "\t { (char *)\"%s\", %s, METH_VARARGS, ", name, function);
-+	Printf(methods, "\t { \"%s\", %s, METH_VARARGS, ", name, function);
-       }
-     } else {
--      Printf(methods, "\t { (char *)\"%s\", (PyCFunction) %s, METH_VARARGS | METH_KEYWORDS, ", name, function);
-+      Printf(methods, "\t { \"%s\", (PyCFunction)%s, METH_VARARGS|METH_KEYWORDS, ", name, function);
-     }
- 
-     if (!n) {
-@@ -3857,7 +3857,7 @@ public:
-     if (shadow) {
-       if (builtin) {
- 	String *rname = SwigType_namestr(real_classname);
--	Printf(builtin_methods, "  { \"__disown__\", (PyCFunction) Swig::Director::swig_pyobj_disown< %s >, METH_NOARGS, \"\" },\n", rname);
-+	Printf(builtin_methods, "  { \"__disown__\", Swig::Director::swig_pyobj_disown< %s >, METH_NOARGS, \"\" },\n", rname);
- 	Delete(rname);
-       } else {
- 	String *symname = Getattr(n, "sym:name");
-@@ -4694,13 +4694,13 @@ public:
- 	int argcount = Getattr(n, "python:argcount") ? atoi(Char(Getattr(n, "python:argcount"))) : 2;
- 	String *ds = have_docstring(n) ? cdocstring(n, AUTODOC_FUNC) : NewString("");
- 	if (check_kwargs(n)) {
--	  Printf(builtin_methods, "  { \"%s\", (PyCFunction) %s, METH_VARARGS|METH_KEYWORDS, (char *) \"%s\" },\n", symname, wname, ds);
-+	  Printf(builtin_methods, "  { \"%s\", (PyCFunction)%s, METH_VARARGS|METH_KEYWORDS, \"%s\" },\n", symname, wname, ds);
- 	} else if (argcount == 0) {
--	  Printf(builtin_methods, "  { \"%s\", (PyCFunction) %s, METH_NOARGS, (char *) \"%s\" },\n", symname, wname, ds);
-+	  Printf(builtin_methods, "  { \"%s\", %s, METH_NOARGS, \"%s\" },\n", symname, wname, ds);
- 	} else if (argcount == 1) {
--	  Printf(builtin_methods, "  { \"%s\", (PyCFunction) %s, METH_O, (char *) \"%s\" },\n", symname, wname, ds);
-+	  Printf(builtin_methods, "  { \"%s\", %s, METH_O, \"%s\" },\n", symname, wname, ds);
- 	} else {
--	  Printf(builtin_methods, "  { \"%s\", (PyCFunction) %s, METH_VARARGS, (char *) \"%s\" },\n", symname, wname, ds);
-+	  Printf(builtin_methods, "  { \"%s\", %s, METH_VARARGS, \"%s\" },\n", symname, wname, ds);
- 	}
- 	Delete(fullname);
- 	Delete(wname);
-@@ -4801,10 +4801,10 @@ public:
- 	  Append(pyflags, "METH_VARARGS");
- 	if (have_docstring(n)) {
- 	  String *ds = cdocstring(n, AUTODOC_STATICFUNC);
--	  Printf(builtin_methods, "  { \"%s\", (PyCFunction) %s, %s, (char *) \"%s\" },\n", symname, wname, pyflags, ds);
-+	  Printf(builtin_methods, "  { \"%s\", (PyCFunction)%s, %s, \"%s\" },\n", symname, wname, pyflags, ds);
- 	  Delete(ds);
- 	} else {
--	  Printf(builtin_methods, "  { \"%s\", (PyCFunction) %s, %s, \"\" },\n", symname, wname, pyflags);
-+	  Printf(builtin_methods, "  { \"%s\", (PyCFunction)%s, %s, \"\" },\n", symname, wname, pyflags);
- 	}
- 	Delete(fullname);
- 	Delete(wname);
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-devtools/swig/swig/determinism.patch b/poky/meta/recipes-devtools/swig/swig/determinism.patch
index 8ffb4bc..84c3991 100644
--- a/poky/meta/recipes-devtools/swig/swig/determinism.patch
+++ b/poky/meta/recipes-devtools/swig/swig/determinism.patch
@@ -5,11 +5,9 @@
 RP 2021/3/1
 
 
-Index: swig-3.0.12/Source/Modules/main.cxx
-===================================================================
---- swig-3.0.12.orig/Source/Modules/main.cxx
-+++ swig-3.0.12/Source/Modules/main.cxx
-@@ -636,7 +636,6 @@ void SWIG_getoptions(int argc, char *arg
+--- a/Source/Modules/main.cxx
++++ b/Source/Modules/main.cxx
+@@ -642,7 +642,6 @@ static void getoptions(int argc, char *a
  	}
        } else if (strcmp(argv[i], "-version") == 0) {
  	fprintf(stdout, "\nSWIG Version %s\n", Swig_package_version());
diff --git a/poky/meta/recipes-devtools/swig/swig/swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch b/poky/meta/recipes-devtools/swig/swig/swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch
deleted file mode 100644
index 10e4afd..0000000
--- a/poky/meta/recipes-devtools/swig/swig/swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 9825fcbab5c4ddd867432f9922bebfbec7b78af0 Mon Sep 17 00:00:00 2001
-From: Mark Dufour <m.dufour@kopano.com>
-Date: Tue, 14 Feb 2017 10:34:37 +0100
-Subject: [PATCH] [Coverity] fix issue reported for SWIG_Python_FixMethods
-
-Fix Coverity issue reported for SWIG_Python_FixMethods:
-
-"buffer_size: Calling strncpy with a source string whose length
-(10 chars) is greater than or equal to the size argument (10)
-will fail to null-terminate buff."
-
-The issue is only reported for the "swig_ptr: " line, but for
-consistency we replace both occurrences of strncpy with memcpy.
----
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [https://github.com/swig/swig/pull/898]
-
- Lib/python/pyinit.swg | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: swig-3.0.12/Lib/python/pyinit.swg
-===================================================================
---- swig-3.0.12.orig/Lib/python/pyinit.swg
-+++ swig-3.0.12/Lib/python/pyinit.swg
-@@ -306,9 +306,9 @@ SWIG_Python_FixMethods(PyMethodDef *meth
- 	  char *ndoc = (char*)malloc(ldoc + lptr + 10);
- 	  if (ndoc) {
- 	    char *buff = ndoc;
--	    strncpy(buff, methods[i].ml_doc, ldoc);
-+	    memcpy(buff, methods[i].ml_doc, ldoc);
- 	    buff += ldoc;
--	    strncpy(buff, "swig_ptr: ", 10);
-+	    memcpy(buff, "swig_ptr: ", 10);
- 	    buff += 10;
- 	    SWIG_PackVoidPtr(buff, ptr, ty->name, lptr);
- 	    methods[i].ml_doc = ndoc;
diff --git a/poky/meta/recipes-devtools/swig/swig_3.0.12.bb b/poky/meta/recipes-devtools/swig/swig_3.0.12.bb
deleted file mode 100644
index 090aaa8..0000000
--- a/poky/meta/recipes-devtools/swig/swig_3.0.12.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch \
-            file://0001-configure-use-pkg-config-for-pcre-detection.patch \
-            file://0001-Add-Node-7.x-aka-V8-5.2-support.patch \
-            file://swig-3.0.12-Coverity-fix-issue-reported-for-SWIG_Python_FixMetho.patch \
-            file://Python-Fix-new-GCC8-warnings-in-generated-code.patch \
-            file://0001-Fix-generated-code-for-constant-expressions-containi.patch \
-            file://determinism.patch \
-           "
-SRC_URI[md5sum] = "82133dfa7bba75ff9ad98a7046be687c"
-SRC_URI[sha256sum] = "7cf9f447ae7ed1c51722efc45e7f14418d15d7a1e143ac9f09a668999f4fc94d"
-
diff --git a/poky/meta/recipes-devtools/swig/swig_4.0.2.bb b/poky/meta/recipes-devtools/swig/swig_4.0.2.bb
new file mode 100644
index 0000000..718ad89
--- /dev/null
+++ b/poky/meta/recipes-devtools/swig/swig_4.0.2.bb
@@ -0,0 +1,7 @@
+require ${BPN}.inc
+
+SRC_URI += "file://0001-Use-proc-self-exe-for-swig-swiglib-on-non-Win32-plat.patch \
+            file://0001-configure-use-pkg-config-for-pcre-detection.patch \
+            file://determinism.patch \
+           "
+SRC_URI[sha256sum] = "d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc"
diff --git a/poky/meta/recipes-devtools/unfs3/unfs3_git.bb b/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
index a21fb58..f9bae72 100644
--- a/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
+++ b/poky/meta/recipes-devtools/unfs3/unfs3_git.bb
@@ -37,7 +37,7 @@
 inherit autotools
 EXTRA_OECONF_append_class-native = " --sbindir=${bindir}"
 CFLAGS_append = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS_append = " -ltirpc"
+EXTRA_OECONF_append = " LIBS=-ltirpc"
 
 # Turn off these header detects else the inode search
 # will walk entire file systems and this is a real problem
diff --git a/poky/meta/recipes-devtools/vala/vala_0.50.4.bb b/poky/meta/recipes-devtools/vala/vala_0.50.4.bb
deleted file mode 100644
index 4381635..0000000
--- a/poky/meta/recipes-devtools/vala/vala_0.50.4.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch"
-
-SRC_URI[sha256sum] = "58fc31fa8bf492035b11d1a7d514801710afc65bd458b24c0f8d00280a92a38c"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.52.3.bb b/poky/meta/recipes-devtools/vala/vala_0.52.3.bb
new file mode 100644
index 0000000..133dc9e
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.52.3.bb
@@ -0,0 +1,5 @@
+require ${BPN}.inc
+
+SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch"
+
+SRC_URI[sha256sum] = "037ea1a92bf0f1ab04a71b52a01d50aca1945ad1017b6189d9614f84f5c9b2d9"
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb b/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
index ebbd83d..d0c60d0 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
+++ b/poky/meta/recipes-devtools/valgrind/valgrind_3.17.0.bb
@@ -130,7 +130,7 @@
 # redirect functions like strlen.
 RRECOMMENDS_${PN} += "${TCLIBC}-dbg"
 
-RDEPENDS_${PN}-ptest += " bash coreutils file \
+RDEPENDS_${PN}-ptest += " bash coreutils curl file \
    gdb libgomp \
    perl \
    perl-module-file-basename perl-module-file-glob perl-module-getopt-long \
diff --git a/poky/meta/recipes-extended/at/at_3.2.1.bb b/poky/meta/recipes-extended/at/at_3.2.2.bb
similarity index 94%
rename from poky/meta/recipes-extended/at/at_3.2.1.bb
rename to poky/meta/recipes-extended/at/at_3.2.2.bb
index ae15df8..5c20187 100644
--- a/poky/meta/recipes-extended/at/at_3.2.1.bb
+++ b/poky/meta/recipes-extended/at/at_3.2.2.bb
@@ -37,7 +37,7 @@
 PAM_SRC_URI = "file://pam.conf.patch \
                file://configure-add-enable-pam.patch"
 
-SRC_URI[sha256sum] = "aabe6e5cb6dd19fe9fb25c2747492f2db38762b95ea41b86f949609c39fb55c4"
+SRC_URI[sha256sum] = "2211da14914fde1f9cc83592838fb6385a32fb11fcecb7816c77700df6559088"
 
 EXTRA_OECONF += "ac_cv_path_SENDMAIL=/bin/true \
                  --with-daemon_username=root \
@@ -72,4 +72,5 @@
 	if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
 		install -D -m 0644 ${WORKDIR}/${BP}/pam.conf ${D}${sysconfdir}/pam.d/atd
 	fi
+        rm -f ${D}${datadir}/at/batch-job
 }
diff --git a/poky/meta/recipes-extended/cpio/cpio_2.13.bb b/poky/meta/recipes-extended/cpio/cpio_2.13.bb
index 94d8610..f4df826 100644
--- a/poky/meta/recipes-extended/cpio/cpio_2.13.bb
+++ b/poky/meta/recipes-extended/cpio/cpio_2.13.bb
@@ -16,6 +16,9 @@
 
 inherit autotools gettext texinfo
 
+# Issue applies to use of cpio in SUSE/OBS, doesn't apply to us
+CVE_CHECK_WHITELIST += "CVE-2010-4226"
+
 EXTRA_OECONF += "DEFAULT_RMT_DIR=${sbindir}"
 
 do_install () {
diff --git a/poky/meta/recipes-extended/cronie/cronie_1.5.5.bb b/poky/meta/recipes-extended/cronie/cronie_1.5.7.bb
similarity index 95%
rename from poky/meta/recipes-extended/cronie/cronie_1.5.5.bb
rename to poky/meta/recipes-extended/cronie/cronie_1.5.7.bb
index 0def4a1..d0abdd8 100644
--- a/poky/meta/recipes-extended/cronie/cronie_1.5.5.bb
+++ b/poky/meta/recipes-extended/cronie/cronie_1.5.7.bb
@@ -25,8 +25,7 @@
 PAM_SRC_URI = "file://crond_pam_config.patch"
 PAM_DEPS = "libpam libpam-runtime pam-plugin-access pam-plugin-loginuid"
 
-SRC_URI[md5sum] = "351a37d0b5bd0144816724b4482747ad"
-SRC_URI[sha256sum] = "be34c79505e5544323281854744b9955ff16b160ee569f9df7c0dddae5720eac"
+SRC_URI[sha256sum] = "538bcfaf2e986e5ae1edf6d1472a77ea8271d6a9005aee2497a9ed6e13320eb3"
 
 inherit autotools update-rc.d useradd systemd
 
diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc
index 9faac08..be5a11c 100644
--- a/poky/meta/recipes-extended/cups/cups.inc
+++ b/poky/meta/recipes-extended/cups/cups.inc
@@ -127,3 +127,7 @@
 cups_sysroot_preprocess () {
 	sed -i ${SYSROOT_DESTDIR}${bindir_crossscripts}/cups-config -e 's:cups_datadir=.*:cups_datadir=${datadir}/cups:' -e 's:cups_serverbin=.*:cups_serverbin=${libexecdir}/cups:'
 }
+
+# -25317 concerns /var/log/cups having lp ownership.  Our /var/log/cups is
+# root:root, so this doesn't apply.
+CVE_CHECK_WHITELIST += "CVE-2021-25317"
\ No newline at end of file
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb b/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb
index 9ace037..81f8d61 100644
--- a/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb
+++ b/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb
@@ -19,6 +19,10 @@
 UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
 
+# As of ghostscript 9.54.0 the jpeg issue in the CVE is present in the gs jpeg sources
+# however we use an external jpeg which doesn't have the issue.
+CVE_CHECK_WHITELIST += "CVE-2013-6629"
+
 def gs_verdir(v):
     return "".join(v.split("."))
 
diff --git a/poky/meta/recipes-extended/hdparm/hdparm_9.61.bb b/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb
similarity index 90%
rename from poky/meta/recipes-extended/hdparm/hdparm_9.61.bb
rename to poky/meta/recipes-extended/hdparm/hdparm_9.62.bb
index 459a62a..0267723 100644
--- a/poky/meta/recipes-extended/hdparm/hdparm_9.61.bb
+++ b/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb
@@ -25,8 +25,7 @@
            file://wiper.sh-fix-stat-path.patch \
           "
 
-SRC_URI[md5sum] = "3ef06831e83890f0ba48f7a252b93325"
-SRC_URI[sha256sum] = "da1a1c3887f10b8397e8e02013caa61142e0e72cb0d73997421ca2f2f4df5343"
+SRC_URI[sha256sum] = "2c0f9d75cdbeda928a25a128cd3d0b7120445ec0910c0b29d4c1038ed1be777f"
 
 EXTRA_OEMAKE = 'STRIP="echo" LDFLAGS="${LDFLAGS}"'
 
diff --git a/poky/meta/recipes-extended/less/less_563.bb b/poky/meta/recipes-extended/less/less_586.bb
similarity index 92%
rename from poky/meta/recipes-extended/less/less_563.bb
rename to poky/meta/recipes-extended/less/less_586.bb
index 123522b..b300f2b 100644
--- a/poky/meta/recipes-extended/less/less_563.bb
+++ b/poky/meta/recipes-extended/less/less_586.bb
@@ -28,7 +28,7 @@
 SRC_URI = "http://www.greenwoodsoftware.com/${BPN}/${BPN}-${PV}.tar.gz \
 	  "
 
-SRC_URI[sha256sum] = "ce5b6d2b9fc4442d7a07c93ab128d2dff2ce09a1d4f2d055b95cf28dd0dc9a9a"
+SRC_URI[sha256sum] = "09288d3ec515a21430ec1fbe1e97a2f741fdaf98afc95b114e342416c6a7dd99"
 
 UPSTREAM_CHECK_URI = "http://www.greenwoodsoftware.com/less/download.html"
 
diff --git a/poky/meta/recipes-extended/libarchive/libarchive_3.5.1.bb b/poky/meta/recipes-extended/libarchive/libarchive_3.5.1.bb
index 1387b69..ebecee1 100644
--- a/poky/meta/recipes-extended/libarchive/libarchive_3.5.1.bb
+++ b/poky/meta/recipes-extended/libarchive/libarchive_3.5.1.bb
@@ -7,10 +7,9 @@
 
 DEPENDS = "e2fsprogs-native"
 
-PACKAGECONFIG ?= "zlib bz2 xz lzo"
+PACKAGECONFIG ?= "zlib bz2 xz lzo zstd"
 
 PACKAGECONFIG_append_class-target = "\
-	libxml2 \
 	${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)} \
 "
 
@@ -29,6 +28,7 @@
 PACKAGECONFIG[nettle] = "--with-nettle,--without-nettle,nettle,"
 PACKAGECONFIG[lz4] = "--with-lz4,--without-lz4,lz4,"
 PACKAGECONFIG[mbedtls] = "--with-mbedtls,--without-mbedtls,mbedtls,"
+PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd,"
 
 EXTRA_OECONF += "--enable-largefile"
 
diff --git a/poky/meta/recipes-extended/libidn/libidn2_2.3.0.bb b/poky/meta/recipes-extended/libidn/libidn2_2.3.1.bb
similarity index 77%
rename from poky/meta/recipes-extended/libidn/libidn2_2.3.0.bb
rename to poky/meta/recipes-extended/libidn/libidn2_2.3.1.bb
index 7adf924..d33d6a7 100644
--- a/poky/meta/recipes-extended/libidn/libidn2_2.3.0.bb
+++ b/poky/meta/recipes-extended/libidn/libidn2_2.3.1.bb
@@ -6,12 +6,12 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=2d834ea7d480438ada04e5d846152395 \
                     file://COPYING.LESSERv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
                     file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
-                    file://src/idn2.c;endline=16;md5=426b74d6deb620ab6d39c8a6efd4c13a \
-                    file://lib/idn2.h.in;endline=27;md5=c2cd28d3f87260f157f022eabb83714f"
+                    file://src/idn2.c;endline=16;md5=e4b6d628a84a55f1fd8ae4c76c5f6509 \
+                    file://lib/idn2.h.in;endline=27;md5=d0fc8ec628be130a1d5b889107e92477"
 
 SRC_URI = "${GNU_MIRROR}/libidn/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "01c5084995295e519f95978ae9785ee0"
-SRC_URI[sha256sum] = "e1cb1db3d2e249a6a3eb6f0946777c2e892d5c5dc7bd91c74394fc3a01cab8b5"
+SRC_URI[md5sum] = "cda07f5ac55fccfafdf7ee01828adad5"
+SRC_URI[sha256sum] = "8af684943836b8b53965d5f5b6714ef13c26c91eaa36ce7d242e3d21f5d40f2d"
 
 DEPENDS = "virtual/libiconv libunistring"
 
diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb
index 98e106f..0c69636 100644
--- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb
+++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb
@@ -20,7 +20,7 @@
 inherit cmake
 
 PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGE_CLASSES','package_rpm','rpm','',d)}"
-PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON -DENABLE_RPMDB_BDB=ON,,rpm"
+PACKAGECONFIG[rpm] = "-DENABLE_RPMMD=ON -DENABLE_RPMDB=ON -DENABLE_RPMDB_BDB=ON,,db rpm"
 
 EXTRA_OECMAKE = "-DMULTI_SEMANTICS=ON -DENABLE_COMPLEX_DEPS=ON"
 
diff --git a/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.1.bb b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.2.bb
similarity index 90%
rename from poky/meta/recipes-extended/libtirpc/libtirpc_1.3.1.bb
rename to poky/meta/recipes-extended/libtirpc/libtirpc_1.3.2.bb
index 5792264..b666263 100644
--- a/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.1.bb
+++ b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.2.bb
@@ -12,7 +12,7 @@
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2"
 UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libtirpc/files/libtirpc/"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
-SRC_URI[sha256sum] = "245895caf066bec5e3d4375942c8cb4366adad184c29c618d97f724ea309ee17"
+SRC_URI[sha256sum] = "e24eb88b8ce7db3b7ca6eb80115dd1284abc5ec32a8deccfed2224fc2532b9fd"
 
 inherit autotools pkgconfig
 
diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.18.0.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb
similarity index 93%
rename from poky/meta/recipes-extended/logrotate/logrotate_3.18.0.bb
rename to poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb
index 55684ac..d853f7b 100644
--- a/poky/meta/recipes-extended/logrotate/logrotate_3.18.0.bb
+++ b/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb
@@ -19,7 +19,10 @@
             file://disable-check-different-filesystems.patch \
             "
 
-SRC_URI[sha256sum] = "841f81bf09d0014e4a2e11af166bb33fcd8429cc0c2d4a7d3d9ceb3858cfccc5"
+SRC_URI[sha256sum] = "14a924e4804b3974e85019a9f9352c2a69726702e6656155c48bcdeace68a5dc"
+
+# These CVEs are debian, gentoo or SUSE specific on the way logrotate was installed/used
+CVE_CHECK_WHITELIST += "CVE-2011-1548 CVE-2011-1549 CVE-2011-1550"
 
 PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
 
diff --git a/poky/meta/recipes-extended/lsb/lsb-release/help2man-reproducibility.patch b/poky/meta/recipes-extended/lsb/lsb-release/help2man-reproducibility.patch
new file mode 100644
index 0000000..f32cd18
--- /dev/null
+++ b/poky/meta/recipes-extended/lsb/lsb-release/help2man-reproducibility.patch
@@ -0,0 +1,27 @@
+lsb-release maintains it's own copy of help2man. Include the support
+for specifying SOURCE_DATE_EPOCH from upstream.
+
+Upstream-Status: Pending
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff --git a/help2man b/help2man
+index 13015c2..63439db 100755
+--- a/help2man
++++ b/help2man
+@@ -173,7 +173,14 @@ my ($help_text, $version_text) = map {
+ 	or die "$this_program: can't get `--$_' info from $ARGV[0]\n"
+ } qw(help), $opt_version_key;
+ 
+-my $date = strftime "%B %Y", localtime;
++my $epoch_secs = time;
++if (exists $ENV{SOURCE_DATE_EPOCH} and $ENV{SOURCE_DATE_EPOCH} =~ /^(\d+)$/)
++{
++    $epoch_secs = $1;
++    $ENV{TZ} = 'UTC0';
++}
++
++my $date = strftime "%B %Y", localtime $epoch_secs;
+ (my $program = $ARGV[0]) =~ s!.*/!!;
+ my $package = $program;
+ my $version;
diff --git a/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb b/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb
index 3e8f7a1..bafc18f 100644
--- a/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb
+++ b/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb
@@ -11,6 +11,7 @@
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/lsb/lsb_release/1.4/lsb-release-1.4.tar.gz \
            file://0001-fix-lsb_release-to-work-with-busybox-head-and-find.patch \
            file://0001-Remove-timestamp-from-manpage.patch \
+           file://help2man-reproducibility.patch \
            "
 
 SRC_URI[md5sum] = "30537ef5a01e0ca94b7b8eb6a36bb1e4"
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-generate-makefiles.sh-Avoid-inc.patch b/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-generate-makefiles.sh-Avoid-inc.patch
deleted file mode 100644
index c2a70dc..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/0001-open_posix_testsuite-generate-makefiles.sh-Avoid-inc.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 2d1d6350af1db28ec520e26d0069a0518950b0a1 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Tue, 9 Mar 2021 15:21:11 +0000
-Subject: [PATCH 1/3] open_posix_testsuite/generate-makefiles.sh: Avoid
- inconsistencies with make version
-
-With make 4.1, INSTALL_TARGETS+=<tab> will add a space to the variable whereas
-with make 4.3, it will not. This leads to differing run.sh files in installed
-in packages which is undesireable. If tests is empty we don't have to add
-the line to the makefiles at all which seems like the easiest way to
-avoid the differences in make behaviour.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2021-March/021386.html]
-
----
- .../open_posix_testsuite/scripts/generate-makefiles.sh      | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/testcases/open_posix_testsuite/scripts/generate-makefiles.sh b/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
-index 200a631db..4b3aaa4a0 100755
---- a/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
-+++ b/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
-@@ -148,8 +148,12 @@ EOF
- 
- 	fi
- 
--	cat >> "$makefile.2" <<EOF
-+	if [ ! -z "${tests}" ]; then
-+		cat >> "$makefile.2" <<EOF
- INSTALL_TARGETS+=	${tests}
-+EOF
-+	fi
-+	cat >> "$makefile.2" <<EOF
- MAKE_TARGETS+=		${targets}
- 
- EOF
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-extended/ltp/ltp/0002-Makefile-Avoid-wildcard-determinism-issues.patch b/poky/meta/recipes-extended/ltp/ltp/0002-Makefile-Avoid-wildcard-determinism-issues.patch
deleted file mode 100644
index 4859c3e..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/0002-Makefile-Avoid-wildcard-determinism-issues.patch
+++ /dev/null
@@ -1,310 +0,0 @@
-From 4030e28f2c2296ba138cb5e2495202f8aec7ba32 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Tue, 9 Mar 2021 15:21:36 +0000
-Subject: [PATCH 2/3] Makefile: Avoid wildcard determinism issues
-
-wildcard used in Makefiles preserves the order of the files on disk
-which leads to differences in the order the binaries are linked.
-
-This patch tweaks the usage of wildcard to also have a sort, making
-the binaries reproducible. A previous patch massively improved
-the situation but wider testing showed that these other changes can
-have an effect on some binaries, this patch avoids those issues as
-exposed by our wider testing.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2021-March/021388.html]
-
----
- include/mk/env_post.mk                                     | 2 +-
- include/mk/module.mk                                       | 2 +-
- runtest/Makefile                                           | 2 +-
- scenario_groups/Makefile                                   | 2 +-
- testcases/commands/ldd/datafiles/Makefile                  | 2 +-
- testcases/kernel/hotplug/memory_hotplug/Makefile           | 3 ++-
- testcases/kernel/io/disktest/Makefile                      | 2 +-
- testcases/kernel/io/disktest/Makefile.linux                | 4 ++--
- testcases/kernel/sched/hyperthreading/ht_affinity/Makefile | 2 +-
- testcases/kernel/sched/hyperthreading/ht_enabled/Makefile  | 2 +-
- testcases/kernel/sched/sched_stress/Makefile               | 2 +-
- testcases/kernel/syscalls/lchown/Makefile                  | 2 +-
- testcases/kernel/syscalls/migrate_pages/Makefile           | 2 +-
- testcases/kernel/syscalls/move_pages/Makefile              | 2 +-
- testcases/kernel/syscalls/utils/compat_16.mk               | 2 +-
- testcases/kernel/syscalls/utils/newer_64.mk                | 2 +-
- testcases/misc/math/float/Makefile                         | 2 +-
- testcases/network/nfs/nfs_stress/nfs05_make_tree.c         | 4 ++--
- testcases/network/nfsv4/locks/Makefile                     | 2 +-
- utils/sctp/func_tests/Makefile                             | 2 +-
- 20 files changed, 23 insertions(+), 22 deletions(-)
-
-diff --git a/include/mk/env_post.mk b/include/mk/env_post.mk
-index d52ad9f0b..1d22f9c53 100644
---- a/include/mk/env_post.mk
-+++ b/include/mk/env_post.mk
-@@ -47,7 +47,7 @@ LDFLAGS				+= -L$(top_builddir)/lib/android_libpthread
- LDFLAGS				+= -L$(top_builddir)/lib/android_librt
- endif
- 
--MAKE_TARGETS			?= $(notdir $(patsubst %.c,%,$(wildcard $(abs_srcdir)/*.c)))
-+MAKE_TARGETS			?= $(notdir $(patsubst %.c,%,$(sort $(wildcard $(abs_srcdir)/*.c))))
- MAKE_TARGETS			:= $(filter-out $(FILTER_OUT_MAKE_TARGETS),$(MAKE_TARGETS))
- 
- # with only *.dwo, .[0-9]+.dwo can not be cleaned
-diff --git a/include/mk/module.mk b/include/mk/module.mk
-index 95fb8336a..6c8814b96 100644
---- a/include/mk/module.mk
-+++ b/include/mk/module.mk
-@@ -42,7 +42,7 @@ endif
- 
- ifneq ($(filter install clean,$(MAKECMDGOALS)),)
- MAKE_TARGETS := $(filter-out %.ko, $(MAKE_TARGETS))
--MAKE_TARGETS += $(wildcard *.ko)
-+MAKE_TARGETS += $(sort $(wildcard *.ko))
- endif
- 
- CLEAN_TARGETS += .dep_modules *.mod built-in.a
-diff --git a/runtest/Makefile b/runtest/Makefile
-index b7caaee06..6a1565b6a 100644
---- a/runtest/Makefile
-+++ b/runtest/Makefile
-@@ -36,7 +36,7 @@ ifneq ($(WITH_POWER_MANAGEMENT_TESTSUITE),yes)
- UNWANTED_FILES		+= power_management_tests
- endif
- 
--INSTALL_TARGETS		:= $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(wildcard $(abs_srcdir)/*))))
-+INSTALL_TARGETS		:= $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(sort $(wildcard $(abs_srcdir)/*)))))
- 
- MAKE_TARGETS		:=
- 
-diff --git a/scenario_groups/Makefile b/scenario_groups/Makefile
-index 2978675d9..fcbc92708 100644
---- a/scenario_groups/Makefile
-+++ b/scenario_groups/Makefile
-@@ -31,7 +31,7 @@ UNWANTED_FILES		:= Makefile
- 
- INSTALL_MODE		:= 00644
- 
--INSTALL_TARGETS		:= $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(wildcard $(abs_srcdir)/*))))
-+INSTALL_TARGETS		:= $(filter-out $(UNWANTED_FILES),$(notdir $(patsubst $(abs_srcdir)/%,%,$(sort $(wildcard $(abs_srcdir)/*)))))
- 
- MAKE_TARGETS		:=
- 
-diff --git a/testcases/commands/ldd/datafiles/Makefile b/testcases/commands/ldd/datafiles/Makefile
-index d8bcf5c06..01c352052 100644
---- a/testcases/commands/ldd/datafiles/Makefile
-+++ b/testcases/commands/ldd/datafiles/Makefile
-@@ -21,7 +21,7 @@ CPPFLAGS		+= -fpic
- 
- INSTALL_TARGETS		:= ldd*.so lddfile.out
- 
--LDD_C_FILES		:= $(wildcard $(abs_srcdir)/lddfile*.c)
-+LDD_C_FILES		:= $(sort $(wildcard $(abs_srcdir)/lddfile*.c))
- LDD_SO_FILES		:= $(patsubst $(abs_srcdir)/%.c,%.obj.so,$(LDD_C_FILES))
- MAKE_TARGETS		:= lddfile.out
- CLEAN_TARGETS		+= *.obj $(LDD_SO_FILES)
-diff --git a/testcases/kernel/hotplug/memory_hotplug/Makefile b/testcases/kernel/hotplug/memory_hotplug/Makefile
-index d1ba65e65..38a77a2ba 100644
---- a/testcases/kernel/hotplug/memory_hotplug/Makefile
-+++ b/testcases/kernel/hotplug/memory_hotplug/Makefile
-@@ -31,6 +31,7 @@ LDLIBS		:= $(filter-out -lltp,$(LDLIBS))
- 
- MAKE_TARGETS	:= memtoy
- 
--memtoy: $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
-+memtoy: $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
-+
- 
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
-diff --git a/testcases/kernel/io/disktest/Makefile b/testcases/kernel/io/disktest/Makefile
-index d10d98434..3a3a9cbf0 100644
---- a/testcases/kernel/io/disktest/Makefile
-+++ b/testcases/kernel/io/disktest/Makefile
-@@ -209,7 +209,7 @@ LDLIBS		+= -lpthread
- 
- MAKE_TARGETS	:= disktest
- 
--OBJS		:= $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
-+OBJS		:= $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
- 
- disktest-$(VER):
- 	mkdir -p "$@"
-diff --git a/testcases/kernel/io/disktest/Makefile.linux b/testcases/kernel/io/disktest/Makefile.linux
-index ea45b5a57..0f3aab622 100644
---- a/testcases/kernel/io/disktest/Makefile.linux
-+++ b/testcases/kernel/io/disktest/Makefile.linux
-@@ -167,8 +167,8 @@ mandir=/usr/share/man
- 
- VER=`grep VER_STR main.h | awk -F\" '{print $$2}'`
- GBLHDRS=main.h globals.h defs.h
--ALLHDRS=$(wildcard *.h)
--SRCS=$(wildcard *.c)
-+ALLHDRS=$(sort $(wildcard *.h))
-+SRCS=$(sort $(wildcard *.c))
- OBJS=$(SRCS:.c=.o)
- 
- CFLAGS += -g -Wall -O -D"LINUX" -D"_THREAD_SAFE" -D"_GNU_SOURCE" -D"_LARGE_FILES" -D"_LARGEFILE64_SOURCE" -D"_FILE_OFFSET_BITS=64" $(RPM_OPT_FLAGS)
-diff --git a/testcases/kernel/sched/hyperthreading/ht_affinity/Makefile b/testcases/kernel/sched/hyperthreading/ht_affinity/Makefile
-index 10fec96dc..6b64bd261 100644
---- a/testcases/kernel/sched/hyperthreading/ht_affinity/Makefile
-+++ b/testcases/kernel/sched/hyperthreading/ht_affinity/Makefile
-@@ -28,6 +28,6 @@ INSTALL_TARGETS		:= smt_smp_affinity.sh
- 
- MAKE_TARGETS		:= ht_affinity
- 
--$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
-+$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
- 
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
-diff --git a/testcases/kernel/sched/hyperthreading/ht_enabled/Makefile b/testcases/kernel/sched/hyperthreading/ht_enabled/Makefile
-index 9c1e139d6..585ff1383 100644
---- a/testcases/kernel/sched/hyperthreading/ht_enabled/Makefile
-+++ b/testcases/kernel/sched/hyperthreading/ht_enabled/Makefile
-@@ -28,6 +28,6 @@ INSTALL_TARGETS		:= smt_smp_enabled.sh
- 
- MAKE_TARGETS		:= ht_enabled
- 
--$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
-+$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
- 
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
-diff --git a/testcases/kernel/sched/sched_stress/Makefile b/testcases/kernel/sched/sched_stress/Makefile
-index b76126c73..4dbbf3477 100644
---- a/testcases/kernel/sched/sched_stress/Makefile
-+++ b/testcases/kernel/sched/sched_stress/Makefile
-@@ -10,7 +10,7 @@ INSTALL_TARGETS		:= sched_stress.sh
- 
- LDLIBS			+= -lpthread
- 
--MAKE_TARGETS		:= $(filter-out sched,$(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/*.c)))
-+MAKE_TARGETS		:= $(filter-out sched,$(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/*.c))))
- 
- RM			+= -r
- 
-diff --git a/testcases/kernel/syscalls/lchown/Makefile b/testcases/kernel/syscalls/lchown/Makefile
-index 13d39cb81..305fee281 100644
---- a/testcases/kernel/syscalls/lchown/Makefile
-+++ b/testcases/kernel/syscalls/lchown/Makefile
-@@ -5,7 +5,7 @@ top_srcdir		?= ../../../..
- 
- include $(top_srcdir)/include/mk/testcases.mk
- 
--SRCS			:= $(wildcard $(abs_srcdir)/lchown*.c)
-+SRCS			:= $(sort $(wildcard $(abs_srcdir)/lchown*.c))
- 
- include $(abs_srcdir)/../utils/compat_16.mk
- 
-diff --git a/testcases/kernel/syscalls/migrate_pages/Makefile b/testcases/kernel/syscalls/migrate_pages/Makefile
-index 46912b025..9cf3ce526 100644
---- a/testcases/kernel/syscalls/migrate_pages/Makefile
-+++ b/testcases/kernel/syscalls/migrate_pages/Makefile
-@@ -5,7 +5,7 @@ top_srcdir		?= ../../../..
- 
- include $(top_srcdir)/include/mk/testcases.mk
- 
--MAKE_TARGETS		:= $(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/*[0-9].c))
-+MAKE_TARGETS		:= $(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/*[0-9].c)))
- $(MAKE_TARGETS): %: migrate_pages_common.o
- 
- CPPFLAGS		+= -I$(abs_srcdir)/../utils/
-diff --git a/testcases/kernel/syscalls/move_pages/Makefile b/testcases/kernel/syscalls/move_pages/Makefile
-index cd7ff6349..4b22160ed 100644
---- a/testcases/kernel/syscalls/move_pages/Makefile
-+++ b/testcases/kernel/syscalls/move_pages/Makefile
-@@ -7,7 +7,7 @@ include $(top_srcdir)/include/mk/testcases.mk
- 
- CPPFLAGS		+= -I$(abs_srcdir)/../utils
- 
--MAKE_TARGETS		:= $(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/*[0-9].c))
-+MAKE_TARGETS		:= $(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/*[0-9].c)))
- 
- $(MAKE_TARGETS): %: move_pages_support.o
- 
-diff --git a/testcases/kernel/syscalls/utils/compat_16.mk b/testcases/kernel/syscalls/utils/compat_16.mk
-index a0ff8f558..e81a00c40 100644
---- a/testcases/kernel/syscalls/utils/compat_16.mk
-+++ b/testcases/kernel/syscalls/utils/compat_16.mk
-@@ -50,7 +50,7 @@
- 
- CPPFLAGS		+= -I$(abs_srcdir) -I$(abs_srcdir)/../utils
- 
--SRCS			?= $(wildcard $(abs_srcdir)/*.c)
-+SRCS			?= $(sort $(wildcard $(abs_srcdir)/*.c))
- 
- MAKE_TARGETS		:= $(notdir $(patsubst %.c,%,$(SRCS)))
- MAKE_TARGETS_OBJS_WO_COMPAT_16	:= $(addsuffix .o,$(MAKE_TARGETS))
-diff --git a/testcases/kernel/syscalls/utils/newer_64.mk b/testcases/kernel/syscalls/utils/newer_64.mk
-index 8cd7e03c8..5e798057a 100644
---- a/testcases/kernel/syscalls/utils/newer_64.mk
-+++ b/testcases/kernel/syscalls/utils/newer_64.mk
-@@ -25,7 +25,7 @@
- 
- CPPFLAGS		+= -I$(abs_srcdir) -I$(abs_srcdir)/../utils
- 
--SRCS			?= $(wildcard $(abs_srcdir)/*.c)
-+SRCS			?= $(sort $(wildcard $(abs_srcdir)/*.c))
- 
- MAKE_TARGETS		:= $(notdir $(patsubst %.c,%,$(SRCS)))
- 
-diff --git a/testcases/misc/math/float/Makefile b/testcases/misc/math/float/Makefile
-index 79dda35d6..5f4cb0f6c 100644
---- a/testcases/misc/math/float/Makefile
-+++ b/testcases/misc/math/float/Makefile
-@@ -27,6 +27,6 @@ include $(top_srcdir)/include/mk/testcases.mk
- LDLIBS		+= -lpthread -lm
- 
- # main.c doesn't compile...
--MAKE_TARGETS	:= $(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/float*.c))
-+MAKE_TARGETS	:= $(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/float*.c)))
- 
- include $(top_srcdir)/include/mk/generic_trunk_target.mk
-diff --git a/testcases/network/nfs/nfs_stress/nfs05_make_tree.c b/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
-index 12c86799d..23c520d9d 100644
---- a/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
-+++ b/testcases/network/nfs/nfs_stress/nfs05_make_tree.c
-@@ -104,7 +104,7 @@ static void *thread_fn(LTP_ATTRIBUTE_UNUSED void *args)
- 				"\treturn 0;\n}\n";
- 
- 	const char make_buf_n[] = "CFLAGS := -O -w -g\n"
--				  "SRCS=$(wildcard *.c)\n"
-+				  "SRCS=$(sort $(wildcard *.c))\n"
- 				  "TARGETS=$(SRCS:.c=)\n"
- 				  "all: $(TARGETS)\n"
- 				  "$(TARGETS): %: %.c\n"
-@@ -114,7 +114,7 @@ static void *thread_fn(LTP_ATTRIBUTE_UNUSED void *args)
- 
- 	const char make_buf[] = "CFLAGS := -O -w -g\n"
- 				"SUBDIR = dir\n"
--				"SRCS=$(wildcard *.c)\n"
-+				"SRCS=$(sort $(wildcard *.c))\n"
- 				"TARGETS=$(SRCS:.c=)\n"
- 				"all: $(SUBDIR) $(TARGETS)\n"
- 				"$(TARGETS): %: %.c\n"
-diff --git a/testcases/network/nfsv4/locks/Makefile b/testcases/network/nfsv4/locks/Makefile
-index 5812dea3a..05941c892 100644
---- a/testcases/network/nfsv4/locks/Makefile
-+++ b/testcases/network/nfsv4/locks/Makefile
-@@ -28,6 +28,6 @@ MAKE_TARGETS		:= locktests
- 
- LDLIBS			+= -lpthread
- 
--$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(wildcard $(abs_srcdir)/*.c))
-+$(MAKE_TARGETS): $(patsubst $(abs_srcdir)/%.c,%.o,$(sort $(wildcard $(abs_srcdir)/*.c)))
- 
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
-diff --git a/utils/sctp/func_tests/Makefile b/utils/sctp/func_tests/Makefile
-index d296c652a..a17107853 100644
---- a/utils/sctp/func_tests/Makefile
-+++ b/utils/sctp/func_tests/Makefile
-@@ -30,7 +30,7 @@ LDFLAGS		+= $(addprefix -L$(abs_builddir)/../,lib testlib)
- 
- LDLIBS		+= -lsctputil -lsctp -lpthread
- 
--V4_TARGETS	:= $(patsubst $(abs_srcdir)/%.c,%,$(wildcard $(abs_srcdir)/*.c))
-+V4_TARGETS	:= $(patsubst $(abs_srcdir)/%.c,%,$(sort $(wildcard $(abs_srcdir)/*.c)))
- 
- V6_TARGETS	:= test_basic_v6 test_fragments_v6 test_getname_v6 \
- 		   test_inaddr_any_v6 test_peeloff_v6 \
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-extended/ltp/ltp/0003-syscalls-swapon-swapoff-Move-common-library-to-libs.patch b/poky/meta/recipes-extended/ltp/ltp/0003-syscalls-swapon-swapoff-Move-common-library-to-libs.patch
deleted file mode 100644
index 5ace82d..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/0003-syscalls-swapon-swapoff-Move-common-library-to-libs.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From 0653f1d809d0cc13f84facb9d2d82d984ac4d0ac Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Tue, 9 Mar 2021 15:25:16 +0000
-Subject: [PATCH 3/3] syscalls/swapon/swapoff: Move common library to libs/
-
-There is a race/determinism issue with libswapon currently as depending on
-which makefile path builds it, the debug paths may be "../swapon/libswapon.c"
-or "libswapon.c". To avoid the determinism issue, move libswapon to libs/
-and use it from the shared location.
-
-The header is moved to the common includes directory to match and
-the Makefile.inc fragment can be dropped.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2021-March/021387.html]
-
----
- .../kernel/syscalls/swapon => include}/libswapon.h   |  0
- libs/libltpswapon/Makefile                           | 12 ++++++++++++
- .../swapon => libs/libltpswapon}/libswapon.c         |  0
- testcases/kernel/syscalls/swapoff/Makefile           |  7 +++++--
- testcases/kernel/syscalls/swapoff/Makefile.inc       |  6 ------
- testcases/kernel/syscalls/swapoff/swapoff01.c        |  2 +-
- testcases/kernel/syscalls/swapoff/swapoff02.c        |  2 +-
- testcases/kernel/syscalls/swapon/Makefile            |  6 +++---
- 8 files changed, 22 insertions(+), 13 deletions(-)
- rename {testcases/kernel/syscalls/swapon => include}/libswapon.h (100%)
- create mode 100644 libs/libltpswapon/Makefile
- rename {testcases/kernel/syscalls/swapon => libs/libltpswapon}/libswapon.c (100%)
- delete mode 100644 testcases/kernel/syscalls/swapoff/Makefile.inc
-
-diff --git a/testcases/kernel/syscalls/swapon/libswapon.h b/include/libswapon.h
-similarity index 100%
-rename from testcases/kernel/syscalls/swapon/libswapon.h
-rename to include/libswapon.h
-diff --git a/libs/libltpswapon/Makefile b/libs/libltpswapon/Makefile
-new file mode 100644
-index 000000000..8f738338b
---- /dev/null
-+++ b/libs/libltpswapon/Makefile
-@@ -0,0 +1,12 @@
-+# SPDX-License-Identifier: GPL-2.0-or-later
-+#
-+# Copyright (C) Richard Purdie <richard.purdie@linuxfoundation.org>
-+
-+top_srcdir		?= ../..
-+
-+include $(top_srcdir)/include/mk/env_pre.mk
-+
-+INTERNAL_LIB		:= libltpswapon.a
-+
-+include $(top_srcdir)/include/mk/lib.mk
-+include $(top_srcdir)/include/mk/generic_leaf_target.mk
-diff --git a/testcases/kernel/syscalls/swapon/libswapon.c b/libs/libltpswapon/libswapon.c
-similarity index 100%
-rename from testcases/kernel/syscalls/swapon/libswapon.c
-rename to libs/libltpswapon/libswapon.c
-diff --git a/testcases/kernel/syscalls/swapoff/Makefile b/testcases/kernel/syscalls/swapoff/Makefile
-index fbfbe0441..a74374605 100644
---- a/testcases/kernel/syscalls/swapoff/Makefile
-+++ b/testcases/kernel/syscalls/swapoff/Makefile
-@@ -3,7 +3,10 @@
- 
- top_srcdir		?= ../../../..
- 
-+LTPLIBS = ltpswapon
-+
- include $(top_srcdir)/include/mk/testcases.mk
--include $(abs_srcdir)/./Makefile.inc
-+
-+LTPLDLIBS  = -lltpswapon
-+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
--$(MAKE_TARGETS): %: ../swapon/libswapon.o
-diff --git a/testcases/kernel/syscalls/swapoff/Makefile.inc b/testcases/kernel/syscalls/swapoff/Makefile.inc
-deleted file mode 100644
-index 65350cbeb..000000000
---- a/testcases/kernel/syscalls/swapoff/Makefile.inc
-+++ /dev/null
-@@ -1,6 +0,0 @@
--LIBDIR			+= ../swapon/
--LIBSWAPON		:= $(LIBDIR)/libswapon.o
--$(LIBSWAPON):
--	$(MAKE) -C $(LIBDIR)
--CPPFLAGS		+= -I$(abs_srcdir)/$(LIBDIR)
--LDFLAGS			+= -L$(abs_builddir)/$(LIBDIR)
-diff --git a/testcases/kernel/syscalls/swapoff/swapoff01.c b/testcases/kernel/syscalls/swapoff/swapoff01.c
-index e115269c0..87a217a89 100644
---- a/testcases/kernel/syscalls/swapoff/swapoff01.c
-+++ b/testcases/kernel/syscalls/swapoff/swapoff01.c
-@@ -25,7 +25,7 @@
- #include <stdlib.h>
- #include "config.h"
- #include "lapi/syscalls.h"
--#include "../swapon/libswapon.h"
-+#include "libswapon.h"
- 
- static void setup(void);
- static void cleanup(void);
-diff --git a/testcases/kernel/syscalls/swapoff/swapoff02.c b/testcases/kernel/syscalls/swapoff/swapoff02.c
-index 8954f975f..60cd66c26 100644
---- a/testcases/kernel/syscalls/swapoff/swapoff02.c
-+++ b/testcases/kernel/syscalls/swapoff/swapoff02.c
-@@ -33,7 +33,7 @@
- #include "test.h"
- #include "lapi/syscalls.h"
- #include "safe_macros.h"
--#include "../swapon/libswapon.h"
-+#include "libswapon.h"
- 
- static void setup(void);
- static void cleanup(void);
-diff --git a/testcases/kernel/syscalls/swapon/Makefile b/testcases/kernel/syscalls/swapon/Makefile
-index 97113a447..57ec45d48 100644
---- a/testcases/kernel/syscalls/swapon/Makefile
-+++ b/testcases/kernel/syscalls/swapon/Makefile
-@@ -8,10 +8,10 @@ endif
- 
- top_srcdir		?= ../../../..
- 
-+LTPLIBS = ltpswapon
-+
- include $(top_srcdir)/include/mk/testcases.mk
- 
--FILTER_OUT_MAKE_TARGETS         := libswapon
-+LTPLDLIBS  = -lltpswapon
- 
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
--
--$(MAKE_TARGETS): %: libswapon.o
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch b/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch
deleted file mode 100644
index 0e72645..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/0007-Fix-test_proc_kill-hanging.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From f4fafbdffae3a63c81f65cef98c72dda26283e06 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Wed, 8 Feb 2017 16:17:17 +0800
-Subject: [PATCH] Fix test_proc_kill hanging
-
-Sometimes the signal is delivered to memcg_process before the framework took
-into consideration its pid entered in the tasks. Fixed by delaying the signal
-send command.
-
-Upstream-Status: Pending
-
-Signed-off-by: George Nita <george.nita@enea.com>
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- testcases/kernel/controllers/memcg/functional/memcg_lib.sh | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh
-index aadaae4..deea5d6 100755
---- a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh
-+++ b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh
-@@ -291,6 +291,7 @@ test_proc_kill()
- 	pid=$!
- 	TST_CHECKPOINT_WAIT 0
- 	echo $pid > tasks
-+	sleep 1
- 
- 	signal_memcg_process $pid $3
- 
--- 
-2.7.4
-
diff --git a/poky/meta/recipes-extended/ltp/ltp/determinism.patch b/poky/meta/recipes-extended/ltp/ltp/determinism.patch
deleted file mode 100644
index 76d4072..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/determinism.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-open_posix_testsuite/generate-makefiles.sh: Fix determinism issue
-
-Currently the list of tests is generated by the order of the files found
-within the directories. This results in differences in the run.sh and 
-Makefiles. Within Yocto Project this results in differing target
-test packages. The fix is simple, just sort the output from locate-test.
-
-mk/lib.mk: Sort wildcard expansion for determinism
-
-The order of the objects linked into libltp.a varies depending on the
-order of the files found on disk. This results in most ltp binaries
-differing depending on that order too.
-
-Sort the wildcard expansion of *.c which leads to reproducible binaries.
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Upstream-Status: Submitted [http://lists.linux.it/pipermail/ltp/2021-March/021272.html http://lists.linux.it/pipermail/ltp/2021-March/021273.html]
-
-Index: git/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
-===================================================================
---- git.orig/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
-+++ git/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
-@@ -24,7 +24,7 @@ generate_locate_test_makefile() {
- 
- 	echo "Generating $maketype Makefiles"
- 
--	locate-test --$maketype | sed -e 's,^./,,g' > make-gen.$maketype
-+	locate-test --$maketype | sed -e 's,^./,,g' | sort > make-gen.$maketype
- 
- 	generate_makefiles make-gen.$maketype $*
- 
-Index: git/include/mk/lib.mk
-===================================================================
---- git.orig/include/mk/lib.mk
-+++ git/include/mk/lib.mk
-@@ -50,6 +50,7 @@ endif
- MAKE_TARGETS	+= $(LIB)
- 
- LIBSRCS		?= $(wildcard $(abs_srcdir)/*.c)
-+LIBSRCS		:= $(sort $(LIBSRCS))
- LIBSRCS		:= $(abspath $(LIBSRCS))
- LIBSRCS		:= $(subst $(abs_srcdir)/,,$(wildcard $(LIBSRCS)))
- LIBSRCS		:= $(filter-out $(FILTER_OUT_LIBSRCS),$(LIBSRCS))
diff --git a/poky/meta/recipes-extended/ltp/ltp/disable_hanging_tests.patch b/poky/meta/recipes-extended/ltp/ltp/disable_hanging_tests.patch
new file mode 100644
index 0000000..113ac0f
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/disable_hanging_tests.patch
@@ -0,0 +1,45 @@
+This patch disables tests which we've found "hang" on our infrastructure.
+
+cgroup_xattr:
+https://autobuilder.yoctoproject.org/typhoon/#/builders/95/builds/1926 (x86)
+https://autobuilder.yoctoproject.org/typhoon/#/builders/95/builds/1898 (x86)
+https://autobuilder.yoctoproject.org/typhoon/#/builders/95/builds/1916 (x86)
+
+proc01:
+https://autobuilder.yoctoproject.org/typhoon/#/builders/96/builds/1748 (arm)
+https://autobuilder.yoctoproject.org/typhoon/#/builders/96/builds/1781 (arm)
+(in the latter was trying to read /proc/kmsg)
+(the above test looks horrible anyway)
+
+Upstream-Status: Inappropriate [OE Configuration]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: git/runtest/controllers
+===================================================================
+--- git.orig/runtest/controllers
++++ git/runtest/controllers
+@@ -352,8 +352,6 @@ cpuset_memory_spread	cpuset_memory_sprea
+ 
+ cpuset_regression_test cpuset_regression_test.sh
+ 
+-cgroup_xattr	cgroup_xattr
+-
+ pids_1_1 pids.sh 1 1 0
+ pids_1_2 pids.sh 1 2 0
+ pids_1_10 pids.sh 1 10 0
+Index: git/runtest/fs
+===================================================================
+--- git.orig/runtest/fs
++++ git/runtest/fs
+@@ -64,11 +64,6 @@ writetest01	writetest
+ #Also run the fs_di (Data Integrity tests)
+ fs_di fs_di -d $TMPDIR
+ 
+-# Read every file in /proc. Not likely to crash, but does enough
+-# to disturb the kernel. A good kernel latency killer too.
+-# Was not sure why it should reside in runtest/crashme and won't get tested ever
+-proc01 proc01 -m 128
+-
+ read_all_dev read_all -d /dev -p -q -r 3
+ read_all_proc read_all -d /proc -q -r 3
+ read_all_sys read_all -d /sys -q -r 3
diff --git a/poky/meta/recipes-extended/ltp/ltp/libswapon.patch b/poky/meta/recipes-extended/ltp/ltp/libswapon.patch
deleted file mode 100644
index 07b0dce..0000000
--- a/poky/meta/recipes-extended/ltp/ltp/libswapon.patch
+++ /dev/null
@@ -1,368 +0,0 @@
-Index: git/libs/libltpswapon/Makefile
-===================================================================
---- /dev/null
-+++ git/libs/libltpswapon/Makefile
-@@ -0,0 +1,12 @@
-+# SPDX-License-Identifier: GPL-2.0-or-later
-+#
-+# Copyright (C) Richard Purdie <richard.purdie@linuxfoundation.org>
-+
-+top_srcdir		?= ../..
-+
-+include $(top_srcdir)/include/mk/env_pre.mk
-+
-+INTERNAL_LIB		:= libltpswapon.a
-+
-+include $(top_srcdir)/include/mk/lib.mk
-+include $(top_srcdir)/include/mk/generic_leaf_target.mk
-Index: git/libs/libltpswapon/libswapon.c
-===================================================================
---- /dev/null
-+++ git/libs/libltpswapon/libswapon.c
-@@ -0,0 +1,90 @@
-+/*
-+ * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved.
-+ *
-+ * 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 the Free Software Foundation,
-+ * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-+ *
-+ * Author: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
-+ *
-+ */
-+
-+#include <errno.h>
-+#include "lapi/syscalls.h"
-+#include "test.h"
-+#include "libswapon.h"
-+
-+/*
-+ * Make a swap file
-+ */
-+int make_swapfile(void (cleanup)(void), const char *swapfile, int safe)
-+{
-+	if (!tst_fs_has_free(NULL, ".", sysconf(_SC_PAGESIZE) * 10,
-+	    TST_BYTES)) {
-+		tst_brkm(TBROK, cleanup,
-+			"Insufficient disk space to create swap file");
-+	}
-+
-+	/* create file */
-+	if (tst_fill_file(swapfile, 0,
-+			sysconf(_SC_PAGESIZE), 10) != 0) {
-+		tst_brkm(TBROK, cleanup, "Failed to create swapfile");
-+	}
-+
-+	/* make the file swapfile */
-+	const char *argv[2 + 1];
-+	argv[0] = "mkswap";
-+	argv[1] = swapfile;
-+	argv[2] = NULL;
-+
-+	return tst_cmd(cleanup, argv, "/dev/null", "/dev/null", safe);
-+}
-+
-+/*
-+ * Check swapon/swapoff support status of filesystems or files
-+ * we are testing on.
-+ */
-+void is_swap_supported(void (cleanup)(void), const char *filename)
-+{
-+	int fibmap = tst_fibmap(filename);
-+	long fs_type = tst_fs_type(cleanup, filename);
-+	const char *fstype = tst_fs_type_name(fs_type);
-+
-+	int ret = make_swapfile(NULL, filename, 1);
-+	if (ret != 0) {
-+		if (fibmap == 1) {
-+			tst_brkm(TCONF, cleanup,
-+				"mkswap on %s not supported", fstype);
-+		} else {
-+			tst_brkm(TFAIL, cleanup,
-+				"mkswap on %s failed", fstype);
-+		}
-+	}
-+
-+	TEST(ltp_syscall(__NR_swapon, filename, 0));
-+	if (TEST_RETURN == -1) {
-+		if (fibmap == 1 && errno == EINVAL) {
-+			tst_brkm(TCONF, cleanup,
-+				"Swapfile on %s not implemented", fstype);
-+		} else {
-+			tst_brkm(TFAIL | TERRNO, cleanup,
-+				 "swapon on %s failed", fstype);
-+		}
-+	}
-+
-+	TEST(ltp_syscall(__NR_swapoff, filename, 0));
-+	if (TEST_RETURN == -1) {
-+		tst_brkm(TFAIL | TERRNO, cleanup,
-+			"swapoff on %s failed", fstype);
-+	}
-+}
-Index: git/testcases/kernel/syscalls/swapoff/Makefile
-===================================================================
---- git.orig/testcases/kernel/syscalls/swapoff/Makefile
-+++ git/testcases/kernel/syscalls/swapoff/Makefile
-@@ -3,7 +3,11 @@
- 
- top_srcdir		?= ../../../..
- 
-+LTPLIBS = ltpswapon
-+ 
- include $(top_srcdir)/include/mk/testcases.mk
--include $(abs_srcdir)/./Makefile.inc
-+
-+LTPLDLIBS  = -lltpswapon
-+
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
--$(MAKE_TARGETS): %: ../swapon/libswapon.o
-+
-Index: git/testcases/kernel/syscalls/swapoff/Makefile.inc
-===================================================================
---- git.orig/testcases/kernel/syscalls/swapoff/Makefile.inc
-+++ /dev/null
-@@ -1,6 +0,0 @@
--LIBDIR			+= ../swapon/
--LIBSWAPON		:= $(LIBDIR)/libswapon.o
--$(LIBSWAPON):
--	$(MAKE) -C $(LIBDIR)
--CPPFLAGS		+= -I$(abs_srcdir)/$(LIBDIR)
--LDFLAGS			+= -L$(abs_builddir)/$(LIBDIR)
-Index: git/testcases/kernel/syscalls/swapon/Makefile
-===================================================================
---- git.orig/testcases/kernel/syscalls/swapon/Makefile
-+++ git/testcases/kernel/syscalls/swapon/Makefile
-@@ -8,10 +8,10 @@ endif
- 
- top_srcdir		?= ../../../..
- 
-+LTPLIBS = ltpswapon
-+
- include $(top_srcdir)/include/mk/testcases.mk
- 
--FILTER_OUT_MAKE_TARGETS         := libswapon
-+LTPLDLIBS  = -lltpswapon
- 
- include $(top_srcdir)/include/mk/generic_leaf_target.mk
--
--$(MAKE_TARGETS): %: libswapon.o
-Index: git/testcases/kernel/syscalls/swapon/libswapon.c
-===================================================================
---- git.orig/testcases/kernel/syscalls/swapon/libswapon.c
-+++ /dev/null
-@@ -1,90 +0,0 @@
--/*
-- * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved.
-- *
-- * 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 the Free Software Foundation,
-- * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-- *
-- * Author: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
-- *
-- */
--
--#include <errno.h>
--#include "lapi/syscalls.h"
--#include "test.h"
--#include "libswapon.h"
--
--/*
-- * Make a swap file
-- */
--int make_swapfile(void (cleanup)(void), const char *swapfile, int safe)
--{
--	if (!tst_fs_has_free(NULL, ".", sysconf(_SC_PAGESIZE) * 10,
--	    TST_BYTES)) {
--		tst_brkm(TBROK, cleanup,
--			"Insufficient disk space to create swap file");
--	}
--
--	/* create file */
--	if (tst_fill_file(swapfile, 0,
--			sysconf(_SC_PAGESIZE), 10) != 0) {
--		tst_brkm(TBROK, cleanup, "Failed to create swapfile");
--	}
--
--	/* make the file swapfile */
--	const char *argv[2 + 1];
--	argv[0] = "mkswap";
--	argv[1] = swapfile;
--	argv[2] = NULL;
--
--	return tst_cmd(cleanup, argv, "/dev/null", "/dev/null", safe);
--}
--
--/*
-- * Check swapon/swapoff support status of filesystems or files
-- * we are testing on.
-- */
--void is_swap_supported(void (cleanup)(void), const char *filename)
--{
--	int fibmap = tst_fibmap(filename);
--	long fs_type = tst_fs_type(cleanup, filename);
--	const char *fstype = tst_fs_type_name(fs_type);
--
--	int ret = make_swapfile(NULL, filename, 1);
--	if (ret != 0) {
--		if (fibmap == 1) {
--			tst_brkm(TCONF, cleanup,
--				"mkswap on %s not supported", fstype);
--		} else {
--			tst_brkm(TFAIL, cleanup,
--				"mkswap on %s failed", fstype);
--		}
--	}
--
--	TEST(ltp_syscall(__NR_swapon, filename, 0));
--	if (TEST_RETURN == -1) {
--		if (fibmap == 1 && errno == EINVAL) {
--			tst_brkm(TCONF, cleanup,
--				"Swapfile on %s not implemented", fstype);
--		} else {
--			tst_brkm(TFAIL | TERRNO, cleanup,
--				 "swapon on %s failed", fstype);
--		}
--	}
--
--	TEST(ltp_syscall(__NR_swapoff, filename, 0));
--	if (TEST_RETURN == -1) {
--		tst_brkm(TFAIL | TERRNO, cleanup,
--			"swapoff on %s failed", fstype);
--	}
--}
-Index: git/testcases/kernel/syscalls/swapon/libswapon.h
-===================================================================
---- git.orig/testcases/kernel/syscalls/swapon/libswapon.h
-+++ /dev/null
-@@ -1,39 +0,0 @@
--/*
-- * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved.
-- *
-- * 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 the Free Software Foundation,
-- * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-- *
-- * Author: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
-- *
-- */
--
--/*
-- * Contains common content for all swapon tests
-- */
--
--#ifndef __LIBSWAPON_H__
--#define __LIBSWAPON_H__
--
--/*
-- * Make a swap file
-- */
--int make_swapfile(void (cleanup)(void), const char *swapfile, int safe);
--
--/*
-- * Check swapon/swapoff support status of filesystems or files
-- * we are testing on.
-- */
--void is_swap_supported(void (cleanup)(void), const char *filename);
--#endif /* __LIBSWAPON_H__ */
-Index: git/testcases/kernel/syscalls/swapoff/swapoff01.c
-===================================================================
---- git.orig/testcases/kernel/syscalls/swapoff/swapoff01.c
-+++ git/testcases/kernel/syscalls/swapoff/swapoff01.c
-@@ -25,7 +25,7 @@
- #include <stdlib.h>
- #include "config.h"
- #include "lapi/syscalls.h"
--#include "../swapon/libswapon.h"
-+#include "libswapon.h"
- 
- static void setup(void);
- static void cleanup(void);
-Index: git/testcases/kernel/syscalls/swapoff/swapoff02.c
-===================================================================
---- git.orig/testcases/kernel/syscalls/swapoff/swapoff02.c
-+++ git/testcases/kernel/syscalls/swapoff/swapoff02.c
-@@ -33,7 +33,7 @@
- #include "test.h"
- #include "lapi/syscalls.h"
- #include "safe_macros.h"
--#include "../swapon/libswapon.h"
-+#include "libswapon.h"
- 
- static void setup(void);
- static void cleanup(void);
-Index: git/include/libswapon.h
-===================================================================
---- /dev/null
-+++ git/include/libswapon.h
-@@ -0,0 +1,39 @@
-+/*
-+ * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved.
-+ *
-+ * 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 the Free Software Foundation,
-+ * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-+ *
-+ * Author: Stanislav Kholmanskikh <stanislav.kholmanskikh@oracle.com>
-+ *
-+ */
-+
-+/*
-+ * Contains common content for all swapon tests
-+ */
-+
-+#ifndef __LIBSWAPON_H__
-+#define __LIBSWAPON_H__
-+
-+/*
-+ * Make a swap file
-+ */
-+int make_swapfile(void (cleanup)(void), const char *swapfile, int safe);
-+
-+/*
-+ * Check swapon/swapoff support status of filesystems or files
-+ * we are testing on.
-+ */
-+void is_swap_supported(void (cleanup)(void), const char *filename);
-+#endif /* __LIBSWAPON_H__ */
diff --git a/poky/meta/recipes-extended/ltp/ltp_20210121.bb b/poky/meta/recipes-extended/ltp/ltp_20210524.bb
similarity index 92%
rename from poky/meta/recipes-extended/ltp/ltp_20210121.bb
rename to poky/meta/recipes-extended/ltp/ltp_20210524.bb
index ffda710..4328b1e 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20210121.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20210524.bb
@@ -27,19 +27,11 @@
 
 CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__"
 CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__"
-SRCREV = "4d005621edd109d119627eb9210b224a63bf22cb"
-
-# remove at next version upgrade or when output changes
-PR = "r4"
-HASHEQUIV_HASH_VERSION .= ".4"
+SRCREV = "0fb171f2beddaf64bd27597577c206c0f892b3cd"
 
 SRC_URI = "git://github.com/linux-test-project/ltp.git \
-           file://0007-Fix-test_proc_kill-hanging.patch \
            file://0001-Remove-OOM-tests-from-runtest-mm.patch \
-           file://determinism.patch \
-           file://0001-open_posix_testsuite-generate-makefiles.sh-Avoid-inc.patch \
-           file://0002-Makefile-Avoid-wildcard-determinism-issues.patch \
-           file://0003-syscalls-swapon-swapoff-Move-common-library-to-libs.patch \
+           file://disable_hanging_tests.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/parted/parted_3.4.bb b/poky/meta/recipes-extended/parted/parted_3.4.bb
index c15f5ae..fb58348 100644
--- a/poky/meta/recipes-extended/parted/parted_3.4.bb
+++ b/poky/meta/recipes-extended/parted/parted_3.4.bb
@@ -47,7 +47,7 @@
 	sed -e 's| ../parted||' -i $t/tests/*.sh
 }
 
-RDEPENDS_${PN}-ptest = "bash coreutils perl util-linux-losetup python3 make gawk e2fsprogs-mke2fs python3-core"
+RDEPENDS_${PN}-ptest = "bash coreutils perl util-linux-losetup python3 make gawk e2fsprogs-mke2fs python3-core dosfstools"
 RRECOMMENDS_${PN}-ptest = "kernel-module-scsi-debug"
 RDEPENDS_${PN}-ptest_append_libc-glibc = "\
         glibc-utils \
diff --git a/poky/meta/recipes-extended/rpcbind/rpcbind/rpcbind_add_option_to_fix_port_number.patch b/poky/meta/recipes-extended/rpcbind/rpcbind/rpcbind_add_option_to_fix_port_number.patch
index 434b6b1..535f9ce 100644
--- a/poky/meta/recipes-extended/rpcbind/rpcbind/rpcbind_add_option_to_fix_port_number.patch
+++ b/poky/meta/recipes-extended/rpcbind/rpcbind/rpcbind_add_option_to_fix_port_number.patch
@@ -15,7 +15,7 @@
  3 files changed, 26 insertions(+), 3 deletions(-)
 
 diff --git a/man/rpcbind.8 b/man/rpcbind.8
-index af6200f..2e6146b 100644
+index fbf0ace..66f7c08 100644
 --- a/man/rpcbind.8
 +++ b/man/rpcbind.8
 @@ -11,7 +11,7 @@
@@ -27,17 +27,17 @@
  .Sh DESCRIPTION
  The
  .Nm
-@@ -107,6 +107,8 @@ will automatically add
+@@ -96,6 +96,8 @@ will automatically add
  and if IPv6 is enabled,
  .Li ::1
  to the list.
 +.It Fl p
 +Bind for fixed UDP port number
- .It Fl i
- .Dq Insecure
- mode.
+ If no
+ .Fl h
+ option is specified,
 diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c
-index 8aef9e5..c2632a4 100644
+index 1743dad..07a1c75 100644
 --- a/src/rpcb_svc_com.c
 +++ b/src/rpcb_svc_com.c
 @@ -48,6 +48,7 @@
@@ -60,8 +60,8 @@
  	int fd;
  	struct rmtcallfd_list *rmt;
  	SVCXPRT *xprt;
-+	struct __rpc_sockinfo si;
-+	struct t_bind taddr;
++        struct __rpc_sockinfo si;
++        struct t_bind taddr;
  
  	if ((fd = __rpc_nconf2fd(nconf)) == -1) {
  		if (debugging)
@@ -70,23 +70,23 @@
  		return (-1);
  	}
 +
-+	if (fixed_port) {
-+		__rpc_fd2sockinfo(fd, &si);
-+		memset(&taddr, 0, sizeof(taddr));
-+		taddr.addr.maxlen = taddr.addr.len = si.si_alen;
-+		taddr.addr.buf = malloc(si.si_alen);
-+		if (taddr.addr.buf == NULL) {
-+			return -1;
-+		}
-+		*(unsigned short *)(&(taddr.addr.buf[0])) = si.si_af;
-+		*(unsigned short *)(&(taddr.addr.buf[2])) = htons(fixed_port);
-+		xprt = svc_tli_create(fd, nconf, &taddr, RPC_MAXDATASIZE, RPC_MAXDATASIZE);
-+	} else
++        if (fixed_port) {
++                __rpc_fd2sockinfo(fd, &si);
++                memset(&taddr, 0, sizeof(taddr));
++                taddr.addr.maxlen = taddr.addr.len = si.si_alen;
++                taddr.addr.buf = malloc(si.si_alen);
++                if (taddr.addr.buf == NULL) {
++                        return -1;
++                }
++                *(unsigned short *)(&(taddr.addr.buf[0])) = si.si_af;
++                *(unsigned short *)(&(taddr.addr.buf[2])) = htons(fixed_port);
++                xprt = svc_tli_create(fd, nconf, &taddr, RPC_MAXDATASIZE, RPC_MAXDATASIZE);
++        } else
  	xprt = svc_tli_create(fd, 0, (struct t_bind *) 0, 0, 0);
  	if (xprt == NULL) {
  		if (debugging)
 diff --git a/src/rpcbind.c b/src/rpcbind.c
-index 137011b..dc3d2d6 100644
+index 25d8a90..36a95b9 100644
 --- a/src/rpcbind.c
 +++ b/src/rpcbind.c
 @@ -111,6 +111,7 @@ int runasdaemon = 0;
@@ -97,7 +97,7 @@
  
  char **hosts = NULL;
  int nhosts = 0;
-@@ -869,7 +870,7 @@ parseargs(int argc, char *argv[])
+@@ -884,7 +885,7 @@ parseargs(int argc, char *argv[])
  {
  	int c;
  	oldstyle_local = 1;
@@ -106,25 +106,25 @@
  		switch (c) {
  		case 'a':
  			doabort = 1;	/* when debugging, do an abort on */
-@@ -887,6 +888,9 @@ parseargs(int argc, char *argv[])
+@@ -902,6 +903,9 @@ parseargs(int argc, char *argv[])
  			if (hosts[nhosts - 1] == NULL)
  				errx(1, "Out of memory");
  			break;
-+		case 'p':
-+			fixed_port = atoi(optarg);
-+			break;
++                case 'p':
++                        fixed_port = atoi(optarg);
++                        break;
  		case 'i':
  			insecure = 1;
  			break;
-@@ -905,7 +909,7 @@ parseargs(int argc, char *argv[])
+@@ -920,7 +924,7 @@ parseargs(int argc, char *argv[])
  			break;
  #endif
  		default:	/* error */
 -			fprintf(stderr,	"usage: rpcbind [-adhilswf]\n");
-+			fprintf(stderr,	"usage: rpcbind [-adhpilswf]\n");
++			fprintf(stderr, "usage: rpcbind [-adhpilswf]\n");
  			exit (1);
  		}
  	}
 -- 
-1.9.1
+2.25.1
 
diff --git a/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb b/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
similarity index 92%
rename from poky/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb
rename to poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
index ec8f9e4..b02638b 100644
--- a/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.5.bb
+++ b/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
@@ -16,8 +16,7 @@
            file://rpcbind_add_option_to_fix_port_number.patch \
            file://0001-systemd-use-EnvironmentFile.patch \
           "
-SRC_URI[md5sum] = "ed46f09b9c0fa2d49015f6431bc5ea7b"
-SRC_URI[sha256sum] = "2ce360683963b35c19c43f0ee2c7f18aa5b81ef41c3fdbd15ffcb00b8bffda7a"
+SRC_URI[sha256sum] = "5613746489cae5ae23a443bb85c05a11741a5f12c8f55d2bb5e83b9defeee8de"
 
 inherit autotools update-rc.d systemd pkgconfig update-alternatives
 
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch
index c860c71..2ee0be5 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Do-not-preserve-ownership-when-installing-example-jo.patch
@@ -1,21 +1,22 @@
-From bbc85a439672120fa1d36be79e959b28fe840919 Mon Sep 17 00:00:00 2001
+From f14d9d8184753dfbff99d7a51939145355627dcd Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Tue, 30 Jul 2019 18:38:03 +0200
 Subject: [PATCH] Do not preserve ownership when installing example jobs
 
 Upstream-Status: Pending
 Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
 ---
  Makefile | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index f36e57e..20488af 100644
+index 91d8ed4..72d0ca0 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -452,6 +452,6 @@ install: stress-ng stress-ng.1.gz
- 	mkdir -p ${DESTDIR}${MANDIR}
- 	cp stress-ng.1.gz ${DESTDIR}${MANDIR}
+@@ -502,6 +502,6 @@ else
+ 	cp stress-ng.1 ${DESTDIR}${MANDIR}
+ endif
  	mkdir -p ${DESTDIR}${JOBDIR}
 -	cp -rp example-jobs/*.job ${DESTDIR}${JOBDIR}
 +	cp -r example-jobs/*.job ${DESTDIR}${JOBDIR}
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.05.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.09.bb
similarity index 89%
rename from poky/meta/recipes-extended/stress-ng/stress-ng_0.12.05.bb
rename to poky/meta/recipes-extended/stress-ng/stress-ng_0.12.09.bb
index eb6bdb4..f7e5f03 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.05.bb
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.09.bb
@@ -9,7 +9,7 @@
            file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \
            file://no_daddr_t.patch \
            "
-SRC_URI[sha256sum] = "af7779aee38e6d94726ed7d5cf36384a64d50c86e42fff89c141d8609913f425"
+SRC_URI[sha256sum] = "cffac091082c7adbfec649be3c66941c3d622f8b96795656bcce2e20d669cfeb"
 
 DEPENDS = "coreutils-native"
 
diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.6p1.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.7.bb
similarity index 95%
rename from poky/meta/recipes-extended/sudo/sudo_1.9.6p1.bb
rename to poky/meta/recipes-extended/sudo/sudo_1.9.7.bb
index b333459..4685ca1 100644
--- a/poky/meta/recipes-extended/sudo/sudo_1.9.6p1.bb
+++ b/poky/meta/recipes-extended/sudo/sudo_1.9.7.bb
@@ -7,7 +7,7 @@
 
 PAM_SRC_URI = "file://sudo.pam"
 
-SRC_URI[sha256sum] = "a9e9cdc058fafeb9cd3ebfb864c81755e524d98aa022152763f25bce8ca3ca90"
+SRC_URI[sha256sum] = "2bbe7c2d6699b84d950ef9a43f09d4d967b8bc244b73bc095c4202068ddbe549"
 
 DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}"
diff --git a/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.2.bb b/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb
similarity index 96%
rename from poky/meta/recipes-extended/sysklogd/sysklogd_2.2.2.bb
rename to poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb
index 5dfeca5..be34ec7 100644
--- a/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.2.bb
+++ b/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb
@@ -14,7 +14,7 @@
            file://sysklogd \
            "
 
-SRCREV = "f507ed8ff3f1e9d71bb6f85acbf5d14b2fa4e5f7"
+SRCREV = "17b68ca89ab814bb623b615c4e7088d619ed8829"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-extended/unzip/unzip_6.0.bb b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
index ec69508..40f0346 100644
--- a/poky/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -33,6 +33,9 @@
 SRC_URI[md5sum] = "62b490407489521db863b523a7f86375"
 SRC_URI[sha256sum] = "036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37"
 
+# Patch from https://bugzilla.redhat.com/attachment.cgi?id=293893&action=diff applied to 6.0 source
+CVE_CHECK_WHITELIST += "CVE-2008-0888"
+
 # exclude version 5.5.2 which triggers a false positive
 UPSTREAM_CHECK_REGEX = "unzip(?P<pver>(?!552).+)\.tgz"
 
diff --git a/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb b/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
index 2787b27..69d5b2f 100644
--- a/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
+++ b/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
@@ -19,6 +19,9 @@
 
 S = "${WORKDIR}/git"
 
+# https://github.com/xinetd-org/xinetd/pull/10 is merged into this git tree revision
+CVE_CHECK_WHITELIST += "CVE-2013-4342"
+
 inherit autotools update-rc.d systemd pkgconfig
 
 SYSTEMD_SERVICE_${PN} = "xinetd.service"
diff --git a/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch b/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch
index b5ffb95..37c5ff0 100644
--- a/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch
+++ b/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch
@@ -1,4 +1,4 @@
-From 986c7917aef632745cb3388a86a2f62347d5a0a5 Mon Sep 17 00:00:00 2001
+From 77c7963c7a0f1c455f20520d5c7b1ec9b17a44fb Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 23 Dec 2020 19:14:32 +0100
 Subject: [PATCH] Makefile: sort all wildcard file list expansions
@@ -16,7 +16,7 @@
  3 files changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/programs/Makefile b/programs/Makefile
-index 936f3c80..b8200fae 100644
+index 599fb02f..2c416467 100644
 --- a/programs/Makefile
 +++ b/programs/Makefile
 @@ -74,11 +74,11 @@ ZSTDLEGACY_DIR := $(ZSTDDIR)/legacy
@@ -45,11 +45,11 @@
  
  ZSTD_ALL_SRC = $(ZSTDLIB_LOCAL_SRC) $(ZSTD_CLI_SRC)
 diff --git a/tests/Makefile b/tests/Makefile
-index f0605057..74a90b0f 100644
+index 85553007..b71cdba8 100644
 --- a/tests/Makefile
 +++ b/tests/Makefile
-@@ -49,7 +49,7 @@ ZSTD_FILES  := $(ZSTDDECOMP_FILES) $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES)
- ZBUFF_FILES := $(ZSTDDIR)/deprecated/*.c
+@@ -49,7 +49,7 @@ ZSTDDECOMP_FILES := $(ZSTDDIR)/decompress/*.c
+ ZSTD_FILES  := $(ZSTDDECOMP_FILES) $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES)
  ZDICT_FILES := $(ZSTDDIR)/dictBuilder/*.c
  
 -ZSTD_F1 := $(wildcard $(ZSTD_FILES))
@@ -57,7 +57,7 @@
  ZSTD_OBJ1 := $(subst $(ZSTDDIR)/common/,zstdm_,$(ZSTD_F1))
  ZSTD_OBJ2 := $(subst $(ZSTDDIR)/compress/,zstdc_,$(ZSTD_OBJ1))
  ZSTD_OBJ3 := $(subst $(ZSTDDIR)/decompress/,zstdd_,$(ZSTD_OBJ2))
-@@ -211,7 +211,7 @@ bigdict: $(ZSTDMT_OBJECTS) $(PRGDIR)/datagen.c bigdict.c
+@@ -202,7 +202,7 @@ bigdict: $(ZSTDMT_OBJECTS) $(PRGDIR)/datagen.c bigdict.c
  invalidDictionaries : $(ZSTD_OBJECTS) invalidDictionaries.c
  
  legacy : CPPFLAGS += -I$(ZSTDDIR)/legacy -DZSTD_LEGACY_SUPPORT=4
@@ -67,10 +67,10 @@
  decodecorpus : LDLIBS += -lm
  decodecorpus : $(filter-out zstdc_zstd_compress.o, $(ZSTD_OBJECTS)) $(ZDICT_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c decodecorpus.c
 diff --git a/tests/fuzz/Makefile b/tests/fuzz/Makefile
-index f3a561de..68a29ef0 100644
+index ccb574b7..b1cb2935 100644
 --- a/tests/fuzz/Makefile
 +++ b/tests/fuzz/Makefile
-@@ -58,7 +58,7 @@ FUZZ_SRC       := \
+@@ -62,7 +62,7 @@ FUZZ_SRC       := \
  	$(ZSTDCOMP_SRC) \
  	$(ZSTDDICT_SRC) \
  	$(ZSTDLEGACY_SRC)
diff --git a/poky/meta/recipes-extended/zstd/zstd/0001-MinGW-Build-Fixes.patch b/poky/meta/recipes-extended/zstd/zstd/0001-MinGW-Build-Fixes.patch
new file mode 100644
index 0000000..a0e00dc
--- /dev/null
+++ b/poky/meta/recipes-extended/zstd/zstd/0001-MinGW-Build-Fixes.patch
@@ -0,0 +1,193 @@
+From ab9a34c92eec815ef214470c927ddbe2e950e7e5 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <JPEWhacker@gmail.com>
+Date: Wed, 26 May 2021 09:15:40 -0500
+Subject: [PATCH] MinGW Build Fixes
+
+Fixes building on MinGW by
+ 1) Exporting the OS variable so that it is visible to sub-make
+    invocations
+ 2) Fixing the extension handling so that make correctly identifies when
+    targets need to be rebuilt. Without the correct handling, make would
+    rebuild the executable targets when running `make install` because
+    it couldn't find them with the correct extension.
+
+Upstream-Status: Submitted [https://github.com/facebook/zstd/pull/2685]
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ Makefile          |  1 +
+ programs/Makefile | 74 +++++++++++++++++++++++------------------------
+ 2 files changed, 38 insertions(+), 37 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index c1908f0a..f9ce9504 100644
+--- a/Makefile
++++ b/Makefile
+@@ -29,6 +29,7 @@ VOID = /dev/null
+ # fail on other tested distros (ubuntu, debian) even
+ # without manually specifying the TARGET_SYSTEM.
+ TARGET_SYSTEM ?= $(OS)
++export OS
+ 
+ ifneq (,$(filter Windows%,$(TARGET_SYSTEM)))
+   EXT =.exe
+diff --git a/programs/Makefile b/programs/Makefile
+index 599fb02f..79b45c83 100644
+--- a/programs/Makefile
++++ b/programs/Makefile
+@@ -209,37 +209,37 @@ SET_CACHE_DIRECTORY = \
+ 
+ 
+ .PHONY: all
+-all: zstd
++all: zstd$(EXT)
+ 
+ .PHONY: allVariants
+-allVariants: zstd zstd-compress zstd-decompress zstd-small zstd-nolegacy zstd-dictBuilder
++allVariants: zstd$(EXT) zstd-compress$(EXT) zstd-decompress$(EXT) zstd-small$(EXT) zstd-nolegacy$(EXT) zstd-dictBuilder$(EXT)
+ 
+ .PHONY: zstd  # must always be run
+-zstd : CPPFLAGS += $(THREAD_CPP) $(ZLIBCPP) $(LZMACPP) $(LZ4CPP)
+-zstd : LDFLAGS += $(THREAD_LD) $(DEBUGFLAGS_LD)
+-zstd : LDLIBS += $(ZLIBLD) $(LZMALD) $(LZ4LD)
+-zstd : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
++zstd$(EXT) : CPPFLAGS += $(THREAD_CPP) $(ZLIBCPP) $(LZMACPP) $(LZ4CPP)
++zstd$(EXT) : LDFLAGS += $(THREAD_LD) $(DEBUGFLAGS_LD)
++zstd$(EXT) : LDLIBS += $(ZLIBLD) $(LZMALD) $(LZ4LD)
++zstd$(EXT) : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
+ ifneq (,$(filter Windows%,$(OS)))
+-zstd : $(RES_FILE)
++zstd$(EXT) : $(RES_FILE)
+ endif
+ 
+ ifndef BUILD_DIR
+ # generate BUILD_DIR from flags
+ 
+-zstd:
++zstd$(EXT):
+ 	$(SET_CACHE_DIRECTORY)
+ 
+ else
+ # BUILD_DIR is defined
+ 
+ ZSTD_OBJ := $(addprefix $(BUILD_DIR)/, $(ZSTD_ALL_OBJ))
+-$(BUILD_DIR)/zstd : $(ZSTD_OBJ)
++$(BUILD_DIR)/zstd$(EXT) : $(ZSTD_OBJ)
+ 	@echo "$(THREAD_MSG)"
+ 	@echo "$(ZLIB_MSG)"
+ 	@echo "$(LZMA_MSG)"
+ 	@echo "$(LZ4_MSG)"
+ 	@echo LINK $@
+-	$(CC) $(FLAGS) $^ $(LDLIBS) -o $@$(EXT)
++	$(CC) $(FLAGS) $^ $(LDLIBS) -o $@
+ 
+ ifeq ($(HAVE_HASH),1)
+ SRCBIN_HASH = $(shell cat $(BUILD_DIR)/zstd 2> $(VOID) | $(HASH) | cut -f 1 -d " ")
+@@ -249,7 +249,7 @@ else
+ BIN_ISDIFFERENT = 1
+ endif
+ 
+-zstd : $(BUILD_DIR)/zstd
++zstd$(EXT) : $(BUILD_DIR)/zstd$(EXT)
+ 	if [ $(BIN_ISDIFFERENT) -eq 1 ]; then \
+ 		cp -f $< $@; \
+ 		echo zstd build completed; \
+@@ -263,46 +263,46 @@ endif  # BUILD_DIR
+ .PHONY: zstd-release
+ zstd-release: DEBUGFLAGS := -DBACKTRACE_ENABLE=0
+ zstd-release: DEBUGFLAGS_LD :=
+-zstd-release: zstd
++zstd-release: zstd$(EXT)
+ 
+-zstd32 : CPPFLAGS += $(THREAD_CPP)
+-zstd32 : LDFLAGS  += $(THREAD_LD)
+-zstd32 : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
++zstd32$(EXT) : CPPFLAGS += $(THREAD_CPP)
++zstd32$(EXT) : LDFLAGS  += $(THREAD_LD)
++zstd32$(EXT) : CPPFLAGS += -DZSTD_LEGACY_SUPPORT=$(ZSTD_LEGACY_SUPPORT)
+ ifneq (,$(filter Windows%,$(OS)))
+-zstd32 : $(RES32_FILE)
++zstd32$(EXT) : $(RES32_FILE)
+ endif
+-zstd32 : $(ZSTDLIB_FULL_SRC) $(ZSTD_CLI_SRC)
+-	$(CC) -m32 $(FLAGS) $^ -o $@$(EXT)
++zstd32$(EXT) : $(ZSTDLIB_FULL_SRC) $(ZSTD_CLI_SRC)
++	$(CC) -m32 $(FLAGS) $^ -o $@
+ 
+ ## zstd-nolegacy: same scope as zstd, with just support of legacy formats removed
+-zstd-nolegacy : LDFLAGS += $(THREAD_LD) $(ZLIBLD) $(LZMALD) $(LZ4LD) $(DEBUGFLAGS_LD)
+-zstd-nolegacy : $(ZSTDLIB_CORE_SRC) $(ZDICT_SRC) $(ZSTD_CLI_OBJ)
+-	$(CC) $(FLAGS) $^ -o $@$(EXT) $(LDFLAGS)
++zstd-nolegacy$(EXT) : LDFLAGS += $(THREAD_LD) $(ZLIBLD) $(LZMALD) $(LZ4LD) $(DEBUGFLAGS_LD)
++zstd-nolegacy$(EXT) : $(ZSTDLIB_CORE_SRC) $(ZDICT_SRC) $(ZSTD_CLI_OBJ)
++	$(CC) $(FLAGS) $^ -o $@ $(LDFLAGS)
+ 
+ .PHONY: zstd-nomt
+ zstd-nomt : THREAD_CPP :=
+ zstd-nomt : THREAD_LD  :=
+ zstd-nomt : THREAD_MSG := - multi-threading disabled
+-zstd-nomt : zstd
++zstd-nomt : zstd$(EXT)
+ 
+ .PHONY: zstd-nogz
+ zstd-nogz : ZLIBCPP :=
+ zstd-nogz : ZLIBLD  :=
+ zstd-nogz : ZLIB_MSG := - gzip support is disabled
+-zstd-nogz : zstd
++zstd-nogz : zstd$(EXT)
+ 
+ .PHONY: zstd-noxz
+ zstd-noxz : LZMACPP :=
+ zstd-noxz : LZMALD  :=
+ zstd-noxz : LZMA_MSG := - xz/lzma support is disabled
+-zstd-noxz : zstd
++zstd-noxz : zstd$(EXT)
+ 
+ ## zstd-dll: zstd executable linked to dynamic library libzstd (must have same version)
+ .PHONY: zstd-dll
+ zstd-dll : LDFLAGS+= -L$(ZSTDDIR)
+ zstd-dll : LDLIBS += -lzstd
+ zstd-dll : ZSTDLIB_LOCAL_SRC = xxhash.c
+-zstd-dll : zstd
++zstd-dll : zstd$(EXT)
+ 
+ 
+ ## zstd-pgo: zstd executable optimized with PGO.
+@@ -321,23 +321,23 @@ zstd-pgo :
+ 	$(MAKE) zstd MOREFLAGS=-fprofile-use
+ 
+ ## zstd-small: minimal target, supporting only zstd compression and decompression. no bench. no legacy. no other format.
+-zstd-small: CFLAGS = -Os -s
+-zstd-frugal zstd-small: $(ZSTDLIB_CORE_SRC) zstdcli.c util.c timefn.c fileio.c
+-	$(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOTRACE $^ -o $@$(EXT)
++zstd-small$(EXT): CFLAGS = -Os -s
++zstd-frugal$(EXT) zstd-small$(EXT): $(ZSTDLIB_CORE_SRC) zstdcli.c util.c timefn.c fileio.c
++	$(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOTRACE $^ -o $@
+ 
+-zstd-decompress: $(ZSTDLIB_COMMON_C) $(ZSTDLIB_DECOMPRESS_C) zstdcli.c util.c timefn.c fileio.c
+-	$(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOCOMPRESS -DZSTD_NOTRACE $^ -o $@$(EXT)
++zstd-decompress$(EXT): $(ZSTDLIB_COMMON_C) $(ZSTDLIB_DECOMPRESS_C) zstdcli.c util.c timefn.c fileio.c
++	$(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOCOMPRESS -DZSTD_NOTRACE $^ -o $@
+ 
+-zstd-compress: $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C) zstdcli.c util.c timefn.c fileio.c
+-	$(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NODECOMPRESS -DZSTD_NOTRACE $^ -o $@$(EXT)
++zstd-compress$(EXT): $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C) zstdcli.c util.c timefn.c fileio.c
++	$(CC) $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NODECOMPRESS -DZSTD_NOTRACE $^ -o $@
+ 
+ ## zstd-dictBuilder: executable supporting dictionary creation and compression (only)
+-zstd-dictBuilder: CPPFLAGS += -DZSTD_NOBENCH -DZSTD_NODECOMPRESS -DZSTD_NOTRACE
+-zstd-dictBuilder: $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C) $(ZDICT_SRC) zstdcli.c util.c timefn.c fileio.c dibio.c
+-	$(CC) $(FLAGS) $^ -o $@$(EXT)
++zstd-dictBuilder$(EXT): CPPFLAGS += -DZSTD_NOBENCH -DZSTD_NODECOMPRESS -DZSTD_NOTRACE
++zstd-dictBuilder$(EXT): $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C) $(ZDICT_SRC) zstdcli.c util.c timefn.c fileio.c dibio.c
++	$(CC) $(FLAGS) $^ -o $@
+ 
+-zstdmt: zstd
+-	ln -sf zstd zstdmt
++zstdmt$(EXT): zstd$(EXT)
++	ln -sf zstd$(EXT) zstdmt$(EXT)
+ 
+ .PHONY: generate_res
+ generate_res: $(RES64_FILE) $(RES32_FILE)
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-extended/zstd/zstd_1.4.9.bb b/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
similarity index 92%
rename from poky/meta/recipes-extended/zstd/zstd_1.4.9.bb
rename to poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
index b86fdf8..806edb6 100644
--- a/poky/meta/recipes-extended/zstd/zstd_1.4.9.bb
+++ b/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
@@ -11,9 +11,10 @@
 
 SRC_URI = "git://github.com/facebook/zstd.git;branch=release \
            file://0001-Makefile-sort-all-wildcard-file-list-expansions.patch \
+           file://0001-MinGW-Build-Fixes.patch \
            "
 
-SRCREV = "e4558ffd1dc49399faf4ee5d85abed4386b4dcf5"
+SRCREV = "a488ba114ec17ea1054b9057c26a046fc122b3b6"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.38.3.bb b/poky/meta/recipes-gnome/epiphany/epiphany_40.1.bb
similarity index 77%
rename from poky/meta/recipes-gnome/epiphany/epiphany_3.38.3.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_40.1.bb
index ce24336..2242e9d 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_3.38.3.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_40.1.bb
@@ -8,18 +8,19 @@
 
 DEPENDS = "libsoup-2.4 webkitgtk gtk+3 iso-codes avahi libnotify gcr gnutls \
 	   gsettings-desktop-schemas libxml2-native \
-	   glib-2.0 glib-2.0-native json-glib libdazzle libhandy libportal"
+	   glib-2.0 glib-2.0-native json-glib libdazzle libhandy libportal \
+	   libarchive"
 
 GNOMEBASEBUILDCLASS = "meson"
-inherit gnomebase gsettings features_check upstream-version-is-even gettext mime-xdg
+inherit gnomebase gsettings features_check gettext mime-xdg
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
-SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
+SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@oe.utils.trim_version("${PV}", 1)}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
            file://0002-help-meson.build-disable-the-use-of-yelp.patch \
            file://migrator.patch \
            file://distributor.patch \
            "
-SRC_URI[archive.sha256sum] = "ce62c1fa3e442a9d6131fc884a6bc9a65cf06224c30d649c49624c2ebcb0d275"
+SRC_URI[archive.sha256sum] = "696a426b1702774af8d0f056828f5d9ff9350507aba7f4c7e3e499f07a581ad0"
 
 # Developer mode enables debugging
 PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
diff --git a/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch b/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
index 118b5d1..a6c4f92 100644
--- a/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
+++ b/poky/meta/recipes-gnome/epiphany/files/0002-help-meson.build-disable-the-use-of-yelp.patch
@@ -1,4 +1,4 @@
-From 3725c254f1d1d8204fa299e71c1e2bfd0ff6a634 Mon Sep 17 00:00:00 2001
+From 77c9f87dc2b3ad0854a678e234e22dfb31902b82 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Wed, 31 Jan 2018 15:50:38 +0200
 Subject: [PATCH] help/meson.build: disable the use of yelp
@@ -13,11 +13,11 @@
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/help/meson.build b/help/meson.build
-index 484860c..d9b2e80 100644
+index ff324dd..f5e421d 100644
 --- a/help/meson.build
 +++ b/help/meson.build
-@@ -32,7 +32,7 @@ help_media = [
-   'media/epiphany-private-3-36.png'
+@@ -31,7 +31,7 @@ help_media = [
+   'media/org.gnome.Epiphany.svg'
  ]
  
 -gnome.yelp(meson.project_name(),
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch
new file mode 100644
index 0000000..a8206a4
--- /dev/null
+++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Add-use_prebuilt_tools-option.patch
@@ -0,0 +1,171 @@
+From ba73bb0f3d2023839bc3b681c49b7ec1192cceb4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sat, 8 May 2021 21:58:54 +0200
+Subject: [PATCH] Add use_prebuilt_tools option
+
+This allows using the gdk-pixbuf tools from the host to
+build and install tests in a cross-compile scenarion.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/merge_requests/119]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ gdk-pixbuf/meson.build  | 11 +++++++++--
+ meson.build             |  6 +++---
+ meson_options.txt       |  4 ++++
+ tests/meson.build       | 16 ++++++++--------
+ thumbnailer/meson.build | 24 ++++++++++++++++++------
+ 5 files changed, 42 insertions(+), 19 deletions(-)
+
+diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build
+index 8b0590b..7331491 100644
+--- a/gdk-pixbuf/meson.build
++++ b/gdk-pixbuf/meson.build
+@@ -342,13 +342,20 @@ foreach bin: gdkpixbuf_bin
+                    include_directories: [ root_inc, gdk_pixbuf_inc ],
+                    c_args: common_cflags + gdk_pixbuf_cflags,
+                    install: true)
+-  meson.override_find_program(bin_name, bin)
++  if not get_option('use_prebuilt_tools')
++      meson.override_find_program(bin_name, bin)
++  endif
+ 
+   # Used in tests
+   set_variable(bin_name.underscorify(), bin)
+ endforeach
+ 
+-if not meson.is_cross_build()
++if get_option('use_prebuilt_tools')
++    gdk_pixbuf_query_loaders = find_program('gdk-pixbuf-query-loaders', required: true)
++    gdk_pixbuf_pixdata = find_program('gdk-pixbuf-pixdata', required: true)
++endif
++
++if not meson.is_cross_build() or get_option('use_prebuilt_tools')
+   # The 'loaders.cache' used for testing, so we don't accidentally
+   # load the installed cache; we always build it by default
+   loaders_cache = custom_target('loaders.cache',
+diff --git a/meson.build b/meson.build
+index 7a1409b..0bc73eb 100644
+--- a/meson.build
++++ b/meson.build
+@@ -403,16 +403,16 @@ subdir('gdk-pixbuf')
+ # i18n
+ subdir('po')
+ 
+-if not meson.is_cross_build()
++if not meson.is_cross_build() or get_option('use_prebuilt_tools')
+   subdir('tests')
+-  subdir('thumbnailer')
+ endif
++subdir('thumbnailer')
+ 
+ # Documentation
+ build_docs = get_option('gtk_doc') or get_option('docs')
+ subdir('docs')
+ 
+-if not meson.is_cross_build()
++if not meson.is_cross_build() or get_option('use_prebuilt_tools')
+   meson.add_install_script('build-aux/post-install.py',
+     gdk_pixbuf_bindir,
+     gdk_pixbuf_libdir,
+diff --git a/meson_options.txt b/meson_options.txt
+index 0ee6718..cc29855 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -49,4 +49,8 @@ option('gio_sniffing',
+        description: 'Perform file type detection using GIO (Unused on MacOS and Windows)',
+        type: 'boolean',
+        value: true)
++option('use_prebuilt_tools',
++       description: 'Use prebuilt gdk-pixbuf tools from the host for cross-compilation',
++       type: 'boolean',
++       value: false)
+ 
+diff --git a/tests/meson.build b/tests/meson.build
+index 7c6cb11..1029e6a 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -5,6 +5,12 @@
+ # $PATH. Ideally we should use gnome.compile_resources() and let Meson deal with
+ # this problem: See https://github.com/mesonbuild/meson/issues/8266.
+ if enabled_loaders.contains('png') and host_system != 'windows'
++
++  resources_deps = [loaders_cache,]
++  if not get_option('use_prebuilt_tools')
++    resources_deps += [gdk_pixbuf_pixdata,]
++  endif
++
+   # Resources; we cannot use gnome.compile_resources() here, because we need to
+   # override the environment in order to use the utilities we just built instead
+   # of the system ones
+@@ -21,10 +27,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
+       '@INPUT@',
+       '@OUTPUT@',
+     ],
+-    depends: [
+-      gdk_pixbuf_pixdata,
+-      loaders_cache,
+-    ],
++    depends: resources_deps,
+   )
+ 
+   resources_h = custom_target('resources.h',
+@@ -40,10 +43,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
+       '@INPUT@',
+       '@OUTPUT@',
+     ],
+-    depends: [
+-      gdk_pixbuf_pixdata,
+-      loaders_cache,
+-    ],
++    depends: resources_deps,
+   )
+   no_resources = false
+ else
+diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
+index b6a206d..9336c21 100644
+--- a/thumbnailer/meson.build
++++ b/thumbnailer/meson.build
+@@ -6,13 +6,29 @@ bin = executable('gdk-pixbuf-thumbnailer',
+            ],
+            dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ],
+            install: true)
+-meson.override_find_program('gdk-pixbuf-thumbnailer', bin)
++if not get_option('use_prebuilt_tools')
++    meson.override_find_program('gdk-pixbuf-thumbnailer', bin)
++endif
+ 
+ gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
+                                          'gdk-pixbuf-print-mime-types.c',
++                                         install: true,
+                                          c_args: common_cflags,
+                                          dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
+ 
++if get_option('use_prebuilt_tools')
++    gdk_pixbuf_print_mime_types = find_program('gdk-pixbuf-print-mime-types', required: true)
++endif
++
++thumbnailer_deps = [loaders_cache,]
++
++if not get_option('use_prebuilt_tools')
++    thumbnailer_deps += [
++        gdk_pixbuf_print_mime_types,
++        gdk_pixbuf_pixdata,
++    ]
++endif
++
+ custom_target('thumbnailer',
+               input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
+               output: 'gdk-pixbuf-thumbnailer.thumbnailer',
+@@ -25,10 +41,6 @@ custom_target('thumbnailer',
+                 '@INPUT@',
+                 '@OUTPUT@',
+               ],
+-              depends: [
+-                gdk_pixbuf_print_mime_types,
+-                gdk_pixbuf_pixdata,
+-                loaders_cache,
+-              ],
++              depends: thumbnailer_deps,
+               install: true,
+               install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch
deleted file mode 100644
index e461404..0000000
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Fix-a-couple-of-decisions-around-cross-compilation.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From be8a47e0c21e5577d4f5669d339dfec6299b25be Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 14 Feb 2019 18:06:25 +0100
-Subject: [PATCH] Generate loaders.cache using a native tool when
- cross-compiling
-
-Otherwise meson would attempt to run a target binary.
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- gdk-pixbuf/meson.build | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/gdk-pixbuf/meson.build b/gdk-pixbuf/meson.build
-index 5cddbec..78c8bd3 100644
---- a/gdk-pixbuf/meson.build
-+++ b/gdk-pixbuf/meson.build
-@@ -324,8 +324,16 @@ if not meson.is_cross_build()
-                                 build_by_default: true)
-   loaders_dep = declare_dependency(sources: [ loaders_cache ])
- else
--  loaders_cache = []
--  loaders_dep = declare_dependency()
-+  loaders_cache = custom_target('loaders.cache',
-+                                output: 'loaders.cache',
-+                                capture: true,
-+                                command: [
-+                                  'gdk-pixbuf-query-loaders',
-+                                  dynamic_loaders,
-+                                ],
-+                                depends: dynamic_loaders_dep,
-+                                build_by_default: true)
-+  loaders_dep = declare_dependency(sources: [ loaders_cache ])
- endif
- 
- pkgconfig = import('pkgconfig')
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch
deleted file mode 100644
index 2aa9164..0000000
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From dcaf3106e2cca27f728a8bd26127430500a1136e Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 22 Feb 2019 13:22:06 +0100
-Subject: [PATCH] Work-around thumbnailer and pixdata cross-compile failure
-
-Use native gdk-pixbuf-print-mime-types and gdk-pixbuf-pixdata
-when generating the thumbnail metadata and resources.
-
-This works but the mime types will come from native
-loader.cache (which will only contain in-tree loaders), not from the
-target loader.cache.
-
-The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057
-
-Upstream-Status: Inappropriate [workaround]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- tests/meson.build       | 11 +++++++++--
- thumbnailer/meson.build | 23 ++++++++++++++++++++++-
- 2 files changed, 31 insertions(+), 3 deletions(-)
-
-diff --git a/tests/meson.build b/tests/meson.build
-index 7c6cb11..07121f1 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -8,13 +8,20 @@ if enabled_loaders.contains('png') and host_system != 'windows'
-   # Resources; we cannot use gnome.compile_resources() here, because we need to
-   # override the environment in order to use the utilities we just built instead
-   # of the system ones
-+
-+  if not meson.is_cross_build()
-+  pixdata_binary = gdk_pixbuf_pixdata.full_path()
-+  else
-+  pixdata_binary = 'gdk-pixbuf-pixdata'
-+  endif
-+
-   resources_c = custom_target('resources.c',
-     input: 'resources.gresource.xml',
-     output: 'resources.c',
-     command: [
-       gen_resources,
-       '--glib-compile-resources=@0@'.format(glib_compile_resources.full_path()),
--      '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-+      '--pixdata=@0@'.format(pixdata_binary),
-       '--loaders=@0@'.format(loaders_cache.full_path()),
-       '--sourcedir=@0@'.format(meson.current_source_dir()),
-       '--source',
-@@ -33,7 +40,7 @@ if enabled_loaders.contains('png') and host_system != 'windows'
-     command: [
-       gen_resources,
-       '--glib-compile-resources=@0@'.format(glib_compile_resources.full_path()),
--      '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-+      '--pixdata=@0@'.format(pixdata_binary),
-       '--loaders=@0@'.format(loaders_cache.full_path()),
-       '--sourcedir=@0@'.format(meson.current_source_dir()),
-       '--header',
-diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
-index 8c741e0..5a3b52a 100644
---- a/thumbnailer/meson.build
-+++ b/thumbnailer/meson.build
-@@ -14,7 +14,27 @@ gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
-                                          install: true,
-                                          dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
- 
--custom_target('thumbnailer',
-+if meson.is_cross_build()
-+    custom_target('thumbnailer',
-+              input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
-+              output: 'gdk-pixbuf-thumbnailer.thumbnailer',
-+              command: [
-+                gen_thumbnailer,
-+                '--printer=gdk-pixbuf-print-mime-types',
-+                '--pixdata=@0@'.format(gdk_pixbuf_pixdata.full_path()),
-+                '--loaders=@0@'.format(loaders_cache.full_path()),
-+                '--bindir=@0@'.format(gdk_pixbuf_bindir),
-+                '@INPUT@',
-+                '@OUTPUT@',
-+              ],
-+              depends: [
-+                gdk_pixbuf_print_mime_types,
-+                gdk_pixbuf_pixdata,
-+              ],
-+              install: true,
-+              install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
-+else
-+    custom_target('thumbnailer',
-               input: 'gdk-pixbuf-thumbnailer.thumbnailer.in',
-               output: 'gdk-pixbuf-thumbnailer.thumbnailer',
-               command: [
-@@ -33,3 +53,4 @@ custom_target('thumbnailer',
-               ],
-               install: true,
-               install_dir: join_paths(gdk_pixbuf_datadir, 'thumbnailers'))
-+endif
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch
deleted file mode 100644
index 110b32a..0000000
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0001-Work-around-thumbnailer-cross-compile-failure.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 8c7ced988def52654946458a3779e383b27f14f7 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 14 Feb 2019 17:56:10 +0100
-Subject: [PATCH] Work-around thumbnailer cross-compile failure
-
-Install gdk-pixbuf-print-mime-types that's needed for thumbnail
-metadata generation.
-
-The upstream issue is https://bugzilla.gnome.org/show_bug.cgi?id=779057
-
-Upstream-Status: Inappropriate [workaround]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- thumbnailer/meson.build | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/thumbnailer/meson.build b/thumbnailer/meson.build
-index e801144..aaafec8 100644
---- a/thumbnailer/meson.build
-+++ b/thumbnailer/meson.build
-@@ -10,6 +10,7 @@ executable('gdk-pixbuf-thumbnailer',
- gdk_pixbuf_print_mime_types = executable('gdk-pixbuf-print-mime-types',
-                                          'gdk-pixbuf-print-mime-types.c',
-                                          c_args: common_cflags,
-+                                         install: true,
-                                          dependencies: gdk_pixbuf_deps + [ gdkpixbuf_dep ])
- 
- custom_target('thumbnailer',
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
deleted file mode 100644
index cd9f88b..0000000
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From d02a8e202d2fe5caf3449683e0ccdf84a482a325 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Wed, 5 Jun 2019 14:17:55 +0200
-Subject: [PATCH] Build thumbnailer and tests also in cross builds.
-
-Upstream-Status: Inappropriate [relies on oe-core specific hacks]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- meson.build | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 73034d1..d114016 100644
---- a/meson.build
-+++ b/meson.build
-@@ -378,10 +378,8 @@ subdir('gdk-pixbuf')
- # i18n
- subdir('po')
- 
--if not meson.is_cross_build()
--  subdir('tests')
--  subdir('thumbnailer')
--endif
-+subdir('tests')
-+subdir('thumbnailer')
- 
- # Documentation
- build_docs = get_option('gtk_doc') or get_option('docs')
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
index 2734a11..50d58ef 100644
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
+++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.42.6.bb
@@ -20,15 +20,12 @@
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
            file://run-ptest \
            file://fatal-loader.patch \
-           file://0001-Work-around-thumbnailer-cross-compile-failure.patch \
-           file://0001-Fix-a-couple-of-decisions-around-cross-compilation.patch \
-           file://0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch \
-           file://0001-Work-around-thumbnailer-and-pixdata-cross-compile-fa.patch \
+           file://0001-Add-use_prebuilt_tools-option.patch \
            "
 
 SRC_URI[sha256sum] = "c4a6b75b7ed8f58ca48da830b9fa00ed96d668d3ab4b1f723dcf902f78bde77f"
 
-inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gtk-doc lib_package
+inherit meson pkgconfig gettext pixbufcache ptest-gnome upstream-version-is-even gobject-introspection gi-docgen lib_package
 
 GIR_MESON_OPTION = 'introspection'
 GIR_MESON_ENABLE_FLAG = "enabled"
@@ -47,6 +44,14 @@
 PACKAGECONFIG[tiff] = "-Dtiff=true,-Dtiff=false,tiff"
 PACKAGECONFIG[tests] = "-Dinstalled_tests=true,-Dinstalled_tests=false"
 
+EXTRA_OEMESON_class-target = " \
+    -Duse_prebuilt_tools=true \
+"
+
+EXTRA_OEMESON_class-nativesdk = " \
+    -Duse_prebuilt_tools=true \
+"
+
 PACKAGES =+ "${PN}-xlib"
 
 # For GIO image type sniffing
diff --git a/poky/meta/recipes-gnome/gi-docgen/gi-docgen_git.bb b/poky/meta/recipes-gnome/gi-docgen/gi-docgen_git.bb
new file mode 100644
index 0000000..b6721dc
--- /dev/null
+++ b/poky/meta/recipes-gnome/gi-docgen/gi-docgen_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Documentation tool for GObject-based libraries"
+DESCRIPTION = "GI-DocGen is a document generator for GObject-based libraries. GObject is \
+the base type system of the GNOME project. GI-Docgen reuses the \
+introspection data generated by GObject-based libraries to generate the API \
+reference of these libraries, as well as other ancillary documentation."
+HOMEPAGE = "https://gnome.pages.gitlab.gnome.org/gi-docgen/"
+
+LICENSE = "GPLv3+ & Apache-2.0"
+LIC_FILES_CHKSUM = "file://gi-docgen.py;beginline=1;endline=5;md5=2dc0f1f01202478cfe813c0e7f80b326"
+
+SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main"
+
+PV = "2021.6"
+SRCREV = "cb76996ba9ef7a1634ab9bde30c77c3bbb47c8db"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS_${PN} += "python3-asyncio python3-core python3-jinja2 python3-json python3-markdown python3-markupsafe python3-pygments python3-toml python3-typogrify python3-xml"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
index 6cde6ff..61927c0 100644
--- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
+++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.34.3.bb
@@ -8,7 +8,7 @@
                     file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
                     file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even
+inherit allarch autotools pkgconfig gettext gtk-icon-cache
 
 MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
diff --git a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
index a36a2b1..672fbd2 100644
--- a/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
+++ b/poky/meta/recipes-gnome/gnome/adwaita-icon-theme_3.38.0.bb
@@ -10,7 +10,7 @@
                     file://COPYING_CCBYSA3;md5=96143d33de3a79321b1006c4e8ed07e7 \
                     file://COPYING_LGPL;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-inherit allarch autotools pkgconfig gettext gtk-icon-cache upstream-version-is-even
+inherit allarch autotools pkgconfig gettext gtk-icon-cache
 
 MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz \
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
index 185ebc1..9071245 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-Relocate-the-repository-directory-for-native-builds.patch
@@ -1,4 +1,4 @@
-From 41c3ee549787333a073a3ce6303efef625c74dce Mon Sep 17 00:00:00 2001
+From 5c606356523431769dffb02fffd2fbca8fb20232 Mon Sep 17 00:00:00 2001
 From: Sascha Silbe <x-yo17@se-silbe.de>
 Date: Fri, 8 Jun 2018 13:55:10 +0200
 Subject: [PATCH] Relocate the repository directory for native builds
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-exclude-girepo_dep-if-introspection-data.patch b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-exclude-girepo_dep-if-introspection-data.patch
deleted file mode 100644
index 8fba012..0000000
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection/0001-meson.build-exclude-girepo_dep-if-introspection-data.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ef5446af0ddad6a341b47957097ac40c6cb5e6d3 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 20 Oct 2020 22:40:14 +0200
-Subject: [PATCH] meson.build: exclude girepo_dep if introspection data is
- disabled
-
-Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/248]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 14af2b1..a3c27c3 100644
---- a/meson.build
-+++ b/meson.build
-@@ -283,7 +283,7 @@ pkg.generate(
- # FIXME: meson.override_dependency() and declare_dependency()'s variable arguments
- # are new in Meson 0.54.0, older versions of Meson won't be able to use g-i as
- # subproject anyway
--if meson.version().version_compare('>=0.54.0')
-+if meson.version().version_compare('>=0.54.0') and get_option('build_introspection_data') == true
-   girepo_dep = declare_dependency(
-     sources: typelibs,
-     dependencies: girepo_dep,
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.66.1.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb
similarity index 97%
rename from poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.66.1.bb
rename to poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb
index ebac8d3..4c986a5 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.66.1.bb
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb
@@ -15,10 +15,9 @@
 
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${@oe.utils.trim_version("${PV}", 2)}/${BPN}-${PV}.tar.xz \
            file://0001-giscanner-ignore-error-return-codes-from-ldd-wrapper.patch \
-           file://0001-meson.build-exclude-girepo_dep-if-introspection-data.patch \
            "
 
-SRC_URI[sha256sum] = "dd44a55ee5f426ea22b6b89624708f9e8d53f5cc94e5485c15c87cb30e06161d"
+SRC_URI[sha256sum] = "d229242481a201b84a0c66716de1752bca41db4133672cfcfb37c93eb6e54a27"
 
 SRC_URI_append_class-native = " file://0001-Relocate-the-repository-directory-for-native-builds.patch"
 
diff --git a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.0.bb b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_40.0.bb
similarity index 73%
rename from poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.0.bb
rename to poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_40.0.bb
index 3468119..89751a8 100644
--- a/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_3.38.0.bb
+++ b/poky/meta/recipes-gnome/gsettings-desktop-schemas/gsettings-desktop-schemas_40.0.bb
@@ -11,6 +11,6 @@
 
 GNOMEBASEBUILDCLASS = "meson"
 
-inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even
+inherit gnomebase gsettings gobject-introspection gettext
 
-SRC_URI[archive.sha256sum] = "5704c8266004b296036671f223c705dc046aa694a1b1abb87c67e7d2747a8c67"
+SRC_URI[archive.sha256sum] = "f1b83bf023c0261eacd0ed36066b76f4a520bbcb14bb69c402b7959257125685"
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.25.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.29.bb
similarity index 89%
rename from poky/meta/recipes-gnome/gtk+/gtk+3_3.24.25.bb
rename to poky/meta/recipes-gnome/gtk+/gtk+3_3.24.29.bb
index 8c5426f..031fbb6 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.25.bb
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.29.bb
@@ -8,7 +8,7 @@
            file://0003-Add-disable-opengl-configure-option.patch \
            file://link_fribidi.patch \
            "
-SRC_URI[sha256sum] = "87e26b111d3b8a85ff218980a56f3e814257b8dd11e5c4d9a2803b423b08297c"
+SRC_URI[sha256sum] = "f57ec4ade8f15cab0c23a80dcaee85b876e70a8823d9105f067ce335a8268caa"
 
 S = "${WORKDIR}/gtk+-${PV}"
 
diff --git a/poky/meta/recipes-gnome/libgudev/files/0001-gudevenumtypes-make-deterministic.patch b/poky/meta/recipes-gnome/libgudev/files/0001-gudevenumtypes-make-deterministic.patch
new file mode 100644
index 0000000..aaec9cd
--- /dev/null
+++ b/poky/meta/recipes-gnome/libgudev/files/0001-gudevenumtypes-make-deterministic.patch
@@ -0,0 +1,44 @@
+From 078c0db2bc3adf7c665190ee7a9263d7fd1ec618 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 29 Apr 2021 13:06:12 +0200
+Subject: [PATCH] gudevenumtypes: make deterministic
+
+@filename@ writes the full path to the generated file,
+which can vary in CI systems and make outputs non-reproducible.
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libgudev/-/merge_requests/15]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gudev/gudevenumtypes.c.template | 2 +-
+ gudev/gudevenumtypes.h.template | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gudev/gudevenumtypes.c.template b/gudev/gudevenumtypes.c.template
+index fc30b39..4918f7e 100644
+--- a/gudev/gudevenumtypes.c.template
++++ b/gudev/gudevenumtypes.c.template
+@@ -4,7 +4,7 @@
+ /*** END file-header ***/
+ 
+ /*** BEGIN file-production ***/
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+ 
+ /*** BEGIN value-header ***/
+diff --git a/gudev/gudevenumtypes.h.template b/gudev/gudevenumtypes.h.template
+index d0ab339..79bf7c4 100644
+--- a/gudev/gudevenumtypes.h.template
++++ b/gudev/gudevenumtypes.h.template
+@@ -9,7 +9,7 @@ G_BEGIN_DECLS
+ 
+ /*** BEGIN file-production ***/
+ 
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+ 
+ /*** BEGIN value-header ***/
+-- 
+2.30.2
+
diff --git a/poky/meta/recipes-gnome/libgudev/libgudev_234.bb b/poky/meta/recipes-gnome/libgudev/libgudev_236.bb
similarity index 70%
rename from poky/meta/recipes-gnome/libgudev/libgudev_234.bb
rename to poky/meta/recipes-gnome/libgudev/libgudev_236.bb
index 9cea36d..daa578d 100644
--- a/poky/meta/recipes-gnome/libgudev/libgudev_234.bb
+++ b/poky/meta/recipes-gnome/libgudev/libgudev_236.bb
@@ -5,18 +5,24 @@
 introspection support."
 HOMEPAGE = "https://wiki.gnome.org/Projects/libgudev"
 BUGTRACKER = "https://gitlab.gnome.org/GNOME/libgudev/issues"
-SRC_URI[archive.sha256sum] = "1baeacacf0db42fa073ad5183d1decce9317857416a2b0f82ce3370d711a2e37"
+SRC_URI[archive.sha256sum] = "e50369d06d594bae615eb7aeb787de304ebaad07a26d1043cef8e9c7ab7c9524"
+
+SRC_URI_append = " file://0001-gudevenumtypes-make-deterministic.patch"
 
 DEPENDS = "glib-2.0 udev"
 
-EXTRA_OECONF = "--disable-umockdev"
-
 RCONFLICTS_${PN} = "systemd (<= 220)"
 
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
+GNOMEBASEBUILDCLASS = "meson"
 inherit gnomebase gobject-introspection gtk-doc
 
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
 UPSTREAM_CHECK_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgudev/"
 UPSTREAM_CHECK_REGEX = "(?P<pver>(\d+))"
diff --git a/poky/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb b/poky/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
index 1ff4b2e..d2be715 100644
--- a/poky/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
+++ b/poky/meta/recipes-gnome/libnotify/libnotify_0.7.9.bb
@@ -9,15 +9,18 @@
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
 
-DEPENDS = "dbus gtk+3 glib-2.0"
+DEPENDS = "dbus glib-2.0 gdk-pixbuf"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gtk+3"
 
 GNOMEBASEBUILDCLASS = "meson"
 GTKDOC_MESON_OPTION = "gtk_doc"
 GIR_MESON_ENABLE_FLAG = "enabled"
 GIR_MESON_DISABLE_FLAG = "disabled"
 inherit gnomebase gtk-doc features_check gobject-introspection
-# depends on gtk+3
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+# depends on gtk+3 if tests are enabled
+ANY_OF_DISTRO_FEATURES = "${@bb.utils.contains('PACKAGECONFIG', 'tests', '${GTK3DISTROFEATURES}', '', d)}"
 
 SRC_URI[archive.md5sum] = "ccd9c53364174cc8d13e18a1988faa76"
 SRC_URI[archive.sha256sum] = "66c0517ed16df7af258e83208faaf5069727dfd66995c4bbc51c16954d674761"
@@ -30,3 +33,6 @@
 RPROVIDES_${PN} += "libnotify3"
 RCONFLICTS_${PN} += "libnotify3"
 RREPLACES_${PN} += "libnotify3"
+
+# -7381 is specific to the NodeJS bindings
+CVE_CHECK_WHITELIST += "CVE-2013-7381"
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
index acdbc1f..59de80a 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
+++ b/poky/meta/recipes-gnome/librsvg/librsvg_2.40.21.bb
@@ -25,6 +25,9 @@
 
 SRC_URI[archive.sha256sum] = "f7628905f1cada84e87e2b14883ed57d8094dca3281d5bcb24ece4279e9a92ba"
 
+# Issue only on windows
+CVE_CHECK_WHITELIST += "CVE-2018-1000041"
+
 CACHED_CONFIGUREVARS = "ac_cv_path_GDK_PIXBUF_QUERYLOADERS=${STAGING_LIBDIR_NATIVE}/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders"
 
 PACKAGECONFIG ??= "gdkpixbuf"
diff --git a/poky/meta/recipes-graphics/builder/builder_0.1.bb b/poky/meta/recipes-graphics/builder/builder_0.1.bb
index 0a64c31..9d5cd8c 100644
--- a/poky/meta/recipes-graphics/builder/builder_0.1.bb
+++ b/poky/meta/recipes-graphics/builder/builder_0.1.bb
@@ -29,3 +29,5 @@
 	chown  builder.builder ${D}${sysconfdir}/mini_x/session.d/builder_session.sh
 }
 
+# -4178 is an unrelated 'builder'
+CVE_CHECK_WHITELIST = "CVE-2008-4178"
diff --git a/poky/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch b/poky/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
new file mode 100644
index 0000000..fb6ce5c
--- /dev/null
+++ b/poky/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
@@ -0,0 +1,60 @@
+Fix stack buffer overflow.
+
+CVE: CVE-2020-35492
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
+From: Heiko Lewin <heiko.lewin@worldiety.de>
+Date: Tue, 15 Dec 2020 16:48:19 +0100
+Subject: [PATCH] Fix mask usage in image-compositor
+
+---
+ src/cairo-image-compositor.c                |   8 ++--
+ test/Makefile.sources                       |   1 +
+ test/bug-image-compositor.c                 |  39 ++++++++++++++++++++
+ test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes
+ 4 files changed, 44 insertions(+), 4 deletions(-)
+ create mode 100644 test/bug-image-compositor.c
+ create mode 100644 test/reference/bug-image-compositor.ref.png
+
+diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
+index 79ad69f68..4f8aaed99 100644
+--- a/src/cairo-image-compositor.c
++++ b/src/cairo-image-compositor.c
+@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
+ 		    unsigned num_spans)
+ {
+     cairo_image_span_renderer_t *r = abstract_renderer;
+-    uint8_t *m;
++    uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
+     int x0;
+ 
+     if (num_spans == 0)
+ 	return CAIRO_STATUS_SUCCESS;
+ 
+     x0 = spans[0].x;
+-    m = r->_buf;
++    m = base;
+     do {
+ 	int len = spans[1].x - spans[0].x;
+ 	if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
+@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
+ 				      spans[0].x, y,
+ 				      spans[1].x - spans[0].x, h);
+ 
+-	    m = r->_buf;
++	    m = base;
+ 	    x0 = spans[1].x;
+ 	} else if (spans[0].coverage == 0x0) {
+ 	    if (spans[0].x != x0) {
+@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
+ #endif
+ 	    }
+ 
+-	    m = r->_buf;
++	    m = base;
+ 	    x0 = spans[1].x;
+ 	} else {
+ 	    *m++ = spans[0].coverage;
+-- 
diff --git a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
index 68f993d..9d9fbfb 100644
--- a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
@@ -27,6 +27,7 @@
            file://CVE-2018-19876.patch \
            file://CVE-2019-6461.patch \
            file://CVE-2019-6462.patch \
+           file://CVE-2020-35492.patch \
           "
 
 SRC_URI[md5sum] = "f19e0353828269c22bd72e271243a552"
diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.105.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.106.bb
similarity index 96%
rename from poky/meta/recipes-graphics/drm/libdrm_2.4.105.bb
rename to poky/meta/recipes-graphics/drm/libdrm_2.4.106.bb
index 8cb82ad..2f63489 100644
--- a/poky/meta/recipes-graphics/drm/libdrm_2.4.105.bb
+++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.106.bb
@@ -13,7 +13,7 @@
 SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \
           "
 
-SRC_URI[sha256sum] = "1d1d024b7cadc63e2b59cddaca94f78864940ab440843841113fbac6afaf2a46"
+SRC_URI[sha256sum] = "92d8ac54429b171e087e61c2894dc5399fe6a549b1fbba09fa6a3cb9d4e57bd4"
 
 inherit meson pkgconfig manpages
 
diff --git a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.4.bb b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.8.1.bb
similarity index 88%
rename from poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.4.bb
rename to poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.8.1.bb
index b08f602..2353633 100644
--- a/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.7.4.bb
+++ b/poky/meta/recipes-graphics/harfbuzz/harfbuzz_2.8.1.bb
@@ -12,7 +12,7 @@
 
 SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.xz \
            "
-SRC_URI[sha256sum] = "6ad11d653347bd25d8317589df4e431a2de372c0cf9be3543368e07ec23bb8e7"
+SRC_URI[sha256sum] = "4124f663ec4bf4e294d9cf230668370b4249a48ff34deaf0f06e8fc82d891300"
 
 inherit meson pkgconfig lib_package gtk-doc gobject-introspection
 
@@ -21,9 +21,8 @@
 GTKDOC_MESON_ENABLE_FLAG = 'enabled'
 GTKDOC_MESON_DISABLE_FLAG = 'disabled'
 
-PACKAGECONFIG ??= "cairo fontconfig freetype glib icu"
+PACKAGECONFIG ??= "cairo freetype glib icu"
 PACKAGECONFIG[cairo] = "-Dcairo=enabled,-Dcairo=disabled,cairo"
-PACKAGECONFIG[fontconfig] = "-Dfontconfig=enabled,-Dfontconfig=disabled,fontconfig"
 PACKAGECONFIG[freetype] = "-Dfreetype=enabled,-Dfreetype=disabled,freetype"
 PACKAGECONFIG[glib] = "-Dglib=enabled,-Dglib=disabled,glib-2.0"
 PACKAGECONFIG[graphite] = "-Dgraphite=enabled,-Dgraphite=disabled,graphite2"
diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-lib-igt_edid-Allocate-raw-8-bytes-for-VSDB.patch b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-lib-igt_edid-Allocate-raw-8-bytes-for-VSDB.patch
deleted file mode 100644
index 38bd455..0000000
--- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/0001-lib-igt_edid-Allocate-raw-8-bytes-for-VSDB.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 606349860d27492c328752dca5a3784c0e9a6d24 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 27 Feb 2021 11:05:45 -0800
-Subject: [PATCH i-g-t] lib/igt_edid: Allocate raw 8-bytes for VSDB
-
-hdmi_vsdb is an element of cea_vsdb which makes the size of cea_vsdb to
-be 8 ( 3bytes ieee_oui ) + ( 5bytes hdmi_vsdb struct), its true that we
-only use 7 bytes technically we can only allocate 7byte array but since
-we are writing to elements of hdmi_vsdb struct which is sitting at offet
-4-8 in cea_vsdb, compiler thinks we have an element which is out of
-array bounds since out allocated size is 7bytes
-
-This errors out
-../git/lib/igt_edid.c:365:13: error: array subscript 'struct hdmi_vsdb[0]' is partly outside array bounds of 'char[7]' [-Werror=array-bounds]
-  365 |         hdmi->src_phy_addr[0] = 0x10;
-      |             ^~
-
-allocating one extra byte matches with size of cea_vsdb and compiler is
-happy
-
-Upstream-Status: Submitted [https://lists.freedesktop.org/archives/igt-dev/2021-February/029446.html]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/igt_edid.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/igt_edid.c b/lib/igt_edid.c
-index 1c85486d..ce09cc47 100644
---- a/lib/igt_edid.c
-+++ b/lib/igt_edid.c
-@@ -351,7 +351,7 @@ void cea_sad_init_pcm(struct cea_sad *sad, int channels,
- const struct cea_vsdb *cea_vsdb_get_hdmi_default(size_t *size)
- {
- 	/* We'll generate a VSDB with 2 extension fields. */
--	static char raw[CEA_VSDB_HDMI_MIN_SIZE + 2] = {0};
-+	static char raw[CEA_VSDB_HDMI_MIN_SIZE + 3] = {0};
- 	struct cea_vsdb *vsdb;
- 	struct hdmi_vsdb *hdmi;
- 
--- 
-2.30.1
-
diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/reproducibility.patch b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/reproducibility.patch
deleted file mode 100644
index 39e36d8..0000000
--- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools/reproducibility.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-meson: Allow source location to be configurable
-
-Hardcoding a build source path into a binary when cross compiling isn't
-appropriate and breaks build reproducibility. Allow the srcdir to be
-specified by an optional configuration option to meson.
-
-Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
-Upstream-Status: Submitted [https://lists.freedesktop.org/archives/igt-dev/2021-February/029443.html]
-
-Index: git/lib/meson.build
-===================================================================
---- git.orig/lib/meson.build
-+++ git/lib/meson.build
-@@ -122,7 +122,11 @@ if chamelium.found()
- 	lib_sources += 'igt_chamelium_stream.c'
- endif
- 
--srcdir = join_paths(meson.source_root(), 'tests')
-+if get_option('srcdir') != ''
-+    srcdir = join_paths(get_option('srcdir'), 'tests')
-+else
-+    srcdir = join_paths(meson.source_root(), 'tests')
-+endif
- 
- lib_version = vcs_tag(input : 'version.h.in', output : 'version.h',
- 		      fallback : 'NO-GIT',
-Index: git/meson_options.txt
-===================================================================
---- git.orig/meson_options.txt
-+++ git/meson_options.txt
-@@ -50,3 +50,7 @@ option('use_rpath',
-        type : 'boolean',
-        value : false,
-        description : 'Set runpath on installed executables for libigt.so')
-+
-+option('srcdir',
-+       type : 'string',
-+       description : 'Path to source code to be compiled into binaries (optional)')
diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
index 1cc94cf..5ab0498 100644
--- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
+++ b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
@@ -9,12 +9,10 @@
 
 inherit meson
 
-SRCREV = "d16ad07e7f2a028e14d61f570931c87fa5ce404c"
-PV = "1.25+git${SRCPV}"
+SRCREV = "203def046b466fb2da67f9f15552d84e1c0b41f2"
+PV = "1.26"
 
-SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https \
-           file://0001-lib-igt_edid-Allocate-raw-8-bytes-for-VSDB.patch \
-           file://reproducibility.patch"
+SRC_URI = "git://gitlab.freedesktop.org/drm/igt-gpu-tools.git;protocol=https"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/images/core-image-weston-ptest-all.bb b/poky/meta/recipes-graphics/images/core-image-weston-ptest-all.bb
deleted file mode 100644
index a622779..0000000
--- a/poky/meta/recipes-graphics/images/core-image-weston-ptest-all.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-require core-image-weston-sdk.bb
-require conf/distro/include/ptest-packagelists.inc
-
-DESCRIPTION += "Also includes ptest packages."
-
-# Include the full set of ptests
-IMAGE_INSTALL += "${PTESTS_FAST} ${PTESTS_SLOW}"
-
-# This image is sufficiently large (~1.8GB) that we need to be careful that it fits in a live
-# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
-# box) and explicitly add just 1100MB.
-# strace-ptest in particular needs more than 500MB
-IMAGE_OVERHEAD_FACTOR = "1.0"
-IMAGE_ROOTFS_EXTRA_SPACE = "1124288"
-
-# ptests need more memory than standard to avoid the OOM killer
-# also lttng-tools needs /tmp that has at least 1G
-QB_MEM = "-m 2048"
-
-# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places
-PTEST_EXPECT_FAILURE = "1"
diff --git a/poky/meta/recipes-graphics/images/core-image-weston-ptest-fast.bb b/poky/meta/recipes-graphics/images/core-image-weston-ptest-fast.bb
deleted file mode 100644
index df02bef..0000000
--- a/poky/meta/recipes-graphics/images/core-image-weston-ptest-fast.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require core-image-weston-sdk.bb
-require conf/distro/include/ptest-packagelists.inc
-
-# Include only fast (< 30 sec) ptests
-IMAGE_INSTALL += "${PTESTS_FAST}"
-
-DESCRIPTION += "Also includes ptest packages with fast execution times to allow for more automated QA."
-
-# This image is sufficiently large (~1.8GB) that it can't actually fit in a live
-# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the
-# box) and explicitly add just 1500MB.
-# strace-ptest in particular needs more than 500MB
-IMAGE_OVERHEAD_FACTOR = "1.0"
-IMAGE_ROOTFS_EXTRA_SPACE = "1524288"
-
-# ptests need more memory than standard to avoid the OOM killer
-QB_MEM = "-m 1024"
-
-# Sadly at the moment the fast set of ptests is not robust enough and sporadically fails in a couple of places
-PTEST_EXPECT_FAILURE = "1"
diff --git a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.5.bb b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.8.bb
similarity index 92%
rename from poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.5.bb
rename to poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.8.bb
index a404fe2..2cd096a 100644
--- a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.5.bb
+++ b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.8.bb
@@ -12,7 +12,7 @@
 SRC_URI = "https://github.com/anholt/${BPN}/releases/download/${PV}/${BP}.tar.xz \
            file://0001-dispatch_common.h-define-also-EGL_NO_X11.patch \
            "
-SRC_URI[sha256sum] = "261663db21bcc1cc232b07ea683252ee6992982276536924271535875f5b0556"
+SRC_URI[sha256sum] = "cf05e4901778c434aef68bb7dc01bea2bce15440c0cecb777fb446f04db6fe0d"
 UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases"
 
 inherit meson pkgconfig features_check
diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
index df2346d..eac6d4d 100644
--- a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
@@ -1,4 +1,4 @@
-From 624f430dd0a91344146a2b8d49a69f23560c2fa2 Mon Sep 17 00:00:00 2001
+From d434b9e5d29d614b57c09e164e1d084094bf2150 Mon Sep 17 00:00:00 2001
 From: Alistair Francis <alistair@alistair23.me>
 Date: Thu, 14 Nov 2019 13:08:31 -0800
 Subject: [PATCH] meson.build: make TLS ELF optional
@@ -30,23 +30,23 @@
  2 files changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index efc6171..8450968 100644
+index 42f448e..02f6e33 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -448,7 +448,7 @@ endif
- 
- # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
+@@ -449,7 +449,7 @@ endif
  use_elf_tls = false
--if not ['windows', 'freebsd', 'openbsd', 'haiku'].contains(host_machine.system()) and (not with_platform_android or get_option('platform-sdk-version') >= 29)
-+if not ['windows', 'freebsd', 'openbsd', 'haiku'].contains(host_machine.system()) and (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls')
+ if (not ['freebsd', 'openbsd', 'haiku'].contains(host_machine.system()) and
+     (not with_platform_android or get_option('platform-sdk-version') >= 29) and
+-    (not with_platform_windows or not with_shared_glapi))
++    (not with_platform_windows or not with_shared_glapi) and get_option('elf-tls'))
    pre_args += '-DUSE_ELF_TLS'
    use_elf_tls = true
  endif
 diff --git a/meson_options.txt b/meson_options.txt
-index fc73f6e..d7482c0 100644
+index a7030ab..635ec20 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
-@@ -420,6 +420,12 @@ option(
+@@ -421,6 +421,12 @@ option(
    value : true,
    description : 'Enable direct rendering in GLX and EGL for DRI',
  )
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_21.0.3.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_21.1.1.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa-gl_21.0.3.bb
rename to poky/meta/recipes-graphics/mesa/mesa-gl_21.1.1.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index a85f94c..32cc997 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -10,7 +10,7 @@
 BUGTRACKER = "https://bugs.freedesktop.org"
 SECTION = "x11"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.rst;md5=9aa1bc48c9826ad9fdb16661f6930496"
+LIC_FILES_CHKSUM = "file://docs/license.rst;md5=17a4ea65de7a9ab42437f3131e616a7f"
 
 PE = "2"
 
@@ -21,7 +21,7 @@
            file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \
            "
 
-SRC_URI[sha256sum] = "565c6f4bd2d5747b919454fc1d439963024fc78ca56fd05158c3b2cde2f6912b"
+SRC_URI[sha256sum] = "eec25ea379054e8911bc5de816aeb50f581b5b708414725003d2f00386b38dd2"
 
 UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
 
@@ -167,6 +167,8 @@
 
 PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
 
+PACKAGECONFIG[lmsensors] = "-Dlmsensors=enabled,-Dlmsensors=disabled,lmsensors"
+
 # llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2)
 FULL_OPTIMIZATION_append = " -fno-omit-frame-pointer"
 
diff --git a/poky/meta/recipes-graphics/mesa/mesa_21.0.3.bb b/poky/meta/recipes-graphics/mesa/mesa_21.1.1.bb
similarity index 98%
rename from poky/meta/recipes-graphics/mesa/mesa_21.0.3.bb
rename to poky/meta/recipes-graphics/mesa/mesa_21.1.1.bb
index 8c584d8..1993d6c 100644
--- a/poky/meta/recipes-graphics/mesa/mesa_21.0.3.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa_21.1.1.bb
@@ -2,3 +2,4 @@
 
 DRIDRIVERS_append_x86_class-target = ",r100,r200,nouveau,i965,i915"
 DRIDRIVERS_append_x86-64_class-target = ",r100,r200,nouveau,i965,i915"
+
diff --git a/poky/meta/recipes-graphics/pango/pango_1.48.2.bb b/poky/meta/recipes-graphics/pango/pango_1.48.5.bb
similarity index 88%
rename from poky/meta/recipes-graphics/pango/pango_1.48.2.bb
rename to poky/meta/recipes-graphics/pango/pango_1.48.5.bb
index aa279bb..b29c3c2 100644
--- a/poky/meta/recipes-graphics/pango/pango_1.48.2.bb
+++ b/poky/meta/recipes-graphics/pango/pango_1.48.5.bb
@@ -13,14 +13,14 @@
 
 GNOMEBASEBUILDCLASS = "meson"
 
-inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection
+inherit gnomebase gi-docgen ptest-gnome upstream-version-is-even gobject-introspection
 
 GIR_MESON_ENABLE_FLAG = "enabled"
 GIR_MESON_DISABLE_FLAG = "disabled"
 
 SRC_URI += "file://run-ptest"
 
-SRC_URI[archive.sha256sum] = "d21f8b30dc8abdfc55de25656ecb88dc1105eeeb315e5e2a980dcef8010c2c80"
+SRC_URI[archive.sha256sum] = "501e74496173c02dcd024ded7fbb3f09efd37e2a488e248aa40799424dbb3b2a"
 
 DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi"
 
@@ -31,7 +31,6 @@
 PACKAGECONFIG[tests] = "-Dinstall-tests=true, -Dinstall-tests=false"
 PACKAGECONFIG[thai] = ",,libthai"
 
-GTKDOC_MESON_OPTION = "gtk_doc"
 GIR_MESON_OPTION = 'introspection'
 
 do_configure_prepend() {
diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb
index 14f4c75..b64a20a 100644
--- a/poky/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb
@@ -18,7 +18,7 @@
            "
 UPSTREAM_CHECK_COMMITS = "1"
 
-SRCREV = "d4d9353b7290ed22cb7349226a8e4017402d3f02"
+SRCREV = "6a4be9e9946df310d9402f995f371c7deb8c27ba"
 # (when PV goes above 1.0 remove the trailing r)
 PV = "1.0+gitr${SRCPV}"
 
diff --git a/poky/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch b/poky/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch
index df670cd..0e8ad7e 100644
--- a/poky/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch
+++ b/poky/meta/recipes-graphics/shaderc/files/0002-libshaderc_util-fix-glslang-header-file-location.patch
@@ -1,17 +1,18 @@
-From 046c3c2da9c4ff66f14db5bd68e9557504a49241 Mon Sep 17 00:00:00 2001
+From d02ad48d5c9b48af70ddea2e6998081347ef82f3 Mon Sep 17 00:00:00 2001
 From: Jose Quaresma <quaresma.jose@gmail.com>
 Date: Sat, 13 Feb 2021 00:45:56 +0000
-Subject: [PATCH 2/3] libshaderc_util: fix glslang header file location
+Subject: [PATCH] libshaderc_util: fix glslang header file location
 
 Upstream-Status: Pending
 
 Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+
 ---
  libshaderc_util/src/compiler.cc | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/libshaderc_util/src/compiler.cc b/libshaderc_util/src/compiler.cc
-index c5ce37e..4703634 100644
+index 051558b..9c4476c 100644
 --- a/libshaderc_util/src/compiler.cc
 +++ b/libshaderc_util/src/compiler.cc
 @@ -20,7 +20,7 @@
@@ -21,8 +22,5 @@
 -#include "SPIRV/GlslangToSpv.h"
 +#include "glslang/SPIRV/GlslangToSpv.h"
  #include "libshaderc_util/format.h"
- #include "libshaderc_util/io.h"
+ #include "libshaderc_util/io_shaderc.h"
  #include "libshaderc_util/message.h"
--- 
-2.30.1
-
diff --git a/poky/meta/recipes-graphics/shaderc/shaderc_2020.5.bb b/poky/meta/recipes-graphics/shaderc/shaderc_2021.0.bb
similarity index 94%
rename from poky/meta/recipes-graphics/shaderc/shaderc_2020.5.bb
rename to poky/meta/recipes-graphics/shaderc/shaderc_2021.0.bb
index ce51aab..3d59e0c 100644
--- a/poky/meta/recipes-graphics/shaderc/shaderc_2020.5.bb
+++ b/poky/meta/recipes-graphics/shaderc/shaderc_2021.0.bb
@@ -6,7 +6,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRCREV = "f3e39a7eed682faececb73f0b85717f2f44ee9ba"
+SRCREV = "1a3e2aaab191f44644e899e29ab7bac50bebdeb8"
 SRC_URI = "git://github.com/google/shaderc.git;protocol=https;branch=main \
            file://0001-cmake-disable-building-external-dependencies.patch \
            file://0002-libshaderc_util-fix-glslang-header-file-location.patch \
diff --git a/poky/meta/recipes-graphics/spir/spirv-tools_2020.7.bb b/poky/meta/recipes-graphics/spir/spirv-tools_2021.1.bb
similarity index 95%
rename from poky/meta/recipes-graphics/spir/spirv-tools_2020.7.bb
rename to poky/meta/recipes-graphics/spir/spirv-tools_2021.1.bb
index 8be6985..5795d93 100644
--- a/poky/meta/recipes-graphics/spir/spirv-tools_2020.7.bb
+++ b/poky/meta/recipes-graphics/spir/spirv-tools_2021.1.bb
@@ -7,7 +7,7 @@
 LICENSE  = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRCREV = "2573fd781b5408cd7fe5755a78b60d767a748ff9"
+SRCREV = "4b3707b788c84449a55f67257ae6aab3ca3552cb"
 SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git \
            file://0001-fix-strncpy-bound-error.patch \
           "
diff --git a/poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.00.1.bb b/poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.4.bb
similarity index 69%
rename from poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.00.1.bb
rename to poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.4.bb
index abc216f..e33c4d1 100644
--- a/poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.00.1.bb
+++ b/poky/meta/recipes-graphics/ttf-fonts/liberation-fonts_2.1.4.bb
@@ -2,7 +2,7 @@
 DESCRIPTION = "The Liberation(tm) Fonts is a font family originally \
 created by Ascender(c) which aims at metric compatibility with \
 Arial, Times New Roman, Courier New."
-HOMEPAGE = "https://releases.pagure.org/liberation-fonts/"
+HOMEPAGE = "https://github.com/liberationfonts/liberation-fonts"
 BUGTRACKER = "https://bugzilla.redhat.com/"
 
 SECTION = "x11/fonts"
@@ -10,21 +10,14 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f96db970a9a46c5369142b99f530366b"
 PE = "1"
 
-# remove at next version upgrade or when output changes
-PR = "r1"
-HASHEQUIV_HASH_VERSION .= ".2"
-
-inherit allarch fontcache
-
-FONT_PACKAGES = "${PN}"
-
-SRC_URI = "https://releases.pagure.org/liberation-fonts/liberation-fonts-ttf-${PV}.tar.gz \
+SRC_URI = "https://github.com/liberationfonts/liberation-fonts/files/6418984/liberation-fonts-ttf-${PV}.tar.gz \
            file://30-liberation-aliases.conf"
+SRC_URI[sha256sum] = "26f85412dd0aa9d061504a1cc8aaf0aa12a70710e8d47d8b65a1251757c1a5ef"
+UPSTREAM_CHECK_URI = "https://github.com/liberationfonts/liberation-fonts/releases"
 
 S = "${WORKDIR}/liberation-fonts-ttf-${PV}"
 
-SRC_URI[md5sum] = "5c781723a0d9ed6188960defba8e91cf"
-SRC_URI[sha256sum] = "7890278a6cd17873c57d9cd785c2d230d9abdea837e96516019c5885dd271504"
+inherit allarch fontcache
 
 do_install () {
 	install -d ${D}${datadir}/fonts/ttf/
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch
deleted file mode 100644
index a0ac3ae..0000000
--- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 3d30df8d8ccb919733b5339b2a82474305b83998 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Aug 2019 01:19:48 +0000
-Subject: [PATCH] gallium: Expand libc check to be platform OS check
-
-endianness on musl based systems can also be detected in same way as
-glibc, therefore check for __linux__ define instead of __GLIBC__
-
-Fixes build on musl/mips
-
-| ../../../../git/src/gallium/include/pipe/p_config.h:171:2: error: #error Unknown Endianness
-| #error Unknown Endianness
-|  ^~~~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/gallium/include/pipe/p_config.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h
-index d603681..71cdf49 100644
---- a/src/gallium/include/pipe/p_config.h
-+++ b/src/gallium/include/pipe/p_config.h
-@@ -130,7 +130,7 @@
-  * Endian detection.
-  */
- 
--#ifdef __GLIBC__
-+#ifdef __linux__
- #include <endian.h>
- 
- #if __BYTE_ORDER == __LITTLE_ENDIAN
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb
similarity index 78%
rename from poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
rename to poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb
index 5282119..3991895 100644
--- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
+++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.9.1.bb
@@ -9,9 +9,8 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
 
 DEPENDS = "libdrm virtual/libgl libepoxy"
-SRCREV = "7d204f3927be65fb3365dce01dbcd04d447a4985"
-SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
-           file://0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch \
+SRCREV = "363915595e05fb252e70d6514be2f0c0b5ca312b"
+SRC_URI = "git://anongit.freedesktop.org/virglrenderer;branch=branch-0.9.1 \
            file://0001-meson.build-use-python3-directly-for-python.patch \
            "
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.170.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.176.0.bb
similarity index 93%
rename from poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.170.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.176.0.bb
index 4c9c94f..cff654a 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.170.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.2.176.0.bb
@@ -11,7 +11,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
 SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=master"
 
-SRCREV = "1d99b835ec3cd5a7fb2f2a2dd9a615ee2d1f0101"
+SRCREV = "074fa3055cfee530992bcbfa0fcb23106a82c1ab"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.170.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.176.0.bb
similarity index 96%
rename from poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.170.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.176.0.bb
index 6b6ed06..e241a2f 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.170.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.2.176.0.bb
@@ -11,7 +11,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac"
 SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git \
            "
-SRCREV = "c5678a03db383fd0dc5bfb8e9a383043bdbcb57b"
+SRCREV = "eb6d6f95dff809d66e95b903105da6424e75862f"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb b/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
index b7c38f6..a177d9a 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-samples_git.bb
@@ -11,7 +11,7 @@
            "
 
 UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "55cebd9e7cc4153a3a7b3a45d42274c0e2a17815"
+SRCREV = "04278ed5f0f9847ae6897509eb56d7b21b4e8cde"
 
 UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for"
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.170.0.bb b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.176.0.bb
similarity index 94%
rename from poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.170.0.bb
rename to poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.176.0.bb
index 0c8bcaa..10fa0fd 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.170.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.2.176.0.bb
@@ -6,8 +6,8 @@
 
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-1.2.170"
-SRCREV = "88ea55de928a08ba5c5f65a93d1e7c8f666fc43f"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-1.2.176"
+SRCREV = "eb3d67bd17ee433e2b0a8e56a7249bd83908812e"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.16.4.bb b/poky/meta/recipes-graphics/wayland/libinput_1.17.3.bb
similarity index 95%
rename from poky/meta/recipes-graphics/wayland/libinput_1.16.4.bb
rename to poky/meta/recipes-graphics/wayland/libinput_1.17.3.bb
index 17b73e3..ef19146 100644
--- a/poky/meta/recipes-graphics/wayland/libinput_1.16.4.bb
+++ b/poky/meta/recipes-graphics/wayland/libinput_1.17.3.bb
@@ -16,7 +16,7 @@
            file://run-ptest \
            file://determinism.patch \
            "
-SRC_URI[sha256sum] = "65923a06d5a8970e4a999c4668797b9b689614b62b1d44432ab1c87b65e39e29"
+SRC_URI[sha256sum] = "0d010e0bf601b5d3a06b3c4d77d67751cf554f3e6448e57aa046ea9ee8f818ac"
 
 UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
 
diff --git a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.21.bb
similarity index 85%
rename from poky/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb
rename to poky/meta/recipes-graphics/wayland/wayland-protocols_1.21.bb
index 3fb78f6..16452f8 100644
--- a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.21.bb
@@ -11,8 +11,7 @@
 
 SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
            "
-SRC_URI[md5sum] = "b0836533a3f2dc6585b1dae00341157f"
-SRC_URI[sha256sum] = "9782b7a1a863d82d7c92478497d13c758f52e7da4f197aa16443f73de77e4de7"
+SRC_URI[sha256sum] = "b99945842d8be18817c26ee77dafa157883af89268e15f4a5a1a1ff3ffa4cde5"
 
 UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
 
diff --git a/poky/meta/recipes-graphics/wayland/wayland_1.19.0.bb b/poky/meta/recipes-graphics/wayland/wayland_1.19.0.bb
index 8f12160..0fda80c 100644
--- a/poky/meta/recipes-graphics/wayland/wayland_1.19.0.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland_1.19.0.bb
@@ -52,9 +52,11 @@
 	cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
 }
 
+PACKAGES += "${PN}-tools"
+
 FILES_${PN} = "${libdir}/*${SOLIBS}"
-FILES_${PN}-dev += "${bindir} ${datadir}/wayland"
+FILES_${PN}-tools += "${bindir} ${datadir}/wayland"
 
 BBCLASSEXTEND = "native nativesdk"
 
-RDEPENDS_${PN}-ptest += "binutils sed"
+RDEPENDS_${PN}-ptest += "binutils sed ${PN}-tools"
diff --git a/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.4.bb b/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.5.bb
similarity index 74%
rename from poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.4.bb
rename to poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.5.bb
index 44143a0..657ec75 100644
--- a/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.4.bb
+++ b/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.5.bb
@@ -7,7 +7,7 @@
 xkbcomp is to create a compiled keymap file (.xkm extension) which can \
 be read directly by XKB-capable X servers or utilities."
 
-LIC_FILES_CHKSUM = "file://COPYING;md5=08436e4f4476964e2e2dd7e7e41e076a"
+LIC_FILES_CHKSUM = "file://COPYING;md5=be5e191f04d3f2cd80aa83b928ba984c"
 
 DEPENDS += "libxkbfile"
 
@@ -15,4 +15,4 @@
 
 EXTRA_OECONF += "--disable-selective-werror"
 
-SRC_URI[sha256sum] = "59cce603a607a17722a0a1cf99010f4894e7812beb5d695abbc08474d59af27e"
+SRC_URI[sha256sum] = "6851086c4244b6fd0cc562880d8ff193fb2bbf1e141c73632e10731b31d4b05e"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.0.bb b/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.1.bb
similarity index 93%
rename from poky/meta/recipes-graphics/xorg-lib/libx11_1.7.0.bb
rename to poky/meta/recipes-graphics/xorg-lib/libx11_1.7.1.bb
index 3faee6e..b5f0445 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.0.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libx11_1.7.1.bb
@@ -14,7 +14,7 @@
            file://disable_tests.patch \
            "
 
-SRC_URI[sha256sum] = "36c8f93b6595437c8cfbc9f08618bcb3041cbd303e140a0013f88e4c2977cb54"
+SRC_URI[sha256sum] = "e64e43deaa562cbfb0d5ada64670ec09c6fac7935262dcd77bbc6d984a535d47"
 
 PROVIDES = "virtual/libx11"
 
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.3.bb b/poky/meta/recipes-graphics/xorg-lib/libxfixes_6.0.0.bb
similarity index 78%
rename from poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.3.bb
rename to poky/meta/recipes-graphics/xorg-lib/libxfixes_6.0.0.bb
index f0e2f60..af7426f 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxfixes_5.0.3.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxfixes_6.0.0.bb
@@ -6,6 +6,7 @@
 caused by these workarounds."
 
 require xorg-lib-common.inc
+SRC_URI[sha256sum] = "a7c1a24da53e0b46cac5aea79094b4b2257321c621b258729bc3139149245b4c"
 
 LICENSE = "MIT-style"
 LIC_FILES_CHKSUM = "file://COPYING;md5=3c1ce42c334a6f5cccb0277556a053e0"
@@ -17,7 +18,3 @@
 XORG_PN = "libXfixes"
 
 BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI[md5sum] = "07e01e046a0215574f36a3aacb148be0"
-SRC_URI[sha256sum] = "de1cd33aff226e08cefd0e6759341c2c8e8c9faf8ce9ac6ec38d43e287b22ad6"
-
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.0.3.bb b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.0.bb
similarity index 92%
rename from poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.0.3.bb
rename to poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.0.bb
index 99f55f4..26bbaad 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.0.3.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.3.0.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "a2202f851e072b84e64a395212cbd976ee18a8ee602008b0bad02a13247dbc52"
+SRC_URI[sha256sum] = "7b09e098ea69bc3054f0c57a9a25fda571c4df22398811606e32b5fffeb75e7b"
 
 UPSTREAM_CHECK_URI = "http://xkbcommon.org/"
 
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxres_1.2.0.bb b/poky/meta/recipes-graphics/xorg-lib/libxres_1.2.1.bb
similarity index 76%
rename from poky/meta/recipes-graphics/xorg-lib/libxres_1.2.0.bb
rename to poky/meta/recipes-graphics/xorg-lib/libxres_1.2.1.bb
index af6bb19..29a799a 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxres_1.2.0.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxres_1.2.1.bb
@@ -16,5 +16,4 @@
 
 XORG_PN = "libXres"
 
-SRC_URI[md5sum] = "5d6d443d1abc8e1f6fc1c57fb27729bb"
-SRC_URI[sha256sum] = "ff75c1643488e64a7cfbced27486f0f944801319c84c18d3bd3da6bf28c812d4"
+SRC_URI[sha256sum] = "b6e6fb1ebb61610e56017edd928fb89a5f53b3f4f990078309877468663b2b11"
diff --git a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.1.bb
similarity index 77%
rename from poky/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb
rename to poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.1.bb
index c71bc90..f4b0895 100644
--- a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb
+++ b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2021.4.99.1.bb
@@ -1,4 +1,3 @@
-
 SUMMARY = "X Window System unified protocol definitions"
 DESCRIPTION = "This package provides the headers and specification documents defining \
 the core protocol and (many) extensions for the X Window System"
@@ -7,11 +6,10 @@
 
 SECTION = "x11/libs"
 LICENSE = "MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676"
+LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=dfc4bd2b0568b31725b85b0604e69b56"
 
 SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.bz2"
-SRC_URI[md5sum] = "c29f4fa78f53b52b3efdc71ebd9506b6"
-SRC_URI[sha256sum] = "54a153f139035a376c075845dd058049177212da94d7a9707cf9468367b699d2"
+SRC_URI[sha256sum] = "0bce7d4fe800dcb5581cc59a99946c12e6e0be292636544221ec73e96f1a28ed"
 
 inherit meson
 
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-3472.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-3472.patch
deleted file mode 100644
index 5480f71..0000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/CVE-2021-3472.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 7aaf54a1884f71dc363f0b884e57bcb67407a6cd Mon Sep 17 00:00:00 2001
-From: Matthieu Herrb <matthieu@herrb.eu>
-Date: Sun, 21 Mar 2021 18:38:57 +0100
-Subject: [PATCH] Fix XChangeFeedbackControl() request underflow
-
-CVE-2021-3472 / ZDI-CAN-1259
-
-This vulnerability was discovered by:
-Jan-Niklas Sohn working with Trend Micro Zero Day Initiative
-
-Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
-
-Upstream-Status: Backport
-CVE: CVE-2021-3472
-
-Reference to upstream patch:
-[https://gitlab.freedesktop.org/xorg/xserver/-/commit/7aaf54a1884f71dc363f0b884e57bcb67407a6cd]
-
-Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
----
- Xi/chgfctl.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/Xi/chgfctl.c b/Xi/chgfctl.c
-index 1de4da9..7a597e4 100644
---- a/Xi/chgfctl.c
-+++ b/Xi/chgfctl.c
-@@ -464,8 +464,11 @@ ProcXChangeFeedbackControl(ClientPtr client)
-         break;
-     case StringFeedbackClass:
-     {
--        xStringFeedbackCtl *f = ((xStringFeedbackCtl *) &stuff[1]);
-+        xStringFeedbackCtl *f;
- 
-+        REQUEST_AT_LEAST_EXTRA_SIZE(xChangeFeedbackControlReq,
-+                                    sizeof(xStringFeedbackCtl));
-+        f = ((xStringFeedbackCtl *) &stuff[1]);
-         if (client->swapped) {
-             if (len < bytes_to_int32(sizeof(xStringFeedbackCtl)))
-                 return BadLength;
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.10.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.11.bb
similarity index 90%
rename from poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.10.bb
rename to poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.11.bb
index 755a762..1eb2056 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.10.bb
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.11.bb
@@ -7,9 +7,8 @@
            file://0001-drmmode_display.c-add-missing-mi.h-include.patch \
            file://0001-Avoid-duplicate-definitions-of-IOPortBase.patch \
            file://0001-Fix-segfault-on-probing-a-non-PCI-platform-device-on.patch \
-           file://CVE-2021-3472.patch \
            "
-SRC_URI[sha256sum] = "977420c082450dc808de301ef56af4856d653eea71519a973c3490a780cb7c99"
+SRC_URI[sha256sum] = "914c796e3ffabe1af48071d40ccc85e92117c97a9082ed1df29e4d64e3c34c49"
 
 # These extensions are now integrated into the server, so declare the migration
 # path for in-place upgrades.
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 70b8518..e967f48 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
@@ -8,7 +8,7 @@
 
 DEPENDS = "git-native"
 
-SRCREV = "00dfcab64b85bcb61208724a1588662184ebdd59"
+SRCREV = "d220b063852245fdd16b9731a395ace525f932d6"
 PR = "r12"
 PV = "0.2+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.21.bb b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.22.bb
similarity index 96%
rename from poky/meta/recipes-kernel/kexec/kexec-tools_2.0.21.bb
rename to poky/meta/recipes-kernel/kexec/kexec-tools_2.0.22.bb
index 069e8f4..dcc4402 100644
--- a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.21.bb
+++ b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.22.bb
@@ -22,7 +22,7 @@
            file://0001-kexec-arch-ppc-kexec-ppc.c-correct-double-definition.patch \
            "
 
-SRC_URI[sha256sum] = "b3d4cfd2ba10d68ce341ea3b8ca414d00a0b6183b95686172154f94bce834f94"
+SRC_URI[sha256sum] = "40623d4321be2865ef9ea2cd6ec998d31dcf93d0f74353cbd3aa06d8821e3e41"
 
 inherit autotools update-rc.d systemd
 
diff --git a/poky/meta/recipes-kernel/kmod/kmod.inc b/poky/meta/recipes-kernel/kmod/kmod.inc
index ba5ec7f..e66684f 100644
--- a/poky/meta/recipes-kernel/kmod/kmod.inc
+++ b/poky/meta/recipes-kernel/kmod/kmod.inc
@@ -15,9 +15,9 @@
                    "
 inherit autotools gtk-doc pkgconfig manpages
 
-SRCREV = "1ccfe994287119cc6cef37a7ca4c529d89de4b95"
+SRCREV = "b6ecfc916a17eab8f93be5b09f4e4f845aabd3d1"
 # Lookout for PV bump too when SRCREV is changed
-PV = "28"
+PV = "29"
 
 SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git \
            file://depmod-search.conf \
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210511.bb
similarity index 99%
rename from poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb
rename to poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210511.bb
index a751b92..26091fb 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210208.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20210511.bb
@@ -132,7 +132,7 @@
                     file://LICENCE.xc4000;md5=0ff51d2dc49fce04814c9155081092f0 \
                     file://LICENCE.xc5000;md5=1e170c13175323c32c7f4d0998d53f66 \
                     file://LICENCE.xc5000c;md5=12b02efa3049db65d524aeb418dd87ca \
-                    file://WHENCE;md5=ef0565762eac313c409567b59dff00b2 \
+                    file://WHENCE;md5=727d0d4e2d420f41d89d098f6322e779 \
                     "
 
 # These are not common licenses, set NO_GENERIC_LICENSE for them
@@ -205,7 +205,7 @@
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/kernel/firmware/${BPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "1bcb1a3944c361507754a7d26ccff40ffc28d1fb93bce711d67da26b33e785b7"
+SRC_URI[sha256sum] = "2aa6ae8b9808408f9811ac38f00c188e53e984a2b3990254f6c9c02c1ab13417"
 
 inherit allarch
 
@@ -656,8 +656,8 @@
 "
 FILES_${PN}-bcm4350c2 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350c2-pcie.bin"
 FILES_${PN}-bcm4350 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4350-pcie.bin"
-FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.bin \
-  ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-sdio.bin \
+FILES_${PN}-bcm4356 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac4356-sdio.* \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac4356-sdio.* \
 "
 FILES_${PN}-bcm43569 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43569.bin"
 FILES_${PN}-bcm43570 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43570-pcie.bin \
diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
index 455c836..84e9923 100644
--- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -272,6 +272,8 @@
         sed -i 's/ifneq "$(CC)" ".*-linux-.*gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
         sed -i 's/ifneq "$(LD)" ".*-linux-.*ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd"
         sed -i 's/ifneq "$(AR)" ".*-linux-.*ar.*$/ifneq "$(AR)" "ar"/' "$kerneldir/build/include/config/auto.conf.cmd"
+        sed -i 's/ifneq "$(OBJCOPY)" ".*-linux-.*objcopy.*$/ifneq "$(OBJCOPY)" "objcopy"/' "$kerneldir/build/include/config/auto.conf.cmd"
+        sed -i 's/ifneq "$(NM)" ".*-linux-.*nm.*$/ifneq "$(NM)" "nm"/' "$kerneldir/build/include/config/auto.conf.cmd"
         sed -i 's/ifneq "$(HOSTCXX)" ".*$/ifneq "$(HOSTCXX)" "g++"/' "$kerneldir/build/include/config/auto.conf.cmd"
         sed -i 's/ifneq "$(HOSTCC)" ".*$/ifneq "$(HOSTCC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
         sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index ee41d61..f407882 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -30,7 +30,7 @@
 SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 
-LINUX_VERSION ?= "5.12+"
+LINUX_VERSION ?= "5.13+"
 LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
index 08314ea..11d8928 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.10.bb
@@ -11,13 +11,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "400fbf5b14a0c88afb7c31d65be56fb9d6214c81"
-SRCREV_meta ?= "38eb7ca3f4b59339c57a04c310f20809b198fa91"
+SRCREV_machine ?= "d25690cb34d3b9d67089b318c48b89163058608c"
+SRCREV_meta ?= "48a13749dcfa21864b5cdf5f02a1c210a4b6046b"
 
 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.10;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "5.10.34"
+LINUX_VERSION ?= "5.10.41"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
index 939bef0..a55d84f 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
@@ -11,13 +11,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "b62ae8bedb024e67e7c5cda51840454a4170c858"
-SRCREV_meta ?= "cf20a3c44f5ef181b16ed80e9c2683f76b1ead20"
+SRCREV_machine ?= "c279b45a44858da788a13f23130ed06663e77c57"
+SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "5.4.116"
+LINUX_VERSION ?= "5.4.123"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
index 8bd674f..8fe0194 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.10.bb
@@ -6,7 +6,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "5.10.34"
+LINUX_VERSION ?= "5.10.41"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine_qemuarm ?= "bf33b78f5136873b6d2ec6274908cf688341bc9e"
-SRCREV_machine ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
-SRCREV_meta ?= "38eb7ca3f4b59339c57a04c310f20809b198fa91"
+SRCREV_machine_qemuarm ?= "c5b462a67540b3364a21999b601d08b837ee95a2"
+SRCREV_machine ?= "bb3f40e801fed14f9233749f7eaa27b105979059"
+SRCREV_meta ?= "48a13749dcfa21864b5cdf5f02a1c210a4b6046b"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
index e3750dd..cf8e81e 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
@@ -6,7 +6,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "5.4.116"
+LINUX_VERSION ?= "5.4.123"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine_qemuarm ?= "80bd6016a9bdaed4b66ddffffa8c8e62d7c1f8a6"
-SRCREV_machine ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
-SRCREV_meta ?= "cf20a3c44f5ef181b16ed80e9c2683f76b1ead20"
+SRCREV_machine_qemuarm ?= "445028ae9ec9a904122bb5c60995def98d2b1ddc"
+SRCREV_machine ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
+SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
index 2e7a452..24f8566 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.10.bb
@@ -13,17 +13,17 @@
 KBRANCH_qemux86-64 ?= "v5.10/standard/base"
 KBRANCH_qemumips64 ?= "v5.10/standard/mti-malta64"
 
-SRCREV_machine_qemuarm ?= "78e8e722eec4434024c5db3e0d59da0b128c7647"
-SRCREV_machine_qemuarm64 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
-SRCREV_machine_qemumips ?= "b5c0852a90709e77f7a3d185d1745e6a1f66b77c"
-SRCREV_machine_qemuppc ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
-SRCREV_machine_qemuriscv64 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
-SRCREV_machine_qemuriscv32 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
-SRCREV_machine_qemux86 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
-SRCREV_machine_qemux86-64 ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
-SRCREV_machine_qemumips64 ?= "bf264e264d2141a4fb61d515573c27935e67ecfa"
-SRCREV_machine ?= "85c17ad073e9249f261cc550e8ada89a900d7d9a"
-SRCREV_meta ?= "38eb7ca3f4b59339c57a04c310f20809b198fa91"
+SRCREV_machine_qemuarm ?= "d1a5dc63766ef3b2dfc79ac2965af69b33203520"
+SRCREV_machine_qemuarm64 ?= "bb3f40e801fed14f9233749f7eaa27b105979059"
+SRCREV_machine_qemumips ?= "03dd9a4bb1b030a89f56712c3d724f0219fd16a3"
+SRCREV_machine_qemuppc ?= "bb3f40e801fed14f9233749f7eaa27b105979059"
+SRCREV_machine_qemuriscv64 ?= "bb3f40e801fed14f9233749f7eaa27b105979059"
+SRCREV_machine_qemuriscv32 ?= "bb3f40e801fed14f9233749f7eaa27b105979059"
+SRCREV_machine_qemux86 ?= "bb3f40e801fed14f9233749f7eaa27b105979059"
+SRCREV_machine_qemux86-64 ?= "bb3f40e801fed14f9233749f7eaa27b105979059"
+SRCREV_machine_qemumips64 ?= "9292051c510e6bf1452ead867c8f8050556cfae3"
+SRCREV_machine ?= "bb3f40e801fed14f9233749f7eaa27b105979059"
+SRCREV_meta ?= "48a13749dcfa21864b5cdf5f02a1c210a4b6046b"
 
 # remap qemuarm to qemuarma15 for the 5.8 kernel
 # KMACHINE_qemuarm ?= "qemuarma15"
@@ -32,7 +32,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.10.34"
+LINUX_VERSION ?= "5.10.41"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
index 38404a1..ddd0198 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
@@ -12,16 +12,16 @@
 KBRANCH_qemux86-64 ?= "v5.4/standard/base"
 KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
 
-SRCREV_machine_qemuarm ?= "e71df0530eefcac1b3248329e385bcefbad6336e"
-SRCREV_machine_qemuarm64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
-SRCREV_machine_qemumips ?= "07445052fdd15e60b30dc5ae9d162c2e6bba47d1"
-SRCREV_machine_qemuppc ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
-SRCREV_machine_qemuriscv64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
-SRCREV_machine_qemux86 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
-SRCREV_machine_qemux86-64 ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
-SRCREV_machine_qemumips64 ?= "b36d79d6f2aaf9dadec352f611e7b9becf2b9a55"
-SRCREV_machine ?= "ea7a54fa402727f3c4bc4a1904d4a9590e7c8b85"
-SRCREV_meta ?= "cf20a3c44f5ef181b16ed80e9c2683f76b1ead20"
+SRCREV_machine_qemuarm ?= "c292705386cfec860dad5e1dee74f22407fb7f94"
+SRCREV_machine_qemuarm64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
+SRCREV_machine_qemumips ?= "d4c949dc0b88dba72f9f94a18fd994aa8482ff8e"
+SRCREV_machine_qemuppc ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
+SRCREV_machine_qemuriscv64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
+SRCREV_machine_qemux86 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
+SRCREV_machine_qemux86-64 ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
+SRCREV_machine_qemumips64 ?= "417e8e4e101314f02439a88c78d4cf2ab98df209"
+SRCREV_machine ?= "edc1395a32f99faaebc6b48769c4bd02a8b074be"
+SRCREV_meta ?= "aa019cb8e4af653d6e136f1b8720884b97ddde49"
 
 # remap qemuarm to qemuarma15 for the 5.4 kernel
 # KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "5.4.116"
+LINUX_VERSION ?= "5.4.123"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-memory-leaks-on-event-destroy.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-memory-leaks-on-event-destroy.patch
deleted file mode 100644
index 21da932..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-memory-leaks-on-event-destroy.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From b3fdf78b15beb940918da1e41eb68e24ba31bb87 Mon Sep 17 00:00:00 2001
-From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-Date: Wed, 3 Mar 2021 10:10:16 -0500
-Subject: [PATCH 1/4] Fix: memory leaks on event destroy
-
-Both filter runtime and event enabler ref objects are owned by the
-event, but are not freed upon destruction of the event object, thus
-leaking memory.
-
-Upstream-status: backport
-
-Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-Change-Id: Ice9b1c18b47584838aea2b965494d3c8391f4c84
----
- lttng-events.c | 7 +++++++
- lttng-events.h | 1 +
- 2 files changed, 8 insertions(+)
-
-diff --git a/lttng-events.c b/lttng-events.c
-index f3398adc..984bd341 100644
---- a/lttng-events.c
-+++ b/lttng-events.c
-@@ -919,6 +919,8 @@ int _lttng_event_unregister(struct lttng_event *event)
- static
- void _lttng_event_destroy(struct lttng_event *event)
- {
-+	struct lttng_enabler_ref *enabler_ref, *tmp_enabler_ref;
-+
- 	switch (event->instrumentation) {
- 	case LTTNG_KERNEL_TRACEPOINT:
- 		lttng_event_put(event->desc);
-@@ -944,6 +946,11 @@ void _lttng_event_destroy(struct lttng_event *event)
- 	}
- 	list_del(&event->list);
- 	lttng_destroy_context(event->ctx);
-+	lttng_free_event_filter_runtime(event);
-+	/* Free event enabler refs */
-+	list_for_each_entry_safe(enabler_ref, tmp_enabler_ref,
-+				 &event->enablers_ref_head, node)
-+		kfree(enabler_ref);
- 	kmem_cache_free(event_cache, event);
- }
- 
-diff --git a/lttng-events.h b/lttng-events.h
-index 1b9ab167..13b6abf5 100644
---- a/lttng-events.h
-+++ b/lttng-events.h
-@@ -716,6 +716,7 @@ int lttng_enabler_attach_bytecode(struct lttng_enabler *enabler,
- 		struct lttng_kernel_filter_bytecode __user *bytecode);
- void lttng_enabler_event_link_bytecode(struct lttng_event *event,
- 		struct lttng_enabler *enabler);
-+void lttng_free_event_filter_runtime(struct lttng_event *event);
- 
- int lttng_probes_init(void);
- 
--- 
-2.19.1
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch
new file mode 100644
index 0000000..6d81c81
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch
@@ -0,0 +1,37 @@
+From 0287f5c32b9fd99078e71c22ca679343d18f1513 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Sat, 15 May 2021 10:26:38 -0400
+Subject: [PATCH] src/Kbuild: change missing CONFIG_TRACEPOINTS to warning
+
+Taken from a previous patch to the main lttng-modules Makefile, by
+Otavio Salvador:
+
+  The lttng-modules are being pulled by the tools-profile image feature,
+  however, not every kernel has the CONFIG_TRACEPOINTS feature enabled.
+
+  This change makes the build do not fail when CONFIG_TRACEPOINTS is not
+  available, allowing it to be kept being pulled by default.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ src/Kbuild | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Kbuild b/src/Kbuild
+index 7137874f..18a43b50 100644
+--- a/src/Kbuild
++++ b/src/Kbuild
+@@ -2,7 +2,7 @@
+ 
+ ifdef CONFIG_LOCALVERSION	# Check if dot-config is included.
+   ifeq ($(CONFIG_TRACEPOINTS),)
+-    $(error The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration)
++    $(warning The option CONFIG_TRACEPOINTS needs to be enabled in your kernel configuration)
+   endif # CONFIG_TRACEPOINTS
+ endif # ifdef CONFIG_LOCALVERSION
+ 
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch
deleted file mode 100644
index 609690f..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From 23a2f61ffc6a656f136fa2044c0c3b8f79766779 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Galarneau?=
- <jeremie.galarneau@efficios.com>
-Date: Wed, 3 Mar 2021 18:52:19 -0500
-Subject: [PATCH 2/4] Fix: filter interpreter early-exits on uninitialized
- value
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-I observed that syscall filtering on string arguments wouldn't work on
-my development machines, both running 5.11.2-arch1-1 (Arch Linux).
-
-For instance, enabling the tracing of the `openat()` syscall with the
-'filename == "/proc/cpuinfo"' filter would not produce events even
-though matching events were present in another session that had no
-filtering active. The same problem occurred with `execve()`.
-
-I tried a couple of kernel versions before (5.11.1 and 5.10.13, if
-memory serves me well) and I had the same problem. Meanwhile, I couldn't
-reproduce the problem on various Debian machines (the LTTng CI) nor on a
-fresh Ubuntu 20.04 with both the stock kernel and with an updated 5.11.2
-kernel.
-
-I built the lttng-modules with the interpreter debugging printout and
-saw the following warning:
-  LTTng: [debug bytecode in /home/jgalar/EfficiOS/src/lttng-modules/src/lttng-bytecode-interpreter.c:bytecode_interpret@1508] Bytecode warning: loading a NULL string.
-
-After a shedload (yes, a _shed_load) of digging, I figured that the
-problem was hidden in plain sight near that logging statement.
-
-In the `BYTECODE_OP_LOAD_FIELD_REF_USER_STRING` operation, the 'ax'
-register's 'user_str' is initialized with the stack value (the user
-space string's address in our case). However, a NULL check is performed
-against the register's 'str' member.
-
-I initialy suspected that both members would be part of the same union
-and alias each-other, but they are actually contiguous in a structure.
-
-On the unaffected machines, I could confirm that the `str` member was
-uninitialized to a non-zero value causing the condition to evaluate to
-false.
-
-Francis Deslauriers reproduced the problem by initializing the
-interpreter stack to zero.
-
-I am unsure of the exact kernel configuration option that reveals this
-issue on Arch Linux, but my kernel has the following option enabled:
-
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL:
-   Zero-initialize any stack variables that may be passed by reference
-   and had not already been explicitly initialized. This is intended to
-   eliminate all classes of uninitialized stack variable exploits and
-   information exposures.
-
-I have not tried to build without this enabled as, anyhow, this seems
-to be a legitimate issue.
-
-I have spotted what appears to be an identical problem in
-`BYTECODE_OP_LOAD_FIELD_REF_USER_SEQUENCE` and corrected it. However,
-I have not exercised that code path.
-
-The commit that introduced this problem is 5b4ad89.
-
-The debug print-out of the `BYTECODE_OP_LOAD_FIELD_REF_USER_STRING`
-operation is modified to print the user string (truncated to 31 chars).
-
-Upstream-status: backport
-
-Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
-Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-Change-Id: I2da3c31b9e3ce0e1b164cf3d2711c0893cbec273
----
- lttng-filter-interpreter.c | 41 ++++++++++++++++++++++++++++++++++----
- 1 file changed, 37 insertions(+), 4 deletions(-)
-
-diff --git a/lttng-filter-interpreter.c b/lttng-filter-interpreter.c
-index 5d572437..6e5a5139 100644
---- a/lttng-filter-interpreter.c
-+++ b/lttng-filter-interpreter.c
-@@ -22,7 +22,7 @@ LTTNG_STACK_FRAME_NON_STANDARD(lttng_filter_interpret_bytecode);
-  * to handle user-space read.
-  */
- static
--char get_char(struct estack_entry *reg, size_t offset)
-+char get_char(const struct estack_entry *reg, size_t offset)
- {
- 	if (unlikely(offset >= reg->u.s.seq_len))
- 		return '\0';
-@@ -593,6 +593,39 @@ end:
- 	return ret;
- }
- 
-+#ifdef DEBUG
-+
-+#define DBG_USER_STR_CUTOFF 32
-+
-+/*
-+ * In debug mode, print user string (truncated, if necessary).
-+ */
-+static inline
-+void dbg_load_ref_user_str_printk(const struct estack_entry *user_str_reg)
-+{
-+	size_t pos = 0;
-+	char last_char;
-+	char user_str[DBG_USER_STR_CUTOFF];
-+
-+	pagefault_disable();
-+	do {
-+		last_char = get_char(user_str_reg, pos);
-+		user_str[pos] = last_char;
-+		pos++;
-+	} while (last_char != '\0' && pos < sizeof(user_str));
-+	pagefault_enable();
-+
-+	user_str[sizeof(user_str) - 1] = '\0';
-+	dbg_printk("load field ref user string: '%s%s'\n", user_str,
-+		last_char != '\0' ? "[...]" : "");
-+}
-+#else
-+static inline
-+void dbg_load_ref_user_str_printk(const struct estack_entry *user_str_reg)
-+{
-+}
-+#endif
-+
- /*
-  * Return 0 (discard), or raise the 0x1 flag (log event).
-  * Currently, other flags are kept for future extensions and have no
-@@ -1313,7 +1346,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
- 			estack_push(stack, top, ax, bx);
- 			estack_ax(stack, top)->u.s.user_str =
- 				*(const char * const *) &filter_stack_data[ref->offset];
--			if (unlikely(!estack_ax(stack, top)->u.s.str)) {
-+			if (unlikely(!estack_ax(stack, top)->u.s.user_str)) {
- 				dbg_printk("Filter warning: loading a NULL string.\n");
- 				ret = -EINVAL;
- 				goto end;
-@@ -1322,7 +1355,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
- 			estack_ax(stack, top)->u.s.literal_type =
- 				ESTACK_STRING_LITERAL_TYPE_NONE;
- 			estack_ax(stack, top)->u.s.user = 1;
--			dbg_printk("ref load string %s\n", estack_ax(stack, top)->u.s.str);
-+			dbg_load_ref_user_str_printk(estack_ax(stack, top));
- 			next_pc += sizeof(struct load_op) + sizeof(struct field_ref);
- 			PO;
- 		}
-@@ -1340,7 +1373,7 @@ uint64_t lttng_filter_interpret_bytecode(void *filter_data,
- 			estack_ax(stack, top)->u.s.user_str =
- 				*(const char **) (&filter_stack_data[ref->offset
- 								+ sizeof(unsigned long)]);
--			if (unlikely(!estack_ax(stack, top)->u.s.str)) {
-+			if (unlikely(!estack_ax(stack, top)->u.s.user_str)) {
- 				dbg_printk("Filter warning: loading a NULL sequence.\n");
- 				ret = -EINVAL;
- 				goto end;
--- 
-2.19.1
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch
deleted file mode 100644
index 71f99b8..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 49c603ef2dc6969f4454f0d849af00ee24bb7f04 Mon Sep 17 00:00:00 2001
-From: Michael Jeanson <mjeanson@efficios.com>
-Date: Thu, 4 Mar 2021 16:50:12 -0500
-Subject: [PATCH 3/4] fix: mm, tracing: record slab name for kmem_cache_free()
- (v5.12)
-
-See upstream commit:
-
-  commit 3544de8ee6e4817278b15fe08658de49abf58954
-  Author: Jacob Wen <jian.w.wen@oracle.com>
-  Date:   Wed Feb 24 12:00:55 2021 -0800
-
-    mm, tracing: record slab name for kmem_cache_free()
-
-    Currently, a trace record generated by the RCU core is as below.
-
-    ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=00000000f3b49a66
-
-    It doesn't tell us what the RCU core has freed.
-
-    This patch adds the slab name to trace_kmem_cache_free().
-    The new format is as follows.
-
-    ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=0000000037f79c8d name=dentry
-    ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=00000000f78cb7b5 name=sock_inode_cache
-    ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=0000000018768985 name=pool_workqueue
-    ... kmem_cache_free: call_site=rcu_core+0x1fd/0x610 ptr=000000006a6cb484 name=radix_tree_node
-
-    We can use it to understand what the RCU core is going to free. For
-    example, some users maybe interested in when the RCU core starts
-    freeing reclaimable slabs like dentry to reduce memory pressure.
-
-    Link: https://lkml.kernel.org/r/20201216072804.8838-1-jian.w.wen@oracle.com
-
-Upstream-status: backport
-
-Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
-Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-Change-Id: I1ee2fc476614cadcc8d3ac5d8feddc7910e1aa3a
----
- instrumentation/events/lttng-module/kmem.h | 27 ++++++++++++++++++++++
- 1 file changed, 27 insertions(+)
-
-diff --git a/instrumentation/events/lttng-module/kmem.h b/instrumentation/events/lttng-module/kmem.h
-index b134620a..d787ea54 100644
---- a/instrumentation/events/lttng-module/kmem.h
-+++ b/instrumentation/events/lttng-module/kmem.h
-@@ -87,6 +87,32 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_alloc_node, kmem_cache_alloc_node,
- 	TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node)
- )
- 
-+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,12,0))
-+LTTNG_TRACEPOINT_EVENT(kfree,
-+
-+	TP_PROTO(unsigned long call_site, const void *ptr),
-+
-+	TP_ARGS(call_site, ptr),
-+
-+	TP_FIELDS(
-+		ctf_integer_hex(unsigned long, call_site, call_site)
-+		ctf_integer_hex(const void *, ptr, ptr)
-+	)
-+)
-+
-+LTTNG_TRACEPOINT_EVENT(kmem_cache_free,
-+
-+	TP_PROTO(unsigned long call_site, const void *ptr, const char *name),
-+
-+	TP_ARGS(call_site, ptr, name),
-+
-+	TP_FIELDS(
-+		ctf_integer_hex(unsigned long, call_site, call_site)
-+		ctf_integer_hex(const void *, ptr, ptr)
-+		ctf_string(name, name)
-+	)
-+)
-+#else
- LTTNG_TRACEPOINT_EVENT_CLASS(kmem_free,
- 
- 	TP_PROTO(unsigned long call_site, const void *ptr),
-@@ -114,6 +140,7 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(kmem_free, kmem_cache_free,
- 
- 	TP_ARGS(call_site, ptr)
- )
-+#endif
- 
- #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,3,0))
- LTTNG_TRACEPOINT_EVENT_MAP(mm_page_free, kmem_mm_page_free,
--- 
-2.19.1
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch
deleted file mode 100644
index 8a839c2..0000000
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 92cc3e7f76a545a2cd4828576971f1eea83f4e68 Mon Sep 17 00:00:00 2001
-From: Francis Deslauriers <francis.deslauriers@efficios.com>
-Date: Wed, 17 Mar 2021 10:40:56 -0400
-Subject: [PATCH 4/4] Fix: kretprobe: null ptr deref on session destroy
-
-The `filter_bytecode_runtime_head` list is currently not initialized for
-the return event of the kretprobe. This caused a kernel null ptr
-dereference when destroying a session. It can reproduced with the
-following commands:
-
-  lttng create
-  lttng enable-event -k --function=lttng_test_filter_event_write my_event
-  lttng start
-  lttng stop
-  lttng destroy
-
-Upstream-status: backport 
-
-Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
-Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
-Change-Id: I1162ce8b10dd7237a26331531f048346b984eee7
----
- lttng-events.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/lttng-events.c b/lttng-events.c
-index 984bd341..3450fa40 100644
---- a/lttng-events.c
-+++ b/lttng-events.c
-@@ -704,6 +704,8 @@ struct lttng_event *_lttng_event_create(struct lttng_channel *chan,
- 		event_return->enabled = 0;
- 		event_return->registered = 1;
- 		event_return->instrumentation = itype;
-+		INIT_LIST_HEAD(&event_return->bytecode_runtime_head);
-+		INIT_LIST_HEAD(&event_return->enablers_ref_head);
- 		/*
- 		 * Populate lttng_event structure before kretprobe registration.
- 		 */
--- 
-2.19.1
-
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.5.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.6.bb
similarity index 64%
rename from poky/meta/recipes-kernel/lttng/lttng-modules_2.12.5.bb
rename to poky/meta/recipes-kernel/lttng/lttng-modules_2.12.6.bb
index 5b05c64..94e849d 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.5.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.12.6.bb
@@ -11,13 +11,9 @@
 
 SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
-           file://0001-Fix-memory-leaks-on-event-destroy.patch \
-           file://0002-Fix-filter-interpreter-early-exits-on-uninitialized-.patch  \
-           file://0003-fix-mm-tracing-record-slab-name-for-kmem_cache_free-.patch \
-           file://0004-Fix-kretprobe-null-ptr-deref-on-session-destroy.patch \
            "
 
-SRC_URI[sha256sum] = "c4d1a1b42c728e37b6b7947ae16563a011c4b297311aa04d56f9a1791fb5a30a"
+SRC_URI[sha256sum] = "95ac2a2cf92d85d23ffbdaca6a1ec0d7c167211d1e0fb850ab90004a3f475eaa"
 
 export INSTALL_MOD_DIR="kernel/lttng-modules"
 
@@ -34,13 +30,13 @@
 }
 
 BBCLASSEXTEND = "devupstream:target"
-LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=3f882d431dc0f32f1f44c0707aa41128"
+LIC_FILES_CHKSUM_class-devupstream = "file://LICENSE;md5=0464cff101a009c403cd2ed65d01d4c4"
 DEFAULT_PREFERENCE_class-devupstream = "-1"
-SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.12 \
-           file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
+SRC_URI_class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.13 \
+           file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch \
            "
 
-SRCREV_class-devupstream = "92cc3e7f76a545a2cd4828576971f1eea83f4e68"
-PV_class-devupstream = "2.12.5+git${SRCPV}"
+SRCREV_class-devupstream = "f982b51a98a29cb4aaf607cb9bbf2b509d8e6933"
+PV_class-devupstream = "2.13.0-rc2+git${SRCPV}"
 S_class-devupstream = "${WORKDIR}/git"
 SRCREV_FORMAT ?= "lttng_git"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.1.bb b/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.2.bb
similarity index 93%
rename from poky/meta/recipes-kernel/lttng/lttng-ust_2.12.1.bb
rename to poky/meta/recipes-kernel/lttng/lttng-ust_2.12.2.bb
index 67b53cb..e340ff3 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.1.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-ust_2.12.2.bb
@@ -33,8 +33,7 @@
            file://0001-python-lttngust-Makefile.am-Add-install-lib-to-setup.patch \
            "
 
-SRC_URI[md5sum] = "11787d1df69b04dd7431614ab43b2e12"
-SRC_URI[sha256sum] = "48a3948b168195123a749d22818809bd25127bb5f1a66458c3c012b210d2a051"
+SRC_URI[sha256sum] = "bcd0f064b6ca88c72d84e760eac3472ae5c828411c634435922bee9fce359fc7"
 
 CVE_PRODUCT = "ust"
 
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index 28d0c6a..2dfd798 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -169,7 +169,7 @@
 do_configure_prepend () {
     # If building a multlib based perf, the incorrect library path will be
     # detected by perf, since it triggers via: ifeq ($(ARCH),x86_64). In a 32 bit
-    # build, with a 64 bit multilib, the arch won't match and the detection of a
+    # build, with a 64 bit multilib, the arch won't match and the detection of a 
     # 64 bit build (and library) are not exected. To ensure that libraries are
     # installed to the correct location, we can use the weak assignment in the
     # config/Makefile.
diff --git a/poky/meta/recipes-kernel/powertop/powertop_2.13.bb b/poky/meta/recipes-kernel/powertop/powertop_2.14.bb
similarity index 64%
rename from poky/meta/recipes-kernel/powertop/powertop_2.13.bb
rename to poky/meta/recipes-kernel/powertop/powertop_2.14.bb
index 8c7e78f..cb7f3c4 100644
--- a/poky/meta/recipes-kernel/powertop/powertop_2.13.bb
+++ b/poky/meta/recipes-kernel/powertop/powertop_2.14.bb
@@ -9,21 +9,13 @@
 SRC_URI = "git://github.com/fenrus75/powertop;protocol=https \
     file://0001-wakeup_xxx.h-include-limits.h.patch \
 "
-SRCREV = "184cee06b2d64679bae5f806fe0a218827fdde99"
+SRCREV = "52f022f9bbe6e060fba11701d657a8d9762702ba"
 
 S = "${WORKDIR}/git"
 
-inherit autotools gettext pkgconfig bash-completion
+LDFLAGS_append = " -pthread"
 
-# we do not want libncursesw if we can
-do_configure_prepend() {
-    # configure.ac checks for delwin() in "ncursesw ncurses" so let's drop first one
-    sed -i -e "s/ncursesw//g" ${S}/configure.ac
-    mkdir -p ${B}/src/tuning/
-    echo "${PV}" > ${S}/version-long
-    echo "${PV}" > ${S}/version-short
-    cp ${STAGING_DATADIR}/aclocal/ax_require_defined.m4 ${S}/m4/
-}
+inherit autotools gettext pkgconfig bash-completion
 
 inherit update-alternatives
 ALTERNATIVE_${PN} = "powertop"
diff --git a/poky/meta/recipes-kernel/systemtap/systemtap/0001-transport-protect-include-and-callsite-with-same-con.patch b/poky/meta/recipes-kernel/systemtap/systemtap/0001-transport-protect-include-and-callsite-with-same-con.patch
deleted file mode 100644
index efc79f6..0000000
--- a/poky/meta/recipes-kernel/systemtap/systemtap/0001-transport-protect-include-and-callsite-with-same-con.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From cbf27cd54071f788231e69d96dbaad563f1010d4 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@gmail.com>
-Date: Fri, 18 Dec 2020 13:15:08 -0500
-Subject: [PATCH] transport: protect include and callsite with same conditional
-
-transport.c has the following code block:
-
-  if (!debugfs_p && security_locked_down (LOCKDOWN_DEBUGFS))
-
-Which is protected by the conditional STAPCONF_LOCKDOWN_DEBUGFS.
-
-linux/security.h provides the definition of LOCKDOWN_DEBUGFS, and
-must be included or we have a compilation issue.
-
-The include of security.h is protected by #ifdef CONFIG_SECURITY_LOCKDOWN_LSM,
-which means that in some configurations we can get out of sync with
-the include and the callsite.
-
-If we protect the include and the callsite with the same #ifdef, we can
-be sure that they will be consistent.
-
-Upstream-status: Inappropriate (kernel-devsrc specific)
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
----
- runtime/transport/transport.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c
-index bb4a98bd3..88e20ea28 100644
---- a/runtime/transport/transport.c
-+++ b/runtime/transport/transport.c
-@@ -21,7 +21,7 @@
- #include <linux/namei.h>
- #include <linux/delay.h>
- #include <linux/mutex.h>
--#ifdef CONFIG_SECURITY_LOCKDOWN_LSM
-+#ifdef STAPCONF_LOCKDOWN_DEBUGFS
- #include <linux/security.h>
- #endif
- #include "../uidgid_compatibility.h"
--- 
-2.19.1
-
diff --git a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc
index 016b423..23ecc61 100644
--- a/poky/meta/recipes-kernel/systemtap/systemtap_git.inc
+++ b/poky/meta/recipes-kernel/systemtap/systemtap_git.inc
@@ -1,13 +1,12 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV = "988f439af39a359b4387963ca4633649866d8275"
-PV = "4.4"
+SRCREV = "0eba8a46bc99c66e5dd274a9a4d661fe08ac4b8a"
+PV = "4.5"
 
 SRC_URI = "git://sourceware.org/git/systemtap.git \
            file://0001-Do-not-let-configure-write-a-python-location-into-th.patch \
            file://0001-Install-python-modules-to-correct-library-dir.patch \
            file://0001-staprun-stapbpf-don-t-support-installing-a-non-root.patch \
-           file://0001-transport-protect-include-and-callsite-with-same-con.patch \
            "
 
 COMPATIBLE_HOST = '(x86_64|i.86|powerpc|arm|aarch64|microblazeel|mips).*-linux'
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch
deleted file mode 100644
index 69429af..0000000
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/mips64_cpu_detection.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-It will add -mips64r6 and -mips64r2 to cmdline which will
-cause conflicts
-
-in OE we user mips32r2 and mips64r2 for mips arch versions
-so there is no benefit of detecting it automatically by
-poking at tools especially in cross env
-
-Fixes errors like
-
-linking -mnan=2008 module with previous -mnan=legacy modules
-failed to merge target specific data of file
-
--Khem
-Upstream-Status: Inappropriate [OE-Specific]
-
-Index: ffmpeg-3.1.1/configure
-===================================================================
---- ffmpeg-3.1.1.orig/configure
-+++ ffmpeg-3.1.1/configure
-@@ -5220,12 +5220,9 @@ elif enabled mips; then
- 
-     # Enable minimum ISA based on selected options
-     if enabled mips64; then
--        enabled mips64r6 && check_inline_asm_flags mips64r6 '"dlsa $0, $0, $0, 1"' '-mips64r6'
-         enabled mips64r2 && check_inline_asm_flags mips64r2 '"dext $0, $0, 0, 1"' '-mips64r2'
-         disabled mips64r6 && disabled mips64r2 && check_inline_asm_flags mips64r1 '"daddi $0, $0, 0"' '-mips64'
-     else
--        enabled mips32r6 && check_inline_asm_flags mips32r6 '"aui $0, $0, 0"' '-mips32r6'
--        enabled mips32r5 && check_inline_asm_flags mips32r5 '"eretnc"' '-mips32r5'
-         enabled mips32r2 && check_inline_asm_flags mips32r2 '"ext $0, $0, 0, 1"' '-mips32r2'
-         disabled mips32r6 && disabled mips32r5 && disabled mips32r2 && check_inline_asm_flags mips32r1 '"addi $0, $0, 0"' '-mips32'
-     fi
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.2.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb
similarity index 86%
rename from poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.2.bb
rename to poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb
index 08be38c..664fc60 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.2.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb
@@ -24,10 +24,9 @@
                     file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
 SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
-           file://mips64_cpu_detection.patch \
            file://0001-libavutil-include-assembly-with-full-path-from-sourc.patch \
            "
-SRC_URI[sha256sum] = "46e4e64f1dd0233cbc0934b9f1c0da676008cad34725113fb7f802cfa84ccddb"
+SRC_URI[sha256sum] = "06b10a183ce5371f915c6bb15b7b1fffbe046e8275099c96affc29e17645d909"
 
 # Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
 ARM_INSTRUCTION_SET_armv4 = "arm"
@@ -65,6 +64,7 @@
 PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"
 PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
 PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
+PACKAGECONFIG[libopus] = "--enable-libopus,--disable-libopus,libopus"
 PACKAGECONFIG[libvorbis] = "--enable-libvorbis,--disable-libvorbis,libvorbis"
 PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz"
 PACKAGECONFIG[mfx] = "--enable-libmfx,--disable-libmfx,intel-mediasdk"
@@ -104,15 +104,15 @@
     \
     --cross-prefix=${TARGET_PREFIX} \
     \
-    --ld="${CCLD}" \
-    --cc="${CC}" \
-    --cxx="${CXX}" \
+    --ld='${CCLD}' \
+    --cc='${CC}' \
+    --cxx='${CXX}' \
     --arch=${TARGET_ARCH} \
-    --target-os="linux" \
+    --target-os='linux' \
     --enable-cross-compile \
-    --extra-cflags="${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
-    --extra-ldflags="${LDFLAGS}" \
-    --sysroot="${STAGING_DIR_TARGET}" \
+    --extra-cflags='${CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}' \
+    --extra-ldflags='${LDFLAGS}' \
+    --sysroot='${STAGING_DIR_TARGET}' \
     ${EXTRA_FFCONF} \
     --libdir=${libdir} \
     --shlibdir=${libdir} \
@@ -122,6 +122,14 @@
 "
 
 EXTRA_OECONF_append_linux-gnux32 = " --disable-asm"
+
+EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
+EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
+EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r2', '--disable-mips64r6 --disable-mips32r6', '', d)}"
+EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'mips32r6', '--disable-mips64r2 --disable-mips32r2', '', d)}"
+EXTRA_OECONF_append_mips = " --extra-libs=-latomic --disable-mips32r5 --disable-mipsdsp --disable-mipsdspr2 \
+                             --disable-loongson2 --disable-loongson3 --disable-mmi --disable-msa --disable-msa2"
+
 # gold crashes on x86, another solution is to --disable-asm but thats more hacky
 # ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch
new file mode 100644
index 0000000..a2f5dff
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/4ef5c91697a141fea7317aff7f0f28e5a861db99.patch
@@ -0,0 +1,50 @@
+From 4ef5c91697a141fea7317aff7f0f28e5a861db99 Mon Sep 17 00:00:00 2001
+From: Xavier Claessens <xavier.claessens@collabora.com>
+Date: Mon, 26 Apr 2021 14:25:03 -0400
+Subject: [PATCH] gstgl: Fix build when Meson >= 0.58.0rc1
+
+"implicit_include_directories: false" now also means that current build
+directory is not added to include paths by default any more. We have to
+add it manually because we have some custom_target() that generate
+headers in current build directory.
+
+See https://github.com/mesonbuild/meson/issues/8700.
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1125>
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gst-libs/gst/gl/meson.build | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/gst-libs/gst/gl/meson.build b/gst-libs/gst/gl/meson.build
+index 66668644e..53891625a 100644
+--- a/gst-libs/gst/gl/meson.build
++++ b/gst-libs/gst/gl/meson.build
+@@ -1004,11 +1004,20 @@ if build_gstgl
+     command : [mkenums, glib_mkenums, '@OUTPUT@', '@INPUT@'])
+   gen_sources = [gl_enumtypes_h]
+ 
++  common_args = gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL']
++
++  # We have custom_target() that generate headers in the current build dir,
++  # but with implicit_include_directories: false, meson >= 0.58.0 won't include
++  # it by default. We cannot use include_directories('.') here because it would
++  # also include current source dir which is what we want to avoid because
++  # case-insensitive FS would include gst-libs/gl/egl/egl.h as EGL/egl.h.
++  common_args += '-I@0@'.format(meson.current_build_dir())
++
+   gstgl = library('gstgl-' + api_version,
+     gl_sources, gl_egl_sources, gl_x11_sources, gl_wayland_sources, gl_priv_sources, gl_enumtypes_c, gl_enumtypes_h,
+-    c_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
+-    cpp_args : gst_plugins_base_args + gl_cpp_args + ['-DBUILDING_GST_GL'],
+-    objc_args : gst_plugins_base_args + gl_cpp_args + gl_objc_args + ['-DBUILDING_GST_GL'],
++    c_args : common_args,
++    cpp_args : common_args,
++    objc_args : common_args + gl_objc_args,
+     include_directories : [configinc, libsinc, gl_includes],
+     version : libversion,
+     soversion : soversion,
+-- 
+GitLab
+
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
index beddfb0..73b433a 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.18.4.bb
@@ -11,6 +11,7 @@
            file://0003-viv-fb-Make-sure-config.h-is-included.patch \
            file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch \
            file://0004-glimagesink-Downrank-to-marginal.patch \
+           file://4ef5c91697a141fea7317aff7f0f28e5a861db99.patch \
            "
 SRC_URI[sha256sum] = "29e53229a84d01d722f6f6db13087231cdf6113dd85c25746b9b58c3d68e8323"
 
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0003-Remove-volatile-from-static-vars-to-fix-build-with-g.patch b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0003-Remove-volatile-from-static-vars-to-fix-build-with-g.patch
new file mode 100644
index 0000000..8722382
--- /dev/null
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0003-Remove-volatile-from-static-vars-to-fix-build-with-g.patch
@@ -0,0 +1,100 @@
+From 07572920319ea86cebb6dd073ab65915ec207eed Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 8 May 2021 14:08:41 +0200
+Subject: [PATCH] Remove volatile from static vars to fix build with gcc11
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Stolen from [1]
+
+[1] https://src.fedoraproject.org/rpms/gstreamer1-plugins-good/blob/rawhide/f/gstreamer1-plugins-good-gcc11.patch
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ ext/qt/gstqsgtexture.cc  | 2 +-
+ ext/qt/gstqtglutility.cc | 2 +-
+ ext/qt/qtglrenderer.cc   | 2 +-
+ ext/qt/qtitem.cc         | 2 +-
+ ext/qt/qtwindow.cc       | 4 ++--
+ 5 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
+index 4cc9fc6..50c8d7f 100644
+--- a/ext/qt/gstqsgtexture.cc
++++ b/ext/qt/gstqsgtexture.cc
+@@ -35,7 +35,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+ 
+ GstQSGTexture::GstQSGTexture ()
+ {
+-  static volatile gsize _debug;
++  static gsize _debug;
+ 
+   initializeOpenGLFunctions();
+ 
+diff --git a/ext/qt/gstqtglutility.cc b/ext/qt/gstqtglutility.cc
+index acb89b6..d2c0922 100644
+--- a/ext/qt/gstqtglutility.cc
++++ b/ext/qt/gstqtglutility.cc
+@@ -66,7 +66,7 @@ gst_qt_get_gl_display ()
+ {
+   GstGLDisplay *display = NULL;
+   QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
+-  static volatile gsize _debug;
++  static gsize _debug;
+ 
+   g_assert (app != NULL);
+ 
+diff --git a/ext/qt/qtglrenderer.cc b/ext/qt/qtglrenderer.cc
+index 2ad5601..bffba8f 100644
+--- a/ext/qt/qtglrenderer.cc
++++ b/ext/qt/qtglrenderer.cc
+@@ -22,7 +22,7 @@ GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
+ static void
+ init_debug (void)
+ {
+-  static volatile gsize _debug;
++  static gsize _debug;
+ 
+   if (g_once_init_enter (&_debug)) {
+     GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglrenderer", 0,
+diff --git a/ext/qt/qtitem.cc b/ext/qt/qtitem.cc
+index 7659800..bc99639 100644
+--- a/ext/qt/qtitem.cc
++++ b/ext/qt/qtitem.cc
+@@ -104,7 +104,7 @@ void InitializeSceneGraph::run()
+ 
+ QtGLVideoItem::QtGLVideoItem()
+ {
+-  static volatile gsize _debug;
++  static gsize _debug;
+ 
+   if (g_once_init_enter (&_debug)) {
+     GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "qtglwidget", 0, "Qt GL Widget");
+diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc
+index 0dfd3f1..f1bd4ae 100644
+--- a/ext/qt/qtwindow.cc
++++ b/ext/qt/qtwindow.cc
+@@ -103,7 +103,7 @@ QtGLWindow::QtGLWindow ( QWindow * parent, QQuickWindow *src ) :
+   QQuickWindow( parent ), source (src)
+ {
+   QGuiApplication *app = static_cast<QGuiApplication *> (QCoreApplication::instance ());
+-  static volatile gsize _debug;
++  static gsize _debug;
+ 
+   g_assert (app != NULL);
+ 
+@@ -152,7 +152,7 @@ QtGLWindow::beforeRendering()
+ 
+   g_mutex_lock (&this->priv->lock);
+ 
+-  static volatile gsize once = 0;
++  static gsize once = 0;
+   if (g_once_init_enter(&once)) {
+     this->priv->start = QDateTime::currentDateTime().toMSecsSinceEpoch();
+     g_once_init_leave(&once,1);
+-- 
+2.30.2
+
diff --git a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.4.bb b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.4.bb
index 07cacdc..c7d31d2 100644
--- a/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.4.bb
+++ b/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.18.4.bb
@@ -7,6 +7,7 @@
 SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
            file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
            file://0002-rtpjitterbuffer-Fix-parsing-of-the-mediaclk-direct-f.patch \
+           file://0003-Remove-volatile-from-static-vars-to-fix-build-with-g.patch \
            "
 
 SRC_URI[sha256sum] = "b6e50e3a9bbcd56ee6ec71c33aa8332cc9c926b0c1fae995aac8b3040ebe39b0"
diff --git a/poky/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb b/poky/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb
index abf0a67..8f929ff 100644
--- a/poky/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb
+++ b/poky/meta/recipes-multimedia/libtiff/tiff_4.3.0.bb
@@ -15,6 +15,10 @@
 # exclude betas
 UPSTREAM_CHECK_REGEX = "tiff-(?P<pver>\d+(\.\d+)+).tar"
 
+# Tested with check from https://security-tracker.debian.org/tracker/CVE-2015-7313
+# and 4.3.0 doesn't have the issue
+CVE_CHECK_WHITELIST += "CVE-2015-7313"
+
 inherit autotools multilib_header
 
 CACHED_CONFIGUREVARS = "ax_cv_check_gl_libgl=no"
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.5.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.27.2.bb
similarity index 96%
rename from poky/meta/recipes-multimedia/mpg123/mpg123_1.26.5.bb
rename to poky/meta/recipes-multimedia/mpg123/mpg123_1.27.2.bb
index 7207bd1..9a91cc8 100644
--- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.5.bb
+++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.27.2.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169"
 
 SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "502a97e0d935be7e37d987338021d8f301bae35c2884f2a83d59c4b52466ef06"
+SRC_URI[sha256sum] = "52f6ceb962c05db0c043bb27acf5a721381f5f356ac4610e5221f50293891b04"
 
 UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch
new file mode 100644
index 0000000..b1a43bd
--- /dev/null
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch
@@ -0,0 +1,26 @@
+From 4ee244d0824e772ab35abb0f9df5e8088e16fc5d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 26 Apr 2021 19:30:40 +0200
+Subject: [PATCH] doxygen/meson.build: remove dependency on doxygen binary
+
+New meson refuses to complete confuguration if doxygen is absent
+even if this target is never actually run. As we never run it,
+let's remove it, until upstream and/or meson figure out that it's
+optional and should be treated as such.
+
+Upstream-Status: Inappropriate [needs proper upstream fix]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ doxygen/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/doxygen/meson.build b/doxygen/meson.build
+index afc0e49..df55c83 100644
+--- a/doxygen/meson.build
++++ b/doxygen/meson.build
+@@ -6,5 +6,3 @@ doxygen_conf = configure_file(
+   configuration : cdata,
+ )
+ 
+-run_target('doxygen',
+-  command : ['doxygen', doxygen_conf])
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb
index 03b9930..9b8338a 100644
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_14.2.bb
@@ -6,6 +6,7 @@
            file://0001-build-sys-Add-an-option-for-enabling-disabling-Valgr.patch \
            file://0001-meson-Check-for-__get_cpuid.patch \
            file://volatiles.04_pulse \
+           file://0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch \
            "
 SRC_URI[md5sum] = "1efc916251910f1e9d4df7810e3e69f8"
 SRC_URI[sha256sum] = "75d3f7742c1ae449049a4c88900e454b8b350ecaa8c544f3488a2562a9ff66f1"
diff --git a/poky/meta/recipes-multimedia/x264/x264_git.bb b/poky/meta/recipes-multimedia/x264/x264_git.bb
index f95fb0c..81354a8 100644
--- a/poky/meta/recipes-multimedia/x264/x264_git.bb
+++ b/poky/meta/recipes-multimedia/x264/x264_git.bb
@@ -14,7 +14,7 @@
            "
 UPSTREAM_CHECK_COMMITS = "1"
 
-SRCREV = "544c61f082194728d0391fb280a6e138ba320a96"
+SRCREV = "55d517bc4569272a2c9a367a4106c234aba2ffbc"
 
 PV = "r3039+git${SRCPV}"
 
diff --git a/poky/meta/recipes-rt/rt-tests/rt-tests.inc b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
index 0c89bad..e97140a 100644
--- a/poky/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -1,5 +1,5 @@
-# Version 1.8
-SRCREV = "6af88067da16c6e69243b376c3b6454ec694460b"
+SRCREV = "c9051a36d934503b4673ca5615f631bae36dead0"
+PV = "1.10+git${SRCPV}"
 PE = "1"
 
 SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=unstable/devel/latest"
diff --git a/poky/meta/recipes-sato/puzzles/files/0001-Use-Wno-error-format-overflow-if-the-compiler-suppor.patch b/poky/meta/recipes-sato/puzzles/files/0001-Use-Wno-error-format-overflow-if-the-compiler-suppor.patch
deleted file mode 100644
index d40a3b1..0000000
--- a/poky/meta/recipes-sato/puzzles/files/0001-Use-Wno-error-format-overflow-if-the-compiler-suppor.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 337799e40350b3db2441cc98f65ec36a74dfb356 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 21 Apr 2017 12:18:08 -0700
-Subject: [PATCH] Use -Wno-error=format-overflow= if the compiler supports it
-
-we need this warning to be suppressed with gcc7+
-however older compilers dont support it so we need
-a way to disble it only if compiler supports it
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 3a38c95..bb9035e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -42,7 +42,7 @@ fi
- if test "x$GCC" = "xyes"; then
-   AC_MSG_CHECKING([for usable gcc warning flags])
-   gccwarningflags=
--  for flag in -Wall -Werror -std=c89 -pedantic; do
-+  for flag in -Wall -Werror -std=c89 -pedantic -Wno-error=format-overflow=; do
-     ac_save_CFLAGS="$CFLAGS"
-     ac_save_LIBS="$LIBS"
-     CFLAGS="$CFLAGS$gccwarningflags $flag $GTK_CFLAGS"
--- 
-2.12.2
-
diff --git a/poky/meta/recipes-sato/puzzles/puzzles_git.bb b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
index 16a0858..69c3faa 100644
--- a/poky/meta/recipes-sato/puzzles/puzzles_git.bb
+++ b/poky/meta/recipes-sato/puzzles/puzzles_git.bb
@@ -2,17 +2,14 @@
 DESCRIPTION = "Collection of small computer programs which implement one-player puzzle games."
 HOMEPAGE = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=6099f4981f9461d7f411091e69a7f07a"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=93c2525113e094a4a744cf14d4de07e2"
 
-DEPENDS = "libxt"
-
-# The libxt requires x11 in DISTRO_FEATURES
+# gtk support includes a bunch of x11 headers
 REQUIRED_DISTRO_FEATURES = "x11"
 
-SRC_URI = "git://git.tartarus.org/simon/puzzles.git \
+SRC_URI = "git://git.tartarus.org/simon/puzzles.git;branch=main \
            file://fix-compiling-failure-with-option-g-O.patch \
            file://0001-palisade-Fix-warnings-with-clang-on-arm.patch \
-           file://0001-Use-Wno-error-format-overflow-if-the-compiler-suppor.patch \
            file://0001-pattern.c-Change-string-lenght-parameter-to-be-size_.patch \
            file://fix-ki-uninitialized.patch \
            file://0001-malloc-Check-for-excessive-values-to-malloc.patch \
@@ -20,27 +17,15 @@
            "
 
 UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "84cb4c6701e027090ff3fd955ce08065e20121b2"
+SRCREV = "c0da615a933a6676e2c6b957368067ca1bc10abd"
 PE = "2"
 PV = "0.0+git${SRCPV}"
 
 S = "${WORKDIR}/git"
 
-inherit autotools features_check pkgconfig
+inherit cmake features_check pkgconfig
 
-PACKAGECONFIG ??= "gtk3"
-PACKAGECONFIG[gtk2] = "--with-gtk=2,,gtk+,"
-PACKAGECONFIG[gtk3] = "--with-gtk=3,,gtk+3,"
-
-CFLAGS_append = " -Wno-deprecated-declarations"
-
-ASNEEDED = ""
-
-do_configure_prepend () {
-    cd ${S}
-    ./mkfiles.pl
-    cd ${B}
-}
+DEPENDS += "gtk+3"
 
 do_install_append () {
     # net conflicts with Samba, so rename it
@@ -68,16 +53,3 @@
     done
 }
 
-PACKAGES += "${PN}-extra"
-
-FILES_${PN} = ""
-FILES_${PN}-extra = "${prefix}/bin ${datadir}/applications"
-
-python __anonymous () {
-    var = d.expand("FILES_${PN}")
-    data = d.getVar(var, False)
-    for name in ("bridges", "fifteen", "inertia", "map", "samegame", "slant"):
-        data = data + " ${bindir}/%s" % name
-        data = data + " ${datadir}/applications/%s.desktop" % name
-    d.setVar(var, data)
-}
diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode/0001-libev-remove-deprecated-throw-specification.patch b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode/0001-libev-remove-deprecated-throw-specification.patch
deleted file mode 100644
index f10dca0..0000000
--- a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode/0001-libev-remove-deprecated-throw-specification.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 9a8f1d73e7b7e183768a8379ef32429a84f0e5c2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 26 Feb 2021 18:11:56 -0800
-Subject: [PATCH] libev: remove deprecated throw specification
-
-removes the throw specifications that are deprecated since C++11:
-warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libev/ev++.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libev/ev++.h b/libev/ev++.h
-index 4f0a36a..85ddf44 100644
---- a/libev/ev++.h
-+++ b/libev/ev++.h
-@@ -376,7 +376,7 @@ namespace ev {
- 
-   struct default_loop : loop_ref
-   {
--    default_loop (unsigned int flags = AUTO) throw (bad_loop)
-+    default_loop (unsigned int flags = AUTO)
- #if EV_MULTIPLICITY
-     : loop_ref (ev_default_loop (flags))
- #endif
--- 
-2.30.1
-
diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.22.bb b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.22.bb
deleted file mode 100644
index 283e8d7..0000000
--- a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.22.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require rxvt-unicode.inc
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
-                    file://src/main.C;beginline=1;endline=31;md5=d3600d7ee1062667fcd1193fbe6485f6"
-
-SRC_URI += "file://0001-libev-remove-deprecated-throw-specification.patch"
-
-SRC_URI[sha256sum] = "e94628e9bcfa0adb1115d83649f898d6edb4baced44f5d5b769c2eeb8b95addd"
-
diff --git a/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.26.bb b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.26.bb
new file mode 100644
index 0000000..3fe69a5
--- /dev/null
+++ b/poky/meta/recipes-sato/rxvt-unicode/rxvt-unicode_9.26.bb
@@ -0,0 +1,8 @@
+require rxvt-unicode.inc
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://src/main.C;beginline=1;endline=31;md5=d3600d7ee1062667fcd1193fbe6485f6"
+
+SRC_URI[sha256sum] = "643116b9a25d29ad29f4890131796d42e6d2d21312282a613ef66c80c5b8c98b"
+
diff --git a/poky/meta/recipes-sato/webkit/libwpe_1.8.0.bb b/poky/meta/recipes-sato/webkit/libwpe_1.10.0.bb
similarity index 90%
rename from poky/meta/recipes-sato/webkit/libwpe_1.8.0.bb
rename to poky/meta/recipes-sato/webkit/libwpe_1.10.0.bb
index 164831b..d90557e 100644
--- a/poky/meta/recipes-sato/webkit/libwpe_1.8.0.bb
+++ b/poky/meta/recipes-sato/webkit/libwpe_1.10.0.bb
@@ -14,7 +14,7 @@
 REQUIRED_DISTRO_FEATURES = "opengl"
 
 SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "a6f00a7d091cbd4db57fe7ee3b4c12c6350921d654ed79812800a26c888481d2"
+SRC_URI[sha256sum] = "2415e270d45e3595ed4052bc105f733744dc2d3677e12ff4a831e5029841084d"
 
 # This is a tweak of upstream-version-is-even needed because
 # ipstream directory contains tarballs for other components as well.
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch
index ca7b1bc..efe286e 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch
@@ -1,4 +1,4 @@
-From b145ab4273c59f4f908cdaff9e267241bd970e93 Mon Sep 17 00:00:00 2001
+From af90ae1f128626e8d57a8bcbc432596bfc2987af Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 3 Feb 2020 17:06:27 -0800
 Subject: [PATCH] Enable THREADS_PREFER_PTHREAD_FLAG
@@ -20,19 +20,19 @@
  2 files changed, 2 insertions(+)
 
 diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
-index 8732e935..9b4fbae7 100644
+index af6c0fac..f393d741 100644
 --- a/Source/cmake/OptionsGTK.cmake
 +++ b/Source/cmake/OptionsGTK.cmake
-@@ -32,6 +32,7 @@ set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
- if (USER_AGENT_BRANDING)
-     add_definitions(-DUSER_AGENT_BRANDING="${USER_AGENT_BRANDING}")
- endif ()
+@@ -6,6 +6,7 @@ WEBKIT_OPTION_BEGIN()
+ SET_PROJECT_VERSION(2 32 1)
+ 
+ set(USER_AGENT_BRANDING "" CACHE STRING "Branding to add to user agent string")
 +set(THREADS_PREFER_PTHREAD_FLAG ON)
  
  find_package(Cairo 1.14.0 REQUIRED)
  find_package(Fontconfig 2.8.0 REQUIRED)
 diff --git a/Source/cmake/OptionsJSCOnly.cmake b/Source/cmake/OptionsJSCOnly.cmake
-index 316c6240..2f712602 100644
+index 10664400..d9aca95a 100644
 --- a/Source/cmake/OptionsJSCOnly.cmake
 +++ b/Source/cmake/OptionsJSCOnly.cmake
 @@ -1,3 +1,4 @@
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch
deleted file mode 100644
index 68195f8..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 40520b0de69d8ca8e659248f5ffe641f33cc6dee Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 9 Mar 2021 14:16:58 -0800
-Subject: [PATCH] Extend atomics check to include 1-byte CAS test
-
-Rename ATOMIC_INT64_REQUIRES_LIBATOMIC to ATOMICS_REQUIRE_LIBATOMIC so
-it can reflect broader range which is now checked
-
-Rename ATOMIC_INT64_IS_BUILTIN to ATOMICS_ARE_BUILTIN
-
-Upstream-Status: Accepted [https://bugs.webkit.org/attachment.cgi?bugid=222959]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Source/JavaScriptCore/CMakeLists.txt   |  2 +-
- Source/WebKit/CMakeLists.txt           |  2 +-
- Source/cmake/WebKitCompilerFlags.cmake | 15 ++++++++++-----
- 3 files changed, 12 insertions(+), 7 deletions(-)
-
---- a/Source/JavaScriptCore/CMakeLists.txt
-+++ b/Source/JavaScriptCore/CMakeLists.txt
-@@ -129,7 +129,7 @@ if (USE_CAPSTONE)
-     list(APPEND JavaScriptCore_LIBRARIES capstone)
- endif ()
- 
--if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
-+if (ATOMICS_REQUIRE_LIBATOMIC)
-     list(APPEND JavaScriptCore_LIBRARIES atomic)
- endif ()
- 
---- a/Source/WebKit/CMakeLists.txt
-+++ b/Source/WebKit/CMakeLists.txt
-@@ -337,7 +337,7 @@ if (USE_LIBWEBRTC)
-     list(APPEND WebKit_LIBRARIES webrtc)
- endif ()
- 
--if (ATOMIC_INT64_REQUIRES_LIBATOMIC)
-+if (ATOMICS_REQUIRE_LIBATOMIC)
-     list(APPEND WebKit_PRIVATE_LIBRARIES atomic)
- endif ()
- 
---- a/Source/cmake/WebKitCompilerFlags.cmake
-+++ b/Source/cmake/WebKitCompilerFlags.cmake
-@@ -280,12 +280,17 @@ endif ()
- if (COMPILER_IS_GCC_OR_CLANG)
-     set(ATOMIC_TEST_SOURCE "
-         #include <atomic>
--        int main() { std::atomic<int64_t> i(0); i++; return 0; }
-+        int main() {
-+          std::atomic<int64_t> i(0);
-+          std::atomic<int8_t> j(0);
-+          i++; j++;
-+          return 0;
-+        }
-     ")
--    check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_IS_BUILTIN)
--    if (NOT ATOMIC_INT64_IS_BUILTIN)
-+    check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMICS_ARE_BUILTIN)
-+    if (NOT ATOMICS_ARE_BUILTIN)
-         set(CMAKE_REQUIRED_LIBRARIES atomic)
--        check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMIC_INT64_REQUIRES_LIBATOMIC)
-+        check_cxx_source_compiles("${ATOMIC_TEST_SOURCE}" ATOMICS_REQUIRE_LIBATOMIC)
-         unset(CMAKE_REQUIRED_LIBRARIES)
-     endif ()
- endif ()
---- a/Source/WTF/wtf/CMakeLists.txt
-+++ b/Source/WTF/wtf/CMakeLists.txt
-@@ -529,6 +529,10 @@ list(APPEND WTF_LIBRARIES
-     ICU::uc
- )
- 
-+if (ATOMICS_REQUIRE_LIBATOMIC)
-+    list(APPEND WTF_LIBRARIES atomic)
-+endif ()
-+
- set(WTF_INTERFACE_LIBRARIES WTF)
- set(WTF_INTERFACE_INCLUDE_DIRECTORIES ${WTF_FRAMEWORK_HEADERS_DIR})
- set(WTF_INTERFACE_DEPENDENCIES WTF_CopyHeaders)
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch
deleted file mode 100644
index 1ccef1f..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Fix-build-with-musl.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 828a500d5be62ba6fc94bd4fac3fe4bf1b1d4f6d Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 6 Oct 2017 17:00:08 +0300
-Subject: [PATCH] Fix build with musl
-
-Upstream-Status: Accepted
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- Source/JavaScriptCore/runtime/MachineContext.h | 10 +++++-----
- Source/WTF/wtf/PlatformHave.h                  |  2 +-
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
---- a/Source/JavaScriptCore/runtime/MachineContext.h
-+++ b/Source/JavaScriptCore/runtime/MachineContext.h
-@@ -196,7 +196,7 @@ static inline void*& stackPointerImpl(mc
- #error Unknown Architecture
- #endif
- 
--#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
-+#elif defined(__linux__)
- 
- #if CPU(X86)
-     return reinterpret_cast<void*&>((uintptr_t&) machineContext.gregs[REG_ESP]);
-@@ -347,7 +347,7 @@ static inline void*& framePointerImpl(mc
- #error Unknown Architecture
- #endif
- 
--#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
-+#elif defined(__linux__)
- 
- // The following sequence depends on glibc's sys/ucontext.h.
- #if CPU(X86)
-@@ -498,7 +498,7 @@ static inline void*& instructionPointerI
- #error Unknown Architecture
- #endif
- 
--#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
-+#elif defined(__linux__)
- 
- // The following sequence depends on glibc's sys/ucontext.h.
- #if CPU(X86)
-@@ -656,7 +656,7 @@ inline void*& argumentPointer<1>(mcontex
- #error Unknown Architecture
- #endif
- 
--#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
-+#elif defined(__linux__)
- 
- // The following sequence depends on glibc's sys/ucontext.h.
- #if CPU(X86)
-@@ -773,7 +773,7 @@ inline void*& llintInstructionPointer(mc
- #error Unknown Architecture
- #endif
- 
--#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
-+#elif defined(__linux__)
- 
- // The following sequence depends on glibc's sys/ucontext.h.
- #if CPU(X86)
---- a/Source/WTF/wtf/PlatformHave.h
-+++ b/Source/WTF/wtf/PlatformHave.h
-@@ -202,7 +202,7 @@
- #define HAVE_HOSTED_CORE_ANIMATION 1
- #endif
- 
--#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || defined(__GLIBC__) || defined(__BIONIC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)))
-+#if OS(DARWIN) || OS(FUCHSIA) || ((OS(FREEBSD) || defined(__linux__) || defined(__BIONIC__)) && (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)))
- #define HAVE_MACHINE_CONTEXT 1
- #endif
- 
---- a/Source/WebCore/xml/XPathGrammar.cpp
-+++ b/Source/WebCore/xml/XPathGrammar.cpp
-@@ -966,7 +966,7 @@ int yydebug;
- #if YYERROR_VERBOSE
- 
- # ifndef yystrlen
--#  if defined __GLIBC__ && defined _STRING_H
-+#  if defined __linux__ && defined _STRING_H
- #   define yystrlen strlen
- #  else
- /* Return the length of YYSTR.  */
-@@ -989,7 +989,7 @@ yystrlen (yystr)
- # endif
- 
- # ifndef yystpcpy
--#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
-+#  if defined __linux__ && defined _STRING_H && defined _GNU_SOURCE
- #   define yystpcpy stpcpy
- #  else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Properly-use-CompletionHandler-when-USE_OPENGL_OR_ES.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Properly-use-CompletionHandler-when-USE_OPENGL_OR_ES.patch
new file mode 100644
index 0000000..b536702
--- /dev/null
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Properly-use-CompletionHandler-when-USE_OPENGL_OR_ES.patch
@@ -0,0 +1,37 @@
+From 834f335bb3e63e0bf78eed0520df33d5c55e5e8a Mon Sep 17 00:00:00 2001
+From: "commit-queue@webkit.org"
+ <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
+Date: Sat, 10 Apr 2021 22:02:50 +0000
+Subject: [PATCH] Properly use CompletionHandler when USE_OPENGL_OR_ES is set
+ to OFF https://bugs.webkit.org/show_bug.cgi?id=224149
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Patch by Charlène Wendling <julianaito@posteo.jp> on 2021-04-10
+Reviewed by Fujii Hironori.
+
+* WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
+(WebKit::LayerTreeHost::forceRepaintAsync):
+
+git-svn-id: http://svn.webkit.org/repository/webkit/trunk@275802 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+Upstream-Status: Backport
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ .../WebPage/CoordinatedGraphics/LayerTreeHost.h        |  2 +-
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h
+index 6727d16c8c0b..db65f813267d 100644
+--- a/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h
++++ b/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h
+@@ -213,7 +213,7 @@ inline void LayerTreeHost::setRootCompositingLayer(WebCore::GraphicsLayer*) { }
+ inline void LayerTreeHost::setViewOverlayRootLayer(WebCore::GraphicsLayer*) { }
+ inline void LayerTreeHost::scrollNonCompositedContents(const WebCore::IntRect&) { }
+ inline void LayerTreeHost::forceRepaint() { }
+-inline bool LayerTreeHost::forceRepaintAsync(CompletionHandler<void()>&) { return false; }
++inline void LayerTreeHost::forceRepaintAsync(CompletionHandler<void()>&&) { }
+ inline void LayerTreeHost::sizeDidChange(const WebCore::IntSize&) { }
+ inline void LayerTreeHost::pauseRendering() { }
+ inline void LayerTreeHost::resumeRendering() { }
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/include_xutil.patch b/poky/meta/recipes-sato/webkit/webkitgtk/include_xutil.patch
index f770b38..ffe1b74 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/include_xutil.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/include_xutil.patch
@@ -1,3 +1,8 @@
+From d95f46e149226f634830e76cc1f4f8e3ee04ff5a Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 6 Nov 2020 04:38:13 +0100
+Subject: [PATCH] webkitgtk: fix build with x11 enabled
+
 Since
 https://github.com/WebKit/webkit/commit/acd3f32cd43c363be032f93ede3aa10c4ee97fa4
 it uses XVisualInfo which is defined in Xutil.h
@@ -11,9 +16,14 @@
 Upstream-Status: Pending
 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
 
-diff -uNr webkitgtk-2.30.2.orig/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp webkitgtk-2.30.2/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp
---- webkitgtk-2.30.2.orig/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp	2020-08-12 09:17:55.000000000 +0000
-+++ webkitgtk-2.30.2/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp	2020-11-06 03:11:40.379913528 +0000
+---
+ Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp b/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp
+index 2d66b9cd..424fb5a1 100644
+--- a/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp
++++ b/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp
 @@ -30,6 +30,7 @@
  
  #if PLATFORM(X11)
@@ -21,4 +31,4 @@
 +#include <X11/Xutil.h>
  #include <X11/extensions/Xcomposite.h>
  #if PLATFORM(GTK)
- #include <X11/extensions/Xdamage.h>
+ #include <X11/Xutil.h>
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch b/poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch
index 5033de4..f71f845 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/musl-lower-stack-usage.patch
@@ -1,4 +1,7 @@
-reduce thread stack and heap usage for javascriptcore on musl
+From 04e4999c6fa2e9810634745a07f1e380f27b8e61 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 17 Mar 2021 13:24:57 -0700
+Subject: [PATCH] reduce thread stack and heap usage for javascriptcore on musl
 
 default sizes for musl are smaller compared to glibc, this matches
 to musl defaults, avoid stack overflow crashes in jscore
@@ -16,9 +19,16 @@
 Upstream-Status: Accepted
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 
+---
+ Source/JavaScriptCore/runtime/OptionsList.h | 18 +++++++++++++++---
+ Source/WTF/wtf/Threading.h                  |  4 ++++
+ 2 files changed, 19 insertions(+), 3 deletions(-)
+
+diff --git a/Source/JavaScriptCore/runtime/OptionsList.h b/Source/JavaScriptCore/runtime/OptionsList.h
+index bb6d2f1d..a6209742 100644
 --- a/Source/JavaScriptCore/runtime/OptionsList.h
 +++ b/Source/JavaScriptCore/runtime/OptionsList.h
-@@ -75,6 +75,18 @@ constexpr bool enableWebAssemblyStreamin
+@@ -71,6 +71,18 @@ JS_EXPORT_PRIVATE bool canUseJITCage();
  // On instantiation of the first VM instance, the Options will be write protected
  // and cannot be modified thereafter.
  
@@ -37,7 +47,7 @@
  #define FOR_EACH_JSC_OPTION(v)                                          \
      v(Bool, useKernTCSM, defaultTCSMValue(), Normal, "Note: this needs to go before other options since they depend on this value.") \
      v(Bool, validateOptions, false, Normal, "crashes if mis-typed JSC options were passed to the VM") \
-@@ -90,9 +102,9 @@ constexpr bool enableWebAssemblyStreamin
+@@ -86,9 +98,9 @@ JS_EXPORT_PRIVATE bool canUseJITCage();
      \
      v(Bool, reportMustSucceedExecutableAllocations, false, Normal, nullptr) \
      \
@@ -50,19 +60,12 @@
      \
      v(Bool, crashOnDisallowedVMEntry, ASSERT_ENABLED, Normal, "Forces a crash if we attempt to enter the VM when disallowed") \
      v(Bool, crashIfCantAllocateJITMemory, false, Normal, nullptr) \
-@@ -601,7 +613,7 @@ public:
-     bool init(const char*);
-     bool isInRange(unsigned);
-     const char* rangeString() const { return (m_state > InitError) ? m_rangeString : s_nullRangeStr; }
--    
-+
-     void dump(PrintStream& out) const;
- 
- private:
+diff --git a/Source/WTF/wtf/Threading.h b/Source/WTF/wtf/Threading.h
+index 9495d6c1..190b3811 100644
 --- a/Source/WTF/wtf/Threading.h
 +++ b/Source/WTF/wtf/Threading.h
-@@ -56,6 +56,10 @@
- #include <array>
+@@ -60,6 +60,10 @@
+ #include <dispatch/dispatch.h>
  #endif
  
 +#if OS(LINUX) && !defined(__GLIBC__)
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch b/poky/meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch
index 0493150..aa11c13 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/reduce-memory-overheads.patch
@@ -1,22 +1,28 @@
+From ec6045fcf5a46123b54029a675d08d89a5e30f21 Mon Sep 17 00:00:00 2001
 From: Alberto Garcia <berto@igalia.com>
-Subject: Reduce memory usage when not using the Gold linker
-Bug-Debian: https://bugs.debian.org/949621
-Forwarded: no
+Date: Sun, 25 Apr 2021 18:45:13 +0000
+Subject: [PATCH] Reduce memory usage when not using the Gold linker
 
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ Source/cmake/OptionsCommon.cmake | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake
+index dd4da682..71ad6106 100644
 --- a/Source/cmake/OptionsCommon.cmake
 +++ b/Source/cmake/OptionsCommon.cmake
-@@ -95,6 +95,12 @@ option(GCC_OFFLINEASM_SOURCE_MAP
-   "Produce debug line information for offlineasm-generated code"
+@@ -101,6 +101,11 @@ option(GCC_OFFLINEASM_SOURCE_MAP
    ${GCC_OFFLINEASM_SOURCE_MAP_DEFAULT})
  
+ option(USE_APPLE_ICU "Use Apple's internal ICU" ${APPLE})
 +# Pass --reduce-memory-overheads to the bfd linker in order to save memory
 +if (NOT USE_LD_GOLD)
 +    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--reduce-memory-overheads")
 +    set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--reduce-memory-overheads")
 +endif ()
-+
+ 
  # Enable the usage of OpenMP.
  #  - At this moment, OpenMP is only used as an alternative implementation
- #    to native threads for the parallelization of the SVG filters.
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.30.6.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.32.1.bb
similarity index 96%
rename from poky/meta/recipes-sato/webkit/webkitgtk_2.30.6.bb
rename to poky/meta/recipes-sato/webkit/webkitgtk_2.32.1.bb
index 7d0d0fc..7abf96c 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.30.6.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.32.1.bb
@@ -15,15 +15,14 @@
            file://0001-Fix-racy-parallel-build-of-WebKit2-4.0.gir.patch \
            file://0001-Tweak-gtkdoc-settings-so-that-gtkdoc-generation-work.patch \
            file://0001-Enable-THREADS_PREFER_PTHREAD_FLAG.patch \
-           file://0001-Fix-build-with-musl.patch \
            file://include_xutil.patch \
            file://reduce-memory-overheads.patch \
-           file://0001-Extend-atomics-check-to-include-1-byte-CAS-test.patch \
            file://musl-lower-stack-usage.patch \
            file://0001-MiniBrowser-Fix-reproduciblity.patch \
+           file://0001-Properly-use-CompletionHandler-when-USE_OPENGL_OR_ES.patch \
            "
 
-SRC_URI[sha256sum] = "50736ec7a91770b5939d715196e5fe7209b93efcdeef425b24dc51fb8e9d7c1e"
+SRC_URI[sha256sum] = "136117317f70f66486f71b8edf5e46f8776403c5d8a296e914b11a36ef836917"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
 
@@ -76,6 +75,7 @@
 		-DENABLE_MINIBROWSER=ON \
                 -DPYTHON_EXECUTABLE=`which python3` \
                 -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
+                -DENABLE_GAMEPAD=OFF \
 		"
 
 # Javascript JIT is not supported on ARC
diff --git a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.3.bb b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.4.bb
similarity index 88%
rename from poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.3.bb
rename to poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.4.bb
index d27111a..28b2a92 100644
--- a/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.3.bb
+++ b/poky/meta/recipes-sato/webkit/wpebackend-fdo_1.8.4.bb
@@ -13,7 +13,7 @@
 REQUIRED_DISTRO_FEATURES = "opengl"
 
 SRC_URI = "https://wpewebkit.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "3d0b4282a1bd9e0664d7a20abe14e982f3285296ac62de56cae2a404b9d28b9e"
+SRC_URI[sha256sum] = "def59bed5e8cdabb65ffa76ee2eef349fba7b42a75dac80f3da5954b17f4074a"
 
 # This is a tweak of upstream-version-is-even needed because
 # ipstream directory contains tarballs for other components as well.
diff --git a/poky/meta/recipes-support/atk/at-spi2-core_2.40.0.bb b/poky/meta/recipes-support/atk/at-spi2-core_2.40.1.bb
similarity index 93%
rename from poky/meta/recipes-support/atk/at-spi2-core_2.40.0.bb
rename to poky/meta/recipes-support/atk/at-spi2-core_2.40.1.bb
index e80fa26..83e1908 100644
--- a/poky/meta/recipes-support/atk/at-spi2-core_2.40.0.bb
+++ b/poky/meta/recipes-support/atk/at-spi2-core_2.40.1.bb
@@ -11,7 +11,7 @@
 
 SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "4196a7d30a0051e52a67b8ce4283fe79ae5e4e14a725719934565adf1d333429"
+SRC_URI[sha256sum] = "9f66e3a4ee42db897af478a826b1366d7011a6d55ddb7e9d4bfeb3300ab23856"
 
 X11DEPENDS = "virtual/libx11 libxi libxtst"
 
diff --git a/poky/meta/recipes-support/attr/acl_2.2.53.bb b/poky/meta/recipes-support/attr/acl_2.3.1.bb
similarity index 94%
rename from poky/meta/recipes-support/attr/acl_2.2.53.bb
rename to poky/meta/recipes-support/attr/acl_2.3.1.bb
index 7cee459..7f6cbf5 100644
--- a/poky/meta/recipes-support/attr/acl_2.2.53.bb
+++ b/poky/meta/recipes-support/attr/acl_2.3.1.bb
@@ -21,8 +21,7 @@
            file://0001-test-patch-out-failing-bits.patch \
            "
 
-SRC_URI[md5sum] = "007aabf1dbb550bcddde52a244cd1070"
-SRC_URI[sha256sum] = "06be9865c6f418d851ff4494e12406568353b891ffe1f596b34693c387af26c7"
+SRC_URI[sha256sum] = "760c61c68901b37fdd5eefeeaf4c0c7a26bdfdd8ac747a1edff1ce0e243c11af"
 
 inherit autotools gettext ptest
 
diff --git a/poky/meta/recipes-support/boost/boost-1.76.0.inc b/poky/meta/recipes-support/boost/boost-1.76.0.inc
index eb5d484..c02f38b 100644
--- a/poky/meta/recipes-support/boost/boost-1.76.0.inc
+++ b/poky/meta/recipes-support/boost/boost-1.76.0.inc
@@ -11,7 +11,7 @@
 BOOST_MAJ = "${@"_".join(d.getVar("PV").split(".")[0:2])}"
 BOOST_P = "boost_${BOOST_VER}"
 
-SRC_URI = "https://dl.bintray.com/boostorg/release/${PV}/source/${BOOST_P}.tar.bz2"
+SRC_URI = "https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/${BOOST_P}.tar.bz2"
 SRC_URI[sha256sum] = "f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41"
 
 UPSTREAM_CHECK_URI = "http://www.boost.org/users/download/"
diff --git a/poky/meta/recipes-support/curl/curl_7.76.0.bb b/poky/meta/recipes-support/curl/curl_7.77.0.bb
similarity index 97%
rename from poky/meta/recipes-support/curl/curl_7.76.0.bb
rename to poky/meta/recipes-support/curl/curl_7.77.0.bb
index db63181..ee1aa89 100644
--- a/poky/meta/recipes-support/curl/curl_7.76.0.bb
+++ b/poky/meta/recipes-support/curl/curl_7.77.0.bb
@@ -13,7 +13,7 @@
            file://0001-replace-krb5-config-with-pkg-config.patch \
 "
 
-SRC_URI[sha256sum] = "e29bfe3633701590d75b0071bbb649ee5ca4ca73f00649268bd389639531c49a"
+SRC_URI[sha256sum] = "6c0c28868cb82593859fc43b9c8fdb769314c855c05cf1b56b023acf855df8ea"
 
 # Curl has used many names over the years...
 CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
diff --git a/poky/meta/recipes-support/db/db_5.3.28.bb b/poky/meta/recipes-support/db/db_5.3.28.bb
index 9cb57e6..b2ae98f 100644
--- a/poky/meta/recipes-support/db/db_5.3.28.bb
+++ b/poky/meta/recipes-support/db/db_5.3.28.bb
@@ -15,7 +15,7 @@
 LICENSE = "Sleepycat"
 RCONFLICTS_${PN} = "db3"
 
-CVE_PRODUCT = "oracle_berkeley_db"
+CVE_PRODUCT = "oracle_berkeley_db berkeley_db"
 CVE_VERSION = "11.2.${PV}"
 
 PR = "r1"
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_172.bb b/poky/meta/recipes-support/diffoscope/diffoscope_175.bb
similarity index 92%
rename from poky/meta/recipes-support/diffoscope/diffoscope_172.bb
rename to poky/meta/recipes-support/diffoscope/diffoscope_175.bb
index 86dd5d8..853f8dd 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_172.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_175.bb
@@ -12,7 +12,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "5ffe7f38555c6409bc7e7edc277ed77dd78641fe1306fc38d153dbbe445ddea4"
+SRC_URI[sha256sum] = "b87481752815140e35088647ccdea13297e41a2d72772e842590360b662f7533"
 
 RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic python3-rpm"
 
diff --git a/poky/meta/recipes-support/gnupg/gnupg/0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch b/poky/meta/recipes-support/gnupg/gnupg/0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch
deleted file mode 100644
index 5c9c022..0000000
--- a/poky/meta/recipes-support/gnupg/gnupg/0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 59a3c76d4016ffc615f1c45184f4c6820061d69c Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Wed, 16 Aug 2017 11:14:12 +0800
-Subject: [PATCH 1/4] Use pkg-config to find pth instead of pth-config.
-
-Upstream-Status: Denied
-[not submitted but they've been clear they don't want a pkg-config
-dependency]
-
-RP 2014/5/22
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Rebase to 2.1.23
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- m4/gnupg-pth.m4 | 53 ++++++++---------------------------------------------
- 1 file changed, 8 insertions(+), 45 deletions(-)
-
-diff --git a/m4/gnupg-pth.m4 b/m4/gnupg-pth.m4
-index 6dc9e0e..5892531 100644
---- a/m4/gnupg-pth.m4
-+++ b/m4/gnupg-pth.m4
-@@ -17,33 +17,9 @@ dnl implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- # Taken and modified from the m4 macros which come with Pth.
- AC_DEFUN([GNUPG_PTH_VERSION_CHECK],
-   [
--    _pth_version=`$PTH_CONFIG --version | awk 'NR==1 {print [$]3}'`
-     _req_version="ifelse([$1],,1.2.0,$1)"
-+    PKG_CHECK_MODULES(PTH, [pth >= $_req_version], [have_pth=yes], [have_pth=no])
- 
--    AC_MSG_CHECKING(for PTH - version >= $_req_version)
--    for _var in _pth_version _req_version; do
--        eval "_val=\"\$${_var}\""
--        _major=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\1/'`
--        _minor=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\2/'`
--        _rtype=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\3/'`
--        _micro=`echo $_val | sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\([[ab.]]\)\([[0-9]]*\)/\4/'`
--        case $_rtype in
--            "a" ) _rtype=0 ;;
--            "b" ) _rtype=1 ;;
--            "." ) _rtype=2 ;;
--        esac
--        _hex=`echo dummy | awk '{ printf("%d%02d%1d%02d", major, minor, rtype, micro); }' \
--              "major=$_major" "minor=$_minor" "rtype=$_rtype" "micro=$_micro"`
--        eval "${_var}_hex=\"\$_hex\""
--    done
--    have_pth=no
--    if test ".$_pth_version_hex" != .; then
--        if test ".$_req_version_hex" != .; then
--            if test $_pth_version_hex -ge $_req_version_hex; then
--                have_pth=yes
--            fi
--        fi
--    fi
-     if test $have_pth = yes; then
-        AC_MSG_RESULT(yes)
-        AC_MSG_CHECKING([whether PTH installation is sane])
-@@ -51,9 +27,9 @@ AC_DEFUN([GNUPG_PTH_VERSION_CHECK],
-          _gnupg_pth_save_cflags=$CFLAGS
-          _gnupg_pth_save_ldflags=$LDFLAGS
-          _gnupg_pth_save_libs=$LIBS
--         CFLAGS="$CFLAGS `$PTH_CONFIG --cflags`"
--         LDFLAGS="$LDFLAGS `$PTH_CONFIG --ldflags`"
--         LIBS="$LIBS `$PTH_CONFIG --libs --all`"
-+         CFLAGS="$CFLAGS $PTH_CFLAGS"
-+         LDFLAGS="$LDFLAGS $PTH_LDFLAGS"
-+         LIBS="$LIBS $PTH_LIBS"
-          AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pth.h>
-                                          ],
-                                          [[ pth_init ();]])],
-@@ -80,26 +56,13 @@ AC_DEFUN([GNUPG_PTH_VERSION_CHECK],
- # PTH_CLFAGS and PTH_LIBS are AS_SUBST.
- #
- AC_DEFUN([GNUPG_PATH_PTH],
--[ AC_ARG_WITH(pth-prefix,
--             AC_HELP_STRING([--with-pth-prefix=PFX],
--                           [prefix where GNU Pth is installed (optional)]),
--     pth_config_prefix="$withval", pth_config_prefix="")
--  if test x$pth_config_prefix != x ; then
--     PTH_CONFIG="$pth_config_prefix/bin/pth-config"
--  fi
--  AC_PATH_PROG(PTH_CONFIG, pth-config, no)
-+[
-   tmp=ifelse([$1], ,1.3.7,$1)
--  if test "$PTH_CONFIG" != "no"; then
--    GNUPG_PTH_VERSION_CHECK($tmp)
--    if test $have_pth = yes; then      
--       PTH_CFLAGS=`$PTH_CONFIG --cflags`
--       PTH_LIBS=`$PTH_CONFIG --ldflags`
--       PTH_LIBS="$PTH_LIBS `$PTH_CONFIG --libs --all`"
--       AC_DEFINE(HAVE_PTH, 1,
-+  GNUPG_PTH_VERSION_CHECK($tmp)
-+  if test $have_pth = yes; then
-+      AC_DEFINE(HAVE_PTH, 1,
-                 [Defined if the GNU Pth is available])
--    fi
-   fi
-   AC_SUBST(PTH_CFLAGS)
-   AC_SUBST(PTH_LIBS)
- ])
--
--- 
-1.8.3.1
-
diff --git a/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch b/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
index a0af2d4..ecd6263 100644
--- a/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
+++ b/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
@@ -1,4 +1,4 @@
-From abc5c396aaddaef2e6811362e3e0cc0da28c2b34 Mon Sep 17 00:00:00 2001
+From 52ba9d34cd9317145ee8a93afd5d73dd0cbf3182 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 22 Jan 2018 18:00:21 +0200
 Subject: [PATCH] configure.ac: use a custom value for the location of
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 64cb8c6..3fe9027 100644
+index 7a2d410..14a7203 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1824,7 +1824,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
+@@ -1841,7 +1841,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
  
  AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool])
  
diff --git a/poky/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch b/poky/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch
index 6d86e5c..d3790ac 100644
--- a/poky/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch
+++ b/poky/meta/recipes-support/gnupg/gnupg/0002-use-pkgconfig-instead-of-npth-config.patch
@@ -1,7 +1,7 @@
-From 53c2aec2e13f4e2d09be7148869c862f07dfdd4d Mon Sep 17 00:00:00 2001
+From 15668161c351aee5f29152db2972b1648da11210 Mon Sep 17 00:00:00 2001
 From: Saul Wold <sgw@linux.intel.com>
 Date: Wed, 16 Aug 2017 11:16:30 +0800
-Subject: [PATCH 2/4] use pkgconfig instead of npth config
+Subject: [PATCH] use pkgconfig instead of npth config
 
 Upstream-Status: Inappropriate [openembedded specific]
 
@@ -9,29 +9,45 @@
 
 Rebase to 2.1.23
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
 ---
- m4/npth.m4 | 34 ++++++++--------------------------
- 1 file changed, 8 insertions(+), 26 deletions(-)
+ m4/npth.m4 | 53 ++++++++---------------------------------------------
+ 1 file changed, 8 insertions(+), 45 deletions(-)
 
 diff --git a/m4/npth.m4 b/m4/npth.m4
-index 17c2644..15a931b 100644
+index 06cdaee..4adda01 100644
 --- a/m4/npth.m4
 +++ b/m4/npth.m4
-@@ -17,10 +17,10 @@ AC_DEFUN([_AM_PATH_NPTH_CONFIG],
+@@ -19,25 +19,10 @@ AC_DEFUN([_AM_PATH_NPTH_CONFIG],
    if test "x$npth_config_prefix" != x ; then
        NPTH_CONFIG="$npth_config_prefix/bin/npth-config"
    fi
--  AC_PATH_PROG(NPTH_CONFIG, npth-config, no)
 +  AC_PATH_PROG(PKGCONFIG, pkg-config, no)
  
+-  use_gpgrt_config=""
+-  if test x"$NPTH_CONFIG" = x -a x"$GPGRT_CONFIG" != x -a "$GPGRT_CONFIG" != "no"; then
+-    if $GPGRT_CONFIG npth --exists; then
+-      NPTH_CONFIG="$GPGRT_CONFIG npth"
+-      AC_MSG_NOTICE([Use gpgrt-config as npth-config])
+-      use_gpgrt_config=yes
+-    fi
+-  fi
+-  if test -z "$use_gpgrt_config"; then
+-    AC_PATH_PROG(NPTH_CONFIG, npth-config, no)
+-  fi
+-
 -  if test "$NPTH_CONFIG" != "no" ; then
--    npth_version=`$NPTH_CONFIG --version`
+-    if test -z "$use_gpgrt_config"; then
+-      npth_version=`$NPTH_CONFIG --version`
+-    else
+-      npth_version=`$NPTH_CONFIG --modversion`
+-    fi
 +  if test "$PKGCONFIG" != "no" ; then
 +    npth_version=`$PKGCONFIG --modversion npth`
    fi
    npth_version_major=`echo $npth_version | \
                 sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-@@ -45,7 +45,7 @@ AC_DEFUN([AM_PATH_NPTH],
+@@ -62,7 +47,7 @@ AC_DEFUN([AM_PATH_NPTH],
  
    AC_MSG_CHECKING(for NPTH - version >= $min_npth_version)
    ok=no
@@ -40,7 +56,7 @@
      req_major=`echo $min_npth_version | \
                 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
      req_minor=`echo $min_npth_version | \
-@@ -66,28 +66,9 @@ AC_DEFUN([AM_PATH_NPTH],
+@@ -83,32 +68,9 @@ AC_DEFUN([AM_PATH_NPTH],
    fi
    if test $ok = yes; then
      AC_MSG_RESULT([yes ($npth_version)])
@@ -48,20 +64,24 @@
 -    AC_MSG_RESULT(no)
 -  fi
 -  if test $ok = yes; then
--     # If we have a recent NPTH, we should also check that the
--     # API is compatible.
--     if test "$req_npth_api" -gt 0 ; then
+-    # If we have a recent NPTH, we should also check that the
+-    # API is compatible.
+-    if test "$req_npth_api" -gt 0 ; then
+-      if test -z "$use_gpgrt_config"; then
 -        tmp=`$NPTH_CONFIG --api-version 2>/dev/null || echo 0`
--        if test "$tmp" -gt 0 ; then
--           AC_MSG_CHECKING([NPTH API version])
--           if test "$req_npth_api" -eq "$tmp" ; then
--             AC_MSG_RESULT([okay])
--           else
--             ok=no
--             AC_MSG_RESULT([does not match. want=$req_npth_api got=$tmp])
--           fi
+-      else
+-        tmp=`$NPTH_CONFIG --variable=api_version 2>/dev/null || echo 0`
+-      fi
+-      if test "$tmp" -gt 0 ; then
+-        AC_MSG_CHECKING([NPTH API version])
+-        if test "$req_npth_api" -eq "$tmp" ; then
+-          AC_MSG_RESULT([okay])
+-        else
+-          ok=no
+-          AC_MSG_RESULT([does not match. want=$req_npth_api got=$tmp])
 -        fi
--     fi
+-      fi
+-    fi
 -  fi
 -  if test $ok = yes; then
 -    NPTH_CFLAGS=`$NPTH_CONFIG --cflags`
@@ -70,9 +90,9 @@
 +    NPTH_LIBS=`$PKGCONFIG --libs npth`
 +    AC_MSG_WARN([[GOT HERE - $NPTH_LIBS ]])
      ifelse([$2], , :, [$2])
-     npth_config_host=`$NPTH_CONFIG --host 2>/dev/null || echo none`
-     if test x"$npth_config_host" != xnone ; then
-@@ -103,6 +84,7 @@ AC_DEFUN([AM_PATH_NPTH],
+     if test -z "$use_gpgrt_config"; then
+       npth_config_host=`$NPTH_CONFIG --host 2>/dev/null || echo none`
+@@ -128,6 +90,7 @@ AC_DEFUN([AM_PATH_NPTH],
        fi
      fi
    else
@@ -80,6 +100,3 @@
      NPTH_CFLAGS=""
      NPTH_LIBS=""
      ifelse([$3], , :, [$3])
--- 
-1.8.3.1
-
diff --git a/poky/meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch b/poky/meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch
index a13b4d5..b4106d3 100644
--- a/poky/meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch
+++ b/poky/meta/recipes-support/gnupg/gnupg/0003-dirmngr-uses-libgpg-error.patch
@@ -1,4 +1,4 @@
-From 6c75656b68cb6e38b039ae532bd39437cd6daec5 Mon Sep 17 00:00:00 2001
+From 9ace8f1b68ab708c44dce4c0152b975fbceb0398 Mon Sep 17 00:00:00 2001
 From: Saul Wold <sgw@linux.intel.com>
 Date: Wed, 16 Aug 2017 11:18:01 +0800
 Subject: [PATCH] dirmngr uses libgpg error
@@ -11,18 +11,19 @@
 Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
 
 ---
- dirmngr/Makefile.am | 1 +
- 1 file changed, 1 insertion(+)
+ dirmngr/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/dirmngr/Makefile.am b/dirmngr/Makefile.am
-index 00d3c42..450d873 100644
+index 77ca3f5..1446775 100644
 --- a/dirmngr/Makefile.am
 +++ b/dirmngr/Makefile.am
-@@ -101,6 +101,7 @@ dirmngr_LDADD = $(libcommonpth) \
+@@ -86,7 +86,7 @@ endif
+ dirmngr_LDADD = $(libcommonpth) \
          $(DNSLIBS) $(LIBASSUAN_LIBS) \
  	$(LIBGCRYPT_LIBS) $(KSBA_LIBS) $(NPTH_LIBS) \
- 	$(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV) $(NETLIBS) \
-+	$(GPG_ERROR_LIBS) \
-         $(dirmngr_robj)
+-	$(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV) $(NETLIBS)
++	$(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV) $(NETLIBS) $(GPG_ERROR_LIBS)
  if USE_LDAP
  dirmngr_LDADD += $(ldaplibs)
+ endif
diff --git a/poky/meta/recipes-support/gnupg/gnupg/relocate.patch b/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
index 7f7812c..9b0f0a8 100644
--- a/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
+++ b/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
@@ -1,4 +1,4 @@
-From bd66af2ac7bb6d9294ac8055a55462ba7c4f9c9b Mon Sep 17 00:00:00 2001
+From d6992692d1c36983b709fe1ff049cc91ef2c408a Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Wed, 19 Sep 2018 14:44:40 +0100
 Subject: [PATCH] Allow the environment to override where gnupg looks for its
@@ -12,10 +12,10 @@
  1 file changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/common/homedir.c b/common/homedir.c
-index 4b6e46e..58989b4 100644
+index 85e09c4..e1410e2 100644
 --- a/common/homedir.c
 +++ b/common/homedir.c
-@@ -763,7 +763,7 @@ gnupg_socketdir (void)
+@@ -788,7 +788,7 @@ gnupg_socketdir (void)
    if (!name)
      {
        unsigned int dummy;
@@ -24,7 +24,7 @@
      }
  
    return name;
-@@ -789,7 +789,7 @@ gnupg_sysconfdir (void)
+@@ -814,7 +814,7 @@ gnupg_sysconfdir (void)
      }
    return name;
  #else /*!HAVE_W32_SYSTEM*/
@@ -33,7 +33,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -818,7 +818,7 @@ gnupg_bindir (void)
+@@ -843,7 +843,7 @@ gnupg_bindir (void)
    else
      return rdir;
  #else /*!HAVE_W32_SYSTEM*/
@@ -42,7 +42,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -831,7 +831,7 @@ gnupg_libexecdir (void)
+@@ -856,7 +856,7 @@ gnupg_libexecdir (void)
  #ifdef HAVE_W32_SYSTEM
    return gnupg_bindir ();
  #else /*!HAVE_W32_SYSTEM*/
@@ -51,7 +51,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -845,7 +845,7 @@ gnupg_libdir (void)
+@@ -870,7 +870,7 @@ gnupg_libdir (void)
      name = xstrconcat (w32_rootdir (), DIRSEP_S "lib" DIRSEP_S "gnupg", NULL);
    return name;
  #else /*!HAVE_W32_SYSTEM*/
@@ -60,7 +60,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -859,7 +859,7 @@ gnupg_datadir (void)
+@@ -884,7 +884,7 @@ gnupg_datadir (void)
      name = xstrconcat (w32_rootdir (), DIRSEP_S "share" DIRSEP_S "gnupg", NULL);
    return name;
  #else /*!HAVE_W32_SYSTEM*/
@@ -69,7 +69,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -875,7 +875,7 @@ gnupg_localedir (void)
+@@ -900,7 +900,7 @@ gnupg_localedir (void)
                         NULL);
    return name;
  #else /*!HAVE_W32_SYSTEM*/
@@ -78,7 +78,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -943,7 +943,7 @@ gnupg_cachedir (void)
+@@ -971,7 +971,7 @@ gnupg_cachedir (void)
      }
    return dir;
  #else /*!HAVE_W32_SYSTEM*/
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.2.27.bb b/poky/meta/recipes-support/gnupg/gnupg_2.3.1.bb
similarity index 94%
rename from poky/meta/recipes-support/gnupg/gnupg_2.2.27.bb
rename to poky/meta/recipes-support/gnupg/gnupg_2.3.1.bb
index 1181c83..77331ef 100644
--- a/poky/meta/recipes-support/gnupg/gnupg_2.2.27.bb
+++ b/poky/meta/recipes-support/gnupg/gnupg_2.3.1.bb
@@ -15,7 +15,6 @@
 
 UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
 SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
-           file://0001-Use-pkg-config-to-find-pth-instead-of-pth-config.patch \
            file://0002-use-pkgconfig-instead-of-npth-config.patch \
            file://0003-dirmngr-uses-libgpg-error.patch \
            file://0004-autogen.sh-fix-find-version-for-beta-checking.patch \
@@ -25,7 +24,7 @@
                                 file://relocate.patch"
 SRC_URI_append_class-nativesdk = " file://relocate.patch"
 
-SRC_URI[sha256sum] = "34e60009014ea16402069136e0a5f63d9b65f90096244975db5cea74b3d02399"
+SRC_URI[sha256sum] = "c498db346a9b9a4b399e514c8f56dfc0a888ce8f327f10376ff984452cd154ec"
 
 EXTRA_OECONF = "--disable-ldap \
 		--disable-ccid-driver \
diff --git a/poky/meta/recipes-support/gnutls/libtasn1_4.16.0.bb b/poky/meta/recipes-support/gnutls/libtasn1_4.17.0.bb
similarity index 77%
rename from poky/meta/recipes-support/gnutls/libtasn1_4.16.0.bb
rename to poky/meta/recipes-support/gnutls/libtasn1_4.17.0.bb
index 21ef5c3..64e798b 100644
--- a/poky/meta/recipes-support/gnutls/libtasn1_4.16.0.bb
+++ b/poky/meta/recipes-support/gnutls/libtasn1_4.17.0.bb
@@ -8,7 +8,7 @@
 LICENSE_${PN} = "LGPLv2.1+"
 LIC_FILES_CHKSUM = "file://doc/COPYING;md5=d32239bcb673463ab874e80d47fae504 \
                     file://doc/COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c \
-                    file://LICENSE;md5=75ac100ec923f959898182307970c360"
+                    file://COPYING;md5=75ac100ec923f959898182307970c360"
 
 SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
            file://dont-depend-on-help2man.patch \
@@ -16,8 +16,8 @@
 
 DEPENDS = "bison-native"
 
-SRC_URI[md5sum] = "531208de3729d42e2af0a32890f08736"
-SRC_URI[sha256sum] = "0e0fb0903839117cb6e3b56e68222771bebf22ad7fc2295a0ed7d576e8d4329d"
+SRC_URI[md5sum] = "c46f6eb3bd1287031ae5d36465094402"
+SRC_URI[sha256sum] = "ece7551cea7922b8e10d7ebc70bc2248d1fdd73351646a2d6a8d68a9421c45a5"
 
 inherit autotools texinfo lib_package gtk-doc
 
diff --git a/poky/meta/recipes-support/libcap/libcap_2.49.bb b/poky/meta/recipes-support/libcap/libcap_2.49.bb
index 3f4a925..eb9fc5b 100644
--- a/poky/meta/recipes-support/libcap/libcap_2.49.bb
+++ b/poky/meta/recipes-support/libcap/libcap_2.49.bb
@@ -20,15 +20,6 @@
 
 inherit lib_package
 
-# do NOT pass target cflags to host compilations
-#
-do_configure() {
-	# libcap uses := for compilers, fortunately, it gives us a hint
-	# on what should be replaced with ?=
-	sed -e 's,:=,?=,g' -i Make.Rules
-	sed -e 's,^BUILD_CFLAGS ?= ,BUILD_CFLAGS := $(BUILD_CFLAGS) ,' -i Make.Rules
-}
-
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
 PACKAGECONFIG_class-native ??= ""
 
@@ -44,11 +35,15 @@
 
 EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}"
 
-# these are present in the libcap defaults, so include in our CFLAGS too
-CFLAGS += "-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
-
 do_compile() {
-	oe_runmake ${PACKAGECONFIG_CONFARGS}
+	unset CFLAGS BUILD_CFLAGS
+	oe_runmake \
+		${PACKAGECONFIG_CONFARGS} \
+		AR="${AR}" \
+		CC="${CC}" \
+		RANLIB="${RANLIB}" \
+		COPTS="${CFLAGS}" \
+		BUILD_COPTS="${BUILD_CFLAGS}"
 }
 
 do_install() {
diff --git a/poky/meta/recipes-support/libfm/libfm_1.3.1.bb b/poky/meta/recipes-support/libfm/libfm_1.3.2.bb
similarity index 93%
rename from poky/meta/recipes-support/libfm/libfm_1.3.1.bb
rename to poky/meta/recipes-support/libfm/libfm_1.3.2.bb
index b6f9df0..eb0949a 100644
--- a/poky/meta/recipes-support/libfm/libfm_1.3.1.bb
+++ b/poky/meta/recipes-support/libfm/libfm_1.3.2.bb
@@ -18,8 +18,7 @@
            file://0001-Do-not-add-library-path-to-avoid-host-contamination.patch \
            "
 
-SRC_URI[md5sum] = "c15ecd2c9317e2c385cd3f046d0b61ba"
-SRC_URI[sha256sum] = "96b1244bde41ca0eef0332cfb5c67bb16725dfd102128f3e6f74fadc13a1cfe4"
+SRC_URI[sha256sum] = "a5042630304cf8e5d8cff9d565c6bd546f228b48c960153ed366a34e87cad1e5"
 
 inherit autotools pkgconfig gtk-doc gettext features_check mime mime-xdg
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch
new file mode 100644
index 0000000..0f6e309
--- /dev/null
+++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch
@@ -0,0 +1,27 @@
+From 7437acb228678ea5d8288b930b4f5b72c3d449ed Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 24 May 2021 11:03:42 +0200
+Subject: [PATCH] configure.ac: do not hardcode gnu libc when generating
+ lock-obj
+
+This erroneously excluded e.g. musl libc.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c0aab53..6d46d13 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -603,7 +603,7 @@ if test x"$gl_use_threads" = xno; then
+   AC_MSG_NOTICE([generated src/lock-obj-pub.native.h for $host])
+ elif test x$cross_compiling = xyes; then
+   case $host in
+-    *-*-linux-gnu*)
++    *-*-linux-*)
+     AC_CHECK_TOOL(OBJDUMP, [objdump])
+     if test -n "$OBJDUMP"; then
+       lock_obj_h_generated=yes
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/fix-cross.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/fix-cross.patch
new file mode 100644
index 0000000..ae424cd
--- /dev/null
+++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/fix-cross.patch
@@ -0,0 +1,28 @@
+From: David Michael <fedora.dm0@gmail.com>
+Date: Fri, 26 Mar 2021 07:06:50 +0000 (+0900)
+Subject: build: Fix generation of lock-obj-pub.native.h for cross build.
+X-Git-Url: http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=commitdiff_plain;h=33593864cd54143db594c4237bba41e14179061c
+
+build: Fix generation of lock-obj-pub.native.h for cross build.
+
+* src/gen-lock-obj.sh: Capture echo output with quotes.
+
+Fixes-commit: 99ae862a96a569724f49a604ebb7d3f6d2c2d374
+Signed-off-by: David Michael <fedora.dm0@gmail.com>
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+
+diff --git a/src/gen-lock-obj.sh b/src/gen-lock-obj.sh
+index a710f0c..258eec6 100755
+--- a/src/gen-lock-obj.sh
++++ b/src/gen-lock-obj.sh
+@@ -38,7 +38,7 @@
+ #     AWK=gawk ./gen-lock-obj.sh
+ #
+ 
+-if test -n `echo -n`; then
++if test -n "`echo -n`"; then
+     ECHO_C='\c'
+     ECHO_N=''
+ else
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch b/poky/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
index 83054a9..aea8eba 100644
--- a/poky/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
+++ b/poky/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
@@ -1,4 +1,4 @@
-From ec309e20b5a27d42a5fb915c328d61e924ab5f19 Mon Sep 17 00:00:00 2001
+From 62651c5c7b4a391f16dbe1b09c6e220efe5c8a35 Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Thu, 29 Mar 2018 15:12:17 +0800
 Subject: [PATCH] support pkgconfig
@@ -12,15 +12,16 @@
 Refactored for 1.33
 Signed-off-by: Armin Kuster <akuster808@gmail.com>
 Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
 ---
- src/gpg-error.m4 | 142 +----------------------------------------------
- 1 file changed, 3 insertions(+), 139 deletions(-)
+ src/gpg-error.m4 | 159 +----------------------------------------------
+ 1 file changed, 3 insertions(+), 156 deletions(-)
 
 diff --git a/src/gpg-error.m4 b/src/gpg-error.m4
-index c9b235f..176bd6a 100644
+index d910754..76f045c 100644
 --- a/src/gpg-error.m4
 +++ b/src/gpg-error.m4
-@@ -26,139 +26,12 @@ dnl is added to the gpg_config_script_warn variable.
+@@ -27,156 +27,12 @@ dnl is added to the gpg_config_script_warn variable.
  dnl
  AC_DEFUN([AM_PATH_GPG_ERROR],
  [ AC_REQUIRE([AC_CANONICAL_HOST])
@@ -62,45 +63,78 @@
 -  min_gpg_error_version=ifelse([$1], ,1.33,$1)
 -  ok=no
 -
--  if test "$prefix" = NONE ; then
--    prefix_option_expanded=/usr/local
--  else
--    prefix_option_expanded="$prefix"
--  fi
--  if test "$exec_prefix" = NONE ; then
--    exec_prefix_option_expanded=$prefix_option_expanded
--  else
--    exec_prefix_option_expanded=$(prefix=$prefix_option_expanded eval echo $exec_prefix)
--  fi
--  libdir_option_expanded=$(prefix=$prefix_option_expanded exec_prefix=$exec_prefix_option_expanded eval echo $libdir)
--
--  if test -f $libdir_option_expanded/pkgconfig/gpg-error.pc; then
--    gpgrt_libdir=$libdir_option_expanded
--  else
--    if crt1_path=$(${CC:-cc} -print-file-name=crt1.o 2>/dev/null); then
--      if possible_libdir=$(cd ${crt1_path%/*} && pwd 2>/dev/null); then
--        if test -f $possible_libdir/pkgconfig/gpg-error.pc; then
--          gpgrt_libdir=$possible_libdir
+-  AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no)
+-  if test "$GPGRT_CONFIG" != "no"; then
+-    # Determine gpgrt_libdir
+-    #
+-    # Get the prefix of gpgrt-config assuming it's something like:
+-    #   <PREFIX>/bin/gpgrt-config
+-    gpgrt_prefix=${GPGRT_CONFIG%/*/*}
+-    possible_libdir1=${gpgrt_prefix}/lib
+-    # Determine by using system libdir-format with CC, it's like:
+-    #   Normal style: /usr/lib
+-    #   GNU cross style: /usr/<triplet>/lib
+-    #   Debian style: /usr/lib/<multiarch-name>
+-    #   Fedora/openSUSE style: /usr/lib, /usr/lib32 or /usr/lib64
+-    # It is assumed that CC is specified to the one of host on cross build.
+-    if libdir_candidates=$(${CC:-cc} -print-search-dirs | \
+-          sed -n -e "/^libraries/{s/libraries: =//;s/:/\n/gp}"); then
+-      # From the output of -print-search-dirs, select valid pkgconfig dirs.
+-      libdir_candidates=$(for dir in $libdir_candidates; do
+-        if p=$(cd $dir 2>/dev/null && pwd); then
+-          test -d "$p/pkgconfig" && echo $p;
 -        fi
--      fi
--    fi
--  fi
+-      done)
 -
--  if test "$GPG_ERROR_CONFIG" = "no" -a -n "$gpgrt_libdir"; then
--    AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no)
--    if test "$GPGRT_CONFIG" = "no"; then
--      unset GPGRT_CONFIG
+-      for possible_libdir0 in $libdir_candidates; do
+-        # possible_libdir0:
+-        #   Fallback candidate, the one of system-installed (by $CC)
+-        #   (/usr/<triplet>/lib, /usr/lib/<multiarch-name> or /usr/lib32)
+-        # possible_libdir1:
+-        #   Another candidate, user-locally-installed
+-        #   (<gpgrt_prefix>/lib)
+-        # possible_libdir2
+-        #   Most preferred
+-        #   (<gpgrt_prefix>/<triplet>/lib,
+-        #    <gpgrt_prefix>/lib/<multiarch-name> or <gpgrt_prefix>/lib32)
+-        if test "${possible_libdir0##*/}" = "lib"; then
+-          possible_prefix0=${possible_libdir0%/lib}
+-          possible_prefix0_triplet=${possible_prefix0##*/}
+-          if test -z "$possible_prefix0_triplet"; then
+-            continue
+-          fi
+-          possible_libdir2=${gpgrt_prefix}/$possible_prefix0_triplet/lib
+-        else
+-          possible_prefix0=${possible_libdir0%%/lib*}
+-          possible_libdir2=${gpgrt_prefix}${possible_libdir0#$possible_prefix0}
+-        fi
+-        if test -f ${possible_libdir2}/pkgconfig/gpg-error.pc; then
+-          gpgrt_libdir=${possible_libdir2}
+-        elif test -f ${possible_libdir1}/pkgconfig/gpg-error.pc; then
+-          gpgrt_libdir=${possible_libdir1}
+-        elif test -f ${possible_libdir0}/pkgconfig/gpg-error.pc; then
+-          gpgrt_libdir=${possible_libdir0}
+-        fi
+-        if test -n "$gpgrt_libdir"; then break; fi
+-      done
 -    else
--      GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir"
--      if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then
--        GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error"
--        AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config])
--        gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion`
--      else
--        unset GPGRT_CONFIG
--      fi
+-      # When we cannot determine system libdir-format, use this:
+-      gpgrt_libdir=${possible_libdir1}
 -    fi
 -  else
+-    unset GPGRT_CONFIG
+-  fi
+-
+-  if test -n "$gpgrt_libdir"; then
+-    GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir"
+-    if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then
+-      GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error"
+-      AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config])
+-      gpg_error_config_version=`$GPG_ERROR_CONFIG --modversion`
+-    else
+-      unset GPGRT_CONFIG
+-    fi
+-  elif test "$GPG_ERROR_CONFIG" != "no"; then
 -    gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
 -  fi
 -  if test "$GPG_ERROR_CONFIG" != "no"; then
@@ -121,22 +155,6 @@
 -            fi
 -        fi
 -    fi
--    if test -z "$GPGRT_CONFIG" -a -n "$gpgrt_libdir"; then
--      if test "$major" -gt 1 -o "$major" -eq 1 -a "$minor" -ge 33; then
--        AC_PATH_PROG(GPGRT_CONFIG, gpgrt-config, no)
--        if test "$GPGRT_CONFIG" = "no"; then
--          unset GPGRT_CONFIG
--        else
--          GPGRT_CONFIG="$GPGRT_CONFIG --libdir=$gpgrt_libdir"
--          if $GPGRT_CONFIG gpg-error >/dev/null 2>&1; then
--            GPG_ERROR_CONFIG="$GPGRT_CONFIG gpg-error"
--            AC_MSG_NOTICE([Use gpgrt-config with $gpgrt_libdir as gpg-error-config])
--          else
--            unset GPGRT_CONFIG
--          fi
--        fi
--      fi
--    fi
 -  fi
 -  AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
 +  min_gpg_error_version=ifelse([$1], ,0.0,$1)
@@ -163,7 +181,7 @@
      fi
      if test x"$gpg_error_config_host" != xnone ; then
        if test x"$gpg_error_config_host" != x"$host" ; then
-@@ -174,15 +47,6 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
+@@ -192,15 +48,6 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
        fi
      fi
    else
@@ -179,6 +197,3 @@
 -  AC_SUBST(GPG_ERROR_MT_CFLAGS)
 -  AC_SUBST(GPG_ERROR_MT_LIBS)
  ])
--- 
-2.25.1
-
diff --git a/poky/meta/recipes-support/libgpg-error/libgpg-error_1.41.bb b/poky/meta/recipes-support/libgpg-error/libgpg-error_1.42.bb
similarity index 87%
rename from poky/meta/recipes-support/libgpg-error/libgpg-error_1.41.bb
rename to poky/meta/recipes-support/libgpg-error/libgpg-error_1.42.bb
index a011972..c972d9a 100644
--- a/poky/meta/recipes-support/libgpg-error/libgpg-error_1.41.bb
+++ b/poky/meta/recipes-support/libgpg-error/libgpg-error_1.42.bb
@@ -17,9 +17,11 @@
 SRC_URI = "${GNUPG_MIRROR}/libgpg-error/libgpg-error-${PV}.tar.bz2 \
            file://pkgconfig.patch \
            file://0001-Do-not-fail-when-testing-config-scripts.patch \
+           file://fix-cross.patch \
+           file://0001-configure.ac-do-not-hardcode-gnu-libc-when-generatin.patch \
            "
 
-SRC_URI[sha256sum] = "64b078b45ac3c3003d7e352a5e05318880a5778c42331ce1ef33d1a0d9922742"
+SRC_URI[sha256sum] = "fc07e70f6c615f8c4f590a8e37a9b8dd2e2ca1e9408f8e60459c67452b925e23"
 
 BINCONFIG = "${bindir}/gpg-error-config"
 
diff --git a/poky/meta/recipes-support/libpcre/libpcre2_10.36.bb b/poky/meta/recipes-support/libpcre/libpcre2_10.37.bb
similarity index 91%
rename from poky/meta/recipes-support/libpcre/libpcre2_10.36.bb
rename to poky/meta/recipes-support/libpcre/libpcre2_10.37.bb
index d8077a1..b596fbe 100644
--- a/poky/meta/recipes-support/libpcre/libpcre2_10.36.bb
+++ b/poky/meta/recipes-support/libpcre/libpcre2_10.37.bb
@@ -8,11 +8,11 @@
 HOMEPAGE = "http://www.pcre.org"
 SECTION = "devel"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=60c08fab1357bfe9084b333bc33362d6"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=6b3022283c9a79238d521848ea9dcb4d"
 
 SRC_URI = "https://ftp.pcre.org/pub/pcre/pcre2-${PV}.tar.bz2"
 
-SRC_URI[sha256sum] = "a9ef39278113542968c7c73a31cfcb81aca1faa64690f400b907e8ab6b4a665c"
+SRC_URI[sha256sum] = "4d95a96e8b80529893b4562be12648d798b957b1ba1aae39606bbc2ab956d270"
 
 CVE_PRODUCT = "pcre2"
 
diff --git a/poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb b/poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb
index a545162..f290bf3 100644
--- a/poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb
+++ b/poky/meta/recipes-support/libssh2/libssh2_1.9.0.bb
@@ -34,7 +34,7 @@
 BBCLASSEXTEND = "native nativesdk"
 
 # required for ptest on documentation
-RDEPENDS_${PN}-ptest = "man-db openssh"
+RDEPENDS_${PN}-ptest = "man-db openssh util-linux-col"
 RDEPENDS_${PN}-ptest_append_libc-glibc = " locale-base-en-us"
 
 do_compile_ptest() {
diff --git a/poky/meta/recipes-support/npth/npth/0001-Revert-Fix-problem-with-regression-tests-on-recent-g.patch b/poky/meta/recipes-support/npth/npth/0001-Revert-Fix-problem-with-regression-tests-on-recent-g.patch
new file mode 100644
index 0000000..47c426b
--- /dev/null
+++ b/poky/meta/recipes-support/npth/npth/0001-Revert-Fix-problem-with-regression-tests-on-recent-g.patch
@@ -0,0 +1,43 @@
+From e43524868bb4901703d63876f9d49f73ca75b3ab Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 May 2021 20:27:52 -0700
+Subject: [PATCH] Revert "Fix problem with regression tests on recent glibc."
+
+This reverts commit 3a9d32eb59194b989656548755066ccd9feb36ac.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 8a9373c..8cda28d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -284,11 +284,9 @@ AC_TYPE_SSIZE_T
+ #
+ # Checks for libraries and functions.
+ #
+-#   We test for pthread_detach because glibc 2.22 includes
+-#   pthread_create but not pthread_detach.
+ if test "$have_w32_system" = no; then
+-  AC_SEARCH_LIBS([pthread_detach],[pthread])
+-  case "x$ac_cv_search_pthread_detach" in
++  AC_SEARCH_LIBS([pthread_create],[pthread])
++  case "x$ac_cv_search_pthread_create" in
+     xno)
+       have_pthread=no
+       ;;
+@@ -297,7 +295,7 @@ if test "$have_w32_system" = no; then
+       ;;
+     *)
+       have_pthread=yes
+-      config_libs="$config_libs $ac_cv_search_pthread_detach"
++      config_libs="$config_libs $ac_cv_search_pthread_create"
+       ;;
+   esac
+   if test "$have_pthread" != no; then
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-support/npth/npth_1.6.bb b/poky/meta/recipes-support/npth/npth_1.6.bb
index 94a3f00..d5a149e 100644
--- a/poky/meta/recipes-support/npth/npth_1.6.bb
+++ b/poky/meta/recipes-support/npth/npth_1.6.bb
@@ -9,6 +9,7 @@
 UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
 SRC_URI = "${GNUPG_MIRROR}/npth/npth-${PV}.tar.bz2 \
            file://pkgconfig.patch \
+           file://0001-Revert-Fix-problem-with-regression-tests-on-recent-g.patch \
           "
 
 SRC_URI[md5sum] = "375d1a15ad969f32d25f1a7630929854"
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.11.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.12.bb
similarity index 97%
rename from poky/meta/recipes-support/rng-tools/rng-tools_6.11.bb
rename to poky/meta/recipes-support/rng-tools/rng-tools_6.12.bb
index 61a0cef..9673700 100644
--- a/poky/meta/recipes-support/rng-tools/rng-tools_6.11.bb
+++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.12.bb
@@ -14,7 +14,7 @@
     file://default \
     file://rngd.service \
 "
-SRCREV = "2ea13473fd5bfea3c861dc0e23bd65e2afe8007b"
+SRCREV = "a2cd12bc253a014328b87137559fd4e1ab296d9b"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-support/sqlite/sqlite3_3.35.3.bb b/poky/meta/recipes-support/sqlite/sqlite3_3.35.5.bb
similarity index 82%
rename from poky/meta/recipes-support/sqlite/sqlite3_3.35.3.bb
rename to poky/meta/recipes-support/sqlite/sqlite3_3.35.5.bb
index 459dcbd..d74a621 100644
--- a/poky/meta/recipes-support/sqlite/sqlite3_3.35.3.bb
+++ b/poky/meta/recipes-support/sqlite/sqlite3_3.35.5.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://sqlite3.h;endline=11;md5=786d3dc581eff03f4fd9e4a77ed00c66"
 
 SRC_URI = "http://www.sqlite.org/2021/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-SRC_URI[sha256sum] = "ecbccdd440bdf32c0e1bb3611d635239e3b5af268248d130d0445a32daf0274b"
+SRC_URI[sha256sum] = "f52b72a5c319c3e516ed7a92e123139a6e87af08a2dc43d7757724f6132e6db0"
 
 # -19242 is only an issue in specific development branch commits
 CVE_CHECK_WHITELIST += "CVE-2019-19242"
diff --git a/poky/meta/recipes-support/vte/vte_0.64.0.bb b/poky/meta/recipes-support/vte/vte_0.64.1.bb
similarity index 95%
rename from poky/meta/recipes-support/vte/vte_0.64.0.bb
rename to poky/meta/recipes-support/vte/vte_0.64.1.bb
index fc7d301..0401eaa 100644
--- a/poky/meta/recipes-support/vte/vte_0.64.0.bb
+++ b/poky/meta/recipes-support/vte/vte_0.64.1.bb
@@ -20,7 +20,7 @@
 
 # vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
 SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
-SRC_URI[archive.sha256sum] = "c0c60b8dc343167437c86d984b0cf134df86034180ed70513f683006ada3ec41"
+SRC_URI[archive.sha256sum] = "12fb41a9ff8e03c5f1711b46560910a4b9b3102aec3e9e7609ceef4dfa98aa2a"
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 
diff --git a/poky/meta/recipes-support/xxhash/files/0001-Makefile-escape-special-regex-characters-in-paths.patch b/poky/meta/recipes-support/xxhash/files/0001-Makefile-escape-special-regex-characters-in-paths.patch
new file mode 100644
index 0000000..6d3da14
--- /dev/null
+++ b/poky/meta/recipes-support/xxhash/files/0001-Makefile-escape-special-regex-characters-in-paths.patch
@@ -0,0 +1,55 @@
+From 9ab56f841b1986cd5cdff66cb5ef222794b9ed39 Mon Sep 17 00:00:00 2001
+From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
+Date: Mon, 22 Feb 2021 14:07:58 -0500
+Subject: [PATCH] Makefile: escape special regex characters in paths
+
+Fixes a problem with certain valid install paths:
+
+make prefix=/tmp/a+b/
+Makefile:434: *** configured libdir (/tmp/a+b//lib) is outside of exec_prefix (/tmp/a+b/), can't generate pkg-config file.  Stop.
+
+Upstream-Status: Backport [f79cd22a806993b4a62d8a4f1ba529a29a9d9ff5]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ Makefile | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index ef24e94..baa1533 100644
+--- a/Makefile
++++ b/Makefile
+@@ -411,14 +411,18 @@ INSTALL_PROGRAM ?= $(INSTALL)
+ INSTALL_DATA    ?= $(INSTALL) -m 644
+ 
+ 
+-PCLIBDIR ?= $(shell echo "$(LIBDIR)"     | $(SED) -n $(SED_ERE_OPT) -e "s@^$(EXEC_PREFIX)(/|$$)@@p")
+-PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | $(SED) -n $(SED_ERE_OPT) -e "s@^$(PREFIX)(/|$$)@@p")
++# Escape special symbols by putting each character into its separate class
++EXEC_PREFIX_REGEX ?= $(shell echo "$(EXEC_PREFIX)" | $(SED) $(SED_ERE_OPT) -e "s/([^^])/[\1]/g" -e "s/\\^/\\\\^/g")
++PREFIX_REGEX ?= $(shell echo "$(PREFIX)" | $(SED) $(SED_ERE_OPT) -e "s/([^^])/[\1]/g" -e "s/\\^/\\\\^/g")
++
++PCLIBDIR ?= $(shell echo "$(LIBDIR)"     | $(SED) -n $(SED_ERE_OPT) -e "s@^$(EXEC_PREFIX_REGEX)(/|$$)@@p")
++PCINCDIR ?= $(shell echo "$(INCLUDEDIR)" | $(SED) -n $(SED_ERE_OPT) -e "s@^$(PREFIX_REGEX)(/|$$)@@p")
+ PCEXECDIR?= $(if $(filter $(PREFIX),$(EXEC_PREFIX)),$$\{prefix\},$(EXEC_PREFIX))
+ 
+ ifeq (,$(PCLIBDIR))
+ # Additional prefix check is required, since the empty string is technically a
+ # valid PCLIBDIR
+-ifeq (,$(shell echo "$(LIBDIR)" | $(SED) -n $(SED_ERE_OPT) -e "\\@^$(EXEC_PREFIX)(/|$$)@ p"))
++ifeq (,$(shell echo "$(LIBDIR)" | $(SED) -n $(SED_ERE_OPT) -e "\\@^$(EXEC_PREFIX_REGEX)(/|$$)@ p"))
+ $(error configured libdir ($(LIBDIR)) is outside of exec_prefix ($(EXEC_PREFIX)), can't generate pkg-config file)
+ endif
+ endif
+@@ -426,7 +430,7 @@ endif
+ ifeq (,$(PCINCDIR))
+ # Additional prefix check is required, since the empty string is technically a
+ # valid PCINCDIR
+-ifeq (,$(shell echo "$(INCLUDEDIR)" | $(SED) -n $(SED_ERE_OPT) -e "\\@^$(PREFIX)(/|$$)@ p"))
++ifeq (,$(shell echo "$(INCLUDEDIR)" | $(SED) -n $(SED_ERE_OPT) -e "\\@^$(PREFIX_REGEX)(/|$$)@ p"))
+ $(error configured includedir ($(INCLUDEDIR)) is outside of prefix ($(PREFIX)), can't generate pkg-config file)
+ endif
+ endif
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-support/xxhash/xxhash_0.8.0.bb b/poky/meta/recipes-support/xxhash/xxhash_0.8.0.bb
index 9e38872..4e48365 100644
--- a/poky/meta/recipes-support/xxhash/xxhash_0.8.0.bb
+++ b/poky/meta/recipes-support/xxhash/xxhash_0.8.0.bb
@@ -5,7 +5,9 @@
 LICENSE = "BSD-2-Clause & GPL-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b335320506abb0505437e39295e799cb"
 
-SRC_URI = "git://github.com/Cyan4973/xxHash.git;branch=release;protocol=git"
+SRC_URI = "git://github.com/Cyan4973/xxHash.git;branch=release;protocol=git \
+           file://0001-Makefile-escape-special-regex-characters-in-paths.patch \
+           "
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
 SRCREV = "94e5f23e736f2bb67ebdf90727353e65344f9fc0"