subtree updates

meta-openembedded: 0e3f5e5201..491b7592f4:
  Alexander Kanavin (1):
        libadwaita: move recipe to oe-core

  Andrej Valek (1):
        cve_check: convert CVE_CHECK_IGNORE to CVE_STATUS

  Archana Polampalli (1):
        yasm: fix CVE-2023-31975

  Chase Qi (1):
        meta-python: add python3-telnetlib3 package

  Chen Qi (3):
        iperf3: remove incorrect CVE_PRODUCT setting
        open-vm-tools: add CVE_PRODUCT
        grpc: fix CVE-2023-32732

  Chi Xu (1):
        lapack: Add ptest support

  Chris Dimich (1):
        image_types_sparse: Fix syntax error

  Christian Hohnstaedt (1):
        android-tools: fix QA warning about buildpaths

  Christophe Vu-Brugier (2):
        libnvme: add recipe
        nvme-cli: upgrade 1.13 -> 2.5

  Etienne Cordonnier (1):
        uutils-coreutils: upgrade 0.0.19 -> 0.0.20

  Gianfranco Costamagna (3):
        vbxguestdrivers: upgrade 7.0.8 -> 7.0.10
        dlt-daemon: Add patch to fix build with googletest 1.13
        gpsd: make sure gps-utils-python runtime-depends on python3-pyserial

  JD Schroeder (2):
        radvd: Fix groupname gid change warning
        cyrus-sasl: Fix groupname gid change warning

  Jan Vermaete (1):
        openh264: version bump 2.1.1 -> 2.3.1

  Jasper Orschulko (1):
        yaml-cpp: Fix cmake export

  Khem Raj (9):
        openwsman: Link with -lm to get floor() definition
        portaudio-v19: Update to latest tip of trunk
        python3-pyaudio: Fix cross builds
        poco: Fix ptests
        pcmciautils: Pass LD=CC via Make cmdline
        ply: Pass LD via environment to configure
        sip: upgrade 6.7.10 -> 6.7.11
        nodejs: Upgrade to 18.17.0
        python3-m2crypto: Remove __pycache__ files

  Marek Vasut (1):
        libiio: update to version 0.25

  Markus Volk (9):
        pipewire: update 0.3.73 -> 0.3.75
        libcamera: update 0.0.5 -> 0.1.0
        webkitgtk3: add recipe
        geary: update 43.0 -> 44.0
        webkitgtk3: upgrade 2.40.2 -> 2.40.5
        fuse3: update 3.14.1 -> 3.15.1
        pipewire: update 0.3.75 -> 0.3.77
        pipewire: add support for liblc3
        gnome-software: update 44.3 -> 44.4

  Martin Jansa (4):
        libtommath: add recipe for LibTomMath used by dropbear
        libtomcrypt: backport a fix for CVE-2019-17362
        libtomcrypt: add PACKAGECONFIG for ltm enabled by default
        dlm: Do not use -fcf-protection=full on aarch64 platforms

  Michael Opdenacker (7):
        remove unused AUTHOR variable
        remove unused AUTHOR variable
        remove unused AUTHOR variable
        remove unused AUTHOR variable
        remove unused AUTHOR variable
        remove unused AUTHOR variable
        meta-python: Remove unused AUTHOR variable

  Mingli Yu (2):
        dracut: Remove busybox from RRECOMMENDS
        mariadb: Upgrade to 10.11.4

  Nicolas Marguet (2):
        rsyslog: update from 8.2302.0 to 8.2306.0
        rsyslog: Fix function inline errors in debug optimization

  Peter Marko (1):
        cve_check: fix conversion errors

  Ramon Fried (1):
        bitwise: Upgrade 0.43 -> 0.50

  Ross Burton (1):
        cherokee: add CVE_PRODUCT

  Tim Orling (1):
        libmodule-build-tiny-perl: upgrade 0.045 -> 0.046

  Trevor Gamblin (31):
        python3-django: upgrade 4.2.2 -> 4.2.3
        python3-ipython: upgrade 8.12.0 -> 8.14.0
        python3-awesomeversion: upgrade 22.9.0 -> 23.5.0
        python3-binwalk: upgrade 2.3.3 -> 2.3.4
        python3-bitstring: upgrade 3.1.9 -> 4.0.2
        python3-bitstring: add python3-io to RDEPENDS, alphabetize
        python3-blinker: upgrade 1.5 -> 1.6.2
        python3-blinker: add python3-asyncio to RDEPENDS
        python3-execnet: upgrade 1.9.0 -> 2.0.2
        python3-flask: upgrade 2.2.3 -> 2.3.2
        python3-flask: add python3-blinker to RDEPENDS, alphabetize
        python3-greenstalk: upgrade 2.0.0 -> 2.0.2
        python3-humanize: upgrade 4.4.0 -> 4.7.0
        python3-versioneer: add recipe
        python3-parse: upgrade 1.19.0 -> 1.19.1
        python3-pandas: upgrade 1.5.3 -> 2.0.3
        python3-pyperf: upgrade 2.5.0 -> 2.6.1
        python3-rdflib: upgrade 6.2.0 -> 6.3.2
        python3-semver: upgrade 2.13.0 -> 3.0.1
        python3-send2trash: upgrade 1.8.0 -> 1.8.2
        python3-sh: upgrade 1.14.3 -> 2.0.4
        python3-snagboot: upgrade 1.0 -> 1.1
        python3-werkzeug: upgrade 2.2.3 -> 2.3.6
        python3-beautifulsoup4: upgrade 4.11.1 -> 4.12.2
        python3-fastjsonschema: upgrade 2.16.3 -> 2.18.0
        python3-jsonpatch: upgrade 1.32 -> 1.33
        python3-m2crypto: upgrade 0.38.0 -> 0.39.0
        python3-matplotlib: upgrade 3.6.3 -> 3.7.2
        python3-pyaudio: upgrade 0.2.11 -> 0.2.13
        python3-pybind11: upgrade 2.10.3 -> 2.11.1
        python3-sqlparse: upgrade 0.4.3 -> 0.4.4

  Vivien Didelot (1):
        libcamera: bump to latest master

  Wang Mingyu (83):
        c-periphery: upgrade 2.4.1 -> 2.4.2
        ctags: upgrade 6.0.20230611.0 -> 6.0.20230716.0
        gensio: upgrade 2.6.6 -> 2.6.7
        gnome-commander: upgrade 1.16.0 -> 1.16.1
        hiredis: upgrade 1.1.0 -> 1.2.0
        iperf3: upgrade 3.13 -> 3.14
        iwd: upgrade 2.6 -> 2.7
        libbytesize: upgrade 2.8 -> 2.9
        libinih: upgrade 56 -> 57
        libnftnl: upgrade 1.2.5 -> 1.2.6
        lvgl: upgrade 8.3.7 -> 8.3.8
        bats: upgrade 1.9.0 -> 1.10.0
        function2: upgrade 4.2.2 -> 4.2.3
        lmdb: upgrade 0.9.29 -> 0.9.31
        redis: upgrade 6.2.12 -> 6.2.13
        ser2net: upgrade 4.3.12 -> 4.3.13
        python3-obd: upgrade 0.7.1 -> 0.7.2
        python3-path: upgrade 16.6.0 -> 16.7.1
        nginx: upgrade 1.24.0 -> 1.25.1
        php: upgrade 8.2.7 -> 8.2.8
        python3-charset-normalizer: upgrade 3.1.0 -> 3.2.0
        python3-click: upgrade 8.1.3 -> 8.1.5
        python3-dnspython: upgrade 2.3.0 -> 2.4.0
        python3-engineio: upgrade 4.4.1 -> 4.5.1
        python3-eth-utils: upgrade 2.1.1 -> 2.2.0
        python3-frozenlist: upgrade 1.3.3 -> 1.4.0
        python3-gevent: upgrade 22.10.2 -> 23.7.0
        python3-google-api-python-client: upgrade 2.92.0 -> 2.93.0
        python3-google-auth: upgrade 2.21.0 -> 2.22.0
        python3-mock: upgrade 5.0.2 -> 5.1.0
        python3-platformdirs: upgrade 3.8.0 -> 3.9.1
        python3-protobuf: upgrade 4.23.3 -> 4.23.4
        python3-pymisp: upgrade 2.4.172 -> 2.4.173
        python3-pymongo: upgrade 4.4.0 -> 4.4.1
        python3-tox: upgrade 4.6.3 -> 4.6.4
        python3-virtualenv: upgrade 20.23.1 -> 20.24.0
        python3-zeroconf: upgrade 0.70.0 -> 0.71.0
        redis-plus-plus: upgrade 1.3.9 -> 1.3.10
        redis: upgrade 7.0.11 -> 7.0.12
        smemstat: upgrade 0.02.11 -> 0.02.12
        tesseract: upgrade 5.3.1 -> 5.3.2
        weechat: upgrade 4.0.1 -> 4.0.2
        wireshark: upgrade 4.0.6 -> 4.0.7
        xterm: upgrade 383 -> 384
        lastlog2: add new recipe
        wtmpdb: add new recipe
        babeld: upgrade 1.12.2 -> 1.13.1
        ctags: upgrade 6.0.20230716.0 -> 6.0.20230730.0
        gspell: upgrade 1.12.1 -> 1.12.2
        libcompress-raw-bzip2-perl: upgrade 2.204 -> 2.206
        libcompress-raw-lzma-perl: upgrade 2.204 -> 2.206
        libcompress-raw-zlib-perl: upgrade 2.204 -> 2.206
        libio-compress-lzma-perl: upgrade 2.204 -> 2.206
        libio-compress-perl: upgrade 2.204 -> 2.206
        libqb: upgrade 2.0.7 -> 2.0.8
        logcheck: upgrade 1.4.2 -> 1.4.3
        mdio-tools,mdio-netlink: Upgrade recipes to 1.3.0
        python3-dill: upgrade 0.3.6 -> 0.3.7
        python3-gunicorn: upgrade 20.1.0 -> 21.2.0
        python3-web3: upgrade 6.3.0 -> 6.7.0
        python3-aiohttp: upgrade 3.8.4 -> 3.8.5
        python3-bitarray: upgrade 2.7.6 -> 2.8.0
        python3-click: upgrade 8.1.5 -> 8.1.6
        python3-cmake: upgrade 3.26.4 -> 3.27.0
        python3-configargparse: upgrade 1.5.5 -> 1.7
        python3-cytoolz: upgrade 0.12.1 -> 0.12.2
        python3-dnspython: upgrade 2.4.0 -> 2.4.1
        python3-elementpath: upgrade 4.1.4 -> 4.1.5
        python3-flask-socketio: upgrade 5.3.4 -> 5.3.5
        python3-gnupg: upgrade 0.5.0 -> 0.5.1
        python3-google-api-python-client: upgrade 2.93.0 -> 2.95.0
        python3-grpcio: upgrade 1.56.0 -> 1.56.2
        python3-jedi: upgrade 0.18.2 -> 0.19.0
        python3-marshmallow: upgrade 3.19.0 -> 3.20.1
        python3-portion: upgrade 2.4.0 -> 2.4.1
        python3-pymodbus: upgrade 3.3.2 -> 3.4.1
        python3-robotframework: upgrade 6.1 -> 6.1.1
        python3-tomlkit: upgrade 0.11.8 -> 0.12.1
        python3-typeguard: upgrade 4.0.0 -> 4.1.0
        python3-virtualenv: upgrade 20.24.0 -> 20.24.2
        python3-zeroconf: upgrade 0.71.0 -> 0.71.4
        rdma-core: upgrade 46.0 -> 47.0
        sip: upgrade 6.7.9 -> 6.7.10

  Willy Tu (1):
        mstpd: Add initial recipe for mstpd

  Yi Zhao (4):
        samba: upgrade 4.18.4 -> 4.18.5
        libnfnetlink: enable native build
        libnetfilter-queue: enable native build
        daq: enable nfq module build

meta-raspberrypi: e3f733cadd..5e2f79a6fa:
  Jan Vermaete (2):
        kas-poky-rpi.yml: renamed ABORT to HALT
        rpi-base.inc: add the disable-wifi overlay

  Khem Raj (1):
        rpi-base: Remove customizing SPLASH var

  Martin Jansa (1):
        libcamera: update PACKAGECONFIG for libcamera-0.1.0

  Vincent Davis Jr (1):
        rpidistro-vlc: fix error uint64_t does not name

  Vivien Didelot (10):
        rpi-libcamera-apps: fix Illegal Instruction
        rpi-libcamera-apps: add opencv build dependency
        rpi-libcamera-apps: add drm support
        rpi-libcamera-apps: replace tensorflow config
        rpi-libcamera-apps: don't force COMPATIBLE_MACHINE
        rpi-libcamera-apps: rename to libcamera-apps
        libcamera-apps: move recipe to dynamic-layers
        libcamera-apps: bump to 3d9ac10
        libcamera-apps: switch from CMake to meson
        libcamera-apps: bump to latest main

meta-arm: b4d50a273d..992c07f7c0:
  Abdellatif El Khlifi (2):
        arm-bsp/trusted-firmware-a: corstone1000: psci: SMCCC_ARCH_FEATURES discovery through PSCI_FEATURES
        arm-bsp/u-boot: corstone1000: upgrade to v2023.07

  Adam Johnston (1):
        arm-bsp/trusted-firmware-a: Reserve OP-TEE memory from NWd on N1SDP

  Emekcan Aras (1):
        arm-bsp/u-boot: corstone1000: increase the kernel size

  Jon Mason (9):
        CI: add defaults for get-binary-toolchains
        CI: workaround 32bit timer warning in binary toolchain
        arm-bsp/corstone1000: update u-boot preferred version
        arm-toolchain/gcc-aarch64-none-elf: upgrade to 12.3.rel1
        arm/edk2: move 202211 recipe to meta-arm-bsp
        arm-bsp: clean-up patch noise
        arm/optee-test: update musl workaround patch
        arm-bsp/tc1: remove trusted-firmware-m target
        arm/trusted-firmware-m: upgrade to v1.8.0

  Robbie Cao (1):
        arm/recipes-kernel: Add preempt-rt support for generic-arm64

  Ross Burton (5):
        arm-toolchain/androidclang: remove
        arm-toolchain/arm-binary-toolchain: install to a versioned directory
        arm-toolchain/gcc-arm-none-eabi-11.2: add new recipe
        arm/trusted-firmware-m: explicitly use Arm GCC 11.2
        arm-toolchain/gcc-arm-none-eabi: upgrade to 12.3.rel1

  Ziad Elhanafy (1):
        arm/recipes-devtools,doc: Update FVP version

poky: b398c7653e..71282bbc53:
  Alex Kiernan (3):
        base-passwd: Add the sgx group
        udev: eudev: Revert add group to sgx
        poky/poky-tiny: Explicitly exclude `shadow`

  Alexander Kanavin (25):
        meta: add missing summaries for image recipes
        insane.bbclass: add do_recipe_qa task
        devtool: do not run recipe_qa task when extracting source
        insane.bbclass: add a SUMMARY/HOMEPAGE check (oe-core recipes only)
        insane.bbclass: add a RECIPE_MAINTAINER check (oe-core recipes only)
        librsvg: fix upstream version check
        acpica: tarball and homepage relocated to intel.com
        gnu-efi: upgrade 3.0.15 -> 3.0.17
        gettext-minimal-native: obtain the needed files directly from gettext source tarball
        kbd: upgrade 2.6.0 -> 2.6.1
        systemd: upgrade 253.3 -> 253.7
        jquery: upgrade 3.6.3 -> 3.7.0
        strace: upgrade 6.3 -> 6.4
        sudo: update 1.9.13p3 -> 1.9.14p2
        libadwaita: add recipe from meta-gnome
        epiphany: upgrade 43.1 -> 44.5
        glibc-locale: use stricter matching for metapackages' runtime dependencies
        uninative-tarball: install the full set of gconv modules
        buildtools-extended-tarball: install the full set of gconv modules
        procps: address failure with gettext 0.22
        util-linux: upgrade 2.38.1 -> 2.39.1
        ref-manual: document image-specific variant of INCOMPATIBLE_LICENSE
        devtool/upgrade: raise an error if extracting source produces more than one directory
        scripts/lib/scriptutils.py: add recipe_qa artifacts to exclusion list in filter_src_subdirs()
        curl: ensure all ptest failures are caught

  Alexandre Belloni (2):
        base-files: bump PR because conf files are now sorted
        wic: bootimg-efi: Stop hardcoding VMA offsets

  Alexis Lothoré (3):
        scripts/resulttool: add mention about new detected tests
        scripts/resulttool: allow to replace test raw status with custom string
        scripts/resulttool: define custom string for "not found" test results

  Andrej Valek (2):
        maintainers.inc: Modify email address
        ref-manual: document CVE_STATUS and CVE_CHECK_STATUSMAP

  Anuj Mittal (4):
        glibc/check-test-wrapper: don't emit warnings from ssh
        selftest/cases/glibc.py: increase the memory for testing
        oeqa/utils/nfs: allow requesting non-udp ports
        selftest/cases/glibc.py: switch to using NFS over TCP

  BELOUARGA Mohamed (3):
        linux-firmware : Add firmware of RTL8822 serie
        bitbake: bitbake: fetch2/npmsw: Check if there are dependencies before trying to fetch them
        bitbake: fetch2: Check if path is 'None' before calculating checksums

  Bruce Ashfield (11):
        kernel: make LOCALVERSION consistent between recipes
        linux-yocto/6.4: fix CONFIG_LEDS_TRIGGER_GPIO kernel audit warning
        linux-yocto/6.4: update to v6.4.6
        linux-yocto/6.1: update to v6.1.41
        linux-yocto/6.4: update to v6.4.7
        linux-yocto-dev: bump to v6.5+
        linux-yocto/6.4: update to v6.4.8
        linux-yocto/6.1: update to v6.1.43
        linux-yocto/6.4: update to v6.4.9
        linux-yocto/6.4: fix qemuarm boot failure
        linux-yocto-tiny/6.4: fix HID configuration warning

  Chen Qi (4):
        ncurses: fix CVE-2023-29491
        multilib.conf: explicitly make MULTILIB_VARIANTS vardeps on MULTILIBS
        gcc-crosssdk: ignore MULTILIB_VARIANTS in signature computation
        openssh: sync with upstream's default

  Christopher Larson (6):
        bitbake: tests.data: add test for inline python calling a def'd function
        bitbake: tests.codeparser: add test for exec of builtin from inline python
        bitbake: data_smart: check for python builtins directly for context lookup
        bitbake: tests.data: add test for builtin preferred over metadata value
        bitbake: data_smart: directly check for methodpool functions in context lookup
        bitbake: bb.tests.data: don't require the func flag for context functions

  Denis OSTERLAND-HEIM (1):
        kernel-fitImage: add machine compatible to config section

  Dit Kozmaj (1):
        bitbake: fetch2: Set maxsplit to match expected variables

  Dmitry Baryshkov (5):
        kmscube: bump SRCREV to get offscreen rendering to work
        linux-firmware: package firmare for Dragonboard 410c
        mesa: simplify overriding GALLIUMDRIVERS_LLVM
        mesa: enable swrast Vulkan driver if LLVM drivers are enabled
        linux-firmware: split platform-specific Adreno shaders to separate packages

  Frederic Martinsons (4):
        ptest-cargo.bbclass: Support of cargo workspaces
        cargo.bbclass: Use --frozen flag for cargo operations
        cargo_common.bbclass: Handle Cargo.lock modifications for git dependencies
        rust-hello-world: Drop recipe

  Jean-Marie Lemetayer (1):
        package: always sort the conffiles

  Joel Stanley (1):
        kernel: don't fail if Modules.symvers doesn't exist

  Jose Quaresma (1):
        systemd: fix efi stubs

  Joshua Watt (1):
        bitbake: contrib: vim: Fix up a few errors when reloading

  Julien Stephan (1):
        libexif: add ptest support

  Khem Raj (16):
        nfs-utils: Fix host path contamination building locktest
        ltp: Use bfd linker when lld is distro linker default
        ffmpeg: Use bfd linker on i386 when lld is distro linker default
        ltp: Use bfd linker for KVM_LD as well when ld-is-lld
        autoconf: Backport upstreamed patches
        Revert "site: merged common-glibc from OE"
        x32-linux: Do not cache ac_cv_sys_file_offset_bits
        gcc: Upgrade to 13.2 release
        gnu-efi: Fix build break on riscv64
        ffmpeg: Fix wrong code found with gas/2.41
        systemd: Point to target binary paths for loadkeys and setfont
        systemd: Make 254 work on musl
        musl: Upgrade to tip of trunk
        binutils: Upgrade to 2.41 release
        systemd-boot: Ensure EFI_LD is also passed to compiler driver
        pm-utils: Do not require GNU grep at runtime

  Lee Chee Yang (2):
        migration-guides: add release notes for 4.0.11
        migration-guides: add release notes for 4.2.2

  Luca Boccassi (2):
        systemd: update to v254
        systemd: add usrmerge to REQUIRED_DISTRO_FEATURES

  Marek Vasut (1):
        linux-firmware: Fix mediatek mt7601u firmware path

  Mark Hatle (1):
        tcf-agent: Update to 1.8.0 release

  Markus Volk (4):
        gcr3: remove recipe
        systemd: add a packageconfig to support colored logs
        webkitgtk: upgrade 2.40.2 -> 2.40.5
        epiphany: upgrade 44.5 -> 44.6

  Martin Jansa (3):
        patchelf: add 3 fixes to optimize and fix uninative
        alsa-utils: backport a fix to build with glibc-2.38
        efivar: drop -fuse-ld=bfd

  Michael Halstead (1):
        yocto-uninative: Update hashes for uninative 4.1

  Michael Opdenacker (4):
        ref-manual: releases.svg: updates
        ref-manual: LTS releases now supported for 4 years
        poky.conf: update SANITY_TESTED_DISTROS to match autobuilder
        recipes: remove unused AUTHOR variable

  Oleksandr Hnatiuk (2):
        file: return wrapper to fix builds when file is in buildtools-tarball
        file: fix the way path is written to environment-setup.d

  Ovidiu Panait (2):
        mdadm: add util-linux-blockdev ptest dependency
        mdadm: save ptest logs

  Peter Marko (4):
        cve-extra-exclusions: fix syntax error
        libarchive: ignore CVE-2023-30571
        cve-exclusion_6.1: correct typo in exclusion list name
        bluez5: correct CVE status of ignored CVEs

  Peter Suti (1):
        externalsrc: fix dependency chain issues

  Quentin Schulz (1):
        docs: sdk-manual: appendix-obtain: fix literal block content

  Richard Purdie (21):
        createrepo-c: Fix 32 bit architecture segfaults with 64 bit time
        build-appliance-image: Update to master head revision
        oeqa/target/ssh: Ensure EAGAIN doesn't truncate output
        createrepo-c: Update patch status
        oeqa/runtime/ltp: Increase ltp test output timeout
        oeqa/ltp: Show warning for non-zero exit codes
        ltp: Add kernel loopback module dependency
        target/ssh: Ensure exit code set for commands
        autoconf: Upgrade to 2.72c
        oeqa/ssh: Further improve process exit handling
        oeqa/selftest/rust: Round test execution time to integer
        qemuboot/runqemu: Fix 6.2 and later kernel network device naming
        bitbake: siggen: Improve runtaskdeps data to fix sstate debugging
        sstatesig: Update to match bitbake changes to runtaskdeps
        Revert "kea: upgrade to v2.5.0"
        selftest/reproducible: Update config to match ongoing changes
        gnupg: Fix reproducibility failure
        selftest: Ensure usrmerge is enabled with systemd
        conf/init-mamager-systemd: Add usrmerge to DISTRO_FEATURES
        bitbake.conf: Drop PE and PR from WORKDIR and STAMP
        qemuboot: Update hardcoded path to match new layout

  Robert Joslyn (2):
        curl: Update from 8.1.2 to 8.2.0
        curl: Refine ptest perl RDEPENDS

  Ross Burton (8):
        systemd: set correct paths for kdb binaries
        systemd: depend on util-linux's swapon/off
        linux-yocto: add script to generate kernel CVE_STATUS entries
        ghostscript: backport fix for CVE-2023-38559
        ghostscript: ignore CVE-2023-38560
        openssh: upgrade to 9.3p2
        librsvg: upgrade to 2.56.3
        linux-yocto: extract generic kernel CVE_STATUS

  Sakib Sajal (1):
        go: upgrade 1.20.6 -> 1.20.7

  Sudip Mukherjee (3):
        libgit2: upgrade to v1.7.0
        bind: upgrade to v9.18.17
        kea: upgrade to v2.5.0

  Tim Orling (10):
        python3-urllib3: upgrade 2.0.3 -> 2.0.4
        python3-hypothesis: upgrade 6.81.2 -> 6.82.0
        python3-pyyaml: upgrade 6.0 -> 6.0.1
        python_setuptools3_rust: inherit ...build_meta
        python3-sphinx: upgrade 7.0.1 -> 7.1.1
        python3-certifi: upgrade 2023.5.7 -> 2023.7.22
        python3-more-itertools: upgrade 9.1.0 -> 10.0.0
        python3-wheel: upgrade 0.40.0 -> 0.41.0
        python3-chardet: upgrade 5.1.0 -> 5.2.0
        python3-cryptography{-vectors}: upgrade -> 41.0.3

  Trevor Gamblin (7):
        python3-dtschema: upgrade 2023.4 -> 2023.6.1
        python3-dtc: add from meta-virtualization
        python3-dtschema: add python3-dtc to RDEPENDS
        nfs-utils: upgrade 2.6.2 -> 2.6.3
        iproute2: upgrade 6.3.0 -> 6.4.0
        git: upgrade 2.39.3 -> 2.41.0
        python3: add additional timing-related test skips

  Ulrich Ölmann (3):
        ref-manual: classes: kernel-fitimage: fix source of imagetype
        ref-manual: classes: kernel-fitimage: fix typos
        ref-manual: classes: kernel-fitimage: refine role of INITRAMFS_IMAGE_BUNDLE

  Yang Xu (2):
        oeqa/selftest/ssate: Add test for find_siginfo
        bitbake: server/process: fix sig handle

  Yash Shinde (5):
        rust: Fix BOOTSTRAP_CARGO failure during Rust Oe-selftest
        oeqa/selftest/rust: Add failed test cases to exclude list for Rust Oe-selftest
        oeqa/selftest/binutils: Add elapsed time for binutils test report.
        oeqa/selftest/gcc: Add elapsed time for gcc test report.
        oeqa/selftest/glibc: Add elapsed time for glibc test report.

  Yoann Congal (1):
        bitbake: fetch2/gitsm: Document that we won't support propagating user parameter

meta-security: 405cca4028..b9bc938785:
  Armin Kuster (21):
        bastille: bastille/config should not be world writeable.
        ossec-hids: Fix usermod
        python3-flask-script: add package
        python3-segno: add new package
        python3-privacyidea: fixup REDPENDS
        qemu: move qemu setting to image and out of layer.conf
        packagegroup-core-security: only include firejail x86-64 and arch64
        firejail: only allow x86-64 and arm64 to build
        python3-tpm2-pytss: add python tss2 support
        packagegroup: add python3-tpm2-pytss
        clamav: update SRC_URI
        scap-security-guide: refactor patches
        packagegroup-security-tpm2: add more pkgs
        scap-security-guide: enable ptest
        python3-yamlpath: Add new pkg
        python3-json2html: add new pkg
        python3-json2html: add new pkg
        meta-integrity: drop ima.cfg in favor of new k-cache
        sshguard: Update to 2.4.3
        meta-tpm linux-yocto-rt: Add the bbappend for rt kernel
        layer: add QA_WARNINGS to all layers

  Kai Kang (2):
        openscap: fix buildpaths issue
        sssd: 2.7.4 -> 2.9.1

  Kevin Hao (1):
        linux-yocto-rt: Add the bbappend for rt kernel

  Luke Granger-Brown (1):
        glome: update to tip

  Wurm, Stephan (1):
        dm-verity-image-initramfs: Allow compressed image types

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Icf1ba0c270d53f4c3c3838d4305116e5d6f794de
diff --git a/meta-arm/ci/external-gccarm.yml b/meta-arm/ci/external-gccarm.yml
index fe8fa6c..a3313d8 100644
--- a/meta-arm/ci/external-gccarm.yml
+++ b/meta-arm/ci/external-gccarm.yml
@@ -6,3 +6,6 @@
     SKIP_RECIPE[gcc-cross-arm] = "Using external toolchain"
     TCMODE = "external-arm"
     EXTERNAL_TOOLCHAIN = "${TOPDIR}/toolchains/${TARGET_ARCH}"
+    # Temporary workaround for a number binaries in the toolchains that are using 32bit timer API
+    # This must be done here instead of the recipe because of all the libraries in the toolchain have the issue
+    INSANE_SKIP:append = " 32bit-time"
diff --git a/meta-arm/ci/get-binary-toolchains b/meta-arm/ci/get-binary-toolchains
index 23c3bbb..69a4d38 100755
--- a/meta-arm/ci/get-binary-toolchains
+++ b/meta-arm/ci/get-binary-toolchains
@@ -5,9 +5,10 @@
 VER=${VER:-12.2.rel1}
 HOST_ARCH=${HOST_ARCH:-$(uname -m)}
 
-DOWNLOAD_DIR=$1
-TOOLCHAIN_DIR=$2
-TOOLCHAIN_LINK_DIR=$3
+# Use the standard kas container locations if nothing is passed into the script
+DOWNLOAD_DIR="${1:-/builds/persist/downloads/}"
+TOOLCHAIN_DIR="${2:-/builds/persist//toolchains/}"
+TOOLCHAIN_LINK_DIR="${3:-build/toolchains/}"
 
 # These should be already created by .gitlab-ci.yml, but do here if run outside of that env
 mkdir -p $DOWNLOAD_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
diff --git a/meta-arm/ci/tc1.yml b/meta-arm/ci/tc1.yml
index 66c5ab9..77d67d2 100644
--- a/meta-arm/ci/tc1.yml
+++ b/meta-arm/ci/tc1.yml
@@ -9,4 +9,3 @@
 
 target:
   - core-image-minimal
-  - trusted-firmware-m
diff --git a/meta-arm/ci/toolchains.yml b/meta-arm/ci/toolchains.yml
index 72ce558..9b63bf2 100644
--- a/meta-arm/ci/toolchains.yml
+++ b/meta-arm/ci/toolchains.yml
@@ -16,4 +16,5 @@
   - nativesdk-gcc-aarch64-none-elf
   - gcc-arm-none-eabi
   - nativesdk-gcc-arm-none-eabi
-  - nativesdk-androidclang
+  - gcc-arm-none-eabi-11.2
+  - nativesdk-gcc-arm-none-eabi-11.2
diff --git a/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc b/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
index 8a2e2a0..aeb1411 100644
--- a/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/conf/machine/include/corstone1000.inc
@@ -22,7 +22,7 @@
 RE_IMAGE_OFFSET = "0x1000"
 
 # u-boot
-PREFERRED_VERSION_u-boot ?= "2023.01"
+PREFERRED_VERSION_u-boot ?= "2023.07%"
 EXTRA_IMAGEDEPENDS += "u-boot"
 
 UBOOT_CONFIG ??= "EFI"
diff --git a/meta-arm/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md b/meta-arm/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md
index 00efed4..2635e75 100644
--- a/meta-arm/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md
+++ b/meta-arm/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md
@@ -27,7 +27,7 @@
 where either a standard or Real-Time Linux kernel (PREEMPT\_RT) can be built
 and run:
 
- - FVP_Base_AEMv8R: v11.20.15
+ - FVP_Base_AEMv8R: v11.22.14
  - boot-wrapper-aarch64: provides PSCI support
  - U-Boot: v2022.07 - provides UEFI services
  - Linux kernel: linux-yocto-5.15
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/corstone1000/0002-feat-corstone1000-bl2-loads-fip-based-on-metadata.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/corstone1000/0002-feat-corstone1000-bl2-loads-fip-based-on-metadata.patch
index 3afaa4b..d834e95 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/corstone1000/0002-feat-corstone1000-bl2-loads-fip-based-on-metadata.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/corstone1000/0002-feat-corstone1000-bl2-loads-fip-based-on-metadata.patch
@@ -16,7 +16,6 @@
 Upstream-Status: Pending
 Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
 
-%% original patch: 0002-feat-corstone1000-bl2-loads-fip-based-on-metadata.patch
 ---
  bl2/bl2_main.c                                |  4 +++
  .../corstone1000/common/corstone1000_plat.c   | 32 ++++++-------------
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/corstone1000/0003-psci-SMCCC_ARCH_FEATURES-discovery-through-PSCI_FEATURES.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/corstone1000/0003-psci-SMCCC_ARCH_FEATURES-discovery-through-PSCI_FEATURES.patch
new file mode 100644
index 0000000..2a7cd47
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/corstone1000/0003-psci-SMCCC_ARCH_FEATURES-discovery-through-PSCI_FEATURES.patch
@@ -0,0 +1,29 @@
+From 16937460429d6bcd502b21c20d16222541ed8d48 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Mon, 6 Mar 2023 15:57:59 +0000
+Subject: [PATCH] psci: SMCCC_ARCH_FEATURES discovery through PSCI_FEATURES
+
+allow normal world use PSCI_FEATURES to discover SMCCC_ARCH_FEATURES
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Upstream-Status: Inappropriate [A U-Boot patch will be released to fix an issue in the PSCI driver]
+---
+ lib/psci/psci_main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/psci/psci_main.c b/lib/psci/psci_main.c
+index a631f3ffbf..cc8904b006 100644
+--- a/lib/psci/psci_main.c
++++ b/lib/psci/psci_main.c
+@@ -337,7 +337,7 @@ int psci_features(unsigned int psci_fid)
+ {
+ 	unsigned int local_caps = psci_caps;
+ 
+-	if (psci_fid == SMCCC_VERSION)
++	if (psci_fid == SMCCC_VERSION || psci_fid == SMCCC_ARCH_FEATURES)
+ 		return PSCI_E_SUCCESS;
+ 
+ 	/* Check if it is a 64 bit function */
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/0001-Reserve-OP-TEE-memory-from-nwd.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/0001-Reserve-OP-TEE-memory-from-nwd.patch
new file mode 100644
index 0000000..2c634e3
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/files/n1sdp/0001-Reserve-OP-TEE-memory-from-nwd.patch
@@ -0,0 +1,41 @@
+From 2d305094f8f500362079e9e7637d46129bf980e4 Mon Sep 17 00:00:00 2001
+From: Adam Johnston <adam.johnston@arm.com>
+Date: Tue, 25 Jul 2023 16:05:51 +0000
+Subject: [PATCH] n1sdp: Reserve OP-TEE memory from NWd
+
+The physical memory which is used to run OP-TEE on the N1SDP is known
+to the secure world via TOS_FW_CONFIG, but it may not be known to the
+normal world.
+
+As a precaution, explicitly reserve this memory via NT_FW_CONFIG to
+prevent the normal world from using it. This is not required on most
+platforms as the Trusted OS is run from secure RAM.
+
+Upstream-Status: Pending (not yet submited to upstream)
+Signed-off-by: Adam Johnston <adam.johnston@arm.com>
+---
+ plat/arm/board/n1sdp/fdts/n1sdp_nt_fw_config.dts | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/plat/arm/board/n1sdp/fdts/n1sdp_nt_fw_config.dts b/plat/arm/board/n1sdp/fdts/n1sdp_nt_fw_config.dts
+index da5e04ddb6..b7e2d4e86f 100644
+--- a/plat/arm/board/n1sdp/fdts/n1sdp_nt_fw_config.dts
++++ b/plat/arm/board/n1sdp/fdts/n1sdp_nt_fw_config.dts
+@@ -20,4 +20,16 @@
+ 		local-ddr-size = <0x0>;
+ 		remote-ddr-size = <0x0>;
+ 	};
++
++	reserved-memory {
++		#address-cells = <2>;
++		#size-cells = <2>;
++		ranges;
++
++		optee@0x08000000 {
++			compatible = "removed-dma-pool";
++			reg = <0x0 0x08000000 0x0 0x02000000>;
++			no-map;
++		};
++	};
+ };
+\ No newline at end of file
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc
index 3a5be11..06be28e 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-corstone1000.inc
@@ -7,6 +7,7 @@
 SRC_URI:append = " \ 
 	file://0001-Fix-FF-A-version-in-SPMC-manifest.patch \
     file://0002-feat-corstone1000-bl2-loads-fip-based-on-metadata.patch \
+    file://0003-psci-SMCCC_ARCH_FEATURES-discovery-through-PSCI_FEATURES.patch \
     "
 
 #Sets TF-A version to 2.8.0
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
index f4ebcc1..654e432 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-n1sdp.inc
@@ -9,6 +9,12 @@
 TFA_UBOOT          = "0"
 TFA_UEFI           = "1"
 
+FILESEXTRAPATHS:prepend := "${THISDIR}/files/n1sdp:"
+
+SRC_URI:append = " \ 
+    file://0001-Reserve-OP-TEE-memory-from-nwd.patch \
+    "
+
 TFA_ROT_KEY= "plat/arm/board/common/rotpk/arm_rotprivk_rsa.pem"
 
 # Enabling Secure-EL1 Payload Dispatcher (SPD)
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0013-Platform-corstone1000-Increase-BL2-size-in-flash-lay.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-Increase-BL2-size-in-flash-lay.patch
similarity index 87%
rename from meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0013-Platform-corstone1000-Increase-BL2-size-in-flash-lay.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-Increase-BL2-size-in-flash-lay.patch
index 92d17cc..98dabbe 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0013-Platform-corstone1000-Increase-BL2-size-in-flash-lay.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-Increase-BL2-size-in-flash-lay.patch
@@ -1,12 +1,13 @@
-From 77c5a3bd090955e48ffca92bf9535185d26e9017 Mon Sep 17 00:00:00 2001
+From 60598f3b44237bd5038e33400e749ec1e7e8fbda Mon Sep 17 00:00:00 2001
 From: Emekcan Aras <emekcan.aras@arm.com>
 Date: Mon, 15 May 2023 10:42:23 +0100
-Subject: [PATCH 2/4] Platform: corstone1000: Increase BL2 size in flash layout
+Subject: [PATCH] Platform: corstone1000: Increase BL2 size in flash layout
 
 Increases BL2 size to align with the flash page size in corstone1000.
 
 Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
 Upstream-Status: Pending [Not submitted to upstream yet]
+
 ---
  platform/ext/target/arm/corstone1000/partition/flash_layout.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
@@ -24,6 +25,3 @@
  #define SE_BL2_BANK_0_OFFSET            (0x9000)  /* 72nd LBA */
  #define SE_BL2_BANK_1_OFFSET            (0x1002000)  /* 32784th LBA */
  
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch
deleted file mode 100644
index eeaf6d1..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0001-Platform-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 0ee6842d348e206d511ec89a7ff5b29a6f325456 Mon Sep 17 00:00:00 2001
-From: Rui Miguel Silva <rui.silva@linaro.org>
-Date: Sun, 29 Jan 2023 19:01:08 +0000
-Subject: [PATCH] corstone1000: make sure to write fwu metadata to replica 2
-
-u-boot and other, before using fwu metadata validate if
-the copies in both replicas are good. so, make sure
-we write fwu metadata in both replicas.
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20550]
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- .../arm/corstone1000/fw_update_agent/fwu_agent.c   | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-index e1fa297ac923..215902ce71b9 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-@@ -238,6 +238,20 @@ static enum fwu_agent_error_t metadata_write(
-         return FWU_AGENT_ERROR;
-     }
- 
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata));
-+
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET);
-+    if (ret != ARM_DRIVER_OK) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET,
-+                                p_metadata, sizeof(struct fwu_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-     FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
-                   p_metadata->active_index, p_metadata->previous_active_index);
-     return FWU_AGENT_SUCCESS;
--- 
-2.39.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0014-Platform-Corstone1000-Increase-BL2_DATA_SIZE.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-Corstone1000-Increase-BL2_DATA_SIZE.patch
similarity index 90%
rename from meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0014-Platform-Corstone1000-Increase-BL2_DATA_SIZE.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-Corstone1000-Increase-BL2_DATA_SIZE.patch
index e2844ba..d348d02 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0014-Platform-Corstone1000-Increase-BL2_DATA_SIZE.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-Corstone1000-Increase-BL2_DATA_SIZE.patch
@@ -1,13 +1,14 @@
-From 17244ac692495c23008ff784611d0ee1d42c83dc Mon Sep 17 00:00:00 2001
+From b05fb661b3afc3ed8e3d4817df2798e9d4877b39 Mon Sep 17 00:00:00 2001
 From: Emekcan Aras <emekcan.aras@arm.com>
 Date: Mon, 15 May 2023 10:46:18 +0100
-Subject: [PATCH 3/4] Platform: Corstone1000: Increase BL2_DATA_SIZE
+Subject: [PATCH] Platform: Corstone1000: Increase BL2_DATA_SIZE
 
 Increases BL2_DATA_SIZE to accommodate the changes in
 metadata_write/read.
 
 Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
 Upstream-Status: Pending [Not submitted to upstream yet]
+
 ---
  platform/ext/target/arm/corstone1000/partition/region_defs.h | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
@@ -28,6 +29,3 @@
  #define BL2_DATA_LIMIT    (BL2_DATA_START + BL2_DATA_SIZE - 1)
  
  /* SE BL1 regions */
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-get-fwu-and-private-metadata-f.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-get-fwu-and-private-metadata-f.patch
deleted file mode 100644
index 3d7fc4b..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0002-Platform-corstone1000-get-fwu-and-private-metadata-f.patch
+++ /dev/null
@@ -1,307 +0,0 @@
-From 4a4d1b0a5a2455ad799a45f7f87c0c9fd0173034 Mon Sep 17 00:00:00 2001
-From: Rui Miguel Silva <rui.silva@linaro.org>
-Date: Wed, 29 Mar 2023 10:58:32 +0100
-Subject: [PATCH] Platform: Corstone1000: get fwu and private metadata from gpt
-
-Read and Write the FWU metadata and private metadata using instead
-static flash offsets get the partitions and start address from gpt
-partition table.
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20551]
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- .../target/arm/corstone1000/CMakeLists.txt    |  7 ++
- .../corstone1000/fw_update_agent/fwu_agent.c  | 90 +++++++++++++++----
- .../target/arm/corstone1000/partition/efi.h   |  1 +
- .../arm/corstone1000/partition/partition.c    | 14 +++
- .../arm/corstone1000/partition/partition.h    |  1 +
- .../ext/target/arm/corstone1000/platform.h    |  5 ++
- 6 files changed, 99 insertions(+), 19 deletions(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-index 19863bcdb6d2..f232c7639bd5 100644
---- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-@@ -64,6 +64,8 @@ target_include_directories(platform_s
-         cc312
-         fw_update_agent
-         soft_crc
-+        io
-+        partition
- )
- 
- target_sources(platform_s
-@@ -81,6 +83,11 @@ target_sources(platform_s
-         fw_update_agent/fwu_agent.c
-         fw_update_agent/uefi_fmp.c
-         soft_crc/soft_crc.c
-+        io/io_block.c
-+        io/io_flash.c
-+        io/io_storage.c
-+        partition/partition.c
-+        partition/gpt.c
-         $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_OTP}>>:${PLATFORM_DIR}/ext/accelerator/cc312/otp_cc312.c>
- )
- 
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-index b6ed656de833..9c76b25a3a38 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-@@ -14,6 +14,8 @@
- #include "region_defs.h"
- #include "uefi_capsule_parser.h"
- #include "flash_common.h"
-+#include "partition.h"
-+#include "platform.h"
- #include "platform_base_address.h"
- #include "platform_description.h"
- #include "tfm_plat_nv_counters.h"
-@@ -146,6 +148,8 @@ extern ARM_DRIVER_FLASH FWU_METADATA_FLASH_DEV;
- static enum fwu_agent_error_t private_metadata_read(
-         struct fwu_private_metadata* p_metadata)
- {
-+    partition_entry_t *part;
-+    uuid_t private_uuid = PRIVATE_METADATA_TYPE_UUID;
-     int ret;
- 
-     FWU_LOG_MSG("%s: enter\n\r", __func__);
-@@ -154,7 +158,13 @@ static enum fwu_agent_error_t private_metadata_read(
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET, p_metadata,
-+    part = get_partition_entry_by_type(&private_uuid);
-+    if (!part) {
-+        FWU_LOG_MSG("Private metadata partition not found\n\r");
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ReadData(part->start, p_metadata,
-                                           sizeof(struct fwu_private_metadata));
-     if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
-         return FWU_AGENT_ERROR;
-@@ -169,6 +179,8 @@ static enum fwu_agent_error_t private_metadata_read(
- static enum fwu_agent_error_t private_metadata_write(
-         struct fwu_private_metadata* p_metadata)
- {
-+    uuid_t private_uuid = PRIVATE_METADATA_TYPE_UUID;
-+    partition_entry_t *part;
-     int ret;
- 
-     FWU_LOG_MSG("%s: enter: boot_index = %u\n\r", __func__,
-@@ -178,12 +190,18 @@ static enum fwu_agent_error_t private_metadata_write(
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET);
-+    part = get_partition_entry_by_type(&private_uuid);
-+    if (!part) {
-+        FWU_LOG_MSG("Private metadata partition not found\n\r");
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(part->start);
-     if (ret != ARM_DRIVER_OK) {
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET,
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(part->start,
-                                 p_metadata, sizeof(struct fwu_private_metadata));
-     if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
-         return FWU_AGENT_ERROR;
-@@ -219,16 +237,25 @@ static enum fwu_agent_error_t metadata_validate(struct fwu_metadata *p_metadata)
- 
- static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metadata *p_metadata)
- {
-+    uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
-+    partition_entry_t *part;
-     int ret;
- 
--    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
--                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
--
-     if (!p_metadata) {
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
-+    part = get_partition_entry_by_type(&metadata_uuid);
-+    if (!part) {
-+        FWU_LOG_MSG("%s: FWU metadata partition not found\n\r", __func__);
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  part->start, sizeof(struct fwu_metadata));
-+
-+
-+    ret = FWU_METADATA_FLASH_DEV.ReadData(part->start,
-                                 p_metadata, sizeof(struct fwu_metadata));
-     if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-         return FWU_AGENT_ERROR;
-@@ -242,16 +269,24 @@ static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metada
- 
- static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
- {
-+    uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
-+    partition_entry_t *part;
-     int ret;
- 
--    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
--                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
--
-     if (!p_metadata) {
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
-+    part = get_partition_entry_by_type(&metadata_uuid);
-+    if (!part) {
-+        FWU_LOG_MSG("%s: FWU metadata partition not found\n\r", __func__);
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  part->start, sizeof(struct fwu_metadata));
-+
-+    ret = FWU_METADATA_FLASH_DEV.ReadData(part->start,
-                                 p_metadata, sizeof(struct fwu_metadata));
-     if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-         return FWU_AGENT_ERROR;
-@@ -270,35 +305,49 @@ static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
- static enum fwu_agent_error_t metadata_write(
-                         struct fwu_metadata *p_metadata)
- {
-+    uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
-+    partition_entry_t *part;
-     int ret;
- 
--    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
--                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
--
-     if (!p_metadata) {
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_1_OFFSET);
-+    part = get_partition_entry_by_type(&metadata_uuid);
-+    if (!part) {
-+        FWU_LOG_MSG("%s: FWU metadata partition not found\n\r", __func__);
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  part->start, sizeof(struct fwu_metadata));
-+
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(part->start);
-     if (ret != ARM_DRIVER_OK) {
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_1_OFFSET,
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(part->start,
-                                 p_metadata, sizeof(struct fwu_metadata));
-     if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-         return FWU_AGENT_ERROR;
-     }
- 
-+    part = get_partition_replica_by_type(&metadata_uuid);
-+    if (!part) {
-+        FWU_LOG_MSG("%s: FWU metadata replica partition not found\n\r", __func__);
-+        return FWU_AGENT_ERROR;
-+    }
-+
-     FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
--                  FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata));
-+                  part->start, sizeof(struct fwu_metadata));
- 
--    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET);
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(part->start);
-     if (ret != ARM_DRIVER_OK) {
-         return FWU_AGENT_ERROR;
-     }
- 
--    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET,
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(part->start,
-                                 p_metadata, sizeof(struct fwu_metadata));
-     if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-         return FWU_AGENT_ERROR;
-@@ -355,6 +404,9 @@ enum fwu_agent_error_t fwu_metadata_provision(void)
- 
-     FWU_LOG_MSG("%s: enter\n\r", __func__);
- 
-+    plat_io_storage_init();
-+    partition_init(PLATFORM_GPT_IMAGE);
-+
-     ret = fwu_metadata_init();
-     if (ret) {
-         return ret;
-diff --git a/platform/ext/target/arm/corstone1000/partition/efi.h b/platform/ext/target/arm/corstone1000/partition/efi.h
-index f66daffb32d6..7e6a4bc883e6 100644
---- a/platform/ext/target/arm/corstone1000/partition/efi.h
-+++ b/platform/ext/target/arm/corstone1000/partition/efi.h
-@@ -8,6 +8,7 @@
- #ifndef DRIVERS_PARTITION_EFI_H
- #define DRIVERS_PARTITION_EFI_H
- 
-+#include <stdint.h>
- #include <string.h>
- 
- #include "uuid.h"
-diff --git a/platform/ext/target/arm/corstone1000/partition/partition.c b/platform/ext/target/arm/corstone1000/partition/partition.c
-index afc6aa1c5cb8..d76e123d728f 100644
---- a/platform/ext/target/arm/corstone1000/partition/partition.c
-+++ b/platform/ext/target/arm/corstone1000/partition/partition.c
-@@ -293,6 +293,20 @@ const partition_entry_t *get_partition_entry_by_type(const uuid_t *type_uuid) {
-     return NULL;
- }
- 
-+const partition_entry_t *get_partition_replica_by_type(const uuid_t *type_uuid) {
-+    int count = 0;
-+    int i;
-+
-+    for (i = 0; i < list.entry_count; i++) {
-+        if (guidcmp(type_uuid, &list.list[i].type_guid) == 0) {
-+            if (++count == 2)
-+                 return &list.list[i];
-+        }
-+    }
-+
-+    return NULL;
-+}
-+
- const partition_entry_t *get_partition_entry_by_uuid(const uuid_t *part_uuid) {
-     int i;
- 
-diff --git a/platform/ext/target/arm/corstone1000/partition/partition.h b/platform/ext/target/arm/corstone1000/partition/partition.h
-index 54af47aca415..450cf20a073c 100644
---- a/platform/ext/target/arm/corstone1000/partition/partition.h
-+++ b/platform/ext/target/arm/corstone1000/partition/partition.h
-@@ -40,6 +40,7 @@ typedef struct partition_entry_list {
- int load_partition_table(unsigned int image_id);
- const partition_entry_t *get_partition_entry(const char *name);
- const partition_entry_t *get_partition_entry_by_type(const uuid_t *type_guid);
-+const partition_entry_t *get_partition_replica_by_type(const uuid_t *type_uuid);
- const partition_entry_t *get_partition_entry_by_uuid(const uuid_t *part_uuid);
- const partition_entry_list_t *get_partition_entry_list(void);
- void partition_init(unsigned int image_id);
-diff --git a/platform/ext/target/arm/corstone1000/platform.h b/platform/ext/target/arm/corstone1000/platform.h
-index 894f5e309029..a88093ed4f9d 100644
---- a/platform/ext/target/arm/corstone1000/platform.h
-+++ b/platform/ext/target/arm/corstone1000/platform.h
-@@ -13,6 +13,11 @@ typedef enum {
-     PLATFORM_IMAGE_COUNT,
- }platform_image_id_t;
- 
-+#define FWU_METADATA_TYPE_UUID \
-+     ((uuid_t){{0xa0, 0x84, 0x7a, 0x8a}, {0x87, 0x83}, {0xf6, 0x40}, 0xab,  0x41, {0xa8, 0xb9, 0xa5, 0xa6, 0x0d, 0x23}})
-+#define PRIVATE_METADATA_TYPE_UUID \
-+     ((uuid_t){{0xc3, 0x5d, 0xb5, 0xec}, {0xb7, 0x8a}, {0x84, 0x4a}, 0xab,  0x56, {0xeb, 0x0a, 0x99, 0x74, 0xdb, 0x42}})
-+
- /* Initialize io storage of the platform */
- int32_t plat_io_storage_init(void);
- 
--- 
-2.40.0
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0015-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch
similarity index 93%
rename from meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0015-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch
index fd977ac..bf7aba8 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0015-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch
@@ -1,8 +1,8 @@
-From 83e423497afecc202a3a50c3e472161390056ebd Mon Sep 17 00:00:00 2001
+From 88cfce2e04913d48ec8636b6a3550d71ebdd49c4 Mon Sep 17 00:00:00 2001
 From: Emekcan Aras <emekcan.aras@arm.com>
 Date: Mon, 15 May 2023 10:47:27 +0100
-Subject: [PATCH 4/4] Platform: Corstone1000: Calculate the new CRC32 value
- after changing the metadata
+Subject: [PATCH] Platform: Corstone1000: Calculate the new CRC32 value after
+ changing the metadata
 
 Calculates the new CRC32 value for the metadata struct after chaing a value
 during the capsule update. It also updates the CRC32 field in the metadata
@@ -13,6 +13,7 @@
 
 Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
 Upstream-Status: Pending [Not submitted to upstream yet]
+
 ---
  .../arm/corstone1000/fw_update_agent/fwu_agent.c       | 10 +++++++---
  1 file changed, 7 insertions(+), 3 deletions(-)
@@ -66,6 +67,3 @@
          if (priv_metadata->nv_counter[i] < security_cnt) {
              return FWU_AGENT_ERROR;
          } else if (priv_metadata->nv_counter[i] > security_cnt) {
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-watchdog_reset_timer.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-watchdog_reset_timer.patch
deleted file mode 100644
index 3ffd83e..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0003-Platform-corstone1000-Add-watchdog_reset_timer.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 33d8f45c8f14e9e0d7add7d2804ed76c7d7fd0c2 Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Sat, 25 Feb 2023 09:04:38 +0000
-Subject: [PATCH 1/7] Platform: corstone1000: Add watchdog_reset_timer
-
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
-Implement watchdog_reset_timer
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20552]
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Change-Id: I2684ca54f9a456b22efcbcd364abef3537d4c91f
----
- .../arm/corstone1000/Native_Driver/watchdog.c   | 17 +++++++++++++++++
- 1 file changed, 17 insertions(+)
-
-diff --git a/platform/ext/target/arm/corstone1000/Native_Driver/watchdog.c b/platform/ext/target/arm/corstone1000/Native_Driver/watchdog.c
-index 4e024a3b1..f6e182194 100644
---- a/platform/ext/target/arm/corstone1000/Native_Driver/watchdog.c
-+++ b/platform/ext/target/arm/corstone1000/Native_Driver/watchdog.c
-@@ -80,6 +80,23 @@ int corstone1000_watchdog_init()
-     return ARM_DRIVER_OK;
- }
- 
-+/**
-+ *  \brief Reset the Secure Enclave & SoC Watchdog's.
-+ *
-+ *  \returns ARM Driver return code.
-+ */
-+int corstone1000_watchdog_reset_timer() {
-+    /* Unlock, clear and lock the watchdog timer */
-+    arm_watchdog_unlock(&SE_WD_DEV);
-+    arm_watchdog_clear_interrupt_and_refresh_counter(&SE_WD_DEV);
-+    arm_watchdog_lock(&SE_WD_DEV);
-+    /* Unlock, clear and lock the watchdog timer */
-+    arm_watchdog_unlock(&SOC_WD_DEV);
-+    arm_watchdog_clear_interrupt_and_refresh_counter(&SOC_WD_DEV);
-+    arm_watchdog_lock(&SOC_WD_DEV);
-+    return ARM_DRIVER_OK;
-+}
-+
- /*
-  * Secure Host Watchdog WS1 Handler
-  * efi_reset_system from the host triggers "Secure
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s.patch
deleted file mode 100644
index 0ad4494..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s.patch
+++ /dev/null
@@ -1,1034 +0,0 @@
-From e46fd33355b54c08d1764c2a8e7b553960d61157 Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Sat, 25 Feb 2023 10:29:55 +0000
-Subject: [PATCH 1/6] Platform: corstone1000: Replace MCUBOOT BL1 by TFM's
-
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
-Replace The current BL1 (MCUBOOT) with the TFM BL1
-by enabling
-- PLATFORM_DEFAULT_BL1
-- Update linkerscripts
-- Update CMakeFile
-- Adapt boot_hal
-- Adapt provisioning (to use the provision bundle)
-- Adapt flash_layout and region_defs
-- Update documentation of corstone1000 build and run sections
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20553]
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Change-Id: I224b24d0f4423e62468e609c11a239a4575cdae4
----
- .../target/arm/corstone1000/CMakeLists.txt    |  70 +++++-
- .../Device/Include/boot_measurement.h         |  24 +++
- .../Device/Include/platform_base_address.h    |   3 +
- .../Device/Source/gcc/corstone1000_bl1_1.ld   | 203 ++++++++++++++++++
- ...stone1000_bl1.ld => corstone1000_bl1_2.ld} |   8 +-
- .../target/arm/corstone1000/bl1/bl1_rotpk.c   |  48 -----
- .../bl1/{bl1_boot_hal.c => boot_hal_bl1.c}    | 102 ++++-----
- .../arm/corstone1000/bl1/flash_map_extended.c | 103 ---------
- .../arm/corstone1000/bl1/provisioning.c       | 109 +++++-----
- .../ext/target/arm/corstone1000/config.cmake  |  18 +-
- .../arm/corstone1000/partition/flash_layout.h |  10 -
- .../arm/corstone1000/partition/region_defs.h  |  37 +++-
- 12 files changed, 434 insertions(+), 301 deletions(-)
- create mode 100644 platform/ext/target/arm/corstone1000/Device/Include/boot_measurement.h
- create mode 100644 platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
- rename platform/ext/target/arm/corstone1000/Device/Source/gcc/{corstone1000_bl1.ld => corstone1000_bl1_2.ld} (95%)
- delete mode 100644 platform/ext/target/arm/corstone1000/bl1/bl1_rotpk.c
- rename platform/ext/target/arm/corstone1000/bl1/{bl1_boot_hal.c => boot_hal_bl1.c} (90%)
- delete mode 100644 platform/ext/target/arm/corstone1000/bl1/flash_map_extended.c
-
-diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-index 19863bcdb..a4fe28c08 100644
---- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-@@ -41,6 +41,23 @@ target_add_scatter_file(bl2
-         $<$<C_COMPILER_ID:GNU>:${PLATFORM_DIR}/ext/common/gcc/tfm_common_bl2.ld>
- )
- 
-+target_sources(bl1_1
-+PRIVATE
-+    $<$<C_COMPILER_ID:GNU>:${CMAKE_CURRENT_SOURCE_DIR}/Device/Source/startup_corstone1000.c>
-+)
-+
-+target_add_scatter_file(bl1_1
-+    $<$<C_COMPILER_ID:GNU>:${CMAKE_CURRENT_SOURCE_DIR}/Device/Source/gcc/corstone1000_bl1_1.ld>
-+)
-+
-+target_sources(bl1_2
-+PRIVATE
-+    $<$<C_COMPILER_ID:GNU>:${CMAKE_CURRENT_SOURCE_DIR}/Device/Source/startup_corstone1000.c>
-+)
-+target_add_scatter_file(bl1_2
-+    $<$<C_COMPILER_ID:GNU>:${CMAKE_CURRENT_SOURCE_DIR}/Device/Source/gcc/corstone1000_bl1_2.ld>
-+)
-+
- #========================= Platform Secure ====================================#
- 
- add_subdirectory(openamp)
-@@ -115,6 +132,55 @@ if (TFM_PARTITION_CRYPTO)
-     )
- endif()
- 
-+#========================= Platform BL1 =======================================#
-+
-+target_sources(platform_bl1
-+    PRIVATE
-+        ./Device/Source/system_core_init.c
-+        ./Device/Source/device_definition.c
-+        ./bl1/boot_hal_bl1.c
-+        ./Native_Driver/firewall.c
-+        ./CMSIS_Driver/Driver_Flash.c
-+        ./CMSIS_Driver/Driver_USART.c
-+        ./Native_Driver/uart_pl011_drv.c
-+        $<$<BOOL:${PLATFORM_IS_FVP}>:${CMAKE_CURRENT_SOURCE_DIR}/Native_Driver/cfi_drv.c>
-+        $<$<BOOL:${PLATFORM_IS_FVP}>:${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata/spi_strataflashj3_flash_lib.c>
-+        $<$<NOT:$<BOOL:${PLATFORM_IS_FVP}>>:${PLATFORM_DIR}/ext/target/arm/drivers/qspi/xilinx_pg153_axi/xilinx_pg153_axi_qspi_controller_drv.c>
-+        $<$<NOT:$<BOOL:${PLATFORM_IS_FVP}>>:${PLATFORM_DIR}/ext/target/arm/drivers/flash/n25q256a/spi_n25q256a_flash_lib.c>
-+        $<$<NOT:$<BOOL:${PLATFORM_IS_FVP}>>:${PLATFORM_DIR}/ext/target/arm/drivers/flash/sst26vf064b/spi_sst26vf064b_flash_lib.c>
-+        ./fw_update_agent/uefi_capsule_parser.c
-+        ./fw_update_agent/fwu_agent.c
-+        ./fw_update_agent/uefi_fmp.c
-+        ./soft_crc/soft_crc.c
-+        ./Native_Driver/arm_watchdog_drv.c
-+        ./Native_Driver/watchdog.c
-+        ./bl1/provisioning.c
-+        $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_OTP}>>:${PLATFORM_DIR}/ext/accelerator/cc312/otp_cc312.c>
-+)
-+
-+target_compile_definitions(platform_bl1
-+    PUBLIC
-+        $<$<BOOL:${PLATFORM_IS_FVP}>:PLATFORM_IS_FVP>
-+        $<$<AND:$<BOOL:${CONFIG_TFM_BOOT_STORE_MEASUREMENTS}>,$<BOOL:${TFM_PARTITION_MEASURED_BOOT}>>:MEASURED_BOOT_API>
-+        $<$<BOOL:${PLATFORM_DEFAULT_OTP_WRITEABLE}>:OTP_WRITEABLE>
-+)
-+
-+target_include_directories(platform_bl1_interface
-+    INTERFACE
-+        .
-+        ./Device/Include
-+        ./Device/Config
-+        ./Native_Driver
-+        ./CMSIS_Driver/Config
-+        ./fw_update_agent
-+        ./soft_crc
-+        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/common
-+        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/strata
-+        ${PLATFORM_DIR}/ext/target/arm/drivers/qspi/xilinx_pg153_axi/
-+        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/n25q256a/
-+        ${PLATFORM_DIR}/ext/target/arm/drivers/flash/sst26vf064b/
-+)
-+
- #========================= Platform BL2 =======================================#
- 
- set(BL2_SOURCE ${CMAKE_SOURCE_DIR}/bl2)
-@@ -214,10 +280,6 @@ target_include_directories(platform_bl2
-         $<BUILD_INTERFACE:${BL2_SOURCE}/ext/mcuboot/include>
- )
- 
--#========================= BL1 component =======================================#
--
--add_subdirectory(bl1)
--
- #========================= ns_agent_mailbox ===================================#
- 
- target_sources(tfm_psa_rot_partition_ns_agent_mailbox
-diff --git a/platform/ext/target/arm/corstone1000/Device/Include/boot_measurement.h b/platform/ext/target/arm/corstone1000/Device/Include/boot_measurement.h
-new file mode 100644
-index 000000000..a47bdb148
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/Device/Include/boot_measurement.h
-@@ -0,0 +1,24 @@
-+/*
-+ * Copyright (c) 2023, Arm Limited. All rights reserved.
-+ *
-+ * SPDX-License-Identifier: BSD-3-Clause
-+ *
-+ */
-+
-+#ifndef __BOOT_MEASUREMENT_H__
-+#define __BOOT_MEASUREMENT_H__
-+
-+enum boot_measurement_slot_t {
-+    BOOT_MEASUREMENT_SLOT_BL1_2 = 0,
-+    BOOT_MEASUREMENT_SLOT_BL2,
-+    BOOT_MEASUREMENT_SLOT_RT_0,
-+    BOOT_MEASUREMENT_SLOT_RT_1,
-+    BOOT_MEASUREMENT_SLOT_RT_2,
-+    BOOT_MEASUREMENT_SLOT_MAX = 32,
-+    BOOT_MEASUREMENT_SLOT_MAX_THEORETICAL = 63  /* Slot index is stored in
-+                                                 * 6 bits in the shared
-+                                                 * memory area.
-+                                                 */
-+};
-+
-+#endif /* __BOOT_MEASUREMENT_H__ */
-diff --git a/platform/ext/target/arm/corstone1000/Device/Include/platform_base_address.h b/platform/ext/target/arm/corstone1000/Device/Include/platform_base_address.h
-index 5cca4c4a1..416f0ebcd 100644
---- a/platform/ext/target/arm/corstone1000/Device/Include/platform_base_address.h
-+++ b/platform/ext/target/arm/corstone1000/Device/Include/platform_base_address.h
-@@ -79,4 +79,7 @@
- #define CORSTONE1000_HOST_AXI_QSPI_CTRL_REG_BASE_SE_SECURE_FLASH (0x90010000U) /* AXI QSPI Controller for SE FLash  */
- #define CORSTONE1000_HOST_DRAM_UEFI_CAPSULE        (0xA0000000U) /* 1.5 GB DDR                        */
- 
-+/* Map Component definitions to Corstone definitions */
-+#define CC3XX_BASE_S        CORSTONE1000_CRYPTO_ACCELERATOR_BASE
-+
- #endif  /* __PLATFORM_BASE_ADDRESS_H__ */
-diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
-new file mode 100644
-index 000000000..d4eca2841
---- /dev/null
-+++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
-@@ -0,0 +1,203 @@
-+;/*
-+; * Copyright (c) 2009-2022, Arm Limited. All rights reserved.
-+; *
-+; * Licensed under the Apache License, Version 2.0 (the "License");
-+; * you may not use this file except in compliance with the License.
-+; * You may obtain a copy of the License at
-+; *
-+; *     http://www.apache.org/licenses/LICENSE-2.0
-+; *
-+; * Unless required by applicable law or agreed to in writing, software
-+; * distributed under the License is distributed on an "AS IS" BASIS,
-+; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+; * See the License for the specific language governing permissions and
-+; * limitations under the License.
-+; *
-+; *
-+; * This file is derivative of CMSIS V5.00 gcc_arm.ld
-+; */
-+
-+/* Linker script to configure memory regions. */
-+/* This file will be run trough the pre-processor. */
-+
-+#include "region_defs.h"
-+
-+MEMORY
-+{
-+    FLASH (rx)  : ORIGIN = BL1_1_CODE_START, LENGTH = BL1_1_CODE_SIZE
-+    RAM   (rwx) : ORIGIN = BL1_1_DATA_START, LENGTH = BL1_1_DATA_SIZE
-+}
-+
-+__heap_size__  = BL1_1_HEAP_SIZE;
-+__msp_stack_size__ = BL1_1_MSP_STACK_SIZE;
-+
-+/* Library configurations */
-+GROUP(libgcc.a libc.a libm.a libnosys.a)
-+
-+ENTRY(Reset_Handler)
-+
-+SECTIONS
-+{
-+    .text :
-+    {
-+        KEEP(*(.vectors))
-+        __Vectors_End = .;
-+        __Vectors_Size = __Vectors_End - __Vectors;
-+        __end__ = .;
-+
-+        *(.text*)
-+
-+        KEEP(*shared_lib*:*(.text*))
-+        KEEP(*bl1_tests_shared*:*(.text*))
-+        KEEP(*bl1_crypto_hw*:*(.text*))
-+        KEEP(*boot_hal_bl1*(.text*))
-+
-+        KEEP(*(.init))
-+        KEEP(*(.fini))
-+
-+
-+        /* .ctors */
-+        *crtbegin.o(.ctors)
-+        *crtbegin?.o(.ctors)
-+        *(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)
-+        *(SORT(.ctors.*))
-+        *(.ctors)
-+
-+        /* .dtors */
-+         *crtbegin.o(.dtors)
-+         *crtbegin?.o(.dtors)
-+         *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)
-+         *(SORT(.dtors.*))
-+         *(.dtors)
-+
-+        *(.rodata*)
-+
-+        KEEP(*(.eh_frame*))
-+    } > FLASH
-+
-+    .ARM.extab :
-+    {
-+        *(.ARM.extab* .gnu.linkonce.armextab.*)
-+    } > FLASH
-+
-+    __exidx_start = .;
-+    .ARM.exidx :
-+    {
-+        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
-+    } > FLASH
-+    __exidx_end = .;
-+
-+    /* To copy multiple ROM to RAM sections,
-+     * define etext2/data2_start/data2_end and
-+     * define __STARTUP_COPY_MULTIPLE in startup_corstone700_bl2.S */
-+    .copy.table :
-+    {
-+        . = ALIGN(4);
-+        __copy_table_start__ = .;
-+        LONG (__etext)
-+        LONG (__data_start__)
-+        LONG ((__data_end__ - __data_start__) / 4)
-+        LONG (DEFINED(__etext2) ? __etext2 : 0)
-+        LONG (DEFINED(__data2_start__) ? __data2_start__ : 0)
-+        LONG (DEFINED(__data2_start__) ? ((__data2_end__ - __data2_start__) / 4) : 0)
-+        __copy_table_end__ = .;
-+    } > FLASH
-+
-+    /* To clear multiple BSS sections,
-+     * uncomment .zero.table section and,
-+     * define __STARTUP_CLEAR_BSS_MULTIPLE in startup_cmsdk_musca_bl2.S */
-+    .zero.table :
-+    {
-+        . = ALIGN(4);
-+        __zero_table_start__ = .;
-+        LONG (__bss_start__)
-+        LONG ((__bss_end__ - __bss_start__) / 4)
-+        LONG (DEFINED(__bss2_start__) ? __bss2_start__ : 0)
-+        LONG (DEFINED(__bss2_start__) ? ((__bss2_end__ - __bss2_start__) / 4) : 0)
-+        __zero_table_end__ = .;
-+    } > FLASH
-+
-+    __etext = ALIGN (4);
-+
-+    .tfm_bl2_shared_data : ALIGN(32)
-+    {
-+        . += BOOT_TFM_SHARED_DATA_SIZE;
-+    } > RAM
-+    Image$$SHARED_DATA$$RW$$Base = ADDR(.tfm_bl2_shared_data);
-+    Image$$SHARED_DATA$$RW$$Limit = ADDR(.tfm_bl2_shared_data) + SIZEOF(.tfm_bl2_shared_data);
-+
-+    . = BL1_1_DATA_START;
-+    Image$$BL1_1_ER_DATA_START$$Base = .;
-+    .data : AT (__etext)
-+    {
-+        __data_start__ = .;
-+        *(vtable)
-+        *(.data*)
-+
-+        . = ALIGN(4);
-+        /* preinit data */
-+        PROVIDE_HIDDEN (__preinit_array_start = .);
-+        KEEP(*(.preinit_array))
-+        PROVIDE_HIDDEN (__preinit_array_end = .);
-+
-+        . = ALIGN(4);
-+        /* init data */
-+        PROVIDE_HIDDEN (__init_array_start = .);
-+        KEEP(*(SORT(.init_array.*)))
-+        KEEP(*(.init_array))
-+        PROVIDE_HIDDEN (__init_array_end = .);
-+
-+
-+        . = ALIGN(4);
-+        /* finit data */
-+        PROVIDE_HIDDEN (__fini_array_start = .);
-+        KEEP(*(SORT(.fini_array.*)))
-+        KEEP(*(.fini_array))
-+        PROVIDE_HIDDEN (__fini_array_end = .);
-+
-+        KEEP(*(.jcr*))
-+        . = ALIGN(4);
-+        /* All data end */
-+        __data_end__ = .;
-+
-+    } > RAM
-+    Image$$ER_DATA$$Base = ADDR(.data);
-+
-+    .bss :
-+    {
-+        . = ALIGN(4);
-+        __bss_start__ = .;
-+        *(.bss*)
-+        *(COMMON)
-+        . = ALIGN(4);
-+        __bss_end__ = .;
-+    } > RAM
-+
-+    bss_size = __bss_end__ - __bss_start__;
-+
-+    .msp_stack (NOLOAD) : ALIGN(32)
-+    {
-+        . += __msp_stack_size__;
-+    } > RAM
-+    Image$$ARM_LIB_STACK$$ZI$$Base = ADDR(.msp_stack);
-+    Image$$ARM_LIB_STACK$$ZI$$Limit = ADDR(.msp_stack) + SIZEOF(.msp_stack);
-+
-+    .heap (NOLOAD): ALIGN(8)
-+    {
-+        . = ALIGN(8);
-+        __end__ = .;
-+        PROVIDE(end = .);
-+        __HeapBase = .;
-+        . += __heap_size__;
-+        __HeapLimit = .;
-+        __heap_limit = .; /* Add for _sbrk */
-+    } > RAM
-+    Image$$ARM_LIB_HEAP$$ZI$$Limit = ADDR(.heap) + SIZEOF(.heap);
-+
-+    PROVIDE(__stack = Image$$ARM_LIB_STACK$$ZI$$Limit);
-+
-+    Image$$BL1_1_ER_DATA_LIMIT$$Base = .;
-+
-+    Image$$BL1_2_ER_DATA_START$$Base = BL1_2_DATA_START;
-+    Image$$BL1_2_ER_DATA_LIMIT$$Base = BL1_2_DATA_START + BL1_2_DATA_SIZE;
-+}
-diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-similarity index 95%
-rename from platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1.ld
-rename to platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-index 73be37d7c..6cd806378 100644
---- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1.ld
-+++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-@@ -24,12 +24,12 @@
- 
- MEMORY
- {
--    FLASH (rx)  : ORIGIN = BL1_CODE_START, LENGTH = BL1_CODE_SIZE
--    RAM   (rwx) : ORIGIN = BL1_DATA_START, LENGTH = BL1_DATA_SIZE
-+    FLASH (rx)  : ORIGIN = BL1_2_CODE_START, LENGTH = BL1_2_CODE_SIZE
-+    RAM   (rwx) : ORIGIN = BL1_2_DATA_START, LENGTH = BL1_2_DATA_SIZE
- }
- 
--__heap_size__  = BL1_HEAP_SIZE;
--__msp_stack_size__ = BL1_MSP_STACK_SIZE;
-+__heap_size__  = BL1_2_HEAP_SIZE;
-+__msp_stack_size__ = BL1_2_MSP_STACK_SIZE;
- 
- /* Library configurations */
- GROUP(libgcc.a libc.a libm.a libnosys.a)
-diff --git a/platform/ext/target/arm/corstone1000/bl1/bl1_rotpk.c b/platform/ext/target/arm/corstone1000/bl1/bl1_rotpk.c
-deleted file mode 100644
-index d8cfe3759..000000000
---- a/platform/ext/target/arm/corstone1000/bl1/bl1_rotpk.c
-+++ /dev/null
-@@ -1,48 +0,0 @@
--/*
-- * Copyright (c) 2019-2021, Arm Limited. All rights reserved.
-- *
-- * SPDX-License-Identifier: BSD-3-Clause
-- *
-- */
--
--#include <stdint.h>
--#include "tfm_plat_otp.h"
--
--static enum tfm_plat_err_t get_rotpk_hash(enum tfm_otp_element_id_t id,
--                                          uint8_t* rotpk_hash,
--                                          uint32_t* rotpk_hash_size)
--{
--    enum tfm_plat_err_t err;
--    size_t otp_size;
--
--    err = tfm_plat_otp_read(id, *rotpk_hash_size, rotpk_hash);
--    if (err != TFM_PLAT_ERR_SUCCESS) {
--        return err;
--    }
--
--    err = tfm_plat_otp_get_size(id, &otp_size);
--    if (err != TFM_PLAT_ERR_SUCCESS) {
--        return err;
--    }
--
--    *rotpk_hash_size = otp_size;
--
--    return TFM_PLAT_ERR_SUCCESS;
--}
--
--enum tfm_plat_err_t
--tfm_plat_get_rotpk_hash(uint8_t image_id,
--                        uint8_t *rotpk_hash,
--                        uint32_t *rotpk_hash_size)
--{
--    switch(image_id) {
--        case 0:
--            return get_rotpk_hash(PLAT_OTP_ID_BL1_ROTPK_0, rotpk_hash,
--                                  rotpk_hash_size);
--
--        default:
--            return TFM_PLAT_ERR_INVALID_INPUT;
--    }
--
--    return TFM_PLAT_ERR_SYSTEM_ERR;
--}
-diff --git a/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c b/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
-similarity index 90%
-rename from platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c
-rename to platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
-index a5fe0f7da..678342443 100644
---- a/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c
-+++ b/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
-@@ -12,13 +12,16 @@
- #include "Driver_Flash.h"
- #include "flash_layout.h"
- #include "fih.h"
--#include "bootutil/bootutil_log.h"
- #include "firewall.h"
- #include "watchdog.h"
- #include "mpu_config.h"
- #include "tfm_plat_otp.h"
- #include "tfm_plat_provisioning.h"
- #include "fwu_agent.h"
-+#include "uart_stdout.h"
-+#include "region_defs.h"
-+#include "log.h"
-+
- 
- #if defined(CRYPTO_HW_ACCELERATOR) || \
-     defined(CRYPTO_HW_ACCELERATOR_OTP_PROVISIONING)
-@@ -81,6 +84,9 @@ enum host_firewall_host_comp_id_t {
-   COMP_DEBUG,
- };
- 
-+extern uint32_t platform_code_is_bl1_2;
-+
-+
- static void setup_mpu(void)
- {
-     uint32_t size; /* region size */
-@@ -581,56 +587,44 @@ static void setup_host_firewall(void)
-        fw_lockdown(FW_FULL_LOCKDOWN);
- }
- 
--
--__attribute__((naked)) void boot_clear_bl2_ram_area(void)
-+uint32_t bl1_image_get_flash_offset(uint32_t image_id)
- {
--    __ASM volatile(
--        ".syntax unified                             \n"
--        "movs    r0, #0                              \n"
--        "ldr     r1, =Image$$ER_DATA$$Base           \n"
--        "ldr     r2, =Image$$ARM_LIB_HEAP$$ZI$$Limit \n"
--        "subs    r2, r2, r1                          \n"
--        "Loop:                                       \n"
--        "subs    r2, #4                              \n"
--        "blt     Clear_done                          \n"
--        "str     r0, [r1, r2]                        \n"
--        "b       Loop                                \n"
--        "Clear_done:                                 \n"
--        "bx      lr                                  \n"
--         : : : "r0" , "r1" , "r2" , "memory"
--    );
-+    /* SE BL2 Offset is equal to bank offset as it is the first think in the Bank */
-+    uint32_t se_bl2_offset = 0;
-+    bl1_get_active_bl2_image(&se_bl2_offset);
-+    switch (image_id) {
-+        case 0:
-+            return se_bl2_offset;
-+        case 1:
-+            return se_bl2_offset + SE_BL2_PARTITION_SIZE;
-+        default:
-+            FIH_PANIC;
-+    }
- }
- 
--extern void set_flash_area_image_offset(uint32_t offset);
--
- int32_t boot_platform_init(void)
- {
-     int32_t result;
-     uint32_t image_offset;
- 
--    result = corstone1000_watchdog_init();
--    if (result != ARM_DRIVER_OK) {
--        return 1;
--    }
--
-+    if (!platform_code_is_bl1_2) {
-+        result = corstone1000_watchdog_init();
-+        if (result != ARM_DRIVER_OK) {
-+            return 1;
-+        }
- #if !(PLATFORM_IS_FVP)
--    setup_mpu();
-+        setup_mpu();
- #endif
--    setup_se_firewall();
-+        setup_se_firewall();
- #if !(PLATFORM_IS_FVP)
--    setup_host_firewall();
-+        setup_host_firewall();
- #endif
--
--    result = FLASH_DEV_NAME.Initialize(NULL);
--    if (result != ARM_DRIVER_OK) {
--        return 1;
-     }
--#if PLATFORM_DEFAULT_OTP
--   result = FLASH_DEV_NAME_SE_SECURE_FLASH.Initialize(NULL);
--   if (result != ARM_DRIVER_OK) {
--       return 1;
--   }
--#endif
-+
-+#if defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2)
-+    stdio_init();
-+#endif /* defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2) */
-+
- 
- #ifdef CRYPTO_HW_ACCELERATOR
-     result = crypto_hw_accelerator_init();
-@@ -639,23 +633,11 @@ int32_t boot_platform_init(void)
-     }
- #endif /* CRYPTO_HW_ACCELERATOR */
- 
--    result = tfm_plat_otp_init();
--    if (result != TFM_PLAT_ERR_SUCCESS) {
--        BOOT_LOG_ERR("OTP system initialization failed");
--        FIH_PANIC;
--    }
--
--    if (tfm_plat_provisioning_is_required()) {
--        result = fwu_metadata_provision();
--        if (result != FWU_AGENT_SUCCESS) {
--            BOOT_LOG_ERR("Provisioning FWU Metadata failed");
--            FIH_PANIC;
--        }
--    }
--
--    bl1_get_active_bl2_image(&image_offset);
--    set_flash_area_image_offset(image_offset);
-+    return 0;
-+}
- 
-+int32_t boot_platform_post_init(void)
-+{
-     return 0;
- }
- 
-@@ -678,17 +660,15 @@ void boot_platform_quit(struct boot_arm_vector_table *vt)
-     (void)fih_delay_init();
- #endif /* CRYPTO_HW_ACCELERATOR */
- 
--    result = FLASH_DEV_NAME.Uninitialize();
--    if (result != ARM_DRIVER_OK) {
--        while (1);
--    }
- 
--#if PLATFORM_DEFAULT_OTP
--    result = FLASH_DEV_NAME_SE_SECURE_FLASH.Uninitialize();
-+#if defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2)
-+    stdio_uninit();
-+#endif /* defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2) */
-+
-+    result = corstone1000_watchdog_reset_timer();
-     if (result != ARM_DRIVER_OK) {
-         while (1);
-     }
--#endif
- 
-     vt_cpy = vt;
- 
-diff --git a/platform/ext/target/arm/corstone1000/bl1/flash_map_extended.c b/platform/ext/target/arm/corstone1000/bl1/flash_map_extended.c
-deleted file mode 100644
-index b6632b6c2..000000000
---- a/platform/ext/target/arm/corstone1000/bl1/flash_map_extended.c
-+++ /dev/null
-@@ -1,103 +0,0 @@
--/*
-- * Copyright (c) 2018 Nordic Semiconductor ASA
-- * Copyright (c) 2015 Runtime Inc
-- * Copyright (c) 2019-2021 Arm Limited.
-- *
-- * SPDX-License-Identifier: Apache-2.0
-- */
--
--/*
-- * Original code taken from mcuboot project at:
-- * https://github.com/mcu-tools/mcuboot
-- * Git SHA of the original version: ac55554059147fff718015be9f4bd3108123f50a
-- */
--
--#include <errno.h>
--#include "target.h"
--#include "cmsis.h"
--#include "Driver_Flash.h"
--#include "sysflash/sysflash.h"
--#include "flash_map/flash_map.h"
--#include "flash_map_backend/flash_map_backend.h"
--#include "bootutil/bootutil_log.h"
--
--__WEAK int flash_device_base(uint8_t fd_id, uintptr_t *ret)
--{
--    if (fd_id != FLASH_DEVICE_ID) {
--        BOOT_LOG_ERR("invalid flash ID %d; expected %d",
--                     fd_id, FLASH_DEVICE_ID);
--        return -1;
--    }
--    *ret = FLASH_DEVICE_BASE;
--    return 0;
--}
--
--/*
-- * This depends on the mappings defined in flash_map.h.
-- * MCUBoot uses continuous numbering for the primary slot, the secondary slot,
-- * and the scratch while TF-M might number it differently.
-- */
--int flash_area_id_from_multi_image_slot(int image_index, int slot)
--{
--    switch (slot) {
--    case 0: return BL1_FLASH_AREA_IMAGE_PRIMARY(image_index);
--    case 1: return BL1_FLASH_AREA_IMAGE_SECONDARY(image_index);
--    case 2: return BL1_FLASH_AREA_IMAGE_SCRATCH;
--    }
--
--    return -1; /* flash_area_open will fail on that */
--}
--
--int flash_area_id_from_image_slot(int slot)
--{
--    return flash_area_id_from_multi_image_slot(0, slot);
--}
--
--int flash_area_id_to_multi_image_slot(int image_index, int area_id)
--{
--    if (area_id == BL1_FLASH_AREA_IMAGE_PRIMARY(image_index)) {
--        return 0;
--    }
--    if (area_id == BL1_FLASH_AREA_IMAGE_SECONDARY(image_index)) {
--        return 1;
--    }
--
--    BOOT_LOG_ERR("invalid flash area ID");
--    return -1;
--}
--
--int flash_area_id_to_image_slot(int area_id)
--{
--    return flash_area_id_to_multi_image_slot(0, area_id);
--}
--
--uint8_t flash_area_erased_val(const struct flash_area *fap)
--{
--    return DRV_FLASH_AREA(fap)->GetInfo()->erased_value;
--}
--
--int flash_area_read_is_empty(const struct flash_area *fa, uint32_t off,
--        void *dst, uint32_t len)
--{
--    uint32_t i;
--    uint8_t *u8dst;
--    int rc;
--
--    BOOT_LOG_DBG("read_is_empty area=%d, off=%#x, len=%#x",
--                 fa->fa_id, off, len);
--
--    rc = DRV_FLASH_AREA(fa)->ReadData(fa->fa_off + off, dst, len);
--    if (rc) {
--        return -1;
--    }
--
--    u8dst = (uint8_t*)dst;
--
--    for (i = 0; i < len; i++) {
--        if (u8dst[i] != flash_area_erased_val(fa)) {
--            return 0;
--        }
--    }
--
--    return 1;
--}
-diff --git a/platform/ext/target/arm/corstone1000/bl1/provisioning.c b/platform/ext/target/arm/corstone1000/bl1/provisioning.c
-index 832fcea89..683bc45ea 100644
---- a/platform/ext/target/arm/corstone1000/bl1/provisioning.c
-+++ b/platform/ext/target/arm/corstone1000/bl1/provisioning.c
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2021-2022, Arm Limited. All rights reserved.
-+ * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
-  *
-  * SPDX-License-Identifier: BSD-3-Clause
-  *
-@@ -11,7 +11,9 @@
- #include "tfm_plat_otp.h"
- #include "tfm_attest_hal.h"
- #include "psa/crypto.h"
--#include "bootutil/bootutil_log.h"
-+#include "region_defs.h"
-+#include "log.h"
-+#include "fwu_agent.h"
- 
- #include <string.h>
- 
-@@ -19,51 +21,20 @@
- 
- __PACKED_STRUCT bl1_assembly_and_test_provisioning_data_t {
-     uint32_t magic;
--    uint8_t bl1_rotpk_0[32];
-+    uint8_t bl2_encryption_key[32];
-+    uint8_t guk[32];
-+    uint8_t bl1_2_image_hash[32];
-+    uint8_t bl2_image_hash[32];
-+    uint8_t bl1_2_image[BL1_2_CODE_SIZE];
-+    uint8_t bl1_rotpk_0[56];
- };
- 
--#ifdef TFM_DUMMY_PROVISIONING
--static const struct bl1_assembly_and_test_provisioning_data_t bl1_assembly_and_test_prov_data = {
--    ASSEMBLY_AND_TEST_PROV_DATA_MAGIC,
--#if (MCUBOOT_SIGN_RSA_LEN == 2048)
--    /* bl1 rotpk 0 */
--    {
--        0xfc, 0x57, 0x01, 0xdc, 0x61, 0x35, 0xe1, 0x32,
--        0x38, 0x47, 0xbd, 0xc4, 0x0f, 0x04, 0xd2, 0xe5,
--        0xbe, 0xe5, 0x83, 0x3b, 0x23, 0xc2, 0x9f, 0x93,
--        0x59, 0x3d, 0x00, 0x01, 0x8c, 0xfa, 0x99, 0x94,
--    },
--#elif (MCUBOOT_SIGN_RSA_LEN == 3072)
--    /* bl1 rotpk 0 */
--    {
--        0xbf, 0xe6, 0xd8, 0x6f, 0x88, 0x26, 0xf4, 0xff,
--        0x97, 0xfb, 0x96, 0xc4, 0xe6, 0xfb, 0xc4, 0x99,
--        0x3e, 0x46, 0x19, 0xfc, 0x56, 0x5d, 0xa2, 0x6a,
--        0xdf, 0x34, 0xc3, 0x29, 0x48, 0x9a, 0xdc, 0x38,
--    },
--#else
--#error "No public key available for given signing algorithm."
--#endif /* MCUBOOT_SIGN_RSA_LEN */
--};
--#else
--static const struct bl1_assembly_and_test_provisioning_data_t bl1_assembly_and_test_prov_data;
--#endif /* TFM_DUMMY_PROVISIONING */
-+static const struct bl1_assembly_and_test_provisioning_data_t *bl1_assembly_and_test_prov_data =
-+                    (struct bl1_assembly_and_test_provisioning_data_t *)PROVISIONING_DATA_START;
-+
- 
- void tfm_plat_provisioning_check_for_dummy_keys(void)
- {
--    uint64_t iak_start;
--
--    tfm_plat_otp_read(PLAT_OTP_ID_IAK, sizeof(iak_start), (uint8_t*)&iak_start);
--
--    if(iak_start == 0xA4906F6DB254B4A9) {
--        BOOT_LOG_WRN("%s%s%s%s",
--                     "\033[1;31m",
--                     "This device was provisioned with dummy keys. ",
--                     "This device is \033[1;1mNOT SECURE",
--                     "\033[0m");
--    }
--
--    memset(&iak_start, 0, sizeof(iak_start));
- }
- 
- int tfm_plat_provisioning_is_required(void)
-@@ -85,12 +56,47 @@ enum tfm_plat_err_t provision_assembly_and_test(void)
-     enum tfm_plat_err_t err;
- 
-     err = tfm_plat_otp_write(PLAT_OTP_ID_BL1_ROTPK_0,
--                             sizeof(bl1_assembly_and_test_prov_data.bl1_rotpk_0),
--                             bl1_assembly_and_test_prov_data.bl1_rotpk_0);
-+                             sizeof(bl1_assembly_and_test_prov_data->bl1_rotpk_0),
-+                             bl1_assembly_and_test_prov_data->bl1_rotpk_0);
-+    if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
-+        return err;
-+    }
-+
-+
-+    err = tfm_plat_otp_write(PLAT_OTP_ID_BL1_2_IMAGE_HASH,
-+                             sizeof(bl1_assembly_and_test_prov_data->bl1_2_image_hash),
-+                             bl1_assembly_and_test_prov_data->bl1_2_image_hash);
-+    if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
-+        return err;
-+    }
-+
-+
-+    err = tfm_plat_otp_write(PLAT_OTP_ID_BL1_2_IMAGE,
-+                             sizeof(bl1_assembly_and_test_prov_data->bl1_2_image),
-+                             bl1_assembly_and_test_prov_data->bl1_2_image);
-+    if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
-+        return err;
-+    }
-+
-+    err = tfm_plat_otp_write(PLAT_OTP_ID_KEY_BL2_ENCRYPTION,
-+                             sizeof(bl1_assembly_and_test_prov_data->bl2_encryption_key),
-+                             bl1_assembly_and_test_prov_data->bl2_encryption_key);
-     if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
-         return err;
-     }
- 
-+    err = tfm_plat_otp_write(PLAT_OTP_ID_BL2_IMAGE_HASH,
-+                             sizeof(bl1_assembly_and_test_prov_data->bl2_image_hash),
-+                             bl1_assembly_and_test_prov_data->bl2_image_hash);
-+    if (err != TFM_PLAT_ERR_SUCCESS && err != TFM_PLAT_ERR_UNSUPPORTED) {
-+        return err;
-+    }
-+
-+    err = fwu_metadata_provision();
-+    if (err != FWU_AGENT_SUCCESS) {
-+        return 1;
-+    }
-+
-     return err;
- }
- 
-@@ -104,19 +110,18 @@ enum tfm_plat_err_t tfm_plat_provisioning_perform(void)
-         return err;
-     }
- 
--    BOOT_LOG_INF("Beginning BL1 provisioning");
-+    BL1_LOG("[INF] Beginning BL1 provisioning\r\n");
- 
- #ifdef TFM_DUMMY_PROVISIONING
--    BOOT_LOG_WRN("%s%s%s%s",
--                 "\033[1;31m",
--                 "TFM_DUMMY_PROVISIONING is not suitable for production! ",
--                 "This device is \033[1;1mNOT SECURE",
--                 "\033[0m");
-+    BL1_LOG("\033[1;31m[WRN]");
-+    BL1_LOG("TFM_DUMMY_PROVISIONING is not suitable for production! ");
-+    BL1_LOG("This device is \033[1;1mNOT SECURE");
-+    BL1_LOG("\033[0m\r\n");
- #endif /* TFM_DUMMY_PROVISIONING */
- 
-     if (lcs == PLAT_OTP_LCS_ASSEMBLY_AND_TEST) {
--        if (bl1_assembly_and_test_prov_data.magic != ASSEMBLY_AND_TEST_PROV_DATA_MAGIC) {
--            BOOT_LOG_ERR("No valid ASSEMBLY_AND_TEST provisioning data found");
-+        if (bl1_assembly_and_test_prov_data->magic != ASSEMBLY_AND_TEST_PROV_DATA_MAGIC) {
-+            BL1_LOG("[ERR] No valid ASSEMBLY_AND_TEST provisioning data found\r\n");
-             return TFM_PLAT_ERR_INVALID_INPUT;
-         }
- 
-diff --git a/platform/ext/target/arm/corstone1000/config.cmake b/platform/ext/target/arm/corstone1000/config.cmake
-index aca75394d..1b0675404 100644
---- a/platform/ext/target/arm/corstone1000/config.cmake
-+++ b/platform/ext/target/arm/corstone1000/config.cmake
-@@ -8,7 +8,14 @@
- #-------------------------------------------------------------------------------
- 
- set(BL1                                 ON         CACHE BOOL     "Whether to build BL1")
--set(PLATFORM_DEFAULT_BL1                OFF        CACHE STRING   "Whether to use default BL1 or platform-specific one")
-+set(PLATFORM_DEFAULT_BL1                ON         CACHE STRING   "Whether to use default BL1 or platform-specific one")
-+set(PLATFORM_DEFAULT_OTP                OFF        CACHE BOOL     "Use trusted on-chip flash to implement OTP memory")
-+
-+set(TFM_BL1_DEFAULT_PROVISIONING        OFF        CACHE BOOL     "Whether BL1_1 will use default provisioning")
-+set(TFM_BL1_SOFTWARE_CRYPTO             OFF        CACHE BOOL     "Whether BL1_1 will use software crypto")
-+set(TFM_BL1_MEMORY_MAPPED_FLASH         OFF        CACHE BOOL     "Whether BL1 can directly access flash content")
-+set(TFM_BL1_PQ_CRYPTO                   OFF        CACHE BOOL     "Enable LMS PQ crypto for BL2 verification. This is experimental and should not yet be used in production")
-+
- set(BL2                                 ON         CACHE BOOL     "Whether to build BL2")
- set(BL2_TRAILER_SIZE                    0x800      CACHE STRING   "Trailer size")
- set(DEFAULT_MCUBOOT_FLASH_MAP           OFF        CACHE BOOL     "Whether to use the default flash map defined by TF-M project")
-@@ -26,13 +33,6 @@ set(TFM_CRYPTO_TEST_ALG_CFB             OFF        CACHE BOOL     "Test CFB cryp
- set(NS                                  FALSE      CACHE BOOL     "Whether to build NS app")
- set(EXTERNAL_SYSTEM_SUPPORT             OFF        CACHE BOOL     "Whether to include external system support.")
- 
--# FVP is not integrated/tested with CC312.
--if (${PLATFORM_IS_FVP})
--  set(PLATFORM_DEFAULT_OTP              TRUE      CACHE BOOL      "Use trusted on-chip flash to implement OTP memory")
--else()
--  set(PLATFORM_DEFAULT_OTP              FALSE      CACHE BOOL      "Use trusted on-chip flash to implement OTP memory")
--endif()
--
- # External dependency on OpenAMP and Libmetal
- set(LIBMETAL_SRC_PATH                   "DOWNLOAD"  CACHE PATH      "Path to Libmetal (or DOWNLOAD to fetch automatically")
- set(LIBMETAL_VERSION                    "f252f0e007fbfb8b3a52b1d5901250ddac96baad"  CACHE STRING    "The version of libmetal to use")
-@@ -59,6 +59,8 @@ set(TFM_PARTITION_PROTECTED_STORAGE     ON          CACHE BOOL      "Enable Prot
- set(TFM_PARTITION_CRYPTO                ON          CACHE BOOL      "Enable Crypto partition")
- set(TFM_PARTITION_INITIAL_ATTESTATION   ON          CACHE BOOL      "Enable Initial Attestation partition")
- set(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE ON       CACHE BOOL      "Enable Internal Trusted Storage partition")
-+set(TFM_PARTITION_MEASURED_BOOT         ON          CACHE BOOL      "Enable Measured boot partition")
-+
- 
- if (${CMAKE_BUILD_TYPE} STREQUAL Debug OR ${CMAKE_BUILD_TYPE} STREQUAL RelWithDebInfo)
-   set(ENABLE_FWU_AGENT_DEBUG_LOGS     TRUE          CACHE BOOL      "Enable Firmware update agent debug logs.")
-diff --git a/platform/ext/target/arm/corstone1000/partition/flash_layout.h b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-index b01a3621b..a95ff63ef 100644
---- a/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-+++ b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-@@ -34,16 +34,6 @@
- 
- #define BL2_DATA_GAP_SIZE               (0x09800)  /* 38 KB */
- 
--#define BL1_DATA_START                  (SRAM_BASE)
--#define BL1_DATA_SIZE                   (0x10000)     /* 64 KiB*/
--#define BL1_DATA_LIMIT                  (BL1_DATA_START + BL1_DATA_SIZE - 1)
--
--#ifdef BL1
--
--#define IMAGE_EXECUTABLE_RAM_START      (SRAM_BASE + BL1_DATA_SIZE)
--#define IMAGE_EXECUTABLE_RAM_SIZE       (SRAM_SIZE - BL1_DATA_SIZE)
--
--#endif /* BL1 */
- 
- /*****************/
- /***** Flash *****/
-diff --git a/platform/ext/target/arm/corstone1000/partition/region_defs.h b/platform/ext/target/arm/corstone1000/partition/region_defs.h
-index 35055fe9c..8157c36bf 100644
---- a/platform/ext/target/arm/corstone1000/partition/region_defs.h
-+++ b/platform/ext/target/arm/corstone1000/partition/region_defs.h
-@@ -20,12 +20,17 @@
- 
- #include "flash_layout.h"
- 
-+/* BL1_1 */
-+#define BL1_1_HEAP_SIZE         (0x0001000) /* 4KiB */
-+#define BL1_1_MSP_STACK_SIZE    (0x0001800) /* 6KiB */
-+
-+/* BL1_2 */
-+#define BL1_2_HEAP_SIZE         (0x0001000) /* 4KiB */
-+#define BL1_2_MSP_STACK_SIZE    (0x0001800) /* 6KiB */
-+
- #define BL2_HEAP_SIZE           (0x0001000)
- #define BL2_MSP_STACK_SIZE      (0x0001E00)
- 
--#define BL1_HEAP_SIZE           (0x0001000)
--#define BL1_MSP_STACK_SIZE      (0x0001800)
--
- #ifdef ENABLE_HEAP
-     #define S_HEAP_SIZE             (0x0000200)
- #endif
-@@ -80,8 +85,8 @@
- 
- 
- /* SE BL2 regions */
--#define BL2_CODE_START    (SRAM_BASE + TFM_PARTITION_SIZE + \
--                           BL2_DATA_GAP_SIZE + BL2_HEADER_SIZE)
-+#define BL2_IMAGE_START   (SRAM_BASE + SRAM_SIZE - SE_BL2_PARTITION_SIZE)
-+#define BL2_CODE_START    (BL2_IMAGE_START + BL2_HEADER_SIZE)
- #define BL2_CODE_SIZE     (IMAGE_BL2_CODE_SIZE)
- #define BL2_CODE_LIMIT    (BL2_CODE_START + BL2_CODE_SIZE - 1)
- 
-@@ -91,9 +96,25 @@
- #define BL2_DATA_LIMIT    (BL2_DATA_START + BL2_DATA_SIZE - 1)
- 
- /* SE BL1 regions */
--#define BL1_CODE_START    (0)
--#define BL1_CODE_SIZE     (0x00020000)     /* Whole SE ROM, 128 KiB */
--#define BL1_CODE_LIMIT    (BL2_CODE_START + BL2_CODE_SIZE - 1)
-+#define BL1_1_CODE_START    (0)
-+#define BL1_1_CODE_SIZE     (0x0000A000)     /* 40 KiB */
-+#define BL1_1_CODE_LIMIT    (BL1_1_CODE_START + BL1_1_CODE_SIZE - 1)
-+
-+#define PROVISIONING_DATA_START (BL1_1_CODE_START + BL1_1_CODE_SIZE)
-+#define PROVISIONING_DATA_SIZE  (0x00002000)     /* 8 KiB */
-+#define PROVISIONING_DATA_LIMIT (PROVISIONING_DATA_START + PROVISIONING_DATA_SIZE - 1)
-+
-+#define BL1_1_DATA_START    (SRAM_BASE)
-+#define BL1_1_DATA_SIZE     (0x8000)     /* 32 KiB*/
-+#define BL1_1_DATA_LIMIT    (BL1_1_DATA_START + BL1_1_DATA_SIZE - 1)
-+
-+#define BL1_2_CODE_START    (BL1_1_DATA_START + BL1_1_DATA_SIZE)
-+#define BL1_2_CODE_SIZE     (0x00001000)     /* 4 KiB */
-+#define BL1_2_CODE_LIMIT    (BL1_2_CODE_START + BL1_2_CODE_SIZE - 1)
-+
-+#define BL1_2_DATA_START    (BL1_2_CODE_START+BL1_2_CODE_SIZE)
-+#define BL1_2_DATA_SIZE     (0x8000)     /* 32 KiB*/
-+#define BL1_2_DATA_LIMIT    (BL1_2_DATA_START + BL1_2_DATA_SIZE - 1)
- 
- #define BOOT_TFM_SHARED_DATA_BASE (S_DATA_PRIV_START)
- 
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/rwx.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-arm-trusted-firmware-m-disable-fatal-warnings.patch
similarity index 86%
rename from meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/rwx.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-arm-trusted-firmware-m-disable-fatal-warnings.patch
index 1efd661..07db4f6 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/rwx.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0004-arm-trusted-firmware-m-disable-fatal-warnings.patch
@@ -1,4 +1,4 @@
-From 1d548c77d07fc9a83e3e9aa28a23aa19a0177e3b Mon Sep 17 00:00:00 2001
+From 04ce07d289e8cec75223349e9ebf7e69126fc04d Mon Sep 17 00:00:00 2001
 From: Jon Mason <jon.mason@arm.com>
 Date: Wed, 18 Jan 2023 15:13:37 -0500
 Subject: [PATCH] arm/trusted-firmware-m: disable fatal warnings
@@ -11,7 +11,7 @@
  1 file changed, 1 deletion(-)
 
 diff --git a/toolchain_GNUARM.cmake b/toolchain_GNUARM.cmake
-index 7978eaca68..88395f922a 100644
+index 7989718515..a5939323d6 100644
 --- a/toolchain_GNUARM.cmake
 +++ b/toolchain_GNUARM.cmake
 @@ -71,7 +71,6 @@ macro(tfm_toolchain_reset_linker_flags)
@@ -22,4 +22,3 @@
          LINKER:--gc-sections
          LINKER:--no-wchar-size-warning
          ${MEMORY_USAGE_FLAG}
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s-B.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s-B.patch
deleted file mode 100644
index 697061e..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0005-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s-B.patch
+++ /dev/null
@@ -1,202 +0,0 @@
-From d5a7cde4648d2247f83a0f259aa088152199dfbd Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Mon, 27 Feb 2023 20:58:30 +0000
-Subject: [PATCH 2/6] Platform: corstone1000: Replace MCUBOOT BL1 by TFM's
- (BL2)
-
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
-Set region_defs of BL2 correctly
-Set FLASH Areas 0 and 1 to have BL2
-Set FLASH Areas 2 and 3 to have TFM
-Set FLASH Areas 4 and 5 to have FIP
-Initialize FLASH in BL1_2 boot platform code
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20554]
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Change-Id: I987d29cb6318b8b30cafab67d24f446aaadfe500
----
- .../arm/corstone1000/bl1/boot_hal_bl1.c       | 14 +++++++
- .../target/arm/corstone1000/bl2_flash_map.c   |  8 ++--
- .../ext/target/arm/corstone1000/config.cmake  |  3 ++
- .../arm/corstone1000/partition/flash_layout.h | 41 +++++++++++++------
- .../arm/corstone1000/partition/region_defs.h  |  4 +-
- 5 files changed, 51 insertions(+), 19 deletions(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c b/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
-index 678342443..2124720b2 100644
---- a/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
-+++ b/platform/ext/target/arm/corstone1000/bl1/boot_hal_bl1.c
-@@ -638,6 +638,13 @@ int32_t boot_platform_init(void)
- 
- int32_t boot_platform_post_init(void)
- {
-+    int32_t result;
-+    if (platform_code_is_bl1_2) {
-+        result = FLASH_DEV_NAME.Initialize(NULL);
-+        if (result != ARM_DRIVER_OK) {
-+            return 1;
-+        }
-+    }
-     return 0;
- }
- 
-@@ -665,6 +672,13 @@ void boot_platform_quit(struct boot_arm_vector_table *vt)
-     stdio_uninit();
- #endif /* defined(TFM_BL1_LOGGING) || defined(TEST_BL1_1) || defined(TEST_BL1_2) */
- 
-+    if (platform_code_is_bl1_2) {
-+        result = FLASH_DEV_NAME.Uninitialize();
-+        if (result != ARM_DRIVER_OK) {
-+            return 1;
-+        }
-+    }
-+
-     result = corstone1000_watchdog_reset_timer();
-     if (result != ARM_DRIVER_OK) {
-         while (1);
-diff --git a/platform/ext/target/arm/corstone1000/bl2_flash_map.c b/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-index 599f80b41..2b1cdfa19 100644
---- a/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-+++ b/platform/ext/target/arm/corstone1000/bl2_flash_map.c
-@@ -25,14 +25,14 @@ extern ARM_DRIVER_FLASH FLASH_DEV_NAME;
-  */
- struct flash_area flash_map[] = {
-     {
--        .fa_id = FLASH_AREA_0_ID,
-+        .fa_id = FLASH_AREA_2_ID,
-         .fa_device_id = FLASH_DEVICE_ID,
-         .fa_driver = &FLASH_DEV_NAME,
-         .fa_off = FLASH_INVALID_OFFSET,
-         .fa_size = FLASH_INVALID_SIZE,
-     },
-     {
--        .fa_id = FLASH_AREA_1_ID,
-+        .fa_id = FLASH_AREA_3_ID,
-         .fa_device_id = FLASH_DEVICE_ID,
-         .fa_driver = &FLASH_DEV_NAME,
-         .fa_off = FLASH_INVALID_OFFSET,
-@@ -40,14 +40,14 @@ struct flash_area flash_map[] = {
-     },
- #ifndef TFM_S_REG_TEST
-     {
--        .fa_id = FLASH_AREA_2_ID,
-+        .fa_id = FLASH_AREA_4_ID,
-         .fa_device_id = FLASH_DEVICE_ID,
-         .fa_driver = &FLASH_DEV_NAME,
-         .fa_off = FLASH_INVALID_OFFSET,
-         .fa_size = FLASH_INVALID_SIZE,
-     },
-     {
--        .fa_id = FLASH_AREA_3_ID,
-+        .fa_id = FLASH_AREA_5_ID,
-         .fa_device_id = FLASH_DEVICE_ID,
-         .fa_driver = &FLASH_DEV_NAME,
-         .fa_off = FLASH_INVALID_OFFSET,
-diff --git a/platform/ext/target/arm/corstone1000/config.cmake b/platform/ext/target/arm/corstone1000/config.cmake
-index 1b0675404..bec6b84f0 100644
---- a/platform/ext/target/arm/corstone1000/config.cmake
-+++ b/platform/ext/target/arm/corstone1000/config.cmake
-@@ -16,6 +16,9 @@ set(TFM_BL1_SOFTWARE_CRYPTO             OFF        CACHE BOOL     "Whether BL1_1
- set(TFM_BL1_MEMORY_MAPPED_FLASH         OFF        CACHE BOOL     "Whether BL1 can directly access flash content")
- set(TFM_BL1_PQ_CRYPTO                   OFF        CACHE BOOL     "Enable LMS PQ crypto for BL2 verification. This is experimental and should not yet be used in production")
- 
-+set(TFM_BL2_IMAGE_FLASH_AREA_NUM        0          CACHE STRING   "Which flash area BL2 is stored in")
-+set(MCUBOOT_S_IMAGE_FLASH_AREA_NUM      2          CACHE STRING   "ID of the flash area containing the primary Secure image")
-+
- set(BL2                                 ON         CACHE BOOL     "Whether to build BL2")
- set(BL2_TRAILER_SIZE                    0x800      CACHE STRING   "Trailer size")
- set(DEFAULT_MCUBOOT_FLASH_MAP           OFF        CACHE BOOL     "Whether to use the default flash map defined by TF-M project")
-diff --git a/platform/ext/target/arm/corstone1000/partition/flash_layout.h b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-index a95ff63ef..41b4c6323 100644
---- a/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-+++ b/platform/ext/target/arm/corstone1000/partition/flash_layout.h
-@@ -136,23 +136,38 @@
- #define BANK_PARTITION_SIZE             (0xFE0000)   /* 15.875 MB */
- #define TFM_PARTITION_SIZE              (0x5E000)    /* 376 KB */
- 
--/* Macros needed to imgtool.py, used when creating BL2 signed image */
--#define BL2_IMAGE_LOAD_ADDRESS          (SRAM_BASE + TFM_PARTITION_SIZE + BL2_DATA_GAP_SIZE)
--#define BL2_IMAGE_OFFSET                (0x0)
--#define BL2_IMAGE_MAX_SIZE              (SE_BL2_PARTITION_SIZE)
-+/************************************************************/
-+/* Bank : Images flash offsets are with respect to the bank */
-+/************************************************************/
- 
--/* Image 1: TF-M primary and secondary images */
-+/* Image 0: BL2 primary and secondary images */
- #define FLASH_AREA_0_ID                 (1)
--#define FLASH_AREA_0_SIZE               (TFM_PARTITION_SIZE)
-+#define FLASH_AREA_0_OFFSET             (0) /* starting from 0th offset of the bank */
-+#define FLASH_AREA_0_SIZE               (SE_BL2_PARTITION_SIZE)
-+
- #define FLASH_AREA_1_ID                 (FLASH_AREA_0_ID + 1)
--#define FLASH_AREA_1_SIZE               (TFM_PARTITION_SIZE)
-+#define FLASH_AREA_1_OFFSET             (FLASH_AREA_0_OFFSET + FLASH_AREA_0_SIZE)
-+#define FLASH_AREA_1_SIZE               (SE_BL2_PARTITION_SIZE)
-+
-+/* Image 1: TF-M primary and secondary images */
-+#define FLASH_AREA_2_ID                 (1)
-+#define FLASH_AREA_2_SIZE               (TFM_PARTITION_SIZE)
-+#define FLASH_AREA_3_ID                 (FLASH_AREA_2_ID + 1)
-+#define FLASH_AREA_3_SIZE               (TFM_PARTITION_SIZE)
- 
- /* Image 2: Host FIP */
- #define FIP_SIGNATURE_AREA_SIZE         (0x1000)      /* 4 KB */
- 
- /* Host BL2 (TF-A) primary and secondary image. */
--#define FLASH_AREA_2_ID                 (FLASH_AREA_1_ID + 1)
--#define FLASH_AREA_3_ID                 (FLASH_AREA_2_ID + 1)
-+#define FLASH_AREA_4_ID                 (FLASH_AREA_3_ID + 1)
-+#define FLASH_AREA_5_ID                 (FLASH_AREA_4_ID + 1)
-+
-+#define BL1_FLASH_AREA_IMAGE_PRIMARY(x)     (((x) == 0) ? FLASH_AREA_0_ID : \
-+                                                          255 )
-+#define BL1_FLASH_AREA_IMAGE_SECONDARY(x)   (((x) == 0) ? FLASH_AREA_1_ID : \
-+                                                          255 )
-+
-+#define BL1_FLASH_AREA_IMAGE_SCRATCH        255
- 
- /* Macros needed to imgtool.py, used when creating TF-M signed image */
- #define S_IMAGE_LOAD_ADDRESS            (SRAM_BASE)
-@@ -161,11 +176,11 @@
- #define NON_SECURE_IMAGE_OFFSET         (TFM_PARTITION_SIZE)
- #define NON_SECURE_IMAGE_MAX_SIZE       (0x0)
- 
--#define FLASH_AREA_IMAGE_PRIMARY(x)     (((x) == 0) ? FLASH_AREA_0_ID : \
--                                         ((x) == 1) ? FLASH_AREA_2_ID : \
-+#define FLASH_AREA_IMAGE_PRIMARY(x)     (((x) == 0) ? FLASH_AREA_2_ID : \
-+                                         ((x) == 1) ? FLASH_AREA_4_ID : \
-                                                       255 )
--#define FLASH_AREA_IMAGE_SECONDARY(x)   (((x) == 0) ? FLASH_AREA_1_ID : \
--                                         ((x) == 1) ? FLASH_AREA_3_ID : \
-+#define FLASH_AREA_IMAGE_SECONDARY(x)   (((x) == 0) ? FLASH_AREA_3_ID : \
-+                                         ((x) == 1) ? FLASH_AREA_5_ID : \
-                                                       255 )
- 
- #define FLASH_AREA_IMAGE_SCRATCH        255
-diff --git a/platform/ext/target/arm/corstone1000/partition/region_defs.h b/platform/ext/target/arm/corstone1000/partition/region_defs.h
-index 8157c36bf..fc9f734f6 100644
---- a/platform/ext/target/arm/corstone1000/partition/region_defs.h
-+++ b/platform/ext/target/arm/corstone1000/partition/region_defs.h
-@@ -48,7 +48,7 @@
-             (TFM_PARTITION_SIZE - BL2_HEADER_SIZE - BL2_TRAILER_SIZE)
- 
- #define IMAGE_BL2_CODE_SIZE \
--            (SE_BL2_PARTITION_SIZE - BL2_HEADER_SIZE - BL2_TRAILER_SIZE)
-+            (SE_BL2_PARTITION_SIZE - BL1_HEADER_SIZE - BL1_TRAILER_SIZE)
- 
- /* Secure regions */
- #define S_CODE_START            (SRAM_BASE + BL2_HEADER_SIZE)
-@@ -86,7 +86,7 @@
- 
- /* SE BL2 regions */
- #define BL2_IMAGE_START   (SRAM_BASE + SRAM_SIZE - SE_BL2_PARTITION_SIZE)
--#define BL2_CODE_START    (BL2_IMAGE_START + BL2_HEADER_SIZE)
-+#define BL2_CODE_START    (BL2_IMAGE_START + BL1_HEADER_SIZE)
- #define BL2_CODE_SIZE     (IMAGE_BL2_CODE_SIZE)
- #define BL2_CODE_LIMIT    (BL2_CODE_START + BL2_CODE_SIZE - 1)
- 
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Reorganize-bl2-files.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Reorganize-bl2-files.patch
deleted file mode 100644
index 1e56e36..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0006-Platform-corstone1000-Reorganize-bl2-files.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 535d366137d2dd0804d3e67ada78151e0e318eeb Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Fri, 3 Mar 2023 12:25:04 +0000
-Subject: [PATCH 3/6] Platform: corstone1000: Reorganize bl2 files
-
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
-To be consistnant, organize bl2 files same as bl1 files
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20555]
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Change-Id: I3332f4dbbde1c5f2cde5a187b038dc3430b9503f
----
- platform/ext/target/arm/corstone1000/CMakeLists.txt         | 6 +++---
- .../ext/target/arm/corstone1000/{ => bl2}/boot_hal_bl2.c    | 0
- .../corstone1000/{bl2_flash_map.c => bl2/flash_map_bl2.c}   | 0
- .../{bl2_security_cnt.c => bl2/security_cnt_bl2.c}          | 0
- 4 files changed, 3 insertions(+), 3 deletions(-)
- rename platform/ext/target/arm/corstone1000/{ => bl2}/boot_hal_bl2.c (100%)
- rename platform/ext/target/arm/corstone1000/{bl2_flash_map.c => bl2/flash_map_bl2.c} (100%)
- rename platform/ext/target/arm/corstone1000/{bl2_security_cnt.c => bl2/security_cnt_bl2.c} (100%)
-
-diff --git a/platform/ext/target/arm/corstone1000/CMakeLists.txt b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-index a4fe28c08..3d4c787a6 100644
---- a/platform/ext/target/arm/corstone1000/CMakeLists.txt
-+++ b/platform/ext/target/arm/corstone1000/CMakeLists.txt
-@@ -196,7 +196,7 @@ target_sources(platform_bl2
-         Native_Driver/arm_watchdog_drv.c
-         fip_parser/fip_parser.c
-         fw_update_agent/fwu_agent.c
--        bl2_security_cnt.c
-+        bl2/security_cnt_bl2.c
-         $<$<NOT:$<BOOL:${PLATFORM_DEFAULT_OTP}>>:${PLATFORM_DIR}/ext/accelerator/cc312/otp_cc312.c>
-         io/io_block.c
-         io/io_flash.c
-@@ -235,8 +235,8 @@ target_compile_definitions(platform_bl2
- # platform_init/quit* apis symbol collision in bl1.
- target_sources(bl2
-     PRIVATE
--        bl2_flash_map.c
--        boot_hal_bl2.c
-+        bl2/flash_map_bl2.c
-+        bl2/boot_hal_bl2.c
- )
- 
- target_link_libraries(bl2
-diff --git a/platform/ext/target/arm/corstone1000/boot_hal_bl2.c b/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
-similarity index 100%
-rename from platform/ext/target/arm/corstone1000/boot_hal_bl2.c
-rename to platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
-diff --git a/platform/ext/target/arm/corstone1000/bl2_flash_map.c b/platform/ext/target/arm/corstone1000/bl2/flash_map_bl2.c
-similarity index 100%
-rename from platform/ext/target/arm/corstone1000/bl2_flash_map.c
-rename to platform/ext/target/arm/corstone1000/bl2/flash_map_bl2.c
-diff --git a/platform/ext/target/arm/corstone1000/bl2_security_cnt.c b/platform/ext/target/arm/corstone1000/bl2/security_cnt_bl2.c
-similarity index 100%
-rename from platform/ext/target/arm/corstone1000/bl2_security_cnt.c
-rename to platform/ext/target/arm/corstone1000/bl2/security_cnt_bl2.c
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Fix-linker-script-comment.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Fix-linker-script-comment.patch
deleted file mode 100644
index 62a9d85..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0007-Platform-corstone1000-Fix-linker-script-comment.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 25b131f0d082b32b262c4e788f3bc95b7761bef7 Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Mon, 13 Mar 2023 00:16:49 +0000
-Subject: [PATCH 4/6] Platform: corstone1000: Fix linker script comment
-
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-
-Comment explaining the necessary defines to copy multiple ROM to RAM
-sections, was refering to the wrong file.
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20556]
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Change-Id: I3e5f806330481daa24c5456d9c956e0cf589afee
----
- .../arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld    | 2 +-
- .../arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld    | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
-index d4eca2841..8ee334c6b 100644
---- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
-+++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
-@@ -89,7 +89,7 @@ SECTIONS
- 
-     /* To copy multiple ROM to RAM sections,
-      * define etext2/data2_start/data2_end and
--     * define __STARTUP_COPY_MULTIPLE in startup_corstone700_bl2.S */
-+     * define __STARTUP_COPY_MULTIPLE in startup_corstone1000.c */
-     .copy.table :
-     {
-         . = ALIGN(4);
-diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-index 6cd806378..e1e4f2966 100644
---- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-+++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-@@ -84,7 +84,7 @@ SECTIONS
- 
-     /* To copy multiple ROM to RAM sections,
-      * define etext2/data2_start/data2_end and
--     * define __STARTUP_COPY_MULTIPLE in startup_corstone700_bl2.S */
-+     * define __STARTUP_COPY_MULTIPLE in startup_corstone1000.c */
-     .copy.table :
-     {
-         . = ALIGN(4);
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-Fix-linkerscripts-copyright-ye.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-Fix-linkerscripts-copyright-ye.patch
deleted file mode 100644
index 7f7f6ed..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-Fix-linkerscripts-copyright-ye.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 7db7b197ec3f01163422450947540060d3cb0c17 Mon Sep 17 00:00:00 2001
-From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Date: Mon, 13 Mar 2023 00:21:44 +0000
-Subject: [PATCH 6/6] Platform: corstone1000: Fix linkerscripts copyright year
-
-set the copyright year to 2023 as these files are introduced in
-2023.
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20557]
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Change-Id: I293a4a380d5d1d59aba1e2ab17e0e5924664dbb4
----
- .../arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld    | 2 +-
- .../arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld    | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
-index 8ee334c6b..cb6797f27 100644
---- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
-+++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_1.ld
-@@ -1,5 +1,5 @@
- ;/*
--; * Copyright (c) 2009-2022, Arm Limited. All rights reserved.
-+; * Copyright (c) 2023, Arm Limited. All rights reserved.
- ; *
- ; * Licensed under the Apache License, Version 2.0 (the "License");
- ; * you may not use this file except in compliance with the License.
-diff --git a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-index e1e4f2966..e66e54aa6 100644
---- a/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-+++ b/platform/ext/target/arm/corstone1000/Device/Source/gcc/corstone1000_bl1_2.ld
-@@ -1,5 +1,5 @@
- ;/*
--; * Copyright (c) 2009-2022, Arm Limited. All rights reserved.
-+; * Copyright (c) 2023, Arm Limited. All rights reserved.
- ; *
- ; * Licensed under the Apache License, Version 2.0 (the "License");
- ; * you may not use this file except in compliance with the License.
--- 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-fix-flash-reading-issue-for-fi.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-fix-flash-reading-issue-for-fi.patch
deleted file mode 100644
index 5c0024b..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0009-Platform-corstone1000-fix-flash-reading-issue-for-fi.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 7914ec3f96dbb8228e791d9492cfc3651cf9deca Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Wed, 5 Apr 2023 10:28:57 +0100
-Subject: [PATCH] Platform: corstone1000: Fix Flash reading issue for FIP data
-
-Fixes the flash reading issue since bl2 needs to read the data from
-flash in XIP mode on FPGA (mps3).
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20558]
-Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
----
- platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c b/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
-index cf6340c5a9..e4183c7a57 100644
---- a/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
-+++ b/platform/ext/target/arm/corstone1000/bl2/boot_hal_bl2.c
-@@ -89,6 +89,7 @@ static bool fill_flash_map_with_fip_data(uint8_t boot_index) {
- 
-     /* parse directly from flash using XIP mode */
-     /* FIP is large so its not a good idea to load it in memory */
-+    Select_XIP_Mode_For_Shared_Flash();
-     result = parse_fip_and_extract_tfa_info(
-         FLASH_BASE_ADDRESS + fip_offset + FIP_SIGNATURE_AREA_SIZE, fip_size,
-         &tfa_offset, &tfa_size);
-@@ -96,7 +97,7 @@ static bool fill_flash_map_with_fip_data(uint8_t boot_index) {
-         BOOT_LOG_ERR("parse_fip_and_extract_tfa_info failed");
-         return false;
-     }
--
-+    Select_Write_Mode_For_Shared_Flash();
-     flash_map[2].fa_off = fip_offset + FIP_SIGNATURE_AREA_SIZE + tfa_offset;
-     flash_map[2].fa_size = tfa_size;
-     flash_map[3].fa_off = flash_map[2].fa_off + flash_map[2].fa_size;
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-Adds-compiler-flags-to-FWU-age.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-Adds-compiler-flags-to-FWU-age.patch
deleted file mode 100644
index 29fce5e..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0010-Platform-corstone1000-Adds-compiler-flags-to-FWU-age.patch
+++ /dev/null
@@ -1,273 +0,0 @@
-From 11f6af40dc322630031511146763cc9059bdb805 Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Fri, 14 Apr 2023 16:35:55 +0100
-Subject: [PATCH] Platform: corstone1000: Adds compiler flags to FWU agent for
- BL1
-
-Adds compiler flags for BL1 to fwu_agent.c functions to not use GPT parser and
-IO libraries in BL1 rom code.
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20559]
-Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
----
- .../corstone1000/fw_update_agent/fwu_agent.c  | 176 +++++++++++++++++-
- 1 file changed, 174 insertions(+), 2 deletions(-)
-
-diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-index 8ecb03d157..afd8d66e42 100644
---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c
-@@ -14,8 +14,6 @@
- #include "region_defs.h"
- #include "uefi_capsule_parser.h"
- #include "flash_common.h"
--#include "partition.h"
--#include "platform.h"
- #include "platform_base_address.h"
- #include "platform_description.h"
- #include "tfm_plat_nv_counters.h"
-@@ -23,6 +21,10 @@
- #include "uefi_fmp.h"
- #include "uart_stdout.h"
- #include "soft_crc.h"
-+#if !BL1
-+#include "partition.h"
-+#include "platform.h"
-+#endif
- 
- /* Properties of image in a bank */
- struct fwu_image_properties {
-@@ -145,6 +147,30 @@ extern ARM_DRIVER_FLASH FWU_METADATA_FLASH_DEV;
- 
- #define HOST_ACK_TIMEOUT_SEC    (6 * 60) /* ~seconds, not exact */
- 
-+#if BL1
-+static enum fwu_agent_error_t private_metadata_read(
-+        struct fwu_private_metadata* p_metadata)
-+{
-+    int ret;
-+
-+    FWU_LOG_MSG("%s: enter\n\r", __func__);
-+
-+    if (!p_metadata) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET, p_metadata,
-+                                          sizeof(struct fwu_private_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: success: boot_index = %u\n\r", __func__,
-+                        p_metadata->boot_index);
-+
-+    return FWU_AGENT_SUCCESS;
-+}
-+#elif
- static enum fwu_agent_error_t private_metadata_read(
-         struct fwu_private_metadata* p_metadata)
- {
-@@ -175,7 +201,36 @@ static enum fwu_agent_error_t private_metadata_read(
- 
-     return FWU_AGENT_SUCCESS;
- }
-+#endif
- 
-+#if BL1
-+static enum fwu_agent_error_t private_metadata_write(
-+        struct fwu_private_metadata* p_metadata)
-+{
-+    int ret;
-+
-+    FWU_LOG_MSG("%s: enter: boot_index = %u\n\r", __func__,
-+                        p_metadata->boot_index);
-+
-+    if (!p_metadata) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET);
-+    if (ret != ARM_DRIVER_OK) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET,
-+                                p_metadata, sizeof(struct fwu_private_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: success\n\r", __func__);
-+    return FWU_AGENT_SUCCESS;
-+}
-+#elif
- static enum fwu_agent_error_t private_metadata_write(
-         struct fwu_private_metadata* p_metadata)
- {
-@@ -210,6 +265,7 @@ static enum fwu_agent_error_t private_metadata_write(
-     FWU_LOG_MSG("%s: success\n\r", __func__);
-     return FWU_AGENT_SUCCESS;
- }
-+#endif
- 
- static enum fwu_agent_error_t metadata_validate(struct fwu_metadata *p_metadata)
- {
-@@ -235,6 +291,30 @@ static enum fwu_agent_error_t metadata_validate(struct fwu_metadata *p_metadata)
-     return FWU_AGENT_SUCCESS;
- }
- 
-+#if BL1
-+static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metadata *p_metadata)
-+{
-+    int ret;
-+
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
-+
-+    if (!p_metadata) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
-+                                p_metadata, sizeof(struct fwu_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
-+                  p_metadata->active_index, p_metadata->previous_active_index);
-+
-+    return FWU_AGENT_SUCCESS;
-+}
-+#elif
- static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metadata *p_metadata)
- {
-     uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
-@@ -266,7 +346,36 @@ static enum fwu_agent_error_t metadata_read_without_validation(struct fwu_metada
- 
-     return FWU_AGENT_SUCCESS;
- }
-+#endif
-+
-+#if BL1
-+static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
-+{
-+    int ret;
- 
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
-+
-+    if (!p_metadata) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_METADATA_REPLICA_1_OFFSET,
-+                                p_metadata, sizeof(struct fwu_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    if (metadata_validate(p_metadata) != FWU_AGENT_SUCCESS) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
-+                  p_metadata->active_index, p_metadata->previous_active_index);
-+
-+    return FWU_AGENT_SUCCESS;
-+}
-+#elif
- static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
- {
-     uuid_t metadata_uuid = FWU_METADATA_TYPE_UUID;
-@@ -301,7 +410,66 @@ static enum fwu_agent_error_t metadata_read(struct fwu_metadata *p_metadata)
- 
-     return FWU_AGENT_SUCCESS;
- }
-+#endif
-+
- 
-+#if BL1
-+static enum fwu_agent_error_t metadata_write(
-+                        struct fwu_metadata *p_metadata)
-+{
-+    int ret;
-+
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  FWU_METADATA_REPLICA_1_OFFSET, sizeof(struct fwu_metadata));
-+
-+    if (!p_metadata) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_1_OFFSET);
-+    if (ret != ARM_DRIVER_OK) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_1_OFFSET,
-+                                p_metadata, sizeof(struct fwu_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata));
-+
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET);
-+    if (ret != ARM_DRIVER_OK) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET,
-+                                p_metadata, sizeof(struct fwu_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: enter: flash addr = %u, size = %d\n\r", __func__,
-+                  FWU_METADATA_REPLICA_2_OFFSET, sizeof(struct fwu_metadata));
-+
-+    ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_METADATA_REPLICA_2_OFFSET);
-+    if (ret != ARM_DRIVER_OK) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_METADATA_REPLICA_2_OFFSET,
-+                                p_metadata, sizeof(struct fwu_metadata));
-+    if (ret < 0 || ret != sizeof(struct fwu_metadata)) {
-+        return FWU_AGENT_ERROR;
-+    }
-+
-+    FWU_LOG_MSG("%s: success: active = %u, previous = %d\n\r", __func__,
-+                  p_metadata->active_index, p_metadata->previous_active_index);
-+    return FWU_AGENT_SUCCESS;
-+}
-+#elif
- static enum fwu_agent_error_t metadata_write(
-                         struct fwu_metadata *p_metadata)
- {
-@@ -371,6 +539,8 @@ static enum fwu_agent_error_t metadata_write(
-                   p_metadata->active_index, p_metadata->previous_active_index);
-     return FWU_AGENT_SUCCESS;
- }
-+#endif
-+
- 
- enum fwu_agent_error_t fwu_metadata_init(void)
- {
-@@ -418,8 +588,10 @@ enum fwu_agent_error_t fwu_metadata_provision(void)
- 
-     FWU_LOG_MSG("%s: enter\n\r", __func__);
- 
-+#if !BL1
-     plat_io_storage_init();
-     partition_init(PLATFORM_GPT_IMAGE);
-+#endif
- 
-     ret = fwu_metadata_init();
-     if (ret) {
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-Platform-corstone1000-adjust-PS-asset-configuration.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-Platform-corstone1000-adjust-PS-asset-configuration.patch
deleted file mode 100644
index 19a3773..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0011-Platform-corstone1000-adjust-PS-asset-configuration.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 148d82d0984273b30d8b148f0c4e0ad0d3f23062 Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Mon, 17 Apr 2023 12:07:55 +0100
-Subject: [PATCH 1/3] Platform: corstone1000: adjust PS asset configuration
-
-Adjust protected storage asset configuration to be more inline
-with the one in trusted service side, that would make thinks
-work when testing and using more than the default variables.
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20560]
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
-Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
-Change-Id: I181f9c72a816c727c2170c609100aec1d233fea7
----
- platform/ext/target/arm/corstone1000/config.cmake | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/platform/ext/target/arm/corstone1000/config.cmake b/platform/ext/target/arm/corstone1000/config.cmake
-index bec6b84f0..0c91fa59f 100644
---- a/platform/ext/target/arm/corstone1000/config.cmake
-+++ b/platform/ext/target/arm/corstone1000/config.cmake
-@@ -76,3 +76,4 @@ endif()
- # Platform-specific configurations
- set(CONFIG_TFM_USE_TRUSTZONE            OFF)
- set(TFM_MULTI_CORE_TOPOLOGY             ON)
-+set(PS_NUM_ASSETS                       "40"        CACHE STRING    "The maximum number of assets to be stored in the Protected Storage area")
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0012-Platform-corstone1000-Increase-number-of-assets.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0012-Platform-corstone1000-Increase-number-of-assets.patch
deleted file mode 100644
index d2fc332..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0012-Platform-corstone1000-Increase-number-of-assets.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 34263d1ea99da7b8a680a80601a73149bc9530e5 Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Fri, 21 Apr 2023 15:17:21 +0100
-Subject: [PATCH] Platform: corstone1000: Increase number of assets
-
-As Corstone1000 stores at boot time few efi variables.
-Therefore, number of assets is increased to compansate this early usage.
-
-Upstream-Status: Submitted [https://review.trustedfirmware.org/c/TF-M/trusted-firmware-m/+/20656]
-Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com>
-Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
-Change-Id: Id8555a09335ce13b80c07a33c4d913f5cb0f9084
----
- platform/ext/target/arm/corstone1000/config_tfm_target.h | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/platform/ext/target/arm/corstone1000/config_tfm_target.h b/platform/ext/target/arm/corstone1000/config_tfm_target.h
-index bf8d2f95f..e96836663 100644
---- a/platform/ext/target/arm/corstone1000/config_tfm_target.h
-+++ b/platform/ext/target/arm/corstone1000/config_tfm_target.h
-@@ -16,4 +16,12 @@
- #undef PLATFORM_SERVICE_OUTPUT_BUFFER_SIZE
- #define PLATFORM_SERVICE_OUTPUT_BUFFER_SIZE    256
-
-+/* The maximum number of assets to be stored in the Internal Trusted Storage. */
-+#undef ITS_NUM_ASSETS
-+#define ITS_NUM_ASSETS       20
-+
-+/* The maximum number of assets to be stored in the Protected Storage area. */
-+#undef PS_NUM_ASSETS
-+#define PS_NUM_ASSETS        20
-+
- #endif /* __CONFIG_TFM_TARGET_H__ */
---
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-corstone1000.inc b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-corstone1000.inc
similarity index 61%
rename from meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-corstone1000.inc
rename to meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-corstone1000.inc
index 23c8c12..0831ed0 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-corstone1000.inc
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m-corstone1000.inc
@@ -11,10 +11,6 @@
 EXTRA_OECMAKE += "-DPLATFORM_IS_FVP=${TFM_PLATFORM_IS_FVP}"
 EXTRA_OECMAKE += "-DCC312_LEGACY_DRIVER_API_ENABLED=ON"
 
-SRCREV_tfm = "94c55967cbd1832681f07074a0945605b02ec8d0"
-SRCREV_mcuboot = "9e8eddcecba931f99297765779f8b130d808a9a3"
-SRCREV_mbedtls = "8c89224991adff88d53cd380f42a2baa36f91454"
-
 # libmetal
 LICENSE += "& BSD-3-Clause"
 LIC_FILES_CHKSUM += "file://../libmetal/LICENSE.md;md5=fe0b8a4beea8f0813b606d15a3df3d3c"
@@ -30,28 +26,12 @@
 EXTRA_OECMAKE += "-DLIBOPENAMP_SRC_PATH=${S}/../openamp -DLIBOPENAMP_BIN_PATH=${B}/libopenamp-build"
 
 
-SRC_URI:remove:corstone1000 =" \
-    file://rwx.patch    \
-"
-
 FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
 SRC_URI:append:corstone1000 = " \
-    file://0001-Platform-corstone1000-make-sure-to-write-fwu-metadata-to-repl.patch      \
-    file://0002-Platform-corstone1000-get-fwu-and-private-metadata-f.patch      \
-    file://0003-Platform-corstone1000-Add-watchdog_reset_timer.patch            \
-    file://0004-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s.patch        \
-    file://0005-Platform-corstone1000-Replace-MCUBOOT-BL1-by-TFM-s-B.patch      \
-    file://0006-Platform-corstone1000-Reorganize-bl2-files.patch                \
-    file://0007-Platform-corstone1000-Fix-linker-script-comment.patch           \
-    file://0008-Platform-corstone1000-Fix-linkerscripts-copyright-ye.patch      \
-    file://0009-Platform-corstone1000-fix-flash-reading-issue-for-fi.patch      \
-    file://0010-Platform-corstone1000-Adds-compiler-flags-to-FWU-age.patch      \
-    file://0011-Platform-corstone1000-adjust-PS-asset-configuration.patch       \
-    file://0012-Platform-corstone1000-Increase-number-of-assets.patch           \
-    file://0013-Platform-corstone1000-Increase-BL2-size-in-flash-lay.patch      \
-    file://0014-Platform-Corstone1000-Increase-BL2_DATA_SIZE.patch              \
-    file://0015-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch      \
-    file://corstone1000/rwx.patch                                               \
+    file://0001-Platform-corstone1000-Increase-BL2-size-in-flash-lay.patch \
+    file://0002-Platform-Corstone1000-Increase-BL2_DATA_SIZE.patch \
+    file://0003-Platform-Corstone1000-Calculate-the-new-CRC32-value-.patch \
+    file://0004-arm-trusted-firmware-m-disable-fatal-warnings.patch \
     "
 
 # TF-M ships patches for external dependencies that needs to be applied
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_%.bbappend b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_%.bbappend
new file mode 100644
index 0000000..da70bc7
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_%.bbappend
@@ -0,0 +1,6 @@
+# Machine specific configurations
+
+MACHINE_TFM_REQUIRE ?= ""
+MACHINE_TFM_REQUIRE:corstone1000 = "trusted-firmware-m-corstone1000.inc"
+
+require ${MACHINE_TFM_REQUIRE}
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.%.bbappend b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.%.bbappend
deleted file mode 100644
index a558cfe..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.%.bbappend
+++ /dev/null
@@ -1,9 +0,0 @@
-# Machine specific configurations
-
-MACHINE_TFM_REQUIRE ?= ""
-MACHINE_TFM_REQUIRE:corstone1000 = "trusted-firmware-m-1.7.0-corstone1000.inc"
-
-require ${MACHINE_TFM_REQUIRE}
-
-COMPATIBLE_MACHINE:tc = "(tc1)"
-TFM_PLATFORM:tc = "arm/rss/tc"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-arm64-smccc-add-support-for-SMCCCv1.2-x0-x17-registe.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-FF-A-v15-arm64-smccc-add-support-for-SMCCCv1.2-x0-x1.patch
similarity index 78%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-arm64-smccc-add-support-for-SMCCCv1.2-x0-x17-registe.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-FF-A-v15-arm64-smccc-add-support-for-SMCCCv1.2-x0-x1.patch
index 23f5019..df633e2 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-arm64-smccc-add-support-for-SMCCCv1.2-x0-x17-registe.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0001-FF-A-v15-arm64-smccc-add-support-for-SMCCCv1.2-x0-x1.patch
@@ -1,8 +1,8 @@
-From 5ce8bf4ad1aeb2657a7ab83c46eeb2cdaa56cfd4 Mon Sep 17 00:00:00 2001
+From b79722ade56bd49cf9e7d9b47b6256599c8cdb36 Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Fri, 29 Jul 2022 13:06:19 +0100
-Subject: [PATCH 01/42] arm64: smccc: add support for SMCCCv1.2 x0-x17
- registers
+Subject: [PATCH 01/33] FF-A v15: arm64: smccc: add support for SMCCCv1.2
+ x0-x17 registers
 
 add support for x0-x17 registers used by the SMC calls
 
@@ -16,51 +16,35 @@
 [1]: https://documentation-service.arm.com/static/5f8edaeff86e16515cdbe4c6?token=
 
 Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
 Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
+Reviewed-by: Simon Glass <sjg@chromium.org>
 Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v7:
-
-* improve indentation of ARM_SMCCC_1_2_REGS_Xn_OFFS
-
-v4:
-
-* rename the commit title and improve description
-  new commit title: the current
-
-v3:
-
-* port x0-x17 registers support from linux kernel as defined by SMCCCv1.2
-  commit title:
-      arm64: smccc: add Xn registers support used by SMC calls
-
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
 ---
- arch/arm/cpu/armv8/smccc-call.S | 53 +++++++++++++++++++++++++++++++++
- arch/arm/lib/asm-offsets.c      | 14 +++++++++
- include/linux/arm-smccc.h       | 43 ++++++++++++++++++++++++++
- 3 files changed, 110 insertions(+)
+ arch/arm/cpu/armv8/smccc-call.S | 57 ++++++++++++++++++++++++++++++++-
+ arch/arm/lib/asm-offsets.c      | 16 +++++++++
+ include/linux/arm-smccc.h       | 45 ++++++++++++++++++++++++++
+ 3 files changed, 117 insertions(+), 1 deletion(-)
 
 diff --git a/arch/arm/cpu/armv8/smccc-call.S b/arch/arm/cpu/armv8/smccc-call.S
-index dc92b28777..ec6f299bc9 100644
+index dc92b28777..93f66d3366 100644
 --- a/arch/arm/cpu/armv8/smccc-call.S
 +++ b/arch/arm/cpu/armv8/smccc-call.S
-@@ -1,6 +1,8 @@
+@@ -1,7 +1,11 @@
  /* SPDX-License-Identifier: GPL-2.0 */
  /*
   * Copyright (c) 2015, Linaro Limited
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-  */
+- */
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++*/
  #include <linux/linkage.h>
  #include <linux/arm-smccc.h>
-@@ -45,3 +47,54 @@ ENDPROC(__arm_smccc_smc)
+ #include <generated/asm-offsets.h>
+@@ -45,3 +49,54 @@ ENDPROC(__arm_smccc_smc)
  ENTRY(__arm_smccc_hvc)
  	SMCCC	hvc
  ENDPROC(__arm_smccc_hvc)
@@ -116,20 +100,22 @@
 +
 +#endif
 diff --git a/arch/arm/lib/asm-offsets.c b/arch/arm/lib/asm-offsets.c
-index 22fd541f9a..db6d7ed234 100644
+index 6de0ce9152..181a8ac4c2 100644
 --- a/arch/arm/lib/asm-offsets.c
 +++ b/arch/arm/lib/asm-offsets.c
-@@ -9,6 +9,9 @@
+@@ -9,6 +9,11 @@
   * generate asm statements containing #defines,
   * compile this file to assembler, and then extract the
   * #defines from the assembly-language output.
 + *
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
   */
  
  #include <common.h>
-@@ -117,6 +120,17 @@ int main(void)
+@@ -90,6 +95,17 @@ int main(void)
  	DEFINE(ARM_SMCCC_RES_X2_OFFS, offsetof(struct arm_smccc_res, a2));
  	DEFINE(ARM_SMCCC_QUIRK_ID_OFFS, offsetof(struct arm_smccc_quirk, id));
  	DEFINE(ARM_SMCCC_QUIRK_STATE_OFFS, offsetof(struct arm_smccc_quirk, state));
@@ -148,19 +134,21 @@
  
  	return 0;
 diff --git a/include/linux/arm-smccc.h b/include/linux/arm-smccc.h
-index e1d09884a1..9105031d55 100644
+index e1d09884a1..f44e9e8f93 100644
 --- a/include/linux/arm-smccc.h
 +++ b/include/linux/arm-smccc.h
-@@ -1,6 +1,8 @@
+@@ -1,6 +1,10 @@
  /* SPDX-License-Identifier: GPL-2.0 */
  /*
   * Copyright (c) 2015, Linaro Limited
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
   */
  #ifndef __LINUX_ARM_SMCCC_H
  #define __LINUX_ARM_SMCCC_H
-@@ -70,6 +72,47 @@ struct arm_smccc_res {
+@@ -70,6 +74,47 @@ struct arm_smccc_res {
  	unsigned long a3;
  };
  
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-lib-uuid-introduce-uuid_str_to_le_bin-function.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-FF-A-v15-lib-uuid-introduce-uuid_str_to_le_bin-funct.patch
similarity index 64%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-lib-uuid-introduce-uuid_str_to_le_bin-function.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-FF-A-v15-lib-uuid-introduce-uuid_str_to_le_bin-funct.patch
index 5c0c61e..550be6b 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-lib-uuid-introduce-uuid_str_to_le_bin-function.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0002-FF-A-v15-lib-uuid-introduce-uuid_str_to_le_bin-funct.patch
@@ -1,84 +1,69 @@
-From 1dcebf6f57e3490f7b3e2464b4114b993dd70c7c Mon Sep 17 00:00:00 2001
+From 43137871fcc46513eea1480cd78ad091763578f0 Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Thu, 4 Aug 2022 16:46:47 +0100
-Subject: [PATCH 02/42] lib: uuid: introduce uuid_str_to_le_bin function
+Subject: [PATCH 02/33] FF-A v15: lib: uuid: introduce uuid_str_to_le_bin
+ function
 
 convert UUID string to little endian binary data
 
 Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
 Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
 Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
 Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v8:
-
-* use simple_strtoull() in uuid_str_to_le_bin() to support 32-bit platforms
-
-v7:
-
-* rename be_uuid_str_to_le_bin() to uuid_str_to_le_bin()
-* make uuid_str_to_le_bin() implementation similar to uuid_str_to_bin()
-  by using same APIs
-
-v4:
-
-* rename ffa_uuid_str_to_bin to be_uuid_str_to_le_bin and put in
-  a standalone commit (the current)
-
-v3:
-
-* introduce ffa_uuid_str_to_bin (provided by
-  arm_ffa: introduce Arm FF-A low-level driver)
-
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
 ---
- include/uuid.h |  8 ++++++++
- lib/uuid.c     | 46 ++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 54 insertions(+)
+ include/uuid.h | 15 +++++++++++++++
+ lib/uuid.c     | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 63 insertions(+)
 
 diff --git a/include/uuid.h b/include/uuid.h
-index 4a4883d3b5..293a8eb0a5 100644
+index 4a4883d3b5..89b93e642b 100644
 --- a/include/uuid.h
 +++ b/include/uuid.h
-@@ -2,6 +2,8 @@
+@@ -2,6 +2,10 @@
  /*
   * Copyright (C) 2014 Samsung Electronics
   * Przemyslaw Marczak <p.marczak@samsung.com>
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
   */
  #ifndef __UUID_H__
  #define __UUID_H__
-@@ -44,4 +46,10 @@ int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin);
+@@ -44,4 +48,15 @@ int uuid_guid_get_bin(const char *guid_str, unsigned char *guid_bin);
  const char *uuid_guid_get_str(const unsigned char *guid_bin);
  void gen_rand_uuid(unsigned char *uuid_bin);
  void gen_rand_uuid_str(char *uuid_str, int str_format);
 +
 +/**
-+ * uuid_str_to_le_bin - Converts a UUID string to little endian binary data
++ * uuid_str_to_le_bin() - Convert string UUID to little endian binary data.
++ * @uuid_str:	pointer to UUID string
++ * @uuid_bin:	pointer to allocated array for little endian output [16B]
++ * Return:
++ *    uuid_bin filled with little endian UUID data
++ *    On success 0 is returned. Otherwise, failure code.
 + */
 +int uuid_str_to_le_bin(const char *uuid_str, unsigned char *uuid_bin);
 +
  #endif
 diff --git a/lib/uuid.c b/lib/uuid.c
-index 465e1ac38f..d29f561a70 100644
+index 96e1af3c8b..45f325d964 100644
 --- a/lib/uuid.c
 +++ b/lib/uuid.c
-@@ -1,6 +1,8 @@
+@@ -1,6 +1,10 @@
  // SPDX-License-Identifier: GPL-2.0+
  /*
   * Copyright 2011 Calxeda, Inc.
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
   */
  
  #include <common.h>
-@@ -346,6 +348,50 @@ int uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin,
+@@ -354,6 +358,50 @@ int uuid_str_to_bin(const char *uuid_str, unsigned char *uuid_bin,
  	return 0;
  }
  
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-FF-A-v15-lib-uuid-introduce-testcase-for-uuid_str_to.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-FF-A-v15-lib-uuid-introduce-testcase-for-uuid_str_to.patch
new file mode 100644
index 0000000..bbd4e04
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-FF-A-v15-lib-uuid-introduce-testcase-for-uuid_str_to.patch
@@ -0,0 +1,94 @@
+From 80fd758cb55f8b44078b4535284ea132b0d5a944 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Mon, 27 Mar 2023 16:24:29 +0100
+Subject: [PATCH 03/33] FF-A v15: lib: uuid: introduce testcase for
+ uuid_str_to_le_bin
+
+provide a test case
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Cc: Tom Rini <trini@konsulko.com>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
+---
+ MAINTAINERS       |  5 +++++
+ test/lib/Makefile |  1 +
+ test/lib/uuid.c   | 41 +++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 47 insertions(+)
+ create mode 100644 test/lib/uuid.c
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 3bf60c4643..a1122afb01 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -1632,3 +1632,8 @@ S:	Maintained
+ F:	arch/arm/dts/ls1021a-twr-u-boot.dtsi
+ F:	drivers/crypto/fsl/
+ F:	include/fsl_sec.h
++
++UUID testing
++M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++S:	Maintained
++F:	test/lib/uuid.c
+diff --git a/test/lib/Makefile b/test/lib/Makefile
+index e0bd9e04e8..e75a263e6a 100644
+--- a/test/lib/Makefile
++++ b/test/lib/Makefile
+@@ -22,6 +22,7 @@ obj-$(CONFIG_AES) += test_aes.o
+ obj-$(CONFIG_GETOPT) += getopt.o
+ obj-$(CONFIG_CRC8) += test_crc8.o
+ obj-$(CONFIG_UT_LIB_CRYPT) += test_crypt.o
++obj-$(CONFIG_LIB_UUID) += uuid.o
+ else
+ obj-$(CONFIG_SANDBOX) += kconfig_spl.o
+ endif
+diff --git a/test/lib/uuid.c b/test/lib/uuid.c
+new file mode 100644
+index 0000000000..e24331a136
+--- /dev/null
++++ b/test/lib/uuid.c
+@@ -0,0 +1,41 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Functional tests for UCLASS_FFA  class
++ *
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#include <common.h>
++#include <uuid.h>
++#include <test/lib.h>
++#include <test/test.h>
++#include <test/ut.h>
++
++/* test UUID */
++#define TEST_SVC_UUID	"ed32d533-4209-99e6-2d72-cdd998a79cc0"
++
++#define UUID_SIZE 16
++
++/* The UUID binary data (little-endian format) */
++static const u8 ref_uuid_bin[UUID_SIZE] = {
++	0x33, 0xd5, 0x32, 0xed,
++	0x09, 0x42, 0xe6, 0x99,
++	0x72, 0x2d, 0xc0, 0x9c,
++	0xa7, 0x98, 0xd9, 0xcd
++};
++
++static int lib_test_uuid_to_le(struct unit_test_state *uts)
++{
++	const char *uuid_str = TEST_SVC_UUID;
++	u8 ret_uuid_bin[UUID_SIZE] = {0};
++
++	ut_assertok(uuid_str_to_le_bin(uuid_str, ret_uuid_bin));
++	ut_asserteq_mem(ref_uuid_bin, ret_uuid_bin, UUID_SIZE);
++
++	return 0;
++}
++
++LIB_TEST(lib_test_uuid_to_le, 0);
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-arm_ffa-introduce-Arm-FF-A-low-level-driver.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-arm_ffa-introduce-Arm-FF-A-low-level-driver.patch
deleted file mode 100644
index f76c74b..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0003-arm_ffa-introduce-Arm-FF-A-low-level-driver.patch
+++ /dev/null
@@ -1,2139 +0,0 @@
-From 77cf1f517f6d92d5e3efb40d8335adb03b289525 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Tue, 29 Nov 2022 14:40:05 +0000
-Subject: [PATCH 03/42] arm_ffa: introduce Arm FF-A low-level driver
-
-Add the core driver implementing Arm Firmware Framework for Armv8-A v1.0
-
-The Firmware Framework for Arm A-profile processors (FF-A v1.0) [1]
-describes interfaces (ABIs) that standardize communication
-between the Secure World and Normal World leveraging TrustZone
-technology.
-
-This driver uses 64-bit registers as per SMCCCv1.2 spec and comes
-on top of the SMCCC layer. The driver provides the FF-A ABIs needed for
-querying the FF-A framework from the secure world.
-
-The driver uses SMC32 calling convention which means using the first
-32-bit data of the Xn registers.
-
-All supported ABIs come with their 32-bit version except FFA_RXTX_MAP
-which has 64-bit version supported.
-
-Both 32-bit and 64-bit direct messaging are supported which allows both
-32-bit and 64-bit clients to use the FF-A bus.
-
-In U-Boot FF-A design, FF-A is considered as a discoverable bus.
-The Secure World is considered as one entity to communicate with
-using the FF-A bus. FF-A communication is handled by one device and
-one instance (the bus). This FF-A driver takes care of all the
-interactions between Normal world and Secure World.
-
-The driver exports its operations to be used by upper layers.
-
-Exported operations:
-
-- partition_info_get
-- sync_send_receive
-- rxtx_unmap
-
-For more details please refer to the driver documentation [2].
-
-[1]: https://developer.arm.com/documentation/den0077/latest/
-[2]: doc/arch/arm64.ffa.rst
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v8:
-
-* make ffa_get_partitions_info() second argument to be an SP count in both
-  modes
-* update ffa_bus_prvdata_get() to return a pointer rather than a pointer
-  address
-* remove packing from ffa_partition_info and ffa_send_direct_data structures
-* pass the FF-A bus device to the bus operations
-
-v7:
-
-* add support for 32-bit direct messaging
-* rename be_uuid_str_to_le_bin() to uuid_str_to_le_bin()
-* improve the declaration of error handling mapping
-* stating in doc/arch/arm64.ffa.rst that EFI runtime is not supported
-
-v6:
-
-* drop use of EFI runtime support (We decided with Linaro to add this later)
-* drop discovery from initcalls (discovery will be on demand by FF-A users)
-* set the alignment of the RX/TX buffers to the larger translation granule size
-* move FF-A RX/TX buffers unmapping at ExitBootServices() to a separate commit
-* update the documentation and move it to doc/arch/arm64.ffa.rst
-
-v4:
-
-* add doc/README.ffa.drv
-* moving the FF-A driver work to drivers/firmware/arm-ffa
-* use less #ifdefs in lib/efi_loader/efi_boottime.c and replace
-  #if defined by #if CONFIG_IS_ENABLED
-* improving error handling by mapping the FF-A errors to standard errors
-  and logs
-* replacing panics with an error log and returning an error code
-* improving features discovery in FFA_FEATURES by introducing
-  rxtx_min_pages private data field
-* add ffa_remove and ffa_unbind functions
-* improve how the driver behaves when bus discovery is done more than
-  once
-
-v3:
-
-* align the interfaces of the U-Boot FF-A driver with those in the linux
-  FF-A driver
-* remove the FF-A helper layer
-* make the U-Boot FF-A driver independent from EFI
-* provide an optional config that enables copying the driver data to EFI
-  runtime section at ExitBootServices service
-* use 64-bit version of FFA_RXTX_MAP, FFA_MSG_SEND_DIRECT_{REQ, RESP}
-
-v2:
-
-* make FF-A bus discoverable using device_{bind, probe} APIs
-* remove device tree support
-
-v1:
-
-* introduce FF-A bus driver with device tree support
-
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- MAINTAINERS                               |    7 +
- doc/arch/arm64.ffa.rst                    |  218 ++++
- doc/arch/index.rst                        |    1 +
- drivers/Kconfig                           |    2 +
- drivers/Makefile                          |    1 +
- drivers/firmware/arm-ffa/Kconfig          |   30 +
- drivers/firmware/arm-ffa/Makefile         |    6 +
- drivers/firmware/arm-ffa/arm-ffa-uclass.c |   16 +
- drivers/firmware/arm-ffa/arm_ffa_prv.h    |  200 ++++
- drivers/firmware/arm-ffa/core.c           | 1315 +++++++++++++++++++++
- include/arm_ffa.h                         |   97 ++
- include/dm/uclass-id.h                    |    4 +
- 12 files changed, 1897 insertions(+)
- create mode 100644 doc/arch/arm64.ffa.rst
- create mode 100644 drivers/firmware/arm-ffa/Kconfig
- create mode 100644 drivers/firmware/arm-ffa/Makefile
- create mode 100644 drivers/firmware/arm-ffa/arm-ffa-uclass.c
- create mode 100644 drivers/firmware/arm-ffa/arm_ffa_prv.h
- create mode 100644 drivers/firmware/arm-ffa/core.c
- create mode 100644 include/arm_ffa.h
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index 3fc4cd0f12..509619d31c 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -264,6 +264,13 @@ F:	drivers/net/cortina_ni.h
- F:	drivers/net/phy/ca_phy.c
- F:	configs/cortina_presidio-asic-pnand_defconfig
- 
-+ARM FF-A
-+M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+S:	Maintained
-+F:	doc/arch/arm64.ffa.rst
-+F:	drivers/firmware/arm-ffa/
-+F:	include/arm_ffa.h
-+
- ARM FREESCALE IMX
- M:	Stefano Babic <sbabic@denx.de>
- M:	Fabio Estevam <festevam@gmail.com>
-diff --git a/doc/arch/arm64.ffa.rst b/doc/arch/arm64.ffa.rst
-new file mode 100644
-index 0000000000..dfcec82e45
---- /dev/null
-+++ b/doc/arch/arm64.ffa.rst
-@@ -0,0 +1,218 @@
-+.. SPDX-License-Identifier: GPL-2.0+
-+
-+Arm FF-A Driver
-+===============
-+
-+Summary
-+-------
-+
-+FF-A stands for Firmware Framework for Arm A-profile processors.
-+
-+FF-A specifies interfaces that enable a pair of software sandboxes to
-+communicate with each other. A sandbox aka partition could
-+be a VM in the Normal or Secure world, an application in S-EL0, or a
-+Trusted OS in S-EL1.
-+
-+This FF-A driver implements the interfaces to communicate with partitions in
-+the Secure world aka Secure partitions (SPs).
-+
-+The driver specifically focuses on communicating with SPs that isolate portions
-+of EFI runtime services that must run in a protected environment which is
-+inaccessible by the Host OS or Hypervisor. Examples of such services are
-+set/get variables.
-+
-+FF-A driver uses the SMC ABIs defined by the FF-A specification to:
-+
-+- Discover the presence of SPs of interest
-+- Access an SP's service through communication protocols
-+  e.g. EFI MM communication protocol
-+
-+At this stage of development the FF-A driver supports EFI boot time only.
-+
-+Runtime support will be added in future developments.
-+
-+FF-A and SMC specifications
-+-------------------------------------------
-+
-+The current implementation of the driver relies on FF-A specification v1.0
-+and uses SMC32 calling convention which means using the first 32-bit data of the
-+Xn registers.
-+
-+At this stage we only need the FF-A v1.0 features.
-+
-+The driver has been tested with OP-TEE which supports SMC32 calling convention.
-+
-+For more details please refer to the FF-A v1.0 spec:
-+https://documentation-service.arm.com/static/5fb7e8a6ca04df4095c1d65e?token=
-+
-+Hypervisors are supported if they are configured to trap SMC calls.
-+
-+The FF-A driver uses 64-bit registers as per SMCCCv1.2 specification.
-+
-+For more details please refer to the SMC Calling Convention v1.2 spec:
-+https://documentation-service.arm.com/static/5f8edaeff86e16515cdbe4c6?token=
-+
-+Supported hardware
-+--------------------------------
-+
-+Aarch64 plaforms
-+
-+Configuration
-+----------------------
-+
-+CONFIG_ARM_FFA_TRANSPORT
-+    Enables the FF-A bus driver. Turn this on if you want to use FF-A
-+    communication.
-+
-+CONFIG_SANDBOX_FFA
-+    Enables FF-A Sandbox driver. This emulates the FF-A ABIs handling under
-+    Sandbox and provides functional tests for FF-A.
-+
-+FF-A ABIs under the hood
-+---------------------------------------
-+
-+Invoking an FF-A ABI involves providing to the secure world/hypervisor the
-+expected arguments from the ABI.
-+
-+The ABI arguments are stored in x0 to x7 registers. Then, an SMC instruction
-+is executed.
-+
-+At the secure side level or hypervisor the ABI is handled at a higher exception
-+level and the arguments are read and processed.
-+
-+The response is put back through x0 to x7 registers and control is given back
-+to the U-Boot FF-A driver (non-secure world).
-+
-+The driver reads the response and processes it accordingly.
-+
-+This methodology applies to all the FF-A ABIs in the driver.
-+
-+FF-A bus discovery in U-Boot
-+-------------------------------------------
-+
-+When CONFIG_ARM_FFA_TRANSPORT is enabled, the FF-A bus is discovered on
-+demand by the clients (users).
-+
-+Clients can discover the FF-A bus using ffa_bus_discover() API which triggers the
-+discovery process.
-+
-+ffa_bus_discover() creates, binds and probes the arm_ffa device using
-+device_{bind, probe} APIs.
-+
-+The discovery process consists in communicating with secure world (or hypervisor)
-+and querying specific data.
-+
-+The discovery process takes place during the arm_ffa device probing which is
-+handled by ffa_probe().
-+
-+The FF-A bus discovery is successful and the bus is ready for use when these
-+operations succeed:
-+
-+- querying the FF-A framework version
-+- querying from secure world the U-Boot endpoint ID
-+- querying from secure world the RX/TX mapping  features
-+- mapping the RX/TX buffers
-+- querying from secure world all the partitions information
-+
-+Discovery failure results in a probing failure and the arm_ffa device is
-+destroyed.
-+
-+Requirements for clients
-+-------------------------------------
-+
-+When using the FF-A bus with EFI, clients must:
-+
-+- Query SPs in EFI boot time mode using the service UUID.
-+- Unmap RX/TX buffers before EFI runtime mode starts.
-+
-+The RX/TX buffers are only available at EFI boot time. Querying partitions is
-+done at boot time and data is cached for future use.
-+
-+RX/TX buffers should be unmapped by the user before EFI runtime mode
-+starts. The driver provides a bus operation for that: rxtx_unmap()
-+
-+If  RX/TX buffers created by U-Boot are not unmapped and by
-+consequence becoming available at EFI runtime, secure world will get confused
-+about RX/TX buffers ownership (U-Boot vs kernel).
-+
-+When invoking FF-A direct messaging, clients should specify which ABI protocol
-+they want to use (32-bit vs 64-bit). Selecting the protocol means using
-+the 32-bit or 64-bit version of FFA_MSG_SEND_DIRECT_{REQ, RESP}.
-+The calling convention stays the same: SMC32.
-+
-+The bus driver layer
-+------------------------------
-+
-+The driver comes on top of the SMCCC layer and is implemented in
-+drivers/firmware/arm-ffa/core.c
-+
-+The driver provides the following features:
-+
-+- Support for the 32-bit version of the following ABIs:
-+
-+FFA_VERSION
-+FFA_ID_GET
-+FFA_FEATURES
-+FFA_PARTITION_INFO_GET
-+FFA_RXTX_UNMAP
-+FFA_RX_RELEASE
-+FFA_RUN
-+FFA_ERROR
-+FFA_SUCCESS
-+FFA_INTERRUPT
-+FFA_MSG_SEND_DIRECT_REQ
-+FFA_MSG_SEND_DIRECT_RESP
-+
-+- Support for the 64-bit version of the following ABIs:
-+
-+FFA_RXTX_MAP
-+FFA_MSG_SEND_DIRECT_REQ
-+FFA_MSG_SEND_DIRECT_RESP
-+
-+- Processing the received data from the secure world/hypervisor and caching it
-+
-+- Hiding from upper layers the FF-A protocol and registers details. Upper
-+  layers focus on exchanged data, the driver takes care of how to transport
-+  that to the secure world/hypervisor using FF-A
-+
-+- The driver provides callbacks to be used by clients to access the FF-A bus:
-+
-+partition_info_get
-+sync_send_receive
-+rxtx_unmap
-+
-+- FF-A bus discovery makes sure FF-A framework is responsive and compatible
-+  with the driver
-+
-+- FF-A bus can be compiled and used without EFI
-+
-+Using armffa command
-+-----------------------------------
-+
-+armffa is an implementation defined command showcasing how to use the FF-A driver and how to invoke
-+its operations.
-+
-+This provides a guidance to the client developers on how to call the FF-A bus
-+interfaces.
-+
-+Usage:
-+
-+armffa <sub-command> <arguments>
-+
-+sub-commands:
-+
-+        getpart <partition UUID>
-+
-+            lists the partition(s) info
-+
-+        ping <partition ID>
-+
-+            sends a data pattern to the specified partition
-+
-+        devlist
-+
-+            displays the arm_ffa device info
-+
-+Contributors
-+------------
-+   * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-diff --git a/doc/arch/index.rst b/doc/arch/index.rst
-index b3e85f9bf3..cf1cfc9287 100644
---- a/doc/arch/index.rst
-+++ b/doc/arch/index.rst
-@@ -8,6 +8,7 @@ Architecture-specific doc
- 
-    arc
-    arm64
-+   arm64.ffa
-    m68k
-    mips
-    nios2
-diff --git a/drivers/Kconfig b/drivers/Kconfig
-index 75ac149d31..ff75b7c3f8 100644
---- a/drivers/Kconfig
-+++ b/drivers/Kconfig
-@@ -6,6 +6,8 @@ source "drivers/core/Kconfig"
- 
- source "drivers/adc/Kconfig"
- 
-+source "drivers/firmware/arm-ffa/Kconfig"
-+
- source "drivers/ata/Kconfig"
- 
- source "drivers/axi/Kconfig"
-diff --git a/drivers/Makefile b/drivers/Makefile
-index 6f1de58e00..28c8f538c8 100644
---- a/drivers/Makefile
-+++ b/drivers/Makefile
-@@ -112,6 +112,7 @@ obj-y += iommu/
- obj-y += smem/
- obj-y += thermal/
- obj-$(CONFIG_TEE) += tee/
-+obj-$(CONFIG_ARM_FFA_TRANSPORT) += firmware/arm-ffa/
- obj-y += axi/
- obj-y += ufs/
- obj-$(CONFIG_W1) += w1/
-diff --git a/drivers/firmware/arm-ffa/Kconfig b/drivers/firmware/arm-ffa/Kconfig
-new file mode 100644
-index 0000000000..e4914b9bc7
---- /dev/null
-+++ b/drivers/firmware/arm-ffa/Kconfig
-@@ -0,0 +1,30 @@
-+# SPDX-License-Identifier: GPL-2.0
-+
-+config ARM_FFA_TRANSPORT
-+	bool "Enable Arm Firmware Framework for Armv8-A driver"
-+	depends on DM && ARM64
-+	select ARM_SMCCC
-+	select LIB_UUID
-+	select DEVRES
-+	help
-+	  The Firmware Framework for Arm A-profile processors (FF-A)
-+	  describes interfaces (ABIs) that standardize communication
-+	  between the Secure World and Normal World leveraging TrustZone
-+	  technology.
-+
-+	  This driver is based on FF-A specification v1.0 and uses SMC32
-+	  calling convention.
-+
-+	  FF-A specification:
-+
-+	  https://developer.arm.com/documentation/den0077/a/?lang=en
-+
-+	  In U-Boot FF-A design, FF-A is considered as a discoverable bus.
-+	  The Secure World is considered as one entity to communicate with
-+	  using the FF-A bus.
-+	  FF-A communication is handled by one device and one instance (the bus).
-+	  This FF-A driver takes care of all the interactions between Normal world
-+	  and Secure World.
-+
-+	  For more details about the FF-A driver, please refer to doc/arch/arm64.ffa.rst
-+
-diff --git a/drivers/firmware/arm-ffa/Makefile b/drivers/firmware/arm-ffa/Makefile
-new file mode 100644
-index 0000000000..043a8915be
---- /dev/null
-+++ b/drivers/firmware/arm-ffa/Makefile
-@@ -0,0 +1,6 @@
-+# SPDX-License-Identifier: GPL-2.0+
-+#
-+# (C) Copyright 2022
-+# Abdellatif El Khlifi, Arm Limited, abdellatif.elkhlifi@arm.com.
-+
-+obj-y += arm-ffa-uclass.o core.o
-diff --git a/drivers/firmware/arm-ffa/arm-ffa-uclass.c b/drivers/firmware/arm-ffa/arm-ffa-uclass.c
-new file mode 100644
-index 0000000000..7d9695d289
---- /dev/null
-+++ b/drivers/firmware/arm-ffa/arm-ffa-uclass.c
-@@ -0,0 +1,16 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include <common.h>
-+#include <dm.h>
-+#include <asm/global_data.h>
-+
-+DECLARE_GLOBAL_DATA_PTR;
-+
-+UCLASS_DRIVER(ffa) = {
-+	.name		= "ffa",
-+	.id		= UCLASS_FFA,
-+};
-diff --git a/drivers/firmware/arm-ffa/arm_ffa_prv.h b/drivers/firmware/arm-ffa/arm_ffa_prv.h
-new file mode 100644
-index 0000000000..4eea7dc036
---- /dev/null
-+++ b/drivers/firmware/arm-ffa/arm_ffa_prv.h
-@@ -0,0 +1,200 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#ifndef __ARM_FFA_PRV_H
-+#define __ARM_FFA_PRV_H
-+
-+#include <arm_ffa.h>
-+#include <linux/bitfield.h>
-+#include <linux/bitops.h>
-+#include <linux/arm-smccc.h>
-+
-+/*
-+ * This header is private. It is exclusively used by the FF-A driver
-+ */
-+
-+/* FF-A core driver name */
-+#define FFA_DRV_NAME "arm_ffa"
-+
-+/* FF-A driver version definitions */
-+
-+#define MAJOR_VERSION_MASK		GENMASK(30, 16)
-+#define MINOR_VERSION_MASK		GENMASK(15, 0)
-+#define GET_FFA_MAJOR_VERSION(x)		\
-+				((u16)(FIELD_GET(MAJOR_VERSION_MASK, (x))))
-+#define GET_FFA_MINOR_VERSION(x)		\
-+				((u16)(FIELD_GET(MINOR_VERSION_MASK, (x))))
-+#define PACK_VERSION_INFO(major, minor)			\
-+	(FIELD_PREP(MAJOR_VERSION_MASK, (major)) |	\
-+	 FIELD_PREP(MINOR_VERSION_MASK, (minor)))
-+
-+#define FFA_MAJOR_VERSION		(1)
-+#define FFA_MINOR_VERSION		(0)
-+#define FFA_VERSION_1_0		\
-+			PACK_VERSION_INFO(FFA_MAJOR_VERSION, FFA_MINOR_VERSION)
-+
-+/* Endpoint ID mask (u-boot endpoint ID) */
-+
-+#define GET_SELF_ENDPOINT_ID_MASK		GENMASK(15, 0)
-+#define GET_SELF_ENDPOINT_ID(x)		\
-+			((u16)(FIELD_GET(GET_SELF_ENDPOINT_ID_MASK, (x))))
-+
-+#define PREP_SELF_ENDPOINT_ID_MASK		GENMASK(31, 16)
-+#define PREP_SELF_ENDPOINT_ID(x)		\
-+			(FIELD_PREP(PREP_SELF_ENDPOINT_ID_MASK, (x)))
-+
-+/* Partition endpoint ID mask  (partition with which u-boot communicates with) */
-+
-+#define PREP_PART_ENDPOINT_ID_MASK		GENMASK(15, 0)
-+#define PREP_PART_ENDPOINT_ID(x)		\
-+			(FIELD_PREP(PREP_PART_ENDPOINT_ID_MASK, (x)))
-+
-+/*
-+ * Definitions of the Arm FF-A interfaces supported by the Arm FF-A driver
-+ */
-+
-+#define FFA_SMC(calling_convention, func_num)				\
-+	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, (calling_convention),	\
-+			   ARM_SMCCC_OWNER_STANDARD, (func_num))
-+
-+#define FFA_SMC_32(func_num)				FFA_SMC(ARM_SMCCC_SMC_32, (func_num))
-+#define FFA_SMC_64(func_num)				FFA_SMC(ARM_SMCCC_SMC_64, (func_num))
-+
-+enum ffa_abis {
-+	FFA_ERROR                 = 0x60,
-+	FFA_SUCCESS               = 0x61,
-+	FFA_INTERRUPT             = 0x62,
-+	FFA_VERSION               = 0x63,
-+	FFA_FEATURES              = 0x64,
-+	FFA_RX_RELEASE            = 0x65,
-+	FFA_RXTX_MAP              = 0x66,
-+	FFA_RXTX_UNMAP            = 0x67,
-+	FFA_PARTITION_INFO_GET    = 0x68,
-+	FFA_ID_GET                = 0x69,
-+	FFA_RUN                   = 0x6D,
-+	FFA_MSG_SEND_DIRECT_REQ   = 0x6F,
-+	FFA_MSG_SEND_DIRECT_RESP  = 0x70,
-+
-+	/* to be updated when adding new FFA IDs */
-+	FFA_FIRST_ID              = FFA_ERROR, /* lowest number ID*/
-+	FFA_LAST_ID               = FFA_MSG_SEND_DIRECT_RESP, /* highest number ID*/
-+};
-+
-+enum ffa_abi_errcode {
-+	NOT_SUPPORTED = 1,
-+	INVALID_PARAMETERS,
-+	NO_MEMORY,
-+	BUSY,
-+	INTERRUPTED,
-+	DENIED,
-+	RETRY,
-+	ABORTED,
-+	MAX_NUMBER_FFA_ERR
-+};
-+
-+/* container structure and helper macros to map between an FF-A error and relevant error log */
-+struct ffa_abi_errmap {
-+	char *err_str[MAX_NUMBER_FFA_ERR];
-+};
-+
-+#define FFA_ERRMAP_COUNT (FFA_LAST_ID - FFA_FIRST_ID + 1)
-+#define FFA_ID_TO_ERRMAP_ID(ffa_id) ((ffa_id) - FFA_FIRST_ID)
-+
-+/* The FF-A SMC function definitions */
-+
-+typedef struct arm_smccc_1_2_regs ffa_value_t;
-+typedef void (*invoke_ffa_fn_t)(ffa_value_t args, ffa_value_t *res);
-+
-+/*
-+ * struct ffa_partition_uuid - 16 bytes UUID transmitted by FFA_PARTITION_INFO_GET
-+ * @a1-4:	32-bit words access to the UUID data
-+ *
-+ */
-+struct ffa_partition_uuid {
-+	u32 a1; /* w1 */
-+	u32 a2; /* w2 */
-+	u32 a3; /* w3 */
-+	u32 a4; /* w4 */
-+};
-+
-+/**
-+ * enum ffa_rxtx_buf_sizes - minimum sizes supported
-+ * for the RX/TX buffers
-+ */
-+enum ffa_rxtx_buf_sizes {
-+	RXTX_4K,
-+	RXTX_64K,
-+	RXTX_16K
-+};
-+
-+/**
-+ * struct ffa_rxtxpair - structure hosting the RX/TX buffers virtual addresses
-+ * @rxbuf:	virtual address of the RX buffer
-+ * @txbuf:	virtual address of the TX buffer
-+ * @rxtx_min_pages:	RX/TX buffers minimum size in pages
-+ *
-+ * Data structure hosting the virtual addresses of the mapped RX/TX buffers
-+ * These addresses are used by the FF-A functions that use the RX/TX buffers
-+ */
-+struct ffa_rxtxpair {
-+	u64 rxbuf; /* virtual address */
-+	u64 txbuf; /* virtual address */
-+	size_t rxtx_min_pages; /* minimum number of pages in each of the RX/TX buffers */
-+};
-+
-+/**
-+ * struct ffa_partition_desc - the secure partition descriptor
-+ * @info:	partition information
-+ * @sp_uuid:	the secure partition UUID
-+ *
-+ * Each partition has its descriptor containing the partitions information and the UUID
-+ */
-+struct ffa_partition_desc {
-+	struct ffa_partition_info info;
-+	struct ffa_partition_uuid sp_uuid;
-+};
-+
-+/**
-+ * struct ffa_partitions - descriptors for all secure partitions
-+ * @count:	The number of partitions descriptors
-+ * @descs	The partitions descriptors table
-+ *
-+ * This data structure contains the partitions descriptors table
-+ */
-+struct ffa_partitions {
-+	u32 count;
-+	struct ffa_partition_desc *descs; /* virtual address */
-+};
-+
-+/**
-+ * struct ffa_prvdata - the driver private data structure
-+ *
-+ * @dev:	The arm_ffa device under u-boot driver model
-+ * @ffa_ops:	The driver operations structure
-+ * @fwk_version:	FF-A framework version
-+ * @id:	u-boot endpoint ID
-+ * @partitions:	The partitions descriptors structure
-+ * @pair:	The RX/TX buffers pair
-+ * @invoke_ffa_fn:	The function executing the FF-A function
-+ *
-+ * The driver data structure hosting all resident data.
-+ */
-+struct ffa_prvdata {
-+	struct udevice *dev;
-+	struct ffa_bus_ops ffa_ops;
-+	u32 fwk_version;
-+	u16 id;
-+	struct ffa_partitions partitions;
-+	struct ffa_rxtxpair pair;
-+	invoke_ffa_fn_t invoke_ffa_fn;
-+};
-+
-+/**
-+ * ffa_bus_prvdata_get - bus driver private data getter
-+ */
-+struct ffa_prvdata *ffa_bus_prvdata_get(void);
-+
-+#endif
-diff --git a/drivers/firmware/arm-ffa/core.c b/drivers/firmware/arm-ffa/core.c
-new file mode 100644
-index 0000000000..0b1f8e6a07
---- /dev/null
-+++ b/drivers/firmware/arm-ffa/core.c
-@@ -0,0 +1,1315 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include "arm_ffa_prv.h"
-+#include <asm/global_data.h>
-+#include <common.h>
-+#include <dm.h>
-+#include <dm/device-internal.h>
-+#include <dm/devres.h>
-+#include <dm/root.h>
-+#include <linux/errno.h>
-+#include <linux/sizes.h>
-+#include <log.h>
-+#include <malloc.h>
-+#include <string.h>
-+#include <uuid.h>
-+
-+DECLARE_GLOBAL_DATA_PTR;
-+
-+/**
-+ * The device private data structure containing all the
-+ * data read from secure world
-+ */
-+struct ffa_prvdata *ffa_priv_data;
-+
-+/* Error mapping declarations */
-+
-+int ffa_to_std_errmap[MAX_NUMBER_FFA_ERR] = {
-+	[NOT_SUPPORTED] = -EOPNOTSUPP,
-+	[INVALID_PARAMETERS] = -EINVAL,
-+	[NO_MEMORY] = -ENOMEM,
-+	[BUSY] = -EBUSY,
-+	[INTERRUPTED] = -EINTR,
-+	[DENIED] = -EACCES,
-+	[RETRY] = -EAGAIN,
-+	[ABORTED] = -ECANCELED,
-+};
-+
-+struct ffa_abi_errmap err_msg_map[FFA_ERRMAP_COUNT] = {
-+	[FFA_ID_TO_ERRMAP_ID(FFA_VERSION)] = {
-+		{
-+			[NOT_SUPPORTED] =
-+			"NOT_SUPPORTED: A Firmware Framework implementation does not exist",
-+		},
-+	},
-+	[FFA_ID_TO_ERRMAP_ID(FFA_ID_GET)] = {
-+		{
-+			[NOT_SUPPORTED] =
-+			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
-+		},
-+	},
-+	[FFA_ID_TO_ERRMAP_ID(FFA_FEATURES)] = {
-+		{
-+			[NOT_SUPPORTED] =
-+			"NOT_SUPPORTED: FFA_RXTX_MAP is not implemented at this FF-A instance",
-+		},
-+	},
-+	[FFA_ID_TO_ERRMAP_ID(FFA_PARTITION_INFO_GET)] = {
-+		{
-+			[NOT_SUPPORTED] =
-+			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
-+			[INVALID_PARAMETERS] =
-+			"INVALID_PARAMETERS: Unrecognized UUID",
-+			[NO_MEMORY] =
-+			"NO_MEMORY: Results cannot fit in RX buffer of the caller",
-+			[BUSY] =
-+			"BUSY: RX buffer of the caller is not free",
-+			[DENIED] =
-+			"DENIED: Callee is not in a state to handle this request",
-+		},
-+	},
-+	[FFA_ID_TO_ERRMAP_ID(FFA_RXTX_UNMAP)] = {
-+		{
-+			[NOT_SUPPORTED] =
-+			"NOT_SUPPORTED: FFA_RXTX_UNMAP is not implemented at this FF-A instance",
-+			[INVALID_PARAMETERS] =
-+			"INVALID_PARAMETERS: No buffer pair registered on behalf of the caller",
-+		},
-+	},
-+	[FFA_ID_TO_ERRMAP_ID(FFA_RX_RELEASE)] = {
-+		{
-+			[NOT_SUPPORTED] =
-+			"NOT_SUPPORTED: FFA_RX_RELEASE is not implemented at this FF-A instance",
-+			[DENIED] =
-+			"DENIED: Caller did not have ownership of the RX buffer",
-+		},
-+	},
-+	[FFA_ID_TO_ERRMAP_ID(FFA_RXTX_MAP)] = {
-+		{
-+			[NOT_SUPPORTED] =
-+			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
-+			[INVALID_PARAMETERS] =
-+			"INVALID_PARAMETERS: Field(s) in input parameters incorrectly encoded",
-+			[NO_MEMORY] =
-+			"NO_MEMORY: Not enough memory",
-+			[DENIED] =
-+			"DENIED: Buffer pair already registered",
-+		},
-+	},
-+};
-+
-+/**
-+ * ffa_to_std_errno - convert FF-A error code to standard error code
-+ * @ffa_errno:	Error code returned by the FF-A ABI
-+ *
-+ * This function maps the given FF-A error code as specified
-+ * by the spec to a u-boot standard error code.
-+ *
-+ * Return:
-+ *
-+ * The standard error code on success. . Otherwise, failure
-+ */
-+int ffa_to_std_errno(int ffa_errno)
-+{
-+	int err_idx = -ffa_errno;
-+
-+	/* map the FF-A error code to the standard u-boot error code */
-+	if (err_idx > 0 && err_idx < MAX_NUMBER_FFA_ERR)
-+		return ffa_to_std_errmap[err_idx];
-+	return -EINVAL;
-+}
-+
-+/**
-+ * ffa_print_error_log - print the error log corresponding to the selected FF-A ABI
-+ * @ffa_id:	FF-A ABI ID
-+ * @ffa_errno:	Error code returned by the FF-A ABI
-+ *
-+ * This function maps the FF-A error code to the error log relevant to the
-+ * selected FF-A ABI. Then the error log is printed.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. . Otherwise, failure
-+ */
-+int ffa_print_error_log(u32 ffa_id, int ffa_errno)
-+{
-+	int err_idx = -ffa_errno, abi_idx = 0;
-+
-+	/* map the FF-A error code to the corresponding error log */
-+
-+	if (err_idx <= 0 || err_idx >= MAX_NUMBER_FFA_ERR)
-+		return -EINVAL;
-+
-+	if (ffa_id < FFA_FIRST_ID || ffa_id > FFA_LAST_ID)
-+		return -EINVAL;
-+
-+	abi_idx = FFA_ID_TO_ERRMAP_ID(ffa_id);
-+	if (abi_idx < 0 || abi_idx >= FFA_ERRMAP_COUNT)
-+		return -EINVAL;
-+
-+	if (!err_msg_map[abi_idx].err_str[err_idx])
-+		return -EINVAL;
-+
-+	ffa_err("%s", err_msg_map[abi_idx].err_str[err_idx]);
-+
-+	return 0;
-+}
-+
-+/*
-+ * Driver core functions
-+ */
-+
-+/**
-+ * ffa_remove_device - removes the arm_ffa device
-+ * @dev:	the device to be removed
-+ *
-+ * This function makes sure the arm_ffa device is removed
-+ * No need to free the kmalloced data when the device is destroyed.
-+ * It's automatically done by devm management by
-+ * device_remove() -> device_free() -> devres_release_probe().
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+int ffa_remove_device(struct udevice *dev)
-+{
-+	int ret;
-+
-+	if (!dev) {
-+		ffa_err("no udevice found");
-+		return -ENODEV;
-+	}
-+
-+	ret = device_remove(dev, DM_REMOVE_NORMAL);
-+	if (ret) {
-+		ffa_err("unable to remove. err:%d\n", ret);
-+		return ret;
-+	}
-+
-+	ffa_info("device removed and freed");
-+
-+	ret = device_unbind(dev);
-+	if (ret) {
-+		ffa_err("unable to unbind. err:%d\n", ret);
-+		return ret;
-+	}
-+
-+	ffa_info("device unbound");
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_device_get - create, bind and probe the arm_ffa device
-+ * @pdev: the address of a device pointer (to be filled when the arm_ffa bus device is created
-+ *       successfully)
-+ *
-+ * This function makes sure the arm_ffa device is
-+ * created, bound to this driver, probed and ready to use.
-+ * Arm FF-A transport is implemented through a single U-Boot
-+ * device managing the FF-A bus (arm_ffa).
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+int ffa_device_get(struct udevice **pdev)
-+{
-+	int ret;
-+	struct udevice *dev = NULL;
-+
-+	ret = device_bind(dm_root(), DM_DRIVER_GET(arm_ffa), FFA_DRV_NAME, NULL, ofnode_null(),
-+			  &dev);
-+	if (ret)
-+		return ret;
-+
-+	/* The FF-A bus discovery succeeds when probing is successful */
-+	ret = device_probe(dev);
-+	if (ret) {
-+		ffa_err("arm_ffa device probing failed");
-+		ffa_remove_device(dev);
-+		return ret;
-+	}
-+
-+	if (pdev)
-+		*pdev = dev;
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_get_version - FFA_VERSION handler function
-+ *
-+ * This function implements FFA_VERSION FF-A function
-+ * to get from the secure world the FF-A framework version
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_get_version(void)
-+{
-+	u16 major, minor;
-+	ffa_value_t res = {0};
-+	int ffa_errno;
-+
-+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = FFA_SMC_32(FFA_VERSION), .a1 = FFA_VERSION_1_0,
-+			}, &res);
-+
-+	ffa_errno = res.a0;
-+	if (ffa_errno < 0) {
-+		ffa_print_error_log(FFA_VERSION, ffa_errno);
-+		return ffa_to_std_errno(ffa_errno);
-+	}
-+
-+	major = GET_FFA_MAJOR_VERSION(res.a0);
-+	minor = GET_FFA_MINOR_VERSION(res.a0);
-+
-+	ffa_info("FF-A driver %d.%d\nFF-A framework %d.%d",
-+		 FFA_MAJOR_VERSION, FFA_MINOR_VERSION, major, minor);
-+
-+	if ((major == FFA_MAJOR_VERSION && minor >= FFA_MINOR_VERSION)) {
-+		ffa_info("Versions are compatible ");
-+
-+		ffa_priv_data->fwk_version = res.a0;
-+
-+		return 0;
-+	}
-+
-+	ffa_err("versions are incompatible\nExpected: %d.%d , Found: %d.%d\n",
-+		FFA_MAJOR_VERSION, FFA_MINOR_VERSION, major, minor);
-+
-+	return -EPROTONOSUPPORT;
-+}
-+
-+/**
-+ * ffa_get_endpoint_id - FFA_ID_GET handler function
-+ *
-+ * This function implements FFA_ID_GET FF-A function
-+ * to get from the secure world u-boot endpoint ID
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_get_endpoint_id(void)
-+{
-+	ffa_value_t res = {0};
-+	int ffa_errno;
-+
-+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = FFA_SMC_32(FFA_ID_GET),
-+			}, &res);
-+
-+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
-+		ffa_priv_data->id = GET_SELF_ENDPOINT_ID((u32)res.a2);
-+		ffa_info("endpoint ID is %u", ffa_priv_data->id);
-+
-+		return 0;
-+	}
-+
-+	ffa_errno = res.a2;
-+
-+	ffa_print_error_log(FFA_ID_GET, ffa_errno);
-+
-+	return ffa_to_std_errno(ffa_errno);
-+}
-+
-+/**
-+ * ffa_set_rxtx_buffers_pages_cnt - sets the minimum number of pages in each of the RX/TX buffers
-+ * @prop_field: properties field obtained from FFA_FEATURES ABI
-+ *
-+ * This function sets the minimum number of pages
-+ *  in each of the RX/TX buffers in the private data structure
-+ *
-+ * Return:
-+ *
-+ * buf_4k_pages points to the returned number of pages
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_set_rxtx_buffers_pages_cnt(u32 prop_field)
-+{
-+	if (!ffa_priv_data)
-+		return -EINVAL;
-+
-+	switch (prop_field) {
-+	case RXTX_4K:
-+		ffa_priv_data->pair.rxtx_min_pages = 1;
-+		break;
-+	case RXTX_16K:
-+		ffa_priv_data->pair.rxtx_min_pages = 4;
-+		break;
-+	case RXTX_64K:
-+		ffa_priv_data->pair.rxtx_min_pages = 16;
-+		break;
-+	default:
-+		ffa_err("RX/TX buffer size not supported");
-+		return -EINVAL;
-+	}
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_get_rxtx_map_features - FFA_FEATURES handler function with FFA_RXTX_MAP argument
-+ *
-+ * This function implements FFA_FEATURES FF-A function
-+ * to retrieve the FFA_RXTX_MAP features
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_get_rxtx_map_features(void)
-+{
-+	ffa_value_t res = {0};
-+	int ffa_errno;
-+
-+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = FFA_SMC_32(FFA_FEATURES),
-+			.a1 = FFA_SMC_64(FFA_RXTX_MAP),
-+			}, &res);
-+
-+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS))
-+		return ffa_set_rxtx_buffers_pages_cnt(res.a2);
-+
-+	ffa_errno = res.a2;
-+	ffa_print_error_log(FFA_FEATURES, ffa_errno);
-+
-+	return ffa_to_std_errno(ffa_errno);
-+}
-+
-+/**
-+ * ffa_free_rxtx_buffers - frees the RX/TX buffers
-+ *
-+ * This  function  frees the RX/TX buffers
-+ *
-+ */
-+static void ffa_free_rxtx_buffers(void)
-+{
-+	ffa_info("Freeing RX/TX buffers");
-+
-+	if (ffa_priv_data->pair.rxbuf) {
-+		free((void *)ffa_priv_data->pair.rxbuf);
-+		ffa_priv_data->pair.rxbuf = 0;
-+	}
-+
-+	if (ffa_priv_data->pair.txbuf) {
-+		free((void *)ffa_priv_data->pair.txbuf);
-+		ffa_priv_data->pair.txbuf = 0;
-+	}
-+}
-+
-+/**
-+ * ffa_alloc_rxtx_buffers - allocates the RX/TX buffers
-+ *
-+ * This function is used by ffa_map_rxtx_buffers to allocate
-+ * the RX/TX buffers before mapping them. The allocated memory is physically
-+ * contiguous since memalign ends up calling malloc which allocates
-+ * contiguous memory in u-boot.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_alloc_rxtx_buffers(void)
-+{
-+	u64 bytes;
-+
-+	ffa_info("Using %lu 4KB page(s) for RX/TX buffers size",
-+		 ffa_priv_data->pair.rxtx_min_pages);
-+
-+	bytes = ffa_priv_data->pair.rxtx_min_pages * SZ_4K;
-+
-+	/*
-+	 * The alignment of the RX and TX buffers must be equal
-+	 * to the larger translation granule size
-+	 */
-+
-+	ffa_priv_data->pair.rxbuf = (u64)memalign(bytes, bytes);
-+	if (!ffa_priv_data->pair.rxbuf) {
-+		ffa_err("failure to allocate RX buffer");
-+		return -ENOBUFS;
-+	}
-+
-+	ffa_info("RX buffer at virtual address 0x%llx", ffa_priv_data->pair.rxbuf);
-+
-+	ffa_priv_data->pair.txbuf = (u64)memalign(bytes, bytes);
-+	if (!ffa_priv_data->pair.txbuf) {
-+		free((void *)ffa_priv_data->pair.rxbuf);
-+		ffa_priv_data->pair.rxbuf = 0;
-+		ffa_err("failure to allocate the TX buffer");
-+		return -ENOBUFS;
-+	}
-+
-+	ffa_info("TX buffer at virtual address 0x%llx", ffa_priv_data->pair.txbuf);
-+
-+	/*
-+	 * make sure the buffers are cleared before use
-+	 */
-+	memset((void *)ffa_priv_data->pair.rxbuf, 0, bytes);
-+	memset((void *)ffa_priv_data->pair.txbuf, 0, bytes);
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_map_rxtx_buffers - FFA_RXTX_MAP handler function
-+ *
-+ * This function implements FFA_RXTX_MAP FF-A function
-+ * to map the RX/TX buffers
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_map_rxtx_buffers(void)
-+{
-+	int ret;
-+	ffa_value_t res = {0};
-+	int ffa_errno;
-+
-+	ret = ffa_alloc_rxtx_buffers();
-+	if (ret)
-+		return ret;
-+
-+	/*
-+	 * we need to pass the physical addresses of the RX/TX buffers
-+	 * in u-boot physical/virtual mapping is 1:1
-+	 * no need to convert from virtual to physical
-+	 */
-+
-+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = FFA_SMC_64(FFA_RXTX_MAP),
-+			.a1 = ffa_priv_data->pair.txbuf,
-+			.a2 = ffa_priv_data->pair.rxbuf,
-+			.a3 = ffa_priv_data->pair.rxtx_min_pages,
-+			}, &res);
-+
-+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
-+		ffa_info("RX/TX buffers mapped");
-+		return 0;
-+	}
-+
-+	ffa_errno = res.a2;
-+	ffa_print_error_log(FFA_RXTX_MAP, ffa_errno);
-+
-+	ffa_free_rxtx_buffers();
-+
-+	return ffa_to_std_errno(ffa_errno);
-+}
-+
-+/**
-+ * ffa_unmap_rxtx_buffers - FFA_RXTX_UNMAP handler function
-+ *	@dev: The arm_ffa bus device
-+ *
-+ * This function implements FFA_RXTX_UNMAP FF-A function
-+ * to unmap the RX/TX buffers
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_unmap_rxtx_buffers(struct udevice *dev)
-+{
-+	ffa_value_t res = {0};
-+	int ffa_errno;
-+
-+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = FFA_SMC_32(FFA_RXTX_UNMAP),
-+			.a1 = PREP_SELF_ENDPOINT_ID(ffa_priv_data->id),
-+			}, &res);
-+
-+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
-+		ffa_free_rxtx_buffers();
-+		return 0;
-+	}
-+
-+	ffa_errno = res.a2;
-+	ffa_print_error_log(FFA_RXTX_UNMAP, ffa_errno);
-+
-+	return ffa_to_std_errno(ffa_errno);
-+}
-+
-+/**
-+ * ffa_release_rx_buffer - FFA_RX_RELEASE handler function
-+ *
-+ * This function invokes FFA_RX_RELEASE FF-A function
-+ * to release the ownership of the RX buffer
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_release_rx_buffer(void)
-+{
-+	ffa_value_t res = {0};
-+	int ffa_errno;
-+
-+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = FFA_SMC_32(FFA_RX_RELEASE),
-+			}, &res);
-+
-+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS))
-+		return 0;
-+
-+	ffa_errno = res.a2;
-+	ffa_print_error_log(FFA_RX_RELEASE, ffa_errno);
-+
-+	return ffa_to_std_errno(ffa_errno);
-+}
-+
-+/**
-+ * ffa_uuid_are_identical - checks whether two given UUIDs are identical
-+ * @uuid1: first UUID
-+ * @uuid2: second UUID
-+ *
-+ * This function is used by ffa_read_partitions_info to search
-+ * for a UUID in the partitions descriptors table
-+ *
-+ * Return:
-+ *
-+ * 1 when UUIDs match. Otherwise, 0
-+ */
-+bool ffa_uuid_are_identical(const struct ffa_partition_uuid *uuid1,
-+			    const struct ffa_partition_uuid *uuid2)
-+{
-+	if (!uuid1 || !uuid2)
-+		return 0;
-+
-+	return !memcmp(uuid1, uuid2, sizeof(struct ffa_partition_uuid));
-+}
-+
-+/**
-+ * ffa_read_partitions_info - reads the data queried by FFA_PARTITION_INFO_GET
-+ *							and saves it in the private structure
-+ * @count: The number of partitions queried
-+ * @part_uuid: Pointer to the partition(s) UUID
-+ *
-+ * This function reads the partitions information
-+ * returned by the FFA_PARTITION_INFO_GET and saves it in the private
-+ * data structure.
-+ *
-+ * Return:
-+ *
-+ * The private data structure is updated with the partition(s) information
-+ * 0 is returned on success. Otherwise, failure
-+ */
-+static int ffa_read_partitions_info(u32 count, struct ffa_partition_uuid *part_uuid)
-+{
-+	if (!count) {
-+		ffa_err("no partition detected");
-+		return -ENODATA;
-+	}
-+
-+	ffa_info("Reading partitions data from the RX buffer");
-+
-+	if (!part_uuid) {
-+		/*
-+		 * querying information of all partitions
-+		 */
-+		u64 buf_bytes;
-+		u64 data_bytes;
-+		u32 desc_idx;
-+		struct ffa_partition_info *parts_info;
-+
-+		data_bytes = count * sizeof(struct ffa_partition_desc);
-+
-+		buf_bytes = ffa_priv_data->pair.rxtx_min_pages * SZ_4K;
-+
-+		if (data_bytes > buf_bytes) {
-+			ffa_err("partitions data size exceeds the RX buffer size:");
-+			ffa_err("    sizes in bytes: data %llu , RX buffer %llu ",
-+				data_bytes,
-+				buf_bytes);
-+
-+			return -ENOMEM;
-+		}
-+
-+		ffa_priv_data->partitions.descs = devm_kmalloc(ffa_priv_data->dev, data_bytes,
-+							       __GFP_ZERO);
-+		if (!ffa_priv_data->partitions.descs) {
-+			ffa_err("cannot  allocate partitions data buffer");
-+			return -ENOMEM;
-+		}
-+
-+		parts_info = (struct ffa_partition_info *)ffa_priv_data->pair.rxbuf;
-+
-+		for (desc_idx = 0 ; desc_idx < count ; desc_idx++) {
-+			ffa_priv_data->partitions.descs[desc_idx].info =
-+				parts_info[desc_idx];
-+
-+			ffa_info("Partition ID %x : info cached",
-+				 ffa_priv_data->partitions.descs[desc_idx].info.id);
-+		}
-+
-+		ffa_priv_data->partitions.count = count;
-+
-+		ffa_info("%d partition(s) found and cached", count);
-+
-+	} else {
-+		u32 rx_desc_idx, cached_desc_idx;
-+		struct ffa_partition_info *parts_info;
-+		u8 desc_found;
-+
-+		parts_info = (struct ffa_partition_info *)ffa_priv_data->pair.rxbuf;
-+
-+		/*
-+		 * search for the SP IDs read from the RX buffer
-+		 * in the already cached SPs.
-+		 * Update the UUID when ID found.
-+		 */
-+		for (rx_desc_idx = 0; rx_desc_idx < count ; rx_desc_idx++) {
-+			desc_found = 0;
-+
-+			/*
-+			 * search the current ID in the cached partitions
-+			 */
-+			for (cached_desc_idx = 0;
-+			     cached_desc_idx < ffa_priv_data->partitions.count;
-+			     cached_desc_idx++) {
-+				/*
-+				 * save the UUID
-+				 */
-+				if (ffa_priv_data->partitions.descs[cached_desc_idx].info.id ==
-+				    parts_info[rx_desc_idx].id) {
-+					ffa_priv_data->partitions.descs[cached_desc_idx].sp_uuid =
-+						*part_uuid;
-+
-+					desc_found = 1;
-+					break;
-+				}
-+			}
-+
-+			if (!desc_found)
-+				return -ENODATA;
-+		}
-+	}
-+
-+	return  0;
-+}
-+
-+/**
-+ * ffa_query_partitions_info - invokes FFA_PARTITION_INFO_GET and saves partitions data
-+ *
-+ * @part_uuid: Pointer to the partition(s) UUID
-+ * @pcount: Pointer to the number of partitions variable filled when querying
-+ *
-+ * This function executes the FFA_PARTITION_INFO_GET
-+ * to query the partitions data. Then, it calls ffa_read_partitions_info
-+ * to save the data in the private data structure.
-+ *
-+ * After reading the data the RX buffer is released using ffa_release_rx_buffer
-+ *
-+ * Return:
-+ *
-+ * When part_uuid is NULL, all partitions data are retrieved from secure world
-+ * When part_uuid is non NULL, data for partitions matching the given UUID are
-+ * retrieved and the number of partitions is returned
-+ * 0 is returned on success. Otherwise, failure
-+ */
-+static int ffa_query_partitions_info(struct ffa_partition_uuid *part_uuid,
-+				     u32 *pcount)
-+{
-+	struct ffa_partition_uuid query_uuid = {0};
-+	ffa_value_t res = {0};
-+	int ffa_errno;
-+
-+	/*
-+	 * If a UUID is specified. Information for one or more
-+	 * partitions in the system is queried. Otherwise, information
-+	 * for all installed partitions is queried
-+	 */
-+
-+	if (part_uuid) {
-+		if (!pcount)
-+			return -EINVAL;
-+
-+		query_uuid = *part_uuid;
-+	} else if (pcount) {
-+		return -EINVAL;
-+	}
-+
-+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = FFA_SMC_32(FFA_PARTITION_INFO_GET),
-+			.a1 = query_uuid.a1,
-+			.a2 = query_uuid.a2,
-+			.a3 = query_uuid.a3,
-+			.a4 = query_uuid.a4,
-+			}, &res);
-+
-+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
-+		int ret;
-+
-+		/*
-+		 * res.a2 contains the count of partition information descriptors
-+		 * populated in the RX buffer
-+		 */
-+		if (res.a2) {
-+			ret = ffa_read_partitions_info((u32)res.a2, part_uuid);
-+			if (ret) {
-+				ffa_err("failed to read partition(s) data , error (%d)", ret);
-+				ffa_release_rx_buffer();
-+				return -EINVAL;
-+			}
-+		}
-+
-+		/*
-+		 * return the SP count (when querying using a UUID)
-+		 */
-+		if (pcount)
-+			*pcount = (u32)res.a2;
-+
-+		/*
-+		 * After calling FFA_PARTITION_INFO_GET the buffer ownership
-+		 * is assigned to the consumer (u-boot). So, we need to give
-+		 * the ownership back to the SPM or hypervisor
-+		 */
-+		ret = ffa_release_rx_buffer();
-+
-+		return ret;
-+	}
-+
-+	ffa_errno = res.a2;
-+	ffa_print_error_log(FFA_PARTITION_INFO_GET, ffa_errno);
-+
-+	return ffa_to_std_errno(ffa_errno);
-+}
-+
-+/**
-+ * ffa_get_partitions_info - FFA_PARTITION_INFO_GET handler function
-+ *
-+ * The passed arguments:
-+ * Mode 1: When getting from the driver the number of
-+ *	secure partitions:
-+ *	@uuid_str: pointer to the UUID string
-+ *	@sp_count: pointer to the variable that contains the number of partitions
-+ *			 The variable will be set by the driver
-+ *	@buffer: NULL
-+ *
-+ * Mode 2: When requesting the driver to return the
-+ *	partitions information:
-+ *	@dev: The arm_ffa bus device
-+ *	@uuid_str: pointer to the UUID string
-+ *	@sp_count: pointer to the variable that contains the number of empty partition descriptors
-+ *			 The variable will be read by the driver
-+ *	@buffer: pointer to SPs information buffer
-+ *		(allocated by the client and contains empty @sp_count descriptors).
-+ *		The buffer will be filled by the driver
-+ *
-+ * This function queries the secure partition data from
-+ * the private data structure. If not found, it invokes FFA_PARTITION_INFO_GET
-+ * FF-A function to query the partition information from secure world.
-+ *
-+ * A client of the FF-A driver should know the UUID of the service it wants to
-+ * access. It should use the UUID to request the FF-A driver to provide the
-+ * partition(s) information of the service. The FF-A driver uses
-+ * PARTITION_INFO_GET to obtain this information. This is implemented through
-+ * ffa_get_partitions_info function.
-+ * A new FFA_PARTITION_INFO_GET call is issued (first one performed through
-+ * ffa_cache_partitions_info) allowing to retrieve the partition(s) information.
-+ * They are not saved (already done). We only update the UUID in the cached area.
-+ * This assumes that partitions data does not change in the secure world.
-+ * Otherwise u-boot will have an outdated partition data. The benefit of caching
-+ * the information in the FF-A driver is to accommodate discovery after
-+ * ExitBootServices().
-+ *
-+ * When invoked through a client request, ffa_get_partitions_info should be
-+ * called twice. First call is to get from the driver the number of secure
-+ * partitions (SPs) associated to a particular UUID.
-+ * Then, the caller (client) allocates the buffer to host the SPs data and
-+ * issues a 2nd call. Then, the driver fills the SPs data in the pre-allocated
-+ * buffer.
-+ *
-+ * To achieve the mechanism described above, ffa_get_partitions_info uses the
-+ * following functions:
-+ *		ffa_read_partitions_info
-+ *		ffa_query_partitions_info
-+ *
-+ * Return:
-+ *
-+ * @sp_count: When pointing to the number of partitions variable, the number is
-+ * set by the driver.
-+ * When pointing to the partitions information buffer size, the buffer will be
-+ * filled by the driver.
-+ *
-+ * On success 0 is returned. Otherwise, failure
-+ */
-+static int ffa_get_partitions_info(struct udevice *dev, const char *uuid_str,
-+				   u32 *sp_count, struct ffa_partition_info *buffer)
-+{
-+	/*
-+	 * fill_data:
-+	 * 0: return the SP count
-+	 * 1: fill SP data and return it to the caller
-+	 */
-+	bool fill_data = 0;
-+	u32 desc_idx, client_desc_idx;
-+	struct ffa_partition_uuid part_uuid = {0};
-+	u32 sp_found = 0;
-+
-+	if (!ffa_priv_data->partitions.count || !ffa_priv_data->partitions.descs) {
-+		ffa_err("no partition installed");
-+		return -EINVAL;
-+	}
-+
-+	if (!uuid_str) {
-+		ffa_err("no UUID provided");
-+		return -EINVAL;
-+	}
-+
-+	if (!sp_count) {
-+		ffa_err("no size/count provided");
-+		return -EINVAL;
-+	}
-+
-+	if (uuid_str_to_le_bin(uuid_str, (unsigned char *)&part_uuid)) {
-+		ffa_err("invalid UUID");
-+		return -EINVAL;
-+	}
-+
-+	if (!buffer) {
-+		/* Mode 1: getting the number of secure partitions */
-+
-+		fill_data = 0;
-+
-+		ffa_info("Preparing for checking partitions count");
-+
-+	} else if (*sp_count) {
-+		/* Mode 2: retrieving the partitions information */
-+
-+		fill_data = 1;
-+
-+		client_desc_idx = 0;
-+
-+		ffa_info("Preparing for filling partitions info");
-+
-+	} else {
-+		ffa_err("invalid function arguments provided");
-+		return -EINVAL;
-+	}
-+
-+	ffa_info("Searching partitions using the provided UUID");
-+
-+	/*
-+	 * search in the cached partitions
-+	 */
-+	for (desc_idx = 0;
-+	     desc_idx < ffa_priv_data->partitions.count;
-+	     desc_idx++) {
-+		if (ffa_uuid_are_identical(&ffa_priv_data->partitions.descs[desc_idx].sp_uuid,
-+					   &part_uuid)) {
-+			ffa_info("Partition ID %x matches the provided UUID",
-+				 ffa_priv_data->partitions.descs[desc_idx].info.id);
-+
-+			sp_found++;
-+
-+			if (fill_data) {
-+				/*
-+				 * trying to fill the partition info in the input buffer
-+				 */
-+
-+				if (client_desc_idx < *sp_count) {
-+					buffer[client_desc_idx++] =
-+						ffa_priv_data->partitions.descs[desc_idx].info;
-+					continue;
-+				}
-+
-+				ffa_err("failed to fill the current descriptor client buffer full");
-+				return -ENOBUFS;
-+			}
-+		}
-+	}
-+
-+	if (!sp_found) {
-+		int ret;
-+
-+		ffa_info("No partition found. Querying framework ...");
-+
-+		ret = ffa_query_partitions_info(&part_uuid, &sp_found);
-+
-+		if (ret == 0) {
-+			if (!fill_data) {
-+				*sp_count = sp_found;
-+
-+				ffa_info("Number of partition(s) found matching the UUID: %d",
-+					 sp_found);
-+			} else {
-+				/*
-+				 * If SPs data detected, they are already in the private data
-+				 * structure, retry searching SP data again to return them
-+				 *  to the caller
-+				 */
-+				if (sp_found)
-+					ret = ffa_get_partitions_info(dev, uuid_str, sp_count,
-+								      buffer);
-+				else
-+					ret = -ENODATA;
-+			}
-+		}
-+
-+		return ret;
-+	}
-+
-+	/* partition(s) found */
-+	if (!fill_data)
-+		*sp_count = sp_found;
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_cache_partitions_info - Queries and saves all secure partitions data
-+ *
-+ * This function invokes FFA_PARTITION_INFO_GET FF-A
-+ * function to query from secure world all partitions information.
-+ *
-+ * The FFA_PARTITION_INFO_GET call is issued with nil UUID as an argument.
-+ * All installed partitions information are returned. We cache them in the
-+ * resident private data structure and we keep the UUID field empty
-+ * (in FF-A 1.0 UUID is not provided by the partition descriptor)
-+ *
-+ * This function is called at the device probing level.
-+ * ffa_cache_partitions_info uses ffa_query_partitions_info to get the data
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_cache_partitions_info(void)
-+{
-+	return ffa_query_partitions_info(NULL, NULL);
-+}
-+
-+/**
-+ * ffa_msg_send_direct_req - FFA_MSG_SEND_DIRECT_{REQ,RESP} handler function
-+ * @dev: The arm_ffa bus device
-+ * @dst_part_id: destination partition ID
-+ * @msg: pointer to the message data preallocated by the client (in/out)
-+ * @is_smc64: select 64-bit or 32-bit FF-A ABI
-+ *
-+ * This function implements FFA_MSG_SEND_DIRECT_{REQ,RESP}
-+ * FF-A functions.
-+ *
-+ * FFA_MSG_SEND_DIRECT_REQ is used to send the data to the secure partition.
-+ * The response from the secure partition is handled by reading the
-+ * FFA_MSG_SEND_DIRECT_RESP arguments.
-+ *
-+ * The maximum size of the data that can be exchanged is 40 bytes which is
-+ * sizeof(struct ffa_send_direct_data) as defined by the FF-A specification 1.0
-+ * in the section relevant to FFA_MSG_SEND_DIRECT_{REQ,RESP}
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_msg_send_direct_req(struct udevice *dev, u16 dst_part_id,
-+				   struct ffa_send_direct_data *msg, bool is_smc64)
-+{
-+	ffa_value_t res = {0};
-+	int ffa_errno;
-+	u64 req_mode, resp_mode;
-+
-+	if (!ffa_priv_data || !ffa_priv_data->invoke_ffa_fn)
-+		return -EINVAL;
-+
-+	/* No partition installed */
-+	if (!ffa_priv_data->partitions.count || !ffa_priv_data->partitions.descs)
-+		return -ENODEV;
-+
-+	if (is_smc64) {
-+		req_mode = FFA_SMC_64(FFA_MSG_SEND_DIRECT_REQ);
-+		resp_mode = FFA_SMC_64(FFA_MSG_SEND_DIRECT_RESP);
-+	} else {
-+		req_mode = FFA_SMC_32(FFA_MSG_SEND_DIRECT_REQ);
-+		resp_mode = FFA_SMC_32(FFA_MSG_SEND_DIRECT_RESP);
-+	}
-+
-+	ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = req_mode,
-+			.a1 = PREP_SELF_ENDPOINT_ID(ffa_priv_data->id) |
-+				PREP_PART_ENDPOINT_ID(dst_part_id),
-+			.a2 = 0,
-+			.a3 = msg->data0,
-+			.a4 = msg->data1,
-+			.a5 = msg->data2,
-+			.a6 = msg->data3,
-+			.a7 = msg->data4,
-+			}, &res);
-+
-+	while (res.a0 == FFA_SMC_32(FFA_INTERRUPT))
-+		ffa_priv_data->invoke_ffa_fn((ffa_value_t){
-+			.a0 = FFA_SMC_32(FFA_RUN),
-+			.a1 = res.a1,
-+			}, &res);
-+
-+	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
-+		/* Message sent with no response */
-+		return 0;
-+	}
-+
-+	if (res.a0 == resp_mode) {
-+		/*
-+		 * Message sent with response
-+		 * extract the return data
-+		 */
-+		msg->data0 = res.a3;
-+		msg->data1 = res.a4;
-+		msg->data2 = res.a5;
-+		msg->data3 = res.a6;
-+		msg->data4 = res.a7;
-+
-+		return 0;
-+	}
-+
-+	ffa_errno = res.a2;
-+	return ffa_to_std_errno(ffa_errno);
-+}
-+
-+/**
-+ * __arm_ffa_fn_smc - SMC wrapper
-+ * @args: FF-A ABI arguments to be copied to Xn registers
-+ * @res: FF-A ABI return data to be copied from Xn registers
-+ *
-+ * Calls low level SMC assembly function
-+ *
-+ * Return: void
-+ */
-+void __arm_ffa_fn_smc(ffa_value_t args, ffa_value_t *res)
-+{
-+	arm_smccc_1_2_smc(&args, res);
-+}
-+
-+/**
-+ * ffa_set_smc_conduit - Set the SMC conduit
-+ *
-+ * This function selects the SMC conduit by setting the driver invoke function
-+ * to SMC assembly function
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_set_smc_conduit(void)
-+{
-+	ffa_priv_data->invoke_ffa_fn = __arm_ffa_fn_smc;
-+
-+	if (!ffa_priv_data->invoke_ffa_fn) {
-+		ffa_err("failure to set the invoke function");
-+		return -EINVAL;
-+	}
-+
-+	ffa_info("Conduit is SMC");
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_set_bus_ops - Set the bus driver operations
-+ *
-+ * Setting the driver callbacks.
-+ *
-+ */
-+static void ffa_set_bus_ops(void)
-+{
-+	ffa_priv_data->ffa_ops.partition_info_get = ffa_get_partitions_info;
-+	ffa_priv_data->ffa_ops.sync_send_receive = ffa_msg_send_direct_req;
-+	ffa_priv_data->ffa_ops.rxtx_unmap = ffa_unmap_rxtx_buffers;
-+}
-+
-+/**
-+ * ffa_alloc_prvdata - allocate the driver main data structure and sets the device
-+ * @dev:	the arm_ffa device
-+ *
-+ * This function creates the main data structure embedding all the driver data.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_alloc_prvdata(struct udevice *dev)
-+{
-+	if (!dev) {
-+		ffa_err("no udevice found");
-+		return -ENODEV;
-+	}
-+
-+	/* The device is registered with the DM. Let's create the driver main data structure*/
-+
-+	ffa_priv_data = devm_kmalloc(dev, sizeof(struct ffa_prvdata), __GFP_ZERO);
-+	if (!ffa_priv_data) {
-+		ffa_err("can not allocate the driver main data structure");
-+		return -ENOMEM;
-+	}
-+
-+	ffa_priv_data->dev = dev;
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_probe - The driver probe function
-+ * @dev:	the arm_ffa device
-+ *
-+ * Probing is done at boot time and triggered by the uclass device discovery.
-+ * At probe level the following actions are done:
-+ *	- setting the conduit
-+ *	- querying the FF-A framework version
-+ *	- querying from secure world the u-boot endpoint ID
-+ *	- querying from secure world the supported features of FFA_RXTX_MAP
-+ *	- mapping the RX/TX buffers
-+ *	- querying from secure world all the partitions information
-+ *
-+ * All data queried from secure world is saved in the resident private data structure.
-+ *
-+ * The probe will fail if either FF-A framework is not detected or the
-+ * FF-A requests are not behaving correctly. This ensures that the
-+ * driver is not installed and its operations are not exported to the clients.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int ffa_probe(struct udevice *dev)
-+{
-+	int ret;
-+
-+	ret = ffa_alloc_prvdata(dev);
-+	if (ret != 0)
-+		return ret;
-+
-+	ffa_set_bus_ops();
-+
-+	ret = ffa_set_smc_conduit();
-+	if (ret != 0)
-+		return ret;
-+
-+	ret = ffa_get_version();
-+	if (ret != 0)
-+		return ret;
-+
-+	ret = ffa_get_endpoint_id();
-+	if (ret != 0)
-+		return ret;
-+
-+	ret = ffa_get_rxtx_map_features();
-+	if (ret != 0)
-+		return ret;
-+
-+	ret = ffa_map_rxtx_buffers();
-+	if (ret != 0)
-+		return ret;
-+
-+	ret = ffa_cache_partitions_info();
-+	if (ret != 0) {
-+		ffa_free_rxtx_buffers();
-+		return ret;
-+	}
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_remove - The driver remove function
-+ * @dev:	the arm_ffa device
-+ * When the device is about to be removed ,  unmap the RX/TX buffers and free the memory
-+ * Return:
-+ *
-+ * 0 on success.
-+ */
-+static int ffa_remove(struct udevice *dev)
-+{
-+	ffa_info("removing the device");
-+
-+	ffa_unmap_rxtx_buffers(dev);
-+
-+	if (ffa_priv_data->pair.rxbuf || ffa_priv_data->pair.txbuf)
-+		ffa_free_rxtx_buffers();
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_unbind - The driver unbind function
-+ * @dev:	the arm_ffa device
-+ * After the device is removed and memory freed the device is unbound
-+ * Return:
-+ *
-+ * 0 on success.
-+ */
-+static int ffa_unbind(struct udevice *dev)
-+{
-+	ffa_info("unbinding the device , private data already released");
-+
-+	ffa_priv_data = NULL;
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_bus_ops_get - bus driver operations getter
-+ *
-+ * Return:
-+ * This function returns a pointer to the driver operations structure
-+ */
-+const struct ffa_bus_ops *ffa_bus_ops_get(void)
-+{
-+	return &ffa_priv_data->ffa_ops;
-+}
-+
-+/**
-+ * ffa_bus_prvdata_get - bus driver private data getter
-+ *
-+ * Return:
-+ * This function returns a pointer to the main private data structure
-+ */
-+struct ffa_prvdata *ffa_bus_prvdata_get(void)
-+{
-+	return ffa_priv_data;
-+}
-+
-+/**
-+ * ffa_bus_discover - discover FF-A bus and probe arm_ffa device
-+ * @pdev: the address of a device pointer (to be filled when the arm_ffa bus device is created
-+ *       successfully)
-+ *
-+ * This function makes sure the FF-A bus is discoverable.
-+ * When probing succeeds FF-A discovery is done. The arm_ffa device is ready to use.
-+ *
-+ * When the bus was already discovered successfully the discovery will not run again.
-+ *
-+ * Arm FF-A transport is implemented through arm_ffa u-boot device managing the FF-A
-+ * communication.
-+ * All FF-A clients should use the arm_ffa device to use the FF-A transport.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+int ffa_bus_discover(struct udevice **pdev)
-+{
-+	int ret = 0;
-+
-+	if (!ffa_priv_data) {
-+		ret = ffa_device_get(pdev);
-+
-+	return ret;
-+}
-+
-+/**
-+ * Declaring the arm_ffa driver under UCLASS_FFA
-+ */
-+
-+U_BOOT_DRIVER(arm_ffa) = {
-+	.name		= FFA_DRV_NAME,
-+	.id		= UCLASS_FFA,
-+	.probe		= ffa_probe,
-+	.remove		= ffa_remove,
-+	.unbind		= ffa_unbind,
-+};
-diff --git a/include/arm_ffa.h b/include/arm_ffa.h
-new file mode 100644
-index 0000000000..74b16174c2
---- /dev/null
-+++ b/include/arm_ffa.h
-@@ -0,0 +1,97 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#ifndef __ARM_FFA_H
-+#define __ARM_FFA_H
-+
-+#include <linux/printk.h>
-+
-+/*
-+ * This header is public. It can be used by clients to access
-+ * data structures and definitions they need
-+ */
-+
-+/*
-+ * Macros for displaying logs
-+ */
-+
-+#define ffa_info(fmt, ...)  pr_info("[FFA] " fmt "\n", ##__VA_ARGS__)
-+#define ffa_err(fmt, ...)  pr_err("[FFA] " fmt "\n", ##__VA_ARGS__)
-+
-+/*
-+ * struct ffa_partition_info - Partition information descriptor
-+ * @id:	Partition ID
-+ * @exec_ctxt:	Execution context count
-+ * @properties:	Partition properties
-+ *
-+ * Data structure containing information about partitions instantiated in the system
-+ * This structure is filled with the data queried by FFA_PARTITION_INFO_GET
-+ */
-+struct ffa_partition_info {
-+	u16 id;
-+	u16 exec_ctxt;
-+/* partition supports receipt of direct requests */
-+#define FFA_PARTITION_DIRECT_RECV	BIT(0)
-+/* partition can send direct requests. */
-+#define FFA_PARTITION_DIRECT_SEND	BIT(1)
-+/* partition can send and receive indirect messages. */
-+#define FFA_PARTITION_INDIRECT_MSG	BIT(2)
-+	u32 properties;
-+};
-+
-+/*
-+ * struct ffa_send_direct_data - Data structure hosting the data
-+ *                                       used by FFA_MSG_SEND_DIRECT_{REQ,RESP}
-+ * @data0-4:	Data read/written from/to x3-x7 registers
-+ *
-+ * Data structure containing the data to be sent by FFA_MSG_SEND_DIRECT_REQ
-+ * or read from FFA_MSG_SEND_DIRECT_RESP
-+ */
-+
-+/* For use with FFA_MSG_SEND_DIRECT_{REQ,RESP} which pass data via registers */
-+struct ffa_send_direct_data {
-+	unsigned long data0; /* w3/x3 */
-+	unsigned long data1; /* w4/x4 */
-+	unsigned long data2; /* w5/x5 */
-+	unsigned long data3; /* w6/x6 */
-+	unsigned long data4; /* w7/x7 */
-+};
-+
-+struct udevice;
-+
-+/**
-+ * struct ffa_bus_ops - The driver operations structure
-+ * @partition_info_get:	callback for the FFA_PARTITION_INFO_GET
-+ * @sync_send_receive:	callback for the FFA_MSG_SEND_DIRECT_REQ
-+ * @rxtx_unmap:	callback for the FFA_RXTX_UNMAP
-+ *
-+ * The data structure providing all the operations supported by the driver.
-+ * This structure is EFI runtime resident.
-+ */
-+struct ffa_bus_ops {
-+	int (*partition_info_get)(struct udevice *dev, const char *uuid_str,
-+				  u32 *sp_count, struct ffa_partition_info *buffer);
-+	int (*sync_send_receive)(struct udevice *dev, u16 dst_part_id,
-+				 struct ffa_send_direct_data *msg,
-+				 bool is_smc64);
-+	int (*rxtx_unmap)(struct udevice *dev);
-+};
-+
-+/**
-+ * The device driver and the Uclass driver public functions
-+ */
-+
-+/**
-+ * ffa_bus_ops_get - driver operations getter
-+ */
-+const struct ffa_bus_ops *ffa_bus_ops_get(void);
-+
-+/**
-+ * ffa_bus_discover - discover FF-A bus and probes the arm_ffa device
-+ */
-+int ffa_bus_discover(struct udevice **pdev);
-+
-+#endif
-diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
-index 376f741cc2..fa08a66ac8 100644
---- a/include/dm/uclass-id.h
-+++ b/include/dm/uclass-id.h
-@@ -4,6 +4,9 @@
-  *
-  * (C) Copyright 2012
-  * Pavel Herrmann <morpheus.ibis@gmail.com>
-+ *
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-  */
- 
- #ifndef _DM_UCLASS_ID_H
-@@ -55,6 +58,7 @@ enum uclass_id {
- 	UCLASS_EFI_MEDIA,	/* Devices provided by UEFI firmware */
- 	UCLASS_ETH,		/* Ethernet device */
- 	UCLASS_ETH_PHY,		/* Ethernet PHY device */
-+	UCLASS_FFA,		/* Arm Firmware Framework for Armv8-A */
- 	UCLASS_FIRMWARE,	/* Firmware */
- 	UCLASS_FPGA,		/* FPGA device */
- 	UCLASS_FUZZING_ENGINE,	/* Fuzzing engine */
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-FF-A-v15-arm_ffa-introduce-Arm-FF-A-support.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-FF-A-v15-arm_ffa-introduce-Arm-FF-A-support.patch
new file mode 100644
index 0000000..f0d6763
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-FF-A-v15-arm_ffa-introduce-Arm-FF-A-support.patch
@@ -0,0 +1,2132 @@
+From e8b71ec24884a0c973ac663e6802ff529a8be349 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Mon, 17 Jul 2023 15:11:43 +0100
+Subject: [PATCH 04/33] FF-A v15: arm_ffa: introduce Arm FF-A support
+
+Add Arm FF-A support implementing Arm Firmware Framework for Armv8-A v1.0
+
+The Firmware Framework for Arm A-profile processors (FF-A v1.0) [1]
+describes interfaces (ABIs) that standardize communication
+between the Secure World and Normal World leveraging TrustZone
+technology.
+
+This driver uses 64-bit registers as per SMCCCv1.2 spec and comes
+on top of the SMCCC layer. The driver provides the FF-A ABIs needed for
+querying the FF-A framework from the secure world.
+
+The driver uses SMC32 calling convention which means using the first
+32-bit data of the Xn registers.
+
+All supported ABIs come with their 32-bit version except FFA_RXTX_MAP
+which has 64-bit version supported.
+
+Both 32-bit and 64-bit direct messaging are supported which allows both
+32-bit and 64-bit clients to use the FF-A bus.
+
+FF-A is a discoverable bus and similar to architecture features.
+FF-A bus is discovered using ARM_SMCCC_FEATURES mechanism performed
+by the PSCI driver.
+
+Clients are able to probe then use the FF-A bus by calling the DM class
+searching APIs (e.g: uclass_first_device).
+
+The Secure World is considered as one entity to communicate with
+using the FF-A bus. FF-A communication is handled by one device and
+one instance (the bus). This FF-A driver takes care of all the
+interactions between Normal world and Secure World.
+
+The driver exports its operations to be used by upper layers.
+
+Exported operations:
+
+- ffa_partition_info_get
+- ffa_sync_send_receive
+- ffa_rxtx_unmap
+
+Generic FF-A methods are implemented in the Uclass (arm-ffa-uclass.c).
+Arm specific methods are implemented in the Arm driver (arm-ffa.c).
+
+For more details please refer to the driver documentation [2].
+
+[1]: https://developer.arm.com/documentation/den0077/latest/
+[2]: doc/arch/arm64.ffa.rst
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
+---
+ MAINTAINERS                                   |    8 +
+ doc/arch/arm64.ffa.rst                        |  238 ++++
+ doc/arch/index.rst                            |    1 +
+ drivers/Makefile                              |    1 +
+ drivers/firmware/Kconfig                      |    1 +
+ drivers/firmware/arm-ffa/Kconfig              |   36 +
+ drivers/firmware/arm-ffa/Makefile             |    8 +
+ drivers/firmware/arm-ffa/arm-ffa-uclass.c     | 1065 +++++++++++++++++
+ drivers/firmware/arm-ffa/arm-ffa.c            |  104 ++
+ .../firmware/arm-ffa/sandbox_arm_ffa_priv.h   |   14 +
+ include/arm_ffa.h                             |  213 ++++
+ include/arm_ffa_priv.h                        |  246 ++++
+ include/dm/uclass-id.h                        |    6 +
+ 13 files changed, 1941 insertions(+)
+ create mode 100644 doc/arch/arm64.ffa.rst
+ create mode 100644 drivers/firmware/arm-ffa/Kconfig
+ create mode 100644 drivers/firmware/arm-ffa/Makefile
+ create mode 100644 drivers/firmware/arm-ffa/arm-ffa-uclass.c
+ create mode 100644 drivers/firmware/arm-ffa/arm-ffa.c
+ create mode 100644 drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h
+ create mode 100644 include/arm_ffa.h
+ create mode 100644 include/arm_ffa_priv.h
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index a1122afb01..9c5ebf312c 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -266,6 +266,14 @@ F:	drivers/net/cortina_ni.h
+ F:	drivers/net/phy/ca_phy.c
+ F:	configs/cortina_presidio-asic-pnand_defconfig
+ 
++ARM FF-A
++M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++S:	Maintained
++F:	doc/arch/arm64.ffa.rst
++F:	drivers/firmware/arm-ffa/
++F:	include/arm_ffa.h
++F:	include/sandbox_arm_ffa.h
++
+ ARM FREESCALE IMX
+ M:	Stefano Babic <sbabic@denx.de>
+ M:	Fabio Estevam <festevam@gmail.com>
+diff --git a/doc/arch/arm64.ffa.rst b/doc/arch/arm64.ffa.rst
+new file mode 100644
+index 0000000000..4f817f053c
+--- /dev/null
++++ b/doc/arch/arm64.ffa.rst
+@@ -0,0 +1,238 @@
++.. SPDX-License-Identifier: GPL-2.0+
++
++Arm FF-A Support
++================
++
++Summary
++-------
++
++FF-A stands for Firmware Framework for Arm A-profile processors.
++
++FF-A specifies interfaces that enable a pair of software execution environments aka partitions to
++communicate with each other. A partition could be a VM in the Normal or Secure world, an
++application in S-EL0, or a Trusted OS in S-EL1.
++
++The U-Boot FF-A support (the bus) implements the interfaces to communicate
++with partitions in the Secure world aka Secure partitions (SPs).
++
++The FF-A support specifically focuses on communicating with SPs that
++isolate portions of EFI runtime services that must run in a protected
++environment which is inaccessible by the Host OS or Hypervisor.
++Examples of such services are set/get variables.
++
++The FF-A support uses the SMC ABIs defined by the FF-A specification to:
++
++- Discover the presence of SPs of interest
++- Access an SP's service through communication protocols
++  e.g. EFI MM communication protocol
++
++At this stage of development only EFI boot-time services are supported.
++Runtime support will be added in future developments.
++
++The U-Boot FF-A support provides the following parts:
++
++- A Uclass driver providing generic FF-A methods.
++- An Arm FF-A device driver providing Arm-specific methods and reusing the Uclass methods.
++
++FF-A and SMC specifications
++-------------------------------------------
++
++The current implementation of the U-Boot FF-A support relies on
++`FF-A v1.0 specification`_ and uses SMC32 calling convention which
++means using the first 32-bit data of the Xn registers.
++
++At this stage we only need the FF-A v1.0 features.
++
++The FF-A support has been tested with OP-TEE which supports SMC32 calling
++convention.
++
++Hypervisors are supported if they are configured to trap SMC calls.
++
++The FF-A support uses 64-bit registers as per `SMC Calling Convention v1.2 specification`_.
++
++Supported hardware
++--------------------------------
++
++Aarch64 plaforms
++
++Configuration
++----------------------
++
++CONFIG_ARM_FFA_TRANSPORT
++    Enables the FF-A support. Turn this on if you want to use FF-A
++    communication.
++    When using an Arm 64-bit platform, the Arm FF-A driver will be used.
++
++FF-A ABIs under the hood
++---------------------------------------
++
++Invoking an FF-A ABI involves providing to the secure world/hypervisor the
++expected arguments from the ABI.
++
++On an Arm 64-bit platform, the ABI arguments are stored in x0 to x7 registers.
++Then, an SMC instruction is executed.
++
++At the secure side level or hypervisor the ABI is handled at a higher exception
++level and the arguments are read and processed.
++
++The response is put back through x0 to x7 registers and control is given back
++to the U-Boot Arm FF-A driver (non-secure world).
++
++The driver reads the response and processes it accordingly.
++
++This methodology applies to all the FF-A ABIs.
++
++FF-A bus discovery on Arm 64-bit platforms
++---------------------------------------------
++
++When CONFIG_ARM_FFA_TRANSPORT is enabled, the FF-A bus is considered as
++an architecture feature and discovered using ARM_SMCCC_FEATURES mechanism.
++This discovery mechanism is performed by the PSCI driver.
++
++The PSCI driver comes with a PSCI device tree node which is the root node for all
++architecture features including FF-A bus.
++
++::
++
++   => dm tree
++
++    Class     Index  Probed  Driver                Name
++   -----------------------------------------------------------
++   ...
++    firmware      0  [ + ]   psci                      |-- psci
++    ffa                   0  [   ]   arm_ffa               |   `-- arm_ffa
++   ...
++
++The PSCI driver is bound to the PSCI device and when probed it tries to discover
++the architecture features by calling a callback the features drivers provide.
++
++In case of FF-A, the callback is arm_ffa_is_supported() which tries to discover the
++FF-A framework by querying the FF-A framework version from secure world using
++FFA_VERSION ABI. When discovery is successful, the ARM_SMCCC_FEATURES
++mechanism creates a U-Boot device for the FF-A bus and binds the Arm FF-A driver
++with the device using device_bind_driver().
++
++At this stage the FF-A bus is registered with the DM and can be interacted with using
++the DM APIs.
++
++Clients are able to probe then use the FF-A bus by calling uclass_first_device().
++Please refer to the armffa command implementation as an example of how to probe
++and interact with the FF-A bus.
++
++When calling uclass_first_device(), the FF-A driver is probed and ends up calling
++ffa_do_probe() provided by the Uclass which does the following:
++
++    - saving the FF-A framework version in uc_priv
++    - querying from secure world the u-boot endpoint ID
++    - querying from secure world the supported features of FFA_RXTX_MAP
++    - mapping the RX/TX buffers
++    - querying from secure world all the partitions information
++
++When one of the above actions fails, probing fails and the driver stays not active
++and can be probed again if needed.
++
++Requirements for clients
++-------------------------------------
++
++When using the FF-A bus with EFI, clients must query the SPs they are looking for
++during EFI boot-time mode using the service UUID.
++
++The RX/TX buffers are only available at EFI boot-time. Querying partitions is
++done at boot time and data is cached for future use.
++
++RX/TX buffers should be unmapped before EFI runtime mode starts.
++The driver provides a bus operation for that called ffa_rxtx_unmap().
++
++The user should call ffa_rxtx_unmap() to unmap the RX/TX buffers when required
++(e.g: at efi_exit_boot_services()).
++
++The Linux kernel allocates its own RX/TX buffers. To be able to register these kernel buffers
++with secure world, the U-Boot's RX/TX buffers should be unmapped before EFI runtime starts.
++
++When invoking FF-A direct messaging, clients should specify which ABI protocol
++they want to use (32-bit vs 64-bit). Selecting the protocol means using
++the 32-bit or 64-bit version of FFA_MSG_SEND_DIRECT_{REQ, RESP}.
++The calling convention between U-Boot and the secure world stays the same: SMC32.
++
++Requirements for user drivers
++-------------------------------------
++
++Users who want to implement their custom FF-A device driver while reusing the FF-A Uclass can do so
++by implementing their own invoke_ffa_fn() in the user driver.
++
++The bus driver layer
++------------------------------
++
++FF-A support comes on top of the SMCCC layer and is implemented by the FF-A Uclass drivers/firmware/arm-ffa/arm-ffa-uclass.c
++
++The following features are provided:
++
++- Support for the 32-bit version of the following ABIs:
++
++    - FFA_VERSION
++    - FFA_ID_GET
++    - FFA_FEATURES
++    - FFA_PARTITION_INFO_GET
++    - FFA_RXTX_UNMAP
++    - FFA_RX_RELEASE
++    - FFA_RUN
++    - FFA_ERROR
++    - FFA_SUCCESS
++    - FFA_INTERRUPT
++    - FFA_MSG_SEND_DIRECT_REQ
++    - FFA_MSG_SEND_DIRECT_RESP
++
++- Support for the 64-bit version of the following ABIs:
++
++    - FFA_RXTX_MAP
++    - FFA_MSG_SEND_DIRECT_REQ
++    - FFA_MSG_SEND_DIRECT_RESP
++
++- Processing the received data from the secure world/hypervisor and caching it
++
++- Hiding from upper layers the FF-A protocol and registers details. Upper
++  layers focus on exchanged data, FF-A support takes care of how to transport
++  that to the secure world/hypervisor using FF-A
++
++- FF-A support provides driver operations to be used by upper layers:
++
++    - ffa_partition_info_get
++    - ffa_sync_send_receive
++    - ffa_rxtx_unmap
++
++- FF-A bus discovery makes sure FF-A framework is responsive and compatible
++  with the driver
++
++- FF-A bus can be compiled and used without EFI
++
++Example of boot logs with FF-A enabled
++--------------------------------------
++
++For example, when using FF-A with Corstone-1000 the logs are as follows:
++
++::
++
++   U-Boot 2023.01 (May 10 2023 - 11:08:07 +0000) corstone1000 aarch64
++
++   DRAM:  2 GiB
++   Arm FF-A framework discovery
++   FF-A driver 1.0
++   FF-A framework 1.0
++   FF-A versions are compatible
++   ...
++   FF-A driver 1.0
++   FF-A framework 1.0
++   FF-A versions are compatible
++   EFI: MM partition ID 0x8003
++   ...
++   EFI stub: Booting Linux Kernel...
++   ...
++   Linux version 6.1.9-yocto-standard (oe-user@oe-host) (aarch64-poky-linux-musl-gcc (GCC) 12.2.0, GNU ld (GNU Binutils) 2.40.202301193
++   Machine model: ARM Corstone1000 FPGA MPS3 board
++
++Contributors
++------------
++   * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++
++.. _`FF-A v1.0 specification`: https://documentation-service.arm.com/static/5fb7e8a6ca04df4095c1d65e
++.. _`SMC Calling Convention v1.2 specification`: https://documentation-service.arm.com/static/5f8edaeff86e16515cdbe4c6
+diff --git a/doc/arch/index.rst b/doc/arch/index.rst
+index b8da4b8c8e..2f916f4026 100644
+--- a/doc/arch/index.rst
++++ b/doc/arch/index.rst
+@@ -8,6 +8,7 @@ Architecture-specific doc
+ 
+    arc
+    arm64
++   arm64.ffa
+    m68k
+    mips
+    nios2
+diff --git a/drivers/Makefile b/drivers/Makefile
+index 29be78a3f2..6094fac50d 100644
+--- a/drivers/Makefile
++++ b/drivers/Makefile
+@@ -114,6 +114,7 @@ obj-y += iommu/
+ obj-y += smem/
+ obj-y += thermal/
+ obj-$(CONFIG_TEE) += tee/
++obj-$(CONFIG_ARM_FFA_TRANSPORT) += firmware/arm-ffa/
+ obj-y += axi/
+ obj-y += ufs/
+ obj-$(CONFIG_W1) += w1/
+diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
+index eae1c8ddc9..8789b1ea14 100644
+--- a/drivers/firmware/Kconfig
++++ b/drivers/firmware/Kconfig
+@@ -45,4 +45,5 @@ config ARM_SMCCC_FEATURES
+ 	  the PSCI driver is always probed and binds dirvers registered to the Arm SMCCC
+ 	  services if any and reported as supported by the SMCCC firmware.
+ 
++source "drivers/firmware/arm-ffa/Kconfig"
+ source "drivers/firmware/scmi/Kconfig"
+diff --git a/drivers/firmware/arm-ffa/Kconfig b/drivers/firmware/arm-ffa/Kconfig
+new file mode 100644
+index 0000000000..9200c8028b
+--- /dev/null
++++ b/drivers/firmware/arm-ffa/Kconfig
+@@ -0,0 +1,36 @@
++# SPDX-License-Identifier: GPL-2.0
++
++config ARM_FFA_TRANSPORT
++	bool "Enable Arm Firmware Framework for Armv8-A driver"
++	depends on DM && ARM64
++	select ARM_SMCCC
++	select ARM_SMCCC_FEATURES
++	select LIB_UUID
++	select DEVRES
++	help
++	  The Firmware Framework for Arm A-profile processors (FF-A)
++	  describes interfaces (ABIs) that standardize communication
++	  between the Secure World and Normal World leveraging TrustZone
++	  technology.
++
++	  The FF-A support in U-Boot is based on FF-A specification v1.0 and uses SMC32
++	  calling convention.
++
++	  FF-A specification:
++
++	  https://developer.arm.com/documentation/den0077/a/?lang=en
++
++	  In U-Boot FF-A design, FF-A is considered as a discoverable bus.
++	  FF-A bus is discovered using ARM_SMCCC_FEATURES mechanism performed
++	  by the PSCI driver.
++	  The Secure World is considered as one entity to communicate with
++	  using the FF-A bus.
++	  FF-A communication is handled by one device and one instance (the bus).
++	  The FF-A support on U-Boot  takes care of all the interactions between Normal
++	  world and Secure World.
++
++	  Generic FF-A methods are implemented in the Uclass (arm-ffa-uclass.c).
++	  Arm specific methods are implemented in the Arm driver (arm-ffa.c).
++
++	  For more details about the FF-A support, please refer to doc/arch/arm64.ffa.rst
++
+diff --git a/drivers/firmware/arm-ffa/Makefile b/drivers/firmware/arm-ffa/Makefile
+new file mode 100644
+index 0000000000..11b1766285
+--- /dev/null
++++ b/drivers/firmware/arm-ffa/Makefile
+@@ -0,0 +1,8 @@
++# SPDX-License-Identifier: GPL-2.0+
++#
++# Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++#
++# Authors:
++#   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++
++obj-y += arm-ffa-uclass.o arm-ffa.o
+diff --git a/drivers/firmware/arm-ffa/arm-ffa-uclass.c b/drivers/firmware/arm-ffa/arm-ffa-uclass.c
+new file mode 100644
+index 0000000000..ffa9d81fa7
+--- /dev/null
++++ b/drivers/firmware/arm-ffa/arm-ffa-uclass.c
+@@ -0,0 +1,1065 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++#include <common.h>
++#include <arm_ffa.h>
++#include <arm_ffa_priv.h>
++#include <dm.h>
++#include <log.h>
++#include <malloc.h>
++#include <string.h>
++#include <uuid.h>
++#include <asm/global_data.h>
++#include <dm/device-internal.h>
++#include <dm/devres.h>
++#include <dm/root.h>
++#include <linux/errno.h>
++#include <linux/sizes.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++/* Error mapping declarations */
++
++int ffa_to_std_errmap[MAX_NUMBER_FFA_ERR] = {
++	[NOT_SUPPORTED] = -EOPNOTSUPP,
++	[INVALID_PARAMETERS] = -EINVAL,
++	[NO_MEMORY] = -ENOMEM,
++	[BUSY] = -EBUSY,
++	[INTERRUPTED] = -EINTR,
++	[DENIED] = -EACCES,
++	[RETRY] = -EAGAIN,
++	[ABORTED] = -ECANCELED,
++};
++
++static struct ffa_abi_errmap err_msg_map[FFA_ERRMAP_COUNT] = {
++	[FFA_ID_TO_ERRMAP_ID(FFA_VERSION)] = {
++		{
++			[NOT_SUPPORTED] =
++			"NOT_SUPPORTED: A Firmware Framework implementation does not exist",
++		},
++	},
++	[FFA_ID_TO_ERRMAP_ID(FFA_ID_GET)] = {
++		{
++			[NOT_SUPPORTED] =
++			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
++		},
++	},
++	[FFA_ID_TO_ERRMAP_ID(FFA_FEATURES)] = {
++		{
++			[NOT_SUPPORTED] =
++			"NOT_SUPPORTED: FFA_RXTX_MAP is not implemented at this FF-A instance",
++		},
++	},
++	[FFA_ID_TO_ERRMAP_ID(FFA_PARTITION_INFO_GET)] = {
++		{
++			[NOT_SUPPORTED] =
++			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
++			[INVALID_PARAMETERS] =
++			"INVALID_PARAMETERS: Unrecognized UUID",
++			[NO_MEMORY] =
++			"NO_MEMORY: Results cannot fit in RX buffer of the caller",
++			[BUSY] =
++			"BUSY: RX buffer of the caller is not free",
++			[DENIED] =
++			"DENIED: Callee is not in a state to handle this request",
++		},
++	},
++	[FFA_ID_TO_ERRMAP_ID(FFA_RXTX_UNMAP)] = {
++		{
++			[NOT_SUPPORTED] =
++			"NOT_SUPPORTED: FFA_RXTX_UNMAP is not implemented at this FF-A instance",
++			[INVALID_PARAMETERS] =
++			"INVALID_PARAMETERS: No buffer pair registered on behalf of the caller",
++		},
++	},
++	[FFA_ID_TO_ERRMAP_ID(FFA_RX_RELEASE)] = {
++		{
++			[NOT_SUPPORTED] =
++			"NOT_SUPPORTED: FFA_RX_RELEASE is not implemented at this FF-A instance",
++			[DENIED] =
++			"DENIED: Caller did not have ownership of the RX buffer",
++		},
++	},
++	[FFA_ID_TO_ERRMAP_ID(FFA_RXTX_MAP)] = {
++		{
++			[NOT_SUPPORTED] =
++			"NOT_SUPPORTED: This function is not implemented at this FF-A instance",
++			[INVALID_PARAMETERS] =
++			"INVALID_PARAMETERS: Field(s) in input parameters incorrectly encoded",
++			[NO_MEMORY] =
++			"NO_MEMORY: Not enough memory",
++			[DENIED] =
++			"DENIED: Buffer pair already registered",
++		},
++	},
++};
++
++/**
++ * ffa_to_std_errno() - convert FF-A error code to standard error code
++ * @ffa_errno:	Error code returned by the FF-A ABI
++ *
++ * Map the given FF-A error code as specified
++ * by the spec to a u-boot standard error code.
++ *
++ * Return:
++ *
++ * The standard error code on success. . Otherwise, failure
++ */
++static int ffa_to_std_errno(int ffa_errno)
++{
++	int err_idx = -ffa_errno;
++
++	/* Map the FF-A error code to the standard u-boot error code */
++	if (err_idx > 0 && err_idx < MAX_NUMBER_FFA_ERR)
++		return ffa_to_std_errmap[err_idx];
++	return -EINVAL;
++}
++
++/**
++ * ffa_print_error_log() - print the error log corresponding to the selected FF-A ABI
++ * @ffa_id:	FF-A ABI ID
++ * @ffa_errno:	Error code returned by the FF-A ABI
++ *
++ * Map the FF-A error code to the error log relevant to the
++ * selected FF-A ABI. Then the error log is printed.
++ *
++ * Return:
++ *
++ * 0 on success. . Otherwise, failure
++ */
++static int ffa_print_error_log(u32 ffa_id, int ffa_errno)
++{
++	int err_idx = -ffa_errno, abi_idx = 0;
++
++	/* Map the FF-A error code to the corresponding error log */
++
++	if (err_idx <= 0 || err_idx >= MAX_NUMBER_FFA_ERR)
++		return -EINVAL;
++
++	if (ffa_id < FFA_FIRST_ID || ffa_id > FFA_LAST_ID)
++		return -EINVAL;
++
++	abi_idx = FFA_ID_TO_ERRMAP_ID(ffa_id);
++	if (abi_idx < 0 || abi_idx >= FFA_ERRMAP_COUNT)
++		return -EINVAL;
++
++	if (!err_msg_map[abi_idx].err_str[err_idx])
++		return -EINVAL;
++
++	log_err("%s\n", err_msg_map[abi_idx].err_str[err_idx]);
++
++	return 0;
++}
++
++/* FF-A ABIs implementation (U-Boot side) */
++
++/**
++ * invoke_ffa_fn() - SMC wrapper
++ * @args: FF-A ABI arguments to be copied to Xn registers
++ * @res: FF-A ABI return data to be copied from Xn registers
++ *
++ * Calls low level SMC implementation.
++ * This function should be implemented by the user driver.
++ */
++void __weak invoke_ffa_fn(ffa_value_t args, ffa_value_t *res)
++{
++}
++
++/**
++ * ffa_get_version_hdlr() - FFA_VERSION handler function
++ * @dev: The FF-A bus device
++ *
++ * Implement FFA_VERSION FF-A function
++ * to get from the secure world the FF-A framework version
++ * FFA_VERSION is used to discover the FF-A framework.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_get_version_hdlr(struct udevice *dev)
++{
++	u16 major, minor;
++	ffa_value_t res = {0};
++	int ffa_errno;
++	struct ffa_priv *uc_priv;
++
++	invoke_ffa_fn((ffa_value_t){
++			.a0 = FFA_SMC_32(FFA_VERSION), .a1 = FFA_VERSION_1_0,
++			}, &res);
++
++	ffa_errno = res.a0;
++	if (ffa_errno < 0) {
++		ffa_print_error_log(FFA_VERSION, ffa_errno);
++		return ffa_to_std_errno(ffa_errno);
++	}
++
++	major = GET_FFA_MAJOR_VERSION(res.a0);
++	minor = GET_FFA_MINOR_VERSION(res.a0);
++
++	log_info("FF-A driver %d.%d\nFF-A framework %d.%d\n",
++		 FFA_MAJOR_VERSION, FFA_MINOR_VERSION, major, minor);
++
++	if (major == FFA_MAJOR_VERSION && minor >= FFA_MINOR_VERSION) {
++		log_info("FF-A versions are compatible\n");
++
++		if (dev) {
++			uc_priv = dev_get_uclass_priv(dev);
++			if (uc_priv)
++				uc_priv->fwk_version = res.a0;
++		}
++
++		return 0;
++	}
++
++	log_err("versions are incompatible\nExpected: %d.%d , Found: %d.%d\n",
++		FFA_MAJOR_VERSION, FFA_MINOR_VERSION, major, minor);
++
++	return -EPROTONOSUPPORT;
++}
++
++/**
++ * ffa_get_endpoint_id() - FFA_ID_GET handler function
++ * @dev: The FF-A bus device
++ *
++ * Implement FFA_ID_GET FF-A function
++ * to get from the secure world u-boot endpoint ID
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_get_endpoint_id(struct udevice *dev)
++{
++	ffa_value_t res = {0};
++	int ffa_errno;
++	struct ffa_priv *uc_priv = dev_get_uclass_priv(dev);
++
++	invoke_ffa_fn((ffa_value_t){
++			.a0 = FFA_SMC_32(FFA_ID_GET),
++			}, &res);
++
++	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
++		uc_priv->id = GET_SELF_ENDPOINT_ID((u32)res.a2);
++		log_debug("FF-A endpoint ID is %u\n", uc_priv->id);
++
++		return 0;
++	}
++
++	ffa_errno = res.a2;
++
++	ffa_print_error_log(FFA_ID_GET, ffa_errno);
++
++	return ffa_to_std_errno(ffa_errno);
++}
++
++/**
++ * ffa_set_rxtx_buffers_pages_cnt() - set the minimum number of pages in each of the RX/TX buffers
++ * @dev: The FF-A bus device
++ * @prop_field: properties field obtained from FFA_FEATURES ABI
++ *
++ * Set the minimum number of pages in each of the RX/TX buffers in uc_priv
++ *
++ * Return:
++ *
++ * rxtx_min_pages field contains the returned number of pages
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_set_rxtx_buffers_pages_cnt(struct udevice *dev, u32 prop_field)
++{
++	struct ffa_priv *uc_priv = dev_get_uclass_priv(dev);
++
++	switch (prop_field) {
++	case RXTX_4K:
++		uc_priv->pair.rxtx_min_pages = 1;
++		break;
++	case RXTX_16K:
++		uc_priv->pair.rxtx_min_pages = 4;
++		break;
++	case RXTX_64K:
++		uc_priv->pair.rxtx_min_pages = 16;
++		break;
++	default:
++		log_err("RX/TX buffer size not supported\n");
++		return -EINVAL;
++	}
++
++	return 0;
++}
++
++/**
++ * ffa_get_rxtx_map_features_hdlr() - FFA_FEATURES handler function with FFA_RXTX_MAP argument
++ * @dev: The FF-A bus device
++ *
++ * Implement FFA_FEATURES FF-A function to retrieve the FFA_RXTX_MAP features
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_get_rxtx_map_features_hdlr(struct udevice *dev)
++{
++	ffa_value_t res = {0};
++	int ffa_errno;
++
++	invoke_ffa_fn((ffa_value_t){
++			.a0 = FFA_SMC_32(FFA_FEATURES),
++			.a1 = FFA_SMC_64(FFA_RXTX_MAP),
++			}, &res);
++
++	if (res.a0 == FFA_SMC_32(FFA_SUCCESS))
++		return ffa_set_rxtx_buffers_pages_cnt(dev, res.a2);
++
++	ffa_errno = res.a2;
++	ffa_print_error_log(FFA_FEATURES, ffa_errno);
++
++	return ffa_to_std_errno(ffa_errno);
++}
++
++/**
++ * ffa_free_rxtx_buffers() - free the RX/TX buffers
++ * @dev: The FF-A bus device
++ *
++ * Free the RX/TX buffers
++ */
++static void ffa_free_rxtx_buffers(struct udevice *dev)
++{
++	struct ffa_priv *uc_priv = dev_get_uclass_priv(dev);
++
++	log_debug("Freeing FF-A RX/TX buffers\n");
++
++	if (uc_priv->pair.rxbuf) {
++		free(uc_priv->pair.rxbuf);
++		uc_priv->pair.rxbuf = NULL;
++	}
++
++	if (uc_priv->pair.txbuf) {
++		free(uc_priv->pair.txbuf);
++		uc_priv->pair.txbuf = NULL;
++	}
++}
++
++/**
++ * ffa_alloc_rxtx_buffers() - allocate the RX/TX buffers
++ * @dev: The FF-A bus device
++ *
++ * Used by ffa_map_rxtx_buffers to allocate
++ * the RX/TX buffers before mapping them. The allocated memory is physically
++ * contiguous since memalign ends up calling malloc which allocates
++ * contiguous memory in u-boot.
++ * The size of the memory allocated is the minimum allowed.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_alloc_rxtx_buffers(struct udevice *dev)
++{
++	u64 bytes;
++	struct ffa_priv *uc_priv = dev_get_uclass_priv(dev);
++
++	log_debug("Using %lu 4KB page(s) for FF-A RX/TX buffers size\n",
++		  uc_priv->pair.rxtx_min_pages);
++
++	bytes = uc_priv->pair.rxtx_min_pages * SZ_4K;
++
++	/*
++	 * The alignment of the RX and TX buffers must be equal
++	 * to the larger translation granule size
++	 * Assumption: Memory allocated with memalign is always physically contiguous
++	 */
++
++	uc_priv->pair.rxbuf = memalign(bytes, bytes);
++	if (!uc_priv->pair.rxbuf) {
++		log_err("failure to allocate RX buffer\n");
++		return -ENOBUFS;
++	}
++
++	log_debug("FF-A RX buffer at virtual address %p\n", uc_priv->pair.rxbuf);
++
++	uc_priv->pair.txbuf = memalign(bytes, bytes);
++	if (!uc_priv->pair.txbuf) {
++		free(uc_priv->pair.rxbuf);
++		uc_priv->pair.rxbuf = NULL;
++		log_err("failure to allocate the TX buffer\n");
++		return -ENOBUFS;
++	}
++
++	log_debug("FF-A TX buffer at virtual address %p\n", uc_priv->pair.txbuf);
++
++	/* Make sure the buffers are cleared before use */
++	memset(uc_priv->pair.rxbuf, 0, bytes);
++	memset(uc_priv->pair.txbuf, 0, bytes);
++
++	return 0;
++}
++
++/**
++ * ffa_map_rxtx_buffers_hdlr() - FFA_RXTX_MAP handler function
++ * @dev: The FF-A bus device
++ *
++ * Implement FFA_RXTX_MAP FF-A function to map the RX/TX buffers
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_map_rxtx_buffers_hdlr(struct udevice *dev)
++{
++	int ret;
++	ffa_value_t res = {0};
++	int ffa_errno;
++	struct ffa_priv *uc_priv = dev_get_uclass_priv(dev);
++
++	ret = ffa_alloc_rxtx_buffers(dev);
++	if (ret)
++		return ret;
++
++	/*
++	 * we need to pass the physical addresses of the RX/TX buffers
++	 * in u-boot physical/virtual mapping is 1:1
++	 * no need to convert from virtual to physical
++	 */
++
++	invoke_ffa_fn((ffa_value_t){
++			.a0 = FFA_SMC_64(FFA_RXTX_MAP),
++			.a1 = map_to_sysmem(uc_priv->pair.txbuf),
++			.a2 = map_to_sysmem(uc_priv->pair.rxbuf),
++			.a3 = uc_priv->pair.rxtx_min_pages,
++			}, &res);
++
++	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
++		log_debug("FF-A RX/TX buffers mapped\n");
++		return 0;
++	}
++
++	ffa_errno = res.a2;
++	ffa_print_error_log(FFA_RXTX_MAP, ffa_errno);
++
++	ffa_free_rxtx_buffers(dev);
++
++	return ffa_to_std_errno(ffa_errno);
++}
++
++/**
++ * ffa_unmap_rxtx_buffers_hdlr() - FFA_RXTX_UNMAP handler function
++ * @dev: The FF-A bus device
++ *
++ * Implement FFA_RXTX_UNMAP FF-A function to unmap the RX/TX buffers
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_unmap_rxtx_buffers_hdlr(struct udevice *dev)
++{
++	ffa_value_t res = {0};
++	int ffa_errno;
++	struct ffa_priv *uc_priv;
++
++	log_debug("unmapping FF-A RX/TX buffers\n");
++
++	uc_priv = dev_get_uclass_priv(dev);
++
++	invoke_ffa_fn((ffa_value_t){
++			.a0 = FFA_SMC_32(FFA_RXTX_UNMAP),
++			.a1 = PREP_SELF_ENDPOINT_ID(uc_priv->id),
++			}, &res);
++
++	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
++		ffa_free_rxtx_buffers(dev);
++		return 0;
++	}
++
++	ffa_errno = res.a2;
++	ffa_print_error_log(FFA_RXTX_UNMAP, ffa_errno);
++
++	return ffa_to_std_errno(ffa_errno);
++}
++
++/**
++ * ffa_release_rx_buffer_hdlr() - FFA_RX_RELEASE handler function
++ * @dev: The FF-A bus device
++ *
++ * Invoke FFA_RX_RELEASE FF-A function to release the ownership of the RX buffer
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_release_rx_buffer_hdlr(struct udevice *dev)
++{
++	ffa_value_t res = {0};
++	int ffa_errno;
++
++	invoke_ffa_fn((ffa_value_t){
++			.a0 = FFA_SMC_32(FFA_RX_RELEASE),
++			}, &res);
++
++	if (res.a0 == FFA_SMC_32(FFA_SUCCESS))
++		return 0;
++
++	ffa_errno = res.a2;
++	ffa_print_error_log(FFA_RX_RELEASE, ffa_errno);
++
++	return ffa_to_std_errno(ffa_errno);
++}
++
++/**
++ * ffa_uuid_are_identical() - check whether two given UUIDs are identical
++ * @uuid1: first UUID
++ * @uuid2: second UUID
++ *
++ * Used by ffa_read_partitions_info to search for a UUID in the partitions descriptors table
++ *
++ * Return:
++ *
++ * 1 when UUIDs match. Otherwise, 0
++ */
++static bool ffa_uuid_are_identical(const struct ffa_partition_uuid *uuid1,
++				   const struct ffa_partition_uuid *uuid2)
++{
++	if (!uuid1 || !uuid2)
++		return 0;
++
++	return !memcmp(uuid1, uuid2, sizeof(struct ffa_partition_uuid));
++}
++
++/**
++ * ffa_read_partitions_info() - read queried partition data
++ * @dev: The FF-A bus device
++ * @count: The number of partitions queried
++ * @part_uuid: Pointer to the partition(s) UUID
++ *
++ * Read the partitions information returned by the FFA_PARTITION_INFO_GET and saves it in uc_priv
++ *
++ * Return:
++ *
++ * uc_priv is updated with the partition(s) information
++ * 0 is returned on success. Otherwise, failure
++ */
++static int ffa_read_partitions_info(struct udevice *dev, u32 count,
++				    struct ffa_partition_uuid *part_uuid)
++{
++	struct ffa_priv *uc_priv = dev_get_uclass_priv(dev);
++
++	if (!count) {
++		log_err("no partition detected\n");
++		return -ENODATA;
++	}
++
++	log_debug("Reading FF-A partitions data from the RX buffer\n");
++
++	if (!part_uuid) {
++		/* Querying information of all partitions */
++		u64 buf_bytes;
++		u64 data_bytes;
++		u32 desc_idx;
++		struct ffa_partition_info *parts_info;
++
++		data_bytes = count * sizeof(struct ffa_partition_desc);
++
++		buf_bytes = uc_priv->pair.rxtx_min_pages * SZ_4K;
++
++		if (data_bytes > buf_bytes) {
++			log_err("partitions data size exceeds the RX buffer size:\n");
++			log_err("    sizes in bytes: data %llu , RX buffer %llu\n",
++				data_bytes,
++				buf_bytes);
++
++			return -ENOMEM;
++		}
++
++		uc_priv->partitions.descs = devm_kmalloc(dev, data_bytes, __GFP_ZERO);
++		if (!uc_priv->partitions.descs) {
++			log_err("cannot  allocate partitions data buffer\n");
++			return -ENOMEM;
++		}
++
++		parts_info = uc_priv->pair.rxbuf;
++
++		for (desc_idx = 0 ; desc_idx < count ; desc_idx++) {
++			uc_priv->partitions.descs[desc_idx].info =
++				parts_info[desc_idx];
++
++			log_debug("FF-A partition ID %x : info cached\n",
++				  uc_priv->partitions.descs[desc_idx].info.id);
++		}
++
++		uc_priv->partitions.count = count;
++
++		log_debug("%d FF-A partition(s) found and cached\n", count);
++
++	} else {
++		u32 rx_desc_idx, cached_desc_idx;
++		struct ffa_partition_info *parts_info;
++		u8 desc_found;
++
++		parts_info = uc_priv->pair.rxbuf;
++
++		/*
++		 * Search for the SP IDs read from the RX buffer
++		 * in the already cached SPs.
++		 * Update the UUID when ID found.
++		 */
++		for (rx_desc_idx = 0; rx_desc_idx < count ; rx_desc_idx++) {
++			desc_found = 0;
++
++			/* Search the current ID in the cached partitions */
++			for (cached_desc_idx = 0;
++			     cached_desc_idx < uc_priv->partitions.count;
++			     cached_desc_idx++) {
++				/* Save the UUID */
++				if (uc_priv->partitions.descs[cached_desc_idx].info.id ==
++				    parts_info[rx_desc_idx].id) {
++					uc_priv->partitions.descs[cached_desc_idx].sp_uuid =
++						*part_uuid;
++
++					desc_found = 1;
++					break;
++				}
++			}
++
++			if (!desc_found)
++				return -ENODATA;
++		}
++	}
++
++	return  0;
++}
++
++/**
++ * ffa_query_partitions_info() - invoke FFA_PARTITION_INFO_GET and save partitions data
++ * @dev: The FF-A bus device
++ * @part_uuid: Pointer to the partition(s) UUID
++ * @pcount: Pointer to the number of partitions variable filled when querying
++ *
++ * Execute the FFA_PARTITION_INFO_GET to query the partitions data.
++ * Then, call ffa_read_partitions_info to save the data in uc_priv.
++ *
++ * After reading the data the RX buffer is released using ffa_release_rx_buffer
++ *
++ * Return:
++ *
++ * When part_uuid is NULL, all partitions data are retrieved from secure world
++ * When part_uuid is non NULL, data for partitions matching the given UUID are
++ * retrieved and the number of partitions is returned
++ * 0 is returned on success. Otherwise, failure
++ */
++static int ffa_query_partitions_info(struct udevice *dev, struct ffa_partition_uuid *part_uuid,
++				     u32 *pcount)
++{
++	struct ffa_partition_uuid query_uuid = {0};
++	ffa_value_t res = {0};
++	int ffa_errno;
++
++	/*
++	 * If a UUID is specified. Information for one or more
++	 * partitions in the system is queried. Otherwise, information
++	 * for all installed partitions is queried
++	 */
++
++	if (part_uuid) {
++		if (!pcount)
++			return -EINVAL;
++
++		query_uuid = *part_uuid;
++	} else if (pcount) {
++		return -EINVAL;
++	}
++
++	invoke_ffa_fn((ffa_value_t){
++			.a0 = FFA_SMC_32(FFA_PARTITION_INFO_GET),
++			.a1 = query_uuid.a1,
++			.a2 = query_uuid.a2,
++			.a3 = query_uuid.a3,
++			.a4 = query_uuid.a4,
++			}, &res);
++
++	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
++		int ret;
++
++		/*
++		 * res.a2 contains the count of partition information descriptors
++		 * populated in the RX buffer
++		 */
++		if (res.a2) {
++			ret = ffa_read_partitions_info(dev, (u32)res.a2, part_uuid);
++			if (ret) {
++				log_err("failed reading SP(s) data , err (%d)\n", ret);
++				ffa_release_rx_buffer_hdlr(dev);
++				return -EINVAL;
++			}
++		}
++
++		/* Return the SP count (when querying using a UUID) */
++		if (pcount)
++			*pcount = (u32)res.a2;
++
++		/*
++		 * After calling FFA_PARTITION_INFO_GET the buffer ownership
++		 * is assigned to the consumer (u-boot). So, we need to give
++		 * the ownership back to the SPM or hypervisor
++		 */
++		ret = ffa_release_rx_buffer_hdlr(dev);
++
++		return ret;
++	}
++
++	ffa_errno = res.a2;
++	ffa_print_error_log(FFA_PARTITION_INFO_GET, ffa_errno);
++
++	return ffa_to_std_errno(ffa_errno);
++}
++
++/**
++ * ffa_get_partitions_info_hdlr() - FFA_PARTITION_INFO_GET handler function
++ *	@uuid_str: pointer to the UUID string
++ *	@sp_count: address of the variable containing the number of partitions matching the UUID
++ *			 The variable is set by the driver
++ *	@sp_descs: address of the descriptors of the partitions matching the UUID
++ *			 The address is set by the driver
++ *
++ * Return the number of partitions and their descriptors matching the UUID
++ *
++ * Query the secure partition data from uc_priv.
++ * If not found, invoke FFA_PARTITION_INFO_GET FF-A function to query the partition information
++ * from secure world.
++ *
++ * A client of the FF-A driver should know the UUID of the service it wants to
++ * access. It should use the UUID to request the FF-A driver to provide the
++ * partition(s) information of the service. The FF-A driver uses
++ * PARTITION_INFO_GET to obtain this information. This is implemented through
++ * ffa_get_partitions_info_hdlr() function.
++ * If the partition(s) matching the UUID found, the partition(s) information and the
++ * number are returned.
++ * If no partition matching the UUID is found in the cached area, a new FFA_PARTITION_INFO_GET
++ * call is issued.
++ * If not done yet, the UUID is updated in the cached area.
++ * This assumes that partitions data does not change in the secure world.
++ * Otherwise u-boot will have an outdated partition data. The benefit of caching
++ * the information in the FF-A driver is to accommodate discovery after
++ * ExitBootServices().
++ *
++ * Return:
++ *
++ * @sp_count: the number of partitions
++ * @sp_descs: address of the partitions descriptors
++ *
++ * On success 0 is returned. Otherwise, failure
++ */
++int ffa_get_partitions_info_hdlr(struct udevice *dev, const char *uuid_str,
++				 u32 *sp_count, struct ffa_partition_desc **sp_descs)
++{
++	u32 i;
++	struct ffa_partition_uuid part_uuid = {0};
++	struct ffa_priv *uc_priv;
++	struct ffa_partition_desc *rx_descs;
++
++	uc_priv = dev_get_uclass_priv(dev);
++
++	if (!uc_priv->partitions.count || !uc_priv->partitions.descs) {
++		log_err("no partition installed\n");
++		return -EINVAL;
++	}
++
++	if (!uuid_str) {
++		log_err("no UUID provided\n");
++		return -EINVAL;
++	}
++
++	if (!sp_count) {
++		log_err("no count argument provided\n");
++		return -EINVAL;
++	}
++
++	if (!sp_descs) {
++		log_err("no info argument provided\n");
++		return -EINVAL;
++	}
++
++	if (uuid_str_to_le_bin(uuid_str, (unsigned char *)&part_uuid)) {
++		log_err("invalid UUID\n");
++		return -EINVAL;
++	}
++
++	log_debug("Searching FF-A partitions using the provided UUID\n");
++
++	*sp_count = 0;
++	*sp_descs = uc_priv->pair.rxbuf;
++	rx_descs = *sp_descs;
++
++	/* Search in the cached partitions */
++	for (i = 0; i < uc_priv->partitions.count; i++)
++		if (ffa_uuid_are_identical(&uc_priv->partitions.descs[i].sp_uuid,
++					   &part_uuid)) {
++			log_debug("FF-A partition ID %x matches the provided UUID\n",
++				  uc_priv->partitions.descs[i].info.id);
++
++			(*sp_count)++;
++			*rx_descs++ = uc_priv->partitions.descs[i];
++			}
++
++	if (!(*sp_count)) {
++		int ret;
++
++		log_debug("No FF-A partition found. Querying framework ...\n");
++
++		ret = ffa_query_partitions_info(dev, &part_uuid, sp_count);
++
++		if (!ret) {
++			log_debug("Number of FF-A partition(s) matching the UUID: %d\n", *sp_count);
++
++			if (*sp_count)
++				ret = ffa_get_partitions_info_hdlr(dev, uuid_str, sp_count,
++								   sp_descs);
++			else
++				ret = -ENODATA;
++		}
++
++		return ret;
++	}
++
++	return 0;
++}
++
++/**
++ * ffa_cache_partitions_info() - Query and saves all secure partitions data
++ * @dev: The FF-A bus device
++ *
++ * Invoke FFA_PARTITION_INFO_GET FF-A function to query from secure world
++ * all partitions information.
++ *
++ * The FFA_PARTITION_INFO_GET call is issued with nil UUID as an argument.
++ * All installed partitions information are returned. We cache them in uc_priv
++ * and we keep the UUID field empty (in FF-A 1.0 UUID is not provided by the partition descriptor)
++ *
++ * Called at the device probing level.
++ * ffa_cache_partitions_info uses ffa_query_partitions_info to get the data
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_cache_partitions_info(struct udevice *dev)
++{
++	return ffa_query_partitions_info(dev, NULL, NULL);
++}
++
++/**
++ * ffa_msg_send_direct_req_hdlr() - FFA_MSG_SEND_DIRECT_{REQ,RESP} handler function
++ * @dev: The FF-A bus device
++ * @dst_part_id: destination partition ID
++ * @msg: pointer to the message data preallocated by the client (in/out)
++ * @is_smc64: select 64-bit or 32-bit FF-A ABI
++ *
++ * Implement FFA_MSG_SEND_DIRECT_{REQ,RESP}
++ * FF-A functions.
++ *
++ * FFA_MSG_SEND_DIRECT_REQ is used to send the data to the secure partition.
++ * The response from the secure partition is handled by reading the
++ * FFA_MSG_SEND_DIRECT_RESP arguments.
++ *
++ * The maximum size of the data that can be exchanged is 40 bytes which is
++ * sizeof(struct ffa_send_direct_data) as defined by the FF-A specification 1.0
++ * in the section relevant to FFA_MSG_SEND_DIRECT_{REQ,RESP}
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_msg_send_direct_req_hdlr(struct udevice *dev, u16 dst_part_id,
++				 struct ffa_send_direct_data *msg, bool is_smc64)
++{
++	ffa_value_t res = {0};
++	int ffa_errno;
++	u64 req_mode, resp_mode;
++	struct ffa_priv *uc_priv;
++
++	uc_priv = dev_get_uclass_priv(dev);
++
++	/* No partition installed */
++	if (!uc_priv->partitions.count || !uc_priv->partitions.descs)
++		return -ENODEV;
++
++	if (is_smc64) {
++		req_mode = FFA_SMC_64(FFA_MSG_SEND_DIRECT_REQ);
++		resp_mode = FFA_SMC_64(FFA_MSG_SEND_DIRECT_RESP);
++	} else {
++		req_mode = FFA_SMC_32(FFA_MSG_SEND_DIRECT_REQ);
++		resp_mode = FFA_SMC_32(FFA_MSG_SEND_DIRECT_RESP);
++	}
++
++	invoke_ffa_fn((ffa_value_t){
++			.a0 = req_mode,
++			.a1 = PREP_SELF_ENDPOINT_ID(uc_priv->id) |
++				PREP_PART_ENDPOINT_ID(dst_part_id),
++			.a2 = 0,
++			.a3 = msg->data0,
++			.a4 = msg->data1,
++			.a5 = msg->data2,
++			.a6 = msg->data3,
++			.a7 = msg->data4,
++			}, &res);
++
++	while (res.a0 == FFA_SMC_32(FFA_INTERRUPT))
++		invoke_ffa_fn((ffa_value_t){
++			.a0 = FFA_SMC_32(FFA_RUN),
++			.a1 = res.a1,
++			}, &res);
++
++	if (res.a0 == FFA_SMC_32(FFA_SUCCESS)) {
++		/* Message sent with no response */
++		return 0;
++	}
++
++	if (res.a0 == resp_mode) {
++		/* Message sent with response extract the return data */
++		msg->data0 = res.a3;
++		msg->data1 = res.a4;
++		msg->data2 = res.a5;
++		msg->data3 = res.a6;
++		msg->data4 = res.a7;
++
++		return 0;
++	}
++
++	ffa_errno = res.a2;
++	return ffa_to_std_errno(ffa_errno);
++}
++
++/* FF-A driver operations (used by clients for communicating with FF-A)*/
++
++/**
++ * ffa_partition_info_get() - FFA_PARTITION_INFO_GET driver operation
++ *	@uuid_str: pointer to the UUID string
++ *	@sp_count: address of the variable containing the number of partitions matching the UUID
++ *			 The variable is set by the driver
++ *	@sp_descs: address of the descriptors of the partitions matching the UUID
++ *			 The address is set by the driver
++ *
++ * Driver operation for FFA_PARTITION_INFO_GET.
++ * Please see ffa_get_partitions_info_hdlr() description for more details.
++ *
++ * Return:
++ *
++ * @sp_count: the number of partitions
++ * @sp_descs: address of the partitions descriptors
++ *
++ * On success 0 is returned. Otherwise, failure
++ */
++int ffa_partition_info_get(struct udevice *dev, const char *uuid_str,
++			   u32 *sp_count, struct ffa_partition_desc **sp_descs)
++{
++	struct ffa_bus_ops *ops = ffa_get_ops(dev);
++
++	if (!ops->partition_info_get)
++		return -ENOSYS;
++
++	return ops->partition_info_get(dev, uuid_str, sp_count, sp_descs);
++}
++
++/**
++ * ffa_sync_send_receive() - FFA_MSG_SEND_DIRECT_{REQ,RESP} driver operation
++ * @dev: The FF-A bus device
++ * @dst_part_id: destination partition ID
++ * @msg: pointer to the message data preallocated by the client (in/out)
++ * @is_smc64: select 64-bit or 32-bit FF-A ABI
++ *
++ * Driver operation for FFA_MSG_SEND_DIRECT_{REQ,RESP}.
++ * Please see ffa_msg_send_direct_req_hdlr() description for more details.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_sync_send_receive(struct udevice *dev, u16 dst_part_id,
++			  struct ffa_send_direct_data *msg, bool is_smc64)
++{
++	struct ffa_bus_ops *ops = ffa_get_ops(dev);
++
++	if (!ops->sync_send_receive)
++		return -ENOSYS;
++
++	return ops->sync_send_receive(dev, dst_part_id, msg, is_smc64);
++}
++
++/**
++ * ffa_rxtx_unmap() - FFA_RXTX_UNMAP driver operation
++ * @dev: The FF-A bus device
++ *
++ * Driver operation for FFA_RXTX_UNMAP.
++ * Please see ffa_unmap_rxtx_buffers_hdlr() description for more details.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_rxtx_unmap(struct udevice *dev)
++{
++	struct ffa_bus_ops *ops = ffa_get_ops(dev);
++
++	if (!ops->rxtx_unmap)
++		return -ENOSYS;
++
++	return ops->rxtx_unmap(dev);
++}
++
++/**
++ * ffa_do_probe() - probing FF-A framework
++ * @dev:	the FF-A bus device (arm_ffa)
++ *
++ * Probing is triggered on demand by clients searching for the uclass.
++ * At probe level the following actions are done:
++ *	- saving the FF-A framework version in uc_priv
++ *	- querying from secure world the u-boot endpoint ID
++ *	- querying from secure world the supported features of FFA_RXTX_MAP
++ *	- mapping the RX/TX buffers
++ *	- querying from secure world all the partitions information
++ *
++ * All data queried from secure world is saved in uc_priv.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_do_probe(struct udevice *dev)
++{
++	int ret;
++
++	ret = ffa_get_version_hdlr(dev);
++	if (ret)
++		return ret;
++
++	ret = ffa_get_endpoint_id(dev);
++	if (ret)
++		return ret;
++
++	ret = ffa_get_rxtx_map_features_hdlr(dev);
++	if (ret)
++		return ret;
++
++	ret = ffa_map_rxtx_buffers_hdlr(dev);
++	if (ret)
++		return ret;
++
++	ret = ffa_cache_partitions_info(dev);
++	if (ret) {
++		ffa_unmap_rxtx_buffers_hdlr(dev);
++		return ret;
++	}
++
++	return 0;
++}
++
++UCLASS_DRIVER(ffa) = {
++	.name			= "ffa",
++	.id			= UCLASS_FFA,
++	.pre_probe		= ffa_do_probe,
++	.pre_remove		= ffa_unmap_rxtx_buffers_hdlr,
++	.per_device_auto	= sizeof(struct ffa_priv)
++};
+diff --git a/drivers/firmware/arm-ffa/arm-ffa.c b/drivers/firmware/arm-ffa/arm-ffa.c
+new file mode 100644
+index 0000000000..68df75bd9e
+--- /dev/null
++++ b/drivers/firmware/arm-ffa/arm-ffa.c
+@@ -0,0 +1,104 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#include <common.h>
++#include <arm_ffa.h>
++#include <arm_ffa_priv.h>
++#include <dm.h>
++#include <log.h>
++#include <asm/global_data.h>
++#include <dm/device-internal.h>
++#include <linux/errno.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++/**
++ * invoke_ffa_fn() - SMC wrapper
++ * @args: FF-A ABI arguments to be copied to Xn registers
++ * @res: FF-A ABI return data to be copied from Xn registers
++ *
++ * Calls low level SMC assembly function
++ */
++void invoke_ffa_fn(ffa_value_t args, ffa_value_t *res)
++{
++	arm_smccc_1_2_smc(&args, res);
++}
++
++/**
++ * arm_ffa_discover() - perform FF-A discovery
++ * @dev: The Arm FF-A bus device (arm_ffa)
++ * Try to discover the FF-A framework. Discovery is performed by
++ * querying the FF-A framework version from secure world using the FFA_VERSION ABI.
++ * Return:
++ *
++ * true on success. Otherwise, false.
++ */
++static bool arm_ffa_discover(struct udevice *dev)
++{
++	int ret;
++
++	log_info("Arm FF-A framework discovery\n");
++
++	ret = ffa_get_version_hdlr(dev);
++	if (ret)
++		return false;
++
++	return true;
++}
++
++/**
++ * arm_ffa_is_supported() - FF-A bus discovery callback
++ * @invoke_fn: legacy SMC invoke function (not used)
++ *
++ * Perform FF-A discovery by calling arm_ffa_discover().
++ * Discovery is performed by querying the FF-A framework version from
++ * secure world using the FFA_VERSION ABI.
++ *
++ * The FF-A driver is registered as an SMCCC feature driver. So, features discovery
++ * callbacks are called by the PSCI driver (PSCI device is the SMCCC features
++ * root device).
++ *
++ * The FF-A driver supports the SMCCCv1.2 extended input/output registers.
++ * So, the legacy SMC invocation is not used.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static bool arm_ffa_is_supported(void (*invoke_fn)(ulong a0, ulong a1,
++						   ulong a2, ulong a3,
++						   ulong a4, ulong a5,
++						   ulong a6, ulong a7,
++						   struct arm_smccc_res *res))
++{
++	return arm_ffa_discover(NULL);
++}
++
++/* Arm FF-A driver operations */
++
++static const struct ffa_bus_ops ffa_ops = {
++	.partition_info_get = ffa_get_partitions_info_hdlr,
++	.sync_send_receive = ffa_msg_send_direct_req_hdlr,
++	.rxtx_unmap = ffa_unmap_rxtx_buffers_hdlr,
++};
++
++/* Registering the FF-A driver as an SMCCC feature driver */
++
++ARM_SMCCC_FEATURE_DRIVER(arm_ffa) = {
++	.driver_name = FFA_DRV_NAME,
++	.is_supported = arm_ffa_is_supported,
++};
++
++/* Declaring the FF-A driver under UCLASS_FFA */
++
++U_BOOT_DRIVER(arm_ffa) = {
++	.name		= FFA_DRV_NAME,
++	.id		= UCLASS_FFA,
++	.flags		= DM_REMOVE_OS_PREPARE,
++	.ops		= &ffa_ops,
++};
+diff --git a/drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h b/drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h
+new file mode 100644
+index 0000000000..4338f9c9b1
+--- /dev/null
++++ b/drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h
+@@ -0,0 +1,14 @@
++/* SPDX-License-Identifier: GPL-2.0+ */
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#ifndef __SANDBOX_ARM_FFA_PRV_H
++#define __SANDBOX_ARM_FFA_PRV_H
++
++/* Future sandbox support private declarations */
++
++#endif
+diff --git a/include/arm_ffa.h b/include/arm_ffa.h
+new file mode 100644
+index 0000000000..db9b1be995
+--- /dev/null
++++ b/include/arm_ffa.h
+@@ -0,0 +1,213 @@
++/* SPDX-License-Identifier: GPL-2.0+ */
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#ifndef __ARM_FFA_H
++#define __ARM_FFA_H
++
++#include <linux/printk.h>
++
++/*
++ * This header is public. It can be used by clients to access
++ * data structures and definitions they need
++ */
++
++/*
++ * struct ffa_partition_info - Partition information descriptor
++ * @id:	Partition ID
++ * @exec_ctxt:	Execution context count
++ * @properties:	Partition properties
++ *
++ * Data structure containing information about partitions instantiated in the system
++ * This structure is filled with the data queried by FFA_PARTITION_INFO_GET
++ */
++struct ffa_partition_info {
++	u16 id;
++	u16 exec_ctxt;
++/* partition supports receipt of direct requests */
++#define FFA_PARTITION_DIRECT_RECV	BIT(0)
++/* partition can send direct requests. */
++#define FFA_PARTITION_DIRECT_SEND	BIT(1)
++/* partition can send and receive indirect messages. */
++#define FFA_PARTITION_INDIRECT_MSG	BIT(2)
++	u32 properties;
++};
++
++/*
++ * struct ffa_partition_uuid - 16 bytes UUID transmitted by FFA_PARTITION_INFO_GET
++ * @a1-4:	32-bit words access to the UUID data
++ *
++ */
++struct ffa_partition_uuid {
++	u32 a1; /* w1 */
++	u32 a2; /* w2 */
++	u32 a3; /* w3 */
++	u32 a4; /* w4 */
++};
++
++/**
++ * struct ffa_partition_desc - the secure partition descriptor
++ * @info:	partition information
++ * @sp_uuid:	the secure partition UUID
++ *
++ * Each partition has its descriptor containing the partitions information and the UUID
++ */
++struct ffa_partition_desc {
++	struct ffa_partition_info info;
++	struct ffa_partition_uuid sp_uuid;
++};
++
++/*
++ * struct ffa_send_direct_data - Data structure hosting the data
++ *                                       used by FFA_MSG_SEND_DIRECT_{REQ,RESP}
++ * @data0-4:	Data read/written from/to x3-x7 registers
++ *
++ * Data structure containing the data to be sent by FFA_MSG_SEND_DIRECT_REQ
++ * or read from FFA_MSG_SEND_DIRECT_RESP
++ */
++
++/* For use with FFA_MSG_SEND_DIRECT_{REQ,RESP} which pass data via registers */
++struct ffa_send_direct_data {
++	ulong data0; /* w3/x3 */
++	ulong data1; /* w4/x4 */
++	ulong data2; /* w5/x5 */
++	ulong data3; /* w6/x6 */
++	ulong data4; /* w7/x7 */
++};
++
++struct udevice;
++
++/**
++ * struct ffa_bus_ops - Operations for FF-A
++ * @partition_info_get:	callback for the FFA_PARTITION_INFO_GET
++ * @sync_send_receive:	callback for the FFA_MSG_SEND_DIRECT_REQ
++ * @rxtx_unmap:	callback for the FFA_RXTX_UNMAP
++ *
++ * The data structure providing all the operations supported by the driver.
++ * This structure is EFI runtime resident.
++ */
++struct ffa_bus_ops {
++	int (*partition_info_get)(struct udevice *dev, const char *uuid_str,
++				  u32 *sp_count, struct ffa_partition_desc **sp_descs);
++	int (*sync_send_receive)(struct udevice *dev, u16 dst_part_id,
++				 struct ffa_send_direct_data *msg,
++				 bool is_smc64);
++	int (*rxtx_unmap)(struct udevice *dev);
++};
++
++#define ffa_get_ops(dev)        ((struct ffa_bus_ops *)(dev)->driver->ops)
++
++/**
++ * ffa_rxtx_unmap() - FFA_RXTX_UNMAP driver operation
++ * Please see ffa_unmap_rxtx_buffers_hdlr() description for more details.
++ */
++int ffa_rxtx_unmap(struct udevice *dev);
++
++/**
++ * ffa_unmap_rxtx_buffers_hdlr() - FFA_RXTX_UNMAP handler function
++ * @dev: The arm_ffa bus device
++ *
++ * This function implements FFA_RXTX_UNMAP FF-A function
++ * to unmap the RX/TX buffers
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_unmap_rxtx_buffers_hdlr(struct udevice *dev);
++
++/**
++ * ffa_sync_send_receive() - FFA_MSG_SEND_DIRECT_{REQ,RESP} driver operation
++ * Please see ffa_msg_send_direct_req_hdlr() description for more details.
++ */
++int ffa_sync_send_receive(struct udevice *dev, u16 dst_part_id,
++			  struct ffa_send_direct_data *msg, bool is_smc64);
++
++/**
++ * ffa_msg_send_direct_req_hdlr() - FFA_MSG_SEND_DIRECT_{REQ,RESP} handler function
++ * @dev: The arm_ffa bus device
++ * @dst_part_id: destination partition ID
++ * @msg: pointer to the message data preallocated by the client (in/out)
++ * @is_smc64: select 64-bit or 32-bit FF-A ABI
++ *
++ * This function implements FFA_MSG_SEND_DIRECT_{REQ,RESP}
++ * FF-A functions.
++ *
++ * FFA_MSG_SEND_DIRECT_REQ is used to send the data to the secure partition.
++ * The response from the secure partition is handled by reading the
++ * FFA_MSG_SEND_DIRECT_RESP arguments.
++ *
++ * The maximum size of the data that can be exchanged is 40 bytes which is
++ * sizeof(struct ffa_send_direct_data) as defined by the FF-A specification 1.0
++ * in the section relevant to FFA_MSG_SEND_DIRECT_{REQ,RESP}
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_msg_send_direct_req_hdlr(struct udevice *dev, u16 dst_part_id,
++				 struct ffa_send_direct_data *msg, bool is_smc64);
++
++/**
++ * ffa_partition_info_get() - FFA_PARTITION_INFO_GET driver operation
++ * Please see ffa_get_partitions_info_hdlr() description for more details.
++ */
++int ffa_partition_info_get(struct udevice *dev, const char *uuid_str,
++			   u32 *sp_count, struct ffa_partition_desc **sp_descs);
++
++/**
++ * ffa_get_partitions_info_hdlr() - FFA_PARTITION_INFO_GET handler function
++ *	@uuid_str: pointer to the UUID string
++ *	@sp_count: address of the variable containing the number of partitions matching the UUID
++ *			 The variable is set by the driver
++ *	@sp_descs: address of the descriptors of the partitions matching the UUID
++ *			 The address is set by the driver
++ *
++ * Return the number of partitions and their descriptors matching the UUID
++ *
++ * Query the secure partition data from uc_priv.
++ * If not found, invoke FFA_PARTITION_INFO_GET
++ * FF-A function to query the partition information from secure world.
++ *
++ * A client of the FF-A driver should know the UUID of the service it wants to
++ * access. It should use the UUID to request the FF-A driver to provide the
++ * partition(s) information of the service. The FF-A driver uses
++ * PARTITION_INFO_GET to obtain this information. This is implemented through
++ * ffa_get_partitions_info_hdlr() function.
++ * A new FFA_PARTITION_INFO_GET call is issued (first one performed through
++ * ffa_cache_partitions_info) allowing to retrieve the partition(s) information.
++ * They are not saved (already done). We only update the UUID in the cached area.
++ * This assumes that partitions data does not change in the secure world.
++ * Otherwise u-boot will have an outdated partition data. The benefit of caching
++ * the information in the FF-A driver is to accommodate discovery after
++ * ExitBootServices().
++ *
++ * Return:
++ *
++ * @sp_count: the number of partitions
++ * @sp_descs: address of the partitions descriptors
++ *
++ * On success 0 is returned. Otherwise, failure
++ */
++int ffa_get_partitions_info_hdlr(struct udevice *dev, const char *uuid_str,
++				 u32 *sp_count, struct ffa_partition_desc **sp_descs);
++
++struct ffa_priv;
++
++/**
++ * ffa_set_smc_conduit() - Set the SMC conduit
++ * @dev: The FF-A bus device
++ *
++ * Selects the SMC conduit by setting the FF-A ABI invoke function.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_set_smc_conduit(struct udevice *dev);
++
++#endif
+diff --git a/include/arm_ffa_priv.h b/include/arm_ffa_priv.h
+new file mode 100644
+index 0000000000..d564c33c64
+--- /dev/null
++++ b/include/arm_ffa_priv.h
+@@ -0,0 +1,246 @@
++/* SPDX-License-Identifier: GPL-2.0+ */
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#ifndef __ARM_FFA_PRV_H
++#define __ARM_FFA_PRV_H
++
++#include <mapmem.h>
++#include <linux/bitfield.h>
++#include <linux/bitops.h>
++
++/* This header is exclusively used by the FF-A Uclass and FF-A driver(s) */
++
++/* Arm FF-A driver name */
++#define FFA_DRV_NAME "arm_ffa"
++
++/* The FF-A SMC function definitions */
++
++#if CONFIG_IS_ENABLED(SANDBOX)
++
++/* Providing Arm SMCCC declarations to sandbox */
++
++/**
++ * struct sandbox_smccc_1_2_regs - emulated SMC call arguments or results
++ * @a0-a17 argument values from registers 0 to 17
++ */
++struct sandbox_smccc_1_2_regs {
++	ulong a0;
++	ulong a1;
++	ulong a2;
++	ulong a3;
++	ulong a4;
++	ulong a5;
++	ulong a6;
++	ulong a7;
++	ulong a8;
++	ulong a9;
++	ulong a10;
++	ulong a11;
++	ulong a12;
++	ulong a13;
++	ulong a14;
++	ulong a15;
++	ulong a16;
++	ulong a17;
++};
++
++typedef struct sandbox_smccc_1_2_regs ffa_value_t;
++
++#define ARM_SMCCC_FAST_CALL		1UL
++#define ARM_SMCCC_OWNER_STANDARD	4
++#define ARM_SMCCC_SMC_32		0
++#define ARM_SMCCC_SMC_64		1
++#define ARM_SMCCC_TYPE_SHIFT		31
++#define ARM_SMCCC_CALL_CONV_SHIFT	30
++#define ARM_SMCCC_OWNER_MASK		0x3f
++#define ARM_SMCCC_OWNER_SHIFT		24
++#define ARM_SMCCC_FUNC_MASK		0xffff
++
++#define ARM_SMCCC_CALL_VAL(type, calling_convention, owner, func_num) \
++	(((type) << ARM_SMCCC_TYPE_SHIFT) | \
++	((calling_convention) << ARM_SMCCC_CALL_CONV_SHIFT) | \
++	(((owner) & ARM_SMCCC_OWNER_MASK) << ARM_SMCCC_OWNER_SHIFT) | \
++	((func_num) & ARM_SMCCC_FUNC_MASK))
++
++#else
++/* CONFIG_ARM64 */
++#include <linux/arm-smccc.h>
++typedef struct arm_smccc_1_2_regs ffa_value_t;
++#endif
++
++/* Defining the function pointer type for the function executing the FF-A ABIs */
++typedef void (*invoke_ffa_fn_t)(ffa_value_t args, ffa_value_t *res);
++
++/* FF-A driver version definitions */
++
++#define MAJOR_VERSION_MASK		GENMASK(30, 16)
++#define MINOR_VERSION_MASK		GENMASK(15, 0)
++#define GET_FFA_MAJOR_VERSION(x)		\
++				((u16)(FIELD_GET(MAJOR_VERSION_MASK, (x))))
++#define GET_FFA_MINOR_VERSION(x)		\
++				((u16)(FIELD_GET(MINOR_VERSION_MASK, (x))))
++#define PACK_VERSION_INFO(major, minor)			\
++	(FIELD_PREP(MAJOR_VERSION_MASK, (major)) |	\
++	 FIELD_PREP(MINOR_VERSION_MASK, (minor)))
++
++#define FFA_MAJOR_VERSION		(1)
++#define FFA_MINOR_VERSION		(0)
++#define FFA_VERSION_1_0		\
++			PACK_VERSION_INFO(FFA_MAJOR_VERSION, FFA_MINOR_VERSION)
++
++/* Endpoint ID mask (u-boot endpoint ID) */
++
++#define GET_SELF_ENDPOINT_ID_MASK		GENMASK(15, 0)
++#define GET_SELF_ENDPOINT_ID(x)		\
++			((u16)(FIELD_GET(GET_SELF_ENDPOINT_ID_MASK, (x))))
++
++#define PREP_SELF_ENDPOINT_ID_MASK		GENMASK(31, 16)
++#define PREP_SELF_ENDPOINT_ID(x)		\
++			(FIELD_PREP(PREP_SELF_ENDPOINT_ID_MASK, (x)))
++
++/* Partition endpoint ID mask  (partition with which u-boot communicates with) */
++
++#define PREP_PART_ENDPOINT_ID_MASK		GENMASK(15, 0)
++#define PREP_PART_ENDPOINT_ID(x)		\
++			(FIELD_PREP(PREP_PART_ENDPOINT_ID_MASK, (x)))
++
++/* Definitions of the Arm FF-A interfaces supported by the Arm FF-A driver */
++
++#define FFA_SMC(calling_convention, func_num)				\
++	ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, (calling_convention),	\
++			   ARM_SMCCC_OWNER_STANDARD, (func_num))
++
++#define FFA_SMC_32(func_num)				FFA_SMC(ARM_SMCCC_SMC_32, (func_num))
++#define FFA_SMC_64(func_num)				FFA_SMC(ARM_SMCCC_SMC_64, (func_num))
++
++enum ffa_abis {
++	FFA_ERROR                 = 0x60,
++	FFA_SUCCESS               = 0x61,
++	FFA_INTERRUPT             = 0x62,
++	FFA_VERSION               = 0x63,
++	FFA_FEATURES              = 0x64,
++	FFA_RX_RELEASE            = 0x65,
++	FFA_RXTX_MAP              = 0x66,
++	FFA_RXTX_UNMAP            = 0x67,
++	FFA_PARTITION_INFO_GET    = 0x68,
++	FFA_ID_GET                = 0x69,
++	FFA_RUN                   = 0x6d,
++	FFA_MSG_SEND_DIRECT_REQ   = 0x6f,
++	FFA_MSG_SEND_DIRECT_RESP  = 0x70,
++
++	/* To be updated when adding new FFA IDs */
++	FFA_FIRST_ID              = FFA_ERROR, /* Lowest number ID */
++	FFA_LAST_ID               = FFA_MSG_SEND_DIRECT_RESP, /* Highest number ID */
++};
++
++enum ffa_abi_errcode {
++	NOT_SUPPORTED = 1,
++	INVALID_PARAMETERS,
++	NO_MEMORY,
++	BUSY,
++	INTERRUPTED,
++	DENIED,
++	RETRY,
++	ABORTED,
++	MAX_NUMBER_FFA_ERR
++};
++
++extern int ffa_to_std_errmap[MAX_NUMBER_FFA_ERR];
++
++/* Container structure and helper macros to map between an FF-A error and relevant error log */
++struct ffa_abi_errmap {
++	char *err_str[MAX_NUMBER_FFA_ERR];
++};
++
++#define FFA_ERRMAP_COUNT (FFA_LAST_ID - FFA_FIRST_ID + 1)
++#define FFA_ID_TO_ERRMAP_ID(ffa_id) ((ffa_id) - FFA_FIRST_ID)
++
++/**
++ * enum ffa_rxtx_buf_sizes - minimum sizes supported
++ * for the RX/TX buffers
++ */
++enum ffa_rxtx_buf_sizes {
++	RXTX_4K,
++	RXTX_64K,
++	RXTX_16K
++};
++
++/**
++ * struct ffa_rxtxpair - Hosts the RX/TX buffers virtual addresses
++ * @rxbuf:	virtual address of the RX buffer
++ * @txbuf:	virtual address of the TX buffer
++ * @rxtx_min_pages:	RX/TX buffers minimum size in pages
++ *
++ * Hosts the virtual addresses of the mapped RX/TX buffers
++ * These addresses are used by the FF-A functions that use the RX/TX buffers
++ */
++struct ffa_rxtxpair {
++	void *rxbuf; /* Virtual address returned by memalign */
++	void *txbuf; /* Virtual address returned by memalign */
++	size_t rxtx_min_pages; /* Minimum number of pages in each of the RX/TX buffers */
++};
++
++struct ffa_partition_desc;
++
++/**
++ * struct ffa_partitions - descriptors for all secure partitions
++ * @count:	The number of partitions descriptors
++ * @descs	The partitions descriptors table
++ *
++ * Contains the partitions descriptors table
++ */
++struct ffa_partitions {
++	u32 count;
++	struct ffa_partition_desc *descs; /* Virtual address */
++};
++
++/**
++ * struct ffa_priv - the driver private data structure
++ *
++ * @fwk_version:	FF-A framework version
++ * @emul:	FF-A sandbox emulator
++ * @id:	u-boot endpoint ID
++ * @partitions:	The partitions descriptors structure
++ * @pair:	The RX/TX buffers pair
++ *
++ * The device private data structure containing all the
++ * data read from secure world.
++ */
++struct ffa_priv {
++	u32 fwk_version;
++	struct udevice *emul;
++	u16 id;
++	struct ffa_partitions partitions;
++	struct ffa_rxtxpair pair;
++};
++
++/**
++ * ffa_get_version_hdlr() - FFA_VERSION handler function
++ * @dev: The FF-A bus device
++ *
++ * Implement FFA_VERSION FF-A function
++ * to get from the secure world the FF-A framework version
++ * FFA_VERSION is used to discover the FF-A framework.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int ffa_get_version_hdlr(struct udevice *dev);
++
++/**
++ * invoke_ffa_fn() - SMC wrapper
++ * @args: FF-A ABI arguments to be copied to Xn registers
++ * @res: FF-A ABI return data to be copied from Xn registers
++ *
++ * Calls low level SMC implementation.
++ * This function should be implemented by the user driver.
++ */
++void invoke_ffa_fn(ffa_value_t args, ffa_value_t *res);
++
++#endif
+diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
+index 307ad6931c..3c6af2e3d2 100644
+--- a/include/dm/uclass-id.h
++++ b/include/dm/uclass-id.h
+@@ -4,6 +4,11 @@
+  *
+  * (C) Copyright 2012
+  * Pavel Herrmann <morpheus.ibis@gmail.com>
++ *
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+  */
+ 
+ #ifndef _DM_UCLASS_ID_H
+@@ -57,6 +62,7 @@ enum uclass_id {
+ 	UCLASS_ETH,		/* Ethernet device */
+ 	UCLASS_ETH_PHY,		/* Ethernet PHY device */
+ 	UCLASS_EXTCON,		/* External Connector Class */
++	UCLASS_FFA,		/* Arm Firmware Framework for Armv8-A */
+ 	UCLASS_FIRMWARE,	/* Firmware */
+ 	UCLASS_FPGA,		/* FPGA device */
+ 	UCLASS_FUZZING_ENGINE,	/* Fuzzing engine */
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-arm_ffa-efi-unmap-RX-TX-buffers.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-arm_ffa-efi-unmap-RX-TX-buffers.patch
deleted file mode 100644
index 3a3dae8..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0004-arm_ffa-efi-unmap-RX-TX-buffers.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From b09b391e33e024a18842dfdc99282d0050cc5fcb Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Thu, 6 Oct 2022 15:04:25 +0100
-Subject: [PATCH 04/42] arm_ffa: efi: unmap RX/TX buffers
-
-unmap RX/TX buffers at ExitBootServices()
-
-Unmapping the RX/TX buffers created by u-boot is needed before EFI
-runtime.
-
-At EFI runtime the linux kernel takes care of allocating its own RX/TX
-buffers and registering them with the secure world.
-
-Secure world should be using the RX/TX buffers created by the kernel.
-So, RX/TX buffers created by u-boot must be unmapped.
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v8: pass NULL device pointer to the FF-A bus operation
-v7: replace debug() by log_err()
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- lib/efi_loader/efi_boottime.c | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index e65ca6a4cb..3481f2afe7 100644
---- a/lib/efi_loader/efi_boottime.c
-+++ b/lib/efi_loader/efi_boottime.c
-@@ -3,6 +3,9 @@
-  * EFI application boot time services
-  *
-  * Copyright (c) 2016 Alexander Graf
-+ *
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-  */
- 
- #include <common.h>
-@@ -23,6 +26,10 @@
- #include <asm/setjmp.h>
- #include <linux/libfdt_env.h>
- 
-+#if CONFIG_IS_ENABLED(ARM_FFA_TRANSPORT)
-+#include <arm_ffa.h>
-+#endif
-+
- DECLARE_GLOBAL_DATA_PTR;
- 
- /* Task priority level */
-@@ -2178,6 +2185,12 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
- 		dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL);
- 	}
- 
-+#if CONFIG_IS_ENABLED(ARM_FFA_TRANSPORT)
-+		/* unmap FF-A RX/TX buffers */
-+		if (ffa_bus_ops_get()->rxtx_unmap(NULL))
-+			log_err("Can't unmap FF-A RX/TX buffers\n");
-+#endif
-+
- 	/* Patch out unsupported runtime function */
- 	efi_runtime_detach();
- 
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-FF-A-v15-arm_ffa-introduce-armffa-command.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-FF-A-v15-arm_ffa-introduce-armffa-command.patch
new file mode 100644
index 0000000..aeb4bb9
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-FF-A-v15-arm_ffa-introduce-armffa-command.patch
@@ -0,0 +1,436 @@
+From 3eb4fb19777383f5f05b7ce74da141f53ffc4374 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Wed, 10 May 2023 17:27:01 +0100
+Subject: [PATCH 05/33] FF-A v15: arm_ffa: introduce armffa command
+
+Provide armffa command showcasing the use of the U-Boot FF-A support
+
+armffa is a command showcasing how to invoke FF-A operations.
+This provides a guidance to the client developers on how to
+call the FF-A bus interfaces. The command also allows to gather secure
+partitions information and ping these  partitions. The command is also
+helpful in testing the communication with secure partitions.
+
+For more details please refer to the command documentation [1].
+
+[1]: doc/usage/cmd/armffa.rst
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Cc: Tom Rini <trini@konsulko.com>
+Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
+Cc: Jens Wiklander <jens.wiklander@linaro.org>
+Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
+---
+ MAINTAINERS                      |   2 +
+ cmd/Kconfig                      |  10 ++
+ cmd/Makefile                     |   1 +
+ cmd/armffa.c                     | 202 +++++++++++++++++++++++++++++++
+ doc/arch/arm64.ffa.rst           |   7 ++
+ doc/usage/cmd/armffa.rst         |  93 ++++++++++++++
+ doc/usage/index.rst              |   1 +
+ drivers/firmware/arm-ffa/Kconfig |   1 +
+ 8 files changed, 317 insertions(+)
+ create mode 100644 cmd/armffa.c
+ create mode 100644 doc/usage/cmd/armffa.rst
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 9c5ebf312c..4ae82229fc 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -269,7 +269,9 @@ F:	configs/cortina_presidio-asic-pnand_defconfig
+ ARM FF-A
+ M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ S:	Maintained
++F:	cmd/armffa.c
+ F:	doc/arch/arm64.ffa.rst
++F:	doc/usage/cmd/armffa.rst
+ F:	drivers/firmware/arm-ffa/
+ F:	include/arm_ffa.h
+ F:	include/sandbox_arm_ffa.h
+diff --git a/cmd/Kconfig b/cmd/Kconfig
+index 02e54f1e50..79b4f8367a 100644
+--- a/cmd/Kconfig
++++ b/cmd/Kconfig
+@@ -935,6 +935,16 @@ endmenu
+ 
+ menu "Device access commands"
+ 
++config CMD_ARMFFA
++	bool "Arm FF-A test command"
++	depends on ARM_FFA_TRANSPORT
++	help
++	  Provides a test command for the FF-A support
++	  supported options:
++		- Listing the partition(s) info
++		- Sending a data pattern to the specified partition
++		- Displaying the arm_ffa device info
++
+ config CMD_ARMFLASH
+ 	#depends on FLASH_CFI_DRIVER
+ 	bool "armflash"
+diff --git a/cmd/Makefile b/cmd/Makefile
+index 6c37521b4e..7d20a85a46 100644
+--- a/cmd/Makefile
++++ b/cmd/Makefile
+@@ -12,6 +12,7 @@ obj-y += panic.o
+ obj-y += version.o
+ 
+ # command
++obj-$(CONFIG_CMD_ARMFFA) += armffa.o
+ obj-$(CONFIG_CMD_2048) += 2048.o
+ obj-$(CONFIG_CMD_ACPI) += acpi.o
+ obj-$(CONFIG_CMD_ADDRMAP) += addrmap.o
+diff --git a/cmd/armffa.c b/cmd/armffa.c
+new file mode 100644
+index 0000000000..7e6eafc03a
+--- /dev/null
++++ b/cmd/armffa.c
+@@ -0,0 +1,202 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++#include <common.h>
++#include <arm_ffa.h>
++#include <command.h>
++#include <dm.h>
++#include <mapmem.h>
++#include <stdlib.h>
++#include <asm/io.h>
++
++/* Select the right physical address formatting according to the platform */
++#ifdef CONFIG_PHYS_64BIT
++#define PhysAddrLength "ll"
++#else
++#define PhysAddrLength ""
++#endif
++#define PHYS_ADDR_LN "%" PhysAddrLength "x"
++
++/**
++ * ffa_get_dev() - Return the FF-A device
++ * @devp:	pointer to the FF-A device
++ *
++ * Search for the FF-A device.
++ *
++ * Return:
++ * 0 on success. Otherwise, failure
++ */
++static int ffa_get_dev(struct udevice **devp)
++{
++	int ret;
++
++	ret = uclass_first_device_err(UCLASS_FFA, devp);
++	if (ret) {
++		log_err("Cannot find FF-A bus device\n");
++		return ret;
++	}
++
++	return 0;
++}
++
++/**
++ * do_ffa_getpart() - implementation of the getpart subcommand
++ * @cmdtp:		Command Table
++ * @flag:		flags
++ * @argc:		number of arguments
++ * @argv:		arguments
++ *
++ * Query a secure partition information. The secure partition UUID is provided
++ * as an argument. The function uses the arm_ffa driver
++ * partition_info_get operation which implements FFA_PARTITION_INFO_GET
++ * ABI to retrieve the data. The input UUID string is expected to be in big
++ * endian format.
++ *
++ * Return:
++ *
++ * CMD_RET_SUCCESS: on success, otherwise failure
++ */
++static int do_ffa_getpart(struct cmd_tbl *cmdtp, int flag, int argc,
++			  char *const argv[])
++{
++	u32 count = 0;
++	int ret;
++	struct ffa_partition_desc *descs;
++	u32 i;
++	struct udevice *dev;
++
++	if (argc != 2) {
++		log_err("Missing argument\n");
++		return CMD_RET_USAGE;
++	}
++
++	ret = ffa_get_dev(&dev);
++	if (ret)
++		return CMD_RET_FAILURE;
++
++	/* Ask the driver to fill the buffer with the SPs info */
++
++	ret = ffa_partition_info_get(dev, argv[1], &count, &descs);
++	if (ret) {
++		log_err("Failure in querying partition(s) info (error code: %d)\n", ret);
++		return CMD_RET_FAILURE;
++	}
++
++	/* SPs found , show the partition information */
++	for (i = 0; i < count ; i++) {
++		log_info("Partition: id = %x , exec_ctxt %x , properties %x\n",
++			 descs[i].info.id,
++			 descs[i].info.exec_ctxt,
++			 descs[i].info.properties);
++	}
++
++	return CMD_RET_SUCCESS;
++}
++
++/**
++ * do_ffa_ping() - implementation of the ping subcommand
++ * @cmdtp:		Command Table
++ * @flag:		flags
++ * @argc:		number of arguments
++ * @argv:		arguments
++ *
++ * Send data to a secure partition. The secure partition UUID is provided
++ * as an argument. Use the arm_ffa driver sync_send_receive operation
++ * which implements FFA_MSG_SEND_DIRECT_{REQ,RESP} ABIs to send/receive data.
++ *
++ * Return:
++ *
++ * CMD_RET_SUCCESS: on success, otherwise failure
++ */
++static int do_ffa_ping(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
++{
++	struct ffa_send_direct_data msg = {
++			.data0 = 0xaaaaaaaa,
++			.data1 = 0xbbbbbbbb,
++			.data2 = 0xcccccccc,
++			.data3 = 0xdddddddd,
++			.data4 = 0xeeeeeeee,
++	};
++	u16 part_id;
++	int ret;
++	struct udevice *dev;
++
++	if (argc != 2) {
++		log_err("Missing argument\n");
++		return CMD_RET_USAGE;
++	}
++
++	part_id = strtoul(argv[1], NULL, 16);
++	if (!part_id) {
++		log_err("Partition ID can not be 0\n");
++		return CMD_RET_USAGE;
++	}
++
++	ret = ffa_get_dev(&dev);
++	if (ret)
++		return CMD_RET_FAILURE;
++
++	ret = ffa_sync_send_receive(dev, part_id, &msg, 1);
++	if (!ret) {
++		u8 cnt;
++
++		log_info("SP response:\n[LSB]\n");
++		for (cnt = 0;
++		     cnt < sizeof(struct ffa_send_direct_data) / sizeof(u64);
++		     cnt++)
++			log_info("%llx\n", ((u64 *)&msg)[cnt]);
++		return CMD_RET_SUCCESS;
++	}
++
++	log_err("Sending direct request error (%d)\n", ret);
++	return CMD_RET_FAILURE;
++}
++
++/**
++ *do_ffa_devlist() - implementation of the devlist subcommand
++ * @cmdtp: [in]		Command Table
++ * @flag:		flags
++ * @argc:		number of arguments
++ * @argv:		arguments
++ *
++ * Query the device belonging to the UCLASS_FFA
++ * class.
++ *
++ * Return:
++ *
++ * CMD_RET_SUCCESS: on success, otherwise failure
++ */
++static int do_ffa_devlist(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
++{
++	struct udevice *dev;
++	int ret;
++
++	ret = ffa_get_dev(&dev);
++	if (ret)
++		return CMD_RET_FAILURE;
++
++	log_info("device %s, addr " PHYS_ADDR_LN ", driver %s, ops " PHYS_ADDR_LN "\n",
++		 dev->name,
++		 map_to_sysmem(dev),
++		 dev->driver->name,
++		 map_to_sysmem(dev->driver->ops));
++
++	return CMD_RET_SUCCESS;
++}
++
++static char armffa_help_text[] =
++	"getpart <partition UUID>\n"
++	"       - lists the partition(s) info\n"
++	"ping <partition ID>\n"
++	"       - sends a data pattern to the specified partition\n"
++	"devlist\n"
++	"       - displays information about the FF-A device/driver\n";
++
++U_BOOT_CMD_WITH_SUBCMDS(armffa, "Arm FF-A test command", armffa_help_text,
++			U_BOOT_SUBCMD_MKENT(getpart, 2, 1, do_ffa_getpart),
++			U_BOOT_SUBCMD_MKENT(ping, 2, 1, do_ffa_ping),
++			U_BOOT_SUBCMD_MKENT(devlist, 1, 1, do_ffa_devlist));
+diff --git a/doc/arch/arm64.ffa.rst b/doc/arch/arm64.ffa.rst
+index 4f817f053c..aefd527447 100644
+--- a/doc/arch/arm64.ffa.rst
++++ b/doc/arch/arm64.ffa.rst
+@@ -205,6 +205,13 @@ The following features are provided:
+ 
+ - FF-A bus can be compiled and used without EFI
+ 
++The armffa command
++-----------------------------------
++
++armffa is a command showcasing how to use the FF-A bus and how to invoke the driver operations.
++
++Please refer the command documentation at :doc:`../usage/cmd/armffa`
++
+ Example of boot logs with FF-A enabled
+ --------------------------------------
+ 
+diff --git a/doc/usage/cmd/armffa.rst b/doc/usage/cmd/armffa.rst
+new file mode 100644
+index 0000000000..3d422686c1
+--- /dev/null
++++ b/doc/usage/cmd/armffa.rst
+@@ -0,0 +1,93 @@
++.. SPDX-License-Identifier: GPL-2.0+:
++
++armffa command
++==============
++
++Synopsis
++--------
++
++::
++
++   armffa [sub-command] [arguments]
++
++   sub-commands:
++
++        getpart [partition UUID]
++
++            lists the partition(s) info
++
++        ping [partition ID]
++
++            sends a data pattern to the specified partition
++
++        devlist
++
++            displays information about the FF-A device/driver
++
++Description
++-----------
++
++armffa is a command showcasing how to use the FF-A bus and how to invoke its operations.
++
++This provides a guidance to the client developers on how to call the FF-A bus interfaces.
++
++The command also allows to gather secure partitions information and ping these  partitions.
++
++The command is also helpful in testing the communication with secure partitions.
++
++Example
++-------
++
++The following examples are run on Corstone-1000 platform.
++
++* ping
++
++::
++
++   corstone1000# armffa ping 0x8003
++   SP response:
++   [LSB]
++   fffffffe
++   0
++   0
++   0
++   0
++
++* ping (failure case)
++
++::
++
++   corstone1000# armffa ping 0
++   Sending direct request error (-22)
++
++* getpart
++
++::
++
++   corstone1000# armffa getpart 33d532ed-e699-0942-c09c-a798d9cd722d
++   Partition: id = 8003 , exec_ctxt 1 , properties 3
++
++* getpart (failure case)
++
++::
++
++   corstone1000# armffa getpart 33d532ed-e699-0942-c09c-a798d9cd7221
++   INVALID_PARAMETERS: Unrecognized UUID
++   Failure in querying partitions count (error code: -22)
++
++* devlist
++
++::
++
++   corstone1000# armffa devlist
++   device name arm_ffa, dev 00000000fdf41c30, driver name arm_ffa, ops 00000000fffc0e98
++
++Configuration
++-------------
++
++The command is available if CONFIG_CMD_ARMFFA=y and CONFIG_ARM_FFA_TRANSPORT=y.
++
++Return value
++------------
++
++The return value $? is 0 (true) on success, 1 (false) on failure.
+diff --git a/doc/usage/index.rst b/doc/usage/index.rst
+index 388e59f173..e462de2806 100644
+--- a/doc/usage/index.rst
++++ b/doc/usage/index.rst
+@@ -22,6 +22,7 @@ Shell commands
+ 
+    cmd/acpi
+    cmd/addrmap
++   cmd/armffa
+    cmd/askenv
+    cmd/base
+    cmd/bdinfo
+diff --git a/drivers/firmware/arm-ffa/Kconfig b/drivers/firmware/arm-ffa/Kconfig
+index 9200c8028b..a7d5392859 100644
+--- a/drivers/firmware/arm-ffa/Kconfig
++++ b/drivers/firmware/arm-ffa/Kconfig
+@@ -5,6 +5,7 @@ config ARM_FFA_TRANSPORT
+ 	depends on DM && ARM64
+ 	select ARM_SMCCC
+ 	select ARM_SMCCC_FEATURES
++	imply CMD_ARMFFA
+ 	select LIB_UUID
+ 	select DEVRES
+ 	help
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-arm_ffa-introduce-armffa-command.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-arm_ffa-introduce-armffa-command.patch
deleted file mode 100644
index b00e3d9..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0005-arm_ffa-introduce-armffa-command.patch
+++ /dev/null
@@ -1,364 +0,0 @@
-From f3bc86a7ec63c0454577cb6712395c577b2cfd66 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Mon, 6 Jun 2022 12:46:38 +0100
-Subject: [PATCH 05/42] arm_ffa: introduce armffa command
-
-Provide armffa command showcasing the use of the FF-A driver
-
-The armffa command allows to query secure partitions data from
-the secure world and exchanging messages with the partitions
-using 64-bit FF-A direct messaging.
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v8:
-
-* update partition_info_get() second argument to be an SP count
-* pass NULL device pointer to the FF-A bus discovery and operations
-
-v7:
-
-* adapt do_ffa_dev_list() following the recent update on
-  uclass_first_device/uclass_next_device functions (they return void now)
-* set armffa command to use 64-bit direct messaging
-
-v4:
-
-* remove pattern data in do_ffa_msg_send_direct_req
-
-v3:
-
-* use the new driver interfaces (partition_info_get, sync_send_receive)
-  in armffa command
-
-v2:
-
-* replace use of ffa_helper_init_device function by
- ffa_helper_bus_discover
-
-v1:
-
-* introduce armffa command
-
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- MAINTAINERS                      |   1 +
- cmd/Kconfig                      |  10 ++
- cmd/Makefile                     |   2 +
- cmd/armffa.c                     | 237 +++++++++++++++++++++++++++++++
- drivers/firmware/arm-ffa/Kconfig |   1 +
- 5 files changed, 251 insertions(+)
- create mode 100644 cmd/armffa.c
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index 509619d31c..61ce6c436f 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -267,6 +267,7 @@ F:	configs/cortina_presidio-asic-pnand_defconfig
- ARM FF-A
- M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
- S:	Maintained
-+F:	cmd/armffa.c
- F:	doc/arch/arm64.ffa.rst
- F:	drivers/firmware/arm-ffa/
- F:	include/arm_ffa.h
-diff --git a/cmd/Kconfig b/cmd/Kconfig
-index b2d7598717..7d0a40e8ac 100644
---- a/cmd/Kconfig
-+++ b/cmd/Kconfig
-@@ -924,6 +924,16 @@ endmenu
- 
- menu "Device access commands"
- 
-+config CMD_ARMFFA
-+	bool "Arm FF-A test command"
-+	depends on ARM_FFA_TRANSPORT
-+	help
-+	  Provides a test command for the Arm FF-A driver
-+	  supported options:
-+		- Listing the partition(s) info
-+		- Sending a data pattern to the specified partition
-+		- Displaying the arm_ffa device info
-+
- config CMD_ARMFLASH
- 	#depends on FLASH_CFI_DRIVER
- 	bool "armflash"
-diff --git a/cmd/Makefile b/cmd/Makefile
-index 0b6a96c1d9..c757f1647d 100644
---- a/cmd/Makefile
-+++ b/cmd/Makefile
-@@ -12,6 +12,8 @@ obj-y += panic.o
- obj-y += version.o
- 
- # command
-+
-+obj-$(CONFIG_CMD_ARMFFA) += armffa.o
- obj-$(CONFIG_CMD_ACPI) += acpi.o
- obj-$(CONFIG_CMD_ADDRMAP) += addrmap.o
- obj-$(CONFIG_CMD_AES) += aes.o
-diff --git a/cmd/armffa.c b/cmd/armffa.c
-new file mode 100644
-index 0000000000..d2e8687bfb
---- /dev/null
-+++ b/cmd/armffa.c
-@@ -0,0 +1,237 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include <arm_ffa.h>
-+#include <asm/io.h>
-+#include <common.h>
-+#include <command.h>
-+#include <dm.h>
-+#include <mapmem.h>
-+#include <stdlib.h>
-+
-+/**
-+ * do_ffa_get_singular_partition_info - implementation of the getpart subcommand
-+ * @cmdtp:		Command Table
-+ * @flag:		flags
-+ * @argc:		number of arguments
-+ * @argv:		arguments
-+ *
-+ * This function queries the secure partition information which the UUID is provided
-+ * as an argument. The function uses the arm_ffa driver partition_info_get operation
-+ * to retrieve the data.
-+ * The input UUID string is expected to be in big endian format.
-+ *
-+ * Return:
-+ *
-+ * CMD_RET_SUCCESS: on success, otherwise failure
-+ */
-+static int do_ffa_get_singular_partition_info(struct cmd_tbl *cmdtp, int flag, int argc,
-+					      char *const argv[])
-+{
-+	u32 count = 0;
-+	int ret;
-+	struct ffa_partition_info *parts_info;
-+	u32 info_idx;
-+
-+	if (argc != 1)
-+		return -EINVAL;
-+
-+	/* Mode 1: getting the number of secure partitions */
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, argv[0], &count, NULL);
-+	if (ret != 0) {
-+		ffa_err("Failure in querying partitions count (error code: %d)", ret);
-+		return ret;
-+	}
-+
-+	if (!count) {
-+		ffa_info("No secure partition found");
-+		return ret;
-+	}
-+
-+	/*
-+	 * pre-allocate a buffer to be filled by the driver
-+	 * with ffa_partition_info structs
-+	 */
-+
-+	ffa_info("Pre-allocating %d partition(s) info structures", count);
-+
-+	parts_info = calloc(count, sizeof(struct ffa_partition_info));
-+	if (!parts_info)
-+		return -EINVAL;
-+
-+	/*
-+	 * ask the driver to fill the buffer with the SPs info
-+	 */
-+
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, argv[0], &count, parts_info);
-+	if (ret != 0) {
-+		ffa_err("Failure in querying partition(s) info (error code: %d)", ret);
-+		free(parts_info);
-+		return ret;
-+	}
-+
-+	/*
-+	 * SPs found , show the partition information
-+	 */
-+	for (info_idx = 0; info_idx < count ; info_idx++) {
-+		ffa_info("Partition: id = 0x%x , exec_ctxt 0x%x , properties 0x%x",
-+			 parts_info[info_idx].id,
-+			 parts_info[info_idx].exec_ctxt,
-+			 parts_info[info_idx].properties);
-+	}
-+
-+	free(parts_info);
-+
-+	return 0;
-+}
-+
-+/**
-+ * do_ffa_msg_send_direct_req - implementation of the ping subcommand
-+ * @cmdtp:		Command Table
-+ * @flag:		flags
-+ * @argc:		number of arguments
-+ * @argv:		arguments
-+ *
-+ * This function sends data to the secure partition which the ID is provided
-+ * as an argument. The function uses the arm_ffa driver sync_send_receive operation
-+ * to send data.
-+ *
-+ * Return:
-+ *
-+ * CMD_RET_SUCCESS: on success, otherwise failure
-+ */
-+int  do_ffa_msg_send_direct_req(struct cmd_tbl *cmdtp, int flag, int argc,
-+				char *const argv[])
-+{
-+	struct ffa_send_direct_data msg = {
-+			.data0 = 0xaaaaaaaa,
-+			.data1 = 0xbbbbbbbb,
-+			.data2 = 0xcccccccc,
-+			.data3 = 0xdddddddd,
-+			.data4 = 0xeeeeeeee,
-+	};
-+	u16 part_id;
-+	int ret;
-+
-+	if (argc != 1)
-+		return -EINVAL;
-+
-+	errno = 0;
-+	part_id = strtoul(argv[0], NULL, 16);
-+
-+	if (errno) {
-+		ffa_err("Invalid partition ID");
-+		return -EINVAL;
-+	}
-+
-+	ret = ffa_bus_ops_get()->sync_send_receive(NULL, part_id, &msg, 1);
-+	if (ret == 0) {
-+		u8 cnt;
-+
-+		ffa_info("SP response:\n[LSB]");
-+		for (cnt = 0;
-+		     cnt < sizeof(struct ffa_send_direct_data) / sizeof(u64);
-+		     cnt++)
-+			ffa_info("0x%llx", ((u64 *)&msg)[cnt]);
-+	} else {
-+		ffa_err("Sending direct request error (%d)", ret);
-+	}
-+
-+	return ret;
-+}
-+
-+/**
-+ *do_ffa_dev_list - implementation of the devlist subcommand
-+ * @cmdtp: [in]		Command Table
-+ * @flag:		flags
-+ * @argc:		number of arguments
-+ * @argv:		arguments
-+ *
-+ * This function queries the devices belonging to the UCLASS_FFA
-+ * class. Currently, one device is expected to show up: the arm_ffa device
-+ *
-+ * Return:
-+ *
-+ * CMD_RET_SUCCESS: on success, otherwise failure
-+ */
-+int do_ffa_dev_list(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
-+{
-+	struct udevice *dev = NULL;
-+	int i;
-+
-+	ffa_info("arm_ffa uclass entries:");
-+
-+	for (i = 0, uclass_first_device(UCLASS_FFA, &dev);
-+	     dev;
-+	     uclass_next_device(&dev), i++) {
-+		ffa_info("entry %d - instance %08x, ops %08x, plat %08x",
-+			 i,
-+			 (u32)map_to_sysmem(dev),
-+			 (u32)map_to_sysmem(dev->driver->ops),
-+			 (u32)map_to_sysmem(dev_get_plat(dev)));
-+	}
-+
-+	return 0;
-+}
-+
-+static struct cmd_tbl armffa_commands[] = {
-+	U_BOOT_CMD_MKENT(getpart, 1, 1, do_ffa_get_singular_partition_info, "", ""),
-+	U_BOOT_CMD_MKENT(ping, 1, 1, do_ffa_msg_send_direct_req, "", ""),
-+	U_BOOT_CMD_MKENT(devlist, 0, 1, do_ffa_dev_list, "", ""),
-+};
-+
-+/**
-+ * do_armffa - the armffa command main function
-+ * @cmdtp:	Command Table
-+ * @flag:		flags
-+ * @argc:		number of arguments
-+ * @argv:		arguments
-+ *
-+ * This function identifies which armffa subcommand to run.
-+ * Then, it makes sure the arm_ffa device is probed and
-+ * ready for use.
-+ * Then, it runs the subcommand.
-+ *
-+ * Return:
-+ *
-+ * CMD_RET_SUCCESS: on success, otherwise failure
-+ */
-+static int do_armffa(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
-+{
-+	struct cmd_tbl *armffa_cmd;
-+	int ret;
-+
-+	if (argc < 2)
-+		return CMD_RET_USAGE;
-+
-+	armffa_cmd = find_cmd_tbl(argv[1], armffa_commands, ARRAY_SIZE(armffa_commands));
-+
-+	argc -= 2;
-+	argv += 2;
-+
-+	if (!armffa_cmd || argc > armffa_cmd->maxargs)
-+		return CMD_RET_USAGE;
-+
-+	ret = ffa_bus_discover(NULL);
-+	if (ret != 0)
-+		return cmd_process_error(cmdtp, ret);
-+
-+	if (!ffa_bus_ops_get())
-+		return -EINVAL;
-+
-+	ret = armffa_cmd->cmd(armffa_cmd, flag, argc, argv);
-+
-+	return cmd_process_error(armffa_cmd, ret);
-+}
-+
-+U_BOOT_CMD(armffa, 4, 1, do_armffa,
-+	   "Arm FF-A operations test command",
-+	   "getpart <partition UUID>\n"
-+	   "	 - lists the partition(s) info\n"
-+	   "ping <partition ID>\n"
-+	   "	 - sends a data pattern to the specified partition\n"
-+	   "devlist\n"
-+	   "	 - displays the arm_ffa device info\n");
-diff --git a/drivers/firmware/arm-ffa/Kconfig b/drivers/firmware/arm-ffa/Kconfig
-index e4914b9bc7..be4df89d23 100644
---- a/drivers/firmware/arm-ffa/Kconfig
-+++ b/drivers/firmware/arm-ffa/Kconfig
-@@ -4,6 +4,7 @@ config ARM_FFA_TRANSPORT
- 	bool "Enable Arm Firmware Framework for Armv8-A driver"
- 	depends on DM && ARM64
- 	select ARM_SMCCC
-+	select CMD_ARMFFA
- 	select LIB_UUID
- 	select DEVRES
- 	help
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-FF-A-v15-arm_ffa-introduce-sandbox-FF-A-support.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-FF-A-v15-arm_ffa-introduce-sandbox-FF-A-support.patch
new file mode 100644
index 0000000..4f94b72
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-FF-A-v15-arm_ffa-introduce-sandbox-FF-A-support.patch
@@ -0,0 +1,1314 @@
+From 4f104ef6804ffd6483d166840d113630be85edb0 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Mon, 17 Jul 2023 15:18:58 +0100
+Subject: [PATCH 06/33] FF-A v15: arm_ffa: introduce sandbox FF-A support
+
+Emulate Secure World's FF-A ABIs and allow testing U-Boot FF-A support
+
+Features of the sandbox FF-A support:
+
+- Introduce an FF-A emulator
+- Introduce an FF-A device driver for FF-A comms with emulated Secure World
+- Provides test methods allowing to read the status of the inspected ABIs
+
+The sandbox FF-A emulator supports only 64-bit direct messaging.
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
+---
+ MAINTAINERS                                   |   3 +-
+ arch/sandbox/dts/sandbox.dtsi                 |   9 +
+ arch/sandbox/dts/test.dts                     |   9 +
+ arch/sandbox/include/asm/sandbox_arm_ffa.h    |  72 ++
+ .../include/asm/sandbox_arm_ffa_priv.h        | 121 +++
+ configs/sandbox64_defconfig                   |   2 +
+ configs/sandbox_defconfig                     |   2 +
+ doc/arch/arm64.ffa.rst                        |  19 +-
+ doc/arch/sandbox/sandbox.rst                  |   1 +
+ drivers/firmware/arm-ffa/Kconfig              |  13 +-
+ drivers/firmware/arm-ffa/Makefile             |  10 +-
+ drivers/firmware/arm-ffa/ffa-emul-uclass.c    | 720 ++++++++++++++++++
+ .../firmware/arm-ffa/sandbox_arm_ffa_priv.h   |  14 -
+ drivers/firmware/arm-ffa/sandbox_ffa.c        | 110 +++
+ include/dm/uclass-id.h                        |   1 +
+ 15 files changed, 1084 insertions(+), 22 deletions(-)
+ create mode 100644 arch/sandbox/include/asm/sandbox_arm_ffa.h
+ create mode 100644 arch/sandbox/include/asm/sandbox_arm_ffa_priv.h
+ create mode 100644 drivers/firmware/arm-ffa/ffa-emul-uclass.c
+ delete mode 100644 drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h
+ create mode 100644 drivers/firmware/arm-ffa/sandbox_ffa.c
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 4ae82229fc..679a3acdd8 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -269,12 +269,13 @@ F:	configs/cortina_presidio-asic-pnand_defconfig
+ ARM FF-A
+ M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ S:	Maintained
++F:	arch/sandbox/include/asm/sandbox_arm_ffa.h
++F:	arch/sandbox/include/asm/sandbox_arm_ffa_priv.h
+ F:	cmd/armffa.c
+ F:	doc/arch/arm64.ffa.rst
+ F:	doc/usage/cmd/armffa.rst
+ F:	drivers/firmware/arm-ffa/
+ F:	include/arm_ffa.h
+-F:	include/sandbox_arm_ffa.h
+ 
+ ARM FREESCALE IMX
+ M:	Stefano Babic <sbabic@denx.de>
+diff --git a/arch/sandbox/dts/sandbox.dtsi b/arch/sandbox/dts/sandbox.dtsi
+index 30a305c4d2..94a08814b8 100644
+--- a/arch/sandbox/dts/sandbox.dtsi
++++ b/arch/sandbox/dts/sandbox.dtsi
+@@ -445,6 +445,15 @@
+ 	thermal {
+ 		compatible = "sandbox,thermal";
+ 	};
++
++	arm-ffa-emul {
++		compatible = "sandbox,arm-ffa-emul";
++
++		sandbox-arm-ffa {
++				compatible = "sandbox,arm-ffa";
++		};
++	};
++
+ };
+ 
+ &cros_ec {
+diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
+index ff9f9222e6..c6807ee031 100644
+--- a/arch/sandbox/dts/test.dts
++++ b/arch/sandbox/dts/test.dts
+@@ -1820,6 +1820,15 @@
+ 	extcon {
+ 		compatible = "sandbox,extcon";
+ 	};
++
++	arm-ffa-emul {
++		compatible = "sandbox,arm-ffa-emul";
++
++		sandbox-arm-ffa {
++			compatible = "sandbox,arm-ffa";
++		};
++	};
++
+ };
+ 
+ #include "sandbox_pmic.dtsi"
+diff --git a/arch/sandbox/include/asm/sandbox_arm_ffa.h b/arch/sandbox/include/asm/sandbox_arm_ffa.h
+new file mode 100644
+index 0000000000..be2790f496
+--- /dev/null
++++ b/arch/sandbox/include/asm/sandbox_arm_ffa.h
+@@ -0,0 +1,72 @@
++/* SPDX-License-Identifier: GPL-2.0+ */
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#ifndef __SANDBOX_ARM_FFA_H
++#define __SANDBOX_ARM_FFA_H
++
++#include <arm_ffa.h>
++
++/*
++ * This header provides public sandbox FF-A emulator declarations
++ * and declarations needed by FF-A sandbox clients
++ */
++
++/* UUIDs strings of the emulated services */
++#define SANDBOX_SERVICE1_UUID	"ed32d533-4209-99e6-2d72-cdd998a79cc0"
++#define SANDBOX_SERVICE2_UUID	"ed32d544-4209-99e6-2d72-cdd998a79cc0"
++
++/* IDs of the emulated secure partitions (SPs) */
++#define SANDBOX_SP1_ID 0x1245
++#define SANDBOX_SP2_ID 0x9836
++#define SANDBOX_SP3_ID 0x6452
++#define SANDBOX_SP4_ID 0x7814
++
++/* Invalid service UUID (no matching SP) */
++#define SANDBOX_SERVICE3_UUID	"55d532ed-0942-e699-722d-c09ca798d9cd"
++
++/* Invalid service UUID (invalid UUID string format) */
++#define SANDBOX_SERVICE4_UUID	"32ed-0942-e699-722d-c09ca798d9cd"
++
++/* Number of valid services */
++#define SANDBOX_SP_COUNT_PER_VALID_SERVICE	2
++
++/**
++ * struct ffa_sandbox_data - query ABI state data structure
++ * @data0_size:	size of the first argument
++ * @data0:	pointer to the first argument
++ * @data1_size>:	size of the second argument
++ * @data1:	pointer to the second argument
++ *
++ * Used to pass various types of data with different sizes between
++ * the test cases and the sandbox emulator.
++ * The data is for querying FF-A ABIs state.
++ */
++struct ffa_sandbox_data {
++	u32 data0_size; /* size of the first argument */
++	void *data0; /* pointer to the first argument */
++	u32 data1_size; /* size of the second argument */
++	void *data1; /* pointer to the second argument */
++};
++
++/* The sandbox FF-A  emulator public functions */
++
++/**
++ * sandbox_query_ffa_emul_state() - Inspect the FF-A ABIs
++ * @queried_func_id:	The FF-A function to be queried
++ * @func_data:  Pointer to the FF-A function arguments container structure
++ *
++ * Query the status of FF-A ABI specified in the input argument.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int sandbox_query_ffa_emul_state(u32 queried_func_id,
++				 struct ffa_sandbox_data *func_data);
++
++#endif
+diff --git a/arch/sandbox/include/asm/sandbox_arm_ffa_priv.h b/arch/sandbox/include/asm/sandbox_arm_ffa_priv.h
+new file mode 100644
+index 0000000000..b0881822d7
+--- /dev/null
++++ b/arch/sandbox/include/asm/sandbox_arm_ffa_priv.h
+@@ -0,0 +1,121 @@
++/* SPDX-License-Identifier: GPL-2.0+ */
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#ifndef __SANDBOX_ARM_FFA_PRV_H
++#define __SANDBOX_ARM_FFA_PRV_H
++
++#include <arm_ffa_priv.h>
++
++/* This header is exclusively used by the Sandbox FF-A driver and emulator */
++
++/* Non-secure physical FF-A instance */
++#define NS_PHYS_ENDPOINT_ID (0)
++
++#define GET_NS_PHYS_ENDPOINT_ID_MASK		GENMASK(31, 16)
++#define GET_NS_PHYS_ENDPOINT_ID(x)		\
++			((u16)(FIELD_GET(GET_NS_PHYS_ENDPOINT_ID_MASK, (x))))
++
++/* Helper macro for reading the destination partition ID */
++#define GET_DST_SP_ID_MASK		GENMASK(15, 0)
++#define GET_DST_SP_ID(x)		\
++			((u16)(FIELD_GET(GET_DST_SP_ID_MASK, (x))))
++
++/* Helper macro for setting the source partition ID */
++#define PREP_SRC_SP_ID_MASK		GENMASK(31, 16)
++#define PREP_SRC_SP_ID(x)		\
++			(FIELD_PREP(PREP_SRC_SP_ID_MASK, (x)))
++
++/* Helper macro for setting the destination endpoint ID */
++#define PREP_NS_PHYS_ENDPOINT_ID_MASK		GENMASK(15, 0)
++#define PREP_NS_PHYS_ENDPOINT_ID(x)		\
++			(FIELD_PREP(PREP_NS_PHYS_ENDPOINT_ID_MASK, (x)))
++
++/*  RX/TX buffers minimum size */
++#define RXTX_BUFFERS_MIN_SIZE (RXTX_4K)
++#define RXTX_BUFFERS_MIN_PAGES (1)
++
++/* MBZ registers info */
++
++/* x1-x7 MBZ */
++#define FFA_X1X7_MBZ_CNT (7)
++#define FFA_X1X7_MBZ_REG_START (&res->a1)
++
++/* x4-x7 MBZ */
++#define FFA_X4X7_MBZ_CNT (4)
++#define FFA_X4X7_MBZ_REG_START (&res->a4)
++
++/* x3-x7 MBZ */
++#define FFA_X3X7_MBZ_CNT (5)
++#define FFA_X3_MBZ_REG_START (&res->a3)
++
++/* number of emulated FF-A secure partitions (SPs) */
++#define SANDBOX_PARTITIONS_CNT (4)
++
++/* Binary data of the emulated services UUIDs */
++
++/* service 1  UUID binary data (little-endian format) */
++#define SANDBOX_SERVICE1_UUID_A1	0xed32d533
++#define SANDBOX_SERVICE1_UUID_A2	0x99e64209
++#define SANDBOX_SERVICE1_UUID_A3	0x9cc02d72
++#define SANDBOX_SERVICE1_UUID_A4	0xcdd998a7
++
++/* service 2  UUID binary data (little-endian format) */
++#define SANDBOX_SERVICE2_UUID_A1	0xed32d544
++#define SANDBOX_SERVICE2_UUID_A2	0x99e64209
++#define SANDBOX_SERVICE2_UUID_A3	0x9cc02d72
++#define SANDBOX_SERVICE2_UUID_A4	0xcdd998a7
++
++/**
++ * struct ffa_rxtxpair_info - structure hosting the RX/TX buffers flags
++ * @rxbuf_owned:	RX buffer ownership flag (the owner is non secure world)
++ * @rxbuf_mapped:	RX buffer mapping flag
++ * @txbuf_owned	TX buffer ownership flag
++ * @txbuf_mapped:	TX buffer mapping flag
++ * @rxtx_buf_size:	RX/TX buffers size
++ *
++ * Hosts the ownership/mapping flags of the RX/TX buffers
++ * When a buffer is owned/mapped its corresponding flag is set to 1 otherwise 0.
++ */
++struct ffa_rxtxpair_info {
++	u8 rxbuf_owned;
++	u8 rxbuf_mapped;
++	u8 txbuf_owned;
++	u8 txbuf_mapped;
++	u32 rxtx_buf_size;
++};
++
++/**
++ * struct sandbox_ffa_emul - emulator data
++ *
++ * @fwk_version:	FF-A framework version
++ * @id:	u-boot endpoint ID
++ * @partitions:	The partitions descriptors structure
++ * @pair:	The RX/TX buffers pair
++ * @pair_info:	The RX/TX buffers pair flags and size
++ * @test_ffa_data:	The data of the FF-A bus under test
++ *
++ * Hosts all the emulated secure world data.
++ */
++struct sandbox_ffa_emul {
++	u32 fwk_version;
++	u16 id;
++	struct ffa_partitions partitions;
++	struct ffa_rxtxpair pair;
++	struct ffa_rxtxpair_info pair_info;
++};
++
++/**
++ * ffa_emul_find() - Finds the FF-A emulator
++ * @dev:	the sandbox FF-A device (sandbox-arm-ffa)
++ * @emulp:	the FF-A emulator device (sandbox-ffa-emul)
++ * Return:
++ * 0 on success. Otherwise, failure
++ */
++int ffa_emul_find(struct udevice *dev, struct udevice **emulp);
++
++#endif
+diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
+index 98b3e0cda4..2db69b8e52 100644
+--- a/configs/sandbox64_defconfig
++++ b/configs/sandbox64_defconfig
+@@ -260,3 +260,5 @@ CONFIG_FWU_MULTI_BANK_UPDATE=y
+ CONFIG_UNIT_TEST=y
+ CONFIG_UT_TIME=y
+ CONFIG_UT_DM=y
++CONFIG_NVMXIP_QSPI=y
++CONFIG_ARM_FFA_TRANSPORT=y
+diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
+index 1ec44d5b33..f77733377d 100644
+--- a/configs/sandbox_defconfig
++++ b/configs/sandbox_defconfig
+@@ -344,3 +344,5 @@ CONFIG_TEST_FDTDEC=y
+ CONFIG_UNIT_TEST=y
+ CONFIG_UT_TIME=y
+ CONFIG_UT_DM=y
++CONFIG_CMD_2048=y
++CONFIG_ARM_FFA_TRANSPORT=y
+diff --git a/doc/arch/arm64.ffa.rst b/doc/arch/arm64.ffa.rst
+index aefd527447..b7c754fa3d 100644
+--- a/doc/arch/arm64.ffa.rst
++++ b/doc/arch/arm64.ffa.rst
+@@ -33,6 +33,10 @@ The U-Boot FF-A support provides the following parts:
+ 
+ - A Uclass driver providing generic FF-A methods.
+ - An Arm FF-A device driver providing Arm-specific methods and reusing the Uclass methods.
++- A sandbox emulator for Arm FF-A, emulates the FF-A side of the Secure World and provides
++  FF-A ABIs inspection methods.
++- An FF-A sandbox device driver for FF-A communication with the emulated Secure World.
++  The driver leverages the FF-A Uclass to establish FF-A communication.
+ 
+ FF-A and SMC specifications
+ -------------------------------------------
+@@ -62,6 +66,7 @@ CONFIG_ARM_FFA_TRANSPORT
+     Enables the FF-A support. Turn this on if you want to use FF-A
+     communication.
+     When using an Arm 64-bit platform, the Arm FF-A driver will be used.
++    When using sandbox, the sandbox FF-A emulator and FF-A sandbox driver will be used.
+ 
+ FF-A ABIs under the hood
+ ---------------------------------------
+@@ -98,10 +103,8 @@ architecture features including FF-A bus.
+ 
+     Class     Index  Probed  Driver                Name
+    -----------------------------------------------------------
+-   ...
+     firmware      0  [ + ]   psci                      |-- psci
+     ffa                   0  [   ]   arm_ffa               |   `-- arm_ffa
+-   ...
+ 
+ The PSCI driver is bound to the PSCI device and when probed it tries to discover
+ the architecture features by calling a callback the features drivers provide.
+@@ -205,6 +208,18 @@ The following features are provided:
+ 
+ - FF-A bus can be compiled and used without EFI
+ 
++Relationship between the sandbox emulator and the FF-A device
++---------------------------------------------------------------
++
++::
++
++   => dm tree
++
++    Class     Index  Probed  Driver                Name
++   -----------------------------------------------------------
++   ffa_emul      0  [ + ]   sandbox_ffa_emul      `-- arm-ffa-emul
++    ffa                  0  [    ]   sandbox_arm_ffa               `-- sandbox-arm-ffa
++
+ The armffa command
+ -----------------------------------
+ 
+diff --git a/doc/arch/sandbox/sandbox.rst b/doc/arch/sandbox/sandbox.rst
+index 77ca6bc4cc..a3631de749 100644
+--- a/doc/arch/sandbox/sandbox.rst
++++ b/doc/arch/sandbox/sandbox.rst
+@@ -200,6 +200,7 @@ Supported Drivers
+ 
+ U-Boot sandbox supports these emulations:
+ 
++- Arm FF-A
+ - Block devices
+ - Chrome OS EC
+ - GPIO
+diff --git a/drivers/firmware/arm-ffa/Kconfig b/drivers/firmware/arm-ffa/Kconfig
+index a7d5392859..d75f8b53fd 100644
+--- a/drivers/firmware/arm-ffa/Kconfig
++++ b/drivers/firmware/arm-ffa/Kconfig
+@@ -2,9 +2,9 @@
+ 
+ config ARM_FFA_TRANSPORT
+ 	bool "Enable Arm Firmware Framework for Armv8-A driver"
+-	depends on DM && ARM64
+-	select ARM_SMCCC
+-	select ARM_SMCCC_FEATURES
++	depends on DM && (ARM64 || SANDBOX)
++	select ARM_SMCCC if !SANDBOX
++	select ARM_SMCCC_FEATURES if !SANDBOX
+ 	imply CMD_ARMFFA
+ 	select LIB_UUID
+ 	select DEVRES
+@@ -33,5 +33,10 @@ config ARM_FFA_TRANSPORT
+ 	  Generic FF-A methods are implemented in the Uclass (arm-ffa-uclass.c).
+ 	  Arm specific methods are implemented in the Arm driver (arm-ffa.c).
+ 
+-	  For more details about the FF-A support, please refer to doc/arch/arm64.ffa.rst
++	  FF-A sandbox is provided to run FF-A under sandbox and allows to test the FF-A Uclass.
++	  Sandbox support includes an emulator for Arm FF-A which emulates the FF-A side of
++	  the Secure World and provides FF-A ABIs inspection methods (ffa-emul-uclass.c).
++	  An FF-A sandbox driver is also provided for FF-A communication with the emulated
++	  Secure World (sandbox_ffa.c).
+ 
++	  For more details about the FF-A support, please refer to doc/arch/arm64.ffa.rst
+diff --git a/drivers/firmware/arm-ffa/Makefile b/drivers/firmware/arm-ffa/Makefile
+index 11b1766285..318123a7f4 100644
+--- a/drivers/firmware/arm-ffa/Makefile
++++ b/drivers/firmware/arm-ffa/Makefile
+@@ -5,4 +5,12 @@
+ # Authors:
+ #   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+ 
+-obj-y += arm-ffa-uclass.o arm-ffa.o
++# build the generic FF-A methods
++obj-y += arm-ffa-uclass.o
++ifeq ($(CONFIG_SANDBOX),y)
++# build the FF-A sandbox emulator and driver
++obj-y += ffa-emul-uclass.o sandbox_ffa.o
++else
++# build the Arm64 FF-A driver
++obj-y += arm-ffa.o
++endif
+diff --git a/drivers/firmware/arm-ffa/ffa-emul-uclass.c b/drivers/firmware/arm-ffa/ffa-emul-uclass.c
+new file mode 100644
+index 0000000000..5562bbaac3
+--- /dev/null
++++ b/drivers/firmware/arm-ffa/ffa-emul-uclass.c
+@@ -0,0 +1,720 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++#include <common.h>
++#include <dm.h>
++#include <mapmem.h>
++#include <string.h>
++#include <asm/global_data.h>
++#include <asm/sandbox_arm_ffa.h>
++#include <asm/sandbox_arm_ffa_priv.h>
++#include <dm/device-internal.h>
++#include <dm/lists.h>
++#include <dm/root.h>
++#include <linux/errno.h>
++#include <linux/sizes.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++/* The partitions (SPs) table */
++static struct ffa_partition_desc sandbox_partitions[SANDBOX_PARTITIONS_CNT] = {
++	{
++		.info = { .id = SANDBOX_SP1_ID, .exec_ctxt = 0x5687, .properties = 0x89325621 },
++		.sp_uuid = {
++			.a1 = SANDBOX_SERVICE1_UUID_A1,
++			.a2 = SANDBOX_SERVICE1_UUID_A2,
++			.a3 = SANDBOX_SERVICE1_UUID_A3,
++			.a4 = SANDBOX_SERVICE1_UUID_A4,
++		}
++	},
++	{
++		.info = { .id = SANDBOX_SP3_ID, .exec_ctxt = 0x7687, .properties = 0x23325621 },
++		.sp_uuid = {
++			.a1 = SANDBOX_SERVICE2_UUID_A1,
++			.a2 = SANDBOX_SERVICE2_UUID_A2,
++			.a3 = SANDBOX_SERVICE2_UUID_A3,
++			.a4 = SANDBOX_SERVICE2_UUID_A4,
++		}
++	},
++	{
++		.info = { .id = SANDBOX_SP2_ID, .exec_ctxt = 0x9587, .properties = 0x45325621 },
++		.sp_uuid = {
++			.a1 = SANDBOX_SERVICE1_UUID_A1,
++			.a2 = SANDBOX_SERVICE1_UUID_A2,
++			.a3 = SANDBOX_SERVICE1_UUID_A3,
++			.a4 = SANDBOX_SERVICE1_UUID_A4,
++		}
++	},
++	{
++		.info = { .id = SANDBOX_SP4_ID, .exec_ctxt = 0x1487, .properties = 0x70325621 },
++		.sp_uuid = {
++			.a1 = SANDBOX_SERVICE2_UUID_A1,
++			.a2 = SANDBOX_SERVICE2_UUID_A2,
++			.a3 = SANDBOX_SERVICE2_UUID_A3,
++			.a4 = SANDBOX_SERVICE2_UUID_A4,
++		}
++	}
++
++};
++
++/* The emulator functions */
++
++/**
++ * sandbox_ffa_version() - Emulated FFA_VERSION handler function
++ * @emul: The sandbox FF-A emulator device
++ * @pargs: The SMC call input arguments a0-a7
++ * @res:  The SMC return data
++ *
++ * Emulate FFA_VERSION FF-A function.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++
++static int sandbox_ffa_version(struct udevice *emul, ffa_value_t *pargs, ffa_value_t *res)
++{
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	priv->fwk_version = FFA_VERSION_1_0;
++	res->a0 = priv->fwk_version;
++
++	/* x1-x7 MBZ */
++	memset(FFA_X1X7_MBZ_REG_START, 0, FFA_X1X7_MBZ_CNT * sizeof(ulong));
++
++	return 0;
++}
++
++/**
++ * sandbox_ffa_id_get() - Emulated FFA_ID_GET handler function
++ * @emul: The sandbox FF-A emulator device
++ * @pargs: The SMC call input arguments a0-a7
++ * @res:  The SMC return data
++ *
++ * Emulate FFA_ID_GET FF-A function.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_id_get(struct udevice *emul, ffa_value_t *pargs, ffa_value_t *res)
++{
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	res->a0 = FFA_SMC_32(FFA_SUCCESS);
++	res->a1 = 0;
++
++	priv->id = NS_PHYS_ENDPOINT_ID;
++	res->a2 = priv->id;
++
++	/* x3-x7 MBZ */
++	memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(ulong));
++
++	return 0;
++}
++
++/**
++ * sandbox_ffa_features() - Emulated FFA_FEATURES handler function
++ * @pargs: The SMC call input arguments a0-a7
++ * @res:  The SMC return data
++ *
++ * Emulate FFA_FEATURES FF-A function.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_features(ffa_value_t *pargs, ffa_value_t *res)
++{
++	res->a1 = 0;
++
++	if (pargs->a1 == FFA_SMC_64(FFA_RXTX_MAP)) {
++		res->a0 = FFA_SMC_32(FFA_SUCCESS);
++		res->a2 = RXTX_BUFFERS_MIN_SIZE;
++		res->a3 = 0;
++		/* x4-x7 MBZ */
++		memset(FFA_X4X7_MBZ_REG_START, 0, FFA_X4X7_MBZ_CNT * sizeof(ulong));
++		return 0;
++	}
++
++	res->a0 = FFA_SMC_32(FFA_ERROR);
++	res->a2 = -NOT_SUPPORTED;
++	/* x3-x7 MBZ */
++	memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(ulong));
++	log_err("FF-A interface %lx not implemented\n", pargs->a1);
++
++	return ffa_to_std_errmap[NOT_SUPPORTED];
++}
++
++/**
++ * sandbox_ffa_partition_info_get() - Emulated FFA_PARTITION_INFO_GET handler
++ * @emul: The sandbox FF-A emulator device
++ * @pargs: The SMC call input arguments a0-a7
++ * @res:  The SMC return data
++ *
++ * Emulate FFA_PARTITION_INFO_GET FF-A function.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_partition_info_get(struct udevice *emul, ffa_value_t *pargs,
++					  ffa_value_t *res)
++{
++	struct ffa_partition_info *rxbuf_desc_info = NULL;
++	u32 descs_cnt;
++	u32 descs_size_bytes;
++	int ret;
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	res->a0 = FFA_SMC_32(FFA_ERROR);
++
++	if (!priv->pair.rxbuf) {
++		res->a2 = -DENIED;
++		ret = ffa_to_std_errmap[DENIED];
++		goto cleanup;
++	}
++
++	if (priv->pair_info.rxbuf_owned) {
++		res->a2 = -BUSY;
++		ret = ffa_to_std_errmap[BUSY];
++		goto cleanup;
++	}
++
++	if (!priv->partitions.descs) {
++		priv->partitions.descs = sandbox_partitions;
++		priv->partitions.count = SANDBOX_PARTITIONS_CNT;
++	}
++
++	descs_size_bytes = SANDBOX_PARTITIONS_CNT *
++		sizeof(struct ffa_partition_desc);
++
++	/* Abort if the RX buffer size is smaller than the descs buffer size */
++	if ((priv->pair_info.rxtx_buf_size * SZ_4K) < descs_size_bytes) {
++		res->a2 = -NO_MEMORY;
++		ret = ffa_to_std_errmap[NO_MEMORY];
++		goto cleanup;
++	}
++
++	rxbuf_desc_info = priv->pair.rxbuf;
++
++	/* No UUID specified. Return the information of all partitions */
++	if (!pargs->a1 && !pargs->a2 && !pargs->a3 && !pargs->a4) {
++		for (descs_cnt = 0; descs_cnt < SANDBOX_PARTITIONS_CNT; descs_cnt++)
++			*(rxbuf_desc_info++) = priv->partitions.descs[descs_cnt].info;
++
++		res->a0 = FFA_SMC_32(FFA_SUCCESS);
++		res->a2 = SANDBOX_PARTITIONS_CNT;
++		/* Transfer ownership to the consumer: the non secure world */
++		priv->pair_info.rxbuf_owned = 1;
++		ret = 0;
++
++		goto cleanup;
++	}
++
++	/* A UUID specified. Return the info of all SPs matching the UUID */
++
++	for (descs_cnt = 0 ; descs_cnt < SANDBOX_PARTITIONS_CNT ; descs_cnt++)
++		if (pargs->a1 == priv->partitions.descs[descs_cnt].sp_uuid.a1 &&
++		    pargs->a2 == priv->partitions.descs[descs_cnt].sp_uuid.a2 &&
++		    pargs->a3 == priv->partitions.descs[descs_cnt].sp_uuid.a3 &&
++		    pargs->a4 == priv->partitions.descs[descs_cnt].sp_uuid.a4) {
++			*(rxbuf_desc_info++) = priv->partitions.descs[descs_cnt].info;
++		}
++
++	if (rxbuf_desc_info != priv->pair.rxbuf) {
++		res->a0 = FFA_SMC_32(FFA_SUCCESS);
++		/* Store the partitions count */
++		res->a2 = (ulong)
++			(rxbuf_desc_info - (struct ffa_partition_info *)
++			 priv->pair.rxbuf);
++		ret = 0;
++
++		/* Transfer ownership to the consumer: the non secure world */
++		priv->pair_info.rxbuf_owned = 1;
++	} else {
++		/* Unrecognized UUID */
++		res->a2 = -INVALID_PARAMETERS;
++		ret = ffa_to_std_errmap[INVALID_PARAMETERS];
++	}
++
++cleanup:
++
++	log_err("FFA_PARTITION_INFO_GET (%ld)\n", res->a2);
++
++	res->a1 = 0;
++
++	/* x3-x7 MBZ */
++	memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(ulong));
++
++	return ret;
++}
++
++/**
++ * sandbox_ffa_rxtx_map() - Emulated FFA_RXTX_MAP handler
++ * @emul: The sandbox FF-A emulator device
++ * @pargs: The SMC call input arguments a0-a7
++ * @res:  The SMC return data
++ *
++ * Emulate FFA_RXTX_MAP FF-A function.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_rxtx_map(struct udevice *emul, ffa_value_t *pargs, ffa_value_t *res)
++{
++	int ret;
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	res->a0 = FFA_SMC_32(FFA_ERROR);
++
++	if (priv->pair.txbuf && priv->pair.rxbuf) {
++		res->a2 = -DENIED;
++		ret = ffa_to_std_errmap[DENIED];
++		goto feedback;
++	}
++
++	if (pargs->a3 >= RXTX_BUFFERS_MIN_PAGES && pargs->a1 && pargs->a2) {
++		priv->pair.txbuf = map_sysmem(pargs->a1, 0);
++		priv->pair.rxbuf = map_sysmem(pargs->a2, 0);
++		priv->pair_info.rxtx_buf_size = pargs->a3;
++		priv->pair_info.rxbuf_mapped = 1;
++		res->a0 = FFA_SMC_32(FFA_SUCCESS);
++		res->a2 = 0;
++		ret = 0;
++		goto feedback;
++	}
++
++	if (!pargs->a1 || !pargs->a2) {
++		res->a2 = -INVALID_PARAMETERS;
++		ret = ffa_to_std_errmap[INVALID_PARAMETERS];
++	} else {
++		res->a2 = -NO_MEMORY;
++		ret = ffa_to_std_errmap[NO_MEMORY];
++	}
++
++	log_err("Error in FFA_RXTX_MAP arguments (%d)\n",
++		(int)res->a2);
++
++feedback:
++
++	res->a1 = 0;
++
++	/* x3-x7 MBZ */
++	memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(ulong));
++
++	return ret;
++}
++
++/**
++ * sandbox_ffa_rxtx_unmap() - Emulated FFA_RXTX_UNMAP handler
++ * @emul: The sandbox FF-A emulator device
++ * @pargs: The SMC call input arguments a0-a7
++ * @res:  The SMC return data
++ *
++ * Emulate FFA_RXTX_UNMAP FF-A function.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_rxtx_unmap(struct udevice *emul, ffa_value_t *pargs, ffa_value_t *res)
++{
++	int ret;
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	res->a0 = FFA_SMC_32(FFA_ERROR);
++	res->a2 = -INVALID_PARAMETERS;
++	ret = ffa_to_std_errmap[INVALID_PARAMETERS];
++
++	if (GET_NS_PHYS_ENDPOINT_ID(pargs->a1) != priv->id)
++		goto feedback;
++
++	if (priv->pair.txbuf && priv->pair.rxbuf) {
++		priv->pair.txbuf = 0;
++		priv->pair.rxbuf = 0;
++		priv->pair_info.rxtx_buf_size = 0;
++		priv->pair_info.rxbuf_mapped = 0;
++		res->a0 = FFA_SMC_32(FFA_SUCCESS);
++		res->a2 = 0;
++		ret = 0;
++		goto feedback;
++	}
++
++	log_err("No buffer pair registered on behalf of the caller\n");
++
++feedback:
++
++	res->a1 = 0;
++
++	/* x3-x7 MBZ */
++	memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(ulong));
++
++	return ret;
++}
++
++/**
++ * sandbox_ffa_rx_release() - Emulated FFA_RX_RELEASE handler
++ * @emul: The sandbox FF-A emulator device
++ * @pargs: The SMC call input arguments a0-a7
++ * @res:  The SMC return data
++ *
++ * Emulate FFA_RX_RELEASE FF-A function.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_rx_release(struct udevice *emul, ffa_value_t *pargs, ffa_value_t *res)
++{
++	int ret;
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	if (!priv->pair_info.rxbuf_owned) {
++		res->a0 = FFA_SMC_32(FFA_ERROR);
++		res->a2 = -DENIED;
++		ret = ffa_to_std_errmap[DENIED];
++	} else {
++		priv->pair_info.rxbuf_owned = 0;
++		res->a0 = FFA_SMC_32(FFA_SUCCESS);
++		res->a2 = 0;
++		ret = 0;
++	}
++
++	res->a1 = 0;
++
++	/* x3-x7 MBZ */
++	memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(ulong));
++
++	return ret;
++}
++
++/**
++ * sandbox_ffa_sp_valid() - Check SP validity
++ * @emul: The sandbox FF-A emulator device
++ * @part_id:	partition ID to check
++ *
++ * Search the input ID in the descriptors table.
++ *
++ * Return:
++ *
++ * 1 on success (Partition found). Otherwise, failure
++ */
++static int sandbox_ffa_sp_valid(struct udevice *emul, u16 part_id)
++{
++	u32 descs_cnt;
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	for (descs_cnt = 0 ; descs_cnt < SANDBOX_PARTITIONS_CNT ; descs_cnt++)
++		if (priv->partitions.descs[descs_cnt].info.id == part_id)
++			return 1;
++
++	return 0;
++}
++
++/**
++ * sandbox_ffa_msg_send_direct_req() - Emulated FFA_MSG_SEND_DIRECT_{REQ,RESP} handler
++ * @emul: The sandbox FF-A emulator device
++ * @pargs: The SMC call input arguments a0-a7
++ * @res:  The SMC return data
++ *
++ * Emulate FFA_MSG_SEND_DIRECT_{REQ,RESP} FF-A ABIs.
++ * Only SMC 64-bit is supported in Sandbox.
++ *
++ * Emulating interrupts is not supported. So, FFA_RUN and FFA_INTERRUPT are not
++ * supported. In case of success FFA_MSG_SEND_DIRECT_RESP is returned with
++ * default pattern data (0xff).
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_msg_send_direct_req(struct udevice *emul,
++					   ffa_value_t *pargs, ffa_value_t *res)
++{
++	u16 part_id;
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	part_id = GET_DST_SP_ID(pargs->a1);
++
++	if (GET_NS_PHYS_ENDPOINT_ID(pargs->a1) != priv->id ||
++	    !sandbox_ffa_sp_valid(emul, part_id) || pargs->a2) {
++		res->a0 = FFA_SMC_32(FFA_ERROR);
++		res->a1 = 0;
++		res->a2 = -INVALID_PARAMETERS;
++
++		/* x3-x7 MBZ */
++		memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(ulong));
++
++		return ffa_to_std_errmap[INVALID_PARAMETERS];
++	}
++
++	res->a0 = FFA_SMC_64(FFA_MSG_SEND_DIRECT_RESP);
++
++	res->a1 = PREP_SRC_SP_ID(part_id) |
++		PREP_NS_PHYS_ENDPOINT_ID(priv->id);
++
++	res->a2 = 0;
++
++	/* Return 0xff bytes as a response */
++	res->a3 = -1UL;
++	res->a4 = -1UL;
++	res->a5 = -1UL;
++	res->a6 = -1UL;
++	res->a7 = -1UL;
++
++	return 0;
++}
++
++/**
++ * sandbox_ffa_get_rxbuf_flags() - Read the mapping/ownership flags
++ * @emul: The sandbox FF-A emulator device
++ * @queried_func_id:	The FF-A function to be queried
++ * @func_data:  Pointer to the FF-A function arguments container structure
++ *
++ * Query the status flags of the following emulated
++ * ABIs: FFA_RXTX_MAP, FFA_RXTX_UNMAP, FFA_RX_RELEASE.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_get_rxbuf_flags(struct udevice *emul, u32 queried_func_id,
++				       struct ffa_sandbox_data *func_data)
++{
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	if (!func_data)
++		return -EINVAL;
++
++	if (!func_data->data0 || func_data->data0_size != sizeof(u8))
++		return -EINVAL;
++
++	switch (queried_func_id) {
++	case FFA_RXTX_MAP:
++	case FFA_RXTX_UNMAP:
++		*((u8 *)func_data->data0) = priv->pair_info.rxbuf_mapped;
++		return 0;
++	case FFA_RX_RELEASE:
++		*((u8 *)func_data->data0) = priv->pair_info.rxbuf_owned;
++		return 0;
++	default:
++		log_err("The querried FF-A interface flag (%d) undefined\n",
++			queried_func_id);
++		return -EINVAL;
++	}
++}
++
++/**
++ * sandbox_ffa_get_fwk_version() - Return the FFA framework version
++ * @emul: The sandbox FF-A emulator device
++ * @func_data:  Pointer to the FF-A function arguments container structure
++ *
++ * Return the FFA framework version read from the FF-A emulator data.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_get_fwk_version(struct udevice *emul, struct ffa_sandbox_data *func_data)
++{
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	if (!func_data)
++		return -EINVAL;
++
++	if (!func_data->data0 ||
++	    func_data->data0_size != sizeof(priv->fwk_version))
++		return -EINVAL;
++
++	*((u32 *)func_data->data0) = priv->fwk_version;
++
++	return 0;
++}
++
++/**
++ * sandbox_ffa_get_parts() - Return the address of partitions data
++ * @emul: The sandbox FF-A emulator device
++ * @func_data:  Pointer to the FF-A function arguments container structure
++ *
++ * Return the address of partitions data read from the FF-A emulator data.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_get_parts(struct udevice *emul, struct ffa_sandbox_data *func_data)
++{
++	struct sandbox_ffa_emul *priv = dev_get_priv(emul);
++
++	if (!func_data)
++		return -EINVAL;
++
++	if (!func_data->data0 ||
++	    func_data->data0_size != sizeof(struct ffa_partitions *))
++		return -EINVAL;
++
++	*((struct ffa_partitions **)func_data->data0) = &priv->partitions;
++
++	return 0;
++}
++
++/**
++ * sandbox_query_ffa_emul_state() - Inspect the FF-A ABIs
++ * @queried_func_id:	The FF-A function to be queried
++ * @func_data:  Pointer to the FF-A function arguments container structure
++ *
++ * Query the status of FF-A ABI specified in the input argument.
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++int sandbox_query_ffa_emul_state(u32 queried_func_id,
++				 struct ffa_sandbox_data *func_data)
++{
++	struct udevice *emul;
++	int ret;
++
++	ret = uclass_first_device_err(UCLASS_FFA_EMUL, &emul);
++	if (ret) {
++		log_err("Cannot find FF-A emulator during querying state\n");
++		return ret;
++	}
++
++	switch (queried_func_id) {
++	case FFA_RXTX_MAP:
++	case FFA_RXTX_UNMAP:
++	case FFA_RX_RELEASE:
++		return sandbox_ffa_get_rxbuf_flags(emul, queried_func_id, func_data);
++	case FFA_VERSION:
++		return sandbox_ffa_get_fwk_version(emul, func_data);
++	case FFA_PARTITION_INFO_GET:
++		return sandbox_ffa_get_parts(emul, func_data);
++	default:
++		log_err("Undefined FF-A interface (%d)\n",
++			queried_func_id);
++		return -EINVAL;
++	}
++}
++
++/**
++ * sandbox_arm_ffa_smccc_smc() - FF-A SMC call emulation
++ * @args:	the SMC call arguments
++ * @res:	the SMC call returned data
++ *
++ * Emulate the FF-A ABIs SMC call.
++ * The emulated FF-A ABI is identified and invoked.
++ * FF-A emulation is based on the FF-A specification 1.0
++ *
++ * Return:
++ *
++ * 0 on success. Otherwise, failure.
++ * FF-A protocol error codes are returned using the registers arguments as
++ * described by the specification
++ */
++void sandbox_arm_ffa_smccc_smc(ffa_value_t *args, ffa_value_t *res)
++{
++	int ret = 0;
++	struct udevice *emul;
++
++	ret = uclass_first_device_err(UCLASS_FFA_EMUL, &emul);
++	if (ret) {
++		log_err("Cannot find FF-A emulator during SMC emulation\n");
++		return;
++	}
++
++	switch (args->a0) {
++	case FFA_SMC_32(FFA_VERSION):
++		ret = sandbox_ffa_version(emul, args, res);
++		break;
++	case FFA_SMC_32(FFA_PARTITION_INFO_GET):
++		ret = sandbox_ffa_partition_info_get(emul, args, res);
++		break;
++	case FFA_SMC_32(FFA_RXTX_UNMAP):
++		ret = sandbox_ffa_rxtx_unmap(emul, args, res);
++		break;
++	case FFA_SMC_64(FFA_MSG_SEND_DIRECT_REQ):
++		ret = sandbox_ffa_msg_send_direct_req(emul, args, res);
++		break;
++	case FFA_SMC_32(FFA_ID_GET):
++		ret = sandbox_ffa_id_get(emul, args, res);
++		break;
++	case FFA_SMC_32(FFA_FEATURES):
++		ret = sandbox_ffa_features(args, res);
++		break;
++	case FFA_SMC_64(FFA_RXTX_MAP):
++		ret = sandbox_ffa_rxtx_map(emul, args, res);
++		break;
++	case FFA_SMC_32(FFA_RX_RELEASE):
++		ret = sandbox_ffa_rx_release(emul, args, res);
++		break;
++	default:
++		log_err("Undefined FF-A interface (%lx)\n",
++			args->a0);
++	}
++
++	if (ret != 0)
++		log_err("FF-A ABI internal failure (%d)\n", ret);
++}
++
++/**
++ * invoke_ffa_fn() - SMC wrapper
++ * @args: FF-A ABI arguments to be copied to Xn registers
++ * @res: FF-A ABI return data to be copied from Xn registers
++ *
++ * Calls the emulated SMC call.
++ */
++void invoke_ffa_fn(ffa_value_t args, ffa_value_t *res)
++{
++	sandbox_arm_ffa_smccc_smc(&args, res);
++}
++
++/**
++ * ffa_emul_find() - Find the FF-A emulator
++ * @dev:	the sandbox FF-A device (sandbox-arm-ffa)
++ * @emulp:	the FF-A emulator device (sandbox-ffa-emul)
++ *
++ * Search for the FF-A emulator and returns its device pointer.
++ *
++ * Return:
++ * 0 on success. Otherwise, failure
++ */
++int ffa_emul_find(struct udevice *dev, struct udevice **emulp)
++{
++	int ret;
++
++	ret = uclass_first_device_err(UCLASS_FFA_EMUL, emulp);
++	if (ret) {
++		log_err("Cannot find FF-A emulator\n");
++		return ret;
++	}
++
++	log_info("FF-A emulator ready to use\n");
++
++	return 0;
++}
++
++UCLASS_DRIVER(ffa_emul) = {
++	.name		= "ffa_emul",
++	.id		= UCLASS_FFA_EMUL,
++	.post_bind = dm_scan_fdt_dev,
++};
++
++static const struct udevice_id sandbox_ffa_emul_ids[] = {
++	{ .compatible = "sandbox,arm-ffa-emul" },
++	{ }
++};
++
++/* Declaring the sandbox FF-A emulator under UCLASS_FFA_EMUL */
++U_BOOT_DRIVER(sandbox_ffa_emul) = {
++	.name		= "sandbox_ffa_emul",
++	.id		= UCLASS_FFA_EMUL,
++	.of_match	= sandbox_ffa_emul_ids,
++	.priv_auto	= sizeof(struct sandbox_ffa_emul),
++};
+diff --git a/drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h b/drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h
+deleted file mode 100644
+index 4338f9c9b1..0000000000
+--- a/drivers/firmware/arm-ffa/sandbox_arm_ffa_priv.h
++++ /dev/null
+@@ -1,14 +0,0 @@
+-/* SPDX-License-Identifier: GPL-2.0+ */
+-/*
+- * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+- *
+- * Authors:
+- *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+- */
+-
+-#ifndef __SANDBOX_ARM_FFA_PRV_H
+-#define __SANDBOX_ARM_FFA_PRV_H
+-
+-/* Future sandbox support private declarations */
+-
+-#endif
+diff --git a/drivers/firmware/arm-ffa/sandbox_ffa.c b/drivers/firmware/arm-ffa/sandbox_ffa.c
+new file mode 100644
+index 0000000000..ef9491ccea
+--- /dev/null
++++ b/drivers/firmware/arm-ffa/sandbox_ffa.c
+@@ -0,0 +1,110 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++#include <common.h>
++#include <arm_ffa.h>
++#include <dm.h>
++#include <log.h>
++#include <asm/global_data.h>
++#include <asm/sandbox_arm_ffa_priv.h>
++#include <dm/device-internal.h>
++#include <linux/errno.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++/**
++ * sandbox_ffa_discover() - perform sandbox FF-A discovery
++ * @dev: The sandbox FF-A bus device
++ * Try to discover the FF-A framework. Discovery is performed by
++ * querying the FF-A framework version from secure world using the FFA_VERSION ABI.
++ * Return:
++ *
++ * 0 on success. Otherwise, failure
++ */
++static int sandbox_ffa_discover(struct udevice *dev)
++{
++	int ret;
++	struct udevice *emul;
++
++	log_info("Emulated FF-A framework discovery\n");
++
++	ret = ffa_emul_find(dev, &emul);
++	if (ret) {
++		log_err("Cannot find FF-A emulator\n");
++		return ret;
++	}
++
++	ret = ffa_get_version_hdlr(dev);
++	if (ret)
++		return ret;
++
++	return 0;
++}
++
++/**
++ * sandbox_ffa_probe() - The sandbox FF-A driver probe function
++ * @dev:	the sandbox-arm-ffa device
++ * Save the emulator device in uc_priv.
++ * Return:
++ *
++ * 0 on success.
++ */
++static int sandbox_ffa_probe(struct udevice *dev)
++{
++	int ret;
++	struct ffa_priv *uc_priv = dev_get_uclass_priv(dev);
++
++	ret = uclass_first_device_err(UCLASS_FFA_EMUL, &uc_priv->emul);
++	if (ret) {
++		log_err("Cannot find FF-A emulator\n");
++		return ret;
++	}
++
++	return 0;
++}
++
++/**
++ * sandbox_ffa_bind() - The sandbox FF-A driver bind function
++ * @dev:	the sandbox-arm-ffa device
++ * Try to discover the emulated FF-A bus.
++ * Return:
++ *
++ * 0 on success.
++ */
++static int sandbox_ffa_bind(struct udevice *dev)
++{
++	int ret;
++
++	ret = sandbox_ffa_discover(dev);
++	if (ret)
++		return ret;
++
++	return 0;
++}
++
++/* Sandbox Arm FF-A emulator operations */
++
++static const struct ffa_bus_ops sandbox_ffa_ops = {
++	.partition_info_get = ffa_get_partitions_info_hdlr,
++	.sync_send_receive = ffa_msg_send_direct_req_hdlr,
++	.rxtx_unmap = ffa_unmap_rxtx_buffers_hdlr,
++};
++
++static const struct udevice_id sandbox_ffa_id[] = {
++	{ "sandbox,arm-ffa", 0 },
++	{ },
++};
++
++/* Declaring the sandbox FF-A driver under UCLASS_FFA */
++U_BOOT_DRIVER(sandbox_arm_ffa) = {
++	.name		= "sandbox_arm_ffa",
++	.of_match = sandbox_ffa_id,
++	.id		= UCLASS_FFA,
++	.bind		= sandbox_ffa_bind,
++	.probe		= sandbox_ffa_probe,
++	.ops		= &sandbox_ffa_ops,
++};
+diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
+index 3c6af2e3d2..0432c95c9e 100644
+--- a/include/dm/uclass-id.h
++++ b/include/dm/uclass-id.h
+@@ -63,6 +63,7 @@ enum uclass_id {
+ 	UCLASS_ETH_PHY,		/* Ethernet PHY device */
+ 	UCLASS_EXTCON,		/* External Connector Class */
+ 	UCLASS_FFA,		/* Arm Firmware Framework for Armv8-A */
++	UCLASS_FFA_EMUL,		/* sandbox FF-A device emulator */
+ 	UCLASS_FIRMWARE,	/* Firmware */
+ 	UCLASS_FPGA,		/* FPGA device */
+ 	UCLASS_FUZZING_ENGINE,	/* Fuzzing engine */
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-arm_ffa-introduce-the-FF-A-Sandbox-driver.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-arm_ffa-introduce-the-FF-A-Sandbox-driver.patch
deleted file mode 100644
index 8c3892f..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0006-arm_ffa-introduce-the-FF-A-Sandbox-driver.patch
+++ /dev/null
@@ -1,1164 +0,0 @@
-From 301430b7c8dceebe349b82c598097628da733090 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Tue, 29 Nov 2022 14:44:36 +0000
-Subject: [PATCH 06/42] arm_ffa: introduce the FF-A Sandbox driver
-
-Provide a Sandbox driver to emulate the FF-A ABIs
-
-The emulated ABIs are those supported by the FF-A core driver
-and according to FF-A specification v1.0.
-
-The Sandbox driver provides operations allowing the test
-application to read the status of all the inspected ABIs
-and perform functional tests based on that.
-
-sandbox driver supports only 64-bit direct messaging.
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v8: update ffa_bus_prvdata_get() to return a pointer rather than
-    a pointer address
-
-v7: state that sandbox driver supports only 64-bit direct messaging
-
-v4: align sandbox driver with the new FF-A driver interfaces
-    and new way of error handling
-
-v1: introduce the sandbox driver
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- MAINTAINERS                                   |   1 +
- configs/sandbox64_defconfig                   |   2 +
- configs/sandbox_defconfig                     |   2 +
- drivers/firmware/arm-ffa/Kconfig              |   9 +-
- drivers/firmware/arm-ffa/Makefile             |   1 +
- drivers/firmware/arm-ffa/arm_ffa_prv.h        |  15 +-
- drivers/firmware/arm-ffa/core.c               |  22 +-
- drivers/firmware/arm-ffa/sandbox.c            | 659 ++++++++++++++++++
- .../firmware/arm-ffa/sandbox_arm_ffa_prv.h    | 144 ++++
- include/arm_ffa.h                             |   2 +-
- include/sandbox_arm_ffa.h                     |  91 +++
- lib/efi_loader/efi_boottime.c                 |   2 +-
- 12 files changed, 937 insertions(+), 13 deletions(-)
- create mode 100644 drivers/firmware/arm-ffa/sandbox.c
- create mode 100644 drivers/firmware/arm-ffa/sandbox_arm_ffa_prv.h
- create mode 100644 include/sandbox_arm_ffa.h
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index 61ce6c436f..297d165f84 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -271,6 +271,7 @@ F:	cmd/armffa.c
- F:	doc/arch/arm64.ffa.rst
- F:	drivers/firmware/arm-ffa/
- F:	include/arm_ffa.h
-+F:	include/sandbox_arm_ffa.h
- 
- ARM FREESCALE IMX
- M:	Stefano Babic <sbabic@denx.de>
-diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
-index ba45ac0b71..4b8a1ec42b 100644
---- a/configs/sandbox64_defconfig
-+++ b/configs/sandbox64_defconfig
-@@ -259,3 +259,5 @@ CONFIG_FWU_MULTI_BANK_UPDATE=y
- CONFIG_UNIT_TEST=y
- CONFIG_UT_TIME=y
- CONFIG_UT_DM=y
-+CONFIG_ARM_FFA_TRANSPORT=y
-+CONFIG_SANDBOX_FFA=y
-\ No newline at end of file
-diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
-index be46cae7aa..650f06ae61 100644
---- a/configs/sandbox_defconfig
-+++ b/configs/sandbox_defconfig
-@@ -334,3 +334,5 @@ CONFIG_TEST_FDTDEC=y
- CONFIG_UNIT_TEST=y
- CONFIG_UT_TIME=y
- CONFIG_UT_DM=y
-+CONFIG_ARM_FFA_TRANSPORT=y
-+CONFIG_SANDBOX_FFA=y
-\ No newline at end of file
-diff --git a/drivers/firmware/arm-ffa/Kconfig b/drivers/firmware/arm-ffa/Kconfig
-index be4df89d23..b86f16d778 100644
---- a/drivers/firmware/arm-ffa/Kconfig
-+++ b/drivers/firmware/arm-ffa/Kconfig
-@@ -2,8 +2,8 @@
- 
- config ARM_FFA_TRANSPORT
- 	bool "Enable Arm Firmware Framework for Armv8-A driver"
--	depends on DM && ARM64
--	select ARM_SMCCC
-+	depends on DM && (ARM64 || SANDBOX)
-+	select ARM_SMCCC if !SANDBOX
- 	select CMD_ARMFFA
- 	select LIB_UUID
- 	select DEVRES
-@@ -29,3 +29,8 @@ config ARM_FFA_TRANSPORT
- 
- 	  For more details about the FF-A driver, please refer to doc/arch/arm64.ffa.rst
- 
-+config SANDBOX_FFA
-+	bool "FF-A Sandbox driver"
-+	depends on ARM_FFA_TRANSPORT && SANDBOX
-+	help
-+	  This emulates the FF-A handling under Sandbox and allows to test the FF-A driver
-diff --git a/drivers/firmware/arm-ffa/Makefile b/drivers/firmware/arm-ffa/Makefile
-index 043a8915be..0d21d6b47a 100644
---- a/drivers/firmware/arm-ffa/Makefile
-+++ b/drivers/firmware/arm-ffa/Makefile
-@@ -4,3 +4,4 @@
- # Abdellatif El Khlifi, Arm Limited, abdellatif.elkhlifi@arm.com.
- 
- obj-y += arm-ffa-uclass.o core.o
-+obj-$(CONFIG_SANDBOX_FFA) += sandbox.o
-diff --git a/drivers/firmware/arm-ffa/arm_ffa_prv.h b/drivers/firmware/arm-ffa/arm_ffa_prv.h
-index 4eea7dc036..bbc8b87069 100644
---- a/drivers/firmware/arm-ffa/arm_ffa_prv.h
-+++ b/drivers/firmware/arm-ffa/arm_ffa_prv.h
-@@ -19,6 +19,16 @@
- /* FF-A core driver name */
- #define FFA_DRV_NAME "arm_ffa"
- 
-+/* The FF-A SMC function definitions */
-+
-+#if CONFIG_IS_ENABLED(SANDBOX_FFA)
-+#include "sandbox_arm_ffa.h"
-+#else
-+typedef struct arm_smccc_1_2_regs ffa_value_t;
-+#endif
-+
-+typedef void (*invoke_ffa_fn_t)(ffa_value_t args, ffa_value_t *res);
-+
- /* FF-A driver version definitions */
- 
- #define MAJOR_VERSION_MASK		GENMASK(30, 16)
-@@ -103,11 +113,6 @@ struct ffa_abi_errmap {
- #define FFA_ERRMAP_COUNT (FFA_LAST_ID - FFA_FIRST_ID + 1)
- #define FFA_ID_TO_ERRMAP_ID(ffa_id) ((ffa_id) - FFA_FIRST_ID)
- 
--/* The FF-A SMC function definitions */
--
--typedef struct arm_smccc_1_2_regs ffa_value_t;
--typedef void (*invoke_ffa_fn_t)(ffa_value_t args, ffa_value_t *res);
--
- /*
-  * struct ffa_partition_uuid - 16 bytes UUID transmitted by FFA_PARTITION_INFO_GET
-  * @a1-4:	32-bit words access to the UUID data
-diff --git a/drivers/firmware/arm-ffa/core.c b/drivers/firmware/arm-ffa/core.c
-index 0b1f8e6a07..560603b28b 100644
---- a/drivers/firmware/arm-ffa/core.c
-+++ b/drivers/firmware/arm-ffa/core.c
-@@ -1072,6 +1072,7 @@ static int ffa_msg_send_direct_req(struct udevice *dev, u16 dst_part_id,
- 	return ffa_to_std_errno(ffa_errno);
- }
- 
-+#if !CONFIG_IS_ENABLED(SANDBOX_FFA)
- /**
-  * __arm_ffa_fn_smc - SMC wrapper
-  * @args: FF-A ABI arguments to be copied to Xn registers
-@@ -1085,6 +1086,7 @@ void __arm_ffa_fn_smc(ffa_value_t args, ffa_value_t *res)
- {
- 	arm_smccc_1_2_smc(&args, res);
- }
-+#endif
- 
- /**
-  * ffa_set_smc_conduit - Set the SMC conduit
-@@ -1098,7 +1100,12 @@ void __arm_ffa_fn_smc(ffa_value_t args, ffa_value_t *res)
-  */
- static int ffa_set_smc_conduit(void)
- {
--	ffa_priv_data->invoke_ffa_fn = __arm_ffa_fn_smc;
-+#if CONFIG_IS_ENABLED(SANDBOX_FFA)
-+		ffa_priv_data->invoke_ffa_fn = sandbox_arm_ffa_smccc_smc;
-+		ffa_info("Using SMC emulation");
-+#else
-+		ffa_priv_data->invoke_ffa_fn = __arm_ffa_fn_smc;
-+#endif
- 
- 	if (!ffa_priv_data->invoke_ffa_fn) {
- 		ffa_err("failure to set the invoke function");
-@@ -1275,17 +1282,18 @@ struct ffa_prvdata *ffa_bus_prvdata_get(void)
- }
- 
- /**
-- * ffa_bus_discover - discover FF-A bus and probe arm_ffa device
-+ * ffa_bus_discover - discover FF-A bus and probe arm_ffa and sandbox_arm_ffa devices
-  * @pdev: the address of a device pointer (to be filled when the arm_ffa bus device is created
-  *       successfully)
-  *
-  * This function makes sure the FF-A bus is discoverable.
-- * When probing succeeds FF-A discovery is done. The arm_ffa device is ready to use.
-+ * When probing succeeds FF-A discovery is done. The arm_ffa and sandbox_arm_ffa devices
-+ * are ready to use.
-  *
-  * When the bus was already discovered successfully the discovery will not run again.
-  *
-  * Arm FF-A transport is implemented through arm_ffa u-boot device managing the FF-A
-- * communication.
-+ * communication. In Sandbox mode sandbox_arm_ffa is used to test arm_ffa driver.
-  * All FF-A clients should use the arm_ffa device to use the FF-A transport.
-  *
-  * Return:
-@@ -1299,6 +1307,12 @@ int ffa_bus_discover(struct udevice **pdev)
- 	if (!ffa_priv_data) {
- 		ret = ffa_device_get(pdev);
- 
-+#if CONFIG_IS_ENABLED(SANDBOX_FFA)
-+		if (ret == 0)
-+			ret = sandbox_ffa_device_get();
-+#endif
-+	}
-+
- 	return ret;
- }
- 
-diff --git a/drivers/firmware/arm-ffa/sandbox.c b/drivers/firmware/arm-ffa/sandbox.c
-new file mode 100644
-index 0000000000..16f1ca926e
---- /dev/null
-+++ b/drivers/firmware/arm-ffa/sandbox.c
-@@ -0,0 +1,659 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include "sandbox_arm_ffa_prv.h"
-+#include <asm/global_data.h>
-+#include <common.h>
-+#include <dm.h>
-+#include <dm/device-internal.h>
-+#include <dm/root.h>
-+#include <linux/errno.h>
-+#include <linux/sizes.h>
-+#include <mapmem.h>
-+#include <string.h>
-+
-+DECLARE_GLOBAL_DATA_PTR;
-+
-+/**
-+ * The device private data structure containing all the emulated secure world data
-+ */
-+static struct sandbox_ffa_prvdata  sandbox_ffa_priv_data = {0};
-+
-+/* The partitions (SPs) table */
-+static struct ffa_partition_desc sandbox_partitions[SANDBOX_PARTITIONS_CNT] = {
-+	{
-+		.info = { .id = SANDBOX_SP1_ID, .exec_ctxt = 0x5687, .properties = 0x89325621 },
-+		.sp_uuid = {
-+			.a1 = SANDBOX_SERVICE1_UUID_A1,
-+			.a2 = SANDBOX_SERVICE1_UUID_A2,
-+			.a3 = SANDBOX_SERVICE1_UUID_A3,
-+			.a4 = SANDBOX_SERVICE1_UUID_A4,
-+		}
-+	},
-+	{
-+		.info = { .id = SANDBOX_SP2_ID, .exec_ctxt = 0x9587, .properties = 0x45325621 },
-+		.sp_uuid = {
-+			.a1 = SANDBOX_SERVICE2_UUID_A1,
-+			.a2 = SANDBOX_SERVICE2_UUID_A2,
-+			.a3 = SANDBOX_SERVICE2_UUID_A3,
-+			.a4 = SANDBOX_SERVICE2_UUID_A4,
-+		}
-+	},
-+	{
-+		.info = { .id = SANDBOX_SP3_ID, .exec_ctxt = 0x7687, .properties = 0x23325621 },
-+		.sp_uuid = {
-+			.a1 = SANDBOX_SERVICE1_UUID_A1,
-+			.a2 = SANDBOX_SERVICE1_UUID_A2,
-+			.a3 = SANDBOX_SERVICE1_UUID_A3,
-+			.a4 = SANDBOX_SERVICE1_UUID_A4,
-+		}
-+	},
-+	{
-+		.info = { .id = SANDBOX_SP4_ID, .exec_ctxt = 0x1487, .properties = 0x70325621 },
-+		.sp_uuid = {
-+			.a1 = SANDBOX_SERVICE2_UUID_A1,
-+			.a2 = SANDBOX_SERVICE2_UUID_A2,
-+			.a3 = SANDBOX_SERVICE2_UUID_A3,
-+			.a4 = SANDBOX_SERVICE2_UUID_A4,
-+		}
-+	}
-+
-+};
-+
-+/*
-+ * Driver functions
-+ */
-+
-+/**
-+ * sandbox_ffa_get_device - probes the sandbox_arm_ffa device
-+ *
-+ * This function makes sure the sandbox_arm_ffa device is probed
-+ * This function makes sure the sandbox_arm_ffa device is
-+ * created, bound to this driver, probed and ready to use.
-+ *
-+ * sandbox_arm_ffa depends on arm_ffa device. This dependency is
-+ * handled by ffa_bus_discover function. arm_ffa is probed first then
-+ * sandbox_arm_ffa.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+int sandbox_ffa_device_get(void)
-+{
-+	int ret;
-+
-+	if (sandbox_ffa_priv_data.dev)
-+		return 0;
-+
-+	ret = device_bind(dm_root(),
-+			  DM_DRIVER_GET(sandbox_arm_ffa),
-+			  FFA_SANDBOX_DRV_NAME,
-+			  NULL,
-+			  ofnode_null(),
-+			  &sandbox_ffa_priv_data.dev);
-+	if (ret) {
-+		sandbox_ffa_priv_data.dev = NULL;
-+		return ret;
-+	}
-+
-+	ret = device_probe(sandbox_ffa_priv_data.dev);
-+	if (ret) {
-+		ffa_err("[Sandbox] can not probe  the device");
-+		device_unbind(sandbox_ffa_priv_data.dev);
-+		sandbox_ffa_priv_data.dev = NULL;
-+		return ret;
-+	}
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_version - Emulated FFA_VERSION handler function
-+ * @{a0-a7} , res: The SMC call arguments and return structure.
-+ *
-+ * This is the function that emulates FFA_VERSION FF-A function.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+SANDBOX_SMC_FFA_ABI(ffa_version)
-+{
-+	sandbox_ffa_priv_data.fwk_version = FFA_VERSION_1_0;
-+	res->a0 = sandbox_ffa_priv_data.fwk_version;
-+
-+	/* x1-x7 MBZ */
-+	memset(FFA_X1X7_MBZ_REG_START, 0, FFA_X1X7_MBZ_CNT * sizeof(unsigned long));
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_id_get - Emulated FFA_ID_GET handler function
-+ * @{a0-a7} , res: The SMC call arguments and return structure.
-+ *
-+ * This is the function that emulates FFA_ID_GET FF-A function.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+SANDBOX_SMC_FFA_ABI(ffa_id_get)
-+{
-+	res->a0 = FFA_SMC_32(FFA_SUCCESS);
-+	res->a1 = 0;
-+
-+	sandbox_ffa_priv_data.id = NS_PHYS_ENDPOINT_ID;
-+	res->a2 = sandbox_ffa_priv_data.id;
-+
-+	/* x3-x7 MBZ */
-+	memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(unsigned long));
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_features - Emulated FFA_FEATURES handler function
-+ * @{a0-a7} , res: The SMC call arguments and return structure.
-+ *
-+ * This is the function that emulates FFA_FEATURES FF-A function.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+SANDBOX_SMC_FFA_ABI(ffa_features)
-+{
-+	if (pargs->a1 == FFA_SMC_64(FFA_RXTX_MAP)) {
-+		res->a0 = FFA_SMC_32(FFA_SUCCESS);
-+		res->a2 = RXTX_BUFFERS_MIN_SIZE;
-+		res->a3 = 0;
-+		/* x4-x7 MBZ */
-+		memset(FFA_X4X7_MBZ_REG_START,
-+		       0, FFA_X4X7_MBZ_CNT * sizeof(unsigned long));
-+	} else {
-+		res->a0 = FFA_SMC_32(FFA_ERROR);
-+		res->a2 = FFA_ERR_STAT_NOT_SUPPORTED;
-+		/* x3-x7 MBZ */
-+		memset(FFA_X3_MBZ_REG_START,
-+		       0, FFA_X3X7_MBZ_CNT * sizeof(unsigned long));
-+		ffa_err("[Sandbox] FF-A interface 0x%lx not implemented", pargs->a1);
-+	}
-+
-+	res->a1 = 0;
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_partition_info_get - Emulated FFA_PARTITION_INFO_GET handler function
-+ * @{a0-a7} , res: The SMC call arguments and return structure.
-+ *
-+ * This is the function that emulates FFA_PARTITION_INFO_GET FF-A function.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+SANDBOX_SMC_FFA_ABI(ffa_partition_info_get)
-+{
-+	struct ffa_partition_info *rxbuf_desc_info = NULL;
-+	u32 descs_cnt;
-+	u32 descs_size_bytes;
-+
-+	res->a0 = FFA_SMC_32(FFA_ERROR);
-+
-+	if (!sandbox_ffa_priv_data.pair.rxbuf) {
-+		res->a2 = FFA_ERR_STAT_DENIED;
-+		goto cleanup;
-+	}
-+
-+	if (sandbox_ffa_priv_data.pair_info.rxbuf_owned) {
-+		res->a2 = FFA_ERR_STAT_BUSY;
-+		goto cleanup;
-+	}
-+
-+	if (!sandbox_ffa_priv_data.partitions.descs) {
-+		sandbox_ffa_priv_data.partitions.descs = sandbox_partitions;
-+		sandbox_ffa_priv_data.partitions.count = SANDBOX_PARTITIONS_CNT;
-+	}
-+
-+	descs_size_bytes = SANDBOX_PARTITIONS_CNT * sizeof(struct ffa_partition_desc);
-+
-+	/* Abort if the RX buffer size is smaller than the descriptors buffer size */
-+	if ((sandbox_ffa_priv_data.pair_info.rxtx_buf_size * SZ_4K) < descs_size_bytes) {
-+		res->a2 = FFA_ERR_STAT_NO_MEMORY;
-+		goto cleanup;
-+	}
-+
-+	rxbuf_desc_info = (struct ffa_partition_info *)sandbox_ffa_priv_data.pair.rxbuf;
-+
-+	/* No UUID specified. Return the information of all partitions */
-+	if (!pargs->a1 && !pargs->a2 && !pargs->a3 && !pargs->a4) {
-+		for (descs_cnt = 0 ; descs_cnt < SANDBOX_PARTITIONS_CNT ; descs_cnt++)
-+			*(rxbuf_desc_info++) =
-+				sandbox_ffa_priv_data.partitions.descs[descs_cnt].info;
-+
-+		res->a0 = FFA_SMC_32(FFA_SUCCESS);
-+		res->a2 = SANDBOX_PARTITIONS_CNT;
-+		/* transfer ownership to the consumer: the non secure world */
-+		sandbox_ffa_priv_data.pair_info.rxbuf_owned = 1;
-+
-+		goto cleanup;
-+	}
-+
-+	/*
-+	 * A UUID is specified. Return the information of all partitions matching
-+	 * the UUID
-+	 */
-+
-+	for (descs_cnt = 0 ; descs_cnt < SANDBOX_PARTITIONS_CNT ; descs_cnt++)
-+		if (pargs->a1 == sandbox_ffa_priv_data.partitions.descs[descs_cnt].sp_uuid.a1 &&
-+		    pargs->a2 == sandbox_ffa_priv_data.partitions.descs[descs_cnt].sp_uuid.a2 &&
-+		    pargs->a3 == sandbox_ffa_priv_data.partitions.descs[descs_cnt].sp_uuid.a3 &&
-+		    pargs->a4 == sandbox_ffa_priv_data.partitions.descs[descs_cnt].sp_uuid.a4) {
-+			*(rxbuf_desc_info++) =
-+				sandbox_ffa_priv_data.partitions.descs[descs_cnt].info;
-+		}
-+
-+	if (rxbuf_desc_info != ((struct ffa_partition_info *)sandbox_ffa_priv_data.pair.rxbuf)) {
-+		res->a0 = FFA_SMC_32(FFA_SUCCESS);
-+		/* store the partitions count */
-+		res->a2 = (unsigned long)
-+			(rxbuf_desc_info - (struct ffa_partition_info *)
-+			 sandbox_ffa_priv_data.pair.rxbuf);
-+
-+		/* transfer ownership to the consumer: the non secure world */
-+		sandbox_ffa_priv_data.pair_info.rxbuf_owned = 1;
-+	} else {
-+		/* Unrecognized UUID */
-+		res->a2 = FFA_ERR_STAT_INVALID_PARAMETERS;
-+	}
-+
-+cleanup:
-+
-+	ffa_err("[Sandbox] FFA_PARTITION_INFO_GET (%ld)", res->a2);
-+
-+	res->a1 = 0;
-+
-+	/* x3-x7 MBZ */
-+	memset(FFA_X3_MBZ_REG_START, 0, FFA_X3X7_MBZ_CNT * sizeof(unsigned long));
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_rxtx_map - Emulated FFA_RXTX_MAP handler function
-+ * @{a0-a7} , res: The SMC call arguments and return structure.
-+ *
-+ * This is the function that emulates FFA_RXTX_MAP FF-A function.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+SANDBOX_SMC_FFA_ABI(ffa_rxtx_map)
-+{
-+	res->a0 = FFA_SMC_32(FFA_ERROR);
-+
-+	if (sandbox_ffa_priv_data.pair.txbuf && sandbox_ffa_priv_data.pair.rxbuf) {
-+		res->a2 = FFA_ERR_STAT_DENIED;
-+		goto feedback;
-+	}
-+
-+	if (pargs->a3 >= RXTX_BUFFERS_MIN_PAGES && pargs->a1 && pargs->a2) {
-+		sandbox_ffa_priv_data.pair.txbuf = pargs->a1;
-+		sandbox_ffa_priv_data.pair.rxbuf = pargs->a2;
-+		sandbox_ffa_priv_data.pair_info.rxtx_buf_size = pargs->a3;
-+		sandbox_ffa_priv_data.pair_info.rxbuf_mapped = 1;
-+		res->a0 = FFA_SMC_32(FFA_SUCCESS);
-+		res->a2 = 0;
-+		goto feedback;
-+	}
-+
-+	if (!pargs->a1 || !pargs->a2)
-+		res->a2 = FFA_ERR_STAT_INVALID_PARAMETERS;
-+	else
-+		res->a2 = FFA_ERR_STAT_NO_MEMORY;
-+
-+	ffa_err("[Sandbox] error in FFA_RXTX_MAP arguments (%d)", (int)res->a2);
-+
-+feedback:
-+
-+	res->a1 = 0;
-+
-+	/* x3-x7 MBZ */
-+	memset(FFA_X3_MBZ_REG_START,
-+	       0, FFA_X3X7_MBZ_CNT * sizeof(unsigned long));
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_rxtx_unmap - Emulated FFA_RXTX_UNMAP handler function
-+ * @{a0-a7} , res: The SMC call arguments and return structure.
-+ *
-+ * This is the function that emulates FFA_RXTX_UNMAP FF-A function.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+SANDBOX_SMC_FFA_ABI(ffa_rxtx_unmap)
-+{
-+	res->a0 = FFA_SMC_32(FFA_ERROR);
-+	res->a2 = FFA_ERR_STAT_INVALID_PARAMETERS;
-+
-+	if (GET_NS_PHYS_ENDPOINT_ID(pargs->a1) != sandbox_ffa_priv_data.id)
-+		goto feedback;
-+
-+	if (sandbox_ffa_priv_data.pair.txbuf && sandbox_ffa_priv_data.pair.rxbuf) {
-+		sandbox_ffa_priv_data.pair.txbuf = 0;
-+		sandbox_ffa_priv_data.pair.rxbuf = 0;
-+		sandbox_ffa_priv_data.pair_info.rxtx_buf_size = 0;
-+		sandbox_ffa_priv_data.pair_info.rxbuf_mapped = 0;
-+		res->a0 = FFA_SMC_32(FFA_SUCCESS);
-+		res->a2 = 0;
-+		goto feedback;
-+	}
-+
-+	ffa_err("[Sandbox] No buffer pair registered on behalf of the caller");
-+
-+feedback:
-+
-+	res->a1 = 0;
-+
-+	/* x3-x7 MBZ */
-+	memset(FFA_X3_MBZ_REG_START,
-+	       0, FFA_X3X7_MBZ_CNT * sizeof(unsigned long));
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_rx_release - Emulated FFA_RX_RELEASE handler function
-+ * @{a0-a7} , res: The SMC call arguments and return structure.
-+ *
-+ * This is the function that emulates FFA_RX_RELEASE FF-A function.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+SANDBOX_SMC_FFA_ABI(ffa_rx_release)
-+{
-+	if (!sandbox_ffa_priv_data.pair_info.rxbuf_owned) {
-+		res->a0 = FFA_SMC_32(FFA_ERROR);
-+		res->a2 = FFA_ERR_STAT_DENIED;
-+	} else {
-+		sandbox_ffa_priv_data.pair_info.rxbuf_owned = 0;
-+		res->a0 = FFA_SMC_32(FFA_SUCCESS);
-+		res->a2 = 0;
-+	}
-+
-+	res->a1 = 0;
-+
-+	/* x3-x7 MBZ */
-+	memset(FFA_X3_MBZ_REG_START,
-+	       0, FFA_X3X7_MBZ_CNT * sizeof(unsigned long));
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_sp_valid - Checks SP validity
-+ * @part_id: partition ID to check
-+ *
-+ * This is the function searches the input ID in the descriptors table.
-+ *
-+ * Return:
-+ *
-+ * 1 on success (Partition found). Otherwise, failure
-+ */
-+static int sandbox_ffa_sp_valid(u16 part_id)
-+{
-+	u32 descs_cnt;
-+
-+	for (descs_cnt = 0 ; descs_cnt < SANDBOX_PARTITIONS_CNT ; descs_cnt++)
-+		if (sandbox_ffa_priv_data.partitions.descs[descs_cnt].info.id == part_id)
-+			return 1;
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_msg_send_direct_req - Emulated FFA_MSG_SEND_DIRECT_{REQ,RESP} handler function
-+ * @{a0-a7} , res: The SMC call arguments and return structure.
-+ *
-+ * This is the function that emulates FFA_MSG_SEND_DIRECT_{REQ,RESP}
-+ * FF-A functions. Only SMC 64-bit is supported in Sandbox.
-+ *
-+ * Emulating interrupts is not supported. So, FFA_RUN and FFA_INTERRUPT are not supported.
-+ * In case of success FFA_MSG_SEND_DIRECT_RESP is returned with default pattern data (0xff).
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+SANDBOX_SMC_FFA_ABI(ffa_msg_send_direct_req)
-+{
-+	u16 part_id;
-+
-+	part_id = GET_DST_SP_ID(pargs->a1);
-+
-+	if ((GET_NS_PHYS_ENDPOINT_ID(pargs->a1) != sandbox_ffa_priv_data.id) ||
-+	    !sandbox_ffa_sp_valid(part_id) ||
-+		pargs->a2) {
-+		res->a0 = FFA_SMC_32(FFA_ERROR);
-+		res->a1 = 0;
-+		res->a2 = FFA_ERR_STAT_INVALID_PARAMETERS;
-+
-+		/* x3-x7 MBZ */
-+		memset(FFA_X3_MBZ_REG_START,
-+		       0, FFA_X3X7_MBZ_CNT * sizeof(unsigned long));
-+
-+		return 0;
-+	}
-+
-+	res->a0 = FFA_SMC_64(FFA_MSG_SEND_DIRECT_RESP);
-+
-+	res->a1 = PREP_SRC_SP_ID(part_id) |
-+		PREP_NS_PHYS_ENDPOINT_ID(sandbox_ffa_priv_data.id);
-+
-+	res->a2 = 0;
-+
-+	/*
-+	 * return 0xff bytes as a response
-+	 */
-+	res->a3 = 0xffffffffffffffff;
-+	res->a4 = 0xffffffffffffffff;
-+	res->a5 = 0xffffffffffffffff;
-+	res->a6 = 0xffffffffffffffff;
-+	res->a7 = 0xffffffffffffffff;
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_get_prv_data - Returns the pointer to FF-A core pivate data
-+ * @func_data:  Pointer to the FF-A function arguments container structure
-+ *
-+ * This is the handler that returns the address of the FF-A core pivate data.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int sandbox_ffa_get_prv_data(struct ffa_sandbox_data *func_data)
-+{
-+	if (!func_data)
-+		return -EINVAL;
-+
-+	if (!func_data->data0 || func_data->data0_size != sizeof(struct ffa_prvdata *))
-+		return -EINVAL;
-+
-+	if (!func_data->data1 || func_data->data1_size != sizeof(struct sandbox_ffa_prvdata *))
-+		return -EINVAL;
-+
-+	*((struct ffa_prvdata **)func_data->data0) = ffa_bus_prvdata_get();
-+	*((struct sandbox_ffa_prvdata **)func_data->data1) = &sandbox_ffa_priv_data;
-+
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_get_rxbuf_flags - Reading the mapping/ownership flags
-+ * @queried_func_id:	The FF-A function to be queried
-+ * @func_data:  Pointer to the FF-A function arguments container structure
-+ *
-+ * This is the handler that queries the status flags of the following emulated ABIs:
-+ * FFA_RXTX_MAP, FFA_RXTX_UNMAP, FFA_RX_RELEASE
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int sandbox_ffa_get_rxbuf_flags(u32 queried_func_id, struct ffa_sandbox_data *func_data)
-+{
-+	if (!func_data)
-+		return -EINVAL;
-+
-+	if (!func_data->data0 || func_data->data0_size != sizeof(u8))
-+		return -EINVAL;
-+
-+	switch (queried_func_id) {
-+	case FFA_RXTX_MAP:
-+	case FFA_RXTX_UNMAP:
-+		*((u8 *)func_data->data0) = sandbox_ffa_priv_data.pair_info.rxbuf_mapped;
-+		return 0;
-+	case FFA_RX_RELEASE:
-+		*((u8 *)func_data->data0) = sandbox_ffa_priv_data.pair_info.rxbuf_owned;
-+		return 0;
-+	default:
-+		ffa_err("[Sandbox] The querried  FF-A interface flag (%d) undefined",
-+			queried_func_id);
-+		return -EINVAL;
-+	}
-+}
-+
-+/**
-+ * sandbox_ffa_query_core_state - The driver dispatcher function
-+ * @queried_func_id:	The FF-A function to be queried
-+ * @func_data:  Pointer to the FF-A function arguments container structure
-+ *
-+ * Queries the status of FF-A ABI specified in the input argument.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+int sandbox_ffa_query_core_state(u32 queried_func_id, struct ffa_sandbox_data *func_data)
-+{
-+	switch (queried_func_id) {
-+	case FFA_VERSION:
-+	case FFA_ID_GET:
-+	case FFA_FEATURES:
-+		return sandbox_ffa_get_prv_data(func_data);
-+	case FFA_RXTX_MAP:
-+	case FFA_RXTX_UNMAP:
-+	case FFA_RX_RELEASE:
-+		return sandbox_ffa_get_rxbuf_flags(queried_func_id, func_data);
-+	default:
-+		ffa_err("[Sandbox] The querried  FF-A interface (%d) undefined", queried_func_id);
-+		return -EINVAL;
-+	}
-+}
-+
-+/**
-+ * sandbox_arm_ffa_smccc_smc - FF-A SMC call emulation
-+ * @args:	the SMC call arguments
-+ * @res:	the SMC call returned data
-+ *
-+ * Sandbox driver emulates the FF-A ABIs SMC call using this function.
-+ * The emulated FF-A ABI is identified and invoked.
-+ * FF-A emulation is based on the FF-A specification 1.0
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure.
-+ * FF-A protocol error codes are returned using the registers arguments as described
-+ * by the specification
-+ */
-+void sandbox_arm_ffa_smccc_smc(ffa_value_t args, ffa_value_t *res)
-+{
-+	int ret = 0;
-+
-+	switch (args.a0) {
-+	case FFA_SMC_32(FFA_VERSION):
-+		ret = sandbox_ffa_version(&args, res);
-+		break;
-+	case FFA_SMC_32(FFA_PARTITION_INFO_GET):
-+		ret = sandbox_ffa_partition_info_get(&args, res);
-+		break;
-+	case FFA_SMC_32(FFA_RXTX_UNMAP):
-+		ret = sandbox_ffa_rxtx_unmap(&args, res);
-+		break;
-+	case FFA_SMC_64(FFA_MSG_SEND_DIRECT_REQ):
-+		ret = sandbox_ffa_msg_send_direct_req(&args, res);
-+		break;
-+	case FFA_SMC_32(FFA_ID_GET):
-+		ret = sandbox_ffa_id_get(&args, res);
-+		break;
-+	case FFA_SMC_32(FFA_FEATURES):
-+		ret = sandbox_ffa_features(&args, res);
-+		break;
-+	case FFA_SMC_64(FFA_RXTX_MAP):
-+		ret = sandbox_ffa_rxtx_map(&args, res);
-+		break;
-+	case FFA_SMC_32(FFA_RX_RELEASE):
-+		ret = sandbox_ffa_rx_release(&args, res);
-+		break;
-+	default:
-+		ffa_err("[Sandbox] Undefined FF-A interface (0x%lx)", args.a0);
-+	}
-+
-+	if (ret != 0)
-+		ffa_err("[Sandbox] FF-A ABI internal failure  (%d)", ret);
-+}
-+
-+/**
-+ * sandbox_ffa_probe - The driver probe function
-+ * @dev:	the sandbox_arm_ffa device
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int sandbox_ffa_probe(struct udevice *dev)
-+{
-+	return 0;
-+}
-+
-+/**
-+ * sandbox_ffa_remove - The driver remove function
-+ * @dev:	the sandbox_arm_ffa device
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int sandbox_ffa_remove(struct udevice *dev)
-+{
-+	ffa_info("[Sandbox] removing the device");
-+	memset(&sandbox_ffa_priv_data, 0, sizeof(sandbox_ffa_priv_data));
-+	return 0;
-+}
-+
-+/**
-+ * Declaring the sandbox_arm_ffa driver under UCLASS_FFA
-+ */
-+U_BOOT_DRIVER(sandbox_arm_ffa) = {
-+	.name		= FFA_SANDBOX_DRV_NAME,
-+	.id		= UCLASS_FFA,
-+	.probe		= sandbox_ffa_probe,
-+	.remove		= sandbox_ffa_remove,
-+};
-diff --git a/drivers/firmware/arm-ffa/sandbox_arm_ffa_prv.h b/drivers/firmware/arm-ffa/sandbox_arm_ffa_prv.h
-new file mode 100644
-index 0000000000..4db57f5092
---- /dev/null
-+++ b/drivers/firmware/arm-ffa/sandbox_arm_ffa_prv.h
-@@ -0,0 +1,144 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#ifndef __SANDBOX_ARM_FFA_PRV_H
-+#define __SANDBOX_ARM_FFA_PRV_H
-+
-+#include "arm_ffa_prv.h"
-+#include <sandbox_arm_ffa.h>
-+
-+/*
-+ * This header is private. It is exclusively used by the Sandbox FF-A driver
-+ */
-+
-+/* FF-A core driver name */
-+#define FFA_SANDBOX_DRV_NAME "sandbox_arm_ffa"
-+
-+/* FF-A ABIs internal error codes (as defined by the spec) */
-+
-+#define FFA_ERR_STAT_NOT_SUPPORTED	-1
-+#define FFA_ERR_STAT_INVALID_PARAMETERS	-2
-+#define FFA_ERR_STAT_NO_MEMORY	-3
-+#define FFA_ERR_STAT_BUSY	-4
-+#define FFA_ERR_STAT_DENIED	-6
-+
-+/* Providing Arm SMCCC declarations to sandbox */
-+
-+#define ARM_SMCCC_FAST_CALL		1UL
-+#define ARM_SMCCC_OWNER_STANDARD	4
-+#define ARM_SMCCC_SMC_32		0
-+#define ARM_SMCCC_SMC_64		1
-+#define ARM_SMCCC_TYPE_SHIFT		31
-+#define ARM_SMCCC_CALL_CONV_SHIFT	30
-+#define ARM_SMCCC_OWNER_MASK		0x3F
-+#define ARM_SMCCC_OWNER_SHIFT		24
-+#define ARM_SMCCC_FUNC_MASK		0xFFFF
-+
-+#define ARM_SMCCC_CALL_VAL(type, calling_convention, owner, func_num) \
-+	(((type) << ARM_SMCCC_TYPE_SHIFT) | \
-+	((calling_convention) << ARM_SMCCC_CALL_CONV_SHIFT) | \
-+	(((owner) & ARM_SMCCC_OWNER_MASK) << ARM_SMCCC_OWNER_SHIFT) | \
-+	((func_num) & ARM_SMCCC_FUNC_MASK))
-+
-+/* Non-secure physical FF-A instance */
-+#define NS_PHYS_ENDPOINT_ID (0)
-+
-+#define GET_NS_PHYS_ENDPOINT_ID_MASK		GENMASK(31, 16)
-+#define GET_NS_PHYS_ENDPOINT_ID(x)		\
-+			((u16)(FIELD_GET(GET_NS_PHYS_ENDPOINT_ID_MASK, (x))))
-+
-+/* Helper macro for reading the destination partition ID */
-+#define GET_DST_SP_ID_MASK		GENMASK(15, 0)
-+#define GET_DST_SP_ID(x)		\
-+			((u16)(FIELD_GET(GET_DST_SP_ID_MASK, (x))))
-+
-+/* Helper macro for setting the source partition ID */
-+#define PREP_SRC_SP_ID_MASK		GENMASK(31, 16)
-+#define PREP_SRC_SP_ID(x)		\
-+			(FIELD_PREP(PREP_SRC_SP_ID_MASK, (x)))
-+
-+/* Helper macro for setting the destination endpoint ID */
-+#define PREP_NS_PHYS_ENDPOINT_ID_MASK		GENMASK(15, 0)
-+#define PREP_NS_PHYS_ENDPOINT_ID(x)		\
-+			(FIELD_PREP(PREP_NS_PHYS_ENDPOINT_ID_MASK, (x)))
-+
-+/*  RX/TX buffers minimum size */
-+#define RXTX_BUFFERS_MIN_SIZE (RXTX_4K)
-+#define RXTX_BUFFERS_MIN_PAGES (1)
-+
-+/* MBZ registers info */
-+
-+/* x1-x7 MBZ */
-+#define FFA_X1X7_MBZ_CNT (7)
-+#define FFA_X1X7_MBZ_REG_START (&res->a1)
-+
-+/* x4-x7 MBZ */
-+#define FFA_X4X7_MBZ_CNT (4)
-+#define FFA_X4X7_MBZ_REG_START (&res->a4)
-+
-+/* x3-x7 MBZ */
-+#define FFA_X3X7_MBZ_CNT (5)
-+#define FFA_X3_MBZ_REG_START (&res->a3)
-+
-+/* secure partitions count */
-+#define SANDBOX_PARTITIONS_CNT (4)
-+
-+/* service 1  UUID binary data (little-endian format) */
-+#define SANDBOX_SERVICE1_UUID_A1	0xed32d533
-+#define SANDBOX_SERVICE1_UUID_A2	0x99e64209
-+#define SANDBOX_SERVICE1_UUID_A3	0x9cc02d72
-+#define SANDBOX_SERVICE1_UUID_A4	0xcdd998a7
-+
-+/* service 2  UUID binary data (little-endian format) */
-+#define SANDBOX_SERVICE2_UUID_A1	0xed32d544
-+#define SANDBOX_SERVICE2_UUID_A2	0x99e64209
-+#define SANDBOX_SERVICE2_UUID_A3	0x9cc02d72
-+#define SANDBOX_SERVICE2_UUID_A4	0xcdd998a7
-+
-+/**
-+ * struct ffa_rxtxpair_info - structure hosting the RX/TX buffers flags
-+ * @rxbuf_owned:	RX buffer ownership flag (the owner is non secure world: the consumer)
-+ * @rxbuf_mapped:	RX buffer mapping flag
-+ * @txbuf_owned	TX buffer ownership flag
-+ * @txbuf_mapped:	TX buffer mapping flag
-+ * @rxtx_buf_size:	RX/TX buffers size as set by the FF-A core driver
-+ *
-+ * Data structure hosting the ownership/mapping flags of the RX/TX buffers
-+ * When a buffer is owned/mapped its corresponding flag is set to 1 otherwise 0.
-+ */
-+struct ffa_rxtxpair_info {
-+	u8 rxbuf_owned;
-+	u8 rxbuf_mapped;
-+	u8 txbuf_owned;
-+	u8 txbuf_mapped;
-+	u32 rxtx_buf_size;
-+};
-+
-+/**
-+ * struct sandbox_ffa_prvdata - the driver private data structure
-+ *
-+ * @dev:	The arm_ffa device under u-boot driver model
-+ * @fwk_version:	FF-A framework version
-+ * @id:	u-boot endpoint ID
-+ * @partitions:	The partitions descriptors structure
-+ * @pair:	The RX/TX buffers pair
-+ * @pair_info:	The RX/TX buffers pair flags and size
-+ * @conduit:	The selected conduit
-+ *
-+ * The driver data structure hosting all the emulated secure world data.
-+ */
-+struct sandbox_ffa_prvdata {
-+	struct udevice *dev;
-+	u32 fwk_version;
-+	u16 id;
-+	struct ffa_partitions partitions;
-+	struct ffa_rxtxpair pair;
-+	struct ffa_rxtxpair_info pair_info;
-+};
-+
-+#define SANDBOX_SMC_FFA_ABI(ffabi) static int sandbox_##ffabi(ffa_value_t *pargs, ffa_value_t *res)
-+
-+#endif
-diff --git a/include/arm_ffa.h b/include/arm_ffa.h
-index 74b16174c2..b88904fe50 100644
---- a/include/arm_ffa.h
-+++ b/include/arm_ffa.h
-@@ -90,7 +90,7 @@ struct ffa_bus_ops {
- const struct ffa_bus_ops *ffa_bus_ops_get(void);
- 
- /**
-- * ffa_bus_discover - discover FF-A bus and probes the arm_ffa device
-+ * ffa_bus_discover - discover FF-A bus and probes the arm_ffa and sandbox_arm_ffa devices
-  */
- int ffa_bus_discover(struct udevice **pdev);
- 
-diff --git a/include/sandbox_arm_ffa.h b/include/sandbox_arm_ffa.h
-new file mode 100644
-index 0000000000..d5df16f282
---- /dev/null
-+++ b/include/sandbox_arm_ffa.h
-@@ -0,0 +1,91 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#ifndef __SANDBOX_ARM_FFA_H
-+#define __SANDBOX_ARM_FFA_H
-+
-+#include <arm_ffa.h>
-+
-+/**
-+ * struct sandbox_smccc_1_2_regs - Arguments for or Results from emulated SMC call
-+ * @a0-a17 argument values from registers 0 to 17
-+ */
-+struct sandbox_smccc_1_2_regs {
-+	unsigned long a0;
-+	unsigned long a1;
-+	unsigned long a2;
-+	unsigned long a3;
-+	unsigned long a4;
-+	unsigned long a5;
-+	unsigned long a6;
-+	unsigned long a7;
-+	unsigned long a8;
-+	unsigned long a9;
-+	unsigned long a10;
-+	unsigned long a11;
-+	unsigned long a12;
-+	unsigned long a13;
-+	unsigned long a14;
-+	unsigned long a15;
-+	unsigned long a16;
-+	unsigned long a17;
-+};
-+
-+typedef struct sandbox_smccc_1_2_regs ffa_value_t;
-+
-+/* UUIDs of services supported by the sandbox driver */
-+#define SANDBOX_SERVICE1_UUID	"ed32d533-4209-99e6-2d72-cdd998a79cc0"
-+#define SANDBOX_SERVICE2_UUID	"ed32d544-4209-99e6-2d72-cdd998a79cc0"
-+#define SANDBOX_SP1_ID 0x1245
-+#define SANDBOX_SP2_ID 0x9836
-+#define SANDBOX_SP3_ID 0x6452
-+#define SANDBOX_SP4_ID 0x7814
-+
-+/* invalid service UUID (no matching SP) */
-+#define SANDBOX_SERVICE3_UUID	"55d532ed-0942-e699-722d-c09ca798d9cd"
-+
-+/* invalid service UUID (invalid UUID string format) */
-+#define SANDBOX_SERVICE4_UUID	"32ed-0942-e699-722d-c09ca798d9cd"
-+
-+#define SANDBOX_SP_COUNT_PER_VALID_SERVICE	2
-+
-+/**
-+ * struct ffa_sandbox_data - generic data structure used to exchange
-+ *						data between test cases and the sandbox driver
-+ * @data0_size:	size of the first argument
-+ * @data0:	pointer to the first argument
-+ * @data1_size>:	size of the second argument
-+ * @data1:	pointer to the second argument
-+ *
-+ * Using this structure sandbox test cases can pass various types of data with different sizes.
-+ */
-+struct ffa_sandbox_data {
-+	u32 data0_size; /* size of the first argument */
-+	void *data0; /* pointer to the first argument */
-+	u32 data1_size; /* size of the second argument */
-+	void *data1; /* pointer to the second argument */
-+};
-+
-+/**
-+ * The sandbox driver public functions
-+ */
-+
-+/**
-+ * sandbox_ffa_query_core_state - Queries the status of FF-A ABIs
-+ */
-+int sandbox_ffa_query_core_state(u32 queried_func_id, struct ffa_sandbox_data *func_data);
-+
-+/**
-+ * sandbox_ffa_get_device - create, bind and probe the sandbox_arm_ffa device
-+ */
-+int sandbox_ffa_device_get(void);
-+
-+/**
-+ * sandbox_arm_ffa_smccc_smc - FF-A SMC call emulation
-+ */
-+void sandbox_arm_ffa_smccc_smc(ffa_value_t args, ffa_value_t *res);
-+
-+#endif
-diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index 3481f2afe7..fea4eb7a34 100644
---- a/lib/efi_loader/efi_boottime.c
-+++ b/lib/efi_loader/efi_boottime.c
-@@ -2185,7 +2185,7 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
- 		dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL);
- 	}
- 
--#if CONFIG_IS_ENABLED(ARM_FFA_TRANSPORT)
-+#if CONFIG_IS_ENABLED(ARM_FFA_TRANSPORT) && !CONFIG_IS_ENABLED(SANDBOX_FFA)
- 		/* unmap FF-A RX/TX buffers */
- 		if (ffa_bus_ops_get()->rxtx_unmap(NULL))
- 			log_err("Can't unmap FF-A RX/TX buffers\n");
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-FF-A-v15-arm_ffa-introduce-sandbox-test-cases-for-UC.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-FF-A-v15-arm_ffa-introduce-sandbox-test-cases-for-UC.patch
new file mode 100644
index 0000000..966c32b
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-FF-A-v15-arm_ffa-introduce-sandbox-test-cases-for-UC.patch
@@ -0,0 +1,341 @@
+From 00d0d8edf47430e3069e7c1dfa7a5bb7bb36bd49 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Wed, 10 May 2023 17:34:55 +0100
+Subject: [PATCH 07/33] FF-A v15: arm_ffa: introduce sandbox test cases for
+ UCLASS_FFA
+
+Add functional test cases for the FF-A support
+
+These tests rely on the FF-A sandbox emulator and FF-A
+sandbox driver which help in inspecting the FF-A communication.
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Cc: Tom Rini <trini@konsulko.com>
+Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
+Cc: Jens Wiklander <jens.wiklander@linaro.org>
+Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
+---
+ MAINTAINERS            |   1 +
+ doc/arch/arm64.ffa.rst |   1 +
+ test/dm/Makefile       |   3 +-
+ test/dm/ffa.c          | 261 +++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 265 insertions(+), 1 deletion(-)
+ create mode 100644 test/dm/ffa.c
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index 679a3acdd8..ccd7859c88 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -276,6 +276,7 @@ F:	doc/arch/arm64.ffa.rst
+ F:	doc/usage/cmd/armffa.rst
+ F:	drivers/firmware/arm-ffa/
+ F:	include/arm_ffa.h
++F:	test/dm/ffa.c
+ 
+ ARM FREESCALE IMX
+ M:	Stefano Babic <sbabic@denx.de>
+diff --git a/doc/arch/arm64.ffa.rst b/doc/arch/arm64.ffa.rst
+index b7c754fa3d..325fb80346 100644
+--- a/doc/arch/arm64.ffa.rst
++++ b/doc/arch/arm64.ffa.rst
+@@ -37,6 +37,7 @@ The U-Boot FF-A support provides the following parts:
+   FF-A ABIs inspection methods.
+ - An FF-A sandbox device driver for FF-A communication with the emulated Secure World.
+   The driver leverages the FF-A Uclass to establish FF-A communication.
++- Sandbox FF-A test cases.
+ 
+ FF-A and SMC specifications
+ -------------------------------------------
+diff --git a/test/dm/Makefile b/test/dm/Makefile
+index 3799b1ae8f..7ed00733c1 100644
+--- a/test/dm/Makefile
++++ b/test/dm/Makefile
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0+
+ #
+ # Copyright (c) 2013 Google, Inc
+-# Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++# Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ 
+ obj-$(CONFIG_UT_DM) += test-dm.o
+ 
+@@ -92,6 +92,7 @@ obj-$(CONFIG_POWER_DOMAIN) += power-domain.o
+ obj-$(CONFIG_ACPI_PMC) += pmc.o
+ obj-$(CONFIG_DM_PMIC) += pmic.o
+ obj-$(CONFIG_DM_PWM) += pwm.o
++obj-$(CONFIG_ARM_FFA_TRANSPORT) += ffa.o
+ obj-$(CONFIG_QFW) += qfw.o
+ obj-$(CONFIG_RAM) += ram.o
+ obj-y += regmap.o
+diff --git a/test/dm/ffa.c b/test/dm/ffa.c
+new file mode 100644
+index 0000000000..6912666bb4
+--- /dev/null
++++ b/test/dm/ffa.c
+@@ -0,0 +1,261 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Functional tests for UCLASS_FFA  class
++ *
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#include <common.h>
++#include <console.h>
++#include <dm.h>
++#include <asm/sandbox_arm_ffa.h>
++#include <asm/sandbox_arm_ffa_priv.h>
++#include <dm/test.h>
++#include <test/test.h>
++#include <test/ut.h>
++
++/* Functional tests for the UCLASS_FFA */
++
++static int check_fwk_version(struct ffa_priv *uc_priv, struct unit_test_state *uts)
++{
++	struct ffa_sandbox_data func_data;
++	u32 fwk_version = 0;
++
++	func_data.data0 = &fwk_version;
++	func_data.data0_size = sizeof(fwk_version);
++	ut_assertok(sandbox_query_ffa_emul_state(FFA_VERSION, &func_data));
++	ut_asserteq(uc_priv->fwk_version, fwk_version);
++
++	return 0;
++}
++
++static int check_endpoint_id(struct ffa_priv *uc_priv, struct unit_test_state *uts)
++{
++	ut_asserteq(0, uc_priv->id);
++
++	return 0;
++}
++
++static int check_rxtxbuf(struct ffa_priv *uc_priv, struct unit_test_state *uts)
++{
++	ut_assertnonnull(uc_priv->pair.rxbuf);
++	ut_assertnonnull(uc_priv->pair.txbuf);
++
++	return 0;
++}
++
++static int check_features(struct ffa_priv *uc_priv, struct unit_test_state *uts)
++{
++	ut_assert(uc_priv->pair.rxtx_min_pages == RXTX_4K ||
++		  uc_priv->pair.rxtx_min_pages == RXTX_16K ||
++		  uc_priv->pair.rxtx_min_pages == RXTX_64K);
++
++	return 0;
++}
++
++static int check_rxbuf_mapped_flag(u32 queried_func_id,
++				   u8 rxbuf_mapped,
++				   struct unit_test_state *uts)
++{
++	switch (queried_func_id) {
++	case FFA_RXTX_MAP:
++		ut_asserteq(1, rxbuf_mapped);
++		break;
++	case FFA_RXTX_UNMAP:
++		ut_asserteq(0, rxbuf_mapped);
++		break;
++	default:
++		ut_assert(false);
++	}
++
++	return 0;
++}
++
++static int check_rxbuf_release_flag(u8 rxbuf_owned, struct unit_test_state *uts)
++{
++	ut_asserteq(0, rxbuf_owned);
++
++	return 0;
++}
++
++static int  test_ffa_msg_send_direct_req(u16 part_id, struct unit_test_state *uts)
++{
++	struct ffa_send_direct_data msg;
++	u8 cnt;
++	struct udevice *dev;
++
++	ut_assertok(uclass_first_device_err(UCLASS_FFA, &dev));
++
++	ut_assertok(ffa_sync_send_receive(dev, part_id, &msg, 1));
++
++	for (cnt = 0; cnt < sizeof(struct ffa_send_direct_data) / sizeof(u64); cnt++)
++		ut_asserteq_64(-1UL, ((u64 *)&msg)[cnt]);
++
++	return 0;
++}
++
++static int test_partitions_and_comms(const char *service_uuid,
++				     struct unit_test_state *uts)
++{
++	struct ffa_partition_desc *descs;
++	u32 count, i, j, valid_sps = 0;
++	struct udevice *dev;
++	struct ffa_sandbox_data func_data;
++	struct ffa_partitions *partitions;
++
++	ut_assertok(uclass_first_device_err(UCLASS_FFA, &dev));
++
++	/* Get from the driver the count and information of the SPs matching the UUID */
++	ut_assertok(ffa_partition_info_get(dev, service_uuid, &count, &descs));
++
++	/* Make sure the count is correct */
++	ut_asserteq(SANDBOX_SP_COUNT_PER_VALID_SERVICE, count);
++
++	/* SPs found , verify the partitions information */
++
++	func_data.data0 = &partitions;
++	func_data.data0_size = sizeof(struct ffa_partitions *);
++	ut_assertok(sandbox_query_ffa_emul_state(FFA_PARTITION_INFO_GET, &func_data));
++
++	for (i = 0; i < count ; i++) {
++		for (j = 0;
++		     j < partitions->count;
++		     j++) {
++			if (descs[i].info.id ==
++			   partitions->descs[j].info.id) {
++				valid_sps++;
++				ut_asserteq_mem(&descs[i],
++						&partitions->descs[j],
++						sizeof(struct ffa_partition_desc));
++				/* Send and receive data from the current partition */
++				test_ffa_msg_send_direct_req(descs[i].info.id, uts);
++			}
++		}
++	}
++
++	/* Verify expected partitions found in the emulated secure world */
++	ut_asserteq(SANDBOX_SP_COUNT_PER_VALID_SERVICE, valid_sps);
++
++	return 0;
++}
++
++static int dm_test_ffa_ack(struct unit_test_state *uts)
++{
++	struct ffa_priv *uc_priv;
++	struct ffa_sandbox_data func_data;
++	u8 rxbuf_flag = 0;
++	const char *svc1_uuid = SANDBOX_SERVICE1_UUID;
++	const char *svc2_uuid = SANDBOX_SERVICE2_UUID;
++	struct udevice *dev;
++
++	/* Test probing the sandbox FF-A bus */
++	ut_assertok(uclass_first_device_err(UCLASS_FFA, &dev));
++
++	/* Get a pointer to the sandbox FF-A bus private data */
++	uc_priv = dev_get_uclass_priv(dev);
++
++	/* Make sure the private data pointer is retrieved */
++	ut_assertnonnull(uc_priv);
++
++	/* Test FFA_VERSION */
++	check_fwk_version(uc_priv, uts);
++
++	/* Test FFA_ID_GET */
++	check_endpoint_id(uc_priv, uts);
++
++	/* Test FFA_FEATURES */
++	check_features(uc_priv, uts);
++
++	/*  Test RX/TX buffers */
++	check_rxtxbuf(uc_priv, uts);
++
++	/* Test FFA_RXTX_MAP */
++	func_data.data0 = &rxbuf_flag;
++	func_data.data0_size = sizeof(rxbuf_flag);
++
++	rxbuf_flag = 0;
++	sandbox_query_ffa_emul_state(FFA_RXTX_MAP, &func_data);
++	check_rxbuf_mapped_flag(FFA_RXTX_MAP, rxbuf_flag, uts);
++
++	/* FFA_PARTITION_INFO_GET / FFA_MSG_SEND_DIRECT_REQ */
++	test_partitions_and_comms(svc1_uuid, uts);
++
++	/* Test FFA_RX_RELEASE */
++	rxbuf_flag = 1;
++	sandbox_query_ffa_emul_state(FFA_RX_RELEASE, &func_data);
++	check_rxbuf_release_flag(rxbuf_flag, uts);
++
++	/* FFA_PARTITION_INFO_GET / FFA_MSG_SEND_DIRECT_REQ */
++	test_partitions_and_comms(svc2_uuid, uts);
++
++	/* Test FFA_RX_RELEASE */
++	rxbuf_flag = 1;
++	ut_assertok(sandbox_query_ffa_emul_state(FFA_RX_RELEASE, &func_data));
++	check_rxbuf_release_flag(rxbuf_flag, uts);
++
++	return 0;
++}
++
++DM_TEST(dm_test_ffa_ack, UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
++
++static int dm_test_ffa_nack(struct unit_test_state *uts)
++{
++	struct ffa_priv *uc_priv;
++	const char *valid_svc_uuid = SANDBOX_SERVICE1_UUID;
++	const char *unvalid_svc_uuid = SANDBOX_SERVICE3_UUID;
++	const char *unvalid_svc_uuid_str = SANDBOX_SERVICE4_UUID;
++	struct ffa_send_direct_data msg;
++	int ret;
++	u32 count;
++	u16 part_id = 0;
++	struct udevice *dev;
++	struct ffa_partition_desc *descs = NULL;
++
++	/* Test probing the sandbox FF-A bus */
++	ut_assertok(uclass_first_device_err(UCLASS_FFA, &dev));
++
++	/* Get a pointer to the sandbox FF-A bus private data */
++	uc_priv = dev_get_uclass_priv(dev);
++
++	/* Make sure the private data pointer is retrieved */
++	ut_assertnonnull(uc_priv);
++
++	/* Query partitions count using  invalid arguments */
++	ret = ffa_partition_info_get(dev, NULL, NULL, NULL);
++	ut_asserteq(-EINVAL, ret);
++	ret = ffa_partition_info_get(dev, unvalid_svc_uuid, NULL, NULL);
++	ut_asserteq(-EINVAL, ret);
++	ret = ffa_partition_info_get(dev, unvalid_svc_uuid, &count, NULL);
++	ut_asserteq(-EINVAL, ret);
++
++	/* Query partitions count using an invalid UUID  string */
++	ret = ffa_partition_info_get(dev, unvalid_svc_uuid_str, &count, &descs);
++	ut_asserteq(-EINVAL, ret);
++
++	/* Query partitions count using an invalid UUID (no matching SP) */
++	count = 0;
++	ret = ffa_partition_info_get(dev, unvalid_svc_uuid, &count, &descs);
++	ut_asserteq(0, count);
++
++	/* Query partitions data using a valid UUID */
++	count = 0;
++	ut_assertok(ffa_partition_info_get(dev, valid_svc_uuid, &count, &descs));
++	/* Make sure partitions are detected */
++	ut_asserteq(SANDBOX_SP_COUNT_PER_VALID_SERVICE, count);
++	ut_assertnonnull(descs);
++
++	/* Send data to an invalid partition */
++	ret = ffa_sync_send_receive(dev, part_id, &msg, 1);
++	ut_asserteq(-EINVAL, ret);
++
++	/* Send data to a valid partition */
++	part_id = uc_priv->partitions.descs[0].info.id;
++	ut_assertok(ffa_sync_send_receive(dev, part_id, &msg, 1));
++
++	return 0;
++}
++
++DM_TEST(dm_test_ffa_nack, UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-arm_ffa-introduce-Sandbox-test-cases-for-UCLASS_FFA.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-arm_ffa-introduce-Sandbox-test-cases-for-UCLASS_FFA.patch
deleted file mode 100644
index d248e8b..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0007-arm_ffa-introduce-Sandbox-test-cases-for-UCLASS_FFA.patch
+++ /dev/null
@@ -1,472 +0,0 @@
-From 3664fe7503cbc4348bbd7bcb8fbf7e1db332ac5d Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Mon, 6 Jun 2022 17:26:06 +0100
-Subject: [PATCH 07/42] arm_ffa: introduce Sandbox test cases for UCLASS_FFA
-
-Add functional test cases for the FF-A core driver
-
-These tests rely on the FF-A Sandbox driver which helps in
- inspecting the FF-A core driver.
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v8:
-
-  * update partition_info_get() second argument to be an SP count
-  * pass NULL device pointer to the FF-A bus discovery and operations
-
-v7: set the tests to use 64-bit direct messaging
-
-v4: align sandbox tests with the new FF-A driver interfaces
- and new way of error handling
-
-v1: introduce sandbox tests
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- MAINTAINERS      |   1 +
- test/dm/Makefile |   2 +
- test/dm/ffa.c    | 392 +++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 395 insertions(+)
- create mode 100644 test/dm/ffa.c
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index 297d165f84..c1d3d4ae1c 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -272,6 +272,7 @@ F:	doc/arch/arm64.ffa.rst
- F:	drivers/firmware/arm-ffa/
- F:	include/arm_ffa.h
- F:	include/sandbox_arm_ffa.h
-+F:	test/dm/ffa.c
- 
- ARM FREESCALE IMX
- M:	Stefano Babic <sbabic@denx.de>
-diff --git a/test/dm/Makefile b/test/dm/Makefile
-index 7a79b6e1a2..85e99e1c12 100644
---- a/test/dm/Makefile
-+++ b/test/dm/Makefile
-@@ -1,6 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0+
- #
- # Copyright (c) 2013 Google, Inc
-+# (C) Copyright 2022 ARM Limited
- 
- obj-$(CONFIG_UT_DM) += test-dm.o
- 
-@@ -85,6 +86,7 @@ obj-$(CONFIG_POWER_DOMAIN) += power-domain.o
- obj-$(CONFIG_ACPI_PMC) += pmc.o
- obj-$(CONFIG_DM_PMIC) += pmic.o
- obj-$(CONFIG_DM_PWM) += pwm.o
-+obj-$(CONFIG_SANDBOX_FFA) += ffa.o
- obj-$(CONFIG_QFW) += qfw.o
- obj-$(CONFIG_RAM) += ram.o
- obj-y += regmap.o
-diff --git a/test/dm/ffa.c b/test/dm/ffa.c
-new file mode 100644
-index 0000000000..128d8626a7
---- /dev/null
-+++ b/test/dm/ffa.c
-@@ -0,0 +1,392 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Functional tests for UCLASS_FFA  class
-+ *
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include <common.h>
-+#include <console.h>
-+#include <dm.h>
-+#include <dm/test.h>
-+#include "../../drivers/firmware/arm-ffa/sandbox_arm_ffa_prv.h"
-+#include <sandbox_arm_ffa.h>
-+#include <test/test.h>
-+#include <test/ut.h>
-+
-+/* Macros */
-+
-+#define LOG_MSG_SZ (100)
-+#define LOG_CMD_SZ (LOG_MSG_SZ * 2)
-+
-+/* Functional tests for the UCLASS_FFA */
-+
-+static int dm_test_ffa_log(struct unit_test_state *uts, char *msg)
-+{
-+	char cmd[LOG_CMD_SZ] = {0};
-+
-+	console_record_reset();
-+
-+	snprintf(cmd, LOG_CMD_SZ, "echo \"%s\"", msg);
-+	run_command(cmd, 0);
-+
-+	ut_assert_console_end();
-+
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int check_fwk_version(struct ffa_prvdata *prvdata, struct sandbox_ffa_prvdata *sdx_prvdata,
-+			     struct unit_test_state *uts)
-+{
-+	if (prvdata->fwk_version != sdx_prvdata->fwk_version) {
-+		char msg[LOG_MSG_SZ] = {0};
-+
-+		snprintf(msg, LOG_MSG_SZ,
-+			 "[%s]: Error: framework version: core = 0x%x , sandbox  = 0x%x", __func__,
-+			 prvdata->fwk_version,
-+			sdx_prvdata->fwk_version);
-+
-+		dm_test_ffa_log(uts, msg);
-+		return CMD_RET_FAILURE;
-+	}
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int check_endpoint_id(struct ffa_prvdata *prvdata, struct unit_test_state *uts)
-+{
-+	if (prvdata->id) {
-+		char msg[LOG_MSG_SZ] = {0};
-+
-+		snprintf(msg, LOG_MSG_SZ,
-+			 "[%s]: Error: endpoint id: core = 0x%x", __func__, prvdata->id);
-+		dm_test_ffa_log(uts, msg);
-+		return CMD_RET_FAILURE;
-+	}
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int check_core_dev(struct ffa_prvdata *prvdata, struct unit_test_state *uts)
-+{
-+	if (!prvdata->dev) {
-+		char msg[LOG_MSG_SZ] = {0};
-+
-+		snprintf(msg, LOG_MSG_SZ, "[%s]: Error: core device NULL", __func__);
-+		dm_test_ffa_log(uts, msg);
-+		return CMD_RET_FAILURE;
-+	}
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int check_sandbox_dev(struct sandbox_ffa_prvdata *sdx_prvdata, struct unit_test_state *uts)
-+{
-+	if (!sdx_prvdata->dev) {
-+		char msg[LOG_MSG_SZ] = {0};
-+
-+		snprintf(msg, LOG_MSG_SZ, "[%s]: Error: sandbox device NULL", __func__);
-+		dm_test_ffa_log(uts, msg);
-+		return CMD_RET_FAILURE;
-+	}
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int check_rxtxbuf(struct ffa_prvdata *prvdata, struct unit_test_state *uts)
-+{
-+	if (!prvdata->pair.rxbuf && prvdata->pair.txbuf) {
-+		char msg[LOG_MSG_SZ] = {0};
-+
-+		snprintf(msg, LOG_MSG_SZ, "[%s]: Error: rxbuf = 0x%llx txbuf = 0x%llx", __func__,
-+			 prvdata->pair.rxbuf,
-+			 prvdata->pair.txbuf);
-+		dm_test_ffa_log(uts, msg);
-+		return CMD_RET_FAILURE;
-+	}
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int check_features(struct ffa_prvdata *prvdata, struct unit_test_state *uts)
-+{
-+	char msg[LOG_MSG_SZ] = {0};
-+
-+	if (prvdata->pair.rxtx_min_pages != RXTX_4K &&
-+	    prvdata->pair.rxtx_min_pages != RXTX_16K &&
-+	    prvdata->pair.rxtx_min_pages != RXTX_64K) {
-+		snprintf(msg,
-+			 LOG_MSG_SZ,
-+			 "[%s]: Error: FFA_RXTX_MAP features = 0x%lx",
-+			 __func__,
-+			 prvdata->pair.rxtx_min_pages);
-+		dm_test_ffa_log(uts, msg);
-+		return CMD_RET_FAILURE;
-+	}
-+
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int check_rxbuf_mapped_flag(u32 queried_func_id,
-+				   u8 rxbuf_mapped,
-+				   struct unit_test_state *uts)
-+{
-+	char msg[LOG_MSG_SZ] = {0};
-+
-+	switch (queried_func_id) {
-+	case FFA_RXTX_MAP:
-+	{
-+		if (rxbuf_mapped)
-+			return CMD_RET_SUCCESS;
-+		break;
-+	}
-+	case FFA_RXTX_UNMAP:
-+	{
-+		if (!rxbuf_mapped)
-+			return CMD_RET_SUCCESS;
-+		break;
-+	}
-+	default:
-+		return CMD_RET_FAILURE;
-+	}
-+
-+	snprintf(msg, LOG_MSG_SZ, "[%s]: Error: %s mapping issue", __func__,
-+		 (queried_func_id == FFA_RXTX_MAP ? "FFA_RXTX_MAP" : "FFA_RXTX_UNMAP"));
-+	dm_test_ffa_log(uts, msg);
-+
-+	return CMD_RET_FAILURE;
-+}
-+
-+static int check_rxbuf_release_flag(u8 rxbuf_owned, struct unit_test_state *uts)
-+{
-+	if (rxbuf_owned) {
-+		char msg[LOG_MSG_SZ] = {0};
-+
-+		snprintf(msg, LOG_MSG_SZ, "[%s]: Error: RX buffer not released", __func__);
-+		dm_test_ffa_log(uts, msg);
-+		return CMD_RET_FAILURE;
-+	}
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int  test_ffa_msg_send_direct_req(u16 part_id, struct unit_test_state *uts)
-+{
-+	struct ffa_send_direct_data msg = {0};
-+	u8 cnt;
-+
-+	ut_assertok(ffa_bus_ops_get()->sync_send_receive(NULL, part_id, &msg, 1));
-+
-+	for (cnt = 0; cnt < sizeof(struct ffa_send_direct_data) / sizeof(u64); cnt++)
-+		ut_assertok(((u64 *)&msg)[cnt] != 0xffffffffffffffff);
-+
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int test_partitions_and_comms(const char *service_uuid,
-+				     struct sandbox_ffa_prvdata *sdx_prvdata,
-+				     struct unit_test_state *uts)
-+{
-+	u32 count = 0;
-+	struct ffa_partition_info *parts_info;
-+	u32 info_idx, exp_info_idx;
-+	int ret;
-+
-+	/*
-+	 * get from the driver the count of the SPs matching the UUID
-+	 */
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, service_uuid, &count, NULL);
-+	/* make sure partitions are detected */
-+	ut_assertok(ret != 0);
-+	ut_assertok(count != SANDBOX_SP_COUNT_PER_VALID_SERVICE);
-+
-+	/*
-+	 * pre-allocate a buffer to be filled by the driver
-+	 * with	 ffa_partition_info structs
-+	 */
-+
-+	parts_info = calloc(count, sizeof(struct ffa_partition_info));
-+	ut_assertok(!parts_info);
-+
-+	/*
-+	 * ask the driver to fill the buffer with the SPs info
-+	 */
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, service_uuid, &count, parts_info);
-+	if (ret != 0) {
-+		free(parts_info);
-+		ut_assertok(ret != 0);
-+	}
-+
-+	/*
-+	 * SPs found , verify the partitions information
-+	 */
-+
-+	ret = CMD_RET_FAILURE;
-+
-+	for (info_idx = 0; info_idx < count ; info_idx++) {
-+		for (exp_info_idx = 0;
-+		     exp_info_idx < sdx_prvdata->partitions.count;
-+		     exp_info_idx++) {
-+			if (parts_info[info_idx].id ==
-+			   sdx_prvdata->partitions.descs[exp_info_idx].info.id) {
-+				ret = memcmp(&parts_info[info_idx],
-+					     &sdx_prvdata->partitions.descs[exp_info_idx]
-+					     .info,
-+					     sizeof(struct ffa_partition_info));
-+				if (ret)
-+					free(parts_info);
-+				ut_assertok(ret != 0);
-+				/* send and receive data from the current partition */
-+				test_ffa_msg_send_direct_req(parts_info[info_idx].id, uts);
-+			}
-+			ret = CMD_RET_SUCCESS;
-+		}
-+	}
-+
-+	free(parts_info);
-+
-+	/* Verify  expected partitions found in the emulated secure world*/
-+	ut_assertok(ret != CMD_RET_SUCCESS);
-+
-+	return CMD_RET_SUCCESS;
-+}
-+
-+static int dm_test_ffa_ack(struct unit_test_state *uts)
-+{
-+	struct ffa_prvdata *prvdata = NULL;
-+	struct sandbox_ffa_prvdata *sdx_prvdata = NULL;
-+	struct ffa_sandbox_data func_data = {0};
-+	u8 rxbuf_flag = 0;
-+	const char *svc1_uuid = SANDBOX_SERVICE1_UUID;
-+	const char *svc2_uuid = SANDBOX_SERVICE2_UUID;
-+	int ret;
-+
-+	/*  test probing FF-A devices */
-+	ut_assertok(ffa_bus_discover(NULL));
-+
-+	/* get a pointer to the FF-A core and sandbox drivers private data */
-+	func_data.data0 = &prvdata;
-+	func_data.data0_size = sizeof(prvdata);
-+	func_data.data1 = &sdx_prvdata;
-+	func_data.data1_size = sizeof(sdx_prvdata);
-+
-+	ut_assertok(sandbox_ffa_query_core_state(FFA_VERSION, &func_data));
-+
-+	/* make sure private data pointers are retrieved */
-+	ut_assertok(prvdata == 0);
-+	ut_assertok(sdx_prvdata == 0);
-+
-+	/* make sure dev devices created */
-+	ut_assertok(check_core_dev(prvdata, uts));
-+	ut_assertok(check_sandbox_dev(sdx_prvdata, uts));
-+
-+	/* test FFA_VERSION */
-+	ut_assertok(check_fwk_version(prvdata, sdx_prvdata, uts));
-+
-+	/* test FFA_ID_GET */
-+	ut_assertok(check_endpoint_id(prvdata, uts));
-+
-+	/* test FFA_FEATURES */
-+	ut_assertok(check_features(prvdata, uts));
-+
-+	/*  test core RX/TX buffers */
-+	ut_assertok(check_rxtxbuf(prvdata, uts));
-+
-+	/* test FFA_RXTX_MAP */
-+	func_data.data0 = &rxbuf_flag;
-+	func_data.data0_size = sizeof(rxbuf_flag);
-+
-+	rxbuf_flag = 0;
-+	ut_assertok(sandbox_ffa_query_core_state(FFA_RXTX_MAP, &func_data));
-+	ut_assertok(check_rxbuf_mapped_flag(FFA_RXTX_MAP, rxbuf_flag, uts));
-+
-+	/* FFA_PARTITION_INFO_GET / FFA_MSG_SEND_DIRECT_REQ */
-+	ret = test_partitions_and_comms(svc1_uuid, sdx_prvdata, uts);
-+	ut_assertok(ret != CMD_RET_SUCCESS);
-+
-+	/* test FFA_RX_RELEASE */
-+	rxbuf_flag = 1;
-+	ut_assertok(sandbox_ffa_query_core_state(FFA_RX_RELEASE, &func_data));
-+	ut_assertok(check_rxbuf_release_flag(rxbuf_flag, uts));
-+
-+	/* FFA_PARTITION_INFO_GET / FFA_MSG_SEND_DIRECT_REQ */
-+	ret = test_partitions_and_comms(svc2_uuid, sdx_prvdata, uts);
-+	ut_assertok(ret != CMD_RET_SUCCESS);
-+
-+	/* test FFA_RX_RELEASE */
-+	rxbuf_flag = 1;
-+	ut_assertok(sandbox_ffa_query_core_state(FFA_RX_RELEASE, &func_data));
-+	ut_assertok(check_rxbuf_release_flag(rxbuf_flag, uts));
-+
-+	/* test FFA_RXTX_UNMAP */
-+	ut_assertok(ffa_bus_ops_get()->rxtx_unmap(NULL));
-+
-+	rxbuf_flag = 1;
-+	ut_assertok(sandbox_ffa_query_core_state(FFA_RXTX_UNMAP, &func_data));
-+	ut_assertok(check_rxbuf_mapped_flag(FFA_RXTX_UNMAP, rxbuf_flag, uts));
-+
-+	return CMD_RET_SUCCESS;
-+}
-+
-+DM_TEST(dm_test_ffa_ack, UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
-+
-+static int dm_test_ffa_nack(struct unit_test_state *uts)
-+{
-+	struct ffa_prvdata *prvdata = NULL;
-+	struct sandbox_ffa_prvdata *sdx_prvdata = NULL;
-+	struct ffa_sandbox_data func_data = {0};
-+	const char *valid_svc_uuid = SANDBOX_SERVICE1_UUID;
-+	const char *unvalid_svc_uuid = SANDBOX_SERVICE3_UUID;
-+	const char *unvalid_svc_uuid_str = SANDBOX_SERVICE4_UUID;
-+	struct ffa_send_direct_data msg = {0};
-+	int ret;
-+	u32 count = 0;
-+	u16 part_id = 0;
-+
-+	/*  test probing FF-A devices */
-+	ut_assertok(ffa_bus_discover(NULL));
-+
-+	/* get a pointer to the FF-A core and sandbox drivers private data */
-+	func_data.data0 = &prvdata;
-+	func_data.data0_size = sizeof(prvdata);
-+	func_data.data1 = &sdx_prvdata;
-+	func_data.data1_size = sizeof(sdx_prvdata);
-+
-+	ut_assertok(sandbox_ffa_query_core_state(FFA_VERSION, &func_data));
-+
-+	/* make sure private data pointers are retrieved */
-+	ut_assertok(prvdata == 0);
-+	ut_assertok(sdx_prvdata == 0);
-+
-+	/* make sure dev devices created */
-+	ut_assertok(check_core_dev(prvdata, uts));
-+	ut_assertok(check_sandbox_dev(sdx_prvdata, uts));
-+
-+	/* query partitions count using  invalid arguments  */
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, unvalid_svc_uuid, NULL, NULL);
-+	ut_assertok(ret != -EINVAL);
-+
-+	/* query partitions count using an invalid UUID  string */
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, unvalid_svc_uuid_str, &count, NULL);
-+	ut_assertok(ret != -EINVAL);
-+
-+	/* query partitions count using an invalid UUID (no matching SP) */
-+	count = 0;
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, unvalid_svc_uuid, &count, NULL);
-+	ut_assertok(count != 0);
-+
-+	/* query partitions count using a valid UUID  */
-+	count = 0;
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, valid_svc_uuid, &count, NULL);
-+	/* make sure partitions are detected */
-+	ut_assertok(ret != 0);
-+	ut_assertok(count != SANDBOX_SP_COUNT_PER_VALID_SERVICE);
-+
-+	/* send data to an invalid partition */
-+	ret = ffa_bus_ops_get()->sync_send_receive(NULL, part_id, &msg, 1);
-+	ut_assertok(ret != -EINVAL);
-+
-+	/* send data to a valid partition */
-+	part_id = prvdata->partitions.descs[0].info.id;
-+	ret = ffa_bus_ops_get()->sync_send_receive(NULL, part_id, &msg, 1);
-+	ut_assertok(ret != 0);
-+
-+	return CMD_RET_SUCCESS;
-+}
-+
-+DM_TEST(dm_test_ffa_nack, UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-FF-A-v15-arm_ffa-introduce-armffa-command-Sandbox-te.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-FF-A-v15-arm_ffa-introduce-armffa-command-Sandbox-te.patch
new file mode 100644
index 0000000..05b5e4d
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-FF-A-v15-arm_ffa-introduce-armffa-command-Sandbox-te.patch
@@ -0,0 +1,95 @@
+From 78547a9f322b981a93bbeeb48b3eda1d2ab35cd0 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Fri, 23 Jun 2023 13:44:10 +0100
+Subject: [PATCH 08/33] FF-A v15: arm_ffa: introduce armffa command Sandbox
+ test
+
+Add Sandbox test for the armffa command
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Cc: Tom Rini <trini@konsulko.com>
+Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
+Cc: Jens Wiklander <jens.wiklander@linaro.org>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
+---
+ MAINTAINERS       |  1 +
+ test/cmd/Makefile |  2 ++
+ test/cmd/armffa.c | 33 +++++++++++++++++++++++++++++++++
+ 3 files changed, 36 insertions(+)
+ create mode 100644 test/cmd/armffa.c
+
+diff --git a/MAINTAINERS b/MAINTAINERS
+index ccd7859c88..885d91fe5c 100644
+--- a/MAINTAINERS
++++ b/MAINTAINERS
+@@ -276,6 +276,7 @@ F:	doc/arch/arm64.ffa.rst
+ F:	doc/usage/cmd/armffa.rst
+ F:	drivers/firmware/arm-ffa/
+ F:	include/arm_ffa.h
++F:	test/cmd/armffa.c
+ F:	test/dm/ffa.c
+ 
+ ARM FREESCALE IMX
+diff --git a/test/cmd/Makefile b/test/cmd/Makefile
+index 055adc65a2..1d1dbb4fbc 100644
+--- a/test/cmd/Makefile
++++ b/test/cmd/Makefile
+@@ -1,6 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0+
+ #
+ # Copyright (c) 2013 Google, Inc
++# Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
+ 
+ ifdef CONFIG_HUSH_PARSER
+ obj-$(CONFIG_CONSOLE_RECORD) += test_echo.o
+@@ -23,6 +24,7 @@ obj-$(CONFIG_CMD_SEAMA) += seama.o
+ ifdef CONFIG_SANDBOX
+ obj-$(CONFIG_CMD_READ) += rw.o
+ obj-$(CONFIG_CMD_SETEXPR) += setexpr.o
++obj-$(CONFIG_ARM_FFA_TRANSPORT) += armffa.o
+ endif
+ obj-$(CONFIG_CMD_TEMPERATURE) += temperature.o
+ obj-$(CONFIG_CMD_WGET) += wget.o
+diff --git a/test/cmd/armffa.c b/test/cmd/armffa.c
+new file mode 100644
+index 0000000000..9a44a397e8
+--- /dev/null
++++ b/test/cmd/armffa.c
+@@ -0,0 +1,33 @@
++// SPDX-License-Identifier: GPL-2.0+
++/*
++ * Test for armffa command
++ *
++ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ * Authors:
++ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
++ */
++
++#include <common.h>
++#include <string.h>
++#include <asm/sandbox_arm_ffa.h>
++#include <dm/test.h>
++#include <test/test.h>
++#include <test/ut.h>
++
++/* Basic test of 'armffa' command */
++static int dm_test_armffa_cmd(struct unit_test_state *uts)
++{
++	/* armffa getpart <UUID> */
++	ut_assertok(run_command("armffa getpart " SANDBOX_SERVICE1_UUID, 0));
++
++	/* armffa ping <ID> */
++	ut_assertok(run_commandf("armffa ping 0x%x", SANDBOX_SP1_ID));
++
++	/* armffa devlist */
++	ut_assertok(run_command("armffa devlist", 0));
++
++	return 0;
++}
++
++DM_TEST(dm_test_armffa_cmd, UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-arm_ffa-introduce-armffa-command-Sandbox-test.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-arm_ffa-introduce-armffa-command-Sandbox-test.patch
deleted file mode 100644
index d584282..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0008-arm_ffa-introduce-armffa-command-Sandbox-test.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 5af272d2bb2a7a8c8a4732c8d598dd1713856949 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Tue, 29 Nov 2022 14:48:34 +0000
-Subject: [PATCH 08/42] arm_ffa: introduce armffa command Sandbox test
-
-Add Sandbox test for the armffa command
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v4: drop use of helper APIs
-
-v1: introduce armffa command sandbox test
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- MAINTAINERS       |  1 +
- test/cmd/Makefile |  2 ++
- test/cmd/armffa.c | 39 +++++++++++++++++++++++++++++++++++++++
- 3 files changed, 42 insertions(+)
- create mode 100644 test/cmd/armffa.c
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index c1d3d4ae1c..a2f60a3b93 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -272,6 +272,7 @@ F:	doc/arch/arm64.ffa.rst
- F:	drivers/firmware/arm-ffa/
- F:	include/arm_ffa.h
- F:	include/sandbox_arm_ffa.h
-+F:	test/cmd/armffa.c
- F:	test/dm/ffa.c
- 
- ARM FREESCALE IMX
-diff --git a/test/cmd/Makefile b/test/cmd/Makefile
-index bc961df3dc..21aa6d740e 100644
---- a/test/cmd/Makefile
-+++ b/test/cmd/Makefile
-@@ -1,6 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0+
- #
- # Copyright (c) 2013 Google, Inc
-+# (C) Copyright 2022 ARM Limited
- 
- ifdef CONFIG_HUSH_PARSER
- obj-$(CONFIG_CONSOLE_RECORD) += test_echo.o
-@@ -18,6 +19,7 @@ obj-$(CONFIG_CMD_PINMUX) += pinmux.o
- obj-$(CONFIG_CMD_PWM) += pwm.o
- ifdef CONFIG_SANDBOX
- obj-$(CONFIG_CMD_SETEXPR) += setexpr.o
-+obj-$(CONFIG_SANDBOX_FFA) += armffa.o
- endif
- obj-$(CONFIG_CMD_TEMPERATURE) += temperature.o
- obj-$(CONFIG_CMD_WGET) += wget.o
-diff --git a/test/cmd/armffa.c b/test/cmd/armffa.c
-new file mode 100644
-index 0000000000..e04363ba63
---- /dev/null
-+++ b/test/cmd/armffa.c
-@@ -0,0 +1,39 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Test for armffa command
-+ *
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include <common.h>
-+#include <dm/test.h>
-+#include <sandbox_arm_ffa.h>
-+#include <string.h>
-+#include <test/test.h>
-+#include <test/ut.h>
-+
-+#define PING_CMD_SIZE 19
-+
-+/* Basic test of 'armffa' command */
-+static int dm_test_armffa_cmd(struct unit_test_state *uts)
-+{
-+	char ping_cmd[PING_CMD_SIZE] = {0};
-+
-+	ut_assertok(ffa_bus_discover(NULL));
-+
-+	/* armffa getpart <UUID> */
-+	ut_assertok(run_command("armffa getpart " SANDBOX_SERVICE1_UUID, 0));
-+
-+	snprintf(ping_cmd, PING_CMD_SIZE, "armffa ping 0x%x", SANDBOX_SP1_ID);
-+
-+	/* armffa ping <ID> */
-+	ut_assertok(run_command(ping_cmd, 0));
-+
-+	/* armffa devlist */
-+	ut_assertok(run_command("armffa devlist", 0));
-+
-+	return CMD_RET_SUCCESS;
-+}
-+
-+DM_TEST(dm_test_armffa_cmd, UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-FF-A-v15-arm_ffa-efi-introduce-FF-A-MM-communication.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-FF-A-v15-arm_ffa-efi-introduce-FF-A-MM-communication.patch
new file mode 100644
index 0000000..bd75bc1
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-FF-A-v15-arm_ffa-efi-introduce-FF-A-MM-communication.patch
@@ -0,0 +1,449 @@
+From 342844c2a5ad6beb127e1e8e52b311df77cff472 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Mon, 15 Aug 2022 15:12:49 +0100
+Subject: [PATCH 09/33] FF-A v15: arm_ffa: efi: introduce FF-A MM communication
+
+Add MM communication support using FF-A transport
+
+This feature allows accessing MM partitions services through
+EFI MM communication protocol. MM partitions such as StandAlonneMM
+or smm-gateway secure partitions which reside in secure world.
+
+An MM shared buffer and a door bell event are used to exchange
+the data.
+
+The data is used by EFI services such as GetVariable()/SetVariable()
+and copied from the communication buffer to the MM shared buffer.
+
+The secure partition is notified about availability of data in the
+MM shared buffer by an FF-A message (door bell).
+
+On such event, MM SP can read the data and updates the MM shared
+buffer with the response data.
+
+The response data is copied back to the communication buffer and
+consumed by the EFI subsystem.
+
+MM communication protocol supports FF-A 64-bit direct messaging.
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Tested-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Cc: Tom Rini <trini@konsulko.com>
+Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
+Cc: Jens Wiklander <jens.wiklander@linaro.org>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
+---
+ include/mm_communication.h        |  13 ++
+ lib/efi_loader/Kconfig            |  46 +++++-
+ lib/efi_loader/efi_variable_tee.c | 257 +++++++++++++++++++++++++++++-
+ 3 files changed, 309 insertions(+), 7 deletions(-)
+
+diff --git a/include/mm_communication.h b/include/mm_communication.h
+index e65fbde60d..f17847583b 100644
+--- a/include/mm_communication.h
++++ b/include/mm_communication.h
+@@ -6,6 +6,9 @@
+  *  Copyright (c) 2017, Intel Corporation. All rights reserved.
+  *  Copyright (C) 2020 Linaro Ltd. <sughosh.ganu@linaro.org>
+  *  Copyright (C) 2020 Linaro Ltd. <ilias.apalodimas@linaro.org>
++ *  Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *    Authors:
++ *      Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+  */
+ 
+ #ifndef _MM_COMMUNICATION_H_
+@@ -13,6 +16,9 @@
+ 
+ #include <part_efi.h>
+ 
++/* MM service UUID string (big-endian format). This UUID is  common across all MM SPs */
++#define MM_SP_UUID	"33d532ed-e699-0942-c09c-a798d9cd722d"
++
+ /*
+  * Interface to the pseudo Trusted Application (TA), which provides a
+  * communication channel with the Standalone MM (Management Mode)
+@@ -248,4 +254,11 @@ struct smm_variable_var_check_property {
+ 	u16                       name[];
+ };
+ 
++/* supported MM transports */
++enum mm_comms_select {
++	MM_COMMS_UNDEFINED,
++	MM_COMMS_FFA,
++	MM_COMMS_OPTEE
++};
++
+ #endif /* _MM_COMMUNICATION_H_ */
+diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
+index c5835e6ef6..553e6a30a2 100644
+--- a/lib/efi_loader/Kconfig
++++ b/lib/efi_loader/Kconfig
+@@ -55,13 +55,55 @@ config EFI_VARIABLE_FILE_STORE
+ 	  stored as file /ubootefi.var on the EFI system partition.
+ 
+ config EFI_MM_COMM_TEE
+-	bool "UEFI variables storage service via OP-TEE"
+-	depends on OPTEE
++	bool "UEFI variables storage service via the trusted world"
++	select ARM_FFA_TRANSPORT
++	select TEE
++	select OPTEE
+ 	help
++	  Allowing access to the MM SP services (SPs such as  StandAlonneMM, smm-gateway).
++	  When using the u-boot OP-TEE driver, StandAlonneMM is supported.
++	  When using the u-boot FF-A  driver any MM SP is supported.
++
+ 	  If OP-TEE is present and running StandAloneMM, dispatch all UEFI
+ 	  variable related operations to that. The application will verify,
+ 	  authenticate and store the variables on an RPMB.
+ 
++	  When ARM_FFA_TRANSPORT is used, dispatch all UEFI variable related
++	  operations to the MM SP running in the secure world.
++	  A door bell mechanism is used to notify the SP when there is data in the shared
++	  MM buffer. The data is copied by u-boot to the shared buffer before issuing
++	  the door bell event.
++
++config FFA_SHARED_MM_BUF_SIZE
++	int "Memory size of the shared MM communication buffer"
++	default 0
++	depends on EFI_MM_COMM_TEE
++	help
++	  This defines the size in bytes of the memory area reserved for the shared
++	  buffer used for communication between the MM feature in U-Boot and
++	  the MM SP in secure world.
++	  The size of the memory region must be a multiple of the size of the maximum
++	  translation granule size that is specified in the ID_AA64MMFR0_EL1 System register.
++	  It is assumed that the MM SP knows the size of the shared MM communication buffer.
++
++config FFA_SHARED_MM_BUF_OFFSET
++	int "Data offset in the shared MM communication buffer"
++	default 0
++	depends on EFI_MM_COMM_TEE
++	help
++	  This defines the offset in bytes of the data read or written to in the shared
++	  buffer by the MM SP.
++
++config FFA_SHARED_MM_BUF_ADDR
++	hex "Define the address of the shared MM communication buffer"
++	default 0x0
++	depends on EFI_MM_COMM_TEE
++	help
++	  This defines the address of the shared MM communication buffer
++	  used for communication between the MM feature in U-Boot and
++	  the MM SP in secure world.
++	  It is assumed that the MM SP knows the address of the shared MM communication buffer.
++
+ config EFI_VARIABLE_NO_STORE
+ 	bool "Don't persist non-volatile UEFI variables"
+ 	help
+diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c
+index dfef18435d..5137b871ea 100644
+--- a/lib/efi_loader/efi_variable_tee.c
++++ b/lib/efi_loader/efi_variable_tee.c
+@@ -4,17 +4,34 @@
+  *
+  *  Copyright (C) 2019 Linaro Ltd. <sughosh.ganu@linaro.org>
+  *  Copyright (C) 2019 Linaro Ltd. <ilias.apalodimas@linaro.org>
++ *  Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
++ *
++ *  Authors:
++ *    Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+  */
+ 
+ #include <common.h>
++#include <arm_ffa.h>
++#include <cpu_func.h>
++#include <dm.h>
+ #include <efi.h>
+ #include <efi_api.h>
+ #include <efi_loader.h>
+ #include <efi_variable.h>
+-#include <tee.h>
+ #include <malloc.h>
++#include <mapmem.h>
+ #include <mm_communication.h>
++#include <tee.h>
++
++/* MM return codes */
++#define MM_SUCCESS (0)
++#define MM_NOT_SUPPORTED (-1)
++#define MM_INVALID_PARAMETER (-2)
++#define MM_DENIED (-3)
++#define MM_NO_MEMORY (-5)
+ 
++static const char *mm_sp_svc_uuid = MM_SP_UUID;
++static u16 mm_sp_id;
+ extern struct efi_var_file __efi_runtime_data *efi_var_buf;
+ static efi_uintn_t max_buffer_size;	/* comm + var + func + data */
+ static efi_uintn_t max_payload_size;	/* func + data */
+@@ -145,16 +162,241 @@ static efi_status_t optee_mm_communicate(void *comm_buf, ulong dsize)
+ }
+ 
+ /**
+- * mm_communicate() - Adjust the cmonnucation buffer to StandAlonneMM and send
++ * ffa_notify_mm_sp() - Announce there is data in the shared buffer
++ *
++ * Notify the MM partition in the trusted world that
++ * data is available in the shared buffer.
++ * This is a blocking call during which trusted world has exclusive access
++ * to the MM shared buffer.
++ *
++ * Return:
++ *
++ * 0 on success
++ */
++static int ffa_notify_mm_sp(void)
++{
++	struct ffa_send_direct_data msg = {0};
++	int ret;
++	int sp_event_ret;
++	struct udevice *dev;
++
++	ret = uclass_first_device_err(UCLASS_FFA, &dev);
++	if (ret) {
++		log_err("EFI: Cannot find FF-A bus device, notify MM SP failure\n");
++		return ret;
++	}
++
++	msg.data0 = CONFIG_FFA_SHARED_MM_BUF_OFFSET; /* x3 */
++
++	ret = ffa_sync_send_receive(dev, mm_sp_id, &msg, 1);
++	if (ret)
++		return ret;
++
++	sp_event_ret = msg.data0; /* x3 */
++
++	switch (sp_event_ret) {
++	case MM_SUCCESS:
++		ret = 0;
++		break;
++	case MM_NOT_SUPPORTED:
++		ret = -EINVAL;
++		break;
++	case MM_INVALID_PARAMETER:
++		ret = -EPERM;
++		break;
++	case MM_DENIED:
++		ret = -EACCES;
++		break;
++	case MM_NO_MEMORY:
++		ret = -EBUSY;
++		break;
++	default:
++		ret = -EACCES;
++	}
++
++	return ret;
++}
++
++/**
++ * ffa_discover_mm_sp_id() - Query the MM partition ID
++ *
++ * Use the FF-A driver to get the MM partition ID.
++ * If multiple partitions are found, use the first one.
++ * This is a boot time function.
++ *
++ * Return:
++ *
++ * 0 on success
++ */
++static int ffa_discover_mm_sp_id(void)
++{
++	u32 count = 0;
++	int ret;
++	struct ffa_partition_desc *descs;
++	struct udevice *dev;
++
++	ret = uclass_first_device_err(UCLASS_FFA, &dev);
++	if (ret) {
++		log_err("EFI: Cannot find FF-A bus device, MM SP discovery failure\n");
++		return ret;
++	}
++
++	/* Ask the driver to fill the buffer with the SPs info */
++	ret = ffa_partition_info_get(dev, mm_sp_svc_uuid, &count, &descs);
++	if (ret) {
++		log_err("EFI: Failure in querying SPs info (%d), MM SP discovery failure\n", ret);
++		return ret;
++	}
++
++	/* MM SPs found , use the first one */
++
++	mm_sp_id = descs[0].info.id;
++
++	log_info("EFI: MM partition ID 0x%x\n", mm_sp_id);
++
++	return 0;
++}
++
++/**
++ * ffa_mm_communicate() - Exchange EFI services data with  the MM partition using FF-A
++ * @comm_buf:		locally allocated communication buffer used for rx/tx
++ * @dsize:				communication buffer size
++ *
++ * Issue a door bell event to notify the MM partition (SP) running in OP-TEE
++ * that there is data to read from the shared buffer.
++ * Communication with the MM SP is performed using FF-A transport.
++ * On the event, MM SP can read the data from the buffer and
++ * update the MM shared buffer with response data.
++ * The response data is copied back to the communication buffer.
++ *
++ * Return:
++ *
++ * EFI status code
++ */
++static efi_status_t ffa_mm_communicate(void *comm_buf, ulong comm_buf_size)
++{
++	ulong tx_data_size;
++	int ffa_ret;
++	efi_status_t efi_ret;
++	struct efi_mm_communicate_header *mm_hdr;
++	void *virt_shared_buf;
++
++	if (!comm_buf)
++		return EFI_INVALID_PARAMETER;
++
++	/* Discover MM partition ID at boot time */
++	if (!mm_sp_id && ffa_discover_mm_sp_id()) {
++		log_err("EFI: Failure to discover MM SP ID at boot time, FF-A MM comms failure\n");
++		return EFI_UNSUPPORTED;
++	}
++
++	mm_hdr = (struct efi_mm_communicate_header *)comm_buf;
++	tx_data_size = mm_hdr->message_len + sizeof(efi_guid_t) + sizeof(size_t);
++
++	if (comm_buf_size != tx_data_size || tx_data_size > CONFIG_FFA_SHARED_MM_BUF_SIZE)
++		return EFI_INVALID_PARAMETER;
++
++	/* Copy the data to the shared buffer */
++
++	virt_shared_buf = map_sysmem((phys_addr_t)CONFIG_FFA_SHARED_MM_BUF_ADDR, 0);
++	memcpy(virt_shared_buf, comm_buf, tx_data_size);
++
++	/*
++	 * The secure world might have cache disabled for
++	 * the device region used for shared buffer (which is the case for Optee).
++	 * In this case, the secure world reads the data from DRAM.
++	 * Let's flush the cache so the DRAM is updated with the latest data.
++	 */
++#ifdef CONFIG_ARM64
++	invalidate_dcache_all();
++#endif
++
++	/* Announce there is data in the shared buffer */
++
++	ffa_ret = ffa_notify_mm_sp();
++
++	switch (ffa_ret) {
++	case 0: {
++		ulong rx_data_size;
++		/* Copy the MM SP response from the shared buffer to the communication buffer */
++		rx_data_size = ((struct efi_mm_communicate_header *)virt_shared_buf)->message_len +
++			sizeof(efi_guid_t) +
++			sizeof(size_t);
++
++		if (rx_data_size > comm_buf_size) {
++			efi_ret = EFI_OUT_OF_RESOURCES;
++			break;
++		}
++
++		memcpy(comm_buf, virt_shared_buf, rx_data_size);
++		efi_ret = EFI_SUCCESS;
++		break;
++	}
++	case -EINVAL:
++		efi_ret = EFI_DEVICE_ERROR;
++		break;
++	case -EPERM:
++		efi_ret = EFI_INVALID_PARAMETER;
++		break;
++	case -EACCES:
++		efi_ret = EFI_ACCESS_DENIED;
++		break;
++	case -EBUSY:
++		efi_ret = EFI_OUT_OF_RESOURCES;
++		break;
++	default:
++		efi_ret = EFI_ACCESS_DENIED;
++	}
++
++	unmap_sysmem(virt_shared_buf);
++	return efi_ret;
++}
++
++/**
++ * get_mm_comms() - detect the available MM transport
++ *
++ * Make sure the FF-A bus is probed successfully
++ * which means FF-A communication with secure world works and ready
++ * for use.
++ *
++ * If FF-A bus is not ready, use OPTEE comms.
++ *
++ * Return:
++ *
++ * MM_COMMS_FFA or MM_COMMS_OPTEE
++ */
++static enum mm_comms_select get_mm_comms(void)
++{
++	struct udevice *dev;
++	int ret;
++
++	ret = uclass_first_device_err(UCLASS_FFA, &dev);
++	if (ret) {
++		log_err("EFI: Cannot find FF-A bus device, trying Optee comms\n");
++		return MM_COMMS_OPTEE;
++	}
++
++	return MM_COMMS_FFA;
++}
++
++/**
++ * mm_communicate() - Adjust the communication buffer to the MM SP and send
+  * it to OP-TEE
+  *
+- * @comm_buf:		locally allocted communcation buffer
++ * @comm_buf:		locally allocated communication buffer
+  * @dsize:		buffer size
++ *
++ * The SP (also called partition) can be any MM SP such as  StandAlonneMM or smm-gateway.
++ * The comm_buf format is the same for both partitions.
++ * When using the u-boot OP-TEE driver, StandAlonneMM is supported.
++ * When using the u-boot FF-A  driver, any MM SP is supported.
++ *
+  * Return:		status code
+  */
+ static efi_status_t mm_communicate(u8 *comm_buf, efi_uintn_t dsize)
+ {
+ 	efi_status_t ret;
++	enum mm_comms_select mm_comms;
+ 	struct efi_mm_communicate_header *mm_hdr;
+ 	struct smm_variable_communicate_header *var_hdr;
+ 
+@@ -162,7 +404,12 @@ static efi_status_t mm_communicate(u8 *comm_buf, efi_uintn_t dsize)
+ 	mm_hdr = (struct efi_mm_communicate_header *)comm_buf;
+ 	var_hdr = (struct smm_variable_communicate_header *)mm_hdr->data;
+ 
+-	ret = optee_mm_communicate(comm_buf, dsize);
++	mm_comms = get_mm_comms();
++	if (mm_comms == MM_COMMS_FFA)
++		ret = ffa_mm_communicate(comm_buf, dsize);
++	else
++		ret = optee_mm_communicate(comm_buf, dsize);
++
+ 	if (ret != EFI_SUCCESS) {
+ 		log_err("%s failed!\n", __func__);
+ 		return ret;
+@@ -697,7 +944,7 @@ void efi_variables_boot_exit_notify(void)
+ 		ret = EFI_NOT_FOUND;
+ 
+ 	if (ret != EFI_SUCCESS)
+-		log_err("Unable to notify StMM for ExitBootServices\n");
++		log_err("Unable to notify the MM partition for ExitBootServices\n");
+ 	free(comm_buf);
+ 
+ 	/*
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-arm_ffa-efi-introduce-FF-A-MM-communication.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-arm_ffa-efi-introduce-FF-A-MM-communication.patch
deleted file mode 100644
index 574b7df..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0009-arm_ffa-efi-introduce-FF-A-MM-communication.patch
+++ /dev/null
@@ -1,500 +0,0 @@
-From ca1ae0e78ee3476090919459ec5d08187d5eefbc Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Mon, 15 Aug 2022 15:12:49 +0100
-Subject: [PATCH 09/42] arm_ffa: efi: introduce FF-A MM communication
-
-Add MM communication support using FF-A transport
-
-This feature allows accessing MM partitions services through
-EFI MM communication protocol. MM partitions such as StandAlonneMM
-or smm-gateway secure partitions which reside in secure world.
-
-An MM shared buffer and a door bell event are used to exchange
-the data.
-
-The data is used by EFI services such as GetVariable()/SetVariable()
-and copied from the communication buffer to the MM shared buffer.
-
-The secure partition is notified about availability of data in the
-MM shared buffer by an FF-A message (door bell).
-
-On such event, MM SP can read the data and updates the MM shared
-buffer with the response data.
-
-The response data is copied back to the communication buffer and
-consumed by the EFI subsystem.
-
-MM communication protocol supports FF-A 64-bit direct messaging.
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
-Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v8:
-
-* isolate the compilation choices between FF-A and OP-TEE
-* update partition_info_get() second argument to be an SP count
-* pass NULL device pointer to the FF-A bus discovery and operations
-
-v7:
-
-* set the MM door bell event to use 64-bit direct messaging
-* issue a compile time error when one of these macros are not found :
-  FFA_SHARED_MM_BUFFER_SIZE, FFA_SHARED_MM_BUFFER_OFFSET, FFA_SHARED_MM_BUFFER_ADDR
-* make mm_sp_svc_uuid static
-* replace EINVAL with ENOMEM in ffa_discover_mm_sp_id() when calloc() fails
-* improve use of unmap_sysmem() in ffa_mm_communicate()
-
-v6:
-
-* add FF-A runtime discovery at MM communication level
-* drop EFI runtime support for FF-A MM communication
-* revert the changes in include/mm_communication.h for
-  efi_mm_communicate_header and smm_variable_access structures
-
-v4:
-
-* use the new FF-A driver interfaces
-* discover MM partitions at runtime
-* copy FF-A driver private data to EFI runtime section at
-  ExitBootServices()
-* drop use of FFA_ERR_STAT_SUCCESS error code
-* replace EFI_BUFFER_TOO_SMALL with EFI_OUT_OF_RESOURCES
-  in ffa_mm_communicate(). No need for efi_memcpy_runtime() anymore
-* revert the error log in mm_communicate() in case of failure
-* remove packed attribute from efi_mm_communicate_header and
-  smm_variable_communicate_header
-
-v2:
-
-* set default values to 0 for FFA_SHARED_MM_BUFFER_SIZE, FFA_SHARED_MM_BUFFER_ADDR and MM_SP_UUID_DATA and add warnings
-
-v1:
-
-* introduce FF-A MM communication
-
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- include/mm_communication.h        |   5 +
- lib/efi_loader/Kconfig            |  14 +-
- lib/efi_loader/efi_variable_tee.c | 294 +++++++++++++++++++++++++++++-
- 3 files changed, 307 insertions(+), 6 deletions(-)
-
-diff --git a/include/mm_communication.h b/include/mm_communication.h
-index e65fbde60d..d409bed777 100644
---- a/include/mm_communication.h
-+++ b/include/mm_communication.h
-@@ -6,6 +6,8 @@
-  *  Copyright (c) 2017, Intel Corporation. All rights reserved.
-  *  Copyright (C) 2020 Linaro Ltd. <sughosh.ganu@linaro.org>
-  *  Copyright (C) 2020 Linaro Ltd. <ilias.apalodimas@linaro.org>
-+ * (C) Copyright 2022 ARM Limited
-+ * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-  */
- 
- #ifndef _MM_COMMUNICATION_H_
-@@ -13,6 +15,9 @@
- 
- #include <part_efi.h>
- 
-+/* MM service UUID string (big-endian format). This UUID is  common across all MM SPs */
-+#define MM_SP_UUID	"33d532ed-e699-0942-c09c-a798d9cd722d"
-+
- /*
-  * Interface to the pseudo Trusted Application (TA), which provides a
-  * communication channel with the Standalone MM (Management Mode)
-diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
-index b498c72206..ca73908481 100644
---- a/lib/efi_loader/Kconfig
-+++ b/lib/efi_loader/Kconfig
-@@ -55,13 +55,23 @@ config EFI_VARIABLE_FILE_STORE
- 	  stored as file /ubootefi.var on the EFI system partition.
- 
- config EFI_MM_COMM_TEE
--	bool "UEFI variables storage service via OP-TEE"
--	depends on OPTEE
-+	bool "UEFI variables storage service via the trusted world"
-+	depends on OPTEE || ARM_FFA_TRANSPORT
- 	help
-+	  Allowing access to the MM SP services (SPs such as  StandAlonneMM, smm-gateway).
-+	  When using the u-boot OP-TEE driver, StandAlonneMM is supported.
-+	  When using the u-boot FF-A  driver any MM SP is supported.
-+
- 	  If OP-TEE is present and running StandAloneMM, dispatch all UEFI
- 	  variable related operations to that. The application will verify,
- 	  authenticate and store the variables on an RPMB.
- 
-+	  When ARM_FFA_TRANSPORT is used, dispatch all UEFI variable related
-+	  operations to the MM SP running in the secure world.
-+	  A door bell mechanism is used to notify the SP when there is data in the shared
-+	  MM buffer. The data is copied by u-boot to the shared buffer before issuing
-+	  the door bell event.
-+
- config EFI_VARIABLE_NO_STORE
- 	bool "Don't persist non-volatile UEFI variables"
- 	help
-diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c
-index dfef18435d..3933a24e8c 100644
---- a/lib/efi_loader/efi_variable_tee.c
-+++ b/lib/efi_loader/efi_variable_tee.c
-@@ -4,9 +4,12 @@
-  *
-  *  Copyright (C) 2019 Linaro Ltd. <sughosh.ganu@linaro.org>
-  *  Copyright (C) 2019 Linaro Ltd. <ilias.apalodimas@linaro.org>
-+ *  Copyright (C) 2022 ARM Limited
-+ *  Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-  */
- 
- #include <common.h>
-+#include <dm.h>
- #include <efi.h>
- #include <efi_api.h>
- #include <efi_loader.h>
-@@ -15,6 +18,36 @@
- #include <malloc.h>
- #include <mm_communication.h>
- 
-+#if (IS_ENABLED(CONFIG_ARM_FFA_TRANSPORT))
-+
-+#include <arm_ffa.h>
-+#include <cpu_func.h>
-+#include <mapmem.h>
-+
-+#ifndef FFA_SHARED_MM_BUFFER_SIZE
-+#error "FFA_SHARED_MM_BUFFER_SIZE must be defined in include/configs/<board>.h"
-+#define FFA_SHARED_MM_BUFFER_SIZE 0
-+#endif
-+
-+#ifndef FFA_SHARED_MM_BUFFER_OFFSET
-+#error "FFA_SHARED_MM_BUFFER_OFFSET must be defined in include/configs/<board>.h"
-+#define FFA_SHARED_MM_BUFFER_OFFSET 0
-+#endif
-+
-+#ifndef FFA_SHARED_MM_BUFFER_ADDR
-+#error "FFA_SHARED_MM_BUFFER_ADDR must be defined in include/configs/<board>.h"
-+#define FFA_SHARED_MM_BUFFER_ADDR 0
-+#endif
-+
-+/* MM return codes */
-+#define MM_SUCCESS (0)
-+
-+static const char *mm_sp_svc_uuid = MM_SP_UUID;
-+
-+static u16 mm_sp_id;
-+
-+#endif
-+
- extern struct efi_var_file __efi_runtime_data *efi_var_buf;
- static efi_uintn_t max_buffer_size;	/* comm + var + func + data */
- static efi_uintn_t max_payload_size;	/* func + data */
-@@ -24,6 +57,7 @@ struct mm_connection {
- 	u32 session;
- };
- 
-+#if (IS_ENABLED(CONFIG_OPTEE))
- /**
-  * get_connection() - Retrieve OP-TEE session for a specific UUID.
-  *
-@@ -143,13 +177,248 @@ static efi_status_t optee_mm_communicate(void *comm_buf, ulong dsize)
- 
- 	return ret;
- }
-+#endif
-+
-+#if (IS_ENABLED(CONFIG_ARM_FFA_TRANSPORT))
- 
- /**
-- * mm_communicate() - Adjust the cmonnucation buffer to StandAlonneMM and send
-+ * ffa_notify_mm_sp() - Announce there is data in the shared buffer
-+ *
-+ * Notifies the MM partition in the trusted world that
-+ * data is available in the shared buffer.
-+ * This is a blocking call during which trusted world has exclusive access
-+ * to the MM shared buffer.
-+ *
-+ * Return:
-+ *
-+ * 0 on success
-+ */
-+static int ffa_notify_mm_sp(void)
-+{
-+	struct ffa_send_direct_data msg = {0};
-+	int ret;
-+	int sp_event_ret = -1;
-+
-+	if (!ffa_bus_ops_get())
-+		return -EINVAL;
-+
-+	msg.data0 = FFA_SHARED_MM_BUFFER_OFFSET; /* x3 */
-+
-+	ret = ffa_bus_ops_get()->sync_send_receive(NULL, mm_sp_id, &msg, 1);
-+	if (ret != 0)
-+		return ret;
-+
-+	sp_event_ret = msg.data0; /* x3 */
-+
-+	if (sp_event_ret == MM_SUCCESS)
-+		return 0;
-+
-+	/*
-+	 * Failure to notify the MM SP
-+	 */
-+
-+	return -EACCES;
-+}
-+
-+/**
-+ * ffa_discover_mm_sp_id() - Query the MM partition ID
-+ *
-+ * Use the FF-A driver to get the MM partition ID.
-+ * If multiple partitions are found, use the first one.
-+ * This is a boot time function.
-+ *
-+ * Return:
-+ *
-+ * 0 on success
-+ */
-+static int ffa_discover_mm_sp_id(void)
-+{
-+	u32 count = 0;
-+	int ret;
-+	struct ffa_partition_info *parts_info;
-+
-+	if (!ffa_bus_ops_get())
-+		return -EINVAL;
-+
-+	/*
-+	 * get from the driver the count of the SPs matching the UUID
-+	 */
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, mm_sp_svc_uuid, &count, NULL);
-+	if (ret != 0) {
-+		log_err("EFI: Failure in querying partitions count (error code: %d)\n", ret);
-+		return ret;
-+	}
-+
-+	if (!count) {
-+		log_info("EFI: No MM partition found\n");
-+		return ret;
-+	}
-+
-+	/*
-+	 * pre-allocate a buffer to be filled by the driver
-+	 * with	 ffa_partition_info structs
-+	 */
-+
-+	log_info("EFI: Pre-allocating %d partition(s) info structures\n", count);
-+
-+	parts_info = calloc(count, sizeof(*parts_info));
-+	if (!parts_info)
-+		return -ENOMEM;
-+
-+	/*
-+	 * ask the driver to fill the
-+	 * buffer with the SPs info
-+	 */
-+	ret = ffa_bus_ops_get()->partition_info_get(NULL, mm_sp_svc_uuid, &count, parts_info);
-+	if (ret) {
-+		log_err("EFI: Failure in querying partition(s) info (error code: %d)\n", ret);
-+		free(parts_info);
-+		return ret;
-+	}
-+
-+	/*
-+	 * MM SPs found , use the first one
-+	 */
-+
-+	mm_sp_id = parts_info[0].id;
-+
-+	log_info("EFI: MM partition ID 0x%x\n", mm_sp_id);
-+
-+	free(parts_info);
-+
-+	return 0;
-+}
-+
-+/**
-+ * ffa_mm_communicate() - Exchange EFI services data with  the MM partition using FF-A
-+ * @comm_buf:		locally allocated communication buffer used for rx/tx
-+ * @dsize:				communication buffer size
-+ *
-+ * Issues a door bell event to notify the MM partition (SP) running in OP-TEE
-+ * that there is data to read from the shared buffer.
-+ * Communication with the MM SP is performed using FF-A transport.
-+ * On the event, MM SP can read the data from the buffer and
-+ * update the MM shared buffer with response data.
-+ * The response data is copied back to the communication buffer.
-+ *
-+ * Return:
-+ *
-+ * EFI status code
-+ */
-+static efi_status_t ffa_mm_communicate(void *comm_buf, ulong comm_buf_size)
-+{
-+	ulong tx_data_size;
-+	int ffa_ret;
-+	efi_status_t efi_ret;
-+	struct efi_mm_communicate_header *mm_hdr;
-+	void *virt_shared_buf;
-+
-+	if (!comm_buf)
-+		return EFI_INVALID_PARAMETER;
-+
-+	/* Discover MM partition ID at boot time */
-+	if (!mm_sp_id && ffa_discover_mm_sp_id()  != 0) {
-+		log_err("EFI: Failure to discover MM partition ID at boot time\n");
-+		return EFI_UNSUPPORTED;
-+	}
-+
-+	mm_hdr = (struct efi_mm_communicate_header *)comm_buf;
-+	tx_data_size = mm_hdr->message_len + sizeof(efi_guid_t) + sizeof(size_t);
-+
-+	if (comm_buf_size != tx_data_size || tx_data_size > FFA_SHARED_MM_BUFFER_SIZE)
-+		return EFI_INVALID_PARAMETER;
-+
-+	/* Copy the data to the shared buffer */
-+
-+	virt_shared_buf = (void *)map_sysmem((phys_addr_t)FFA_SHARED_MM_BUFFER_ADDR, 0);
-+	memcpy(virt_shared_buf, comm_buf, tx_data_size);
-+
-+	/*
-+	 * The secure world might have cache disabled for
-+	 * the device region used for shared buffer (which is the case for Optee).
-+	 * In this case, the secure world reads the data from DRAM.
-+	 * Let's flush the cache so the DRAM is updated with the latest data.
-+	 */
-+	#ifdef CONFIG_ARM64
-+	invalidate_dcache_all();
-+	#endif
-+
-+	/* Announce there is data in the shared buffer */
-+
-+	ffa_ret = ffa_notify_mm_sp();
-+
-+	switch (ffa_ret) {
-+	case 0:
-+	{
-+		ulong rx_data_size;
-+		/* Copy the MM SP response from the shared buffer to the communication buffer */
-+		rx_data_size = ((struct efi_mm_communicate_header *)virt_shared_buf)->message_len +
-+			sizeof(efi_guid_t) +
-+			sizeof(size_t);
-+
-+		if (rx_data_size > comm_buf_size) {
-+			efi_ret = EFI_OUT_OF_RESOURCES;
-+			break;
-+		}
-+
-+		memcpy(comm_buf, virt_shared_buf, rx_data_size);
-+		efi_ret = EFI_SUCCESS;
-+		break;
-+	}
-+	case -EINVAL:
-+		efi_ret = EFI_DEVICE_ERROR;
-+		break;
-+	case -EPERM:
-+		efi_ret = EFI_INVALID_PARAMETER;
-+		break;
-+	case -EACCES:
-+		efi_ret = EFI_ACCESS_DENIED;
-+		break;
-+	case -EBUSY:
-+		efi_ret = EFI_OUT_OF_RESOURCES;
-+		break;
-+	default:
-+		efi_ret = EFI_ACCESS_DENIED;
-+	}
-+
-+	unmap_sysmem(virt_shared_buf);
-+	return efi_ret;
-+}
-+#endif
-+
-+/**
-+ * select_ffa_mm_comms() - checks FF-A support availability
-+ *
-+ * Making sure FF-A is compiled in. If that's the case try to discover
-+ * the FF-A bus.
-+ *
-+ * Return:
-+ *
-+ * 0: FF-A ready for use. Otherwise, failure
-+ */
-+static efi_status_t select_ffa_mm_comms(void)
-+{
-+	efi_status_t ret = EFI_UNSUPPORTED;
-+#if (IS_ENABLED(CONFIG_ARM_FFA_TRANSPORT))
-+	ret = ffa_bus_discover(NULL);
-+	if (ret)
-+		ret = EFI_NOT_READY;
-+#endif
-+	return ret;
-+}
-+
-+/**
-+ * mm_communicate() - Adjust the communication buffer to the MM SP and send
-  * it to OP-TEE
-  *
-- * @comm_buf:		locally allocted communcation buffer
-+ * @comm_buf:		locally allocated communication buffer
-  * @dsize:		buffer size
-+ *
-+ * The SP (also called partition) can be any MM SP such as  StandAlonneMM or smm-gateway.
-+ * The comm_buf format is the same for both partitions.
-+ * When using the u-boot OP-TEE driver, StandAlonneMM is supported.
-+ * When using the u-boot FF-A  driver, any MM SP is supported.
-+ *
-  * Return:		status code
-  */
- static efi_status_t mm_communicate(u8 *comm_buf, efi_uintn_t dsize)
-@@ -162,7 +431,17 @@ static efi_status_t mm_communicate(u8 *comm_buf, efi_uintn_t dsize)
- 	mm_hdr = (struct efi_mm_communicate_header *)comm_buf;
- 	var_hdr = (struct smm_variable_communicate_header *)mm_hdr->data;
- 
--	ret = optee_mm_communicate(comm_buf, dsize);
-+	ret = select_ffa_mm_comms();
-+	if (ret != EFI_SUCCESS) {
-+#if (IS_ENABLED(CONFIG_OPTEE))
-+		ret = optee_mm_communicate(comm_buf, dsize);
-+#endif
-+	} else {
-+#if (IS_ENABLED(CONFIG_ARM_FFA_TRANSPORT))
-+		ret = ffa_mm_communicate(comm_buf, dsize);
-+#endif
-+	}
-+
- 	if (ret != EFI_SUCCESS) {
- 		log_err("%s failed!\n", __func__);
- 		return ret;
-@@ -258,6 +537,13 @@ efi_status_t EFIAPI get_max_payload(efi_uintn_t *size)
- 		goto out;
- 	}
- 	*size = var_payload->size;
-+
-+	#if (IS_ENABLED(CONFIG_ARM_FFA_TRANSPORT))
-+		if (*size > FFA_SHARED_MM_BUFFER_SIZE)
-+			*size = FFA_SHARED_MM_BUFFER_SIZE - MM_COMMUNICATE_HEADER_SIZE	-
-+				MM_VARIABLE_COMMUNICATE_SIZE;
-+	#endif
-+
- 	/*
- 	 * There seems to be a bug in EDK2 miscalculating the boundaries and
- 	 * size checks, so deduct 2 more bytes to fulfill this requirement. Fix
-@@ -697,7 +983,7 @@ void efi_variables_boot_exit_notify(void)
- 		ret = EFI_NOT_FOUND;
- 
- 	if (ret != EFI_SUCCESS)
--		log_err("Unable to notify StMM for ExitBootServices\n");
-+		log_err("Unable to notify the MM partition for ExitBootServices\n");
- 	free(comm_buf);
- 
- 	/*
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-FF-A-v15-arm_ffa-efi-corstone1000-enable-MM-communic.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-FF-A-v15-arm_ffa-efi-corstone1000-enable-MM-communic.patch
new file mode 100644
index 0000000..4dcec1d
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-FF-A-v15-arm_ffa-efi-corstone1000-enable-MM-communic.patch
@@ -0,0 +1,33 @@
+From 79e941be83a7394d03b09c618c8e2924ef962d64 Mon Sep 17 00:00:00 2001
+From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Date: Mon, 17 Jul 2023 15:23:33 +0100
+Subject: [PATCH 10/33] FF-A v15: arm_ffa: efi: corstone1000: enable MM
+ communication
+
+turn on EFI MM communication
+
+On corstone1000 platform MM communication between u-boot
+and the secure world (Optee) is done using the FF-A bus.
+
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20230713132847.176000-1-abdellatif.elkhlifi@arm.com/]
+---
+ configs/corstone1000_defconfig | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index 2d391048cd..ee5481b63c 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -53,3 +53,8 @@ CONFIG_DM_SERIAL=y
+ CONFIG_USB=y
+ CONFIG_USB_ISP1760=y
+ CONFIG_ERRNO_STR=y
++CONFIG_NVMXIP_QSPI=y
++CONFIG_EFI_MM_COMM_TEE=y
++CONFIG_FFA_SHARED_MM_BUF_SIZE=4096
++CONFIG_FFA_SHARED_MM_BUF_OFFSET=0
++CONFIG_FFA_SHARED_MM_BUF_ADDR=0x02000000
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-arm_ffa-efi-corstone1000-enable-MM-communication.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-arm_ffa-efi-corstone1000-enable-MM-communication.patch
deleted file mode 100644
index 4fe1405..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0010-arm_ffa-efi-corstone1000-enable-MM-communication.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From a595dfd91d3e226eaa39e324673871c73ae0aa29 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Fri, 23 Sep 2022 15:17:21 +0100
-Subject: [PATCH 10/42] arm_ffa: efi: corstone1000: enable MM communication
-
-turn on EFI MM communication
-
-On corstone1000 platform MM communication between u-boot
-and the secure world (Optee) is done using the FF-A bus.
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Cc: Tom Rini <trini@konsulko.com>
-Cc: Simon Glass <sjg@chromium.org>
-Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
-Cc: Jens Wiklander <jens.wiklander@linaro.org>
-Upstream-Status: Submitted [cover letter: https://lore.kernel.org/all/20221122131751.22747-1-abdellatif.elkhlifi@arm.com/]
-
-Changelog:
-===============
-
-v8:
-
-* drop OP-TEE configs from Corstone-1000 defconfig
-
-v7:
-
-* improve the definition of FFA_SHARED_MM_BUFFER_ADDR and
-  FFA_SHARED_MM_BUFFER_OFFSET
-* update FFA_SHARED_MM_BUFFER_ADDR value
-
-v6:
-
-* corstone-1000: enable optee driver
-* corstone-1000: remove CONFIG_ARM_FFA_EFI_RUNTIME_MODE from the defconfig
-
-v4:
-
-* corstone-1000: turn on EFI MM communication
-
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- configs/corstone1000_defconfig |  2 ++
- include/configs/corstone1000.h | 10 ++++++++++
- 2 files changed, 12 insertions(+)
-
-diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index dddfa27507..d1dc06c86c 100644
---- a/configs/corstone1000_defconfig
-+++ b/configs/corstone1000_defconfig
-@@ -52,3 +52,5 @@ CONFIG_DM_SERIAL=y
- CONFIG_USB=y
- CONFIG_USB_ISP1760=y
- CONFIG_ERRNO_STR=y
-+CONFIG_EFI_MM_COMM_TEE=y
-+CONFIG_ARM_FFA_TRANSPORT=y
-diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
-index 8e0230c135..b6226fa12a 100644
---- a/include/configs/corstone1000.h
-+++ b/include/configs/corstone1000.h
-@@ -14,6 +14,15 @@
- 
- #include <linux/sizes.h>
- 
-+#define FFA_SHARED_MM_BUFFER_SIZE	SZ_4K /* 4 KB */
-+
-+/*
-+ * shared buffer physical address used for communication between
-+ * u-boot and the MM SP
-+ */
-+#define FFA_SHARED_MM_BUFFER_ADDR	0x02000000UL
-+#define FFA_SHARED_MM_BUFFER_OFFSET	0
-+
- #define V2M_BASE		0x80000000
- 
- #define CONFIG_PL011_CLOCK	50000000
-@@ -22,6 +31,7 @@
- #define PHYS_SDRAM_1		(V2M_BASE)
- #define PHYS_SDRAM_1_SIZE	0x80000000
- 
-+#define CFG_SYS_SDRAM_BASE	PHYS_SDRAM_1
- #define CONFIG_SYS_SDRAM_BASE	PHYS_SDRAM_1
- 
- #define BOOT_TARGET_DEVICES(func) \
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-introduce-EFI-capsule-update.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-fwu-introduce-EFI-capsule-update.patch
similarity index 66%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-introduce-EFI-capsule-update.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-fwu-introduce-EFI-capsule-update.patch
index c526626..d2c440c 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-introduce-EFI-capsule-update.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0011-efi-corstone1000-fwu-introduce-EFI-capsule-update.patch
@@ -1,7 +1,7 @@
-From b9c44c396f9ad9588184272cdc5ed98e19e82c0a Mon Sep 17 00:00:00 2001
+From 90b2741149a538c93aed61522c0d3363351bd578 Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Tue, 29 Nov 2022 15:11:27 +0000
-Subject: [PATCH 11/42] efi: corstone1000: introduce EFI capsule update
+Date: Mon, 17 Jul 2023 15:56:18 +0100
+Subject: [PATCH 11/33] efi: corstone1000: fwu: introduce EFI capsule update
 
 This commit provides capsule update feature for Corstone1000.
 
@@ -12,30 +12,35 @@
 memory after u-boot relocation to the end of DDR.
 
 The capsule buffer is shared between u-boot and the secure world.
-On UpdateCapsule() , capsule data is copied to the buffer
-and a buffer ready event is generated using FF-A transport.
 
-On ExitBootServices() a kernel started event is sent to the
-SE Proxy FW update service. This event is generated on each boot.
+On UpdateCapsule() , capsule data is copied to the buffer and a buffer ready event is generated using FF-A transport.
+
+On efi_init_capsule() in U-Boot, an EFI started event is sent to SE Proxy FW update service. This event is generated on each boot.
+
+Note: The SE proxy SP requires that the interface/event IDs are passed using register w4 for the buffer ready event and the EFI started event.
+
+    interface ID (31:16)
+    event ID (15:0)
 
 Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 Upstream-Status: Pending [Not submitted to upstream yet]
 ---
  board/armltd/corstone1000/corstone1000.c |   4 +
  configs/corstone1000_defconfig           |   3 +
- include/configs/corstone1000.h           |  18 ++++
+ include/configs/corstone1000.h           |  24 ++++
  include/efi_loader.h                     |   4 +-
- lib/efi_loader/efi_boottime.c            |  36 +++++++
- lib/efi_loader/efi_capsule.c             | 124 ++++++++++++++++++++++-
- lib/efi_loader/efi_setup.c               |  15 +++
- 7 files changed, 200 insertions(+), 4 deletions(-)
+ lib/efi_loader/efi_boottime.c            |   7 ++
+ lib/efi_loader/efi_capsule.c             | 136 ++++++++++++++++++++++-
+ lib/efi_loader/efi_setup.c               |  64 +++++++++++
+ 7 files changed, 238 insertions(+), 4 deletions(-)
 
 diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
-index 4f4b96a095..76816f8f4e 100644
+index 6ec8e6144f..c840290885 100644
 --- a/board/armltd/corstone1000/corstone1000.c
 +++ b/board/armltd/corstone1000/corstone1000.c
-@@ -66,6 +66,10 @@ static struct mm_region corstone1000_mem_map[] = {
+@@ -67,6 +67,10 @@ static struct mm_region corstone1000_mem_map[] = {
  
  struct mm_region *mem_map = corstone1000_mem_map;
  
@@ -47,21 +52,21 @@
  {
  	return 0;
 diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index d1dc06c86c..06eac3e041 100644
+index ee5481b63c..40ba415ecb 100644
 --- a/configs/corstone1000_defconfig
 +++ b/configs/corstone1000_defconfig
-@@ -54,3 +54,6 @@ CONFIG_USB_ISP1760=y
- CONFIG_ERRNO_STR=y
- CONFIG_EFI_MM_COMM_TEE=y
- CONFIG_ARM_FFA_TRANSPORT=y
+@@ -58,3 +58,6 @@ CONFIG_EFI_MM_COMM_TEE=y
+ CONFIG_FFA_SHARED_MM_BUF_SIZE=4096
+ CONFIG_FFA_SHARED_MM_BUF_OFFSET=0
+ CONFIG_FFA_SHARED_MM_BUF_ADDR=0x02000000
 +CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
 +CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y
 +CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
 diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
-index b6226fa12a..cd30499e3c 100644
+index 3347c11792..8927b09499 100644
 --- a/include/configs/corstone1000.h
 +++ b/include/configs/corstone1000.h
-@@ -14,6 +14,24 @@
+@@ -14,6 +14,30 @@
  
  #include <linux/sizes.h>
  
@@ -73,7 +78,13 @@
 +
 +/* Notification events used with SE Proxy update service */
 +#define CORSTONE1000_BUFFER_READY_EVT		(0x1)
-+#define CORSTONE1000_KERNEL_STARTED_EVT		(0x2)
++#define CORSTONE1000_UBOOT_EFI_STARTED_EVT	(0x2)
++
++#define PREP_SEPROXY_SVC_ID_MASK	GENMASK(31, 16)
++#define PREP_SEPROXY_SVC_ID(x)	 (FIELD_PREP(PREP_SEPROXY_SVC_ID_MASK, (x)))
++
++#define PREP_SEPROXY_EVT_MASK		GENMASK(15, 0)
++#define PREP_SEPROXY_EVT(x)	(FIELD_PREP(PREP_SEPROXY_EVT_MASK, (x)))
 +
 +/* Size in 4KB pages of the EFI capsule buffer */
 +#define CORSTONE1000_CAPSULE_BUFFER_SIZE	(8192) /* 32 MB */
@@ -83,14 +94,14 @@
 +	EFI_GUID(0x3a770ddc, 0x409b, 0x48b2, 0x81, 0x41, \
 +		 0x93, 0xb7, 0xc6, 0x0b, 0x20, 0x9e)
 +
- #define FFA_SHARED_MM_BUFFER_SIZE	SZ_4K /* 4 KB */
+ #define V2M_BASE		0x80000000
  
- /*
+ #define CFG_PL011_CLOCK	50000000
 diff --git a/include/efi_loader.h b/include/efi_loader.h
-index f9e427f090..26981141c2 100644
+index 38d7f66bab..0a613ed51e 100644
 --- a/include/efi_loader.h
 +++ b/include/efi_loader.h
-@@ -1032,11 +1032,11 @@ extern const struct efi_firmware_management_protocol efi_fmp_fit;
+@@ -1036,11 +1036,11 @@ extern const struct efi_firmware_management_protocol efi_fmp_fit;
  extern const struct efi_firmware_management_protocol efi_fmp_raw;
  
  /* Capsule update */
@@ -105,70 +116,37 @@
  		efi_uintn_t capsule_count,
  		u64 *maximum_capsule_size,
 diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index fea4eb7a34..faab74474d 100644
+index d5065f296a..a5da77c36c 100644
 --- a/lib/efi_loader/efi_boottime.c
 +++ b/lib/efi_loader/efi_boottime.c
-@@ -2103,6 +2103,33 @@ static void efi_exit_caches(void)
- #endif
- }
+@@ -23,6 +23,13 @@
+ #include <asm/setjmp.h>
+ #include <linux/libfdt_env.h>
  
 +#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
-+/**
-+ * efi_corstone1000_kernel_started_event - notifies SE Proxy FW update service
-+ *
-+ * This function notifies the SE Proxy update service that the kernel has already started
-+ *
-+ * Return:
-+ *
-+ * 0: on success, otherwise failure
-+ */
-+static int efi_corstone1000_kernel_started_event(void)
-+{
-+	struct ffa_send_direct_data msg = {0};
-+
-+	log_debug("[%s]\n", __func__);
-+
-+	/*
-+	 * setting the kernel started  event arguments
-+	 */
-+	msg.data0 = CORSTONE1000_SEPROXY_UPDATE_SVC_ID; /* x3 */
-+	msg.data2 = CORSTONE1000_KERNEL_STARTED_EVT; /* x5 */
-+
-+	return ffa_bus_ops_get()->sync_send_receive(CORSTONE1000_SEPROXY_PART_ID, &msg, 0);
-+}
-+
++#include <arm_ffa.h>
++#include <dm.h>
++#include <linux/bitfield.h>
++#include <linux/bitops.h>
 +#endif
 +
- /**
-  * efi_exit_boot_services() - stop all boot services
-  * @image_handle: handle of the loaded image
-@@ -2209,6 +2236,15 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
- 	/* Recalculate CRC32 */
- 	efi_update_table_header_crc32(&systab.hdr);
+ DECLARE_GLOBAL_DATA_PTR;
  
-+#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
-+	/* Notifying SE Proxy FW update service */
-+	ffa_ret = efi_corstone1000_kernel_started_event();
-+	if (ffa_ret)
-+		debug("[efi_boottime][ERROR]: Failure to notify SE Proxy FW update service\n");
-+	else
-+		debug("[efi_boottime][INFO]: SE Proxy FW update service notified\n");
-+#endif
-+
- 	/* Give the payload some time to boot */
- 	efi_set_watchdog(0);
- 	schedule();
+ /* Task priority level */
 diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
-index 0997cd248f..9e8ddaac7f 100644
+index 7a6f195cbc..ea084e4ed2 100644
 --- a/lib/efi_loader/efi_capsule.c
 +++ b/lib/efi_loader/efi_capsule.c
-@@ -26,6 +26,14 @@
+@@ -26,6 +26,17 @@
  #include <crypto/pkcs7_parser.h>
  #include <linux/err.h>
  
 +#ifdef CONFIG_TARGET_CORSTONE1000
 +#include <arm_ffa.h>
 +#include <cpu_func.h>
++#include <dm.h>
++#include <linux/bitfield.h>
++#include <linux/bitops.h>
 +
 +void *__efi_runtime_data corstone1000_capsule_buf; /* capsule shared buffer virtual address */
 +efi_guid_t corstone1000_capsule_guid = EFI_CORSTONE1000_CAPSULE_ID_GUID;
@@ -177,7 +155,7 @@
  DECLARE_GLOBAL_DATA_PTR;
  
  const efi_guid_t efi_guid_capsule_report = EFI_CAPSULE_REPORT_GUID;
-@@ -696,6 +704,78 @@ static efi_status_t efi_capsule_update_firmware(
+@@ -709,6 +720,87 @@ static efi_status_t efi_capsule_update_firmware(
  }
  #endif /* CONFIG_EFI_CAPSULE_FIRMWARE_MANAGEMENT */
  
@@ -239,24 +217,33 @@
 +static int __efi_runtime efi_corstone1000_buffer_ready_event(u32 capsule_image_size)
 +{
 +	struct ffa_send_direct_data msg = {0};
++	int ret;
++	struct udevice *dev;
 +
 +	log_debug("[%s]\n", __func__);
 +
-+	/*
-+	 * setting the buffer ready event arguments
-+	 */
-+	msg.data0 = CORSTONE1000_SEPROXY_UPDATE_SVC_ID; /* x3 */
-+	msg.data1 = capsule_image_size; /* x4 */
-+	msg.data2 = CORSTONE1000_BUFFER_READY_EVT; /* x5 */
++	ret = uclass_first_device_err(UCLASS_FFA, &dev);
++	if (ret) {
++		log_err("Cannot find FF-A bus device\n");
++		return ret;
++	}
 +
-+	return ffa_bus_ops_get()->sync_send_receive(NULL, CORSTONE1000_SEPROXY_PART_ID, &msg, 0);
++	/*
++	 * setting the buffer ready event arguments in register w4:
++	 * - capsule update interface ID (31:16)
++	 * - the buffer ready event ID (15:0)
++	 */
++	msg.data1 = PREP_SEPROXY_SVC_ID(CORSTONE1000_SEPROXY_UPDATE_SVC_ID) |
++		PREP_SEPROXY_EVT(CORSTONE1000_BUFFER_READY_EVT); /* w4 */
++
++	return ffa_sync_send_receive(dev, CORSTONE1000_SEPROXY_PART_ID, &msg, 0);
 +}
 +#endif
 +
  /**
   * efi_update_capsule() - process information from operating system
   * @capsule_header_array:	Array of virtual address pointers
-@@ -709,7 +789,7 @@ static efi_status_t efi_capsule_update_firmware(
+@@ -722,7 +814,7 @@ static efi_status_t efi_capsule_update_firmware(
   *
   * Return:			status code
   */
@@ -265,7 +252,7 @@
  		struct efi_capsule_header **capsule_header_array,
  		efi_uintn_t capsule_count,
  		u64 scatter_gather_list)
-@@ -726,6 +806,13 @@ efi_status_t EFIAPI efi_update_capsule(
+@@ -739,6 +831,13 @@ efi_status_t EFIAPI efi_update_capsule(
  		goto out;
  	}
  
@@ -279,7 +266,7 @@
  	ret = EFI_SUCCESS;
  	for (i = 0, capsule = *capsule_header_array; i < capsule_count;
  	     i++, capsule = *(++capsule_header_array)) {
-@@ -738,6 +825,39 @@ efi_status_t EFIAPI efi_update_capsule(
+@@ -751,6 +850,39 @@ efi_status_t EFIAPI efi_update_capsule(
  
  		log_debug("Capsule[%d] (guid:%pUs)\n",
  			  i, &capsule->capsule_guid);
@@ -319,7 +306,7 @@
  		if (!guidcmp(&capsule->capsule_guid,
  			     &efi_guid_firmware_management_capsule_id)) {
  			ret  = efi_capsule_update_firmware(capsule);
-@@ -776,7 +896,7 @@ out:
+@@ -789,7 +921,7 @@ out:
   *
   * Return:			status code
   */
@@ -329,14 +316,19 @@
  		efi_uintn_t capsule_count,
  		u64 *maximum_capsule_size,
 diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
-index 5437641135..1ad2fa52d7 100644
+index 58d4e13402..bf90a98b5a 100644
 --- a/lib/efi_loader/efi_setup.c
 +++ b/lib/efi_loader/efi_setup.c
-@@ -16,6 +16,13 @@
+@@ -17,6 +17,18 @@
  
  efi_status_t efi_obj_list_initialized = OBJ_LIST_NOT_INITIALIZED;
  
 +#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
++#include <linux/bitfield.h>
++#include <linux/bitops.h>
++#include <arm_ffa.h>
++#include <dm.h>
++
 +/**
 + * efi_corstone1000_alloc_capsule_shared_buf - allocate capsule shared buffer
 + */
@@ -346,11 +338,62 @@
  /*
   * Allow unaligned memory access.
   *
-@@ -128,6 +135,14 @@ static efi_status_t efi_init_capsule(void)
+@@ -120,6 +132,42 @@ static efi_status_t efi_init_secure_boot(void)
+ }
+ #endif /* CONFIG_EFI_SECURE_BOOT */
+ 
++#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
++/**
++ * efi_corstone1000_uboot-efi_started_event - notifies SE Proxy FW update service
++ *
++ * This function notifies the SE Proxy update service that uboot efi has already started
++ *
++ * Return:
++ *
++ * 0: on success, otherwise failure
++ * */
++static int efi_corstone1000_uboot_efi_started_event(void)
++{
++	struct ffa_send_direct_data msg = {0};
++	int ret;
++	struct udevice *dev;
++
++	log_debug("[%s]\n", __func__);
++
++	ret = uclass_first_device_err(UCLASS_FFA, &dev);
++	if (ret) {
++		log_err("Cannot find FF-A bus device\n");
++		return ret;
++	}
++
++	/*
++	 * setting the kernel started  event arguments:
++	 * setting capsule update interface ID(31:16)
++	 * the kernel started event ID(15:0)
++	 */
++	msg.data1 = PREP_SEPROXY_SVC_ID(CORSTONE1000_SEPROXY_UPDATE_SVC_ID) |
++			PREP_SEPROXY_EVT(CORSTONE1000_UBOOT_EFI_STARTED_EVT); /* w4 */
++
++	return ffa_sync_send_receive(dev, CORSTONE1000_SEPROXY_PART_ID, &msg, 0);
++}
++#endif
++
+ /**
+  * efi_init_capsule - initialize capsule update state
+  *
+@@ -129,6 +177,22 @@ static efi_status_t efi_init_capsule(void)
  {
  	efi_status_t ret = EFI_SUCCESS;
  
 +#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
++	int ffa_ret;
++
++	ffa_ret = efi_corstone1000_uboot_efi_started_event();
++	if (ffa_ret)
++		log_err("Failure to notify SE Proxy FW update service\n");
++	else
++		debug("SE Proxy FW update service notified\n");
++
 +	ret = efi_corstone1000_alloc_capsule_shared_buf();
 +	if (ret != EFI_SUCCESS) {
 +		printf("EFI: Corstone-1000: cannot allocate caspsule shared buffer\n");
@@ -358,9 +401,9 @@
 +	}
 +#endif
 +
- 	if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_UPDATE)) {
- 		ret = efi_set_variable_int(u"CapsuleMax",
- 					   &efi_guid_capsule_report,
+ 	if (IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT)) {
+ 		u16 var_name16[12];
+ 
 -- 
 2.25.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-arm-corstone1000-fix-unrecognized-filesystem-type.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-arm-corstone1000-fix-unrecognized-filesystem-type.patch
index 6fe10eb..f9fb70b 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-arm-corstone1000-fix-unrecognized-filesystem-type.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0012-arm-corstone1000-fix-unrecognized-filesystem-type.patch
@@ -1,7 +1,7 @@
-From ac738fa33edec9ff712dee6d10491cb2eb7cfe3a Mon Sep 17 00:00:00 2001
+From 445dfd4a5d8f31a7efb3f2f15aa677de8b3eb602 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Fri, 4 Mar 2022 15:56:09 +0000
-Subject: [PATCH 12/42] arm: corstone1000: fix unrecognized filesystem type
+Subject: [PATCH 12/33] arm: corstone1000: fix unrecognized filesystem type
 
 Some usb sticks are not recognized by usb, just add a
 delay before checking status.
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch
deleted file mode 100644
index bc03035..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From baa961b6050508710e1c6b572f2e93ac5c488201 Mon Sep 17 00:00:00 2001
-From: Vishnu Banavath <vishnu.banavath@arm.com>
-Date: Fri, 10 Dec 2021 20:03:35 +0000
-Subject: [PATCH 13/42] efi_capsule: corstone1000: pass interface id and buffer
- event id using register w4
-
-Initially the interface/event IDs are passed to the SP using register
-w3 and w5.
-
-Now the SE proxy SP requires this arguments to be in register w4.
-
-This change is to pass interface ID(31:16) and event ID(15:0)
-to SE proxy SP to trigger an event to secure enclave about
-firmware update.
-
-Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- include/configs/corstone1000.h |  6 ++++++
- lib/efi_loader/efi_capsule.c   | 11 +++++++----
- 2 files changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
-index cd30499e3c..e4c7bcb96f 100644
---- a/include/configs/corstone1000.h
-+++ b/include/configs/corstone1000.h
-@@ -24,6 +24,12 @@
- #define CORSTONE1000_BUFFER_READY_EVT		(0x1)
- #define CORSTONE1000_KERNEL_STARTED_EVT		(0x2)
- 
-+#define PREP_SEPROXY_SVC_ID_MASK	GENMASK(31, 16)
-+#define PREP_SEPROXY_SVC_ID(x)	 (FIELD_PREP(PREP_SEPROXY_SVC_ID_MASK, (x)))
-+
-+#define PREP_SEPROXY_EVT_MASK		GENMASK(15, 0)
-+#define PREP_SEPROXY_EVT(x)	(FIELD_PREP(PREP_SEPROXY_EVT_MASK, (x)))
-+
- /* Size in 4KB pages of the EFI capsule buffer */
- #define CORSTONE1000_CAPSULE_BUFFER_SIZE	(8192) /* 32 MB */
- 
-diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
-index 9e8ddaac7f..bd4cc8d272 100644
---- a/lib/efi_loader/efi_capsule.c
-+++ b/lib/efi_loader/efi_capsule.c
-@@ -29,6 +29,8 @@
- #ifdef CONFIG_TARGET_CORSTONE1000
- #include <arm_ffa.h>
- #include <cpu_func.h>
-+#include <linux/bitfield.h>
-+#include <linux/bitops.h>
- 
- void *__efi_runtime_data corstone1000_capsule_buf; /* capsule shared buffer virtual address */
- efi_guid_t corstone1000_capsule_guid = EFI_CORSTONE1000_CAPSULE_ID_GUID;
-@@ -766,11 +768,12 @@ static int __efi_runtime efi_corstone1000_buffer_ready_event(u32 capsule_image_s
- 	log_debug("[%s]\n", __func__);
- 
- 	/*
--	 * setting the buffer ready event arguments
-+	 * setting the buffer ready event arguments in register w4:
-+	 * - capsule update interface ID (31:16)
-+	 * - the buffer ready event ID (15:0)
- 	 */
--	msg.data0 = CORSTONE1000_SEPROXY_UPDATE_SVC_ID; /* x3 */
--	msg.data1 = capsule_image_size; /* x4 */
--	msg.data2 = CORSTONE1000_BUFFER_READY_EVT; /* x5 */
-+	msg.data1 = PREP_SEPROXY_SVC_ID(CORSTONE1000_SEPROXY_UPDATE_SVC_ID) |
-+		PREP_SEPROXY_EVT(CORSTONE1000_BUFFER_READY_EVT); /* w4 */
- 
- 	return ffa_bus_ops_get()->sync_send_receive(NULL, CORSTONE1000_SEPROXY_PART_ID, &msg, 0);
- }
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_loader-corstone1000-remove-guid-check-from-corst.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-efi_loader-corstone1000-remove-guid-check-from-corst.patch
similarity index 83%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_loader-corstone1000-remove-guid-check-from-corst.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-efi_loader-corstone1000-remove-guid-check-from-corst.patch
index e57b944..4ddb35e 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_loader-corstone1000-remove-guid-check-from-corst.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0013-efi_loader-corstone1000-remove-guid-check-from-corst.patch
@@ -1,7 +1,7 @@
-From 5e09d349ec8af6585bce777acbfd2d218fc2e8d4 Mon Sep 17 00:00:00 2001
+From 68248cd3cc95e0480ee2cbc3ebaba51967889199 Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Sat, 11 Dec 2021 13:23:55 +0000
-Subject: [PATCH 15/42] efi_loader: corstone1000: remove guid check from
+Subject: [PATCH 13/33] efi_loader: corstone1000: remove guid check from
  corstone1000 config option
 
 Use generic fmp guid and no separte check is required for
@@ -15,10 +15,10 @@
  1 file changed, 1 insertion(+), 15 deletions(-)
 
 diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
-index bd4cc8d272..ef7b358ddb 100644
+index ea084e4ed2..5314f529b4 100644
 --- a/lib/efi_loader/efi_capsule.c
 +++ b/lib/efi_loader/efi_capsule.c
-@@ -830,12 +830,6 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
+@@ -852,12 +852,6 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
  			  i, &capsule->capsule_guid);
  
  #if CONFIG_IS_ENABLED(TARGET_CORSTONE1000)
@@ -31,7 +31,7 @@
  		if (efi_size_in_pages(capsule->capsule_image_size) >
  		    CORSTONE1000_CAPSULE_BUFFER_SIZE) {
  			log_err("Corstone1000: Capsule data size exceeds the shared buffer size\n");
-@@ -861,15 +855,7 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
+@@ -883,15 +877,7 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
  		goto out;
  #endif
  
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-efi_boottime-corstone1000-pass-interface-id-and-kern.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-efi_boottime-corstone1000-pass-interface-id-and-kern.patch
deleted file mode 100644
index 658e21f..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-efi_boottime-corstone1000-pass-interface-id-and-kern.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From d761d59dd251ae93980f659d253576fc872f2c5f Mon Sep 17 00:00:00 2001
-From: Vishnu Banavath <vishnu.banavath@arm.com>
-Date: Fri, 10 Dec 2021 20:10:41 +0000
-Subject: [PATCH 14/42] efi_boottime: corstone1000: pass interface id and
- kernel event id using register w4
-
-Initially the interface/event IDs are passed to the SP using register
-w3 and w5.
-
-Now the SE proxy SP requires this arguments to be in register w4.
-
-This change is to pass interface ID(31:16) and kernel started
-event ID(15:0) to SE proxy SP to trigger an event to
-secure enclave just before ExitbootService().
-
-Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- lib/efi_loader/efi_boottime.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index faab74474d..36a0be7ba1 100644
---- a/lib/efi_loader/efi_boottime.c
-+++ b/lib/efi_loader/efi_boottime.c
-@@ -30,6 +30,11 @@
- #include <arm_ffa.h>
- #endif
- 
-+#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
-+#include <linux/bitfield.h>
-+#include <linux/bitops.h>
-+#endif
-+
- DECLARE_GLOBAL_DATA_PTR;
- 
- /* Task priority level */
-@@ -2120,10 +2125,12 @@ static int efi_corstone1000_kernel_started_event(void)
- 	log_debug("[%s]\n", __func__);
- 
- 	/*
--	 * setting the kernel started  event arguments
-+	 * setting the kernel started  event arguments:
-+	 * setting capsule update interface ID(31:16)
-+	 * the kernel started event ID(15:0)
- 	 */
--	msg.data0 = CORSTONE1000_SEPROXY_UPDATE_SVC_ID; /* x3 */
--	msg.data2 = CORSTONE1000_KERNEL_STARTED_EVT; /* x5 */
-+	msg.data1 = PREP_SEPROXY_SVC_ID(CORSTONE1000_SEPROXY_UPDATE_SVC_ID) |
-+		PREP_SEPROXY_EVT(CORSTONE1000_KERNEL_STARTED_EVT); /* w4 */
- 
- 	return ffa_bus_ops_get()->sync_send_receive(CORSTONE1000_SEPROXY_PART_ID, &msg, 0);
- }
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
similarity index 80%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
index 1b88d7f..c0b3fa8 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0014-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch
@@ -1,7 +1,7 @@
-From e3ccad1cf9e905ec15ff772dcf53972fafcf54ee Mon Sep 17 00:00:00 2001
+From bb0eb602d3697384318cac90605259aa7fb21c9b Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Fri, 17 Dec 2021 19:49:02 +0000
-Subject: [PATCH 16/42] efi_loader: populate ESRT table if EFI_ESRT config
+Subject: [PATCH 14/33] efi_loader: populate ESRT table if EFI_ESRT config
  option is set
 
 This change is to call efi_esrt_populate function if CONFIG_EFI_ESRT
@@ -15,10 +15,10 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
-index ef7b358ddb..8eb8fc406a 100644
+index 5314f529b4..6a06605ad9 100644
 --- a/lib/efi_loader/efi_capsule.c
 +++ b/lib/efi_loader/efi_capsule.c
-@@ -852,6 +852,13 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
+@@ -874,6 +874,13 @@ efi_status_t __efi_runtime EFIAPI efi_update_capsule(
  			ret = EFI_SUCCESS;
  		}
  
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-efi_firmware-add-get_image_info-for-corstone1000.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_firmware-add-get_image_info-for-corstone1000.patch
similarity index 96%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-efi_firmware-add-get_image_info-for-corstone1000.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_firmware-add-get_image_info-for-corstone1000.patch
index 7087315e..2186330 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-efi_firmware-add-get_image_info-for-corstone1000.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0015-efi_firmware-add-get_image_info-for-corstone1000.patch
@@ -1,7 +1,7 @@
-From d8f79ab37bae283599e40018055ff9d5648fb647 Mon Sep 17 00:00:00 2001
+From 5e12999d179e84ac52e242d56c57a4d429651124 Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Fri, 17 Dec 2021 19:50:25 +0000
-Subject: [PATCH 17/42] efi_firmware: add get_image_info for corstone1000
+Subject: [PATCH 15/33] efi_firmware: add get_image_info for corstone1000
 
 This change is to populate get_image_info which eventually
 will be populated in ESRT table
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-efi_loader-fix-null-pointer-exception-with-get_image.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_loader-fix-null-pointer-exception-with-get_image.patch
similarity index 91%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-efi_loader-fix-null-pointer-exception-with-get_image.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_loader-fix-null-pointer-exception-with-get_image.patch
index 24e5b46..b58c1d79 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-efi_loader-fix-null-pointer-exception-with-get_image.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0016-efi_loader-fix-null-pointer-exception-with-get_image.patch
@@ -1,7 +1,7 @@
-From 3d28467e447f12c5aa276827aa742e7eed1d577a Mon Sep 17 00:00:00 2001
+From 957e88fc52d77e6a3024f06bebfaa713c9e99e59 Mon Sep 17 00:00:00 2001
 From: Vishnu Banavath <vishnu.banavath@arm.com>
 Date: Fri, 14 Jan 2022 15:24:18 +0000
-Subject: [PATCH 19/42] efi_loader: fix null pointer exception with
+Subject: [PATCH 16/33] efi_loader: fix null pointer exception with
  get_image_info
 
 get_img_info API implemented for corstone1000 target does not
@@ -17,7 +17,7 @@
  1 file changed, 11 insertions(+), 8 deletions(-)
 
 diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
-index 70568f2290..c883e2ff0a 100644
+index 0a38a96351..c883e2ff0a 100644
 --- a/lib/efi_loader/efi_firmware.c
 +++ b/lib/efi_loader/efi_firmware.c
 @@ -39,26 +39,29 @@ static efi_status_t efi_corstone1000_img_info_get (
@@ -39,7 +39,7 @@
  		*package_version_name = NULL; /* not supported */
  
  	if(image_info == NULL) {
--		log_info("image_info is null\n");
+-		log_warning("image_info is null\n");
 +		log_debug("image_info is null\n");
  		return EFI_BUFFER_TOO_SMALL;
  	}
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-arm-corstone1000-add-mmc-for-fvp.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-arm-corstone1000-add-mmc-for-fvp.patch
similarity index 81%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-arm-corstone1000-add-mmc-for-fvp.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-arm-corstone1000-add-mmc-for-fvp.patch
index 93da253..75fe64c 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-arm-corstone1000-add-mmc-for-fvp.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0017-arm-corstone1000-add-mmc-for-fvp.patch
@@ -1,7 +1,7 @@
-From d6c183a99a7d232ef5dbf886c49e7fb75b50ecf9 Mon Sep 17 00:00:00 2001
+From 61b5f50718431b5fff57fcaa924238135b11ed3c Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
-Date: Wed, 30 Nov 2022 15:37:22 +0000
-Subject: [PATCH 20/42] arm:corstone1000: add mmc for fvp
+Date: Mon, 17 Jul 2023 16:50:53 +0100
+Subject: [PATCH 17/33] arm:corstone1000: add mmc for fvp
 
 Enable support mmc/sdcard for the corstone1000 FVP.
 
@@ -10,15 +10,15 @@
 Upstream-Status: Pending [Not submitted to upstream yet]
 ---
  board/armltd/corstone1000/corstone1000.c | 28 +++++++++++++++++++-----
- configs/corstone1000_defconfig           |  8 ++++++-
+ configs/corstone1000_defconfig           |  9 ++++++--
  include/configs/corstone1000.h           |  4 +++-
- 3 files changed, 32 insertions(+), 8 deletions(-)
+ 3 files changed, 32 insertions(+), 9 deletions(-)
 
 diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
-index 76816f8f4e..d6ca6e8961 100644
+index c840290885..ecfd8366df 100644
 --- a/board/armltd/corstone1000/corstone1000.c
 +++ b/board/armltd/corstone1000/corstone1000.c
-@@ -38,19 +38,35 @@ static struct mm_region corstone1000_mem_map[] = {
+@@ -39,19 +39,35 @@ static struct mm_region corstone1000_mem_map[] = {
  	}, {
  		/* USB */
  		.virt = 0x40200000UL,
@@ -61,14 +61,15 @@
  		/* OCVM */
  		.virt = 0x80000000UL,
 diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index 06eac3e041..f7c276a10a 100644
+index 40ba415ecb..76158fc37d 100644
 --- a/configs/corstone1000_defconfig
 +++ b/configs/corstone1000_defconfig
-@@ -40,7 +40,13 @@ CONFIG_VERSION_VARIABLE=y
+@@ -40,8 +40,13 @@ CONFIG_VERSION_VARIABLE=y
  CONFIG_NET_RANDOM_ETHADDR=y
  CONFIG_REGMAP=y
  CONFIG_MISC=y
 -# CONFIG_MMC is not set
+-CONFIG_NVMXIP_QSPI=y
 +CONFIG_CLK=y
 +CONFIG_CMD_MMC=y
 +CONFIG_DM_MMC=y
@@ -80,11 +81,11 @@
  CONFIG_PHY_SMSC=y
  CONFIG_SMC911X=y
 diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
-index be13b98d48..a015a1630e 100644
+index 8927b09499..1466507f80 100644
 --- a/include/configs/corstone1000.h
 +++ b/include/configs/corstone1000.h
-@@ -59,7 +59,9 @@
- #define CONFIG_SYS_SDRAM_BASE	PHYS_SDRAM_1
+@@ -49,7 +49,9 @@
+ #define CFG_SYS_SDRAM_BASE	PHYS_SDRAM_1
  
  #define BOOT_TARGET_DEVICES(func) \
 -	func(USB, usb, 0)
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-corstone1000-add-compressed-kernel-support.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-corstone1000-add-compressed-kernel-support.patch
similarity index 87%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-corstone1000-add-compressed-kernel-support.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-corstone1000-add-compressed-kernel-support.patch
index 7797880..0f28cdf 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-corstone1000-add-compressed-kernel-support.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-corstone1000-add-compressed-kernel-support.patch
@@ -1,7 +1,7 @@
-From 155f20028ad5f3ba5d2362ec48abb7804eaade00 Mon Sep 17 00:00:00 2001
+From a5879f1e7d91fc31058ba75b499d77cab080d611 Mon Sep 17 00:00:00 2001
 From: Jon Mason <jon.mason@arm.com>
 Date: Wed, 30 Nov 2022 18:59:59 +0000
-Subject: [PATCH 21/42] corstone1000: add compressed kernel support
+Subject: [PATCH 18/33] corstone1000: add compressed kernel support
 
 The corstone1000 kernel has become too large to fit in the available
 storage.  Swtiching to a compressed kernel avoids the problem, but
@@ -17,10 +17,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index f7c276a10a..1179bf5f3b 100644
+index 76158fc37d..a92668389a 100644
 --- a/configs/corstone1000_defconfig
 +++ b/configs/corstone1000_defconfig
-@@ -15,7 +15,7 @@ CONFIG_FIT=y
+@@ -15,7 +15,7 @@ CONFIG_DISTRO_DEFAULTS=y
  CONFIG_BOOTDELAY=3
  CONFIG_USE_BOOTARGS=y
  CONFIG_BOOTARGS="console=ttyAMA0 loglevel=9 ip=dhcp earlyprintk"
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-efi_loader-send-bootcomplete-message-to-secure-encla.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-efi_loader-send-bootcomplete-message-to-secure-encla.patch
deleted file mode 100644
index 1fbad38..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0018-efi_loader-send-bootcomplete-message-to-secure-encla.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-From a6fee840a411a6a7b6c276d0a7b1d5445039e6c2 Mon Sep 17 00:00:00 2001
-From: Vishnu Banavath <vishnu.banavath@arm.com>
-Date: Mon, 15 Aug 2022 15:46:18 +0100
-Subject: [PATCH 18/42] efi_loader: send bootcomplete message to secure enclave
-
-On corstone1000 platform, Secure Enclave will be expecting
-an event from uboot when it performs capsule update. Previously,
-an event is sent at exitbootservice level. This will create a problem
-when user wants to interrupt at UEFI shell, hence, it is required
-to send an uboot efi initialized event at efi sub-system initialization
-stage.
-
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
----
- include/configs/corstone1000.h |  2 +-
- lib/efi_loader/efi_boottime.c  | 43 ----------------------------------
- lib/efi_loader/efi_firmware.c  |  2 +-
- lib/efi_loader/efi_setup.c     | 39 ++++++++++++++++++++++++++++++
- 4 files changed, 41 insertions(+), 45 deletions(-)
-
-diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
-index e4c7bcb96f..be13b98d48 100644
---- a/include/configs/corstone1000.h
-+++ b/include/configs/corstone1000.h
-@@ -22,7 +22,7 @@
- 
- /* Notification events used with SE Proxy update service */
- #define CORSTONE1000_BUFFER_READY_EVT		(0x1)
--#define CORSTONE1000_KERNEL_STARTED_EVT		(0x2)
-+#define CORSTONE1000_UBOOT_EFI_STARTED_EVT	(0x2)
- 
- #define PREP_SEPROXY_SVC_ID_MASK	GENMASK(31, 16)
- #define PREP_SEPROXY_SVC_ID(x)	 (FIELD_PREP(PREP_SEPROXY_SVC_ID_MASK, (x)))
-diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
-index 36a0be7ba1..fea4eb7a34 100644
---- a/lib/efi_loader/efi_boottime.c
-+++ b/lib/efi_loader/efi_boottime.c
-@@ -30,11 +30,6 @@
- #include <arm_ffa.h>
- #endif
- 
--#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
--#include <linux/bitfield.h>
--#include <linux/bitops.h>
--#endif
--
- DECLARE_GLOBAL_DATA_PTR;
- 
- /* Task priority level */
-@@ -2108,35 +2103,6 @@ static void efi_exit_caches(void)
- #endif
- }
- 
--#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
--/**
-- * efi_corstone1000_kernel_started_event - notifies SE Proxy FW update service
-- *
-- * This function notifies the SE Proxy update service that the kernel has already started
-- *
-- * Return:
-- *
-- * 0: on success, otherwise failure
-- */
--static int efi_corstone1000_kernel_started_event(void)
--{
--	struct ffa_send_direct_data msg = {0};
--
--	log_debug("[%s]\n", __func__);
--
--	/*
--	 * setting the kernel started  event arguments:
--	 * setting capsule update interface ID(31:16)
--	 * the kernel started event ID(15:0)
--	 */
--	msg.data1 = PREP_SEPROXY_SVC_ID(CORSTONE1000_SEPROXY_UPDATE_SVC_ID) |
--		PREP_SEPROXY_EVT(CORSTONE1000_KERNEL_STARTED_EVT); /* w4 */
--
--	return ffa_bus_ops_get()->sync_send_receive(CORSTONE1000_SEPROXY_PART_ID, &msg, 0);
--}
--
--#endif
--
- /**
-  * efi_exit_boot_services() - stop all boot services
-  * @image_handle: handle of the loaded image
-@@ -2243,15 +2209,6 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
- 	/* Recalculate CRC32 */
- 	efi_update_table_header_crc32(&systab.hdr);
- 
--#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
--	/* Notifying SE Proxy FW update service */
--	ffa_ret = efi_corstone1000_kernel_started_event();
--	if (ffa_ret)
--		debug("[efi_boottime][ERROR]: Failure to notify SE Proxy FW update service\n");
--	else
--		debug("[efi_boottime][INFO]: SE Proxy FW update service notified\n");
--#endif
--
- 	/* Give the payload some time to boot */
- 	efi_set_watchdog(0);
- 	schedule();
-diff --git a/lib/efi_loader/efi_firmware.c b/lib/efi_loader/efi_firmware.c
-index 0a38a96351..70568f2290 100644
---- a/lib/efi_loader/efi_firmware.c
-+++ b/lib/efi_loader/efi_firmware.c
-@@ -48,7 +48,7 @@ static efi_status_t efi_corstone1000_img_info_get (
- 		*package_version_name = NULL; /* not supported */
- 
- 	if(image_info == NULL) {
--		log_warning("image_info is null\n");
-+		log_info("image_info is null\n");
- 		return EFI_BUFFER_TOO_SMALL;
- 	}
- 
-diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
-index 1ad2fa52d7..89f988b09c 100644
---- a/lib/efi_loader/efi_setup.c
-+++ b/lib/efi_loader/efi_setup.c
-@@ -17,6 +17,9 @@
- efi_status_t efi_obj_list_initialized = OBJ_LIST_NOT_INITIALIZED;
- 
- #if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
-+#include <linux/bitfield.h>
-+#include <linux/bitops.h>
-+#include <arm_ffa.h>
- /**
-  * efi_corstone1000_alloc_capsule_shared_buf - allocate capsule shared buffer
-  */
-@@ -126,6 +129,34 @@ static efi_status_t efi_init_secure_boot(void)
- }
- #endif /* CONFIG_EFI_SECURE_BOOT */
- 
-+#if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
-+/**
-+ * efi_corstone1000_uboot-efi_started_event - notifies SE Proxy FW update service
-+ *
-+ * This function notifies the SE Proxy update service that uboot efi has already started
-+ *
-+ * Return:
-+ *
-+ * 0: on success, otherwise failure
-+ * */
-+static int efi_corstone1000_uboot_efi_started_event(void)
-+{
-+	struct ffa_send_direct_data msg = {0};
-+
-+	log_debug("[%s]\n", __func__);
-+
-+	/*
-+	 * setting the kernel started  event arguments:
-+	 * setting capsule update interface ID(31:16)
-+	 * the kernel started event ID(15:0)
-+	 */
-+	msg.data1 = PREP_SEPROXY_SVC_ID(CORSTONE1000_SEPROXY_UPDATE_SVC_ID) |
-+			PREP_SEPROXY_EVT(CORSTONE1000_UBOOT_EFI_STARTED_EVT); /* w4 */
-+
-+	return ffa_bus_ops_get()->sync_send_receive(NULL, CORSTONE1000_SEPROXY_PART_ID, &msg, 0);
-+}
-+#endif
-+
- /**
-  * efi_init_capsule - initialize capsule update state
-  *
-@@ -136,6 +167,14 @@ static efi_status_t efi_init_capsule(void)
- 	efi_status_t ret = EFI_SUCCESS;
- 
- #if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
-+	int ffa_ret;
-+
-+	ffa_ret = efi_corstone1000_uboot_efi_started_event();
-+	if (ffa_ret)
-+		debug("[efi_boottime][ERROR]: Failure to notify SE Proxy FW update service\n");
-+	else
-+		debug("[efi_boottime][INFO]: SE Proxy FW update service notified\n");
-+
- 	ret = efi_corstone1000_alloc_capsule_shared_buf();
- 	if (ret != EFI_SUCCESS) {
- 		printf("EFI: Corstone-1000: cannot allocate caspsule shared buffer\n");
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-Introduce-external-sys-driver-to-device-tree.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Introduce-external-sys-driver-to-device-tree.patch
similarity index 81%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-Introduce-external-sys-driver-to-device-tree.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Introduce-external-sys-driver-to-device-tree.patch
index c74e17f..a4c6625 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-Introduce-external-sys-driver-to-device-tree.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0019-Introduce-external-sys-driver-to-device-tree.patch
@@ -1,7 +1,7 @@
-From 984c431cd594c112d71ea1378bc1ac3b72806baa Mon Sep 17 00:00:00 2001
+From 0748658414dd02cec0219841a86c4e7b99bfc171 Mon Sep 17 00:00:00 2001
 From: Emekcan <emekcan.aras@arm.com>
 Date: Wed, 30 Nov 2022 19:02:26 +0000
-Subject: [PATCH 22/42] Introduce external sys driver to device-tree
+Subject: [PATCH 19/33] Introduce external sys driver to device-tree
 
 It adds external sys driver binding to u-boot
 device tree.
@@ -14,10 +14,10 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/arch/arm/dts/corstone1000.dtsi b/arch/arm/dts/corstone1000.dtsi
-index 4e46826f88..2c7185e139 100644
+index 533dfdf8e1..a834d38454 100644
 --- a/arch/arm/dts/corstone1000.dtsi
 +++ b/arch/arm/dts/corstone1000.dtsi
-@@ -160,5 +160,12 @@
+@@ -167,5 +167,12 @@
  			secure-status = "okay";     /* secure-world-only */
  			status = "disabled";
  		};
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-Add-mhu-and-rpmsg-client-to-u-boot-device-tree.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-Add-mhu-and-rpmsg-client-to-u-boot-device-tree.patch
similarity index 92%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-Add-mhu-and-rpmsg-client-to-u-boot-device-tree.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-Add-mhu-and-rpmsg-client-to-u-boot-device-tree.patch
index 5747d78..f3b1503 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-Add-mhu-and-rpmsg-client-to-u-boot-device-tree.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0020-Add-mhu-and-rpmsg-client-to-u-boot-device-tree.patch
@@ -1,7 +1,7 @@
-From 4167fe9079b64aaaf3eefc53063d242af8d2badd Mon Sep 17 00:00:00 2001
+From 396229d3d29d9cfd5e2567be5427a9066072e32f Mon Sep 17 00:00:00 2001
 From: Emekcan <emekcan.aras@arm.com>
 Date: Mon, 12 Sep 2022 15:47:06 +0100
-Subject: [PATCH 23/42] Add mhu and rpmsg client to u-boot device tree
+Subject: [PATCH 20/33] Add mhu and rpmsg client to u-boot device tree
 
 Adds external system controller and mhu driver to u-boot
 device tree. This enables communication between host and
@@ -15,10 +15,10 @@
  1 file changed, 50 insertions(+)
 
 diff --git a/arch/arm/dts/corstone1000.dtsi b/arch/arm/dts/corstone1000.dtsi
-index 2c7185e139..61e0c33247 100644
+index a834d38454..18c4d1e19a 100644
 --- a/arch/arm/dts/corstone1000.dtsi
 +++ b/arch/arm/dts/corstone1000.dtsi
-@@ -161,6 +161,56 @@
+@@ -168,6 +168,56 @@
  			status = "disabled";
  		};
  
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-arm-corstone1000-esrt-support.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-arm-corstone1000-esrt-support.patch
similarity index 91%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-arm-corstone1000-esrt-support.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-arm-corstone1000-esrt-support.patch
index 9d569be..369613e 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-arm-corstone1000-esrt-support.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0021-arm-corstone1000-esrt-support.patch
@@ -1,7 +1,7 @@
-From f924535544515cdb350b2979b8c413cf221124b6 Mon Sep 17 00:00:00 2001
+From 0380dee4df6ef11bb08a9c44119b41c58afc562d Mon Sep 17 00:00:00 2001
 From: Satish Kumar <satish.kumar01@arm.com>
 Date: Wed, 30 Nov 2022 19:11:43 +0000
-Subject: [PATCH 24/42] arm/corstone1000: esrt support
+Subject: [PATCH 21/33] arm/corstone1000: esrt support
 
 The implementation is platform specific and would require
 change in future.
@@ -20,10 +20,10 @@
  3 files changed, 143 insertions(+), 9 deletions(-)
 
 diff --git a/include/efi_api.h b/include/efi_api.h
-index 9bd70b0f18..23e427236a 100644
+index 55a4c989fc..f267ab5110 100644
 --- a/include/efi_api.h
 +++ b/include/efi_api.h
-@@ -2030,7 +2030,7 @@ struct efi_firmware_image_descriptor {
+@@ -2086,7 +2086,7 @@ struct efi_firmware_image_descriptor {
  	u32 last_attempt_status;
  	u64 hardware_instance;
  	efi_firmware_image_dep_t *dependencies;
@@ -186,10 +186,10 @@
  	.set_image = efi_firmware_fit_set_image,
  	.check_image = efi_firmware_check_image_unsupported,
 diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
-index 89f988b09c..08c742edbd 100644
+index bf90a98b5a..d20568c1c8 100644
 --- a/lib/efi_loader/efi_setup.c
 +++ b/lib/efi_loader/efi_setup.c
-@@ -167,14 +167,6 @@ static efi_status_t efi_init_capsule(void)
+@@ -178,14 +178,6 @@ static efi_status_t efi_init_capsule(void)
  	efi_status_t ret = EFI_SUCCESS;
  
  #if IS_ENABLED(CONFIG_TARGET_CORSTONE1000)
@@ -197,14 +197,14 @@
 -
 -	ffa_ret = efi_corstone1000_uboot_efi_started_event();
 -	if (ffa_ret)
--		debug("[efi_boottime][ERROR]: Failure to notify SE Proxy FW update service\n");
+-		log_err("Failure to notify SE Proxy FW update service\n");
 -	else
--		debug("[efi_boottime][INFO]: SE Proxy FW update service notified\n");
+-		debug("SE Proxy FW update service notified\n");
 -
  	ret = efi_corstone1000_alloc_capsule_shared_buf();
  	if (ret != EFI_SUCCESS) {
  		printf("EFI: Corstone-1000: cannot allocate caspsule shared buffer\n");
-@@ -288,6 +280,15 @@ efi_status_t efi_init_obj_list(void)
+@@ -304,6 +296,15 @@ efi_status_t efi_init_obj_list(void)
  	if (ret != EFI_SUCCESS)
  		goto out;
  
@@ -212,9 +212,9 @@
 +		int ffa_ret;
 +		ffa_ret = efi_corstone1000_uboot_efi_started_event();
 +		if (ffa_ret)
-+			debug("[efi_boottime][ERROR]: Failure to notify SE Proxy FW update service\n");
++			log_err("Failure to notify SE Proxy FW update service\n");
 +		else
-+			debug("[efi_boottime][INFO]: SE Proxy FW update service notified\n");
++			debug("SE Proxy FW update service notified\n");
 +#endif
 +
  	/* Initialize variable services */
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-enable-distro-booting-command.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-corstone1000-enable-distro-booting-command.patch
similarity index 72%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-enable-distro-booting-command.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-corstone1000-enable-distro-booting-command.patch
index 57751b1..6f04081 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-enable-distro-booting-command.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0022-corstone1000-enable-distro-booting-command.patch
@@ -1,26 +1,26 @@
-From 2a281a45b7dfc5c0e78f6256bf0ac122d825ce82 Mon Sep 17 00:00:00 2001
+From b3c9b57d862060b7d112725a567c0ff24184c6e1 Mon Sep 17 00:00:00 2001
 From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 Date: Mon, 5 Dec 2022 17:02:32 +0000
-Subject: [PATCH 26/42] corstone1000: enable distro booting command
+Subject: [PATCH 22/33] corstone1000: enable distro booting command
 
 enable distro_bootcmd
 
 Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
+Upstream-Status: Pending [Not submitted to upstream yet]
 ---
  include/configs/corstone1000.h | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/include/configs/corstone1000.h b/include/configs/corstone1000.h
-index a015a1630e..c30a7bfa0c 100644
+index 1466507f80..8622565a87 100644
 --- a/include/configs/corstone1000.h
 +++ b/include/configs/corstone1000.h
-@@ -65,5 +65,6 @@
+@@ -55,5 +55,6 @@
  
  #include <config_distro_bootcmd.h>
  
-+#define CONFIG_EXTRA_ENV_SETTINGS BOOTENV
++#define CFG_EXTRA_ENV_SETTINGS BOOTENV
  
  #endif
 -- 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-corstone1000-add-fwu-metadata-store-info.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-corstone1000-add-fwu-metadata-store-info.patch
similarity index 88%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-corstone1000-add-fwu-metadata-store-info.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-corstone1000-add-fwu-metadata-store-info.patch
index d4ed912..6b34796 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-corstone1000-add-fwu-metadata-store-info.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0023-corstone1000-add-fwu-metadata-store-info.patch
@@ -1,7 +1,7 @@
-From e2fb90ab15babd146dd47b7c946674cd5a5260a1 Mon Sep 17 00:00:00 2001
+From 10265c2006291f961cc4fdbbffdec6c5f52bf73b Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Wed, 1 Feb 2023 15:58:07 +0000
-Subject: [PATCH 33/42] corstone1000: add fwu-metadata store info
+Subject: [PATCH 23/33] corstone1000: add fwu-metadata store info
 
 Add fwu-mdata node and handle for the reference
 nvmxip-qspi.
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0034-fwu_metadata-make-sure-structures-are-packed.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-fwu_metadata-make-sure-structures-are-packed.patch
similarity index 91%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0034-fwu_metadata-make-sure-structures-are-packed.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-fwu_metadata-make-sure-structures-are-packed.patch
index fedc1f2..88566a6 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0034-fwu_metadata-make-sure-structures-are-packed.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0024-fwu_metadata-make-sure-structures-are-packed.patch
@@ -1,7 +1,7 @@
-From ac77679ffcb4b7fac01414c1492d3e1aae13f9be Mon Sep 17 00:00:00 2001
+From 046e54d0152987163355e33fe260419dfcf3b8bb Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Wed, 1 Feb 2023 16:13:24 +0000
-Subject: [PATCH 35/42] fwu_metadata: make sure structures are packed
+Subject: [PATCH 24/33] fwu_metadata: make sure structures are packed
 
 The fwu metadata in the metadata partitions
 should/are packed to guarantee that the info is
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-add-boot-index.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-add-boot-index.patch
new file mode 100644
index 0000000..45ec44f
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-corstone1000-add-boot-index.patch
@@ -0,0 +1,42 @@
+From 92f471d3195e3893f463b11d49f0db62793ca585 Mon Sep 17 00:00:00 2001
+From: Rui Miguel Silva <rui.silva@linaro.org>
+Date: Mon, 17 Jul 2023 17:04:10 +0100
+Subject: [PATCH 25/33] corstone1000: add boot index
+
+it is expected that the firmware that runs before
+u-boot somehow provide the information of the bank
+(index) of it is booting.
+We will need to extend tf-a to pass that info,
+meanwhile just set it to the default bank.
+
+Upstream-Status: Pending
+Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+---
+ board/armltd/corstone1000/corstone1000.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
+index ecfd8366df..ba6d024b80 100644
+--- a/board/armltd/corstone1000/corstone1000.c
++++ b/board/armltd/corstone1000/corstone1000.c
+@@ -8,6 +8,7 @@
+ #include <common.h>
+ #include <cpu_func.h>
+ #include <dm.h>
++#include <fwu.h>
+ #include <netdev.h>
+ #include <dm/platform_data/serial_pl01x.h>
+ #include <asm/armv8/mmu.h>
+@@ -107,6 +108,7 @@ int dram_init_banksize(void)
+ 	return 0;
+ }
+ 
+-void reset_cpu(void)
++void fwu_plat_get_bootidx(uint *boot_idx)
+ {
++	*boot_idx = 0;
+ }
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-efi_setup-discover-FF-A-bus-before-raising-EFI-start.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-efi_setup-discover-FF-A-bus-before-raising-EFI-start.patch
deleted file mode 100644
index 568d946..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0025-efi_setup-discover-FF-A-bus-before-raising-EFI-start.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 1f165f5b6e7d82611b55260b7254fee5fbebe539 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Wed, 30 Nov 2022 19:14:52 +0000
-Subject: [PATCH 25/42] efi_setup: discover FF-A bus before raising EFI started
- event
-
-add FF-A discovery to efi_corstone1000_uboot_efi_started_event()
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Upstream-Status: Pending [Not submitted to upstream yet]
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- lib/efi_loader/efi_setup.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c
-index 08c742edbd..65bd626e49 100644
---- a/lib/efi_loader/efi_setup.c
-+++ b/lib/efi_loader/efi_setup.c
-@@ -142,9 +142,16 @@ static efi_status_t efi_init_secure_boot(void)
- static int efi_corstone1000_uboot_efi_started_event(void)
- {
- 	struct ffa_send_direct_data msg = {0};
-+	int ret;
- 
- 	log_debug("[%s]\n", __func__);
- 
-+	ret = ffa_bus_discover(NULL);
-+	if (ret != 0) {
-+		log_err("failure to discover FF-A bus\n");
-+		return ret;
-+	}
-+
- 	/*
- 	 * setting the kernel started  event arguments:
- 	 * setting capsule update interface ID(31:16)
-@@ -284,9 +291,9 @@ efi_status_t efi_init_obj_list(void)
- 		int ffa_ret;
- 		ffa_ret = efi_corstone1000_uboot_efi_started_event();
- 		if (ffa_ret)
--			debug("[efi_boottime][ERROR]: Failure to notify SE Proxy FW update service\n");
-+			log_err("Failure to notify SE Proxy FW update service\n");
- 		else
--			debug("[efi_boottime][INFO]: SE Proxy FW update service notified\n");
-+			debug("SE Proxy FW update service notified\n");
- #endif
- 
- 	/* Initialize variable services */
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-corstone1000-adjust-boot-bank-and-kernel-location.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-adjust-boot-bank-and-kernel-location.patch
similarity index 89%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-corstone1000-adjust-boot-bank-and-kernel-location.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-adjust-boot-bank-and-kernel-location.patch
index 277e988..9a889ea 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0036-corstone1000-adjust-boot-bank-and-kernel-location.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0026-corstone1000-adjust-boot-bank-and-kernel-location.patch
@@ -1,7 +1,7 @@
-From 1a54c12aa6eed28a1a4e4f50d1aeb92a31cf6f52 Mon Sep 17 00:00:00 2001
+From 6ea58b2450c72036551e59186888474bcb54a194 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Wed, 1 Feb 2023 16:17:21 +0000
-Subject: [PATCH 37/42] corstone1000: adjust boot bank and kernel location
+Subject: [PATCH 26/33] corstone1000: adjust boot bank and kernel location
 
 Adjust in the env boot script the address of the
 bootbank with the new gpt layout, and also the
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch
similarity index 63%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch
index a0f2bb1..621b9d1 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0037-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch
@@ -1,7 +1,7 @@
-From 5e0b7e40c4702d5494378d3e120fce0136f69a79 Mon Sep 17 00:00:00 2001
+From af1bb3af4ff7bb9486dc9489d27605b8eded45b9 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
-Date: Fri, 9 Jun 2023 13:28:06 +0100
-Subject: [PATCH 38/42] corstone1000: add nvmxip, fwu-mdata and gpt options
+Date: Mon, 17 Jul 2023 17:33:52 +0100
+Subject: [PATCH 27/33] corstone1000: add nvmxip, fwu-mdata and gpt options
 
 Enable the newest features: nvmxip, fwu-metadata and
 gpt. Commands to print the partition info, gpt info
@@ -10,29 +10,14 @@
 Upstream-Status: Pending
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 ---
- configs/corstone1000_defconfig | 29 +++++++++++++++++++----------
- 1 file changed, 19 insertions(+), 10 deletions(-)
+ configs/corstone1000_defconfig | 21 ++++++++++++++-------
+ 1 file changed, 14 insertions(+), 7 deletions(-)
 
 diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index 1179bf5f3b..c38113ce95 100644
+index a92668389a..4c75a01818 100644
 --- a/configs/corstone1000_defconfig
 +++ b/configs/corstone1000_defconfig
-@@ -4,18 +4,20 @@ CONFIG_TARGET_CORSTONE1000=y
- CONFIG_TEXT_BASE=0x80000000
- CONFIG_SYS_MALLOC_LEN=0x2000000
- CONFIG_NR_DRAM_BANKS=1
-+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x83f00000
-+CONFIG_DM_GPIO=y
- CONFIG_DEFAULT_DEVICE_TREE="corstone1000-mps3"
- CONFIG_SYS_PROMPT="corstone1000# "
- CONFIG_IDENT_STRING=" corstone1000 aarch64 "
- CONFIG_SYS_LOAD_ADDR=0x82100000
-+CONFIG_FWU_NUM_IMAGES_PER_BANK=4
- CONFIG_DISTRO_DEFAULTS=y
--CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
--CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x83f00000
- CONFIG_FIT=y
+@@ -15,7 +15,7 @@ CONFIG_DISTRO_DEFAULTS=y
  CONFIG_BOOTDELAY=3
  CONFIG_USE_BOOTARGS=y
  CONFIG_BOOTARGS="console=ttyAMA0 loglevel=9 ip=dhcp earlyprintk"
@@ -41,7 +26,7 @@
  CONFIG_CONSOLE_RECORD=y
  CONFIG_LOGLEVEL=7
  # CONFIG_DISPLAY_CPUINFO is not set
-@@ -23,11 +25,15 @@ CONFIG_LOGLEVEL=7
+@@ -23,11 +23,15 @@ CONFIG_LOGLEVEL=7
  CONFIG_SYS_MAXARGS=64
  CONFIG_SYS_CBSIZE=512
  # CONFIG_CMD_CONSOLE is not set
@@ -57,18 +42,12 @@
  CONFIG_CMD_USB=y
  # CONFIG_CMD_SETEXPR is not set
  # CONFIG_CMD_NFS is not set
-@@ -39,27 +45,30 @@ CONFIG_OF_CONTROL=y
- CONFIG_VERSION_VARIABLE=y
- CONFIG_NET_RANDOM_ETHADDR=y
+@@ -41,12 +45,7 @@ CONFIG_NET_RANDOM_ETHADDR=y
  CONFIG_REGMAP=y
--CONFIG_MISC=y
-+CONFIG_ARM_FFA_TRANSPORT=y
+ CONFIG_MISC=y
  CONFIG_CLK=y
 -CONFIG_CMD_MMC=y
 -CONFIG_DM_MMC=y
-+CONFIG_FWU_MDATA=y
-+CONFIG_FWU_MDATA_GPT_BLK=y
-+CONFIG_MISC=y
  CONFIG_ARM_PL180_MMCI=y
 -CONFIG_MMC_SDHCI_ADMA_HELPERS=y
 -CONFIG_MMC_WRITE=y
@@ -76,25 +55,21 @@
  CONFIG_PHYLIB=y
  CONFIG_PHY_SMSC=y
  CONFIG_SMC911X=y
-+CONFIG_NVMXIP_QSPI=y
- CONFIG_PHY=y
- CONFIG_RAM=y
- CONFIG_DM_RTC=y
- CONFIG_RTC_EMULATION=y
- CONFIG_DM_SERIAL=y
-+CONFIG_SYSRESET=y
- CONFIG_USB=y
- CONFIG_USB_ISP1760=y
- CONFIG_ERRNO_STR=y
- CONFIG_EFI_MM_COMM_TEE=y
- CONFIG_ARM_FFA_TRANSPORT=y
+@@ -65,4 +64,12 @@ CONFIG_FFA_SHARED_MM_BUF_OFFSET=0
+ CONFIG_FFA_SHARED_MM_BUF_ADDR=0x02000000
  CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y
-+CONFIG_EFI_CAPSULE_ON_DISK=y
-+CONFIG_EFI_IGNORE_OSINDICATIONS=y
  CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y
 -CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y
++CONFIG_FWU_NUM_IMAGES_PER_BANK=4
++CONFIG_FWU_MDATA=y
++CONFIG_FWU_MDATA_GPT_BLK=y
++CONFIG_SYSRESET=y
++CONFIG_EFI_CAPSULE_ON_DISK=y
++CONFIG_EFI_IGNORE_OSINDICATIONS=y
 +CONFIG_FWU_MULTI_BANK_UPDATE=y
 +# CONFIG_TOOLS_MKEFICAPSULE is not set
++CONFIG_DM_GPIO=y
+\ No newline at end of file
 -- 
 2.25.1
 
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-drivers-mtd-nvmxip-introduce-NVM-XIP-block-storage-e.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-drivers-mtd-nvmxip-introduce-NVM-XIP-block-storage-e.patch
deleted file mode 100644
index 721ee15..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0027-drivers-mtd-nvmxip-introduce-NVM-XIP-block-storage-e.patch
+++ /dev/null
@@ -1,455 +0,0 @@
-From c7567aaf75a66e204d492a8f6e2a3b4bfb8a7e45 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Fri, 14 Apr 2023 13:23:25 +0100
-Subject: [PATCH 27/42] drivers/mtd/nvmxip: introduce NVM XIP block storage
- emulation
-
-add block storage emulation for NVM XIP flash devices
-
-Some paltforms such as Corstone-1000 need to see NVM XIP raw flash
-as a block storage device with read only capability.
-
-Here NVM flash devices are devices with addressable
-memory (e.g: QSPI NOR flash).
-
-The implementation is generic and can be used by different platforms.
-
-Two drivers are provided as follows.
-
-  nvmxip-blk :
-
-    a generic block driver allowing to read from the XIP flash
-
-  nvmxip Uclass driver :
-
-        When a device is described in the DT and associated with
-        UCLASS_NVMXIP, the Uclass creates a block device and binds it with
-	 the nvmxip-blk.
-
-Platforms can use multiple NVM XIP devices at the same time by defining a
-DT node for each one of them.
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/c9c2c95d4cd27fe0cd41fe13a863899d268f973c]
----
- MAINTAINERS                         |   6 ++
- doc/develop/driver-model/index.rst  |   1 +
- doc/develop/driver-model/nvmxip.rst |  48 +++++++++++
- drivers/block/blk-uclass.c          |   1 +
- drivers/mtd/Kconfig                 |   2 +
- drivers/mtd/Makefile                |   1 +
- drivers/mtd/nvmxip/Kconfig          |  13 +++
- drivers/mtd/nvmxip/Makefile         |   7 ++
- drivers/mtd/nvmxip/nvmxip-uclass.c  |  67 ++++++++++++++++
- drivers/mtd/nvmxip/nvmxip.c         | 119 ++++++++++++++++++++++++++++
- drivers/mtd/nvmxip/nvmxip.h         |  32 ++++++++
- include/dm/uclass-id.h              |   1 +
- 12 files changed, 298 insertions(+)
- create mode 100644 doc/develop/driver-model/nvmxip.rst
- create mode 100644 drivers/mtd/nvmxip/Kconfig
- create mode 100644 drivers/mtd/nvmxip/Makefile
- create mode 100644 drivers/mtd/nvmxip/nvmxip-uclass.c
- create mode 100644 drivers/mtd/nvmxip/nvmxip.c
- create mode 100644 drivers/mtd/nvmxip/nvmxip.h
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index a2f60a3b93..1dbfab5f43 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -1202,6 +1202,12 @@ F:	cmd/nvme.c
- F:	include/nvme.h
- F:	doc/develop/driver-model/nvme.rst
- 
-+NVMXIP
-+M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+S:	Maintained
-+F:	doc/develop/driver-model/nvmxip.rst
-+F:	drivers/mtd/nvmxip/
-+
- NVMEM
- M:	Sean Anderson <seanga2@gmail.com>
- S:	Maintained
-diff --git a/doc/develop/driver-model/index.rst b/doc/develop/driver-model/index.rst
-index 7366ef818c..8e12bbd936 100644
---- a/doc/develop/driver-model/index.rst
-+++ b/doc/develop/driver-model/index.rst
-@@ -20,6 +20,7 @@ subsystems
-    livetree
-    migration
-    nvme
-+   nvmxip
-    of-plat
-    pci-info
-    pmic-framework
-diff --git a/doc/develop/driver-model/nvmxip.rst b/doc/develop/driver-model/nvmxip.rst
-new file mode 100644
-index 0000000000..fe087b13d2
---- /dev/null
-+++ b/doc/develop/driver-model/nvmxip.rst
-@@ -0,0 +1,48 @@
-+.. SPDX-License-Identifier: GPL-2.0+
-+
-+NVM XIP Block Storage Emulation Driver
-+=======================================
-+
-+Summary
-+-------
-+
-+Non-Volatile Memory devices with addressable memory (e.g: QSPI NOR flash) could
-+be used for block storage needs (e.g: parsing a GPT layout in a raw QSPI NOR flash).
-+
-+The NVMXIP Uclass provides this functionality and can be used for any 64-bit platform.
-+
-+The NVMXIP Uclass provides the following drivers:
-+
-+      nvmxip-blk block driver:
-+
-+        A generic block driver allowing to read from the XIP flash.
-+	The driver belongs to UCLASS_BLK.
-+	The driver implemented by drivers/mtd/nvmxip/nvmxip.c
-+
-+      nvmxip Uclass driver:
-+
-+        When a device is described in the DT and associated with UCLASS_NVMXIP,
-+        the Uclass creates a block device and binds it with the nvmxip-blk.
-+	The Uclass driver implemented by drivers/mtd/nvmxip/nvmxip-uclass.c
-+
-+    The implementation is generic and can be used by different platforms.
-+
-+Supported hardware
-+--------------------------------
-+
-+Any 64-bit plaform.
-+
-+Configuration
-+----------------------
-+
-+config NVMXIP
-+	  This option allows the emulation of a block storage device
-+	  on top of a direct access non volatile memory XIP flash devices.
-+	  This support provides the read operation.
-+	  This option provides the block storage driver nvmxip-blk which
-+	  handles the read operation. This driver is HW agnostic and can support
-+	  multiple flash devices at the same time.
-+
-+Contributors
-+------------
-+   * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c
-index c69fc4d518..e8ab576c32 100644
---- a/drivers/block/blk-uclass.c
-+++ b/drivers/block/blk-uclass.c
-@@ -28,6 +28,7 @@ static struct {
- 	{ UCLASS_AHCI, "sata" },
- 	{ UCLASS_HOST, "host" },
- 	{ UCLASS_NVME, "nvme" },
-+	{ UCLASS_NVMXIP, "nvmxip" },
- 	{ UCLASS_EFI_MEDIA, "efi" },
- 	{ UCLASS_EFI_LOADER, "efiloader" },
- 	{ UCLASS_VIRTIO, "virtio" },
-diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
-index fcdb450f77..0537ac64e3 100644
---- a/drivers/mtd/Kconfig
-+++ b/drivers/mtd/Kconfig
-@@ -224,4 +224,6 @@ source "drivers/mtd/spi/Kconfig"
- 
- source "drivers/mtd/ubi/Kconfig"
- 
-+source "drivers/mtd/nvmxip/Kconfig"
-+
- endmenu
-diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
-index 3a78590aaa..c638980ea2 100644
---- a/drivers/mtd/Makefile
-+++ b/drivers/mtd/Makefile
-@@ -25,6 +25,7 @@ obj-y += nand/
- obj-y += onenand/
- obj-y += spi/
- obj-$(CONFIG_MTD_UBI) += ubi/
-+obj-$(CONFIG_NVMXIP) += nvmxip/
- 
- #SPL/TPL build
- else
-diff --git a/drivers/mtd/nvmxip/Kconfig b/drivers/mtd/nvmxip/Kconfig
-new file mode 100644
-index 0000000000..ef53fc3c79
---- /dev/null
-+++ b/drivers/mtd/nvmxip/Kconfig
-@@ -0,0 +1,13 @@
-+# SPDX-License-Identifier: GPL-2.0+
-+#
-+# Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
-+# Authors:
-+#   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+
-+config NVMXIP
-+	bool "NVM XIP devices support"
-+	select BLK
-+	help
-+	  This option allows the emulation of a block storage device
-+	  on top of a direct access non volatile memory XIP flash devices.
-+	  This support provides the read operation.
-diff --git a/drivers/mtd/nvmxip/Makefile b/drivers/mtd/nvmxip/Makefile
-new file mode 100644
-index 0000000000..07890982c7
---- /dev/null
-+++ b/drivers/mtd/nvmxip/Makefile
-@@ -0,0 +1,7 @@
-+# SPDX-License-Identifier: GPL-2.0+
-+#
-+# Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
-+# Authors:
-+#   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+
-+obj-y += nvmxip-uclass.o nvmxip.o
-diff --git a/drivers/mtd/nvmxip/nvmxip-uclass.c b/drivers/mtd/nvmxip/nvmxip-uclass.c
-new file mode 100644
-index 0000000000..9f96041e3d
---- /dev/null
-+++ b/drivers/mtd/nvmxip/nvmxip-uclass.c
-@@ -0,0 +1,67 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
-+ *
-+ * Authors:
-+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include <common.h>
-+#include <dm.h>
-+#include <log.h>
-+#include <linux/bitops.h>
-+#include "nvmxip.h"
-+
-+/* LBA Macros */
-+
-+#define DEFAULT_LBA_SHIFT 10 /* 1024 bytes per block */
-+#define DEFAULT_LBA_COUNT 1024 /* block count */
-+
-+#define DEFAULT_LBA_SZ BIT(DEFAULT_LBA_SHIFT)
-+
-+/**
-+ * nvmxip_post_bind() - post binding treatments
-+ * @dev:	the NVMXIP device
-+ *
-+ * Create and probe a child block device.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int nvmxip_post_bind(struct udevice *udev)
-+{
-+	int ret;
-+	struct udevice *bdev = NULL;
-+	char bdev_name[NVMXIP_BLKDEV_NAME_SZ + 1];
-+	int devnum;
-+
-+	devnum = uclass_id_count(UCLASS_NVMXIP);
-+	snprintf(bdev_name, NVMXIP_BLKDEV_NAME_SZ, "blk#%d", devnum);
-+
-+	ret = blk_create_devicef(udev, NVMXIP_BLKDRV_NAME, bdev_name, UCLASS_NVMXIP,
-+				 devnum, DEFAULT_LBA_SZ,
-+				 DEFAULT_LBA_COUNT, &bdev);
-+	if (ret) {
-+		log_err("[%s]: failure during creation of the block device %s, error %d\n",
-+			udev->name, bdev_name, ret);
-+		return ret;
-+	}
-+
-+	ret = blk_probe_or_unbind(bdev);
-+	if (ret) {
-+		log_err("[%s]: failure during probing the block device %s, error %d\n",
-+			udev->name, bdev_name, ret);
-+		return ret;
-+	}
-+
-+	log_info("[%s]: the block device %s ready for use\n", udev->name, bdev_name);
-+
-+	return 0;
-+}
-+
-+UCLASS_DRIVER(nvmxip) = {
-+	.name	   = "nvmxip",
-+	.id	   = UCLASS_NVMXIP,
-+	.post_bind = nvmxip_post_bind,
-+};
-diff --git a/drivers/mtd/nvmxip/nvmxip.c b/drivers/mtd/nvmxip/nvmxip.c
-new file mode 100644
-index 0000000000..a359e3b482
---- /dev/null
-+++ b/drivers/mtd/nvmxip/nvmxip.c
-@@ -0,0 +1,119 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
-+ *
-+ * Authors:
-+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include <common.h>
-+#include <dm.h>
-+#include <log.h>
-+#include <mapmem.h>
-+#include <asm/io.h>
-+#include <linux/bitops.h>
-+#include <linux/errno.h>
-+#include "nvmxip.h"
-+
-+/**
-+ * nvmxip_mmio_rawread() - read from the XIP flash
-+ * @address:	address of the data
-+ * @value:	pointer to where storing the value read
-+ *
-+ * Read raw data from the XIP flash.
-+ *
-+ * Return:
-+ *
-+ * Always return 0.
-+ */
-+static int nvmxip_mmio_rawread(const phys_addr_t address, u64 *value)
-+{
-+	*value = readq(address);
-+	return 0;
-+}
-+
-+/**
-+ * nvmxip_blk_read() - block device read operation
-+ * @dev:	the block device
-+ * @blknr:	first block number to read from
-+ * @blkcnt:	number of blocks to read
-+ * @buffer:	destination buffer
-+ *
-+ * Read data from the block storage device.
-+ *
-+ * Return:
-+ *
-+ * number of blocks read on success. Otherwise, failure
-+ */
-+static ulong nvmxip_blk_read(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt, void *buffer)
-+{
-+	struct nvmxip_plat *plat = dev_get_plat(dev->parent);
-+	struct blk_desc *desc = dev_get_uclass_plat(dev);
-+	/* number of the u64 words to read */
-+	u32 qwords = (blkcnt * desc->blksz) / sizeof(u64);
-+	/* physical address of the first block to read */
-+	phys_addr_t blkaddr = plat->phys_base + blknr * desc->blksz;
-+	u64 *virt_blkaddr;
-+	u64 *pdst = buffer;
-+	uint qdata_idx;
-+
-+	if (!pdst)
-+		return -EINVAL;
-+
-+	log_debug("[%s]: reading from blknr: %lu , blkcnt: %lu\n", dev->name, blknr, blkcnt);
-+
-+	virt_blkaddr = map_sysmem(blkaddr, 0);
-+
-+	/* assumption: the data is virtually contiguous */
-+
-+	for (qdata_idx = 0 ; qdata_idx < qwords ; qdata_idx++)
-+		nvmxip_mmio_rawread((phys_addr_t)(virt_blkaddr + qdata_idx), pdst++);
-+
-+	log_debug("[%s]:     src[0]: 0x%llx , dst[0]: 0x%llx , src[-1]: 0x%llx , dst[-1]: 0x%llx\n",
-+		  dev->name,
-+		  *virt_blkaddr,
-+		  *(u64 *)buffer,
-+		  *(u64 *)((u8 *)virt_blkaddr + desc->blksz * blkcnt - sizeof(u64)),
-+		  *(u64 *)((u8 *)buffer + desc->blksz * blkcnt - sizeof(u64)));
-+
-+	unmap_sysmem(virt_blkaddr);
-+
-+	return blkcnt;
-+}
-+
-+/**
-+ * nvmxip_blk_probe() - block storage device probe
-+ * @dev:	the block storage device
-+ *
-+ * Initialize the block storage descriptor.
-+ *
-+ * Return:
-+ *
-+ * Always return 0.
-+ */
-+static int nvmxip_blk_probe(struct udevice *dev)
-+{
-+	struct nvmxip_plat *plat = dev_get_plat(dev->parent);
-+	struct blk_desc *desc = dev_get_uclass_plat(dev);
-+
-+	desc->lba = plat->lba;
-+	desc->log2blksz = plat->lba_shift;
-+	desc->blksz = BIT(plat->lba_shift);
-+	desc->bdev = dev;
-+
-+	log_debug("[%s]: block storage layout\n    lbas: %lu , log2blksz: %d, blksz: %lu\n",
-+		  dev->name, desc->lba, desc->log2blksz, desc->blksz);
-+
-+	return 0;
-+}
-+
-+static const struct blk_ops nvmxip_blk_ops = {
-+	.read	= nvmxip_blk_read,
-+};
-+
-+U_BOOT_DRIVER(nvmxip_blk) = {
-+	.name	= NVMXIP_BLKDRV_NAME,
-+	.id	= UCLASS_BLK,
-+	.probe	= nvmxip_blk_probe,
-+	.ops	= &nvmxip_blk_ops,
-+};
-diff --git a/drivers/mtd/nvmxip/nvmxip.h b/drivers/mtd/nvmxip/nvmxip.h
-new file mode 100644
-index 0000000000..f4ef37725d
---- /dev/null
-+++ b/drivers/mtd/nvmxip/nvmxip.h
-@@ -0,0 +1,32 @@
-+/* SPDX-License-Identifier: GPL-2.0+ */
-+/*
-+ * Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
-+ *
-+ * Authors:
-+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#ifndef __DRIVER_NVMXIP_H__
-+#define __DRIVER_NVMXIP_H__
-+
-+#include <blk.h>
-+
-+#define NVMXIP_BLKDRV_NAME    "nvmxip-blk"
-+#define NVMXIP_BLKDEV_NAME_SZ 20
-+
-+/**
-+ * struct nvmxip_plat - the NVMXIP driver plat
-+ *
-+ * @phys_base:	NVM XIP device base address
-+ * @lba_shift:	block size shift count
-+ * @lba:	number of blocks
-+ *
-+ * The NVMXIP information read from the DT.
-+ */
-+struct nvmxip_plat {
-+	phys_addr_t phys_base;
-+	u32 lba_shift;
-+	lbaint_t lba;
-+};
-+
-+#endif /* __DRIVER_NVMXIP_H__ */
-diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h
-index fa08a66ac8..f3564a49d9 100644
---- a/include/dm/uclass-id.h
-+++ b/include/dm/uclass-id.h
-@@ -92,6 +92,7 @@ enum uclass_id {
- 	UCLASS_NOP,		/* No-op devices */
- 	UCLASS_NORTHBRIDGE,	/* Intel Northbridge / SDRAM controller */
- 	UCLASS_NVME,		/* NVM Express device */
-+	UCLASS_NVMXIP,		/* NVM XIP devices */
- 	UCLASS_P2SB,		/* (x86) Primary-to-Sideband Bus */
- 	UCLASS_PANEL,		/* Display panel, such as an LCD */
- 	UCLASS_PANEL_BACKLIGHT,	/* Backlight controller for panel */
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-drivers-mtd-nvmxip-introduce-QSPI-XIP-driver.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-drivers-mtd-nvmxip-introduce-QSPI-XIP-driver.patch
deleted file mode 100644
index aa3db9c..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-drivers-mtd-nvmxip-introduce-QSPI-XIP-driver.patch
+++ /dev/null
@@ -1,271 +0,0 @@
-From 4b71ade0e8e5ad3692b1decb5c1d0c9472827535 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Fri, 14 Apr 2023 13:44:25 +0100
-Subject: [PATCH 28/42] drivers/mtd/nvmxip: introduce QSPI XIP driver
-
-add nvmxip_qspi driver under UCLASS_NVMXIP
-
-The device associated with this driver is the parent of the blk#<id> device
-nvmxip_qspi can be reused by other platforms. If the platform
-has custom settings to apply before using the flash, then the platform
-can provide its own parent driver belonging to UCLASS_NVMXIP and reuse
-nvmxip-blk driver. The custom driver can be implemented like nvmxip_qspi in
-addition to the platform custom settings.
-
-Platforms can use multiple NVM XIP devices at the same time by defining a
-DT node for each one of them.
-
-For more details please refer to doc/develop/driver-model/nvmxip_qspi.rst
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/c9c2c95d4cd27fe0cd41fe13a863899d268f973c]
----
- MAINTAINERS                                   |  1 +
- doc/develop/driver-model/nvmxip.rst           | 45 +++++++++++-
- .../nvmxip/nvmxip_qspi.txt                    | 56 +++++++++++++++
- drivers/mtd/nvmxip/Kconfig                    |  6 ++
- drivers/mtd/nvmxip/Makefile                   |  1 +
- drivers/mtd/nvmxip/nvmxip_qspi.c              | 70 +++++++++++++++++++
- 6 files changed, 178 insertions(+), 1 deletion(-)
- create mode 100644 doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
- create mode 100644 drivers/mtd/nvmxip/nvmxip_qspi.c
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index 1dbfab5f43..f81654346e 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -1206,6 +1206,7 @@ NVMXIP
- M:	Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
- S:	Maintained
- F:	doc/develop/driver-model/nvmxip.rst
-+F:	doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
- F:	drivers/mtd/nvmxip/
- 
- NVMEM
-diff --git a/doc/develop/driver-model/nvmxip.rst b/doc/develop/driver-model/nvmxip.rst
-index fe087b13d2..09afdbcccf 100644
---- a/doc/develop/driver-model/nvmxip.rst
-+++ b/doc/develop/driver-model/nvmxip.rst
-@@ -25,7 +25,33 @@ The NVMXIP Uclass provides the following drivers:
-         the Uclass creates a block device and binds it with the nvmxip-blk.
- 	The Uclass driver implemented by drivers/mtd/nvmxip/nvmxip-uclass.c
- 
--    The implementation is generic and can be used by different platforms.
-+      nvmxip_qspi driver :
-+
-+        The driver probed with the DT and is the parent of the blk#<id> device.
-+        nvmxip_qspi can be reused by other platforms. If the platform
-+        has custom settings to apply before using the flash, then the platform
-+        can provide its own parent driver belonging to UCLASS_NVMXIP and reuse
-+        nvmxip-blk. The custom driver can be implemented like nvmxip_qspi in
-+        addition to the platform custom settings.
-+	The nvmxip_qspi driver belongs to UCLASS_NVMXIP.
-+	The driver implemented by drivers/mtd/nvmxip/nvmxip_qspi.c
-+
-+	For example, if we have two NVMXIP devices described in the DT
-+	The devices hierarchy is as follows:
-+
-+::
-+
-+   => dm tree
-+
-+        Class     Index  Probed  Driver                Name
-+    -----------------------------------------------------------
-+    ...
-+     nvmxip        0  [ + ]   nvmxip_qspi           |-- nvmxip-qspi1@08000000
-+     blk           3  [ + ]   nvmxip-blk                    |   `-- nvmxip-qspi1@08000000.blk#1
-+     nvmxip        1  [ + ]   nvmxip_qspi           |-- nvmxip-qspi2@08200000
-+     blk           4  [ + ]   nvmxip-blk                    |   `-- nvmxip-qspi2@08200000.blk#2
-+
-+The implementation is generic and can be used by different platforms.
- 
- Supported hardware
- --------------------------------
-@@ -43,6 +69,23 @@ config NVMXIP
- 	  handles the read operation. This driver is HW agnostic and can support
- 	  multiple flash devices at the same time.
- 
-+config NVMXIP_QSPI
-+	  This option allows the emulation of a block storage device on top of a QSPI XIP flash.
-+	  Any platform that needs to emulate one or multiple QSPI XIP flash devices can turn this
-+	  option on to enable the functionality. NVMXIP config is selected automatically.
-+	  Platforms that need to add custom treatments before accessing to the flash, can
-+	  write their own driver (same as nvmxip_qspi in addition to the custom settings).
-+
-+Device Tree nodes
-+--------------------
-+
-+Multiple QSPI XIP flash devices can be used at the same time by describing them through DT
-+nodes.
-+
-+Please refer to the documentation of the DT binding at:
-+
-+doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
-+
- Contributors
- ------------
-    * Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-diff --git a/doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt b/doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
-new file mode 100644
-index 0000000000..cc60e9efdc
---- /dev/null
-+++ b/doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
-@@ -0,0 +1,56 @@
-+Specifying NVMXIP information for devices
-+======================================
-+
-+QSPI XIP flash device nodes
-+---------------------------
-+
-+Each flash device should have its own node.
-+
-+Each node must specify the following fields:
-+
-+1)
-+		compatible = "nvmxip,qspi";
-+
-+This allows to bind the flash device with the nvmxip_qspi driver
-+If a platform has its own driver, please provide your own compatible
-+string.
-+
-+2)
-+		reg = <0x0 0x08000000 0x0 0x00200000>;
-+
-+The start address and size of the flash device. The values give here are an
-+example (when the cell size is 2).
-+
-+When cell size is 1, the reg field looks like this:
-+
-+		reg = <0x08000000 0x00200000>;
-+
-+3)
-+
-+		lba_shift = <9>;
-+
-+The number of bit shifts used to calculate the size in bytes of one block.
-+In this example the block size is 1 << 9 = 2 ^ 9 = 512 bytes
-+
-+4)
-+
-+		lba = <4096>;
-+
-+The number of blocks.
-+
-+Example of multiple flash devices
-+----------------------------------------------------
-+
-+	nvmxip-qspi1@08000000 {
-+		compatible = "nvmxip,qspi";
-+		reg = <0x0 0x08000000 0x0 0x00200000>;
-+		lba_shift = <9>;
-+		lba = <4096>;
-+	};
-+
-+	nvmxip-qspi2@08200000 {
-+		compatible = "nvmxip,qspi";
-+		reg = <0x0 0x08200000 0x0 0x00100000>;
-+		lba_shift = <9>;
-+		lba = <2048>;
-+	};
-diff --git a/drivers/mtd/nvmxip/Kconfig b/drivers/mtd/nvmxip/Kconfig
-index ef53fc3c79..3ef7105026 100644
---- a/drivers/mtd/nvmxip/Kconfig
-+++ b/drivers/mtd/nvmxip/Kconfig
-@@ -11,3 +11,9 @@ config NVMXIP
- 	  This option allows the emulation of a block storage device
- 	  on top of a direct access non volatile memory XIP flash devices.
- 	  This support provides the read operation.
-+
-+config NVMXIP_QSPI
-+	bool "QSPI XIP  support"
-+	select NVMXIP
-+	help
-+	  This option allows the emulation of a block storage device on top of a QSPI XIP flash
-diff --git a/drivers/mtd/nvmxip/Makefile b/drivers/mtd/nvmxip/Makefile
-index 07890982c7..54eacc102e 100644
---- a/drivers/mtd/nvmxip/Makefile
-+++ b/drivers/mtd/nvmxip/Makefile
-@@ -5,3 +5,4 @@
- #   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
- 
- obj-y += nvmxip-uclass.o nvmxip.o
-+obj-$(CONFIG_NVMXIP_QSPI) += nvmxip_qspi.o
-diff --git a/drivers/mtd/nvmxip/nvmxip_qspi.c b/drivers/mtd/nvmxip/nvmxip_qspi.c
-new file mode 100644
-index 0000000000..7221fd1cb4
---- /dev/null
-+++ b/drivers/mtd/nvmxip/nvmxip_qspi.c
-@@ -0,0 +1,70 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
-+ *
-+ * Authors:
-+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include <common.h>
-+#include <dm.h>
-+#include <fdt_support.h>
-+#include <linux/errno.h>
-+#include "nvmxip.h"
-+
-+#include <asm/global_data.h>
-+DECLARE_GLOBAL_DATA_PTR;
-+
-+#define NVMXIP_QSPI_DRV_NAME "nvmxip_qspi"
-+
-+/**
-+ * nvmxip_qspi_of_to_plat() -read from DT
-+ * @dev:	the NVMXIP device
-+ *
-+ * Read from the DT the NVMXIP information.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int nvmxip_qspi_of_to_plat(struct udevice *dev)
-+{
-+	struct nvmxip_plat *plat = dev_get_plat(dev);
-+	int ret;
-+
-+	plat->phys_base = (phys_addr_t)dev_read_addr(dev);
-+	if (plat->phys_base == FDT_ADDR_T_NONE) {
-+		log_err("[%s]: can not get base address from device tree\n", dev->name);
-+		return -EINVAL;
-+	}
-+
-+	ret = dev_read_u32(dev, "lba_shift", &plat->lba_shift);
-+	if (ret) {
-+		log_err("[%s]: can not get lba_shift from device tree\n", dev->name);
-+		return -EINVAL;
-+	}
-+
-+	ret = dev_read_u32(dev, "lba", (u32 *)&plat->lba);
-+	if (ret) {
-+		log_err("[%s]: can not get lba from device tree\n", dev->name);
-+		return -EINVAL;
-+	}
-+
-+	log_debug("[%s]: XIP device base addr: 0x%llx , lba_shift: %d , lbas: %lu\n",
-+		  dev->name, plat->phys_base, plat->lba_shift, plat->lba);
-+
-+	return 0;
-+}
-+
-+static const struct udevice_id nvmxip_qspi_ids[] = {
-+	{ .compatible = "nvmxip,qspi" },
-+	{ /* sentinel */ }
-+};
-+
-+U_BOOT_DRIVER(nvmxip_qspi) = {
-+	.name = NVMXIP_QSPI_DRV_NAME,
-+	.id = UCLASS_NVMXIP,
-+	.of_match = nvmxip_qspi_ids,
-+	.of_to_plat = nvmxip_qspi_of_to_plat,
-+	.plat_auto = sizeof(struct nvmxip_plat),
-+};
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0038-nvmxip-move-header-to-include.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-nvmxip-move-header-to-include.patch
similarity index 82%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0038-nvmxip-move-header-to-include.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-nvmxip-move-header-to-include.patch
index b745fe9..aac5a1d 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0038-nvmxip-move-header-to-include.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0028-nvmxip-move-header-to-include.patch
@@ -1,7 +1,7 @@
-From d280414229d7bbee368f40be6cde17e4f251dd0f Mon Sep 17 00:00:00 2001
+From 050c2d8577fd98f20c8b96dab3e4c42c8508b6bc Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Fri, 9 Jun 2023 13:31:53 +0100
-Subject: [PATCH 39/42] nvmxip: move header to include
+Subject: [PATCH 28/33] nvmxip: move header to include
 
 Move header to include to allow external code
 to get the internal bdev structures to access
@@ -20,10 +20,10 @@
  rename {drivers/mtd/nvmxip => include}/nvmxip.h (100%)
 
 diff --git a/disk/part.c b/disk/part.c
-index 5ee60a7fb5..593dd0004f 100644
+index 35300df590..f57dce7a29 100644
 --- a/disk/part.c
 +++ b/disk/part.c
-@@ -270,6 +270,9 @@ static void print_part_header(const char *type, struct blk_desc *dev_desc)
+@@ -271,6 +271,9 @@ static void print_part_header(const char *type, struct blk_desc *dev_desc)
  	case UCLASS_NVME:
  		puts ("NVMe");
  		break;
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0039-corstone1000-set-kernel_addr-based-on-boot_idx.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-corstone1000-set-kernel_addr-based-on-boot_idx.patch
similarity index 89%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0039-corstone1000-set-kernel_addr-based-on-boot_idx.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-corstone1000-set-kernel_addr-based-on-boot_idx.patch
index ba2e5e1..6ad4648 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0039-corstone1000-set-kernel_addr-based-on-boot_idx.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-corstone1000-set-kernel_addr-based-on-boot_idx.patch
@@ -1,7 +1,7 @@
-From e7cb997fd59c883572994b504dbc77bc670de8f7 Mon Sep 17 00:00:00 2001
+From c547f3335ddff71a7f4915dc0c99ccbcdbf24b54 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
-Date: Thu, 23 Feb 2023 10:35:00 +0000
-Subject: [PATCH 40/42] corstone1000: set kernel_addr based on boot_idx
+Date: Tue, 18 Jul 2023 12:14:47 +0100
+Subject: [PATCH 29/33] corstone1000: set kernel_addr based on boot_idx
 
 We need to distinguish between boot banks and from which
 partition to load the kernel+initramfs to memory.
@@ -19,17 +19,19 @@
  3 files changed, 58 insertions(+), 9 deletions(-)
 
 diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
-index 0a58ccd99c..b767195ccc 100644
+index ba6d024b80..a045262ebb 100644
 --- a/board/armltd/corstone1000/corstone1000.c
 +++ b/board/armltd/corstone1000/corstone1000.c
-@@ -5,13 +5,23 @@
+@@ -5,15 +5,25 @@
   * Rui Miguel Silva <rui.silva@linaro.org>
   */
  
 +#include <blk.h>
  #include <common.h>
+ #include <cpu_func.h>
  #include <dm.h>
 +#include <env.h>
+ #include <fwu.h>
  #include <netdev.h>
 +#include <nvmxip.h>
 +#include <part.h>
@@ -46,9 +48,9 @@
  static struct mm_region corstone1000_mem_map[] = {
  	{
  		/* CVM */
-@@ -108,5 +118,51 @@ int dram_init_banksize(void)
+@@ -110,5 +120,51 @@ int dram_init_banksize(void)
  
- void fwu_plat_get_bootidx(int *boot_idx)
+ void fwu_plat_get_bootidx(uint *boot_idx)
  {
 -	*boot_idx = 0;
 +	*boot_idx = corstone1000_boot_idx;
@@ -117,10 +119,10 @@
 -	fi;
  kernel_addr_r=0x88200000
 diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index c38113ce95..20359cb181 100644
+index 4c75a01818..0232131a11 100644
 --- a/configs/corstone1000_defconfig
 +++ b/configs/corstone1000_defconfig
-@@ -22,6 +22,7 @@ CONFIG_CONSOLE_RECORD=y
+@@ -20,6 +20,7 @@ CONFIG_CONSOLE_RECORD=y
  CONFIG_LOGLEVEL=7
  # CONFIG_DISPLAY_CPUINFO is not set
  # CONFIG_DISPLAY_BOARDINFO is not set
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-sandbox64-fix-return-unsigned-long-in-readq.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-sandbox64-fix-return-unsigned-long-in-readq.patch
deleted file mode 100644
index c90bcc7..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0029-sandbox64-fix-return-unsigned-long-in-readq.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1b80dfbefd59c8ddff77960552d6c0cc2747758c Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Fri, 16 Dec 2022 17:20:58 +0000
-Subject: [PATCH 29/42] sandbox64: fix: return unsigned long in readq()
-
-make readq return unsigned long
-
-readq should return 64-bit data
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/c9c2c95d4cd27fe0cd41fe13a863899d268f973c]
----
- arch/sandbox/cpu/cpu.c        | 2 +-
- arch/sandbox/include/asm/io.h | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/sandbox/cpu/cpu.c b/arch/sandbox/cpu/cpu.c
-index 636d3545b9..248d17a85c 100644
---- a/arch/sandbox/cpu/cpu.c
-+++ b/arch/sandbox/cpu/cpu.c
-@@ -230,7 +230,7 @@ phys_addr_t map_to_sysmem(const void *ptr)
- 	return mentry->tag;
- }
- 
--unsigned int sandbox_read(const void *addr, enum sandboxio_size_t size)
-+unsigned long sandbox_read(const void *addr, enum sandboxio_size_t size)
- {
- 	struct sandbox_state *state = state_get_current();
- 
-diff --git a/arch/sandbox/include/asm/io.h b/arch/sandbox/include/asm/io.h
-index ad6c29a4e2..31ab7289b4 100644
---- a/arch/sandbox/include/asm/io.h
-+++ b/arch/sandbox/include/asm/io.h
-@@ -45,7 +45,7 @@ static inline void unmap_sysmem(const void *vaddr)
- /* Map from a pointer to our RAM buffer */
- phys_addr_t map_to_sysmem(const void *ptr);
- 
--unsigned int sandbox_read(const void *addr, enum sandboxio_size_t size);
-+unsigned long sandbox_read(const void *addr, enum sandboxio_size_t size);
- void sandbox_write(void *addr, unsigned int val, enum sandboxio_size_t size);
- 
- #define readb(addr) sandbox_read((const void *)addr, SB_SIZE_8)
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-boot-index-from-active.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-corstone1000-boot-index-from-active.patch
similarity index 64%
rename from meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-boot-index-from-active.patch
rename to meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-corstone1000-boot-index-from-active.patch
index f0e1494..e59a434 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0040-corstone1000-boot-index-from-active.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-corstone1000-boot-index-from-active.patch
@@ -1,7 +1,7 @@
-From ab07a26290e44fb198403b658b8f1550e959a0cc Mon Sep 17 00:00:00 2001
+From faeeeecba2a7c8c507280ce369e3779f7c63d1e4 Mon Sep 17 00:00:00 2001
 From: Rui Miguel Silva <rui.silva@linaro.org>
 Date: Mon, 27 Feb 2023 14:40:13 +0000
-Subject: [PATCH 41/42] corstone1000: boot index from active
+Subject: [PATCH 30/33] corstone1000: boot index from active
 
 In our platform, the Secure Enclave is the one who control
 all the boot tries and status, so, every time we get here
@@ -9,17 +9,18 @@
 
 Upstream-Status: Pending
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 ---
- board/armltd/corstone1000/corstone1000.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
+ board/armltd/corstone1000/corstone1000.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
 
 diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
-index b767195ccc..db508ac3cb 100644
+index a045262ebb..53c65506d5 100644
 --- a/board/armltd/corstone1000/corstone1000.c
 +++ b/board/armltd/corstone1000/corstone1000.c
-@@ -118,7 +118,18 @@ int dram_init_banksize(void)
+@@ -120,7 +120,16 @@ int dram_init_banksize(void)
  
- void fwu_plat_get_bootidx(int *boot_idx)
+ void fwu_plat_get_bootidx(uint *boot_idx)
  {
 -	*boot_idx = corstone1000_boot_idx;
 +	int ret;
@@ -31,9 +32,7 @@
 +	 */
 +	ret = fwu_get_active_index(boot_idx);
 +	if (ret < 0)
-+		log_err("corstone1000: failed to read active index\n");
-+
-+	return ret;
++		log_err("corstone1000: failed to read active index err %d\n", ret);
  }
  
  int board_late_init(void)
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-sandbox64-add-support-for-NVMXIP-QSPI.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-sandbox64-add-support-for-NVMXIP-QSPI.patch
deleted file mode 100644
index 941e9d1..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0030-sandbox64-add-support-for-NVMXIP-QSPI.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 25467e433f02f40f5999ed6e6b0d3adb4c9cf16d Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Fri, 9 Jun 2023 13:08:37 +0100
-Subject: [PATCH 30/42] sandbox64: add support for NVMXIP QSPI
-
-enable NVMXIP QSPI for sandbox 64-bit
-
-Adding two NVM XIP QSPI storage devices.
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Reviewed-by: Simon Glass <sjg@chromium.org>
-Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/c9c2c95d4cd27fe0cd41fe13a863899d268f973c]
-
-Changelog:
-===============
-
-v2:
-
-* address nits
----
- arch/sandbox/dts/sandbox64.dts                  | 13 +++++++++++++
- arch/sandbox/dts/test.dts                       | 14 ++++++++++++++
- configs/sandbox64_defconfig                     |  3 ++-
- doc/develop/driver-model/nvmxip.rst             |  2 +-
- doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt |  6 +++---
- drivers/mtd/nvmxip/nvmxip-uclass.c              |  7 +++++++
- 6 files changed, 40 insertions(+), 5 deletions(-)
-
-diff --git a/arch/sandbox/dts/sandbox64.dts b/arch/sandbox/dts/sandbox64.dts
-index 3eb0457089..c9a2f4b4a4 100644
---- a/arch/sandbox/dts/sandbox64.dts
-+++ b/arch/sandbox/dts/sandbox64.dts
-@@ -89,6 +89,19 @@
- 		cs-gpios = <0>, <&gpio_a 0>;
- 	};
- 
-+	nvmxip-qspi1@08000000 {
-+		compatible = "nvmxip,qspi";
-+		reg = /bits/ 64 <0x08000000 0x00200000>;
-+		lba_shift = <9>;
-+		lba = <4096>;
-+	};
-+
-+	nvmxip-qspi2@08200000 {
-+		compatible = "nvmxip,qspi";
-+		reg = /bits/ 64 <0x08200000 0x00100000>;
-+		lba_shift = <9>;
-+		lba = <2048>;
-+	};
- };
- 
- #include "sandbox.dtsi"
-diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
-index dffe10adbf..c3ba0a225e 100644
---- a/arch/sandbox/dts/test.dts
-+++ b/arch/sandbox/dts/test.dts
-@@ -1745,6 +1745,20 @@
- 		compatible = "u-boot,fwu-mdata-gpt";
- 		fwu-mdata-store = <&mmc0>;
- 	};
-+
-+	nvmxip-qspi1@08000000 {
-+		compatible = "nvmxip,qspi";
-+		reg = <0x08000000 0x00200000>;
-+		lba_shift = <9>;
-+		lba = <4096>;
-+	};
-+
-+	nvmxip-qspi2@08200000 {
-+		compatible = "nvmxip,qspi";
-+		reg = <0x08200000 0x00100000>;
-+		lba_shift = <9>;
-+		lba = <2048>;
-+	};
- };
- 
- #include "sandbox_pmic.dtsi"
-diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
-index 4b8a1ec42b..2dca176ae3 100644
---- a/configs/sandbox64_defconfig
-+++ b/configs/sandbox64_defconfig
-@@ -260,4 +260,5 @@ CONFIG_UNIT_TEST=y
- CONFIG_UT_TIME=y
- CONFIG_UT_DM=y
- CONFIG_ARM_FFA_TRANSPORT=y
--CONFIG_SANDBOX_FFA=y
-\ No newline at end of file
-+CONFIG_SANDBOX_FFA=y
-+CONFIG_NVMXIP_QSPI=y
-\ No newline at end of file
-diff --git a/doc/develop/driver-model/nvmxip.rst b/doc/develop/driver-model/nvmxip.rst
-index 09afdbcccf..e85dc220b9 100644
---- a/doc/develop/driver-model/nvmxip.rst
-+++ b/doc/develop/driver-model/nvmxip.rst
-@@ -56,7 +56,7 @@ The implementation is generic and can be used by different platforms.
- Supported hardware
- --------------------------------
- 
--Any 64-bit plaform.
-+Any plaform supporting readq().
- 
- Configuration
- ----------------------
-diff --git a/doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt b/doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
-index cc60e9efdc..882728d541 100644
---- a/doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
-+++ b/doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
-@@ -16,7 +16,7 @@ If a platform has its own driver, please provide your own compatible
- string.
- 
- 2)
--		reg = <0x0 0x08000000 0x0 0x00200000>;
-+		reg = /bits/ 64 <0x08000000 0x00200000>;
- 
- The start address and size of the flash device. The values give here are an
- example (when the cell size is 2).
-@@ -43,14 +43,14 @@ Example of multiple flash devices
- 
- 	nvmxip-qspi1@08000000 {
- 		compatible = "nvmxip,qspi";
--		reg = <0x0 0x08000000 0x0 0x00200000>;
-+		reg = /bits/ 64 <0x08000000 0x00200000>;
- 		lba_shift = <9>;
- 		lba = <4096>;
- 	};
- 
- 	nvmxip-qspi2@08200000 {
- 		compatible = "nvmxip,qspi";
--		reg = <0x0 0x08200000 0x0 0x00100000>;
-+		reg = /bits/ 64 <0x08200000 0x00100000>;
- 		lba_shift = <9>;
- 		lba = <2048>;
- 	};
-diff --git a/drivers/mtd/nvmxip/nvmxip-uclass.c b/drivers/mtd/nvmxip/nvmxip-uclass.c
-index 9f96041e3d..6d8eb177b5 100644
---- a/drivers/mtd/nvmxip/nvmxip-uclass.c
-+++ b/drivers/mtd/nvmxip/nvmxip-uclass.c
-@@ -9,6 +9,9 @@
- #include <common.h>
- #include <dm.h>
- #include <log.h>
-+#if CONFIG_IS_ENABLED(SANDBOX64)
-+#include <asm/test.h>
-+#endif
- #include <linux/bitops.h>
- #include "nvmxip.h"
- 
-@@ -36,6 +39,10 @@ static int nvmxip_post_bind(struct udevice *udev)
- 	char bdev_name[NVMXIP_BLKDEV_NAME_SZ + 1];
- 	int devnum;
- 
-+#if CONFIG_IS_ENABLED(SANDBOX64)
-+	sandbox_set_enable_memio(true);
-+#endif
-+
- 	devnum = uclass_id_count(UCLASS_NVMXIP);
- 	snprintf(bdev_name, NVMXIP_BLKDEV_NAME_SZ, "blk#%d", devnum);
- 
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-corstone1000-add-NVM-XIP-QSPI-device-tree-node.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-corstone1000-add-NVM-XIP-QSPI-device-tree-node.patch
deleted file mode 100644
index 08e9d31..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-corstone1000-add-NVM-XIP-QSPI-device-tree-node.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 635848c90343a1b8a268519e3fc78ef7af2e4819 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Mon, 19 Dec 2022 13:20:19 +0000
-Subject: [PATCH 31/42] corstone1000: add NVM XIP QSPI device tree node
-
-add QSPI flash device node for block storage access
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/c9c2c95d4cd27fe0cd41fe13a863899d268f973c]
----
- arch/arm/dts/corstone1000.dtsi | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/dts/corstone1000.dtsi b/arch/arm/dts/corstone1000.dtsi
-index 61e0c33247..18c4d1e19a 100644
---- a/arch/arm/dts/corstone1000.dtsi
-+++ b/arch/arm/dts/corstone1000.dtsi
-@@ -1,6 +1,6 @@
- // SPDX-License-Identifier: GPL-2.0 or MIT
- /*
-- * Copyright (c) 2022, Arm Limited. All rights reserved.
-+ * Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
-  * Copyright (c) 2022, Linaro Limited. All rights reserved.
-  *
-  */
-@@ -38,6 +38,13 @@
- 		reg = <0x88200000 0x77e00000>;
- 	};
- 
-+	nvmxip-qspi@08000000 {
-+		compatible = "nvmxip,qspi";
-+		reg = <0x08000000 0x2000000>;
-+		lba_shift = <9>;
-+		lba = <65536>;
-+	};
-+
- 	gic: interrupt-controller@1c000000 {
- 		compatible = "arm,gic-400";
- 		#interrupt-cells = <3>;
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-corstone1000-enable-PSCI-reset.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-corstone1000-enable-PSCI-reset.patch
new file mode 100644
index 0000000..9ba0205
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0031-corstone1000-enable-PSCI-reset.patch
@@ -0,0 +1,31 @@
+From 0524aa417c4989bf03366f13a2456b3bcb72fb87 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Tue, 18 Jul 2023 12:19:17 +0100
+Subject: [PATCH 31/33] corstone1000: enable PSCI reset
+
+Even though corstone1000 does not implement entire PSCI APIs,it relies on
+PSCI reset interface for the system reset. U-boot change the config name, so we
+need to enable it again.
+
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+---
+ configs/corstone1000_defconfig | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index 0232131a11..ccd558cfce 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -73,4 +73,5 @@ CONFIG_EFI_CAPSULE_ON_DISK=y
+ CONFIG_EFI_IGNORE_OSINDICATIONS=y
+ CONFIG_FWU_MULTI_BANK_UPDATE=y
+ # CONFIG_TOOLS_MKEFICAPSULE is not set
+-CONFIG_DM_GPIO=y
+\ No newline at end of file
++CONFIG_DM_GPIO=y
++CONFIG_SYSRESET_PSCI=y
+\ No newline at end of file
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-Enable-EFI-set-get-time-services.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-Enable-EFI-set-get-time-services.patch
new file mode 100644
index 0000000..acc35f1
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-Enable-EFI-set-get-time-services.patch
@@ -0,0 +1,33 @@
+From 0ba2b25a9c1dd9c63615bf6830cfb470f33a31b5 Mon Sep 17 00:00:00 2001
+From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
+Date: Tue, 18 Jul 2023 12:21:39 +0100
+Subject: [PATCH 32/33] Enable EFI set/get time services
+
+SetTime_Conf and SetTime_Func tests in UEFI SCT test suite of ACS
+fails with unsupported return value. CONFIG_EFI_SET_TIME and
+CONFIG_EFI_GET_TIME config values are added to enable these EFI
+services.
+
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
+Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
+---
+ configs/corstone1000_defconfig | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index ccd558cfce..a0af413de8 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -74,4 +74,6 @@ CONFIG_EFI_IGNORE_OSINDICATIONS=y
+ CONFIG_FWU_MULTI_BANK_UPDATE=y
+ # CONFIG_TOOLS_MKEFICAPSULE is not set
+ CONFIG_DM_GPIO=y
+-CONFIG_SYSRESET_PSCI=y
+\ No newline at end of file
++CONFIG_SYSRESET_PSCI=y
++CONFIG_EFI_SET_TIME=y
++CONFIG_EFI_GET_TIME=y
+-- 
+2.25.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-sandbox64-add-a-test-case-for-UCLASS_NVMXIP.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-sandbox64-add-a-test-case-for-UCLASS_NVMXIP.patch
deleted file mode 100644
index 923eac9..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0032-sandbox64-add-a-test-case-for-UCLASS_NVMXIP.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-From 0ecb61da60febc66e589d6fbf439478af1c88283 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Mon, 12 Jun 2023 17:33:54 +0100
-Subject: [PATCH 32/42] sandbox64: add a test case for UCLASS_NVMXIP
-
-provide a test for NVM XIP devices
-
-The test case allows to make sure of the following:
-
-- The NVM XIP QSPI devices are probed
-- The DT entries are read correctly
-- the data read from the flash by the NVMXIP block driver is correct
-
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Upstream-Status: Backport [https://github.com/u-boot/u-boot/commit/c9c2c95d4cd27fe0cd41fe13a863899d268f973c]
-
-Changelog:
-===============
-
-v2:
-
-* address nits
----
- MAINTAINERS      |   1 +
- test/dm/Makefile |   6 +-
- test/dm/nvmxip.c | 145 +++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 151 insertions(+), 1 deletion(-)
- create mode 100644 test/dm/nvmxip.c
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index f81654346e..6692ce9974 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -1208,6 +1208,7 @@ S:	Maintained
- F:	doc/develop/driver-model/nvmxip.rst
- F:	doc/device-tree-bindings/nvmxip/nvmxip_qspi.txt
- F:	drivers/mtd/nvmxip/
-+F:	test/dm/nvmxip.c
- 
- NVMEM
- M:	Sean Anderson <seanga2@gmail.com>
-diff --git a/test/dm/Makefile b/test/dm/Makefile
-index 85e99e1c12..963fa927f7 100644
---- a/test/dm/Makefile
-+++ b/test/dm/Makefile
-@@ -1,7 +1,7 @@
- # SPDX-License-Identifier: GPL-2.0+
- #
- # Copyright (c) 2013 Google, Inc
--# (C) Copyright 2022 ARM Limited
-+# Copyright 2022-2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
- 
- obj-$(CONFIG_UT_DM) += test-dm.o
- 
-@@ -18,6 +18,10 @@ obj-$(CONFIG_UT_DM) += test-uclass.o
- obj-$(CONFIG_UT_DM) += core.o
- obj-$(CONFIG_UT_DM) += read.o
- obj-$(CONFIG_UT_DM) += phys2bus.o
-+ifeq ($(CONFIG_NVMXIP_QSPI)$(CONFIG_SANDBOX64),yy)
-+obj-y += nvmxip.o
-+endif
-+
- ifneq ($(CONFIG_SANDBOX),)
- ifeq ($(CONFIG_ACPIGEN),y)
- obj-y += acpi.o
-diff --git a/test/dm/nvmxip.c b/test/dm/nvmxip.c
-new file mode 100644
-index 0000000000..e934748eb5
---- /dev/null
-+++ b/test/dm/nvmxip.c
-@@ -0,0 +1,145 @@
-+// SPDX-License-Identifier: GPL-2.0+
-+/*
-+ * Functional tests for UCLASS_FFA  class
-+ *
-+ * Copyright 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
-+ *
-+ * Authors:
-+ *   Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-+ */
-+
-+#include <common.h>
-+#include <blk.h>
-+#include <console.h>
-+#include <dm.h>
-+#include <mapmem.h>
-+#include <dm/test.h>
-+#include <linux/bitops.h>
-+#include <test/test.h>
-+#include <test/ut.h>
-+#include "../../drivers/mtd/nvmxip/nvmxip.h"
-+
-+/* NVMXIP devices described in the device tree */
-+#define SANDBOX_NVMXIP_DEVICES 2
-+
-+/* reference device tree data for the probed devices */
-+static struct nvmxip_plat nvmqspi_refdata[SANDBOX_NVMXIP_DEVICES] = {
-+	{0x08000000, 9, 4096}, {0x08200000, 9, 2048}
-+};
-+
-+#define NVMXIP_BLK_START_PATTERN 0x1122334455667788ULL
-+#define NVMXIP_BLK_END_PATTERN 0xa1a2a3a4a5a6a7a8ULL
-+
-+/**
-+ * dm_nvmxip_flash_sanity() - check flash data
-+ * @uts: test state
-+ * @device_idx:	the NVMXIP device index
-+ * @buffer:	the user buffer where the blocks data is copied to
-+ *
-+ * Mode 1: When buffer is NULL, initialize the flash with pattern data at the start
-+ * and at the end of each block. This pattern data will be used to check data consistency
-+ * when verifying the data read.
-+ * Mode 2: When the user buffer is provided in the argument (not NULL), compare the data
-+ * of the start and the end of each block in the user buffer with the expected pattern data.
-+ * Return an error when the check fails.
-+ *
-+ * Return:
-+ *
-+ * 0 on success. Otherwise, failure
-+ */
-+static int dm_nvmxip_flash_sanity(struct unit_test_state *uts, u8 device_idx, void *buffer)
-+{
-+	int i;
-+	u64 *ptr;
-+	u8 *base;
-+	unsigned long blksz;
-+
-+	blksz = BIT(nvmqspi_refdata[device_idx].lba_shift);
-+
-+	if (!buffer) {
-+		/* Mode 1: point at the flash start address. Pattern data will be written */
-+		base = map_sysmem(nvmqspi_refdata[device_idx].phys_base, 0);
-+	} else {
-+		/* Mode 2: point at the user buffer containing the data read and to be verified */
-+		base = buffer;
-+	}
-+
-+	for (i = 0; i < nvmqspi_refdata[device_idx].lba ; i++) {
-+		ptr = (u64 *)(base + i * blksz);
-+
-+		/* write an 8 bytes pattern at the start of the current block */
-+		if (!buffer)
-+			*ptr = NVMXIP_BLK_START_PATTERN;
-+		else
-+			ut_asserteq_64(NVMXIP_BLK_START_PATTERN, *ptr);
-+
-+		ptr = (u64 *)((u8 *)ptr + blksz - sizeof(u64));
-+
-+		/* write an 8 bytes pattern at the end of the current block */
-+		if (!buffer)
-+			*ptr = NVMXIP_BLK_END_PATTERN;
-+		else
-+			ut_asserteq_64(NVMXIP_BLK_END_PATTERN, *ptr);
-+	}
-+
-+	if (!buffer)
-+		unmap_sysmem(base);
-+
-+	return 0;
-+}
-+
-+/**
-+ * dm_test_nvmxip() - check flash data
-+ * @uts: test state
-+ * Return:
-+ *
-+ * CMD_RET_SUCCESS on success. Otherwise, failure
-+ */
-+static int dm_test_nvmxip(struct unit_test_state *uts)
-+{
-+	struct nvmxip_plat *plat_data = NULL;
-+	struct udevice *dev = NULL, *bdev = NULL;
-+	u8 device_idx;
-+	void *buffer = NULL;
-+	unsigned long flashsz;
-+
-+	/* set the flash content first for both devices */
-+	dm_nvmxip_flash_sanity(uts, 0, NULL);
-+	dm_nvmxip_flash_sanity(uts, 1, NULL);
-+
-+	/* probing all NVM XIP QSPI devices */
-+	for (device_idx = 0, uclass_first_device(UCLASS_NVMXIP, &dev);
-+	     dev;
-+	     uclass_next_device(&dev), device_idx++) {
-+		plat_data = dev_get_plat(dev);
-+
-+		/* device tree entries checks */
-+		ut_assertok(nvmqspi_refdata[device_idx].phys_base != plat_data->phys_base);
-+		ut_assertok(nvmqspi_refdata[device_idx].lba_shift != plat_data->lba_shift);
-+		ut_assertok(nvmqspi_refdata[device_idx].lba != plat_data->lba);
-+
-+		/* before reading all the flash blocks, let's calculate the flash size */
-+		flashsz = plat_data->lba << plat_data->lba_shift;
-+
-+		/* allocate the user buffer where to copy the blocks data to */
-+		buffer = calloc(flashsz, 1);
-+		ut_assertok(!buffer);
-+
-+		/* the block device is the child of the parent device probed with DT */
-+		ut_assertok(device_find_first_child(dev, &bdev));
-+
-+		/* reading all the flash blocks */
-+		ut_asserteq(plat_data->lba, blk_read(bdev, 0, plat_data->lba, buffer));
-+
-+		/* compare the data read from flash with the expected data */
-+		dm_nvmxip_flash_sanity(uts, device_idx, buffer);
-+
-+		free(buffer);
-+	}
-+
-+	ut_assertok(device_idx != SANDBOX_NVMXIP_DEVICES);
-+
-+	return CMD_RET_SUCCESS;
-+}
-+
-+DM_TEST(dm_test_nvmxip, UT_TESTF_SCAN_FDT | UT_TESTF_CONSOLE_REC);
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-Increase-the-unzipped-Kernel-size.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-Increase-the-unzipped-Kernel-size.patch
new file mode 100644
index 0000000..63c42c7
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0033-Increase-the-unzipped-Kernel-size.patch
@@ -0,0 +1,29 @@
+From df23489adcba1cdcbcb4fefbed0896fc1f408700 Mon Sep 17 00:00:00 2001
+From: Emekcan Aras <emekcan.aras@arm.com>
+Date: Wed, 2 Aug 2023 17:07:05 +0100
+Subject: [PATCH] Increase the unzipped Kernel size
+
+Increases the unzipped kernel size for corstone1000.
+
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+---
+ configs/corstone1000_defconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
+index a0af413de8..54a5bca354 100644
+--- a/configs/corstone1000_defconfig
++++ b/configs/corstone1000_defconfig
+@@ -15,7 +15,7 @@ CONFIG_DISTRO_DEFAULTS=y
+ CONFIG_BOOTDELAY=3
+ CONFIG_USE_BOOTARGS=y
+ CONFIG_BOOTARGS="console=ttyAMA0 loglevel=9 ip=dhcp earlyprintk"
+-CONFIG_BOOTCOMMAND="echo Loading kernel from $kernel_addr to memory ... ; unzip $kernel_addr 0x90000000; loadm 0x90000000 $kernel_addr_r 0xf00000; usb start; usb reset; run distro_bootcmd; bootefi $kernel_addr_r $fdtcontroladdr;"
++CONFIG_BOOTCOMMAND="echo Loading kernel from $kernel_addr to memory ... ; unzip $kernel_addr 0x90000000; loadm 0x90000000 $kernel_addr_r 0xfb0000; usb start; usb reset; run distro_bootcmd; bootefi $kernel_addr_r $fdtcontroladdr;"
+ CONFIG_CONSOLE_RECORD=y
+ CONFIG_LOGLEVEL=7
+ # CONFIG_DISPLAY_CPUINFO is not set
+-- 
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-corstone1000-add-boot-index.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-corstone1000-add-boot-index.patch
deleted file mode 100644
index d956856..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0035-corstone1000-add-boot-index.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 92948559987d02baf9f690d9bbdc96d1179264ef Mon Sep 17 00:00:00 2001
-From: Rui Miguel Silva <rui.silva@linaro.org>
-Date: Wed, 1 Feb 2023 16:15:30 +0000
-Subject: [PATCH 36/42] corstone1000: add boot index
-
-it is expected that the firmware that runs before
-u-boot somehow provide the information of the bank
-(index) of it is booting.
-We will need to extend tf-a to pass that info,
-meanwhile just set it to the default bank.
-
-Upstream-Status: Pending
-Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
----
- board/armltd/corstone1000/corstone1000.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
-index d6ca6e8961..0a58ccd99c 100644
---- a/board/armltd/corstone1000/corstone1000.c
-+++ b/board/armltd/corstone1000/corstone1000.c
-@@ -106,6 +106,7 @@ int dram_init_banksize(void)
- 	return 0;
- }
- 
--void reset_cpu(ulong addr)
-+void fwu_plat_get_bootidx(int *boot_idx)
- {
-+	*boot_idx = 0;
- }
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0041-corstone1000-enable-PSCI-reset.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0041-corstone1000-enable-PSCI-reset.patch
deleted file mode 100644
index cad830f..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0041-corstone1000-enable-PSCI-reset.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 8bf48a56aa014146a8950532906b06e191754daa Mon Sep 17 00:00:00 2001
-From: Emekcan Aras <emekcan.aras@arm.com>
-Date: Wed, 24 May 2023 09:12:11 +0100
-Subject: [PATCH 42/42] corstone1000: enable PSCI reset
-
-Even though corstone1000 does not implement entire PSCI APIs,it relies on
-PSCI reset interface for the system reset. U-boot change the config name, so we
-need to enable it again.
-
-Upstream-Status: Pending [Not submitted to upstream yet]
-Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
----
- configs/corstone1000_defconfig | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index 20359cb181..19fe1432ae 100644
---- a/configs/corstone1000_defconfig
-+++ b/configs/corstone1000_defconfig
-@@ -62,6 +62,7 @@ CONFIG_DM_RTC=y
- CONFIG_RTC_EMULATION=y
- CONFIG_DM_SERIAL=y
- CONFIG_SYSRESET=y
-+CONFIG_SYSRESET_PSCI=y
- CONFIG_USB=y
- CONFIG_USB_ISP1760=y
- CONFIG_ERRNO_STR=y
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0042-Enable-EFI-set-get-time-services.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0042-Enable-EFI-set-get-time-services.patch
deleted file mode 100644
index 8911abf..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0042-Enable-EFI-set-get-time-services.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 9f326f0db8aa13fde93e2ed79055b920c8598a28 Mon Sep 17 00:00:00 2001
-From: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
-Date: Mon, 12 Jun 2023 15:14:52 +0000
-Subject: [PATCH] Enable EFI set/get time services
-
-SetTime_Conf and SetTime_Func tests in UEFI SCT test suite of ACS
-fails with unsupported return value. CONFIG_EFI_SET_TIME and
-CONFIG_EFI_GET_TIME config values are added to enable these EFI
-services.
-
-Upstream-Status: Pending [Not submitted to upstream yet]
-Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
----
- configs/corstone1000_defconfig | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/configs/corstone1000_defconfig b/configs/corstone1000_defconfig
-index c692cc91bd..f1901dfe8b 100644
---- a/configs/corstone1000_defconfig
-+++ b/configs/corstone1000_defconfig
-@@ -7,6 +7,8 @@ CONFIG_NR_DRAM_BANKS=1
- CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
- CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x83f00000
- CONFIG_DM_GPIO=y
-+CONFIG_EFI_SET_TIME=y
-+CONFIG_EFI_GET_TIME=y
- CONFIG_DEFAULT_DEVICE_TREE="corstone1000-mps3"
- CONFIG_SYS_PROMPT="corstone1000# "
- CONFIG_IDENT_STRING=" corstone1000 aarch64 "
--- 
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0043-corstone1000-fix-compilation-warnings-in-fwu_plat_get_bootidx.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0043-corstone1000-fix-compilation-warnings-in-fwu_plat_get_bootidx.patch
deleted file mode 100644
index e574103..0000000
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone1000/0043-corstone1000-fix-compilation-warnings-in-fwu_plat_get_bootidx.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From dfebda98ce08d0cab411521ab3d9e832ed1b4608 Mon Sep 17 00:00:00 2001
-From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
-Date: Thu, 15 Jun 2023 16:51:49 +0100
-Subject: [PATCH] corstone1000: fix compilation warnings in
- fwu_plat_get_bootidx()
-
-Upstream-Status: Pending [Not submitted to upstream yet]
-Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
----
- board/armltd/corstone1000/corstone1000.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/board/armltd/corstone1000/corstone1000.c b/board/armltd/corstone1000/corstone1000.c
-index db508ac3cb..2e1ace5d04 100644
---- a/board/armltd/corstone1000/corstone1000.c
-+++ b/board/armltd/corstone1000/corstone1000.c
-@@ -9,6 +9,7 @@
- #include <common.h>
- #include <dm.h>
- #include <env.h>
-+#include <fwu.h>
- #include <netdev.h>
- #include <nvmxip.h>
- #include <part.h>
-@@ -116,7 +117,7 @@ int dram_init_banksize(void)
- 	return 0;
- }
- 
--void fwu_plat_get_bootidx(int *boot_idx)
-+void fwu_plat_get_bootidx(uint *boot_idx)
- {
- 	int ret;
- 
-@@ -127,9 +128,7 @@ void fwu_plat_get_bootidx(int *boot_idx)
- 	 */
- 	ret = fwu_get_active_index(boot_idx);
- 	if (ret < 0)
--		log_err("corstone1000: failed to read active index\n");
--
--	return ret;
-+		log_err("corstone1000: failed to read active index err %d\n", ret);
- }
- 
- int board_late_init(void)
--- 
-2.25.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch
index 3d8545f..1d28631 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot/corstone500/0001-armv7-adding-generic-timer-access-through-MMIO.patch
@@ -20,7 +20,6 @@
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
 
-%% original patch: 0001-armv7-adding-generic-timer-access-through-MMIO.patch
 
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 ---
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
index 07ba7a1..6c0d490 100644
--- a/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/u-boot/u-boot_%.bbappend
@@ -18,49 +18,39 @@
 SYSROOT_DIRS:append:corstone1000 = " /boot"
 
 SRC_URI:append:corstone1000 = " \
-        file://0001-arm64-smccc-add-support-for-SMCCCv1.2-x0-x17-registe.patch            \ 
-        file://0002-lib-uuid-introduce-uuid_str_to_le_bin-function.patch		  \ 
-        file://0003-arm_ffa-introduce-Arm-FF-A-low-level-driver.patch			  \ 
-        file://0004-arm_ffa-efi-unmap-RX-TX-buffers.patch				  \ 
-        file://0005-arm_ffa-introduce-armffa-command.patch				  \ 
-        file://0006-arm_ffa-introduce-the-FF-A-Sandbox-driver.patch			  \ 
-        file://0007-arm_ffa-introduce-Sandbox-test-cases-for-UCLASS_FFA.patch		  \ 
-        file://0008-arm_ffa-introduce-armffa-command-Sandbox-test.patch			  \ 
-        file://0009-arm_ffa-efi-introduce-FF-A-MM-communication.patch			  \ 
-        file://0010-arm_ffa-efi-corstone1000-enable-MM-communication.patch		  \ 
-        file://0011-efi-corstone1000-introduce-EFI-capsule-update.patch			  \ 
-        file://0012-arm-corstone1000-fix-unrecognized-filesystem-type.patch		  \ 
-        file://0013-efi_capsule-corstone1000-pass-interface-id-and-buffe.patch		  \ 
-        file://0014-efi_boottime-corstone1000-pass-interface-id-and-kern.patch		  \ 
-        file://0015-efi_loader-corstone1000-remove-guid-check-from-corst.patch		  \ 
-        file://0016-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch		  \ 
-        file://0017-efi_firmware-add-get_image_info-for-corstone1000.patch		  \ 
-        file://0018-efi_loader-send-bootcomplete-message-to-secure-encla.patch		  \ 
-        file://0019-efi_loader-fix-null-pointer-exception-with-get_image.patch		  \ 
-        file://0020-arm-corstone1000-add-mmc-for-fvp.patch				  \ 
-        file://0021-corstone1000-add-compressed-kernel-support.patch			  \ 
-        file://0022-Introduce-external-sys-driver-to-device-tree.patch			  \ 
-        file://0023-Add-mhu-and-rpmsg-client-to-u-boot-device-tree.patch		  \ 
-        file://0024-arm-corstone1000-esrt-support.patch					  \ 
-        file://0025-efi_setup-discover-FF-A-bus-before-raising-EFI-start.patch		  \ 
-        file://0026-corstone1000-enable-distro-booting-command.patch			  \ 
-        file://0027-drivers-mtd-nvmxip-introduce-NVM-XIP-block-storage-e.patch		  \ 
-        file://0028-drivers-mtd-nvmxip-introduce-QSPI-XIP-driver.patch			  \ 
-        file://0029-sandbox64-fix-return-unsigned-long-in-readq.patch			  \ 
-        file://0030-sandbox64-add-support-for-NVMXIP-QSPI.patch				  \ 
-        file://0031-corstone1000-add-NVM-XIP-QSPI-device-tree-node.patch		  \ 
-        file://0032-sandbox64-add-a-test-case-for-UCLASS_NVMXIP.patch			  \ 
-        file://0033-corstone1000-add-fwu-metadata-store-info.patch			  \ 
-        file://0034-fwu_metadata-make-sure-structures-are-packed.patch			  \ 
-        file://0035-corstone1000-add-boot-index.patch					  \ 
-        file://0036-corstone1000-adjust-boot-bank-and-kernel-location.patch		  \ 
-        file://0037-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch		  \ 
-        file://0038-nvmxip-move-header-to-include.patch					  \ 
-        file://0039-corstone1000-set-kernel_addr-based-on-boot_idx.patch		  \ 
-        file://0040-corstone1000-boot-index-from-active.patch				  \ 
-        file://0041-corstone1000-enable-PSCI-reset.patch				  \
-        file://0042-Enable-EFI-set-get-time-services.patch                                \
-        file://0043-corstone1000-fix-compilation-warnings-in-fwu_plat_get_bootidx.patch   \ 
+        file://0001-FF-A-v15-arm64-smccc-add-support-for-SMCCCv1.2-x0-x1.patch    \
+        file://0002-FF-A-v15-lib-uuid-introduce-uuid_str_to_le_bin-funct.patch	  \
+        file://0003-FF-A-v15-lib-uuid-introduce-testcase-for-uuid_str_to.patch	  \
+	file://0004-FF-A-v15-arm_ffa-introduce-Arm-FF-A-support.patch		  \
+	file://0005-FF-A-v15-arm_ffa-introduce-armffa-command.patch		  \
+	file://0006-FF-A-v15-arm_ffa-introduce-sandbox-FF-A-support.patch	  \
+        file://0007-FF-A-v15-arm_ffa-introduce-sandbox-test-cases-for-UC.patch	  \
+        file://0008-FF-A-v15-arm_ffa-introduce-armffa-command-Sandbox-te.patch	  \
+	file://0009-FF-A-v15-arm_ffa-efi-introduce-FF-A-MM-communication.patch	  \
+	file://0010-FF-A-v15-arm_ffa-efi-corstone1000-enable-MM-communic.patch	  \
+	file://0011-efi-corstone1000-fwu-introduce-EFI-capsule-update.patch	  \
+	file://0012-arm-corstone1000-fix-unrecognized-filesystem-type.patch	  \
+	file://0013-efi_loader-corstone1000-remove-guid-check-from-corst.patch	  \
+	file://0014-efi_loader-populate-ESRT-table-if-EFI_ESRT-config-op.patch	  \
+	file://0015-efi_firmware-add-get_image_info-for-corstone1000.patch	  \
+	file://0016-efi_loader-fix-null-pointer-exception-with-get_image.patch	  \
+	file://0017-arm-corstone1000-add-mmc-for-fvp.patch			  \
+	file://0018-corstone1000-add-compressed-kernel-support.patch		  \
+	file://0019-Introduce-external-sys-driver-to-device-tree.patch		  \
+	file://0020-Add-mhu-and-rpmsg-client-to-u-boot-device-tree.patch	  \
+	file://0021-arm-corstone1000-esrt-support.patch			  \
+	file://0022-corstone1000-enable-distro-booting-command.patch		  \
+	file://0023-corstone1000-add-fwu-metadata-store-info.patch		  \
+	file://0024-fwu_metadata-make-sure-structures-are-packed.patch		  \
+	file://0025-corstone1000-add-boot-index.patch				  \
+	file://0026-corstone1000-adjust-boot-bank-and-kernel-location.patch	  \
+	file://0027-corstone1000-add-nvmxip-fwu-mdata-and-gpt-options.patch	  \
+	file://0028-nvmxip-move-header-to-include.patch			  \
+	file://0029-corstone1000-set-kernel_addr-based-on-boot_idx.patch	  \
+	file://0030-corstone1000-boot-index-from-active.patch			  \
+	file://0031-corstone1000-enable-PSCI-reset.patch			  \
+	file://0032-Enable-EFI-set-get-time-services.patch			  \
+	file://0033-Increase-the-unzipped-Kernel-size.patch			  \
         "
 
 #
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202211.bb
similarity index 76%
rename from meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb
rename to meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202211.bb
index 386bed4..378f585 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202211.bb
+++ b/meta-arm/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202211.bb
@@ -1,4 +1,4 @@
 SRCREV_edk2           ?= "fff6d81270b57ee786ea18ad74f43149b9f03494"
 SRCREV_edk2-platforms ?= "982212662c71b6c734b7578526071d6b78da3bcc"
 
-require edk2-firmware.inc
+require recipes-bsp/uefi/edk2-firmware.inc
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0003-HACK-disable-instruction-cache-and-data-cache.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0003-HACK-disable-instruction-cache-and-data-cache.patch
index e8f4cc4..ebe4d72 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0003-HACK-disable-instruction-cache-and-data-cache.patch
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0003-HACK-disable-instruction-cache-and-data-cache.patch
@@ -12,7 +12,6 @@
 
 Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
 
-%% original patch: 0003-HACK-disable-instruction-cache-and-data-cache.patch
 
 diff --git a/core/arch/arm/kernel/entry_a64.S b/core/arch/arm/kernel/entry_a64.S
 index 875b6e69..594d6928 100644
diff --git a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
index 67d9872..ca4405d 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
+++ b/meta-arm/meta-arm-bsp/recipes-security/optee/files/optee-os/n1sdp/0004-Handle-logging-syscall.patch
@@ -9,7 +9,6 @@
 Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
 Change-Id: Ib8151cc9c66aea8bcc8fe8b1ecdc3f9f9c5f14e4
 
-%% original patch: 0004-Handle-logging-syscall.patch
 
 diff --git a/core/arch/arm/kernel/spmc_sp_handler.c b/core/arch/arm/kernel/spmc_sp_handler.c
 index e0fa0aa6..c7a45387 100644
diff --git a/meta-arm/meta-arm-bsp/recipes-security/trusted-services/corstone1000/psa-apitest/0001-corstone1000-port-crypto-config.patch b/meta-arm/meta-arm-bsp/recipes-security/trusted-services/corstone1000/psa-apitest/0001-corstone1000-port-crypto-config.patch
index c728956..072b50b 100644
--- a/meta-arm/meta-arm-bsp/recipes-security/trusted-services/corstone1000/psa-apitest/0001-corstone1000-port-crypto-config.patch
+++ b/meta-arm/meta-arm-bsp/recipes-security/trusted-services/corstone1000/psa-apitest/0001-corstone1000-port-crypto-config.patch
@@ -9,7 +9,6 @@
 
 Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
 
-%% original patch: 0002-corstone1000-port-crypto-config.patch
 
 Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
 ---
diff --git a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/androidclang_r416183b.bb b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/androidclang_r416183b.bb
deleted file mode 100644
index 963fd60..0000000
--- a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/androidclang_r416183b.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-# SPDX-License-Identifier: MIT
-#
-# Copyright (c) 2021 Arm Limited
-#
-
-SUMMARY = "Android Clang compiler"
-DESCRIPTION = "Android Clang compiler, version r416183b. This is based on Clang 12.0.5 \
-Intended usage is to build kernel images that match the output of the Android (hermetic) \
-build system"
-
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://MODULE_LICENSE_MIT;md5=d41d8cd98f00b204e9800998ecf8427e"
-
-ANDROID_CLANG_VERSION = "clang-r416183b"
-ANDROID_CLANG_HASH = "bd96dfe349c962681f0e5388af874c771ef96670"
-
-COMPATIBLE_HOST = "x86_64.*-linux"
-
-SRC_URI = "https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/${ANDROID_CLANG_HASH}/${ANDROID_CLANG_VERSION}.tar.gz;subdir=${ANDROID_CLANG_VERSION}"
-
-# We need to set the checksum to "ignore" because the tarball is dynamically generated and has a new checksum every time
-# (the contents are the same, but the time stamp differs)
-BB_STRICT_CHECKSUM = "ignore"
-
-S = "${WORKDIR}/${ANDROID_CLANG_VERSION}"
-
-FILES:${PN} = "${libexecdir} ${bindir}"
-
-do_install() {
-    install -d ${D}${libexecdir}/${ANDROID_CLANG_VERSION}/
-
-    cp --no-preserve=ownership -r ${S}/. ${D}${libexecdir}/${ANDROID_CLANG_VERSION}/
-    # Strip bad RPATHs in the embedded python3
-    chrpath -d ${D}${libexecdir}/${ANDROID_CLANG_VERSION}/python3/lib/python*/lib-dynload/*.so
-
-    install -d ${D}${bindir}
-    # Symlink all executables into bindir
-    for f in ${D}${libexecdir}/${ANDROID_CLANG_VERSION}/bin/*; do
-        ln -rs $f ${D}${bindir}/$(basename $f)
-    done
-}
-
-INHIBIT_DEFAULT_DEPS = "1"
-
-INSANE_SKIP:${PN} = "already-stripped libdir staticdev file-rdeps arch dev-so"
-
-INHIBIT_SYSROOT_STRIP = "1"
-INHIBIT_PACKAGE_STRIP = "1"
-INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/arm-binary-toolchain.inc b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/arm-binary-toolchain.inc
index 44adfc8..0e039a5 100644
--- a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/arm-binary-toolchain.inc
+++ b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/arm-binary-toolchain.inc
@@ -5,11 +5,11 @@
 BINNAME = "${@d.getVar("BPN").strip("gcc-")}"
 
 do_install() {
-    install -d ${D}${bindir} ${D}${libexecdir}/${BPN}/
-    cp -r ${S}/. ${D}${libexecdir}/${BPN}
+    install -d ${D}${bindir} ${D}${libexecdir}/${BP}/
+    cp -r ${S}/. ${D}${libexecdir}/${BP}
 
     # Symlink all executables into bindir
-    for f in ${D}${libexecdir}/${BPN}/bin/*; do
+    for f in ${D}${libexecdir}/${BP}/bin/*; do
         ln -rs $f ${D}${bindir}/$(basename $f)
     done
 }
diff --git a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-aarch64-none-elf_12.2.rel1.bb b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-aarch64-none-elf_12.3.rel1.bb
similarity index 82%
rename from meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-aarch64-none-elf_12.2.rel1.bb
rename to meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-aarch64-none-elf_12.3.rel1.bb
index db8851e..7d06f29 100644
--- a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-aarch64-none-elf_12.2.rel1.bb
+++ b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-aarch64-none-elf_12.3.rel1.bb
@@ -12,8 +12,8 @@
 LIC_FILES_CHKSUM:x86-64 = "file://share/doc/gcc/Copying.html;md5=7ba3bc8ef145b48e2756a844db2029a3"
 
 SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu/${PV}/binrel/arm-gnu-toolchain-${PV}-${HOST_ARCH}-${BINNAME}.tar.xz;name=gcc-${HOST_ARCH}"
-SRC_URI[gcc-aarch64.sha256sum] = "570a9bd42e2067d79d59b0747891681ebec66f30d989d17a05856563fe38f78b"
-SRC_URI[gcc-x86_64.sha256sum] = "62d66e0ad7bd7f2a183d236ee301a5c73c737c886c7944aa4f39415aab528daf"
+SRC_URI[gcc-aarch64.sha256sum] = "76ba68db4390b50f0a16386c6a011ec611a35a517ae40b7be008ca7920cfa59f"
+SRC_URI[gcc-x86_64.sha256sum] = "382c8c786285e415bc0ff4df463e101f76d6f69a894b03f132368147c37f0ba7"
 
 S = "${WORKDIR}/arm-gnu-toolchain-${PV}-${HOST_ARCH}-${BINNAME}"
 
diff --git a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.2.rel1.bb b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi-11.2_11.2-2022.02.bb
similarity index 62%
copy from meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.2.rel1.bb
copy to meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi-11.2_11.2-2022.02.bb
index 48ddd16..7fab1e1 100644
--- a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.2.rel1.bb
+++ b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi-11.2_11.2-2022.02.bb
@@ -8,14 +8,16 @@
 SUMMARY = "Arm GNU Toolchain - AArch32 bare-metal target (arm-none-eabi)"
 LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"
 
-LIC_FILES_CHKSUM:aarch64 = "file://share/doc/gcc/Copying.html;md5=0aef214b835259b64f026f4ad00c703e"
-LIC_FILES_CHKSUM:x86-64 = "file://share/doc/gcc/Copying.html;md5=7ba3bc8ef145b48e2756a844db2029a3"
+LIC_FILES_CHKSUM:aarch64 = "file://share/doc/gcc/Copying.html;md5=be4f8b5ff7319cd54f6c52db5d6f36b0"
+LIC_FILES_CHKSUM:x86-64 = "file://share/doc/gcc/Copying.html;md5=1f07179249795891179bb3798bac7887"
 
-SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu/${PV}/binrel/arm-gnu-toolchain-${PV}-${HOST_ARCH}-${BINNAME}.tar.xz;name=gcc-${HOST_ARCH}"
-SRC_URI[gcc-aarch64.sha256sum] = "7ee332f7558a984e239e768a13aed86c6c3ac85c90b91d27f4ed38d7ec6b3e8c"
-SRC_URI[gcc-x86_64.sha256sum] = "84be93d0f9e96a15addd490b6e237f588c641c8afdf90e7610a628007fc96867"
+BINNAME = "arm-none-eabi"
 
-S = "${WORKDIR}/arm-gnu-toolchain-${PV}-${HOST_ARCH}-${BINNAME}"
+SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu/${PV}/binrel/gcc-arm-${PV}-${HOST_ARCH}-${BINNAME}.tar.xz;name=gcc-${HOST_ARCH}"
+SRC_URI[gcc-aarch64.sha256sum] = "ef1d82e5894e3908cb7ed49c5485b5b95deefa32872f79c2b5f6f5447cabf55f"
+SRC_URI[gcc-x86_64.sha256sum] = "8c5acd5ae567c0100245b0556941c237369f210bceb196edfe5a2e7532c60326"
+
+S = "${WORKDIR}/gcc-arm-${PV}-${HOST_ARCH}-${BINNAME}"
 
 UPSTREAM_CHECK_URI = "https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads"
 UPSTREAM_CHECK_REGEX = "${BPN}-(?P<pver>.+)-${HOST_ARCH}-linux\.tar\.\w+"
diff --git a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.2.rel1.bb b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.3.rel1.bb
similarity index 82%
rename from meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.2.rel1.bb
rename to meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.3.rel1.bb
index 48ddd16..6c33ec6 100644
--- a/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.2.rel1.bb
+++ b/meta-arm/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/gcc-arm-none-eabi_12.3.rel1.bb
@@ -12,8 +12,8 @@
 LIC_FILES_CHKSUM:x86-64 = "file://share/doc/gcc/Copying.html;md5=7ba3bc8ef145b48e2756a844db2029a3"
 
 SRC_URI = "https://developer.arm.com/-/media/Files/downloads/gnu/${PV}/binrel/arm-gnu-toolchain-${PV}-${HOST_ARCH}-${BINNAME}.tar.xz;name=gcc-${HOST_ARCH}"
-SRC_URI[gcc-aarch64.sha256sum] = "7ee332f7558a984e239e768a13aed86c6c3ac85c90b91d27f4ed38d7ec6b3e8c"
-SRC_URI[gcc-x86_64.sha256sum] = "84be93d0f9e96a15addd490b6e237f588c641c8afdf90e7610a628007fc96867"
+SRC_URI[gcc-aarch64.sha256sum] = "14c0487d5753f6071d24e568881f7c7e67f80dd83165dec5164b3731394af431"
+SRC_URI[gcc-x86_64.sha256sum] = "12a2815644318ebcceaf84beabb665d0924b6e79e21048452c5331a56332b309"
 
 S = "${WORKDIR}/arm-gnu-toolchain-${PV}-${HOST_ARCH}-${BINNAME}"
 
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/files/rwx.patch b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/files/rwx.patch
deleted file mode 100644
index b279cfe..0000000
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/files/rwx.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 1d548c77d07fc9a83e3e9aa28a23aa19a0177e3b Mon Sep 17 00:00:00 2001
-From: Jon Mason <jon.mason@arm.com>
-Date: Wed, 18 Jan 2023 15:13:37 -0500
-Subject: [PATCH] arm/trusted-firmware-m: disable fatal warnings
-
-Signed-off-by: Jon Mason <jon.mason@arm.com>
-Upstream-Status: Inappropriate
-
----
- toolchain_GNUARM.cmake | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/toolchain_GNUARM.cmake b/toolchain_GNUARM.cmake
-index 7978eaca68..88395f922a 100644
---- a/toolchain_GNUARM.cmake
-+++ b/toolchain_GNUARM.cmake
-@@ -66,7 +66,6 @@ macro(tfm_toolchain_reset_linker_flags)
-         --entry=Reset_Handler
-         --specs=nano.specs
-         LINKER:-check-sections
--        LINKER:-fatal-warnings
-         LINKER:--gc-sections
-         LINKER:--no-wchar-size-warning
-         ${MEMORY_USAGE_FLAG}
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc
similarity index 80%
rename from meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
rename to meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc
index 6a209c3..393ce43 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc
@@ -3,7 +3,7 @@
 LICENSE = "BSD-2-Clause & BSD-3-Clause & Apache-2.0"
 
 LIC_FILES_CHKSUM = "file://license.rst;md5=07f368487da347f3c7bd0fc3085f3afa \
-                    file://../tf-m-tests/license.rst;md5=02d06ffb8d9f099ff4961c0cb0183a18 \
+                    file://../tf-m-tests/license.rst;md5=4481bae2221b0cfca76a69fb3411f390 \
                     file://../mbedtls/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
                     file://../mcuboot/LICENSE;md5=b6ee33f1d12a5e6ee3de1e82fb51eeb8"
 
@@ -22,24 +22,24 @@
             "
 
 # The required dependencies are documented in tf-m/config/config_default.cmake
-# TF-Mv1.7.0
+# TF-Mv1.8.0
 SRCBRANCH_tfm ?= "master"
-SRCREV_tfm = "b725a1346cdb9ec75b1adcdc4c84705881e8fd4e"
-# TF-Mv1.7.0
+SRCREV_tfm = "35ac80c8581d483da7d18cb8bcd20aaed096550c"
+# TF-Mv1.8.0
 SRCBRANCH_tfm-tests ?= "master"
-SRCREV_tfm-tests = "4c4b58041c6c01670266690538a780b4a23d08b8"
-# mbedtls-3.2.1
+SRCREV_tfm-tests = "1273c5bcd3d8ade60d51524797e0b22b6fd7eea1"
+# mbedtls-3.4.0
 SRCBRANCH_mbedtls ?= "master"
-SRCREV_mbedtls = "869298bffeea13b205343361b7a7daf2b210e33d"
-# v1.9.0
+SRCREV_mbedtls = "1873d3bfc2da771672bd8e7e8f41f57e0af77f33"
+# mcuboot v1.10.0
 SRCBRANCH_mcuboot ?= "main"
-SRCREV_mcuboot = "c657cbea75f2bb1faf1fceacf972a0537a8d26dd"
-# qcbor
+SRCREV_mcuboot = "23d28832f02dcdc18687782c6cd8ba99e9b274d2"
+# QCBOR v1.2
 SRCBRANCH_qcbor ?= "master"
 SRCREV_qcbor = "b0e7033268e88c9f27146fa9a1415ef4c19ebaff"
-# TF-Mv1.7.0
+# TF-Mv1.8.0
 SRCBRANCH_tfm-extras ?= "master"
-SRCREV_tfm-extras = "daacaa6df3881e205bc03d75fc8fb688afe9f0f1"
+SRCREV_tfm-extras = "504ae9a9a50981e9dd4d8accec8261a1dba9e965"
 
 SRCREV_FORMAT = "tfm"
 
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.7.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.7.0.bb
deleted file mode 100644
index 504846e..0000000
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.7.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
-require recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.0.bb
new file mode 100644
index 0000000..10b141d
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native_1.8.0.bb
@@ -0,0 +1,2 @@
+require recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc
+require recipes-bsp/trusted-firmware-m/trusted-firmware-m-scripts-native.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
index 02acfb8..1747c65 100644
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
@@ -8,8 +8,6 @@
 HOMEPAGE = "https://git.trustedfirmware.org/trusted-firmware-m.git"
 PROVIDES = "virtual/trusted-firmware-m"
 
-SRC_URI += "file://rwx.patch"
-
 UPSTREAM_CHECK_GITTAGREGEX = "^TF-Mv(?P<pver>\d+(\.\d+)+)$"
 
 # Note to future readers of this recipe: until the CMakeLists don't abuse
@@ -24,10 +22,13 @@
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
+# At present, TF-M needs GCC >10 but <11.3 so use 11.2:
+# https://git.trustedfirmware.org/TF-M/trusted-firmware-m.git/tree/docs/getting_started/tfm_getting_started.rst?h=TF-Mv1.8.0#n214
+#
 # See tools/requirements.txt for Python dependencies
 DEPENDS += "cmake-native \
             ninja-native \
-            gcc-arm-none-eabi-native \
+            gcc-arm-none-eabi-11.2-native \
             python3-cbor2-native \
             python3-click-native \
             python3-cryptography-native \
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.0.bb
deleted file mode 100644
index 32e6ed3..0000000
--- a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.7.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.7.0-src.inc
-require recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.0.bb b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.0.bb
new file mode 100644
index 0000000..5794c1e
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-bsp/trusted-firmware-m/trusted-firmware-m_1.8.0.bb
@@ -0,0 +1,2 @@
+require recipes-bsp/trusted-firmware-m/trusted-firmware-m-1.8.0-src.inc
+require recipes-bsp/trusted-firmware-m/trusted-firmware-m.inc
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware.inc b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware.inc
index 4b9eda3..20eea36 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware.inc
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware.inc
@@ -18,7 +18,6 @@
 SRC_URI = "\
     ${SRC_URI_EDK2};branch=${SRCBRANCH_edk2_platforms};name=edk2;destsuffix=edk2 \
     ${SRC_URI_EDK2_PLATFORMS};branch=${SRCBRANCH_edk2};name=edk2-platforms;destsuffix=edk2/edk2-platforms \
-    file://default.patch;patchdir=edk2-platforms \
 "
 
 SRCREV_FORMAT         = "edk2_edk2-platforms"
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_2023%.bbappend
similarity index 100%
rename from meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_%.bbappend
rename to meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_2023%.bbappend
diff --git a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202302.bb b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202302.bb
index fa26c3e..02738d3 100644
--- a/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202302.bb
+++ b/meta-arm/meta-arm/recipes-bsp/uefi/edk2-firmware_202302.bb
@@ -1,4 +1,6 @@
 SRCREV_edk2           ?= "f80f052277c88a67c55e107b550f504eeea947d3"
 SRCREV_edk2-platforms ?= "65e001a7f2abedf7799cfb36b057326c1540bd47"
 
+SRC_URI:append = " file://default.patch;patchdir=edk2-platforms"
+
 require edk2-firmware.inc
diff --git a/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.20.15.bb b/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.22.14.bb
similarity index 62%
rename from meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.20.15.bb
rename to meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.22.14.bb
index 4c62822..606f977 100644
--- a/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.20.15.bb
+++ b/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-a-aem_11.22.14.bb
@@ -3,10 +3,10 @@
 SUMMARY = "Arm Fixed Virtual Platform - Armv-A Base RevC Architecture Envelope Model FVP"
 LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \
                     file://license_terms/third_party_licenses/third_party_licenses.txt;md5=34a1ba318d745f05e6197def68ea5411 \
-                    file://license_terms/third_party_licenses/arm_license_management_utilities/third_party_licenses.txt;md5=2e53bda6ff2db4c35d69944b93926c9f"
+                    file://license_terms/third_party_licenses/arm_license_management_utilities/third_party_licenses.txt;md5=c09526c02e631abb95ad61528892552d"
 
-SRC_URI[fvp-aarch64.sha256sum] = "e14e6cbd5c3ec8e1e2e79965e994c9235e136480e102f5c43de31162263b6361"
-SRC_URI[fvp-x86_64.sha256sum] = "f9db2076e3a63e2f8eb2ea9ed60f30db04e5f81f535bc7e3ed24e270d857ea6f"
+SRC_URI[fvp-aarch64.sha256sum] = "6964dbe0e297a5a6b5abd290d09e883923b5150e087f285fcfb80077525bfe6e"
+SRC_URI[fvp-x86_64.sha256sum] = "eb0f5ca855fb8b0321e137b82306ac8a6b534a5625366ff10e20b3f68df533a4"
 
 MODEL_CODE = "FVP_Base_RevC-2xAEMvA"
 
diff --git a/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.20.15.bb b/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.22.14.bb
similarity index 69%
rename from meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.20.15.bb
rename to meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.22.14.bb
index 3f8139c..89c83ea 100644
--- a/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.20.15.bb
+++ b/meta-arm/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.22.14.bb
@@ -3,8 +3,8 @@
 SUMMARY = "Arm Fixed Virtual Platform - Armv8-R Base Architecture Envelope Model FVP"
 LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \
                     file://license_terms/third_party_licenses/third_party_licenses.txt;md5=34a1ba318d745f05e6197def68ea5411 \
-                    file://license_terms/third_party_licenses/arm_license_management_utilities/third_party_licenses.txt;md5=2e53bda6ff2db4c35d69944b93926c9f"
+                    file://license_terms/third_party_licenses/arm_license_management_utilities/third_party_licenses.txt;md5=c09526c02e631abb95ad61528892552d"
 
-SRC_URI[fvp-x86_64.sha256sum] = "c252616489b79fffa3bb721255b1c99ff4ee8c38e4beebce4fa05862a3195fe9"
+SRC_URI[fvp-x86_64.sha256sum] = "e819bfbccd91749345e3c7c6db22cbe41e02223118eb6395a4307ca81b175f7a"
 
 MODEL_CODE = "FVP_Base_AEMv8R"
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt-tweaks.cfg b/meta-arm/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt-tweaks.cfg
new file mode 100644
index 0000000..84e0dd7
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt-tweaks.cfg
@@ -0,0 +1,4 @@
+# These configurations have a dependency on !PREEMPT_RT. Set them to `n` to
+# avoid complain when do_kernel_configcheck.
+CONFIG_LEDS_TRIGGER_CPU=n
+CONFIG_TRANSPARENT_HUGEPAGE=n
diff --git a/meta-arm/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt.scc b/meta-arm/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt.scc
new file mode 100644
index 0000000..ae97c2e
--- /dev/null
+++ b/meta-arm/meta-arm/recipes-kernel/linux/files/generic-arm64-kmeta/generic-arm64-preempt-rt.scc
@@ -0,0 +1,7 @@
+define KMACHINE generic-arm64
+define KTYPE preempt-rt
+define KARCH arm64
+
+kconf hardware generic-arm64-preempt-rt-tweaks.cfg
+include ktypes/preempt-rt/preempt-rt.scc
+include features/bluetooth/bluetooth.scc
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-test/musl-workaround.patch b/meta-arm/meta-arm/recipes-security/optee/optee-test/0001-xtest-regression_1000-remove-unneeded-stat.h-include.patch
similarity index 60%
rename from meta-arm/meta-arm/recipes-security/optee/optee-test/musl-workaround.patch
rename to meta-arm/meta-arm/recipes-security/optee/optee-test/0001-xtest-regression_1000-remove-unneeded-stat.h-include.patch
index eed1bd4..5e075d6 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-test/musl-workaround.patch
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-test/0001-xtest-regression_1000-remove-unneeded-stat.h-include.patch
@@ -1,3 +1,8 @@
+From ddd5ad19732c9a2a9fe236662a8d264c6b2b1a0a Mon Sep 17 00:00:00 2001
+From: Jon Mason <jon.mason@arm.com>
+Date: Sat, 15 Jul 2023 15:08:43 -0400
+Subject: [PATCH] xtest: regression_1000: remove unneeded stat.h include
+
 Hack to work around musl compile error:
  In file included from optee-test/3.17.0-r0/recipe-sysroot/usr/include/sys/stat.h:23,
                   from optee-test/3.17.0-r0/git/host/xtest/regression_1000.c:25:
@@ -7,14 +12,19 @@
 
 stat.h is not needed, since it is not being used in this file.  So removing it.
 
-Upstream-Status: Pending [Not submitted to upstream yet]
+Upstream-Status: Backport [https://github.com/OP-TEE/optee_test/pull/688]
 Signed-off-by: Jon Mason <jon.mason@arm.com>
+Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
+Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
+---
+ host/xtest/regression_1000.c | 1 -
+ 1 file changed, 1 deletion(-)
 
 diff --git a/host/xtest/regression_1000.c b/host/xtest/regression_1000.c
-index 4264884..7f1baca 100644
+index cd11f933ce43..8e338e59da21 100644
 --- a/host/xtest/regression_1000.c
 +++ b/host/xtest/regression_1000.c
-@@ -22,7 +22,6 @@
+@@ -24,7 +24,6 @@
  #include <stdio.h>
  #include <stdlib.h>
  #include <string.h>
diff --git a/meta-arm/meta-arm/recipes-security/optee/optee-test_3.22.0.bb b/meta-arm/meta-arm/recipes-security/optee/optee-test_3.22.0.bb
index 3b9632f..5d3f5a8 100644
--- a/meta-arm/meta-arm/recipes-security/optee/optee-test_3.22.0.bb
+++ b/meta-arm/meta-arm/recipes-security/optee/optee-test_3.22.0.bb
@@ -1,7 +1,7 @@
 require optee-test.inc
 
 SRC_URI += " \
-    file://musl-workaround.patch \
+    file://0001-xtest-regression_1000-remove-unneeded-stat.h-include.patch \
    "
 SRCREV = "a286b57f1721af215ace318d5807e63f40186df6"
 
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb
index f91e682..1d07061 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb
@@ -1,5 +1,4 @@
 SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE"
-AUTHOR = "Miklos Szeredi <miklos@szeredi.hu>"
 HOMEPAGE = "https://github.com/libfuse/sshfs"
 SECTION = "console/network"
 LICENSE = "GPL-2.0-only"
diff --git a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.14.1.bb b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.15.1.bb
similarity index 94%
rename from meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.14.1.bb
rename to meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.15.1.bb
index c8a820a..de2996d 100644
--- a/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.14.1.bb
+++ b/meta-openembedded/meta-filesystems/recipes-support/fuse/fuse3_3.15.1.bb
@@ -11,9 +11,9 @@
                     file://LGPL2.txt;md5=4fbd65380cdd255951079008b364516c \
                     file://LICENSE;md5=a55c12a2d7d742ecb41ca9ae0a6ddc66"
 
-SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.xz \
+SRC_URI = "https://github.com/libfuse/libfuse/releases/download/fuse-${PV}/fuse-${PV}.tar.gz \
 "
-SRC_URI[sha256sum] = "126919d72b46b3e0eb58a9c6933a2a50c36f2ea69f61fe9e78bdba9f463ffa20"
+SRC_URI[sha256sum] = "13ef77cda531a21c2131f9576042970e98035c0a5f019abf661506efd2d38a4e"
 
 S = "${WORKDIR}/fuse-${PV}"
 
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary/0001-client-Add-missing-type-arguments-for-interfaces-to-.patch b/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary/0001-client-Add-missing-type-arguments-for-interfaces-to-.patch
deleted file mode 100644
index e5f0cb4..0000000
--- a/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary/0001-client-Add-missing-type-arguments-for-interfaces-to-.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 19dddc4b8acaeefc505e1b45f53048901839aede Mon Sep 17 00:00:00 2001
-From: Rico Tzschichholz <ricotz@ubuntu.com>
-Date: Sat, 8 Apr 2023 13:06:50 +0200
-Subject: [PATCH] client: Add missing type-arguments for interfaces to fix build with newer vala
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/geary/-/commit/4a7ca820b1d3d6130fedf254dc5b4cd7efb58f2c]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/client/accounts/accounts-editor-row.vala          | 2 +-
- src/client/accounts/accounts-editor-servers-pane.vala | 6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/client/accounts/accounts-editor-row.vala b/src/client/accounts/accounts-editor-row.vala
-index 6e7ac2ab..70223d71 100644
---- a/src/client/accounts/accounts-editor-row.vala
-+++ b/src/client/accounts/accounts-editor-row.vala
-@@ -386,7 +386,7 @@ private abstract class Accounts.ServiceRow<PaneType,V> : AccountRow<PaneType,V>
- 
- 
- /** Interface for rows that use a validator for editable values. */
--internal interface Accounts.ValidatingRow : EditorRow {
-+internal interface Accounts.ValidatingRow<PaneType> : EditorRow<PaneType> {
- 
- 
-     /** The row's validator */
-diff --git a/src/client/accounts/accounts-editor-servers-pane.vala b/src/client/accounts/accounts-editor-servers-pane.vala
-index 8bd9bde1..982acd5c 100644
---- a/src/client/accounts/accounts-editor-servers-pane.vala
-+++ b/src/client/accounts/accounts-editor-servers-pane.vala
-@@ -694,7 +694,7 @@ private class Accounts.SaveSentRow :
- 
- 
- private class Accounts.ServiceHostRow :
--    ServiceRow<EditorServersPane,Gtk.Entry>, ValidatingRow {
-+    ServiceRow<EditorServersPane,Gtk.Entry>, ValidatingRow<EditorServersPane> {
- 
- 
-     public Components.Validator validator {
-@@ -848,7 +848,7 @@ private class Accounts.ServiceSecurityRow :
- 
- 
- private class Accounts.ServiceLoginRow :
--    ServiceRow<EditorServersPane,Gtk.Entry>, ValidatingRow {
-+    ServiceRow<EditorServersPane,Gtk.Entry>, ValidatingRow<EditorServersPane> {
- 
- 
-     public Components.Validator validator {
-@@ -972,7 +972,7 @@ private class Accounts.ServiceLoginRow :
- 
- 
- private class Accounts.ServicePasswordRow :
--    ServiceRow<EditorServersPane,Gtk.Entry>, ValidatingRow {
-+    ServiceRow<EditorServersPane,Gtk.Entry>, ValidatingRow<EditorServersPane> {
- 
- 
-     public Components.Validator validator {
--- 
-2.41.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary/0001-vala-unit-Fix-non-null-build-with-newer-vala.patch b/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary/0001-vala-unit-Fix-non-null-build-with-newer-vala.patch
deleted file mode 100644
index 11ed6ae..0000000
--- a/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary/0001-vala-unit-Fix-non-null-build-with-newer-vala.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-From 116aead44e01e046f83931574980991df66f69c3 Mon Sep 17 00:00:00 2001
-From: Rico Tzschichholz <ricotz@ubuntu.com>
-Date: Fri, 14 Apr 2023 09:42:23 +0200
-Subject: [PATCH] vala-unit: Fix non-null build with newer vala
-
-Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/geary/-/commit/10f9c133a2ad515127d65f3bba13a0d91b75f4af]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- .../vala-unit/src/collection-assertions.vala   | 12 ++++++------
- subprojects/vala-unit/src/mock-object.vala     |  6 +++---
- subprojects/vala-unit/src/test-assertions.vala | 18 +++++++++---------
- 3 files changed, 18 insertions(+), 18 deletions(-)
-
-diff --git a/subprojects/vala-unit/src/collection-assertions.vala b/subprojects/vala-unit/src/collection-assertions.vala
-index 3b34acda..29223a0d 100644
---- a/subprojects/vala-unit/src/collection-assertions.vala
-+++ b/subprojects/vala-unit/src/collection-assertions.vala
-@@ -256,7 +256,7 @@ internal class ValaUnit.ArrayCollectionAssertion<E> : GLib.Object,
- 
-     public CollectionAssertions<E> contains(E expected)
-         throws GLib.Error {
--        E boxed_expected = box_value(expected);
-+        E? boxed_expected = box_value(expected);
-         bool found = false;
-         for (int i = 0; i < this.actual.length; i++) {
-             try {
-@@ -281,7 +281,7 @@ internal class ValaUnit.ArrayCollectionAssertion<E> : GLib.Object,
- 
-     public CollectionAssertions<E> not_contains(E expected)
-         throws GLib.Error {
--        E boxed_expected = box_value(expected);
-+        E? boxed_expected = box_value(expected);
-         for (int i = 0; i < this.actual.length; i++) {
-             try {
-                 assert_equal(box_value(this.actual[i]), boxed_expected);
-@@ -312,8 +312,8 @@ internal class ValaUnit.ArrayCollectionAssertion<E> : GLib.Object,
-                 this.context
-             );
-         }
--        E boxed_actual = box_value(this.actual[index]);
--        E boxed_expected = box_value(expected);
-+        E? boxed_actual = box_value(this.actual[index]);
-+        E? boxed_expected = box_value(expected);
-         try {
-             assert_equal(boxed_actual, boxed_expected);
-         } catch (TestError.FAILED err) {
-@@ -453,8 +453,8 @@ internal class ValaUnit.GeeCollectionAssertion<E> :
-         for (int i = 0; i <= index; i++) {
-             iterator.next();
-         }
--        E boxed_actual = box_value(iterator.get());
--        E boxed_expected = box_value(expected);
-+        E? boxed_actual = box_value(iterator.get());
-+        E? boxed_expected = box_value(expected);
-         try {
-             assert_equal(boxed_actual, boxed_expected);
-         } catch (TestError.FAILED err) {
-diff --git a/subprojects/vala-unit/src/mock-object.vala b/subprojects/vala-unit/src/mock-object.vala
-index 766777a4..eb086e10 100644
---- a/subprojects/vala-unit/src/mock-object.vala
-+++ b/subprojects/vala-unit/src/mock-object.vala
-@@ -138,7 +138,7 @@ public interface ValaUnit.MockObject : GLib.Object, TestAssertions {
-         throws GLib.Error {
-         assert_false(this.expected.is_empty, "Unexpected call: %s".printf(name));
- 
--        ExpectedCall expected = this.expected.poll();
-+        ExpectedCall expected = (!) this.expected.poll();
-         assert_equal(name, expected.name, "Unexpected call");
-         if (expected.expected_args != null) {
-             assert_args(args, expected.expected_args, "Call %s".printf(name));
-@@ -229,7 +229,7 @@ public interface ValaUnit.MockObject : GLib.Object, TestAssertions {
-                                           R default_return)
-         throws GLib.Error {
-         check_for_exception(expected);
--        R? return_object = default_return;
-+        R return_object = default_return;
-         if (expected.return_object != null) {
-             return_object = (R) expected.return_object;
-         }
-@@ -243,7 +243,7 @@ public interface ValaUnit.MockObject : GLib.Object, TestAssertions {
-         if (expected.return_object == null) {
-             throw default_error;
-         }
--        return expected.return_object;
-+        return (!) expected.return_object;
-     }
- 
-     private inline void check_for_exception(ExpectedCall expected)
-diff --git a/subprojects/vala-unit/src/test-assertions.vala b/subprojects/vala-unit/src/test-assertions.vala
-index 784dd9fd..e61fdf82 100644
---- a/subprojects/vala-unit/src/test-assertions.vala
-+++ b/subprojects/vala-unit/src/test-assertions.vala
-@@ -21,8 +21,8 @@ namespace ValaUnit {
- 
-     }
- 
--    internal inline void assert_equal<T>(T actual,
--                                         T expected,
-+    internal inline void assert_equal<T>(T? actual,
-+                                         T? expected,
-                                          string? context = null)
-         throws TestError {
-         if ((actual == null && expected != null) ||
-@@ -107,9 +107,9 @@ namespace ValaUnit {
-      *
-      * This will only work when the values are not already boxed.
-      */
--    internal T box_value<T>(T value) {
-+    internal T? box_value<T>(T value) {
-         var type = typeof(T);
--        T boxed = value;
-+        T? boxed = value;
- 
-         if (type == typeof(int) || type.is_enum()) {
-             int actual = (int) value;
-@@ -133,7 +133,7 @@ namespace ValaUnit {
-         return boxed;
-     }
- 
--    internal string to_display_string<T>(T value) {
-+    internal string to_display_string<T>(T? value) {
-         var type = typeof(T);
-         var display = "";
- 
-@@ -191,8 +191,8 @@ namespace ValaUnit {
-         );
-     }
- 
--    private void assert_equal_enum<T>(T actual,
--                                      T expected,
-+    private void assert_equal_enum<T>(T? actual,
-+                                      T? expected,
-                                       string? context)
-         throws TestError {
-         int actual_val = (int) ((int?) actual);
-@@ -342,7 +342,7 @@ public interface ValaUnit.TestAssertions : GLib.Object {
- 
- 
-     /** Asserts a value is null */
--    public void assert_non_null<T>(T actual, string? context = null)
-+    public void assert_non_null<T>(T? actual, string? context = null)
-         throws TestError {
-         if (actual == null) {
-             ValaUnit.assert(
-@@ -353,7 +353,7 @@ public interface ValaUnit.TestAssertions : GLib.Object {
-     }
- 
-     /** Asserts a value is null */
--    public void assert_is_null<T>(T actual, string? context = null)
-+    public void assert_is_null<T>(T? actual, string? context = null)
-         throws TestError {
-         if (actual != null) {
-             ValaUnit.assert(
--- 
-2.41.0
-
diff --git a/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary_43.0.bb b/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary_44.0.bb
similarity index 88%
rename from meta-openembedded/meta-gnome/recipes-connectivity/geary/geary_43.0.bb
rename to meta-openembedded/meta-gnome/recipes-connectivity/geary/geary_44.0.bb
index 6085d94..a585929 100644
--- a/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary_43.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-connectivity/geary/geary_44.0.bb
@@ -26,7 +26,7 @@
     libstemmer \
     libxml2 \
     sqlite3 \
-    webkitgtk \
+    webkitgtk3 \
 "
 
 RDEPENDS:${PN} = "gnome-keyring"
@@ -36,12 +36,10 @@
 SRC_URI = " \
 	git://github.com/GNOME/geary.git;nobranch=1;protocol=https \
 	file://0001-meson-Use-PKG_CONFIG_SYSROOT_DIR-when-using-pkg-conf.patch \
-	file://0001-client-Add-missing-type-arguments-for-interfaces-to-.patch \
-	file://0001-vala-unit-Fix-non-null-build-with-newer-vala.patch \
 "
 
 S = "${WORKDIR}/git"
-SRCREV = "94d6bec861daffb27efea85a296f347db7a5af6d"
+SRCREV = "b72db2a5e87f2269e6359af434a4fc02fca9e9df"
 
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 REQUIRED_DISTRO_FEATURES = "gobject-introspection-data opengl"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
index 43717a8..edbe30f 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
@@ -37,7 +37,7 @@
 PACKAGECONFIG ?= "oauth"
 
 PACKAGECONFIG[canberra] = "-DENABLE_CANBERRA=ON,-DENABLE_CANBERRA=OFF,libcanberra"
-PACKAGECONFIG[oauth]    = "-DENABLE_OAUTH2_WEBKITGTK=ON -DENABLE_OAUTH2_WEBKITGTK4=OFF,-DENABLE_OAUTH2_WEBKITGTK4=OFF -DENABLE_OAUTH2_WEBKITGTK=OFF,webkitgtk json-glib"
+PACKAGECONFIG[oauth]    = "-DENABLE_OAUTH2_WEBKITGTK=ON -DENABLE_OAUTH2_WEBKITGTK4=OFF,-DENABLE_OAUTH2_WEBKITGTK4=OFF -DENABLE_OAUTH2_WEBKITGTK=OFF,webkitgtk3 json-glib"
 PACKAGECONFIG[goa]    = "-DENABLE_GOA=ON,-DENABLE_GOA=OFF,gnome-online-accounts"
 PACKAGECONFIG[kerberos]    = "-DWITH_KRB5=ON,-DWITH_KRB5=OFF,krb5"
 # BROKEN: due missing pkg-config in openldap eds' cmake finds host-libs when
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.1.bb
similarity index 91%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.0.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.1.bb
index 8c4b791..6aa28fc 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.1.bb
@@ -17,7 +17,7 @@
 GIR_MESON_ENABLE_FLAG = 'enabled'
 GIR_MESON_DISABLE_FLAG = 'disabled'
 
-SRC_URI[archive.sha256sum] = "d80ac70b99a7059c8f28ca0bf37305f09daeaecfceb1528d68a435ace9e8ec5d"
+SRC_URI[archive.sha256sum] = "3f1d00c4a650fe7902167648286b32c9ca4ef86e31a5d8ccca0139f12d10d0b3"
 
 PACKAGECONFIG ??= "exiv2 taglib libgsf poppler"
 PACKAGECONFIG[exiv2] = "-Dexiv2=enabled,-Dexiv2=disabled,exiv2"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb
index ca78fa0..cd14b48 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb
@@ -14,7 +14,7 @@
 PACKAGECONFIG ?= "goabackend kerberos owncloud lastfm google windows_live"
 
 # goabackend requires webkitgtk to be built with gtk+3 and gcr3
-PACKAGECONFIG[goabackend] = "-Dgoabackend=true,-Dgoabackend=false,gtk+3 gtk+3-native json-glib libxml2 libsoup rest libsecret webkitgtk"
+PACKAGECONFIG[goabackend] = "-Dgoabackend=true,-Dgoabackend=false,gtk+3 gtk+3-native json-glib libxml2 libsoup rest libsecret webkitgtk3"
 PACKAGECONFIG[kerberos] = "-Dkerberos=true, -Dkerberos=false,krb5 gcr3"
 PACKAGECONFIG[exchange] = "-Dexchange=true, -Dexchange=false"
 PACKAGECONFIG[google] = "-Dgoogle=true, -Dgoogle=false"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb b/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.4.bb
similarity index 93%
rename from meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.4.bb
index a7807c3..ac35716 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.4.bb
@@ -29,7 +29,7 @@
 
 EXTRA_OEMESON += "-Dtests=false -Dsoup2=false"
 
-SRC_URI[archive.sha256sum] = "325abb722cab20b6aa67f158ea2ff2ea899830ca0a883e24594d9def85fd1622"
+SRC_URI[archive.sha256sum] = "8b53767ef6cc54a2db588ef1c5926838b0d67b8d9b21173de5139cd0fbd28095"
 
 PACKAGECONFIG ?= "flatpak"
 PACKAGECONFIG[flatpak] = "-Dflatpak=true,-Dflatpak=false,flatpak ostree"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.12.1.bb b/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.12.2.bb
similarity index 75%
rename from meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.12.1.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.12.2.bb
index 6b65af3..389f2fd 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.12.1.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/gspell/gspell_1.12.2.bb
@@ -7,4 +7,4 @@
 
 inherit gnomebase gettext gobject-introspection vala
 
-SRC_URI[archive.sha256sum] = "8ec44f32052e896fcdd4926eb814a326e39a5047e251eec7b9056fbd9444b0f1"
+SRC_URI[archive.sha256sum] = "b4e993bd827e4ceb6a770b1b5e8950fce3be9c8b2b0cbeb22fdf992808dd2139"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb
index 200ed0f..51d51ee0 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/yelp/yelp_42.2.bb
@@ -19,7 +19,7 @@
     libxslt \
     sqlite3 \
     libhandy \
-    webkitgtk \
+    webkitgtk3 \
     yelp-xsl \
 "
 PACKAGECONFIG_SOUP ?= "soup3"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
index 8ea24ca..3548cc5 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
@@ -20,7 +20,7 @@
 SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
 
 PACKAGECONFIG ?= "webkitgtk"
-PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk"
+PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk3"
 
 PACKAGES =+ "${PN}-gdialog"
 FILES:${PN}-gdialog = "${bindir}/gdialog"
diff --git a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_056.bb b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_056.bb
index 364beec..db08fff 100644
--- a/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_056.bb
+++ b/meta-openembedded/meta-initramfs/recipes-devtools/dracut/dracut_056.bb
@@ -65,9 +65,7 @@
 # This could be optimized a bit, but let's avoid non-booting systems :)
 RRECOMMENDS:${PN} = " \
                      kernel-modules \
-                     busybox \
                      coreutils \
                     "
 
-# CVE-2010-4176 affects only Fedora
-CVE_CHECK_IGNORE += "CVE-2010-4176"
+CVE_STATUS[CVE-2010-4176] = "not-applicable-platform: Applies only to Fedora"
diff --git a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
index 88f32c8..5c7e84c 100644
--- a/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
+++ b/meta-openembedded/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
@@ -1,6 +1,5 @@
 # the binaries are statically linked against klibc
 SUMMARY = "Kexec tools, statically compiled against klibc"
-AUTHOR = "Eric Biederman"
 HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
 SECTION = "kernel/userland"
 LICENSE = "GPL-2.0-only"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.1.0.bb
similarity index 91%
rename from meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
rename to meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.1.0.bb
index 6ad376f..ece1be6 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.0.5.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.1.0.bb
@@ -12,7 +12,7 @@
         git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \
 "
 
-SRCREV = "fb44403f1c5571549ac128c21daee9761eb9249c"
+SRCREV = "960d0c1e19feaf310321c906e14bd5410c6be629"
 
 PE = "1"
 
@@ -47,7 +47,7 @@
 
 do_install:append() {
     chrpath -d ${D}${libdir}/libcamera.so
-    chrpath -d ${D}${libdir}/v4l2-compat.so
+    chrpath -d ${D}${libexecdir}/libcamera/v4l2-compat.so
 }
 
 addtask do_recalculate_ipa_signatures_package after do_package before do_packagedata
@@ -63,7 +63,7 @@
     ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}"
 }
 
-FILES:${PN} += " ${libdir}/v4l2-compat.so"
+FILES:${PN} += " ${libexecdir}/libcamera/v4l2-compat.so"
 FILES:${PN}-gst = "${libdir}/gstreamer-1.0"
 
 # libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb
new file mode 100644
index 0000000..7f531ef
--- /dev/null
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Low Complexity Communication Codec (LC3)"
+HOMEPAGE = "https://github.com/google/liblc3"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "git://github.com/google/liblc3.git;protocol=https;branch=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "1a5938ebaca4f13fe79ce074f5dee079783aa29f"
+
+inherit pkgconfig meson
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb
similarity index 91%
rename from meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb
rename to meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb
index aababb6..3fa87d0 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb
@@ -1,3 +1,4 @@
+SUMMARY = "Open Source H.264 Codec"
 DESCRIPTION = "OpenH264 is a codec library which supports H.264 encoding and \
 decoding. It is suitable for use in real time applications such as WebRTC."
 HOMEPAGE = "http://www.openh264.org/"
@@ -11,8 +12,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf"
 
 S = "${WORKDIR}/git"
-SRCREV = "50a1fcf70fafe962c526749991cb4646406933ba"
-BRANCH = "openh264v2.1.1"
+SRCREV = "0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e"
+BRANCH = "openh264v${PV}"
 SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH} \
            file://0001-Makefile-Use-cp-options-to-preserve-file-mode.patch \
            "
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
index 52a672f..9895e89 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Multimedia processing server for Linux"
-AUTHOR = "Wim Taymans <wtaymans@redhat.com>"
 HOMEPAGE = "https://pipewire.org"
 SECTION = "multimedia"
 LICENSE = "LGPL-2.1-only"
diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.73.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.77.bb
similarity index 98%
rename from meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.73.bb
rename to meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.77.bb
index b27886d..34b3720 100644
--- a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.73.bb
+++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.77.bb
@@ -13,7 +13,7 @@
 
 DEPENDS = "dbus ncurses"
 
-SRCREV = "44deacbc670ccf6c02d66a48b756a16167d8048f"
+SRCREV = "31cd694602cc37ada3a6d02a5a381f4e3933ecef"
 SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
@@ -101,6 +101,7 @@
 PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
 PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac"
 PACKAGECONFIG[bluez-opus] = "-Dbluez5-codec-opus=enabled,-Dbluez5-codec-opus=disabled,libopus"
+PACKAGECONFIG[bluez-lc3] = "-Dbluez5-codec-lc3=enabled,-Dbluez5-codec-lc3=disabled,liblc3"
 # From the pipewire git log:
 # "Some Linux phones doesn't use oFono but ModemManager to control the modem."
 # This packageconfig enables modemmanager specific code in the BlueZ backend.
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb b/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb
index 14d809f..c5499ff 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb
@@ -6,7 +6,7 @@
 
 PARALLEL_MAKE = ""
 
-DEPENDS = "libpcap libpcre libdnet bison-native"
+DEPENDS = "libpcap libpcre libdnet bison-native libnetfilter-queue"
 
 SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \
            file://disable-run-test-program-while-cross-compiling.patch \
@@ -19,7 +19,7 @@
 #
 # never look to /usr/local lib while cross compiling
 
-EXTRA_OECONF = "--disable-nfq-module --disable-ipq-module --includedir=${includedir} \
+EXTRA_OECONF = "--enable-nfq-module --disable-ipq-module --includedir=${includedir} \
     --with-libpcap-includes=${STAGING_INCDIR} --with-dnet-includes=${STAGING_LIBDIR}"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch b/meta-openembedded/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch
index 38dae20..7587d44 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch
+++ b/meta-openembedded/meta-networking/recipes-connectivity/daq/files/0001-correct-the-location-of-unistd.h.patch
@@ -1,14 +1,15 @@
-From 10e7d4e4bfcb70344d18f0d4ce36068475747f25 Mon Sep 17 00:00:00 2001
+From b7d54de51553f6d09906c355bd0dd326890c8fe4 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 29 Mar 2017 15:59:43 -0700
 Subject: [PATCH] correct the location of unistd.h
 
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
 Upstream-Status: Pending
 
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
  os-daq-modules/daq_ipfw.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ os-daq-modules/daq_nfq.c  | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/os-daq-modules/daq_ipfw.c b/os-daq-modules/daq_ipfw.c
 index 016beb0..c2a4175 100644
@@ -26,6 +27,22 @@
  
  #include <netinet/in.h>
  #include <sys/socket.h>
+diff --git a/os-daq-modules/daq_nfq.c b/os-daq-modules/daq_nfq.c
+index 33021c0..4de94b6 100644
+--- a/os-daq-modules/daq_nfq.c
++++ b/os-daq-modules/daq_nfq.c
+@@ -24,10 +24,10 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <unistd.h>
+ 
+ #include <sys/types.h>
+ #include <sys/time.h>
+-#include <sys/unistd.h>
+ 
+ #include <netinet/ip.h>
+ 
 -- 
-2.12.1
+2.25.1
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb
index 9a2bbab..e38ef2b 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb
@@ -43,10 +43,8 @@
 
 UPSTREAM_CHECK_GITTAGREGEX = "release_(?P<pver>\d+(\_\d+)+)"
 
-CVE_CHECK_IGNORE = "\
-    CVE-2002-0318 \
-    CVE-2011-4966 \
-"
+CVE_STATUS[CVE-2002-0318] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_STATUS[CVE-2011-4966] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
 PARALLEL_MAKE = ""
 
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb
index ce094d5..4626e40 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb
@@ -57,10 +57,8 @@
 
 CVE_PRODUCT = "mbed_tls"
 
-# Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310
-CVE_CHECK_IGNORE += "CVE-2021-43666"
-# Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c
-CVE_CHECK_IGNORE += "CVE-2021-45451"
+CVE_STATUS[CVE-2021-43666] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310"
+CVE_STATUS[CVE-2021-45451] = "backported-patch: Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c"
 
 # Strip host paths from autogenerated test files
 do_compile:append() {
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
index b8c9662..10fb7de 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
@@ -58,11 +58,6 @@
 
 CVE_PRODUCT = "mbed_tls"
 
-# Fix merged upstream https://github.com/Mbed-TLS/mbedtls/pull/5310
-CVE_CHECK_IGNORE += "CVE-2021-43666"
-# Fix merged upstream https://github.com/Mbed-TLS/mbedtls/commit/9a4a9c66a48edfe9ece03c7e4a53310adf73a86c
-CVE_CHECK_IGNORE += "CVE-2021-45451"
-
 # Strip host paths from autogenerated test files
 do_compile:append() {
 	sed -i 's+${S}/++g' ${B}/tests/*.c 2>/dev/null || :
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund_git.bb b/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund_git.bb
index a7fcc20..ebb3fc3 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund_git.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/openthread/wpantund_git.bb
@@ -22,11 +22,8 @@
 
 inherit pkgconfig perlnative autotools
 
-# CVE-2020-8916 has been fixed in commit
-# 3f108441e23e033b936e85be5b6877dd0a1fbf1c which is included in the SRCREV
-# CVE-2021-33889 has been fixed in commit
-# a8f3f761f6753b567d1e5ad22cbe6b0ceb6f2649 which is included in the SRCREV
 # There has not been a wpantund release as of yet that includes these fixes.
 # That means cve-check can not match them. Once a new release comes we can
-# remove the ignore statement.
-CVE_CHECK_IGNORE = "CVE-2020-8916 CVE-2021-33889"
+# remove the statement.
+CVE_STATUS[CVE-2020-8916] = "backported-patch: fixed via 3f108441e23e033b936e85be5b6877dd0a1fbf1c"
+CVE_STATUS[CVE-2021-33889] = "backported-patch: fixed via 3f108441e23e033b936e85be5b6877dd0a1fbf1c"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb b/meta-openembedded/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
index 03eff43..9239bd8 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
@@ -2,7 +2,6 @@
 DESCRIPTION = "Cross-platform, efficient, customizable, and robust \
                asynchronous HTTP/WebSocket server C++14 library with the \
                right balance between performance and ease of use"
-AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
 HOMEPAGE = "https://stiffstream.com/en/products/restinio.html"
 SECTION = "libs"
 LICENSE = "BSD-3-Clause"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.4.bb b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.5.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.4.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.5.bb
index 66089ed..9d8802f 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.4.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/samba/samba_4.18.5.bb
@@ -32,18 +32,13 @@
            file://cmocka-uintptr_t.patch \
            "
 
-SRC_URI[sha256sum] = "6ba7b3503cc59c9ff4f6fcb1b510c2c855fff93e0b366ab891a32a4732e88e53"
+SRC_URI[sha256sum] = "095256ac332e1d9fbf9b7ff7823f92a3233d3ed658ce7fc9b33905c2243f447f"
 
 UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.18(\.\d+)+).tar.gz"
 
 inherit systemd waf-samba cpan-base perlnative update-rc.d perl-version pkgconfig
 
-# CVE-2011-2411 is valnerble only on HP NonStop Servers.
-CVE_CHECK_IGNORE += "CVE-2011-2411" 
-# Patch for CVE-2018-1050 is applied in version 4.5.15, 4.6.13, 4.7.5.
-CVE_CHECK_IGNORE += "CVE-2018-1050"
-# Patch for CVE-2018-1057 is applied in version 4.3.13, 4.4.16.
-CVE_CHECK_IGNORE += "CVE-2018-1057"
+CVE_STATUS[CVE-2011-2411] = "not-applicable-platform: vulnerable only on HP NonStop Servers"
 
 # remove default added RDEPENDS on perl
 RDEPENDS:${PN}:remove = "perl"
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb b/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
index adc2a72..fe9c038 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
@@ -1,6 +1,5 @@
 SUMMARY = "A client for the Cisco3000 VPN Concentrator"
 HOMEPAGE = "http://www.unix-ag.uni-kl.de/~massar/vpnc/"
-AUTHOR = "Maurice Massar vpnc@unix-ag.uni-kl.de"
 SECTION = "net"
 LICENSE = "GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=173b74cb8ac640a9992c03f3bce22a33"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb b/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb
index a83dad3..65bf91c 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb
@@ -2,7 +2,6 @@
 DESCRIPTION = "This daemon is similar to NetworkManager-dispatcher, but is much \
 more limited in the types of events it supports due to the limited nature of \
 systemd-networkd(8)."
-AUTHOR = "Clayton Craft and others"
 
 LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
diff --git a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.19.bb b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.19.bb
index f9f810a..36c921a 100644
--- a/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.19.bb
+++ b/meta-openembedded/meta-networking/recipes-daemons/radvd/radvd_2.19.bb
@@ -61,6 +61,7 @@
 }
 
 USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system nogroup"
 USERADD_PARAM:${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd"
 
 pkg_postinst:${PN} () {
diff --git a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb
index 094dbb1..ee006ef 100644
--- a/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb
+++ b/meta-openembedded/meta-networking/recipes-extended/dlm/dlm_4.2.0.bb
@@ -39,6 +39,7 @@
 CFPROTECTION ?= "-fcf-protection=full"
 CFPROTECTION:riscv64 = ""
 CFPROTECTION:arm = ""
+CFPROTECTION:aarch64 = ""
 
 CFLAGS += "${CFPROTECTION}"
 
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
index 580c29e..301dd86 100644
--- a/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
@@ -14,3 +14,5 @@
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.2.bb b/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.2.bb
index a43c345..2778185 100644
--- a/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.2.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/libnfnetlink/libnfnetlink_1.0.2.bb
@@ -18,3 +18,5 @@
 SRC_URI[sha256sum] = "b064c7c3d426efb4786e60a8e6859b82ee2f2c5e49ffeea640cfe4fe33cbc376"
 
 inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.5.bb b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.6.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.5.bb
rename to meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.6.bb
index 380a330..841a726 100644
--- a/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.5.bb
+++ b/meta-openembedded/meta-networking/recipes-filter/libnftnl/libnftnl_1.2.6.bb
@@ -7,7 +7,7 @@
            file://0001-configure.ac-Add-serial-tests.patch \
            file://run-ptest \
            "
-SRCREV = "c62bef65fef638452b4ed1893c2451fc253ca7ca"
+SRCREV = "83dd4dc316b4189d16ead54cd30bfc89e5160cfd"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.1.bb b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.2.bb
similarity index 93%
rename from meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.1.bb
rename to meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.2.bb
index 00472e2..8f1e06f 100644
--- a/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.1.bb
+++ b/meta-openembedded/meta-networking/recipes-irc/weechat/weechat_4.0.2.bb
@@ -10,7 +10,7 @@
            file://0001-use-pkg-config-for-gcrypt-instead.patch \
            "
 
-SRC_URI[sha256sum] = "1b9533123af427922b3d7fabede958dc85392d50881d97d0b7986d8f514556e9"
+SRC_URI[sha256sum] = "0e648ee0d024c8099425ee60d41b272924ec8e19800ee8f1441090708834023c"
 
 inherit cmake pkgconfig
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.12.2.bb b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.13.1.bb
similarity index 94%
rename from meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.12.2.bb
rename to meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.13.1.bb
index 03db5fc..a799ad1 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.12.2.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/babeld/babeld_1.13.1.bb
@@ -13,7 +13,7 @@
 LIC_FILES_CHKSUM = "file://LICENCE;md5=411a48ac3c2e9e0911b8dd9aed26f754"
 
 SRC_URI = "gitsm://github.com/jech/babeld.git;protocol=https;branch=master"
-SRCREV = "a9fba0e19ebde96cdc4edd35c5363f9e8139ab35"
+SRCREV = "3d61ea1e843e2c5f9706c74d1adad4e1d24d44b9"
 
 UPSTREAM_CHECK_GITTAGREGEX = "babeld-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb
index 46f1b70..aff7954 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb
@@ -46,18 +46,16 @@
 
 CVE_PRODUCT = "apple:mdnsresponder"
 
-# CVE-2007-0613 is not applicable as it only affects Apple products
-# i.e. ichat,mdnsresponder, instant message framework and MacOS.
-# Also, https://www.exploit-db.com/exploits/3230 shows the part of code
-# affected by CVE-2007-0613 which is not preset in upstream source code.
-# Hence, CVE-2007-0613 does not affect other Yocto implementations and
-# is not reported for other distros can be marked whitelisted.
-# Links:
-# https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613
-# https://www.incibe-cert.es/en/early-warning/vulnerabilities/cve-2007-0613
-# https://security-tracker.debian.org/tracker/CVE-2007-0613
-# https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613
-CVE_CHECK_IGNORE += "CVE-2007-0613"
+CVE_STATUS[CVE-2007-0613] = "not-applicable-platform: Issue affects Apple products \
+i.e. ichat,mdnsresponder, instant message framework and MacOS. Also, \
+https://www.exploit-db.com/exploits/3230 shows the part of code \
+affected by CVE-2007-0613 which is not preset in upstream source code. \
+Hence, CVE-2007-0613 does not affect other Yocto implementations and \
+is not reported for other distros can be marked whitelisted. \
+Links: https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613 \
+https://www.incibe-cert.es/en/early-warning/vulnerabilities/cve-2007-0613 \
+https://security-tracker.debian.org/tracker/CVE-2007-0613 \
+https://vulmon.com/vulnerabilitydetails?qid=CVE-2007-0613"
 
 PARALLEL_MAKE = ""
 
diff --git a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
index aaad0e0..7062d21 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
+++ b/meta-openembedded/meta-networking/recipes-protocols/openflow/openflow.inc
@@ -13,10 +13,10 @@
 
 SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git;branch=master"
 
-CVE_CHECK_IGNORE = "\
-    CVE-2015-1611 \
-    CVE-2015-1612 \
-"
+CVE_STATUS[CVE-2015-1611] = "not-applicable-config: Not referred to our implementation of openflow"
+CVE_STATUS[CVE-2015-1612] = "not-applicable-config: Not referred to our implementation of openflow"
+CVE_STATUS[CVE-2018-1078] = "cpe-incorrect: This CVE is not for this product but cve-check assumes it is \
+because two CPE collides when checking the NVD database"
 
 DEPENDS = "virtual/libc"
 
@@ -58,7 +58,3 @@
 }
 
 FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
-
-# This CVE is not for this product but cve-check assumes it is
-# because two CPE collides when checking the NVD database
-CVE_CHECK_IGNORE = "CVE-2018-1078"
diff --git a/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb b/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
index 0b9e05b..c53d1b8 100644
--- a/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
+++ b/meta-openembedded/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
@@ -7,7 +7,6 @@
 are normally attached to each Ethernet device in your computer. \
 Addresses are assigned randomly by each host and, in case of collision, \
 both hosts (are supposed to) renumber."
-AUTHOR = "Anand Kumria <wildfire@progsoc.uts.edu.au>"
 HOMEPAGE = "http://www.progsoc.org/~wildfire/zeroconf/"
 LICENSE = "GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
diff --git a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb
index 01e060e..e41dd93 100644
--- a/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb
+++ b/meta-openembedded/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb
@@ -71,5 +71,4 @@
 FILES:${PN}-dev += "${libdir}/dovecot/libdovecot*.so"
 FILES:${PN}-dbg += "${libdir}/dovecot/*/.debug"
 
-# CVE-2016-4983 affects only postinstall script on specific distribution
-CVE_CHECK_IGNORE += "CVE-2016-4983"
+CVE_STATUS[CVE-2016-4983] = "not-applicable-platform: Affects only postinstall script on specific distribution."
diff --git a/meta-openembedded/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb b/meta-openembedded/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
index d4f7685..528289b 100644
--- a/meta-openembedded/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
+++ b/meta-openembedded/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
@@ -6,7 +6,6 @@
               interrupted at anytime. Depending on your architecture, it \
               only requires about 40 bytes of data per message stream (in a \
               web server that is per connection)."
-AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
 HOMEPAGE = "https://github.com/nodejs/http-parser"
 SECTION = "libs"
 LICENSE = "MIT"
diff --git a/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.2.0.bb b/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.3.0.bb
similarity index 100%
rename from meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.2.0.bb
rename to meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.3.0.bb
diff --git a/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools.inc b/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
index 46d0c1b..942b2d4 100644
--- a/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
+++ b/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
@@ -5,4 +5,4 @@
 LIC_FILES_CHKSUM = "file://${WORKDIR}/git/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 SRC_URI = "git://github.com/wkz/mdio-tools.git;protocol=https;branch=master"
-SRCREV = "0dbfca13a094d20d736153c63161cf11b9ccf2d3"
+SRCREV = "42c91efa63ef81992cdcc01e698cf3bc7764bbc3"
diff --git a/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools_1.2.0.bb b/meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools_1.3.0.bb
similarity index 100%
rename from meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools_1.2.0.bb
rename to meta-openembedded/meta-networking/recipes-support/mdio-tools/mdio-tools_1.3.0.bb
diff --git a/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb
index fba4611..e80ea4c 100644
--- a/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb
+++ b/meta-openembedded/meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb
@@ -26,12 +26,11 @@
 
 SRC_URI[sha256sum] = "103dd272e6a66c5b8df07dce5e9a02555fcd6f1397bdfb782237328e89d3a866"
 
-# CVE-2016-9312 is only for windows.
-# CVE-2019-11331 is inherent to RFC 5905 and cannot be fixed without breaking compatibility
-# The other CVEs are not correctly identified because cve-check
-# is not able to check the version correctly (it only checks for 4.2.8 omitting p15 that makes the difference)
-CVE_CHECK_IGNORE += "\
-    CVE-2016-9312 \
+CVE_STATUS[CVE-2016-9312] = "not-applicable-platform: Issue only applies on Windows"
+CVE_STATUS[CVE-2019-11331] = "upstream-wontfix: inherent to RFC 5905 and cannot be fixed without breaking compatibility"
+CVE_STATUS_GROUPS += "CVE_STATUS_NTP"
+CVE_STATUS_NTP[status] = "fixed-version: Yocto CVE check can not handle 'p' in ntp version"
+CVE_STATUS_NTP = " \
     CVE-2015-5146 \
     CVE-2015-5300 \
     CVE-2015-7975 \
@@ -51,7 +50,6 @@
     CVE-2016-7433 \
     CVE-2016-9310 \
     CVE-2016-9311 \
-    CVE-2019-11331 \
 "
 
 
diff --git a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb
index e12e4be..4873e9d 100644
--- a/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb
+++ b/meta-openembedded/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb
@@ -119,3 +119,5 @@
     if 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
         raise bb.parse.SkipRecipe('Requires meta-filesystems to be present to provide fuse.')
 }
+
+CVE_PRODUCT = "open-vm-tools vmware:tools"
diff --git a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb
index 76bce7d..a5fc158 100644
--- a/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb
+++ b/meta-openembedded/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb
@@ -16,8 +16,7 @@
 
 SRC_URI[sha256sum] = "13b207a376d8880507c74ff78aabc3778a9da47c89f1e247dcee3c7237138ff6"
 
-# CVE-2020-7224 and CVE-2020-27569 are for Aviatrix OpenVPN client, not for openvpn.
-CVE_CHECK_IGNORE += "CVE-2020-7224 CVE-2020-27569"
+CVE_STATUS[CVE-2020-27569] = "not-applicable-config: Applies only Aviatrix OpenVPN client, not openvpn"
 
 INITSCRIPT_PACKAGES = "${PN}"
 INITSCRIPT_NAME:${PN} = "openvpn"
diff --git a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_46.0.bb b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_47.0.bb
similarity index 95%
rename from meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_46.0.bb
rename to meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_47.0.bb
index a6927f5..ac41743 100644
--- a/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_46.0.bb
+++ b/meta-openembedded/meta-networking/recipes-support/rdma-core/rdma-core_47.0.bb
@@ -7,7 +7,7 @@
 
 SRC_URI = "git://github.com/linux-rdma/rdma-core.git;branch=master;protocol=https \
            file://0001-cmake-Allow-SYSTEMCTL_BIN-to-be-overridden-from-envi.patch"
-SRCREV = "f2789cbd394c5839e8942d585a494ab72fd97e39"
+SRCREV = "ccb120cc7b7faceca90cfa55189a1b35b0adc78d"
 S = "${WORKDIR}/git"
 
 #Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md
diff --git a/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb
index b3e6874..5732f50 100644
--- a/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb
+++ b/meta-openembedded/meta-networking/recipes-support/spice/spice_git.bb
@@ -30,11 +30,7 @@
 
 S = "${WORKDIR}/git"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2016-0749 \
-    CVE-2016-2150 \
-    CVE-2018-10893 \
-"
+CVE_STATUS[CVE-2018-10893] = "fixed-version: patched already, caused by inaccurate CPE in the NVD database."
 
 inherit autotools gettext python3native python3-dir pkgconfig
 
diff --git a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_4.0.6.bb b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_4.0.7.bb
similarity index 97%
rename from meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_4.0.6.bb
rename to meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_4.0.7.bb
index f822dce..d7df76a 100644
--- a/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_4.0.6.bb
+++ b/meta-openembedded/meta-networking/recipes-support/wireshark/wireshark_4.0.7.bb
@@ -17,7 +17,7 @@
 
 UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
 
-SRC_URI[sha256sum] = "0079097a1b17ebc7250a73563f984c13327dac5016b7d53165810fbcca4bd884"
+SRC_URI[sha256sum] = "a79f7b04cbff823e30452abf4bcb86773d8583eb62d5f71f16c09f019f8a8777"
 
 PE = "1"
 
diff --git a/meta-openembedded/meta-oe/classes/image_types_sparse.bbclass b/meta-openembedded/meta-oe/classes/image_types_sparse.bbclass
index 69e24cb..d6ea689 100644
--- a/meta-openembedded/meta-oe/classes/image_types_sparse.bbclass
+++ b/meta-openembedded/meta-oe/classes/image_types_sparse.bbclass
@@ -8,9 +8,10 @@
 SPARSE_BLOCK_SIZE ??= "4096"
 
 CONVERSIONTYPES += "sparse"
-CONVERSION_CMD:sparse() {
-    INPUT="${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}"
-    truncate --no-create --size=%${SPARSE_BLOCK_SIZE} "$INPUT"
-    img2simg -s "$INPUT" "$INPUT.sparse" ${SPARSE_BLOCK_SIZE}
-}
+
+CONVERSION_CMD:sparse = " \
+    truncate --no-create --size=%${SPARSE_BLOCK_SIZE} "${IMAGE_NAME}.${type}"; \
+    img2simg -s "${IMAGE_NAME}.${type}" "${IMAGE_NAME}.${type}.sparse" ${SPARSE_BLOCK_SIZE}; \
+ "
+
 CONVERSION_DEPENDS_sparse = "android-tools-native"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
index 90d6880..ac197a6 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Openbox configuration tool"
-AUTHOR = "Siegfried Gevatter"
 HOMEPAGE = "https://launchpad.net/openbox-xdgmenu/"
 SECTION = "x11/wm"
 LICENSE = "GPL-3.0-or-later"
diff --git a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
index 550fbc3..0ce58b1 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
@@ -50,11 +50,8 @@
 
 S = "${WORKDIR}/git"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2014-8180 \
-    CVE-2017-18381 \
-    CVE-2017-2665 \
-"
+CVE_STATUS[CVE-2014-8180] = "not-applicable-config: Not affecting our configuration so it can be safely ignored."
+CVE_STATUS[CVE-2017-2665] = "not-applicable-config: Not affecting our configuration so it can be safely ignored."
 
 COMPATIBLE_HOST ?= '(x86_64|i.86|powerpc64|arm|aarch64).*-linux'
 
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_506.bb b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_506.bb
index 3b6df0b..5a1306b 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_506.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_506.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Filesystem and Disk Benchmarking Tool"
 HOMEPAGE = "http://www.iozone.org/"
-AUTHOR = "Don Capps <don.capps2@verizon.net>, William D. Norcott <wnorcott@us.oracle.com>"
 SECTION = "console/tests"
 LICENSE = "iozone3"
 LIC_FILES_CHKSUM = "file://iozone.c;beginline=37;endline=48;md5=7331260091868dcad0f9edea735b5f4b \
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.13.bb b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb
similarity index 84%
rename from meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.13.bb
rename to meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb
index 62a95b3..13f620f 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.13.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb
@@ -8,7 +8,6 @@
 HOMEPAGE = "http://software.es.net/iperf/"
 SECTION = "console/network"
 BUGTRACKER = "https://github.com/esnet/iperf/issues"
-AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
 
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=dc6301c8256ceb8f71c9e3c2ae9096b9"
@@ -18,7 +17,7 @@
            file://0001-configure.ac-check-for-CPP-prog.patch \
            "
 
-SRCREV = "f48e7fa92b8932814f3d92f36986d51be9efe6e0"
+SRCREV = "a0be85934144bc04712a6695b14ea6e45c379e1d"
 
 S = "${WORKDIR}/git"
 
@@ -30,5 +29,3 @@
 PACKAGECONFIG[openssl] = "--with-openssl=${RECIPE_SYSROOT}${prefix},--without-openssl,openssl"
 
 CFLAGS += "-D_GNU_SOURCE"
-
-CVE_PRODUCT = "iperf_project:iperf"
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb b/meta-openembedded/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb
index 9722323..b32f371 100644
--- a/meta-openembedded/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb
+++ b/meta-openembedded/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb
@@ -1,7 +1,6 @@
 SUMMARY = "Measure socket and RDMA performance"
 DESCRIPTION = "qperf measures bandwidth and latency between two nodes."
 HOMEPAGE = "https://github.com/linux-rdma/qperf"
-AUTHOR = "Johann George"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
diff --git a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.5.bb
similarity index 63%
rename from meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb
rename to meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.5.bb
index 1055fa4..492de65 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_1.13.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.5.bb
@@ -1,23 +1,20 @@
 SUMMARY = "NVMe management command line interface"
-AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
 HOMEPAGE = "https://github.com/linux-nvme/nvme-cli"
 SECTION = "console/utils"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8264535c0c4e9c6c335635c4026a8022"
-DEPENDS = "util-linux"
-PV .= "+git${SRCPV}"
+LICENSE = "GPL-2.0-only & CC0-1.0 & MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8264535c0c4e9c6c335635c4026a8022 \
+                    file://ccan/licenses/CC0;md5=c17af43b05840255a6fedc5eda9d56cc \
+                    file://ccan/licenses/BSD-MIT;md5=838c366f69b72c5df05c96dff79b35f2"
+DEPENDS = "json-c libnvme"
+SRCREV = "d6c07e0de9be777009ebb9ab7475bee1ae3e0e95"
 
 SRC_URI = "git://github.com/linux-nvme/nvme-cli.git;branch=master;protocol=https"
-SRCREV = "f0e9569df9289d6ee55ba2c23615cc7c73a9b088"
 
 S = "${WORKDIR}/git"
 
-inherit bash-completion systemd
+inherit bash-completion meson pkgconfig systemd
 
-do_install() {
-    oe_runmake install-spec DESTDIR=${D} PREFIX=${prefix} \
-        UDEVDIR=${nonarch_base_libdir}/udev SYSTEMDDIR=${systemd_unitdir}
-}
+EXTRA_OEMESON += "-Dsystemddir=${systemd_unitdir}/system"
 
 pkg_postinst_ontarget:${PN}() {
     ${sbindir}/nvme gen-hostnqn > ${sysconfdir}/nvme/hostnqn
diff --git a/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
index 42dfcd1..52e9b13 100644
--- a/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
+++ b/meta-openembedded/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
@@ -28,11 +28,10 @@
 export udevdir = "`pkg-config --variable=udevdir udev`"
 export udevrulesdir = "`pkg-config --variable=udevdir udev`/rules.d"
 export UDEV = "1"
-LD = "${CC}"
 CFLAGS =+ "-I${S}/src"
 CFLAGS =+ "-DPCMCIAUTILS_VERSION=\\"${PV}\\""
 
-EXTRA_OEMAKE = "-e 'STRIP=echo' 'LIB_OBJS=-lc -lsysfs' 'LEX=flex'"
+EXTRA_OEMAKE = "-e 'STRIP=echo' 'LIB_OBJS=-lc -lsysfs' 'LEX=flex' 'LD=${CC}'"
 
 do_install () {
 	oe_runmake 'DESTDIR=${D}' install
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.7.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.6.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.7.bb
index 85160bc..c3ba96f 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gensio/gensio_2.6.7.bb
@@ -5,7 +5,7 @@
                     file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     "
 
-SRCREV = "536db06723bd3cde8e1f2d52a5cdd65af2433784"
+SRCREV = "266277aeb39dc2db33e577335236f89ed7ca5918"
 
 SRC_URI = "git://github.com/cminyard/gensio;protocol=https;branch=master"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.6.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.7.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.6.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.7.bb
index 64d6232..f4e7089 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.6.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_2.7.bb
@@ -8,7 +8,7 @@
 SRC_URI = "https://www.kernel.org/pub/linux/network/wireless/${BP}.tar.xz \
            file://0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch \
            "
-SRC_URI[sha256sum] = "f7ac93aeef672604f5b5194ca038035ae222925be392c4345873c9742f477797"
+SRC_URI[sha256sum] = "289ff47a76fb854e7789c45c5e3e0f15de4adc5fd2e82e47ab08e3564d8961d9"
 
 inherit autotools manpages pkgconfig python3native systemd
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
index 50096cf..fec0557 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
@@ -9,9 +9,7 @@
 SRC_URI = "git://github.com/rakshasa/libtorrent;branch=master;protocol=https"
 SRCREV = "e60f222241319aaae482789517ad00ae9344bd13"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2009-1760 \
-"
+CVE_STATUS[CVE-2009-1760] = "backported-patch: patched in our product"
 
 PV = "0.13.8+git${SRCPV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.12.bb b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.13.bb
similarity index 71%
rename from meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.12.bb
rename to meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.13.bb
index e38d9ed..a4c244d 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.12.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.13.bb
@@ -3,13 +3,13 @@
 HOMEPAGE = "http://sourceforge.net/projects/ser2net/"
 
 LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
 DEPENDS = "gensio libyaml"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "6101bdf937716be9b019c721b28b45d21efddd1ec19ac935aad351c55bd6f83d"
+SRC_URI[sha256sum] = "ed8b98448d535111d9a593b067601a8b53e2874814d706b2421a9490a660d265"
 
 UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
 
diff --git a/meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb b/meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb
index 05fa0c3..03c895f 100644
--- a/meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb
+++ b/meta-openembedded/meta-oe/recipes-core/emlog/emlog_git.bb
@@ -25,11 +25,9 @@
 
 RRECOMMENDS:${PN} += "kernel-module-emlog"
 
-# The NVD database doesn't have a CPE for this product,
-# the name of this product is exactly the same as github.com/emlog/emlog
-# but it's not related in any way. The following CVEs are from that project
-# so they can be safely ignored
-CVE_CHECK_IGNORE += "\
+CVE_STATUS_GROUPS += "CVE_STATUS_EMLOG"
+CVE_STATUS_EMLOG[status] = "fixed-version: The name of this product is exactly the same as github.com/emlog/emlog. CVE can be safely ignored."
+CVE_STATUS_EMLOG = " \
     CVE-2019-16868 \
     CVE-2019-17073 \
     CVE-2021-44584 \
diff --git a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
index 55b9c1a..39269d7 100644
--- a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
+++ b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
@@ -2,12 +2,10 @@
 
 # from Cargo.lock
 SRC_URI += " \
-    crate://crates.io/Inflector/0.11.4 \
     crate://crates.io/adler/1.0.2 \
     crate://crates.io/ahash/0.7.6 \
     crate://crates.io/aho-corasick/0.7.19 \
     crate://crates.io/aho-corasick/1.0.1 \
-    crate://crates.io/aliasable/0.1.3 \
     crate://crates.io/android-tzdata/0.1.1 \
     crate://crates.io/android_system_properties/0.1.5 \
     crate://crates.io/anstream/0.3.2 \
@@ -18,18 +16,18 @@
     crate://crates.io/arrayref/0.3.6 \
     crate://crates.io/arrayvec/0.7.2 \
     crate://crates.io/autocfg/1.1.0 \
-    crate://crates.io/bigdecimal/0.3.0 \
+    crate://crates.io/bigdecimal/0.4.0 \
     crate://crates.io/binary-heap-plus/0.5.0 \
     crate://crates.io/bindgen/0.63.0 \
     crate://crates.io/bitflags/1.3.2 \
     crate://crates.io/blake2b_simd/1.0.1 \
-    crate://crates.io/blake3/1.3.3 \
+    crate://crates.io/blake3/1.4.0 \
     crate://crates.io/block-buffer/0.10.3 \
-    crate://crates.io/bstr/1.5.0 \
+    crate://crates.io/bstr/1.6.0 \
     crate://crates.io/bumpalo/3.11.1 \
     crate://crates.io/bytecount/0.6.3 \
     crate://crates.io/byteorder/1.4.3 \
-    crate://crates.io/cc/1.0.77 \
+    crate://crates.io/cc/1.0.79 \
     crate://crates.io/cexpr/0.6.0 \
     crate://crates.io/cfg-if/1.0.0 \
     crate://crates.io/chrono/0.4.26 \
@@ -39,10 +37,11 @@
     crate://crates.io/clap_complete/4.3.0 \
     crate://crates.io/clap_lex/0.5.0 \
     crate://crates.io/clap_mangen/0.2.9 \
-    crate://crates.io/codespan-reporting/0.11.1 \
     crate://crates.io/colorchoice/1.0.0 \
     crate://crates.io/compare/0.1.0 \
     crate://crates.io/console/0.15.7 \
+    crate://crates.io/const-random/0.1.15 \
+    crate://crates.io/const-random-macro/0.1.15 \
     crate://crates.io/constant_time_eq/0.2.4 \
     crate://crates.io/conv/0.3.3 \
     crate://crates.io/core-foundation-sys/0.8.3 \
@@ -61,25 +60,20 @@
     crate://crates.io/crossterm_winapi/0.9.0 \
     crate://crates.io/crunchy/0.2.2 \
     crate://crates.io/crypto-common/0.1.6 \
-    crate://crates.io/ctor/0.1.26 \
     crate://crates.io/ctrlc/3.4.0 \
     crate://crates.io/custom_derive/0.1.7 \
-    crate://crates.io/cxx/1.0.82 \
-    crate://crates.io/cxx-build/1.0.82 \
-    crate://crates.io/cxxbridge-flags/1.0.82 \
-    crate://crates.io/cxxbridge-macro/1.0.82 \
     crate://crates.io/data-encoding/2.4.0 \
     crate://crates.io/data-encoding-macro/0.1.13 \
     crate://crates.io/data-encoding-macro-internal/0.1.11 \
     crate://crates.io/diff/0.1.13 \
     crate://crates.io/digest/0.10.7 \
-    crate://crates.io/dlv-list/0.3.0 \
+    crate://crates.io/dlv-list/0.5.0 \
     crate://crates.io/dns-lookup/2.0.2 \
     crate://crates.io/dunce/1.0.4 \
     crate://crates.io/either/1.8.0 \
     crate://crates.io/encode_unicode/0.3.6 \
     crate://crates.io/env_logger/0.8.4 \
-    crate://crates.io/errno/0.3.0 \
+    crate://crates.io/errno/0.3.1 \
     crate://crates.io/errno-dragonfly/0.1.2 \
     crate://crates.io/exacl/0.10.0 \
     crate://crates.io/fastrand/1.8.0 \
@@ -90,7 +84,8 @@
     crate://crates.io/fs_extra/1.3.0 \
     crate://crates.io/fsevent-sys/4.1.0 \
     crate://crates.io/fts-sys/0.2.4 \
-    crate://crates.io/fundu/0.5.1 \
+    crate://crates.io/fundu/1.2.0 \
+    crate://crates.io/fundu-core/0.2.0 \
     crate://crates.io/futures/0.3.25 \
     crate://crates.io/futures-channel/0.3.25 \
     crate://crates.io/futures-core/0.3.25 \
@@ -103,25 +98,24 @@
     crate://crates.io/futures-util/0.3.25 \
     crate://crates.io/gcd/2.3.0 \
     crate://crates.io/generic-array/0.14.6 \
-    crate://crates.io/getrandom/0.2.8 \
+    crate://crates.io/getrandom/0.2.9 \
     crate://crates.io/glob/0.3.1 \
     crate://crates.io/half/2.2.1 \
     crate://crates.io/hashbrown/0.12.3 \
-    crate://crates.io/hermit-abi/0.1.19 \
-    crate://crates.io/hermit-abi/0.3.1 \
+    crate://crates.io/hashbrown/0.13.2 \
+    crate://crates.io/hermit-abi/0.3.2 \
     crate://crates.io/hex/0.4.3 \
     crate://crates.io/hex-literal/0.4.1 \
     crate://crates.io/hostname/0.3.1 \
-    crate://crates.io/humantime_to_duration/0.2.1 \
     crate://crates.io/iana-time-zone/0.1.53 \
-    crate://crates.io/iana-time-zone-haiku/0.1.1 \
+    crate://crates.io/iana-time-zone-haiku/0.1.2 \
     crate://crates.io/indicatif/0.17.3 \
     crate://crates.io/inotify/0.9.6 \
     crate://crates.io/inotify-sys/0.1.5 \
     crate://crates.io/instant/0.1.12 \
     crate://crates.io/io-lifetimes/1.0.11 \
     crate://crates.io/is-terminal/0.4.7 \
-    crate://crates.io/itertools/0.10.5 \
+    crate://crates.io/itertools/0.11.0 \
     crate://crates.io/itoa/1.0.4 \
     crate://crates.io/js-sys/0.3.60 \
     crate://crates.io/keccak/0.1.4 \
@@ -129,61 +123,58 @@
     crate://crates.io/kqueue-sys/1.0.3 \
     crate://crates.io/lazy_static/1.4.0 \
     crate://crates.io/lazycell/1.3.0 \
-    crate://crates.io/libc/0.2.144 \
+    crate://crates.io/libc/0.2.147 \
     crate://crates.io/libloading/0.7.4 \
-    crate://crates.io/link-cplusplus/1.0.7 \
+    crate://crates.io/libm/0.2.7 \
     crate://crates.io/linux-raw-sys/0.1.4 \
-    crate://crates.io/linux-raw-sys/0.3.0 \
+    crate://crates.io/linux-raw-sys/0.3.8 \
     crate://crates.io/lock_api/0.4.9 \
     crate://crates.io/log/0.4.17 \
     crate://crates.io/lscolors/0.14.0 \
     crate://crates.io/match_cfg/0.1.0 \
     crate://crates.io/md-5/0.10.5 \
     crate://crates.io/memchr/2.5.0 \
-    crate://crates.io/memmap2/0.6.0 \
+    crate://crates.io/memmap2/0.7.0 \
     crate://crates.io/memoffset/0.8.0 \
     crate://crates.io/minimal-lexical/0.2.1 \
     crate://crates.io/miniz_oxide/0.5.4 \
     crate://crates.io/mio/0.8.6 \
     crate://crates.io/nix/0.26.2 \
     crate://crates.io/nom/7.1.3 \
-    crate://crates.io/notify/6.0.0 \
+    crate://crates.io/notify/6.0.1 \
     crate://crates.io/nu-ansi-term/0.47.0 \
     crate://crates.io/num-bigint/0.4.3 \
     crate://crates.io/num-integer/0.1.45 \
     crate://crates.io/num-traits/0.2.15 \
-    crate://crates.io/num_cpus/1.14.0 \
+    crate://crates.io/num_cpus/1.16.0 \
     crate://crates.io/num_threads/0.1.6 \
     crate://crates.io/number_prefix/0.4.0 \
-    crate://crates.io/once_cell/1.17.2 \
+    crate://crates.io/once_cell/1.18.0 \
     crate://crates.io/onig/6.4.0 \
     crate://crates.io/onig_sys/69.8.1 \
-    crate://crates.io/ordered-multimap/0.4.3 \
+    crate://crates.io/ordered-multimap/0.6.0 \
     crate://crates.io/os_display/0.1.3 \
-    crate://crates.io/ouroboros/0.15.6 \
-    crate://crates.io/ouroboros_macro/0.15.6 \
-    crate://crates.io/output_vt100/0.1.3 \
     crate://crates.io/parking_lot/0.12.1 \
     crate://crates.io/parking_lot_core/0.9.7 \
+    crate://crates.io/parse_datetime/0.4.0 \
     crate://crates.io/peeking_take_while/0.1.2 \
-    crate://crates.io/phf/0.11.1 \
-    crate://crates.io/phf_codegen/0.11.1 \
+    crate://crates.io/phf/0.11.2 \
+    crate://crates.io/phf_codegen/0.11.2 \
     crate://crates.io/phf_generator/0.11.1 \
-    crate://crates.io/phf_shared/0.11.1 \
+    crate://crates.io/phf_shared/0.11.2 \
     crate://crates.io/pin-project-lite/0.2.9 \
     crate://crates.io/pin-utils/0.1.0 \
     crate://crates.io/pkg-config/0.3.26 \
-    crate://crates.io/platform-info/2.0.1 \
+    crate://crates.io/platform-info/2.0.2 \
     crate://crates.io/portable-atomic/0.3.15 \
     crate://crates.io/ppv-lite86/0.2.17 \
-    crate://crates.io/pretty_assertions/1.3.0 \
-    crate://crates.io/proc-macro-error/1.0.4 \
-    crate://crates.io/proc-macro-error-attr/1.0.4 \
-    crate://crates.io/proc-macro2/1.0.47 \
+    crate://crates.io/pretty_assertions/1.4.0 \
+    crate://crates.io/proc-macro-hack/0.5.20+deprecated \
+    crate://crates.io/proc-macro2/1.0.63 \
     crate://crates.io/procfs/0.15.1 \
     crate://crates.io/quick-error/2.0.1 \
     crate://crates.io/quickcheck/1.0.3 \
-    crate://crates.io/quote/1.0.21 \
+    crate://crates.io/quote/1.0.29 \
     crate://crates.io/rand/0.8.5 \
     crate://crates.io/rand_chacha/0.3.1 \
     crate://crates.io/rand_core/0.6.4 \
@@ -193,27 +184,28 @@
     crate://crates.io/redox_syscall/0.2.16 \
     crate://crates.io/redox_syscall/0.3.5 \
     crate://crates.io/reference-counted-singleton/0.1.2 \
-    crate://crates.io/regex/1.8.3 \
-    crate://crates.io/regex-automata/0.1.10 \
-    crate://crates.io/regex-syntax/0.7.2 \
-    crate://crates.io/rlimit/0.9.1 \
+    crate://crates.io/regex/1.9.1 \
+    crate://crates.io/regex-automata/0.3.1 \
+    crate://crates.io/regex-syntax/0.7.3 \
+    crate://crates.io/relative-path/1.8.0 \
+    crate://crates.io/rlimit/0.10.0 \
     crate://crates.io/roff/0.2.1 \
-    crate://crates.io/rstest/0.17.0 \
-    crate://crates.io/rstest_macros/0.17.0 \
-    crate://crates.io/rust-ini/0.18.0 \
+    crate://crates.io/rstest/0.18.1 \
+    crate://crates.io/rstest_macros/0.18.1 \
+    crate://crates.io/rust-ini/0.19.0 \
     crate://crates.io/rustc-hash/1.1.0 \
     crate://crates.io/rustc_version/0.4.0 \
     crate://crates.io/rustix/0.36.14 \
-    crate://crates.io/rustix/0.37.7 \
+    crate://crates.io/rustix/0.37.19 \
     crate://crates.io/same-file/1.0.6 \
     crate://crates.io/scopeguard/1.1.0 \
-    crate://crates.io/scratch/1.0.2 \
+    crate://crates.io/self_cell/1.0.1 \
     crate://crates.io/selinux/0.4.0 \
     crate://crates.io/selinux-sys/0.6.2 \
     crate://crates.io/semver/1.0.14 \
     crate://crates.io/serde/1.0.147 \
     crate://crates.io/sha1/0.10.5 \
-    crate://crates.io/sha2/0.10.6 \
+    crate://crates.io/sha2/0.10.7 \
     crate://crates.io/sha3/0.10.8 \
     crate://crates.io/shlex/1.1.0 \
     crate://crates.io/signal-hook/0.3.15 \
@@ -222,16 +214,16 @@
     crate://crates.io/siphasher/0.3.10 \
     crate://crates.io/slab/0.4.7 \
     crate://crates.io/sm3/0.4.2 \
-    crate://crates.io/smallvec/1.10.0 \
+    crate://crates.io/smallvec/1.11.0 \
     crate://crates.io/smawk/0.3.1 \
     crate://crates.io/socket2/0.5.3 \
     crate://crates.io/static_assertions/1.1.0 \
     crate://crates.io/strsim/0.10.0 \
     crate://crates.io/subtle/2.4.1 \
-    crate://crates.io/syn/1.0.103 \
-    crate://crates.io/tempfile/3.5.0 \
+    crate://crates.io/syn/1.0.109 \
+    crate://crates.io/syn/2.0.23 \
+    crate://crates.io/tempfile/3.6.0 \
     crate://crates.io/term_grid/0.1.7 \
-    crate://crates.io/termcolor/1.1.3 \
     crate://crates.io/terminal_size/0.2.6 \
     crate://crates.io/textwrap/0.16.0 \
     crate://crates.io/thiserror/1.0.37 \
@@ -239,6 +231,7 @@
     crate://crates.io/time/0.3.20 \
     crate://crates.io/time-core/0.1.0 \
     crate://crates.io/time-macros/0.2.8 \
+    crate://crates.io/tiny-keccak/2.0.2 \
     crate://crates.io/typenum/1.15.0 \
     crate://crates.io/unicode-ident/1.0.5 \
     crate://crates.io/unicode-linebreak/0.1.4 \
@@ -246,7 +239,6 @@
     crate://crates.io/unicode-width/0.1.10 \
     crate://crates.io/unicode-xid/0.2.4 \
     crate://crates.io/unindent/0.2.1 \
-    crate://crates.io/users/0.11.0 \
     crate://crates.io/utf8parse/0.2.1 \
     crate://crates.io/uuid/1.2.2 \
     crate://crates.io/version_check/0.9.4 \
@@ -287,12 +279,10 @@
     crate://crates.io/zip/0.6.6 \
 "
 
-SRC_URI[Inflector-0.11.4.sha256sum] = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
 SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 SRC_URI[ahash-0.7.6.sha256sum] = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
 SRC_URI[aho-corasick-0.7.19.sha256sum] = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
 SRC_URI[aho-corasick-1.0.1.sha256sum] = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
-SRC_URI[aliasable-0.1.3.sha256sum] = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd"
 SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
 SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
 SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
@@ -303,18 +293,18 @@
 SRC_URI[arrayref-0.3.6.sha256sum] = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
 SRC_URI[arrayvec-0.7.2.sha256sum] = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
 SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-SRC_URI[bigdecimal-0.3.0.sha256sum] = "6aaf33151a6429fe9211d1b276eafdf70cdff28b071e76c0b0e1503221ea3744"
+SRC_URI[bigdecimal-0.4.0.sha256sum] = "5274a6b6e0ee020148397245b973e30163b7bffbc6d473613f850cb99888581e"
 SRC_URI[binary-heap-plus-0.5.0.sha256sum] = "e4551d8382e911ecc0d0f0ffb602777988669be09447d536ff4388d1def11296"
 SRC_URI[bindgen-0.63.0.sha256sum] = "36d860121800b2a9a94f9b5604b332d5cffb234ce17609ea479d723dbc9d3885"
 SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 SRC_URI[blake2b_simd-1.0.1.sha256sum] = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
-SRC_URI[blake3-1.3.3.sha256sum] = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef"
+SRC_URI[blake3-1.4.0.sha256sum] = "729b71f35bd3fa1a4c86b85d32c8b9069ea7fe14f7a53cfabb65f62d4265b888"
 SRC_URI[block-buffer-0.10.3.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
-SRC_URI[bstr-1.5.0.sha256sum] = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5"
+SRC_URI[bstr-1.6.0.sha256sum] = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
 SRC_URI[bumpalo-3.11.1.sha256sum] = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
 SRC_URI[bytecount-0.6.3.sha256sum] = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
 SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-SRC_URI[cc-1.0.77.sha256sum] = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
 SRC_URI[cexpr-0.6.0.sha256sum] = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
 SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 SRC_URI[chrono-0.4.26.sha256sum] = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
@@ -324,10 +314,11 @@
 SRC_URI[clap_complete-4.3.0.sha256sum] = "a04ddfaacc3bc9e6ea67d024575fafc2a813027cf374b8f24f7bc233c6b6be12"
 SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
 SRC_URI[clap_mangen-0.2.9.sha256sum] = "bb0f09a0ca8f0dd8ac92c546b426f466ef19828185c6d504c80c48c9c2768ed9"
-SRC_URI[codespan-reporting-0.11.1.sha256sum] = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
 SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 SRC_URI[compare-0.1.0.sha256sum] = "120133d4db2ec47efe2e26502ee984747630c67f51974fca0b6c1340cf2368d3"
 SRC_URI[console-0.15.7.sha256sum] = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+SRC_URI[const-random-0.1.15.sha256sum] = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e"
+SRC_URI[const-random-macro-0.1.15.sha256sum] = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb"
 SRC_URI[constant_time_eq-0.2.4.sha256sum] = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"
 SRC_URI[conv-0.3.3.sha256sum] = "78ff10625fd0ac447827aa30ea8b861fead473bb60aeb73af6c1c58caf0d1299"
 SRC_URI[core-foundation-sys-0.8.3.sha256sum] = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
@@ -346,25 +337,20 @@
 SRC_URI[crossterm_winapi-0.9.0.sha256sum] = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
 SRC_URI[crunchy-0.2.2.sha256sum] = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-SRC_URI[ctor-0.1.26.sha256sum] = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
 SRC_URI[ctrlc-3.4.0.sha256sum] = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e"
 SRC_URI[custom_derive-0.1.7.sha256sum] = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"
-SRC_URI[cxx-1.0.82.sha256sum] = "d4a41a86530d0fe7f5d9ea779916b7cadd2d4f9add748b99c2c029cbbdfaf453"
-SRC_URI[cxx-build-1.0.82.sha256sum] = "06416d667ff3e3ad2df1cd8cd8afae5da26cf9cec4d0825040f88b5ca659a2f0"
-SRC_URI[cxxbridge-flags-1.0.82.sha256sum] = "820a9a2af1669deeef27cb271f476ffd196a2c4b6731336011e0ba63e2c7cf71"
-SRC_URI[cxxbridge-macro-1.0.82.sha256sum] = "a08a6e2fcc370a089ad3b4aaf54db3b1b4cee38ddabce5896b33eb693275f470"
 SRC_URI[data-encoding-2.4.0.sha256sum] = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
 SRC_URI[data-encoding-macro-0.1.13.sha256sum] = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99"
 SRC_URI[data-encoding-macro-internal-0.1.11.sha256sum] = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772"
 SRC_URI[diff-0.1.13.sha256sum] = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
 SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
-SRC_URI[dlv-list-0.3.0.sha256sum] = "0688c2a7f92e427f44895cd63841bff7b29f8d7a1648b9e7e07a4a365b2e1257"
+SRC_URI[dlv-list-0.5.0.sha256sum] = "d529fd73d344663edfd598ccb3f344e46034db51ebd103518eae34338248ad73"
 SRC_URI[dns-lookup-2.0.2.sha256sum] = "8f332aa79f9e9de741ac013237294ef42ce2e9c6394dc7d766725812f1238812"
 SRC_URI[dunce-1.0.4.sha256sum] = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
 SRC_URI[either-1.8.0.sha256sum] = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
 SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
 SRC_URI[env_logger-0.8.4.sha256sum] = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
-SRC_URI[errno-0.3.0.sha256sum] = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
 SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
 SRC_URI[exacl-0.10.0.sha256sum] = "1cfeb22a59deb24c3262c43ffcafd1eb807180f371f9fcc99098d181b5d639be"
 SRC_URI[fastrand-1.8.0.sha256sum] = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
@@ -375,7 +361,8 @@
 SRC_URI[fs_extra-1.3.0.sha256sum] = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
 SRC_URI[fsevent-sys-4.1.0.sha256sum] = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
 SRC_URI[fts-sys-0.2.4.sha256sum] = "9a66c0a21e344f20c87b4ca12643cf4f40a7018f132c98d344e989b959f49dd1"
-SRC_URI[fundu-0.5.1.sha256sum] = "2a37cfff04a32112c22c5497b20b0b09100fca406e76afd47b2ba5ab33d7a851"
+SRC_URI[fundu-1.2.0.sha256sum] = "34804ed59f10b3a630c79822ebf7370b562b7281028369e9baa40547c17f8bdc"
+SRC_URI[fundu-core-0.2.0.sha256sum] = "71a99190954ca83bade03ba054799b17a158ea948a6855c6bb8121adb6b49d9f"
 SRC_URI[futures-0.3.25.sha256sum] = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
 SRC_URI[futures-channel-0.3.25.sha256sum] = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
 SRC_URI[futures-core-0.3.25.sha256sum] = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
@@ -388,25 +375,24 @@
 SRC_URI[futures-util-0.3.25.sha256sum] = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
 SRC_URI[gcd-2.3.0.sha256sum] = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a"
 SRC_URI[generic-array-0.14.6.sha256sum] = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
-SRC_URI[getrandom-0.2.8.sha256sum] = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+SRC_URI[getrandom-0.2.9.sha256sum] = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
 SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 SRC_URI[half-2.2.1.sha256sum] = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
 SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-SRC_URI[hermit-abi-0.3.1.sha256sum] = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+SRC_URI[hashbrown-0.13.2.sha256sum] = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 SRC_URI[hex-literal-0.4.1.sha256sum] = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46"
 SRC_URI[hostname-0.3.1.sha256sum] = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
-SRC_URI[humantime_to_duration-0.2.1.sha256sum] = "714764645f21cc70c4c151d7798dd158409641f37ad820bed65224aae403cbed"
 SRC_URI[iana-time-zone-0.1.53.sha256sum] = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
-SRC_URI[iana-time-zone-haiku-0.1.1.sha256sum] = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
 SRC_URI[indicatif-0.17.3.sha256sum] = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729"
 SRC_URI[inotify-0.9.6.sha256sum] = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
 SRC_URI[inotify-sys-0.1.5.sha256sum] = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
 SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
 SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
 SRC_URI[is-terminal-0.4.7.sha256sum] = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
-SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
 SRC_URI[itoa-1.0.4.sha256sum] = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
 SRC_URI[js-sys-0.3.60.sha256sum] = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
 SRC_URI[keccak-0.1.4.sha256sum] = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940"
@@ -414,61 +400,58 @@
 SRC_URI[kqueue-sys-1.0.3.sha256sum] = "8367585489f01bc55dd27404dcf56b95e6da061a256a666ab23be9ba96a2e587"
 SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-SRC_URI[libc-0.2.144.sha256sum] = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
 SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
-SRC_URI[link-cplusplus-1.0.7.sha256sum] = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369"
+SRC_URI[libm-0.2.7.sha256sum] = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
 SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
-SRC_URI[linux-raw-sys-0.3.0.sha256sum] = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
 SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
 SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
 SRC_URI[lscolors-0.14.0.sha256sum] = "18a9df1d1fb6d9e92fa043e9eb9a3ecf6892c7b542bae5137cd1e419e40aa8bf"
 SRC_URI[match_cfg-0.1.0.sha256sum] = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
 SRC_URI[md-5-0.10.5.sha256sum] = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
 SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-SRC_URI[memmap2-0.6.0.sha256sum] = "7f9ff02d2efdc645fca1ee55f45545b996e7da776b5b60c4e170334457551693"
+SRC_URI[memmap2-0.7.0.sha256sum] = "180d4b35be83d33392d1d1bfbd2ae1eca7ff5de1a94d3fc87faaa99a069e7cbd"
 SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
 SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 SRC_URI[miniz_oxide-0.5.4.sha256sum] = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
 SRC_URI[mio-0.8.6.sha256sum] = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
 SRC_URI[nix-0.26.2.sha256sum] = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
 SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
-SRC_URI[notify-6.0.0.sha256sum] = "4d9ba6c734de18ca27c8cef5cd7058aa4ac9f63596131e4c7e41e579319032a2"
+SRC_URI[notify-6.0.1.sha256sum] = "5738a2795d57ea20abec2d6d76c6081186709c0024187cd5977265eda6598b51"
 SRC_URI[nu-ansi-term-0.47.0.sha256sum] = "1df031e117bca634c262e9bd3173776844b6c17a90b3741c9163663b4385af76"
 SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
 SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
 SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-SRC_URI[num_cpus-1.14.0.sha256sum] = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5"
+SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
 SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
-SRC_URI[once_cell-1.17.2.sha256sum] = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 SRC_URI[onig-6.4.0.sha256sum] = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
 SRC_URI[onig_sys-69.8.1.sha256sum] = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
-SRC_URI[ordered-multimap-0.4.3.sha256sum] = "ccd746e37177e1711c20dd619a1620f34f5c8b569c53590a72dedd5344d8924a"
+SRC_URI[ordered-multimap-0.6.0.sha256sum] = "4ed8acf08e98e744e5384c8bc63ceb0364e68a6854187221c18df61c4797690e"
 SRC_URI[os_display-0.1.3.sha256sum] = "7a6229bad892b46b0dcfaaeb18ad0d2e56400f5aaea05b768bde96e73676cf75"
-SRC_URI[ouroboros-0.15.6.sha256sum] = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db"
-SRC_URI[ouroboros_macro-0.15.6.sha256sum] = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7"
-SRC_URI[output_vt100-0.1.3.sha256sum] = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
 SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 SRC_URI[parking_lot_core-0.9.7.sha256sum] = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+SRC_URI[parse_datetime-0.4.0.sha256sum] = "fecceaede7767a9a98058687a321bc91742eff7670167a34104afb30fc8757df"
 SRC_URI[peeking_take_while-0.1.2.sha256sum] = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
-SRC_URI[phf-0.11.1.sha256sum] = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c"
-SRC_URI[phf_codegen-0.11.1.sha256sum] = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770"
+SRC_URI[phf-0.11.2.sha256sum] = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+SRC_URI[phf_codegen-0.11.2.sha256sum] = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
 SRC_URI[phf_generator-0.11.1.sha256sum] = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf"
-SRC_URI[phf_shared-0.11.1.sha256sum] = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676"
+SRC_URI[phf_shared-0.11.2.sha256sum] = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
 SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
 SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 SRC_URI[pkg-config-0.3.26.sha256sum] = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
-SRC_URI[platform-info-2.0.1.sha256sum] = "827dc4f7a81331d48c8abf11b5ac18673b390d33e9632327e286d940289aefab"
+SRC_URI[platform-info-2.0.2.sha256sum] = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f"
 SRC_URI[portable-atomic-0.3.15.sha256sum] = "15eb2c6e362923af47e13c23ca5afb859e83d54452c55b0b9ac763b8f7c1ac16"
 SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-SRC_URI[pretty_assertions-1.3.0.sha256sum] = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
-SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
-SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
-SRC_URI[proc-macro2-1.0.47.sha256sum] = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725"
+SRC_URI[pretty_assertions-1.4.0.sha256sum] = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+SRC_URI[proc-macro-hack-0.5.20+deprecated.sha256sum] = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
 SRC_URI[procfs-0.15.1.sha256sum] = "943ca7f9f29bab5844ecd8fdb3992c5969b6622bb9609b9502fef9b4310e3f1f"
 SRC_URI[quick-error-2.0.1.sha256sum] = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
 SRC_URI[quickcheck-1.0.3.sha256sum] = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
-SRC_URI[quote-1.0.21.sha256sum] = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
+SRC_URI[quote-1.0.29.sha256sum] = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
 SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
 SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
@@ -478,27 +461,28 @@
 SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
 SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
 SRC_URI[reference-counted-singleton-0.1.2.sha256sum] = "f1bfbf25d7eb88ddcbb1ec3d755d0634da8f7657b2cb8b74089121409ab8228f"
-SRC_URI[regex-1.8.3.sha256sum] = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390"
-SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-SRC_URI[regex-syntax-0.7.2.sha256sum] = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
-SRC_URI[rlimit-0.9.1.sha256sum] = "f8a29d87a652dc4d43c586328706bb5cdff211f3f39a530f240b53f7221dab8e"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.1.sha256sum] = "e9aaecc05d5c4b5f7da074b9a0d1a0867e71fd36e7fc0482d8bcfe8e8fc56290"
+SRC_URI[regex-syntax-0.7.3.sha256sum] = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846"
+SRC_URI[relative-path-1.8.0.sha256sum] = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698"
+SRC_URI[rlimit-0.10.0.sha256sum] = "9b5b8be0bc0ef630d24f8fa836b3a3463479b2343b29f9a8fa905c71a8c7b69b"
 SRC_URI[roff-0.2.1.sha256sum] = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
-SRC_URI[rstest-0.17.0.sha256sum] = "de1bb486a691878cd320c2f0d319ba91eeaa2e894066d8b5f8f117c000e9d962"
-SRC_URI[rstest_macros-0.17.0.sha256sum] = "290ca1a1c8ca7edb7c3283bd44dc35dd54fdec6253a3912e201ba1072018fca8"
-SRC_URI[rust-ini-0.18.0.sha256sum] = "f6d5f2436026b4f6e79dc829837d467cc7e9a55ee40e750d716713540715a2df"
+SRC_URI[rstest-0.18.1.sha256sum] = "2b96577ca10cb3eade7b337eb46520108a67ca2818a24d0b63f41fd62bc9651c"
+SRC_URI[rstest_macros-0.18.1.sha256sum] = "225e674cf31712b8bb15fdbca3ec0c1b9d825c5a24407ff2b7e005fb6a29ba03"
+SRC_URI[rust-ini-0.19.0.sha256sum] = "7e2a3bcec1f113553ef1c88aae6c020a369d03d55b58de9869a0908930385091"
 SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
 SRC_URI[rustix-0.36.14.sha256sum] = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62"
-SRC_URI[rustix-0.37.7.sha256sum] = "2aae838e49b3d63e9274e1c01833cc8139d3fec468c3b84688c628f44b1ae11d"
+SRC_URI[rustix-0.37.19.sha256sum] = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
 SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
 SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-SRC_URI[scratch-1.0.2.sha256sum] = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898"
+SRC_URI[self_cell-1.0.1.sha256sum] = "4c309e515543e67811222dbc9e3dd7e1056279b782e1dacffe4242b718734fb6"
 SRC_URI[selinux-0.4.0.sha256sum] = "a00576725d21b588213fbd4af84cd7e4cc4304e8e9bd6c0f5a1498a3e2ca6a51"
 SRC_URI[selinux-sys-0.6.2.sha256sum] = "806d381649bb85347189d2350728817418138d11d738e2482cb644ec7f3c755d"
 SRC_URI[semver-1.0.14.sha256sum] = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4"
 SRC_URI[serde-1.0.147.sha256sum] = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965"
 SRC_URI[sha1-0.10.5.sha256sum] = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
-SRC_URI[sha2-0.10.6.sha256sum] = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
+SRC_URI[sha2-0.10.7.sha256sum] = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
 SRC_URI[sha3-0.10.8.sha256sum] = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
 SRC_URI[shlex-1.1.0.sha256sum] = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
 SRC_URI[signal-hook-0.3.15.sha256sum] = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
@@ -507,16 +491,16 @@
 SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
 SRC_URI[slab-0.4.7.sha256sum] = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
 SRC_URI[sm3-0.4.2.sha256sum] = "ebb9a3b702d0a7e33bc4d85a14456633d2b165c2ad839c5fd9a8417c1ab15860"
-SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+SRC_URI[smallvec-1.11.0.sha256sum] = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
 SRC_URI[smawk-0.3.1.sha256sum] = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
 SRC_URI[socket2-0.5.3.sha256sum] = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
 SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
 SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-SRC_URI[syn-1.0.103.sha256sum] = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d"
-SRC_URI[tempfile-3.5.0.sha256sum] = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
 SRC_URI[term_grid-0.1.7.sha256sum] = "230d3e804faaed5a39b08319efb797783df2fd9671b39b7596490cb486d702cf"
-SRC_URI[termcolor-1.1.3.sha256sum] = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
 SRC_URI[terminal_size-0.2.6.sha256sum] = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
 SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
 SRC_URI[thiserror-1.0.37.sha256sum] = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e"
@@ -524,6 +508,7 @@
 SRC_URI[time-0.3.20.sha256sum] = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890"
 SRC_URI[time-core-0.1.0.sha256sum] = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
 SRC_URI[time-macros-0.2.8.sha256sum] = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36"
+SRC_URI[tiny-keccak-2.0.2.sha256sum] = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
 SRC_URI[typenum-1.15.0.sha256sum] = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
 SRC_URI[unicode-ident-1.0.5.sha256sum] = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3"
 SRC_URI[unicode-linebreak-0.1.4.sha256sum] = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
@@ -531,7 +516,6 @@
 SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 SRC_URI[unindent-0.2.1.sha256sum] = "5aa30f5ea51ff7edfc797c6d3f9ec8cbd8cfedef5371766b7181d33977f4814f"
-SRC_URI[users-0.11.0.sha256sum] = "24cc0f6d6f267b73e5a2cadf007ba8f9bc39c6a6f9666f8cf25ea809a153b032"
 SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 SRC_URI[uuid-1.2.2.sha256sum] = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
 SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
diff --git a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.19.bb b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.19.bb
rename to meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb
index f67bf25..0614416 100644
--- a/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.19.bb
+++ b/meta-openembedded/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb
@@ -11,7 +11,7 @@
 # so src/uucore/src/lib/features.rs disables utmpx when targetting musl.
 COMPATIBLE_HOST:libc-musl = "null"
 
-SRCREV = "abfceda12df094a6a2c8f25bd4f446e8dbd38107"
+SRCREV = "8093d81dac0fb87ff3984ba9fe22ab171e630443"
 S = "${WORKDIR}/git"
 
 require ${BPN}-crates.inc
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt/CVE-2019-17362.patch b/meta-openembedded/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt/CVE-2019-17362.patch
new file mode 100644
index 0000000..8b7348a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt/CVE-2019-17362.patch
@@ -0,0 +1,25 @@
+From 25c26a3b7a9ad8192ccc923e15cf62bf0108ef94 Mon Sep 17 00:00:00 2001
+From: werew <werew@ret2libc.com>
+Date: Thu, 3 Oct 2019 19:57:10 +0200
+Subject: [PATCH] Fixes #507
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+Upstream-Status: Backport [https://github.com/libtom/libtomcrypt/commit/64d1153e5a515740ab56f39c46baf4cf6991a9d3]
+
+ src/pk/asn1/der/utf8/der_decode_utf8_string.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/pk/asn1/der/utf8/der_decode_utf8_string.c b/src/pk/asn1/der/utf8/der_decode_utf8_string.c
+index 94555b99f..d3ed82bea 100644
+--- a/src/pk/asn1/der/utf8/der_decode_utf8_string.c
++++ b/src/pk/asn1/der/utf8/der_decode_utf8_string.c
+@@ -65,7 +65,7 @@ int der_decode_utf8_string(const unsigned char *in,  unsigned long inlen,
+       /* count number of bytes */
+       for (z = 0; (tmp & 0x80) && (z <= 4); z++, tmp = (tmp << 1) & 0xFF);
+ 
+-      if (z > 4 || (x + (z - 1) > inlen)) {
++      if (z == 1 || z > 4 || (x + (z - 1) > inlen)) {
+          return CRYPT_INVALID_PACKET;
+       }
+ 
diff --git a/meta-openembedded/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb b/meta-openembedded/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb
index b144338..5479007 100644
--- a/meta-openembedded/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb
+++ b/meta-openembedded/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb
@@ -1,21 +1,41 @@
 SUMMARY = "LibTomCrypt is a public domain open source cryptographic toolkit"
 HOMEPAGE = "https://www.libtom.net/LibTomCrypt"
 SECTION = "libs"
+# Unlicense isn't very accurate for this revision, it was WTFPL in 0.18.0-rc1:
+# https://github.com/libtom/libtomcrypt/commit/77e31fb6a980212e90b9a50f116dc5a7bd91e527
+# then updated to dual license PD and WTFPL also in 0.18.0-rc1:
+# https://github.com/libtom/libtomcrypt/commit/412b2ee1fccc3a0df58f93f372c90d6d0f93bfc9
+# and then updated again to Unlicense after the 0.18.2 tag (it's only in develop branch):
+# https://github.com/libtom/libtomcrypt/commit/3630bee6fc0f73dd9c7923fd43f8ae15a2c0fb70
+# but keep using Unlicense to avoid triggering people with WTFPL license:
+# https://groups.google.com/g/libtom/c/17Z7xkECULM
+# and this comment can be removed next time libtomcrypt is updated
 LICENSE = "Unlicense"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=71baacc459522324ef3e2b9e052e8180"
 
-DEPENDS += "libtool-cross"
+DEPENDS = "libtool-cross"
 
-SRC_URI = "git://github.com/libtom/libtomcrypt.git;protocol=https;branch=master"
+SRC_URI = "git://github.com/libtom/libtomcrypt.git;protocol=https;branch=master \
+   file://CVE-2019-17362.patch \
+"
 
 SRCREV = "7e7eb695d581782f04b24dc444cbfde86af59853"
 
 S = "${WORKDIR}/git"
 
+inherit pkgconfig
+
+PACKAGECONFIG ??= "ltm"
+PACKAGECONFIG[ltm] = ",,libtommath"
+
+CFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'ltm', '-DUSE_LTM -DLTM_DESC', '', d)}"
+
+EXTRA_OEMAKE = "'PREFIX=${prefix}' 'DESTDIR=${D}' 'LIBPATH=${libdir}' 'CFLAGS=${CFLAGS}'"
+
 do_compile() {
     oe_runmake -f makefile.shared
 }
 
 do_install() {
-    oe_runmake -f makefile.shared 'PREFIX=${prefix}' 'DESTDIR=${D}' 'LIBPATH=${libdir}' install
+    oe_runmake -f makefile.shared install
 }
diff --git a/meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb b/meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.31.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb
rename to meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.31.bb
index 35242be..b2f1920 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.29.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/lmdb/lmdb_0.9.31.bb
@@ -14,7 +14,7 @@
            file://0001-make-set-soname-on-liblmdb.patch;patchdir=../.. \
            "
 
-SRCREV = "8ad7be2510414b9506ec9f9e24f24d04d9b04a1a"
+SRCREV = "ce201088de95d26fc0da36ba805bf2ddc2ba74ff"
 
 inherit ptest
 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.2.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.4.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.2.bb
rename to meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.4.bb
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
index 57930da..2fb0bd7 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -25,7 +25,7 @@
            file://0001-Add-missing-includes-cstdint-and-cstdio.patch \
           "
 SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch"
-SRC_URI[sha256sum] = "1c89dee0caed0f68bc2a1d203eb98a123150e6a179f6ee0f1fc0ba3f08dc71dc"
+SRC_URI[sha256sum] = "ce8dac125568cc5f40da74c17212767c92d8faed81066580b526a485a591127d"
 
 UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
 
@@ -110,6 +110,11 @@
 ARM_INSTRUCTION_SET:armv4 = "arm"
 ARM_INSTRUCTION_SET:armv5 = "arm"
 
+do_compile:prepend:class-target () {
+    # remove the buildpath
+    sed -i -e "s:CMAKE_SYSROOT:CMAKE_SYSROOT_PLACE_HOLDER:g" ${S}/libmariadb/mariadb_config/mariadb_config.c.in
+}
+
 do_configure:append() {
     # handle distros with different values of ${libexecdir}
     libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'`
@@ -140,6 +145,7 @@
             echo "#endif" >>${B}/include/openssl/kssl.h
         fi
     fi
+    install -D ${RECIPE_SYSROOT_NATIVE}/usr/bin/uca-dump ${B}/strings/uca-dump
 }
 
 SYSROOT_PREPROCESS_FUNCS += "mariadb_sysroot_preprocess"
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
index 7c37fef..12fbd75 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
+++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
@@ -1,4 +1,4 @@
-From 6e376601c990abaa5e261d1311f92acb3b370b8f Mon Sep 17 00:00:00 2001
+From 68100b1f2243304289b9a9a35e8fb0e1bb0cf70f Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 24 Jan 2023 21:40:43 -0800
 Subject: [PATCH] Add missing includes <cstdint> and <cstdio>
@@ -9,17 +9,16 @@
 
 Upstream-Status: Pending
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
 ---
  .../rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h   | 1 +
  storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h   | 1 +
  .../rocksdb/rocksdb/table/block_based/data_block_hash_index.h    | 1 +
  storage/rocksdb/rocksdb/util/slice.cc                            | 1 +
- storage/rocksdb/rocksdb/util/string_util.h                       | 1 +
- tpool/aio_linux.cc                                               | 1 +
- 6 files changed, 6 insertions(+)
+ 4 files changed, 4 insertions(+)
 
 diff --git a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
-index 963c1d8eb49..73487edd96d 100644
+index 963c1d8e..73487edd 100644
 --- a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
 +++ b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
 @@ -5,6 +5,7 @@
@@ -31,7 +30,7 @@
  
  struct CompactionIterationStats {
 diff --git a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
-index c7f93b4cfcd..3c2ab80535a 100644
+index c7f93b4c..3c2ab805 100644
 --- a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
 +++ b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
 @@ -8,6 +8,7 @@
@@ -43,7 +42,7 @@
  #include <vector>
  #include "rocksdb/status.h"
 diff --git a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
-index f356395f329..3215221755d 100644
+index f356395f..32152217 100644
 --- a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
 +++ b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
 @@ -5,6 +5,7 @@
@@ -55,7 +54,7 @@
  #include <vector>
  
 diff --git a/storage/rocksdb/rocksdb/util/slice.cc b/storage/rocksdb/rocksdb/util/slice.cc
-index 6db11cc947a..c26b6a21a57 100644
+index 6db11cc9..c26b6a21 100644
 --- a/storage/rocksdb/rocksdb/util/slice.cc
 +++ b/storage/rocksdb/rocksdb/util/slice.cc
 @@ -8,6 +8,7 @@
@@ -66,30 +65,6 @@
  #include "rocksdb/slice_transform.h"
  #include "rocksdb/slice.h"
  #include "util/string_util.h"
-diff --git a/storage/rocksdb/rocksdb/util/string_util.h b/storage/rocksdb/rocksdb/util/string_util.h
-index a761be66c52..064d059f08f 100644
---- a/storage/rocksdb/rocksdb/util/string_util.h
-+++ b/storage/rocksdb/rocksdb/util/string_util.h
-@@ -6,6 +6,7 @@
- 
- #pragma once
- 
-+#include <cstdint>
- #include <sstream>
- #include <string>
- #include <unordered_map>
-diff --git a/tpool/aio_linux.cc b/tpool/aio_linux.cc
-index 10234e0e46a..a6adf1af257 100644
---- a/tpool/aio_linux.cc
-+++ b/tpool/aio_linux.cc
-@@ -18,6 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 - 1301 USA*/
- 
- # include <thread>
- # include <atomic>
-+# include <cstdio>
- # include <libaio.h>
- # include <sys/syscall.h>
- 
 -- 
-2.39.1
+2.25.1
 
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.2.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.4.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.2.bb
rename to meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.11.4.bb
diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_15.3.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_15.3.bb
index c4d4124..e1d4989 100644
--- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_15.3.bb
+++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_15.3.bb
@@ -13,6 +13,4 @@
 
 SRC_URI[sha256sum] = "ffc7d4891f00ffbf5c3f4eab7fbbced8460b8c0ee63c5a5167133b9e6599d932"
 
-CVE_CHECK_IGNORE += "\
-   CVE-2017-8806 \
-"
+CVE_STATUS[CVE-2017-8806] = "not-applicable-config: Ddoesn't apply to out configuration of postgresql so we can safely ignore it."
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index abd140c..9278146 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -92,7 +92,7 @@
 
     # Setting both variables below causing our makefiles to not work with
     # implicit make rules
-    unset CFLAGS
+    CFLAGS="-ffile-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
     unset CPPFLAGS
 
     export SRCDIR=${S}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb b/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
index 200f751..8bf7981 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
@@ -1,5 +1,4 @@
 DESCRIPTION = "Ultralightweight JSON parser in ANSI C"
-AUTHOR = "Dave Gamble"
 HOMEPAGE = "https://github.com/DaveGamble/cJSON"
 SECTION = "libs"
 LICENSE = "MIT"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.94.bb b/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.94.bb
index 2f92d81..37a21cc 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.94.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/cloc/cloc_1.94.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Count blank lines, comment lines, and physical lines of source code \
 in many programming languages."
-AUTHOR = "Al Danial"
 
 LICENSE="GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230611.0.bb b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230730.0.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230611.0.bb
rename to meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230730.0.bb
index 1b8d367..fc7d82d 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230611.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ctags/ctags_6.0.20230730.0.bb
@@ -14,7 +14,7 @@
 
 inherit autotools-brokensep pkgconfig manpages
 
-SRCREV = "89081ccd2aa6b4d8397a8e6741ea8c1e3f786162"
+SRCREV = "06036801ba3c5cc927c4dfd7be9ae08c8086eede"
 SRC_URI = "git://github.com/universal-ctags/ctags;branch=master;protocol=https"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb
index 6573916..183554e 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb
@@ -15,8 +15,6 @@
 
 S = "${WORKDIR}/git"
 
-CVE_CHECK_IGNORE += "CVE-2020-35864"
-
 EXTRA_OECMAKE += " \
     -DFLATBUFFERS_BUILD_TESTS=OFF \    
     -DFLATBUFFERS_BUILD_SHAREDLIB=ON \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch
new file mode 100644
index 0000000..ab46897
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-fix-CVE-2023-32732.patch
@@ -0,0 +1,81 @@
+From d39489045b5aa73e27713e3cbacb8832c1140ec8 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Wed, 9 Aug 2023 13:33:45 +0800
+Subject: [PATCH] fix CVE-2023-32732
+
+CVE: CVE-2023-32732
+
+Upstream-Status: Backport [https://github.com/grpc/grpc/pull/32309/commits/6a7850ef4f042ac26559854266dddc79bfbc75b2]
+The original patch is adjusted to fit the current 1.50.1 version.
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ .../ext/transport/chttp2/transport/hpack_parser.cc     | 10 +++++++---
+ src/core/ext/transport/chttp2/transport/internal.h     |  2 --
+ src/core/ext/transport/chttp2/transport/parsing.cc     |  6 ++----
+ 3 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/core/ext/transport/chttp2/transport/hpack_parser.cc b/src/core/ext/transport/chttp2/transport/hpack_parser.cc
+index f2e49022dc3..cd459d15238 100644
+--- a/src/core/ext/transport/chttp2/transport/hpack_parser.cc
++++ b/src/core/ext/transport/chttp2/transport/hpack_parser.cc
+@@ -1211,12 +1211,16 @@ class HPackParser::Parser {
+             "). GRPC_ARG_MAX_METADATA_SIZE can be set to increase this limit.",
+             *frame_length_, metadata_size_limit_);
+     if (metadata_buffer_ != nullptr) metadata_buffer_->Clear();
++    // StreamId is used as a signal to skip this stream but keep the connection
++    // alive
+     return input_->MaybeSetErrorAndReturn(
+         [] {
+           return grpc_error_set_int(
+-              GRPC_ERROR_CREATE_FROM_STATIC_STRING(
+-                  "received initial metadata size exceeds limit"),
+-              GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED);
++	      grpc_error_set_int(
++                  GRPC_ERROR_CREATE_FROM_STATIC_STRING(
++                      "received initial metadata size exceeds limit"),
++                  GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_RESOURCE_EXHAUSTED),
++	      GRPC_ERROR_INT_STREAM_ID, 0);
+         },
+         false);
+   }
+diff --git a/src/core/ext/transport/chttp2/transport/internal.h b/src/core/ext/transport/chttp2/transport/internal.h
+index 4a2f4261d83..f8b544d9583 100644
+--- a/src/core/ext/transport/chttp2/transport/internal.h
++++ b/src/core/ext/transport/chttp2/transport/internal.h
+@@ -542,8 +542,6 @@ struct grpc_chttp2_stream {
+ 
+   grpc_core::Timestamp deadline = grpc_core::Timestamp::InfFuture();
+ 
+-  /** saw some stream level error */
+-  grpc_error_handle forced_close_error = GRPC_ERROR_NONE;
+   /** how many header frames have we received? */
+   uint8_t header_frames_received = 0;
+   /** number of bytes received - reset at end of parse thread execution */
+diff --git a/src/core/ext/transport/chttp2/transport/parsing.cc b/src/core/ext/transport/chttp2/transport/parsing.cc
+index 980f13543f6..afe6da190b6 100644
+--- a/src/core/ext/transport/chttp2/transport/parsing.cc
++++ b/src/core/ext/transport/chttp2/transport/parsing.cc
+@@ -22,6 +22,7 @@
+ #include <string.h>
+ 
+ #include <string>
++#include <utility>
+ 
+ #include "absl/base/attributes.h"
+ #include "absl/status/status.h"
+@@ -719,10 +720,7 @@ static grpc_error_handle parse_frame_slice(grpc_chttp2_transport* t,
+     }
+     grpc_chttp2_parsing_become_skip_parser(t);
+     if (s) {
+-      s->forced_close_error = err;
+-      grpc_chttp2_add_rst_stream_to_next_write(t, t->incoming_stream_id,
+-                                               GRPC_HTTP2_PROTOCOL_ERROR,
+-                                               &s->stats.outgoing);
++      grpc_chttp2_cancel_stream(t, s, std::exchange(err, absl::OkStatus()));
+     } else {
+       GRPC_ERROR_UNREF(err);
+     }
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb
index 958992e..45bfcb8 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb
@@ -26,6 +26,7 @@
            file://0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch \
            file://0001-cmake-add-separate-export-for-plugin-targets.patch \
            file://0001-cmake-Link-with-libatomic-on-rv32-rv64.patch \
+           file://0001-fix-CVE-2023-32732.patch \
            "
 # Fixes build with older compilers 4.8 especially on ubuntu 14.04
 CXXFLAGS:append:class-native = " -Wl,--no-as-needed"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.8.bb b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
index 30d17c8..15d43e9 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
@@ -1,7 +1,6 @@
 SUMMARY = "performance analyzer"
 HOMEPAGE = "https://github.com/iipeace/guider"
 BUGTRACKER = "https://github.com/iipeace/guider/issues"
-AUTHOR = "Peace Lee <ipeace5@gmail.com>"
 
 LICENSE = "GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack/run-ptest b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack/run-ptest
new file mode 100755
index 0000000..8bd5fd1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ctest --force-new-ctest-process | sed -u 's/\*\*\*/   /g' | awk '/Test +#/{gsub(/Passed/,"PASS"); gsub(/Failed/,"FAIL"); gsub(/Skipped/,"SKIP"); print $6": "$4; fflush();}'
diff --git a/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb
index 15f394e..787ace4 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb
@@ -11,17 +11,49 @@
 #FORTRAN:forcevariable = ",fortran"
 #RUNTIMETARGET:append:pn-gcc-runtime = " libquadmath"
 
-DEPENDS = "libgfortran"
+DEPENDS = "libgfortran \
+           ${@bb.utils.contains('PTEST_ENABLED', '1', 'rsync-native', '', d)} \
+          "
+RDEPENDS:${PN}-ptest += "cmake"
 
 SRCREV = "32b062a33352e05771dcc01b981ebe961bf2e42f"
-SRC_URI = "git://github.com/Reference-LAPACK/lapack.git;protocol=https;branch=master"
+SRC_URI = "git://github.com/Reference-LAPACK/lapack.git;protocol=https;branch=master \
+           ${@bb.utils.contains('PTEST_ENABLED', '1', 'file://run-ptest', '', d)} \
+          "
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ?= ""
 PACKAGECONFIG[lapacke] = "-DLAPACKE=ON,-DLAPACKE=OFF"
 
-EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=ON "
+EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=ON \
+                  ${@bb.utils.contains('PTEST_ENABLED', '1', ' -DBUILD_TESTING=ON', '', d)} \
+                "
 OECMAKE_GENERATOR = "Unix Makefiles"
 
-inherit cmake pkgconfig
+inherit cmake pkgconfig ptest
 EXCLUDE_FROM_WORLD = "1"
+
+do_install_ptest () {
+    rsync -a ${B}/TESTING ${D}${PTEST_PATH} \
+          --exclude CMakeFiles \
+          --exclude cmake_install.cmake \
+          --exclude Makefile
+    rsync -a ${B}/BLAS ${D}${PTEST_PATH} \
+          --exclude CMakeFiles \
+          --exclude cmake_install.cmake \
+          --exclude Makefile
+    rsync -a ${B}/LAPACKE ${D}${PTEST_PATH} \
+          --exclude CMakeFiles \
+          --exclude cmake_install.cmake \
+          --exclude Makefile
+    cp -r ${B}/bin ${D}${PTEST_PATH}
+    cp -r ${B}/lapack_testing.py ${D}${PTEST_PATH}
+    cp ${B}/CTestTestfile.cmake ${D}${PTEST_PATH}
+    cp ${S}/TESTING/*.in ${S}/TESTING/runtest.cmake ${D}${PTEST_PATH}/TESTING
+    cp ${S}/BLAS/TESTING/*.in ${D}${PTEST_PATH}/BLAS/TESTING
+    sed -i -e 's#${B}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+    sed -i -e 's#${S}#${PTEST_PATH}#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+    sed -i -e 's#${RECIPE_SYSROOT_NATIVE}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+    sed -i -e 's#${PYTHON}#/usr/bin/python3#g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+    sed -i -e 's#${WORKDIR}##g' `find ${D}${PTEST_PATH} -name CTestTestfile.cmake`
+}
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.16/oe-npm-cache b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.17/oe-npm-cache
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.16/oe-npm-cache
rename to meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.17/oe-npm-cache
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.16.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.17.bb
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.16.bb
rename to meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.17.bb
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.17.0.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb
rename to meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.17.0.bb
index 3adb515..1d49218 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_18.17.0.bb
@@ -1,7 +1,7 @@
 DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
 HOMEPAGE = "http://nodejs.org"
 LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0be148d0e7298c5c94f7501affafbce5"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bc1f9ebe76be76f163e3b675303ad9cd"
 
 CVE_PRODUCT = "nodejs node.js"
 
@@ -39,7 +39,7 @@
 SRC_URI:append:toolchain-clang:powerpc64le = " \
            file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
            "
-SRC_URI[sha256sum] = "33d81a233e235a509adda4a4f2209008d04591979de6b3f0f67c1c906093f118"
+SRC_URI[sha256sum] = "80c0faadf5ea39c213ccb9aa5c2432977a0f1b5a0b766852abd0de06f2770406"
 
 S = "${WORKDIR}/node-v${PV}"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.7.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.8.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.7.bb
rename to meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.8.bb
index 4dc0399..407b1a7 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.7.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_8.2.8.bb
@@ -34,9 +34,11 @@
           "
 
 S = "${WORKDIR}/php-${PV}"
-SRC_URI[sha256sum] = "5bfb2a35c67921bdcadd5c90cb290ad7537d24da113a5e8bc2d646b02de7488f"
+SRC_URI[sha256sum] = "995ed4009c7917c962d31837a1a3658f36d4af4f357b673c97ffdbe6403f8517"
 
-CVE_CHECK_IGNORE += "\
+CVE_STATUS_GROUPS += "CVE_STATUS_PHP"
+CVE_STATUS_PHP[status] = "fixed-version: The name of this product is exactly the same as github.com/emlog/emlog. CVE can be safely ignored."
+CVE_STATUS_PHP = " \
     CVE-2007-2728 \
     CVE-2007-3205 \
     CVE-2007-4596 \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb
index c22dcbd..7793971 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/ply/ply_git.bb
@@ -12,7 +12,7 @@
 
 S = "${WORKDIR}/git"
 
-LD = "${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"
+CACHED_CONFIGUREVARS = 'LD="${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"'
 
 inherit autotools-brokensep
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.9.bb b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.11.bb
similarity index 83%
rename from meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.9.bb
rename to meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.11.bb
index f6c2457..66ec979 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.9.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/sip/sip_6.7.11.bb
@@ -11,6 +11,6 @@
 inherit pypi setuptools3 python3native
 
 PYPI_PACKAGE = "sip"
-SRC_URI[sha256sum] = "35d51fc10f599d3696abb50f29d068ad04763df7b77808c76b74597660f99b17"
+SRC_URI[sha256sum] = "f0dc3287a0b172e5664931c87847750d47e4fdcda4fe362b514af8edd655b469"
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/smemstat/smemstat_0.02.11.bb b/meta-openembedded/meta-oe/recipes-devtools/smemstat/smemstat_0.02.12.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-devtools/smemstat/smemstat_0.02.11.bb
rename to meta-openembedded/meta-oe/recipes-devtools/smemstat/smemstat_0.02.12.bb
index 21f315b..46dc941 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/smemstat/smemstat_0.02.11.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/smemstat/smemstat_0.02.12.bb
@@ -7,7 +7,7 @@
 DEPENDS = "ncurses"
 
 SRC_URI = "git://github.com/ColinIanKing/smemstat.git;protocol=https;branch=master"
-SRCREV = "9eea7504ab33783d804c4ed9237e299effb68874"
+SRCREV = "72efeb08ccdb22f57054279d25e3c522e8e1d4c3"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb b/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
index ea76d48..dcb59f4 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -22,9 +22,7 @@
 
 S = "${WORKDIR}/imap-${PV}"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2005-0198 \
-"
+CVE_STATUS[CVE-2005-0198] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
 PACKAGECONFIG[pam] = ",,libpam"
diff --git a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-31975.patch b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-31975.patch
new file mode 100644
index 0000000..ae10e99
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm/CVE-2023-31975.patch
@@ -0,0 +1,29 @@
+From b2cc5a1693b17ac415df76d0795b15994c106441 Mon Sep 17 00:00:00 2001
+From: Katsuhiko Gondow <gondow@cs.titech.ac.jp>
+Date: Tue, 13 Jun 2023 05:00:47 +0900
+Subject: [PATCH] Fix memory leak in bin-objfmt (#231)
+
+Upstream-Status: Backport [https://github.com/yasm/yasm/commit/b2cc5a1693b17ac415df76d0795b15994c106441]
+
+CVE: CVE-2023-31975
+---
+ modules/objfmts/bin/bin-objfmt.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/modules/objfmts/bin/bin-objfmt.c b/modules/objfmts/bin/bin-objfmt.c
+index 18026750..a38c3422 100644
+--- a/modules/objfmts/bin/bin-objfmt.c
++++ b/modules/objfmts/bin/bin-objfmt.c
+@@ -1680,6 +1680,10 @@ static void
+ bin_section_data_destroy(void *data)
+ {
+     bin_section_data *bsd = (bin_section_data *)data;
++    if (bsd->align)
++        yasm_xfree(bsd->align);
++    if (bsd->valign)
++        yasm_xfree(bsd->valign);
+     if (bsd->start)
+         yasm_expr_destroy(bsd->start);
+     if (bsd->vstart)
+--
+2.40.0
diff --git a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
index 3dd382b..19686ff 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/yasm/yasm_git.bb
@@ -12,6 +12,7 @@
 SRCREV = "ba463d3c26c0ece2e797b8d6381b161633b5971a"
 SRC_URI = "git://github.com/yasm/yasm.git;branch=master;protocol=https \
            file://0001-Do-not-use-AC_HEADER_STDC.patch \
+           file://CVE-2023-31975.patch \
 "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb b/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.50.bb
similarity index 91%
rename from meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb
rename to meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.50.bb
index 3a99439..5cd20c5 100644
--- a/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.43.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/bitwise/bitwise_0.50.bb
@@ -15,7 +15,7 @@
            file://run-ptest \
            file://ptest.out.expected \
            "
-SRC_URI[sha256sum] = "f524f794188a10defc4df673d8cf0b3739f93e58e93aff0cdb8a99fbdcca2ffb"
+SRC_URI[sha256sum] = "806271fa5bf31de0600315e8720004a8f529954480e991ca84a9868dc1cae97e"
 
 UPSTREAM_CHECK_URI = "https://github.com/mellowcandle/bitwise/releases"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb b/meta-openembedded/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
index a743e72..6b6acf1 100644
--- a/meta-openembedded/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Terminal based 'The Matrix' screen implementation"
-AUTHOR = "Abishek V Ashok"
 
 LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/504.patch b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/504.patch
new file mode 100644
index 0000000..3290d11
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/504.patch
@@ -0,0 +1,34 @@
+Bug: https://bugs.debian.org/1041124
+From 3f8bc3343983697531d52918fb6cdba19593f3a8 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Sat, 15 Jul 2023 11:31:55 +0200
+Subject: [PATCH] Update CMakeLists.txt: set required std version to gnu++14
+
+New googletest 1.13.0 defaults to gnu++14, so makes this package FTBFS when building testsuite with this error:
+
+In file included from /usr/include/gtest/gtest-message.h:57,
+                 from /usr/include/gtest/gtest-assertion-result.h:46,
+                 from /usr/include/gtest/gtest.h:64,
+                 from /build/1st/dlt-daemon-2.18.9/tests/gtest_dlt_user.cpp:27:
+/usr/include/gtest/internal/gtest-port.h:270:2: error: #error C++ versions less than C++14 are not supported.
+  270 | #error C++ versions less than C++14 are not supported.
+      |  ^~~~~
+
+Thanks Adrian Bunk <bunk@debian.org> for the report and the fix!
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 014fc3bb..b2e056db 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -213,7 +213,7 @@ endif()
+ 
+ add_compile_options(
+     $<$<COMPILE_LANGUAGE:C>:-std=gnu99>
+-    $<$<COMPILE_LANGUAGE:CXX>:-std=gnu++11>
++    $<$<COMPILE_LANGUAGE:CXX>:-std=gnu++14>
+     -Wall
+     -Wextra
+     # -pedantic
diff --git a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb
index 9a7b38b..2d6d187 100644
--- a/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb
@@ -19,6 +19,7 @@
            file://0004-Modify-systemd-config-directory.patch \
            file://481.patch \
            file://482.patch \
+           file://504.patch \
            "
 SRCREV = "9a2312d3512a27620d41b9a325338b6e7b3d42de"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb
index 069fdf7..97c354a 100644
--- a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb
@@ -1,7 +1,6 @@
 SUMMARY = "haveged - A simple entropy daemon"
 DESCRIPTION = "The haveged project is an attempt to provide an easy-to-use, unpredictable random number generator based upon an adaptation of the HAVEGE algorithm. Haveged was created to remedy low-entropy conditions in the Linux random device that can occur under some workloads, especially on headless servers."
 
-AUTHOR = "Gary Wuertz"
 HOMEPAGE = "https://www.issihosts.com/haveged/index.html"
 
 LICENSE = "GPL-3.0-only"
diff --git a/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.1.0.bb b/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.1.0.bb
rename to meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb
index b3814af..d081242 100644
--- a/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb
@@ -8,7 +8,7 @@
     git://github.com/redis/hiredis;protocol=https;branch=master \
     file://run-ptest \
     "
-SRCREV = "c14775b4e48334e0262c9f168887578f4a368b5d"
+SRCREV = "60e5075d4ac77424809f855ba3e398df7aacefe8"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/lastlog2/files/0001-remove-lto-to-fix-link-error-of-clang.patch b/meta-openembedded/meta-oe/recipes-extended/lastlog2/files/0001-remove-lto-to-fix-link-error-of-clang.patch
new file mode 100644
index 0000000..71c3de9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/lastlog2/files/0001-remove-lto-to-fix-link-error-of-clang.patch
@@ -0,0 +1,31 @@
+From 692523d2f8bf0ce893a781761154db4277f0fceb Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Wed, 19 Jul 2023 07:11:15 +0000
+Subject: remove lto to fix link error of clang
+
+error message:
+| tests/tst-y2038-64bit-time_t.p/tst-y2038-64bit-time_t.c.o: file not recognized: file format not recognized
+| clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
+
+Upstream-Status: Pending
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index c521577..13d993b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -26,7 +26,6 @@ add_project_arguments(['-D_GNU_SOURCE=1',
+                        '-DPROJECT_VERSION="@0@"'.format(meson.project_version()) ], language : 'c')
+ 
+ possible_cc_flags = [
+-                  '-flto=auto',
+                   '-ffat-lto-objects',
+ 		  '-fstack-protector-strong',
+ 		  '-funwind-tables',
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/lastlog2/lastlog2_1.1.0.bb b/meta-openembedded/meta-oe/recipes-extended/lastlog2/lastlog2_1.1.0.bb
new file mode 100644
index 0000000..757af00
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/lastlog2/lastlog2_1.1.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Y2038 safe version of lastlog"
+HOMEPAGE = "https://github.com/thkukuk/lastlog2"
+DESCRIPTION = "lastlog reports the last login of a given user or of all users who did ever login on a system."
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=020090a00b69dd2af9ab82eb0003ea2c"
+SECTION = "libs"
+
+SRCREV = "585153a577788c590370d20e40263b61238dfab3"
+
+SRC_URI = "git://github.com/thkukuk/lastlog2.git;branch=main;protocol=https \
+           file://0001-remove-lto-to-fix-link-error-of-clang.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd features_check
+
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} sqlite3 "
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SYSTEMD_SERVICE:${PN} = "lastlog2-import.service"
+
+EXTRA_OEMESON = " -Dpamlibdir=${libdir}"
+
+do_install:append () {
+      if [ -d ${D}${prefix}/lib/systemd -a ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then
+          # Fix makefile hardcoded path assumptions for systemd (assumes $prefix)
+          # without usrmerge distro feature enabled
+          install -d `dirname ${D}${systemd_unitdir}`
+          mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}`
+      fi
+}
+
+FILES:${PN} += " ${systemd_system_unitdir} "
+FILES:${PN} += " ${libdir} "
+FILES:${PN} += " ${nonarch_libdir}/tmpfiles.d/* "
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb
index 1a74dc8..f636990 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb
@@ -14,7 +14,9 @@
 S = "${WORKDIR}/git"
 PR = "r1"
 
-CVE_CHECK_IGNORE += "\
+CVE_STATUS_GROUPS += "CVE_STATUS_LIBLIST"
+CVE_STATUS_LIBLIST[status] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_STATUS_LIBLIST = " \
     CVE-2017-5834 \
     CVE-2017-5835 \
     CVE-2017-5836 \
diff --git a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb
index db09260..3a10b40 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb
@@ -15,7 +15,9 @@
 
 S = "${WORKDIR}/git"
 
-CVE_CHECK_IGNORE += "\
+CVE_STATUS_GROUPS += "CVE_STATUS_LIBLIST"
+CVE_STATUS_LIBLIST[status] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_STATUS_LIBLIST = " \
     CVE-2017-5834 \
     CVE-2017-5835 \
     CVE-2017-5836 \
diff --git a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.7.bb b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.8.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.7.bb
rename to meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.8.bb
index 9123e0a..3db9e2e 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.7.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.8.bb
@@ -9,7 +9,7 @@
 
 inherit autotools pkgconfig
 
-SRCREV = "06c8641de2e1fef1fc6026709fb2109fbbb79d79"
+SRCREV = "002171bbcf4bc4728da56c1538afd9e9d814ecaf"
 SRC_URI = "git://github.com/ClusterLabs/${BPN}.git;branch=main;protocol=https \
           "
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.10.0.bb b/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.10.0.bb
index e8aa7fd..b500f26 100644
--- a/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.10.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.10.0.bb
@@ -23,7 +23,4 @@
 
 SRC_URI[sha256sum] = "cd2a7ac9f1fb5bfa6218272d9929955dc7237515bba6e14b5ad0e1d1e2212b43"
 
-# Patch for CVE-2017-12858 is applied in version 1.2.0.
-CVE_CHECK_IGNORE += "CVE-2017-12858"
-
 BBCLASSEXTEND += "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb b/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb
index 3cbe785..b1a38cf 100644
--- a/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/md5deep/md5deep_git.bb
@@ -1,6 +1,5 @@
 SUMMARY = "md5deep and hashdeep to compute and audit hashsets of amounts of files."
 DESCRIPTION = "md5deep is a set of programs to compute MD5, SHA-1, SHA-256, Tiger, or Whirlpool message digests on an arbitrary number of files. This package also includes hashdeep which is also able to audit hashsets."
-AUTHOR = "Jesse Kornblum, Simson L. Garfinkel"
 HOMEPAGE = "http://md5deep.sourceforge.net"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=9190f660105b9a56cdb272309bfd5491"
diff --git a/meta-openembedded/meta-oe/recipes-extended/networking/mstpd/bridge-stp b/meta-openembedded/meta-oe/recipes-extended/networking/mstpd/bridge-stp
new file mode 100644
index 0000000..59c5786
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/networking/mstpd/bridge-stp
@@ -0,0 +1,18 @@
+#!/bin/sh
+if [ "$#" -lt 2 ]; then
+  echo "Missing args: bridge-stp <bridge> <start|stop>" >&2
+  exit 1
+fi
+case "$2" in
+  start)
+    /usr/sbin/mstpctl addbridge "$1"
+    exit
+    ;;
+  stop)
+    /usr/sbin/mstpctl delbridge "$1"
+    exit
+    ;;
+  *)
+    echo "Invalid operation: $2" >&2
+    exit 1
+esac
diff --git a/meta-openembedded/meta-oe/recipes-extended/networking/mstpd/mstpd.service b/meta-openembedded/meta-oe/recipes-extended/networking/mstpd/mstpd.service
new file mode 100644
index 0000000..645db89
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/networking/mstpd/mstpd.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Multiple Spanning Tree Protocol Daemon
+Before=network-pre.target
+Wants=network-pre.target
+[Service]
+Restart=always
+Type=simple
+ExecStart=/usr/sbin/mstpd -d -v 2
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-openembedded/meta-oe/recipes-extended/networking/mstpd_git.bb b/meta-openembedded/meta-oe/recipes-extended/networking/mstpd_git.bb
new file mode 100644
index 0000000..e2565d6
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/networking/mstpd_git.bb
@@ -0,0 +1,32 @@
+PR = "r1"
+PV = "0.1+git${SRCPV}"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4325afd396febcb659c36b49533135d4"
+
+SRC_URI = "git://github.com/mstpd/mstpd;branch=master;protocol=https"
+SRCREV = "181c453fc1a00573e19f14960dcc54ad84beea7c"
+S = "${WORKDIR}/git"
+
+SRC_URI:append = " \
+  file://bridge-stp \
+  file://mstpd.service \
+"
+
+inherit autotools pkgconfig systemd
+
+PACKAGES =+ "${PN}-mstpd"
+FILES:${PN}-mstpd = "${sbindir}/mstpd ${sbindir}/mstpctl ${sbindir}/bridge-stp"
+
+SYSTEMD_PACKAGES = "${PN}-mstpd"
+SYSTEMD_SERVICE:${PN}-mstpd = "mstpd.service"
+
+do_install:append() {
+  rm -rf ${D}${libexecdir} ${D}${libdir}/NetworkManager
+  rmdir ${D}${libdir} || true
+
+  install -d -m 0755 ${D}/${sbindir}
+  install -m 0755 ${WORKDIR}/bridge-stp ${D}/${sbindir}
+
+  install -d -m 0755 ${D}${systemd_system_unitdir}
+  install -m 0644 ${WORKDIR}/mstpd.service ${D}${systemd_system_unitdir}/
+}
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Link-with-libm-for-floor-function.patch b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Link-with-libm-for-floor-function.patch
new file mode 100644
index 0000000..2f47261
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Link-with-libm-for-floor-function.patch
@@ -0,0 +1,71 @@
+From 09101da4efaa5584b7f3f3f3bfa5dbb4d1e26948 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 24 Jul 2023 22:09:21 -0700
+Subject: [PATCH] Link with libm for floor() function
+
+LLD linker finds this missing symbol
+
+arm-yoe-linux-gnueabi-ld.lld: error: undefined reference due to --no-allow-shlib-undefined: floor
+>>> referenced by src/lib/libwsman.so.1.0.0
+
+Upstream-Status: Submitted [https://github.com/Openwsman/openwsman/pull/195]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt         | 10 ++++++++++
+ configure.ac           |  3 ++-
+ src/lib/CMakeLists.txt |  4 ++++
+ 3 files changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6e54c66b..507ee633 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -297,6 +297,16 @@ ELSE(HAVE_LIBDL)
+  SET(HAVE_LIBDL 0)
+ ENDIF(HAVE_LIBDL)
+ 
++# m
++
++FIND_LIBRARY( HAVE_LIBM "m" )
++IF(HAVE_LIBM)
++ SET(M_LIBRARIES ${HAVE_LIBM})
++ SET(HAVE_LIBM 1)
++ELSE(HAVE_LIBM)
++ SET(HAVE_LIBM 0)
++ENDIF(HAVE_LIBM)
++
+ # crypt
+ 
+ FIND_LIBRARY( HAVE_LIBCRYPT "crypt" )
+diff --git a/configure.ac b/configure.ac
+index 125564da..010fa0b6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -128,7 +128,8 @@ daemon  \
+ va_copy \
+ memmove \
+ bcopy \
+-gmtime_r
++gmtime_r \
++floor
+ )
+ AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
+ AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname))
+diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
+index 5c51781f..496fd672 100644
+--- a/src/lib/CMakeLists.txt
++++ b/src/lib/CMakeLists.txt
+@@ -36,6 +36,10 @@ if( HAVE_LIBDL )
+ TARGET_LINK_LIBRARIES(wsman ${DL_LIBRARIES})
+ endif( HAVE_LIBDL )
+ 
++if( HAVE_LIBM )
++TARGET_LINK_LIBRARIES(wsman ${M_LIBRARIES})
++endif( HAVE_LIBM )
++
+ IF( ENABLE_EVENTING_SUPPORT )
+ TARGET_LINK_LIBRARIES( wsman ${WSMAN_CLIENT_PKG} )
+ ENDIF( ENABLE_EVENTING_SUPPORT )
+-- 
+2.41.0
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb
index 39a9c52..1c68b5f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb
@@ -21,6 +21,7 @@
            file://libssl-is-required-if-eventint-supported.patch \
            file://openwsmand.service \
            file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \
+           file://0001-Link-with-libm-for-floor-function.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.9.bb b/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.10.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.9.bb
rename to meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.10.bb
index a8a9386..2df5e09 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.10.bb
@@ -8,7 +8,7 @@
 
 SRC_URI = "git://github.com/sewenew/redis-plus-plus;branch=master;protocol=https \
            file://0001-CMakeLists.txt-fix-substitution-for-static-libs.patch"
-SRCREV = "0c4ba0370e46c3d0d443c0368d02195faa791219"
+SRCREV = "8b9ce389099608cf9bae617d79d257d2cc05e12f"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/0001-src-Do-not-reset-FINAL_LIBS.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/0001-src-Do-not-reset-FINAL_LIBS.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/0001-src-Do-not-reset-FINAL_LIBS.patch
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/0001-src-Do-not-reset-FINAL_LIBS.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/0006-Define-correct-gregs-for-RISCV32.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/0006-Define-correct-gregs-for-RISCV32.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/0006-Define-correct-gregs-for-RISCV32.patch
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/0006-Define-correct-gregs-for-RISCV32.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/GNU_SOURCE-7.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/GNU_SOURCE-7.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/GNU_SOURCE-7.patch
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/GNU_SOURCE-7.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/hiredis-use-default-CC-if-it-is-set.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/hiredis-use-default-CC-if-it-is-set.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/hiredis-use-default-CC-if-it-is-set.patch
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/hiredis-use-default-CC-if-it-is-set.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/init-redis-server b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/init-redis-server
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/init-redis-server
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/init-redis-server
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/lua-update-Makefile-to-use-environment-build-setting.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/lua-update-Makefile-to-use-environment-build-setting.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/lua-update-Makefile-to-use-environment-build-setting.patch
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/lua-update-Makefile-to-use-environment-build-setting.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/oe-use-libc-malloc.patch b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/oe-use-libc-malloc.patch
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/oe-use-libc-malloc.patch
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/oe-use-libc-malloc.patch
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/redis.conf b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/redis.conf
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/redis.conf
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/redis.conf
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/redis.service b/meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/redis.service
similarity index 100%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.11/redis.service
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis-7.0.12/redis.service
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_6.2.12.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_6.2.13.bb
similarity index 95%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis_6.2.12.bb
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis_6.2.13.bb
index 3ed6867..640831c 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_6.2.12.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_6.2.13.bb
@@ -17,7 +17,7 @@
            file://GNU_SOURCE.patch \
            file://0006-Define-correct-gregs-for-RISCV32.patch \
            "
-SRC_URI[sha256sum] = "75352eef41e97e84bfa94292cbac79e5add5345fc79787df5cbdff703353fb1b"
+SRC_URI[sha256sum] = "89ff27c80d420456a721ccfb3beb7cc628d883c53059803513749e13214a23d1"
 
 inherit autotools-brokensep update-rc.d systemd useradd
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.11.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.12.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.11.bb
rename to meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.12.bb
index 0fdbfe9..321b90d 100644
--- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.11.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_7.0.12.bb
@@ -17,7 +17,7 @@
            file://GNU_SOURCE-7.patch \
            file://0006-Define-correct-gregs-for-RISCV32.patch \
            "
-SRC_URI[sha256sum] = "ce250d1fba042c613de38a15d40889b78f7cb6d5461a27e35017ba39b07221e3"
+SRC_URI[sha256sum] = "9dd83d5b278bb2bf0e39bfeb75c3e8170024edbaf11ba13b7037b2945cf48ab7"
 
 inherit autotools-brokensep update-rc.d systemd useradd
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/files/0001-Fix-function-inline-errors-in-debug-optimization-Og.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/files/0001-Fix-function-inline-errors-in-debug-optimization-Og.patch
new file mode 100644
index 0000000..10e2b56
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/files/0001-Fix-function-inline-errors-in-debug-optimization-Og.patch
@@ -0,0 +1,34 @@
+From 6d575d98565ce3119a14359eecb11ccdff92a303 Mon Sep 17 00:00:00 2001
+From: Yash Shinde <53660251+Yashinde145@users.noreply.github.com>
+Date: Thu, 29 Jun 2023 18:10:15 +0530
+Subject: [PATCH] Fix function inline errors in debug optimization (-Og)
+
+Compiler does not inline any functions when using debug optimization (-Og).
+Hence, remove -Winline flag when compiling with debug optimization.
+
+Signed-off-by: Nicolas Marguet <nicolas.marguet@windriver.com>
+---
+Upstream-Status: Backport [https://github.com/rsyslog/librelp/commit/6d575d9]
+
+ configure.ac | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 21c1fde..1204c4e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -230,6 +230,12 @@ if test "$enable_debug" = "no"; then
+         AC_DEFINE(NDEBUG, 1, [Defined if debug mode is disabled.])
+ fi
+
++#Compiler does not inline any functions when not optimizing(-Og).
++#Hence, remove -Winline flag when DEBUG is enabled.
++#ifdef DEBUG
++WARN_CFLAGS="$(echo "$WARN_CFLAGS" | sed s/-Winline//g)"
++#endif
++
+ # valgrind
+ AC_ARG_ENABLE(valgrind,
+         [AS_HELP_STRING([--enable-valgrind],[Enable valgrind tests@<:@default=yes@:>@])],
+--
+2.39.0
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb
index e7b79ad..bac5abb 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb
@@ -7,6 +7,7 @@
 DEPENDS = "gmp nettle libidn zlib gnutls openssl"
 
 SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https;branch=stable \
+           file://0001-Fix-function-inline-errors-in-debug-optimization-Og.patch \
 "
 
 SRCREV = "b421f56d9ee31a966058d23bd23c966221c91396"
@@ -14,7 +15,3 @@
 S = "${WORKDIR}/git"
 
 inherit autotools pkgconfig
-
-DEBUG_OPTIMIZATION:append = " -Wno-error=inline"
-
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2302.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb
similarity index 97%
rename from meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2302.0.bb
rename to meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb
index 39d9516..c639e81 100644
--- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2302.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb
@@ -17,7 +17,7 @@
                     file://COPYING.ASL20;md5=052f8a09206615ab07326ff8ce2d9d32\
 "
 
-SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.tar.gz \
+SRC_URI = "https://www.rsyslog.com/files/download/rsyslog/${BPN}-${PV}.tar.gz \
            file://initscript \
            file://rsyslog.conf \
            file://rsyslog.logrotate \
@@ -31,7 +31,7 @@
     file://0001-Include-sys-time-h.patch \
 "
 
-SRC_URI[sha256sum] = "25415f85b662615ce3c83077d53758029e8743cb5929044bfd3564e3d626a3b9"
+SRC_URI[sha256sum] = "f6283efaadc609540a56e6bec88a362c966e77f29fe48e6b734bd6c1123e0be5"
 
 UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb
index c2a17d0..962d195 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb
@@ -21,9 +21,7 @@
 
 S = "${WORKDIR}/git"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2012-5638 \
-"
+CVE_STATUS[CVE-2012-5638] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
 DEPENDS = "libaio util-linux"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
index a52f364..2a7cf22 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb
@@ -34,9 +34,7 @@
 SRC_URI[md5sum] = "28021cdabc73690a94f4f9d57254ce30"
 SRC_URI[sha256sum] = "634a67b2f7ac3b386a79160eb44413d618e33e4e7fc74ae68b0240484af149dd"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2012-3381 \
-"
+CVE_STATUS[CVE-2012-3381] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
 inherit autotools
 inherit systemd
diff --git a/meta-openembedded/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb b/meta-openembedded/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
index 6dc5c0c..53030f2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Instant terminal sharing"
 DESCRIPTION = "Tmate is a fork of tmux. It provides an instant pairing solution."
-AUTHOR = "Marius Kriegerowski <marius.kriegerowski@gmail.com>"
 HOMEPAGE = "https://tmate.io/"
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://COPYING;md5=f7d9aab84ec6567139a4755c48d147fb"
diff --git a/meta-openembedded/meta-oe/recipes-extended/wtmpdb/files/0001-remove-lto-to-fix-link-error-of-clang.patch b/meta-openembedded/meta-oe/recipes-extended/wtmpdb/files/0001-remove-lto-to-fix-link-error-of-clang.patch
new file mode 100644
index 0000000..ef188e7
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/wtmpdb/files/0001-remove-lto-to-fix-link-error-of-clang.patch
@@ -0,0 +1,31 @@
+From 9840939789dec9153150e8f9ae34de4171a5c15e Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Wed, 19 Jul 2023 07:31:32 +0000
+Subject: [PATCH] remove lto to fix link error of clang
+
+error message:
+| tests/tst-dlopen.p/tst-dlopen.c.o: file not recognized: file format not recognized
+| clang-16: error: linker command failed with exit code 1 (use -v to see invocation)
+
+Upstream-Status: Pending
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 6fe8045..166a15b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -28,7 +28,6 @@ add_project_arguments(['-D_GNU_SOURCE=1',
+                        '-D_TIME_BITS=64'], language : 'c')
+ 
+ possible_cc_flags = [
+-                  '-flto=auto',
+                   '-ffat-lto-objects',
+ 		  '-fstack-protector-strong',
+ 		  '-funwind-tables',
+-- 
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-extended/wtmpdb/wtmpdb_0.7.1.bb b/meta-openembedded/meta-oe/recipes-extended/wtmpdb/wtmpdb_0.7.1.bb
new file mode 100644
index 0000000..cffae2d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/wtmpdb/wtmpdb_0.7.1.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Y2038 safe version of wtmp"
+HOMEPAGE = "https://github.com/thkukuk/wtmpdb"
+DESCRIPTION = "last reports the login and logout times of users and when the machine got rebooted."
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=020090a00b69dd2af9ab82eb0003ea2c"
+SECTION = "libs"
+
+SRCREV = "502b19a41c7a3b1b5e70969b18088683825f71f8"
+
+SRC_URI = "git://github.com/thkukuk/wtmpdb.git;branch=main;protocol=https \
+           file://0001-remove-lto-to-fix-link-error-of-clang.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd features_check
+
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} sqlite3 "
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SYSTEMD_SERVICE:${PN} = "wtmpdb-update-boot.service wtmpdb-rotate.service"
+
+EXTRA_OEMESON = " -Dpamlibdir=${libdir}"
+
+do_install:append () {
+      if [ -d ${D}${prefix}/lib/systemd -a ${D}${prefix}/lib != `dirname ${D}${systemd_unitdir}` ]; then
+          # Fix makefile hardcoded path assumptions for systemd (assumes $prefix)
+          # without usrmerge distro feature enabled
+          install -d `dirname ${D}${systemd_unitdir}`
+          mv ${D}${prefix}/lib/systemd `dirname ${D}${systemd_unitdir}`
+      fi
+}
+
+FILES:${PN} += " ${systemd_system_unitdir} "
+FILES:${PN} += " ${libdir} "
+FILES:${PN} += " ${nonarch_libdir}/tmpfiles.d/* "
diff --git a/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb b/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb
index 39b6a2b..91653e2 100644
--- a/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb
@@ -74,7 +74,7 @@
 PACKAGECONFIG[mspack] = "-DwxUSE_LIBMSPACK=ON,-DwxUSE_LIBMSPACK=OFF,libmspack"
 PACKAGECONFIG[opengl] = "-DwxUSE_OPENGL=ON,-DwxUSE_OPENGL=OFF,libglu"
 PACKAGECONFIG[sdl_audio] = "-DwxUSE_LIBSDL=ON,-DwxUSE_LIBSDL=OFF,libsdl2"
-PACKAGECONFIG[webkit] = "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk,,,no_gui"
+PACKAGECONFIG[webkit] = "-DwxUSE_WEBVIEW_WEBKIT=ON,-DwxUSE_WEBVIEW_WEBKIT=OFF,webkitgtk3,,,no_gui"
 PACKAGECONFIG[curl] = "-DwxUSE_WEBREQUEST_CURL=ON,-DwxUSE_WEBREQUEST_CURL=OFF,curl"
 
 # Support LFS unconditionally
diff --git a/poky/meta/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch b/meta-openembedded/meta-oe/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch
similarity index 100%
rename from poky/meta/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch
rename to meta-openembedded/meta-oe/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch
diff --git a/poky/meta/recipes-gnome/gcr/gcr3_3.41.1.bb b/meta-openembedded/meta-oe/recipes-gnome/gcr/gcr3_3.41.1.bb
similarity index 100%
rename from poky/meta/recipes-gnome/gcr/gcr3_3.41.1.bb
rename to meta-openembedded/meta-oe/recipes-gnome/gcr/gcr3_3.41.1.bb
diff --git a/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_git.bb b/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_git.bb
index ebf88cd..65c9041 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/fbida/fbida_git.bb
@@ -2,7 +2,6 @@
 DESCRIPTION = "The fbida project contains a few applications for viewing and editing images, \
                with the main focus being photos."
 HOMEPAGE = "https://www.kraxel.org/blog/linux/fbida/"
-AUTHOR = "Gerd Hoffmann"
 SECTION = "utils"
 
 LICENSE = "GPL-2.0-only"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.10.bb b/meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.10.bb
index 0f0e618..ec18f11 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.10.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/feh/feh_3.10.bb
@@ -1,5 +1,4 @@
 SUMMARY = "X11 image viewer aimed mostly at console users"
-AUTHOR = "Tom Gilbert & Daniel Friesel"
 HOMEPAGE = "https://feh.finalrewind.org/"
 SECTION = "x11/utils"
 LICENSE = "MIT"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
index 7ab15c9..ccc1140 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
@@ -29,10 +29,6 @@
 "
 SRC_URI[sha256sum] = "d593695fdaa8a19297523b679ad13d3ef2027b0b7f14cc2bc23e77969ed81565"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2014-9157 \
-"
-
 PACKAGECONFIG ??= "librsvg"
 PACKAGECONFIG[librsvg] = "--with-librsvg,--without-librsvg,librsvg"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
index 27dff82..85da5bf 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
@@ -6,9 +6,7 @@
 SRC_URI = "git://github.com/jasper-software/jasper.git;protocol=https;branch=master"
 SRCREV = "fe00207dc10db1d7cc6f2757961c5c6bdfd10973"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2015-8751 \
-"
+CVE_STATUS[CVE-2015-8751] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
index 50c5015..814e6cd 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
@@ -81,5 +81,4 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-#CVE-2019-14906 is a RHEL specific vulnerability.
-CVE_CHECK_IGNORE += "CVE-2019-14906"
+CVE_STATUS[CVE-2019-14906] = "not-applicable-platform: Applies on RHEL only"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb b/meta-openembedded/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb
index 9e820d0..139aa47 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb
@@ -9,7 +9,6 @@
 
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8ce0a84e5276f01364119c873b712c4f"
-AUTHOR = "Philippe Coval <philippe.coval.ext@huawei.com>"
 
 DEPENDS += "lvgl"
 DEPENDS += "lv-drivers"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.3.7.bb b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.3.8.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.3.7.bb
rename to meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.3.8.bb
index 860ee7a..6103a02 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.3.7.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/lvgl/lvgl_8.3.8.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
 
 SRC_URI = "git://github.com/lvgl/lvgl;protocol=https;branch=release/v8.3"
-SRCREV = "2b56e04205481daa6575bd5f7ab5df59d11676eb"
+SRCREV = "e6d7be00bfa5e1df450c7b713003a9effa03c614"
 
 inherit cmake
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/openbox/obconf_git.bb b/meta-openembedded/meta-oe/recipes-graphics/openbox/obconf_git.bb
index 053af5a..efffd96 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/openbox/obconf_git.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/openbox/obconf_git.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Openbox configuration tool"
-AUTHOR = "Dana Jansens & Tim Riley & Javeed Shaikh"
 HOMEPAGE = "http://openbox.org/wiki/ObConf:About"
 SECTION = "x11/wm"
 LICENSE = "GPL-2.0-or-later"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb b/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
index 225619e..039816e 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
@@ -1,5 +1,4 @@
 SUMMARY = "C library for encoding data in a QR Code symbol"
-AUTHOR = "Kentaro Fukuchi"
 HOMEPAGE = "http://fukuchi.org/works/qrencode/"
 SECTION = "libs"
 LICENSE = "LGPL-2.1-only"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.1.bb b/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.1.bb
index 7140a72..4d9d4d3 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/surf/surf_2.1.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2a6f86d002ae9ae1eb1ccc466289f146"
 
-DEPENDS = "webkitgtk gtk+3 glib-2.0 gcr3"
+DEPENDS = "webkitgtk3 gtk+3 glib-2.0 gcr3"
 
 REQUIRED_DISTRO_FEATURES = "x11 opengl"
 
diff --git a/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb b/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb
index 7eddf1d..65cafab 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb
@@ -2,7 +2,6 @@
 DESCRIPTION = "Terminus Font is a clean, fixed width bitmap font, designed for \
                long (8 and more hours per day) work with computers."
 HOMEPAGE = "http://terminus-font.sourceforge.net/"
-AUTHOR = "Dimitar Zhekov"
 SECTION = "fonts"
 
 LICENSE = "OFL-1.1"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.1.bb b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.2.bb
similarity index 91%
rename from meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.1.bb
rename to meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.2.bb
index 8e54a27..db66e89 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tesseract/tesseract_5.3.2.bb
@@ -5,7 +5,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-SRCREV = "71af4542990adae6d9f31d6657068bc0139c6ec4"
+SRCREV = "489f101c7e2276c00490f3ab70e9e7926fc6b481"
 SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=main;protocol=https"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.22.bb b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.22.bb
index cb25632..01da03a 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.22.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/tslib/tslib_1.22.bb
@@ -5,7 +5,6 @@
 space interface to touchscreen functionality."
 HOMEPAGE = "http://tslib.org/"
 
-AUTHOR = "Martin Kepplinger <martink@posteo.de>"
 SECTION = "base"
 LICENSE = "LGPL-2.0-or-later & GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "\
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
index 945a5f3..5a403f0 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
@@ -3,7 +3,6 @@
 SUMMARY = "Sazanami Gothic/Mincho Japanese TrueType fonts"
 SUMMARY:ttf-sazanami-gothic = "Sazanami Gothic Japanese TrueType font"
 SUMMARY:ttf-sazanami-mincho = "Sazanami Mincho Japanese TrueType font"
-AUTHOR = "Electronic Font Open Laboratory (/efont/)"
 HOMEPAGE = "http://sourceforge.jp/projects/efont/"
 LICENSE = "PD"
 LIC_FILES_CHKSUM = "file://README;md5=97d739900be6e852830f55aa3c07d4a0"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb
index 3dad368..461e3de 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb
@@ -1,7 +1,6 @@
 require ttf.inc
 
 SUMMARY = "Thai Linux Working Group Fonts"
-AUTHOR = "Thai Linux Working Group"
 HOMEPAGE = "http://linux.thai.net/projects/fonts-tlwg"
 LICENSE = "GPL-2.0-only & TLWG"
 LIC_FILES_CHKSUM = "file://../fonts-tlwg-${PV}/COPYING;md5=3d20cd7eadf4afd5460c0adb32e387fd"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb
index 6b79eb9..4cc5afd 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb
@@ -1,7 +1,6 @@
 require ttf.inc
 
 SUMMARY = "Japanese TrueType fonts from Vine Linux"
-AUTHOR = "Contributor: noonov <noonov@gmail.com>"
 HOMEPAGE = "http://vlgothic.dicey.org/"
 
 LICENSE = "ttf-mplus & BSD-3-Clause"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb
index bc14feb..21897a7 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb
@@ -1,7 +1,6 @@
 require ttf.inc
 
 SUMMARY = "WenQuanYi Zen Hei - A Hei-Ti Style Chinese font"
-AUTHOR = "Qianqian Fang and The WenQuanYi Project Contributors"
 HOMEPAGE = "http://wenq.org/"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=cf540fc7d35b5777e36051280b3a911c"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb b/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
index f3602f1..e80aebc 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Remove idle cursor image from screen."
 DESCRIPTION = "This is a rewrite of the popular tool unclutter, but using the x11-xfixes extension."
-AUTHOR = "Ingo Bürk"
 
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b25d2c4cca175f44120d1b8e67cb358d"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
index 5f7c0be..92b3ac5 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
@@ -2,7 +2,6 @@
 HOMEPAGE = "http://www.karlrunge.com/x11vnc/"
 
 SECTION = "x11/utils"
-AUTHOR = "Karl Runge"
 LICENSE = "GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://src/x11vnc.h;endline=31;md5=e871a2ad004776794b616822dcab6314"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_383.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_384.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_383.bb
rename to meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_384.bb
index cac0003..ae046b1 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_383.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xterm_384.bb
@@ -8,7 +8,7 @@
            file://0001-Add-configure-time-check-for-setsid.patch \
           "
 
-SRC_URI[sha256sum] = "a06613bcda508c2a1bff6d4230895da74a798799a2e39a23bac82089d7b9a998"
+SRC_URI[sha256sum] = "31ef870740ceae020c3c4b4a9601c7f47bfd46672c1aaf2d213a565d64cbc373"
 
 PACKAGECONFIG ?= ""
 PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
diff --git a/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb b/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb
index 40fccbd..9e46215 100644
--- a/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb
+++ b/meta-openembedded/meta-oe/recipes-graphics/yad/yad_6.0.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Yet Another Dialog"
 DESCRIPTION = "Program allowing you to display GTK+ dialog boxes from command line or shell scripts."
-AUTHOR = "Victor Ananjevsky"
 
 LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
diff --git a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb
index 245f872..a755e39 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb
@@ -143,6 +143,7 @@
 RDEPENDS:python3-pygps = " \
     python3-core \
     python3-io \
+    python3-pyserial \
     python3-threading \
     python3-terminal \
     gpsd \
diff --git a/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb b/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
index 3277fb1..d85ef20 100644
--- a/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
+++ b/meta-openembedded/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
@@ -74,6 +74,7 @@
 }
 
 USERADD_PACKAGES = "${PN}-bin"
+GROUPADD_PARAM:${PN}-bin = "--system mail"
 USERADD_PARAM:${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus"
 
 SYSTEMD_PACKAGES = "${PN}-bin"
@@ -95,6 +96,3 @@
 FILES:${PN}-staticdev += "${libdir}/sasl2/*.a"
 
 INSANE_SKIP:${PN} += "dev-so"
-
-# CVE-2020-8032 affects only openSUSE
-CVE_CHECK_IGNORE += "CVE-2020-8032"
diff --git a/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb b/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb
index 2a6cfb5..f2bf52c 100644
--- a/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb
+++ b/meta-openembedded/meta-oe/recipes-support/anthy/anthy_9100h.bb
@@ -1,5 +1,4 @@
 DESCRIPTION="Anthy is a system for Japanese input method. It converts Hiragana text to Kana Kanji mixed text."
-AUTHOR = "Anthy Developers <anthy-dev@lists.sourceforge.jp>"
 HOMEPAGE = "http://anthy.sourceforge.jp"
 
 LICENSE = "LGPL-2.1-only & GPL-2.0-only"
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.28.0.bb b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.28.0.bb
index ae72126..8407440 100644
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.28.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.28.0.bb
@@ -2,7 +2,6 @@
 DESCRIPTION = "Asio is a cross-platform C++ library for network and low-level \
         I/O programming that provides developers with a consistent asynchronous \
         model using a modern C++ approach."
-AUTHOR = "Christopher M. Kohlhoff (chris at kohlhoff dot com)"
 HOMEPAGE = "http://think-async.com/Asio"
 SECTION = "libs"
 LICENSE = "BSL-1.0"
diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
index b1d2abd..bb1f536 100644
--- a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb
@@ -24,9 +24,7 @@
 SRC_URI[md5sum] = "1077da884ed94f2bc3c81ac3ab970436"
 SRC_URI[sha256sum] = "be1c010a77086b7d98376fce96514afcd73c3f20a8d1fe01520899ff69a73d69"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2011-3618 \
-"
+CVE_STATUS[CVE-2011-3618] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
 do_compile() {
     oe_runmake all
diff --git a/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb b/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
index a06122a..18dc885 100644
--- a/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
@@ -1,6 +1,5 @@
 SUMMARY = "[Boost::ext].SML (State Machine Language)"
 DESCRIPTION = "Your scalable C++14 one header only State Machine Library with no dependencies"
-AUTHOR = "Krzysztof Jusiak"
 HOMEPAGE = "https://github.com/boost-ext/sml"
 BUGTRACKER = "https://github.com/boost-ext/sml/issues"
 SECTION = "libs"
diff --git a/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.1.bb b/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.2.bb
similarity index 90%
rename from meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.1.bb
rename to meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.2.bb
index 3379ba1..8e38517 100644
--- a/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/c-periphery/c-periphery_2.4.2.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=be30d45bdc453f70a494c149c2168289"
 
 SRC_URI = "git://github.com/vsergeev/c-periphery;protocol=https;branch=master"
-SRCREV = "6c5302cf8255c9bb75e535c566a8f1d94cfded5d"
+SRCREV = "91f9678d2a35a3af3c633f20165bdde8bea32209"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb
index 2b74ad8..d3c6b42 100644
--- a/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb
@@ -1,5 +1,4 @@
 DESCRIPTION = "Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization problems."
-AUTHOR = "Sameer Agarwal and Keir Mierle and Others"
 HOMEPAGE = "http://ceres-solver.org/"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bb761279816b72be19d7ce646e4e2a14"
diff --git a/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb
index 7f80a30..17547ca 100644
--- a/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb
+++ b/meta-openembedded/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb
@@ -1,5 +1,4 @@
 DESCRIPTION = "USB Device Firmware Upgrade utility"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
 HOMEPAGE = "http://dfu-util.sourceforge.net"
 SECTION = "devel"
 LICENSE = "GPL-2.0-only"
diff --git a/meta-openembedded/meta-oe/recipes-support/edid-decode/edid-decode_git.bb b/meta-openembedded/meta-oe/recipes-support/edid-decode/edid-decode_git.bb
index 91570b6..c1f5121 100644
--- a/meta-openembedded/meta-oe/recipes-support/edid-decode/edid-decode_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/edid-decode/edid-decode_git.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Decode EDID data in human-readable format"
 DESCRIPTION = "edid-decode decodes EDID monitor description data in human-readable format."
-AUTHOR = "Hans Verkuil <hverkuil-cisco@xs4all.nl>"
 HOMEPAGE = "https://hverkuil.home.xs4all.nl/edid-decode/edid-decode.html"
 
 SECTION = "console/utils"
diff --git a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_28.2.bb b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_28.2.bb
index df210ef..d440265 100644
--- a/meta-openembedded/meta-oe/recipes-support/emacs/emacs_28.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/emacs/emacs_28.2.bb
@@ -11,9 +11,7 @@
 
 SRC_URI[sha256sum] = "ee21182233ef3232dc97b486af2d86e14042dbb65bbc535df562c3a858232488"
 
-CVE_CHECK_IGNORE = "\
-    CVE-2007-6109 \
-"
+CVE_STATUS[CVE-2007-6109] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
 PACKAGECONFIG[gnutls] = "--with-gnutls=yes,--with-gnutls=no,gnutls"
 PACKAGECONFIG[kerberos] = "--with-kerberos=yes,--with-kerberos=no,krb5"
diff --git a/meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.2.bb b/meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.3.bb
similarity index 92%
rename from meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.2.bb
rename to meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.3.bb
index 31cd077..599c490 100644
--- a/meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/function2/function2_4.2.3.bb
@@ -3,7 +3,7 @@
 HOMEPAGE = "https://naios.github.io/function2"
 LICENSE = "BSL-1.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-SRCREV = "2d3a878ef19dd5d2fb188898513610fac0a48621"
+SRCREV = "9e303865d14f1204f09379e37bbeb30c4375139a"
 PV .= "+git${SRCPV}"
 
 SRC_URI += "gitsm://github.com/Naios/function2;branch=master;protocol=https"
diff --git a/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb b/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb
index 91e5b55..c7a487b 100644
--- a/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb
@@ -1,5 +1,4 @@
 SUMMARY = "A Simple library for communicating with USB and Bluetooth HID devices"
-AUTHOR = "Alan Ott"
 HOMEPAGE = "http://www.signal11.us/oss/hidapi/"
 SECTION = "libs"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/inih/libinih_56.bb b/meta-openembedded/meta-oe/recipes-support/inih/libinih_57.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-support/inih/libinih_56.bb
rename to meta-openembedded/meta-oe/recipes-support/inih/libinih_57.bb
index 89d68c6..08957e1 100644
--- a/meta-openembedded/meta-oe/recipes-support/inih/libinih_56.bb
+++ b/meta-openembedded/meta-oe/recipes-support/inih/libinih_57.bb
@@ -9,6 +9,6 @@
 SRC_URI = "git://github.com/benhoyt/inih.git;protocol=https;branch=master"
 
 S = "${WORKDIR}/git"
-SRCREV = "5e1d9e2625842dddb3f9c086a50f22e4f45dfc2b"
+SRCREV = "9cecf0643da0846e77f64d10a126d9f48b9e05e8"
 
 inherit meson pkgconfig
diff --git a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
index 281de52..8a0ae17 100644
--- a/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Command line tools and C library providing a simple interface to inotify"
-AUTHOR = "Rohan McGovern <rohan@mcgovern.id.au>"
 HOMEPAGE = "http://wiki.github.com/rvoicilas/inotify-tools"
 SECTION = "console/devel"
 LICENSE = "GPL-2.0-only"
diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.8.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.9.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.8.bb
rename to meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.9.bb
index 0afe8a6..dfc7b42 100644
--- a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_2.9.bb
@@ -9,7 +9,7 @@
 S = "${WORKDIR}/git"
 B = "${S}"
 
-SRCREV = "12b8e6bff611eecb0343ee8a765151e7d9d3547b"
+SRCREV = "2fa27aa3acccc70b9f6c3bf2e569e3d33a381e83"
 SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master;protocol=https"
 
 inherit gettext autotools pkgconfig python3native
diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
index 1cae76b..28305c9 100644
--- a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
@@ -1,5 +1,4 @@
 DESCRIPTION = "Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms."
-AUTHOR = "Benoît Jacob and Gaël Guennebaud and others"
 HOMEPAGE = "http://eigen.tuxfamily.org/"
 LICENSE = "MPL-2.0 & Apache-2.0 & BSD-3-Clause & GPL-3.0-only & LGPL-2.1-only & MINPACK"
 LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad \
diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
index cb19bc5..0eda47b 100644
--- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
+++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -1,5 +1,4 @@
 SUMMARY = "C library and tools for interacting with the linux GPIO character device"
-AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
 RECIPE_MAINTAINER = "Bartosz Golaszewski <brgl@bgdev.pl>"
 
 inherit autotools pkgconfig ptest
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index 7907dcf..ecbd2c8 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -4,8 +4,8 @@
 LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
 
-SRCREV = "c4498c27761d04d4ac631ec59c1613bfed079da5"
-PV = "0.24"
+SRCREV = "eee8cba6f42177a094ebe16759606a719676fda7"
+PV = "0.25"
 
 SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https;branch=master"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
diff --git a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
index 06536ca..4d4a5ff 100644
--- a/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
@@ -2,7 +2,6 @@
 
 SUMMARY = "Mimetic Library for multi-part parsing"
 DESCRIPTION = "Email library (MIME) written in C++ designed to be easy to use and integrate but yet fast and efficient."
-AUTHOR = "Stefano Barbato <stefano@codesink.org>"
 HOMEPAGE = "http://www.codesink.org/mimetic_mime_library.html"
 BUGTRACKER = "https://github.com/LadislavSopko/mimetic/issues"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.5.bb b/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.5.bb
new file mode 100644
index 0000000..4b6f1e3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.5.bb
@@ -0,0 +1,22 @@
+SUMMARY = "libnvme development C library"
+DESCRIPTION = "\
+libnvme provides type definitions for NVMe specification structures, \
+enumerations, and bit fields, helper functions to construct, dispatch, \
+and decode commands and payloads, and utilities to connect, scan, and \
+manage nvme devices on a Linux system."
+HOMEPAGE = "https://github.com/linux-nvme/${BPN}"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only & CC0-1.0 & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+                    file://ccan/licenses/CC0;md5=c17af43b05840255a6fedc5eda9d56cc \
+                    file://ccan/licenses/BSD-MIT;md5=838c366f69b72c5df05c96dff79b35f2"
+DEPENDS = "json-c"
+SRCREV = "4fea83db8328ea788ea8f1001e8ce1cb80ef5fae"
+
+SRC_URI = "git://github.com/linux-nvme/libnvme;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON += "-Dkeyutils=disabled -Dopenssl=disabled -Dpython=disabled"
diff --git a/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.4.bb b/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.4.bb
index cb30f4c..3cad665 100644
--- a/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/librsync/librsync_2.3.4.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Remote delta-compression library."
-AUTHOR = "Martin Pool, Andrew Tridgell, Donovan Baarda, Adam Schubert"
 
 LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
diff --git a/meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.0.bb b/meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.0.bb
new file mode 100644
index 0000000..1efccdd
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libtommath/libtommath_1.2.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "LibTomMath is a number theoretic multiple-precision integer library"
+HOMEPAGE = "https://www.libtom.net/LibTomMath"
+SECTION = "libs"
+LICENSE = "Unlicense"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=23e7e0a32e53a2b1d35f5fd9ef053402"
+
+DEPENDS = "libtool-cross"
+
+SRC_URI = "git://github.com/libtom/libtommath.git;protocol=https;branch=master"
+
+SRCREV = "6ca6898bf37f583c4cc9943441cd60dd69f4b8f2"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "'PREFIX=${prefix}' 'DESTDIR=${D}' 'LIBPATH=${libdir}' 'CFLAGS=${CFLAGS}'"
+
+do_compile() {
+    oe_runmake -f makefile.shared
+}
+
+do_install() {
+    oe_runmake -f makefile.shared install
+}
diff --git a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.74.bb b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.74.bb
index 38407a7..ea5abe0 100644
--- a/meta-openembedded/meta-oe/recipes-support/nss/nss_3.74.bb
+++ b/meta-openembedded/meta-oe/recipes-support/nss/nss_3.74.bb
@@ -283,12 +283,8 @@
 
 CVE_PRODUCT += "network_security_services"
 
-# CVE-2006-5201 affects only Sun Solaris
-CVE_CHECK_IGNORE += "CVE-2006-5201"
+CVE_STATUS_GROUPS += "CVE_STATUS_NSS"
+CVE_STATUS_NSS[status] = "not-applicable-config: This only affect the legacy db (libnssdbm), only compiled with --enable-legacy-db"
+CVE_STATUS_NSS = "CVE-2017-11695 CVE-2017-11696 CVE-2017-11697 CVE-2017-11698"
 
-# CVES CVE-2017-11695 CVE-2017-11696 CVE-2017-11697 CVE-2017-11698 only affect
-# the legacy db (libnssdbm), only compiled with --enable-legacy-db.
-CVE_CHECK_IGNORE += "CVE-2017-11695 CVE-2017-11696 CVE-2017-11697 CVE-2017-11698"
-
-# vulnerability was introduced in 3.77 and fixed in 3.87
-CVE_CHECK_IGNORE += "CVE-2022-3479"
+CVE_STATUS[CVE-2022-3479] = "not-applicable-config: vulnerability was introduced in 3.77 and fixed in 3.87"
diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.13.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.13.bb
index b117677..7dc926c 100644
--- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.13.bb
+++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.5.13.bb
@@ -233,6 +233,3 @@
 }
 
 BBCLASSEXTEND = "native"
-
-# CVE-2015-3276 has no target code.
-CVE_CHECK_IGNORE += "CVE-2015-3276"
diff --git a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
index 3d8a457..ae251b5 100644
--- a/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
@@ -15,10 +15,8 @@
 
 SRC_URI[sha256sum] = "19654ad276b149646371fbdac21bc7620742f2975f7399fed0ffc1a18fbaf603"
 
-CVE_CHECK_IGNORE += "\
-    CVE-2010-1624 \
-    CVE-2011-3594 \
-"
+CVE_STATUS[CVE-2010-1624] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_STATUS[CVE-2011-3594] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
 
 PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest b/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
index c9896ea..521cc08 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/run-ptest
@@ -3,6 +3,6 @@
   oldpath=`pwd` >/dev/null
   cd bin
   echo Testing $runner
-  ./$runner-testrunner -all
+  ./$runner -ignore $oldpath/cppignore.lnx -all
   cd $oldpath >/dev/null
 done < testrunners
diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb
index 51bd561..47dac1a 100644
--- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.12.4.bb
@@ -72,17 +72,14 @@
     poco_libdir = d.expand('${libdir}')
     pn = d.getVar("PN")
     packages = []
-    testrunners = []
 
     def hook(f, pkg, file_regex, output_pattern, modulename):
         packages.append(pkg)
-        testrunners.append(modulename)
 
     do_split_packages(d, poco_libdir, r'^libPoco(.*)\.so\..*$',
                     'poco-%s', 'Poco %s component', extra_depends='', prepend=True, hook=hook)
 
     d.setVar("RRECOMMENDS:%s" % pn, " ".join(packages))
-    d.setVar("POCO_TESTRUNNERS", "\n".join(testrunners))
 }
 
 do_install_ptest () {
@@ -90,7 +87,11 @@
        cp -f ${B}/lib/libCppUnit.so* ${D}${libdir}
        cp -rf ${B}/*/testsuite/data ${D}${PTEST_PATH}/bin/
        find "${D}${PTEST_PATH}" -executable -exec chrpath -d {} \;
-       echo "${POCO_TESTRUNNERS}" > "${D}${PTEST_PATH}/testrunners"
+       rm -f ${D}${PTEST_PATH}/testrunners
+       for f in ${D}${PTEST_PATH}/bin/*-testrunner; do
+            echo `basename $f` >> ${D}${PTEST_PATH}/testrunners
+       done
+       install -Dm 0644 ${S}/cppignore.lnx ${D}${PTEST_PATH}/cppignore.lnx
 }
 
 PACKAGES_DYNAMIC = "poco-.*"
diff --git a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19/0001-Find-jack.patch b/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19/0001-Find-jack.patch
deleted file mode 100644
index d6c6300..0000000
--- a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19/0001-Find-jack.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8ec1b100afda5b3e31f9d44af04b04b16dfff2e4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Tue, 18 May 2021 00:15:46 +0200
-Subject: [PATCH] Find jack with pkgconfig
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 122fe93..ab7d7f5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -274,7 +274,8 @@ ELSE()
- 
-   ELSEIF(UNIX)
- 
--    FIND_PACKAGE(Jack)
-+    find_package(PkgConfig REQUIRED)
-+    pkg_check_modules (JACK jack)
-     IF(JACK_FOUND)
-       OPTION(PA_USE_JACK "Enable support for Jack" ON)
-     ELSE()
--- 
-2.31.1
-
diff --git a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19/0001-cmake-Use-GNUInstallDirs.patch b/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19/0001-cmake-Use-GNUInstallDirs.patch
deleted file mode 100644
index 892399d..0000000
--- a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19/0001-cmake-Use-GNUInstallDirs.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From ced7af0420c1df0ac02f0c25e7c3534431ebd7fd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Jul 2021 17:09:49 -0700
-Subject: [PATCH] cmake: Use GNUInstallDirs
-
-Helps install cmakefiles in right libdir
-
-Upstream-Status: Submitted [https://github.com/PortAudio/portaudio/pull/610]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,6 +6,8 @@
- 
- CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
- 
-+include(GNUInstallDirs)
-+
- # Check if the user is building PortAudio stand-alone or as part of a larger
- # project. If this is part of a larger project (i.e. the CMakeLists.txt has
- # been imported by some other CMakeLists.txt), we don't want to trump over
-@@ -452,18 +454,18 @@ IF(NOT PA_OUTPUT_OSX_FRAMEWORK AND NOT P
-   CONFIGURE_FILE(cmake_support/portaudio-2.0.pc.in ${CMAKE_CURRENT_BINARY_DIR}/portaudio-2.0.pc @ONLY)
-   INSTALL(FILES README.md DESTINATION share/doc/portaudio)
-   INSTALL(FILES LICENSE.txt DESTINATION share/doc/portaudio)
--  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/portaudio-2.0.pc DESTINATION lib/pkgconfig)
-+  INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/portaudio-2.0.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
-   INSTALL(FILES ${PA_PUBLIC_INCLUDES} DESTINATION include)
-   INSTALL(TARGETS ${PA_TARGETS}
-     EXPORT portaudio-targets
--    RUNTIME DESTINATION bin
--    LIBRARY DESTINATION lib
--    ARCHIVE DESTINATION lib)
--  INSTALL(EXPORT portaudio-targets FILE "portaudioTargets.cmake" DESTINATION "lib/cmake/portaudio")
-+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-+    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+  INSTALL(EXPORT portaudio-targets FILE "portaudioTargets.cmake" DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/portaudio")
-   EXPORT(TARGETS ${PA_TARGETS} FILE "${PROJECT_BINARY_DIR}/cmake/portaudio/portaudioTargets.cmake")
-   INSTALL(FILES "${CMAKE_BINARY_DIR}/cmake/portaudio/portaudioConfig.cmake"
-                 "${CMAKE_BINARY_DIR}/cmake/portaudio/portaudioConfigVersion.cmake"
--    DESTINATION "lib/cmake/portaudio")
-+    DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/portaudio")
- 
-   IF (NOT TARGET uninstall)
-     CONFIGURE_FILE(
diff --git a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb b/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
index f34912e..c49a259 100644
--- a/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
@@ -3,18 +3,17 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df"
 
-PV = "v190700"
+PV .= "+git${SRCPV}"
 
-SRC_URI = " \
-    git://github.com/PortAudio/portaudio.git;branch=master;protocol=https \
-    file://0001-Find-jack.patch \
-    file://0001-cmake-Use-GNUInstallDirs.patch \
-"
-SRCREV = "147dd722548358763a8b649b3e4b41dfffbcfbb6"
+SRC_URI = "git://github.com/PortAudio/portaudio.git;branch=master;protocol=https"
+SRCREV = "929e2e8f7af281c5eb4fa07758930d542ec43d97"
+
 S = "${WORKDIR}/git"
 
 inherit cmake pkgconfig
 
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
+
 PACKAGECONFIG ??= "alsa jack"
 PACKAGECONFIG[alsa] = ",,alsa-lib"
 PACKAGECONFIG[jack] = ",,jack"
@@ -28,6 +27,3 @@
         done
     fi
 }
-
-FILES_SOLIBSDEV = ""
-FILES:${PN} += "${libdir}/libportaudio.so"
diff --git a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
index 2405839..b61fb02 100644
--- a/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
+++ b/meta-openembedded/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
@@ -1,7 +1,6 @@
 SUMMARY = "Tool to display and modify PXA registers at runtime"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://pxaregs.c;endline=12;md5=668d061b7637acc68cb8071c9be372e6"
-AUTHOR = "Holger Schurig <hs4233@mail.mn-solutions.de>"
 HOMEPAGE = "http://www.mn-logistik.de/unsupported/pxa250/"
 
 SRC_URI = "file://pxaregs.c \
diff --git a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb
index 1aa492c..28da51a 100644
--- a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb
@@ -3,7 +3,6 @@
                EDID information from the monitor, and parse-edid, which turns \
 	       the raw binary information into a xorg.conf-compatible monitor \
 	       section."
-AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>"
 HOMEPAGE = "http://www.polypux.org/projects/read-edid/"
 SECTION = "console/utils"
 LICENSE = "read-edid"
diff --git a/meta-openembedded/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb b/meta-openembedded/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
index 4c34368..c038966 100644
--- a/meta-openembedded/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Reboot the device to a specific mode."
-AUTHOR = "Daniele Debernardi <drebrez@gmail.com>"
 
 LICENSE = "GPL-3.0-or-later"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
diff --git a/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb b/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
index 71588ab..2fe61e6 100644
--- a/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
+++ b/meta-openembedded/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Receive a forwarded serial from serial-forward and provide a PTY"
-AUTHOR = "Holger 'Zecke' Freyther"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
 SECTION = "console/network"
diff --git a/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb b/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
index fe5cfc0..84bb25e 100644
--- a/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Forward a serial using TCP/IP"
-AUTHOR = "Holger 'Zecke' Freyther'"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
 SECTION = "console/devel"
diff --git a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
index c190d7e..1e3d6be 100644
--- a/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -1,6 +1,5 @@
 DESCRIPTION = "This package contains some simple command line tools to help using Linux spidev devices"
 HOMEPAGE = "https://github.com/cpb-/spi-tools"
-AUTHOR = "Christophe BLAESS"
 LICENSE="GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch
deleted file mode 100644
index 37ef3a9..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Initial support for kernel 6.4
-https://www.virtualbox.org/changeset/99666/vbox
-
-Upstream-Status: Backport [https://gitweb.gentoo.org/repo/gentoo.git/tree/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch]
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
-
---- a/src/VBox/Additions/linux/sharedfolders/regops.c
-+++ b/src/VBox/Additions/linux/sharedfolders/regops.c
-@@ -75,4 +75,11 @@
- #if RTLNX_VER_MAX(2,5,12)
- # define PageUptodate(a_pPage) Page_Uptodate(a_pPage)
-+#endif
-+
-+/** Starting from 6.4.0, iter_iov() macro should be used in order to access to iov field.  */
-+#if RTLNX_VER_MIN(6,4,0)
-+# define VBOX_ITER_IOV(_iter) iter_iov(_iter)
-+#else
-+# define VBOX_ITER_IOV(_iter) iter->iov
- #endif
- 
-@@ -2400,5 +2407,5 @@
-     if (iter_is_iovec(iter) || (VBSF_GET_ITER_TYPE(iter) & ITER_KVEC)) {
- # endif
--        const struct iovec *pCurIov    = iter->iov;
-+        const struct iovec *pCurIov    = VBOX_ITER_IOV(iter);
-         size_t              cLeft      = iter->nr_segs;
-         size_t              cPagesSpan = 0;
-
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch
deleted file mode 100644
index 20c8fbd..0000000
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Initial support for kernel 6.4
-https://www.virtualbox.org/changeset/99667/vbox
-
-
-Upstream-Status: Backport [https://gitweb.gentoo.org/repo/gentoo.git/tree/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch]
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
-
---- a/src/VBox/Additions/linux/sharedfolders/regops.c
-+++ b/src/VBox/Additions/linux/sharedfolders/regops.c
-@@ -77,11 +77,4 @@
- #endif
- 
--/** Starting from 6.4.0, iter_iov() macro should be used in order to access to iov field.  */
--#if RTLNX_VER_MIN(6,4,0)
--# define VBOX_ITER_IOV(_iter) iter_iov(_iter)
--#else
--# define VBOX_ITER_IOV(_iter) iter->iov
--#endif
--
- 
- /*********************************************************************************************************************************
-@@ -94,4 +87,12 @@
- #else
- # define VBSF_GET_ITER_TYPE(a_pIter) ((a_pIter)->type)
-+#endif
-+
-+/** Starting from 6.4.0, iter_iov() macro should be used in order to access to iov field
-+ * of struct iov_iter. */
-+#if RTLNX_VER_MIN(6,4,0)
-+# define VBSF_GET_ITER_IOV(_iter) iter_iov(_iter)
-+#else
-+# define VBSF_GET_ITER_IOV(_iter) iter->iov
- #endif
- 
-@@ -2407,5 +2408,5 @@
-     if (iter_is_iovec(iter) || (VBSF_GET_ITER_TYPE(iter) & ITER_KVEC)) {
- # endif
--        const struct iovec *pCurIov    = VBOX_ITER_IOV(iter);
-+        const struct iovec *pCurIov    = VBSF_GET_ITER_IOV(iter);
-         size_t              cLeft      = iter->nr_segs;
-         size_t              cPagesSpan = 0;
-
diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb
similarity index 93%
rename from meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb
rename to meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb
index 233323bf..f193636 100644
--- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.8.bb
+++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb
@@ -13,11 +13,9 @@
 
 SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \
     file://Makefile.utils \
-    file://virtualbox-guest-additions-7.0.8-kernel-6.4-patch-1.patch \
-    file://virtualbox-guest-additions-7.0.8-kernel-6.4-patch-2.patch \
 "
 
-SRC_URI[sha256sum] = "c305fbe480f507eac7c36893ead66dffaacda944f19c3813a4533e9c39bae237"
+SRC_URI[sha256sum] = "0b1e6d8b7f87d017c7fae37f80586acff04f799ffc1d51e995954d6415dee371"
 
 S ?= "${WORKDIR}/vbox_module"
 S:task-patch = "${WORKDIR}/${VBOX_NAME}"
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
new file mode 100644
index 0000000..8ae39f1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
@@ -0,0 +1,29 @@
+From 10cfdcc905915d8814c609008a069102f2bc7e39 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 27 Oct 2015 16:02:19 +0200
+Subject: [PATCH] FindGObjectIntrospection.cmake: prefix variables obtained
+ from pkg-config with PKG_CONFIG_SYSROOT_DIR
+
+See discussion at https://bugs.webkit.org/show_bug.cgi?id=232933 for
+reasons why this is not approproiate for upstream submission.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Source/cmake/FindGI.cmake | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/Source/cmake/FindGI.cmake b/Source/cmake/FindGI.cmake
+index af039cbb..b3e810cd 100644
+--- a/Source/cmake/FindGI.cmake
++++ b/Source/cmake/FindGI.cmake
+@@ -72,6 +72,9 @@ if (PKG_CONFIG_FOUND)
+     endif ()
+ endif ()
+ 
++set(_GI_SCANNER_EXE "$ENV{PKG_CONFIG_SYSROOT_DIR}${_GI_SCANNER_EXE}")
++set(_GI_COMPILER_EXE "$ENV{PKG_CONFIG_SYSROOT_DIR}${_GI_COMPILER_EXE}")
++
+ find_program(GI_SCANNER_EXE NAMES ${_GI_SCANNER_EXE} g-ir-scanner)
+ find_program(GI_COMPILER_EXE NAMES ${_GI_COMPILER_EXE} g-ir-compiler)
+ 
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch
new file mode 100644
index 0000000..34e0ff9
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch
@@ -0,0 +1,310 @@
+From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001
+From: Adrian Perez de Castro <aperez@igalia.com>
+Date: Thu, 2 Jun 2022 11:19:06 +0300
+Subject: [PATCH] FELightningNEON.cpp fails to build, NEON fast path seems
+ unused https://bugs.webkit.org/show_bug.cgi?id=241182
+
+Reviewed by NOBODY (OOPS!).
+
+Move the NEON fast path for the SVG lighting filter effects into
+FELightingSoftwareApplier, and arrange to actually use them by
+forwarding calls to applyPlatformGeneric() into applyPlatformNeon().
+
+Some changes were needed to adapt platformApplyNeon() to the current
+state of filters after r286140. This was not detected because the code
+bitrotted due to it being guarded with CPU(ARM_TRADITIONAL), which does
+not get used much these days: CPU(ARM_THUMB2) is more common. It should
+be possible to use the NEON fast paths also in Thumb mode, but that is
+left for a follow-up fix.
+
+* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
+(WebCore::FELightingSoftwareApplier::platformApplyNeonWorker):
+(WebCore::FELightingSoftwareApplier::getPowerCoefficients):
+(WebCore::FELighting::platformApplyNeonWorker): Deleted.
+(WebCore::FELighting::getPowerCoefficients): Deleted.
+* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h:
+(WebCore::FELightingSoftwareApplier::applyPlatformNeon):
+(WebCore::FELighting::platformApplyNeon): Deleted.
+* Source/WebCore/platform/graphics/filters/DistantLightSource.h:
+* Source/WebCore/platform/graphics/filters/FELighting.h:
+* Source/WebCore/platform/graphics/filters/PointLightSource.h:
+* Source/WebCore/platform/graphics/filters/SpotLightSource.h:
+* Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h:
+
+Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../cpu/arm/filters/FELightingNEON.cpp        |  4 +-
+ .../graphics/cpu/arm/filters/FELightingNEON.h | 52 +++++++++----------
+ .../graphics/filters/DistantLightSource.h     |  4 ++
+ .../platform/graphics/filters/FELighting.h    |  7 ---
+ .../graphics/filters/PointLightSource.h       |  4 ++
+ .../graphics/filters/SpotLightSource.h        |  4 ++
+ .../software/FELightingSoftwareApplier.h      | 16 ++++++
+ 7 files changed, 56 insertions(+), 35 deletions(-)
+
+diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
+index f6ff8c20..42a97ffc 100644
+--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
++++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
+@@ -49,7 +49,7 @@ short* feLightingConstantsForNeon()
+     return s_FELightingConstantsForNeon;
+ }
+ 
+-void FELighting::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters)
++void FELightingSoftwareApplier::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters)
+ {
+     neonDrawLighting(parameters);
+ }
+@@ -464,7 +464,7 @@ TOSTRING(neonDrawLighting) ":" NL
+     "b .lightStrengthCalculated" NL
+ ); // NOLINT
+ 
+-int FELighting::getPowerCoefficients(float exponent)
++int FELightingSoftwareApplier::getPowerCoefficients(float exponent)
+ {
+     // Calling a powf function from the assembly code would require to save
+     // and reload a lot of NEON registers. Since the base is in range [0..1]
+diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
+index b17c603d..e4629cda 100644
+--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
++++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
+@@ -24,14 +24,15 @@
+  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+  */
+ 
+-#ifndef FELightingNEON_h
+-#define FELightingNEON_h
++#pragma once
+ 
+ #if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
+ 
+-#include "FELighting.h"
++#include "FELightingSoftwareApplier.h"
++#include "ImageBuffer.h"
+ #include "PointLightSource.h"
+ #include "SpotLightSource.h"
++#include <wtf/ObjectIdentifier.h>
+ #include <wtf/ParallelJobs.h>
+ 
+ namespace WebCore {
+@@ -93,14 +94,14 @@ extern "C" {
+ void neonDrawLighting(FELightingPaintingDataForNeon*);
+ }
+ 
+-inline void FELighting::platformApplyNeon(const LightingData& data, const LightSource::PaintingData& paintingData)
++inline void FELightingSoftwareApplier::applyPlatformNeon(const FELightingSoftwareApplier::LightingData& data, const LightSource::PaintingData& paintingData)
+ {
+-    alignas(16) FELightingFloatArgumentsForNeon floatArguments;
+-    FELightingPaintingDataForNeon neonData = {
++    WebCore::FELightingFloatArgumentsForNeon alignas(16) floatArguments;
++    WebCore::FELightingPaintingDataForNeon neonData = {
+         data.pixels->data(),
+         1,
+-        data.widthDecreasedByOne - 1,
+-        data.heightDecreasedByOne - 1,
++        data.width - 2,
++        data.height - 2,
+         0,
+         0,
+         0,
+@@ -111,23 +112,23 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
+     // Set light source arguments.
+     floatArguments.constOne = 1;
+ 
+-    auto color = m_lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved();
++    auto color = data.lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved();
+ 
+     floatArguments.colorRed = color.red;
+     floatArguments.colorGreen = color.green;
+     floatArguments.colorBlue = color.blue;
+     floatArguments.padding4 = 0;
+ 
+-    if (m_lightSource->type() == LS_POINT) {
++    if (data.lightSource->type() == LS_POINT) {
+         neonData.flags |= FLAG_POINT_LIGHT;
+-        PointLightSource& pointLightSource = static_cast<PointLightSource&>(m_lightSource.get());
++        const auto& pointLightSource = *static_cast<const PointLightSource*>(data.lightSource);
+         floatArguments.lightX = pointLightSource.position().x();
+         floatArguments.lightY = pointLightSource.position().y();
+         floatArguments.lightZ = pointLightSource.position().z();
+         floatArguments.padding2 = 0;
+-    } else if (m_lightSource->type() == LS_SPOT) {
++    } else if (data.lightSource->type() == LS_SPOT) {
+         neonData.flags |= FLAG_SPOT_LIGHT;
+-        SpotLightSource& spotLightSource = static_cast<SpotLightSource&>(m_lightSource.get());
++        const auto& spotLightSource = *static_cast<const SpotLightSource*>(data.lightSource);
+         floatArguments.lightX = spotLightSource.position().x();
+         floatArguments.lightY = spotLightSource.position().y();
+         floatArguments.lightZ = spotLightSource.position().z();
+@@ -145,7 +146,7 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
+         if (spotLightSource.specularExponent() == 1)
+             neonData.flags |= FLAG_CONE_EXPONENT_IS_1;
+     } else {
+-        ASSERT(m_lightSource->type() == LS_DISTANT);
++        ASSERT(data.lightSource->type() == LS_DISTANT);
+         floatArguments.lightX = paintingData.initialLightingData.lightVector.x();
+         floatArguments.lightY = paintingData.initialLightingData.lightVector.y();
+         floatArguments.lightZ = paintingData.initialLightingData.lightVector.z();
+@@ -155,38 +156,39 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
+     // Set lighting arguments.
+     floatArguments.surfaceScale = data.surfaceScale;
+     floatArguments.minusSurfaceScaleDividedByFour = -data.surfaceScale / 4;
+-    if (m_lightingType == FELighting::DiffuseLighting)
+-        floatArguments.diffuseConstant = m_diffuseConstant;
++    if (data.filterType == FilterEffect::Type::FEDiffuseLighting)
++        floatArguments.diffuseConstant = data.diffuseConstant;
+     else {
+         neonData.flags |= FLAG_SPECULAR_LIGHT;
+-        floatArguments.diffuseConstant = m_specularConstant;
+-        neonData.specularExponent = getPowerCoefficients(m_specularExponent);
+-        if (m_specularExponent == 1)
++        floatArguments.diffuseConstant = data.specularConstant;
++        neonData.specularExponent = getPowerCoefficients(data.specularExponent);
++        if (data.specularExponent == 1)
+             neonData.flags |= FLAG_SPECULAR_EXPONENT_IS_1;
+     }
+     if (floatArguments.diffuseConstant == 1)
+         neonData.flags |= FLAG_DIFFUSE_CONST_IS_1;
+ 
+-    int optimalThreadNumber = ((data.widthDecreasedByOne - 1) * (data.heightDecreasedByOne - 1)) / s_minimalRectDimension;
++    static constexpr int minimalRectDimension = 100 * 100; // Empirical data limit for parallel jobs
++    int optimalThreadNumber = ((data.width - 2) * (data.height - 2)) / minimalRectDimension;
+     if (optimalThreadNumber > 1) {
+         // Initialize parallel jobs
+-        ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&WebCore::FELighting::platformApplyNeonWorker, optimalThreadNumber);
++        ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&FELightingSoftwareApplier::platformApplyNeonWorker, optimalThreadNumber);
+ 
+         // Fill the parameter array
+         int job = parallelJobs.numberOfJobs();
+         if (job > 1) {
+             int yStart = 1;
+-            int yStep = (data.heightDecreasedByOne - 1) / job;
++            int yStep = (data.height - 2) / job;
+             for (--job; job >= 0; --job) {
+                 FELightingPaintingDataForNeon& params = parallelJobs.parameter(job);
+                 params = neonData;
+                 params.yStart = yStart;
+-                params.pixels += (yStart - 1) * (data.widthDecreasedByOne + 1) * 4;
++                params.pixels += (yStart - 1) * data.width * 4;
+                 if (job > 0) {
+                     params.absoluteHeight = yStep;
+                     yStart += yStep;
+                 } else
+-                    params.absoluteHeight = data.heightDecreasedByOne - yStart;
++                    params.absoluteHeight = (data.height - 1) - yStart;
+             }
+             parallelJobs.execute();
+             return;
+@@ -199,5 +201,3 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
+ } // namespace WebCore
+ 
+ #endif // CPU(ARM_NEON) && COMPILER(GCC_COMPATIBLE)
+-
+-#endif // FELightingNEON_h
+diff --git a/Source/WebCore/platform/graphics/filters/DistantLightSource.h b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
+index 70c6512f..b032c82e 100644
+--- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h
++++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
+@@ -26,6 +26,10 @@
+ #include <wtf/ArgumentCoder.h>
+ #include <wtf/Ref.h>
+ 
++namespace WTF {
++class TextStream;
++} // namespace WTF
++
+ namespace WebCore {
+ 
+ class DistantLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h
+index 53beb596..e78a9354 100644
+--- a/Source/WebCore/platform/graphics/filters/FELighting.h
++++ b/Source/WebCore/platform/graphics/filters/FELighting.h
+@@ -35,8 +35,6 @@
+ 
+ namespace WebCore {
+ 
+-struct FELightingPaintingDataForNeon;
+-
+ class FELighting : public FilterEffect {
+ public:
+     const Color& lightingColor() const { return m_lightingColor; }
+@@ -64,11 +62,6 @@ protected:
+ 
+     std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override;
+ 
+-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
+-    static int getPowerCoefficients(float exponent);
+-    inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&);
+-#endif
+-
+     Color m_lightingColor;
+     float m_surfaceScale;
+     float m_diffuseConstant;
+diff --git a/Source/WebCore/platform/graphics/filters/PointLightSource.h b/Source/WebCore/platform/graphics/filters/PointLightSource.h
+index 3a5723f0..675d63f5 100644
+--- a/Source/WebCore/platform/graphics/filters/PointLightSource.h
++++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h
+@@ -26,6 +26,10 @@
+ #include "LightSource.h"
+ #include <wtf/Ref.h>
+ 
++namespace WTF {
++class TextStream;
++} // namespace WTF
++
+ namespace WebCore {
+ 
+ class PointLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
+index 684626f7..dea58389 100644
+--- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h
++++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
+@@ -26,6 +26,10 @@
+ #include "LightSource.h"
+ #include <wtf/Ref.h>
+ 
++namespace WTF {
++class TextStream;
++} // namespace WTF
++
+ namespace WebCore {
+ 
+ class SpotLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
+index c974d921..e2896660 100644
+--- a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
++++ b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
+@@ -36,6 +36,7 @@
+ namespace WebCore {
+ 
+ class FELighting;
++struct FELightingPaintingDataForNeon;
+ 
+ class FELightingSoftwareApplier final : public FilterEffectConcreteApplier<FELighting> {
+     WTF_MAKE_FAST_ALLOCATED;
+@@ -132,8 +133,23 @@ private:
+ 
+     static void applyPlatformGenericPaint(const LightingData&, const LightSource::PaintingData&, int startY, int endY);
+     static void applyPlatformGenericWorker(ApplyParameters*);
++
++#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
++    static int getPowerCoefficients(float exponent);
++    static void platformApplyNeonWorker(FELightingPaintingDataForNeon*);
++    inline static void applyPlatformNeon(const LightingData&, const LightSource::PaintingData&);
++
++    inline static void applyPlatformGeneric(const LightingData& data, const LightSource::PaintingData& paintingData)
++    {
++        applyPlatformNeon(data, paintingData);
++    }
++#else
+     static void applyPlatformGeneric(const LightingData&, const LightSource::PaintingData&);
++#endif
++
+     static void applyPlatform(const LightingData&);
+ };
+ 
+ } // namespace WebCore
++
++#include "FELightingNEON.h"
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch
new file mode 100644
index 0000000..ae99810
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch
@@ -0,0 +1,33 @@
+Add additional check on GST_GL_HAVE_PLATFORM_GLX before using gst_gl_display_x11_new_with_display
+
+This ensures that there is a compile time check for glx support in gstreamer as
+runtime check is not enough because gst_gl_display_x11_new_with_display() API comes from
+gst/gl/x11/gstgldisplay_x11.h which is only included when GST_GL_HAVE_PLATFORM_GLX is defined
+therefore make this check consistent to fix build with some platforms which use pvr gl drivers
+where this problem appear at compile time.
+
+
+/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/webkitgtk/2.40.2-r0/webkitgtk-2.40.2/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:68:31: error: use of undeclared identifier 'gst_gl_display_x11_new_with_display'; did you mean 'gst_gl_display_egl_new_with_egl_display'?
+   68 |         return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
+      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+      |                               gst_gl_display_egl_new_with_egl_display
+
+This issue is 2.40 specific since GLX support is removed [1] from trunk upstream, therefore
+this patch wont be needed when upgrading to 2.42+
+
+[1] https://github.com/WebKit/WebKit/commit/320560f9e53ddcd53954059bd005e0c75eb91abf
+
+Upstream-Status: Inappropriate [GLX support is gone in 2.41+]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp	2023-02-20 01:22:18.917743700 -0800
++++ b/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp	2023-07-08 08:45:09.739177065 -0700
+@@ -63,7 +63,7 @@
+     if (glPlatform == GST_GL_PLATFORM_EGL)
+         return GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(sharedDisplay.eglDisplay()));
+ #endif
+-#if USE(GLX)
++#if USE(GLX) && GST_GL_HAVE_PLATFORM_GLX
+     if (is<PlatformDisplayX11>(sharedDisplay) && glPlatform == GST_GL_PLATFORM_GLX)
+         return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
+ #endif
diff --git a/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch
new file mode 100644
index 0000000..e866a1a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch
@@ -0,0 +1,22 @@
+Injection a year based on the current date isn't reproducible. Hack this
+to a specific year for now for reproducibilty and to avoid autobuilder failures.
+
+The correct fix would be to use SOURCE_DATE_EPOCH from the environment and
+then this could be submitted upstream, sadly my ruby isn't up to that.
+
+Upstream-Status: Pending [could be reworked]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
+===================================================================
+--- webkitgtk-2.34.2.orig/Source/JavaScriptCore/generator/GeneratedFile.rb
++++ webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
+@@ -25,7 +25,7 @@ require 'date'
+ require 'digest'
+ 
+ $LICENSE = <<-EOF
+-Copyright (C) #{Date.today.year} Apple Inc. All rights reserved.
++Copyright (C) 2021 Apple Inc. All rights reserved.
+ 
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.5.bb
similarity index 90%
copy from poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb
copy to meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.5.bb
index 8bef0b1..7218dbb 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.5.bb
@@ -9,18 +9,18 @@
                     file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
                     "
 
-SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
+SRC_URI = "https://www.webkitgtk.org/releases/webkitgtk-${PV}.tar.xz \
            file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
            file://reproducibility.patch \
            file://0d3344e17d258106617b0e6d783d073b188a2548.patch \
-           file://4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch \
-           file://0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch \
            file://check-GST_GL_HAVE_PLATFORM_GLX.patch \
            "
-SRC_URI[sha256sum] = "96898870d994da406ee7a632816dcde9a3bb395ee5f344fcb3f3b8cc8a77e000"
+SRC_URI[sha256sum] = "7de051a263668621d91a61a5eb1c3771d1a7cec900043d4afef06c326c16037f"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
 
+S = "${WORKDIR}/webkitgtk-${PV}"
+
 ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
 REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'opengl', '', d)}"
 
@@ -76,14 +76,15 @@
 PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd"
 PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif"
 PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad"
+PACKAGECONFIG[gamepad] = "-DENABLE_GAMEPAD=ON,-DENABLE_GAMEPAD=OFF,libmanette"
+PACKAGECONFIG[webrtc] = "-DENABLE_WEB_RTC=ON,-DENABLE_WEB_RTC=OFF"
+PACKAGECONFIG[bubblewrap] = "-DENABLE_BUBBLEWRAP_SANDBOX=ON -DBWRAP_EXECUTABLE=${bindir}/bwrap -DDBUS_PROXY_EXECUTABLE=${bindir}/xdg-dbus-proxy,-DENABLE_BUBBLEWRAP_SANDBOX=OFF,,bubblewrap xdg-dbus-proxy"
 
 EXTRA_OECMAKE = " \
 		-DPORT=GTK \
 		${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-DENABLE_INTROSPECTION=ON', '-DENABLE_INTROSPECTION=OFF', d)} \
 		${@bb.utils.contains('GIDOCGEN_ENABLED', 'True', '-DENABLE_DOCUMENTATION=ON', '-DENABLE_DOCUMENTATION=OFF', d)} \
 		-DENABLE_MINIBROWSER=ON \
-                -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-                -DENABLE_GAMEPAD=OFF \
 		"
 
 # Javascript JIT is not supported on ARC
@@ -149,8 +150,9 @@
 GI_DATA_ENABLED:libc-musl:armv7a = "False"
 GI_DATA_ENABLED:libc-musl:armv7ve = "False"
 
-# Can't be built with ccache
-CCACHE_DISABLE = "1"
+do_install:append() {
+	mv ${D}${bindir}/WebKitWebDriver ${D}${bindir}/WebKitWebDriver3
+}
 
 PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
 src_package_preprocess () {
@@ -161,6 +163,5 @@
             ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \
             ${B}/WebCore/DerivedSources/*.cpp \
             ${B}/WebKitGTK/DerivedSources/webkit/*.cpp
-
 }
 
diff --git a/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp/0001-Fix-CMake-export-files-1077.patch b/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp/0001-Fix-CMake-export-files-1077.patch
new file mode 100644
index 0000000..b6c4a3b
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp/0001-Fix-CMake-export-files-1077.patch
@@ -0,0 +1,117 @@
+From 3d436f6cfc2dfe52fc1533c01f57c25ae7ffac9c Mon Sep 17 00:00:00 2001
+From: Felix Schwitzer <flx107809@gmail.com>
+Date: Fri, 1 Apr 2022 05:26:47 +0200
+Subject: [PATCH] Fix CMake export files (#1077)
+
+After configuring the file `yaml-cpp-config.cmake.in`, the result ends up with
+empty variables.  (see also the discussion in #774).
+
+Rework this file and the call to `configure_package_config_file` according the
+cmake documentation
+(https://cmake.org/cmake/help/v3.22/module/CMakePackageConfigHelpers.html?highlight=configure_package_config#command:configure_package_config_file)
+to overcome this issue and allow a simple `find_package` after install.
+
+As there was some discussion about the place where to install the
+`yaml-cpp-config.cmake` file, e.g. #1055, factor out the install location into
+an extra variable to make it easier changing this location in the future.
+
+Also untabify CMakeLists.txt in some places to align with the other code parts in this file.
+
+Upstream-Status: Accepted [https://github.com/jbeder/yaml-cpp/pull/1077]
+
+Signed-off-by: Jasper Orschulko <jasper@fancydomain.eu> 
+---
+ CMakeLists.txt           | 29 ++++++++++++++++++-----------
+ yaml-cpp-config.cmake.in | 10 ++++++----
+ 2 files changed, 24 insertions(+), 15 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b230b9e..983d1a4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -127,10 +127,16 @@ set_target_properties(yaml-cpp PROPERTIES
+   PROJECT_LABEL "yaml-cpp ${yaml-cpp-label-postfix}"
+   DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
+ 
++# FIXME(felix2012): A more common place for the cmake export would be
++# `CMAKE_INSTALL_LIBDIR`, as e.g. done in ubuntu or in this project for GTest
++set(CONFIG_EXPORT_DIR "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp")
++set(EXPORT_TARGETS yaml-cpp)
+ configure_package_config_file(
+   "${PROJECT_SOURCE_DIR}/yaml-cpp-config.cmake.in"
+   "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake"
+-  INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp")
++  INSTALL_DESTINATION "${CONFIG_EXPORT_DIR}"
++  PATH_VARS CMAKE_INSTALL_INCLUDEDIR CONFIG_EXPORT_DIR)
++unset(EXPORT_TARGETS)
+ 
+ write_basic_package_version_file(
+   "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake"
+@@ -139,30 +145,31 @@ write_basic_package_version_file(
+ configure_file(yaml-cpp.pc.in yaml-cpp.pc @ONLY)
+ 
+ if (YAML_CPP_INSTALL)
+-	install(TARGETS yaml-cpp
++  install(TARGETS yaml-cpp
+     EXPORT yaml-cpp-targets
+     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+     LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+     ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-	install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
++  install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
+     DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+-		FILES_MATCHING PATTERN "*.h")
++                FILES_MATCHING PATTERN "*.h")
+   install(EXPORT yaml-cpp-targets
+-    DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp")
+-	install(FILES
+-		"${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake"
+-		"${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake"
+-    DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp")
++    DESTINATION "${CONFIG_EXPORT_DIR}")
++  install(FILES
++      "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake"
++      "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake"
++    DESTINATION "${CONFIG_EXPORT_DIR}")
+   install(FILES "${PROJECT_BINARY_DIR}/yaml-cpp.pc"
+     DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig)
+ endif()
++unset(CONFIG_EXPORT_DIR)
+ 
+ if(YAML_CPP_BUILD_TESTS)
+-	add_subdirectory(test)
++  add_subdirectory(test)
+ endif()
+ 
+ if(YAML_CPP_BUILD_TOOLS)
+-	add_subdirectory(util)
++  add_subdirectory(util)
+ endif()
+ 
+ if (YAML_CPP_CLANG_FORMAT_EXE)
+diff --git a/yaml-cpp-config.cmake.in b/yaml-cpp-config.cmake.in
+index 7b41e3f..a7ace3d 100644
+--- a/yaml-cpp-config.cmake.in
++++ b/yaml-cpp-config.cmake.in
+@@ -3,12 +3,14 @@
+ #  YAML_CPP_INCLUDE_DIR - include directory
+ #  YAML_CPP_LIBRARIES    - libraries to link against
+ 
+-# Compute paths
+-get_filename_component(YAML_CPP_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+-set(YAML_CPP_INCLUDE_DIR "@CONFIG_INCLUDE_DIRS@")
++@PACKAGE_INIT@
++
++set_and_check(YAML_CPP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
+ 
+ # Our library dependencies (contains definitions for IMPORTED targets)
+-include("${YAML_CPP_CMAKE_DIR}/yaml-cpp-targets.cmake")
++include(@PACKAGE_CONFIG_EXPORT_DIR@/yaml-cpp-targets.cmake)
+ 
+ # These are IMPORTED targets created by yaml-cpp-targets.cmake
+ set(YAML_CPP_LIBRARIES "@EXPORT_TARGETS@")
++
++check_required_components(@EXPORT_TARGETS@)
+-- 
+2.39.2
+
diff --git a/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb b/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb
index d3984ab..e04d470 100644
--- a/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb
@@ -8,6 +8,7 @@
 # yaml-cpp releases are stored as archive files in github.
 # download the exact revision of release
 SRC_URI = "git://github.com/jbeder/yaml-cpp.git;branch=master;protocol=https"
+SRC_URI += "file://0001-Fix-CMake-export-files-1077.patch"
 SRCREV = "0579ae3d976091d7d664aa9d2527e0d0cff25763"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.3.1.bb b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.3.1.bb
index 9bf3809..2961e44 100644
--- a/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.3.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/zchunk/zchunk_1.3.1.bb
@@ -1,5 +1,4 @@
 DESCRIPTION = "A file format designed for highly efficient deltas while maintaining good compression"
-AUTHOR = "Jonathan Dieter"
 
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=daf6e68539f564601a5a5869c31e5242"
diff --git a/meta-openembedded/meta-oe/recipes-test/bats/bats_1.9.0.bb b/meta-openembedded/meta-oe/recipes-test/bats/bats_1.10.0.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-test/bats/bats_1.9.0.bb
rename to meta-openembedded/meta-oe/recipes-test/bats/bats_1.10.0.bb
index 015bc42..d2a93e1 100644
--- a/meta-openembedded/meta-oe/recipes-test/bats/bats_1.9.0.bb
+++ b/meta-openembedded/meta-oe/recipes-test/bats/bats_1.10.0.bb
@@ -1,7 +1,6 @@
 SUMMARY = "Bash Automated Testing System"
 DESCRIPTION = "Bats is a TAP-compliant testing framework for Bash. It \
 provides a simple way to verify that the UNIX programs you write behave as expected."
-AUTHOR = "Sam Stephenson & bats-core organization"
 HOMEPAGE = "https://github.com/bats-core/bats-core"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=2970203aedf9e829edb96a137a4fe81b"
@@ -10,8 +9,8 @@
   git://github.com/bats-core/bats-core.git;branch=master;protocol=https \
   "
 
-# v1.9.0
-SRCREV = "6636e2c2ef5ffe361535cb45fc61682c5ef46b71"
+# v1.10.0
+SRCREV = "f7defb94362f2053a3e73d13086a167448ea9133"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.13.7.bb b/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
index ed50f65..1dd082f 100644
--- a/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
+++ b/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
@@ -1,6 +1,5 @@
 DESCRIPTION = "A modern, C++-native, header-only, test framework for unit-tests, \
 TDD and BDD - using C++11, C++14, C++17 and later."
-AUTHOR = "Phil Nash, Martin Horenovsky and others"
 HOMEPAGE = "https://github.com/catchorg/Catch2"
 LICENSE = "BSL-1.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
diff --git a/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.35.bb b/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.35.bb
index 51af999..52f684c 100644
--- a/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.35.bb
+++ b/meta-openembedded/meta-oe/recipes-test/evtest/evtest_1.35.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Simple tool for input event debugging"
 HOMEPAGE = "http://people.freedesktop.org/~whot/evtest/"
-AUTHOR = "Vojtech Pavlik <vojtech@suse.cz>"
 SECTION = "console/utils"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
diff --git a/meta-openembedded/meta-perl/conf/include/ptest-packagelists-meta-perl.inc b/meta-openembedded/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
index 1a8c759..e27981d 100644
--- a/meta-openembedded/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
+++ b/meta-openembedded/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
@@ -13,6 +13,7 @@
     libextutils-config-perl \
     libhtml-tagset-perl \
     libmozilla-ca-perl \
+    libmodule-build-tiny-perl \
     libstrictures-perl \
     libterm-readkey-perl \
     libtest-nowarnings-perl \
diff --git a/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.4.2.bb b/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.4.3.bb
similarity index 96%
rename from meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.4.2.bb
rename to meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.4.3.bb
index 1ad32b2..c13bd94 100644
--- a/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.4.2.bb
+++ b/meta-openembedded/meta-perl/recipes-extended/logcheck/logcheck_1.4.3.bb
@@ -14,7 +14,7 @@
 SRC_URI = "${DEBIAN_MIRROR}/main/l/${BPN}/${BPN}_${PV}.tar.xz \
            file://99_logcheck \
 "
-SRC_URI[sha256sum] = "0c651deb31dc201f1584ecea292b259932bae6e3e8cef846db3109e89a7f217e"
+SRC_URI[sha256sum] = "ad83ae80bd780bdae5eefd40ad59a3e97b85ad3a4962aa7c00d98ed3bdffcdd0"
 
 inherit useradd
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.204.bb b/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.206.bb
similarity index 89%
rename from meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.204.bb
rename to meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.206.bb
index 1dc077d..2bd98e7 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.204.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.206.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "ee7b490e67e7e2a7a0e8c1e1aa29a9610066149f46b836921149ad1813f70c69"
+SRC_URI[sha256sum] = "212b81db1c0ae822d19928619a603bd108cb5d5c4700fc67dc7cb169e0cc6525"
 
 DEPENDS += "bzip2"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.204.bb b/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.206.bb
similarity index 90%
rename from meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.204.bb
rename to meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.206.bb
index c4b6a4b..cdabdb1 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.204.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.206.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/Compress-Raw-Lzma-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "b226d0648da3e7309387cd8d9cf629353593fd08bac29533f2559659ef7aac1a"
+SRC_URI[sha256sum] = "e01a7040b84bdc67592d13eec0c788590e1f696d1d4f07c7097bd72a4f886eb4"
 
 DEPENDS += "xz"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.204.bb b/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.206.bb
similarity index 89%
rename from meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.204.bb
rename to meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.206.bb
index e0aa2e9..47fe8e0 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.204.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.206.bb
@@ -10,7 +10,7 @@
 
 SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/Compress-Raw-Zlib-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "f161f4297efadbed79c8b096a75951784fc5ccd3170bd32866a19e5c6876d13f"
+SRC_URI[sha256sum] = "46785a6a383a1c843895b7f9f25d5d759e7c305159f9d1e04a3604eb74c77374"
 
 DEPENDS += "zlib"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb b/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
index ae193db..8c31f29 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Encode::Locale - Determine the locale encoding"
-AUTHOR = "Gisle Aas <gisle@activestate.com>"
 HOMEPAGE = "https://metacpan.org/module/Encode::Locale"
 SECTION = "libs"
 LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb b/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb
index 79934e2..fd47543 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb
@@ -8,7 +8,6 @@
 Perl's strings and the rest of the system.  Perl strings are sequences \
 of characters."
 
-AUTHOR = "Dan Kogai <dankogai+cpan@gmail.com>"
 HOMEPAGE = "https://metacpan.org/release/Encode"
 SECTION = "lib"
 LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.204.bb b/meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.206.bb
similarity index 88%
rename from meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.204.bb
rename to meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.206.bb
index 13c17b9..1959df5 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.204.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.206.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/IO-Compress-Lzma-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "1e7a4c4f4e665434df59246b19d168b08af2f1aeebaa08937bd69ad3e5e319c8"
+SRC_URI[sha256sum] = "6c600f9bbb1a2d834b1decd0bd5863dcea52e0ac17de101b5085e0e3cb27285c"
 
 S = "${WORKDIR}/IO-Compress-Lzma-${PV}"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-perl_2.204.bb b/meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-perl_2.206.bb
similarity index 92%
rename from meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-perl_2.204.bb
rename to meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-perl_2.206.bb
index 8d4aec7..c58e3fa 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-perl_2.204.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libio/libio-compress-perl_2.206.bb
@@ -18,7 +18,7 @@
 
 SRC_URI = "${CPAN_MIRROR}/authors/id/P/PM/PMQS/IO-Compress-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "617784cb8543778681341b18fc67b74735e8b494f32f00814dd22f68ac6af018"
+SRC_URI[sha256sum] = "7d3062b9a494f757e8d0614f220d83f22731bbda1aeb5f7cff0e72a83f433d35"
 
 S = "${WORKDIR}/IO-Compress-${PV}"
 
diff --git a/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.045.bb b/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.045.bb
deleted file mode 100644
index 17ee50d..0000000
--- a/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.045.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Module::Build::Tiny - A tiny replacement for Module::Build"
-DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \
-Makefile.PL file to drive distribution configuration, build, test and \
-installation. Traditionally, Build.PL uses Module::Build as the underlying \
-build system. This module provides a simple, lightweight, drop-in replacement. \
-Whereas Module::Build has over 6,700 lines of code; this module has less than \
-120, yet supports the features needed by most distributions."
-SECTION = "libs"
-
-HOMEPAGE = "http://search.cpan.org/~leont/Module-Build-Tiny/"
-
-LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6374136f6774db2f51cc116f5efbf705"
-
-DEPENDS = "libextutils-config-perl-native libextutils-helpers-perl-native libextutils-installpaths-perl-native"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-Tiny-${PV}.tar.gz"
-SRC_URI[sha256sum] = "d20692eee246d0b329b7f7659f36286b14ae0696fe91078a64b7078f8876d300"
-
-S = "${WORKDIR}/Module-Build-Tiny-${PV}"
-
-inherit cpan_build
-
-do_install () {
-        cpan_build_do_install
-}
-
-RDEPENDS:${PN} = " libextutils-config-perl \
-                   libextutils-helpers-perl \
-                   libextutils-installpaths-perl \
-                   perl-module-xsloader \
-                   perl-module-file-spec \
-                   perl-module-io-handle \
-                   perl-module-tap-harness-env \
-                   perl-module-ipc-open3 \
-                   perl-module-file-path \
-                   perl-module-cpan \
-                   perl-module-extutils-cbuilder \
-                   perl-module-getopt-long \
-                   perl-module-extutils-makemaker \
-                   perl-module-exporter \
-                   perl-module-carp \
-                   perl-module-test-more \
-                   perl-module-text-parsewords \
-                   perl-module-load \
-                   perl-module-file-temp \
-                   perl-module-data-dumper \
-                   perl-module-extutils-parsexs \
-                   perl-module-pod-man \
-                   perl-module-json-pp \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.046.bb b/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.046.bb
new file mode 100644
index 0000000..1e23d87
--- /dev/null
+++ b/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.046.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Module::Build::Tiny - A tiny replacement for Module::Build"
+DESCRIPTION = "Many Perl distributions use a Build.PL file instead of a \
+Makefile.PL file to drive distribution configuration, build, test and \
+installation. Traditionally, Build.PL uses Module::Build as the underlying \
+build system. This module provides a simple, lightweight, drop-in replacement. \
+Whereas Module::Build has over 6,700 lines of code; this module has less than \
+120, yet supports the features needed by most distributions."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~leont/Module-Build-Tiny/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=147a7b891d1584d3d33e478b1f2327c5"
+
+DEPENDS = "libextutils-config-perl-native libextutils-helpers-perl-native libextutils-installpaths-perl-native"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-Tiny-${PV}.tar.gz"
+SRC_URI[sha256sum] = "be193027e2debb4c9926434aaf1aa46c9fc7bf4db83dcc347eb6e359ee878289"
+
+S = "${WORKDIR}/Module-Build-Tiny-${PV}"
+
+inherit cpan_build ptest-perl
+
+RDEPENDS:${PN} += " \
+    libextutils-config-perl \
+    libextutils-helpers-perl \
+    libextutils-installpaths-perl \
+    perl-module-carp \
+    perl-module-cpan \
+    perl-module-data-dumper \
+    perl-module-encode-encoding \
+    perl-module-exporter \
+    perl-module-extutils-cbuilder \
+    perl-module-extutils-cbuilder-base \
+    perl-module-extutils-install \
+    perl-module-extutils-makemaker \
+    perl-module-extutils-parsexs \
+    perl-module-file-path \
+    perl-module-file-spec \
+    perl-module-file-temp \
+    perl-module-getopt-long \
+    perl-module-io-handle \
+    perl-module-ipc-cmd \
+    perl-module-json-pp \
+    perl-module-load \
+    perl-module-metadata \
+    perl-module-parse-cpan-meta \
+    perl-module-perl-ostype \
+    perl-module-pod-man \
+    perl-module-tap-harness-env \
+    perl-module-test-more \
+    perl-module-text-parsewords \
+    perl-module-xsloader \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    packagegroup-core-buildessential \
+    perl-dev \
+    perl-module-blib \
+    perl-module-ipc-open2 \
+"
+
+INSANE_SKIP:${PN}-ptest += "dev-deps"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb b/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
index 6f3d5ba..3be2e92 100644
--- a/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
+++ b/meta-openembedded/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
@@ -10,7 +10,6 @@
 Optionally it instantiates those classes for you."
 SECTION = "libs"
 
-AUTHOR = "Simon Wistow <simon@thegestalt.org>"
 HOMEPAGE = "https://github.com/simonwistow/Module-Pluggable"
 
 LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
diff --git a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
index b23d24c..9500f80 100644
--- a/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
+++ b/meta-openembedded/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -446,6 +446,7 @@
     python3-unidiff \
     python3-uritemplate \
     python3-vcversioner \
+    python3-versioneer \
     python3-versiontools \
     python3-visitor \
     python3-waitress \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb
index 71e932b..9407586 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Python interface for Remember The Milk API"
-AUTHOR = "Sridhar Ratnakumar / srid"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.5.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.5.bb
index 926801d..d04279e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-aiohttp_3.8.5.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=748073912af33aa59430d3702aa32d41"
 
-SRC_URI[sha256sum] = "bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"
+SRC_URI[sha256sum] = "b9552ec52cc147dbf1944ac7ac98af7602e51ea2dcd076ed194ca3c0d1c7d0bc"
 
 PYPI_PACKAGE = "aiohttp"
 inherit python_setuptools_build_meta pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
index 02ace02..01dfe51 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
@@ -1,5 +1,4 @@
 SUMMARY = "An implementation of the Python 3 asyncio event loop on top of GLib"
-AUTHOR = "James Henstridge"
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_23.5.0.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.9.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_23.5.0.bb
index 20ed189..bcd959c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_22.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-awesomeversion_23.5.0.bb
@@ -4,8 +4,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENCE.md;md5=92622b5a8e216099be741d78328bae5d"
 
-SRC_URI[sha256sum] = "2f4190d333e81e10b2a4e156150ddb3596f5f11da67e9d51ba39057aa7a17f7e"
+SRC_URI[sha256sum] = "a505558316010d2d10d487226f79c1157204af00fa462fdcf948e347011dd491"
 
 RDEPENDS:${PN} += "python3-profile python3-logging"
 
-inherit pypi setuptools3
+inherit pypi python_poetry_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
index 434ab57c..d1ac486 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Specifications for callback functions passed in to an API"
 HOMEPAGE = "https://github.com/takluyver/backcall"
-AUTHOR = "Thomas Kluyver <thomas@kluyver.me.uk>"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=40e56b724d016484a7f790ec826d3ffc"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.2.bb
similarity index 61%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.11.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.2.bb
index 3037ea8..7eb2d7c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.11.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.2.bb
@@ -1,11 +1,11 @@
 SUMMARY = "Screen-scraping library"
 HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=15a76c7c51ecfc5c094d04f3ccd41a09"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=96e0034f7c9443910c486773aa1ed9ac"
 
-SRC_URI[sha256sum] = "ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"
+SRC_URI[sha256sum] = "492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"
 
-inherit pypi setuptools3
+inherit pypi python_hatchling
 
 RDEPENDS:${PN} = "\
     ${PYTHON_PN}-html5lib \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-binwalk_2.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-binwalk_2.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb
index 1a55a3e..0b7d97f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-binwalk_2.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb
@@ -8,7 +8,7 @@
 
 SRC_URI = "git://github.com/ReFirmLabs/binwalk;protocol=https;branch=master"
 
-SRCREV = "fa0c0bd59b8588814756942fe4cb5452e76c1dcd"
+SRCREV = "cddfede795971045d99422bd7a9676c8803ec5ee"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.8.0.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.8.0.bb
index b274800..19d9f9e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitarray_2.8.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "PSF-2.0"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=2ad702cdcd49e8d2ac01d7e7d0810d2d"
 
-SRC_URI[sha256sum] = "3807f9323c308bc3f9b58cbe5d04dc28f34ac32d852999334da96b42f64b5356"
+SRC_URI[sha256sum] = "cd69a926a3363e25e94a64408303283c59085be96d71524bdbe6bfc8da2e34e0"
 
 inherit setuptools3 pypi
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_3.1.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_3.1.9.bb
deleted file mode 100644
index 94dbae2..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_3.1.9.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Simple construction, analysis and modification of binary data."
-HOMEPAGE = "https://github.com/scott-griffiths/bitstring"
-AUTHOR = "Scott Griffiths <dr.scottgriffiths@gmail.com>"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f7f2fd3f1cd52b5ccd39d76fb3568d3f"
-
-SRC_URI[sha256sum] = "a5848a3f63111785224dca8bb4c0a75b62ecdef56a042c8d6be74b16f7e860e7"
-
-PYPI_PACKAGE = "bitstring"
-
-inherit pypi setuptools3
-
-RDEPENDS:${PN} = "\
-    ${PYTHON_PN}-core \
-    ${PYTHON_PN}-numbers \
-    ${PYTHON_PN}-mmap \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.0.2.bb
new file mode 100644
index 0000000..b2ad991
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-bitstring_4.0.2.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Simple construction, analysis and modification of binary data."
+HOMEPAGE = "https://github.com/scott-griffiths/bitstring"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=661f450e2c0aef39b4b15597333444a7"
+
+SRC_URI[sha256sum] = "a391db8828ac4485dd5ce72c80b27ebac3e7b989631359959e310cd9729723b2"
+
+PYPI_PACKAGE = "bitstring"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-core \
+    ${PYTHON_PN}-io \
+    ${PYTHON_PN}-mmap \
+    ${PYTHON_PN}-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.6.2.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.6.2.bb
index dae1e39..b0728e6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-blinker_1.6.2.bb
@@ -2,12 +2,16 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=42cd19c88fc13d1307a4efd64ee90e4e"
 
-SRC_URI[sha256sum] = "923e5e2f69c155f2cc42dafbbd70e16e3fde24d2d4aa2ab72fbe386238892462"
+SRC_URI[sha256sum] = "4afd3de66ef3a9f8067559fb7a1cbe555c17dcbe15971b05d1b625c3e7abe213"
 
-inherit pypi setuptools3 ptest
+inherit pypi python_setuptools_build_meta ptest
 
 SRC_URI += "file://run-ptest"
 
+RDEPENDS:${PN} += "\
+        ${PYTHON_PN}-asyncio \
+"
+
 RDEPENDS:${PN}-ptest += " \
 	${PYTHON_PN}-pytest \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_3.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_3.2.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_3.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_3.2.0.bb
index 27bd625..0c2810c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_3.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-charset-normalizer_3.2.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0974a390827087287db39928f7c524b5"
 
-SRC_URI[sha256sum] = "34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"
+SRC_URI[sha256sum] = "3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click/0001-tests-Fix-test_bytes_args.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-click/0001-tests-Fix-test_bytes_args.patch
deleted file mode 100644
index e69a37c..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-click/0001-tests-Fix-test_bytes_args.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From da83bd7ca0959027086115f23534957b0917aaa5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 27 Apr 2023 22:21:24 -0700
-Subject: [PATCH] tests: Fix test_bytes_args
-
-sys.stdin.encoding is readonly therefore use Mocking to wrap it.
-Sourced from - Alpine
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/test_arguments.py | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/tests/test_arguments.py b/tests/test_arguments.py
-index 735df4b..3395c55 100644
---- a/tests/test_arguments.py
-+++ b/tests/test_arguments.py
-@@ -1,4 +1,5 @@
- import sys
-+from unittest import mock
- 
- import pytest
- 
-@@ -86,9 +87,12 @@ def test_bytes_args(runner, monkeypatch):
-         ), "UTF-8 encoded argument should be implicitly converted to Unicode"
- 
-     # Simulate empty locale environment variables
--    monkeypatch.setattr(sys.stdin, "encoding", "utf-8")
-     monkeypatch.setattr(sys, "getfilesystemencoding", lambda: "utf-8")
-     monkeypatch.setattr(sys, "getdefaultencoding", lambda: "utf-8")
-+    # sys.stdin.encoding is readonly, needs some extra effort to patch.
-+    stdin = mock.Mock(wraps=sys.stdin)
-+    stdin.encoding = "utf-8"
-+    monkeypatch.setattr(sys, "stdin", stdin)
- 
-     runner.invoke(
-         from_bytes,
--- 
-2.40.1
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.6.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.6.bb
index 9b8ea94..4858c9e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-click_8.1.6.bb
@@ -8,14 +8,11 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=1fa98232fd645608937a0fdc82e999b8"
 
-SRC_URI[sha256sum] = "7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"
+SRC_URI[sha256sum] = "48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd"
 
 inherit pypi setuptools3 ptest
 
-SRC_URI += " \
-	file://0001-tests-Fix-test_bytes_args.patch \
-	file://run-ptest \
-"
+SRC_URI += "file://run-ptest"
 
 RDEPENDS:${PN}-ptest += " \
 	${PYTHON_PN}-pytest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.0.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.0.bb
index c66c777..8111675 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.26.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmake_3.27.0.bb
@@ -11,7 +11,7 @@
 PYPI_ARCHIVE_NAME_PREFIX = "pypi-"
 
 inherit pypi python_setuptools_build_meta
-SRC_URI[sha256sum] = "d45b30b9ce7280829888c78650177ab525df2b6785e1a5b3d82b4c147d828c0e"
+SRC_URI[sha256sum] = "d03f0a76a2b96805044ad1178b92aeeb5f695caa6776a32522bb5c430a55b4e8"
 
 SRC_URI += " \
 	file://CMakeLists.txt \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.7.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.7.bb
index 7d3a5fb..2eab701 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-configargparse_1.7.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=da746463714cc35999ed9a42339f2943"
 
-SRC_URI[sha256sum] = "363d80a6d35614bd446e2f2b1b216f3b33741d03ac6d0a92803306f40e555b58"
+SRC_URI[sha256sum] = "e7067471884de5478c58a511e529f0f9bd1c66bfef1dea90935438d6c23306d1"
 
 PYPI_PACKAGE = "ConfigArgParse"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.12.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.12.2.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.12.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.12.2.bb
index b63e71e..fa8549c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.12.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cytoolz_0.12.2.bb
@@ -5,7 +5,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d422ebce3e9c6447563bd410e9b22f2e"
 
-SRC_URI[sha256sum] = "fc33909397481c90de3cec831bfb88d97e220dc91939d996920202f184b4648e"
+SRC_URI[sha256sum] = "31d4b0455d72d914645f803d917daf4f314d115c70de0578d3820deb8b101f66"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.6.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.7.bb
similarity index 64%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.6.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.7.bb
index bec4643..b6b7881 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.6.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dill_0.3.7.bb
@@ -1,9 +1,9 @@
 SUMMARY = "Serialize all of python"
 HOMEPAGE = "https://pypi.org/project/dill/"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=61f24e44fc855bde43ed5a1524a37bc4"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=19de1f406e29e68f579e7e82e0758ce3"
 
-SRC_URI[sha256sum] = "e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"
+SRC_URI[sha256sum] = "cc1c8b182eb3013e24bd475ff2e9295af86c1a38eb1aff128dac8962a9ce3c03"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.2.bb
deleted file mode 100644
index da65eb9..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require python-django.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "2a6b6fbff5b59dd07bef10bcb019bee2ea97a30b2a656d51346596724324badf"
-
-RDEPENDS:${PN} += "\
-    ${PYTHON_PN}-sqlparse \
-    ${PYTHON_PN}-asgiref \
-"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.3.bb
new file mode 100644
index 0000000..4e31927
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-django_4.2.3.bb
@@ -0,0 +1,9 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "45a747e1c5b3d6df1b141b1481e193b033fd1fdbda3ff52677dc81afdaacbaed"
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-sqlparse \
+    ${PYTHON_PN}-asgiref \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.4.1.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.4.1.bb
index 3d1dc8d..6233527 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-dnspython_2.4.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
 
-SRC_URI[sha256sum] = "224e32b03eb46be70e12ef6d64e0be123a64e621ab4c0822ff6d450d52a540b9"
+SRC_URI[sha256sum] = "c33971c79af5be968bb897e95c2448e11a645ee84d93b265ce0b7aabe5dfdca8"
 
 inherit pypi python_poetry_core ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.5.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.5.bb
index 60c54f0..7b6aad7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-elementpath_4.1.5.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5dbb7fb7d72da3921202dd7b995d3ecf"
 
-SRC_URI[sha256sum] = "f991c42ff66fa06e219141ccf65890261e6635b448e7d4c2d8b62dc5bf1de9e8"
+SRC_URI[sha256sum] = "c2d6dc524b29ef751ecfc416b0627668119d8812441c555d7471da41d4bacb8d"
 
 PYPI_PACKAGE = "elementpath"
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.5.1.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.5.1.bb
index b20a641..d972488 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-engineio_4.5.1.bb
@@ -17,4 +17,4 @@
 	python3-asyncio \
 "
 
-SRC_URI[sha256sum] = "eb3663ecb300195926b526386f712dff84cd092c818fb7b62eeeda9160120c29"
+SRC_URI[sha256sum] = "b167a1b208fcdce5dbe96a61a6ca22391cfa6715d796c22de93e3adf9c07ae0c"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.1.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.0.bb
index 896800a..ce2dcb0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-eth-utils_2.2.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6749008d847c14b9718949c2e24d5c0a"
 
-SRC_URI[sha256sum] = "7cccfb0b0749431d0d001e327e9a7289bf07308316a73850ae3895020e5682f4"
+SRC_URI[sha256sum] = "7f1a9e10400ee332432a778c321f446abaedb8f538df550e7c9964f446f7e265"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb
similarity index 82%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb
index ea17e84..a934d1c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_1.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb
@@ -8,14 +8,14 @@
 
 DEPENDS += "\
     python3-pip-native \
-    python3-setuptools-scm-native \
+    python3-hatch-vcs-native \
 "
 
 SRC_URI += "file://run-ptest \
            "
-SRC_URI[sha256sum] = "8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"
+SRC_URI[sha256sum] = "cc59bc4423742fd71ad227122eb0dd44db51efb3dc4095b45ac9a08c770096af"
 
-inherit ptest pypi setuptools3
+inherit ptest pypi python_hatchling
 
 do_install_ptest() {
     install -d ${D}${PTEST_PATH}/tests
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
similarity index 94%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
index 689fe51..e0be7b6 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.16.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
@@ -6,7 +6,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=18950e8362b69c0c617b42b8bd8e7532"
 
-SRCREV = "4f11540d2e8f7c0aeae1230cdbc65a99f1b277c4"
+SRCREV = "756540088687cda351390f687b92e602feaa7dc6"
 PYPI_SRC_URI = "git://github.com/horejsek/python-fastjsonschema;protocol=https;branch=master"
 
 SRC_URI += "file://run-ptest"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.5.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.4.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.5.bb
index 4dae0d1..34919d2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.4.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.5.bb
@@ -9,7 +9,7 @@
 
 PYPI_PACKAGE = "Flask-SocketIO"
 
-SRC_URI[sha256sum] = "1cbd379c9bf68ac37bcc4750d01708922fa6365d13a5447d3f8893792879410c"
+SRC_URI[sha256sum] = "5f01158d10db71aa78c969b631ce3b9148b47ab0de1995158f9577f85b004d25"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-flask \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.2.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb
index 90c56c7..c4c1ff7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb
@@ -6,18 +6,19 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=ffeffa59c90c9c4a033c7574f8f3fb75"
 
-SRC_URI[sha256sum] = "7eb373984bf1c770023fce9db164ed0c3353cd0b53f130f4693da0ca756a2e6d"
+SRC_URI[sha256sum] = "8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef"
 
 PYPI_PACKAGE = "Flask"
 
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
 
 CLEANBROKEN = "1"
 
 RDEPENDS:${PN} = " \
-    ${PYTHON_PN}-werkzeug \
-    ${PYTHON_PN}-jinja2 \
-    ${PYTHON_PN}-itsdangerous \
+    ${PYTHON_PN}-blinker \
     ${PYTHON_PN}-click \
+    ${PYTHON_PN}-itsdangerous \
+    ${PYTHON_PN}-jinja2 \
     ${PYTHON_PN}-profile \
+    ${PYTHON_PN}-werkzeug \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.4.0.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.4.0.bb
index 0cd23ab..340b0e3 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.3.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-frozenlist_1.4.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=cf056e8e7a0a5477451af18b7b5aa98c"
 
-SRC_URI[sha256sum] = "58bcc55721e8a90b88332d6cd441261ebb22342e238296bb330968952fbb3a6a"
+SRC_URI[sha256sum] = "09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_22.10.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_22.10.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb
index b9bf913..a82abcc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_22.10.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb
@@ -13,7 +13,7 @@
 
 SRC_URI += "file://0001-_setuputils.py-Do-not-add-sys_inc_dir.patch"
 
-SRC_URI[sha256sum] = "1ca01da176ee37b3527a2702f7d40dbc9ffb8cfc7be5a03bfa4f9eec45e55c46"
+SRC_URI[sha256sum] = "d0d3630674c1b344b256a298ab1ff43220f840b12af768131b5d74e485924237"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.5.1.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.5.1.bb
index b97c4f3..7510625 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gnupg_0.5.1.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5dabe659eadd6d97325b1582e41cfc11"
 
 PYPI_PACKAGE = "python-gnupg"
-SRC_URI[sha256sum] = "70758e387fc0e0c4badbcb394f61acbe68b34970a8fed7e0f7c89469fe17912a"
+SRC_URI[sha256sum] = "5674bad4e93876c0b0d3197e314d7f942d39018bf31e2b833f6788a6813c3fb8"
 
 inherit pypi python_setuptools_build_meta
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb
index 8ac34e6..de2bd3d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb
@@ -1,6 +1,5 @@
 DESCRIPTION = "Google API client core library"
 HOMEPAGE = "https://github.com/googleapis/python-api-core"
-AUTHOR = "Google LLC"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.92.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.95.0.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.92.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.95.0.bb
index 4d617ec..c862583 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.92.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-api-python-client_2.95.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "f38a6e106a7417719715506d36f0a233ec253335e422bda311352866a86c4187"
+SRC_URI[sha256sum] = "d2731ede12f79e53fbe11fdb913dfe986440b44c0a28431c78a8ec275f4c1541"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.21.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.21.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb
index ab32ec4..23def6c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.21.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb
@@ -1,12 +1,11 @@
 DESCRIPTION = "Google Authentication Library"
 HOMEPAGE = "https://github.com/googleapis/google-auth-library-python"
-AUTHOR = "Google Cloud Platform"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "b28e8048e57727e7cf0e5bd8e7276b212aef476654a09511354aa82753b45c66"
+SRC_URI[sha256sum] = "164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-asyncio \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.1.bb
index 802a434..a6b3d4e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.1.bb
@@ -1,6 +1,5 @@
 DESCRIPTION = "Common protobufs used in Google APIs"
 HOMEPAGE = "https://github.com/googleapis/python-api-common-protos"
-AUTHOR = "Google LLC"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
index f833e69..ea8c185 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Python bindings for libgpiod."
-AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
 
 LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & CC-BY-SA-4.0"
 # The actual license files live in the upstream libgpiod from which the pypi
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_2.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_2.0.2.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_2.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_2.0.2.bb
index 841b84d..33eb62d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_2.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-greenstalk_2.0.2.bb
@@ -3,9 +3,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8f98432ba1fce3933c556430fd47298f"
 
-SRC_URI[sha256sum] = "0020970abdb6f400586938573cbbec80410e83805d61e46cf76ea3ed71129257"
+SRC_URI[sha256sum] = "3ebde5fc9ecf986f96f6779fd6d15a53f33d432c52a2e28012e100a99ee154a4"
 
 RDEPENDS:${PN} += "python3-io python3-core"
 
-inherit pypi
-inherit setuptools3
+inherit pypi python_setuptools_build_meta
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.2.bb
similarity index 94%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.2.bb
index fc871ad..c34391d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-grpcio_1.56.2.bb
@@ -14,7 +14,7 @@
                                 file://0001-direct_mmap-Use-off_t-on-linux.patch;patchdir=third_party/abseil-cpp \
                                 file://0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch \
 "
-SRC_URI[sha256sum] = "4c08ee21b3d10315b8dc26f6c13917b20ed574cdbed2d2d80c53d5508fdcc0f2"
+SRC_URI[sha256sum] = "0ff789ae7d8ddd76d2ac02e7d13bfef6fc4928ac01e1dcaa182be51b6bcc0aaa"
 
 RDEPENDS:${PN} = "${PYTHON_PN}-protobuf \
                   ${PYTHON_PN}-setuptools \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-gunicorn_21.2.0.bb
similarity index 71%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-gunicorn_21.2.0.bb
index f381b9d..d765c8f 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-gunicorn_21.2.0.bb
@@ -1,9 +1,9 @@
 SUMMARY = "WSGI HTTP Server for UNIX"
 
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f75f3fb94cdeab1d607e2adaa6077752"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=302423eeae97079c633da81b6a5fe35e"
 
-SRC_URI[sha256sum] = "e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"
+SRC_URI[sha256sum] = "88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033"
 
 inherit pypi setuptools3 ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.7.0.bb
similarity index 70%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.7.0.bb
index 7bb03b7..81654af 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanize_4.7.0.bb
@@ -5,12 +5,13 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENCE;md5=4ecc42519e84f6f3e23529464df7bd1d"
 
-SRC_URI[sha256sum] = "efb2584565cc86b7ea87a977a15066de34cdedaf341b11c851cfcfd2b964779c"
+SRC_URI[sha256sum] = "7ca0e43e870981fa684acb5b062deb307218193bca1a01f2b2676479df849b3a"
 
-inherit pypi python_setuptools_build_meta
+inherit pypi python_hatchling
 
 DEPENDS += "\
     ${PYTHON_PN}-setuptools-scm-native \
+    ${PYTHON_PN}-hatch-vcs-native \
 "
 
 RDEPENDS:${PN} += "\
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
index 15fb92e..9e35c7b 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-inotify_git.bb
@@ -1,5 +1,4 @@
 SUMMARY = "An adapter to Linux kernel support for inotify directory-watching."
-AUTHOR = "Dustin Oprea"
 HOMEPAGE = "https://pypi.org/project/inotify/"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://setup.py;md5=79b7ec72aa0d446a552d3cceb5799e41;beginline=28;endline=28"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb
index 9a8e6f7..58af7b7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Python wrapper around iperf3"
 HOMEPAGE = "https://github.com/thiezn/iperf3-python"
-AUTHOR = "Mathijs Mortimer <mathijs@mortimer.nl>"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f7d0900b3d30647cdda002c9549ca40f"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb
index 2a28cf9..8725150 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Vestigial utilities from IPython"
 HOMEPAGE = "http://ipython.org"
-AUTHOR = "IPython Development Team <ipython-dev@scipy.org>"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING.md;md5=f7c3032c3ac398265224533a0a333a35"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.12.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.14.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.12.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.14.0.bb
index 0cfc80e..dece1d7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.12.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-ipython_8.14.0.bb
@@ -1,12 +1,11 @@
 SUMMARY = "IPython: Productive Interactive Computing"
 HOMEPAGE = "https://ipython.org"
-AUTHOR = "The IPython Development Team <ipython-dev@python.org>"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING.rst;md5=59b20262b8663cdd094005bddf47af5f"
 
 PYPI_PACKAGE = "ipython"
 
-SRC_URI[sha256sum] = "a950236df04ad75b5bc7f816f9af3d74dc118fd42f2ff7e80e8e60ca1f182e2d"
+SRC_URI[sha256sum] = "1d197b907b6ba441b692c48cf2a3a2de280dc0ac91a3405b39349a50272ca0a1"
 
 RDEPENDS:${PN} = "\
     ${PYTHON_PN}-setuptools \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.19.0.bb
similarity index 75%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.19.0.bb
index 41063d2..58e8cc1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.18.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jedi_0.19.0.bb
@@ -1,12 +1,11 @@
 SUMMARY = "An autocompletion tool for Python that can be used for text editors."
 HOMEPAGE = "https://github.com/davidhalter/jedi"
-AUTHOR = "David Halter <davidhalter88@gmail.com>"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5ed06eebfcb244cd66ebf6cef9c23ab4"
 
 PYPI_PACKAGE = "jedi"
 
-SRC_URI[sha256sum] = "bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"
+SRC_URI[sha256sum] = "bcf9894f1753969cbac8022a8c2eaee06bfa3724e4192470aaffe7eb6272b0c4"
 
 RDEPENDS:${PN} = " \
 	${PYTHON_PN}-parso \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.32.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.33.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.32.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.33.bb
index 2a653cc..3d6deb2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.32.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-jsonpatch_1.33.bb
@@ -1,11 +1,11 @@
 SUMMARY  = "Appling JSON patches in Python 2.6+ and 3.x"
 HOMEPAGE = "https://github.com/stefankoegl/python-json-patch"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=32b15c843b7a329130f4e266a281ebb3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4f81c84f9a053e31fe9402a2a4e78864"
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2"
+SRC_URI[sha256sum] = "9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"
 
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-json \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/CVE-2020-25657.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/CVE-2020-25657.patch
deleted file mode 100644
index 38ecd7a..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto/CVE-2020-25657.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-Backport patch to fix CVE-2020-25657.
-
-Upstream-Status: Backport [https://gitlab.com/m2crypto/m2crypto/-/commit/84c53958]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-From 84c53958def0f510e92119fca14d74f94215827a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= <mcepl@cepl.eu>
-Date: Tue, 28 Jun 2022 21:17:01 +0200
-Subject: [PATCH] Mitigate the Bleichenbacher timing attacks in the RSA
- decryption API (CVE-2020-25657)
-
-Fixes #282
----
- src/SWIG/_m2crypto_wrap.c | 20 ++++++++++++--------
- src/SWIG/_rsa.i           | 20 ++++++++++++--------
- tests/test_rsa.py         | 15 +++++++--------
- 3 files changed, 31 insertions(+), 24 deletions(-)
-
-diff --git a/src/SWIG/_m2crypto_wrap.c b/src/SWIG/_m2crypto_wrap.c
-index aba9eb6d..a9f30da9 100644
---- a/src/SWIG/_m2crypto_wrap.c
-+++ b/src/SWIG/_m2crypto_wrap.c
-@@ -7040,9 +7040,10 @@ PyObject *rsa_private_encrypt(RSA *rsa, PyObject *from, int padding) {
-     tlen = RSA_private_encrypt(flen, (unsigned char *)fbuf,
-         (unsigned char *)tbuf, rsa, padding);
-     if (tlen == -1) {
--        m2_PyErr_Msg(_rsa_err);
-+        ERR_clear_error();
-+        PyErr_Clear();
-         PyMem_Free(tbuf);
--        return NULL;
-+        Py_RETURN_NONE;
-     }
- 
-     ret = PyBytes_FromStringAndSize((const char *)tbuf, tlen);
-@@ -7070,9 +7071,10 @@ PyObject *rsa_public_decrypt(RSA *rsa, PyObject *from, int padding) {
-     tlen = RSA_public_decrypt(flen, (unsigned char *)fbuf,
-         (unsigned char *)tbuf, rsa, padding);
-     if (tlen == -1) {
--        m2_PyErr_Msg(_rsa_err);
-+        ERR_clear_error();
-+        PyErr_Clear();
-         PyMem_Free(tbuf);
--        return NULL;
-+        Py_RETURN_NONE;
-     }
- 
-     ret = PyBytes_FromStringAndSize((const char *)tbuf, tlen);
-@@ -7097,9 +7099,10 @@ PyObject *rsa_public_encrypt(RSA *rsa, PyObject *from, int padding) {
-     tlen = RSA_public_encrypt(flen, (unsigned char *)fbuf,
-         (unsigned char *)tbuf, rsa, padding);
-     if (tlen == -1) {
--        m2_PyErr_Msg(_rsa_err);
-+        ERR_clear_error();
-+        PyErr_Clear();
-         PyMem_Free(tbuf);
--        return NULL;
-+        Py_RETURN_NONE;
-     }
- 
-     ret = PyBytes_FromStringAndSize((const char *)tbuf, tlen);
-@@ -7124,9 +7127,10 @@ PyObject *rsa_private_decrypt(RSA *rsa, PyObject *from, int padding) {
-     tlen = RSA_private_decrypt(flen, (unsigned char *)fbuf,
-         (unsigned char *)tbuf, rsa, padding);
-     if (tlen == -1) {
--        m2_PyErr_Msg(_rsa_err);
-+        ERR_clear_error();
-+        PyErr_Clear();
-         PyMem_Free(tbuf);
--        return NULL;
-+        Py_RETURN_NONE;
-     }
-     ret = PyBytes_FromStringAndSize((const char *)tbuf, tlen);
- 
-diff --git a/src/SWIG/_rsa.i b/src/SWIG/_rsa.i
-index bc714e01..1377b8be 100644
---- a/src/SWIG/_rsa.i
-+++ b/src/SWIG/_rsa.i
-@@ -239,9 +239,10 @@ PyObject *rsa_private_encrypt(RSA *rsa, PyObject *from, int padding) {
-     tlen = RSA_private_encrypt(flen, (unsigned char *)fbuf,
-         (unsigned char *)tbuf, rsa, padding);
-     if (tlen == -1) {
--        m2_PyErr_Msg(_rsa_err);
-+        ERR_clear_error();
-+        PyErr_Clear();
-         PyMem_Free(tbuf);
--        return NULL;
-+        Py_RETURN_NONE;
-     }
- 
-     ret = PyBytes_FromStringAndSize((const char *)tbuf, tlen);
-@@ -269,9 +270,10 @@ PyObject *rsa_public_decrypt(RSA *rsa, PyObject *from, int padding) {
-     tlen = RSA_public_decrypt(flen, (unsigned char *)fbuf,
-         (unsigned char *)tbuf, rsa, padding);
-     if (tlen == -1) {
--        m2_PyErr_Msg(_rsa_err);
-+        ERR_clear_error();
-+        PyErr_Clear();
-         PyMem_Free(tbuf);
--        return NULL;
-+        Py_RETURN_NONE;
-     }
- 
-     ret = PyBytes_FromStringAndSize((const char *)tbuf, tlen);
-@@ -296,9 +298,10 @@ PyObject *rsa_public_encrypt(RSA *rsa, PyObject *from, int padding) {
-     tlen = RSA_public_encrypt(flen, (unsigned char *)fbuf,
-         (unsigned char *)tbuf, rsa, padding);
-     if (tlen == -1) {
--        m2_PyErr_Msg(_rsa_err);
-+        ERR_clear_error();
-+        PyErr_Clear();
-         PyMem_Free(tbuf);
--        return NULL;
-+        Py_RETURN_NONE;
-     }
- 
-     ret = PyBytes_FromStringAndSize((const char *)tbuf, tlen);
-@@ -323,9 +326,10 @@ PyObject *rsa_private_decrypt(RSA *rsa, PyObject *from, int padding) {
-     tlen = RSA_private_decrypt(flen, (unsigned char *)fbuf,
-         (unsigned char *)tbuf, rsa, padding);
-     if (tlen == -1) {
--        m2_PyErr_Msg(_rsa_err);
-+        ERR_clear_error();
-+        PyErr_Clear();
-         PyMem_Free(tbuf);
--        return NULL;
-+        Py_RETURN_NONE;
-     }
-     ret = PyBytes_FromStringAndSize((const char *)tbuf, tlen);
- 
-diff --git a/tests/test_rsa.py b/tests/test_rsa.py
-index 7bb3af75..5e75d681 100644
---- a/tests/test_rsa.py
-+++ b/tests/test_rsa.py
-@@ -109,8 +109,9 @@ class RSATestCase(unittest.TestCase):
-         # The other paddings.
-         for padding in self.s_padding_nok:
-             p = getattr(RSA, padding)
--            with self.assertRaises(RSA.RSAError):
--                priv.private_encrypt(self.data, p)
-+            # Exception disabled as a part of mitigation against CVE-2020-25657
-+            # with self.assertRaises(RSA.RSAError):
-+            priv.private_encrypt(self.data, p)
-         # Type-check the data to be encrypted.
-         with self.assertRaises(TypeError):
-             priv.private_encrypt(self.gen_callback, RSA.pkcs1_padding)
-@@ -127,10 +128,12 @@ class RSATestCase(unittest.TestCase):
-             self.assertEqual(ptxt, self.data)
- 
-         # no_padding
--        with six.assertRaisesRegex(self, RSA.RSAError, 'data too small'):
--            priv.public_encrypt(self.data, RSA.no_padding)
-+        # Exception disabled as a part of mitigation against CVE-2020-25657
-+        # with six.assertRaisesRegex(self, RSA.RSAError, 'data too small'):
-+        priv.public_encrypt(self.data, RSA.no_padding)
- 
-         # Type-check the data to be encrypted.
-+        # Exception disabled as a part of mitigation against CVE-2020-25657
-         with self.assertRaises(TypeError):
-             priv.public_encrypt(self.gen_callback, RSA.pkcs1_padding)
- 
-@@ -146,10 +149,6 @@ class RSATestCase(unittest.TestCase):
-                          b'\000\000\000\003\001\000\001')  # aka 65537 aka 0xf4
-         with self.assertRaises(RSA.RSAError):
-             setattr(rsa, 'e', '\000\000\000\003\001\000\001')
--        with self.assertRaises(RSA.RSAError):
--            rsa.private_encrypt(1)
--        with self.assertRaises(RSA.RSAError):
--            rsa.private_decrypt(1)
-         assert rsa.check_key()
- 
-     def test_loadpub_bad(self):
--- 
-GitLab
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.39.0.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.39.0.bb
index 40e3bfb..ac62773 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.38.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.39.0.bb
@@ -10,9 +10,8 @@
             file://cross-compile-platform.patch \
             file://avoid-host-contamination.patch \
             file://0001-setup.py-address-openssl-3.x-build-issue.patch \
-            file://CVE-2020-25657.patch \
             "
-SRC_URI[sha256sum] = "99f2260a30901c949a8dc6d5f82cd5312ffb8abc92e76633baf231bbbcb2decb"
+SRC_URI[sha256sum] = "24c0f471358b8b19ad4c8aa9da12e868030b65c1fdb3279d006df60c9501338a"
 
 PYPI_PACKAGE = "M2Crypto"
 inherit pypi siteinfo setuptools3
@@ -45,4 +44,9 @@
 
 export STAGING_DIR
 
+do_install:append() {
+    rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/M2Crypto/SSL/__pycache__/*.cpython-*.pyc
+    rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/M2Crypto/__pycache__/*.cpython-*.pyc
+}
+
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.19.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.20.1.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.19.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.20.1.bb
index 91f6462..f0ca630 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.19.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-marshmallow_3.20.1.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Simplified object serialization in python"
 DESCRIPTION = "Marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes."
-AUTHOR = "Marius Kriegerowski <mk@quakesaver.net>"
 HOMEPAGE = "https://github.com/marshmallow-code/marshmallow"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "\
@@ -9,7 +8,7 @@
 
 SRC_URI = "git://github.com/marshmallow-code/marshmallow.git;protocol=https;branch=dev"
 
-SRCREV = "78edf5582ee325bba99f097cb7167ef73b6f84d8"
+SRCREV = "dda9a8014dfe1bcb35e21307cfd5a8e19615a284"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/0001-removed-RandomNumberGenerator-class-included-random-.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/0001-removed-RandomNumberGenerator-class-included-random-.patch
deleted file mode 100644
index 1f9b8cd..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/0001-removed-RandomNumberGenerator-class-included-random-.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 3eb9987b02cc10b93e09219ddc86aa6be5f10177 Mon Sep 17 00:00:00 2001
-From: tybeller <ty.c.beller@gmail.com>
-Date: Fri, 30 Sep 2022 16:13:41 -0400
-Subject: [PATCH] removed RandomNumberGenerator class, included <random>,
- replaced random_shuffle with shuffle and used mersenne twister engine to
- generate uniform random bit generator for the shuffle.
-
-Upstream-Status: Backport [https://github.com/matplotlib/matplotlib/commit/601d92a8850]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/tri/_tri.cpp | 20 ++++----------------
- 1 file changed, 4 insertions(+), 16 deletions(-)
-
-diff --git a/src/tri/_tri.cpp b/src/tri/_tri.cpp
-index b7a87783de..6e639eea44 100644
---- a/src/tri/_tri.cpp
-+++ b/src/tri/_tri.cpp
-@@ -12,6 +12,7 @@
- 
- #include <algorithm>
- #include <set>
-+#include <random>
- 
- 
- TriEdge::TriEdge()
-@@ -1465,8 +1466,8 @@ TrapezoidMapTriFinder::initialize()
-     _tree->assert_valid(false);
- 
-     // Randomly shuffle all edges other than first 2.
--    RandomNumberGenerator rng(1234);
--    std::random_shuffle(_edges.begin()+2, _edges.end(), rng);
-+    std::mt19937 rng(1234);
-+    std::shuffle(_edges.begin()+2, _edges.end(), rng);
- 
-     // Add edges, one at a time, to tree.
-     size_t nedges = _edges.size();
-@@ -2055,17 +2056,4 @@ TrapezoidMapTriFinder::Trapezoid::set_upper_right(Trapezoid* upper_right_)
-     upper_right = upper_right_;
-     if (upper_right != 0)
-         upper_right->upper_left = this;
--}
--
--
--
--RandomNumberGenerator::RandomNumberGenerator(unsigned long seed)
--    : _m(21870), _a(1291), _c(4621), _seed(seed % _m)
--{}
--
--unsigned long
--RandomNumberGenerator::operator()(unsigned long max_value)
--{
--    _seed = (_seed*_a + _c) % _m;
--    return (_seed*max_value) / _m;
--}
-+}
-\ No newline at end of file
--- 
-2.39.0
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
index 899cac6..aea8f62 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
@@ -4,19 +4,17 @@
 
 Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
 
+Update patch to fit on 3.7.2.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+
+diff --git a/setup.py b/setup.py
+index 0bea13fa6f..f39d8fc871 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -303,7 +303,6 @@ setup(  # Finally, pass this all along t
-     setup_requires=[
-         "certifi>=2020.06.20",
-         "numpy>=1.19",
--        "setuptools_scm>=7",
-     ],
-     install_requires=[
-         "contourpy>=1.0.1",
-@@ -315,13 +314,7 @@ setup(  # Finally, pass this all along t
+@@ -327,13 +327,7 @@ setup(  # Finally, pass this all along to setuptools to do the heavy lifting.
          "pillow>=6.2.0",
-         "pyparsing>=2.2.1",
+         "pyparsing>=2.3.1,<3.1",
          "python-dateutil>=2.7",
 -    ] + (
 -        # Installing from a git checkout that is not producing a wheel.
@@ -26,12 +24,14 @@
 -        ) else []
 -    ),
 +    ],
-     use_scm_version={
-         "version_scheme": "release-branch-semver",
-         "local_scheme": "node-and-date",
+     extras_require={
+         ':python_version<"3.10"': [
+             "importlib-resources>=3.2.0",
+diff --git a/setupext.py b/setupext.py
+index a898d642d6..474172ff8f 100644
 --- a/setupext.py
 +++ b/setupext.py
-@@ -65,40 +65,7 @@ def get_from_cache_or_download(url, sha)
+@@ -66,40 +66,7 @@ def get_from_cache_or_download(url, sha):
      BytesIO
          The file loaded into memory.
      """
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.6.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
index fa0a78d..72c3691 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-matplotlib_3.7.2.bb
@@ -7,7 +7,7 @@
 SECTION = "devel/python"
 LICENSE = "PSF-2.0"
 LIC_FILES_CHKSUM = "\
-    file://setup.py;beginline=283;endline=283;md5=20e7ab4d2b2b1395a0e4ab800181eb96 \
+    file://setup.py;beginline=293;endline=293;md5=20e7ab4d2b2b1395a0e4ab800181eb96 \
     file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74 \
 "
 
@@ -20,15 +20,16 @@
     python3-pytz-native \
     python3-certifi-native \
     python3-setuptools-scm-native \
+    python3-pybind11-native \
 "
-SRC_URI[sha256sum] = "1f4d69707b1677560cd952544ee4962f68ff07952fb9069ff8c12b56353cb8c9"
+SRC_URI[sha256sum] = "a8cdb91dddb04436bd2f098b8fdf4b81352e68cf4d2c6756fcc414791076569b"
 
 inherit pypi setuptools3 pkgconfig
 
 # Stop the component from attempting to download when it detects a missing
 # dependency
 SRC_URI += "file://matplotlib-disable-download.patch \
-            file://0001-removed-RandomNumberGenerator-class-included-random-.patch"
+"
 
 # This python module requires a full copy of freetype-2.6.1
 SRC_URI += "https://downloads.sourceforge.net/project/freetype/freetype2/2.6.1/freetype-2.6.1.tar.gz;name=freetype;subdir=matplotlib-${PV}/build"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.1.0.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.1.0.bb
index 6b511d8..d9ecb9d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.0.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-mock_5.1.0.bb
@@ -16,4 +16,4 @@
     python3-unittest \
 "
 
-SRC_URI[sha256sum] = "06f18d7d65b44428202b145a9a36e99c2ee00d1eb992df0caf881d4664377891"
+SRC_URI[sha256sum] = "5e96aad5ccda4718e0a229ed94b2024df75cc2d55575ba5762d31f5767b8767d"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb
deleted file mode 100644
index 0cb1b85..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "A python module for handling realtime sensor data from OBD-II vehicle ports"HOMEPAGE = "https://github.com/brendan-w/python-OBD"
-LICENSE = "GPL-2.0-only"
-LIC_FILES_CHKSUM = "file://README.md;md5=58ba896fa086c96ad23317cebfeab277"
-
-SRC_URI[md5sum] = "305efcb6c650db7b9583532355ebeb7c"
-SRC_URI[sha256sum] = "8b81ea5896157b6e861af12e173c10b001cb6cca6ebb04db2c01d326812ad77b"
-
-inherit setuptools3 pypi
-
-RDEPENDS:${PN} += "${PYTHON_PN}-pyserial ${PYTHON_PN}-pint ${PYTHON_PN}-setuptools ${PYTHON_PN}-packaging"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.2.bb
new file mode 100644
index 0000000..d78642a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-obd_0.7.2.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "A python module for handling realtime sensor data from OBD-II vehicle ports"HOMEPAGE = "https://github.com/brendan-w/python-OBD"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://README.md;md5=176d0f9ad45c10895296260d426fa862"
+
+SRC_URI[sha256sum] = "20d38c9ded3daad1e8affab3ff367a70788d4f29ac77ab7aacddc6a6d2a43d61"
+
+inherit setuptools3 pypi
+
+RDEPENDS:${PN} += "${PYTHON_PN}-pyserial ${PYTHON_PN}-pint ${PYTHON_PN}-setuptools ${PYTHON_PN}-packaging"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.5.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
similarity index 77%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.5.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
index 129c314..87a173c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_1.5.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pandas_2.0.3.bb
@@ -4,14 +4,16 @@
 the Python programming language."
 HOMEPAGE = "http://pandas.pydata.org/"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c1cc9ab35a8b2aabf933cd6d245b5db3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cb819092901ddb13a7d0a4f5e05f098a"
 
-SRC_URI[sha256sum] = "74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1"
+SRC_URI[sha256sum] = "c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"
 
 inherit pypi setuptools3
 
 DEPENDS += " \
-    ${PYTHON_PN}-numpy-native ${PYTHON_PN}-cython-native \
+    ${PYTHON_PN}-cython-native \
+    ${PYTHON_PN}-numpy-native \
+    ${PYTHON_PN}-versioneer-native \
 "
 
 PACKAGESPLITFUNCS =+ "fix_cythonized_sources"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.19.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.19.1.bb
similarity index 63%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.19.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.19.1.bb
index 94c1b53..9dc7f79 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.19.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parse_1.19.1.bb
@@ -3,9 +3,18 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8ab458ad281b60e6f1b39b3feafbfc05"
 
-SRC_URI[sha256sum] = "9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b"
+SRC_URI[sha256sum] = "cc3a47236ff05da377617ddefa867b7ba983819c664e1afe46249e5b469be464"
 
-inherit pypi setuptools3 ptest
+SRC_URI += " \
+    git://github.com/r1chardj0n3s/parse.git;branch=master;protocol=https \
+    file://run-ptest \
+"
+
+SRCREV ?= "72776522285d516032faa0f80c4ee6a8964075e8"
+
+S = "${WORKDIR}/git"
+
+inherit python_setuptools_build_meta ptest
 
 RDEPENDS:${PN} += "\
     python3-datetime \
@@ -13,10 +22,6 @@
     python3-numbers \
 "
 
-SRC_URI += " \
-    file://run-ptest \
-"
-
 RDEPENDS:${PN}-ptest += " \
     python3-pytest \
 "
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
index e14f28a..ce3471d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
@@ -1,6 +1,5 @@
 SUMMARY = "A Python Parser"
 HOMEPAGE = "https://github.com/davidhalter/parso"
-AUTHOR = "David Halter <davidhalter88@gmail.com>"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cbaa2675b2424d771451332a7a69503f"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.6.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.7.1.bb
similarity index 79%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.6.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.7.1.bb
index 095f906..d9576ed 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.6.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-path_16.7.1.bb
@@ -1,8 +1,8 @@
 SUMMARY = "A module wrapper for os.path"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7a7126e068206290f3fe9f8d6c713ea6"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=141643e11c48898150daa83802dbc65f"
 
-SRC_URI[sha256sum] = "bea3816e1d54f4e33aac78d2031a0b0ed2f95e69db85b45d51f17df97071da69"
+SRC_URI[sha256sum] = "2b477f5887033f3cbea1cfd8553ee6a6a498eb2540a19f4aa082822aadcea30a"
 
 SRC_URI += "\
     file://run-ptest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb
index 8260913..bb16c78 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Tiny 'shelve'-like database with concurrency support"
 HOMEPAGE = "https://github.com/pickleshare/pickleshare"
-AUTHOR = "Ville Vainio <vivainio@gmail.com>"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=905c08218089ffebea3a64c82fc4d7d0"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.8.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.9.1.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.8.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.9.1.bb
index 52fe07a..c52d9d2 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.8.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-platformdirs_3.9.1.bb
@@ -7,7 +7,7 @@
     file://run-ptest \
 "
 
-SRC_URI[sha256sum] = "b0cabcb11063d21a0b261d557acb0a9d2126350e63b70cdf7db6347baea456dc"
+SRC_URI[sha256sum] = "1b42b450ad933e981d56e59f1b97495428c9bd60698baab9f3eb3d00d5822421"
 
 inherit pypi python_hatchling ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.4.1.bb
similarity index 80%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.4.1.bb
index 942f120..a340ba7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-portion_2.4.1.bb
@@ -7,7 +7,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "deb16389e844dbf9aeb654261fce5febd720e4786c6690efbb9dc11608226840"
+SRC_URI[sha256sum] = "9dcbf1808898f440aed304a5e9f0742a2859eca3b0ac7f1f58e50502852a8ef9"
 
 RDEPENDS:${PN} = "\
     ${PYTHON_PN}-sortedcontainers \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.23.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.23.4.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.23.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.23.4.bb
index 84fa9f8..8474a43 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.23.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-protobuf_4.23.4.bb
@@ -7,7 +7,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "7a92beb30600332a52cdadbedb40d33fd7c8a0d7f549c440347bc606fb3fe34b"
+SRC_URI[sha256sum] = "ccd9430c0719dce806b93f89c91de7977304729e55377f872a92465d548329a9"
 
 # http://errors.yoctoproject.org/Errors/Details/184715/
 # Can't find required file: ../src/google/protobuf/descriptor.proto
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio/0001-Remove-absolute-paths-into-build-machine-system-dirs.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio/0001-Remove-absolute-paths-into-build-machine-system-dirs.patch
new file mode 100644
index 0000000..a71902a
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio/0001-Remove-absolute-paths-into-build-machine-system-dirs.patch
@@ -0,0 +1,28 @@
+From d94518b558c1812aecb87d8ef19d75c2df1b98a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 26 Jul 2023 19:54:19 -0700
+Subject: [PATCH] Remove absolute paths into build machine system dirs
+
+This ensures that it does not add /usr/include and /usr/local/include/
+into cflags
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/setup.py
++++ b/setup.py
+@@ -111,11 +111,6 @@ def setup_extension():
+         # the standard portaudio cmake settings. For details, see:
+         # https://devblogs.microsoft.com/cppblog/vcpkg-updates-static-linking-is-now-available/
+         extra_compile_args += ["/MT"]
+-    else:
+-        # GNU/Linux and other posix-like OSes will dynamically link to
+-        # portaudio, installed by the package manager.
+-        include_dirs += ['/usr/local/include', '/usr/include']
+-        external_libraries_path += ['/usr/local/lib', '/usr/lib']
+ 
+     return Extension(
+         'pyaudio._portaudio',
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb
deleted file mode 100644
index 802ca35..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.11.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README;md5=288793c2b9b05bd67abbd2a8f5d144f7"
-
-PYPI_PACKAGE = "PyAudio"
-
-SRC_URI[md5sum] = "7e4c88139284033f67b4336c74eda3b8"
-SRC_URI[sha256sum] = "93bfde30e0b64e63a46f2fd77e85c41fd51182a4a3413d9edfaf9ffaa26efb74"
-
-inherit pypi setuptools3
-
-DEPENDS += "portaudio-v19"
-
-RDEPENDS:${PN} += "portaudio-v19"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.13.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.13.bb
new file mode 100644
index 0000000..1f0b5cf
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyaudio_0.2.13.bb
@@ -0,0 +1,17 @@
+SUMMARY = "PyAudio provides Python bindings for PortAudio, the cross-platform audio I/O library"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7c3152b432b96d6dc4a1cb35397da9ec"
+
+PYPI_PACKAGE = "PyAudio"
+
+SRC_URI[md5sum] = "41199ffd2abbdaf1ce6b88cf8af48cc5"
+SRC_URI[sha256sum] = "26bccc81e4243d1c0ff5487e6b481de6329fcd65c79365c267cef38f363a2b56"
+
+inherit pypi setuptools3
+
+SRC_URI += "file://0001-Remove-absolute-paths-into-build-machine-system-dirs.patch"
+
+DEPENDS += "portaudio-v19"
+
+RDEPENDS:${PN} += "portaudio-v19"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.10.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.10.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
index bb60498..d51dd90 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.10.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
@@ -7,7 +7,7 @@
 
 SRC_URI = "git://github.com/pybind/pybind11.git;branch=stable;protocol=https"
 
-SRCREV = "0bd8896a4010f2d91b2340570c24fa08606ec406"
+SRCREV = "8a099e44b3d5f85b20f05828d919d2332a8de841"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
index d887901..7c16750 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Python wrapper for Linux fanotify."
 HOMEPAGE = "https://github.com/baskiton/pyfanotify"
-AUTHOR = "Alexander Baskikh"
 SECTION = "devel/python"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=636a36c9df04efcfacf839b8866d9a37"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.172.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.173.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.172.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.173.bb
index 59ddac3..10cc52a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.172.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymisp_2.4.173.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a3639cf5780f71b125d3e9d1dc127c20"
 
 SRC_URI = "git://github.com/MISP/PyMISP.git;protocol=https;branch=main"
-SRCREV = "7d1d8b6f38f210b28934a206f9c1470542e9da7e"
+SRCREV = "ccae32ae716c143bea09954e860238e193bc78c6"
 S = "${WORKDIR}/git"
 
 inherit python_poetry_core
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.4.1.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.4.1.bb
index 2b7dfd7..ecc5678 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymodbus_3.4.1.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=430604f78bee72425da231d42eac9cee"
 DEPENDS += "python3-six-native"
 
-SRC_URI[sha256sum] = "33f427f39189567600ea1f8f6ebd7e5f26caf50ef330798792679fcae80ef339"
+SRC_URI[sha256sum] = "2a95a311669f6734f94535332984474e4b4815de1500c74e6b94432a8bd9820a"
 S = "${WORKDIR}/pymodbus-${PV}"
 
 inherit pypi setuptools3
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.1.bb
similarity index 90%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.1.bb
index a9bf31d..b89706a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pymongo_4.4.1.bb
@@ -8,7 +8,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "a1b5d286fee4b9b5a0312faede02f2ce2f56ac695685af1d25f428abdac9a22c"
+SRC_URI[sha256sum] = "a4df87dbbd03ac6372d24f2a8054b4dc33de497d5227b50ec649f436ad574284"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.5.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.1.bb
similarity index 84%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.5.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.1.bb
index d5eaa4f..c63e75c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.5.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyperf_2.6.1.bb
@@ -13,11 +13,11 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=78bc2e6e87c8c61272937b879e6dc2f8"
 
-SRC_URI[sha256sum] = "9fd9be5b57224e68b5a5b88f7126f15b6c8667573f62a0a39faf14d6fdd13909"
+SRC_URI[sha256sum] = "171aea69b8efde61210e512166d8764e7765a9c7678b768052174b01f349f247"
 
 DEPENDS += "${PYTHON_PN}-six-native"
 
 PYPI_PACKAGE = "pyperf"
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
 
 RDEPENDS:${PN} += "${PYTHON_PN}-misc ${PYTHON_PN}-statistics"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.3.2.bb
similarity index 63%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.3.2.bb
index 282d407..1b4bb5a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rdflib_6.3.2.bb
@@ -1,10 +1,10 @@
 SUMMARY = "RDFLib is a pure Python package for working with RDF"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bcae79bd3c84b857f42a98a7ccf6ad47"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=37d489c0cefe52a17e1d5007e196464a"
 
-SRC_URI[sha256sum] = "62dc3c86d1712db0f55785baf8047f63731fa59b2682be03219cb89262065942"
+SRC_URI[sha256sum] = "72af591ff704f4caacea7ecc0c5a9056b8553e0489dd4f35a9bc52dbd41522e0"
 
-inherit pypi setuptools3
+inherit pypi python_poetry_core
 
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-isodate \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb
index 466e01d..2534c1c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb
@@ -1,6 +1,5 @@
 DESCRIPTION = "A utility belt for advanced users of python-requests."
 HOMEPAGE = "https://toolbelt.readthedocs.org"
-AUTHOR = "Ian Cordasco, Cory Benfield"
 
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=6f14302a4b4099009ab38b4dde5f1075"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_6.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_6.1.1.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_6.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_6.1.1.bb
index 154b011..7fd2f2e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_6.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_6.1.1.bb
@@ -13,7 +13,7 @@
 
 PYPI_PACKAGE_EXT = "zip"
 
-SRC_URI[sha256sum] = "a94e0b3c4f8ae08c0a4dc7bff6fa8a51730565103f8c682a2d8391da9a4697f5"
+SRC_URI[sha256sum] = "3fa18f2596a4df2418c4b59abf43248327c15ed38ad8665f6a9a9c75c95d7789"
 
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-shell \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.9.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
index ed5018f..0a1e359 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Pure-Python RSA implementation"
 SECTION = "devel/python"
-AUTHOR = "Sybren A. Stuvel"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c403f6882d4f97a9cd927df987d55634"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-semver/run-ptest b/meta-openembedded/meta-python/recipes-devtools/python/python3-semver/run-ptest
index 43c03b5..cd2bc85 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-semver/run-ptest
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-semver/run-ptest
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-pytest -o log_cli=true -o log_cli_level=INFO test_semver.py --disable-warnings| sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
+pytest -o log_cli=true -o log_cli_level=INFO tests/test_semver.py --disable-warnings| sed -e 's/\[...%\]//g'| sed -e 's/PASSED/PASS/g'| sed -e 's/FAILED/FAIL/g'|sed -e 's/SKIPPED/SKIP/g'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS"){printf "%s: %s\n", $NF, $0}else{print}}'| awk '{if ($NF=="PASS" || $NF=="FAIL" || $NF=="SKIP" || $NF=="XFAIL" || $NF=="XPASS") {$NF="";print $0}else{print}}'
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_2.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_2.13.0.bb
deleted file mode 100644
index b47bcae..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_2.13.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Python module for Semantic Versioning"
-HOMEPAGE = "https://github.com/k-bx/python-semver"
-BUGTRACKER = "https://github.com/k-bx/python-semver/issues"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
-
-SRC_URI[md5sum] = "e98b5fb283ea84daa5195087de83ebf1"
-SRC_URI[sha256sum] = "fa0fe2722ee1c3f57eac478820c3a5ae2f624af8264cbdf9000c980ff7f75e3f"
-
-inherit pypi setuptools3 ptest
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI += " \
-        file://run-ptest \
-"
-
-RDEPENDS:${PN}-ptest += " \
-        ${PYTHON_PN}-pytest \
-"
-
-do_install_ptest() {
-        cp -f ${S}/test_semver.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_3.0.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_3.0.1.bb
new file mode 100644
index 0000000..2d85d78
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-semver_3.0.1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Python module for Semantic Versioning"
+HOMEPAGE = "https://github.com/python-semver/python-semver"
+BUGTRACKER = "https://github.com/python-semver/python-semver"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d9da679db3bdce30a1b4328d5c474f98"
+
+SRC_URI[md5sum] = "b7502c12ce325ffffeab694fed52f6f5"
+SRC_URI[sha256sum] = "9ec78c5447883c67b97f98c3b6212796708191d22e4ad30f4570f840171cbce1"
+
+inherit pypi python_setuptools_build_meta ptest
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+        file://run-ptest \
+"
+
+DEPENDS += " python3-setuptools-scm-native"
+
+RDEPENDS:${PN}-ptest += " \
+        ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+        cp -rf ${S}/tests ${D}${PTEST_PATH}/
+}
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb
index 2d4145e..c3c26dd 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb
@@ -1,6 +1,5 @@
 DESCRIPTION = "The tools for verifying whether a certificate is valid for the intended purposes."
 HOMEPAGE = "https://pypi.org/project/service-identity"
-AUTHOR = "Hynek Schlawack"
 
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=8a0f079f4e6a215d6bd6f9d97cab4d5f"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_2.0.4.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sh_2.0.4.bb
index 317f648..fa9f97a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_1.14.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sh_2.0.4.bb
@@ -3,14 +3,16 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5317094292296f03405f59ae5f6544b6"
 
-SRC_URI[sha256sum] = "e4045b6c732d9ce75d571c79f5ac2234edd9ae4f5fa9d59b09705082bdca18c7"
+SRC_URI[sha256sum] = "a18920f0839991bc9dfddb6dcc006c360b1064ba96257359f0ea356e9fa75a60"
 
 PYPI_PACKAGE = "sh"
 
-inherit pypi setuptools3
+inherit pypi python_poetry_core
 
 RDEPENDS:${PN} += " \
+    ${PYTHON_PN}-asyncio \
     ${PYTHON_PN}-codecs \
+    ${PYTHON_PN}-compression \
     ${PYTHON_PN}-core \
     ${PYTHON_PN}-io \
     ${PYTHON_PN}-logging \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-snagboot_1.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-snagboot_1.1.bb
similarity index 68%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-snagboot_1.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-snagboot_1.1.bb
index 1853596..e6f3148 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-snagboot_1.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-snagboot_1.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
 
-SRC_URI[sha256sum] = "c2d21cadddecfd97dd62a8b66b6f88bd56272627b9b71272e9dda6f868ee8715"
+SRC_URI[sha256sum] = "40b045e6225f3544080558e4bd604d116d4cffceea80cb84307579d914e4e498"
 
 inherit pypi python_setuptools_build_meta
 
@@ -17,5 +17,5 @@
 "
 
 do_install:append() {
-    install -D -m 0644 ${S}/src/snagrecover/80-snagboot.rules ${D}${sysconfdir}/udev/rules.d/80-snagboot.rules
+    install -D -m 0644 ${S}/src/snagrecover/50-snagboot.rules ${D}${sysconfdir}/udev/rules.d/50-snagboot.rules
 }
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch
index 9412134..0c9f29a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch
@@ -1,4 +1,4 @@
-From 7fd00ab8c1b663052d57e735b6b956d5c92fbaed Mon Sep 17 00:00:00 2001
+From f236a30dc8528b6f114201580f1efdcc1c447d43 Mon Sep 17 00:00:00 2001
 From: Changqing Li <changqing.li@windriver.com>
 Date: Mon, 9 Mar 2020 13:10:37 +0800
 Subject: [PATCH] sqlparse: change shebang to python3
@@ -12,80 +12,10 @@
 Signed-off-by: Changqing Li <changqing.li@windriver.com>
 Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
 ---
- 0001-sqlparse-change-shebang-to-python3.patch | 51 +++++++++++++++++++
- setup.py                                      |  2 +-
- sqlparse/__main__.py                          |  2 +-
- sqlparse/cli.py                               |  2 +-
- 4 files changed, 54 insertions(+), 3 deletions(-)
- create mode 100644 0001-sqlparse-change-shebang-to-python3.patch
+ sqlparse/__main__.py | 2 +-
+ sqlparse/cli.py      | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/0001-sqlparse-change-shebang-to-python3.patch b/0001-sqlparse-change-shebang-to-python3.patch
-new file mode 100644
-index 0000000..ad6c50f
---- /dev/null
-+++ b/0001-sqlparse-change-shebang-to-python3.patch
-@@ -0,0 +1,51 @@
-+From 10c9d3341d64d697f678a64ae707f6bda21565bb Mon Sep 17 00:00:00 2001
-+From: Changqing Li <changqing.li@windriver.com>
-+Date: Mon, 9 Mar 2020 13:10:37 +0800
-+Subject: [PATCH] sqlparse: change shebang to python3
-+
-+Upstream-Status: Pending
-+
-+Don't send upstream since upstream still support python2,
-+we can only make this change after python2 is offcially
-+dropped.
-+
-+Signed-off-by: Changqing Li <changqing.li@windriver.com>
-+---
-+ setup.py             | 2 +-
-+ sqlparse/__main__.py | 2 +-
-+ sqlparse/cli.py      | 2 +-
-+ 3 files changed, 3 insertions(+), 3 deletions(-)
-+
-+diff --git a/setup.py b/setup.py
-+index 345d0ce..ce3abc3 100644
-+--- a/setup.py
-++++ b/setup.py
-+@@ -1,4 +1,4 @@
-+-#!/usr/bin/env python
-++#!/usr/bin/env python3
-+ # -*- coding: utf-8 -*-
-+ #
-+ # Copyright (C) 2009-2018 the sqlparse authors and contributors
-+diff --git a/sqlparse/__main__.py b/sqlparse/__main__.py
-+index 867d75d..dd0c074 100644
-+--- a/sqlparse/__main__.py
-++++ b/sqlparse/__main__.py
-+@@ -1,4 +1,4 @@
-+-#!/usr/bin/env python
-++#!/usr/bin/env python3
-+ # -*- coding: utf-8 -*-
-+ #
-+ # Copyright (C) 2009-2018 the sqlparse authors and contributors
-+diff --git a/sqlparse/cli.py b/sqlparse/cli.py
-+index 25555a5..8bf050a 100755
-+--- a/sqlparse/cli.py
-++++ b/sqlparse/cli.py
-+@@ -1,4 +1,4 @@
-+-#!/usr/bin/env python
-++#!/usr/bin/env python3
-+ # -*- coding: utf-8 -*-
-+ #
-+ # Copyright (C) 2009-2018 the sqlparse authors and contributors
-+-- 
-+2.7.4
-+
-diff --git a/setup.py b/setup.py
-index ede0aff..dc6a323 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python3
- #
- # Copyright (C) 2009-2020 the sqlparse authors and contributors
- # <see AUTHORS file>
 diff --git a/sqlparse/__main__.py b/sqlparse/__main__.py
 index 2bf2513..6a3a115 100644
 --- a/sqlparse/__main__.py
@@ -107,5 +37,5 @@
  # Copyright (C) 2009-2020 the sqlparse authors and contributors
  # <see AUTHORS file>
 -- 
-2.17.1
+2.41.0
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse/CVE-2023-30608.patch b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse/CVE-2023-30608.patch
deleted file mode 100644
index f5526c5..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse/CVE-2023-30608.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From c457abd5f097dd13fb21543381e7cfafe7d31cfb Mon Sep 17 00:00:00 2001
-From: Andi Albrecht <albrecht.andi@gmail.com>
-Date: Mon, 20 Mar 2023 08:33:46 +0100
-Subject: [PATCH] Remove unnecessary parts in regex for bad escaping.
-
-The regex tried to deal with situations where escaping in the
-SQL to be parsed was suspicious.
-
-Upstream-Status: Backport
-CVE: CVE-2023-30608
-
-Reference to upstream patch:
-https://github.com/andialbrecht/sqlparse/commit/c457abd5f097dd13fb21543381e7cfafe7d31cfb
-
-[AZ: drop changes to CHANGELOG file and adjust context whitespaces]
-Signed-off-by: Adrian Zaharia <Adrian.Zaharia@windriver.com>
-
-Adjust indentation in keywords.py.
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
- sqlparse/keywords.py | 4 ++--
- tests/test_split.py  | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
---- sqlparse-0.4.3.orig/sqlparse/keywords.py
-+++ sqlparse-0.4.3/sqlparse/keywords.py
-@@ -72,9 +72,9 @@ SQL_REGEX = {
-         (r'(?![_A-ZÀ-Ü])-?(\d+(\.\d*)|\.\d+)(?![_A-ZÀ-Ü])',
-          tokens.Number.Float),
-         (r'(?![_A-ZÀ-Ü])-?\d+(?![_A-ZÀ-Ü])', tokens.Number.Integer),
--        (r"'(''|\\\\|\\'|[^'])*'", tokens.String.Single),
-+        (r"'(''|\\'|[^'])*'", tokens.String.Single),
-         # not a real string literal in ANSI SQL:
--        (r'"(""|\\\\|\\"|[^"])*"', tokens.String.Symbol),
-+        (r'"(""|\\"|[^"])*"', tokens.String.Symbol),
-         (r'(""|".*?[^\\]")', tokens.String.Symbol),
-         # sqlite names can be escaped with [square brackets]. left bracket
-         # cannot be preceded by word character or a right bracket --
---- sqlparse-0.4.3.orig/tests/test_split.py
-+++ sqlparse-0.4.3/tests/test_split.py
-@@ -18,8 +18,8 @@ def test_split_semicolon():
- 
- 
- def test_split_backslash():
--    stmts = sqlparse.parse(r"select '\\'; select '\''; select '\\\'';")
--    assert len(stmts) == 3
-+    stmts = sqlparse.parse("select '\'; select '\'';")
-+    assert len(stmts) == 2
- 
- 
- @pytest.mark.parametrize('fn', ['function.sql',
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb
similarity index 78%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb
index a402f99..e4ac403 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb
@@ -5,16 +5,15 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2b136f573f5386001ea3b7b9016222fc"
 
 SRC_URI += "file://0001-sqlparse-change-shebang-to-python3.patch \
-            file://CVE-2023-30608.patch \
             file://run-ptest \
 	    "
 
-SRC_URI[sha256sum] = "69ca804846bb114d2ec380e4360a8a340db83f0ccf3afceeb1404df028f57268"
+SRC_URI[sha256sum] = "d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c"
 
 export BUILD_SYS
 export HOST_SYS
 
-inherit pypi ptest setuptools3
+inherit pypi ptest python_flit_core
 
 RDEPENDS:${PN}-ptest += " \
     ${PYTHON_PN}-pytest \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-telnetlib3_2.0.4.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-telnetlib3_2.0.4.bb
new file mode 100644
index 0000000..c7e650d
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-telnetlib3_2.0.4.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Telnet server and client library based on asyncio"
+HOMEPAGE = "https://github.com/jquast/telnetlib3"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=fc2166986ad8169d334a342e0d8db8e0"
+
+SRC_URI[md5sum] = "2dfac7e10ed63c408da50ea712415f87"
+SRC_URI[sha256sum] = "dbcbc16456a0e03a62431be7cfefff00515ab2f4ce2afbaf0d3a0e51a98c948d"
+
+PYPI_PACKAGE = "telnetlib3"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+    ${PYTHON_PN}-asyncio \
+"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tomlkit_0.11.8.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomlkit_0.12.1.bb
similarity index 86%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-tomlkit_0.11.8.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-tomlkit_0.12.1.bb
index 5ec7e6e..e86a3c7 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tomlkit_0.11.8.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tomlkit_0.12.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=31aac0dbc1babd278d5386dadb7f8e82"
 
-SRC_URI[sha256sum] = "9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3"
+SRC_URI[sha256sum] = "38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86"
 
 inherit pypi python_poetry_core ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.4.bb
similarity index 92%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.4.bb
index ed8fc38..a8215a9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tox_4.6.4.bb
@@ -6,7 +6,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=11610a9d8fd95649cf8159be12b98cb7"
 
-SRC_URI[sha256sum] = "9e2c5091a117d03b583c57c4c40aecd068099c17d40520e7b165e85c19334534"
+SRC_URI[sha256sum] = "5e2ad8845764706170d3dcaac171704513cc8a725655219acb62fe4380bdadda"
 
 BBCLASSEXTEND = "native nativesdk"
 inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb
index ee4ac64..fc25271 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb
@@ -1,6 +1,5 @@
 SUMMARY = "Traitlets Python config system"
 HOMEPAGE = "http://ipython.org"
-AUTHOR = "IPython Development Team <ipython-dev@scipy.org>"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING.md;md5=f17a3ba4cd59794dd6e005c8e150aef0"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-trustme_0.9.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-trustme_0.9.0.bb
index 6f31aea..6622f62 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-trustme_0.9.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-trustme_0.9.0.bb
@@ -1,6 +1,5 @@
 DESCRIPTION = "A utility provides a fake certificate authority (CA)"
 HOMEPAGE = "https://pypi.org/project/trustme"
-AUTHOR = "Nathaniel J. Smith"
 
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d5a7af1a4b73e57431e25d15a2da745a"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb
index a117f17..d579ca0 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb
@@ -1,5 +1,4 @@
 SUMMARY = "A native Python implementation of the DBus protocol for Twisted applications."
-AUTHOR = "Tom Cocagne"
 HOMEPAGE = "https://pypi.org/project/txdbus/"
 SECTION = "devel/python"
 LICENSE = "MIT"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.0.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.0.bb
similarity index 88%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.0.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.0.bb
index ca17e2b..f64c70a 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.0.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-typeguard_4.1.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=f0e423eea5c91e7aa21bdb70184b3e53"
 
-SRC_URI[sha256sum] = "194fb3dbcb06ea9caf7088f3befee014de57961689f9c859ac5239b1ef61d987"
+SRC_URI[sha256sum] = "b05a54bb0276eefd28880df42e004a71e699c8081fcb9d0536b2ceb01019f60c"
 
 inherit pypi python_setuptools_build_meta ptest
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-uefi-firmware_1.10.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-uefi-firmware_1.10.bb
index 7db7c80..539366c 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-uefi-firmware_1.10.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-uefi-firmware_1.10.bb
@@ -4,7 +4,6 @@
 extracting, and recreating UEFI firmware volumes. This includes parsing \
 modules for BIOS, OptionROM, Intel ME and other formats too."
 HOMEPAGE = "https://github.com/theopolis/uefi-firmware-parser"
-AUTHOR = "Teddy Reed <teddy@prosauce.org>"
 LICENSE = "BSD-2-Clause & BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://setup.py;md5=90fa5bae1547550f1c1993f651eda955"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
index eaf8bda..3c41b1e 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
@@ -2,7 +2,6 @@
 # https://git.yoctoproject.org/cgit/cgit.cgi/meta-cloud-services/tree/meta-openstack/recipes-devtools/python/python3-uritemplate_3.0.0.bb?h=master
 
 SUMMARY = "Simple python library to deal with URI Templates."
-AUTHOR = "Ian Cordasco"
 LICENSE = "Apache-2.0 | BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0f6d769bdcfacac3c1a1ffa568937fe0"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-versioneer_0.29.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-versioneer_0.29.bb
new file mode 100644
index 0000000..bdfbfd1
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-versioneer_0.29.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Easy VCS-based management of project version strings"
+HOMEPAGE = "https://github.com/python-versioneer/python-versioneer"
+SECTION = "devel/python"
+
+LICENSE = "Unlicense"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f4c62131f879a8445e16a7f265aea635"
+
+SRC_URI[sha256sum] = "5ab283b9857211d61b53318b7c792cf68e798e765ee17c27ade9f6c924235731"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+    python3-json \
+    python3-netclient \
+    python3-tomllib \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.23.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.2.bb
similarity index 85%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.23.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.2.bb
index 53771e2..52a99cc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.23.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-virtualenv_20.24.2.bb
@@ -6,7 +6,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0ce089158cf60a8ab6abb452b6405538"
 
-SRC_URI[sha256sum] = "8ff19a38c1021c742148edc4f81cb43d7f8c6816d2ede2ab72af5b84c749ade1"
+SRC_URI[sha256sum] = "fd8a78f46f6b99a67b7ec5cf73f92357891a7b3a40fd97637c27f854aae3b9e0"
 
 BBCLASSEXTEND = "native nativesdk"
 inherit pypi python_hatchling
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.3.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.7.0.bb
similarity index 73%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.3.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.7.0.bb
index 088bfd5..c842639 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.3.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-web3_6.7.0.bb
@@ -2,9 +2,9 @@
 HOMEPAGE = "https://github.com/ethereum/web3.py"
 SECTION = "devel/python"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1dc2732bdc5e50382737979791cbb3b7"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=373fede350846fdffd23648fba504635"
 
-SRC_URI[sha256sum] = "d13f17d18eaacd87f7d233b4b2c70d1579b39573628b71ec996adfcd4dac9cab"
+SRC_URI[sha256sum] = "dc05e4130ed2e1e67a18a6f012cd3095440f37c0b8334038071d5510176debb5"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.2.3.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.3.6.bb
similarity index 89%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.2.3.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.3.6.bb
index 5565fb4..11441fc 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.2.3.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-werkzeug_2.3.6.bb
@@ -12,9 +12,9 @@
 
 PYPI_PACKAGE = "Werkzeug"
 
-SRC_URI[sha256sum] = "2e1ccc9417d4da358b9de6f174e3ac094391ea1d4fbef2d667865d819dfd0afe"
+SRC_URI[sha256sum] = "98c774df2f91b05550078891dee5f0eb0cb797a522c757a2452b9cee5b202330"
 
-inherit pypi setuptools3
+inherit pypi python_setuptools_build_meta
 
 CLEANBROKEN = "1"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb
index aadf8b7..a1f3957 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb
@@ -1,5 +1,4 @@
 SUMMARY = "Makes working with XML feel like you are working with JSON"
-AUTHOR = "Martin Blech"
 HOMEPAGE = "https://github.com/martinblech/xmltodict"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=01441d50dc74476db58a41ac10cb9fa2"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.70.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.71.4.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.70.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.71.4.bb
index 63be3fe..ce92c64 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.70.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-zeroconf_0.71.4.bb
@@ -3,7 +3,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=6;endline=6;md5=6517bdc8f2416f27ab725d4702f7aac3"
 
-SRC_URI[sha256sum] = "f95ef3643612b1a874cc3b4216d9cb895a0337bf602901f760c3c6027a38d64a"
+SRC_URI[sha256sum] = "b988425f6bd0d4f11f05fa258a6c49d9f9956777e9af00ca98c4ed3f743bd677"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.0.bb b/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.0.bb
deleted file mode 100644
index a20b019..0000000
--- a/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Send file to trash natively under Mac OS X, Windows and Linux"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a02659c2d5f4cc626e4dcf6504b865eb"
-
-inherit pypi setuptools3
-
-SRC_URI[sha256sum] = "d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d"
-
-PYPI_PACKAGE = "Send2Trash"
-
-RDEPENDS:${PN} += "python3-datetime"
diff --git a/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.2.bb b/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.2.bb
new file mode 100644
index 0000000..eac89e6
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-extended/send2trash/python3-send2trash_1.8.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Send file to trash natively under Mac OS X, Windows and Linux"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a02659c2d5f4cc626e4dcf6504b865eb"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "c132d59fa44b9ca2b1699af5c86f57ce9f4c5eb56629d5d55fbb7a35f84e2312"
+
+PYPI_PACKAGE = "Send2Trash"
+
+RDEPENDS:${PN} += "\
+    python3-io \
+    python3-datetime \
+"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
index 7100ef4..3dc4ca8 100644
--- a/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
+++ b/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
@@ -75,3 +75,5 @@
     if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
         raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
 }
+
+CVE_PRODUCT += "cherokee_web_server"
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb
deleted file mode 100644
index 2e865e4..0000000
--- a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.24.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require nginx.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=175abb631c799f54573dc481454c8632"
-
-SRC_URI[sha256sum] = "77a2541637b92a621e3ee76776c8b7b40cf6d707e69ba53a940283e30ff2f55d"
-
diff --git a/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.25.1.bb b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.25.1.bb
new file mode 100644
index 0000000..702eac3
--- /dev/null
+++ b/meta-openembedded/meta-webserver/recipes-httpd/nginx/nginx_1.25.1.bb
@@ -0,0 +1,6 @@
+require nginx.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=79ad2eb837299421c4435dedc8897b3d"
+
+SRC_URI[sha256sum] = "f09071ac46e0ea3adc0008ef0baca229fc6b4be4533baef9bbbfba7de29a8602"
+
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index b486633..895fcfe 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -18,6 +18,7 @@
     overlays/overlay_map.dtb \
     overlays/at86rf233.dtbo \
     overlays/disable-bt.dtbo \
+    overlays/disable-wifi.dtbo \
     overlays/dwc2.dtbo \
     overlays/gpio-ir.dtbo \
     overlays/gpio-ir-tx.dtbo \
@@ -112,9 +113,6 @@
 # This variable is referred to by recipes fetching / generating the files.
 BOOTFILES_DIR_NAME ?= "bootfiles"
 
-# Set Raspberrypi splash image
-SPLASH ?= "psplash-raspberrypi"
-
 def make_dtb_boot_files(d):
     # Generate IMAGE_BOOT_FILES entries for device tree files listed in
     # KERNEL_DEVICETREE.
diff --git a/meta-raspberrypi/recipes-multimedia/libcamera-apps/rpi-libcamera-apps/0001-utils-version.py-use-usr-bin-env-in-shebang.patch b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera-apps/libcamera-apps/0001-utils-version.py-use-usr-bin-env-in-shebang.patch
similarity index 100%
rename from meta-raspberrypi/recipes-multimedia/libcamera-apps/rpi-libcamera-apps/0001-utils-version.py-use-usr-bin-env-in-shebang.patch
rename to meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera-apps/libcamera-apps/0001-utils-version.py-use-usr-bin-env-in-shebang.patch
diff --git a/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera-apps/libcamera-apps_git.bb b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera-apps/libcamera-apps_git.bb
new file mode 100644
index 0000000..9880c07
--- /dev/null
+++ b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera-apps/libcamera-apps_git.bb
@@ -0,0 +1,40 @@
+SUMMARY = "A suite of libcamera-based apps"
+DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
+copy the functionality of the existing \"raspicam\" apps."
+HOMEPAGE = "https://github.com/raspberrypi/libcamera-apps"
+SECTION = "console/utils"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://license.txt;md5=a0013d1b383d72ba4bdc5b750e7d1d77"
+
+SRC_URI = "\
+    git://github.com/raspberrypi/libcamera-apps.git;protocol=https;branch=main \
+    file://0001-utils-version.py-use-usr-bin-env-in-shebang.patch \
+"
+PV = "1.2.1+git${SRCPV}"
+SRCREV = "1c1d1c1a2a86d70cf873edc8bb72d174f037973a"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libcamera libexif jpeg tiff libpng boost"
+
+PACKAGECONFIG ??= "drm"
+PACKAGECONFIG[libav] = "-Denable_libav=true, -Denable_libav=false, libav"
+PACKAGECONFIG[drm] = "-Denable_drm=true, -Denable_drm=false, libdrm"
+PACKAGECONFIG[egl] = "-Denable_egl=true, -Denable_egl=false, virtual/egl"
+PACKAGECONFIG[qt] = "-Denable_qt=true, -Denable_qt=false, qtbase"
+PACKAGECONFIG[opencv] = "-Denable_opencv=true, -Denable_opencv=false, opencv"
+PACKAGECONFIG[tflite] = "-Denable_tflite=true, -Denable_tflite=false, tensorflow-lite"
+
+inherit meson pkgconfig
+
+NEON_FLAGS = ""
+NEON_FLAGS:aarch64 = "-Dneon_flags=arm64"
+NEON_FLAGS:arm:raspberrypi3 = "-Dneon_flags=armv8-neon"
+NEON_FLAGS:arm:raspberrypi4 = "-Dneon_flags=armv8-neon"
+EXTRA_OEMESON += "${NEON_FLAGS}"
+
+# QA Issue: /usr/bin/camera-bug-report contained in package libcamera-apps requires /usr/bin/python3
+do_install:append() {
+    rm -v ${D}/${bindir}/camera-bug-report
+}
diff --git a/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera/libcamera_%.bbappend b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera/libcamera_%.bbappend
index efa1f80..541c49c 100644
--- a/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera/libcamera_%.bbappend
+++ b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/libcamera/libcamera_%.bbappend
@@ -1,2 +1,2 @@
-PACKAGECONFIG[raspberrypi] = "-Dpipelines=raspberrypi -Dipas=raspberrypi -Dcpp_args=-Wno-unaligned-access"
+PACKAGECONFIG[raspberrypi] = "-Dpipelines=rpi/vc4 -Dipas=rpi/vc4 -Dcpp_args=-Wno-unaligned-access"
 PACKAGECONFIG:append:rpi = " raspberrypi"
diff --git a/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/files/0009-demux-dash-include-cstdint-needed-for-uint64_t.patch b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/files/0009-demux-dash-include-cstdint-needed-for-uint64_t.patch
new file mode 100644
index 0000000..c526535
--- /dev/null
+++ b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/files/0009-demux-dash-include-cstdint-needed-for-uint64_t.patch
@@ -0,0 +1,30 @@
+From 6fca76ebd76bf8fce9b111e31bda64015cdc770f Mon Sep 17 00:00:00 2001
+From: Johannes Kauffmann <johanneskauffmann@hotmail.com>
+Date: Mon, 11 Jul 2022 19:35:57 +0000
+Subject: [PATCH] demux: dash: include cstdint, needed for uint64_t
+
+Fixes #27077.
+
+Upstream-Status: Backport
+
+https://github.com/videolan/vlc/commit/6fca76ebd76bf8fce9b111e31bda64015cdc770f
+
+---
+ modules/demux/dash/mpd/TemplatedUri.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/modules/demux/dash/mpd/TemplatedUri.hpp b/modules/demux/dash/mpd/TemplatedUri.hpp
+index 1eeb70cbb6..7f7264a9c8 100644
+--- a/modules/demux/dash/mpd/TemplatedUri.hpp
++++ b/modules/demux/dash/mpd/TemplatedUri.hpp
+@@ -21,6 +21,7 @@
+ #ifndef TEMPLATEDURI_HPP
+ #define TEMPLATEDURI_HPP
+ 
++#include <cstdint>
+ #include <string>
+ 
+ namespace dash
+-- 
+2.34.1
+
diff --git a/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb
index 8b8ac4a..2250774 100644
--- a/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb
+++ b/meta-raspberrypi/dynamic-layers/multimedia-layer/recipes-multimedia/rpidistro-vlc/rpidistro-vlc_3.0.17.bb
@@ -15,6 +15,7 @@
     file://0006-mmal_chain.patch \
     file://0007-armv6.patch \
     file://0008-configure-Disable-incompatible-function-pointer-type.patch \
+    file://0009-demux-dash-include-cstdint-needed-for-uint64_t.patch \
     file://2001-fix-luaL-checkint.patch \
     file://2002-use-vorbisidec.patch \
     file://3001-configure.ac-setup-for-OE-usage.patch \
diff --git a/meta-raspberrypi/kas-poky-rpi.yml b/meta-raspberrypi/kas-poky-rpi.yml
index 2ab4770..ce59eca 100644
--- a/meta-raspberrypi/kas-poky-rpi.yml
+++ b/meta-raspberrypi/kas-poky-rpi.yml
@@ -55,7 +55,7 @@
         STOPTASKS,${DL_DIR},1G,100K \
         STOPTASKS,${SSTATE_DIR},1G,100K \
         STOPTASKS,/tmp,100M,100K \
-        ABORT,${TMPDIR},100M,1K \
-        ABORT,${DL_DIR},100M,1K \
-        ABORT,${SSTATE_DIR},100M,1K \
-        ABORT,/tmp,10M,1K"
+        HALT,${TMPDIR},100M,1K \
+        HALT,${DL_DIR},100M,1K \
+        HALT,${SSTATE_DIR},100M,1K \
+        HALT,/tmp,10M,1K"
diff --git a/meta-raspberrypi/recipes-multimedia/libcamera-apps/rpi-libcamera-apps_git.bb b/meta-raspberrypi/recipes-multimedia/libcamera-apps/rpi-libcamera-apps_git.bb
deleted file mode 100644
index 062ded9..0000000
--- a/meta-raspberrypi/recipes-multimedia/libcamera-apps/rpi-libcamera-apps_git.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "A suite of libcamera-based apps for the Raspberry Pi"
-DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
-copy the functionality of the existing \"raspicam\" apps."
-HOMEPAGE = "https://github.com/raspberrypi/libcamera-apps"
-SECTION = "console/utils"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://license.txt;md5=a0013d1b383d72ba4bdc5b750e7d1d77"
-
-SRC_URI = "\
-    git://github.com/raspberrypi/libcamera-apps.git;protocol=https;branch=main \
-    file://0001-utils-version.py-use-usr-bin-env-in-shebang.patch \
-"
-PV = "1.1.2+git${SRCPV}"
-SRCREV = "12098520a3dec36ba796655baac7efece457f8d8"
-
-S = "${WORKDIR}/git"
-
-COMPATIBLE_MACHINE = "^rpi$"
-
-DEPENDS = "libcamera libexif jpeg tiff libpng boost"
-
-inherit cmake pkgconfig
-
-EXTRA_OECMAKE = "\
-    -DCMAKE_BUILD_TYPE=Release \
-    -DBoost_INCLUDE_DIR=${STAGING_INCDIR} \
-    -DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR} \
-"
-
-LIBCAMERA_ARCH = "${TARGET_ARCH}"
-LIBCAMERA_ARCH:aarch64 = "arm64"
-LIBCAMERA_ARCH:arm = "armv8-neon"
-EXTRA_OECMAKE += "-DENABLE_COMPILE_FLAGS_FOR_TARGET=${LIBCAMERA_ARCH}"
-
-PACKAGECONFIG[x11] = "-DENABLE_X11=1,-DENABLE_X11=0"
-PACKAGECONFIG[qt] = "-DENABLE_QT=1,-DENABLE_QT=0"
-PACKAGECONFIG[opencv] = "-DENABLE_OPENCV=1,-DENABLE_OPENCV=0"
-PACKAGECONFIG[tensorflow-lite] = "-DENABLE_TFLITE=1,-DENABLE_TFLITE=0"
-
-do_install:append() {
-    # Requires python3-core which not all systems may have
-    rm -v ${D}/${bindir}/camera-bug-report
-}
diff --git a/meta-security/conf/layer.conf b/meta-security/conf/layer.conf
index 334a945..a436f97 100644
--- a/meta-security/conf/layer.conf
+++ b/meta-security/conf/layer.conf
@@ -26,6 +26,6 @@
 # Setting SKIP_META_SECURITY_SANITY_CHECK to "1" would skip the bbappend files check.
 INHERIT += "sanity-meta-security"
 
-QB_KERNEL_CMDLINE_APPEND = " ${@bb.utils.contains('DISTRO_FEATURES', 'apparmor', 'apparmor=1 security=apparmor', '', d)}"
-
 addpylib ${LAYERDIR}/lib oeqa
+
+WARN_QA:append:security = " patch-status missing-metadata"
diff --git a/meta-security/dynamic-layers/meta-perl/recipes-security/bastille/bastille_3.2.1.bb b/meta-security/dynamic-layers/meta-perl/recipes-security/bastille/bastille_3.2.1.bb
index e7852d9..f2ef335 100644
--- a/meta-security/dynamic-layers/meta-perl/recipes-security/bastille/bastille_3.2.1.bb
+++ b/meta-security/dynamic-layers/meta-perl/recipes-security/bastille/bastille_3.2.1.bb
@@ -138,7 +138,7 @@
 	install -m 0644 OSMap/OSX.bastille    ${D}${datadir}/Bastille/OSMap
 	install -m 0644 OSMap/OSX.system    ${D}${datadir}/Bastille/OSMap
 
-	install -m 0777 ${WORKDIR}/config ${D}${sysconfdir}/Bastille/config
+	install -m 0644 ${WORKDIR}/config ${D}${sysconfdir}/Bastille/config
 
 	for file in `cat Modules.txt` ; do
 		install -m 0644 Questions/$file.txt ${D}${datadir}/Bastille/Questions
diff --git a/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-flask-script_2.0.6.bb b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-flask-script_2.0.6.bb
new file mode 100644
index 0000000..377ad02
--- /dev/null
+++ b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-flask-script_2.0.6.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Scripting support for flask"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e686048adb69341fc8a08caeda528b41"
+
+SRC_URI[md5sum] = "3fbd91fe13cebedfb2431331f6eabb68"
+SRC_URI[sha256sum] = "6425963d91054cfcc185807141c7314a9c5ad46325911bd24dcb489bd0161c65"
+
+PYPI_PACKAGE = "Flask-Script"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+    ${PYTHON_PN}-flask \
+    "
diff --git a/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-json2html_1.3.0.bb b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-json2html_1.3.0.bb
new file mode 100644
index 0000000..638c56f
--- /dev/null
+++ b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-json2html_1.3.0.bb
@@ -0,0 +1,9 @@
+DESCRIPTION="Python wrapper to convert JSON into a human readable HTML Table representation."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8065590663ea0c10aa131841ea806767"
+
+SRC_URI[sha256sum] = "8951a53662ae9cfd812685facdba693fc950ffc1c1fd1a8a2d3cf4c34600689c"
+
+PYPI_PACKAGE = "json2html"
+
+inherit pypi setuptools3
diff --git a/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-segno_1.5.2.bb b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-segno_1.5.2.bb
new file mode 100644
index 0000000..f8a6552
--- /dev/null
+++ b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-segno_1.5.2.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "QR Code and Micro QR Code generator for Python 2 and Python 3"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8e8db3765a57bcb968140e0a353c1a35"
+
+SRC_URI[sha256sum] = "983424b296e62189d70fc73460cd946cf56dcbe82b9bda18c066fc1b24371cdc"
+
+#PYPI_PACKAGE = "Flask-Script"
+
+inherit pypi setuptools3
diff --git a/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-xmldiff_2.6.3.bb b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-xmldiff_2.6.3.bb
new file mode 100644
index 0000000..517ed87
--- /dev/null
+++ b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-xmldiff_2.6.3.bb
@@ -0,0 +1,9 @@
+DESCRIPTION="Creates diffs of XML files"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=0d0e9e3949e163c3edd1e097b8b0ed62"
+
+SRC_URI[sha256sum] = "19b030b3fa37d1f0b5c5ad9ada9059884c3bf2c751c5dd8f1eb4ed49cfe3fc60"
+
+PYPI_PACKAGE = "xmldiff"
+
+inherit pypi setuptools3
diff --git a/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-yamlpath_3.8.0.bb b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-yamlpath_3.8.0.bb
new file mode 100644
index 0000000..5d88951
--- /dev/null
+++ b/meta-security/dynamic-layers/meta-python/recipes-devtools/python/python3-yamlpath_3.8.0.bb
@@ -0,0 +1,9 @@
+DESCRIPTION="YAML Path and Command-Line Tools"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5abda174c5040dd12ed2b225e3a096f0"
+
+SRC_URI[sha256sum] = "81d5b8baba60c255b519ccd31a691f9bc064223ff196709d41119bde81bba49e"
+
+PYPI_PACKAGE = "yamlpath"
+
+inherit pypi setuptools3
diff --git a/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.8.1.bb b/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.8.1.bb
index 8bb88f1..aa7bafa 100644
--- a/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.8.1.bb
+++ b/meta-security/dynamic-layers/meta-python/recipes-security/mfa/python3-privacyidea_3.8.1.bb
@@ -21,8 +21,7 @@
 
 FILES:${PN} += " ${prefix}/etc/privacyidea/* ${prefix}/lib/privacyidea/*"
 
-RDEPENDS:${PN} += " bash perl freeradius-mysql freeradius-utils"
-
+RDEPENDS:${PN} = " bash perl freeradius-mysql freeradius-utils"
 RDEPENDS:${PN} += "python3 python3-alembic python3-babel python3-bcrypt"
 RDEPENDS:${PN} += "python3-beautifulsoup4 python3-cbor2 python3-certifi python3-cffi python3-chardet"
 RDEPENDS:${PN} += "python3-click python3-configobj python3-croniter python3-cryptography python3-defusedxml"
@@ -34,5 +33,5 @@
 RDEPENDS:${PN} += "python3-pyasn1 python3-pyasn1-modules python3-pycparser python3-pyjwt python3-pymysql"
 RDEPENDS:${PN} += "python3-pyopenssl python3-pyrad python3-dateutil python3-editor python3-gnupg"
 RDEPENDS:${PN} += "python3-pytz python3-pyyaml python3-qrcode python3-redis python3-requests python3-rsa"
-RDEPENDS:${PN} += "python3-six python3-smpplib python3-soupsieve python3-soupsieve "
-RDEPENDS:${PN} += "python3-sqlalchemy python3-sqlsoup python3-urllib3 python3-werkzeug"
+RDEPENDS:${PN} += "python3-smpplib python3-soupsieve python3-segno python3-importlib-metadata"
+RDEPENDS:${PN} += "python3-sqlalchemy python3-urllib3 python3-werkzeug"
diff --git a/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/files/0001-sssctl-add-error-analyzer.patch b/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/files/0001-sssctl-add-error-analyzer.patch
new file mode 100644
index 0000000..6880405
--- /dev/null
+++ b/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/files/0001-sssctl-add-error-analyzer.patch
@@ -0,0 +1,318 @@
+Backport patch to fix interpreter of sss_analyze.
+
+Upstream-Status: Backport [https://github.com/SSSD/sssd/commit/ed3726c]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From ed3726c37fe07aab788404bfa2f9003db15f4210 Mon Sep 17 00:00:00 2001
+From: roy214 <abroy@redhat.com>
+Date: Tue, 25 Apr 2023 20:01:24 +0530
+Subject: [PATCH] sssctl: add error analyzer
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Also removing unused variable and import.
+
+Reviewed-by: Justin Stephenson <jstephen@redhat.com>
+Reviewed-by: Tomáš Halman <thalman@redhat.com>
+---
+ src/tools/analyzer/Makefile.am        |  2 +
+ src/tools/analyzer/modules/error.py   | 61 +++++++++++++++++++++++++++
+ src/tools/analyzer/modules/request.py | 54 +++++-------------------
+ src/tools/analyzer/sss_analyze        |  2 +-
+ src/tools/analyzer/sss_analyze.py     |  3 ++
+ src/tools/analyzer/util.py            | 44 +++++++++++++++++++
+ 6 files changed, 121 insertions(+), 45 deletions(-)
+ create mode 100644 src/tools/analyzer/modules/error.py
+ create mode 100644 src/tools/analyzer/util.py
+
+diff --git a/src/tools/analyzer/Makefile.am b/src/tools/analyzer/Makefile.am
+index b40043d043..7692af8528 100644
+--- a/src/tools/analyzer/Makefile.am
++++ b/src/tools/analyzer/Makefile.am
+@@ -13,10 +13,12 @@ dist_pkgpython_DATA = \
+     source_reader.py \
+     parser.py \
+     sss_analyze.py \
++    util.py \
+     $(NULL)
+ 
+ modulesdir = $(pkgpythondir)/modules
+ dist_modules_DATA = \
+     modules/__init__.py \
+     modules/request.py \
++    modules/error.py \
+     $(NULL)
+diff --git a/src/tools/analyzer/modules/error.py b/src/tools/analyzer/modules/error.py
+new file mode 100644
+index 0000000000..71173670c5
+--- /dev/null
++++ b/src/tools/analyzer/modules/error.py
+@@ -0,0 +1,61 @@
++from sssd import util
++from sssd.parser import SubparsersAction
++from sssd import sss_analyze
++
++class ErrorAnalyzer:
++    """
++    An error analyzer module, list if there is any error reported by sssd_be
++    """
++    module_parser = None
++    print_opts = []
++
++    def print_module_help(self, args):
++        """
++        Print the module parser help output
++
++        Args:
++            args (Namespace): argparse parsed arguments
++        """
++        self.module_parser.print_help()
++
++    def setup_args(self, parser_grp, cli):
++        """
++        Setup module parser, subcommands, and options
++
++        Args:
++            parser_grp (argparse.Action): Parser group to nest
++               module and subcommands under
++        """
++        desc = "Analyze error check module"
++        self.module_parser = parser_grp.add_parser('error',
++                                                   description=desc,
++                                                   help='Error checker')
++
++        subparser = self.module_parser.add_subparsers(title=None,
++                                                      dest='subparser',
++                                                      action=SubparsersAction,
++                                                      metavar='COMMANDS')
++
++        subcmd_grp = subparser.add_parser_group('Operation Modes')
++        cli.add_subcommand(subcmd_grp, 'list', 'Print error messages found in backend',
++                           self.print_error, self.print_opts)
++
++        self.module_parser.set_defaults(func=self.print_module_help)
++
++        return self.module_parser
++
++    def print_error(self, args):
++        err = 0
++        utl = util.Utils()
++        source = utl.load(args)
++        component = source.Component.BE
++        source.set_component(component, False)
++        patterns = ['sdap_async_sys_connect request failed', 'terminated by own WATCHDOG',
++            'ldap_sasl_interactive_bind_s failed', 'Communication with KDC timed out', 'SSSD is offline', 'Backend is offline',
++            'tsig verify failure', 'ldap_install_tls failed', 's2n exop request failed']
++        for line in utl.matched_line(source, patterns):
++            err +=1
++            print(line)
++        if err > 0:
++            print("For possible solutions please refer to https://sssd.io/troubleshooting/errors.html")
++        return
+diff --git a/src/tools/analyzer/modules/request.py b/src/tools/analyzer/modules/request.py
+index d661dddb84..e4d5f060c7 100644
+--- a/src/tools/analyzer/modules/request.py
++++ b/src/tools/analyzer/modules/request.py
+@@ -1,6 +1,6 @@
+ import re
+ import logging
+-
++from sssd import util
+ from sssd.parser import SubparsersAction
+ from sssd.parser import Option
+ 
+@@ -38,7 +38,6 @@ def print_module_help(self, args):
+     def setup_args(self, parser_grp, cli):
+         """
+         Setup module parser, subcommands, and options
+-
+         Args:
+             parser_grp (argparse.Action): Parser group to nest
+                module and subcommands under
+@@ -63,42 +62,6 @@ def setup_args(self, parser_grp, cli):
+ 
+         return self.module_parser
+ 
+-    def load(self, args):
+-        """
+-        Load the appropriate source reader.
+-
+-        Args:
+-            args (Namespace): argparse parsed arguments
+-
+-        Returns:
+-            Instantiated source object
+-        """
+-        if args.source == "journald":
+-            from sssd.source_journald import Journald
+-            source = Journald()
+-        else:
+-            from sssd.source_files import Files
+-            source = Files(args.logdir)
+-        return source
+-
+-    def matched_line(self, source, patterns):
+-        """
+-        Yield lines which match any number of patterns (OR) in
+-        provided patterns list.
+-
+-        Args:
+-            source (Reader): source Reader object
+-        Yields:
+-            lines matching the provided pattern(s)
+-        """
+-        for line in source:
+-            for pattern in patterns:
+-                re_obj = re.compile(pattern)
+-                if re_obj.search(line):
+-                    if line.startswith('   *  '):
+-                        continue
+-                    yield line
+-
+     def get_linked_ids(self, source, pattern, regex):
+         """
+         Retrieve list of associated REQ_TRACE ids. Filter
+@@ -114,8 +77,9 @@ def get_linked_ids(self, source, pattern, regex):
+         Returns:
+             List of linked ids discovered
+         """
++        utl = util.Utils()
+         linked_ids = []
+-        for match in self.matched_line(source, pattern):
++        for match in utl.matched_line(source, pattern):
+             id_re = re.compile(regex)
+             match = id_re.search(match)
+             if match:
+@@ -250,7 +214,8 @@ def list_requests(self, args):
+         Args:
+             args (Namespace):  populated argparse namespace
+         """
+-        source = self.load(args)
++        utl = util.Utils()
++        source = utl.load(args)
+         component = source.Component.NSS
+         resp = "nss"
+         # Log messages matching the following regex patterns contain
+@@ -266,7 +231,7 @@ def list_requests(self, args):
+         if args.verbose:
+             self.print_formatted_verbose(source)
+         else:
+-            for line in self.matched_line(source, patterns):
++            for line in utl.matched_line(source, patterns):
+                 if type(source).__name__ == 'Journald':
+                     print(line)
+                 else:
+@@ -279,7 +244,8 @@ def track_request(self, args):
+         Args:
+             args (Namespace):  populated argparse namespace
+         """
+-        source = self.load(args)
++        utl = util.Utils()
++        source = utl.load(args)
+         cid = args.cid
+         resp_results = False
+         be_results = False
+@@ -294,7 +260,7 @@ def track_request(self, args):
+         logger.info(f"******** Checking {resp} responder for Client ID"
+                     f" {cid} *******")
+         source.set_component(component, args.child)
+-        for match in self.matched_line(source, pattern):
++        for match in utl.matched_line(source, pattern):
+             resp_results = self.consume_line(match, source, args.merge)
+ 
+         logger.info(f"********* Checking Backend for Client ID {cid} ********")
+@@ -307,7 +273,7 @@ def track_request(self, args):
+         pattern.clear()
+         [pattern.append(f'\\{id}') for id in be_ids]
+ 
+-        for match in self.matched_line(source, pattern):
++        for match in utl.matched_line(source, pattern):
+             be_results = self.consume_line(match, source, args.merge)
+ 
+         if args.merge:
+diff --git a/src/tools/analyzer/sss_analyze b/src/tools/analyzer/sss_analyze
+index 3f1beaf38b..6d4b5b30c6 100755
+--- a/src/tools/analyzer/sss_analyze
++++ b/src/tools/analyzer/sss_analyze
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ 
+ from sssd import sss_analyze
+ 
+diff --git a/src/tools/analyzer/sss_analyze.py b/src/tools/analyzer/sss_analyze.py
+index 18b998f380..dafc84fc03 100644
+--- a/src/tools/analyzer/sss_analyze.py
++++ b/src/tools/analyzer/sss_analyze.py
+@@ -1,6 +1,7 @@
+ import argparse
+ 
+ from sssd.modules import request
++from sssd.modules import error
+ from sssd.parser import SubparsersAction
+ 
+ 
+@@ -55,9 +56,11 @@ def load_modules(self, parser, parser_grp):
+         """
+         # Currently only the 'request' module exists
+         req = request.RequestAnalyzer()
++        err = error.ErrorAnalyzer()
+         cli = Analyzer()
+ 
+         req.setup_args(parser_grp, cli)
++        err.setup_args(parser_grp, cli)
+ 
+     def setup_args(self):
+         """
+diff --git a/src/tools/analyzer/util.py b/src/tools/analyzer/util.py
+new file mode 100644
+index 0000000000..2a8d153a71
+--- /dev/null
++++ b/src/tools/analyzer/util.py
+@@ -0,0 +1,44 @@
++import re
++import logging
++
++from sssd.source_files import Files
++from sssd.source_journald import Journald
++
++logger = logging.getLogger()
++
++
++class Utils:
++
++    def load(self, args):
++        """
++        Load the appropriate source reader.
++
++        Args:
++            args (Namespace): argparse parsed arguments
++
++        Returns:
++            Instantiated source object
++        """
++        if args.source == "journald":
++            source = Journald()
++        else:
++            source = Files(args.logdir)
++        return source
++
++    def matched_line(self, source, patterns):
++        """
++        Yield lines which match any number of patterns (OR) in
++        provided patterns list.
++
++        Args:
++            source (Reader): source Reader object
++        Yields:
++            lines matching the provided pattern(s)
++        """
++        for line in source:
++            for pattern in patterns:
++                re_obj = re.compile(pattern)
++                if re_obj.search(line):
++                    if line.startswith('   *  '):
++                        continue
++                    yield line
diff --git a/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.4.bb b/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.1.bb
similarity index 95%
rename from meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.4.bb
rename to meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.1.bb
index 78d29c3..9fa9d3b 100644
--- a/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.7.4.bb
+++ b/meta-security/dynamic-layers/networking-layer/recipes-security/sssd/sssd_2.9.1.bb
@@ -16,7 +16,7 @@
 DEPENDS += "${@bb.utils.contains('PACKAGECONFIG', 'nss', '', \
                bb.utils.contains('PACKAGECONFIG', 'crypto', '', 'nss', d), d)}"
 
-SRC_URI = "https://github.com/SSSD/sssd/releases/download/${PV}/sssd-${PV}.tar.gz \
+SRC_URI = "https://github.com/SSSD/sssd/releases/download/${PV}/${BP}.tar.gz \
            file://sssd.conf \
            file://volatiles.99_sssd \
            file://no_gen.patch \
@@ -24,9 +24,10 @@
            file://drop_ntpdate_chk.patch \
            file://fix-ldblibdir.patch \
            file://musl_fixup.patch \
+           file://0001-sssctl-add-error-analyzer.patch \
            "
 
-SRC_URI[sha256sum] = "10ef90c63fdbfda905145077679035bd5ad16b24daad13160de8d0ff82ea9950"
+SRC_URI[sha256sum] = "97703d38159994a869aad1c852de4582c76f189cf044f51e15ba26e1e4b75298"
 
 UPSTREAM_CHECK_URI = "https://github.com/SSSD/${BPN}/releases"
 
@@ -58,7 +59,7 @@
 PACKAGECONFIG[selinux] = "--with-selinux, --with-selinux=no --with-semanage=no, libselinux"
 PACKAGECONFIG[ssh] = "--with-ssh, --with-ssh=no, "
 PACKAGECONFIG[sudo] = "--with-sudo, --with-sudo=no, "
-PACKAGECONFIG[systemd] = "--with-initscript=systemd,--with-initscript=sysv"
+PACKAGECONFIG[systemd] = "--with-initscript=systemd,--with-initscript=sysv,,python3-systemd"
 
 EXTRA_OECONF += " \
     --disable-cifs-idmap-plugin \
@@ -146,6 +147,7 @@
 
 FILES:${PN} += "${base_libdir}/security/pam_sss*.so  \
                 ${nonarch_libdir}/tmpfiles.d \
+                ${datadir}/dbus-1/system.d/*.conf \
                 ${datadir}/dbus-1/system-services/*.service \
                 ${libdir}/krb5/* \
                 ${libdir}/ldb/* \
diff --git a/meta-security/meta-hardening/conf/layer.conf b/meta-security/meta-hardening/conf/layer.conf
index 1dbc537..4bc1cac 100644
--- a/meta-security/meta-hardening/conf/layer.conf
+++ b/meta-security/meta-hardening/conf/layer.conf
@@ -11,3 +11,5 @@
 LAYERSERIES_COMPAT_harden-layer = "mickledore"
 
 LAYERDEPENDS_harden-layer = "core openembedded-layer"
+
+WARN_QA:append:harden-layer = " patch-status missing-metadata"
diff --git a/meta-security/meta-integrity/conf/layer.conf b/meta-security/meta-integrity/conf/layer.conf
index 0622a5f..7a9c1d1 100644
--- a/meta-security/meta-integrity/conf/layer.conf
+++ b/meta-security/meta-integrity/conf/layer.conf
@@ -35,3 +35,5 @@
 "
 
 addpylib ${LAYERDIR}/lib oeqa
+
+WARN_QA:append:integrity = " patch-status missing-metadata"
diff --git a/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.cfg b/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.cfg
deleted file mode 100644
index d7d80a6..0000000
--- a/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.cfg
+++ /dev/null
@@ -1,45 +0,0 @@
-CONFIG_KEYS=y
-CONFIG_ASYMMETRIC_KEY_TYPE=y
-CONFIG_SYSTEM_TRUSTED_KEYRING=y
-CONFIG_SYSTEM_TRUSTED_KEYS="${IMA_EVM_ROOT_CA}"
-CONFIG_SECONDARY_TRUSTED_KEYRING=y
-CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
-CONFIG_X509_CERTIFICATE_PARSER=y
-CONFIG_PKCS8_PRIVATE_KEY_PARSER=y
-CONFIG_CRYPTO_ECDSA=y
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_INTEGRITY=y
-CONFIG_INTEGRITY_SIGNATURE=y
-CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
-CONFIG_INTEGRITY_TRUSTED_KEYRING=y
-CONFIG_IMA=y
-CONFIG_IMA_MEASURE_PCR_IDX=10
-CONFIG_IMA_LSM_RULES=y
-# CONFIG_IMA_TEMPLATE is not set
-# CONFIG_IMA_NG_TEMPLATE is not set
-CONFIG_IMA_SIG_TEMPLATE=y
-CONFIG_IMA_DEFAULT_TEMPLATE="ima-sig"
-# CONFIG_IMA_DEFAULT_HASH_SHA1 is not set
-CONFIG_IMA_DEFAULT_HASH_SHA256=y
-# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
-CONFIG_IMA_DEFAULT_HASH="sha256"
-CONFIG_IMA_WRITE_POLICY=y
-CONFIG_IMA_READ_POLICY=y
-CONFIG_IMA_APPRAISE=y
-CONFIG_IMA_ARCH_POLICY=y
-CONFIG_IMA_APPRAISE_BUILD_POLICY=y
-CONFIG_IMA_APPRAISE_REQUIRE_POLICY_SIGS=y
-# CONFIG_IMA_APPRAISE_BOOTPARAM is not set
-# CONFIG_IMA_APPRAISE_MODSIG is not set
-CONFIG_IMA_TRUSTED_KEYRING=y
-CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY=y
-# CONFIG_IMA_BLACKLIST_KEYRING is not set
-# CONFIG_IMA_LOAD_X509 is not set
-CONFIG_IMA_APPRAISE_SIGNED_INIT=y
-CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
-CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
-CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
-# CONFIG_IMA_DISABLE_HTABLE is not set
-CONFIG_EVM=y
-# CONFIG_EVM_LOAD_X509 is not set
diff --git a/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.scc b/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.scc
deleted file mode 100644
index 6eb84b0..0000000
--- a/meta-security/meta-integrity/recipes-kernel/linux/linux/ima.scc
+++ /dev/null
@@ -1,4 +0,0 @@
-define KFEATURE_DESCRIPTION "Enable IMA"
-
-kconf non-hardware ima.cfg
-
diff --git a/meta-security/meta-integrity/recipes-kernel/linux/linux_ima.inc b/meta-security/meta-integrity/recipes-kernel/linux/linux_ima.inc
index 7016800..415476a 100644
--- a/meta-security/meta-integrity/recipes-kernel/linux/linux_ima.inc
+++ b/meta-security/meta-integrity/recipes-kernel/linux/linux_ima.inc
@@ -1,8 +1,3 @@
-FILESEXTRAPATHS:append := "${THISDIR}/linux:"
-
-SRC_URI += " \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'ima', 'file://ima.scc', '', d)} \
-"
 
 do_configure:append() {
     if [ "${@bb.utils.contains('DISTRO_FEATURES', 'ima', 'yes', '', d)}" = "yes" ] && [ -f .config ] ; then
@@ -11,5 +6,6 @@
 }
 
 KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'modsign', ' features/ima/modsign.scc', '', d)}"
+KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'ima', ' features/ima/ima.scc', '', d)}"
 
 inherit ${@bb.utils.contains('DISTRO_FEATURES', 'modsign', 'kernel-modsign', '', d)}
diff --git a/meta-security/meta-parsec/conf/layer.conf b/meta-security/meta-parsec/conf/layer.conf
index 7d272a2..b162289 100644
--- a/meta-security/meta-parsec/conf/layer.conf
+++ b/meta-security/meta-parsec/conf/layer.conf
@@ -14,3 +14,5 @@
 BBLAYERS_LAYERINDEX_NAME_parsec-layer = "meta-parsec"
 
 addpylib ${LAYERDIR}/lib oeqa
+
+WARN_QA:append:parsec-layer = " patch-status missing-metadata"
diff --git a/meta-security/meta-tpm/conf/layer.conf b/meta-security/meta-tpm/conf/layer.conf
index 3b199f7..1f27031 100644
--- a/meta-security/meta-tpm/conf/layer.conf
+++ b/meta-security/meta-tpm/conf/layer.conf
@@ -26,3 +26,5 @@
 "
 
 addpylib ${LAYERDIR}/lib oeqa
+
+WARN_QA:append:tmp-layer = " patch-status missing-metadata"
diff --git a/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb b/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb
index fb0105e..b986097 100644
--- a/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb
+++ b/meta-security/meta-tpm/recipes-core/packagegroup/packagegroup-security-tpm2.bb
@@ -20,4 +20,8 @@
     libtss2 \
     tpm2-abrmd \
     tpm2-pkcs11 \
+    tpm2-openssl \
+    tpm2-tss-engine \
+    tpm2-tss-engine-engines \
+    python3-tpm2-pytss \
     "
diff --git a/meta-security/meta-tpm/recipes-kernel/linux/linux-yocto-rt_%.bbappend b/meta-security/meta-tpm/recipes-kernel/linux/linux-yocto-rt_%.bbappend
new file mode 100644
index 0000000..e8027ff
--- /dev/null
+++ b/meta-security/meta-tpm/recipes-kernel/linux/linux-yocto-rt_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains_any('DISTRO_FEATURES', 'tpm tpm2', 'linux-yocto_tpm.inc', '', d)}
diff --git a/meta-security/meta-tpm/recipes-tpm2/tpm2-pytss/python3-tpm2-pytss_2.1.0.bb b/meta-security/meta-tpm/recipes-tpm2/tpm2-pytss/python3-tpm2-pytss_2.1.0.bb
new file mode 100644
index 0000000..c98d4ab
--- /dev/null
+++ b/meta-security/meta-tpm/recipes-tpm2/tpm2-pytss/python3-tpm2-pytss_2.1.0.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "TPM2 TSS Python bindings for Enhanced System API (ESYS), Feature API (FAPI), Marshaling (MU), TCTI Loader (TCTILdr), TCTIs, policy, and RC Decoding (rcdecode) libraries"
+HOMEPAGE = "https://github.com/tpm2-software/tpm2-pytss"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=500b2e742befc3da00684d8a1d5fd9da"
+
+SRC_URI[sha256sum] = "5b5b4b1456fdc1aeef3d2c3970beaa078c8f7f2648c97a69bcf60c5a2f95c897"
+
+PYPI_PACKAGE = "tpm2-pytss"
+
+DEPENDS = "python3-pkgconfig-native python3-pycparser-native python3-asn1crypto-native"
+DEPENDS:append = " python3-cryptography-native tpm2-tss" 
+
+inherit autotools pkgconfig pypi setuptools3_legacy
+
+RDEPENDS:${PN} = "libtss2"
diff --git a/meta-security/recipes-compliance/openscap/files/0003-CMakeLists.txt-make-2-variables-configurable.patch b/meta-security/recipes-compliance/openscap/files/0003-CMakeLists.txt-make-2-variables-configurable.patch
new file mode 100644
index 0000000..953b0d9
--- /dev/null
+++ b/meta-security/recipes-compliance/openscap/files/0003-CMakeLists.txt-make-2-variables-configurable.patch
@@ -0,0 +1,37 @@
+From f99c3f1f516a84d33794f8e3da59adea1a12ef54 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Tue, 20 Jun 2023 22:42:51 +0800
+Subject: [PATCH] CMakeLists.txt: make 2 variables configurable
+
+Variables PREFERRED_PYTHON_PATH and PYTHON3_PATH are set with
+${PYTHON_EXECUTABLE}. For cross compile, ${PYTHON_EXECUTABLE} may point
+to other path rather than standard dir such as /usr/bin. Then the
+generated library file contains such path which should NOT. Update to
+make variables PREFERRED_PYTHON_PATH and PYTHON3_PATH configurable to
+avoid such issue.
+
+Upstream-Status: Submitted [https://github.com/OpenSCAP/openscap/pull/1990]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5db014e77..74628cdd4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -125,8 +125,8 @@ endif()
+ find_package(PythonInterp 3)
+ find_package(PythonLibs 3)
+ 
+-set(PREFERRED_PYTHON_PATH "${PYTHON_EXECUTABLE}")
+-set(PYTHON3_PATH "${PYTHON_EXECUTABLE}")
++set(PREFERRED_PYTHON_PATH "${PYTHON_EXECUTABLE}" CACHE PATH "Path to preferred Python")
++set(PYTHON3_PATH "${PYTHON_EXECUTABLE}" CACHE PATH "Path to Python3")
+ 
+ find_package(RPM)
+ if(RPM_FOUND)
+-- 
+2.34.1
+
diff --git a/meta-security/recipes-compliance/openscap/openscap_1.3.8.bb b/meta-security/recipes-compliance/openscap/openscap_1.3.8.bb
index ecc347c..5abd5a6 100644
--- a/meta-security/recipes-compliance/openscap/openscap_1.3.8.bb
+++ b/meta-security/recipes-compliance/openscap/openscap_1.3.8.bb
@@ -12,6 +12,7 @@
 #Jun 22th, 2023
 SRCREV = "a81c66d9bc36612dd1ca83a8c959a59e172eb4b9"
 SRC_URI = "git://github.com/OpenSCAP/openscap.git;branch=maint-1.3;protocol=https \
+           file://0003-CMakeLists.txt-make-2-variables-configurable.patch \
            "
 
 S = "${WORKDIR}/git"
@@ -35,7 +36,9 @@
                   -DENABLE_PROBES_WINDOWS=OFF -DENABLE_VALGRIND=OFF \
                   -DENABLE_SCE=ON -DENABLE_MITRE=OFF -DENABLE_TESTS=OFF \
                   -DCMAKE_SKIP_INSTALL_RPATH=ON -DCMAKE_SKIP_RPATH=ON \
-                 "
+                  -DPREFERRED_PYTHON_PATH=${bindir}/python3 \
+                  -DPYTHON3_PATH=${bindir}/python3 \
+                  "
 
 STAGING_OSCAP_DIR = "${TMPDIR}/work-shared/${MACHINE}/oscap-source"
 STAGING_OSCAP_BUILDDIR = "${TMPDIR}/work-shared/openscap/oscap-build-artifacts"
diff --git a/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-Poky-support.patch b/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-Poky-support.patch
deleted file mode 100644
index 355f954..0000000
--- a/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-Poky-support.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 23a224203a73688567f500380644e5cf30c8ed99 Mon Sep 17 00:00:00 2001
-From: Armin Kuster <akuster808@gmail.com>
-Date: Thu, 22 Jun 2023 06:19:26 -0400
-Subject: [PATCH] scap-security-guide: add Poky support
-
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Upstream-Status: Pending
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
----
- products/openembedded/product.yml             |  7 +++-
- .../openembedded/transforms/constants.xslt    |  4 +--
- shared/checks/oval/installed_OS_is_poky.xml   | 33 +++++++++++++++++++
- 3 files changed, 41 insertions(+), 3 deletions(-)
- create mode 100644 shared/checks/oval/installed_OS_is_poky.xml
-
-diff --git a/products/openembedded/product.yml b/products/openembedded/product.yml
-index 9f2f12d737..a495e197c0 100644
---- a/products/openembedded/product.yml
-+++ b/products/openembedded/product.yml
-@@ -14,6 +14,11 @@ init_system: "systemd"
- cpes_root: "../../shared/applicability"
- cpes:
-   - openembedded:
--      name: "cpe:/o:openembedded"
-+      name: "cpe:/o:openembedded:nodistro:"
-       title: "OpenEmbedded nodistro"
-       check_id: installed_OS_is_openembedded
-+
-+  - poky:
-+      name: "cpe:/o:openembedded:poky:"
-+      title: "OpenEmbedded Poky reference distribution"
-+      check_id: installed_OS_is_poky
-diff --git a/products/openembedded/transforms/constants.xslt b/products/openembedded/transforms/constants.xslt
-index 85e812a7c1..8901def2f9 100644
---- a/products/openembedded/transforms/constants.xslt
-+++ b/products/openembedded/transforms/constants.xslt
-@@ -2,8 +2,8 @@
- 
- <xsl:include href="../../../shared/transforms/shared_constants.xslt"/>
- 
--<xsl:variable name="product_long_name">OpenEmbedded nodistro</xsl:variable>
--<xsl:variable name="product_short_name">OE nodistro</xsl:variable>
-+<xsl:variable name="product_long_name">OpenEmbedded based distribution</xsl:variable>
-+<xsl:variable name="product_short_name">OE distros</xsl:variable>
- <xsl:variable name="product_stig_id_name">empty</xsl:variable>
- <xsl:variable name="prod_type">openembedded</xsl:variable>
- 
-diff --git a/shared/checks/oval/installed_OS_is_poky.xml b/shared/checks/oval/installed_OS_is_poky.xml
-new file mode 100644
-index 0000000000..9c41acd786
---- /dev/null
-+++ b/shared/checks/oval/installed_OS_is_poky.xml
-@@ -0,0 +1,33 @@
-+<def-group>
-+  <definition class="inventory" id="installed_OS_is_poky" version="1">
-+    <metadata>
-+      <title>Poky</title>
-+      <affected family="unix">
-+        <platform>multi_platform_all</platform>
-+      </affected>
-+      <description>The operating system installed is a Poky referenece based System</description>
-+    </metadata>
-+    <criteria comment="System is Poky reference distribution" operator="AND">
-+      <extend_definition comment="Installed OS is part of the Unix family" definition_ref="installed_OS_is_part_of_Unix_family" />
-+      <criterion comment="Poky based distro" test_ref="test_os_release_poky" />
-+      <criterion comment="Poky referenece distribution is installed" test_ref="test_poky" />
-+    </criteria>
-+  </definition>
-+
-+  <unix:file_test check="all" check_existence="all_exist" comment="/etc/os-release exists" id="test_os_release_poky" version="1">
-+    <unix:object object_ref="obj_os_release_poky" />
-+  </unix:file_test>
-+  <unix:file_object comment="check /etc/os-release file" id="obj_os_release_poky" version="1">
-+    <unix:filepath>/etc/os-release</unix:filepath>
-+  </unix:file_object>
-+
-+  <ind:textfilecontent54_test check="all" check_existence="at_least_one_exists" comment="Check OpenEmbedded" id="test_poky" version="1">
-+    <ind:object object_ref="obj_poky" />
-+  </ind:textfilecontent54_test>
-+  <ind:textfilecontent54_object id="obj_poky" version="1" comment="Check Poky">
-+    <ind:filepath>/etc/os-release</ind:filepath>
-+    <ind:pattern operation="pattern match">^ID=poky$</ind:pattern>
-+    <ind:instance datatype="int">1</ind:instance>
-+  </ind:textfilecontent54_object>
-+
-+</def-group>
--- 
-2.34.1
-
diff --git a/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-openembedded-distro-support.patch b/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-openembedded-distro-support.patch
new file mode 100644
index 0000000..0db2b12
--- /dev/null
+++ b/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-openembedded-distro-support.patch
@@ -0,0 +1,388 @@
+From 826dd5b109f79270819703a23cc8066895d68042 Mon Sep 17 00:00:00 2001
+From: Armin Kuster <akuster808@gmail.com>
+Date: Wed, 14 Jun 2023 07:46:55 -0400
+Subject: [PATCH 1/2] scap-security-guide: add openembedded distro support
+
+includes a standard profile for out-of-the-box checks
+
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+Upstream-Status: Pending
+https://github.com/ComplianceAsCode/content/pull/10793
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+---
+ CMakeLists.txt                                |   5 +
+ build_product                                 |   1 +
+ products/openembedded/CMakeLists.txt          |   6 +
+ products/openembedded/product.yml             |  19 ++
+ .../openembedded/profiles/standard.profile    | 166 ++++++++++++++++++
+ .../openembedded/transforms/constants.xslt    |  10 ++
+ .../oval/installed_OS_is_openembedded.xml     |  33 ++++
+ .../oval/sysctl_kernel_ipv6_disable.xml       |   1 +
+ ssg/constants.py                              |   5 +-
+ 9 files changed, 245 insertions(+), 1 deletion(-)
+ create mode 100644 products/openembedded/CMakeLists.txt
+ create mode 100644 products/openembedded/product.yml
+ create mode 100644 products/openembedded/profiles/standard.profile
+ create mode 100644 products/openembedded/transforms/constants.xslt
+ create mode 100644 shared/checks/oval/installed_OS_is_openembedded.xml
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 6b1ac00ff9..e4191f2cef 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -97,6 +97,7 @@ option(SSG_PRODUCT_UBUNTU1804 "If enabled, the Ubuntu 18.04 SCAP content will be
+ option(SSG_PRODUCT_UBUNTU2004 "If enabled, the Ubuntu 20.04 SCAP content will be built" ${SSG_PRODUCT_DEFAULT})
+ option(SSG_PRODUCT_UBUNTU2204 "If enabled, the Ubuntu 22.04 SCAP content will be built" ${SSG_PRODUCT_DEFAULT})
+ option(SSG_PRODUCT_UOS20 "If enabled, the Uos 20 SCAP content will be built" ${SSG_PRODUCT_DEFAULT})
++option(SSG_PRODUCT_OE "If enabled, the OpenEmbedded SCAP content will be built" ${SSG_PRODUCT_DEFAULT})
+ 
+ 
+ option(SSG_CENTOS_DERIVATIVES_ENABLED "If enabled, CentOS derivative content will be built from the RHEL content" TRUE)
+@@ -291,6 +292,7 @@ message(STATUS "Ubuntu 18.04: ${SSG_PRODUCT_UBUNTU1804}")
+ message(STATUS "Ubuntu 20.04: ${SSG_PRODUCT_UBUNTU2004}")
+ message(STATUS "Ubuntu 22.04: ${SSG_PRODUCT_UBUNTU2204}")
+ message(STATUS "Uos 20: ${SSG_PRODUCT_UOS20}")
++message(STATUS "OpenEmbedded: ${SSG_PRODUCT_OE}")
+ 
+ 
+ message(STATUS " ")
+@@ -409,6 +411,9 @@ endif()
+ if(SSG_PRODUCT_UOS20)
+     add_subdirectory("products/uos20" "uos20")
+ endif()
++if (SSG_PRODUCT_OE)
++    add_subdirectory("products/openembedded" "openembedded")
++endif()
+ 
+ # ZIP only contains source datastreams and kickstarts, people who
+ # want sources to build from should get the tarball instead.
+diff --git a/build_product b/build_product
+index fc793cbe70..7bdc03edfe 100755
+--- a/build_product
++++ b/build_product
+@@ -333,6 +333,7 @@ all_cmake_products=(
+ 	UBUNTU2204
+ 	UOS20
+ 	MACOS1015
++	OPENEMBEDDED
+ )
+ 
+ DEFAULT_OVAL_MAJOR_VERSION=5
+diff --git a/products/openembedded/CMakeLists.txt b/products/openembedded/CMakeLists.txt
+new file mode 100644
+index 0000000000..1981adf53e
+--- /dev/null
++++ b/products/openembedded/CMakeLists.txt
+@@ -0,0 +1,6 @@
++# Sometimes our users will try to do: "cd openembedded; cmake ." That needs to error in a nice way.
++if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
++    message(FATAL_ERROR "cmake has to be used on the root CMakeLists.txt, see the Building ComplianceAsCode section in the Developer Guide!")
++endif()
++
++ssg_build_product("openembedded")
+diff --git a/products/openembedded/product.yml b/products/openembedded/product.yml
+new file mode 100644
+index 0000000000..debf6870ef
+--- /dev/null
++++ b/products/openembedded/product.yml
+@@ -0,0 +1,19 @@
++product: openembedded
++full_name: OpemEmbedded 
++type: platform
++
++benchmark_id: OPENEMBEDDED
++benchmark_root: "../../linux_os/guide"
++
++profiles_root: "./profiles"
++
++pkg_manager: "dnf"
++
++init_system: "systemd"
++
++cpes_root: "../../shared/applicability"
++cpes:
++  - openembedded:
++      name: "cpe:/o:openembedded:nodistro:"
++      title: "OpenEmbedded nodistro"
++      check_id: installed_OS_is_openembedded
+diff --git a/products/openembedded/profiles/standard.profile b/products/openembedded/profiles/standard.profile
+new file mode 100644
+index 0000000000..fcb9e0e5c2
+--- /dev/null
++++ b/products/openembedded/profiles/standard.profile
+@@ -0,0 +1,166 @@
++documentation_complete: true
++
++title: 'Sample Security Profile for OpenEmbedded Distros'
++
++description: |-
++    This profile is an sample for use in documentation and example content.
++    The selected rules are standard and should pass quickly on most systems.
++
++selections:
++    - file_owner_etc_passwd
++    - file_groupowner_etc_passwd
++    - service_crond_enabled
++    - file_groupowner_crontab
++    - file_owner_crontab
++    - file_permissions_crontab
++    - file_groupowner_cron_hourly
++    - file_owner_cron_hourly
++    - file_permissions_cron_hourly
++    - file_groupowner_cron_daily
++    - file_owner_cron_daily
++    - file_permissions_cron_daily
++    - file_groupowner_cron_weekly
++    - file_owner_cron_weekly
++    - file_permissions_cron_weekly
++    - file_groupowner_cron_monthly
++    - file_owner_cron_monthly
++    - file_permissions_cron_monthly
++    - file_groupowner_cron_d
++    - file_owner_cron_d
++    - file_permissions_cron_d
++    - file_groupowner_cron_allow
++    - file_owner_cron_allow
++    - file_cron_deny_not_exist
++    - file_groupowner_at_allow
++    - file_owner_at_allow
++    - file_at_deny_not_exist
++    - file_permissions_at_allow
++    - file_permissions_cron_allow
++    - file_groupowner_sshd_config
++    - file_owner_sshd_config
++    - file_permissions_sshd_config
++    - file_permissions_sshd_private_key
++    - file_permissions_sshd_pub_key
++    - sshd_set_loglevel_verbose
++    - sshd_set_loglevel_info
++    - sshd_max_auth_tries_value=4
++    - sshd_set_max_auth_tries
++    - sshd_disable_rhosts
++    - disable_host_auth
++    - sshd_disable_root_login
++    - sshd_disable_empty_passwords
++    - sshd_do_not_permit_user_env
++    - sshd_idle_timeout_value=15_minutes
++    - sshd_set_idle_timeout
++    - sshd_set_keepalive
++    - var_sshd_set_keepalive=0
++    - sshd_set_login_grace_time
++    - var_sshd_set_login_grace_time=60
++    - sshd_enable_warning_banner
++    - sshd_enable_pam
++    - sshd_set_maxstartups
++    - var_sshd_set_maxstartups=10:30:60
++    - sshd_set_max_sessions
++    - var_sshd_max_sessions=10
++    - accounts_password_pam_minclass
++    - accounts_password_pam_minlen
++    - accounts_password_pam_retry
++    - var_password_pam_minclass=4
++    - var_password_pam_minlen=14
++    - locking_out_password_attempts
++    - accounts_password_pam_pwhistory_remember_password_auth
++    - accounts_password_pam_pwhistory_remember_system_auth
++    - var_password_pam_remember_control_flag=required
++    - var_password_pam_remember=5
++    - set_password_hashing_algorithm_systemauth
++    - var_accounts_maximum_age_login_defs=365
++    - accounts_password_set_max_life_existing
++    - var_accounts_minimum_age_login_defs=7
++    - accounts_password_set_min_life_existing
++    - var_accounts_password_warn_age_login_defs=7
++    - account_disable_post_pw_expiration
++    - var_account_disable_post_pw_expiration=30
++    - no_shelllogin_for_systemaccounts
++    - accounts_tmout
++    - var_accounts_tmout=15_min
++    - accounts_root_gid_zero
++    - accounts_umask_etc_bashrc
++    - use_pam_wheel_for_su
++    - sshd_allow_only_protocol2
++    - journald_forward_to_syslog
++    - journald_compress
++    - journald_storage
++    - service_auditd_enabled
++    - service_httpd_disabled
++    - service_vsftpd_disabled
++    - service_named_disabled
++    - service_nfs_disabled
++    - service_rpcbind_disabled
++    - service_slapd_disabled
++    - service_dhcpd_disabled
++    - service_cups_disabled
++    - service_ypserv_disabled
++    - service_rsyncd_disabled
++    - service_avahi-daemon_disabled
++    - service_snmpd_disabled
++    - service_squid_disabled
++    - service_smb_disabled
++    - service_dovecot_disabled
++    - banner_etc_motd
++    - login_banner_text=cis_banners
++    - banner_etc_issue
++    - login_banner_text=cis_banners
++    - file_groupowner_etc_motd
++    - file_owner_etc_motd
++    - file_permissions_etc_motd
++    - file_groupowner_etc_issue
++    - file_owner_etc_issue
++    - file_permissions_etc_issue
++    - ensure_gpgcheck_globally_activated
++    - package_aide_installed
++    - aide_periodic_cron_checking
++    - grub2_password
++    - file_groupowner_grub2_cfg
++    - file_owner_grub2_cfg
++    - file_permissions_grub2_cfg
++    - require_singleuser_auth
++    - require_emergency_target_auth
++    - disable_users_coredumps
++    - configure_crypto_policy
++    - var_system_crypto_policy=default_policy
++    - dir_perms_world_writable_sticky_bits
++    - file_permissions_etc_passwd
++    - file_owner_etc_shadow
++    - file_groupowner_etc_shadow
++    - file_groupowner_etc_group
++    - file_owner_etc_group
++    - file_permissions_etc_group
++    - file_groupowner_etc_gshadow
++    - file_owner_etc_gshadow
++    - file_groupowner_backup_etc_passwd
++    - file_owner_backup_etc_passwd
++    - file_permissions_backup_etc_passwd
++    - file_groupowner_backup_etc_shadow
++    - file_owner_backup_etc_shadow
++    - file_permissions_backup_etc_shadow
++    - file_groupowner_backup_etc_group
++    - file_owner_backup_etc_group
++    - file_permissions_backup_etc_group
++    - file_groupowner_backup_etc_gshadow
++    - file_owner_backup_etc_gshadow
++    - file_permissions_unauthorized_world_writable
++    - file_permissions_ungroupowned
++    - accounts_root_path_dirs_no_write
++    - root_path_no_dot
++    - accounts_no_uid_except_zero
++    - file_ownership_home_directories
++    - file_groupownership_home_directories
++    - no_netrc_files
++    - no_rsh_trust_files
++    - account_unique_id
++    - group_unique_id
++    - group_unique_name
++    - wireless_disable_interfaces
++    - package_firewalld_installed
++    - service_firewalld_enabled
++    - package_iptables_installed
+diff --git a/products/openembedded/transforms/constants.xslt b/products/openembedded/transforms/constants.xslt
+new file mode 100644
+index 0000000000..152571e8bb
+--- /dev/null
++++ b/products/openembedded/transforms/constants.xslt
+@@ -0,0 +1,10 @@
++<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
++
++<xsl:include href="../../../shared/transforms/shared_constants.xslt"/>
++
++<xsl:variable name="product_long_name">OpenEmbedded</xsl:variable>
++<xsl:variable name="product_short_name">openembedded</xsl:variable>
++<xsl:variable name="product_stig_id_name">empty</xsl:variable>
++<xsl:variable name="prod_type">openembedded</xsl:variable>
++
++</xsl:stylesheet>
+diff --git a/shared/checks/oval/installed_OS_is_openembedded.xml b/shared/checks/oval/installed_OS_is_openembedded.xml
+new file mode 100644
+index 0000000000..11ebdca913
+--- /dev/null
++++ b/shared/checks/oval/installed_OS_is_openembedded.xml
+@@ -0,0 +1,33 @@
++<def-group>
++  <definition class="inventory" id="installed_OS_is_openembedded" version="1">
++    <metadata>
++      <title>OpenEmbedded</title>
++      <affected family="unix">
++        <platform>multi_platform_all</platform>
++      </affected>
++      <description>The operating system installed is an OpenEmbedded based system</description>
++    </metadata>
++    <criteria comment="System is OpenEmbedded based" operator="AND">
++      <extend_definition comment="Installed OS is part of the Unix family" definition_ref="installed_OS_is_part_of_Unix_family" />
++      <criterion comment="OpenEmbedded distro" test_ref="test_os_openembedded" />
++      <criterion comment="OpenEmbedded is installed" test_ref="test_openembedded" />
++    </criteria>
++  </definition>
++
++  <unix:file_test check="all" check_existence="all_exist" comment="/etc/os-release exists" id="test_os_openembedded" version="1">
++    <unix:object object_ref="obj_os_openembedded" />
++  </unix:file_test>
++  <unix:file_object comment="check /etc/os-release file" id="obj_os_openembedded" version="1">
++    <unix:filepath>/etc/os-release</unix:filepath>
++  </unix:file_object>
++
++  <ind:textfilecontent54_test check="all" check_existence="at_least_one_exists" comment="Check OpenEmbedded" id="test_openembedded" version="1">
++    <ind:object object_ref="obj_openembedded" />
++  </ind:textfilecontent54_test>
++  <ind:textfilecontent54_object id="obj_openembedded" version="1" comment="Check OpenEmbedded">
++    <ind:filepath>/etc/os-release</ind:filepath>
++    <ind:pattern operation="pattern match">^ID=nodistro$</ind:pattern>
++    <ind:instance datatype="int">1</ind:instance>
++  </ind:textfilecontent54_object>
++
++</def-group>
+diff --git a/shared/checks/oval/sysctl_kernel_ipv6_disable.xml b/shared/checks/oval/sysctl_kernel_ipv6_disable.xml
+index affb9770cb..4f22df262c 100644
+--- a/shared/checks/oval/sysctl_kernel_ipv6_disable.xml
++++ b/shared/checks/oval/sysctl_kernel_ipv6_disable.xml
+@@ -8,6 +8,7 @@
+ 	<platform>multi_platform_debian</platform>
+ 	<platform>multi_platform_example</platform>
+ 	<platform>multi_platform_fedora</platform>
++	<platform>multi_platform_openembedded</platform>
+ 	<platform>multi_platform_opensuse</platform>
+ 	<platform>multi_platform_ol</platform>
+ 	<platform>multi_platform_rhcos</platform>
+diff --git a/ssg/constants.py b/ssg/constants.py
+index f66ba008fa..630fbdfcb9 100644
+--- a/ssg/constants.py
++++ b/ssg/constants.py
+@@ -219,6 +219,7 @@ FULL_NAME_TO_PRODUCT_MAPPING = {
+     "Ubuntu 20.04": "ubuntu2004",
+     "Ubuntu 22.04": "ubuntu2204",
+     "UnionTech OS Server 20": "uos20",
++    "OpenEmbedded": "openembedded",
+     "Not Applicable" : "example"
+ }
+ 
+@@ -267,7 +268,7 @@ REFERENCES = dict(
+ 
+ MULTI_PLATFORM_LIST = ["rhel", "fedora", "rhv", "debian", "ubuntu",
+                        "opensuse", "sle", "ol", "ocp", "rhcos",
+-                       "example", "eks", "alinux", "uos", "anolis"]
++                       "example", "eks", "alinux", "uos", "anolis", "openembedded"]
+ 
+ MULTI_PLATFORM_MAPPING = {
+     "multi_platform_alinux": ["alinux2", "alinux3"],
+@@ -285,6 +286,7 @@ MULTI_PLATFORM_MAPPING = {
+     "multi_platform_sle": ["sle12", "sle15"],
+     "multi_platform_ubuntu": ["ubuntu1604", "ubuntu1804", "ubuntu2004", "ubuntu2204"],
+     "multi_platform_uos": ["uos20"],
++    "multi_platform_openembedded": ["openembedded"],
+ }
+ 
+ RHEL_CENTOS_CPE_MAPPING = {
+@@ -454,6 +456,7 @@ MAKEFILE_ID_TO_PRODUCT_MAP = {
+     'ocp': 'Red Hat OpenShift Container Platform',
+     'rhcos': 'Red Hat Enterprise Linux CoreOS',
+     'eks': 'Amazon Elastic Kubernetes Service',
++    'openembedded': 'OpenEmbedded',
+ }
+ 
+ # References that can not be used with product-qualifiers
+-- 
+2.34.1
+
diff --git a/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-openembedded.patch b/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-openembedded.patch
deleted file mode 100644
index f003f72..0000000
--- a/meta-security/recipes-compliance/scap-security-guide/files/0001-scap-security-guide-add-openembedded.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-From f6287d146762b8360bd7099f4724a58eedba7d2a Mon Sep 17 00:00:00 2001
-From: Armin Kuster <akuster808@gmail.com>
-Date: Wed, 14 Jun 2023 07:46:55 -0400
-Subject: [PATCH] scap-security-guide: add openembedded
-
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Upstream-Status: Pending
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
----
- CMakeLists.txt                                |  5 +++
- build_product                                 |  1 +
- products/openembedded/CMakeLists.txt          |  6 ++++
- products/openembedded/product.yml             | 19 +++++++++++
- .../openembedded/profiles/standard.profile    | 12 +++++++
- .../openembedded/transforms/constants.xslt    | 10 ++++++
- .../oval/installed_OS_is_openembedded.xml     | 33 +++++++++++++++++++
- .../oval/sysctl_kernel_ipv6_disable.xml       |  1 +
- ssg/constants.py                              |  5 ++-
- 9 files changed, 91 insertions(+), 1 deletion(-)
- create mode 100644 products/openembedded/CMakeLists.txt
- create mode 100644 products/openembedded/product.yml
- create mode 100644 products/openembedded/profiles/standard.profile
- create mode 100644 products/openembedded/transforms/constants.xslt
- create mode 100644 shared/checks/oval/installed_OS_is_openembedded.xml
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 85ec289644..09ac96784e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -95,6 +95,7 @@ option(SSG_PRODUCT_UBUNTU1804 "If enabled, the Ubuntu 18.04 SCAP content will be
- option(SSG_PRODUCT_UBUNTU2004 "If enabled, the Ubuntu 20.04 SCAP content will be built" ${SSG_PRODUCT_DEFAULT})
- option(SSG_PRODUCT_UBUNTU2204 "If enabled, the Ubuntu 22.04 SCAP content will be built" ${SSG_PRODUCT_DEFAULT})
- option(SSG_PRODUCT_UOS20 "If enabled, the Uos 20 SCAP content will be built" ${SSG_PRODUCT_DEFAULT})
-+option(SSG_PRODUCT_OE "If enabled, the OpenEmbedded SCAP content will be built" ${SSG_PRODUCT_DEFAULT})
- 
- 
- option(SSG_CENTOS_DERIVATIVES_ENABLED "If enabled, CentOS derivative content will be built from the RHEL content" TRUE)
-@@ -289,6 +290,7 @@ message(STATUS "Ubuntu 18.04: ${SSG_PRODUCT_UBUNTU1804}")
- message(STATUS "Ubuntu 20.04: ${SSG_PRODUCT_UBUNTU2004}")
- message(STATUS "Ubuntu 22.04: ${SSG_PRODUCT_UBUNTU2204}")
- message(STATUS "Uos 20: ${SSG_PRODUCT_UOS20}")
-+message(STATUS "OpenEmbedded nodistro: ${SSG_PRODUCT_OE}")
- 
- 
- 
-@@ -410,6 +412,9 @@ endif()
- if (SSG_PRODUCT_UOS20)
-     add_subdirectory("products/uos20" "uos20")
- endif()
-+if (SSG_PRODUCT_OE)
-+    add_subdirectory("products/openembedded" "openembedded")
-+endif()
- 
- # ZIP only contains source datastreams and kickstarts, people who
- # want sources to build from should get the tarball instead.
-diff --git a/build_product b/build_product
-index fc793cbe70..197d925b7e 100755
---- a/build_product
-+++ b/build_product
-@@ -333,6 +333,7 @@ all_cmake_products=(
- 	UBUNTU2204
- 	UOS20
- 	MACOS1015
-+    OPENEMBEDDED
- )
- 
- DEFAULT_OVAL_MAJOR_VERSION=5
-diff --git a/products/openembedded/CMakeLists.txt b/products/openembedded/CMakeLists.txt
-new file mode 100644
-index 0000000000..1981adf53e
---- /dev/null
-+++ b/products/openembedded/CMakeLists.txt
-@@ -0,0 +1,6 @@
-+# Sometimes our users will try to do: "cd openembedded; cmake ." That needs to error in a nice way.
-+if ("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
-+    message(FATAL_ERROR "cmake has to be used on the root CMakeLists.txt, see the Building ComplianceAsCode section in the Developer Guide!")
-+endif()
-+
-+ssg_build_product("openembedded")
-diff --git a/products/openembedded/product.yml b/products/openembedded/product.yml
-new file mode 100644
-index 0000000000..9f2f12d737
---- /dev/null
-+++ b/products/openembedded/product.yml
-@@ -0,0 +1,19 @@
-+product: openembedded
-+full_name: OpemEmbedded 
-+type: platform
-+
-+benchmark_id: OPENEMBEDDED
-+benchmark_root: "../../linux_os/guide"
-+
-+profiles_root: "./profiles"
-+
-+pkg_manager: "dnf"
-+
-+init_system: "systemd"
-+
-+cpes_root: "../../shared/applicability"
-+cpes:
-+  - openembedded:
-+      name: "cpe:/o:openembedded"
-+      title: "OpenEmbedded nodistro"
-+      check_id: installed_OS_is_openembedded
-diff --git a/products/openembedded/profiles/standard.profile b/products/openembedded/profiles/standard.profile
-new file mode 100644
-index 0000000000..44339d716c
---- /dev/null
-+++ b/products/openembedded/profiles/standard.profile
-@@ -0,0 +1,12 @@
-+documentation_complete: true
-+
-+title: 'Sample Security Profile for OpenEmbedded Distros'
-+
-+description: |-
-+    This profile is an sample for use in documentation and example content.
-+    The selected rules are standard and should pass quickly on most systems.
-+
-+selections:
-+    - file_owner_etc_passwd
-+    - file_groupowner_etc_passwd
-+    - file_permissions_etc_passwd
-diff --git a/products/openembedded/transforms/constants.xslt b/products/openembedded/transforms/constants.xslt
-new file mode 100644
-index 0000000000..85e812a7c1
---- /dev/null
-+++ b/products/openembedded/transforms/constants.xslt
-@@ -0,0 +1,10 @@
-+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-+
-+<xsl:include href="../../../shared/transforms/shared_constants.xslt"/>
-+
-+<xsl:variable name="product_long_name">OpenEmbedded nodistro</xsl:variable>
-+<xsl:variable name="product_short_name">OE nodistro</xsl:variable>
-+<xsl:variable name="product_stig_id_name">empty</xsl:variable>
-+<xsl:variable name="prod_type">openembedded</xsl:variable>
-+
-+</xsl:stylesheet>
-diff --git a/shared/checks/oval/installed_OS_is_openembedded.xml b/shared/checks/oval/installed_OS_is_openembedded.xml
-new file mode 100644
-index 0000000000..17c2873686
---- /dev/null
-+++ b/shared/checks/oval/installed_OS_is_openembedded.xml
-@@ -0,0 +1,33 @@
-+<def-group>
-+  <definition class="inventory" id="installed_OS_is_openembedded" version="1">
-+    <metadata>
-+      <title>OpenEmbedded</title>
-+      <affected family="unix">
-+        <platform>multi_platform_all</platform>
-+      </affected>
-+      <description>The operating system installed is an OpenEmbedded System</description>
-+    </metadata>
-+    <criteria comment="System is OpenEmbedded" operator="AND">
-+      <extend_definition comment="Installed OS is part of the Unix family" definition_ref="installed_OS_is_part_of_Unix_family" />
-+      <criterion comment="OpenEmbedded distro" test_ref="test_os_release" />
-+      <criterion comment="OpenEmbedded is installed" test_ref="test_openembedded" />
-+    </criteria>
-+  </definition>
-+
-+  <unix:file_test check="all" check_existence="all_exist" comment="/etc/os-release exists" id="test_os_release" version="1">
-+    <unix:object object_ref="obj_os_release" />
-+  </unix:file_test>
-+  <unix:file_object comment="check /etc/os-release file" id="obj_os_release" version="1">
-+    <unix:filepath>/etc/os-release</unix:filepath>
-+  </unix:file_object>
-+
-+  <ind:textfilecontent54_test check="all" check_existence="at_least_one_exists" comment="Check OpenEmbedded" id="test_openembedded" version="1">
-+    <ind:object object_ref="obj_openembedded" />
-+  </ind:textfilecontent54_test>
-+  <ind:textfilecontent54_object id="obj_openembedded" version="1" comment="Check OpenEmbedded">
-+    <ind:filepath>/etc/os-release</ind:filepath>
-+    <ind:pattern operation="pattern match">^ID=nodistro$</ind:pattern>
-+    <ind:instance datatype="int">1</ind:instance>
-+  </ind:textfilecontent54_object>
-+
-+</def-group>
-diff --git a/shared/checks/oval/sysctl_kernel_ipv6_disable.xml b/shared/checks/oval/sysctl_kernel_ipv6_disable.xml
-index affb9770cb..4f22df262c 100644
---- a/shared/checks/oval/sysctl_kernel_ipv6_disable.xml
-+++ b/shared/checks/oval/sysctl_kernel_ipv6_disable.xml
-@@ -8,6 +8,7 @@
- 	<platform>multi_platform_debian</platform>
- 	<platform>multi_platform_example</platform>
- 	<platform>multi_platform_fedora</platform>
-+	<platform>multi_platform_openembedded</platform>
- 	<platform>multi_platform_opensuse</platform>
- 	<platform>multi_platform_ol</platform>
- 	<platform>multi_platform_rhcos</platform>
-diff --git a/ssg/constants.py b/ssg/constants.py
-index f66ba008fa..630fbdfcb9 100644
---- a/ssg/constants.py
-+++ b/ssg/constants.py
-@@ -219,6 +219,7 @@ FULL_NAME_TO_PRODUCT_MAPPING = {
-     "Ubuntu 20.04": "ubuntu2004",
-     "Ubuntu 22.04": "ubuntu2204",
-     "UnionTech OS Server 20": "uos20",
-+    "OpenEmbedded": "openembedded",
-     "Not Applicable" : "example"
- }
- 
-@@ -267,7 +268,7 @@ REFERENCES = dict(
- 
- MULTI_PLATFORM_LIST = ["rhel", "fedora", "rhv", "debian", "ubuntu",
-                        "opensuse", "sle", "ol", "ocp", "rhcos",
--                       "example", "eks", "alinux", "uos", "anolis"]
-+                       "example", "eks", "alinux", "uos", "anolis", "openembedded"]
- 
- MULTI_PLATFORM_MAPPING = {
-     "multi_platform_alinux": ["alinux2", "alinux3"],
-@@ -285,6 +286,7 @@ MULTI_PLATFORM_MAPPING = {
-     "multi_platform_sle": ["sle12", "sle15"],
-     "multi_platform_ubuntu": ["ubuntu1604", "ubuntu1804", "ubuntu2004", "ubuntu2204"],
-     "multi_platform_uos": ["uos20"],
-+    "multi_platform_openembedded": ["openembedded"],
- }
- 
- RHEL_CENTOS_CPE_MAPPING = {
-@@ -454,6 +456,7 @@ MAKEFILE_ID_TO_PRODUCT_MAP = {
-     'ocp': 'Red Hat OpenShift Container Platform',
-     'rhcos': 'Red Hat Enterprise Linux CoreOS',
-     'eks': 'Amazon Elastic Kubernetes Service',
-+    'openembedded': 'OpenEmbedded',
- }
- 
- # References that can not be used with product-qualifiers
--- 
-2.34.1
-
diff --git a/meta-security/recipes-compliance/scap-security-guide/files/0001-standard.profile-expand-checks.patch b/meta-security/recipes-compliance/scap-security-guide/files/0001-standard.profile-expand-checks.patch
deleted file mode 100644
index 061c5f0..0000000
--- a/meta-security/recipes-compliance/scap-security-guide/files/0001-standard.profile-expand-checks.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-From 7af2da3bbe1d5b4cba89c6dae9ea267717b865ea Mon Sep 17 00:00:00 2001
-From: Armin Kuster <akuster808@gmail.com>
-Date: Wed, 21 Jun 2023 07:46:38 -0400
-Subject: [PATCH] standard.profile: expand checks
-
-Upstream-Status: Pending
-Signed-off-by: Armin Kuster <akuster808@gmail.com>
-
-Upstream-status: Pending
----
- .../openembedded/profiles/standard.profile    | 206 ++++++++++++++++++
- 1 file changed, 206 insertions(+)
-
-diff --git a/products/openembedded/profiles/standard.profile b/products/openembedded/profiles/standard.profile
-index 44339d716c..877d1a3971 100644
---- a/products/openembedded/profiles/standard.profile
-+++ b/products/openembedded/profiles/standard.profile
-@@ -9,4 +9,210 @@ description: |-
- selections:
-     - file_owner_etc_passwd
-     - file_groupowner_etc_passwd
-+    - service_crond_enabled
-+    - file_groupowner_crontab
-+    - file_owner_crontab
-+    - file_permissions_crontab
-+    - file_groupowner_cron_hourly
-+    - file_owner_cron_hourly
-+    - file_permissions_cron_hourly
-+    - file_groupowner_cron_daily
-+    - file_owner_cron_daily
-+    - file_permissions_cron_daily
-+    - file_groupowner_cron_weekly
-+    - file_owner_cron_weekly
-+    - file_permissions_cron_weekly
-+    - file_groupowner_cron_monthly
-+    - file_owner_cron_monthly
-+    - file_permissions_cron_monthly
-+    - file_groupowner_cron_d
-+    - file_owner_cron_d
-+    - file_permissions_cron_d
-+    - file_groupowner_cron_allow
-+    - file_owner_cron_allow
-+    - file_cron_deny_not_exist
-+    - file_groupowner_at_allow
-+    - file_owner_at_allow
-+    - file_at_deny_not_exist
-+    - file_permissions_at_allow
-+    - file_permissions_cron_allow
-+    - file_groupowner_sshd_config
-+    - file_owner_sshd_config
-+    - file_permissions_sshd_config
-+    - file_permissions_sshd_private_key
-+    - file_permissions_sshd_pub_key
-+    - sshd_set_loglevel_verbose
-+    - sshd_set_loglevel_info
-+    - sshd_max_auth_tries_value=4
-+    - sshd_set_max_auth_tries
-+    - sshd_disable_rhosts
-+    - disable_host_auth
-+    - sshd_disable_root_login
-+    - sshd_disable_empty_passwords
-+    - sshd_do_not_permit_user_env
-+    - sshd_idle_timeout_value=15_minutes
-+    - sshd_set_idle_timeout
-+    - sshd_set_keepalive
-+    - var_sshd_set_keepalive=0
-+    - sshd_set_login_grace_time
-+    - var_sshd_set_login_grace_time=60
-+    - sshd_enable_warning_banner
-+    - sshd_enable_pam
-+    - sshd_set_maxstartups
-+    - var_sshd_set_maxstartups=10:30:60
-+    - sshd_set_max_sessions
-+    - var_sshd_max_sessions=10
-+    - accounts_password_pam_minclass
-+    - accounts_password_pam_minlen
-+    - accounts_password_pam_retry
-+    - var_password_pam_minclass=4
-+    - var_password_pam_minlen=14
-+    - locking_out_password_attempts
-+    - accounts_password_pam_pwhistory_remember_password_auth
-+    - accounts_password_pam_pwhistory_remember_system_auth
-+    - var_password_pam_remember_control_flag=required
-+    - var_password_pam_remember=5
-+    - set_password_hashing_algorithm_systemauth
-+    - accounts_maximum_age_login_defs
-+    - var_accounts_maximum_age_login_defs=365
-+    - accounts_password_set_max_life_existing
-+    - accounts_minimum_age_login_defs
-+    - var_accounts_minimum_age_login_defs=7
-+    - accounts_password_set_min_life_existing
-+    - accounts_password_warn_age_login_defs
-+    - var_accounts_password_warn_age_login_defs=7
-+    - account_disable_post_pw_expiration
-+    - var_account_disable_post_pw_expiration=30
-+    - no_shelllogin_for_systemaccounts
-+    - accounts_tmout
-+    - var_accounts_tmout=15_min
-+    - accounts_root_gid_zero
-+    - accounts_umask_etc_bashrc
-+    - accounts_umask_etc_login_defs
-+    - use_pam_wheel_for_su
-+    - sshd_allow_only_protocol2
-+    - journald_forward_to_syslog
-+    - journald_compress
-+    - journald_storage
-+    - service_auditd_enabled
-+    - service_httpd_disabled
-+    - service_vsftpd_disabled
-+    - service_named_disabled
-+    - service_nfs_disabled
-+    - service_rpcbind_disabled
-+    - service_slapd_disabled
-+    - service_dhcpd_disabled
-+    - service_cups_disabled
-+    - service_ypserv_disabled
-+    - service_rsyncd_disabled
-+    - service_avahi-daemon_disabled
-+    - service_snmpd_disabled
-+    - service_squid_disabled
-+    - service_smb_disabled
-+    - service_dovecot_disabled
-+    - banner_etc_motd
-+    - login_banner_text=cis_banners
-+    - banner_etc_issue
-+    - login_banner_text=cis_banners
-+    - file_groupowner_etc_motd
-+    - file_owner_etc_motd
-+    - file_permissions_etc_motd
-+    - file_groupowner_etc_issue
-+    - file_owner_etc_issue
-+    - file_permissions_etc_issue
-+    - ensure_gpgcheck_globally_activated
-+    - package_aide_installed
-+    - aide_periodic_cron_checking
-+    - grub2_password
-+    - file_groupowner_grub2_cfg
-+    - file_owner_grub2_cfg
-+    - file_permissions_grub2_cfg
-+    - require_singleuser_auth
-+    - require_emergency_target_auth
-+    - disable_users_coredumps
-+    - coredump_disable_backtraces
-+    - coredump_disable_storage
-+    - configure_crypto_policy
-+    - var_system_crypto_policy=default_policy
-+    - dir_perms_world_writable_sticky_bits
-     - file_permissions_etc_passwd
-+    - file_owner_etc_shadow
-+    - file_groupowner_etc_shadow
-+    - file_groupowner_etc_group
-+    - file_owner_etc_group
-+    - file_permissions_etc_group
-+    - file_groupowner_etc_gshadow
-+    - file_owner_etc_gshadow
-+    - file_groupowner_backup_etc_passwd
-+    - file_owner_backup_etc_passwd
-+    - file_permissions_backup_etc_passwd
-+    - file_groupowner_backup_etc_shadow
-+    - file_owner_backup_etc_shadow
-+    - file_permissions_backup_etc_shadow
-+    - file_groupowner_backup_etc_group
-+    - file_owner_backup_etc_group
-+    - file_permissions_backup_etc_group
-+    - file_groupowner_backup_etc_gshadow
-+    - file_owner_backup_etc_gshadow
-+    - file_permissions_backup_etc_gshadow
-+    - file_permissions_unauthorized_world_writable
-+    - file_permissions_ungroupowned
-+    - accounts_root_path_dirs_no_write
-+    - root_path_no_dot
-+    - accounts_no_uid_except_zero
-+    - file_ownership_home_directories
-+    - file_groupownership_home_directories
-+    - no_netrc_files
-+    - no_rsh_trust_files
-+    - account_unique_id
-+    - group_unique_id
-+    - group_unique_name
-+    - kernel_module_sctp_disabled
-+    - kernel_module_dccp_disabled
-+    - wireless_disable_interfaces
-+    - sysctl_net_ipv4_ip_forward
-+    - sysctl_net_ipv6_conf_all_forwarding
-+    - sysctl_net_ipv6_conf_all_forwarding_value=disabled
-+    - sysctl_net_ipv4_conf_all_send_redirects
-+    - sysctl_net_ipv4_conf_default_send_redirects
-+    - sysctl_net_ipv4_conf_all_accept_source_route
-+    - sysctl_net_ipv4_conf_all_accept_source_route_value=disabled
-+    - sysctl_net_ipv4_conf_default_accept_source_route
-+    - sysctl_net_ipv4_conf_default_accept_source_route_value=disabled
-+    - sysctl_net_ipv6_conf_all_accept_source_route
-+    - sysctl_net_ipv6_conf_all_accept_source_route_value=disabled
-+    - sysctl_net_ipv6_conf_default_accept_source_route
-+    - sysctl_net_ipv6_conf_default_accept_source_route_value=disabled
-+    - sysctl_net_ipv4_conf_all_accept_redirects
-+    - sysctl_net_ipv4_conf_all_accept_redirects_value=disabled
-+    - sysctl_net_ipv4_conf_default_accept_redirects
-+    - sysctl_net_ipv4_conf_default_accept_redirects_value=disabled
-+    - sysctl_net_ipv6_conf_all_accept_redirects
-+    - sysctl_net_ipv6_conf_all_accept_redirects_value=disabled
-+    - sysctl_net_ipv6_conf_default_accept_redirects
-+    - sysctl_net_ipv6_conf_default_accept_redirects_value=disabled
-+    - sysctl_net_ipv4_conf_all_secure_redirects
-+    - sysctl_net_ipv4_conf_all_secure_redirects_value=disabled
-+    - sysctl_net_ipv4_conf_default_secure_redirects
-+    - sysctl_net_ipv4_conf_default_secure_redirects_value=disabled
-+    - sysctl_net_ipv4_conf_all_log_martians
-+    - sysctl_net_ipv4_conf_all_log_martians_value=enabled
-+    - sysctl_net_ipv4_conf_default_log_martians
-+    - sysctl_net_ipv4_conf_default_log_martians_value=enabled
-+    - sysctl_net_ipv4_icmp_echo_ignore_broadcasts
-+    - sysctl_net_ipv4_icmp_echo_ignore_broadcasts_value=enabled
-+    - sysctl_net_ipv4_icmp_ignore_bogus_error_responses
-+    - sysctl_net_ipv4_icmp_ignore_bogus_error_responses_value=enabled
-+    - sysctl_net_ipv4_conf_all_rp_filter
-+    - sysctl_net_ipv4_conf_all_rp_filter_value=enabled
-+    - sysctl_net_ipv4_conf_default_rp_filter
-+    - sysctl_net_ipv4_conf_default_rp_filter_value=enabled
-+    - sysctl_net_ipv4_tcp_syncookies
-+    - sysctl_net_ipv4_tcp_syncookies_value=enabled
-+    - sysctl_net_ipv6_conf_all_accept_ra
-+    - sysctl_net_ipv6_conf_all_accept_ra_value=disabled
-+    - sysctl_net_ipv6_conf_default_accept_ra
-+    - sysctl_net_ipv6_conf_default_accept_ra_value=disabled
-+    - package_firewalld_installed
-+    - service_firewalld_enabled
-+    - package_iptables_installed
--- 
-2.34.1
-
diff --git a/meta-security/recipes-compliance/scap-security-guide/files/0002-scap-security-guide-Add-Poky-support.patch b/meta-security/recipes-compliance/scap-security-guide/files/0002-scap-security-guide-Add-Poky-support.patch
new file mode 100644
index 0000000..1639264
--- /dev/null
+++ b/meta-security/recipes-compliance/scap-security-guide/files/0002-scap-security-guide-Add-Poky-support.patch
@@ -0,0 +1,74 @@
+From 2be977a60c944a54594d5786b2d8869ed72a9a06 Mon Sep 17 00:00:00 2001
+From: Armin Kuster <akuster808@gmail.com>
+Date: Wed, 5 Jul 2023 12:57:52 -0400
+Subject: [PATCH 2/2] scap-security-guide: Add Poky support
+
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+Upstream-Status: Pending
+Waiting to see if OE changes get merged.
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+
+---
+ products/openembedded/product.yml           |  6 ++++
+ shared/checks/oval/installed_OS_is_poky.xml | 33 +++++++++++++++++++++
+ 2 files changed, 39 insertions(+)
+ create mode 100644 shared/checks/oval/installed_OS_is_poky.xml
+
+diff --git a/products/openembedded/product.yml b/products/openembedded/product.yml
+index debf6870ef..d63479d5d3 100644
+--- a/products/openembedded/product.yml
++++ b/products/openembedded/product.yml
+@@ -17,3 +17,9 @@ cpes:
+       name: "cpe:/o:openembedded:nodistro:"
+       title: "OpenEmbedded nodistro"
+       check_id: installed_OS_is_openembedded
++
++  - poky:
++      name: "cpe:/o:openembedded:poky:"
++      title: "OpenEmbedded Poky reference distribution"
++      check_id: installed_OS_is_poky
++
+diff --git a/shared/checks/oval/installed_OS_is_poky.xml b/shared/checks/oval/installed_OS_is_poky.xml
+new file mode 100644
+index 0000000000..b8805cf31b
+--- /dev/null
++++ b/shared/checks/oval/installed_OS_is_poky.xml
+@@ -0,0 +1,33 @@
++<def-group>
++  <definition class="inventory" id="installed_OS_is_poky" version="1">
++    <metadata>
++      <title>Poky</title>
++      <affected family="unix">
++        <platform>multi_platform_all</platform>
++      </affected>
++      <description>The operating system installed is a Poky based System</description>
++    </metadata>
++    <criteria comment="System is Poky based distribution" operator="AND">
++      <extend_definition comment="Installed OS is part of the Unix family" definition_ref="installed_OS_is_part_of_Unix_family" />
++      <criterion comment="Poky based distro" test_ref="test_os_poky" />
++      <criterion comment="Poky based distribution is installed" test_ref="test_poky" />
++    </criteria>
++  </definition>
++
++  <unix:file_test check="all" check_existence="all_exist" comment="/etc/os-release exists" id="test_os_poky" version="1">
++    <unix:object object_ref="obj_os_poky" />
++  </unix:file_test>
++  <unix:file_object comment="check /etc/os-release file" id="obj_os_poky" version="1">
++    <unix:filepath>/etc/os-release</unix:filepath>
++  </unix:file_object>
++
++  <ind:textfilecontent54_test check="all" check_existence="at_least_one_exists" comment="Check OpenEmbedded" id="test_poky" version="1">
++    <ind:object object_ref="obj_poky" />
++  </ind:textfilecontent54_test>
++  <ind:textfilecontent54_object id="obj_poky" version="1" comment="Check Poky">
++    <ind:filepath>/etc/os-release</ind:filepath>
++    <ind:pattern operation="pattern match">^ID=poky$</ind:pattern>
++    <ind:instance datatype="int">1</ind:instance>
++  </ind:textfilecontent54_object>
++
++</def-group>
+-- 
+2.34.1
+
diff --git a/meta-security/recipes-compliance/scap-security-guide/files/run-ptest b/meta-security/recipes-compliance/scap-security-guide/files/run-ptest
new file mode 100644
index 0000000..e8d270f
--- /dev/null
+++ b/meta-security/recipes-compliance/scap-security-guide/files/run-ptest
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+export PYTHONPATH="/usr/lib/scap-security-guide/ptest/git:$PYTHONPATH"
+
+cd git/build
+
+ctest --output-on-failure -E unique-stigids
diff --git a/meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.67.bb b/meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.67.bb
index 31ab96e..988e48b 100644
--- a/meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.67.bb
+++ b/meta-security/recipes-compliance/scap-security-guide/scap-security-guide_0.1.67.bb
@@ -6,12 +6,12 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=9bfa86579213cb4c6adaffface6b2820"
 LICENSE = "BSD-3-Clause"
 
-SRCREV = "dad85502ce8da722a6afc391346c41cee61e90a9"
+SRCREV = "3a1012bc9ec2b01b3b71c6feefd3cff0f52bd64d"
 SRC_URI = "git://github.com/ComplianceAsCode/content.git;branch=master;protocol=https \
-           file://0001-scap-security-guide-add-openembedded.patch \
-           file://0001-standard.profile-expand-checks.patch \
-           file://0001-scap-security-guide-add-Poky-support.patch \
            file://run_eval.sh \
+           file://run-ptest \
+           file://0001-scap-security-guide-add-openembedded-distro-support.patch \
+           file://0002-scap-security-guide-Add-Poky-support.patch \
            "
 
 
@@ -20,7 +20,7 @@
 S = "${WORKDIR}/git"
 B = "${S}/build"
 
-inherit cmake pkgconfig python3native python3targetconfig
+inherit cmake pkgconfig python3native python3targetconfig ptest
 
 OECMAKE_GENERATOR = "Unix Makefiles"
 
@@ -38,8 +38,52 @@
     install  ${WORKDIR}/run_eval.sh ${D}${datadir}/openscap/.
 }
 
+do_compile_ptest() {
+    cd ${S}/build
+    cmake ../
+    make 
+}
+
+do_install_ptest() {
+
+    # remove host & work dir from tests
+    for x in $(find ${S}/build -type f) ;
+    do
+       sed -e 's#${HOSTTOOLS_DIR}/##g' \
+           -e 's#${RECIPE_SYSROOT_NATIVE}##g' \
+           -e 's#${WORKDIR}#${PTEST_PATH}#g' \
+           -e 's#/.*/xmllint#/usr/bin/xmllint#g' \
+           -e 's#/.*/oscap#/usr/bin/oscap#g' \
+           -e 's#/python3-native##g' \
+           -i ${x}
+    done
+
+    for x in $(find ${S}/build-scripts -type f) ;
+    do
+       sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${x}
+    done
+
+    for x in $(find ${S}/tests -type f) ;
+    do
+       sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${x}
+    done
+
+    for x in $(find ${S}/utils -type f) ;
+    do
+       sed -i -e '1s|^#!.*|#!/usr/bin/env python3|' ${x}
+    done
+
+    PDIRS="apple_os build controls products shared components applications linux_os ocp-resources tests utils ssg build-scripts"
+    t=${D}/${PTEST_PATH}/git
+    for d in ${PDIRS}; do
+        install -d ${t}/$d
+        cp -fr ${S}/$d/* ${t}/$d/.
+    done
+}
+
 FILES:${PN} += "${datadir}/xml ${datadir}/openscap"
 
 RDEPENDS:${PN} = "openscap"
+RDEPENDS:${PN}-ptest = "cmake grep sed bash git python3 python3-modules python3-mypy python3-pyyaml python3-yamlpath python3-xmldiff python3-json2html python3-pandas python3-openpyxl python3-pytest libxml2-utils libxslt-bin"
 
 COMPATIBLE_HOST:libc-musl = "null"
diff --git a/meta-security/recipes-core/images/dm-verity-image-initramfs.bb b/meta-security/recipes-core/images/dm-verity-image-initramfs.bb
index 187aeae..78f7b49 100644
--- a/meta-security/recipes-core/images/dm-verity-image-initramfs.bb
+++ b/meta-security/recipes-core/images/dm-verity-image-initramfs.bb
@@ -19,7 +19,14 @@
 IMAGE_LINGUAS = ""
 
 # Can we somehow inspect reverse dependencies to avoid these variables?
-do_image[depends] += "${DM_VERITY_IMAGE}:do_image_${DM_VERITY_IMAGE_TYPE}"
+python __anonymous() {
+    verity_image = d.getVar('DM_VERITY_IMAGE')
+    verity_type = d.getVar('DM_VERITY_IMAGE_TYPE')
+
+    if verity_image and verity_type:
+        dep = ' %s:do_image_%s' % (verity_image, verity_type.replace('-', '_'))
+        d.appendVarFlag('do_image', 'depends', dep)
+}
 
 # Ensure dm-verity.env is updated also when rebuilding DM_VERITY_IMAGE
 do_image[nostamp] = "1"
diff --git a/meta-security/recipes-core/images/security-build-image.bb b/meta-security/recipes-core/images/security-build-image.bb
index 411cd20..9c82049 100644
--- a/meta-security/recipes-core/images/security-build-image.bb
+++ b/meta-security/recipes-core/images/security-build-image.bb
@@ -18,3 +18,8 @@
 export IMAGE_BASENAME = "security-build-image"
 
 IMAGE_ROOTFS_EXTRA_SPACE = "5242880"
+
+QB_KERNEL_CMDLINE_APPEND = " ${@bb.utils.contains('DISTRO_FEATURES', 'apparmor', 'apparmor=1 security=apparmor', '', d)}"
+
+# We need more mem to run many apps in this layer
+QB_MEM = "-m 2048"
diff --git a/meta-security/recipes-core/packagegroup/packagegroup-core-security.bb b/meta-security/recipes-core/packagegroup/packagegroup-core-security.bb
index 494745b..3ef77e5 100644
--- a/meta-security/recipes-core/packagegroup/packagegroup-core-security.bb
+++ b/meta-security/recipes-core/packagegroup/packagegroup-core-security.bb
@@ -40,7 +40,6 @@
     pinentry \
     softhsm \
     sshguard \
-    firejail \
     ${@bb.utils.contains_any("TUNE_FEATURES", "riscv32 ", "", " libseccomp",d)} \
     ${@bb.utils.contains("DISTRO_FEATURES", "pam", "google-authenticator-libpam", "",d)} \
     ${@bb.utils.contains("DISTRO_FEATURES", "pax", "pax-utils packctl", "",d)} \
@@ -48,9 +47,8 @@
 
 have_krill =  "${@bb.utils.contains("DISTRO_FEATURES", "pam", "krill", "",d)}"
 RDEPENDS:packagegroup-security-utils:append:x86 = " chipsec ${have_krill}"
-RDEPENDS:packagegroup-security-utils:append:x86-64 = " chipsec ${have_krill}"
-RDEPENDS:packagegroup-security-utils:append:aarch64 = " ${have_krill}"
-RDEPENDS:packagegroup-security-utils:remove:mipsarch = "firejail"
+RDEPENDS:packagegroup-security-utils:append:x86-64 = " firejail chipsec ${have_krill}"
+RDEPENDS:packagegroup-security-utils:append:aarch64 = " firejail ${have_krill}"
 RDEPENDS:packagegroup-security-utils:remove:libc-musl = "krill"
 
 SUMMARY:packagegroup-security-scanners = "Security scanners"
diff --git a/meta-security/recipes-ids/ossec/ossec-hids_3.7.0.bb b/meta-security/recipes-ids/ossec/ossec-hids_3.7.0.bb
index 55c10fa..829715b 100644
--- a/meta-security/recipes-ids/ossec/ossec-hids_3.7.0.bb
+++ b/meta-security/recipes-ids/ossec/ossec-hids_3.7.0.bb
@@ -17,11 +17,19 @@
 
 S = "${WORKDIR}/git"
 
+
+OSSEC_DIR="/var/ossec"
 OSSEC_UID ?= "ossec"
 OSSEC_RUID ?= "ossecr"
 OSSEC_GID ?= "ossec"
 OSSEC_EMAIL ?= "ossecm"
 
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system ${OSSEC_UID}"
+USERADD_PARAM:${PN} = "--system -g ${OSSEC_GID} --home-dir  \
+                       ${OSSEC_DIR} --no-create-home  \
+                       --shell /sbin/nologin ${BPN}"
+
 do_configure[noexec] = "1"
 
 do_compile() {
@@ -45,78 +53,75 @@
 }
 
 pkg_postinst_ontarget:${PN} () {
-    DIR="/var/ossec"
-
-    usermod -g ossec -G ossec -a root
 
     # Default for all directories
-    chmod -R 550 ${DIR}
-    chown -R root:${OSSEC_GID} ${DIR}
+    chmod -R 550 ${OSSEC_DIR}
+    chown -R root:${OSSEC_GID} ${OSSEC_DIR}
 
     # To the ossec queue (default for agentd to read)
-    chown -R ${OSSEC_UUID}:${OSSEC_GID} ${DIR}/queue/ossec
-    chmod -R 770 ${DIR}/queue/ossec
+    chown -R ${OSSEC_UUID}:${OSSEC_GID} ${OSSEC_DIR}/queue/ossec
+    chmod -R 770 ${OSSEC_DIR}/queue/ossec
 
     # For the logging user
-    chown -R ${OSSEC_UUID}:${OSSEC_GID} ${DIR}/logs
-    chmod -R 750 ${DIR}/logs
-    chmod -R 775 ${DIR}/queue/rids
-    touch ${DIR}/logs/ossec.log
-    chown ${OSSEC_UUID}:${OSSEC_GID} ${DIR}/logs/ossec.log
-    chmod 664 ${DIR}/logs/ossec.log
+    chown -R ${OSSEC_UUID}:${OSSEC_GID} ${OSSEC_DIR}/logs
+    chmod -R 750 ${OSSEC_DIR}/logs
+    chmod -R 775 ${OSSEC_DIR}/queue/rids
+    touch ${OSSEC_DIR}/logs/ossec.log
+    chown ${OSSEC_UUID}:${OSSEC_GID} ${OSSEC_DIR}/logs/ossec.log
+    chmod 664 ${OSSEC_DIR}/logs/ossec.log
 
-    chown -R ${OSSEC_UUID}:${OSSEC_GID} ${DIR}/queue/diff
-    chmod -R 750 ${DIR}/queue/diff
-        chmod 740 ${DIR}/queue/diff/* > /dev/null 2>&1 || true
+    chown -R ${OSSEC_UUID}:${OSSEC_GID} ${OSSEC_DIR}/queue/diff
+    chmod -R 750 ${OSSEC_DIR}/queue/diff
+    chmod 740 ${OSSEC_DIR}/queue/diff/* > /dev/null 2>&1 || true
 
 	# For the etc dir
-	chmod 550 ${DIR}/etc
-	chown -R root:${OSSEC_GID} ${DIR}/etc
+	chmod 550 ${OSSEC_DIR}/etc
+	chown -R root:${OSSEC_GID} ${OSSEC_DIR}/etc
 	if [ -f /etc/localtime ]; then
-	    cp -pL /etc/localtime ${DIR}/etc/;
-	    chmod 555 ${DIR}/etc/localtime
-	    chown root:${OSSEC_GID} ${DIR}/etc/localtime
+	    cp -pL /etc/localtime ${OSSEC_DIR}/etc/;
+	    chmod 555 ${OSSEC_DIR}/etc/localtime
+	    chown root:${OSSEC_GID} ${OSSEC_DIR}/etc/localtime
 	fi
 
 	if [ -f /etc/TIMEZONE ]; then
-	    cp -p /etc/TIMEZONE ${DIR}/etc/;
-	    chmod 555 ${DIR}/etc/TIMEZONE
+	    cp -p /etc/TIMEZONE ${OSSEC_DIR}/etc/;
+	    chmod 555 ${OSSEC_DIR}/etc/TIMEZONE
 	fi
 
 	# More files
-	chown root:${OSSEC_GID} ${DIR}/etc/internal_options.conf
-	chown root:${OSSEC_GID} ${DIR}/etc/local_internal_options.conf >/dev/null 2>&1 || true
-	chown root:${OSSEC_GID} ${DIR}/etc/client.keys >/dev/null 2>&1 || true
-	chown root:${OSSEC_GID} ${DIR}/agentless/*
-	chown ${OSSEC_UUID}:${OSSEC_GID} ${DIR}/.ssh
-	chown root:${OSSEC_GID} ${DIR}/etc/shared/*
+	chown root:${OSSEC_GID} ${OSSEC_DIR}/etc/internal_options.conf
+	chown root:${OSSEC_GID} ${OSSEC_DIR}/etc/local_internal_options.conf >/dev/null 2>&1 || true
+	chown root:${OSSEC_GID} ${OSSEC_DIR}/etc/client.keys >/dev/null 2>&1 || true
+	chown root:${OSSEC_GID} ${OSSEC_DIR}/agentless/*
+	chown ${OSSEC_UUID}:${OSSEC_GID} ${OSSEC_DIR}/.ssh
+	chown root:${OSSEC_GID} ${OSSEC_DIR}/etc/shared/*
 
-	chmod 550 ${DIR}/etc
-	chmod 440 ${DIR}/etc/internal_options.conf
-	chmod 660 ${DIR}/etc/local_internal_options.conf >/dev/null 2>&1 || true
-	chmod 440 ${DIR}/etc/client.keys >/dev/null 2>&1 || true
-	chmod 550 ${DIR}/agentless/*
-	chmod 700 ${DIR}/.ssh
-	chmod 770 ${DIR}/etc/shared
-	chmod 660 ${DIR}/etc/shared/*
+	chmod 550 ${OSSEC_DIR}/etc
+	chmod 440 ${OSSEC_DIR}/etc/internal_options.conf
+	chmod 660 ${OSSEC_DIR}/etc/local_internal_options.conf >/dev/null 2>&1 || true
+	chmod 440 ${OSSEC_DIR}/etc/client.keys >/dev/null 2>&1 || true
+	chmod 550 ${OSSEC_DIR}/agentless/*
+	chmod 700 ${OSSEC_DIR}/.ssh
+	chmod 770 ${OSSEC_DIR}/etc/shared
+	chmod 660 ${OSSEC_DIR}/etc/shared/*
 
 	# For the /var/run
-	chmod 770 ${DIR}/var/run
-	chown root:${OSSEC_GID} ${DIR}/var/run
+	chmod 770 ${OSSEC_DIR}/var/run
+	chown root:${OSSEC_GID} ${OSSEC_DIR}/var/run
 
 	# For util.sh 
-	chown root:${OSSEC_GID} ${DIR}/bin/util.sh
-	chmod +x ${DIR}/bin/util.sh
+	chown root:${OSSEC_GID} ${OSSEC_DIR}/bin/util.sh
+	chmod +x ${OSSEC_DIR}/bin/util.sh
 
 	# For binaries and active response
-        chmod 755 ${DIR}/active-response/bin/*
-        chown root:${OSSEC_GID} ${DIR}/active-response/bin/*
-        chown root:${OSSEC_GID} ${DIR}/bin/*
-        chmod 550 ${DIR}/bin/*
+        chmod 755 ${OSSEC_DIR}/active-response/bin/*
+        chown root:${OSSEC_GID} ${OSSEC_DIR}/active-response/bin/*
+        chown root:${OSSEC_GID} ${OSSEC_DIR}/bin/*
+        chmod 550 ${OSSEC_DIR}/bin/*
 
 	# For ossec.conf
-        chown root:${OSSEC_GID} ${DIR}/etc/ossec.conf
-        chmod 660 ${DIR}/etc/ossec.conf
+        chown root:${OSSEC_GID} ${OSSEC_DIR}/etc/ossec.conf
+        chmod 660 ${OSSEC_DIR}/etc/ossec.conf
 
 	# Debconf
 	. /usr/share/debconf/confmodule
@@ -126,23 +131,23 @@
 	db_get ossec-hids-agent/server-ip
 	SERVER_IP=$RET
 
-	sed -i "s/<server-ip>[^<]\+<\/server-ip>/<server-ip>${SERVER_IP}<\/server-ip>/" ${DIR}/etc/ossec.conf
+	sed -i "s/<server-ip>[^<]\+<\/server-ip>/<server-ip>${SERVER_IP}<\/server-ip>/" ${OSSEC_DIR}/etc/ossec.conf
 	db_stop
 
         # ossec-init.conf
-        if [ -e ${DIR}/etc/ossec-init.conf ] && [ -d /etc/ ]; then
+        if [ -e ${OSSEC_DIR}/etc/ossec-init.conf ] && [ -d /etc/ ]; then
             if [ -e /etc/ossec-init.conf ]; then
                 rm -f /etc/ossec-init.conf
             fi
-            ln -s ${DIR}/etc/ossec-init.conf /etc/ossec-init.conf
+            ln -s ${OSSEC_DIR}/etc/ossec-init.conf /etc/ossec-init.conf
         fi
 
         # init.d/ossec file
-        if [ -x ${DIR}/etc/init.d/ossec ] && [ -d /etc/init.d/ ]; then
+        if [ -x ${OSSEC_DIR}/etc/init.d/ossec ] && [ -d /etc/init.d/ ]; then
             if [ -e /etc/init.d/ossec ]; then
                 rm -f /etc/init.d/ossec
             fi
-            ln -s ${DIR}/etc/init.d/ossec /etc/init.d/ossec
+            ln -s ${OSSEC_DIR}/etc/init.d/ossec /etc/init.d/ossec
         fi
 
 	# Service
diff --git a/meta-security/recipes-kernel/linux/linux-yocto-rt_%.bbappend b/meta-security/recipes-kernel/linux/linux-yocto-rt_%.bbappend
new file mode 100644
index 0000000..79dfeac
--- /dev/null
+++ b/meta-security/recipes-kernel/linux/linux-yocto-rt_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('DISTRO_FEATURES', 'security', 'linux-yocto_security.inc', '', d)}
diff --git a/meta-security/recipes-scanners/clamav/clamav_0.104.4.bb b/meta-security/recipes-scanners/clamav/clamav_0.104.4.bb
index 68a7d1f..102f267 100644
--- a/meta-security/recipes-scanners/clamav/clamav_0.104.4.bb
+++ b/meta-security/recipes-scanners/clamav/clamav_0.104.4.bb
@@ -13,7 +13,7 @@
 # July 30th, 2022
 SRCREV = "563ba93052f3b7b46fb8725a65ee6299a9c332cf"
 
-SRC_URI = "git://github.com/vrtadmin/clamav-devel;branch=rel/0.104;protocol=https \
+SRC_URI = "git://github.com/Cisco-Talos/clamav;branch=rel/0.104;protocol=https \
     file://clamd.conf \
     file://freshclam.conf \
     file://volatiles.03_clamav \
diff --git a/meta-security/recipes-security/Firejail/firejail_0.9.72.bb b/meta-security/recipes-security/Firejail/firejail_0.9.72.bb
index 12a3105..5713f46 100644
--- a/meta-security/recipes-security/Firejail/firejail_0.9.72.bb
+++ b/meta-security/recipes-security/Firejail/firejail_0.9.72.bb
@@ -59,6 +59,7 @@
     ${libdir}/${BPN}/fseccomp memory-deny-write-execute ${libdir}/${BPN}/seccomp.mdwx
 }
 
-COMPATIBLE_MACHINE:mips64 = "(!.*mips64).*"
+COMPATIBLE_MACHINE:x86_64 = "x86_64"
+COMPATIBLE_MACHINE:arm64 = "arch64"
 
 RDEPENDS:${PN} = "bash"
diff --git a/meta-security/recipes-security/glome/glome_git.bb b/meta-security/recipes-security/glome/glome_git.bb
index 12d6d5f..8787ddc 100644
--- a/meta-security/recipes-security/glome/glome_git.bb
+++ b/meta-security/recipes-security/glome/glome_git.bb
@@ -12,7 +12,7 @@
 
 S = "${WORKDIR}/git"
 SRC_URI = "git://github.com/google/glome.git;branch=master;protocol=https"
-SRCREV = "978ad9fb165f1e382c875f2ce08a1fc4f2ddcf1b"
+SRCREV = "48d28f82bd51ae4bccc84fbbee93c375b026596b"
 
 FILES:${PN} += "${libdir}/security"
 
diff --git a/meta-security/recipes-security/sshguard/sshguard_2.4.2.bb b/meta-security/recipes-security/sshguard/sshguard_2.4.3.bb
similarity index 79%
rename from meta-security/recipes-security/sshguard/sshguard_2.4.2.bb
rename to meta-security/recipes-security/sshguard/sshguard_2.4.3.bb
index bd7f979..37b414e 100644
--- a/meta-security/recipes-security/sshguard/sshguard_2.4.2.bb
+++ b/meta-security/recipes-security/sshguard/sshguard_2.4.3.bb
@@ -6,6 +6,6 @@
 
 SRC_URI="https://sourceforge.net/projects/sshguard/files/sshguard/${PV}/sshguard-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "2770b776e5ea70a9bedfec4fd84d57400afa927f0f7522870d2dcbbe1ace37e8"
+SRC_URI[sha256sum] = "64029deff6de90fdeefb1f497d414f0e4045076693a91da1a70eb7595e97efeb"
 
 inherit autotools-brokensep
diff --git a/poky/bitbake/contrib/vim/indent/bitbake.vim b/poky/bitbake/contrib/vim/indent/bitbake.vim
index 1381034..7ee9d69 100644
--- a/poky/bitbake/contrib/vim/indent/bitbake.vim
+++ b/poky/bitbake/contrib/vim/indent/bitbake.vim
@@ -40,7 +40,7 @@
 
 let s:maxoff = 50	" maximum number of lines to look backwards for ()
 
-function GetPythonIndent(lnum)
+function! GetBBPythonIndent(lnum)
 
   " If this line is explicitly joined: If the previous line was also joined,
   " line it up with that one, otherwise add two 'shiftwidth'
@@ -257,7 +257,7 @@
 setlocal indentkeys+=0\"
 
 
-function BitbakeIndent(lnum)
+function! BitbakeIndent(lnum)
     if !has('syntax_items')
         return -1
     endif
@@ -315,7 +315,7 @@
     endif
 
     if index(["bbPyDefRegion", "bbPyFuncRegion"], name) != -1
-        let ret = GetPythonIndent(a:lnum)
+        let ret = GetBBPythonIndent(a:lnum)
         " Should normally always be indented by at least one shiftwidth; but allow
         " return of -1 (defer to autoindent) or -2 (force indent to 0)
         if ret == 0
diff --git a/poky/bitbake/lib/bb/data_smart.py b/poky/bitbake/lib/bb/data_smart.py
index c597dba..0128a5b 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -16,7 +16,10 @@
 #
 # Based on functions from the base bb module, Copyright 2003 Holger Schurig
 
-import copy, re, sys, traceback
+import builtins
+import copy
+import re
+import sys
 from collections.abc import MutableMapping
 import logging
 import hashlib
@@ -150,19 +153,21 @@
             value = utils.better_eval(codeobj, DataContext(self.d), {'d' : self.d})
             return str(value)
 
-
 class DataContext(dict):
+    excluded = set([i for i in dir(builtins) if not i.startswith('_')] + ['oe'])
+
     def __init__(self, metadata, **kwargs):
         self.metadata = metadata
         dict.__init__(self, **kwargs)
         self['d'] = metadata
+        self.context = set(bb.utils.get_context())
 
     def __missing__(self, key):
-        # Skip commonly accessed invalid variables
-        if key in ['bb', 'oe', 'int', 'bool', 'time', 'str', 'os']:
+        if key in self.excluded or key in self.context:
             raise KeyError(key)
+
         value = self.metadata.getVar(key)
-        if value is None or self.metadata.getVarFlag(key, 'func', False):
+        if value is None:
             raise KeyError(key)
         else:
             return value
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 770021d..2428a26 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -388,7 +388,7 @@
             if s:
                 if not '=' in s:
                     raise MalformedUrl(url, "The URL: '%s' is invalid: parameter %s does not specify a value (missing '=')" % (url, s))
-                s1, s2 = s.split('=')
+                s1, s2 = s.split('=', 1)
                 p[s1] = s2
 
     return type, host, urllib.parse.unquote(path), user, pswd, p
@@ -1402,6 +1402,9 @@
         Is localpath something that can be represented by a checksum?
         """
 
+        # We cannot compute checksums for None
+        if urldata.localpath is None:
+            return False
         # We cannot compute checksums for directories
         if os.path.isdir(urldata.localpath):
             return False
diff --git a/poky/bitbake/lib/bb/fetch2/gitsm.py b/poky/bitbake/lib/bb/fetch2/gitsm.py
index f8e239b..47225b9 100644
--- a/poky/bitbake/lib/bb/fetch2/gitsm.py
+++ b/poky/bitbake/lib/bb/fetch2/gitsm.py
@@ -123,6 +123,12 @@
             url += ";name=%s" % module
             url += ";subpath=%s" % module
             url += ";nobranch=1"
+            # Note that adding "user=" here to give credentials to the
+            # submodule is not supported. Since using SRC_URI to give git://
+            # URL a password is not supported, one have to use one of the
+            # recommended way (eg. ~/.netrc or SSH config) which does specify
+            # the user (See comment in git.py).
+            # So, we will not take patches adding "user=" support here.
 
             ld = d.createCopy()
             # Not necessary to set SRC_URI, since we're passing the URI to
diff --git a/poky/bitbake/lib/bb/fetch2/npmsw.py b/poky/bitbake/lib/bb/fetch2/npmsw.py
index 971ccc9..4ff2c8f 100644
--- a/poky/bitbake/lib/bb/fetch2/npmsw.py
+++ b/poky/bitbake/lib/bb/fetch2/npmsw.py
@@ -225,13 +225,15 @@
     @staticmethod
     def _foreach_proxy_method(ud, handle):
         returns = []
-        for proxy_url in ud.proxy.urls:
-            proxy_ud = ud.proxy.ud[proxy_url]
-            proxy_d = ud.proxy.d
-            proxy_ud.setup_localpath(proxy_d)
-            lf = lockfile(proxy_ud.lockfile)
-            returns.append(handle(proxy_ud.method, proxy_ud, proxy_d))
-            unlockfile(lf)
+        #Check if there are dependencies before try to fetch them
+        if len(ud.deps) > 0:
+            for proxy_url in ud.proxy.urls:
+                proxy_ud = ud.proxy.ud[proxy_url]
+                proxy_d = ud.proxy.d
+                proxy_ud.setup_localpath(proxy_d)
+                lf = lockfile(proxy_ud.lockfile)
+                returns.append(handle(proxy_ud.method, proxy_ud, proxy_d))
+                unlockfile(lf)
         return returns
 
     def verify_donestamp(self, ud, d):
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index 4d4fa6d..f62faed 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -860,11 +860,10 @@
                 process.queue_signals = True
                 self._send(obj)
                 process.queue_signals = False
-                try:
-                    for sig in process.signal_received.pop():
-                        process.handle_sig(sig, None)
-                except IndexError:
-                    pass
+
+                while len(process.signal_received) > 0:
+                    sig = process.signal_received.pop()
+                    process.handle_sig(sig, None)
         else:
             self._send(obj)
 
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index c4ff9d8..d0a5556 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -182,6 +182,11 @@
     def exit(self):
         return
 
+def build_pnid(mc, pn, taskname):
+    if mc:
+        return "mc:" + mc + ":" + pn + ":" + taskname
+    return pn + ":" + taskname
+
 class SignatureGeneratorBasic(SignatureGenerator):
     """
     """
@@ -309,15 +314,19 @@
         recipename = dataCaches[mc].pkg_fn[mcfn]
 
         self.tidtopn[tid] = recipename
+        # save hashfn for deps into siginfo?
+        for dep in deps:
+            (depmc, _, deptask, depmcfn) = bb.runqueue.split_tid_mcfn(dep)
+            dep_pn = dataCaches[depmc].pkg_fn[depmcfn]
 
-        for dep in sorted(deps, key=clean_basepath):
-            (depmc, _, _, depmcfn) = bb.runqueue.split_tid_mcfn(dep)
-            depname = dataCaches[depmc].pkg_fn[depmcfn]
-            if not self.rundep_check(mcfn, recipename, task, dep, depname, dataCaches):
+            if not self.rundep_check(mcfn, recipename, task, dep, dep_pn, dataCaches):
                 continue
+
             if dep not in self.taskhash:
                 bb.fatal("%s is not in taskhash, caller isn't calling in dependency order?" % dep)
-            self.runtaskdeps[tid].append(dep)
+
+            dep_pnid = build_pnid(depmc, dep_pn, deptask)
+            self.runtaskdeps[tid].append((dep_pnid, dep))
 
         if task in dataCaches[mc].file_checksums[mcfn]:
             if self.checksum_cache:
@@ -348,8 +357,8 @@
     def get_taskhash(self, tid, deps, dataCaches):
 
         data = self.basehash[tid]
-        for dep in self.runtaskdeps[tid]:
-            data += self.get_unihash(dep)
+        for dep in sorted(self.runtaskdeps[tid]):
+            data += self.get_unihash(dep[1])
 
         for (f, cs) in self.file_checksum_values[tid]:
             if cs:
@@ -414,7 +423,7 @@
             data['varvals'][dep] = self.datacaches[mc].siggen_varvals[mcfn][dep]
 
         if runtime and tid in self.taskhash:
-            data['runtaskdeps'] = self.runtaskdeps[tid]
+            data['runtaskdeps'] = [dep[0] for dep in sorted(self.runtaskdeps[tid])]
             data['file_checksum_values'] = []
             for f,cs in self.file_checksum_values[tid]:
                 if "/./" in f:
@@ -422,8 +431,8 @@
                 else:
                     data['file_checksum_values'].append((os.path.basename(f), cs))
             data['runtaskhashes'] = {}
-            for dep in data['runtaskdeps']:
-                data['runtaskhashes'][dep] = self.get_unihash(dep)
+            for dep in self.runtaskdeps[tid]:
+                data['runtaskhashes'][dep[0]] = self.get_unihash(dep[1])
             data['taskhash'] = self.taskhash[tid]
             data['unihash'] = self.get_unihash(tid)
 
@@ -793,39 +802,6 @@
             ret.append(item)
     return '[%s]' % (', '.join(ret))
 
-def clean_basepath(basepath):
-    basepath, dir, recipe_task = basepath.rsplit("/", 2)
-    cleaned = dir + '/' + recipe_task
-
-    if basepath[0] == '/':
-        return cleaned
-
-    if basepath.startswith("mc:") and basepath.count(':') >= 2:
-        mc, mc_name, basepath = basepath.split(":", 2)
-        mc_suffix = ':mc:' + mc_name
-    else:
-        mc_suffix = ''
-
-    # mc stuff now removed from basepath. Whatever was next, if present will be the first
-    # suffix. ':/', recipe path start, marks the end of this. Something like
-    # 'virtual:a[:b[:c]]:/path...' (b and c being optional)
-    if basepath[0] != '/':
-        cleaned += ':' + basepath.split(':/', 1)[0]
-
-    return cleaned + mc_suffix
-
-def clean_basepaths(a):
-    b = {}
-    for x in a:
-        b[clean_basepath(x)] = a[x]
-    return b
-
-def clean_basepaths_list(a):
-    b = []
-    for x in a:
-        b.append(clean_basepath(x))
-    return b
-
 # Handled renamed fields
 def handle_renames(data):
     if 'basewhitelist' in data:
@@ -994,11 +970,11 @@
                 a = a_data['runtaskdeps'][idx]
                 b = b_data['runtaskdeps'][idx]
                 if a_data['runtaskhashes'][a] != b_data['runtaskhashes'][b] and not collapsed:
-                    changed.append("%s with hash %s\n changed to\n%s with hash %s" % (clean_basepath(a), a_data['runtaskhashes'][a], clean_basepath(b), b_data['runtaskhashes'][b]))
+                    changed.append("%s with hash %s\n changed to\n%s with hash %s" % (a, a_data['runtaskhashes'][a], b, b_data['runtaskhashes'][b]))
 
         if changed:
-            clean_a = clean_basepaths_list(a_data['runtaskdeps'])
-            clean_b = clean_basepaths_list(b_data['runtaskdeps'])
+            clean_a = a_data['runtaskdeps']
+            clean_b = b_data['runtaskdeps']
             if clean_a != clean_b:
                 output.append(color_format("{color_title}runtaskdeps changed:{color_default}\n%s") % list_inline_diff(clean_a, clean_b, colors))
             else:
@@ -1007,8 +983,8 @@
 
 
     if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
-        a = clean_basepaths(a_data['runtaskhashes'])
-        b = clean_basepaths(b_data['runtaskhashes'])
+        a = a_data['runtaskhashes']
+        b = b_data['runtaskhashes']
         changed, added, removed = dict_diff(a, b)
         if added:
             for dep in sorted(added):
diff --git a/poky/bitbake/lib/bb/tests/codeparser.py b/poky/bitbake/lib/bb/tests/codeparser.py
index 7f5d59c..a64c614 100644
--- a/poky/bitbake/lib/bb/tests/codeparser.py
+++ b/poky/bitbake/lib/bb/tests/codeparser.py
@@ -44,6 +44,7 @@
     def parseExpression(self, exp):
         parsedvar = self.d.expandWithRefs(exp, None)
         self.references = parsedvar.references
+        self.execs = parsedvar.execs
 
     def test_simple_reference(self):
         self.setEmptyVars(["FOO"])
@@ -61,6 +62,11 @@
         self.parseExpression("${@d.getVar('BAR') + 'foo'}")
         self.assertReferences(set(["BAR"]))
 
+    def test_python_exec_reference(self):
+        self.parseExpression("${@eval('3 * 5')}")
+        self.assertReferences(set())
+        self.assertExecs(set(["eval"]))
+
 class ShellReferenceTest(ReferenceTest):
 
     def parseExpression(self, exp):
diff --git a/poky/bitbake/lib/bb/tests/data.py b/poky/bitbake/lib/bb/tests/data.py
index 8c043b7..98e430c 100644
--- a/poky/bitbake/lib/bb/tests/data.py
+++ b/poky/bitbake/lib/bb/tests/data.py
@@ -77,6 +77,18 @@
         val = self.d.expand("${@d.getVar('foo') + ' ${bar}'}")
         self.assertEqual(str(val), "value_of_foo value_of_bar")
 
+    def test_python_snippet_function_reference(self):
+        self.d.setVar("TESTVAL", "testvalue")
+        self.d.setVar("testfunc", 'd.getVar("TESTVAL")')
+        context = bb.utils.get_context()
+        context["testfunc"] = lambda d: d.getVar("TESTVAL")
+        val = self.d.expand("${@testfunc(d)}")
+        self.assertEqual(str(val), "testvalue")
+
+    def test_python_snippet_builtin_metadata(self):
+        self.d.setVar("eval", "INVALID")
+        self.d.expand("${@eval('3')}")
+
     def test_python_unexpanded(self):
         self.d.setVar("bar", "${unsetvar}")
         val = self.d.expand("${@d.getVar('foo') + ' ${bar}'}")
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index 2059376..c5d15e9 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -1342,6 +1342,7 @@
        "cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', 'anonymous', collections.OrderedDict([('tag', 'V0-99-81'), ('module', 'familiar/dist/ipkg')])),
        "git://git.openembedded.org/bitbake;branch=@foo;protocol=https" : ('git', 'git.openembedded.org', '/bitbake', '', '', {'branch': '@foo', 'protocol' : 'https'}),
        "file://somelocation;someparam=1": ('file', '', 'somelocation', '', '', {'someparam': '1'}),
+       "https://somesite.com/somerepo.git;user=anyUser:idtoken=1234" : ('https', 'somesite.com', '/somerepo.git', '', '', {'user': 'anyUser:idtoken=1234'}),
        r'git://s.o-me_ONE:!#$%^&*()-_={}[]\|:?,.<>~`@git.openembedded.org/bitbake;branch=main;protocol=https': ('git', 'git.openembedded.org', '/bitbake', 's.o-me_ONE', r'!#$%^&*()-_={}[]\|:?,.<>~`', {'branch': 'main', 'protocol' : 'https'}),
     }
     # we require a pathname to encodeurl but users can still pass such urls to 
diff --git a/poky/bitbake/lib/bb/tests/siggen.py b/poky/bitbake/lib/bb/tests/siggen.py
index c21ab4e..0dc67e6 100644
--- a/poky/bitbake/lib/bb/tests/siggen.py
+++ b/poky/bitbake/lib/bb/tests/siggen.py
@@ -17,75 +17,12 @@
 
 class SiggenTest(unittest.TestCase):
 
-    def test_clean_basepath_simple_target_basepath(self):
-        basepath = '/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask'
-        expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask'
+    def test_build_pnid(self):
+        tests = {
+            ('', 'helloworld', 'do_sometask') : 'helloworld:do_sometask',
+            ('XX', 'helloworld', 'do_sometask') : 'mc:XX:helloworld:do_sometask',
+        }
 
-        actual_cleaned = bb.siggen.clean_basepath(basepath)
+        for t in tests:
+            self.assertEqual(bb.siggen.build_pnid(*t), tests[t])
 
-        self.assertEqual(actual_cleaned, expected_cleaned)
-
-    def test_clean_basepath_basic_virtual_basepath(self):
-        basepath = 'virtual:something:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask'
-        expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something'
-
-        actual_cleaned = bb.siggen.clean_basepath(basepath)
-
-        self.assertEqual(actual_cleaned, expected_cleaned)
-
-    def test_clean_basepath_mc_basepath(self):
-        basepath = 'mc:somemachine:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask'
-        expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:mc:somemachine'
-
-        actual_cleaned = bb.siggen.clean_basepath(basepath)
-
-        self.assertEqual(actual_cleaned, expected_cleaned)
-
-    def test_clean_basepath_virtual_long_prefix_basepath(self):
-        basepath = 'virtual:something:A:B:C:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask'
-        expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:A:B:C'
-
-        actual_cleaned = bb.siggen.clean_basepath(basepath)
-
-        self.assertEqual(actual_cleaned, expected_cleaned)
-
-    def test_clean_basepath_mc_virtual_basepath(self):
-        basepath = 'mc:somemachine:virtual:something:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask'
-        expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:mc:somemachine'
-
-        actual_cleaned = bb.siggen.clean_basepath(basepath)
-
-        self.assertEqual(actual_cleaned, expected_cleaned)
-
-    def test_clean_basepath_mc_virtual_long_prefix_basepath(self):
-        basepath = 'mc:X:virtual:something:C:B:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask'
-        expected_cleaned = 'helloworld/helloworld_1.2.3.bb:do_sometask:virtual:something:C:B:A:mc:X'
-
-        actual_cleaned = bb.siggen.clean_basepath(basepath)
-
-        self.assertEqual(actual_cleaned, expected_cleaned)
-
-
-    # def test_clean_basepath_performance(self):
-    #     input_basepaths = [
-    #         'mc:X:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask',
-    #         'mc:X:virtual:something:C:B:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask',
-    #         'virtual:something:C:B:A:/different/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask',
-    #         'virtual:something:A:/full/path/to/poky/meta/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask',
-    #         '/this/is/most/common/input/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask',
-    #         '/and/should/be/tested/with/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask',
-    #         '/more/weight/recipes-whatever/helloworld/helloworld_1.2.3.bb:do_sometask',
-    #     ]
-
-    #     time_start = time.time()
-
-    #     i = 2000000
-    #     while i >= 0:
-    #         for basepath in input_basepaths:
-    #             bb.siggen.clean_basepath(basepath)
-    #         i -= 1
-
-    #     elapsed = time.time() - time_start
-    #     print('{} ({}s)'.format(self.id(), round(elapsed, 3)))
-
-    #     self.assertTrue(False)
diff --git a/poky/documentation/dev-manual/new-recipe.rst b/poky/documentation/dev-manual/new-recipe.rst
index 1be04a7..af39077 100644
--- a/poky/documentation/dev-manual/new-recipe.rst
+++ b/poky/documentation/dev-manual/new-recipe.rst
@@ -1253,8 +1253,7 @@
 
    S = "${WORKDIR}/git"
 
-   # Fixed in r118, which is larger than the current version.
-   CVE_CHECK_IGNORE += "CVE-2014-4715"
+   CVE_STATUS[CVE-2014-4715] = "fixed-version: Fixed in r118, which is larger than the current version"
 
    EXTRA_OEMAKE = "PREFIX=${prefix} CC='${CC}' CFLAGS='${CFLAGS}' DESTDIR=${D} LIBDIR=${libdir} INCLUDEDIR=${includedir} BUILD_STATIC=no"
 
diff --git a/poky/documentation/dev-manual/vulnerabilities.rst b/poky/documentation/dev-manual/vulnerabilities.rst
index 0ee3ec5..6d87d02 100644
--- a/poky/documentation/dev-manual/vulnerabilities.rst
+++ b/poky/documentation/dev-manual/vulnerabilities.rst
@@ -130,7 +130,8 @@
 =================================
 
 If a CVE security issue impacts a software component, it can be fixed by updating to a newer
-version of the software component or by applying a patch. For Poky and OE-Core master branches, updating
+version of the software component, by applying a patch or by marking it as patched via
+:term:`CVE_STATUS` variable flag. For Poky and OE-Core master branches, updating
 to a newer software component release with fixes is the best option, but patches can be applied
 if releases are not yet available.
 
@@ -158,7 +159,8 @@
 in the generated reports.
 
 If analysis shows that the CVE issue does not impact the recipe due to configuration, platform,
-version or other reasons, the CVE can be marked as ``Ignored`` using the :term:`CVE_CHECK_IGNORE` variable.
+version or other reasons, the CVE can be marked as ``Ignored`` by using
+the :term:`CVE_STATUS` variable flag with appropriate reason which is mapped to ``Ignored``.
 As mentioned previously, if data in the CVE database is wrong, it is recommend to fix those
 issues in the CVE database directly.
 
@@ -175,6 +177,8 @@
 Don't forget that if multiple CVE IDs are found in the filename, only the last
 one is considered. Then, the code looks for ``CVE: CVE-ID`` lines in the patch
 file. The found CVE IDs are also considered as patched.
+Additionally ``CVE_STATUS`` variable flags are parsed for reasons mapped to ``Patched``
+and these are also considered as patched.
 
 Then, the code looks up all the CVE IDs in the NIST database for all the
 products defined in :term:`CVE_PRODUCT`. Then, for each found CVE:
@@ -182,8 +186,9 @@
 -  If the package name (:term:`PN`) is part of
    :term:`CVE_CHECK_SKIP_RECIPE`, it is considered as ``Patched``.
 
--  If the CVE ID is part of :term:`CVE_CHECK_IGNORE`, it is
-   set as ``Ignored``.
+-  If the CVE ID has status ``CVE_STATUS[<CVE ID>] = "ignored"`` or if it's set to
+   any reason which is mapped to status ``Ignored`` via ``CVE_CHECK_STATUSMAP``,
+   it is  set as ``Ignored``.
 
 -  If the CVE ID is part of the patched CVE for the recipe, it is
    already considered as ``Patched``.
diff --git a/poky/documentation/migration-guides/release-4.0.rst b/poky/documentation/migration-guides/release-4.0.rst
index 05c2705..1f08c88 100644
--- a/poky/documentation/migration-guides/release-4.0.rst
+++ b/poky/documentation/migration-guides/release-4.0.rst
@@ -17,3 +17,4 @@
    release-notes-4.0.8
    release-notes-4.0.9
    release-notes-4.0.10
+   release-notes-4.0.11
diff --git a/poky/documentation/migration-guides/release-4.2.rst b/poky/documentation/migration-guides/release-4.2.rst
index 2757f89..981600a 100644
--- a/poky/documentation/migration-guides/release-4.2.rst
+++ b/poky/documentation/migration-guides/release-4.2.rst
@@ -8,3 +8,4 @@
    migration-4.2
    release-notes-4.2
    release-notes-4.2.1
+   release-notes-4.2.2
diff --git a/poky/documentation/migration-guides/release-notes-4.0.11.rst b/poky/documentation/migration-guides/release-notes-4.0.11.rst
new file mode 100644
index 0000000..8a15884
--- /dev/null
+++ b/poky/documentation/migration-guides/release-notes-4.0.11.rst
@@ -0,0 +1,214 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release notes for Yocto-4.0.11 (Kirkstone)
+------------------------------------------
+
+Security Fixes in Yocto-4.0.11
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  cups: Fix :cve:`2023-32324`
+-  curl: Fix :cve:`2023-28319`, :cve:`2023-28320`, :cve:`2023-28321` and :cve:`2023-28322`
+-  git: Ignore :cve:`2023-25815`
+-  go: Fix :cve:`2023-24539` and :cve:`2023-24540`
+-  nasm: Fix :cve:`2022-46457`
+-  openssh: Fix :cve:`2023-28531`
+-  openssl: Fix :cve:`2023-1255` and :cve:`2023-2650`
+-  perl: Fix :cve:`2023-31484`
+-  python3-requests: Fix for :cve:`2023-32681`
+-  sysstat: Fix :cve:`2023-33204`
+-  vim: Fix :cve:`2023-2426`
+-  webkitgtk: fix :cve:`2022-42867`, :cve:`2022-46691`, :cve:`2022-46699` and :cve:`2022-46700`
+
+
+Fixes in Yocto-4.0.11
+~~~~~~~~~~~~~~~~~~~~~
+
+-  Revert "docs: conf.py: fix cve extlinks caption for sphinx <4.0"
+-  Revert "ipk: Decode byte data to string in manifest handling"
+-  avahi: fix D-Bus introspection
+-  build-appliance-image: Update to kirkstone head revision
+-  conf.py: add macro for Mitre CVE links
+-  conf: add nice level to the hash config ignred variables
+-  cpio: Fix wrong CRC with ASCII CRC for large files
+-  cve-update-nvd2-native: added the missing http import
+-  cve-update-nvd2-native: new CVE database fetcher
+-  dhcpcd: use git instead of tarballs
+-  e2fsprogs: fix ptest bug for second running
+-  gcc-runtime: Use static dummy libstdc++
+-  glibc: stable 2.35 branch updates (cbceb903c4d7)
+-  go.bbclass: don't use test to check output from ls
+-  gstreamer1.0: Upgrade to 1.20.6
+-  iso-codes: Upgrade to 4.15.0
+-  kernel-devicetree: allow specification of dtb directory
+-  kernel-devicetree: make shell scripts posix compliant
+-  kernel-devicetree: recursively search for dtbs
+-  kernel: don't force PAHOLE=false
+-  kmscube: Correct :term:`DEPENDS` to avoid overwrite
+-  lib/terminal.py: Add urxvt terminal
+-  license.bbclass: Include :term:`LICENSE` in the output when it fails to parse
+-  linux-yocto/5.10: Upgrade to v5.10.180
+-  linux-yocto/5.15: Upgrade to v5.15.113
+-  llvm: backport a fix for build with gcc-13
+-  maintainers.inc: Fix email address typo
+-  maintainers.inc: Move repo to unassigned
+-  migration-guides: add release notes for 4.0.10
+-  migration-guides: use new cve_mitre macro
+-  nghttp2: Deleted the entries for -client and -server, and removed a dependency on them from the main package.
+-  oeqa/selftest/cases/devtool.py: skip all tests require folder a git repo
+-  openssh: Remove BSD-4-clause contents completely from codebase
+-  openssl: Upgrade to 3.0.9
+-  overview-manual: concepts.rst: Fix a typo
+-  p11-kit: add native to :term:`BBCLASSEXTEND`
+-  package: enable recursion on file globs
+-  package_manager/ipk: fix config path generation in _create_custom_config()
+-  piglit: Add :term:`PACKAGECONFIG` for glx and opencl
+-  piglit: Add missing glslang dependencies
+-  piglit: Fix build time dependency
+-  poky.conf: bump version for 4.0.11
+-  profile-manual: fix blktrace remote usage instructions
+-  quilt: Fix merge.test race condition
+-  ref-manual: add clarification for :term:`SRCREV`
+-  selftest/reproducible: Allow native/cross reuse in test
+-  staging.bbclass: do not add extend_recipe_sysroot to prefuncs of prepare_recipe_sysroot
+-  systemd-networkd: backport fix for rm unmanaged wifi
+-  systemd-systemctl: fix instance template WantedBy symlink construction
+-  systemd-systemctl: support instance expansion in WantedBy
+-  uninative: Upgrade to 3.10 to support gcc 13
+-  uninative: Upgrade to 4.0 to include latest gcc 13.1.1
+-  vim: Upgrade to 9.0.1527
+-  waffle: Upgrade to 1.7.2
+-  weston: add xwayland to :term:`DEPENDS` for :term:`PACKAGECONFIG` xwayland
+
+
+Known Issues in Yocto-4.0.11
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- N/A
+
+
+Contributors to Yocto-4.0.11
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  Alexander Kanavin
+-  Andrew Jeffery
+-  Archana Polampalli
+-  Bhabu Bindu
+-  Bruce Ashfield
+-  C. Andy Martin
+-  Chen Qi
+-  Daniel Ammann
+-  Deepthi Hemraj
+-  Ed Beroset
+-  Eero Aaltonen
+-  Enrico Jörns
+-  Hannu Lounento
+-  Hitendra Prajapati
+-  Ian Ray
+-  Jan Luebbe
+-  Jan Vermaete
+-  Khem Raj
+-  Lee Chee Yang
+-  Lei Maohui
+-  Lorenzo Arena
+-  Marek Vasut
+-  Marta Rybczynska
+-  Martin Jansa
+-  Martin Siegumfeldt
+-  Michael Halstead
+-  Michael Opdenacker
+-  Ming Liu
+-  Narpat Mali
+-  Omkar Patil
+-  Pablo Saavedra
+-  Pavel Zhukov
+-  Peter Kjellerstedt
+-  Peter Marko
+-  Qiu Tingting
+-  Quentin Schulz
+-  Randolph Sapp
+-  Randy MacLeod
+-  Ranjitsinh Rathod
+-  Richard Purdie
+-  Riyaz Khan
+-  Sakib Sajal
+-  Sanjay Chitroda
+-  Soumya Sambu
+-  Steve Sakoman
+-  Thomas Roos
+-  Tom Hochstein
+-  Vivek Kumbhar
+-  Wang Mingyu
+-  Yogita Urade
+-  Zoltan Boszormenyi
+
+
+Repositories / Downloads for Yocto-4.0.11
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+poky
+
+-  Repository Location: :yocto_git:`/poky`
+-  Branch: :yocto_git:`kirkstone </poky/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.11 </poky/log/?h=yocto-4.0.11>`
+-  Git Revision: :yocto_git:`fc697fe87412b9b179ae3a68d266ace85bb1fcc6 </poky/commit/?id=fc697fe87412b9b179ae3a68d266ace85bb1fcc6>`
+-  Release Artefact: poky-fc697fe87412b9b179ae3a68d266ace85bb1fcc6
+-  sha: d42ab1b76b9d8ab164d86dc0882c908658f6b5be0742b13a71531068f6a5ee98
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/poky-fc697fe87412b9b179ae3a68d266ace85bb1fcc6.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/poky-fc697fe87412b9b179ae3a68d266ace85bb1fcc6.tar.bz2
+
+openembedded-core
+
+-  Repository Location: :oe_git:`/openembedded-core`
+-  Branch: :oe_git:`kirkstone </openembedded-core/log/?h=kirkstone>`
+-  Tag:  :oe_git:`yocto-4.0.11 </openembedded-core/log/?h=yocto-4.0.11>`
+-  Git Revision: :oe_git:`7949e786cf8e50f716ff1f1c4797136637205e0c </openembedded-core/commit/?id=7949e786cf8e50f716ff1f1c4797136637205e0c>`
+-  Release Artefact: oecore-7949e786cf8e50f716ff1f1c4797136637205e0c
+-  sha: 3bda3f7d15961bad5490faf3194709528591a97564b5eae3da7345b63be20334
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/oecore-7949e786cf8e50f716ff1f1c4797136637205e0c.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/oecore-7949e786cf8e50f716ff1f1c4797136637205e0c.tar.bz2
+
+meta-mingw
+
+-  Repository Location: :yocto_git:`/meta-mingw`
+-  Branch: :yocto_git:`kirkstone </meta-mingw/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.11 </meta-mingw/log/?h=yocto-4.0.11>`
+-  Git Revision: :yocto_git:`a90614a6498c3345704e9611f2842eb933dc51c1 </meta-mingw/commit/?id=a90614a6498c3345704e9611f2842eb933dc51c1>`
+-  Release Artefact: meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1
+-  sha: 49f9900bfbbc1c68136f8115b314e95d0b7f6be75edf36a75d9bcd1cca7c6302
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/meta-mingw-a90614a6498c3345704e9611f2842eb933dc51c1.tar.bz2
+
+meta-gplv2
+
+-  Repository Location: :yocto_git:`/meta-gplv2`
+-  Branch: :yocto_git:`kirkstone </meta-gplv2/log/?h=kirkstone>`
+-  Tag:  :yocto_git:`yocto-4.0.11 </meta-gplv2/log/?h=yocto-4.0.11>`
+-  Git Revision: :yocto_git:`d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a </meta-gplv2/commit/?id=d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a>`
+-  Release Artefact: meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a
+-  sha: c386f59f8a672747dc3d0be1d4234b6039273d0e57933eb87caa20f56b9cca6d
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/meta-gplv2-d2f8b5cdb285b72a4ed93450f6703ca27aa42e8a.tar.bz2
+
+bitbake
+
+-  Repository Location: :oe_git:`/bitbake`
+-  Branch: :oe_git:`2.0 </bitbake/log/?h=2.0>`
+-  Tag:  :oe_git:`yocto-4.0.11 </bitbake/log/?h=yocto-4.0.11>`
+-  Git Revision: :oe_git:`0c6f86b60cfba67c20733516957c0a654eb2b44c </bitbake/commit/?id=0c6f86b60cfba67c20733516957c0a654eb2b44c>`
+-  Release Artefact: bitbake-0c6f86b60cfba67c20733516957c0a654eb2b44c
+-  sha: 4caa94ee4d644017b0cc51b702e330191677f7d179018cbcec8b1793949ebc74
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.0.11/bitbake-0c6f86b60cfba67c20733516957c0a654eb2b44c.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.0.11/bitbake-0c6f86b60cfba67c20733516957c0a654eb2b44c.tar.bz2
+
+yocto-docs
+
+-  Repository Location: :yocto_git:`/yocto-docs`
+-  Branch: :yocto_git:`kirkstone </yocto-docs/log/?h=kirkstone>`
+-  Tag: :yocto_git:`yocto-4.0.11 </yocto-docs/log/?h=yocto-4.0.11>`
+-  Git Revision: :yocto_git:`6d16d2bde0aa32276a035ee49703e6eea7c7b29a </yocto-docs/commit/?id=6d16d2bde0aa32276a035ee49703e6eea7c7b29a>`
+
diff --git a/poky/documentation/migration-guides/release-notes-4.2.2.rst b/poky/documentation/migration-guides/release-notes-4.2.2.rst
new file mode 100644
index 0000000..74f2d0e
--- /dev/null
+++ b/poky/documentation/migration-guides/release-notes-4.2.2.rst
@@ -0,0 +1,330 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release notes for Yocto-4.2.2 (Mickledore)
+------------------------------------------
+
+Security Fixes in Yocto-4.2.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  binutils: Fix :cve:`2023-1972`
+-  cups: Fix :cve:`2023-32324`
+-  curl: Fix :cve:`2023-28319`, :cve:`2023-28320`, :cve:`2023-28321` and :cve:`2023-28322`
+-  dbus: Fix :cve:`2023-34969`
+-  git: Fix :cve:`2023-25652` and :cve:`2023-29007`
+-  git: Ignore :cve:`2023-25815`
+-  libwebp: Fix :cve:`2023-1999`
+-  libxml2: Fix :cve:`2023-28484` and :cve:`2023-29469`
+-  libxpm: Fix :cve:`2022-44617`
+-  ninja: Ignore :cve:`2021-4336`
+-  openssl: Fix :cve:`2023-0464`, :cve:`2023-0465`, :cve:`2023-0466`, :cve:`2023-1255` and :cve:`2023-2650`
+-  perl: Fix :cve:`2023-31484` and :cve:`2023-31486`
+-  sysstat: Fix :cve:`2023-33204`
+-  tiff: Fix :cve_mitre:`2023-25434`, :cve:`2023-26965` and :cve:`2023-2731`
+-  vim: Fix :cve:`2023-2426`
+
+
+Fixes in Yocto-4.2.2
+~~~~~~~~~~~~~~~~~~~~
+
+-  apr: Upgrade to 1.7.4
+-  avahi: fix D-Bus introspection
+-  babeltrace2: Always use BFD linker when building tests with ld-is-lld distro feature
+-  babeltrace2: Upgrade to 2.0.5
+-  baremetal-helloworld: Update :term:`SRCREV` to fix entry addresses for ARM architectures
+-  bind: Upgrade to 9.18.15
+-  binutils: move packaging of gprofng static lib into common .inc
+-  binutils: package static libs from gprofng
+-  binutils: stable 2.40 branch updates (7343182dd1)
+-  bitbake.conf: add unzstd in :term:`HOSTTOOLS`
+-  bitbake: runqueue: Fix deferred task/multiconfig race issue
+-  bno_plot.py, btt_plot.py: Ask for python3 specifically
+-  build-appliance-image: Update to mickledore head revision
+-  busybox: Upgrade to 1.36.1
+-  cmake.bbclass: do not search host paths for find_program()
+-  conf: add nice level to the hash config ignred variables
+-  connman: fix warning by specifying runstatedir at configure time
+-  cpio: Run ptests under ptest user
+-  dbus: Upgrade to 1.14.8
+-  devtool: Fix the wrong variable in srcuri_entry
+-  dnf: only write the log lock to root for native dnf
+-  docs: bsp-guide: bsp: fix typo
+-  dpkg: Upgrade to v1.21.22
+-  e2fsprogs: Fix error SRCDIR when using usrmerge :term:`DISTRO_FEATURES`
+-  e2fsprogs: fix ptest bug for second running
+-  ell: Upgrade to 0.57
+-  expect: Add ptest support
+-  fribidi: Upgrade to 1.0.13
+-  gawk: Upgrade to 5.2.2
+-  gcc : upgrade to v12.3
+-  gdb: fix crashes when debugging threads with Arm Pointer Authentication enabled
+-  gdb: Upgrade to 13.2
+-  git: Upgrade to 2.39.3
+-  glib-networking: use correct error code in ptest
+-  glibc: Pass linker choice via compiler flags
+-  glibc: stable 2.37 branch updates.
+-  gnupg: Upgrade to 2.4.2
+-  go.bbclass: don't use test to check output from ls
+-  go: Upgrade to 1.20.5
+-  go: Use -no-pie to build target cgo
+-  gobject-introspection: remove obsolete :term:`DEPENDS`
+-  grub: submit determinism.patch upstream
+-  gstreamer1.0: Upgrade to 1.22.3
+-  gtk4: Upgrade to 4.10.4
+-  image-live.bbclass: respect :term:`IMAGE_MACHINE_SUFFIX`
+-  image_types: Fix reproducible builds for initramfs and UKI img
+-  inetutils: remove unused patch files
+-  ipk: Revert Decode byte data to string in manifest handling
+-  iso-codes: Upgrade to 4.15.0
+-  kernel: don't force PAHOLE=false
+-  kmod: remove unused ptest.patch
+-  kmscube: Correct :term:`DEPENDS` to avoid overwrite
+-  layer.conf: Add missing dependency exclusion
+-  lib/terminal.py: Add urxvt terminal
+-  libbsd: Add correct license for all packages
+-  libdnf: Upgrade to 0.70.1
+-  libgcrypt: Upgrade to 1.10.2
+-  libgloss: remove unused patch file
+-  libmicrohttpd: Upgrade to 0.9.77
+-  libmodule-build-perl: Upgrade to 0.4234
+-  libx11: remove unused patch and :term:`FILESEXTRAPATHS`
+-  libx11: Upgrade to 1.8.5
+-  libxfixes: Upgrade to v6.0.1
+-  libxft: Upgrade to 2.3.8
+-  libxi: Upgrade to v1.8.1
+-  libxml2: Do not use lld linker when building with tests on rv64
+-  libxml2: Upgrade to 2.10.4
+-  libxpm: Upgrade to 3.5.16
+-  linux-firmware: Upgrade to 20230515
+-  linux-yocto/5.15: cfg: fix DECNET configuration warning
+-  linux-yocto/5.15: Upgrade to v5.15.118
+-  linux-yocto/6.1: fix intermittent x86 boot hangs
+-  linux-yocto/6.1: Upgrade to v6.1.35
+-  linux-yocto: move build / debug dependencies to .inc
+-  logrotate: Do not create logrotate.status file
+-  maintainers.inc: correct Carlos Rafael Giani's email address
+-  maintainers.inc: correct unassigned entries
+-  maintainers.inc: unassign Adrian Bunk from wireless-regdb
+-  maintainers.inc: unassign Alistair Francis from opensbi
+-  maintainers.inc: unassign Andreas Müller from itstool entry
+-  maintainers.inc: unassign Chase Qi from libc-test
+-  maintainers.inc: unassign Oleksandr Kravchuk from python3 and all other items
+-  maintainers.inc: unassign Pascal Bach from cmake entry
+-  maintainers.inc: unassign Ricardo Neri from ovmf
+-  maintainers.inc: update version for gcc-source
+-  maintainers.inc: unassign Richard Weinberger from erofs-utils entry
+-  meta: depend on autoconf-archive-native, not autoconf-archive
+-  meta: lib: oe: npm_registry: Add more safe caracters
+-  migration-guides: add release notes for 4.2.1
+-  minicom: remove unused patch files
+-  mobile-broadband-provider-info: Upgrade to 20230416
+-  musl: Correct :term:`SRC_URI`
+-  oeqa/selftest/bbtests: add non-existent prefile/postfile tests
+-  oeqa/selftest/cases/devtool.py: skip all tests require folder a git repo
+-  oeqa: adding selftest-hello and use it to speed up tests
+-  openssh: Remove BSD-4-clause contents completely from codebase
+-  openssl: fix building on riscv32
+-  openssl: Upgrade to 3.1.1
+-  overview-manual: concepts.rst: Fix a typo
+-  parted: Add missing libuuid to linker cmdline for libparted-fs-resize.so
+-  perf: Make built-in libtraceevent plugins cohabit with external libtraceevent
+-  piglit: Add missing glslang dependencies
+-  piglit: Fix c++11-narrowing warnings in tests
+-  pkgconf: Upgrade to 1.9.5
+-  pm-utils: fix multilib conflictions
+-  poky.conf: bump version for 4.2.2 release
+-  populate_sdk_base.bbclass: respect :term:`MLPREFIX` for ptest-pkgs's ptest-runner
+-  profile-manual: fix blktrace remote usage instructions
+-  psmisc: Set :term:`ALTERNATIVE` for pstree to resolve conflict with busybox
+-  ptest-runner: Ensure data writes don't race
+-  ptest-runner: Pull in "runner: Remove threads and mutexes" fix
+-  ptest-runner: Pull in sync fix to improve log warnings
+-  python3-bcrypt: Use BFD linker when building tests
+-  python3-numpy: remove NPY_INLINE, use inline instead
+-  qemu: a pending patch was submitted and accepted upstream
+-  qemu: remove unused qemu-7.0.0-glibc-2.36.patch
+-  qemurunner.py: fix error message about qmp
+-  qemurunner: avoid leaking server_socket
+-  ref-manual: add clarification for :term:`SRCREV`
+-  ref-manual: classes.rst: fix typo
+-  rootfs-postcommands.bbclass: add post func remove_unused_dnf_log_lock
+-  rpcsvc-proto: Upgrade to 1.4.4
+-  rpm: drop unused 0001-Rip-out-partial-support-for-unused-MD2-and-RIPEMD160.patch
+-  rpm: Upgrade to 4.18.1
+-  rpm: write macros under libdir
+-  runqemu-gen-tapdevs: Refactoring
+-  runqemu-ifupdown/get-tapdevs: Add support for ip tuntap
+-  scripts/runqemu: allocate unfsd ports in a way that doesn't race or clash with unrelated processes
+-  scripts/runqemu: split lock dir creation into a reusable function
+-  scripts: fix buildstats diff/summary hard bound to host python3
+-  sdk.py: error out when moving file fails
+-  sdk.py: fix moving dnf contents
+-  selftest/license: Exclude from world
+-  selftest/reproducible: Allow native/cross reuse in test
+-  serf: Upgrade to 1.3.10
+-  staging.bbclass: do not add extend_recipe_sysroot to prefuncs of prepare_recipe_sysroot
+-  strace: Disable failing test
+-  strace: Merge two similar patches
+-  strace: Update patches/tests with upstream fixes
+-  sysfsutils: fetch a supported fork from github
+-  systemd-systemctl: support instance expansion in WantedBy
+-  systemd: Drop a backport
+-  tiff: Remove unused patch from tiff
+-  uninative: Upgrade to 3.10 to support gcc 13
+-  uninative: Upgrade to 4.0 to include latest gcc 13.1.1
+-  unzip: fix configure check for cross compilation
+-  unzip: remove hardcoded LARGE_FILE_SUPPORT
+-  useradd-example: package typo correction
+-  useradd-staticids.bbclass: improve error message
+-  v86d: Improve kernel dependency
+-  vim: Upgrade to 9.0.1527
+-  weston-init: add profile to point users to global socket
+-  weston-init: add the weston user to the wayland group
+-  weston-init: add weston user to the render group
+-  weston-init: fix the mixed indentation
+-  weston-init: guard against systemd configs
+-  weston-init: make sure the render group exists
+-  wget: Upgrade to 1.21.4
+-  wireless-regdb: Upgrade to 2023.05.03
+-  xdpyinfo: Upgrade to 1.3.4
+-  xf86-video-intel: Use the HTTPS protocol to fetch the Git repositories
+-  xinput: upgrade to v1.6.4
+-  xwininfo: upgrade to v1.1.6
+-  xz: Upgrade to 5.4.3
+-  yocto-bsps: update to v5.15.106
+-  zip: fix configure check by using _Static_assert
+-  zip: remove unnecessary LARGE_FILE_SUPPORT CLFAGS
+
+
+Known Issues in Yocto-4.2.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- N/A
+
+
+Contributors to Yocto-4.2.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  Alberto Planas
+-  Alejandro Hernandez Samaniego
+-  Alexander Kanavin
+-  Andrej Valek
+-  Andrew Jeffery
+-  Anuj Mittal
+-  Archana Polampalli
+-  BELOUARGA Mohamed
+-  Bruce Ashfield
+-  Changqing Li
+-  Charlie Wu
+-  Chen Qi
+-  Chi Xu
+-  Daniel Ammann
+-  Deepthi Hemraj
+-  Denys Dmytriyenko
+-  Dmitry Baryshkov
+-  Ed Beroset
+-  Eero Aaltonen
+-  Fabien Mahot
+-  Frieder Paape
+-  Frieder Schrempf
+-  Hannu Lounento
+-  Ian Ray
+-  Jermain Horsman
+-  Jörg Sommer
+-  Kai Kang
+-  Khem Raj
+-  Lee Chee Yang
+-  Lorenzo Arena
+-  Marc Ferland
+-  Markus Volk
+-  Martin Jansa
+-  Michael Halstead
+-  Mikko Rapeli
+-  Mingli Yu
+-  Natasha Bailey
+-  Nikhil R
+-  Pablo Saavedra
+-  Paul Gortmaker
+-  Pavel Zhukov
+-  Peter Kjellerstedt
+-  Qiu Tingting
+-  Quentin Schulz
+-  Randolph Sapp
+-  Randy MacLeod
+-  Ranjitsinh Rathod
+-  Richard Purdie
+-  Riyaz Khan
+-  Ross Burton
+-  Sakib Sajal
+-  Sanjay Chitroda
+-  Siddharth Doshi
+-  Soumya Sambu
+-  Steve Sakoman
+-  Sudip Mukherjee
+-  Sundeep KOKKONDA
+-  Thomas Roos
+-  Tim Orling
+-  Tom Hochstein
+-  Trevor Gamblin
+-  Ulrich Ölmann
+-  Wang Mingyu
+-  Xiangyu Chen
+
+
+Repositories / Downloads for Yocto-4.2.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+poky
+
+-  Repository Location: :yocto_git:`/poky`
+-  Branch: :yocto_git:`mickledore </poky/log/?h=mickledore>`
+-  Tag:  :yocto_git:`yocto-4.2.2 </poky/log/?h=yocto-4.2.2>`
+-  Git Revision: :yocto_git:`6e17b3e644ca15b8b4afd071ccaa6f172a0e681a </poky/commit/?id=6e17b3e644ca15b8b4afd071ccaa6f172a0e681a>`
+-  Release Artefact: poky-6e17b3e644ca15b8b4afd071ccaa6f172a0e681a
+-  sha: c0b4dadcf00b97d866dd4cc2f162474da2c3e3289badaa42a978bff1d479af99
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.2.2/poky-6e17b3e644ca15b8b4afd071ccaa6f172a0e681a.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.2.2/poky-6e17b3e644ca15b8b4afd071ccaa6f172a0e681a.tar.bz2
+
+openembedded-core
+
+-  Repository Location: :oe_git:`/openembedded-core`
+-  Branch: :oe_git:`mickledore </openembedded-core/log/?h=mickledore>`
+-  Tag:  :oe_git:`yocto-4.2.2 </openembedded-core/log/?h=yocto-4.2.2>`
+-  Git Revision: :oe_git:`3ef283e02b0b91daf64c3a589e1f6bb68d4f5aa1 </openembedded-core/commit/?id=3ef283e02b0b91daf64c3a589e1f6bb68d4f5aa1>`
+-  Release Artefact: oecore-3ef283e02b0b91daf64c3a589e1f6bb68d4f5aa1
+-  sha: d2fd127f46e626fa4456c193af3dbd25d4b2565db59bc23be69a3b2dd4febed5
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.2.2/oecore-3ef283e02b0b91daf64c3a589e1f6bb68d4f5aa1.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.2.2/oecore-3ef283e02b0b91daf64c3a589e1f6bb68d4f5aa1.tar.bz2
+
+meta-mingw
+
+-  Repository Location: :yocto_git:`/meta-mingw`
+-  Branch: :yocto_git:`mickledore </meta-mingw/log/?h=mickledore>`
+-  Tag:  :yocto_git:`yocto-4.2.2 </meta-mingw/log/?h=yocto-4.2.2>`
+-  Git Revision: :yocto_git:`4608d0bb7e47c52b8f6e9be259bfb1716fda9fd6 </meta-mingw/commit/?id=4608d0bb7e47c52b8f6e9be259bfb1716fda9fd6>`
+-  Release Artefact: meta-mingw-4608d0bb7e47c52b8f6e9be259bfb1716fda9fd6
+-  sha: fcbae0dedb363477492b86b8f997e06f995793285535b24dc66038845483eeef
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.2.2/meta-mingw-4608d0bb7e47c52b8f6e9be259bfb1716fda9fd6.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.2.2/meta-mingw-4608d0bb7e47c52b8f6e9be259bfb1716fda9fd6.tar.bz2
+
+bitbake
+
+-  Repository Location: :oe_git:`/bitbake`
+-  Branch: :oe_git:`2.4 </bitbake/log/?h=2.4>`
+-  Tag:  :oe_git:`yocto-4.2.2 </bitbake/log/?h=yocto-4.2.2>`
+-  Git Revision: :oe_git:`08033b63ae442c774bd3fce62844eac23e6882d7 </bitbake/commit/?id=08033b63ae442c774bd3fce62844eac23e6882d7>`
+-  Release Artefact: bitbake-08033b63ae442c774bd3fce62844eac23e6882d7
+-  sha: 1d070c133bfb6502ac04befbf082cbfda7582c8b1c48296a788384352e5061fd
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.2.2/bitbake-08033b63ae442c774bd3fce62844eac23e6882d7.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.2.2/bitbake-08033b63ae442c774bd3fce62844eac23e6882d7.tar.bz2
+
+yocto-docs
+
+-  Repository Location: :yocto_git:`/yocto-docs`
+-  Branch: :yocto_git:`mickledore </yocto-docs/log/?h=mickledore>`
+-  Tag: :yocto_git:`yocto-4.2.2 </yocto-docs/log/?h=yocto-4.2.2>`
+-  Git Revision: :yocto_git:`54d849d259a332389beea159d789f8fa92871475 </yocto-docs/commit/?id=54d849d259a332389beea159d789f8fa92871475>`
+
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index e555a80..a7819d5 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -517,10 +517,10 @@
 ``CVE-ID.patch``, e.g. ``CVE-2019-20633.patch``, in the :term:`SRC_URI` and using
 CVE metadata of format ``CVE: CVE-ID`` in the commit message of the patch file.
 
-If the recipe lists the ``CVE-ID`` in :term:`CVE_CHECK_IGNORE` variable, then the CVE state is reported
-as ``Ignored``. Multiple CVEs can be listed separated by spaces. Example::
+If the recipe adds ``CVE-ID`` as flag of the :term:`CVE_STATUS` variable with status
+mapped to ``Ignored``, then the CVE state is reported as ``Ignored``::
 
-   CVE_CHECK_IGNORE += "CVE-2020-29509 CVE-2020-29511"
+   CVE_STATUS[CVE-2020-15523] = "not-applicable-platform: Issue only applies on Windows"
 
 If CVE check reports that a recipe contains false positives or false negatives, these may be
 fixed in recipes by adjusting the CVE product name using :term:`CVE_PRODUCT` and :term:`CVE_VERSION` variables.
@@ -1599,8 +1599,8 @@
 device trees.
 
 To create a FIT image, it is required that :term:`KERNEL_CLASSES`
-is set to include ":ref:`ref-classes-kernel-fitimage`" and :term:`KERNEL_IMAGETYPE`
-is set to "fitImage".
+is set to include ":ref:`ref-classes-kernel-fitimage`" and one of :term:`KERNEL_IMAGETYPE`,
+:term:`KERNEL_ALT_IMAGETYPE` or :term:`KERNEL_IMAGETYPES` to include "fitImage".
 
 The options for the device tree compiler passed to ``mkimage -D``
 when creating the FIT image are specified using the
@@ -1623,9 +1623,9 @@
 :ref:`ref-classes-kernel-fitimage` and the RAM disk in FIT is optional.
 The address where the RAM disk image is to be loaded by U-Boot
 is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by
-:term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to FIT image when
-:term:`INITRAMFS_IMAGE` is specified and that :term:`INITRAMFS_IMAGE_BUNDLE`
-is set to 0.
+:term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to the FIT image when
+:term:`INITRAMFS_IMAGE` is specified and requires that :term:`INITRAMFS_IMAGE_BUNDLE`
+is not set to 1.
 
 Only a single :term:`Initramfs` bundle can be added to the FIT image created by
 :ref:`ref-classes-kernel-fitimage` and the :term:`Initramfs` bundle in FIT is optional.
@@ -1633,7 +1633,7 @@
 in the same binary (example: zImage-initramfs-:term:`MACHINE`.bin).
 When the kernel is copied to RAM and executed, it unpacks the :term:`Initramfs` root filesystem.
 The :term:`Initramfs` bundle can be enabled when :term:`INITRAMFS_IMAGE`
-is specified and that :term:`INITRAMFS_IMAGE_BUNDLE` is set to 1.
+is specified and requires that :term:`INITRAMFS_IMAGE_BUNDLE` is set to 1.
 The address where the :term:`Initramfs` bundle is to be loaded by U-boot is specified
 by :term:`UBOOT_LOADADDRESS` and the entrypoint by :term:`UBOOT_ENTRYPOINT`.
 
@@ -1644,14 +1644,14 @@
 U-boot :ref:`ref-tasks-install` task to copy the script to sysroot.
 So the script can be included in the FIT image by the :ref:`ref-classes-kernel-fitimage`
 class. At run-time, U-boot CONFIG_BOOTCOMMAND define can be configured to
-load the boot script from the FIT image and executes it.
+load the boot script from the FIT image and execute it.
 
-The FIT image generated by :ref:`ref-classes-kernel-fitimage` class is signed when the
+The FIT image generated by the :ref:`ref-classes-kernel-fitimage` class is signed when the
 variables :term:`UBOOT_SIGN_ENABLE`, :term:`UBOOT_MKIMAGE_DTCOPTS`,
 :term:`UBOOT_SIGN_KEYDIR` and :term:`UBOOT_SIGN_KEYNAME` are set
 appropriately. The default values used for :term:`FIT_HASH_ALG` and
 :term:`FIT_SIGN_ALG` in :ref:`ref-classes-kernel-fitimage` are "sha256" and
-"rsa2048" respectively. The keys for signing fitImage can be generated using
+"rsa2048" respectively. The keys for signing the FIT image can be generated using
 the :ref:`ref-classes-kernel-fitimage` class when both :term:`FIT_GENERATE_KEYS` and
 :term:`UBOOT_SIGN_ENABLE` are set to "1".
 
diff --git a/poky/documentation/ref-manual/images.rst b/poky/documentation/ref-manual/images.rst
index d3aeb08..0f6d6bd 100644
--- a/poky/documentation/ref-manual/images.rst
+++ b/poky/documentation/ref-manual/images.rst
@@ -14,15 +14,17 @@
    Building an image without GNU General Public License Version 3
    (GPLv3), GNU Lesser General Public License Version 3 (LGPLv3), and
    the GNU Affero General Public License Version 3 (AGPL-3.0) components
-   is only supported for minimal and base images. Furthermore, if you
-   are going to build an image using non-GPLv3 and similarly licensed
-   components, you must make the following changes in the ``local.conf``
-   file before using the BitBake command to build the minimal or base
-   image:
+   is only tested for core-image-minimal image. Furthermore, if you would like to
+   build an image and verify that it does not include GPLv3 and similarly licensed
+   components, you must make the following changes in the image recipe
+   file before using the BitBake command to build the image:
 
-   #. Comment out the :term:`EXTRA_IMAGE_FEATURES` line
+       INCOMPATIBLE_LICENSE = "GPL-3.0* LGPL-3.0*"
 
-   #. Set :term:`INCOMPATIBLE_LICENSE` to "GPL-3.0* LGPL-3.0* AGPL-3.0*"
+   Alternatively, you can adjust ``local.conf`` file, repeating and adjusting the line
+   for all images where the license restriction must apply:
+
+       INCOMPATIBLE_LICENSE:pn-your-image-name = "GPL-3.0* LGPL-3.0*"
 
 From within the ``poky`` Git repository, you can use the following
 command to display the list of directories within the :term:`Source Directory`
diff --git a/poky/documentation/ref-manual/release-process.rst b/poky/documentation/ref-manual/release-process.rst
index 50e7d39..c861fea 100644
--- a/poky/documentation/ref-manual/release-process.rst
+++ b/poky/documentation/ref-manual/release-process.rst
@@ -96,22 +96,21 @@
 some specific ones are now supported for a longer period by the Yocto
 Project, and are called Long Term Support (:term:`LTS`) releases.
 
-This started with version 3.1 ("Dunfell"), released in April 2020, that
-the project committed to supporting until the next :term:`LTS` release was out.
-This next :term:`LTS` release, version 4.0 ("Kirkstone"), was released in May 2022
-and offered with two years of support too.
-
-However, as an experiment, support for "Dunfell" was extended to four years, until
-April 2024, therefore offering more stability to projects and leaving more time
-to upgrade to the latest :term:`LTS` release. The project hasn't made any commitment to
-extending "Kirkstone" support too, as this will also depend on available funding
-for such an effort.
-
 When significant issues are found, :term:`LTS` releases allow to publish
 fixes not only for the current stable release, but also to the
 :term:`LTS` releases that are still supported. Older stable releases which
 have reached their End of Life (EOL) won't receive such updates.
 
+This started with version 3.1 ("Dunfell"), released in April 2020, which
+the project initially committed to supporting for two years, but this duration
+was later extended to four years. Similarly, the following :term:`LTS` release,
+version 4.0 ("Kirkstone"), was released two years later in May 2022 and the
+project committed to supporting it for four years too.
+
+Therefore, a new :term:`LTS` release is made every two years and is supported
+for four years. This offers more stability to project users and leaves more
+time to upgrade to the following :term:`LTS` release.
+
 See :yocto_wiki:`/Stable_Release_and_LTS` for details about the management
 of stable and :term:`LTS` releases.
 
diff --git a/poky/documentation/ref-manual/svg/releases.svg b/poky/documentation/ref-manual/svg/releases.svg
index d41edc1..e7d5c6d 100644
--- a/poky/documentation/ref-manual/svg/releases.svg
+++ b/poky/documentation/ref-manual/svg/releases.svg
@@ -2,9 +2,9 @@
 <svg
    version="1.1"
    id="svg2"
-   width="1175.0006"
-   height="568.85858"
-   viewBox="0 0 1175.0006 568.85856"
+   width="2040.0006"
+   height="624.30518"
+   viewBox="0 0 2040.0006 624.30515"
    sodipodi:docname="releases.svg"
    inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
@@ -14,6 +14,8 @@
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:cc="http://creativecommons.org/ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
+  <title
+     id="title8568">Yocto Project Release Timeline</title>
   <metadata
      id="metadata8">
     <rdf:RDF>
@@ -22,7 +24,30 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <cc:license
+           rdf:resource="http://artlibre.org/licence/lal" />
+        <dc:title>Yocto Project Release Timeline</dc:title>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>The Yocto Project</dc:title>
+          </cc:Agent>
+        </dc:creator>
       </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#Notice" />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#Attribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+        <cc:requires
+           rdf:resource="http://creativecommons.org/ns#ShareAlike" />
+      </cc:License>
     </rdf:RDF>
   </metadata>
   <defs
@@ -383,9 +408,9 @@
      inkscape:window-height="1016"
      id="namedview4"
      showgrid="true"
-     inkscape:zoom="2.0466562"
-     inkscape:cx="450.4909"
-     inkscape:cy="286.56498"
+     inkscape:zoom="0.51166405"
+     inkscape:cx="-43.974166"
+     inkscape:cy="311.72798"
      inkscape:window-x="1994"
      inkscape:window-y="27"
      inkscape:window-maximized="1"
@@ -401,29 +426,65 @@
     <inkscape:grid
        type="xygrid"
        id="grid1257"
-       originx="-289.99935"
-       originy="269.99997" />
+       originx="-289.99936"
+       originy="325" />
   </sodipodi:namedview>
   <g
      inkscape:groupmode="layer"
      inkscape:label="Image"
      id="g10"
-     transform="translate(-289.99935,270)">
+     transform="translate(-289.99936,325.00004)">
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 1080,220.00002 V -240 v 0 0"
+       d="m 1080,220.00003 v -515.00007 0 0"
        id="path207708" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 1200,220.00002 V -240 v 0 0"
+       d="m 1200,220.00003 v -515.00007 0 0"
        id="path207708-4" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 1320,220.00002 V -240 v 0 0"
+       d="m 1320,220.00003 v -515.00007 0 0"
        id="path207708-4-3" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 960,220.00002 V -240 v 0 0"
+       d="m 1440,219.99998 v -515.00002 0 0"
+       id="path207708-4-3-6" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1560,219.99998 v -515.00001 0 0"
+       id="path207708-4-3-6-2" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1680,219.99998 v -515.00002 0 0"
+       id="path207708-4-3-6-2-8" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1800,219.99998 v -515.00002 0 0"
+       id="path207708-4-3-6-2-8-4" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1920,219.99998 v -515.00002 0 0"
+       id="path207708-4-3-6-2-8-4-3" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 2040,219.99997 v -460.00002 0 0"
+       id="path207708-4-3-6-2-8-4-3-8" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 2040,219.99998 v -515.00002 0 0"
+       id="path207708-4-3-6-2-8-4-3-8-0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 2159.954,219.99997 v -514.99999 0 0"
+       id="path207708-4-3-6-2-8-4-3-8-4" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 2280,219.99997 v -514.99999 0 0"
+       id="path207708-4-3-6-2-8-4-3-8-4-0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 960,220.00003 v -515.00007 0 0"
        id="path207708-9" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
@@ -431,23 +492,23 @@
        id="path207708-9-6" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 840,220.00002 V -240 v 0 0"
+       d="m 840,220.00002 v -515.00004 0 0"
        id="path207708-9-6-2" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 720,220.00002 V -240 v 0 0"
+       d="m 720,220.00003 v -515.00007 0 0"
        id="path207708-9-6-2-5" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 600,220.00002 V -240 v 0 0"
+       d="m 600,220.00003 v -515.00007 0 0"
        id="path207708-9-6-2-5-9" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 480,220.00002 V -240 v 0 0"
+       d="m 480,220.00003 v -515.00007 0 0"
        id="path207708-9-6-2-5-9-0" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 360,220.00002 V -240 v 0 0"
+       d="m 360,220.00003 v -515.00007 0 0"
        id="path207708-9-6-2-5-9-0-5" />
     <text
        xml:space="preserve"
@@ -482,7 +543,7 @@
     <rect
        style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
        id="rect917-0-0"
-       width="960.00006"
+       width="980"
        height="45.000004"
        x="360"
        y="154.99997"
@@ -524,7 +585,7 @@
          id="tspan957-2-8-6">Gatesgarth</tspan><tspan
          sodipodi:role="line"
          x="534.10651"
-         y="136.9464"
+         y="136.94638"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
          id="tspan10317-2">3.2</tspan></text>
     <rect
@@ -586,7 +647,7 @@
     <rect
        style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
        id="rect917-0-0-4-4-9-4-5"
-       width="140.00002"
+       width="140.00003"
        height="45.000004"
        x="1100"
        y="-175.00003"
@@ -607,36 +668,63 @@
          y="-137.50214"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
          id="tspan10317-2-9-1-4">4.2</tspan></text>
+    <g
+       id="g32107">
+      <rect
+         style="opacity:0.75;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
+         id="rect917-0-0-4-4-9-4-5-3"
+         width="140.00014"
+         height="45.000004"
+         x="1199.9999"
+         y="-229.99998"
+         ry="2.2558987" />
+      <text
+         xml:space="preserve"
+         style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         x="1247.2329"
+         y="-210.32925"
+         id="text1185-3-55-4-0-0-0-1-1"><tspan
+           sodipodi:role="line"
+           x="1247.2329"
+           y="-210.32925"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+           id="tspan957-2-8-6-3-9-7-4">Nanbield</tspan><tspan
+           sodipodi:role="line"
+           x="1247.2329"
+           y="-192.33258"
+           style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
+           id="tspan10317-2-9-1-4-6">4.3</tspan></text>
+    </g>
     <rect
        style="opacity:0.75;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
-       id="rect917-0-0-4-4-9-4-5-3"
-       width="140.00014"
+       id="rect917-0-0-4-4-9-4-5-3-9"
+       width="979.99994"
        height="45.000004"
-       x="1199.9999"
-       y="-229.99998"
+       x="1320"
+       y="-285.00003"
        ry="2.2558987" />
     <text
        xml:space="preserve"
        style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#fffefe;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="1247.2329"
-       y="-210.32925"
-       id="text1185-3-55-4-0-0-0-1-1"><tspan
+       x="1373.233"
+       y="-265.32928"
+       id="text1185-3-55-4-0-0-0-1-1-6"><tspan
          sodipodi:role="line"
-         x="1247.2329"
-         y="-210.32925"
+         x="1373.233"
+         y="-265.32928"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
-         id="tspan957-2-8-6-3-9-7-4">Nanbield</tspan><tspan
+         id="tspan957-2-8-6-3-9-7-4-2">Scarthgap</tspan><tspan
          sodipodi:role="line"
-         x="1247.2329"
-         y="-192.33258"
+         x="1373.233"
+         y="-247.33261"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans Bold';text-align:center;text-anchor:middle;fill:#fffefe;fill-opacity:1;stroke:none"
-         id="tspan10317-2-9-1-4-6">4.3</tspan></text>
+         id="tspan10317-2-9-1-4-6-5">4.4</tspan></text>
     <rect
        style="fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-opacity:1"
        id="rect917-0-0-4-4-9-9"
-       width="480.00006"
+       width="960.00012"
        height="45.000004"
-       x="860"
+       x="859.99994"
        y="-64.999992"
        ry="2.2558987" />
     <text
@@ -673,7 +761,7 @@
          id="tspan10317-2-9-8">3.3</tspan></text>
     <g
        id="g1125-0"
-       transform="matrix(0.42240595,0,0,0.41654472,354.16682,-355.15199)"
+       transform="matrix(0.42240595,0,0,0.41654472,354.53445,-399.96314)"
        style="stroke:none;stroke-width:2.38399">
       <rect
          style="opacity:1;fill:#333333;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:4.76797;stroke-opacity:1"
@@ -777,6 +865,38 @@
          id="tspan49906">2023</tspan></text>
     <text
        xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1439.3904"
+       y="249.86044"
+       id="text1185-9-7-1-1-89"><tspan
+         sodipodi:role="line"
+         x="1439.3904"
+         y="249.86044"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-7">Oct.</tspan><tspan
+         sodipodi:role="line"
+         x="1439.3904"
+         y="267.85712"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-76">2024</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1679.3094"
+       y="250.58356"
+       id="text1185-9-7-1-1-89-6"><tspan
+         sodipodi:role="line"
+         x="1679.3094"
+         y="250.58356"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-7-8">Oct.</tspan><tspan
+         sodipodi:role="line"
+         x="1679.3094"
+         y="268.58023"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-76-0">2025</tspan></text>
+    <text
+       xml:space="preserve"
        style="font-weight:bold;font-size:6.66667px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        x="849.49744"
        y="61.106953"
@@ -799,64 +919,64 @@
     <text
        xml:space="preserve"
        style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="972.71832"
-       y="260.21216"
+       x="959.52008"
+       y="250.67822"
        id="text1185-9-7-1-1-0-7"><tspan
          sodipodi:role="line"
-         x="972.71832"
-         y="260.21216"
+         x="959.52008"
+         y="250.67822"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan31345-42-7">Oct.</tspan><tspan
          sodipodi:role="line"
-         x="972.71832"
-         y="278.20883"
+         x="959.52008"
+         y="268.6749"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan49906-9-6">2022</tspan></text>
     <text
        xml:space="preserve"
        style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="721.13617"
+       x="719.13617"
        y="250.21216"
        id="text1185-9-7-1-1-2"><tspan
          sodipodi:role="line"
-         x="721.13617"
+         x="719.13617"
          y="250.21216"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan31345-1">Oct.</tspan><tspan
          sodipodi:role="line"
-         x="721.13617"
+         x="719.13617"
          y="268.20883"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan49906-5">2021</tspan></text>
     <text
        xml:space="preserve"
        style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="485.04486"
+       x="478.82367"
        y="250.21216"
        id="text1185-9-7-1-1-80"><tspan
          sodipodi:role="line"
-         x="485.04486"
+         x="478.82367"
          y="250.21216"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan31345-5">Oct.</tspan><tspan
          sodipodi:role="line"
-         x="485.04486"
+         x="478.82367"
          y="268.20883"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan49906-6">2020</tspan></text>
     <text
        xml:space="preserve"
        style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="360.96921"
+       x="361.81961"
        y="250.07544"
        id="text1185-9-7-1-1-8"><tspan
          sodipodi:role="line"
-         x="360.96921"
+         x="361.81961"
          y="250.07544"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan31345-4">Apr.</tspan><tspan
          sodipodi:role="line"
-         x="360.96921"
+         x="361.81961"
          y="268.07211"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan49906-7">2020</tspan></text>
@@ -879,22 +999,54 @@
     <text
        xml:space="preserve"
        style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="1317.4003"
+       x="1321.8608"
        y="250.07544"
        id="text1185-9-7-1-1-8-1-0"><tspan
          sodipodi:role="line"
-         x="1317.4003"
+         x="1321.8608"
          y="250.07544"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan31345-4-0-4">Apr.</tspan><tspan
          sodipodi:role="line"
-         x="1317.4003"
+         x="1321.8608"
          y="268.07211"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan49906-7-3-8">2024</tspan></text>
     <text
        xml:space="preserve"
        style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1561.8163"
+       y="249.66977"
+       id="text1185-9-7-1-1-8-1-0-4"><tspan
+         sodipodi:role="line"
+         x="1561.8163"
+         y="249.66977"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4-0-4-81">Apr.</tspan><tspan
+         sodipodi:role="line"
+         x="1561.8163"
+         y="267.66644"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7-3-8-2">2025</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1802.1477"
+       y="250.26334"
+       id="text1185-9-7-1-1-8-1-0-4-2"><tspan
+         sodipodi:role="line"
+         x="1802.1477"
+         y="250.26334"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4-0-4-81-5">Apr.</tspan><tspan
+         sodipodi:role="line"
+         x="1802.1477"
+         y="268.26001"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7-3-8-2-8">2026</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
        x="1081.4458"
        y="250.07544"
        id="text1185-9-7-1-1-8-1-0-2"><tspan
@@ -911,16 +1063,16 @@
     <text
        xml:space="preserve"
        style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       x="604.18005"
+       x="602.51526"
        y="250.07544"
        id="text1185-9-7-1-1-8-1-7"><tspan
          sodipodi:role="line"
-         x="604.18005"
+         x="602.51526"
          y="250.07544"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan31345-4-0-5">Apr.</tspan><tspan
          sodipodi:role="line"
-         x="604.18005"
+         x="602.51526"
          y="268.07211"
          style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
          id="tspan49906-7-3-6">2021</tspan></text>
@@ -937,7 +1089,7 @@
     <path
        id="path29430"
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="M 319.99935,219.99912 H 1435 Z" />
+       d="M 319.99936,219.99912 H 2300 Z" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        d="m 360,219.99997 v 10.00004 0"
@@ -1178,42 +1330,201 @@
        inkscape:transform-center-y="-0.085282837" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 1200,220.00002 v 9.99999 0"
-       id="path29548-5-1-3-6-3-1-0" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        d="m 1320,219.99996 v 10 0"
        id="path29548-5-1-3-6-3-1-0-8" />
+    <g
+       id="g1267">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1200,220.00002 v 9.99999 0"
+         id="path29548-5-1-3-6-3-1-0" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1220,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1240,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1260,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1280,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1299.7216,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0"
+         inkscape:transform-center-x="-14.78205"
+         inkscape:transform-center-y="-0.085282837" />
+    </g>
+    <g
+       id="g1267-4"
+       transform="translate(240,-4e-5)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1200,220.00002 v 9.99999 0"
+         id="path29548-5-1-3-6-3-1-0-3" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1220,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1240,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1260,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1280,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1299.7216,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2"
+         inkscape:transform-center-x="-14.78205"
+         inkscape:transform-center-y="-0.085282837" />
+    </g>
+    <g
+       id="g1267-4-5"
+       transform="translate(480,-5e-5)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1200,220.00002 v 9.99999 0"
+         id="path29548-5-1-3-6-3-1-0-3-4" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1220,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1240,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1260,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1280,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1299.7216,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6"
+         inkscape:transform-center-x="-14.78205"
+         inkscape:transform-center-y="-0.085282837" />
+    </g>
+    <g
+       id="g1267-4-5-22"
+       transform="translate(600,-4e-5)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1200,220.00002 v 9.99999 0"
+         id="path29548-5-1-3-6-3-1-0-3-4-0" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1220,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-55"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1240,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-2"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1260,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-90"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1280,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-2"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1299.7216,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-8"
+         inkscape:transform-center-x="-14.78205"
+         inkscape:transform-center-y="-0.085282837" />
+    </g>
+    <g
+       id="g1267-4-5-9"
+       transform="translate(360,-4e-5)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1200,220.00002 v 9.99999 0"
+         id="path29548-5-1-3-6-3-1-0-3-4-2" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1220,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-2"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1240,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-4"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1260,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-7"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1280,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-7"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1299.7216,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-5"
+         inkscape:transform-center-x="-14.78205"
+         inkscape:transform-center-y="-0.085282837" />
+    </g>
     <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 1220,219.99997 v 5.00004 0"
-       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5"
-       inkscape:transform-center-x="14.782001"
-       inkscape:transform-center-y="-0.085282837" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 1240,219.99997 v 5.00004 0"
-       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5"
-       inkscape:transform-center-x="14.782001"
-       inkscape:transform-center-y="-0.085282837" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 1260,219.99997 v 5.00004 0"
-       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2"
-       inkscape:transform-center-x="14.782001"
-       inkscape:transform-center-y="-0.085282837" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 1280,219.99997 v 5.00004 0"
-       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9"
-       inkscape:transform-center-x="14.782001"
-       inkscape:transform-center-y="-0.085282837" />
-    <path
-       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-       d="m 1299.7216,219.99997 v 5.00004 0"
-       id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0"
-       inkscape:transform-center-x="-14.78205"
-       inkscape:transform-center-y="-0.085282837" />
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 1800,219.99997 v 9.99999 0"
+       id="path29548-5-1-3-6-3-1-0-3-4-2-0" />
     <path
        style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
        d="m 1340,219.99997 v 5.00004 0"
@@ -1244,6 +1555,188 @@
        id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-9"
        inkscape:transform-center-x="-14.78205"
        inkscape:transform-center-y="-0.085282837" />
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="1919.3904"
+       y="249.86044"
+       id="text1185-9-7-1-1-89-62"><tspan
+         sodipodi:role="line"
+         x="1919.3904"
+         y="249.86044"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-7-6">Oct.</tspan><tspan
+         sodipodi:role="line"
+         x="1919.3904"
+         y="267.85712"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-76-7">2026</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="2159.3093"
+       y="250.58356"
+       id="text1185-9-7-1-1-89-6-5"><tspan
+         sodipodi:role="line"
+         x="2159.3093"
+         y="250.58356"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-7-8-6">Oct.</tspan><tspan
+         sodipodi:role="line"
+         x="2159.3093"
+         y="268.58023"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-76-0-9">2027</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="2041.8163"
+       y="249.66977"
+       id="text1185-9-7-1-1-8-1-0-4-8"><tspan
+         sodipodi:role="line"
+         x="2041.8163"
+         y="249.66977"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4-0-4-81-7">Apr.</tspan><tspan
+         sodipodi:role="line"
+         x="2041.8163"
+         y="267.66644"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7-3-8-2-2">2027</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-weight:bold;font-size:13.3333px;line-height:125%;font-family:'Nimbus Roman';-inkscape-font-specification:'Nimbus Roman, Bold';letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="2282.1477"
+       y="250.26334"
+       id="text1185-9-7-1-1-8-1-0-4-2-8"><tspan
+         sodipodi:role="line"
+         x="2282.1477"
+         y="250.26334"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan31345-4-0-4-81-5-2">Apr.</tspan><tspan
+         sodipodi:role="line"
+         x="2282.1477"
+         y="268.26001"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:13.3333px;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:center;text-anchor:middle;stroke:none"
+         id="tspan49906-7-3-8-2-8-9">2028</tspan></text>
+    <g
+       id="g1267-4-9"
+       transform="translate(720,-3e-5)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1200,220.00002 v 9.99999 0"
+         id="path29548-5-1-3-6-3-1-0-3-6" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1220,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-02"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1240,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-7"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1260,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-6"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1280,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-1"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1299.7216,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-3"
+         inkscape:transform-center-x="-14.78205"
+         inkscape:transform-center-y="-0.085282837" />
+    </g>
+    <g
+       id="g1267-4-5-2"
+       transform="translate(960,-4e-5)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1200,220.00002 v 9.99999 0"
+         id="path29548-5-1-3-6-3-1-0-3-4-1" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1220,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-5"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1240,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-9"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1260,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-9"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1280,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-1"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1299.7216,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-4"
+         inkscape:transform-center-x="-14.78205"
+         inkscape:transform-center-y="-0.085282837" />
+    </g>
+    <g
+       id="g1267-4-5-9-9"
+       transform="translate(840,-3e-5)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1200,220.00002 v 9.99999 0"
+         id="path29548-5-1-3-6-3-1-0-3-4-2-1" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1220,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-0-5-0-0-2-0"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1240,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-7-5-3-5-4-7"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1260,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-5-2-0-9-7-5"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1280,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-8-9-9-4-7-8"
+         inkscape:transform-center-x="14.782001"
+         inkscape:transform-center-y="-0.085282837" />
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="m 1299.7216,219.99997 v 5.00004 0"
+         id="path29548-8-5-0-6-4-6-2-9-0-8-1-3-1-9-6-9-3-4-0-4-6-2-2-7-6-1-9-9-1-4-9-7-0-2-6-5-7"
+         inkscape:transform-center-x="-14.78205"
+         inkscape:transform-center-y="-0.085282837" />
+    </g>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 2280,219.99998 v 9.99999 0"
+       id="path29548-5-1-3-6-3-1-0-3-4-2-0-0" />
   </g>
   <style
      type="text/css"
diff --git a/poky/documentation/ref-manual/terms.rst b/poky/documentation/ref-manual/terms.rst
index b5d5f1d..31ddeae 100644
--- a/poky/documentation/ref-manual/terms.rst
+++ b/poky/documentation/ref-manual/terms.rst
@@ -276,7 +276,7 @@
    :term:`LTS`
       This term means "Long Term Support", and in the context of the Yocto
       Project, it corresponds to selected stable releases for which bug and
-      security fixes are provided for at least two years. See
+      security fixes are provided for at least four years. See
       the :ref:`ref-long-term-support-releases` section for details.
 
    :term:`Metadata`
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index ac5b97a..44e2dd0 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -1653,11 +1653,7 @@
          and kernel module recipes).
 
    :term:`CVE_CHECK_IGNORE`
-      The list of CVE IDs which are ignored. Here is
-      an example from the :oe_layerindex:`Python3 recipe</layerindex/recipe/23823>`::
-
-         # This is windows only issue.
-         CVE_CHECK_IGNORE += "CVE-2020-15523"
+      This variable is deprecated and should be replaced by :term:`CVE_STATUS`.
 
    :term:`CVE_CHECK_SHOW_WARNINGS`
       Specifies whether or not the :ref:`ref-classes-cve-check`
@@ -1698,6 +1694,34 @@
 
          CVE_PRODUCT = "vendor:package"
 
+   :term:`CVE_STATUS`
+      The CVE ID which is patched or should be ignored. Here is
+      an example from the :oe_layerindex:`Python3 recipe</layerindex/recipe/23823>`::
+
+         CVE_STATUS[CVE-2020-15523] = "not-applicable-platform: Issue only applies on Windows"
+
+      It has the format "reason: description" and the description is optional.
+      The Reason is mapped to the final CVE state by mapping via
+      :term:`CVE_CHECK_STATUSMAP`
+
+   :term:`CVE_STATUS_GROUPS`
+      If there are many CVEs with the same status and reason, they can by simplified by using this
+      variable instead of many similar lines with :term:`CVE_STATUS`::
+
+         CVE_STATUS_GROUPS = "CVE_STATUS_WIN CVE_STATUS_PATCHED"
+
+         CVE_STATUS_WIN = "CVE-1234-0001 CVE-1234-0002"
+         CVE_STATUS_WIN[status] = "not-applicable-platform: Issue only applies on Windows"
+         CVE_STATUS_PATCHED = "CVE-1234-0003 CVE-1234-0004"
+         CVE_STATUS_PATCHED[status] = "fixed-version: Fixed externally"
+
+   :term:`CVE_CHECK_STATUSMAP`
+      Mapping variable for all possible reasons of :term:`CVE_STATUS`:
+      ``Patched``, ``Unpatched`` and ``Ignored``.
+      See :ref:`ref-classes-cve-check` or ``meta/conf/cve-check-map.conf`` for more details::
+
+         CVE_CHECK_STATUSMAP[cpe-incorrect] = "Ignored"
+
    :term:`CVE_VERSION`
       In a recipe, defines the version used to match the recipe version
       against the version in the `NIST CVE database <https://nvd.nist.gov/>`__
@@ -3905,9 +3929,18 @@
    :term:`INCOMPATIBLE_LICENSE`
       Specifies a space-separated list of license names (as they would
       appear in :term:`LICENSE`) that should be excluded
-      from the build. Recipes that provide no alternatives to listed
+      from the build (if set globally), or from an image (if set locally
+      in an image recipe). 
+
+      When the variable is set globally, recipes that provide no alternatives to listed
       incompatible licenses are not built. Packages that are individually
-      licensed with the specified incompatible licenses will be deleted.
+      licensed with the specified incompatible licenses will be deleted. 
+      Most of the time this does not allow a feasible build (because it becomes impossible
+      to satisfy build time dependencies), so the recommended way to
+      implement license restrictions is to set the variable in specific
+      image recipes where the restrictions must apply. That way there 
+      are no build time restrictions, but the license check is still
+      performed when the image's filesystem is assembled from packages.
 
       There is some support for wildcards in this variable's value,
       however it is restricted to specific licenses. Currently only
diff --git a/poky/documentation/sdk-manual/appendix-obtain.rst b/poky/documentation/sdk-manual/appendix-obtain.rst
index ba84450..f40ea6d 100644
--- a/poky/documentation/sdk-manual/appendix-obtain.rst
+++ b/poky/documentation/sdk-manual/appendix-obtain.rst
@@ -140,9 +140,10 @@
       message similar to the following::
 
          The extensible SDK can currently only be built for the same
-         architecture as the machine being built on --- :term:`SDK_ARCH`
-         is set to ``i686`` (likely via setting :term:`SDKMACHINE`) which is
-         different from the architecture of the build machine (``x86_64``).
+         architecture as the machine being built on - SDK_ARCH
+         is set to i686 (likely via setting SDKMACHINE) which is
+         different from the architecture of the build machine (x86_64).
+         Unable to continue.
 
 
 #. *Build the SDK Installer:* To build the SDK installer for a standard
diff --git a/poky/meta-poky/conf/distro/poky-tiny.conf b/poky/meta-poky/conf/distro/poky-tiny.conf
index f65d2da..728d161 100644
--- a/poky/meta-poky/conf/distro/poky-tiny.conf
+++ b/poky/meta-poky/conf/distro/poky-tiny.conf
@@ -122,3 +122,7 @@
 
 # Disable python usage in opkg-utils since it won't build with tiny config
 PACKAGECONFIG:remove:pn-opkg-utils = "python"
+
+# If shadow-base is brought into the image, logins will fail because it
+# doesn't have the heuristics to work when CONFIG_MULTIUSER is unset.
+PACKAGE_EXCLUDE:poky-tiny = "shadow-base"
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index c72df16..8dfd581 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -38,14 +38,16 @@
             ubuntu-18.04 \n \
             ubuntu-20.04 \n \
             ubuntu-22.04 \n \
-            fedora-36 \n \
+            ubuntu-22.10 \n \
             fedora-37 \n \
+            fedora-38 \n \
+            centosstream-8 \n \
             debian-11 \n \
             debian-12 \n \
             opensuseleap-15.3 \n \
             opensuseleap-15.4 \n \
-            almalinux-8.7 \n \
-            almalinux-9.1 \n \
+            almalinux-8.8 \n \
+            almalinux-9.2 \n \
             "
 # add poky sanity bbclass
 INHERIT += "poky-sanity"
diff --git a/poky/meta-selftest/recipes-test/binutils/binutils_%.bbappend b/poky/meta-selftest/recipes-test/binutils/binutils_%.bbappend
new file mode 100644
index 0000000..2057209
--- /dev/null
+++ b/poky/meta-selftest/recipes-test/binutils/binutils_%.bbappend
@@ -0,0 +1,2 @@
+# This bbappend is used to alter the recipe using the test_recipe.inc file created by tests.
+include test_recipe.inc
diff --git a/poky/meta/classes-global/insane.bbclass b/poky/meta/classes-global/insane.bbclass
index 114781c..960dfc8 100644
--- a/poky/meta/classes-global/insane.bbclass
+++ b/poky/meta/classes-global/insane.bbclass
@@ -50,6 +50,7 @@
 # Add usrmerge QA check based on distro feature
 ERROR_QA:append = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', ' usrmerge', '', d)}"
 ERROR_QA:append:layer-core = " patch-status"
+WARN_QA:append:layer-core = " missing-metadata missing-maintainer"
 
 FAKEROOT_QA = "host-user-contaminated"
 FAKEROOT_QA[doc] = "QA tests which need to run under fakeroot. If any \
@@ -1469,6 +1470,44 @@
     unpack_check_src_uri(d.getVar('PN'), d)
 }
 
+python do_recipe_qa() {
+    def test_missing_metadata(d):
+        fn = d.getVar("FILE")
+        pn = d.getVar('BPN')
+        srcfile = d.getVar('SRC_URI').split()
+        # Check that SUMMARY is not the same as the default from bitbake.conf
+        if d.getVar('SUMMARY') == d.expand("${PN} version ${PV}-${PR}"):
+            oe.qa.handle_error("missing-metadata", "Recipe {} in {} does not contain a SUMMARY. Please add an entry.".format(pn, fn), d)
+        if not d.getVar('HOMEPAGE'):
+            if srcfile and srcfile[0].startswith('file') or not d.getVar('SRC_URI'):
+                # We are only interested in recipes SRC_URI fetched from external sources
+                pass
+            else:
+                oe.qa.handle_error("missing-metadata", "Recipe {} in {} does not contain a HOMEPAGE. Please add an entry.".format(pn, fn), d)
+
+    def test_missing_maintainer(d):
+        fn = d.getVar("FILE")
+        pn = d.getVar("PN")
+        if pn.endswith("-native") or pn.startswith("nativesdk-") or "packagegroup-" in pn or "core-image-ptest-" in pn:
+            return
+        if not d.getVar('RECIPE_MAINTAINER'):
+            oe.qa.handle_error("missing-maintainer", "Recipe {} in {} does not have an assigned maintainer. Please add an entry into meta/conf/distro/include/maintainers.inc.".format(pn, fn), d)
+
+    test_missing_metadata(d)
+    test_missing_maintainer(d)
+    oe.qa.exit_if_errors(d)
+}
+
+addtask do_recipe_qa before do_fetch do_package_qa do_build
+
+SSTATETASKS += "do_recipe_qa"
+do_recipe_qa[sstate-inputdirs] = ""
+do_recipe_qa[sstate-outputdirs] = ""
+python do_recipe_qa_setscene () {
+    sstate_setscene(d)
+}
+addtask do_recipe_qa_setscene
+
 # Check for patch fuzz
 do_patch[postfuncs] += "do_qa_patch "
 
diff --git a/poky/meta/classes-recipe/cargo.bbclass b/poky/meta/classes-recipe/cargo.bbclass
index 3ef0bbb..8c0b92d 100644
--- a/poky/meta/classes-recipe/cargo.bbclass
+++ b/poky/meta/classes-recipe/cargo.bbclass
@@ -39,7 +39,12 @@
 
 RUSTFLAGS ??= ""
 BUILD_MODE = "${@['--release', ''][d.getVar('DEBUG_BUILD') == '1']}"
-CARGO_BUILD_FLAGS = "-v --offline --target ${RUST_HOST_SYS} ${BUILD_MODE} --manifest-path=${MANIFEST_PATH}"
+# --frozen flag will prevent network access (which is required since only
+# the do_fetch step is authorized to access network)
+# and will require an up to date Cargo.lock file.
+# This force the package being built to already ship a Cargo.lock, in the end
+# this is what we want, at least, for reproducibility of the build.
+CARGO_BUILD_FLAGS = "-v --frozen --target ${RUST_HOST_SYS} ${BUILD_MODE} --manifest-path=${MANIFEST_PATH}"
 
 # This is based on the content of CARGO_BUILD_FLAGS and generally will need to
 # change if CARGO_BUILD_FLAGS changes.
diff --git a/poky/meta/classes-recipe/cargo_common.bbclass b/poky/meta/classes-recipe/cargo_common.bbclass
index db54826..b732a1b 100644
--- a/poky/meta/classes-recipe/cargo_common.bbclass
+++ b/poky/meta/classes-recipe/cargo_common.bbclass
@@ -117,6 +117,8 @@
 }
 
 python cargo_common_do_patch_paths() {
+    import shutil
+
     cargo_config = os.path.join(d.getVar("CARGO_HOME"), "config")
     if not os.path.exists(cargo_config):
         return
@@ -146,6 +148,45 @@
             print('\n[patch."%s"]' % k, file=config)
             for name in v:
                 print(name, file=config)
+
+    if not patches:
+        return
+
+    # Cargo.lock file is needed for to be sure that artifacts
+    # downloaded by the fetch steps are those expected by the
+    # project and that the possible patches are correctly applied.
+    # Moreover since we do not want any modification
+    # of this file (for reproducibility purpose), we prevent it by
+    # using --frozen flag (in CARGO_BUILD_FLAGS) and raise a clear error
+    # here is better than letting cargo tell (in case the file is missing)
+    # "Cargo.lock should be modified but --frozen was given"
+
+    manifest_path = d.getVar("MANIFEST_PATH", True)
+    lockfile = os.path.join(os.path.dirname(manifest_path), "Cargo.lock")
+    if not os.path.exists(lockfile):
+        bb.fatal(f"{lockfile} file doesn't exist")
+
+    # There are patched files and so Cargo.lock should be modified but we use
+    # --frozen so let's handle that modifications here.
+    #
+    # Note that a "better" (more elegant ?) would have been to use cargo update for
+    # patched packages:
+    #  cargo update --offline -p package_1 -p package_2
+    # But this is not possible since it requires that cargo local git db
+    # to be populated and this is not the case as we fetch git repo ourself.
+
+    lockfile_orig = lockfile + ".orig"
+    if not os.path.exists(lockfile_orig):
+        shutil.copy(lockfile, lockfile_orig)
+
+    newlines = []
+    with open(lockfile_orig, "r") as f:
+        for line in f.readlines():
+            if not line.startswith("source = \"git"):
+                newlines.append(line)
+
+    with open(lockfile, "w") as f:
+        f.writelines(newlines)
 }
 do_configure[postfuncs] += "cargo_common_do_patch_paths"
 
diff --git a/poky/meta/classes-recipe/kernel-arch.bbclass b/poky/meta/classes-recipe/kernel-arch.bbclass
index df4884b..b0db99f 100644
--- a/poky/meta/classes-recipe/kernel-arch.bbclass
+++ b/poky/meta/classes-recipe/kernel-arch.bbclass
@@ -79,11 +79,3 @@
 KERNEL_OBJCOPY = "${CCACHE}${HOST_PREFIX}objcopy ${HOST_OBJCOPY_KERNEL_ARCH}"
 KERNEL_STRIP = "${CCACHE}${HOST_PREFIX}strip ${HOST_STRIP_KERNEL_ARCH}"
 TOOLCHAIN ?= "gcc"
-
-# 6.3+ requires the variable LOCALVERSION to be set to not get a "+" in
-# the local version. Having it empty means nothing will be added, and any
-# value will be appended to the local kernel version. This replaces the
-# use of .scmversion file for setting a localversion without using
-# the CONFIG_LOCALVERSION option.
-KERNEL_LOCALVERSION ??= ""
-export LOCALVERSION ?= "${KERNEL_LOCALVERSION}"
diff --git a/poky/meta/classes-recipe/kernel-fitimage.bbclass b/poky/meta/classes-recipe/kernel-fitimage.bbclass
index f1c46a4..13e8947 100644
--- a/poky/meta/classes-recipe/kernel-fitimage.bbclass
+++ b/poky/meta/classes-recipe/kernel-fitimage.bbclass
@@ -427,6 +427,9 @@
 		dtb_image_sect=$dtb_image
 	fi
 
+	dtb_path="${EXTERNAL_KERNEL_DEVICETREE}/${dtb_image_sect}"
+	compatible_line="compatible = \"$(fdtget "$dtb_path" / compatible | sed 's/ /", "/g')\";"
+
 	dtb_image=$(echo $dtb_image | tr '/' '_')
 	dtb_image_sect=$(echo "${dtb_image_sect}" | tr '/' '_')
 
@@ -487,6 +490,7 @@
                 $default_line
                 $conf_node {
                         description = "$default_flag $conf_desc";
+                        $compatible_line
                         $kernel_line
                         $fdt_line
                         $ramdisk_line
diff --git a/poky/meta/classes-recipe/kernel.bbclass b/poky/meta/classes-recipe/kernel.bbclass
index 6241fca..bb5995b 100644
--- a/poky/meta/classes-recipe/kernel.bbclass
+++ b/poky/meta/classes-recipe/kernel.bbclass
@@ -551,6 +551,7 @@
 	#
 
 	echo "${KERNEL_VERSION}" > $kerneldir/${KERNEL_PACKAGE_NAME}-abiversion
+	echo "${KERNEL_LOCALVERSION}" > $kerneldir/${KERNEL_PACKAGE_NAME}-localversion
 
 	# Copy files required for module builds
 	cp System.map $kerneldir/System.map-${KERNEL_VERSION}
@@ -640,6 +641,19 @@
 check_oldest_kernel[vardepsexclude] += "OLDEST_KERNEL KERNEL_VERSION"
 do_configure[prefuncs] += "check_oldest_kernel"
 
+KERNEL_LOCALVERSION ??= ""
+
+# 6.3+ requires the variable LOCALVERSION to be set to not get a "+" in
+# the local version. Having it empty means nothing will be added, and any
+# value will be appended to the local kernel version. This replaces the
+# use of .scmversion file for setting a localversion without using
+# the CONFIG_LOCALVERSION option.
+#
+# Note: This class saves the value of localversion to a file
+# so other recipes like make-mod-scripts can restore it via the
+# helper function get_kernellocalversion_file
+export LOCALVERSION="${KERNEL_LOCALVERSION}"
+
 kernel_do_configure() {
 	# fixes extra + in /lib/modules/2.6.37+
 	# $ scripts/setlocalversion . => +
diff --git a/poky/meta/classes-recipe/kernelsrc.bbclass b/poky/meta/classes-recipe/kernelsrc.bbclass
index a32882a..ecb02dc 100644
--- a/poky/meta/classes-recipe/kernelsrc.bbclass
+++ b/poky/meta/classes-recipe/kernelsrc.bbclass
@@ -11,6 +11,7 @@
 do_patch[noexec] = "1"
 do_package[depends] += "virtual/kernel:do_populate_sysroot"
 KERNEL_VERSION = "${@get_kernelversion_file("${STAGING_KERNEL_BUILDDIR}")}"
+LOCAL_VERSION = "${@get_kernellocalversion_file("${STAGING_KERNEL_BUILDDIR}")}"
 
 inherit linux-kernel-base
 
diff --git a/poky/meta/classes-recipe/linux-kernel-base.bbclass b/poky/meta/classes-recipe/linux-kernel-base.bbclass
index 65cc48f..e2187a7 100644
--- a/poky/meta/classes-recipe/linux-kernel-base.bbclass
+++ b/poky/meta/classes-recipe/linux-kernel-base.bbclass
@@ -39,6 +39,17 @@
     except IOError:
         return None
 
+def get_kernellocalversion_file(p):
+    fn = p + '/kernel-localversion'
+
+    try:
+        with open(fn, 'r') as f:
+            return f.readlines()[0].strip()
+    except IOError:
+        return ""
+
+    return ""
+
 def linux_module_packages(s, d):
     suffix = ""
     return " ".join(map(lambda s: "kernel-module-%s%s" % (s.lower().replace('_', '-').replace('@', '+'), suffix), s.split()))
diff --git a/poky/meta/classes-recipe/module-base.bbclass b/poky/meta/classes-recipe/module-base.bbclass
index 094b563..2a22588 100644
--- a/poky/meta/classes-recipe/module-base.bbclass
+++ b/poky/meta/classes-recipe/module-base.bbclass
@@ -20,6 +20,7 @@
 export KBUILD_OUTPUT = "${STAGING_KERNEL_BUILDDIR}"
 
 export KERNEL_VERSION = "${@oe.utils.read_file('${STAGING_KERNEL_BUILDDIR}/kernel-abiversion')}"
+export LOCALVERSION = "${@oe.utils.read_file('${STAGING_KERNEL_BUILDDIR}/kernel-localversion')}"
 KERNEL_OBJECT_SUFFIX = ".ko"
 
 # kernel modules are generally machine specific
diff --git a/poky/meta/classes-recipe/ptest-cargo.bbclass b/poky/meta/classes-recipe/ptest-cargo.bbclass
index 5d53abe..ff57be8 100644
--- a/poky/meta/classes-recipe/ptest-cargo.bbclass
+++ b/poky/meta/classes-recipe/ptest-cargo.bbclass
@@ -16,6 +16,8 @@
     cargo_build_flags = d.getVar("CARGO_BUILD_FLAGS", True)
     rust_flags = d.getVar("RUSTFLAGS", True)
     manifest_path = d.getVar("MANIFEST_PATH", True)
+    project_manifest_path = os.path.normpath(manifest_path)
+    manifest_dir = os.path.dirname(manifest_path)
 
     env = os.environ.copy()
     env['RUSTFLAGS'] = rust_flags
@@ -46,13 +48,15 @@
             pass
         else:
             try:
-                # Filter the test packages coming from the current manifest
+                # Filter the test packages coming from the current project:
+                #    - test binaries from the root manifest
+                #    - test binaries from sub manifest of the current project if any
                 current_manifest_path = os.path.normpath(data['manifest_path'])
-                project_manifest_path = os.path.normpath(manifest_path)
-                if current_manifest_path == project_manifest_path:
+                common_path = os.path.commonpath([current_manifest_path, project_manifest_path])
+                if common_path in [manifest_dir, current_manifest_path]:
                     if (data['target']['test'] or data['target']['doctest']) and data['executable']:
                         test_bins.append(data['executable'])
-            except KeyError as e:
+            except (KeyError, ValueError) as e:
                 # skip lines that do not meet the requirements
                 pass
 
diff --git a/poky/meta/classes-recipe/python_setuptools3_rust.bbclass b/poky/meta/classes-recipe/python_setuptools3_rust.bbclass
index d6ce2ed..d3d7590 100644
--- a/poky/meta/classes-recipe/python_setuptools3_rust.bbclass
+++ b/poky/meta/classes-recipe/python_setuptools3_rust.bbclass
@@ -4,14 +4,14 @@
 # SPDX-License-Identifier: MIT
 #
 
-inherit python_pyo3 setuptools3
+inherit python_pyo3 python_setuptools_build_meta
 
 DEPENDS += "python3-setuptools-rust-native"
 
 python_setuptools3_rust_do_configure() {
     python_pyo3_do_configure
     cargo_common_do_configure
-    setuptools3_do_configure
+    python_pep517_do_configure
 }
 
 EXPORT_FUNCTIONS do_configure
diff --git a/poky/meta/classes-recipe/qemuboot.bbclass b/poky/meta/classes-recipe/qemuboot.bbclass
index 4448714..e30b380 100644
--- a/poky/meta/classes-recipe/qemuboot.bbclass
+++ b/poky/meta/classes-recipe/qemuboot.bbclass
@@ -102,7 +102,7 @@
 QB_OPT_APPEND ?= ""
 QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
 QB_CMDLINE_IP_SLIRP ?= "ip=dhcp"
-QB_CMDLINE_IP_TAP ?= "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0::eth0:off:8.8.8.8"
+QB_CMDLINE_IP_TAP ?= "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0::eth0:off:8.8.8.8 net.ifnames=0"
 QB_ROOTFS_EXTRA_OPT ?= ""
 QB_GRAPHICS ?= ""
 QB_NFSROOTFS_EXTRA_OPT ?= ""
@@ -143,7 +143,7 @@
         # contains all tools required by runqemu
         if k == 'STAGING_BINDIR_NATIVE':
             val = os.path.join(d.getVar('BASE_WORKDIR'), d.getVar('BUILD_SYS'),
-                               'qemu-helper-native/1.0-r1/recipe-sysroot-native/usr/bin/')
+                               'qemu-helper-native/1.0/recipe-sysroot-native/usr/bin/')
         else:
             val = d.getVar(k)
         if val is None:
diff --git a/poky/meta/classes/externalsrc.bbclass b/poky/meta/classes/externalsrc.bbclass
index b00fdba..aedd78a 100644
--- a/poky/meta/classes/externalsrc.bbclass
+++ b/poky/meta/classes/externalsrc.bbclass
@@ -75,6 +75,8 @@
 
         # Dummy value because the default function can't be called with blank SRC_URI
         d.setVar('SRCPV', '999')
+        # sstate is never going to work for external source trees, disable it
+        d.setVar('SSTATE_SKIP_CREATION', '1')
 
         if d.getVar('CONFIGUREOPT_DEPTRACK') == '--disable-dependency-tracking':
             d.setVar('CONFIGUREOPT_DEPTRACK', '')
@@ -82,10 +84,7 @@
         tasks = filter(lambda k: d.getVarFlag(k, "task"), d.keys())
 
         for task in tasks:
-            if task.endswith("_setscene"):
-                # sstate is never going to work for external source trees, disable it
-                bb.build.deltask(task, d)
-            elif os.path.realpath(d.getVar('S')) == os.path.realpath(d.getVar('B')):
+            if os.path.realpath(d.getVar('S')) == os.path.realpath(d.getVar('B')):
                 # Since configure will likely touch ${S}, ensure only we lock so one task has access at a time
                 d.appendVarFlag(task, "lockfiles", " ${S}/singletask.lock")
 
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 475d652..599bbc4 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -402,10 +402,10 @@
 LOG_DIR = "${TMPDIR}/log"
 
 STAMPS_DIR ?= "${TMPDIR}/stamps"
-STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
+STAMP = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}"
 STAMPCLEAN = "${STAMPS_DIR}/${MULTIMACH_TARGET_SYS}/${PN}/*-*"
 BASE_WORKDIR ?= "${TMPDIR}/work"
-WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${EXTENDPE}${PV}-${PR}"
+WORKDIR = "${BASE_WORKDIR}/${MULTIMACH_TARGET_SYS}/${PN}/${PV}"
 T = "${WORKDIR}/temp"
 D = "${WORKDIR}/image"
 S = "${WORKDIR}/${BP}"
diff --git a/poky/meta/conf/distro/include/cve-extra-exclusions.inc b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
index 61fb08d..9d4422b 100644
--- a/poky/meta/conf/distro/include/cve-extra-exclusions.inc
+++ b/poky/meta/conf/distro/include/cve-extra-exclusions.inc
@@ -122,6 +122,6 @@
 
 # nasm:nasm-native https://nvd.nist.gov/vuln/detail/CVE-2020-18974
 CVE_STATUS[CVE-2020-18974] = "upstream-wontfix: \
-It is a fuzzing related buffer overflow. It is of low impact since most devices
-wouldn't expose an assembler. The upstream is inactive and there is little to be
+It is a fuzzing related buffer overflow. It is of low impact since most devices \
+wouldn't expose an assembler. The upstream is inactive and there is little to be \
 done about the bug, ignore from an OE perspective."
diff --git a/poky/meta/conf/distro/include/init-manager-systemd.inc b/poky/meta/conf/distro/include/init-manager-systemd.inc
index 7867d90..595d1f2 100644
--- a/poky/meta/conf/distro/include/init-manager-systemd.inc
+++ b/poky/meta/conf/distro/include/init-manager-systemd.inc
@@ -1,5 +1,5 @@
 # Use systemd for system initialization
-DISTRO_FEATURES:append = " systemd"
+DISTRO_FEATURES:append = " systemd usrmerge"
 DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"
 VIRTUAL-RUNTIME_init_manager ??= "systemd"
 VIRTUAL-RUNTIME_initscripts ??= "systemd-compat-units"
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index 6e82e94..202e573 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -82,7 +82,7 @@
 RECIPE_MAINTAINER:pn-buildtools-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER:pn-buildtools-docs-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER:pn-buildtools-make-tarball = "Richard Purdie <richard.purdie@linuxfoundation.org>"
-RECIPE_MAINTAINER:pn-busybox = "Andrej Valek <andrej.valek@siemens.com>"
+RECIPE_MAINTAINER:pn-busybox = "Andrej Valek <andrej.v@skyrain.eu>"
 RECIPE_MAINTAINER:pn-busybox-inittab = "Denys Dmytriyenko <denis@denix.org>"
 RECIPE_MAINTAINER:pn-bzip2 = "Denys Dmytriyenko <denis@denix.org>"
 RECIPE_MAINTAINER:pn-ca-certificates = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -187,9 +187,8 @@
 RECIPE_MAINTAINER:pn-gcc-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-gcc-runtime = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-gcc-sanitizers = "Khem Raj <raj.khem@gmail.com>"
-RECIPE_MAINTAINER:pn-gcc-source-13.1.1 = "Khem Raj <raj.khem@gmail.com>"
+RECIPE_MAINTAINER:pn-gcc-source-13.2.0 = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-gconf = "Ross Burton <ross.burton@arm.com>"
-RECIPE_MAINTAINER:pn-gcr3 = "Markus Volk <f_l_k@t-online.de>"
 RECIPE_MAINTAINER:pn-gcr = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-gdb = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER:pn-gdb-cross-${TARGET_ARCH} = "Khem Raj <raj.khem@gmail.com>"
@@ -305,6 +304,7 @@
 RECIPE_MAINTAINER:pn-less = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER:pn-liba52 = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-libacpi = "Anuj Mittal <anuj.mittal@intel.com>"
+RECIPE_MAINTAINER:pn-libadwaita = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libaio = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER:pn-libarchive = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
 RECIPE_MAINTAINER:pn-libassuan = "Unassigned <unassigned@yoctoproject.org>"
@@ -614,6 +614,7 @@
 RECIPE_MAINTAINER:pn-python3-dbus = "Zang Ruochen <zangruochen@loongson.cn>"
 RECIPE_MAINTAINER:pn-python3-dbusmock = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-python3-docutils = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER:pn-python3-dtc = "Trevor Gamblin <tgamblin@baylibre.com>"
 RECIPE_MAINTAINER:pn-python3-dtschema = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-dtschema-wrapper = "Bruce Ashfield <bruce.ashfield@gmail.com>"
 RECIPE_MAINTAINER:pn-python3-editables = "Ross Burton <ross.burton@arm.com>"
@@ -733,7 +734,6 @@
 RECIPE_MAINTAINER:pn-run-postinsts = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER:pn-rust = "Randy MacLeod <Randy.MacLeod@windriver.com>"
 RECIPE_MAINTAINER:pn-rust-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Randy MacLeod <Randy.MacLeod@windriver.com>"
-RECIPE_MAINTAINER:pn-rust-hello-world = "Randy MacLeod <Randy.MacLeod@windriver.com>"
 RECIPE_MAINTAINER:pn-rust-llvm = "Randy MacLeod <Randy.MacLeod@windriver.com>"
 RECIPE_MAINTAINER:pn-rxvt-unicode = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER:pn-sato-screenshot = "Ross Burton <ross.burton@arm.com>"
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index 6250cf0..bbbef5b 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -75,6 +75,7 @@
     slang \
     wayland \
     zlib \
+    libexif \
 "
 PTESTS_FAST:append:libc-glibc = " glibc-tests"
 PTESTS_PROBLEMS:remove:libc-glibc = "glibc-tests"
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index 18daf44..1c4a22a 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -18,7 +18,7 @@
 
 GCCVERSION ?= "13.%"
 SDKGCCVERSION ?= "${GCCVERSION}"
-BINUVERSION ?= "2.40%"
+BINUVERSION ?= "2.41%"
 GDBVERSION ?= "13.%"
 GLIBCVERSION ?= "2.37"
 LINUXLIBCVERSION ?= "6.4%"
diff --git a/poky/meta/conf/distro/include/yocto-uninative.inc b/poky/meta/conf/distro/include/yocto-uninative.inc
index ad4816a..b3bd779 100644
--- a/poky/meta/conf/distro/include/yocto-uninative.inc
+++ b/poky/meta/conf/distro/include/yocto-uninative.inc
@@ -7,9 +7,9 @@
 #
 
 UNINATIVE_MAXGLIBCVERSION = "2.37"
-UNINATIVE_VERSION = "4.0"
+UNINATIVE_VERSION = "4.1"
 
 UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/${UNINATIVE_VERSION}/"
-UNINATIVE_CHECKSUM[aarch64] ?= "7baa8418a302df52e00916193b0a04f318356d9d2670c9a2bce3e966efefd738"
-UNINATIVE_CHECKSUM[i686] ?= "83114d36883d43a521e280742b9849bf85d039b2f83d8e21d480659babe75ee8"
-UNINATIVE_CHECKSUM[x86_64] ?= "fd75b2a1a67a10f6b7d65afb7d0f3e71a63b0038e428f34dfe420bb37716558a"
+UNINATIVE_CHECKSUM[aarch64] ?= "b6ff9171aa7d3828bc81197822e804725908856bbd488bf412121cc0deddcb60"
+UNINATIVE_CHECKSUM[i686] ?= "6354fd2e09af1f111bad5e34ce7af4f9ad7cd266188af7eeceaeb982afd5354b"
+UNINATIVE_CHECKSUM[x86_64] ?= "f83eca543170adfd2432b135ca655922a4303622d73cc4b13e92b973cdf49e3a"
diff --git a/poky/meta/conf/multilib.conf b/poky/meta/conf/multilib.conf
index 7f3b946..ef3605a 100644
--- a/poky/meta/conf/multilib.conf
+++ b/poky/meta/conf/multilib.conf
@@ -2,6 +2,7 @@
 baselib = "${@d.getVar('BASE_LIB:tune-' + (d.getVar('DEFAULTTUNE') or 'INVALID')) or d.getVar('BASELIB')}"
 
 MULTILIB_VARIANTS = "${@extend_variants(d,'MULTILIBS','multilib')}"
+MULTILIB_VARIANTS[vardeps] += "MULTILIBS"
 MULTILIB_SAVE_VARNAME = "DEFAULTTUNE TARGET_ARCH TARGET_SYS TARGET_VENDOR"
 
 MULTILIBS ??= "multilib:lib32"
diff --git a/poky/meta/lib/oe/package.py b/poky/meta/lib/oe/package.py
index 70040f0..9d70925 100644
--- a/poky/meta/lib/oe/package.py
+++ b/poky/meta/lib/oe/package.py
@@ -613,7 +613,7 @@
         conf_list[i] = conf_list[i][1:]
 
     os.chdir(cwd)
-    return conf_list
+    return sorted(conf_list)
 
 def legitimize_package_name(s):
     """
diff --git a/poky/meta/lib/oe/recipeutils.py b/poky/meta/lib/oe/recipeutils.py
index b04992c..5a902c2 100644
--- a/poky/meta/lib/oe/recipeutils.py
+++ b/poky/meta/lib/oe/recipeutils.py
@@ -24,7 +24,7 @@
 from bb.utils import vercmp_string
 
 # Help us to find places to insert values
-recipe_progression = ['SUMMARY', 'DESCRIPTION', 'AUTHOR', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()', 'BBCLASSEXTEND']
+recipe_progression = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()', 'BBCLASSEXTEND']
 # Variables that sometimes are a bit long but shouldn't be wrapped
 nowrap_vars = ['SUMMARY', 'HOMEPAGE', 'BUGTRACKER', r'SRC_URI\[(.+\.)?md5sum\]', r'SRC_URI\[(.+\.)?sha256sum\]']
 list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM']
diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py
index f943df1..633a0fd 100644
--- a/poky/meta/lib/oe/sstatesig.py
+++ b/poky/meta/lib/oe/sstatesig.py
@@ -215,6 +215,9 @@
     def dump_lockedsigs(self, sigfile, taskfilter=None):
         types = {}
         for tid in self.runtaskdeps:
+            # Bitbake changed this to a tuple in newer versions
+            if isinstance(tid, tuple):
+                tid = tid[1]
             if taskfilter:
                 if not tid in taskfilter:
                     continue
@@ -321,11 +324,12 @@
     if not taskname:
         # We have to derive pn and taskname
         key = pn
-        splitit = key.split('.bb:')
-        taskname = splitit[1]
-        pn = os.path.basename(splitit[0]).split('_')[0]
-        if key.startswith('virtual:native:'):
-            pn = pn + '-native'
+        if key.startswith("mc:"):
+           # mc:<mc>:<pn>:<task>
+           _, _, pn, taskname = key.split(':', 3)
+        else:
+           # <pn>:<task>
+           pn, taskname = key.split(':', 1)
 
     hashfiles = {}
     filedates = {}
diff --git a/poky/meta/lib/oeqa/core/target/ssh.py b/poky/meta/lib/oeqa/core/target/ssh.py
index e650302..f22836d 100644
--- a/poky/meta/lib/oeqa/core/target/ssh.py
+++ b/poky/meta/lib/oeqa/core/target/ssh.py
@@ -253,6 +253,9 @@
                 except InterruptedError:
                     logger.debug('InterruptedError')
                     continue
+                except BlockingIOError:
+                    logger.debug('BlockingIOError')
+                    continue
 
             process.stdout.close()
 
@@ -270,6 +273,7 @@
                             " running time: %d seconds." % (timeout, endtime))
                 logger.debug('Received data from SSH call:\n%s ' % lastline)
                 output += lastline
+                process.wait()
 
         else:
             output_raw = process.communicate()[0]
@@ -287,6 +291,7 @@
                 except OSError:
                     logger.debug('OSError')
                     pass
+                process.wait()
 
     options = {
         "stdout": subprocess.PIPE,
@@ -313,6 +318,8 @@
         # whilst running and ensure we don't leave a process behind.
         if process.poll() is None:
             process.kill()
+        if process.returncode == None:
+            process.wait()
         logger.debug('Something went wrong, killing SSH process')
         raise
 
diff --git a/poky/meta/lib/oeqa/runtime/cases/ltp.py b/poky/meta/lib/oeqa/runtime/cases/ltp.py
index 29c26d7..c7e7943 100644
--- a/poky/meta/lib/oeqa/runtime/cases/ltp.py
+++ b/poky/meta/lib/oeqa/runtime/cases/ltp.py
@@ -71,9 +71,14 @@
             cmd = '/opt/ltp/runltp -f %s -q -r /opt/ltp -l /opt/ltp/results/%s -I 1 -d /opt/ltp' % (ltp_group, ltp_group)
 
             starttime = time.time()
-            (status, output) = self.target.run(cmd)
+            (status, output) = self.target.run(cmd, timeout=1200)
             endtime = time.time()
 
+            # status of 1 is 'just' tests failing. 255 likely was a command output timeout 
+            if status and status != 1:
+                msg = 'Command %s returned exit code %s' % (cmd, status)
+                self.target.logger.warning(msg)
+
             # Write the console log to disk for convenience
             with open(os.path.join(self.ltptest_log_dir, "%s-raw.log" % ltp_group), 'w') as f:
                 f.write(output)
diff --git a/poky/meta/lib/oeqa/runtime/cases/rust.py b/poky/meta/lib/oeqa/runtime/cases/rust.py
index c9c60e16..9bf0312 100644
--- a/poky/meta/lib/oeqa/runtime/cases/rust.py
+++ b/poky/meta/lib/oeqa/runtime/cases/rust.py
@@ -48,15 +48,3 @@
         status, output = self.target.run('cargo run --manifest-path=/tmp/hello/Cargo.toml')
         msg = 'running compiled file failed, output: %s' % output
         self.assertEqual(status, 0, msg=msg)
-
-class RustHelloworldTest(OERuntimeTestCase):
-    @OETestDepends(['ssh.SSHTest.test_ssh'])
-    @OEHasPackage(['rust-hello-world'])
-    def test_rusthelloworld(self):
-        cmd = "rust-hello-world"
-        status, output = self.target.run(cmd)
-        msg = 'Exit status was not 0. Output: %s' % output
-        self.assertEqual(status, 0, msg=msg)
-
-        msg = 'Incorrect output: %s' % output
-        self.assertEqual(output, "Hello, world!", msg=msg)
diff --git a/poky/meta/lib/oeqa/selftest/cases/binutils.py b/poky/meta/lib/oeqa/selftest/cases/binutils.py
index bf6fdca..1688eab 100644
--- a/poky/meta/lib/oeqa/selftest/cases/binutils.py
+++ b/poky/meta/lib/oeqa/selftest/cases/binutils.py
@@ -4,6 +4,7 @@
 # SPDX-License-Identifier: MIT
 #
 import os
+import time
 from oeqa.core.decorator import OETestTag
 from oeqa.core.case import OEPTestResultTestCase
 from oeqa.selftest.case import OESelftestTestCase
@@ -36,15 +37,19 @@
         bb_vars = get_bb_vars(["B", "TARGET_SYS", "T"], recipe)
         builddir, target_sys, tdir = bb_vars["B"], bb_vars["TARGET_SYS"], bb_vars["T"]
 
+        start_time = time.time()
+
         bitbake("{0} -c check".format(recipe))
 
+        end_time = time.time()
+
         sumspath = os.path.join(builddir, suite, "{0}.sum".format(suite))
         if not os.path.exists(sumspath):
             sumspath = os.path.join(builddir, suite, "testsuite", "{0}.sum".format(suite))
         logpath = os.path.splitext(sumspath)[0] + ".log"
 
         ptestsuite = "binutils-{}".format(suite) if suite != "binutils" else suite
-        self.ptest_section(ptestsuite, logfile = logpath)
+        self.ptest_section(ptestsuite, duration = int(end_time - start_time), logfile = logpath)
         with open(sumspath, "r") as f:
             for test, result in parse_values(f):
                 self.ptest_result(ptestsuite, test, result)
diff --git a/poky/meta/lib/oeqa/selftest/cases/distrodata.py b/poky/meta/lib/oeqa/selftest/cases/distrodata.py
index 111bd3c..ad952c0 100644
--- a/poky/meta/lib/oeqa/selftest/cases/distrodata.py
+++ b/poky/meta/lib/oeqa/selftest/cases/distrodata.py
@@ -39,42 +39,6 @@
 """ + "\n".join(regressed_successes)
         self.assertTrue(len(regressed_failures) == 0 and len(regressed_successes) == 0, msg)
 
-    def test_missing_homepg(self):
-        """
-        Summary:     Test for oe-core recipes that don't have a HOMEPAGE or DESCRIPTION
-        Expected:    All oe-core recipes should have a DESCRIPTION entry
-        Expected:    All oe-core recipes should have a HOMEPAGE entry except for recipes that are not fetched from external sources.
-        Product:     oe-core
-        """
-        with bb.tinfoil.Tinfoil() as tinfoil:
-            tinfoil.prepare(config_only=False)
-            no_description = []
-            no_homepage = []
-            for fn in tinfoil.all_recipe_files(variants=False):
-                if not '/meta/recipes-' in fn:
-                    # We are only interested in OE-Core
-                    continue
-                rd = tinfoil.parse_recipe_file(fn, appends=False)
-                pn = rd.getVar('BPN')
-                srcfile = rd.getVar('SRC_URI').split()
-                #Since DESCRIPTION defaults to SUMMARY if not set, we are only interested in recipes without DESCRIPTION or SUMMARY
-                if not (rd.getVar('SUMMARY') or rd.getVar('DESCRIPTION')):
-                    no_description.append((pn, fn))
-                if not rd.getVar('HOMEPAGE'):
-                    if srcfile and srcfile[0].startswith('file') or not rd.getVar('SRC_URI'):
-                        # We are only interested in recipes SRC_URI fetched from external sources
-                        continue
-                    no_homepage.append((pn, fn))
-        if no_homepage:
-            self.fail("""
-The following recipes do not have a HOMEPAGE. Please add an entry for HOMEPAGE in the recipe.
-""" + "\n".join(['%s (%s)' % i for i in no_homepage]))
-
-        if no_description:
-            self.fail("""
-The following recipes do not have a DESCRIPTION. Please add an entry for DESCRIPTION in the recipe.
-""" + "\n".join(['%s (%s)' % i for i in no_description]))
-
     def test_maintainers(self):
         """
         Summary:     Test that oe-core recipes have a maintainer and entries in maintainers list have a recipe
diff --git a/poky/meta/lib/oeqa/selftest/cases/gcc.py b/poky/meta/lib/oeqa/selftest/cases/gcc.py
index 6b9022e..8936017 100644
--- a/poky/meta/lib/oeqa/selftest/cases/gcc.py
+++ b/poky/meta/lib/oeqa/selftest/cases/gcc.py
@@ -4,6 +4,7 @@
 # SPDX-License-Identifier: MIT
 #
 import os
+import time
 from oeqa.core.decorator import OETestTag
 from oeqa.core.case import OEPTestResultTestCase
 from oeqa.selftest.case import OESelftestTestCase
@@ -43,8 +44,13 @@
         self.write_config("\n".join(features))
 
         recipe = "gcc-runtime"
+
+        start_time = time.time()
+
         bitbake("{} -c check".format(recipe))
 
+        end_time = time.time()
+
         bb_vars = get_bb_vars(["B", "TARGET_SYS"], recipe)
         builddir, target_sys = bb_vars["B"], bb_vars["TARGET_SYS"]
 
@@ -58,7 +64,7 @@
 
             ptestsuite = "gcc-{}".format(suite) if suite != "gcc" else suite
             ptestsuite = ptestsuite + "-user" if ssh is None else ptestsuite
-            self.ptest_section(ptestsuite, logfile = logpath)
+            self.ptest_section(ptestsuite, duration = int(end_time - start_time), logfile = logpath)
             with open(sumspath, "r") as f:
                 for test, result in parse_values(f):
                     self.ptest_result(ptestsuite, test, result)
diff --git a/poky/meta/lib/oeqa/selftest/cases/glibc.py b/poky/meta/lib/oeqa/selftest/cases/glibc.py
index 4ec4b85..bd56b2f 100644
--- a/poky/meta/lib/oeqa/selftest/cases/glibc.py
+++ b/poky/meta/lib/oeqa/selftest/cases/glibc.py
@@ -4,6 +4,7 @@
 # SPDX-License-Identifier: MIT
 #
 import os
+import time
 import contextlib
 from oeqa.core.decorator import OETestTag
 from oeqa.core.case import OEPTestResultTestCase
@@ -31,12 +32,16 @@
             features.append('EGLIBCPARALLELISM:task-check:pn-glibc-testsuite = "PARALLELMFLAGS="-j1""')
         self.write_config("\n".join(features))
 
+        start_time = time.time()
+
         bitbake("glibc-testsuite -c check")
 
+        end_time = time.time()
+
         builddir = get_bb_var("B", "glibc-testsuite")
 
         ptestsuite = "glibc-user" if ssh is None else "glibc"
-        self.ptest_section(ptestsuite)
+        self.ptest_section(ptestsuite, duration = int(end_time - start_time))
         with open(os.path.join(builddir, "tests.sum"), "r",  errors='replace') as f:
             for test, result in parse_values(f):
                 self.ptest_result(ptestsuite, test, result)
@@ -45,7 +50,7 @@
         with contextlib.ExitStack() as s:
             # use the base work dir, as the nfs mount, since the recipe directory may not exist
             tmpdir = get_bb_var("BASE_WORKDIR")
-            nfsport, mountport = s.enter_context(unfs_server(tmpdir))
+            nfsport, mountport = s.enter_context(unfs_server(tmpdir, udp = False))
 
             # build core-image-minimal with required packages
             default_installed_packages = [
@@ -65,7 +70,7 @@
             bitbake("core-image-minimal")
 
             # start runqemu
-            qemu = s.enter_context(runqemu("core-image-minimal", runqemuparams = "nographic"))
+            qemu = s.enter_context(runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 1024"))
 
             # validate that SSH is working
             status, _ = qemu.run("uname")
@@ -74,7 +79,7 @@
             # setup nfs mount
             if qemu.run("mkdir -p \"{0}\"".format(tmpdir))[0] != 0:
                 raise Exception("Failed to setup NFS mount directory on target")
-            mountcmd = "mount -o noac,nfsvers=3,port={0},udp,mountport={1} \"{2}:{3}\" \"{3}\"".format(nfsport, mountport, qemu.server_ip, tmpdir)
+            mountcmd = "mount -o noac,nfsvers=3,port={0},mountport={1} \"{2}:{3}\" \"{3}\"".format(nfsport, mountport, qemu.server_ip, tmpdir)
             status, output = qemu.run(mountcmd)
             if status != 0:
                 raise Exception("Failed to setup NFS mount on target ({})".format(repr(output)))
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index 0292c88..a5e069d 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -250,7 +250,7 @@
 DISTRO_FEATURES:append = " pam opengl wayland"
 
 # Switch to systemd
-DISTRO_FEATURES:append = " systemd"
+DISTRO_FEATURES:append = " systemd usrmerge"
 VIRTUAL-RUNTIME_init_manager = "systemd"
 VIRTUAL-RUNTIME_initscripts = ""
 VIRTUAL-RUNTIME_syslog = ""
diff --git a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
index b4f0663..4031ded 100644
--- a/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
+++ b/poky/meta/lib/oeqa/selftest/cases/overlayfs.py
@@ -58,7 +58,7 @@
 
         config = """
 IMAGE_INSTALL:append = " overlayfs-user"
-DISTRO_FEATURES:append = " systemd overlayfs"
+DISTRO_FEATURES:append = " systemd overlayfs usrmerge"
 """
 
         self.write_config(config)
@@ -79,7 +79,7 @@
 
         config = """
 IMAGE_INSTALL:append = " overlayfs-user"
-DISTRO_FEATURES += "systemd overlayfs"
+DISTRO_FEATURES += "systemd overlayfs usrmerge"
 OVERLAYFS_QA_SKIP[mnt-overlay] = "mount-configured"
 """
 
@@ -97,7 +97,7 @@
 
         config = """
 IMAGE_INSTALL:append = " overlayfs-user"
-DISTRO_FEATURES:append = " systemd overlayfs"
+DISTRO_FEATURES:append = " systemd overlayfs usrmerge"
 """
 
         self.write_config(config)
@@ -115,7 +115,7 @@
 
         config = """
 IMAGE_INSTALL:append = " overlayfs-user"
-DISTRO_FEATURES:append = " systemd overlayfs"
+DISTRO_FEATURES:append = " systemd overlayfs usrmerge"
 """
 
         wrong_machine_config = """
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
index 0f7e6eb..4c6ed4e 100644
--- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -212,10 +212,9 @@
 
         config = textwrap.dedent('''\
             PACKAGE_CLASSES = "{package_classes}"
-            INHIBIT_PACKAGE_STRIP = "1"
             TMPDIR = "{tmpdir}"
             LICENSE_FLAGS_ACCEPTED = "commercial"
-            DISTRO_FEATURES:append = ' systemd pam'
+            DISTRO_FEATURES:append = ' pam'
             USERADDEXTENSION = "useradd-staticids"
             USERADD_ERROR_DYNAMIC = "skip"
             USERADD_UID_TABLES += "files/static-passwd"
diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
index 81b8d05..463679d 100644
--- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -294,7 +294,7 @@
                 features += 'IMAGE_FEATURES += "package-management empty-root-password"\n'
                 features += 'PACKAGE_CLASSES = "%s"\n' % classes
                 if init_manager == "systemd":
-                    features += 'DISTRO_FEATURES:append = " systemd"\n'
+                    features += 'DISTRO_FEATURES:append = " systemd usrmerge"\n'
                     features += 'VIRTUAL-RUNTIME_init_manager = "systemd"\n'
                     features += 'DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"\n'
                     features += 'VIRTUAL-RUNTIME_initscripts = ""\n'
diff --git a/poky/meta/lib/oeqa/selftest/cases/rust.py b/poky/meta/lib/oeqa/selftest/cases/rust.py
index 7a0fd70..7d14814 100644
--- a/poky/meta/lib/oeqa/selftest/cases/rust.py
+++ b/poky/meta/lib/oeqa/selftest/cases/rust.py
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: MIT
 import os
 import subprocess
+import time
 from oeqa.core.decorator import OETestTag
 from oeqa.core.case import OEPTestResultTestCase
 from oeqa.selftest.case import OESelftestTestCase
@@ -40,6 +41,7 @@
     def test_rust(self, *args, **kwargs):
         # build remote-test-server before image build
         recipe = "rust"
+        start_time = time.time()
         bitbake("{} -c test_compile".format(recipe))
         builddir = get_bb_var("RUSTSRC", "rust")
         # build core-image-minimal with required packages
@@ -49,6 +51,221 @@
         features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages)))
         self.write_config("\n".join(features))
         bitbake("core-image-minimal")
+
+        # Exclude the test folders that error out while building
+        # TODO: Fix the errors and include them for testing
+        # no-fail-fast: Run all tests regardless of failure.
+        # bless: First runs rustfmt to format the codebase,
+        # then runs tidy checks.
+        exclude_list =  [
+                            'compiler/rustc',
+                            'compiler/rustc_interface/src/tests.rs',
+                            'library/panic_abort',
+                            'library/panic_unwind',
+                            'library/test/src/stats/tests.rs',
+                            'src/bootstrap/builder/tests.rs',
+                            'src/doc/rustc',
+                            'src/doc/rustdoc',
+                            'src/doc/unstable-book',
+                            'src/librustdoc',
+                            'src/rustdoc-json-types',
+                            'src/tools/compiletest/src/common.rs',
+                            'src/tools/lint-docs',
+                            'src/tools/rust-analyzer',
+                            'src/tools/rustdoc-themes',
+                            'src/tools/tidy',
+                            'tests/assembly/asm/aarch64-outline-atomics.rs',
+                            'tests/codegen/abi-main-signature-32bit-c-int.rs',
+                            'tests/codegen/abi-repr-ext.rs',
+                            'tests/codegen/abi-x86-interrupt.rs',
+                            'tests/codegen/branch-protection.rs',
+                            'tests/codegen/catch-unwind.rs',
+                            'tests/codegen/cf-protection.rs',
+                            'tests/codegen/enum-bounds-check-derived-idx.rs',
+                            'tests/codegen/force-unwind-tables.rs',
+                            'tests/codegen/intrinsic-no-unnamed-attr.rs',
+                            'tests/codegen/issues/issue-103840.rs',
+                            'tests/codegen/issues/issue-47278.rs',
+                            'tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs',
+                            'tests/codegen/lifetime_start_end.rs',
+                            'tests/codegen/local-generics-in-exe-internalized.rs',
+                            'tests/codegen/match-unoptimized.rs',
+                            'tests/codegen/noalias-rwlockreadguard.rs',
+                            'tests/codegen/non-terminate/nonempty-infinite-loop.rs',
+                            'tests/codegen/noreturn-uninhabited.rs',
+                            'tests/codegen/repr-transparent-aggregates-3.rs',
+                            'tests/codegen/sse42-implies-crc32.rs',
+                            'tests/codegen/thread-local.rs',
+                            'tests/codegen/uninit-consts.rs',
+                            'tests/pretty/raw-str-nonexpr.rs',
+                            'tests/run-make',
+                            'tests/run-make/cdylib-fewer-symbols/foo.rs',
+                            'tests/run-make/doctests-keep-binaries/t.rs',
+                            'tests/run-make-fulldeps',
+                            'tests/run-make/issue-22131/foo.rs',
+                            'tests/run-make/issue-36710/Makefile',
+                            'tests/run-make/issue-47551',
+                            'tests/run-make/pgo-branch-weights',
+                            'tests/run-make/pgo-gen',
+                            'tests/run-make/pgo-gen-lto',
+                            'tests/run-make/pgo-indirect-call-promotion',
+                            'tests/run-make/pgo-use',
+                            'tests/run-make/pointer-auth-link-with-c/Makefile',
+                            'tests/run-make/profile',
+                            'tests/run-make/static-pie',
+                            'tests/run-make/sysroot-crates-are-unstable',
+                            'tests/run-make/target-specs',
+                            'tests/rustdoc',
+                            'tests/rustdoc/async-move-doctest.rs',
+                            'tests/rustdoc/async-trait.rs',
+                            'tests/rustdoc/auto-traits.rs',
+                            'tests/rustdoc/check-source-code-urls-to-def.rs',
+                            'tests/rustdoc/comment-in-doctest.rs',
+                            'tests/rustdoc/const-generics/const-generics-docs.rs',
+                            'tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs',
+                            'tests/rustdoc/cross-crate-hidden-impl-parameter.rs',
+                            'tests/rustdoc/cross-crate-links.rs',
+                            'tests/rustdoc/cross-crate-primitive-doc.rs',
+                            'tests/rustdoc/doctest-manual-crate-name.rs',
+                            'tests/rustdoc/edition-doctest.rs',
+                            'tests/rustdoc/edition-flag.rs',
+                            'tests/rustdoc/elided-lifetime.rs',
+                            'tests/rustdoc/external-macro-src.rs',
+                            'tests/rustdoc/extern-html-root-url.rs',
+                            'tests/rustdoc/extern-impl-trait.rs',
+                            'tests/rustdoc/hide-unstable-trait.rs',
+                            'tests/rustdoc/inline_cross/add-docs.rs',
+                            'tests/rustdoc/inline_cross/default-trait-method.rs',
+                            'tests/rustdoc/inline_cross/dyn_trait.rs',
+                            'tests/rustdoc/inline_cross/impl_trait.rs',
+                            'tests/rustdoc/inline_cross/issue-24183.rs',
+                            'tests/rustdoc/inline_cross/macros.rs',
+                            'tests/rustdoc/inline_cross/trait-vis.rs',
+                            'tests/rustdoc/inline_cross/use_crate.rs',
+                            'tests/rustdoc/intra-doc-crate/self.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/additional_doc.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/basic.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/crate.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/hidden.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/macro.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/module.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs',
+                            'tests/rustdoc/intra-doc/cross-crate/traits.rs',
+                            'tests/rustdoc/intra-doc/extern-builtin-type-impl.rs',
+                            'tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs',
+                            'tests/rustdoc/intra-doc/extern-crate.rs',
+                            'tests/rustdoc/intra-doc/extern-inherent-impl.rs',
+                            'tests/rustdoc/intra-doc/extern-reference-link.rs',
+                            'tests/rustdoc/intra-doc/issue-103463.rs',
+                            'tests/rustdoc/intra-doc/issue-104145.rs',
+                            'tests/rustdoc/intra-doc/issue-66159.rs',
+                            'tests/rustdoc/intra-doc/pub-use.rs',
+                            'tests/rustdoc/intra-doc/reexport-additional-docs.rs',
+                            'tests/rustdoc/issue-18199.rs',
+                            'tests/rustdoc/issue-23106.rs',
+                            'tests/rustdoc/issue-23744.rs',
+                            'tests/rustdoc/issue-25944.rs',
+                            'tests/rustdoc/issue-30252.rs',
+                            'tests/rustdoc/issue-38129.rs',
+                            'tests/rustdoc/issue-40936.rs',
+                            'tests/rustdoc/issue-43153.rs',
+                            'tests/rustdoc/issue-46727.rs',
+                            'tests/rustdoc/issue-48377.rs',
+                            'tests/rustdoc/issue-48414.rs',
+                            'tests/rustdoc/issue-53689.rs',
+                            'tests/rustdoc/issue-54478-demo-allocator.rs',
+                            'tests/rustdoc/issue-57180.rs',
+                            'tests/rustdoc/issue-61592.rs',
+                            'tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs',
+                            'tests/rustdoc/issue-75588.rs',
+                            'tests/rustdoc/issue-85454.rs',
+                            'tests/rustdoc/issue-86620.rs',
+                            'tests/rustdoc-json',
+                            'tests/rustdoc-js-std',
+                            'tests/rustdoc/macro_pub_in_module.rs',
+                            'tests/rustdoc/masked.rs',
+                            'tests/rustdoc/normalize-assoc-item.rs',
+                            'tests/rustdoc/no-stack-overflow-25295.rs',
+                            'tests/rustdoc/primitive-reexport.rs',
+                            'tests/rustdoc/process-termination.rs',
+                            'tests/rustdoc/pub-extern-crate.rs',
+                            'tests/rustdoc/pub-use-extern-macros.rs',
+                            'tests/rustdoc/reexport-check.rs',
+                            'tests/rustdoc/reexport-dep-foreign-fn.rs',
+                            'tests/rustdoc/reexport-doc.rs',
+                            'tests/rustdoc/reexports-priv.rs',
+                            'tests/rustdoc/reexports.rs',
+                            'tests/rustdoc/rustc,-incoherent-impls.rs',
+                            'tests/rustdoc/test_option_check/bar.rs',
+                            'tests/rustdoc/test_option_check/test.rs',
+                            'tests/rustdoc/trait-alias-mention.rs',
+                            'tests/rustdoc/trait-visibility.rs',
+                            'tests/rustdoc-ui/cfg-test.rs',
+                            'tests/rustdoc-ui/check-cfg-test.rs',
+                            'tests/rustdoc-ui/display-output.rs',
+                            'tests/rustdoc-ui/doc-comment-multi-line-attr.rs',
+                            'tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs',
+                            'tests/rustdoc-ui/doc-test-doctest-feature.rs',
+                            'tests/rustdoc-ui/doctest-multiline-crate-attribute.rs',
+                            'tests/rustdoc-ui/doctest-output.rs',
+                            'tests/rustdoc-ui/doc-test-rustdoc-feature.rs',
+                            'tests/rustdoc-ui/failed-doctest-compile-fail.rs',
+                            'tests/rustdoc-ui/issue-80992.rs',
+                            'tests/rustdoc-ui/issue-91134.rs',
+                            'tests/rustdoc-ui/nocapture-fail.rs',
+                            'tests/rustdoc-ui/nocapture.rs',
+                            'tests/rustdoc-ui/no-run-flag.rs',
+                            'tests/rustdoc-ui/run-directory.rs',
+                            'tests/rustdoc-ui/test-no_std.rs',
+                            'tests/rustdoc-ui/test-type.rs',
+                            'tests/rustdoc/unit-return.rs',
+                            'tests/ui/abi/stack-probes-lto.rs',
+                            'tests/ui/abi/stack-probes.rs',
+                            'tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs',
+                            'tests/ui/asm/x86_64/sym.rs',
+                            'tests/ui/associated-type-bounds/fn-apit.rs',
+                            'tests/ui/associated-type-bounds/fn-dyn-apit.rs',
+                            'tests/ui/associated-type-bounds/fn-wrap-apit.rs',
+                            'tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs',
+                            'tests/ui/drop/dynamic-drop.rs',
+                            'tests/ui/empty_global_asm.rs',
+                            'tests/ui-fulldeps/deriving-encodable-decodable-box.rs',
+                            'tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs',
+                            'tests/ui-fulldeps/deriving-global.rs',
+                            'tests/ui-fulldeps/deriving-hygiene.rs',
+                            'tests/ui-fulldeps/dropck_tarena_sound_drop.rs',
+                            'tests/ui-fulldeps/empty-struct-braces-derive.rs',
+                            'tests/ui-fulldeps/internal-lints/bad_opt_access.rs',
+                            'tests/ui-fulldeps/internal-lints/bad_opt_access.stderr',
+                            'tests/ui-fulldeps/internal-lints/default_hash_types.rs',
+                            'tests/ui-fulldeps/internal-lints/diagnostics.rs',
+                            'tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs',
+                            'tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs',
+                            'tests/ui-fulldeps/internal-lints/query_stability.rs',
+                            'tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs',
+                            'tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs',
+                            'tests/ui-fulldeps/issue-14021.rs',
+                            'tests/ui-fulldeps/lint-group-denied-lint-allowed.rs',
+                            'tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs',
+                            'tests/ui-fulldeps/lint-pass-macros.rs',
+                            'tests/ui-fulldeps/regions-mock-tcx.rs',
+                            'tests/ui-fulldeps/rustc_encodable_hygiene.rs',
+                            'tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs',
+                            'tests/ui/functions-closures/fn-help-with-err.rs',
+                            'tests/ui/linkage-attr/issue-10755.rs',
+                            'tests/ui/macros/restricted-shadowing-legacy.rs',
+                            'tests/ui/process/nofile-limit.rs',
+                            'tests/ui/process/process-panic-after-fork.rs',
+                            'tests/ui/process/process-sigpipe.rs',
+                            'tests/ui/simd/target-feature-mixup.rs',
+                            'tests/ui/structs-enums/multiple-reprs.rs'
+                        ]
+
+        exclude_fail_tests = " ".join([" --exclude " + item for item in exclude_list])
+        # Add exclude_fail_tests with other test arguments
+        testargs =  exclude_fail_tests + " --doc --no-fail-fast --bless"
+
         # wrap the execution with a qemu instance.
         # Tests are run with 512 tasks in parallel to execute all tests very quickly
         with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 512") as qemu:
@@ -65,13 +282,6 @@
             rustlibpath = get_bb_var("WORKDIR", "rust")
             tmpdir = get_bb_var("TMPDIR", "rust")
 
-            # Exclude the test folders that error out while building
-            # TODO: Fix the errors and include them for testing
-            # no-fail-fast: Run all tests regardless of failure.
-            # bless: First runs rustfmt to format the codebase,
-            # then runs tidy checks.
-            testargs = "--exclude tests/rustdoc --exclude src/tools/rust-analyzer  --exclude tests/rustdoc-json  --exclude tests/run-make-fulldeps --exclude src/tools/tidy --exclude src/tools/rustdoc-themes --exclude src/rustdoc-json-types --exclude src/librustdoc --exclude src/doc/unstable-book --exclude src/doc/rustdoc --exclude src/doc/rustc --exclude compiler/rustc --exclude library/panic_abort --exclude library/panic_unwind --exclude src/tools/lint-docs  --exclude tests/rustdoc-js-std --doc --no-fail-fast --bless"
-
             # Set path for target-poky-linux-gcc, RUST_TARGET_PATH and hosttools.
             cmd = " export PATH=%s/recipe-sysroot-native/usr/bin:$PATH;" % rustlibpath
             cmd = cmd + " export TARGET_VENDOR=\"-poky\";"
@@ -81,9 +291,10 @@
             cmd = cmd + " export TEST_DEVICE_ADDR=\"%s:12345\";" % qemu.ip
             cmd = cmd + " cd %s; python3 src/bootstrap/bootstrap.py test %s --target %s > summary.txt 2>&1;" % (builddir, testargs, targetsys)
             runCmd(cmd)
+            end_time = time.time()
 
             ptestsuite = "rust"
-            self.ptest_section(ptestsuite, logfile = builddir + "/summary.txt")
+            self.ptest_section(ptestsuite, duration = int(end_time - start_time), logfile = builddir + "/summary.txt")
             filename = builddir + "/summary.txt"
             test_results = parse_results(filename)
             for test in test_results:
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index febafdb..3fa3038 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -691,3 +691,86 @@
         self.maxDiff = None
         self.assertCountEqual(files1, files2)
 
+class SStateFindSiginfo(SStateBase):
+    def test_sstate_compare_sigfiles_and_find_siginfo(self):
+        """
+        Test the functionality of the find_siginfo: basic function and callback in compare_sigfiles
+        """
+        self.write_config("""
+TMPDIR = \"${TOPDIR}/tmp-sstates-findsiginfo\"
+TCLIBCAPPEND = \"\"
+MACHINE = \"qemux86-64\"
+require conf/multilib.conf
+MULTILIBS = "multilib:lib32"
+DEFAULTTUNE:virtclass-multilib-lib32 = "x86"
+BB_SIGNATURE_HANDLER = "OEBasicHash"
+""")
+        self.track_for_cleanup(self.topdir + "/tmp-sstates-findsiginfo")
+
+        pns = ["binutils", "binutils-native", "lib32-binutils"]
+        target_configs = [
+"""
+TMPVAL1 = "tmpval1"
+TMPVAL2 = "tmpval2"
+do_tmptask1() {
+    echo ${TMPVAL1}
+}
+do_tmptask2() {
+    echo ${TMPVAL2}
+}
+addtask do_tmptask1
+addtask tmptask2 before do_tmptask1
+""",
+"""
+TMPVAL3 = "tmpval3"
+TMPVAL4 = "tmpval4"
+do_tmptask1() {
+    echo ${TMPVAL3}
+}
+do_tmptask2() {
+    echo ${TMPVAL4}
+}
+addtask do_tmptask1
+addtask tmptask2 before do_tmptask1
+"""
+        ]
+
+        for target_config in target_configs:
+            self.write_recipeinc("binutils", target_config)
+            for pn in pns:
+                bitbake("%s -c do_tmptask1 -S none" % pn)
+            self.delete_recipeinc("binutils")
+
+        with bb.tinfoil.Tinfoil() as tinfoil:
+            tinfoil.prepare(config_only=True)
+
+            def find_siginfo(pn, taskname, sigs=None):
+                result = None
+                tinfoil.set_event_mask(["bb.event.FindSigInfoResult",
+                                "bb.command.CommandCompleted"])
+                ret = tinfoil.run_command("findSigInfo", pn, taskname, sigs)
+                if ret:
+                    while True:
+                        event = tinfoil.wait_event(1)
+                        if event:
+                            if isinstance(event, bb.command.CommandCompleted):
+                                break
+                            elif isinstance(event, bb.event.FindSigInfoResult):
+                                result = event.result
+                return result
+
+            def recursecb(key, hash1, hash2):
+                nonlocal recursecb_count
+                recursecb_count += 1
+                hashes = [hash1, hash2]
+                hashfiles = find_siginfo(key, None, hashes)
+                self.assertCountEqual(hashes, hashfiles)
+                bb.siggen.compare_sigfiles(hashfiles[hash1], hashfiles[hash2], recursecb)
+
+            for pn in pns:
+                recursecb_count = 0
+                filedates = find_siginfo(pn, "do_tmptask1")
+                self.assertGreaterEqual(len(filedates), 2)
+                latestfiles = sorted(filedates.keys(), key=lambda f: filedates[f])[-2:]
+                bb.siggen.compare_sigfiles(latestfiles[-2], latestfiles[-1], recursecb)
+                self.assertEqual(recursecb_count,1)
diff --git a/poky/meta/lib/oeqa/utils/nfs.py b/poky/meta/lib/oeqa/utils/nfs.py
index b66ed42..903469b 100644
--- a/poky/meta/lib/oeqa/utils/nfs.py
+++ b/poky/meta/lib/oeqa/utils/nfs.py
@@ -12,7 +12,7 @@
 from oeqa.utils.network import get_free_port
 
 @contextlib.contextmanager
-def unfs_server(directory, logger = None):
+def unfs_server(directory, logger = None, udp = True):
     unfs_sysroot = get_bb_var("RECIPE_SYSROOT_NATIVE", "unfs3-native")
     if not os.path.exists(os.path.join(unfs_sysroot, "usr", "bin", "unfsd")):
         # build native tool
@@ -26,7 +26,7 @@
             exports.write("{0} (rw,no_root_squash,no_all_squash,insecure)\n".format(directory).encode())
 
         # find some ports for the server
-        nfsport, mountport = get_free_port(udp = True), get_free_port(udp = True)
+        nfsport, mountport = get_free_port(udp), get_free_port(udp)
 
         nenv = dict(os.environ)
         nenv['PATH'] = "{0}/sbin:{0}/usr/sbin:{0}/usr/bin:".format(unfs_sysroot) + nenv.get('PATH', '')
diff --git a/poky/meta/recipes-bsp/efivar/efivar_38.bb b/poky/meta/recipes-bsp/efivar/efivar_38.bb
index 87a1e66..411e951 100644
--- a/poky/meta/recipes-bsp/efivar/efivar_38.bb
+++ b/poky/meta/recipes-bsp/efivar/efivar_38.bb
@@ -19,10 +19,6 @@
 
 export CCLD_FOR_BUILD = "${BUILD_CCLD}"
 
-# Upstream uses --add-needed in gcc.specs which gold doesn't support, so
-# enforce BFD.
-LDFLAGS += "-fuse-ld=bfd"
-
 do_compile() {
     oe_runmake ERRORS= HOST_CFLAGS="${BUILD_CFLAGS}" HOST_LDFLAGS="${BUILD_LDFLAGS}"
 }
diff --git a/poky/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-adjust-type-definitions.patch b/poky/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-adjust-type-definitions.patch
new file mode 100644
index 0000000..3475606
--- /dev/null
+++ b/poky/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-adjust-type-definitions.patch
@@ -0,0 +1,34 @@
+From 1de509497826faa0ad84b82f5e2c3d21ee613459 Mon Sep 17 00:00:00 2001
+From: Moody Liu <mooodyhunter@outlook.com>
+Date: Sat, 13 May 2023 17:39:16 +0100
+Subject: [PATCH] riscv64: adjust type definitions
+
+CHAR8 needs to be defined while BOOLEAN should be removed
+here to prevent typedef conflicts
+
+Upstream-Status: Backport [https://sourceforge.net/p/gnu-efi/code/ci/1de509497826faa0ad84b82f5e2c3d21ee613459/]
+Signed-off-by: Moody Liu <mooodyhunter@outlook.com>
+---
+ inc/riscv64/efibind.h | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/inc/riscv64/efibind.h b/inc/riscv64/efibind.h
+index 4fdf81d..d8b4f39 100644
+--- a/inc/riscv64/efibind.h
++++ b/inc/riscv64/efibind.h
+@@ -32,11 +32,9 @@ typedef uint16_t                UINT16;
+ typedef int16_t                 INT16;
+ typedef uint8_t                 UINT8;
+ typedef int8_t                  INT8;
++typedef char                    CHAR8;
+ typedef wchar_t                 CHAR16;
+ #define WCHAR                   CHAR16
+-#ifndef BOOLEAN
+-typedef uint8_t                 BOOLEAN;
+-#endif
+ #undef VOID
+ typedef void                    VOID;
+ typedef int64_t                 INTN;
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-ignore-unknown-relocs.patch b/poky/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-ignore-unknown-relocs.patch
new file mode 100644
index 0000000..5b3c152
--- /dev/null
+++ b/poky/meta/recipes-bsp/gnu-efi/gnu-efi/0001-riscv64-ignore-unknown-relocs.patch
@@ -0,0 +1,32 @@
+From 708f66acfec9a86f237726d45095cbd380fd83ca Mon Sep 17 00:00:00 2001
+From: Callum Farmer <gmbr3@opensuse.org>
+Date: Wed, 21 Jun 2023 11:32:28 +0100
+Subject: [PATCH] riscv64: ignore unknown relocs
+
+Sometimes ld emits relocs such as R_RISCV_64 for unwind symbols
+these don't need to be handled yet so just can be skipped otherwise
+the binary will never load
+
+Upstream-Status: Backport [https://sourceforge.net/p/gnu-efi/code/ci/708f66acfec9a86f237726d45095cbd380fd83ca/]
+Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
+---
+ gnuefi/reloc_riscv64.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/gnuefi/reloc_riscv64.c b/gnuefi/reloc_riscv64.c
+index 0b02d83..e429602 100644
+--- a/gnuefi/reloc_riscv64.c
++++ b/gnuefi/reloc_riscv64.c
+@@ -81,8 +81,7 @@ EFI_STATUS EFIAPI _relocate(long ldbase, Elf_Dyn *dyn)
+ 			*addr = ldbase + rel->r_addend;
+ 			break;
+ 		default:
+-			/* Panic */
+-			while (1) ;
++				break;
+ 		}
+ 		rel = (Elf_Rela *)((char *)rel + relent);
+ 		relsz -= relent;
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.15.bb b/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.17.bb
similarity index 89%
rename from poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.15.bb
rename to poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.17.bb
index 5ae6f39..d37d638 100644
--- a/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.15.bb
+++ b/poky/meta/recipes-bsp/gnu-efi/gnu-efi_3.0.17.bb
@@ -15,9 +15,11 @@
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/files/${BP}.tar.bz2 \
            file://parallel-make-archives.patch \
            file://gnu-efi-3.0.9-fix-clang-build.patch \
+           file://0001-riscv64-adjust-type-definitions.patch \
+           file://0001-riscv64-ignore-unknown-relocs.patch \
            "
 
-SRC_URI[sha256sum] = "931a257b9c5c1ba65ff519f18373c438a26825f2db7866b163e96d1b168f20ea"
+SRC_URI[sha256sum] = "7807e903349343a7a142ebb934703a2872235e89688cf586c032b0a1087bcaf4"
 
 COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*|riscv64.*)-linux"
 COMPATIBLE_HOST:armv4 = 'null'
@@ -34,6 +36,10 @@
         return "ia32"
     return tarch
 
+do_compile:prepend() {
+    unset LDFLAGS
+}
+
 EXTRA_OEMAKE = "'ARCH=${@gnu_efi_arch(d)}' 'CC=${CC}' 'AS=${AS}' 'LD=${LD}' 'AR=${AR}' \
                 'RANLIB=${RANLIB}' 'OBJCOPY=${OBJCOPY}' 'PREFIX=${prefix}' 'LIBDIR=${libdir}' \
                 "
@@ -46,7 +52,7 @@
         oe_runmake install INSTALLROOT="${D}"
 }
 
-FILES:${PN} += "${libdir}/*.lds"
+FILES:${PN} += "${libdir}/*.lds ${libdir}/gnuefi/apps"
 
 # 64-bit binaries are expected for EFI when targeting X32
 INSANE_SKIP:${PN}-dev:append:linux-gnux32 = " arch"
diff --git a/poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb b/poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
index dcc09f2..2c3ade9 100644
--- a/poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
+++ b/poky/meta/recipes-bsp/pm-utils/pm-utils_1.4.1.bb
@@ -17,7 +17,7 @@
 
 PACKAGECONFIG[manpages] = "--enable-doc, --disable-doc, libxslt-native xmlto-native"
 
-RDEPENDS:${PN} = "grep bash"
+RDEPENDS:${PN} = "bash"
 
 EXTRA_OECONF = "--libdir=${nonarch_libdir}"
 
diff --git a/poky/meta/recipes-bsp/setserial/setserial_2.17.bb b/poky/meta/recipes-bsp/setserial/setserial_2.17.bb
index e46aeb9..8e4bb62 100644
--- a/poky/meta/recipes-bsp/setserial/setserial_2.17.bb
+++ b/poky/meta/recipes-bsp/setserial/setserial_2.17.bb
@@ -1,7 +1,6 @@
 SUMMARY = "Controls the configuration of serial ports"
 DESCRIPTION = "setserial is a program designed to set and/or report the configuration information associated with a serial port"
 HOMEPAGE = "http://setserial.sourceforge.net"
-AUTHOR = "Theodore Ts'o <tytso@mit.edu>"
 SECTION = "console/utils"
 
 LICENSE = "GPL-2.0-only"
diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
index d1c6f7f..7b0f490 100644
--- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
+++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -5,7 +5,6 @@
 IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for automatic IP address \
 configuration from the link-local 169.254.0.0/16 range without the need for a central \
 server.'
-AUTHOR = "Lennart Poettering <lennart@poettering.net>"
 HOMEPAGE = "http://avahi.org"
 BUGTRACKER = "https://github.com/lathiat/avahi/issues"
 SECTION = "network"
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind/0001-avoid-start-failure-with-bind-user.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/0001-avoid-start-failure-with-bind-user.patch
rename to poky/meta/recipes-connectivity/bind/bind/0001-avoid-start-failure-with-bind-user.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind/0001-named-lwresd-V-and-start-log-hide-build-options.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/0001-named-lwresd-V-and-start-log-hide-build-options.patch
rename to poky/meta/recipes-connectivity/bind/bind/0001-named-lwresd-V-and-start-log-hide-build-options.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind/bind-ensure-searching-for-json-headers-searches-sysr.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/bind-ensure-searching-for-json-headers-searches-sysr.patch
rename to poky/meta/recipes-connectivity/bind/bind/bind-ensure-searching-for-json-headers-searches-sysr.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/bind9 b/poky/meta/recipes-connectivity/bind/bind/bind9
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/bind9
rename to poky/meta/recipes-connectivity/bind/bind/bind9
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/conf.patch b/poky/meta/recipes-connectivity/bind/bind/conf.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/conf.patch
rename to poky/meta/recipes-connectivity/bind/bind/conf.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind/generate-rndc-key.sh
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/generate-rndc-key.sh
rename to poky/meta/recipes-connectivity/bind/bind/generate-rndc-key.sh
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind/init.d-add-support-for-read-only-rootfs.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/init.d-add-support-for-read-only-rootfs.patch
rename to poky/meta/recipes-connectivity/bind/bind/init.d-add-support-for-read-only-rootfs.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind/make-etc-initd-bind-stop-work.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/make-etc-initd-bind-stop-work.patch
rename to poky/meta/recipes-connectivity/bind/bind/make-etc-initd-bind-stop-work.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.18.16/named.service b/poky/meta/recipes-connectivity/bind/bind/named.service
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.18.16/named.service
rename to poky/meta/recipes-connectivity/bind/bind/named.service
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.18.16.bb b/poky/meta/recipes-connectivity/bind/bind_9.18.17.bb
similarity index 95%
rename from poky/meta/recipes-connectivity/bind/bind_9.18.16.bb
rename to poky/meta/recipes-connectivity/bind/bind_9.18.17.bb
index d9b62bb..9e7973e 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.18.16.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.18.17.bb
@@ -4,7 +4,7 @@
 SECTION = "console/network"
 
 LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d8cf7bd9c4fd5471a588e7e66e672408"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=c7a0b6d9a1b692a5da9af9d503671f43"
 
 DEPENDS = "openssl libcap zlib libuv"
 
@@ -20,7 +20,7 @@
            file://0001-avoid-start-failure-with-bind-user.patch \
            "
 
-SRC_URI[sha256sum] = "c88234fe07ee75c3c8a9e59152fee64b714643de8e22cf98da3db4d0b57e0775"
+SRC_URI[sha256sum] = "bde1c5017b81d1d79c69eb8f537f2e5032fd3623acdd5ee830d4f74bc2483458"
 
 UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
 # follow the ESV versions divisible by 2
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5_5.68.bb b/poky/meta/recipes-connectivity/bluez5/bluez5_5.68.bb
index f8405ed..7c7ad75 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5_5.68.bb
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5_5.68.bb
@@ -2,8 +2,7 @@
 
 SRC_URI[sha256sum] = "fc505e6445cb579a55cacee6821fe70d633921522043d322b696de0a175ff933"
 
-CVE_STATUS[CVE-2022-3563] = "cpe-incorrect: This issues have kernel fixes rather than bluez fixes"
-CVE_STATUS[CVE-2022-3637] = "cpe-incorrect: This issues have kernel fixes rather than bluez fixes"
+CVE_STATUS[CVE-2020-24490] = "cpe-incorrect: This issue has kernel fixes rather than bluez fixes"
 
 # noinst programs in Makefile.tools that are conditional on READLINE
 # support
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2/0001-bridge-mdb.c-include-limits.h.patch b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-bridge-mdb.c-include-limits.h.patch
new file mode 100644
index 0000000..f9a0e35
--- /dev/null
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2/0001-bridge-mdb.c-include-limits.h.patch
@@ -0,0 +1,41 @@
+From b13f04c0c685b6d2474aa7d97e191531f327bc45 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Thu, 20 Jul 2023 14:32:23 -0400
+Subject: [PATCH] bridge/mdb.c: include limits.h
+
+Upstream-Status: Submitted
+(https://lore.kernel.org/netdev/20230720203726.2316251-1-tgamblin@baylibre.com/)
+
+While building iproute2 6.4.0 with musl using Yocto Project, errors such
+as the following were encountered:
+
+| mdb.c: In function 'mdb_parse_vni':
+| mdb.c:666:47: error: 'ULONG_MAX' undeclared (first use in this function)
+|   666 |         if ((endptr && *endptr) || vni_num == ULONG_MAX)
+|       |                                               ^~~~~~~~~
+| mdb.c:666:47: note: 'ULONG_MAX' is defined in header '<limits.h>'; did you forget to '#include <limits.h>'?
+
+Include limits.h in bridge/mdb.c to fix this issue. This change is based
+on one in Alpine Linux, but the author there had no plans to submit:
+https://git.alpinelinux.org/aports/commit/main/iproute2/include.patch?id=bd46efb8a8da54948639cebcfa5b37bd608f1069
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ bridge/mdb.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/bridge/mdb.c b/bridge/mdb.c
+index fbb4f704..18793458 100644
+--- a/bridge/mdb.c
++++ b/bridge/mdb.c
+@@ -15,6 +15,7 @@
+ #include <string.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>
++#include <limits.h>
+ 
+ #include "libnetlink.h"
+ #include "utils.h"
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2_6.3.0.bb b/poky/meta/recipes-connectivity/iproute2/iproute2_6.4.0.bb
similarity index 95%
rename from poky/meta/recipes-connectivity/iproute2/iproute2_6.3.0.bb
rename to poky/meta/recipes-connectivity/iproute2/iproute2_6.4.0.bb
index 892fa85..32e2f81 100644
--- a/poky/meta/recipes-connectivity/iproute2/iproute2_6.3.0.bb
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2_6.4.0.bb
@@ -13,9 +13,10 @@
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/net/${BPN}/${BP}.tar.xz \
            file://0001-libc-compat.h-add-musl-workaround.patch \
+           file://0001-bridge-mdb.c-include-limits.h.patch \
            "
 
-SRC_URI[sha256sum] = "dfb2a98db96e7a653cffc6693335a1a466e29a34b6ac528be48f35e1d2766732"
+SRC_URI[sha256sum] = "4c51b8decbc7e4da159ffb066f590cfb93dbf9af7ff86b1647ce42b7c179a272"
 
 inherit update-alternatives bash-completion pkgconfig
 
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Replace-statfs64-with-statfs.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Replace-statfs64-with-statfs.patch
deleted file mode 100644
index 40ceff9..0000000
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-Replace-statfs64-with-statfs.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From e89652b853ca7de671093ae44305fa3435e13d3d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 15 Dec 2022 13:29:43 -0800
-Subject: [PATCH] Replace statfs64 with statfs
-
-autoconf AC_SYS_LARGEFILE is used by configure to add needed defines
-when needed for enabling 64bit off_t, therefore replacing statfs64 with
-statfs should be functionally same. Additionally this helps compiling
-with latest musl where 64bit LFS functions like statfs64 and friends are
-now moved under _LARGEFILE64_SOURCE feature test macro, this works on
-glibc systems because _GNU_SOURCE macros also enables
-_LARGEFILE64_SOURCE indirectly. This is not case with musl and this
-latest issue is exposed.
-
-Upstream-Status: Submitted [https://lore.kernel.org/linux-nfs/20221215213605.4061853-1-raj.khem@gmail.com/T/#u]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- support/export/cache.c      | 14 +++++++-------
- support/include/nfsd_path.h |  6 +++---
- support/misc/nfsd_path.c    | 24 ++++++++++++------------
- utils/exportfs/exportfs.c   |  4 ++--
- 4 files changed, 24 insertions(+), 24 deletions(-)
-
-diff --git a/support/export/cache.c b/support/export/cache.c
-index a5823e9..2497d4f 100644
---- a/support/export/cache.c
-+++ b/support/export/cache.c
-@@ -346,27 +346,27 @@ static int uuid_by_path(char *path, int type, size_t uuidlen, char *uuid)
- 
- 	/* Possible sources of uuid are
- 	 * - blkid uuid
--	 * - statfs64 uuid
-+	 * - statfs uuid
- 	 *
--	 * On some filesystems (e.g. vfat) the statfs64 uuid is simply an
-+	 * On some filesystems (e.g. vfat) the statfs uuid is simply an
- 	 * encoding of the device that the filesystem is mounted from, so
- 	 * it we be very bad to use that (as device numbers change).  blkid
- 	 * must be preferred.
--	 * On other filesystems (e.g. btrfs) the statfs64 uuid contains
-+	 * On other filesystems (e.g. btrfs) the statfs uuid contains
- 	 * important info that the blkid uuid cannot contain:  This happens
- 	 * when multiple subvolumes are exported (they have the same
--	 * blkid uuid but different statfs64 uuids).
-+	 * blkid uuid but different statfs uuids).
- 	 * We rely on get_uuid_blkdev *knowing* which is which and not returning
--	 * a uuid for filesystems where the statfs64 uuid is better.
-+	 * a uuid for filesystems where the statfs uuid is better.
- 	 *
- 	 */
--	struct statfs64 st;
-+	struct statfs st;
- 	char fsid_val[17];
- 	const char *blkid_val = NULL;
- 	const char *val;
- 	int rc;
- 
--	rc = nfsd_path_statfs64(path, &st);
-+	rc = nfsd_path_statfs(path, &st);
- 
- 	if (type == 0 && rc == 0) {
- 		const unsigned long *bad;
-diff --git a/support/include/nfsd_path.h b/support/include/nfsd_path.h
-index 3b73aad..aa1e1dd 100644
---- a/support/include/nfsd_path.h
-+++ b/support/include/nfsd_path.h
-@@ -7,7 +7,7 @@
- #include <sys/stat.h>
- 
- struct file_handle;
--struct statfs64;
-+struct statfs;
- 
- void 		nfsd_path_init(void);
- 
-@@ -18,8 +18,8 @@ char *		nfsd_path_prepend_dir(const char *dir, const char *pathname);
- int 		nfsd_path_stat(const char *pathname, struct stat *statbuf);
- int 		nfsd_path_lstat(const char *pathname, struct stat *statbuf);
- 
--int		nfsd_path_statfs64(const char *pathname,
--				   struct statfs64 *statbuf);
-+int		nfsd_path_statfs(const char *pathname,
-+				   struct statfs *statbuf);
- 
- char *		nfsd_realpath(const char *path, char *resolved_path);
- 
-diff --git a/support/misc/nfsd_path.c b/support/misc/nfsd_path.c
-index 65e53c1..c3dea4f 100644
---- a/support/misc/nfsd_path.c
-+++ b/support/misc/nfsd_path.c
-@@ -184,46 +184,46 @@ nfsd_path_lstat(const char *pathname, struct stat *statbuf)
- 	return nfsd_run_stat(nfsd_wq, nfsd_lstatfunc, pathname, statbuf);
- }
- 
--struct nfsd_statfs64_data {
-+struct nfsd_statfs_data {
- 	const char *pathname;
--	struct statfs64 *statbuf;
-+	struct statfs *statbuf;
- 	int ret;
- 	int err;
- };
- 
- static void
--nfsd_statfs64func(void *data)
-+nfsd_statfsfunc(void *data)
- {
--	struct nfsd_statfs64_data *d = data;
-+	struct nfsd_statfs_data *d = data;
- 
--	d->ret = statfs64(d->pathname, d->statbuf);
-+	d->ret = statfs(d->pathname, d->statbuf);
- 	if (d->ret < 0)
- 		d->err = errno;
- }
- 
- static int
--nfsd_run_statfs64(struct xthread_workqueue *wq,
-+nfsd_run_statfs(struct xthread_workqueue *wq,
- 		  const char *pathname,
--		  struct statfs64 *statbuf)
-+		  struct statfs *statbuf)
- {
--	struct nfsd_statfs64_data data = {
-+	struct nfsd_statfs_data data = {
- 		pathname,
- 		statbuf,
- 		0,
- 		0
- 	};
--	xthread_work_run_sync(wq, nfsd_statfs64func, &data);
-+	xthread_work_run_sync(wq, nfsd_statfsfunc, &data);
- 	if (data.ret < 0)
- 		errno = data.err;
- 	return data.ret;
- }
- 
- int
--nfsd_path_statfs64(const char *pathname, struct statfs64 *statbuf)
-+nfsd_path_statfs(const char *pathname, struct statfs *statbuf)
- {
- 	if (!nfsd_wq)
--		return statfs64(pathname, statbuf);
--	return nfsd_run_statfs64(nfsd_wq, pathname, statbuf);
-+		return statfs(pathname, statbuf);
-+	return nfsd_run_statfs(nfsd_wq, pathname, statbuf);
- }
- 
- struct nfsd_realpath_data {
-diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
-index 0897b22..6d79a5b 100644
---- a/utils/exportfs/exportfs.c
-+++ b/utils/exportfs/exportfs.c
-@@ -513,7 +513,7 @@ validate_export(nfs_export *exp)
- 	 */
- 	struct stat stb;
- 	char *path = exportent_realpath(&exp->m_export);
--	struct statfs64 stf;
-+	struct statfs stf;
- 	int fs_has_fsid = 0;
- 
- 	if (stat(path, &stb) < 0) {
-@@ -528,7 +528,7 @@ validate_export(nfs_export *exp)
- 	if (!can_test())
- 		return;
- 
--	if (!statfs64(path, &stf) &&
-+	if (!statfs(path, &stf) &&
- 	    (stf.f_fsid.__val[0] || stf.f_fsid.__val[1]))
- 		fs_has_fsid = 1;
- 
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-libevent-and-libsqlite3-checked-when-nf.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-libevent-and-libsqlite3-checked-when-nf.patch
new file mode 100644
index 0000000..5afc714
--- /dev/null
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-configure.ac-libevent-and-libsqlite3-checked-when-nf.patch
@@ -0,0 +1,80 @@
+From b62a3fe424026b73ec6b1934483b16863c7dff23 Mon Sep 17 00:00:00 2001
+From: Wiktor Jaskulski <wjaskulski@adva.com>
+Date: Thu, 11 May 2023 15:28:23 -0400
+Subject: [PATCH] configure.ac: libevent and libsqlite3 checked when nfsv4 is
+ disabled
+
+Upstream-Status: Backport
+(http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=commit;h=bc4a5deef9f820c55fdac3c0070364c17cd91cca)
+
+Signed-off-by: Steve Dickson <steved@redhat.com>
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ configure.ac | 38 +++++++++++++++-----------------------
+ 1 file changed, 15 insertions(+), 23 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4ade528d..519cacbf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -335,42 +335,34 @@ AC_CHECK_HEADER(rpc/rpc.h, ,
+                 AC_MSG_ERROR([Header file rpc/rpc.h not found - maybe try building with --enable-tirpc]))
+ CPPFLAGS="${nfsutils_save_CPPFLAGS}"
+ 
++dnl check for libevent libraries and headers
++AC_LIBEVENT
++
++dnl Check for sqlite3
++AC_SQLITE3_VERS
++
++case $libsqlite3_cv_is_recent in
++yes) ;;
++unknown)
++   dnl do not fail when cross-compiling
++   AC_MSG_WARN([assuming sqlite is at least v3.3]) ;;
++*)
++   AC_MSG_ERROR([nfsdcld requires sqlite-devel]) ;;
++esac
++
+ if test "$enable_nfsv4" = yes; then
+-  dnl check for libevent libraries and headers
+-  AC_LIBEVENT
+ 
+   dnl check for the keyutils libraries and headers
+   AC_KEYUTILS
+ 
+-  dnl Check for sqlite3
+-  AC_SQLITE3_VERS
+-
+   if test "$enable_nfsdcld" = "yes"; then
+ 	AC_CHECK_HEADERS([libgen.h sys/inotify.h], ,
+ 		AC_MSG_ERROR([Cannot find header needed for nfsdcld]))
+-
+-    case $libsqlite3_cv_is_recent in
+-    yes) ;;
+-    unknown)
+-      dnl do not fail when cross-compiling
+-      AC_MSG_WARN([assuming sqlite is at least v3.3]) ;;
+-    *)
+-      AC_MSG_ERROR([nfsdcld requires sqlite-devel]) ;;
+-    esac
+   fi
+ 
+   if test "$enable_nfsdcltrack" = "yes"; then
+ 	AC_CHECK_HEADERS([libgen.h sys/inotify.h], ,
+ 		AC_MSG_ERROR([Cannot find header needed for nfsdcltrack]))
+-
+-    case $libsqlite3_cv_is_recent in
+-    yes) ;;
+-    unknown)
+-      dnl do not fail when cross-compiling
+-      AC_MSG_WARN([assuming sqlite is at least v3.3]) ;;
+-    *)
+-      AC_MSG_ERROR([nfsdcltrack requires sqlite-devel]) ;;
+-    esac
+   fi
+ 
+ else
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-locktest-Makefile.am-Do-not-use-build-flags.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-locktest-Makefile.am-Do-not-use-build-flags.patch
new file mode 100644
index 0000000..351407d
--- /dev/null
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-locktest-Makefile.am-Do-not-use-build-flags.patch
@@ -0,0 +1,36 @@
+From 9efa7a0d37665d9bb0f46d2407883a5ab42c2b84 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 24 Jul 2023 20:39:16 -0700
+Subject: [PATCH] locktest: Makefile.am: Do not use build flags
+
+Using CFLAGS_FOR_BUILD etc. here means it is using wrong flags
+when thse flags are speficied different than target flags which
+is common when cross-building. It can pass wrong paths to linker
+and it would find incompatible libraries during link since they
+are from host system and target maybe not same as build host.
+
+Fixes subtle errors like
+| aarch64-yoe-linux-ld.lld: error: /mnt/b/yoe/master/build/tmp/work/cortexa72-cortexa53-crypto-yoe-linux/nfs-utils/2.6.3-r0/recipe-sysroot-native/usr/lib/libsqlite3.so is incompatible with elf64-littleaarch64
+
+Upstream-Status: Submitted [https://marc.info/?l=linux-nfs&m=169025681008001&w=2]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/locktest/Makefile.am | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/tools/locktest/Makefile.am b/tools/locktest/Makefile.am
+index e8914655..2fd36971 100644
+--- a/tools/locktest/Makefile.am
++++ b/tools/locktest/Makefile.am
+@@ -2,8 +2,5 @@
+ 
+ noinst_PROGRAMS = testlk
+ testlk_SOURCES = testlk.c
+-testlk_CFLAGS=$(CFLAGS_FOR_BUILD)
+-testlk_CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
+-testlk_LDFLAGS=$(LDFLAGS_FOR_BUILD)
+ 
+ MAINTAINERCLEANFILES = Makefile.in
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-tools-locktest-Use-intmax_t-to-print-off_t.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-tools-locktest-Use-intmax_t-to-print-off_t.patch
new file mode 100644
index 0000000..7d903e0
--- /dev/null
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0001-tools-locktest-Use-intmax_t-to-print-off_t.patch
@@ -0,0 +1,53 @@
+From e2e9251dbeb452f5382179023d8ae18b511167a1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 25 Jul 2023 23:47:08 -0700
+Subject: [PATCH] tools/locktest: Use intmax_t to print off_t
+
+off_t could be 64bit on 32bit architectures which means using %z printf
+modifier is not enough to print it and compiler will complain about
+format mismatch
+
+Fixes
+| testlk.c:84:66: error: format '%zd' expects argument of type 'signed size_t', but argument 4 has type '__off64_t' {aka 'long long int'} [-Werror=format=]
+|    84 |                         printf("%s: conflicting lock by %d on (%zd;%zd)\n",
+|       |                                                                ~~^
+|       |                                                                  |
+|       |                                                                  int
+|       |                                                                %lld
+|    85 |                                 fname, fl.l_pid, fl.l_start, fl.l_len);
+|       |                                                  ~~~~~~~~~~
+|       |                                                    |
+|       |                                                    __off64_t {aka long long int}
+
+Upstream-Status: Submitted [https://marc.info/?l=linux-nfs&m=169035457128067&w=2]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/locktest/testlk.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/tools/locktest/testlk.c b/tools/locktest/testlk.c
+index ea51f788..9d4c88c4 100644
+--- a/tools/locktest/testlk.c
++++ b/tools/locktest/testlk.c
+@@ -2,6 +2,7 @@
+ #include <config.h>
+ #endif
+ 
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -81,8 +82,8 @@ main(int argc, char **argv)
+ 		if (fl.l_type == F_UNLCK) {
+ 			printf("%s: no conflicting lock\n", fname);
+ 		} else {
+-			printf("%s: conflicting lock by %d on (%zd;%zd)\n",
+-				fname, fl.l_pid, fl.l_start, fl.l_len);
++			printf("%s: conflicting lock by %d on (%jd;%jd)\n",
++				fname, fl.l_pid, (intmax_t)fl.l_start, (intmax_t)fl.l_len);
+ 		}
+ 		return 0;
+ 	}
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0005-mountd-Check-for-return-of-stat-function.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0005-mountd-Check-for-return-of-stat-function.patch
deleted file mode 100644
index 13a21e5..0000000
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0005-mountd-Check-for-return-of-stat-function.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 887ecc7837962e9be77a4fea7d9122648f73a84a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 15 Aug 2022 14:47:53 -0700
-Subject: [PATCH] mountd: Check for return of stat function
-
-simplify the check, stat() return 0 on success -1 on failure
-
-Fixes clang reported errors e.g.
-
-| v4clients.c:29:6: error: logical not is only applied to the left hand side of this comparison [-Werror,-Wlogical-not-parentheses]
-|         if (!stat("/proc/fs/nfsd/clients", &sb) == 0 ||
-|             ^                                   ~~
-
-Upstream-Status: Submitted [https://patchwork.kernel.org/project/linux-nfs/patch/20220816024403.2694169-1-raj.khem@gmail.com/]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Cc: Konstantin Khorenko <khorenko@virtuozzo.com>
-Cc: Steve Dickson <steved@redhat.com>
----
- support/export/v4clients.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/support/export/v4clients.c b/support/export/v4clients.c
-index 5f15b61..3230251 100644
---- a/support/export/v4clients.c
-+++ b/support/export/v4clients.c
-@@ -26,7 +26,7 @@ void v4clients_init(void)
- {
- 	struct stat sb;
- 
--	if (!stat("/proc/fs/nfsd/clients", &sb) == 0 ||
-+	if (stat("/proc/fs/nfsd/clients", &sb) != 0 ||
- 	    !S_ISDIR(sb.st_mode))
- 		return;
- 	if (clients_fd >= 0)
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0006-Fix-function-prototypes.patch b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0006-Fix-function-prototypes.patch
deleted file mode 100644
index 793bc46..0000000
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils/0006-Fix-function-prototypes.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From cf0ffbb5c8fa167376926d12a63613f15aa7602f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 15 Aug 2022 14:50:15 -0700
-Subject: [PATCH] Fix function prototypes
-
-Clang is now erroring out on functions with out parameter types
-
-Fixes errors like
-error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
-
-Upstream-Status: Submitted [https://patchwork.kernel.org/project/linux-nfs/patch/20220816024403.2694169-2-raj.khem@gmail.com/]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- support/export/auth.c     | 2 +-
- support/export/v4root.c   | 2 +-
- support/export/xtab.c     | 2 +-
- utils/exportfs/exportfs.c | 4 ++--
- utils/mount/network.c     | 2 +-
- 5 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/support/export/auth.c b/support/export/auth.c
-index 03ce4b8..2d7960f 100644
---- a/support/export/auth.c
-+++ b/support/export/auth.c
-@@ -82,7 +82,7 @@ check_useipaddr(void)
- }
- 
- unsigned int
--auth_reload()
-+auth_reload(void)
- {
- 	struct stat		stb;
- 	static ino_t		last_inode;
-diff --git a/support/export/v4root.c b/support/export/v4root.c
-index c12a7d8..fbb0ad5 100644
---- a/support/export/v4root.c
-+++ b/support/export/v4root.c
-@@ -198,7 +198,7 @@ static int v4root_add_parents(nfs_export *exp)
-  * looking for components of the v4 mount.
-  */
- void
--v4root_set()
-+v4root_set(void)
- {
- 	nfs_export	*exp;
- 	int	i;
-diff --git a/support/export/xtab.c b/support/export/xtab.c
-index c888a80..e210ca9 100644
---- a/support/export/xtab.c
-+++ b/support/export/xtab.c
-@@ -135,7 +135,7 @@ xtab_write(char *xtab, char *xtabtmp, char *lockfn, int is_export)
- }
- 
- int
--xtab_export_write()
-+xtab_export_write(void)
- {
- 	return xtab_write(etab.statefn, etab.tmpfn, etab.lockfn, 1);
- }
-diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c
-index 6ba615d..0897b22 100644
---- a/utils/exportfs/exportfs.c
-+++ b/utils/exportfs/exportfs.c
-@@ -69,14 +69,14 @@ static int _lockfd = -1;
-  * need these additional lockfile() routines.
-  */
- static void
--grab_lockfile()
-+grab_lockfile(void)
- {
- 	_lockfd = open(lockfile, O_CREAT|O_RDWR, 0666);
- 	if (_lockfd != -1)
- 		lockf(_lockfd, F_LOCK, 0);
- }
- static void
--release_lockfile()
-+release_lockfile(void)
- {
- 	if (_lockfd != -1) {
- 		lockf(_lockfd, F_ULOCK, 0);
-diff --git a/utils/mount/network.c b/utils/mount/network.c
-index ed2f825..01ead49 100644
---- a/utils/mount/network.c
-+++ b/utils/mount/network.c
-@@ -179,7 +179,7 @@ static const unsigned long probe_mnt3_only[] = {
- 
- static const unsigned int *nfs_default_proto(void);
- #ifdef MOUNT_CONFIG
--static const unsigned int *nfs_default_proto()
-+static const unsigned int *nfs_default_proto(void)
- {
- 	extern unsigned long config_default_proto;
- 	/*
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.2.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.3.bb
similarity index 93%
rename from poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.2.bb
rename to poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.3.bb
index 21df180..e703395 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.2.bb
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.6.3.bb
@@ -30,11 +30,11 @@
            file://bugfix-adjust-statd-service-name.patch \
            file://0001-Makefile.am-fix-undefined-function-for-libnsm.a.patch \
            file://clang-warnings.patch \
-           file://0005-mountd-Check-for-return-of-stat-function.patch \
-           file://0006-Fix-function-prototypes.patch \
-           file://0001-Replace-statfs64-with-statfs.patch \
+           file://0001-configure.ac-libevent-and-libsqlite3-checked-when-nf.patch \
+	   file://0001-locktest-Makefile.am-Do-not-use-build-flags.patch \
+	   file://0001-tools-locktest-Use-intmax_t-to-print-off_t.patch \
            "
-SRC_URI[sha256sum] = "5200873e81c4d610e2462fc262fe18135f2dbe78b7979f95accd159ae64d5011"
+SRC_URI[sha256sum] = "38d89e853a71d3c560ff026af3d969d75e24f782ff68324e76261fe0344459e1"
 
 # Only kernel-module-nfsd is required here (but can be built-in)  - the nfsd module will
 # pull in the remainder of the dependencies.
@@ -62,6 +62,8 @@
                 --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \
                "
 
+LDFLAGS:append = " -lsqlite3 -levent"
+
 PACKAGECONFIG ??= "tcp-wrappers \
     ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
 "
diff --git a/poky/meta/recipes-connectivity/openssh/openssh/ssh_config b/poky/meta/recipes-connectivity/openssh/openssh/ssh_config
index ca70f37..cb2774a 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh/ssh_config
+++ b/poky/meta/recipes-connectivity/openssh/openssh/ssh_config
@@ -19,11 +19,9 @@
 
 Include /etc/ssh/ssh_config.d/*.conf
 
-Host *
-  ForwardAgent yes
-  ForwardX11 yes
-#   RhostsRSAAuthentication no
-#   RSAAuthentication yes
+# Host *
+#   ForwardAgent no
+#   ForwardX11 no
 #   PasswordAuthentication yes
 #   HostbasedAuthentication no
 #   GSSAPIAuthentication no
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_9.3p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_9.3p2.bb
similarity index 98%
rename from poky/meta/recipes-connectivity/openssh/openssh_9.3p1.bb
rename to poky/meta/recipes-connectivity/openssh/openssh_9.3p2.bb
index 3edc123..5fb2dcc 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_9.3p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_9.3p2.bb
@@ -26,7 +26,7 @@
            file://add-test-support-for-busybox.patch \
            file://7280401bdd77ca54be6867a154cc01e0d72612e0.patch \
            "
-SRC_URI[sha256sum] = "e9baba7701a76a51f3d85a62c383a3c9dcd97fa900b859bc7db114c1868af8a8"
+SRC_URI[sha256sum] = "200ebe147f6cb3f101fd0cdf9e02442af7ddca298dffd9f456878e7ccac676e8"
 
 CVE_STATUS[CVE-2007-2768] = "not-applicable-config: This CVE is specific to OpenSSH with the pam opie which we don't build/use here."
 
diff --git a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb
index 3f1b75d..09a0ab7 100644
--- a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb
+++ b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb
@@ -7,7 +7,6 @@
 SECTION = "console/network"
 LICENSE = "GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-AUTHOR = "Thomas Hood"
 HOMEPAGE = "http://packages.debian.org/resolvconf"
 RDEPENDS:${PN} = "bash sed util-linux-flock"
 
diff --git a/poky/meta/recipes-core/base-files/base-files_3.0.14.bb b/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
index ff83567..0d38657 100644
--- a/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
+++ b/poky/meta/recipes-core/base-files/base-files_3.0.14.bb
@@ -1,7 +1,7 @@
 SUMMARY = "Miscellaneous files for the base system"
 DESCRIPTION = "The base-files package creates the basic system directory structure and provides a small set of key configuration files for the system."
 SECTION = "base"
-PR = "r89"
+PR = "r90"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://licenses/GPL-2;md5=94d55d512a9ba36caa9b7df079bae19f"
 # Removed all license related tasks in this recipe as license.bbclass 
diff --git a/poky/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-Add-the-sgx-group.patch b/poky/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-Add-the-sgx-group.patch
new file mode 100644
index 0000000..e1340e1
--- /dev/null
+++ b/poky/meta/recipes-core/base-passwd/base-passwd/0001-base-passwd-Add-the-sgx-group.patch
@@ -0,0 +1,30 @@
+From 9e57771d138ac423d5139b984b8c869122ce4976 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alexk@zuma.ai>
+Date: Fri, 28 Jul 2023 10:28:57 +0100
+Subject: [PATCH] base-passwd: Add the sgx group
+
+To avoid errors from eudev/udev we need an sgx group, but if we add it
+via groupadd that causes shadow login to be brought into an image, which
+causes images which have CONFIG_MULTIUSER unset to fail with `setgid:
+Function not implemented` as shadow's login doesn't implement the
+heuristics which busybox has to handle this kernel configuration.
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ group.master | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/group.master b/group.master
+index d34d2b832d43..e54fd1d2c6dc 100644
+--- a/group.master
++++ b/group.master
+@@ -34,6 +34,7 @@ video:*:44:
+ sasl:*:45:
+ plugdev:*:46:
+ kvm:*:47:
++sgx:*:48:
+ staff:*:50:
+ games:*:60:
+ shutdown:*:70:
diff --git a/poky/meta/recipes-core/base-passwd/base-passwd_3.6.1.bb b/poky/meta/recipes-core/base-passwd/base-passwd_3.6.1.bb
index 204016b..44bcfb0 100644
--- a/poky/meta/recipes-core/base-passwd/base-passwd_3.6.1.bb
+++ b/poky/meta/recipes-core/base-passwd/base-passwd_3.6.1.bb
@@ -13,6 +13,7 @@
            file://0005-Add-kvm-group.patch \
            file://0006-Make-it-possible-to-configure-whether-to-use-SELinux.patch \
            file://0007-Add-wheel-group.patch \
+           file://0001-base-passwd-Add-the-sgx-group.patch \
            "
 
 SRC_URI[sha256sum] = "6ff369be59d586ba63c0c5fcb00f75f9953fe49db88bc6c6428f2c92866f79af"
diff --git a/poky/meta/recipes-core/gettext/gettext-0.21.1/autoconf-2.73.patch b/poky/meta/recipes-core/gettext/gettext-0.21.1/autoconf-2.73.patch
new file mode 100644
index 0000000..ae5b249
--- /dev/null
+++ b/poky/meta/recipes-core/gettext/gettext-0.21.1/autoconf-2.73.patch
@@ -0,0 +1,50 @@
+The gnulib largefile macro needs updating to work with autoconf 2.73. Rather
+than the full code:
+
+https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4/largefile.m4?id=f91f633858cf132e50924224c50d6264a92caabb
+
+Just tweak the exiting code to work with 2.73. The next gettext upgrade should
+update to new gnulib
+
+Upstream-Status: Inappropriate
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: gettext-0.21.1/gettext-runtime/gnulib-m4/largefile.m4
+===================================================================
+--- gettext-0.21.1.orig/gettext-runtime/gnulib-m4/largefile.m4
++++ gettext-0.21.1/gettext-runtime/gnulib-m4/largefile.m4
+@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
+Index: gettext-0.21.1/gettext-tools/gnulib-m4/largefile.m4
+===================================================================
+--- gettext-0.21.1.orig/gettext-tools/gnulib-m4/largefile.m4
++++ gettext-0.21.1/gettext-tools/gnulib-m4/largefile.m4
+@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
+Index: gettext-0.21.1/libtextstyle/gnulib-m4/largefile.m4
+===================================================================
+--- gettext-0.21.1.orig/libtextstyle/gnulib-m4/largefile.m4
++++ gettext-0.21.1/libtextstyle/gnulib-m4/largefile.m4
+@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/Makefile.in.in b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/Makefile.in.in
deleted file mode 100644
index 6b25f0d..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/Makefile.in.in
+++ /dev/null
@@ -1,510 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
-# Copyright (C) 2000-2020 Free Software Foundation, Inc.
-#
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.  This file is offered as-is,
-# without any warranty.
-#
-# Origin: gettext-0.21
-GETTEXT_MACRO_VERSION = 0.20
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-
-SED = @SED@
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datarootdir = @datarootdir@
-datadir = @datadir@
-localedir = @localedir@
-gettextsrcdir = $(datadir)/gettext/po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-# We use $(mkdir_p).
-# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
-# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
-# @install_sh@ does not start with $(SHELL), so we add it.
-# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
-# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
-# versions, $(mkinstalldirs) and $(install_sh) are unused.
-mkinstalldirs = $(SHELL) @install_sh@ -d
-install_sh = $(SHELL) @install_sh@
-MKDIR_P = @MKDIR_P@
-mkdir_p = @mkdir_p@
-
-# When building gettext-tools, we prefer to use the built programs
-# rather than installed programs.  However, we can't do that when we
-# are cross compiling.
-CROSS_COMPILING = @CROSS_COMPILING@
-
-GMSGFMT_ = @GMSGFMT@
-GMSGFMT_no = @GMSGFMT@
-GMSGFMT_yes = @GMSGFMT_015@
-GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
-XGETTEXT_ = @XGETTEXT@
-XGETTEXT_no = @XGETTEXT@
-XGETTEXT_yes = @XGETTEXT_015@
-XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
-MSGMERGE = @MSGMERGE@
-MSGMERGE_UPDATE = @MSGMERGE@ --update
-MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-UPDATEPOFILES = @UPDATEPOFILES@
-DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in remove-potcdate.sin \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot
-POFILESDEPS_yes = $(POFILESDEPS_)
-POFILESDEPS_no =
-POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT))
-
-DISTFILESDEPS_ = update-po
-DISTFILESDEPS_yes = $(DISTFILESDEPS_)
-DISTFILESDEPS_no =
-DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
-
-# Makevars gets inserted here. (Don't remove this line!)
-
-all: all-@USE_NLS@
-
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update
-
-# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs.
-# The GNU Coding Standards say in
-# <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>:
-#   "GNU distributions usually contain some files which are not source files
-#    ... . Since these files normally appear in the source directory, they
-#    should always appear in the source directory, not in the build directory.
-#    So Makefile rules to update them should put the updated files in the
-#    source directory."
-# Therefore we put these files in the source directory, not the build directory.
-
-# During .po -> .gmo conversion, take into account the most recent changes to
-# the .pot file. This eliminates the need to update the .po files when the
-# .pot file has changed, which would be troublesome if the .po files are put
-# under version control.
-$(GMOFILES): $(srcdir)/$(DOMAIN).pot
-.po.gmo:
-	@lang=`echo $* | sed -e 's,.*/,,'`; \
-	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-	echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \
-	cd $(srcdir) && \
-	rm -f $${lang}.gmo && \
-	$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \
-	$(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \
-	mv t-$${lang}.gmo $${lang}.gmo && \
-	rm -f $${lang}.1po
-
-.sin.sed:
-	sed -e '/^#/d' $< > t-$@
-	mv t-$@ $@
-
-
-all-yes: $(srcdir)/stamp-po
-all-no:
-
-# Ensure that the gettext macros and this Makefile.in.in are in sync.
-CHECK_MACRO_VERSION = \
-	test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \
-	  || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \
-	       exit 1; \
-	     }
-
-# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
-# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
-# we don't want to bother translators with empty POT files). We assume that
-# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
-# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target).
-
-# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS
-# have been loosely updated. Its purpose is that when a developer or translator
-# checks out the package from a version control system, and the $(DOMAIN).pot
-# file is not under version control, "make" will update the $(DOMAIN).pot and
-# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This
-# timestamp would not be necessary if updating the $(CATALOGS) would always
-# touch them; however, the rule for $(POFILES) has been designed to not touch
-# files that don't need to be changed.
-$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot
-	@$(CHECK_MACRO_VERSION)
-	test ! -f $(srcdir)/$(DOMAIN).pot || \
-	  test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
-	@test ! -f $(srcdir)/$(DOMAIN).pot || { \
-	  echo "touch $(srcdir)/stamp-po" && \
-	  echo timestamp > $(srcdir)/stamp-poT && \
-	  mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \
-	}
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
-# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
-# The determination of whether the package xyz is a GNU one is based on the
-# heuristic whether some file in the top level directory mentions "GNU xyz".
-# If GNU 'find' is available, we avoid grepping through monster files.
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
-	package_gnu="$(PACKAGE_GNU)"; \
-	test -n "$$package_gnu" || { \
-	  if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
-	         LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \
-	       else \
-	         LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
-	       fi; \
-	     } | grep -v 'libtool:' >/dev/null; then \
-	     package_gnu=yes; \
-	   else \
-	     package_gnu=no; \
-	   fi; \
-	}; \
-	if test "$$package_gnu" = "yes"; then \
-	  package_prefix='GNU '; \
-	else \
-	  package_prefix=''; \
-	fi; \
-	if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
-	  msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
-	else \
-	  msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
-	fi; \
-	case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
-	  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
-	    $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
-	      --add-comments=TRANSLATORS: \
-	      --files-from=$(srcdir)/POTFILES.in \
-	      --copyright-holder='$(COPYRIGHT_HOLDER)' \
-	      --msgid-bugs-address="$$msgid_bugs_address" \
-	      $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
-	    ;; \
-	  *) \
-	    $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
-	      --add-comments=TRANSLATORS: \
-	      --files-from=$(srcdir)/POTFILES.in \
-	      --copyright-holder='$(COPYRIGHT_HOLDER)' \
-	      --package-name="$${package_prefix}@PACKAGE@" \
-	      --package-version='@VERSION@' \
-	      --msgid-bugs-address="$$msgid_bugs_address" \
-	      $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
-	    ;; \
-	esac
-	test ! -f $(DOMAIN).po || { \
-	  if test -f $(srcdir)/$(DOMAIN).pot-header; then \
-	    sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \
-	    cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \
-	    rm -f $(DOMAIN).1po \
-	    || exit 1; \
-	  fi; \
-	  if test -f $(srcdir)/$(DOMAIN).pot; then \
-	    sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
-	    sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
-	    if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
-	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
-	    else \
-	      rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
-	      mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
-	    fi; \
-	  else \
-	    mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
-	  fi; \
-	}
-
-# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
-# every "make" invocation, only create it when it is missing.
-# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
-$(srcdir)/$(DOMAIN).pot:
-	$(MAKE) $(DOMAIN).pot-update
-
-# This target rebuilds a PO file if $(DOMAIN).pot has changed.
-# Note that a PO file is not touched if it doesn't need to be changed.
-$(POFILES): $(POFILESDEPS)
-	@test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot
-	@lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
-	if test -f "$(srcdir)/$${lang}.po"; then \
-	  test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-	  echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \
-	  cd $(srcdir) \
-	    && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
-	           '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
-	             $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
-	           0.1[6-7] | 0.1[6-7].*) \
-	             $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \
-	           *) \
-	             $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \
-	         esac; \
-	       }; \
-	else \
-	  $(MAKE) $${lang}.po-create; \
-	fi
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
-	if test "$(PACKAGE)" = "gettext-tools"; then \
-	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
-	  for file in $(DISTFILES.common) Makevars.template; do \
-	    $(INSTALL_DATA) $(srcdir)/$$file \
-			    $(DESTDIR)$(gettextsrcdir)/$$file; \
-	  done; \
-	  for file in Makevars; do \
-	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-	  done; \
-	else \
-	  : ; \
-	fi
-install-data-no: all
-install-data-yes: all
-	@catalogs='$(CATALOGS)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-	  dir=$(localedir)/$$lang/LC_MESSAGES; \
-	  $(mkdir_p) $(DESTDIR)$$dir; \
-	  if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
-	  $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
-	  echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
-	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
-	    if test -n "$$lc"; then \
-	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
-	        link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
-	        mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-	        mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-	        (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
-	         for file in *; do \
-	           if test -f $$file; then \
-	             ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
-	           fi; \
-	         done); \
-	        rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-	      else \
-	        if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
-	          :; \
-	        else \
-	          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
-	          mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-	        fi; \
-	      fi; \
-	      rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-	      ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
-	      ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
-	      cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-	      echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
-	    fi; \
-	  done; \
-	done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-@USE_NLS@
-	if test "$(PACKAGE)" = "gettext-tools"; then \
-	  $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
-	else \
-	  : ; \
-	fi
-installdirs-data-no:
-installdirs-data-yes:
-	@catalogs='$(CATALOGS)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-	  dir=$(localedir)/$$lang/LC_MESSAGES; \
-	  $(mkdir_p) $(DESTDIR)$$dir; \
-	  for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
-	    if test -n "$$lc"; then \
-	      if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
-	        link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
-	        mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-	        mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-	        (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
-	         for file in *; do \
-	           if test -f $$file; then \
-	             ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
-	           fi; \
-	         done); \
-	        rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
-	      else \
-	        if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
-	          :; \
-	        else \
-	          rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
-	          mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
-	        fi; \
-	      fi; \
-	    fi; \
-	  done; \
-	done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-@USE_NLS@
-	if test "$(PACKAGE)" = "gettext-tools"; then \
-	  for file in $(DISTFILES.common) Makevars.template; do \
-	    rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
-	  done; \
-	else \
-	  : ; \
-	fi
-uninstall-data-no:
-uninstall-data-yes:
-	catalogs='$(CATALOGS)'; \
-	for cat in $$catalogs; do \
-	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
-	  for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
-	    rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
-	  done; \
-	done
-
-check: all
-
-info dvi ps pdf html tags TAGS ctags CTAGS ID:
-
-install-dvi install-ps install-pdf install-html:
-
-mostlyclean:
-	rm -f remove-potcdate.sed
-	rm -f $(srcdir)/stamp-poT
-	rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
-	rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
-	rm -f Makefile Makefile.in POTFILES
-
-maintainer-clean: distclean
-	@echo "This command is intended for maintainers to use;"
-	@echo "it deletes files that may require special tools to rebuild."
-	rm -f $(srcdir)/$(DOMAIN).pot $(srcdir)/stamp-po $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
-	test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS)
-	@$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(srcdir)/stamp-po $(DISTFILES)
-	@dists="$(DISTFILES)"; \
-	if test "$(PACKAGE)" = "gettext-tools"; then \
-	  dists="$$dists Makevars.template"; \
-	fi; \
-	if test -f $(srcdir)/$(DOMAIN).pot; then \
-	  dists="$$dists $(DOMAIN).pot stamp-po"; \
-	else \
-	  case $(XGETTEXT) in \
-	    :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \
-	    *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the contents of the POTFILES.in file and the XGETTEXT_OPTIONS in the Makevars file." 1>&2;; \
-	  esac; \
-	fi; \
-	if test -f $(srcdir)/ChangeLog; then \
-	  dists="$$dists ChangeLog"; \
-	fi; \
-	for i in 0 1 2 3 4 5 6 7 8 9; do \
-	  if test -f $(srcdir)/ChangeLog.$$i; then \
-	    dists="$$dists ChangeLog.$$i"; \
-	  fi; \
-	done; \
-	if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
-	for file in $$dists; do \
-	  if test -f $$file; then \
-	    cp -p $$file $(distdir) || exit 1; \
-	  else \
-	    cp -p $(srcdir)/$$file $(distdir) || exit 1; \
-	  fi; \
-	done
-
-update-po: Makefile
-	$(MAKE) $(DOMAIN).pot-update
-	test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
-	$(MAKE) update-gmo
-
-# General rule for creating PO files.
-
-.nop.po-create:
-	@lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
-	echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
-	exit 1
-
-# General rule for updating PO files.
-
-.nop.po-update:
-	@lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
-	if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
-	tmpdir=`pwd`; \
-	echo "$$lang:"; \
-	test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-	echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
-	cd $(srcdir); \
-	if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
-	       '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
-	         $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
-	       0.1[6-7] | 0.1[6-7].*) \
-	         $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
-	       *) \
-	         $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
-	     esac; \
-	   }; then \
-	  if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
-	    rm -f $$tmpdir/$$lang.new.po; \
-	  else \
-	    if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
-	      :; \
-	    else \
-	      echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
-	      exit 1; \
-	    fi; \
-	  fi; \
-	else \
-	  echo "msgmerge for $$lang.po failed!" 1>&2; \
-	  rm -f $$tmpdir/$$lang.new.po; \
-	fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
-	@:
-
-# Recreate Makefile by invoking config.status. Explicitly invoke the shell,
-# because execution permission bits may not work on the current file system.
-# Use @SHELL@, which is the shell determined by autoconf for the use by its
-# scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient.
-Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
-	cd $(top_builddir) \
-	  && @SHELL@ ./config.status $(subdir)/$@.in po-directories
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/gettext.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/gettext.m4
deleted file mode 100644
index f449240..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/gettext.m4
+++ /dev/null
@@ -1,386 +0,0 @@
-# gettext.m4 serial 72 (gettext-0.21.1)
-dnl Copyright (C) 1995-2014, 2016, 2018-2020 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Lesser General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Lesser General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
-
-dnl Macro to add for using GNU gettext.
-
-dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL must be one of 'external', 'use-libtool'.
-dnl    INTLSYMBOL should be 'external' for packages other than GNU gettext, and
-dnl    'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'.
-dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
-dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl    depending on --{enable,disable}-{shared,static} and on the presence of
-dnl    AM-DISABLE-SHARED).
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl    implementations (in libc or libintl) without the ngettext() function
-dnl    will be ignored.  If NEEDSYMBOL is specified and is
-dnl    'need-formatstring-macros', then GNU gettext implementations that don't
-dnl    support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-dnl INTLDIR is used to find the intl libraries.  If empty,
-dnl    the value '$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl    and used.
-dnl    Catalog format: GNU --> install in $(datadir)
-dnl    Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl    Catalog format: GNU --> install in $(datadir)
-dnl    Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl    Catalog format: none
-dnl    Catalog extension: none
-dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_GNU_GETTEXT],
-[
-  dnl Argument checking.
-  m4_if([$1], [], , [m4_if([$1], [external], , [m4_if([$1], [use-libtool], ,
-    [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])
-  m4_if(m4_if([$1], [], [old])[]m4_if([$1], [no-libtool], [old]), [old],
-    [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.
-])])
-  m4_if([$2], [], , [m4_if([$2], [need-ngettext], , [m4_if([$2], [need-formatstring-macros], ,
-    [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-])])])])
-  define([gt_included_intl],
-    m4_if([$1], [external], [no], [yes]))
-  gt_NEEDS_INIT
-  AM_GNU_GETTEXT_NEED([$2])
-
-  AC_REQUIRE([AM_PO_SUBDIRS])dnl
-  m4_if(gt_included_intl, yes, [
-    AC_REQUIRE([AM_INTL_SUBDIR])dnl
-  ])
-
-  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-
-  dnl Sometimes libintl requires libiconv, so first search for libiconv.
-  dnl Ideally we would do this search only after the
-  dnl      if test "$USE_NLS" = "yes"; then
-  dnl        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
-  dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
-  dnl the configure script would need to contain the same shell code
-  dnl again, outside any 'if'. There are two solutions:
-  dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
-  dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
-  dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it.
-  m4_if(gt_included_intl, yes, , [
-    AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-  ])
-
-  dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation.
-  gt_INTL_MACOSX
-
-  dnl Set USE_NLS.
-  AC_REQUIRE([AM_NLS])
-
-  m4_if(gt_included_intl, yes, [
-    BUILD_INCLUDED_LIBINTL=no
-    USE_INCLUDED_LIBINTL=no
-  ])
-  LIBINTL=
-  LTLIBINTL=
-  POSUB=
-
-  dnl Add a version number to the cache macros.
-  case " $gt_needs " in
-    *" need-formatstring-macros "*) gt_api_version=3 ;;
-    *" need-ngettext "*) gt_api_version=2 ;;
-    *) gt_api_version=1 ;;
-  esac
-  gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
-  gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
-
-  dnl If we use NLS figure out what method
-  if test "$USE_NLS" = "yes"; then
-    gt_use_preinstalled_gnugettext=no
-    m4_if(gt_included_intl, yes, [
-      AC_MSG_CHECKING([whether included gettext is requested])
-      AC_ARG_WITH([included-gettext],
-        [  --with-included-gettext use the GNU gettext library included here],
-        nls_cv_force_use_gnu_gettext=$withval,
-        nls_cv_force_use_gnu_gettext=no)
-      AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
-
-      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-    ])
-        dnl User does not insist on using GNU NLS library.  Figure out what
-        dnl to use.  If GNU gettext is available we use this.  Else we have
-        dnl to fall back to GNU NLS library.
-
-        if test $gt_api_version -ge 3; then
-          gt_revision_test_code='
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-'
-        else
-          gt_revision_test_code=
-        fi
-        if test $gt_api_version -ge 2; then
-          gt_expression_test_code=' + * ngettext ("", "", 0)'
-        else
-          gt_expression_test_code=
-        fi
-
-        AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
-         [AC_LINK_IFELSE(
-            [AC_LANG_PROGRAM(
-               [[
-#include <libintl.h>
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings)
-#else
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
-#endif
-$gt_revision_test_code
-               ]],
-               [[
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
-               ]])],
-            [eval "$gt_func_gnugettext_libc=yes"],
-            [eval "$gt_func_gnugettext_libc=no"])])
-
-        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
-          dnl Sometimes libintl requires libiconv, so first search for libiconv.
-          m4_if(gt_included_intl, yes, , [
-            AM_ICONV_LINK
-          ])
-          dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
-          dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
-          dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
-          dnl even if libiconv doesn't exist.
-          AC_LIB_LINKFLAGS_BODY([intl])
-          AC_CACHE_CHECK([for GNU gettext in libintl],
-            [$gt_func_gnugettext_libintl],
-           [gt_save_CPPFLAGS="$CPPFLAGS"
-            CPPFLAGS="$CPPFLAGS $INCINTL"
-            gt_save_LIBS="$LIBS"
-            LIBS="$LIBS $LIBINTL"
-            dnl Now see whether libintl exists and does not depend on libiconv.
-            AC_LINK_IFELSE(
-              [AC_LANG_PROGRAM(
-                 [[
-#include <libintl.h>
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
-#else
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
-#endif
-$gt_revision_test_code
-                 ]],
-                 [[
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
-                 ]])],
-              [eval "$gt_func_gnugettext_libintl=yes"],
-              [eval "$gt_func_gnugettext_libintl=no"])
-            dnl Now see whether libintl exists and depends on libiconv.
-            if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
-              LIBS="$LIBS $LIBICONV"
-              AC_LINK_IFELSE(
-                [AC_LANG_PROGRAM(
-                   [[
-#include <libintl.h>
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
-#else
-#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
-#endif
-$gt_revision_test_code
-                   ]],
-                   [[
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
-                   ]])],
-                [LIBINTL="$LIBINTL $LIBICONV"
-                 LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-                 eval "$gt_func_gnugettext_libintl=yes"
-                ])
-            fi
-            CPPFLAGS="$gt_save_CPPFLAGS"
-            LIBS="$gt_save_LIBS"])
-        fi
-
-        dnl If an already present or preinstalled GNU gettext() is found,
-        dnl use it.  But if this macro is used in GNU gettext, and GNU
-        dnl gettext is already preinstalled in libintl, we update this
-        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
-        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
-           || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
-                && test "$PACKAGE" != gettext-runtime \
-                && test "$PACKAGE" != gettext-tools; }; then
-          gt_use_preinstalled_gnugettext=yes
-        else
-          dnl Reset the values set by searching for libintl.
-          LIBINTL=
-          LTLIBINTL=
-          INCINTL=
-        fi
-
-    m4_if(gt_included_intl, yes, [
-        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
-          dnl GNU gettext is not found in the C library.
-          dnl Fall back on included GNU gettext library.
-          nls_cv_use_gnu_gettext=yes
-        fi
-      fi
-
-      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions used to generate GNU NLS library.
-        BUILD_INCLUDED_LIBINTL=yes
-        USE_INCLUDED_LIBINTL=yes
-        LIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD"
-        LTLIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD"
-        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
-      fi
-
-      CATOBJEXT=
-      if test "$gt_use_preinstalled_gnugettext" = "yes" \
-         || test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions to use GNU gettext tools.
-        CATOBJEXT=.gmo
-      fi
-    ])
-
-    if test -n "$INTL_MACOSX_LIBS"; then
-      if test "$gt_use_preinstalled_gnugettext" = "yes" \
-         || test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Some extra flags are needed during linking.
-        LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
-        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
-      fi
-    fi
-
-    if test "$gt_use_preinstalled_gnugettext" = "yes" \
-       || test "$nls_cv_use_gnu_gettext" = "yes"; then
-      AC_DEFINE([ENABLE_NLS], [1],
-        [Define to 1 if translation of program messages to the user's native language
-   is requested.])
-    else
-      USE_NLS=no
-    fi
-  fi
-
-  AC_MSG_CHECKING([whether to use NLS])
-  AC_MSG_RESULT([$USE_NLS])
-  if test "$USE_NLS" = "yes"; then
-    AC_MSG_CHECKING([where the gettext function comes from])
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
-        gt_source="external libintl"
-      else
-        gt_source="libc"
-      fi
-    else
-      gt_source="included intl directory"
-    fi
-    AC_MSG_RESULT([$gt_source])
-  fi
-
-  if test "$USE_NLS" = "yes"; then
-
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
-        AC_MSG_CHECKING([how to link with libintl])
-        AC_MSG_RESULT([$LIBINTL])
-        AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
-      fi
-
-      dnl For backward compatibility. Some packages may be using this.
-      AC_DEFINE([HAVE_GETTEXT], [1],
-       [Define if the GNU gettext() function is already present or preinstalled.])
-      AC_DEFINE([HAVE_DCGETTEXT], [1],
-       [Define if the GNU dcgettext() function is already present or preinstalled.])
-    fi
-
-    dnl We need to process the po/ directory.
-    POSUB=po
-  fi
-
-  m4_if(gt_included_intl, yes, [
-    dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes'
-    dnl because some of the testsuite requires it.
-    BUILD_INCLUDED_LIBINTL=yes
-
-    dnl Make all variables we use known to autoconf.
-    AC_SUBST([BUILD_INCLUDED_LIBINTL])
-    AC_SUBST([USE_INCLUDED_LIBINTL])
-    AC_SUBST([CATOBJEXT])
-  ])
-
-  dnl For backward compatibility. Some Makefiles may be using this.
-  INTLLIBS="$LIBINTL"
-  AC_SUBST([INTLLIBS])
-
-  dnl Make all documented variables known to autoconf.
-  AC_SUBST([LIBINTL])
-  AC_SUBST([LTLIBINTL])
-  AC_SUBST([POSUB])
-])
-
-
-dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
-m4_define([gt_NEEDS_INIT],
-[
-  m4_divert_text([DEFAULTS], [gt_needs=])
-  m4_define([gt_NEEDS_INIT], [])
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
-AC_DEFUN([AM_GNU_GETTEXT_NEED],
-[
-  m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
-])
-
-
-dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-
-
-dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], [])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/host-cpu-c-abi.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/host-cpu-c-abi.m4
deleted file mode 100644
index b922324..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/host-cpu-c-abi.m4
+++ /dev/null
@@ -1,678 +0,0 @@
-# host-cpu-c-abi.m4 serial 15
-dnl Copyright (C) 2002-2022 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible and Sam Steingold.
-
-dnl Sets the HOST_CPU variable to the canonical name of the CPU.
-dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its
-dnl C language ABI (application binary interface).
-dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in
-dnl config.h.
-dnl
-dnl This canonical name can be used to select a particular assembly language
-dnl source file that will interoperate with C code on the given host.
-dnl
-dnl For example:
-dnl * 'i386' and 'sparc' are different canonical names, because code for i386
-dnl   will not run on SPARC CPUs and vice versa. They have different
-dnl   instruction sets.
-dnl * 'sparc' and 'sparc64' are different canonical names, because code for
-dnl   'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code
-dnl   contains 32-bit instructions, whereas 'sparc64' code contains 64-bit
-dnl   instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit
-dnl   mode, but not both.
-dnl * 'mips' and 'mipsn32' are different canonical names, because they use
-dnl   different argument passing and return conventions for C functions, and
-dnl   although the instruction set of 'mips' is a large subset of the
-dnl   instruction set of 'mipsn32'.
-dnl * 'mipsn32' and 'mips64' are different canonical names, because they use
-dnl   different sizes for the C types like 'int' and 'void *', and although
-dnl   the instruction sets of 'mipsn32' and 'mips64' are the same.
-dnl * The same canonical name is used for different endiannesses. You can
-dnl   determine the endianness through preprocessor symbols:
-dnl   - 'arm': test __ARMEL__.
-dnl   - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
-dnl   - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
-dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
-dnl   (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
-dnl   - Instructions that do not exist on all of these CPUs (cmpxchg,
-dnl     MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your
-dnl     assembly language source files use such instructions, you will
-dnl     need to make the distinction.
-dnl   - Speed of execution of the common instruction set is reasonable across
-dnl     the entire family of CPUs. If you have assembly language source files
-dnl     that are optimized for particular CPU types (like GNU gmp has), you
-dnl     will need to make the distinction.
-dnl   See <https://en.wikipedia.org/wiki/X86_instruction_listings>.
-AC_DEFUN([gl_HOST_CPU_C_ABI],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([gl_C_ASM])
-  AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi],
-    [case "$host_cpu" in
-
-changequote(,)dnl
-       i[34567]86 )
-changequote([,])dnl
-         gl_cv_host_cpu_c_abi=i386
-         ;;
-
-       x86_64 )
-         # On x86_64 systems, the C compiler may be generating code in one of
-         # these ABIs:
-         # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
-         # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
-         #   with native Windows (mingw, MSVC).
-         # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
-         # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#if (defined __x86_64__ || defined __amd64__ \
-                     || defined _M_X64 || defined _M_AMD64)
-                 int ok;
-                #else
-                 error fail
-                #endif
-              ]])],
-           [AC_COMPILE_IFELSE(
-              [AC_LANG_SOURCE(
-                 [[#if defined __ILP32__ || defined _ILP32
-                    int ok;
-                   #else
-                    error fail
-                   #endif
-                 ]])],
-              [gl_cv_host_cpu_c_abi=x86_64-x32],
-              [gl_cv_host_cpu_c_abi=x86_64])],
-           [gl_cv_host_cpu_c_abi=i386])
-         ;;
-
-changequote(,)dnl
-       alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] )
-changequote([,])dnl
-         gl_cv_host_cpu_c_abi=alpha
-         ;;
-
-       arm* | aarch64 )
-         # Assume arm with EABI.
-         # On arm64 systems, the C compiler may be generating code in one of
-         # these ABIs:
-         # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
-         # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
-         # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#ifdef __aarch64__
-                 int ok;
-                #else
-                 error fail
-                #endif
-              ]])],
-           [AC_COMPILE_IFELSE(
-              [AC_LANG_SOURCE(
-                [[#if defined __ILP32__ || defined _ILP32
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-                ]])],
-              [gl_cv_host_cpu_c_abi=arm64-ilp32],
-              [gl_cv_host_cpu_c_abi=arm64])],
-           [# Don't distinguish little-endian and big-endian arm, since they
-            # don't require different machine code for simple operations and
-            # since the user can distinguish them through the preprocessor
-            # defines __ARMEL__ vs. __ARMEB__.
-            # But distinguish arm which passes floating-point arguments and
-            # return values in integer registers (r0, r1, ...) - this is
-            # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which
-            # passes them in float registers (s0, s1, ...) and double registers
-            # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer
-            # sets the preprocessor defines __ARM_PCS (for the first case) and
-            # __ARM_PCS_VFP (for the second case), but older GCC does not.
-            echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c
-            # Look for a reference to the register d0 in the .s file.
-            AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1
-            if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then
-              gl_cv_host_cpu_c_abi=armhf
-            else
-              gl_cv_host_cpu_c_abi=arm
-            fi
-            rm -f conftest*
-           ])
-         ;;
-
-       hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
-         # On hppa, the C compiler may be generating 32-bit code or 64-bit
-         # code. In the latter case, it defines _LP64 and __LP64__.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#ifdef __LP64__
-                 int ok;
-                #else
-                 error fail
-                #endif
-              ]])],
-           [gl_cv_host_cpu_c_abi=hppa64],
-           [gl_cv_host_cpu_c_abi=hppa])
-         ;;
-
-       ia64* )
-         # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
-         # 32-bit code. In the latter case, it defines _ILP32.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#ifdef _ILP32
-                 int ok;
-                #else
-                 error fail
-                #endif
-              ]])],
-           [gl_cv_host_cpu_c_abi=ia64-ilp32],
-           [gl_cv_host_cpu_c_abi=ia64])
-         ;;
-
-       mips* )
-         # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
-         # at 32.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
-                 int ok;
-                #else
-                 error fail
-                #endif
-              ]])],
-           [gl_cv_host_cpu_c_abi=mips64],
-           [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
-            # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
-            # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
-            # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
-            AC_COMPILE_IFELSE(
-              [AC_LANG_SOURCE(
-                 [[#if (_MIPS_SIM == _ABIN32)
-                    int ok;
-                   #else
-                    error fail
-                   #endif
-                 ]])],
-              [gl_cv_host_cpu_c_abi=mipsn32],
-              [gl_cv_host_cpu_c_abi=mips])])
-         ;;
-
-       powerpc* )
-         # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
-         # No need to distinguish them here; the caller may distinguish
-         # them based on the OS.
-         # On powerpc64 systems, the C compiler may still be generating
-         # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
-         # be generating 64-bit code.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#if defined __powerpc64__ || defined __LP64__
-                 int ok;
-                #else
-                 error fail
-                #endif
-              ]])],
-           [# On powerpc64, there are two ABIs on Linux: The AIX compatible
-            # one and the ELFv2 one. The latter defines _CALL_ELF=2.
-            AC_COMPILE_IFELSE(
-              [AC_LANG_SOURCE(
-                 [[#if defined _CALL_ELF && _CALL_ELF == 2
-                    int ok;
-                   #else
-                    error fail
-                   #endif
-                 ]])],
-              [gl_cv_host_cpu_c_abi=powerpc64-elfv2],
-              [gl_cv_host_cpu_c_abi=powerpc64])
-           ],
-           [gl_cv_host_cpu_c_abi=powerpc])
-         ;;
-
-       rs6000 )
-         gl_cv_host_cpu_c_abi=powerpc
-         ;;
-
-       riscv32 | riscv64 )
-         # There are 2 architectures (with variants): rv32* and rv64*.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#if __riscv_xlen == 64
-                  int ok;
-                #else
-                  error fail
-                #endif
-              ]])],
-           [cpu=riscv64],
-           [cpu=riscv32])
-         # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
-         # Size of 'long' and 'void *':
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#if defined __LP64__
-                  int ok;
-                #else
-                  error fail
-                #endif
-              ]])],
-           [main_abi=lp64],
-           [main_abi=ilp32])
-         # Float ABIs:
-         # __riscv_float_abi_double:
-         #   'float' and 'double' are passed in floating-point registers.
-         # __riscv_float_abi_single:
-         #   'float' are passed in floating-point registers.
-         # __riscv_float_abi_soft:
-         #   No values are passed in floating-point registers.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#if defined __riscv_float_abi_double
-                  int ok;
-                #else
-                  error fail
-                #endif
-              ]])],
-           [float_abi=d],
-           [AC_COMPILE_IFELSE(
-              [AC_LANG_SOURCE(
-                 [[#if defined __riscv_float_abi_single
-                     int ok;
-                   #else
-                     error fail
-                   #endif
-                 ]])],
-              [float_abi=f],
-              [float_abi=''])
-           ])
-         gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
-         ;;
-
-       s390* )
-         # On s390x, the C compiler may be generating 64-bit (= s390x) code
-         # or 31-bit (= s390) code.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#if defined __LP64__ || defined __s390x__
-                  int ok;
-                #else
-                  error fail
-                #endif
-              ]])],
-           [gl_cv_host_cpu_c_abi=s390x],
-           [gl_cv_host_cpu_c_abi=s390])
-         ;;
-
-       sparc | sparc64 )
-         # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
-         # C compiler still generates 32-bit code.
-         AC_COMPILE_IFELSE(
-           [AC_LANG_SOURCE(
-              [[#if defined __sparcv9 || defined __arch64__
-                 int ok;
-                #else
-                 error fail
-                #endif
-              ]])],
-           [gl_cv_host_cpu_c_abi=sparc64],
-           [gl_cv_host_cpu_c_abi=sparc])
-         ;;
-
-       *)
-         gl_cv_host_cpu_c_abi="$host_cpu"
-         ;;
-     esac
-    ])
-
-  dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same.
-  HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'`
-  HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi"
-  AC_SUBST([HOST_CPU])
-  AC_SUBST([HOST_CPU_C_ABI])
-
-  # This was
-  #   AC_DEFINE_UNQUOTED([__${HOST_CPU}__])
-  #   AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__])
-  # earlier, but KAI C++ 3.2d doesn't like this.
-  sed -e 's/-/_/g' >> confdefs.h <<EOF
-#ifndef __${HOST_CPU}__
-#define __${HOST_CPU}__ 1
-#endif
-#ifndef __${HOST_CPU_C_ABI}__
-#define __${HOST_CPU_C_ABI}__ 1
-#endif
-EOF
-  AH_TOP([/* CPU and C ABI indicator */
-#ifndef __i386__
-#undef __i386__
-#endif
-#ifndef __x86_64_x32__
-#undef __x86_64_x32__
-#endif
-#ifndef __x86_64__
-#undef __x86_64__
-#endif
-#ifndef __alpha__
-#undef __alpha__
-#endif
-#ifndef __arm__
-#undef __arm__
-#endif
-#ifndef __armhf__
-#undef __armhf__
-#endif
-#ifndef __arm64_ilp32__
-#undef __arm64_ilp32__
-#endif
-#ifndef __arm64__
-#undef __arm64__
-#endif
-#ifndef __hppa__
-#undef __hppa__
-#endif
-#ifndef __hppa64__
-#undef __hppa64__
-#endif
-#ifndef __ia64_ilp32__
-#undef __ia64_ilp32__
-#endif
-#ifndef __ia64__
-#undef __ia64__
-#endif
-#ifndef __loongarch64__
-#undef __loongarch64__
-#endif
-#ifndef __m68k__
-#undef __m68k__
-#endif
-#ifndef __mips__
-#undef __mips__
-#endif
-#ifndef __mipsn32__
-#undef __mipsn32__
-#endif
-#ifndef __mips64__
-#undef __mips64__
-#endif
-#ifndef __powerpc__
-#undef __powerpc__
-#endif
-#ifndef __powerpc64__
-#undef __powerpc64__
-#endif
-#ifndef __powerpc64_elfv2__
-#undef __powerpc64_elfv2__
-#endif
-#ifndef __riscv32__
-#undef __riscv32__
-#endif
-#ifndef __riscv64__
-#undef __riscv64__
-#endif
-#ifndef __riscv32_ilp32__
-#undef __riscv32_ilp32__
-#endif
-#ifndef __riscv32_ilp32f__
-#undef __riscv32_ilp32f__
-#endif
-#ifndef __riscv32_ilp32d__
-#undef __riscv32_ilp32d__
-#endif
-#ifndef __riscv64_ilp32__
-#undef __riscv64_ilp32__
-#endif
-#ifndef __riscv64_ilp32f__
-#undef __riscv64_ilp32f__
-#endif
-#ifndef __riscv64_ilp32d__
-#undef __riscv64_ilp32d__
-#endif
-#ifndef __riscv64_lp64__
-#undef __riscv64_lp64__
-#endif
-#ifndef __riscv64_lp64f__
-#undef __riscv64_lp64f__
-#endif
-#ifndef __riscv64_lp64d__
-#undef __riscv64_lp64d__
-#endif
-#ifndef __s390__
-#undef __s390__
-#endif
-#ifndef __s390x__
-#undef __s390x__
-#endif
-#ifndef __sh__
-#undef __sh__
-#endif
-#ifndef __sparc__
-#undef __sparc__
-#endif
-#ifndef __sparc64__
-#undef __sparc64__
-#endif
-])
-
-])
-
-
-dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
-dnl (application binary interface) is a 32-bit one, to 'no' if it is a 64-bit
-dnl one, or to 'unknown' if unknown.
-dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
-AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
-[
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
-    [if test -n "$gl_cv_host_cpu_c_abi"; then
-       case "$gl_cv_host_cpu_c_abi" in
-         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
-           gl_cv_host_cpu_c_abi_32bit=yes ;;
-         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
-           gl_cv_host_cpu_c_abi_32bit=no ;;
-         *)
-           gl_cv_host_cpu_c_abi_32bit=unknown ;;
-       esac
-     else
-       case "$host_cpu" in
-
-         # CPUs that only support a 32-bit ABI.
-         arc \
-         | bfin \
-         | cris* \
-         | csky \
-         | epiphany \
-         | ft32 \
-         | h8300 \
-         | m68k \
-         | microblaze | microblazeel \
-         | nds32 | nds32le | nds32be \
-         | nios2 | nios2eb | nios2el \
-         | or1k* \
-         | or32 \
-         | sh | sh[1234] | sh[1234]e[lb] \
-         | tic6x \
-         | xtensa* )
-           gl_cv_host_cpu_c_abi_32bit=yes
-           ;;
-
-         # CPUs that only support a 64-bit ABI.
-changequote(,)dnl
-         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
-         | mmix )
-changequote([,])dnl
-           gl_cv_host_cpu_c_abi_32bit=no
-           ;;
-
-changequote(,)dnl
-         i[34567]86 )
-changequote([,])dnl
-           gl_cv_host_cpu_c_abi_32bit=yes
-           ;;
-
-         x86_64 )
-           # On x86_64 systems, the C compiler may be generating code in one of
-           # these ABIs:
-           # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
-           # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
-           #   with native Windows (mingw, MSVC).
-           # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
-           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#if (defined __x86_64__ || defined __amd64__ \
-                       || defined _M_X64 || defined _M_AMD64) \
-                      && !(defined __ILP32__ || defined _ILP32)
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=no],
-             [gl_cv_host_cpu_c_abi_32bit=yes])
-           ;;
-
-         arm* | aarch64 )
-           # Assume arm with EABI.
-           # On arm64 systems, the C compiler may be generating code in one of
-           # these ABIs:
-           # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
-           # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
-           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=no],
-             [gl_cv_host_cpu_c_abi_32bit=yes])
-           ;;
-
-         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
-           # On hppa, the C compiler may be generating 32-bit code or 64-bit
-           # code. In the latter case, it defines _LP64 and __LP64__.
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#ifdef __LP64__
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=no],
-             [gl_cv_host_cpu_c_abi_32bit=yes])
-           ;;
-
-         ia64* )
-           # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
-           # 32-bit code. In the latter case, it defines _ILP32.
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#ifdef _ILP32
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=yes],
-             [gl_cv_host_cpu_c_abi_32bit=no])
-           ;;
-
-         mips* )
-           # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
-           # at 32.
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=no],
-             [gl_cv_host_cpu_c_abi_32bit=yes])
-           ;;
-
-         powerpc* )
-           # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
-           # No need to distinguish them here; the caller may distinguish
-           # them based on the OS.
-           # On powerpc64 systems, the C compiler may still be generating
-           # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
-           # be generating 64-bit code.
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#if defined __powerpc64__ || defined __LP64__
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=no],
-             [gl_cv_host_cpu_c_abi_32bit=yes])
-           ;;
-
-         rs6000 )
-           gl_cv_host_cpu_c_abi_32bit=yes
-           ;;
-
-         riscv32 | riscv64 )
-           # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
-           # Size of 'long' and 'void *':
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#if defined __LP64__
-                    int ok;
-                  #else
-                    error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=no],
-             [gl_cv_host_cpu_c_abi_32bit=yes])
-           ;;
-
-         s390* )
-           # On s390x, the C compiler may be generating 64-bit (= s390x) code
-           # or 31-bit (= s390) code.
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#if defined __LP64__ || defined __s390x__
-                    int ok;
-                  #else
-                    error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=no],
-             [gl_cv_host_cpu_c_abi_32bit=yes])
-           ;;
-
-         sparc | sparc64 )
-           # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
-           # C compiler still generates 32-bit code.
-           AC_COMPILE_IFELSE(
-             [AC_LANG_SOURCE(
-                [[#if defined __sparcv9 || defined __arch64__
-                   int ok;
-                  #else
-                   error fail
-                  #endif
-                ]])],
-             [gl_cv_host_cpu_c_abi_32bit=no],
-             [gl_cv_host_cpu_c_abi_32bit=yes])
-           ;;
-
-         *)
-           gl_cv_host_cpu_c_abi_32bit=unknown
-           ;;
-       esac
-     fi
-    ])
-
-  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/iconv.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/iconv.m4
deleted file mode 100644
index 0005795..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/iconv.m4
+++ /dev/null
@@ -1,283 +0,0 @@
-# iconv.m4 serial 24
-dnl Copyright (C) 2000-2002, 2007-2014, 2016-2022 Free Software Foundation,
-dnl Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_PREREQ([2.64])
-
-dnl Note: AM_ICONV is documented in the GNU gettext manual
-dnl <https://www.gnu.org/software/gettext/manual/html_node/AM_005fICONV.html>.
-dnl Don't make changes that are incompatible with that documentation!
-
-AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-[
-  dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-
-  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-  dnl accordingly.
-  AC_LIB_LINKFLAGS_BODY([iconv])
-])
-
-AC_DEFUN([AM_ICONV_LINK],
-[
-  dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
-  dnl those with the standalone portable GNU libiconv installed).
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-
-  dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
-  dnl accordingly.
-  AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-
-  dnl Add $INCICONV to CPPFLAGS before performing the following checks,
-  dnl because if the user has installed libiconv and not disabled its use
-  dnl via --without-libiconv-prefix, he wants to use it. The first
-  dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
-  am_save_CPPFLAGS="$CPPFLAGS"
-  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
-  AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
-    am_cv_func_iconv="no, consider installing GNU libiconv"
-    am_cv_lib_iconv=no
-    AC_LINK_IFELSE(
-      [AC_LANG_PROGRAM(
-         [[
-#include <stdlib.h>
-#include <iconv.h>
-         ]],
-         [[iconv_t cd = iconv_open("","");
-           iconv(cd,NULL,NULL,NULL,NULL);
-           iconv_close(cd);]])],
-      [am_cv_func_iconv=yes])
-    if test "$am_cv_func_iconv" != yes; then
-      am_save_LIBS="$LIBS"
-      LIBS="$LIBS $LIBICONV"
-      AC_LINK_IFELSE(
-        [AC_LANG_PROGRAM(
-           [[
-#include <stdlib.h>
-#include <iconv.h>
-           ]],
-           [[iconv_t cd = iconv_open("","");
-             iconv(cd,NULL,NULL,NULL,NULL);
-             iconv_close(cd);]])],
-        [am_cv_lib_iconv=yes]
-        [am_cv_func_iconv=yes])
-      LIBS="$am_save_LIBS"
-    fi
-  ])
-  if test "$am_cv_func_iconv" = yes; then
-    AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [
-      dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11,
-      dnl Solaris 10.
-      am_save_LIBS="$LIBS"
-      if test $am_cv_lib_iconv = yes; then
-        LIBS="$LIBS $LIBICONV"
-      fi
-      am_cv_func_iconv_works=no
-      for ac_iconv_const in '' 'const'; do
-        AC_RUN_IFELSE(
-          [AC_LANG_PROGRAM(
-             [[
-#include <iconv.h>
-#include <string.h>
-
-#ifndef ICONV_CONST
-# define ICONV_CONST $ac_iconv_const
-#endif
-             ]],
-             [[int result = 0;
-  /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from
-     successful returns.  This is even documented in
-     <https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_bostechref/iconv.html> */
-  {
-    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
-    if (cd_utf8_to_88591 != (iconv_t)(-1))
-      {
-        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
-        char buf[10];
-        ICONV_CONST char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_utf8_to_88591,
-                            &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if (res == 0)
-          result |= 1;
-        iconv_close (cd_utf8_to_88591);
-      }
-  }
-  /* Test against Solaris 10 bug: Failures are not distinguishable from
-     successful returns.  */
-  {
-    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
-    if (cd_ascii_to_88591 != (iconv_t)(-1))
-      {
-        static ICONV_CONST char input[] = "\263";
-        char buf[10];
-        ICONV_CONST char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_ascii_to_88591,
-                            &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if (res == 0)
-          result |= 2;
-        iconv_close (cd_ascii_to_88591);
-      }
-  }
-  /* Test against AIX 6.1..7.1 bug: Buffer overrun.  */
-  {
-    iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
-    if (cd_88591_to_utf8 != (iconv_t)(-1))
-      {
-        static ICONV_CONST char input[] = "\304";
-        static char buf[2] = { (char)0xDE, (char)0xAD };
-        ICONV_CONST char *inptr = input;
-        size_t inbytesleft = 1;
-        char *outptr = buf;
-        size_t outbytesleft = 1;
-        size_t res = iconv (cd_88591_to_utf8,
-                            &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
-          result |= 4;
-        iconv_close (cd_88591_to_utf8);
-      }
-  }
-#if 0 /* This bug could be worked around by the caller.  */
-  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
-  {
-    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
-    if (cd_88591_to_utf8 != (iconv_t)(-1))
-      {
-        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
-        char buf[50];
-        ICONV_CONST char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_88591_to_utf8,
-                            &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if ((int)res > 0)
-          result |= 8;
-        iconv_close (cd_88591_to_utf8);
-      }
-  }
-#endif
-  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
-     provided.  */
-  {
-    /* Try standardized names.  */
-    iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP");
-    /* Try IRIX, OSF/1 names.  */
-    iconv_t cd2 = iconv_open ("UTF-8", "eucJP");
-    /* Try AIX names.  */
-    iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP");
-    /* Try HP-UX names.  */
-    iconv_t cd4 = iconv_open ("utf8", "eucJP");
-    if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1)
-        && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1))
-      result |= 16;
-    if (cd1 != (iconv_t)(-1))
-      iconv_close (cd1);
-    if (cd2 != (iconv_t)(-1))
-      iconv_close (cd2);
-    if (cd3 != (iconv_t)(-1))
-      iconv_close (cd3);
-    if (cd4 != (iconv_t)(-1))
-      iconv_close (cd4);
-  }
-  return result;
-]])],
-          [am_cv_func_iconv_works=yes], ,
-          [case "$host_os" in
-             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
-             *)            am_cv_func_iconv_works="guessing yes" ;;
-           esac])
-        test "$am_cv_func_iconv_works" = no || break
-      done
-      LIBS="$am_save_LIBS"
-    ])
-    case "$am_cv_func_iconv_works" in
-      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
-      *)   am_func_iconv=yes ;;
-    esac
-  else
-    am_func_iconv=no am_cv_lib_iconv=no
-  fi
-  if test "$am_func_iconv" = yes; then
-    AC_DEFINE([HAVE_ICONV], [1],
-      [Define if you have the iconv() function and it works.])
-  fi
-  if test "$am_cv_lib_iconv" = yes; then
-    AC_MSG_CHECKING([how to link with libiconv])
-    AC_MSG_RESULT([$LIBICONV])
-  else
-    dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
-    dnl either.
-    CPPFLAGS="$am_save_CPPFLAGS"
-    LIBICONV=
-    LTLIBICONV=
-  fi
-  AC_SUBST([LIBICONV])
-  AC_SUBST([LTLIBICONV])
-])
-
-dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like
-dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
-dnl This is tricky because of the way 'aclocal' is implemented:
-dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
-dnl   Otherwise aclocal's initial scan pass would miss the macro definition.
-dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
-dnl   Otherwise aclocal would emit many "Use of uninitialized value $1"
-dnl   warnings.
-AC_DEFUN_ONCE([AM_ICONV],
-[
-  AM_ICONV_LINK
-  if test "$am_cv_func_iconv" = yes; then
-    AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature],
-      [gl_cv_iconv_nonconst],
-      [AC_COMPILE_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-            ]],
-            [[]])],
-         [gl_cv_iconv_nonconst=yes],
-         [gl_cv_iconv_nonconst=no])
-      ])
-  else
-    dnl When compiling GNU libiconv on a system that does not have iconv yet,
-    dnl pick the POSIX compliant declaration without 'const'.
-    gl_cv_iconv_nonconst=yes
-  fi
-  if test $gl_cv_iconv_nonconst = yes; then
-    iconv_arg1=""
-  else
-    iconv_arg1="const"
-  fi
-  AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1],
-    [Define as const if the declaration of iconv() needs const.])
-  dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
-  m4_ifdef([gl_ICONV_H_DEFAULTS],
-    [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
-     if test $gl_cv_iconv_nonconst != yes; then
-       ICONV_CONST="const"
-     fi
-    ])
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/intlmacosx.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/intlmacosx.m4
deleted file mode 100644
index ecc88d6..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/intlmacosx.m4
+++ /dev/null
@@ -1,65 +0,0 @@
-# intlmacosx.m4 serial 8 (gettext-0.20.2)
-dnl Copyright (C) 2004-2014, 2016, 2019-2022 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Lesser General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Lesser General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Checks for special options needed on Mac OS X.
-dnl Defines INTL_MACOSX_LIBS.
-AC_DEFUN([gt_INTL_MACOSX],
-[
-  dnl Check for API introduced in Mac OS X 10.4.
-  AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
-    [gt_cv_func_CFPreferencesCopyAppValue],
-    [gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <CoreFoundation/CFPreferences.h>]],
-          [[CFPreferencesCopyAppValue(NULL, NULL)]])],
-       [gt_cv_func_CFPreferencesCopyAppValue=yes],
-       [gt_cv_func_CFPreferencesCopyAppValue=no])
-     LIBS="$gt_save_LIBS"])
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
-    AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
-      [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
-  fi
-  dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent,
-  dnl because in macOS 10.13.4 it has the following behaviour:
-  dnl When two or more languages are specified in the
-  dnl "System Preferences > Language & Region > Preferred Languages" panel,
-  dnl it returns en_CC where CC is the territory (even when English is not among
-  dnl the preferred languages!).  What we want instead is what
-  dnl CFLocaleCopyCurrent returned in earlier macOS releases and what
-  dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the
-  dnl first among the preferred languages and CC is the territory.
-  AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages],
-    [gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     AC_LINK_IFELSE(
-       [AC_LANG_PROGRAM(
-          [[#include <CoreFoundation/CFLocale.h>]],
-          [[CFLocaleCopyPreferredLanguages();]])],
-       [gt_cv_func_CFLocaleCopyPreferredLanguages=yes],
-       [gt_cv_func_CFLocaleCopyPreferredLanguages=no])
-     LIBS="$gt_save_LIBS"])
-  if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
-    AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1],
-      [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.])
-  fi
-  INTL_MACOSX_LIBS=
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes \
-     || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then
-    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
-  fi
-  AC_SUBST([INTL_MACOSX_LIBS])
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-ld.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-ld.m4
deleted file mode 100644
index 934207a..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-ld.m4
+++ /dev/null
@@ -1,168 +0,0 @@
-# lib-ld.m4 serial 10
-dnl Copyright (C) 1996-2003, 2009-2022 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl Subroutines of libtool.m4,
-dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid
-dnl collision with libtool.m4.
-
-dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no.
-AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes
-  ;;
-*)
-  acl_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$acl_cv_prog_gnu_ld
-])
-
-dnl From libtool-2.4. Sets the variable LD.
-AC_DEFUN([AC_LIB_PROG_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-
-AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
-        [assume the C compiler uses GNU ld [default=no]])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])dnl
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
-  # contains only /bin. Note that ksh looks also at the FPATH variable,
-  # so we have to set that as well for the test.
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
-    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
-           || PATH_SEPARATOR=';'
-       }
-fi
-
-if test -n "$LD"; then
-  AC_MSG_CHECKING([for ld])
-elif test "$GCC" = yes; then
-  AC_MSG_CHECKING([for ld used by $CC])
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-if test -n "$LD"; then
-  # Let the user override the test with a path.
-  :
-else
-  AC_CACHE_VAL([acl_cv_path_LD],
-  [
-    acl_cv_path_LD= # Final result of this test
-    ac_prog=ld # Program to search in $PATH
-    if test "$GCC" = yes; then
-      # Check if gcc -print-prog-name=ld gives a path.
-      case $host in
-        *-*-mingw*)
-          # gcc leaves a trailing carriage return which upsets mingw
-          acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-        *)
-          acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
-      esac
-      case $acl_output in
-        # Accept absolute paths.
-        [[\\/]]* | ?:[[\\/]]*)
-          re_direlt='/[[^/]][[^/]]*/\.\./'
-          # Canonicalize the pathname of ld
-          acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
-          while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
-            acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
-          done
-          # Got the pathname. No search in PATH is needed.
-          acl_cv_path_LD="$acl_output"
-          ac_prog=
-          ;;
-        "")
-          # If it fails, then pretend we aren't using GCC.
-          ;;
-        *)
-          # If it is relative, then search for the first ld in PATH.
-          with_gnu_ld=unknown
-          ;;
-      esac
-    fi
-    if test -n "$ac_prog"; then
-      # Search for $ac_prog in $PATH.
-      acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-      for ac_dir in $PATH; do
-        IFS="$acl_save_ifs"
-        test -z "$ac_dir" && ac_dir=.
-        if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-          acl_cv_path_LD="$ac_dir/$ac_prog"
-          # Check to see if the program is GNU ld.  I'd rather use --version,
-          # but apparently some variants of GNU ld only accept -v.
-          # Break only if it was the GNU/non-GNU ld that we prefer.
-          case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
-            *GNU* | *'with BFD'*)
-              test "$with_gnu_ld" != no && break
-              ;;
-            *)
-              test "$with_gnu_ld" != yes && break
-              ;;
-          esac
-        fi
-      done
-      IFS="$acl_save_ifs"
-    fi
-    case $host in
-      *-*-aix*)
-        AC_COMPILE_IFELSE(
-          [AC_LANG_SOURCE(
-             [[#if defined __powerpc64__ || defined __LP64__
-                int ok;
-               #else
-                error fail
-               #endif
-             ]])],
-          [# The compiler produces 64-bit code. Add option '-b64' so that the
-           # linker groks 64-bit object files.
-           case "$acl_cv_path_LD " in
-             *" -b64 "*) ;;
-             *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
-           esac
-          ], [])
-        ;;
-      sparc64-*-netbsd*)
-        AC_COMPILE_IFELSE(
-          [AC_LANG_SOURCE(
-             [[#if defined __sparcv9 || defined __arch64__
-                int ok;
-               #else
-                error fail
-               #endif
-             ]])],
-          [],
-          [# The compiler produces 32-bit code. Add option '-m elf32_sparc'
-           # so that the linker groks 32-bit object files.
-           case "$acl_cv_path_LD " in
-             *" -m elf32_sparc "*) ;;
-             *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
-           esac
-          ])
-        ;;
-    esac
-  ])
-  LD="$acl_cv_path_LD"
-fi
-if test -n "$LD"; then
-  AC_MSG_RESULT([$LD])
-else
-  AC_MSG_RESULT([no])
-  AC_MSG_ERROR([no acceptable ld found in \$PATH])
-fi
-AC_LIB_PROG_LD_GNU
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-link.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-link.m4
deleted file mode 100644
index 3b75bcd..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-link.m4
+++ /dev/null
@@ -1,813 +0,0 @@
-# lib-link.m4 serial 33
-dnl Copyright (C) 2001-2022 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_PREREQ([2.61])
-
-dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-dnl augments the CPPFLAGS variable.
-dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
-dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
-AC_DEFUN([AC_LIB_LINKFLAGS],
-[
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-  pushdef([Name],[m4_translit([$1],[./+-], [____])])
-  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
-                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
-  AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
-    AC_LIB_LINKFLAGS_BODY([$1], [$2])
-    ac_cv_lib[]Name[]_libs="$LIB[]NAME"
-    ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
-    ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
-    ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
-  ])
-  LIB[]NAME="$ac_cv_lib[]Name[]_libs"
-  LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
-  INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
-  LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
-  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-  AC_SUBST([LIB]NAME)
-  AC_SUBST([LTLIB]NAME)
-  AC_SUBST([LIB]NAME[_PREFIX])
-  dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
-  dnl results of this search when this library appears as a dependency.
-  HAVE_LIB[]NAME=yes
-  popdef([NAME])
-  popdef([Name])
-])
-
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message])
-dnl searches for libname and the libraries corresponding to explicit and
-dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. The missing-message
-dnl defaults to 'no' and may contain additional hints for the user.
-dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME}
-dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
-dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
-AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-[
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  AC_REQUIRE([AC_LIB_RPATH])
-  pushdef([Name],[m4_translit([$1],[./+-], [____])])
-  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
-                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
-
-  dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
-  dnl accordingly.
-  AC_LIB_LINKFLAGS_BODY([$1], [$2])
-
-  dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
-  dnl because if the user has installed lib[]Name and not disabled its use
-  dnl via --without-lib[]Name-prefix, he wants to use it.
-  ac_save_CPPFLAGS="$CPPFLAGS"
-  AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-
-  AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
-    ac_save_LIBS="$LIBS"
-    dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
-    dnl because these -l options might require -L options that are present in
-    dnl LIBS. -l options benefit only from the -L options listed before it.
-    dnl Otherwise, add it to the front of LIBS, because it may be a static
-    dnl library that depends on another static library that is present in LIBS.
-    dnl Static libraries benefit only from the static libraries listed after
-    dnl it.
-    case " $LIB[]NAME" in
-      *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
-      *)       LIBS="$LIB[]NAME $LIBS" ;;
-    esac
-    AC_LINK_IFELSE(
-      [AC_LANG_PROGRAM([[$3]], [[$4]])],
-      [ac_cv_lib[]Name=yes],
-      [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])'])
-    LIBS="$ac_save_LIBS"
-  ])
-  if test "$ac_cv_lib[]Name" = yes; then
-    HAVE_LIB[]NAME=yes
-    AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.])
-    AC_MSG_CHECKING([how to link with lib[]$1])
-    AC_MSG_RESULT([$LIB[]NAME])
-  else
-    HAVE_LIB[]NAME=no
-    dnl If $LIB[]NAME didn't lead to a usable library, we don't need
-    dnl $INC[]NAME either.
-    CPPFLAGS="$ac_save_CPPFLAGS"
-    LIB[]NAME=
-    LTLIB[]NAME=
-    LIB[]NAME[]_PREFIX=
-  fi
-  AC_SUBST([HAVE_LIB]NAME)
-  AC_SUBST([LIB]NAME)
-  AC_SUBST([LTLIB]NAME)
-  AC_SUBST([LIB]NAME[_PREFIX])
-  popdef([NAME])
-  popdef([Name])
-])
-
-dnl Determine the platform dependent parameters needed to use rpath:
-dnl   acl_libext,
-dnl   acl_shlibext,
-dnl   acl_libname_spec,
-dnl   acl_library_names_spec,
-dnl   acl_hardcode_libdir_flag_spec,
-dnl   acl_hardcode_libdir_separator,
-dnl   acl_hardcode_direct,
-dnl   acl_hardcode_minus_L.
-AC_DEFUN([AC_LIB_RPATH],
-[
-  dnl Complain if config.rpath is missing.
-  AC_REQUIRE_AUX_FILE([config.rpath])
-  AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
-  AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
-  AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
-  AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
-  AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
-    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-    . ./conftest.sh
-    rm -f ./conftest.sh
-    acl_cv_rpath=done
-  ])
-  wl="$acl_cv_wl"
-  acl_libext="$acl_cv_libext"
-  acl_shlibext="$acl_cv_shlibext"
-  acl_libname_spec="$acl_cv_libname_spec"
-  acl_library_names_spec="$acl_cv_library_names_spec"
-  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-  acl_hardcode_direct="$acl_cv_hardcode_direct"
-  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
-  dnl Determine whether the user wants rpath handling at all.
-  AC_ARG_ENABLE([rpath],
-    [  --disable-rpath         do not hardcode runtime library paths],
-    :, enable_rpath=yes)
-])
-
-dnl AC_LIB_FROMPACKAGE(name, package)
-dnl declares that libname comes from the given package. The configure file
-dnl will then not have a --with-libname-prefix option but a
-dnl --with-package-prefix option. Several libraries can come from the same
-dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
-dnl macro call that searches for libname.
-AC_DEFUN([AC_LIB_FROMPACKAGE],
-[
-  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
-                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
-  define([acl_frompackage_]NAME, [$2])
-  popdef([NAME])
-  pushdef([PACK],[$2])
-  pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
-                                     [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
-  define([acl_libsinpackage_]PACKUP,
-    m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
-  popdef([PACKUP])
-  popdef([PACK])
-])
-
-dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
-dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
-AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-[
-  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
-  pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
-                                   [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
-  pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
-  pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
-                                     [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
-  pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
-  dnl By default, look in $includedir and $libdir.
-  use_additional=yes
-  AC_LIB_WITH_FINAL_PREFIX([
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
-    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
-  ])
-  AC_ARG_WITH(PACK[-prefix],
-[[  --with-]]PACK[[-prefix[=DIR]  search for ]]PACKLIBS[[ in DIR/include and DIR/lib
-  --without-]]PACK[[-prefix     don't search for ]]PACKLIBS[[ in includedir and libdir]],
-[
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-        AC_LIB_WITH_FINAL_PREFIX([
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
-          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
-        ])
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/$acl_libdirstem"
-        additional_libdir2="$withval/$acl_libdirstem2"
-        additional_libdir3="$withval/$acl_libdirstem3"
-      fi
-    fi
-])
-  if test "X$additional_libdir2" = "X$additional_libdir"; then
-    additional_libdir2=
-  fi
-  if test "X$additional_libdir3" = "X$additional_libdir"; then
-    additional_libdir3=
-  fi
-  dnl Search the library and its dependencies in $additional_libdir and
-  dnl $LDFLAGS. Using breadth-first-seach.
-  LIB[]NAME=
-  LTLIB[]NAME=
-  INC[]NAME=
-  LIB[]NAME[]_PREFIX=
-  dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been
-  dnl computed. So it has to be reset here.
-  HAVE_LIB[]NAME=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='$1 $2'
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-        dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
-        dnl or AC_LIB_HAVE_LINKFLAGS call.
-        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
-          else
-            dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
-            dnl that this library doesn't exist. So just drop it.
-            :
-          fi
-        else
-          dnl Search the library lib$name in $additional_libdir and $LDFLAGS
-          dnl and the already constructed $LIBNAME/$LTLIBNAME.
-          found_dir=
-          found_la=
-          found_so=
-          found_a=
-          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
-          if test -n "$acl_shlibext"; then
-            shrext=".$acl_shlibext"             # typically: shrext=.so
-          else
-            shrext=
-          fi
-          if test $use_additional = yes; then
-            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
-              if test "X$found_dir" = "X"; then
-                eval dir=\$$additional_libdir_variable
-                if test -n "$dir"; then
-                  dnl The same code as in the loop below:
-                  dnl First look for a shared library.
-                  if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
-                      found_dir="$dir"
-                      found_so="$dir/$libname$shrext"
-                    else
-                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                        ver=`(cd "$dir" && \
-                              for f in "$libname$shrext".*; do echo "$f"; done \
-                              | sed -e "s,^$libname$shrext\\\\.,," \
-                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                              | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
-                          found_dir="$dir"
-                          found_so="$dir/$libname$shrext.$ver"
-                        fi
-                      else
-                        eval library_names=\"$acl_library_names_spec\"
-                        for f in $library_names; do
-                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
-                            found_dir="$dir"
-                            found_so="$dir/$f"
-                            break
-                          fi
-                        done
-                      fi
-                    fi
-                  fi
-                  dnl Then look for a static library.
-                  if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
-                      found_dir="$dir"
-                      found_a="$dir/$libname.$acl_libext"
-                    fi
-                  fi
-                  if test "X$found_dir" != "X"; then
-                    if test -f "$dir/$libname.la"; then
-                      found_la="$dir/$libname.la"
-                    fi
-                  fi
-                fi
-              fi
-            done
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIB[]NAME; do
-              AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-              case "$x" in
-                -L*)
-                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-                  dnl First look for a shared library.
-                  if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
-                      found_dir="$dir"
-                      found_so="$dir/$libname$shrext"
-                    else
-                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                        ver=`(cd "$dir" && \
-                              for f in "$libname$shrext".*; do echo "$f"; done \
-                              | sed -e "s,^$libname$shrext\\\\.,," \
-                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                              | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
-                          found_dir="$dir"
-                          found_so="$dir/$libname$shrext.$ver"
-                        fi
-                      else
-                        eval library_names=\"$acl_library_names_spec\"
-                        for f in $library_names; do
-                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
-                            found_dir="$dir"
-                            found_so="$dir/$f"
-                            break
-                          fi
-                        done
-                      fi
-                    fi
-                  fi
-                  dnl Then look for a static library.
-                  if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
-                      found_dir="$dir"
-                      found_a="$dir/$libname.$acl_libext"
-                    fi
-                  fi
-                  if test "X$found_dir" != "X"; then
-                    if test -f "$dir/$libname.la"; then
-                      found_la="$dir/$libname.la"
-                    fi
-                  fi
-                  ;;
-              esac
-              if test "X$found_dir" != "X"; then
-                break
-              fi
-            done
-          fi
-          if test "X$found_dir" != "X"; then
-            dnl Found the library.
-            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
-            if test "X$found_so" != "X"; then
-              dnl Linking with a shared library. We attempt to hardcode its
-              dnl directory into the executable's runpath, unless it's the
-              dnl standard /usr/lib.
-              if test "$enable_rpath" = no \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
-                dnl No hardcoding is needed.
-                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-              else
-                dnl Use an explicit option to hardcode DIR into the resulting
-                dnl binary.
-                dnl Potentially add DIR to ltrpathdirs.
-                dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-                haveit=
-                for x in $ltrpathdirs; do
-                  if test "X$x" = "X$found_dir"; then
-                    haveit=yes
-                    break
-                  fi
-                done
-                if test -z "$haveit"; then
-                  ltrpathdirs="$ltrpathdirs $found_dir"
-                fi
-                dnl The hardcoding into $LIBNAME is system dependent.
-                if test "$acl_hardcode_direct" = yes; then
-                  dnl Using DIR/libNAME.so during linking hardcodes DIR into the
-                  dnl resulting binary.
-                  LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-                else
-                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
-                    dnl Use an explicit option to hardcode DIR into the resulting
-                    dnl binary.
-                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-                    dnl Potentially add DIR to rpathdirs.
-                    dnl The rpathdirs will be appended to $LIBNAME at the end.
-                    haveit=
-                    for x in $rpathdirs; do
-                      if test "X$x" = "X$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      rpathdirs="$rpathdirs $found_dir"
-                    fi
-                  else
-                    dnl Rely on "-L$found_dir".
-                    dnl But don't add it if it's already contained in the LDFLAGS
-                    dnl or the already constructed $LIBNAME
-                    haveit=
-                    for x in $LDFLAGS $LIB[]NAME; do
-                      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
-                    fi
-                    if test "$acl_hardcode_minus_L" != no; then
-                      dnl FIXME: Not sure whether we should use
-                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-                      dnl here.
-                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
-                    else
-                      dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
-                      dnl here, because this doesn't fit in flags passed to the
-                      dnl compiler. So give up. No hardcoding. This affects only
-                      dnl very old systems.
-                      dnl FIXME: Not sure whether we should use
-                      dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
-                      dnl here.
-                      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                dnl Linking with a static library.
-                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
-              else
-                dnl We shouldn't come here, but anyway it's good to have a
-                dnl fallback.
-                LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
-              fi
-            fi
-            dnl Assume the include files are nearby.
-            additional_includedir=
-            case "$found_dir" in
-              */$acl_libdirstem | */$acl_libdirstem/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                if test "$name" = '$1'; then
-                  LIB[]NAME[]_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-              */$acl_libdirstem2 | */$acl_libdirstem2/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
-                if test "$name" = '$1'; then
-                  LIB[]NAME[]_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-              */$acl_libdirstem3 | */$acl_libdirstem3/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
-                if test "$name" = '$1'; then
-                  LIB[]NAME[]_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-              dnl Potentially add $additional_includedir to $INCNAME.
-              dnl But don't add it
-              dnl   1. if it's the standard /usr/include,
-              dnl   2. if it's /usr/local/include and we are using GCC on Linux,
-              dnl   3. if it's already present in $CPPFLAGS or the already
-              dnl      constructed $INCNAME,
-              dnl   4. if it doesn't exist as a directory.
-              if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INC[]NAME; do
-                    AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                      dnl Really add $additional_includedir to $INCNAME.
-                      INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-            dnl Look for dependencies.
-            if test -n "$found_la"; then
-              dnl Read the .la file. It defines the variables
-              dnl dlname, library_names, old_library, dependency_libs, current,
-              dnl age, revision, installed, dlopen, dlpreopen, libdir.
-              save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-              dnl We use only dependency_libs.
-              for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                    dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME.
-                    dnl But don't add it
-                    dnl   1. if it's the standard /usr/lib,
-                    dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
-                    dnl   3. if it's already present in $LDFLAGS or the already
-                    dnl      constructed $LIBNAME,
-                    dnl   4. if it doesn't exist as a directory.
-                    if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
-                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
-                      haveit=
-                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
-                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIB[]NAME; do
-                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                          if test "X$x" = "X-L$dependency_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$dependency_libdir"; then
-                            dnl Really add $dependency_libdir to $LIBNAME.
-                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIB[]NAME; do
-                          AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                          if test "X$x" = "X-L$dependency_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$dependency_libdir"; then
-                            dnl Really add $dependency_libdir to $LTLIBNAME.
-                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                      dnl Potentially add DIR to rpathdirs.
-                      dnl The rpathdirs will be appended to $LIBNAME at the end.
-                      haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                      dnl Potentially add DIR to ltrpathdirs.
-                      dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
-                      haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                    dnl Handle this in the next round.
-                    dnl But on GNU systems, ignore -lc options, because
-                    dnl   - linking with libc is the default anyway,
-                    dnl   - linking with libc.a may produce an error
-                    dnl     "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie"
-                    dnl     or may produce an executable that always crashes, see
-                    dnl     <https://lists.gnu.org/archive/html/grep-devel/2020-09/msg00052.html>.
-                    dep=`echo "X$dep" | sed -e 's/^X-l//'`
-                    if test "X$dep" != Xc \
-                       || case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) false ;;
-                            *)                          true ;;
-                          esac; then
-                      names_next_round="$names_next_round $dep"
-                    fi
-                    ;;
-                  *.la)
-                    dnl Handle this in the next round. Throw away the .la's
-                    dnl directory; it is already contained in a preceding -L
-                    dnl option.
-                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                    dnl Most likely an immediate library name.
-                    LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
-                    LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-            dnl Didn't find the library; assume it is in the system directories
-            dnl known to the linker and runtime loader. (All the system
-            dnl directories known to the linker should also be known to the
-            dnl runtime loader, otherwise the system is severely misconfigured.)
-            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
-            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
-          fi
-        fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$acl_hardcode_libdir_separator"; then
-      dnl Weird platform: only the last -rpath option counts, the user must
-      dnl pass all path elements in one option. We can arrange that for a
-      dnl single library, but not when more than one $LIBNAMEs are used.
-      alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
-      done
-      dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
-      acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$acl_hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-    else
-      dnl The -rpath options are cumulative.
-      for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$acl_hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
-      done
-    fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-    dnl When using libtool, the option that works for both libraries and
-    dnl executables is -R. The -R options are cumulative.
-    for found_dir in $ltrpathdirs; do
-      LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
-    done
-  fi
-  popdef([PACKLIBS])
-  popdef([PACKUP])
-  popdef([PACK])
-  popdef([NAME])
-])
-
-dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-dnl unless already present in VAR.
-dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-dnl contains two or three consecutive elements that belong together.
-AC_DEFUN([AC_LIB_APPENDTOVAR],
-[
-  for element in [$2]; do
-    haveit=
-    for x in $[$1]; do
-      AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      [$1]="${[$1]}${[$1]:+ }$element"
-    fi
-  done
-])
-
-dnl For those cases where a variable contains several -L and -l options
-dnl referring to unknown libraries and directories, this macro determines the
-dnl necessary additional linker options for the runtime path.
-dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
-dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
-dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
-dnl otherwise linking without libtool is assumed.
-AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
-[
-  AC_REQUIRE([AC_LIB_RPATH])
-  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
-  $1=
-  if test "$enable_rpath" != no; then
-    if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
-      dnl Use an explicit option to hardcode directories into the resulting
-      dnl binary.
-      rpathdirs=
-      next=
-      for opt in $2; do
-        if test -n "$next"; then
-          dir="$next"
-          dnl No need to hardcode the standard /usr/lib.
-          if test "X$dir" != "X/usr/$acl_libdirstem" \
-             && test "X$dir" != "X/usr/$acl_libdirstem2" \
-             && test "X$dir" != "X/usr/$acl_libdirstem3"; then
-            rpathdirs="$rpathdirs $dir"
-          fi
-          next=
-        else
-          case $opt in
-            -L) next=yes ;;
-            -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
-                 dnl No need to hardcode the standard /usr/lib.
-                 if test "X$dir" != "X/usr/$acl_libdirstem" \
-                    && test "X$dir" != "X/usr/$acl_libdirstem2" \
-                    && test "X$dir" != "X/usr/$acl_libdirstem3"; then
-                   rpathdirs="$rpathdirs $dir"
-                 fi
-                 next= ;;
-            *) next= ;;
-          esac
-        fi
-      done
-      if test "X$rpathdirs" != "X"; then
-        if test -n ""$3""; then
-          dnl libtool is used for linking. Use -R options.
-          for dir in $rpathdirs; do
-            $1="${$1}${$1:+ }-R$dir"
-          done
-        else
-          dnl The linker is used for linking directly.
-          if test -n "$acl_hardcode_libdir_separator"; then
-            dnl Weird platform: only the last -rpath option counts, the user
-            dnl must pass all path elements in one option.
-            alldirs=
-            for dir in $rpathdirs; do
-              alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
-            done
-            acl_save_libdir="$libdir"
-            libdir="$alldirs"
-            eval flag=\"$acl_hardcode_libdir_flag_spec\"
-            libdir="$acl_save_libdir"
-            $1="$flag"
-          else
-            dnl The -rpath options are cumulative.
-            for dir in $rpathdirs; do
-              acl_save_libdir="$libdir"
-              libdir="$dir"
-              eval flag=\"$acl_hardcode_libdir_flag_spec\"
-              libdir="$acl_save_libdir"
-              $1="${$1}${$1:+ }$flag"
-            done
-          fi
-        fi
-      fi
-    fi
-  fi
-  AC_SUBST([$1])
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-prefix.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-prefix.m4
deleted file mode 100644
index 999f712..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/lib-prefix.m4
+++ /dev/null
@@ -1,323 +0,0 @@
-# lib-prefix.m4 serial 20
-dnl Copyright (C) 2001-2005, 2008-2022 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-dnl to access previously installed libraries. The basic assumption is that
-dnl a user will want packages to use other packages he previously installed
-dnl with the same --prefix option.
-dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-dnl libraries, but is otherwise very convenient.
-AC_DEFUN([AC_LIB_PREFIX],
-[
-  AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
-  AC_REQUIRE([AC_PROG_CC])
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
-  AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
-  dnl By default, look in $includedir and $libdir.
-  use_additional=yes
-  AC_LIB_WITH_FINAL_PREFIX([
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-  ])
-  AC_ARG_WITH([lib-prefix],
-[[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
-  --without-lib-prefix    don't search for libraries in includedir and libdir]],
-[
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-        AC_LIB_WITH_FINAL_PREFIX([
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-        ])
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/$acl_libdirstem"
-      fi
-    fi
-])
-  if test $use_additional = yes; then
-    dnl Potentially add $additional_includedir to $CPPFLAGS.
-    dnl But don't add it
-    dnl   1. if it's the standard /usr/include,
-    dnl   2. if it's already present in $CPPFLAGS,
-    dnl   3. if it's /usr/local/include and we are using GCC on Linux,
-    dnl   4. if it doesn't exist as a directory.
-    if test "X$additional_includedir" != "X/usr/include"; then
-      haveit=
-      for x in $CPPFLAGS; do
-        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-        if test "X$x" = "X-I$additional_includedir"; then
-          haveit=yes
-          break
-        fi
-      done
-      if test -z "$haveit"; then
-        if test "X$additional_includedir" = "X/usr/local/include"; then
-          if test -n "$GCC"; then
-            case $host_os in
-              linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-            esac
-          fi
-        fi
-        if test -z "$haveit"; then
-          if test -d "$additional_includedir"; then
-            dnl Really add $additional_includedir to $CPPFLAGS.
-            CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
-          fi
-        fi
-      fi
-    fi
-    dnl Potentially add $additional_libdir to $LDFLAGS.
-    dnl But don't add it
-    dnl   1. if it's the standard /usr/lib,
-    dnl   2. if it's already present in $LDFLAGS,
-    dnl   3. if it's /usr/local/lib and we are using GCC on Linux,
-    dnl   4. if it doesn't exist as a directory.
-    if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
-      haveit=
-      for x in $LDFLAGS; do
-        AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-        if test "X$x" = "X-L$additional_libdir"; then
-          haveit=yes
-          break
-        fi
-      done
-      if test -z "$haveit"; then
-        if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
-          if test -n "$GCC"; then
-            case $host_os in
-              linux*) haveit=yes;;
-            esac
-          fi
-        fi
-        if test -z "$haveit"; then
-          if test -d "$additional_libdir"; then
-            dnl Really add $additional_libdir to $LDFLAGS.
-            LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
-          fi
-        fi
-      fi
-    fi
-  fi
-])
-
-dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-dnl acl_final_exec_prefix, containing the values to which $prefix and
-dnl $exec_prefix will expand at the end of the configure script.
-AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-[
-  dnl Unfortunately, prefix and exec_prefix get only finally determined
-  dnl at the end of configure.
-  if test "X$prefix" = "XNONE"; then
-    acl_final_prefix="$ac_default_prefix"
-  else
-    acl_final_prefix="$prefix"
-  fi
-  if test "X$exec_prefix" = "XNONE"; then
-    acl_final_exec_prefix='${prefix}'
-  else
-    acl_final_exec_prefix="$exec_prefix"
-  fi
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-  prefix="$acl_save_prefix"
-])
-
-dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-dnl variables prefix and exec_prefix bound to the values they will have
-dnl at the end of the configure script.
-AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-[
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  $1
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-])
-
-dnl AC_LIB_PREPARE_MULTILIB creates
-dnl - a function acl_is_expected_elfclass, that tests whether standard input
-dn;   has a 32-bit or 64-bit ELF header, depending on the host CPU ABI,
-dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing
-dnl   the basename of the libdir to try in turn, either "lib" or "lib64" or
-dnl   "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar.
-AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
-[
-  dnl There is no formal standard regarding lib, lib32, and lib64.
-  dnl On most glibc systems, the current practice is that on a system supporting
-  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
-  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on
-  dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go
-  dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib.
-  dnl We determine the compiler's default mode by looking at the compiler's
-  dnl library search path. If at least one of its elements ends in /lib64 or
-  dnl points to a directory whose absolute pathname ends in /lib64, we use that
-  dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default,
-  dnl namely "lib".
-  dnl On Solaris systems, the current practice is that on a system supporting
-  dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
-  dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
-  dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
-  AC_REQUIRE([AC_CANONICAL_HOST])
-  AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
-
-  AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf],
-    [AC_EGREP_CPP([Extensible Linking Format],
-       [#if defined __ELF__ || (defined __linux__ && defined __EDG__)
-        Extensible Linking Format
-        #endif
-       ],
-       [gl_cv_elf=yes],
-       [gl_cv_elf=no])
-    ])
-  if test $gl_cv_elf = yes; then
-    # Extract the ELF class of a file (5th byte) in decimal.
-    # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
-    if od -A x < /dev/null >/dev/null 2>/dev/null; then
-      # Use POSIX od.
-      func_elfclass ()
-      {
-        od -A n -t d1 -j 4 -N 1
-      }
-    else
-      # Use BSD hexdump.
-      func_elfclass ()
-      {
-        dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
-        echo
-      }
-    fi
-    # Use 'expr', not 'test', to compare the values of func_elfclass, because on
-    # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002,
-    # not 1 or 2.
-changequote(,)dnl
-    case $HOST_CPU_C_ABI_32BIT in
-      yes)
-        # 32-bit ABI.
-        acl_is_expected_elfclass ()
-        {
-          expr "`func_elfclass | sed -e 's/[ 	]//g'`" = 1 > /dev/null
-        }
-        ;;
-      no)
-        # 64-bit ABI.
-        acl_is_expected_elfclass ()
-        {
-          expr "`func_elfclass | sed -e 's/[ 	]//g'`" = 2 > /dev/null
-        }
-        ;;
-      *)
-        # Unknown.
-        acl_is_expected_elfclass ()
-        {
-          :
-        }
-        ;;
-    esac
-changequote([,])dnl
-  else
-    acl_is_expected_elfclass ()
-    {
-      :
-    }
-  fi
-
-  dnl Allow the user to override the result by setting acl_cv_libdirstems.
-  AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
-    [acl_cv_libdirstems],
-    [dnl Try 'lib' first, because that's the default for libdir in GNU, see
-     dnl <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>.
-     acl_libdirstem=lib
-     acl_libdirstem2=
-     acl_libdirstem3=
-     case "$host_os" in
-       solaris*)
-         dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
-         dnl <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
-         dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
-         dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
-         dnl symlink is missing, so we set acl_libdirstem2 too.
-         if test $HOST_CPU_C_ABI_32BIT = no; then
-           acl_libdirstem2=lib/64
-           case "$host_cpu" in
-             sparc*)        acl_libdirstem3=lib/sparcv9 ;;
-             i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
-           esac
-         fi
-         ;;
-       *)
-         dnl If $CC generates code for a 32-bit ABI, the libraries are
-         dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64.
-         dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries
-         dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32.
-         dnl Find the compiler's search path. However, non-system compilers
-         dnl sometimes have odd library search paths. But we can't simply invoke
-         dnl '/usr/bin/gcc -print-search-dirs' because that would not take into
-         dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS.
-         searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
-                     | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-         if test $HOST_CPU_C_ABI_32BIT != no; then
-           # 32-bit or unknown ABI.
-           if test -d /usr/lib32; then
-             acl_libdirstem2=lib32
-           fi
-         fi
-         if test $HOST_CPU_C_ABI_32BIT != yes; then
-           # 64-bit or unknown ABI.
-           if test -d /usr/lib64; then
-             acl_libdirstem3=lib64
-           fi
-         fi
-         if test -n "$searchpath"; then
-           acl_save_IFS="${IFS= 	}"; IFS=":"
-           for searchdir in $searchpath; do
-             if test -d "$searchdir"; then
-               case "$searchdir" in
-                 */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
-                 */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
-                 */../ | */.. )
-                   # Better ignore directories of this form. They are misleading.
-                   ;;
-                 *) searchdir=`cd "$searchdir" && pwd`
-                    case "$searchdir" in
-                      */lib32 ) acl_libdirstem2=lib32 ;;
-                      */lib64 ) acl_libdirstem3=lib64 ;;
-                    esac ;;
-               esac
-             fi
-           done
-           IFS="$acl_save_IFS"
-           if test $HOST_CPU_C_ABI_32BIT = yes; then
-             # 32-bit ABI.
-             acl_libdirstem3=
-           fi
-           if test $HOST_CPU_C_ABI_32BIT = no; then
-             # 64-bit ABI.
-             acl_libdirstem2=
-           fi
-         fi
-         ;;
-     esac
-     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
-     test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
-     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
-    ])
-  dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and
-  dnl acl_libdirstem3.
-changequote(,)dnl
-  acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
-  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
-  acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
-changequote([,])dnl
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/nls.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/nls.m4
deleted file mode 100644
index 7c11c90..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/nls.m4
+++ /dev/null
@@ -1,32 +0,0 @@
-# nls.m4 serial 6 (gettext-0.20.2)
-dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2022 Free
-dnl Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Lesser General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Lesser General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_PREREQ([2.50])
-
-AC_DEFUN([AM_NLS],
-[
-  AC_MSG_CHECKING([whether NLS is requested])
-  dnl Default is enabled NLS
-  AC_ARG_ENABLE([nls],
-    [  --disable-nls           do not use Native Language Support],
-    USE_NLS=$enableval, USE_NLS=yes)
-  AC_MSG_RESULT([$USE_NLS])
-  AC_SUBST([USE_NLS])
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/po.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/po.m4
deleted file mode 100644
index 2f14f8e..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/po.m4
+++ /dev/null
@@ -1,454 +0,0 @@
-# po.m4 serial 32 (gettext-0.21.1)
-dnl Copyright (C) 1995-2014, 2016, 2018-2022 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Lesser General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Lesser General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_PREREQ([2.60])
-
-dnl Checks for all prerequisites of the po subdirectory.
-AC_DEFUN([AM_PO_SUBDIRS],
-[
-  AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-  AC_REQUIRE([AC_PROG_INSTALL])dnl
-  AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-  AC_REQUIRE([AC_PROG_SED])dnl
-  AC_REQUIRE([AM_NLS])dnl
-
-  dnl Release version of the gettext macros. This is used to ensure that
-  dnl the gettext macros and po/Makefile.in.in are in sync.
-  AC_SUBST([GETTEXT_MACRO_VERSION], [0.20])
-
-  dnl Perform the following tests also if --disable-nls has been given,
-  dnl because they are needed for "make dist" to work.
-
-  dnl Search for GNU msgfmt in the PATH.
-  dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
-  dnl The second test excludes FreeBSD msgfmt.
-  AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-    [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
-     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-    :)
-  AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
-
-  dnl Test whether it is GNU msgfmt >= 0.15.
-changequote(,)dnl
-  case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
-    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
-    *) GMSGFMT_015=$GMSGFMT ;;
-  esac
-changequote([,])dnl
-  AC_SUBST([GMSGFMT_015])
-
-  dnl Search for GNU xgettext 0.12 or newer in the PATH.
-  dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
-  dnl The second test excludes FreeBSD xgettext.
-  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-    [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
-     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
-    :)
-  dnl Remove leftover from FreeBSD xgettext call.
-  rm -f messages.po
-
-  dnl Test whether it is GNU xgettext >= 0.15.
-changequote(,)dnl
-  case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
-    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
-    *) XGETTEXT_015=$XGETTEXT ;;
-  esac
-changequote([,])dnl
-  AC_SUBST([XGETTEXT_015])
-
-  dnl Search for GNU msgmerge 0.11 or newer in the PATH.
-  AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
-    [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
-
-  dnl Test whether it is GNU msgmerge >= 0.20.
-  if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then
-    MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt'
-  else
-    dnl Test whether it is GNU msgmerge >= 0.12.
-    if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then
-      MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet'
-    else
-      dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is
-      dnl slow. But this is not a big problem, as such old gettext versions are
-      dnl hardly in use any more.
-      MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet'
-    fi
-  fi
-  AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION])
-
-  dnl Support for AM_XGETTEXT_OPTION.
-  test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
-  AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
-
-  AC_CONFIG_COMMANDS([po-directories], [[
-    for ac_file in $CONFIG_FILES; do
-      # Support "outfile[:infile[:infile...]]"
-      case "$ac_file" in
-        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-      esac
-      # PO directories have a Makefile.in generated from Makefile.in.in.
-      case "$ac_file" in */Makefile.in)
-        # Adjust a relative srcdir.
-        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-        ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
-        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-        # In autoconf-2.13 it is called $ac_given_srcdir.
-        # In autoconf-2.50 it is called $srcdir.
-        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-        case "$ac_given_srcdir" in
-          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-          /*) top_srcdir="$ac_given_srcdir" ;;
-          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-        esac
-        # Treat a directory as a PO directory if and only if it has a
-        # POTFILES.in file. This allows packages to have multiple PO
-        # directories under different names or in different locations.
-        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
-          rm -f "$ac_dir/POTFILES"
-          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-          gt_tab=`printf '\t'`
-          cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
-          POMAKEFILEDEPS="POTFILES.in"
-          # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
-          # on $ac_dir but don't depend on user-specified configuration
-          # parameters.
-          if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
-            # The LINGUAS file contains the set of available languages.
-            if test -n "$OBSOLETE_ALL_LINGUAS"; then
-              test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
-            fi
-            ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-            POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
-          else
-            # The set of available languages was given in configure.in.
-            ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS
-          fi
-          # Compute POFILES
-          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
-          # Compute UPDATEPOFILES
-          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
-          # Compute DUMMYPOFILES
-          # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
-          # Compute GMOFILES
-          # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
-          case "$ac_given_srcdir" in
-            .) srcdirpre= ;;
-            *) srcdirpre='$(srcdir)/' ;;
-          esac
-          POFILES=
-          UPDATEPOFILES=
-          DUMMYPOFILES=
-          GMOFILES=
-          for lang in $ALL_LINGUAS; do
-            POFILES="$POFILES $srcdirpre$lang.po"
-            UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-            DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-            GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-          done
-          # CATALOGS depends on both $ac_dir and the user's LINGUAS
-          # environment variable.
-          INST_LINGUAS=
-          if test -n "$ALL_LINGUAS"; then
-            for presentlang in $ALL_LINGUAS; do
-              useit=no
-              if test "%UNSET%" != "$LINGUAS"; then
-                desiredlanguages="$LINGUAS"
-              else
-                desiredlanguages="$ALL_LINGUAS"
-              fi
-              for desiredlang in $desiredlanguages; do
-                # Use the presentlang catalog if desiredlang is
-                #   a. equal to presentlang, or
-                #   b. a variant of presentlang (because in this case,
-                #      presentlang can be used as a fallback for messages
-                #      which are not translated in the desiredlang catalog).
-                case "$desiredlang" in
-                  "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*)
-                    useit=yes
-                    ;;
-                esac
-              done
-              if test $useit = yes; then
-                INST_LINGUAS="$INST_LINGUAS $presentlang"
-              fi
-            done
-          fi
-          CATALOGS=
-          if test -n "$INST_LINGUAS"; then
-            for lang in $INST_LINGUAS; do
-              CATALOGS="$CATALOGS $lang.gmo"
-            done
-          fi
-          test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
-          sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
-          for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
-            if test -f "$f"; then
-              case "$f" in
-                *.orig | *.bak | *~) ;;
-                *) cat "$f" >> "$ac_dir/Makefile" ;;
-              esac
-            fi
-          done
-        fi
-        ;;
-      esac
-    done]],
-   [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
-    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS.
-    OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS"
-    # Capture the value of LINGUAS because we need it to compute CATALOGS.
-    LINGUAS="${LINGUAS-%UNSET%}"
-   ])
-])
-
-dnl Postprocesses a Makefile in a directory containing PO files.
-AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
-[
-  # When this code is run, in config.status, two variables have already been
-  # set:
-  # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
-  # - LINGUAS is the value of the environment variable LINGUAS at configure
-  #   time.
-
-changequote(,)dnl
-  # Adjust a relative srcdir.
-  ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-  ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'`
-  ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-  # In autoconf-2.13 it is called $ac_given_srcdir.
-  # In autoconf-2.50 it is called $srcdir.
-  test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-  case "$ac_given_srcdir" in
-    .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-    /*) top_srcdir="$ac_given_srcdir" ;;
-    *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-  esac
-
-  # Find a way to echo strings without interpreting backslash.
-  if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
-    gt_echo='echo'
-  else
-    if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
-      gt_echo='printf %s\n'
-    else
-      echo_func () {
-        cat <<EOT
-$*
-EOT
-      }
-      gt_echo='echo_func'
-    fi
-  fi
-
-  # A sed script that extracts the value of VARIABLE from a Makefile.
-  tab=`printf '\t'`
-  sed_x_variable='
-# Test if the hold space is empty.
-x
-s/P/P/
-x
-ta
-# Yes it was empty. Look if we have the expected variable definition.
-/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
-  # Seen the first line of the variable definition.
-  s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
-  ba
-}
-bd
-:a
-# Here we are processing a line from the variable definition.
-# Remove comment, more precisely replace it with a space.
-s/#.*$/ /
-# See if the line ends in a backslash.
-tb
-:b
-s/\\$//
-# Print the line, without the trailing backslash.
-p
-tc
-# There was no trailing backslash. The end of the variable definition is
-# reached. Clear the hold space.
-s/^.*$//
-x
-bd
-:c
-# A trailing backslash means that the variable definition continues in the
-# next line. Put a nonempty string into the hold space to indicate this.
-s/^.*$/P/
-x
-:d
-'
-changequote([,])dnl
-
-  # Set POTFILES to the value of the Makefile variable POTFILES.
-  sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
-  POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
-  # Compute POTFILES_DEPS as
-  #   $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
-  POTFILES_DEPS=
-  for file in $POTFILES; do
-    POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
-  done
-  POMAKEFILEDEPS=""
-
-  if test -n "$OBSOLETE_ALL_LINGUAS"; then
-    test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
-  fi
-  if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
-    # The LINGUAS file contains the set of available languages.
-    ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-    POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
-  else
-    # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
-    sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
-    ALL_LINGUAS=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
-  fi
-  # Compute POFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
-  # Compute UPDATEPOFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
-  # Compute DUMMYPOFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
-  # Compute GMOFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
-  # Compute PROPERTIESFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties)
-  # Compute CLASSFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class)
-  # Compute QMFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
-  # Compute MSGFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
-  # Compute RESOURCESDLLFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
-  case "$ac_given_srcdir" in
-    .) srcdirpre= ;;
-    *) srcdirpre='$(srcdir)/' ;;
-  esac
-  POFILES=
-  UPDATEPOFILES=
-  DUMMYPOFILES=
-  GMOFILES=
-  PROPERTIESFILES=
-  CLASSFILES=
-  QMFILES=
-  MSGFILES=
-  RESOURCESDLLFILES=
-  for lang in $ALL_LINGUAS; do
-    POFILES="$POFILES $srcdirpre$lang.po"
-    UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
-    DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
-    GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-    PROPERTIESFILES="$PROPERTIESFILES \$(srcdir)/\$(DOMAIN)_$lang.properties"
-    CLASSFILES="$CLASSFILES \$(srcdir)/\$(DOMAIN)_$lang.class"
-    QMFILES="$QMFILES $srcdirpre$lang.qm"
-    frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-    MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
-    frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
-    RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
-  done
-  # CATALOGS depends on both $ac_dir and the user's LINGUAS
-  # environment variable.
-  INST_LINGUAS=
-  if test -n "$ALL_LINGUAS"; then
-    for presentlang in $ALL_LINGUAS; do
-      useit=no
-      if test "%UNSET%" != "$LINGUAS"; then
-        desiredlanguages="$LINGUAS"
-      else
-        desiredlanguages="$ALL_LINGUAS"
-      fi
-      for desiredlang in $desiredlanguages; do
-        # Use the presentlang catalog if desiredlang is
-        #   a. equal to presentlang, or
-        #   b. a variant of presentlang (because in this case,
-        #      presentlang can be used as a fallback for messages
-        #      which are not translated in the desiredlang catalog).
-        case "$desiredlang" in
-          "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*)
-            useit=yes
-            ;;
-        esac
-      done
-      if test $useit = yes; then
-        INST_LINGUAS="$INST_LINGUAS $presentlang"
-      fi
-    done
-  fi
-  CATALOGS=
-  JAVACATALOGS=
-  QTCATALOGS=
-  TCLCATALOGS=
-  CSHARPCATALOGS=
-  if test -n "$INST_LINGUAS"; then
-    for lang in $INST_LINGUAS; do
-      CATALOGS="$CATALOGS $lang.gmo"
-      JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
-      QTCATALOGS="$QTCATALOGS $lang.qm"
-      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-      TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
-      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
-      CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
-    done
-  fi
-
-  sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
-  tab=`printf '\t'`
-  if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
-    # Add dependencies that cannot be formulated as a simple suffix rule.
-    for lang in $ALL_LINGUAS; do
-      frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
-      cat >> "$ac_file.tmp" <<EOF
-$frobbedlang.msg: $lang.po
-${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
-${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-EOF
-    done
-  fi
-  if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
-    # Add dependencies that cannot be formulated as a simple suffix rule.
-    for lang in $ALL_LINGUAS; do
-      frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
-      cat >> "$ac_file.tmp" <<EOF
-$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
-${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
-${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
-EOF
-    done
-  fi
-  if test -n "$POMAKEFILEDEPS"; then
-    cat >> "$ac_file.tmp" <<EOF
-Makefile: $POMAKEFILEDEPS
-EOF
-  fi
-  mv "$ac_file.tmp" "$ac_file"
-])
-
-dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
-AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
-[
-  XGETTEXT_EXTRA_OPTIONS=
-])
-
-dnl Registers an option to be passed to xgettext in the po subdirectory.
-AC_DEFUN([AM_XGETTEXT_OPTION],
-[
-  AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/progtest.m4 b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/progtest.m4
deleted file mode 100644
index 4a5b0b4..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/aclocal/progtest.m4
+++ /dev/null
@@ -1,91 +0,0 @@
-# progtest.m4 serial 9 (gettext-0.21.1)
-dnl Copyright (C) 1996-2003, 2005, 2008-2022 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Lesser General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Lesser General Public License, and the rest of the GNU
-dnl gettext package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-AC_PREREQ([2.53])
-
-# Search path for a program which passes the given test.
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
-  # contains only /bin. Note that ksh looks also at the FPATH variable,
-  # so we have to set that as well for the test.
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
-    && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
-           || PATH_SEPARATOR=';'
-       }
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
-else
-  ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL([ac_cv_path_$1],
-[case "[$]$1" in
-  [[\\/]]* | ?:[[\\/]]*)
-    ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
-    ;;
-  *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in m4_if([$5], , $PATH, [$5]); do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
-          if [$3]; then
-            ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-m4_if([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
-    ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
-  AC_MSG_RESULT([$][$1])
-else
-  AC_MSG_RESULT([no])
-fi
-AC_SUBST([$1])dnl
-])
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/config.rpath b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/config.rpath
deleted file mode 100755
index 1e1ab67..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/config.rpath
+++ /dev/null
@@ -1,684 +0,0 @@
-#! /bin/sh
-# Output a system dependent set of variables, describing how to set the
-# run time search path of shared libraries in an executable.
-#
-#   Copyright 1996-2022 Free Software Foundation, Inc.
-#   Taken from GNU libtool, 2001
-#   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-#   This file is free software; the Free Software Foundation gives
-#   unlimited permission to copy and/or distribute it, with or without
-#   modifications, as long as this notice is preserved.
-#
-# The first argument passed to this file is the canonical host specification,
-#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or
-#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
-# should be set by the caller.
-#
-# The set of defined variables is at the end of this script.
-
-# Known limitations:
-# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
-#   than 256 bytes, otherwise the compiler driver will dump core. The only
-#   known workaround is to choose shorter directory names for the build
-#   directory and/or the installation directory.
-
-# All known linkers require a '.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-shrext=.so
-
-host="$1"
-host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-# Code taken from libtool.m4's _LT_CC_BASENAME.
-
-for cc_temp in $CC""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
-
-# Code taken from libtool.m4's _LT_COMPILER_PIC.
-
-wl=
-if test "$GCC" = yes; then
-  wl='-Wl,'
-else
-  case "$host_os" in
-    aix*)
-      wl='-Wl,'
-      ;;
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      ;;
-    hpux9* | hpux10* | hpux11*)
-      wl='-Wl,'
-      ;;
-    irix5* | irix6* | nonstopux*)
-      wl='-Wl,'
-      ;;
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-        ecc*)
-          wl='-Wl,'
-          ;;
-        icc* | ifort*)
-          wl='-Wl,'
-          ;;
-        lf95*)
-          wl='-Wl,'
-          ;;
-        nagfor*)
-          wl='-Wl,-Wl,,'
-          ;;
-        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-          wl='-Wl,'
-          ;;
-        ccc*)
-          wl='-Wl,'
-          ;;
-        xl* | bgxl* | bgf* | mpixl*)
-          wl='-Wl,'
-          ;;
-        como)
-          wl='-lopt='
-          ;;
-        *)
-          case `$CC -V 2>&1 | sed 5q` in
-            *Sun\ F* | *Sun*Fortran*)
-              wl=
-              ;;
-            *Sun\ C*)
-              wl='-Wl,'
-              ;;
-          esac
-          ;;
-      esac
-      ;;
-    newsos6)
-      ;;
-    *nto* | *qnx*)
-      ;;
-    osf3* | osf4* | osf5*)
-      wl='-Wl,'
-      ;;
-    rdos*)
-      ;;
-    solaris*)
-      case $cc_basename in
-        f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-          wl='-Qoption ld '
-          ;;
-        *)
-          wl='-Wl,'
-          ;;
-      esac
-      ;;
-    sunos4*)
-      wl='-Qoption ld '
-      ;;
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      wl='-Wl,'
-      ;;
-    sysv4*MP*)
-      ;;
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      wl='-Wl,'
-      ;;
-    unicos*)
-      wl='-Wl,'
-      ;;
-    uts4*)
-      ;;
-  esac
-fi
-
-# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
-
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-
-case "$host_os" in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
-  # Set some defaults for GNU ld with shared library support. These
-  # are reset later if shared libraries are not supported. Putting them
-  # here allows them to be overridden if necessary.
-  # Unlike libtool, we use -rpath here, not --rpath, since the documented
-  # option of GNU ld is called -rpath, not --rpath.
-  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-  case "$host_os" in
-    aix[3-9]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-        ld_shlibs=no
-      fi
-      ;;
-    amigaos*)
-      case "$host_cpu" in
-        powerpc)
-          ;;
-        m68k)
-          hardcode_libdir_flag_spec='-L$libdir'
-          hardcode_minus_L=yes
-          ;;
-      esac
-      ;;
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        :
-      else
-        ld_shlibs=no
-      fi
-      ;;
-    cygwin* | mingw* | pw32* | cegcc*)
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        :
-      else
-        ld_shlibs=no
-      fi
-      ;;
-    haiku*)
-      ;;
-    interix[3-9]*)
-      hardcode_direct=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      ;;
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        :
-      else
-        ld_shlibs=no
-      fi
-      ;;
-    netbsd*)
-      ;;
-    solaris*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-        ld_shlibs=no
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        :
-      else
-        ld_shlibs=no
-      fi
-      ;;
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-          ld_shlibs=no
-          ;;
-        *)
-          if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-            hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
-          else
-            ld_shlibs=no
-          fi
-          ;;
-      esac
-      ;;
-    sunos4*)
-      hardcode_direct=yes
-      ;;
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-        :
-      else
-        ld_shlibs=no
-      fi
-      ;;
-  esac
-  if test "$ld_shlibs" = no; then
-    hardcode_libdir_flag_spec=
-  fi
-else
-  case "$host_os" in
-    aix3*)
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes; then
-        # Neither direct hardcoding nor static linking is supported with a
-        # broken collect2.
-        hardcode_direct=unsupported
-      fi
-      ;;
-    aix[4-9]*)
-      if test "$host_cpu" = ia64; then
-        # On IA64, the linker does run time linking by default, so we don't
-        # have to do anything special.
-        aix_use_runtimelinking=no
-      else
-        aix_use_runtimelinking=no
-        # Test if we are trying to use run time linking or normal
-        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-        # need to do runtime linking.
-        case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-          for ld_flag in $LDFLAGS; do
-            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-              aix_use_runtimelinking=yes
-              break
-            fi
-          done
-          ;;
-        esac
-      fi
-      hardcode_direct=yes
-      hardcode_libdir_separator=':'
-      if test "$GCC" = yes; then
-        case $host_os in aix4.[012]|aix4.[012].*)
-          collect2name=`${CC} -print-prog-name=collect2`
-          if test -f "$collect2name" && \
-            strings "$collect2name" | grep resolve_lib_name >/dev/null
-          then
-            # We have reworked collect2
-            :
-          else
-            # We have old collect2
-            hardcode_direct=unsupported
-            hardcode_minus_L=yes
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_libdir_separator=
-          fi
-          ;;
-        esac
-      fi
-      # Begin _LT_AC_SYS_LIBPATH_AIX.
-      echo 'int main () { return 0; }' > conftest.c
-      ${CC} ${LDFLAGS} conftest.c -o conftest
-      aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-      if test -z "$aix_libpath"; then
-        aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-      fi
-      if test -z "$aix_libpath"; then
-        aix_libpath="/usr/lib:/lib"
-      fi
-      rm -f conftest.c conftest
-      # End _LT_AC_SYS_LIBPATH_AIX.
-      if test "$aix_use_runtimelinking" = yes; then
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-      else
-        if test "$host_cpu" = ia64; then
-          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-        else
-          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        fi
-      fi
-      ;;
-    amigaos*)
-      case "$host_cpu" in
-        powerpc)
-          ;;
-        m68k)
-          hardcode_libdir_flag_spec='-L$libdir'
-          hardcode_minus_L=yes
-          ;;
-      esac
-      ;;
-    bsdi[45]*)
-      ;;
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      hardcode_libdir_flag_spec=' '
-      libext=lib
-      ;;
-    darwin* | rhapsody*)
-      hardcode_direct=no
-      if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
-        :
-      else
-        ld_shlibs=no
-      fi
-      ;;
-    dgux*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      ;;
-    freebsd2.[01]*)
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      ;;
-    freebsd* | dragonfly* | midnightbsd*)
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      ;;
-    hpux9*)
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      ;;
-    hpux10*)
-      if test "$with_gnu_ld" = no; then
-        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-        hardcode_libdir_separator=:
-        hardcode_direct=yes
-        # hardcode_minus_L: Not really in the search PATH,
-        # but as the default location of the library.
-        hardcode_minus_L=yes
-      fi
-      ;;
-    hpux11*)
-      if test "$with_gnu_ld" = no; then
-        hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-        hardcode_libdir_separator=:
-        case $host_cpu in
-          hppa*64*|ia64*)
-            hardcode_direct=no
-            ;;
-          *)
-            hardcode_direct=yes
-            # hardcode_minus_L: Not really in the search PATH,
-            # but as the default location of the library.
-            hardcode_minus_L=yes
-            ;;
-        esac
-      fi
-      ;;
-    irix5* | irix6* | nonstopux*)
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-    netbsd*)
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      ;;
-    newsos6)
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-    *nto* | *qnx*)
-      ;;
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-        hardcode_direct=yes
-        if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-          hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-        else
-          case "$host_os" in
-            openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-              hardcode_libdir_flag_spec='-R$libdir'
-              ;;
-            *)
-              hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-              ;;
-          esac
-        fi
-      else
-        ld_shlibs=no
-      fi
-      ;;
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      ;;
-    osf3*)
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-    osf4* | osf5*)
-      if test "$GCC" = yes; then
-        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-        # Both cc and cxx compiler support -rpath directly
-        hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      hardcode_libdir_separator=:
-      ;;
-    solaris*)
-      hardcode_libdir_flag_spec='-R$libdir'
-      ;;
-    sunos4*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      ;;
-    sysv4)
-      case $host_vendor in
-        sni)
-          hardcode_direct=yes # is this really true???
-          ;;
-        siemens)
-          hardcode_direct=no
-          ;;
-        motorola)
-          hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-          ;;
-      esac
-      ;;
-    sysv4.3*)
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-        ld_shlibs=yes
-      fi
-      ;;
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      ;;
-    sysv5* | sco3.2v5* | sco5v6*)
-      hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
-      hardcode_libdir_separator=':'
-      ;;
-    uts4*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      ;;
-    *)
-      ld_shlibs=no
-      ;;
-  esac
-fi
-
-# Check dynamic linker characteristics
-# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
-# Unlike libtool.m4, here we don't care about _all_ names of the library, but
-# only about the one the linker finds when passed -lNAME. This is the last
-# element of library_names_spec in libtool.m4, or possibly two of them if the
-# linker has special search rules.
-library_names_spec=      # the last element of library_names_spec in libtool.m4
-libname_spec='lib$name'
-case "$host_os" in
-  aix3*)
-    library_names_spec='$libname.a'
-    ;;
-  aix[4-9]*)
-    library_names_spec='$libname$shrext'
-    ;;
-  amigaos*)
-    case "$host_cpu" in
-      powerpc*)
-        library_names_spec='$libname$shrext' ;;
-      m68k)
-        library_names_spec='$libname.a' ;;
-    esac
-    ;;
-  beos*)
-    library_names_spec='$libname$shrext'
-    ;;
-  bsdi[45]*)
-    library_names_spec='$libname$shrext'
-    ;;
-  cygwin* | mingw* | pw32* | cegcc*)
-    shrext=.dll
-    library_names_spec='$libname.dll.a $libname.lib'
-    ;;
-  darwin* | rhapsody*)
-    shrext=.dylib
-    library_names_spec='$libname$shrext'
-    ;;
-  dgux*)
-    library_names_spec='$libname$shrext'
-    ;;
-  freebsd[23].*)
-    library_names_spec='$libname$shrext$versuffix'
-    ;;
-  freebsd* | dragonfly* | midnightbsd*)
-    library_names_spec='$libname$shrext'
-    ;;
-  gnu*)
-    library_names_spec='$libname$shrext'
-    ;;
-  haiku*)
-    library_names_spec='$libname$shrext'
-    ;;
-  hpux9* | hpux10* | hpux11*)
-    case $host_cpu in
-      ia64*)
-        shrext=.so
-        ;;
-      hppa*64*)
-        shrext=.sl
-        ;;
-      *)
-        shrext=.sl
-        ;;
-    esac
-    library_names_spec='$libname$shrext'
-    ;;
-  interix[3-9]*)
-    library_names_spec='$libname$shrext'
-    ;;
-  irix5* | irix6* | nonstopux*)
-    library_names_spec='$libname$shrext'
-    case "$host_os" in
-      irix5* | nonstopux*)
-        libsuff= shlibsuff=
-        ;;
-      *)
-        case $LD in
-          *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
-          *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
-          *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
-          *) libsuff= shlibsuff= ;;
-        esac
-        ;;
-    esac
-    ;;
-  linux*oldld* | linux*aout* | linux*coff*)
-    ;;
-  linux* | k*bsd*-gnu | kopensolaris*-gnu)
-    library_names_spec='$libname$shrext'
-    ;;
-  knetbsd*-gnu)
-    library_names_spec='$libname$shrext'
-    ;;
-  netbsd*)
-    library_names_spec='$libname$shrext'
-    ;;
-  newsos6)
-    library_names_spec='$libname$shrext'
-    ;;
-  *nto* | *qnx*)
-    library_names_spec='$libname$shrext'
-    ;;
-  openbsd*)
-    library_names_spec='$libname$shrext$versuffix'
-    ;;
-  os2*)
-    libname_spec='$name'
-    shrext=.dll
-    library_names_spec='$libname.a'
-    ;;
-  osf3* | osf4* | osf5*)
-    library_names_spec='$libname$shrext'
-    ;;
-  rdos*)
-    ;;
-  solaris*)
-    library_names_spec='$libname$shrext'
-    ;;
-  sunos4*)
-    library_names_spec='$libname$shrext$versuffix'
-    ;;
-  sysv4 | sysv4.3*)
-    library_names_spec='$libname$shrext'
-    ;;
-  sysv4*MP*)
-    library_names_spec='$libname$shrext'
-    ;;
-  sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-    library_names_spec='$libname$shrext'
-    ;;
-  tpf*)
-    library_names_spec='$libname$shrext'
-    ;;
-  uts4*)
-    library_names_spec='$libname$shrext'
-    ;;
-esac
-
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
-shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
-escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-
-LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
-
-# How to pass a linker flag through the compiler.
-wl="$escaped_wl"
-
-# Static library suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally "so").
-shlibext="$shlibext"
-
-# Format of library name prefix.
-libname_spec="$escaped_libname_spec"
-
-# Library names that the linker finds when passed -lNAME.
-library_names_spec="$escaped_library_names_spec"
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator="$hardcode_libdir_separator"
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct="$hardcode_direct"
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L="$hardcode_minus_L"
-
-EOF
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/remove-potcdate.sin b/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/remove-potcdate.sin
deleted file mode 100644
index 8c70dfb..0000000
--- a/poky/meta/recipes-core/gettext/gettext-minimal-0.21.1/remove-potcdate.sin
+++ /dev/null
@@ -1,25 +0,0 @@
-# Sed script that removes the POT-Creation-Date line in the header entry
-# from a POT file.
-#
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Copying and distribution of this file, with or without modification,
-# are permitted in any medium without royalty provided the copyright
-# notice and this notice are preserved.  This file is offered as-is,
-# without any warranty.
-#
-# The distinction between the first and the following occurrences of the
-# pattern is achieved by looking at the hold space.
-/^"POT-Creation-Date: .*"$/{
-x
-# Test if the hold space is empty.
-s/P/P/
-ta
-# Yes it was empty. First occurrence. Remove the line.
-g
-d
-bb
-:a
-# The hold space was nonempty. Following occurrences. Do nothing.
-x
-:b
-}
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-native_0.21.1.bb b/poky/meta/recipes-core/gettext/gettext-minimal-native_0.21.1.bb
index 7a4dcbe..db1bbb7 100644
--- a/poky/meta/recipes-core/gettext/gettext-minimal-native_0.21.1.bb
+++ b/poky/meta/recipes-core/gettext/gettext-minimal-native_0.21.1.bb
@@ -3,10 +3,9 @@
 autoconf/automake. This provides a significant build time speedup by \
 the removal of gettext-native from most dependency chains (now only \
 needed for gettext for the target)."
-SRC_URI = "file://aclocal/ \
-           file://config.rpath \
-           file://Makefile.in.in \
-           file://remove-potcdate.sin \
+
+require gettext-sources.inc
+SRC_URI += " \
            file://COPYING \
 "
 
@@ -14,17 +13,34 @@
 INHIBIT_AUTOTOOLS_DEPS = "1"
 
 LICENSE = "FSF-Unlimited"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4bd090a20bfcd1a18f1f79837b5e3e91"
+LIC_FILES_CHKSUM = "file://../COPYING;md5=4bd090a20bfcd1a18f1f79837b5e3e91"
 
 inherit native
 
-S = "${WORKDIR}"
+S = "${WORKDIR}/gettext-${PV}"
+
+python get_aclocal_files() {
+    fpath = oe.path.join(d.getVar("S"), "/gettext-tools/m4/Makefile.am")
+    with open(fpath) as f:
+        content = f.read()
+        for l in content.replace("\\\n","").split("\n"):
+            if l.startswith("aclocal_DATA"):
+                aclocal_files = l.split("=")[1]
+                with open(oe.path.join(d.getVar("WORKDIR"),"aclocal-files"),'w') as outf:
+                    outf.write(aclocal_files)
+                break
+        else:
+            bb.error("Could not obtain list of installed aclocal files from {}".format(fpath))
+}
+do_install[prefuncs] += "get_aclocal_files"
 
 do_install () {
 	install -d ${D}${datadir}/aclocal/
-	cp ${WORKDIR}/aclocal/*.m4 ${D}${datadir}/aclocal/
+	for i in `cat ${WORKDIR}/aclocal-files`; do
+		cp ${S}/gettext-tools/m4/$i ${D}${datadir}/aclocal/
+	done
 	install -d ${D}${datadir}/gettext/po/
-	cp ${WORKDIR}/config.rpath ${D}${datadir}/gettext/
-	cp ${WORKDIR}/Makefile.in.in ${D}${datadir}/gettext/po/
-	cp ${WORKDIR}/remove-potcdate.sin ${D}${datadir}/gettext/po/
+	cp ${S}/build-aux/config.rpath ${D}${datadir}/gettext/
+	cp ${S}/gettext-runtime/po/Makefile.in.in ${D}${datadir}/gettext/po/
+	cp ${S}/gettext-runtime/po/remove-potcdate.sin ${D}${datadir}/gettext/po/
 }
diff --git a/poky/meta/recipes-core/gettext/gettext-sources.inc b/poky/meta/recipes-core/gettext/gettext-sources.inc
new file mode 100644
index 0000000..da2860f
--- /dev/null
+++ b/poky/meta/recipes-core/gettext/gettext-sources.inc
@@ -0,0 +1,4 @@
+HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
+SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
+           "
+SRC_URI[sha256sum] = "e8c3650e1d8cee875c4f355642382c1df83058bd5a11ee8555c0cf276d646d45"
diff --git a/poky/meta/recipes-core/gettext/gettext_0.21.1.bb b/poky/meta/recipes-core/gettext/gettext_0.21.1.bb
index b80ea92..a3eb3bb 100644
--- a/poky/meta/recipes-core/gettext/gettext_0.21.1.bb
+++ b/poky/meta/recipes-core/gettext/gettext_0.21.1.bb
@@ -3,7 +3,6 @@
 These tools include a set of conventions about how programs should be written to support message catalogs, a directory and file \
 naming organization for the message catalogs themselves, a runtime library supporting the retrieval of translated messages, and \
 a few stand-alone programs to massage in various ways the sets of translatable and already translated strings."
-HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
 SECTION = "libs"
 LICENSE = "GPL-3.0-or-later & LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c678957b0c8e964aa6c70fd77641a71e"
@@ -22,15 +21,17 @@
 PROVIDES = "virtual/libintl virtual/gettext"
 PROVIDES:class-native = "virtual/gettext-native"
 RCONFLICTS:${PN} = "proxy-libintl"
-SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
+
+require gettext-sources.inc
+SRC_URI += " \
            file://parallel.patch \
            file://use-pkgconfig.patch \
            file://run-ptest \
            file://serial-tests-config.patch \
            file://0001-tests-autopoint-3-unset-MAKEFLAGS.patch \
            file://0001-init-env.in-do-not-add-C-CXX-parameters.patch \
+           file://autoconf-2.73.patch \
            "
-SRC_URI[sha256sum] = "e8c3650e1d8cee875c4f355642382c1df83058bd5a11ee8555c0cf276d646d45"
 
 inherit autotools texinfo pkgconfig ptest
 
diff --git a/poky/meta/recipes-core/glibc/glibc-locale.inc b/poky/meta/recipes-core/glibc/glibc-locale.inc
index 760de94..289f58d 100644
--- a/poky/meta/recipes-core/glibc/glibc-locale.inc
+++ b/poky/meta/recipes-core/glibc/glibc-locale.inc
@@ -37,22 +37,22 @@
 # Create a glibc-binaries package
 ALLOW_EMPTY:${BPN}-binaries = "1"
 PACKAGES += "${BPN}-binaries"
-RRECOMMENDS:${BPN}-binaries =  "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-binary") != -1])}"
+RRECOMMENDS:${BPN}-binaries =  "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-binary-") != -1])}"
 
 # Create a glibc-charmaps package
 ALLOW_EMPTY:${BPN}-charmaps = "1"
 PACKAGES += "${BPN}-charmaps"
-RRECOMMENDS:${BPN}-charmaps =  "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-charmap") != -1])}"
+RRECOMMENDS:${BPN}-charmaps =  "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-charmap-") != -1])}"
 
 # Create a glibc-gconvs package
 ALLOW_EMPTY:${BPN}-gconvs = "1"
 PACKAGES += "${BPN}-gconvs"
-RRECOMMENDS:${BPN}-gconvs =  "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-gconv") != -1])}"
+RRECOMMENDS:${BPN}-gconvs =  "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-gconv-") != -1])}"
 
 # Create a glibc-localedatas package
 ALLOW_EMPTY:${BPN}-localedatas = "1"
 PACKAGES += "${BPN}-localedatas"
-RRECOMMENDS:${BPN}-localedatas =  "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-localedata") != -1])}"
+RRECOMMENDS:${BPN}-localedatas =  "${@" ".join([p for p in d.getVar('PACKAGES').split() if p.find("glibc-localedata-") != -1])}"
 
 DESCRIPTION:localedef = "glibc: compile locale definition files"
 
diff --git a/poky/meta/recipes-core/glibc/glibc/check-test-wrapper b/poky/meta/recipes-core/glibc/glibc/check-test-wrapper
index 6ec9b9b..5cc993f 100644
--- a/poky/meta/recipes-core/glibc/glibc/check-test-wrapper
+++ b/poky/meta/recipes-core/glibc/glibc/check-test-wrapper
@@ -58,7 +58,7 @@
     user = os.environ.get("SSH_HOST_USER", None)
     port = os.environ.get("SSH_HOST_PORT", None)
 
-    command = ["ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no"]
+    command = ["ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", "-o", "LogLevel=quiet"]
     if port:
         command += ["-p", str(port)]
     if not host:
diff --git a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
index 4ece229..b078b19 100644
--- a/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
+++ b/poky/meta/recipes-core/images/build-appliance-image_15.0.0.bb
@@ -26,7 +26,7 @@
 
 REQUIRED_DISTRO_FEATURES += "xattr"
 
-SRCREV ?= "679b7b6700ec1355a5b15a51c90a7ee339bee97c"
+SRCREV ?= "02d38e9ce479262d848c4f873ee1e57141eb7eea"
 SRC_URI = "git://git.yoctoproject.org/poky;branch=master \
            file://Yocto_Build_Appliance.vmx \
            file://Yocto_Build_Appliance.vmxf \
diff --git a/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb b/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
index 0b51187..1c08c7f 100644
--- a/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
+++ b/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
@@ -1,4 +1,5 @@
 # Simple initramfs image. Mostly used for live images.
+SUMMARY = "Small image capable of booting a device."
 DESCRIPTION = "Small image capable of booting a device. The kernel includes \
 the Minimal RAM-based Initial Root Filesystem (initramfs), which finds the \
 first 'init' program more efficiently."
diff --git a/poky/meta/recipes-core/images/core-image-tiny-initramfs.bb b/poky/meta/recipes-core/images/core-image-tiny-initramfs.bb
index a1883de..96b56a2 100644
--- a/poky/meta/recipes-core/images/core-image-tiny-initramfs.bb
+++ b/poky/meta/recipes-core/images/core-image-tiny-initramfs.bb
@@ -1,4 +1,5 @@
 # Simple initramfs image artifact generation for tiny images.
+SUMMARY = "Tiny image capable of booting a device."
 DESCRIPTION = "Tiny image capable of booting a device. The kernel includes \
 the Minimal RAM-based Initial Root Filesystem (initramfs), which finds the \
 first 'init' program more efficiently. core-image-tiny-initramfs doesn't \
diff --git a/poky/meta/recipes-core/kbd/kbd_2.6.0.bb b/poky/meta/recipes-core/kbd/kbd_2.6.1.bb
similarity index 94%
rename from poky/meta/recipes-core/kbd/kbd_2.6.0.bb
rename to poky/meta/recipes-core/kbd/kbd_2.6.1.bb
index 9a3e0a7..112039b 100644
--- a/poky/meta/recipes-core/kbd/kbd_2.6.0.bb
+++ b/poky/meta/recipes-core/kbd/kbd_2.6.1.bb
@@ -16,7 +16,7 @@
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
            "
 
-SRC_URI[sha256sum] = "9c159433db5df8ef31d86b42f5b09d32311bdda2ed35107fb1926243da60b28a"
+SRC_URI[sha256sum] = "2eb6c6c972be9589bab733275bf020beb5f644d5f9439737920e701af6cf3485"
 
 EXTRA_OECONF = "--disable-tests"
 PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
diff --git a/poky/meta/recipes-core/meta/buildtools-extended-tarball.bb b/poky/meta/recipes-core/meta/buildtools-extended-tarball.bb
index 83e3fdd..633f8e6 100644
--- a/poky/meta/recipes-core/meta/buildtools-extended-tarball.bb
+++ b/poky/meta/recipes-core/meta/buildtools-extended-tarball.bb
@@ -28,21 +28,13 @@
     nativesdk-libtool \
     nativesdk-pkgconfig \
     nativesdk-glibc-utils \
-    nativesdk-glibc-gconv-ibm850 \
-    nativesdk-glibc-gconv-iso8859-1 \
-    nativesdk-glibc-gconv-utf-16 \
-    nativesdk-glibc-gconv-cp1250 \
-    nativesdk-glibc-gconv-cp1251 \
-    nativesdk-glibc-gconv-cp1252 \
-    nativesdk-glibc-gconv-euc-jp \
-    nativesdk-glibc-gconv-libjis \
+    nativesdk-glibc-gconvs \
     nativesdk-libxcrypt-dev \
     nativesdk-parted \
     nativesdk-dosfstools \
     nativesdk-gptfdisk \
     "
-# gconv-cp1250, cp1251 and euc-jp needed for iconv to work in vim builds
-# also copied list from uninative
+# gconvs needed for iconv to work in vim builds
 
 TOOLCHAIN_OUTPUTNAME = "${SDK_ARCH}-buildtools-extended-nativesdk-standalone-${DISTRO_VERSION}"
 
diff --git a/poky/meta/recipes-core/meta/uninative-tarball.bb b/poky/meta/recipes-core/meta/uninative-tarball.bb
index 4aecf39..7eebcaf 100644
--- a/poky/meta/recipes-core/meta/uninative-tarball.bb
+++ b/poky/meta/recipes-core/meta/uninative-tarball.bb
@@ -3,18 +3,10 @@
 
 TOOLCHAIN_TARGET_TASK = ""
 
-# ibm850 - mcopy from mtools
-# iso8859-1 - guile
-# utf-16, cp1252 - binutils-windres
 TOOLCHAIN_HOST_TASK = "\
     nativesdk-glibc \
     nativesdk-glibc-dbg \
-    nativesdk-glibc-gconv-ibm850 \
-    nativesdk-glibc-gconv-iso8859-1 \
-    nativesdk-glibc-gconv-utf-16 \
-    nativesdk-glibc-gconv-cp1252 \
-    nativesdk-glibc-gconv-euc-jp \
-    nativesdk-glibc-gconv-libjis \
+    nativesdk-glibc-gconvs \
     nativesdk-patchelf \
     nativesdk-libxcrypt \
     nativesdk-libxcrypt-compat \
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index b4c2b1f..297c558 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,7 +4,7 @@
 require musl.inc
 inherit linuxloader
 
-SRCREV = "718f363bc2067b6487900eddc9180c84e7739f80"
+SRCREV = "83b858f83b658bd34eca5d8ad4d145f673ae7e5e"
 
 BASEVER = "1.2.4"
 
@@ -12,11 +12,13 @@
 
 # mirror is at git://github.com/kraj/musl.git
 
-SRC_URI = "git://git.musl-libc.org/git/musl;branch=master;protocol=https \
+SRC_URI = "git://git.musl-libc.org/git/musl.git;branch=master;protocol=https \
            file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
            file://0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch \
           "
 
+MIRRORS += "git://git.musl-libc.org/git/musl.git git://github.com/kraj/musl.git"
+
 S = "${WORKDIR}/git"
 
 PROVIDES += "virtual/libc virtual/libiconv virtual/libintl virtual/crypt"
diff --git a/poky/meta/recipes-core/ncurses/files/0001-Fix-CVE-2023-29491.patch b/poky/meta/recipes-core/ncurses/files/0001-Fix-CVE-2023-29491.patch
new file mode 100644
index 0000000..1232c8c
--- /dev/null
+++ b/poky/meta/recipes-core/ncurses/files/0001-Fix-CVE-2023-29491.patch
@@ -0,0 +1,462 @@
+From 3d54a41f12e9aa059f06e66e72d872f2283395b6 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Sun, 30 Jul 2023 21:14:00 -0700
+Subject: [PATCH] Fix CVE-2023-29491
+
+CVE: CVE-2023-29491
+
+Upstream-Status: Backport [http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff;h=eb51b1ea1f75a0ec17c9c5937cb28df1e8eeec56]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ ncurses/tinfo/lib_tgoto.c  |  10 +++-
+ ncurses/tinfo/lib_tparm.c  | 116 ++++++++++++++++++++++++++++++++-----
+ ncurses/tinfo/read_entry.c |   3 +
+ progs/tic.c                |   6 ++
+ progs/tparm_type.c         |   9 +++
+ progs/tparm_type.h         |   2 +
+ progs/tput.c               |  61 ++++++++++++++++---
+ 7 files changed, 185 insertions(+), 22 deletions(-)
+
+diff --git a/ncurses/tinfo/lib_tgoto.c b/ncurses/tinfo/lib_tgoto.c
+index 9cf5e100..c50ed4df 100644
+--- a/ncurses/tinfo/lib_tgoto.c
++++ b/ncurses/tinfo/lib_tgoto.c
+@@ -207,6 +207,14 @@ tgoto(const char *string, int x, int y)
+ 	result = tgoto_internal(string, x, y);
+     else
+ #endif
+-	result = TIPARM_2(string, y, x);
++    if ((result = TIPARM_2(string, y, x)) == NULL) {
++	/*
++	 * Because termcap did not provide a more general solution such as
++	 * tparm(), it was necessary to handle single-parameter capabilities
++	 * using tgoto().  The internal _nc_tiparm() function returns a NULL
++	 * for that case; retry for the single-parameter case.
++	 */
++	result = TIPARM_1(string, y);
++    }
+     returnPtr(result);
+ }
+diff --git a/ncurses/tinfo/lib_tparm.c b/ncurses/tinfo/lib_tparm.c
+index d9bdfd8f..a10a3877 100644
+--- a/ncurses/tinfo/lib_tparm.c
++++ b/ncurses/tinfo/lib_tparm.c
+@@ -1086,6 +1086,64 @@ tparam_internal(TPARM_STATE *tps, const char *string, TPARM_DATA *data)
+     return (TPS(out_buff));
+ }
+ 
++#ifdef CUR
++/*
++ * Only a few standard capabilities accept string parameters.  The others that
++ * are parameterized accept only numeric parameters.
++ */
++static bool
++check_string_caps(TPARM_DATA *data, const char *string)
++{
++    bool result = FALSE;
++
++#define CHECK_CAP(name) (VALID_STRING(name) && !strcmp(name, string))
++
++    /*
++     * Disallow string parameters unless we can check them against a terminal
++     * description.
++     */
++    if (cur_term != NULL) {
++	int want_type = 0;
++
++	if (CHECK_CAP(pkey_key))
++	    want_type = 2;	/* function key #1, type string #2 */
++	else if (CHECK_CAP(pkey_local))
++	    want_type = 2;	/* function key #1, execute string #2 */
++	else if (CHECK_CAP(pkey_xmit))
++	    want_type = 2;	/* function key #1, transmit string #2 */
++	else if (CHECK_CAP(plab_norm))
++	    want_type = 2;	/* label #1, show string #2 */
++	else if (CHECK_CAP(pkey_plab))
++	    want_type = 6;	/* function key #1, type string #2, show string #3 */
++#if NCURSES_XNAMES
++	else {
++	    char *check;
++
++	    check = tigetstr("Cs");
++	    if (CHECK_CAP(check))
++		want_type = 1;	/* style #1 */
++
++	    check = tigetstr("Ms");
++	    if (CHECK_CAP(check))
++		want_type = 3;	/* storage unit #1, content #2 */
++	}
++#endif
++
++	if (want_type == data->tparm_type) {
++	    result = TRUE;
++	} else {
++	    T(("unexpected string-parameter"));
++	}
++    }
++    return result;
++}
++
++#define ValidCap() (myData.tparm_type == 0 || \
++		    check_string_caps(&myData, string))
++#else
++#define ValidCap() 1
++#endif
++
+ #if NCURSES_TPARM_VARARGS
+ 
+ NCURSES_EXPORT(char *)
+@@ -1100,7 +1158,7 @@ tparm(const char *string, ...)
+     tps->tname = "tparm";
+ #endif /* TRACE */
+ 
+-    if (tparm_setup(cur_term, string, &myData) == OK) {
++    if (tparm_setup(cur_term, string, &myData) == OK && ValidCap()) {
+ 	va_list ap;
+ 
+ 	va_start(ap, string);
+@@ -1135,7 +1193,7 @@ tparm(const char *string,
+     tps->tname = "tparm";
+ #endif /* TRACE */
+ 
+-    if (tparm_setup(cur_term, string, &myData) == OK) {
++    if (tparm_setup(cur_term, string, &myData) == OK && ValidCap()) {
+ 
+ 	myData.param[0] = a1;
+ 	myData.param[1] = a2;
+@@ -1166,7 +1224,7 @@ tiparm(const char *string, ...)
+     tps->tname = "tiparm";
+ #endif /* TRACE */
+ 
+-    if (tparm_setup(cur_term, string, &myData) == OK) {
++    if (tparm_setup(cur_term, string, &myData) == OK && ValidCap()) {
+ 	va_list ap;
+ 
+ 	va_start(ap, string);
+@@ -1179,7 +1237,25 @@ tiparm(const char *string, ...)
+ }
+ 
+ /*
+- * The internal-use flavor ensures that the parameters are numbers, not strings
++ * The internal-use flavor ensures that parameters are numbers, not strings.
++ * In addition to ensuring that they are numbers, it ensures that the parameter
++ * count is consistent with intended usage.
++ *
++ * Unlike the general-purpose tparm/tiparm, these internal calls are fairly
++ * well defined:
++ *
++ * expected == 0 - not applicable
++ * expected == 1 - set color, or vertical/horizontal addressing
++ * expected == 2 - cursor addressing
++ * expected == 4 - initialize color or color pair
++ * expected == 9 - set attributes
++ *
++ * Only for the last case (set attributes) should a parameter be optional.
++ * Also, a capability which calls for more parameters than expected should be
++ * ignored.
++ *
++ * Return a null if the parameter-checks fail.  Otherwise, return a pointer to
++ * the formatted capability string.
+  */
+ NCURSES_EXPORT(char *)
+ _nc_tiparm(int expected, const char *string, ...)
+@@ -1189,22 +1265,36 @@ _nc_tiparm(int expected, const char *string, ...)
+     char *result = NULL;
+ 
+     _nc_tparm_err = 0;
++    T((T_CALLED("_nc_tiparm(%d, %s, ...)"), expected, _nc_visbuf(string)));
+ #ifdef TRACE
+     tps->tname = "_nc_tiparm";
+ #endif /* TRACE */
+ 
+-    if (tparm_setup(cur_term, string, &myData) == OK
+-	&& myData.num_actual <= expected
+-	&& myData.tparm_type == 0) {
+-	va_list ap;
++    if (tparm_setup(cur_term, string, &myData) == OK && ValidCap()) {
++	if (myData.num_actual == 0) {
++	    T(("missing parameter%s, expected %s%d",
++	       expected > 1 ? "s" : "",
++	       expected == 9 ? "up to " : "",
++	       expected));
++	} else if (myData.num_actual > expected) {
++	    T(("too many parameters, have %d, expected %d",
++	       myData.num_actual,
++	       expected));
++	} else if (expected != 9 && myData.num_actual != expected) {
++	    T(("expected %d parameters, have %d",
++	       myData.num_actual,
++	       expected));
++	} else {
++	    va_list ap;
+ 
+-	va_start(ap, string);
+-	tparm_copy_valist(&myData, FALSE, ap);
+-	va_end(ap);
++	    va_start(ap, string);
++	    tparm_copy_valist(&myData, FALSE, ap);
++	    va_end(ap);
+ 
+-	result = tparam_internal(tps, string, &myData);
++	    result = tparam_internal(tps, string, &myData);
++	}
+     }
+-    return result;
++    returnPtr(result);
+ }
+ 
+ /*
+diff --git a/ncurses/tinfo/read_entry.c b/ncurses/tinfo/read_entry.c
+index 2b1875ed..341337d2 100644
+--- a/ncurses/tinfo/read_entry.c
++++ b/ncurses/tinfo/read_entry.c
+@@ -323,6 +323,9 @@ _nc_read_termtype(TERMTYPE2 *ptr, char *buffer, int limit)
+ 	|| bool_count < 0
+ 	|| num_count < 0
+ 	|| str_count < 0
++	|| bool_count > BOOLCOUNT
++	|| num_count > NUMCOUNT
++	|| str_count > STRCOUNT
+ 	|| str_size < 0) {
+ 	returnDB(TGETENT_NO);
+     }
+diff --git a/progs/tic.c b/progs/tic.c
+index 93a0b491..888927e2 100644
+--- a/progs/tic.c
++++ b/progs/tic.c
+@@ -2270,9 +2270,15 @@ check_1_infotocap(const char *name, NCURSES_CONST char *value, int count)
+ 
+     _nc_reset_tparm(NULL);
+     switch (actual) {
++    case Str:
++	result = TPARM_1(value, strings[1]);
++	break;
+     case Num_Str:
+ 	result = TPARM_2(value, numbers[1], strings[2]);
+ 	break;
++    case Str_Str:
++	result = TPARM_2(value, strings[1], strings[2]);
++	break;
+     case Num_Str_Str:
+ 	result = TPARM_3(value, numbers[1], strings[2], strings[3]);
+ 	break;
+diff --git a/progs/tparm_type.c b/progs/tparm_type.c
+index 3da4a077..644aa62a 100644
+--- a/progs/tparm_type.c
++++ b/progs/tparm_type.c
+@@ -47,6 +47,7 @@ tparm_type(const char *name)
+     	{code, {longname} }, \
+ 	{code, {ti} }, \
+ 	{code, {tc} }
++#define XD(code, onlyname) TD(code, onlyname, onlyname, onlyname)
+     TParams result = Numbers;
+     /* *INDENT-OFF* */
+     static const struct {
+@@ -58,6 +59,10 @@ tparm_type(const char *name)
+ 	TD(Num_Str,	"pkey_xmit",	"pfx",		"px"),
+ 	TD(Num_Str,	"plab_norm",	"pln",		"pn"),
+ 	TD(Num_Str_Str, "pkey_plab",	"pfxl",		"xl"),
++#if NCURSES_XNAMES
++	XD(Str,		"Cs"),
++	XD(Str_Str,	"Ms"),
++#endif
+     };
+     /* *INDENT-ON* */
+ 
+@@ -80,12 +85,16 @@ guess_tparm_type(int nparam, char **p_is_s)
+     case 1:
+ 	if (!p_is_s[0])
+ 	    result = Numbers;
++	if (p_is_s[0])
++	    result = Str;
+ 	break;
+     case 2:
+ 	if (!p_is_s[0] && !p_is_s[1])
+ 	    result = Numbers;
+ 	if (!p_is_s[0] && p_is_s[1])
+ 	    result = Num_Str;
++	if (p_is_s[0] && p_is_s[1])
++	    result = Str_Str;
+ 	break;
+     case 3:
+ 	if (!p_is_s[0] && !p_is_s[1] && !p_is_s[2])
+diff --git a/progs/tparm_type.h b/progs/tparm_type.h
+index 7c102a30..af5bcf0f 100644
+--- a/progs/tparm_type.h
++++ b/progs/tparm_type.h
+@@ -45,8 +45,10 @@
+ typedef enum {
+     Other = -1
+     ,Numbers = 0
++    ,Str
+     ,Num_Str
+     ,Num_Str_Str
++    ,Str_Str
+ } TParams;
+ 
+ extern TParams tparm_type(const char *name);
+diff --git a/progs/tput.c b/progs/tput.c
+index 4cd0c5ba..41508b72 100644
+--- a/progs/tput.c
++++ b/progs/tput.c
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright 2018-2021,2022 Thomas E. Dickey                                *
++ * Copyright 2018-2022,2023 Thomas E. Dickey                                *
+  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+@@ -47,12 +47,15 @@
+ #include <transform.h>
+ #include <tty_settings.h>
+ 
+-MODULE_ID("$Id: tput.c,v 1.99 2022/02/26 23:19:31 tom Exp $")
++MODULE_ID("$Id: tput.c,v 1.102 2023/04/08 16:26:36 tom Exp $")
+ 
+ #define PUTS(s)		fputs(s, stdout)
+ 
+ const char *_nc_progname = "tput";
+ 
++static bool opt_v = FALSE;	/* quiet, do not show warnings */
++static bool opt_x = FALSE;	/* clear scrollback if possible */
++
+ static bool is_init = FALSE;
+ static bool is_reset = FALSE;
+ static bool is_clear = FALSE;
+@@ -81,6 +84,7 @@ usage(const char *optstring)
+ 	KEEP("  -S <<       read commands from standard input")
+ 	KEEP("  -T TERM     use this instead of $TERM")
+ 	KEEP("  -V          print curses-version")
++	KEEP("  -v          verbose, show warnings")
+ 	KEEP("  -x          do not try to clear scrollback")
+ 	KEEP("")
+ 	KEEP("Commands:")
+@@ -148,7 +152,7 @@ exit_code(int token, int value)
+  * Returns nonzero on error.
+  */
+ static int
+-tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
++tput_cmd(int fd, TTY * settings, int argc, char **argv, int *used)
+ {
+     NCURSES_CONST char *name;
+     char *s;
+@@ -231,7 +235,9 @@ tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
+     } else if (VALID_STRING(s)) {
+ 	if (argc > 1) {
+ 	    int k;
++	    int narg;
+ 	    int analyzed;
++	    int provided;
+ 	    int popcount;
+ 	    long numbers[1 + NUM_PARM];
+ 	    char *strings[1 + NUM_PARM];
+@@ -271,14 +277,45 @@ tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
+ 
+ 	    popcount = 0;
+ 	    _nc_reset_tparm(NULL);
++	    /*
++	     * Count the number of numeric parameters which are provided.
++	     */
++	    provided = 0;
++	    for (narg = 1; narg < argc; ++narg) {
++		char *ending = NULL;
++		long check = strtol(argv[narg], &ending, 10);
++		if (check < 0 || ending == argv[narg] || *ending != '\0')
++		    break;
++		provided = narg;
++	    }
+ 	    switch (paramType) {
++	    case Str:
++		s = TPARM_1(s, strings[1]);
++		analyzed = 1;
++		if (provided == 0 && argc >= 1)
++		    provided++;
++		break;
++	    case Str_Str:
++		s = TPARM_2(s, strings[1], strings[2]);
++		analyzed = 2;
++		if (provided == 0 && argc >= 1)
++		    provided++;
++		if (provided == 1 && argc >= 2)
++		    provided++;
++		break;
+ 	    case Num_Str:
+ 		s = TPARM_2(s, numbers[1], strings[2]);
+ 		analyzed = 2;
++		if (provided == 1 && argc >= 2)
++		    provided++;
+ 		break;
+ 	    case Num_Str_Str:
+ 		s = TPARM_3(s, numbers[1], strings[2], strings[3]);
+ 		analyzed = 3;
++		if (provided == 1 && argc >= 2)
++		    provided++;
++		if (provided == 2 && argc >= 3)
++		    provided++;
+ 		break;
+ 	    case Numbers:
+ 		analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount);
+@@ -316,7 +353,13 @@ tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
+ 	    if (analyzed < popcount) {
+ 		analyzed = popcount;
+ 	    }
+-	    *used += analyzed;
++	    if (opt_v && (analyzed != provided)) {
++		fprintf(stderr, "%s: %s parameters for \"%s\"\n",
++			_nc_progname,
++			(analyzed < provided ? "extra" : "missing"),
++			argv[0]);
++	    }
++	    *used += provided;
+ 	}
+ 
+ 	/* use putp() in order to perform padding */
+@@ -339,7 +382,6 @@ main(int argc, char **argv)
+     int used;
+     TTY old_settings;
+     TTY tty_settings;
+-    bool opt_x = FALSE;		/* clear scrollback if possible */
+     bool is_alias;
+     bool need_tty;
+ 
+@@ -348,7 +390,7 @@ main(int argc, char **argv)
+ 
+     term = getenv("TERM");
+ 
+-    while ((c = getopt(argc, argv, is_alias ? "T:Vx" : "ST:Vx")) != -1) {
++    while ((c = getopt(argc, argv, is_alias ? "T:Vvx" : "ST:Vvx")) != -1) {
+ 	switch (c) {
+ 	case 'S':
+ 	    cmdline = FALSE;
+@@ -361,6 +403,9 @@ main(int argc, char **argv)
+ 	case 'V':
+ 	    puts(curses_version());
+ 	    ExitProgram(EXIT_SUCCESS);
++	case 'v':		/* verbose */
++	    opt_v = TRUE;
++	    break;
+ 	case 'x':		/* do not try to clear scrollback */
+ 	    opt_x = TRUE;
+ 	    break;
+@@ -404,7 +449,7 @@ main(int argc, char **argv)
+ 	    usage(NULL);
+ 	while (argc > 0) {
+ 	    tty_settings = old_settings;
+-	    code = tput_cmd(fd, &tty_settings, opt_x, argc, argv, &used);
++	    code = tput_cmd(fd, &tty_settings, argc, argv, &used);
+ 	    if (code != 0)
+ 		break;
+ 	    argc -= used;
+@@ -439,7 +484,7 @@ main(int argc, char **argv)
+ 	while (argnum > 0) {
+ 	    int code;
+ 	    tty_settings = old_settings;
+-	    code = tput_cmd(fd, &tty_settings, opt_x, argnum, argnow, &used);
++	    code = tput_cmd(fd, &tty_settings, argnum, argnow, &used);
+ 	    if (code != 0) {
+ 		if (result == 0)
+ 		    result = ErrSystem(0);	/* will return value >4 */
+-- 
+2.40.0
+
diff --git a/poky/meta/recipes-core/ncurses/ncurses_6.4.bb b/poky/meta/recipes-core/ncurses/ncurses_6.4.bb
index 1eb1567..388cd8d 100644
--- a/poky/meta/recipes-core/ncurses/ncurses_6.4.bb
+++ b/poky/meta/recipes-core/ncurses/ncurses_6.4.bb
@@ -4,6 +4,7 @@
            file://0002-configure-reproducible.patch \
            file://0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch \
            file://exit_prototype.patch \
+           file://0001-Fix-CVE-2023-29491.patch \
            "
 # commit id corresponds to the revision in package version
 SRCREV = "79b9071f2be20a24c7be031655a5638f6032f29f"
diff --git a/poky/meta/recipes-core/ovmf/ovmf-shell-image.bb b/poky/meta/recipes-core/ovmf/ovmf-shell-image.bb
index 50c4517..4d7958e 100644
--- a/poky/meta/recipes-core/ovmf/ovmf-shell-image.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf-shell-image.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "boot image with UEFI shell and tools"
+SUMMARY = "boot image with UEFI shell and tools"
 COMPATIBLE_HOST:class-target='(i.86|x86_64).*'
 
 # For this image recipe, only the wic format with a
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
index e05e329..1fee1c9 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-testapps.bb
@@ -25,8 +25,6 @@
 GOTOOLS:powerpc ?= ""
 GOTOOLS:riscv32 ?= ""
 
-RUSTTOOLS ?= "rust-hello-world"
-
 GSTEXAMPLES ?= "gst-examples"
 GSTEXAMPLES:riscv64 = ""
 
@@ -59,5 +57,4 @@
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', "${X11GLTOOLS}", "", d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', '3g', "${3GTOOLS}", "", d)} \
     ${GOTOOLS} \
-    ${RUSTTOOLS} \
     "
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_253.3.bb b/poky/meta/recipes-core/systemd/systemd-boot_254.bb
similarity index 77%
rename from poky/meta/recipes-core/systemd/systemd-boot_253.3.bb
rename to poky/meta/recipes-core/systemd/systemd-boot_254.bb
index b67706b..5d69cf8 100644
--- a/poky/meta/recipes-core/systemd/systemd-boot_253.3.bb
+++ b/poky/meta/recipes-core/systemd/systemd-boot_254.bb
@@ -3,29 +3,28 @@
 
 require conf/image-uefi.conf
 
-DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native python3-jinja2-native"
+DEPENDS = "intltool-native libcap util-linux gperf-native python3-jinja2-native python3-pyelftools-native"
 
 inherit meson pkgconfig gettext
 inherit deploy
 
 LDFLAGS:prepend = "${@ " ".join(d.getVar('LD').split()[1:])} "
 
-do_write_config[vardeps] += "CC OBJCOPY"
+EFI_LD = "bfd"
+LDFLAGS:append = " -fuse-ld=${EFI_LD}"
+
+do_write_config[vardeps] += "CC OBJCOPY EFI_LD"
 do_write_config:append() {
     cat >${WORKDIR}/meson-${PN}.cross <<EOF
 [binaries]
-efi_cc = ${@meson_array('CC', d)}
+c = ${@meson_array('CC', d)}
 objcopy = ${@meson_array('OBJCOPY', d)}
+c_ld = ${@meson_array('EFI_LD', d)}
 EOF
 }
 
-EFI_LD = "bfd"
-
 EXTRA_OEMESON += "-Defi=true \
-                  -Dgnu-efi=true \
-                  -Defi-includedir=${STAGING_INCDIR}/efi \
-                  -Defi-libdir=${STAGING_LIBDIR} \
-                  -Defi-ld=${EFI_LD} \
+                  -Dbootloader=true \
                   -Dman=false \
                   --cross-file ${WORKDIR}/meson-${PN}.cross \
                   "
@@ -54,9 +53,7 @@
 COMPATIBLE_HOST:x86-x32 = "null"
 
 do_compile() {
-	ninja \
-		src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE} \
-		src/boot/efi/linux${EFI_ARCH}.efi.stub
+	ninja systemd-boot
 }
 
 do_install() {
@@ -67,6 +64,7 @@
 do_deploy () {
 	install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR}
 	install ${B}/src/boot/efi/linux*.efi.stub ${DEPLOYDIR}
+	install ${B}/src/boot/efi/addon*.efi.stub ${DEPLOYDIR}
 }
 
 addtask deploy before do_build after do_compile
diff --git a/poky/meta/recipes-core/systemd/systemd-compat-units.bb b/poky/meta/recipes-core/systemd/systemd-compat-units.bb
index 55ebf99..75b1045 100644
--- a/poky/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/poky/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -14,7 +14,8 @@
 
 ALLOW_EMPTY:${PN} = "1"
 
-REQUIRED_DISTRO_FEATURES = "systemd"
+REQUIRED_DISTRO_FEATURES += "systemd"
+REQUIRED_DISTRO_FEATURES += "usrmerge"
 
 SYSTEMD_DISABLED_SYSV_SERVICES = " \
   busybox-udhcpc \
diff --git a/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb b/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
index 61ce793..2355936 100644
--- a/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
+++ b/poky/meta/recipes-core/systemd/systemd-conf_1.0.bb
@@ -5,6 +5,9 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 
+inherit features_check
+REQUIRED_DISTRO_FEATURES += "usrmerge"
+
 PE = "1"
 
 PACKAGECONFIG ??= "dhcp-ethernet"
diff --git a/poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb b/poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
index 12f27d6..7e59e86 100644
--- a/poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
+++ b/poky/meta/recipes-core/systemd/systemd-machine-units_1.0.bb
@@ -7,7 +7,8 @@
 
 PR = "r19"
 
-inherit systemd
+inherit systemd features_check
+REQUIRED_DISTRO_FEATURES += "usrmerge"
 SYSTEMD_SERVICE:${PN} = ""
 
 ALLOW_EMPTY:${PN} = "1"
diff --git a/poky/meta/recipes-core/systemd/systemd-serialgetty.bb b/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
index fd888bb..c2c67e6 100644
--- a/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
+++ b/poky/meta/recipes-core/systemd/systemd-serialgetty.bb
@@ -14,7 +14,8 @@
 
 # As this package is tied to systemd, only build it when we're also building systemd.
 inherit features_check
-REQUIRED_DISTRO_FEATURES = "systemd"
+REQUIRED_DISTRO_FEATURES += "systemd"
+REQUIRED_DISTRO_FEATURES += "usrmerge"
 
 do_install() {
 	if [ ! -z "${SERIAL_CONSOLES}" ] ; then
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index d50f2c9..e5686fb 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -14,10 +14,10 @@
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
                     file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "ed18c2ab79e8b94182d5dcf31d58457763f3e3e1"
-SRCBRANCH = "v253-stable"
+SRCREV = "994c7978608a0bd9b317f4f74ff266dd50a3e74e"
+SRCBRANCH = "v254-stable"
 SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
-           file://0026-src-boot-efi-efi-string.c-define-wchar_t-from-__WCHA.patch \
+           file://0001-elf2efi-Fix-header-size-calculation.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-elf2efi-Fix-header-size-calculation.patch b/poky/meta/recipes-core/systemd/systemd/0001-elf2efi-Fix-header-size-calculation.patch
new file mode 100644
index 0000000..0e8924d
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0001-elf2efi-Fix-header-size-calculation.patch
@@ -0,0 +1,70 @@
+From d082d6502fa86e08dda858933838dde0406b824f Mon Sep 17 00:00:00 2001
+From: Jan Janssen <medhefgo@web.de>
+Date: Sun, 30 Jul 2023 20:59:04 +0200
+Subject: [PATCH] elf2efi: Fix header size calculation
+
+The PE header size calculation failed to take the PE magic and coff
+header size into account, which will lead to header truncation if we are
+writing only 5 sections.
+
+Upstream-Status: Backport [https://github.com/systemd/systemd/commit/ee91e06a5841c30bc7306260528ef407e0ebbab3]
+
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
+---
+ tools/elf2efi.py | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/tools/elf2efi.py b/tools/elf2efi.py
+index e233c8e3ab..2e478940f5 100755
+--- a/tools/elf2efi.py
++++ b/tools/elf2efi.py
+@@ -210,6 +210,7 @@ FILE_ALIGNMENT = 512
+ 
+ # Nobody cares about DOS headers, so put the PE header right after.
+ PE_OFFSET = 64
++PE_MAGIC = b"PE\0\0"
+ 
+ 
+ def align_to(x: int, align: int) -> int:
+@@ -304,7 +305,10 @@ def copy_sections(elf: ELFFile, opt: PeOptionalHeader) -> typing.List[PeSection]
+ 
+ 
+ def apply_elf_relative_relocation(
+-    reloc: ElfRelocation, image_base: int, sections: typing.List[PeSection], addend_size: int
++    reloc: ElfRelocation,
++    image_base: int,
++    sections: typing.List[PeSection],
++    addend_size: int,
+ ):
+     # fmt: off
+     [target] = [
+@@ -439,7 +443,7 @@ def write_pe(
+     file.seek(0x3C, io.SEEK_SET)
+     file.write(PE_OFFSET.to_bytes(2, byteorder="little"))
+     file.seek(PE_OFFSET, io.SEEK_SET)
+-    file.write(b"PE\0\0")
++    file.write(PE_MAGIC)
+     file.write(coff)
+     file.write(opt)
+ 
+@@ -453,6 +457,8 @@ def write_pe(
+         file.write(pe_s)
+         offset = align_to(offset + len(pe_s.data), FILE_ALIGNMENT)
+ 
++    assert file.tell() <= opt.SizeOfHeaders
++
+     for pe_s in sections:
+         file.seek(pe_s.PointerToRawData, io.SEEK_SET)
+         file.write(pe_s.data)
+@@ -515,6 +521,8 @@ def elf2efi(args: argparse.Namespace):
+ 
+     opt.SizeOfHeaders = align_to(
+         PE_OFFSET
++        + len(PE_MAGIC)
++        + sizeof(PeCoffHeader)
+         + coff.SizeOfOptionalHeader
+         + sizeof(PeSection) * max(coff.NumberOfSections, args.minimum_sections),
+         FILE_ALIGNMENT,
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/poky/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
index 43611e6..085f1e9 100644
--- a/poky/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch
@@ -19,40 +19,36 @@
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 ---
- units/meson.build                       | 6 ++----
+ units/meson.build                       | 2 --
  units/proc-sys-fs-binfmt_misc.automount | 3 +++
  units/systemd-binfmt.service.in         | 4 ++++
- 3 files changed, 9 insertions(+), 4 deletions(-)
+ 3 files changed, 7 insertions(+), 2 deletions(-)
 
 diff --git a/units/meson.build b/units/meson.build
 index c7939a10f8..219570ab19 100644
 --- a/units/meson.build
 +++ b/units/meson.build
-@@ -62,8 +62,7 @@ units = [
-         ['poweroff.target',                     '',
-          (with_runlevels ? 'runlevel0.target' : '')],
-         ['printer.target',                      ''],
--        ['proc-sys-fs-binfmt_misc.automount',   'ENABLE_BINFMT',
--         'sysinit.target.wants/'],
-+        ['proc-sys-fs-binfmt_misc.automount',   'ENABLE_BINFMT'],
-         ['proc-sys-fs-binfmt_misc.mount',       'ENABLE_BINFMT'],
-         ['reboot.target',                       '',
-          'ctrl-alt-del.target' + (with_runlevels ? ' runlevel6.target' : '')],
-@@ -185,8 +184,7 @@ in_units = [
-         ['rescue.service',                       ''],
-         ['serial-getty@.service',                ''],
-         ['systemd-backlight@.service',           'ENABLE_BACKLIGHT'],
--        ['systemd-binfmt.service',               'ENABLE_BINFMT',
--         'sysinit.target.wants/'],
-+        ['systemd-binfmt.service',               'ENABLE_BINFMT'],
-         ['systemd-bless-boot.service',           'HAVE_GNU_EFI HAVE_BLKID'],
-         ['systemd-boot-check-no-failures.service', ''],
-         ['systemd-coredump@.service',            'ENABLE_COREDUMP'],
+@@ -149,7 +149,6 @@ units = [
+         {
+           'file' : 'proc-sys-fs-binfmt_misc.automount',
+           'conditions' : ['ENABLE_BINFMT'],
+-          'symlinks' : ['sysinit.target.wants/'],
+         },
+         {
+           'file' : 'proc-sys-fs-binfmt_misc.mount',
+@@ -246,7 +245,6 @@ units = [
+         {
+           'file' : 'systemd-binfmt.service.in',
+           'conditions' : ['ENABLE_BINFMT'],
+-          'symlinks' : ['sysinit.target.wants/'],
+         },
+         {
+           'file' : 'systemd-bless-boot.service.in',
 diff --git a/units/proc-sys-fs-binfmt_misc.automount b/units/proc-sys-fs-binfmt_misc.automount
 index 6b1bbdc91e..5ec5b8670a 100644
 --- a/units/proc-sys-fs-binfmt_misc.automount
 +++ b/units/proc-sys-fs-binfmt_misc.automount
-@@ -19,3 +19,6 @@ ConditionPathIsReadWrite=/proc/sys/
+@@ -22,3 +22,6 @@ Before=shutdown.target
  
  [Automount]
  Where=/proc/sys/fs/binfmt_misc
diff --git a/poky/meta/recipes-core/systemd/systemd/0003-errno-util-Make-STRERROR-portable-for-musl.patch b/poky/meta/recipes-core/systemd/systemd/0003-errno-util-Make-STRERROR-portable-for-musl.patch
index e9e69cb..fcc56a2 100644
--- a/poky/meta/recipes-core/systemd/systemd/0003-errno-util-Make-STRERROR-portable-for-musl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0003-errno-util-Make-STRERROR-portable-for-musl.patch
@@ -11,8 +11,8 @@
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
- src/basic/errno-util.h | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
+ src/basic/errno-util.h | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
 
 diff --git a/src/basic/errno-util.h b/src/basic/errno-util.h
 index 091f99c590..eb5c1f9961 100644
@@ -23,9 +23,8 @@
   *
   * Note that we use the GNU variant of strerror_r() here. */
 -#define STRERROR(errnum) strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN)
--
 +static inline const char * STRERROR(int errnum);
-+
+ 
 +static inline const char * STRERROR(int errnum) {
 +#ifdef __GLIBC__
 +        return strerror_r(abs(errnum), (char[ERRNO_BUF_LEN]){}, ERRNO_BUF_LEN);
diff --git a/poky/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch b/poky/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch
index aa1f3c2..98914ae 100644
--- a/poky/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch
@@ -44,7 +44,7 @@
 index 1af3a36d1d..def502b717 100644
 --- a/src/libsystemd/sd-path/sd-path.c
 +++ b/src/libsystemd/sd-path/sd-path.c
-@@ -362,19 +362,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) {
+@@ -365,19 +365,19 @@ static int get_path(uint64_t type, char **buffer, const char **ret) {
                  return 0;
  
          case SD_PATH_SYSUSERS:
diff --git a/poky/meta/recipes-core/systemd/systemd/0010-add-fallback-parse_printf_format-implementation.patch b/poky/meta/recipes-core/systemd/systemd/0010-add-fallback-parse_printf_format-implementation.patch
index 2090d81..4143ab4 100644
--- a/poky/meta/recipes-core/systemd/systemd/0010-add-fallback-parse_printf_format-implementation.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0010-add-fallback-parse_printf_format-implementation.patch
@@ -23,7 +23,7 @@
 
 --- a/meson.build
 +++ b/meson.build
-@@ -755,6 +755,7 @@ endif
+@@ -781,6 +781,7 @@ endif
  foreach header : ['crypt.h',
                    'linux/memfd.h',
                    'linux/vm_sockets.h',
@@ -33,7 +33,7 @@
                    'valgrind/memcheck.h',
 --- a/src/basic/meson.build
 +++ b/src/basic/meson.build
-@@ -173,6 +173,11 @@ endforeach
+@@ -179,6 +179,11 @@ endforeach
  
  basic_sources += generated_gperf_headers
  
@@ -407,7 +407,7 @@
  #include <stddef.h>
  #include <sys/un.h>
  #include <unistd.h>
-@@ -25,6 +24,7 @@
+@@ -27,6 +26,7 @@
  #include "stdio-util.h"
  #include "string-util.h"
  #include "tmpfile-util.h"
diff --git a/poky/meta/recipes-core/systemd/systemd/0011-src-basic-missing.h-check-for-missing-strndupa.patch b/poky/meta/recipes-core/systemd/systemd/0011-src-basic-missing.h-check-for-missing-strndupa.patch
index bd5f6a6..ec451cd 100644
--- a/poky/meta/recipes-core/systemd/systemd/0011-src-basic-missing.h-check-for-missing-strndupa.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0011-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -17,6 +17,7 @@
 [rebased for systemd 244]
 [Rebased for v247]
 Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
+[Rebased for v254]
 ---
  meson.build                                |  1 +
  src/backlight/backlight.c                  |  1 +
@@ -74,7 +75,7 @@
 index fb96143c37..739b2f7f72 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -574,6 +574,7 @@ foreach ident : ['secure_getenv', '__secure_getenv']
+@@ -595,6 +595,7 @@ foreach ident : ['secure_getenv', '__secure_getenv']
  endforeach
  
  foreach ident : [
@@ -98,7 +99,7 @@
 index feda596939..11b4375ed5 100644
 --- a/src/basic/cgroup-util.c
 +++ b/src/basic/cgroup-util.c
-@@ -37,6 +37,7 @@
+@@ -38,6 +38,7 @@
  #include "unit-name.h"
  #include "user-util.h"
  #include "xattr-util.h"
@@ -122,14 +123,14 @@
 index fc5793139e..515218fca8 100644
 --- a/src/basic/log.c
 +++ b/src/basic/log.c
-@@ -39,6 +39,7 @@
+@@ -40,6 +40,7 @@
  #include "terminal-util.h"
  #include "time-util.h"
  #include "utf8.h"
 +#include "missing_stdlib.h"
  
  #define SNDBUF_SIZE (8*1024*1024)
- #define IOVEC_MAX 128U
+ #define IOVEC_MAX 256U
 diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
 index 8c76f93eb2..9068bfb4f0 100644
 --- a/src/basic/missing_stdlib.h
@@ -166,7 +167,7 @@
 index bc74fbef8f..cdb609bb84 100644
 --- a/src/basic/mountpoint-util.c
 +++ b/src/basic/mountpoint-util.c
-@@ -13,6 +13,7 @@
+@@ -18,6 +18,7 @@
  #include "missing_stat.h"
  #include "missing_syscall.h"
  #include "mkdir.h"
@@ -214,14 +215,14 @@
 index eea70d8606..ae3abd8402 100644
 --- a/src/basic/proc-cmdline.c
 +++ b/src/basic/proc-cmdline.c
-@@ -15,6 +15,7 @@
- #include "special.h"
+@@ -16,6 +16,7 @@
  #include "string-util.h"
+ #include "strv.h"
  #include "virt.h"
 +#include "missing_stdlib.h"
  
- int proc_cmdline(char **ret) {
-         const char *e;
+ int proc_cmdline_filter_pid1_args(char **argv, char ***ret) {
+         enum {
 diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
 index bcba5a5208..64a95dd866 100644
 --- a/src/basic/procfs-util.c
@@ -238,7 +239,7 @@
 index b700f364ef..48a26bcec9 100644
 --- a/src/basic/time-util.c
 +++ b/src/basic/time-util.c
-@@ -26,6 +26,7 @@
+@@ -27,6 +27,7 @@
  #include "string-util.h"
  #include "strv.h"
  #include "time-util.h"
@@ -262,7 +263,7 @@
 index b5484eda78..54ed62c790 100644
 --- a/src/core/dbus-cgroup.c
 +++ b/src/core/dbus-cgroup.c
-@@ -21,6 +21,7 @@
+@@ -23,6 +23,7 @@
  #include "parse-util.h"
  #include "path-util.h"
  #include "percent-util.h"
@@ -274,7 +275,7 @@
 index f514b8fd12..4febd0d496 100644
 --- a/src/core/dbus-execute.c
 +++ b/src/core/dbus-execute.c
-@@ -45,6 +45,7 @@
+@@ -48,6 +48,7 @@
  #include "unit-printf.h"
  #include "user-util.h"
  #include "utf8.h"
@@ -298,7 +299,7 @@
 index 853e87450f..8ef76de9ab 100644
 --- a/src/core/execute.c
 +++ b/src/core/execute.c
-@@ -105,6 +105,7 @@
+@@ -113,6 +113,7 @@
  #include "unit-serialize.h"
  #include "user-util.h"
  #include "utmp-wtmp.h"
@@ -310,9 +311,9 @@
 index e843743777..e149807492 100644
 --- a/src/core/kmod-setup.c
 +++ b/src/core/kmod-setup.c
-@@ -12,6 +12,7 @@
- #include "recurse-dir.h"
+@@ -13,6 +13,7 @@
  #include "string-util.h"
+ #include "strv.h"
  #include "virt.h"
 +#include "missing_stdlib.h"
  
@@ -322,7 +323,7 @@
 index 9ad3c3d995..b112d64919 100644
 --- a/src/core/service.c
 +++ b/src/core/service.c
-@@ -42,6 +42,7 @@
+@@ -45,6 +45,7 @@
  #include "unit-name.h"
  #include "unit.h"
  #include "utf8.h"
@@ -346,7 +347,7 @@
 index efc553b698..acea922311 100644
 --- a/src/fstab-generator/fstab-generator.c
 +++ b/src/fstab-generator/fstab-generator.c
-@@ -33,6 +33,7 @@
+@@ -37,6 +37,7 @@
  #include "unit-name.h"
  #include "virt.h"
  #include "volatile-util.h"
@@ -358,7 +359,7 @@
 index 7df264fb53..9463a0e9fb 100644
 --- a/src/journal-remote/journal-remote-main.c
 +++ b/src/journal-remote/journal-remote-main.c
-@@ -25,6 +25,7 @@
+@@ -26,6 +26,7 @@
  #include "stat-util.h"
  #include "string-table.h"
  #include "strv.h"
@@ -370,7 +371,7 @@
 index da0fac548e..c1c043e0e0 100644
 --- a/src/journal/journalctl.c
 +++ b/src/journal/journalctl.c
-@@ -72,6 +72,7 @@
+@@ -77,6 +77,7 @@
  #include "unit-name.h"
  #include "user-util.h"
  #include "varlink.h"
@@ -406,7 +407,7 @@
 index 64037e4fe0..9b9ce0aaa9 100644
 --- a/src/libsystemd/sd-bus/bus-socket.c
 +++ b/src/libsystemd/sd-bus/bus-socket.c
-@@ -27,6 +27,7 @@
+@@ -28,6 +28,7 @@
  #include "string-util.h"
  #include "user-util.h"
  #include "utf8.h"
@@ -418,7 +419,7 @@
 index f6a5e4aa06..b36faa79a3 100644
 --- a/src/libsystemd/sd-bus/sd-bus.c
 +++ b/src/libsystemd/sd-bus/sd-bus.c
-@@ -44,6 +44,7 @@
+@@ -46,6 +46,7 @@
  #include "string-util.h"
  #include "strv.h"
  #include "user-util.h"
@@ -442,10 +443,10 @@
 index 9947947ef2..8dc6f93159 100644
 --- a/src/libsystemd/sd-journal/sd-journal.c
 +++ b/src/libsystemd/sd-journal/sd-journal.c
-@@ -41,6 +41,7 @@
- #include "string-util.h"
+@@ -44,6 +44,7 @@
  #include "strv.h"
  #include "syslog-util.h"
+ #include "uid-alloc-range.h"
 +#include "missing_stdlib.h"
  
  #define JOURNAL_FILES_RECHECK_USEC (2 * USEC_PER_SEC)
@@ -454,7 +455,7 @@
 index ba2fca32c6..e1f9caa13b 100644
 --- a/src/login/pam_systemd.c
 +++ b/src/login/pam_systemd.c
-@@ -32,6 +32,7 @@
+@@ -34,6 +34,7 @@
  #include "locale-util.h"
  #include "login-util.h"
  #include "macro.h"
@@ -466,7 +467,7 @@
 index 1090934bfc..69a77f66e2 100644
 --- a/src/network/generator/network-generator.c
 +++ b/src/network/generator/network-generator.c
-@@ -13,6 +13,7 @@
+@@ -14,6 +14,7 @@
  #include "string-table.h"
  #include "string-util.h"
  #include "strv.h"
@@ -502,7 +503,7 @@
 index 7811833fac..c6414da91c 100644
 --- a/src/portable/portable.c
 +++ b/src/portable/portable.c
-@@ -39,6 +39,7 @@
+@@ -40,6 +40,7 @@
  #include "strv.h"
  #include "tmpfile-util.h"
  #include "user-util.h"
@@ -550,7 +551,7 @@
 index 1e95e36678..640ee031d5 100644
 --- a/src/shared/bus-unit-util.c
 +++ b/src/shared/bus-unit-util.c
-@@ -50,6 +50,7 @@
+@@ -51,6 +51,7 @@
  #include "unit-def.h"
  #include "user-util.h"
  #include "utf8.h"
@@ -562,7 +563,7 @@
 index d09ec5148d..f38a8f7cc1 100644
 --- a/src/shared/bus-util.c
 +++ b/src/shared/bus-util.c
-@@ -21,6 +21,7 @@
+@@ -24,6 +24,7 @@
  #include "path-util.h"
  #include "socket-util.h"
  #include "stdio-util.h"
@@ -586,9 +587,9 @@
 index d9eabec886..534c6cf7e3 100644
 --- a/src/shared/journal-importer.c
 +++ b/src/shared/journal-importer.c
-@@ -15,6 +15,7 @@
- #include "parse-util.h"
+@@ -16,6 +16,7 @@
  #include "string-util.h"
+ #include "strv.h"
  #include "unaligned.h"
 +#include "missing_stdlib.h"
  
@@ -622,7 +623,7 @@
 index 821049e667..08a5bdae3d 100644
 --- a/src/socket-proxy/socket-proxyd.c
 +++ b/src/socket-proxy/socket-proxyd.c
-@@ -26,6 +26,7 @@
+@@ -27,6 +27,7 @@
  #include "set.h"
  #include "socket-util.h"
  #include "string-util.h"
@@ -646,7 +647,7 @@
 index 8e4d57ee72..6b4555b4d5 100644
 --- a/src/udev/udev-builtin-path_id.c
 +++ b/src/udev/udev-builtin-path_id.c
-@@ -22,6 +22,7 @@
+@@ -24,6 +24,7 @@
  #include "sysexits.h"
  #include "udev-builtin.h"
  #include "udev-util.h"
@@ -670,13 +671,13 @@
 index 5bd09a64d1..0ce79f815c 100644
 --- a/src/udev/udev-rules.c
 +++ b/src/udev/udev-rules.c
-@@ -34,6 +34,7 @@
+@@ -35,6 +35,7 @@
  #include "udev-util.h"
  #include "user-util.h"
  #include "virt.h"
 +#include "missing_stdlib.h"
  
- #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
+ #define RULES_DIRS ((const char* const*) CONF_PATHS_STRV("udev/rules.d"))
  
 -- 
 2.39.2
diff --git a/poky/meta/recipes-core/systemd/systemd/0012-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch b/poky/meta/recipes-core/systemd/systemd/0012-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
index b86cc42..0d69e8e 100644
--- a/poky/meta/recipes-core/systemd/systemd/0012-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0012-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -130,7 +130,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
-@@ -2194,7 +2200,9 @@ finish:
+@@ -2355,7 +2361,9 @@ finish:
  
  static int glob_item(Item *i, action_t action) {
          _cleanup_globfree_ glob_t g = {
@@ -140,7 +140,7 @@
          };
          int r = 0, k;
  
-@@ -2214,7 +2222,9 @@ static int glob_item(Item *i, action_t action) {
+@@ -2375,7 +2383,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 = {
diff --git a/poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch b/poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch
index f586d3f..1d50faa 100644
--- a/poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0014-Use-uintmax_t-for-handling-rlim_t.patch
@@ -89,7 +89,7 @@
 index 8ef76de9ab..ea1c203e43 100644
 --- a/src/core/execute.c
 +++ b/src/core/execute.c
-@@ -6034,9 +6034,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
+@@ -6667,9 +6667,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",
diff --git a/poky/meta/recipes-core/systemd/systemd/0015-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/poky/meta/recipes-core/systemd/systemd/0015-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
deleted file mode 100644
index afc80b9..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0015-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 96088895149746dd2ee8e8c2e4b97972ccf44696 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] 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(+)
-
-diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index 55bd81e22f..6cf92bffde 100644
---- a/src/test/test-sizeof.c
-+++ b/src/test/test-sizeof.c
-@@ -55,8 +55,10 @@ int main(void) {
-         info(unsigned);
-         info(unsigned long);
-         info(unsigned long long);
-+#ifdef __GLIBC__
-         info(__syscall_ulong_t);
-         info(__syscall_slong_t);
-+#endif
-         info(intmax_t);
-         info(uintmax_t);
- 
-@@ -76,7 +78,9 @@ int main(void) {
-         info(ssize_t);
-         info(time_t);
-         info(usec_t);
-+#ifdef __GLIBC__
-         info(__time_t);
-+#endif
-         info(pid_t);
-         info(uid_t);
-         info(gid_t);
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0016-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/poky/meta/recipes-core/systemd/systemd/0016-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
index 2f84d3d..543fba7 100644
--- a/poky/meta/recipes-core/systemd/systemd/0016-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0016-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -34,7 +34,7 @@
 index 932d003f19..33215dbf5f 100644
 --- a/src/basic/fs-util.h
 +++ b/src/basic/fs-util.h
-@@ -50,8 +50,27 @@ int futimens_opath(int fd, const struct timespec ts[2]);
+@@ -49,8 +49,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);
  
@@ -67,16 +67,16 @@
 index be6dd1654a..2726dc946a 100644
 --- a/src/shared/base-filesystem.c
 +++ b/src/shared/base-filesystem.c
-@@ -131,7 +131,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
-                 return log_error_errno(errno, "Failed to open root file system: %m");
+@@ -145,7 +145,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
+         /* The "root" parameter is decoration only – it's only used as part of log messages */
  
          for (size_t i = 0; i < ELEMENTSOF(table); i++) {
 -                if (faccessat(fd, table[i].dir, F_OK, AT_SYMLINK_NOFOLLOW) >= 0)
 +                if (faccessat(fd, table[i].dir, F_OK, 0) >= 0)
                          continue;
  
-                 if (table[i].target) {
-@@ -139,7 +139,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
+                 if (table[i].target) { /* Create as symlink? */
+@@ -153,7 +153,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
  
                          /* check if one of the targets exists */
                          NULSTR_FOREACH(s, table[i].target) {
@@ -85,7 +85,7 @@
                                          continue;
  
                                  /* check if a specific file exists at the target path */
-@@ -150,7 +150,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
+@@ -164,7 +164,7 @@ int base_filesystem_create_fd(int fd, const char *root, uid_t uid, gid_t gid) {
                                          if (!p)
                                                  return log_oom();
  
diff --git a/poky/meta/recipes-core/systemd/systemd/0018-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/poky/meta/recipes-core/systemd/systemd/0018-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
index 401a9a9..8162bc2 100644
--- a/poky/meta/recipes-core/systemd/systemd/0018-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0018-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -27,7 +27,7 @@
 index 0747c14c1c..8d0c5aae92 100644
 --- a/src/basic/process-util.c
 +++ b/src/basic/process-util.c
-@@ -1405,7 +1405,7 @@ int set_oom_score_adjust(int value) {
+@@ -1516,7 +1516,7 @@ int set_oom_score_adjust(int value) {
          xsprintf(t, "%i", value);
  
          return write_string_file("/proc/self/oom_score_adj", t,
diff --git a/poky/meta/recipes-core/systemd/systemd/0019-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/poky/meta/recipes-core/systemd/systemd/0019-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
index 48b8eda..f6d908f 100644
--- a/poky/meta/recipes-core/systemd/systemd/0019-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0019-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -58,7 +58,7 @@
 index 136ebcb153..8a75ba4ecd 100644
 --- a/src/libsystemd/sd-journal/journal-send.c
 +++ b/src/libsystemd/sd-journal/journal-send.c
-@@ -381,7 +381,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
+@@ -360,7 +360,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
                  char* j;
  
                  errno = 0;
diff --git a/poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch b/poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch
index 46267a5..ef6b534 100644
--- a/poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0021-do-not-disable-buffer-in-writing-files.patch
@@ -18,34 +18,35 @@
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+[rebased for systemd 254]
 ---
- src/basic/cgroup-util.c                 | 12 ++++++------
- src/basic/namespace-util.c              |  4 ++--
- src/basic/procfs-util.c                 |  4 ++--
- src/basic/sysctl-util.c                 |  2 +-
- src/binfmt/binfmt.c                     |  6 +++---
- src/core/cgroup.c                       |  2 +-
- src/core/main.c                         |  2 +-
- src/core/smack-setup.c                  |  8 ++++----
- src/hibernate-resume/hibernate-resume.c |  2 +-
- src/home/homework.c                     |  2 +-
- src/libsystemd/sd-device/sd-device.c    |  2 +-
- src/nspawn/nspawn-cgroup.c              |  2 +-
- src/nspawn/nspawn.c                     |  6 +++---
- src/shared/binfmt-util.c                |  2 +-
- src/shared/cgroup-setup.c               |  4 ++--
- src/shared/coredump-util.c              |  2 +-
- src/shared/smack-util.c                 |  2 +-
- src/sleep/sleep.c                       |  8 ++++----
- src/udev/udev-rules.c                   |  1 -
- src/vconsole/vconsole-setup.c           |  2 +-
- 20 files changed, 37 insertions(+), 38 deletions(-)
+ src/basic/cgroup-util.c              | 12 ++++++------
+ src/basic/namespace-util.c           |  4 ++--
+ src/basic/procfs-util.c              |  4 ++--
+ src/basic/sysctl-util.c              |  2 +-
+ src/binfmt/binfmt.c                  |  6 +++---
+ src/core/cgroup.c                    |  2 +-
+ src/core/main.c                      |  2 +-
+ src/core/smack-setup.c               |  8 ++++----
+ src/home/homework.c                  |  2 +-
+ src/libsystemd/sd-device/sd-device.c |  2 +-
+ src/nspawn/nspawn-cgroup.c           |  2 +-
+ src/nspawn/nspawn.c                  |  6 +++---
+ src/shared/binfmt-util.c             |  2 +-
+ src/shared/cgroup-setup.c            |  4 ++--
+ src/shared/coredump-util.c           |  2 +-
+ src/shared/sleep-util.c              |  4 ++--
+ src/shared/smack-util.c              |  2 +-
+ src/sleep/sleep.c                    |  4 ++--
+ src/udev/udev-rules.c                |  1 -
+ src/vconsole/vconsole-setup.c        |  2 +-
+ 20 files changed, 36 insertions(+), 37 deletions(-)
 
 diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
 index 11b4375ed5..7d81a6007f 100644
 --- a/src/basic/cgroup-util.c
 +++ b/src/basic/cgroup-util.c
-@@ -399,7 +399,7 @@ int cg_kill_kernel_sigkill(const char *controller, const char *path) {
+@@ -400,7 +400,7 @@ int cg_kill_kernel_sigkill(const char *controller, const char *path) {
          if (r < 0)
                  return r;
  
@@ -54,7 +55,7 @@
          if (r < 0)
                  return r;
  
-@@ -805,7 +805,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+@@ -806,7 +806,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
  
          sc = strstrip(contents);
          if (isempty(sc)) {
@@ -63,7 +64,7 @@
                  if (r < 0)
                          return r;
          } else if (!path_equal(sc, agent))
-@@ -823,7 +823,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
+@@ -824,7 +824,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
  
          sc = strstrip(contents);
          if (streq(sc, "0")) {
@@ -72,7 +73,7 @@
                  if (r < 0)
                          return r;
  
-@@ -850,7 +850,7 @@ int cg_uninstall_release_agent(const char *controller) {
+@@ -851,7 +851,7 @@ int cg_uninstall_release_agent(const char *controller) {
          if (r < 0)
                  return r;
  
@@ -81,7 +82,7 @@
          if (r < 0)
                  return r;
  
-@@ -860,7 +860,7 @@ int cg_uninstall_release_agent(const char *controller) {
+@@ -861,7 +861,7 @@ int cg_uninstall_release_agent(const char *controller) {
          if (r < 0)
                  return r;
  
@@ -90,7 +91,7 @@
          if (r < 0)
                  return r;
  
-@@ -1752,7 +1752,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
+@@ -1764,7 +1764,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
          if (r < 0)
                  return r;
  
@@ -103,7 +104,7 @@
 index f5c0e04cec..272b920022 100644
 --- a/src/basic/namespace-util.c
 +++ b/src/basic/namespace-util.c
-@@ -220,12 +220,12 @@ int userns_acquire(const char *uid_map, const char *gid_map) {
+@@ -227,12 +227,12 @@ int userns_acquire(const char *uid_map, const char *gid_map) {
                  freeze();
  
          xsprintf(path, "/proc/" PID_FMT "/uid_map", pid);
@@ -186,7 +187,7 @@
 index 4cac3f6a89..bebe2cd120 100644
 --- a/src/core/cgroup.c
 +++ b/src/core/cgroup.c
-@@ -4267,7 +4267,7 @@ int unit_cgroup_freezer_action(Unit *u, FreezerAction action) {
+@@ -4349,7 +4349,7 @@ int unit_cgroup_freezer_action(Unit *u, FreezerAction action) {
                          u->freezer_state = FREEZER_THAWING;
          }
  
@@ -199,7 +200,7 @@
 index c0b8126d96..fe676320ba 100644
 --- a/src/core/main.c
 +++ b/src/core/main.c
-@@ -1716,7 +1716,7 @@ static void initialize_core_pattern(bool skip_setup) {
+@@ -1737,7 +1737,7 @@ static void initialize_core_pattern(bool skip_setup) {
          if (getpid_cached() != 1)
                  return;
  
@@ -234,19 +235,6 @@
          if (r < 0)
                  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 9a9df5d22f..75ddec881a 100644
---- a/src/hibernate-resume/hibernate-resume.c
-+++ b/src/hibernate-resume/hibernate-resume.c
-@@ -40,7 +40,7 @@ int main(int argc, char *argv[]) {
-                 return EXIT_FAILURE;
-         }
- 
--        r = write_string_file("/sys/power/resume", FORMAT_DEVNUM(st.st_rdev), WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/power/resume", FORMAT_DEVNUM(st.st_rdev), 0);
-         if (r < 0) {
-                 log_error_errno(r, "Failed to write '" DEVNUM_FORMAT_STR "' to /sys/power/resume: %m", DEVNUM_FORMAT_VAL(st.st_rdev));
-                 return EXIT_FAILURE;
 diff --git a/src/home/homework.c b/src/home/homework.c
 index 28907386a4..f9e45349a7 100644
 --- a/src/home/homework.c
@@ -264,7 +252,7 @@
 index 8c65ee3469..153edab081 100644
 --- a/src/libsystemd/sd-device/sd-device.c
 +++ b/src/libsystemd/sd-device/sd-device.c
-@@ -2481,7 +2481,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
+@@ -2515,7 +2515,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
          if (!value)
                  return -ENOMEM;
  
@@ -290,7 +278,7 @@
 index 36d336dfc8..8c5c69596b 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -2771,7 +2771,7 @@ static int reset_audit_loginuid(void) {
+@@ -2774,7 +2774,7 @@ static int reset_audit_loginuid(void) {
          if (streq(p, "4294967295"))
                  return 0;
  
@@ -299,7 +287,7 @@
          if (r < 0) {
                  log_error_errno(r,
                                  "Failed to reset audit login UID. This probably means that your kernel is too\n"
-@@ -4211,7 +4211,7 @@ static int setup_uid_map(
+@@ -4214,7 +4214,7 @@ static int setup_uid_map(
                  return log_oom();
  
          xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
@@ -308,7 +296,7 @@
          if (r < 0)
                  return log_error_errno(r, "Failed to write UID map: %m");
  
-@@ -4221,7 +4221,7 @@ static int setup_uid_map(
+@@ -4224,7 +4224,7 @@ static int setup_uid_map(
                  return log_oom();
  
          xsprintf(uid_map, "/proc/" PID_FMT "/gid_map", pid);
@@ -334,7 +322,7 @@
 index 2ea83f05d3..8626bb184c 100644
 --- a/src/shared/cgroup-setup.c
 +++ b/src/shared/cgroup-setup.c
-@@ -350,7 +350,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
+@@ -351,7 +351,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
  
          xsprintf(c, PID_FMT "\n", pid);
  
@@ -343,7 +331,7 @@
          if (r == -EOPNOTSUPP && cg_is_threaded(controller, path) > 0)
                  /* When the threaded mode is used, we cannot read/write the file. Let's return recognizable error. */
                  return -EUCLEAN;
-@@ -887,7 +887,7 @@ int cg_enable_everywhere(
+@@ -964,7 +964,7 @@ int cg_enable_everywhere(
                                          return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
                          }
  
@@ -356,8 +344,8 @@
 index 3d2f179049..c1b6c170ac 100644
 --- a/src/shared/coredump-util.c
 +++ b/src/shared/coredump-util.c
-@@ -71,7 +71,7 @@ int set_coredump_filter(uint64_t value) {
-         sprintf(t, "0x%"PRIx64, value);
+@@ -163,7 +163,7 @@ int set_coredump_filter(uint64_t value) {
+         xsprintf(t, "0x%"PRIx64, value);
  
          return write_string_file("/proc/self/coredump_filter", t,
 -                                 WRITE_STRING_FILE_VERIFY_ON_FAILURE|WRITE_STRING_FILE_DISABLE_BUFFER);
@@ -365,11 +353,33 @@
  }
  
  /* Turn off core dumps but only if we're running outside of a container. */
+diff --git a/src/shared/sleep-util.c b/src/shared/sleep-util.c
+index d7277399fb..d06d636fcc 100644
+--- a/src/shared/sleep-util.c
++++ b/src/shared/sleep-util.c
+@@ -1044,7 +1044,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) {
+ 
+         /* We write the offset first since it's safer. Note that this file is only available in 4.17+, so
+          * fail gracefully if it doesn't exist and we're only overwriting it with 0. */
+-        r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/sys/power/resume_offset", offset_str, 0);
+         if (r == -ENOENT) {
+                 if (offset != 0)
+                         return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
+@@ -1060,7 +1060,7 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) {
+                 log_debug("Wrote resume_offset=%s for device '%s' to /sys/power/resume_offset.",
+                           offset_str, device);
+ 
+-        r = write_string_file("/sys/power/resume", devno_str, WRITE_STRING_FILE_DISABLE_BUFFER);
++        r = write_string_file("/sys/power/resume", devno_str, 0);
+         if (r < 0)
+                 return log_error_errno(r,
+                                        "Failed to write device '%s' (%s) to /sys/power/resume: %m",
 diff --git a/src/shared/smack-util.c b/src/shared/smack-util.c
 index b3b5c905ad..bbfa1973fd 100644
 --- a/src/shared/smack-util.c
 +++ b/src/shared/smack-util.c
-@@ -115,7 +115,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
+@@ -113,7 +113,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
                  return 0;
  
          p = procfs_file_alloca(pid, "attr/current");
@@ -382,25 +392,7 @@
 index 765dd4974f..cd6afb001b 100644
 --- a/src/sleep/sleep.c
 +++ b/src/sleep/sleep.c
-@@ -50,7 +50,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
-         assert(hibernate_location->swap);
- 
-         xsprintf(resume_str, "%u:%u", major(hibernate_location->devno), minor(hibernate_location->devno));
--        r = write_string_file("/sys/power/resume", resume_str, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/power/resume", resume_str, 0);
-         if (r < 0)
-                 return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m",
-                                        hibernate_location->swap->device, resume_str);
-@@ -77,7 +77,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
-         }
- 
-         xsprintf(offset_str, "%" PRIu64, hibernate_location->offset);
--        r = write_string_file("/sys/power/resume_offset", offset_str, WRITE_STRING_FILE_DISABLE_BUFFER);
-+        r = write_string_file("/sys/power/resume_offset", offset_str, 0);
-         if (r < 0)
-                 return log_debug_errno(r, "Failed to write swap file offset to /sys/power/resume_offset for '%s': '%s': %m",
-                                        hibernate_location->swap->device, offset_str);
-@@ -93,7 +93,7 @@ static int write_mode(char **modes) {
+@@ -139,7 +139,7 @@ static int write_mode(char **modes) {
          STRV_FOREACH(mode, modes) {
                  int k;
  
@@ -409,7 +401,7 @@
                  if (k >= 0)
                          return 0;
  
-@@ -114,7 +114,7 @@ static int write_state(FILE **f, char **states) {
+@@ -160,7 +160,7 @@ static int write_state(FILE **f, char **states) {
          STRV_FOREACH(state, states) {
                  int k;
  
@@ -422,8 +414,8 @@
 index 0ce79f815c..28aab475d0 100644
 --- a/src/udev/udev-rules.c
 +++ b/src/udev/udev-rules.c
-@@ -2357,7 +2357,6 @@ static int udev_rule_apply_token_to_event(
-                 log_rule_debug(dev, rules, "ATTR '%s' writing '%s'", buf, value);
+@@ -2634,7 +2634,6 @@ static int udev_rule_apply_token_to_event(
+                 log_event_debug(dev, token, "ATTR '%s' writing '%s'", buf, value);
                  r = write_string_file(buf, value,
                                        WRITE_STRING_FILE_VERIFY_ON_FAILURE |
 -                                      WRITE_STRING_FILE_DISABLE_BUFFER |
@@ -434,7 +426,7 @@
 index 7d3e9db73f..2d4a0c4c9d 100644
 --- a/src/vconsole/vconsole-setup.c
 +++ b/src/vconsole/vconsole-setup.c
-@@ -108,7 +108,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
+@@ -259,7 +259,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
  static int toggle_utf8_sysfs(bool utf8) {
          int r;
  
diff --git a/poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch b/poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch
index 61545f5..341543a 100644
--- a/poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0022-Handle-__cpu_mask-usage.patch
@@ -46,8 +46,8 @@
 -#include <sched.h>
  #include <stdio.h>
  #include <string.h>
- #include <sys/types.h>
-@@ -10,6 +9,7 @@
+ #include <sys/resource.h>
+@@ -11,6 +10,7 @@
  #include <float.h>
  
  #include "time-util.h"
diff --git a/poky/meta/recipes-core/systemd/systemd/0023-Handle-missing-gshadow.patch b/poky/meta/recipes-core/systemd/systemd/0023-Handle-missing-gshadow.patch
index 7da8798..19ee3ff 100644
--- a/poky/meta/recipes-core/systemd/systemd/0023-Handle-missing-gshadow.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0023-Handle-missing-gshadow.patch
@@ -20,7 +20,7 @@
 index 88b8fc2f8f..a819d41bac 100644
 --- a/src/shared/user-record-nss.c
 +++ b/src/shared/user-record-nss.c
-@@ -331,8 +331,10 @@ int nss_group_to_group_record(
+@@ -329,8 +329,10 @@ int nss_group_to_group_record(
          if (isempty(grp->gr_name))
                  return -EINVAL;
  
@@ -31,7 +31,7 @@
  
          g = group_record_new();
          if (!g)
-@@ -348,6 +350,7 @@ int nss_group_to_group_record(
+@@ -346,6 +348,7 @@ int nss_group_to_group_record(
  
          g->gid = grp->gr_gid;
  
@@ -39,7 +39,7 @@
          if (sgrp) {
                  if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
                          g->hashed_password = strv_new(sgrp->sg_passwd);
-@@ -363,6 +366,7 @@ int nss_group_to_group_record(
+@@ -361,6 +364,7 @@ int nss_group_to_group_record(
                  if (r < 0)
                          return r;
          }
@@ -47,7 +47,7 @@
  
          r = json_build(&g->json, JSON_BUILD_OBJECT(
                                         JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
-@@ -388,6 +392,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
+@@ -387,6 +391,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
          assert(ret_sgrp);
          assert(ret_buffer);
  
@@ -55,7 +55,7 @@
          for (;;) {
                  _cleanup_free_ char *buf = NULL;
                  struct sgrp sgrp, *result;
-@@ -416,6 +421,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
+@@ -415,6 +420,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
                  buflen *= 2;
                  buf = mfree(buf);
          }
@@ -65,7 +65,7 @@
  }
  
  int nss_group_record_by_name(
-@@ -427,7 +435,9 @@ int nss_group_record_by_name(
+@@ -426,7 +434,9 @@ int nss_group_record_by_name(
          struct group grp, *result;
          bool incomplete = false;
          size_t buflen = 4096;
@@ -75,7 +75,7 @@
          int r;
  
          assert(name);
-@@ -457,6 +467,7 @@ int nss_group_record_by_name(
+@@ -455,6 +465,7 @@ int nss_group_record_by_name(
                  buf = mfree(buf);
          }
  
@@ -83,7 +83,7 @@
          if (with_shadow) {
                  r = nss_sgrp_for_group(result, &sgrp, &sbuf);
                  if (r < 0) {
-@@ -468,6 +479,9 @@ int nss_group_record_by_name(
+@@ -466,6 +477,9 @@ int nss_group_record_by_name(
                  incomplete = true;
  
          r = nss_group_to_group_record(result, sresult, ret);
@@ -93,7 +93,7 @@
          if (r < 0)
                  return r;
  
-@@ -484,7 +498,9 @@ int nss_group_record_by_gid(
+@@ -483,7 +497,9 @@ int nss_group_record_by_gid(
          struct group grp, *result;
          bool incomplete = false;
          size_t buflen = 4096;
@@ -102,8 +102,8 @@
 +#endif
          int r;
  
-         assert(ret);
-@@ -512,6 +528,7 @@ int nss_group_record_by_gid(
+         for (;;) {
+@@ -509,6 +525,7 @@ int nss_group_record_by_gid(
                  buf = mfree(buf);
          }
  
@@ -111,7 +111,7 @@
          if (with_shadow) {
                  r = nss_sgrp_for_group(result, &sgrp, &sbuf);
                  if (r < 0) {
-@@ -523,6 +540,9 @@ int nss_group_record_by_gid(
+@@ -520,6 +537,9 @@ int nss_group_record_by_gid(
                  incomplete = true;
  
          r = nss_group_to_group_record(result, sresult, ret);
@@ -141,7 +141,7 @@
 index a77eff4407..955e361d3a 100644
 --- a/src/shared/userdb.c
 +++ b/src/shared/userdb.c
-@@ -1044,13 +1044,15 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
+@@ -1038,13 +1038,15 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
                  if (gr) {
                          _cleanup_free_ char *buffer = NULL;
                          bool incomplete = false;
@@ -158,7 +158,7 @@
                          if (!FLAGS_SET(iterator->flags, USERDB_SUPPRESS_SHADOW)) {
                                  r = nss_sgrp_for_group(gr, &sgrp, &buffer);
                                  if (r < 0) {
-@@ -1063,6 +1065,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
+@@ -1057,6 +1059,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
                          }
  
                          r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
diff --git a/poky/meta/recipes-core/systemd/systemd/0024-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch b/poky/meta/recipes-core/systemd/systemd/0024-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
index 15ff6eb..d64cec1 100644
--- a/poky/meta/recipes-core/systemd/systemd/0024-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0024-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -36,7 +36,7 @@
 index 2726dc946a..484f63e0b4 100644
 --- a/src/shared/base-filesystem.c
 +++ b/src/shared/base-filesystem.c
-@@ -19,6 +19,7 @@
+@@ -20,6 +20,7 @@
  #include "string-util.h"
  #include "umask-util.h"
  #include "user-util.h"
diff --git a/poky/meta/recipes-core/systemd/systemd/0025-include-sys-file.h-for-LOCK_EX.patch b/poky/meta/recipes-core/systemd/systemd/0025-include-sys-file.h-for-LOCK_EX.patch
new file mode 100644
index 0000000..7827cc1
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0025-include-sys-file.h-for-LOCK_EX.patch
@@ -0,0 +1,29 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2023 10:33:48 -0700
+Subject: [PATCH] include sys/file.h for LOCK_EX
+
+Fixes
+| ../git/src/basic/user-util.c:708:30: error: use of undeclared identifier 'LOCK_EX'; did you mean 'LOCK_BSD'?
+|   708 |         r = unposix_lock(fd, LOCK_EX);
+|       |                              ^~~~~~~
+|       |                              LOCK_BSD
+
+Upstream-Status: Backport [https://github.com/systemd/systemd/pull/28647]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/basic/user-util.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/basic/user-util.c b/src/basic/user-util.c
+index fe61a09005..5c39847733 100644
+--- a/src/basic/user-util.c
++++ b/src/basic/user-util.c
+@@ -6,6 +6,7 @@
+ #include <stdint.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <sys/file.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <utmp.h>
diff --git a/poky/meta/recipes-core/systemd/systemd/0026-src-boot-efi-efi-string.c-define-wchar_t-from-__WCHA.patch b/poky/meta/recipes-core/systemd/systemd/0026-src-boot-efi-efi-string.c-define-wchar_t-from-__WCHA.patch
deleted file mode 100644
index c7e2280..0000000
--- a/poky/meta/recipes-core/systemd/systemd/0026-src-boot-efi-efi-string.c-define-wchar_t-from-__WCHA.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 34072f456b4fe880fbb2f18760b64a1a6c1eebb8 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Mon, 6 Mar 2023 15:24:49 +0100
-Subject: [PATCH] src/boot/efi/efi-string.c: define wchar_t from __WCHAR_TYPE__
-
-systemd-boot relies on wchar_t being 16 bit, and breaks at build time otherwise.
-
-To set wchar_t to 16 bit it is passing -fshort-wchar to gcc; this has the
-desired effect on glibc (which sets wchar_t from __WCHAR_TYPE__) but not on
-musl (which hardcodes it to 32 bit).
-
-This patch ensures wchar_t is set from the compiler flags on all systems; note
-that systemd-boot is not actually using functions from musl or other libc, just their headers.
-
-Meanwhile upstream has refactored the code to not rely on libc headers at all;
-however this will not be backported to v253 and we need a different fix.
-
-Upstream-Status: Inappropriate [fixed differently in trunk according to https://github.com/systemd/systemd/pull/26689]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- src/boot/efi/efi-string.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/src/boot/efi/efi-string.c b/src/boot/efi/efi-string.c
-index 22923d60f6..5d09d4281f 100644
---- a/src/boot/efi/efi-string.c
-+++ b/src/boot/efi/efi-string.c
-@@ -2,7 +2,13 @@
- 
- #include <stdbool.h>
- #include <stdint.h>
-+
-+#if SD_BOOT
-+typedef __WCHAR_TYPE__ wchar_t;
-+#define __DEFINED_wchar_t
-+#else
- #include <wchar.h>
-+#endif
- 
- #include "efi-string.h"
- 
--- 
-2.39.2
-
diff --git a/poky/meta/recipes-core/systemd/systemd/0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch b/poky/meta/recipes-core/systemd/systemd/0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch
new file mode 100644
index 0000000..f2130c8
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch
@@ -0,0 +1,28 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2023 12:14:56 -0700
+Subject: [PATCH] test/test-sizeof: Include sys/timex.h for struct timex
+
+Fixes
+
+../git/src/test/test-sizeof.c:64:41: error: incomplete definition of type 'struct timex'
+   64 |         check(typeof(((struct timex *)0)->freq), SIZEOF_TIMEX_MEMBER);
+      |                      ~~~~~~~~~~~~~~~~~~~^
+
+Upstream-Status: Backport [https://github.com/systemd/systemd/pull/28651]
+---
+ src/test/test-sizeof.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
+index 9d969cf8f1..b65c0bd370 100644
+--- a/src/test/test-sizeof.c
++++ b/src/test/test-sizeof.c
+@@ -4,6 +4,7 @@
+ #include <string.h>
+ #include <sys/resource.h>
+ #include <sys/socket.h>
++#include <sys/timex.h>
+ #include <sys/types.h>
+ 
+ #define __STDC_WANT_IEC_60559_TYPES_EXT__
diff --git a/poky/meta/recipes-core/systemd/systemd/0027-include-missing-sys-file.h-for-LOCK_EX.patch b/poky/meta/recipes-core/systemd/systemd/0027-include-missing-sys-file.h-for-LOCK_EX.patch
new file mode 100644
index 0000000..1901480
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0027-include-missing-sys-file.h-for-LOCK_EX.patch
@@ -0,0 +1,98 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2023 12:18:24 -0700
+Subject: [PATCH] include missing sys/file.h for LOCK_EX
+
+Upstream-Status: Backport [https://github.com/systemd/systemd/pull/28651]
+---
+ src/core/execute.c            | 1 +
+ src/shared/btrfs-util.c       | 1 +
+ src/shared/copy.c             | 1 +
+ src/test/test-btrfs.c         | 1 +
+ src/test/test-fs-util.c       | 1 +
+ src/test/test-lock-util.c     | 1 +
+ src/vconsole/vconsole-setup.c | 1 +
+ 7 files changed, 7 insertions(+)
+
+diff --git a/src/core/execute.c b/src/core/execute.c
+index 5b2ae861ff..2ebf19ffaa 100644
+--- a/src/core/execute.c
++++ b/src/core/execute.c
+@@ -4,6 +4,7 @@
+ #include <fcntl.h>
+ #include <poll.h>
+ #include <sys/eventfd.h>
++#include <sys/file.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+ #include <sys/mount.h>
+diff --git a/src/shared/btrfs-util.c b/src/shared/btrfs-util.c
+index 5128b308ab..3ded95ea82 100644
+--- a/src/shared/btrfs-util.c
++++ b/src/shared/btrfs-util.c
+@@ -10,6 +10,7 @@
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <sys/file.h>
+ #include <sys/ioctl.h>
+ #include <sys/sysmacros.h>
+ #include <unistd.h>
+diff --git a/src/shared/copy.c b/src/shared/copy.c
+index 241a2d112b..7e47dc002c 100644
+--- a/src/shared/copy.c
++++ b/src/shared/copy.c
+@@ -6,6 +6,7 @@
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <sys/file.h>
+ #include <sys/ioctl.h>
+ #include <sys/sendfile.h>
+ #include <sys/xattr.h>
+diff --git a/src/test/test-btrfs.c b/src/test/test-btrfs.c
+index 95b7ef25d8..ba09563058 100644
+--- a/src/test/test-btrfs.c
++++ b/src/test/test-btrfs.c
+@@ -1,6 +1,7 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <fcntl.h>
++#include <sys/file.h>
+ 
+ #include "btrfs-util.h"
+ #include "fd-util.h"
+diff --git a/src/test/test-fs-util.c b/src/test/test-fs-util.c
+index 1beba916a4..5de1eea0d4 100644
+--- a/src/test/test-fs-util.c
++++ b/src/test/test-fs-util.c
+@@ -1,5 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
++#include <sys/file.h>
+ #include <unistd.h>
+ 
+ #include "alloc-util.h"
+diff --git a/src/test/test-lock-util.c b/src/test/test-lock-util.c
+index a9a1b438ff..28fc54a5d6 100644
+--- a/src/test/test-lock-util.c
++++ b/src/test/test-lock-util.c
+@@ -1,5 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
++#include <sys/file.h>
+ #include <unistd.h>
+ 
+ #include "fd-util.h"
+diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
+index d57d8b4001..86348d08c1 100644
+--- a/src/vconsole/vconsole-setup.c
++++ b/src/vconsole/vconsole-setup.c
+@@ -11,6 +11,7 @@
+ #include <linux/vt.h>
+ #include <stdbool.h>
+ #include <stdlib.h>
++#include <sys/file.h>
+ #include <sys/ioctl.h>
+ #include <sysexits.h>
+ #include <termios.h>
diff --git a/poky/meta/recipes-core/systemd/systemd/0028-sd-event-Make-malloc_trim-conditional-on-glibc.patch b/poky/meta/recipes-core/systemd/systemd/0028-sd-event-Make-malloc_trim-conditional-on-glibc.patch
new file mode 100644
index 0000000..c9ec000
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0028-sd-event-Make-malloc_trim-conditional-on-glibc.patch
@@ -0,0 +1,39 @@
+From 148645ba8b62f04c7c5ff5907378663f97880f22 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2023 12:06:27 -0700
+Subject: [PATCH 1/4] sd-event: Make malloc_trim() conditional on glibc
+
+musl does not have this API
+
+Upstream-Status: Inappropriate [musl-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libsystemd/sd-event/sd-event.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
+index aba458185b..48c94a7672 100644
+--- a/src/libsystemd/sd-event/sd-event.c
++++ b/src/libsystemd/sd-event/sd-event.c
+@@ -1874,7 +1874,7 @@ _public_ int sd_event_add_exit(
+ }
+
+ _public_ int sd_event_trim_memory(void) {
+-        int r;
++        int r = 0;
+
+         /* A default implementation of a memory pressure callback. Simply releases our own allocation caches
+          * and glibc's. This is automatically used when people call sd_event_add_memory_pressure() with a
+@@ -1888,7 +1888,9 @@ _public_ int sd_event_trim_memory(void) {
+
+         usec_t before_timestamp = now(CLOCK_MONOTONIC);
+         hashmap_trim_pools();
++#ifdef __GLIBC__
+         r = malloc_trim(0);
++#endif
+         usec_t after_timestamp = now(CLOCK_MONOTONIC);
+
+         if (r > 0)
+--
+2.41.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0029-shared-Do-not-use-malloc_info-on-musl.patch b/poky/meta/recipes-core/systemd/systemd/0029-shared-Do-not-use-malloc_info-on-musl.patch
new file mode 100644
index 0000000..8e38655
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0029-shared-Do-not-use-malloc_info-on-musl.patch
@@ -0,0 +1,50 @@
+From 9430646e72ea5d260ade300038a6d976fecf7da5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Aug 2023 12:20:40 -0700
+Subject: [PATCH 4/4] shared: Do not use malloc_info on musl
+
+Upstream-Status: Inappropriate [musl-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/shared/bus-util.c      | 5 +++--
+ src/shared/common-signal.c | 4 ++--
+ 2 files changed, 5 insertions(+), 4 deletions(-)
+
+--- a/src/shared/bus-util.c
++++ b/src/shared/bus-util.c
+@@ -617,15 +617,16 @@ static int method_dump_memory_state_by_f
+         _cleanup_close_ int fd = -EBADF;
+         size_t dump_size;
+         FILE *f;
+-        int r;
++        int r = 0;
+ 
+         assert(message);
+ 
+         f = memstream_init(&m);
+         if (!f)
+                 return -ENOMEM;
+-
++#ifdef __GLIBC__
+         r = RET_NERRNO(malloc_info(/* options= */ 0, f));
++#endif
+         if (r < 0)
+                 return r;
+ 
+--- a/src/shared/common-signal.c
++++ b/src/shared/common-signal.c
+@@ -65,12 +65,12 @@ int sigrtmin18_handler(sd_event_source *
+                         log_oom();
+                         break;
+                 }
+-
++#ifdef __GLIBC__
+                 if (malloc_info(0, f) < 0) {
+                         log_error_errno(errno, "Failed to invoke malloc_info(): %m");
+                         break;
+                 }
+-
++#endif
+                 (void) memstream_dump(LOG_INFO, &m);
+                 break;
+         }
diff --git a/poky/meta/recipes-core/systemd/systemd/27253.patch b/poky/meta/recipes-core/systemd/systemd/27253.patch
deleted file mode 100644
index 6c556fe..0000000
--- a/poky/meta/recipes-core/systemd/systemd/27253.patch
+++ /dev/null
@@ -1,313 +0,0 @@
-From 924937cbc0bf692bc6e5b3a0bd3c18347d9521e9 Mon Sep 17 00:00:00 2001
-From: Yu Watanabe <watanabe.yu+github@gmail.com>
-Date: Thu, 13 Apr 2023 16:40:36 +0900
-Subject: [PATCH 1/7] timesync: drop unnecessary initialization
-
-Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/27253]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/timesync/timesyncd-manager.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/timesync/timesyncd-manager.c
-+++ b/src/timesync/timesyncd-manager.c
-@@ -410,7 +410,7 @@ static int manager_receive_response(sd_e
-                 .msg_name = &server_addr,
-                 .msg_namelen = sizeof(server_addr),
-         };
--        struct timespec *recv_time = NULL;
-+        struct timespec *recv_time;
-         triple_timestamp dts;
-         ssize_t len;
-         double origin, receive, trans, dest, delay, offset, root_distance;
-@@ -445,7 +445,7 @@ static int manager_receive_response(sd_e
-                 return 0;
-         }
- 
--        recv_time = CMSG_FIND_DATA(&msghdr, SOL_SOCKET, SCM_TIMESTAMPNS, struct timespec);
-+        recv_time = CMSG_FIND_AND_COPY_DATA(&msghdr, SOL_SOCKET, SCM_TIMESTAMPNS, struct timespec);
-         if (!recv_time)
-                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Packet timestamp missing.");
- 
---- a/src/basic/socket-util.h
-+++ b/src/basic/socket-util.h
-@@ -183,17 +183,22 @@ int flush_accept(int fd);
-  * riscv32. */
- #define CMSG_TYPED_DATA(cmsg, type)                                     \
-         ({                                                              \
--                struct cmsghdr *_cmsg = cmsg;                           \
--                assert_cc(__alignof__(type) <= __alignof__(struct cmsghdr)); \
-+                struct cmsghdr *_cmsg = (cmsg);                         \
-+                assert_cc(alignof(type) <= alignof(struct cmsghdr));    \
-                 _cmsg ? CAST_ALIGN_PTR(type, CMSG_DATA(_cmsg)) : (type*) NULL; \
-         })
- 
- struct cmsghdr* cmsg_find(struct msghdr *mh, int level, int type, socklen_t length);
-+void* cmsg_find_and_copy_data(struct msghdr *mh, int level, int type, void *buf, size_t buf_len);
- 
- /* Type-safe, dereferencing version of cmsg_find() */
- #define CMSG_FIND_DATA(mh, level, type, ctype)                          \
-         CMSG_TYPED_DATA(cmsg_find(mh, level, type, CMSG_LEN(sizeof(ctype))), ctype)
- 
-+/* Type-safe version of cmsg_find_and_copy_data() */
-+#define CMSG_FIND_AND_COPY_DATA(mh, level, type, ctype)             \
-+        (ctype*) cmsg_find_and_copy_data(mh, level, type, &(ctype){}, sizeof(ctype))
-+
- /* Resolves to a type that can carry cmsghdr structures. Make sure things are properly aligned, i.e. the type
-  * itself is placed properly in memory and the size is also aligned to what's appropriate for "cmsghdr"
-  * structures. */
---- a/src/boot/efi/pe.c
-+++ b/src/boot/efi/pe.c
-@@ -197,7 +197,7 @@ static uint32_t get_compatibility_entry_
-                 uint32_t entry_point;
-         } _packed_ LinuxPeCompat1;
- 
--        while (size >= sizeof(LinuxPeCompat1) && addr % __alignof__(LinuxPeCompat1) == 0) {
-+        while (size >= sizeof(LinuxPeCompat1) && addr % alignof(LinuxPeCompat1) == 0) {
-                 LinuxPeCompat1 *compat = (LinuxPeCompat1 *) ((uint8_t *) dos + addr);
- 
-                 if (compat->type == 0 || compat->size == 0 || compat->size > size)
---- a/src/fundamental/macro-fundamental.h
-+++ b/src/fundamental/macro-fundamental.h
-@@ -6,12 +6,13 @@
- #endif
- 
- #include <limits.h>
-+#include <stdalign.h>
- #include <stdbool.h>
- #include <stddef.h>
- #include <stdint.h>
- 
- #define _align_(x) __attribute__((__aligned__(x)))
--#define _alignas_(x) __attribute__((__aligned__(__alignof__(x))))
-+#define _alignas_(x) __attribute__((__aligned__(alignof(x))))
- #define _alignptr_ __attribute__((__aligned__(sizeof(void *))))
- #define _cleanup_(x) __attribute__((__cleanup__(x)))
- #define _const_ __attribute__((__const__))
-@@ -346,9 +347,9 @@ static inline size_t ALIGN_TO(size_t l,
- #endif
- 
- /* Checks if the specified pointer is aligned as appropriate for the specific type */
--#define IS_ALIGNED16(p) (((uintptr_t) p) % __alignof__(uint16_t) == 0)
--#define IS_ALIGNED32(p) (((uintptr_t) p) % __alignof__(uint32_t) == 0)
--#define IS_ALIGNED64(p) (((uintptr_t) p) % __alignof__(uint64_t) == 0)
-+#define IS_ALIGNED16(p) (((uintptr_t) p) % alignof(uint16_t) == 0)
-+#define IS_ALIGNED32(p) (((uintptr_t) p) % alignof(uint32_t) == 0)
-+#define IS_ALIGNED64(p) (((uintptr_t) p) % alignof(uint64_t) == 0)
- 
- /* Same as ALIGN_TO but callable in constant contexts. */
- #define CONST_ALIGN_TO(l, ali)                                         \
-@@ -366,7 +367,7 @@ static inline size_t ALIGN_TO(size_t l,
- #define CAST_ALIGN_PTR(t, p)                                    \
-         ({                                                      \
-                 const void *_p = (p);                           \
--                assert(((uintptr_t) _p) % __alignof__(t) == 0); \
-+                assert(((uintptr_t) _p) % alignof(t) == 0); \
-                 (t *) _p;                                       \
-         })
- 
---- a/src/network/networkd-nexthop.c
-+++ b/src/network/networkd-nexthop.c
-@@ -894,7 +894,7 @@ int manager_rtnl_process_nexthop(sd_netl
-                         return 0;
-                 }
- 
--                assert((uintptr_t) group % __alignof__(struct nexthop_grp) == 0);
-+                assert((uintptr_t) group % alignof(struct nexthop_grp) == 0);
- 
-                 n_group = raw_group_size / sizeof(struct nexthop_grp);
-                 for (size_t i = 0; i < n_group; i++) {
---- a/src/test/test-sizeof.c
-+++ b/src/test/test-sizeof.c
-@@ -17,16 +17,16 @@
- DISABLE_WARNING_TYPE_LIMITS;
- 
- #define info_no_sign(t)                                                 \
--        printf("%s → %zu bits, %zu byte alignment\n", STRINGIFY(t),     \
-+        printf("%s → %zu bits, %zu byte alignment\n", STRINGIFY(t),    \
-                sizeof(t)*CHAR_BIT,                                      \
--               __alignof__(t))
-+               alignof(t))
- 
- #define info(t)                                                         \
--        printf("%s → %zu bits%s, %zu byte alignment\n", STRINGIFY(t),   \
-+        printf("%s → %zu bits%s, %zu byte alignment\n", STRINGIFY(t),  \
-                sizeof(t)*CHAR_BIT,                                      \
-                strstr(STRINGIFY(t), "signed") ? "" :                    \
-                (t)-1 < (t)0 ? ", signed" : ", unsigned",                \
--               __alignof__(t))
-+               alignof(t))
- 
- enum Enum {
-         enum_value,
-@@ -44,7 +44,7 @@ enum BigEnum2 {
- int main(void) {
-         int (*function_pointer)(void);
- 
--        info_no_sign(function_pointer);
-+        info_no_sign(typeof(function_pointer));
-         info_no_sign(void*);
-         info(char*);
- 
---- a/src/basic/socket-util.c
-+++ b/src/basic/socket-util.c
-@@ -1171,6 +1171,18 @@ struct cmsghdr* cmsg_find(struct msghdr
-         return NULL;
- }
- 
-+void* cmsg_find_and_copy_data(struct msghdr *mh, int level, int type, void *buf, size_t buf_len) {
-+        struct cmsghdr *cmsg;
-+
-+        assert(mh);
-+
-+        cmsg = cmsg_find(mh, level, type, buf_len == SIZE_MAX ? (socklen_t) -1 : CMSG_LEN(buf_len));
-+        if (!cmsg)
-+                return NULL;
-+
-+        return memcpy_safe(buf, CMSG_DATA(cmsg), buf_len == SIZE_MAX ? cmsg->cmsg_len : buf_len);
-+}
-+
- int socket_ioctl_fd(void) {
-         int fd;
- 
---- a/src/journal/journald-server.c
-+++ b/src/journal/journald-server.c
-@@ -1385,7 +1385,7 @@ int server_process_datagram(
-         size_t label_len = 0, m;
-         Server *s = ASSERT_PTR(userdata);
-         struct ucred *ucred = NULL;
--        struct timeval *tv = NULL;
-+        struct timeval tv_buf, *tv = NULL;
-         struct cmsghdr *cmsg;
-         char *label = NULL;
-         struct iovec iovec;
-@@ -1461,10 +1461,10 @@ int server_process_datagram(
-                         label = CMSG_TYPED_DATA(cmsg, char);
-                         label_len = cmsg->cmsg_len - CMSG_LEN(0);
-                 } else if (cmsg->cmsg_level == SOL_SOCKET &&
--                           cmsg->cmsg_type == SO_TIMESTAMP &&
-+                           cmsg->cmsg_type == SCM_TIMESTAMP &&
-                            cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval))) {
-                         assert(!tv);
--                        tv = CMSG_TYPED_DATA(cmsg, struct timeval);
-+                        tv = memcpy(&tv_buf, CMSG_DATA(cmsg), sizeof(struct timeval));
-                 } else if (cmsg->cmsg_level == SOL_SOCKET &&
-                          cmsg->cmsg_type == SCM_RIGHTS) {
-                         assert(!fds);
---- a/src/libsystemd-network/icmp6-util.c
-+++ b/src/libsystemd-network/icmp6-util.c
-@@ -199,9 +199,11 @@ int icmp6_receive(int fd, void *buffer,
-                 }
- 
-                 if (cmsg->cmsg_level == SOL_SOCKET &&
--                    cmsg->cmsg_type == SO_TIMESTAMP &&
--                    cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval)))
--                        triple_timestamp_from_realtime(&t, timeval_load(CMSG_TYPED_DATA(cmsg, struct timeval)));
-+                    cmsg->cmsg_type == SCM_TIMESTAMP &&
-+                    cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval))) {
-+                        struct timeval *tv = memcpy(&(struct timeval) {}, CMSG_DATA(cmsg), sizeof(struct timeval));
-+                        triple_timestamp_from_realtime(&t, timeval_load(tv));
-+                }
-         }
- 
-         if (!triple_timestamp_is_set(&t))
---- a/src/libsystemd-network/sd-dhcp6-client.c
-+++ b/src/libsystemd-network/sd-dhcp6-client.c
-@@ -1276,7 +1276,6 @@ static int client_receive_message(
-                 .msg_control = &control,
-                 .msg_controllen = sizeof(control),
-         };
--        struct cmsghdr *cmsg;
-         triple_timestamp t = {};
-         _cleanup_free_ DHCP6Message *message = NULL;
-         struct in6_addr *server_address = NULL;
-@@ -1320,12 +1319,9 @@ static int client_receive_message(
-                 server_address = &sa.in6.sin6_addr;
-         }
- 
--        CMSG_FOREACH(cmsg, &msg) {
--                if (cmsg->cmsg_level == SOL_SOCKET &&
--                    cmsg->cmsg_type == SO_TIMESTAMP &&
--                    cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval)))
--                        triple_timestamp_from_realtime(&t, timeval_load(CMSG_TYPED_DATA(cmsg, struct timeval)));
--        }
-+        struct timeval *tv = CMSG_FIND_AND_COPY_DATA(&msg, SOL_SOCKET, SCM_TIMESTAMP, struct timeval);
-+        if (tv)
-+                triple_timestamp_from_realtime(&t, timeval_load(tv));
- 
-         if (client->transaction_id != (message->transaction_id & htobe32(0x00ffffff)))
-                 return 0;
---- a/src/libsystemd-network/sd-dhcp-server.c
-+++ b/src/libsystemd-network/sd-dhcp-server.c
-@@ -407,7 +407,7 @@ static int dhcp_server_send_udp(sd_dhcp_
-                    rather than binding the socket. This will be mostly useful
-                    when we gain support for arbitrary number of server addresses
-                  */
--                pktinfo = (struct in_pktinfo*) CMSG_DATA(cmsg);
-+                pktinfo = CMSG_TYPED_DATA(cmsg, struct in_pktinfo);
-                 assert(pktinfo);
- 
-                 pktinfo->ipi_ifindex = server->ifindex;
-@@ -1270,7 +1270,6 @@ static int server_receive_message(sd_eve
-                 .msg_control = &control,
-                 .msg_controllen = sizeof(control),
-         };
--        struct cmsghdr *cmsg;
-         ssize_t datagram_size, len;
-         int r;
- 
-@@ -1306,19 +1305,10 @@ static int server_receive_message(sd_eve
-         if ((size_t) len < sizeof(DHCPMessage))
-                 return 0;
- 
--        CMSG_FOREACH(cmsg, &msg)
--                if (cmsg->cmsg_level == IPPROTO_IP &&
--                    cmsg->cmsg_type == IP_PKTINFO &&
--                    cmsg->cmsg_len == CMSG_LEN(sizeof(struct in_pktinfo))) {
--                        struct in_pktinfo *info = CMSG_TYPED_DATA(cmsg, struct in_pktinfo);
--
--                        /* TODO figure out if this can be done as a filter on
--                         * the socket, like for IPv6 */
--                        if (server->ifindex != info->ipi_ifindex)
--                                return 0;
--
--                        break;
--                }
-+        /* TODO figure out if this can be done as a filter on the socket, like for IPv6 */
-+        struct in_pktinfo *info = CMSG_FIND_DATA(&msg, IPPROTO_IP, IP_PKTINFO, struct in_pktinfo);
-+        if (info && info->ipi_ifindex != server->ifindex)
-+                return 0;
- 
-         if (sd_dhcp_server_is_in_relay_mode(server)) {
-                 r = dhcp_server_relay_message(server, message, len - sizeof(DHCPMessage), buflen);
---- a/src/libsystemd/sd-daemon/sd-daemon.c
-+++ b/src/libsystemd/sd-daemon/sd-daemon.c
-@@ -567,7 +567,7 @@ _public_ int sd_pid_notify_with_fds(
-                         cmsg->cmsg_type = SCM_CREDENTIALS;
-                         cmsg->cmsg_len = CMSG_LEN(sizeof(struct ucred));
- 
--                        ucred = (struct ucred*) CMSG_DATA(cmsg);
-+                        ucred = CMSG_TYPED_DATA(cmsg, struct ucred);
-                         ucred->pid = pid != 0 ? pid : getpid_cached();
-                         ucred->uid = getuid();
-                         ucred->gid = getgid();
---- a/src/resolve/resolved-manager.c
-+++ b/src/resolve/resolved-manager.c
-@@ -984,7 +984,7 @@ static int manager_ipv4_send(
-                 cmsg->cmsg_level = IPPROTO_IP;
-                 cmsg->cmsg_type = IP_PKTINFO;
- 
--                pi = (struct in_pktinfo*) CMSG_DATA(cmsg);
-+                pi = CMSG_TYPED_DATA(cmsg, struct in_pktinfo);
-                 pi->ipi_ifindex = ifindex;
- 
-                 if (source)
-@@ -1040,7 +1040,7 @@ static int manager_ipv6_send(
-                 cmsg->cmsg_level = IPPROTO_IPV6;
-                 cmsg->cmsg_type = IPV6_PKTINFO;
- 
--                pi = (struct in6_pktinfo*) CMSG_DATA(cmsg);
-+                pi = CMSG_TYPED_DATA(cmsg, struct in6_pktinfo);
-                 pi->ipi6_ifindex = ifindex;
- 
-                 if (source)
diff --git a/poky/meta/recipes-core/systemd/systemd/27254.patch b/poky/meta/recipes-core/systemd/systemd/27254.patch
deleted file mode 100644
index 3928088..0000000
--- a/poky/meta/recipes-core/systemd/systemd/27254.patch
+++ /dev/null
@@ -1,345 +0,0 @@
-From 79dec6f5cc0b72d43dfb0469fa68b5cd023fbaf9 Mon Sep 17 00:00:00 2001
-From: Lennart Poettering <lennart@poettering.net>
-Date: Thu, 13 Apr 2023 10:21:31 +0200
-Subject: [PATCH 1/3] socket-util: tighten aignment check for CMSG_TYPED_DATA()
-
-Apparently CMSG_DATA() alignment is very much undefined. Which is quite
-an ABI fuck-up, but we need to deal with this. CMSG_TYPED_DATA() already
-checks alignment of the specified pointer. Let's also check matching
-alignment of the underlying structures, which we already can do at
-compile-time.
-
-See: #27241
-
-(This does not fix #27241, but should catch such errors already at
-compile-time instead of runtime)
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/pull/27254]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/basic/socket-util.h | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/src/basic/socket-util.h
-+++ b/src/basic/socket-util.h
-@@ -175,9 +175,16 @@ int flush_accept(int fd);
- #define CMSG_FOREACH(cmsg, mh)                                          \
-         for ((cmsg) = CMSG_FIRSTHDR(mh); (cmsg); (cmsg) = CMSG_NXTHDR((mh), (cmsg)))
- 
-+/* Returns the cmsghdr's data pointer, but safely cast to the specified type. Does two alignment checks: one
-+ * at compile time, that the requested type has a smaller or same alignment as 'struct cmsghdr', and one
-+ * during runtime, that the actual pointer matches the alignment too. This is supposed to catch cases such as
-+ * 'struct timeval' is embedded into 'struct cmsghdr' on architectures where the alignment of the former is 8
-+ * bytes (because of a 64bit time_t), but of the latter is 4 bytes (because size_t is 32bit), such as
-+ * riscv32. */
- #define CMSG_TYPED_DATA(cmsg, type)                                     \
-         ({                                                              \
-                 struct cmsghdr *_cmsg = cmsg;                           \
-+                assert_cc(__alignof__(type) <= __alignof__(struct cmsghdr)); \
-                 _cmsg ? CAST_ALIGN_PTR(type, CMSG_DATA(_cmsg)) : (type*) NULL; \
-         })
- 
---- a/src/basic/socket-util.c
-+++ b/src/basic/socket-util.c
-@@ -1047,7 +1047,7 @@ ssize_t receive_one_fd_iov(
-         }
- 
-         if (found)
--                *ret_fd = *(int*) CMSG_DATA(found);
-+                *ret_fd = *CMSG_TYPED_DATA(found, int);
-         else
-                 *ret_fd = -EBADF;
- 
---- a/src/core/manager.c
-+++ b/src/core/manager.c
-@@ -2503,7 +2503,7 @@ static int manager_dispatch_notify_fd(sd
-                 if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_RIGHTS) {
- 
-                         assert(!fd_array);
--                        fd_array = (int*) CMSG_DATA(cmsg);
-+                        fd_array = CMSG_TYPED_DATA(cmsg, int);
-                         n_fds = (cmsg->cmsg_len - CMSG_LEN(0)) / sizeof(int);
- 
-                 } else if (cmsg->cmsg_level == SOL_SOCKET &&
-@@ -2511,7 +2511,7 @@ static int manager_dispatch_notify_fd(sd
-                            cmsg->cmsg_len == CMSG_LEN(sizeof(struct ucred))) {
- 
-                         assert(!ucred);
--                        ucred = (struct ucred*) CMSG_DATA(cmsg);
-+                        ucred = CMSG_TYPED_DATA(cmsg, struct ucred);
-                 }
-         }
- 
---- a/src/coredump/coredump.c
-+++ b/src/coredump/coredump.c
-@@ -1163,7 +1163,7 @@ static int process_socket(int fd) {
-                         }
- 
-                         assert(input_fd < 0);
--                        input_fd = *(int*) CMSG_DATA(found);
-+                        input_fd = *CMSG_TYPED_DATA(found, int);
-                         break;
-                 } else
-                         cmsg_close_all(&mh);
---- a/src/home/homed-manager.c
-+++ b/src/home/homed-manager.c
-@@ -1086,7 +1086,7 @@ static ssize_t read_datagram(
-                     cmsg->cmsg_type == SCM_CREDENTIALS &&
-                     cmsg->cmsg_len == CMSG_LEN(sizeof(struct ucred))) {
-                         assert(!sender);
--                        sender = (struct ucred*) CMSG_DATA(cmsg);
-+                        sender = CMSG_TYPED_DATA(cmsg, struct ucred);
-                 }
- 
-                 if (cmsg->cmsg_level == SOL_SOCKET &&
-@@ -1098,7 +1098,7 @@ static ssize_t read_datagram(
-                         }
- 
-                         assert(passed_fd < 0);
--                        passed_fd = *(int*) CMSG_DATA(cmsg);
-+                        passed_fd = *CMSG_TYPED_DATA(cmsg, int);
-                 }
-         }
- 
---- a/src/journal/journald-server.c
-+++ b/src/journal/journald-server.c
-@@ -1454,21 +1454,21 @@ int server_process_datagram(
-                     cmsg->cmsg_type == SCM_CREDENTIALS &&
-                     cmsg->cmsg_len == CMSG_LEN(sizeof(struct ucred))) {
-                         assert(!ucred);
--                        ucred = (struct ucred*) CMSG_DATA(cmsg);
-+                        ucred = CMSG_TYPED_DATA(cmsg, struct ucred);
-                 } else if (cmsg->cmsg_level == SOL_SOCKET &&
-                          cmsg->cmsg_type == SCM_SECURITY) {
-                         assert(!label);
--                        label = (char*) CMSG_DATA(cmsg);
-+                        label = CMSG_TYPED_DATA(cmsg, char);
-                         label_len = cmsg->cmsg_len - CMSG_LEN(0);
-                 } else if (cmsg->cmsg_level == SOL_SOCKET &&
-                            cmsg->cmsg_type == SO_TIMESTAMP &&
-                            cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval))) {
-                         assert(!tv);
--                        tv = (struct timeval*) CMSG_DATA(cmsg);
-+                        tv = CMSG_TYPED_DATA(cmsg, struct timeval);
-                 } else if (cmsg->cmsg_level == SOL_SOCKET &&
-                          cmsg->cmsg_type == SCM_RIGHTS) {
-                         assert(!fds);
--                        fds = (int*) CMSG_DATA(cmsg);
-+                        fds = CMSG_TYPED_DATA(cmsg, int);
-                         n_fds = (cmsg->cmsg_len - CMSG_LEN(0)) / sizeof(int);
-                 }
- 
---- a/src/libsystemd-network/icmp6-util.c
-+++ b/src/libsystemd-network/icmp6-util.c
-@@ -192,7 +192,7 @@ int icmp6_receive(int fd, void *buffer,
-                 if (cmsg->cmsg_level == SOL_IPV6 &&
-                     cmsg->cmsg_type == IPV6_HOPLIMIT &&
-                     cmsg->cmsg_len == CMSG_LEN(sizeof(int))) {
--                        int hops = *(int*) CMSG_DATA(cmsg);
-+                        int hops = *CMSG_TYPED_DATA(cmsg, int);
- 
-                         if (hops != 255)
-                                 return -EMULTIHOP;
-@@ -201,7 +201,7 @@ int icmp6_receive(int fd, void *buffer,
-                 if (cmsg->cmsg_level == SOL_SOCKET &&
-                     cmsg->cmsg_type == SO_TIMESTAMP &&
-                     cmsg->cmsg_len == CMSG_LEN(sizeof(struct timeval)))
--                        triple_timestamp_from_realtime(&t, timeval_load((struct timeval*) CMSG_DATA(cmsg)));
-+                        triple_timestamp_from_realtime(&t, timeval_load(CMSG_TYPED_DATA(cmsg, struct timeval)));
-         }
- 
-         if (!triple_timestamp_is_set(&t))
---- a/src/libsystemd-network/sd-dhcp-client.c
-+++ b/src/libsystemd-network/sd-dhcp-client.c
-@@ -1981,7 +1981,7 @@ static int client_receive_message_raw(
- 
-         cmsg = cmsg_find(&msg, SOL_PACKET, PACKET_AUXDATA, CMSG_LEN(sizeof(struct tpacket_auxdata)));
-         if (cmsg) {
--                struct tpacket_auxdata *aux = (struct tpacket_auxdata*) CMSG_DATA(cmsg);
-+                struct tpacket_auxdata *aux = CMSG_TYPED_DATA(cmsg, struct tpacket_auxdata);
-                 checksum = !(aux->tp_status & TP_STATUS_CSUMNOTREADY);
-         }
- 
---- a/src/libsystemd-network/sd-dhcp-server.c
-+++ b/src/libsystemd-network/sd-dhcp-server.c
-@@ -1310,7 +1310,7 @@ static int server_receive_message(sd_eve
-                 if (cmsg->cmsg_level == IPPROTO_IP &&
-                     cmsg->cmsg_type == IP_PKTINFO &&
-                     cmsg->cmsg_len == CMSG_LEN(sizeof(struct in_pktinfo))) {
--                        struct in_pktinfo *info = (struct in_pktinfo*)CMSG_DATA(cmsg);
-+                        struct in_pktinfo *info = CMSG_TYPED_DATA(cmsg, struct in_pktinfo);
- 
-                         /* TODO figure out if this can be done as a filter on
-                          * the socket, like for IPv6 */
---- a/src/libsystemd/sd-bus/bus-socket.c
-+++ b/src/libsystemd/sd-bus/bus-socket.c
-@@ -604,7 +604,7 @@ static int bus_socket_read_auth(sd_bus *
-                                  * protocol? Somebody is playing games with
-                                  * us. Close them all, and fail */
-                                 j = (cmsg->cmsg_len - CMSG_LEN(0)) / sizeof(int);
--                                close_many((int*) CMSG_DATA(cmsg), j);
-+                                close_many(CMSG_TYPED_DATA(cmsg, int), j);
-                                 return -EIO;
-                         } else
-                                 log_debug("Got unexpected auxiliary data with level=%d and type=%d",
-@@ -1270,18 +1270,18 @@ int bus_socket_read_message(sd_bus *bus)
-                                          * isn't actually enabled? Close them,
-                                          * and fail */
- 
--                                        close_many((int*) CMSG_DATA(cmsg), n);
-+                                        close_many(CMSG_TYPED_DATA(cmsg, int), n);
-                                         return -EIO;
-                                 }
- 
-                                 f = reallocarray(bus->fds, bus->n_fds + n, sizeof(int));
-                                 if (!f) {
--                                        close_many((int*) CMSG_DATA(cmsg), n);
-+                                        close_many(CMSG_TYPED_DATA(cmsg, int), n);
-                                         return -ENOMEM;
-                                 }
- 
-                                 for (i = 0; i < n; i++)
--                                        f[bus->n_fds++] = fd_move_above_stdio(((int*) CMSG_DATA(cmsg))[i]);
-+                                        f[bus->n_fds++] = fd_move_above_stdio(CMSG_TYPED_DATA(cmsg, int)[i]);
-                                 bus->fds = f;
-                         } else
-                                 log_debug("Got unexpected auxiliary data with level=%d and type=%d",
---- a/src/resolve/resolved-dns-stream.c
-+++ b/src/resolve/resolved-dns-stream.c
-@@ -147,7 +147,7 @@ static int dns_stream_identify(DnsStream
-                         switch (cmsg->cmsg_type) {
- 
-                         case IPV6_PKTINFO: {
--                                struct in6_pktinfo *i = (struct in6_pktinfo*) CMSG_DATA(cmsg);
-+                                struct in6_pktinfo *i = CMSG_TYPED_DATA(cmsg, struct in6_pktinfo);
- 
-                                 if (s->ifindex <= 0)
-                                         s->ifindex = i->ipi6_ifindex;
-@@ -155,7 +155,7 @@ static int dns_stream_identify(DnsStream
-                         }
- 
-                         case IPV6_HOPLIMIT:
--                                s->ttl = *(int *) CMSG_DATA(cmsg);
-+                                s->ttl = *CMSG_TYPED_DATA(cmsg, int);
-                                 break;
-                         }
- 
-@@ -165,7 +165,7 @@ static int dns_stream_identify(DnsStream
-                         switch (cmsg->cmsg_type) {
- 
-                         case IP_PKTINFO: {
--                                struct in_pktinfo *i = (struct in_pktinfo*) CMSG_DATA(cmsg);
-+                                struct in_pktinfo *i = CMSG_TYPED_DATA(cmsg, struct in_pktinfo);
- 
-                                 if (s->ifindex <= 0)
-                                         s->ifindex = i->ipi_ifindex;
-@@ -173,7 +173,7 @@ static int dns_stream_identify(DnsStream
-                         }
- 
-                         case IP_TTL:
--                                s->ttl = *(int *) CMSG_DATA(cmsg);
-+                                s->ttl = *CMSG_TYPED_DATA(cmsg, int);
-                                 break;
-                         }
-                 }
---- a/src/resolve/resolved-manager.c
-+++ b/src/resolve/resolved-manager.c
-@@ -801,7 +801,7 @@ int manager_recv(Manager *m, int fd, Dns
-                         switch (cmsg->cmsg_type) {
- 
-                         case IPV6_PKTINFO: {
--                                struct in6_pktinfo *i = (struct in6_pktinfo*) CMSG_DATA(cmsg);
-+                                struct in6_pktinfo *i = CMSG_TYPED_DATA(cmsg, struct in6_pktinfo);
- 
-                                 if (p->ifindex <= 0)
-                                         p->ifindex = i->ipi6_ifindex;
-@@ -811,11 +811,11 @@ int manager_recv(Manager *m, int fd, Dns
-                         }
- 
-                         case IPV6_HOPLIMIT:
--                                p->ttl = *(int *) CMSG_DATA(cmsg);
-+                                p->ttl = *CMSG_TYPED_DATA(cmsg, int);
-                                 break;
- 
-                         case IPV6_RECVFRAGSIZE:
--                                p->fragsize = *(int *) CMSG_DATA(cmsg);
-+                                p->fragsize = *CMSG_TYPED_DATA(cmsg, int);
-                                 break;
-                         }
-                 } else if (cmsg->cmsg_level == IPPROTO_IP) {
-@@ -824,7 +824,7 @@ int manager_recv(Manager *m, int fd, Dns
-                         switch (cmsg->cmsg_type) {
- 
-                         case IP_PKTINFO: {
--                                struct in_pktinfo *i = (struct in_pktinfo*) CMSG_DATA(cmsg);
-+                                struct in_pktinfo *i = CMSG_TYPED_DATA(cmsg, struct in_pktinfo);
- 
-                                 if (p->ifindex <= 0)
-                                         p->ifindex = i->ipi_ifindex;
-@@ -834,11 +834,11 @@ int manager_recv(Manager *m, int fd, Dns
-                         }
- 
-                         case IP_TTL:
--                                p->ttl = *(int *) CMSG_DATA(cmsg);
-+                                p->ttl = *CMSG_TYPED_DATA(cmsg, int);
-                                 break;
- 
-                         case IP_RECVFRAGSIZE:
--                                p->fragsize = *(int *) CMSG_DATA(cmsg);
-+                                p->fragsize = *CMSG_TYPED_DATA(cmsg, int);
-                                 break;
-                         }
-                 }
---- a/src/libsystemd/sd-device/device-monitor.c
-+++ b/src/libsystemd/sd-device/device-monitor.c
-@@ -503,7 +503,6 @@ int device_monitor_receive_device(sd_dev
-                 .msg_name = &snl,
-                 .msg_namelen = sizeof(snl),
-         };
--        struct cmsghdr *cmsg;
-         struct ucred *cred;
-         size_t offset;
-         ssize_t n;
-@@ -559,12 +558,11 @@ int device_monitor_receive_device(sd_dev
-                                                  snl.nl.nl_pid);
-         }
- 
--        cmsg = CMSG_FIRSTHDR(&smsg);
--        if (!cmsg || cmsg->cmsg_type != SCM_CREDENTIALS)
-+        cred = CMSG_FIND_DATA(&smsg, SOL_SOCKET, SCM_CREDENTIALS, struct ucred);
-+        if (!cred)
-                 return log_monitor_errno(m, SYNTHETIC_ERRNO(EAGAIN),
-                                          "No sender credentials received, ignoring message.");
- 
--        cred = (struct ucred*) CMSG_DATA(cmsg);
-         if (!check_sender_uid(m, cred->uid))
-                 return log_monitor_errno(m, SYNTHETIC_ERRNO(EAGAIN),
-                                          "Sender uid="UID_FMT", message ignored.", cred->uid);
---- a/src/udev/udev-ctrl.c
-+++ b/src/udev/udev-ctrl.c
-@@ -161,7 +161,6 @@ static int udev_ctrl_connection_event_ha
-                 .msg_control = &control,
-                 .msg_controllen = sizeof(control),
-         };
--        struct cmsghdr *cmsg;
-         struct ucred *cred;
-         ssize_t size;
- 
-@@ -185,15 +184,12 @@ static int udev_ctrl_connection_event_ha
- 
-         cmsg_close_all(&smsg);
- 
--        cmsg = CMSG_FIRSTHDR(&smsg);
--
--        if (!cmsg || cmsg->cmsg_type != SCM_CREDENTIALS) {
-+        cred = CMSG_FIND_DATA(&smsg, SOL_SOCKET, SCM_CREDENTIALS, struct ucred);
-+        if (!cred) {
-                 log_error("No sender credentials received, ignoring message");
-                 return 0;
-         }
- 
--        cred = (struct ucred *) CMSG_DATA(cmsg);
--
-         if (cred->uid != 0) {
-                 log_error("Invalid sender uid "UID_FMT", ignoring message", cred->uid);
-                 return 0;
diff --git a/poky/meta/recipes-core/systemd/systemd_253.3.bb b/poky/meta/recipes-core/systemd/systemd_254.bb
similarity index 96%
rename from poky/meta/recipes-core/systemd/systemd_253.3.bb
rename to poky/meta/recipes-core/systemd/systemd_254.bb
index cf0e17f..f48f8c0 100644
--- a/poky/meta/recipes-core/systemd/systemd_253.3.bb
+++ b/poky/meta/recipes-core/systemd/systemd_254.bb
@@ -10,9 +10,13 @@
 
 inherit useradd pkgconfig meson perlnative update-rc.d update-alternatives qemu systemd gettext bash-completion manpages features_check
 
+# unmerged-usr support is deprecated upstream, taints the system and will be
+# removed in the near future. Fail the build if it is not enabled.
+REQUIRED_DISTRO_FEATURES += "usrmerge"
+
 # As this recipe builds udev, respect systemd being in DISTRO_FEATURES so
 # that we don't build both udev and systemd in world builds.
-REQUIRED_DISTRO_FEATURES = "systemd"
+REQUIRED_DISTRO_FEATURES += "systemd"
 
 SRC_URI += " \
            file://touchscreen.rules \
@@ -26,8 +30,6 @@
            file://0002-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
            file://0008-implment-systemd-sysv-install-for-OE.patch \
            file://0004-Move-sysusers.d-sysctl.d-binfmt.d-modules-load.d-to-.patch \
-           file://27254.patch \
-           file://27253.patch \
            "
 
 # patches needed by musl
@@ -39,7 +41,6 @@
                file://0012-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
                file://0013-add-missing-FTW_-macros-for-musl.patch \
                file://0014-Use-uintmax_t-for-handling-rlim_t.patch \
-               file://0015-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
                file://0016-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
                file://0017-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
                file://0018-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
@@ -53,6 +54,11 @@
                file://0001-Adjust-for-musl-headers.patch \
                file://0006-test-bus-error-strerror-is-assumed-to-be-GNU-specifi.patch \
                file://0003-errno-util-Make-STRERROR-portable-for-musl.patch \
+               file://0025-include-sys-file.h-for-LOCK_EX.patch \
+               file://0026-test-test-sizeof-Include-sys-timex.h-for-struct-time.patch \
+               file://0027-include-missing-sys-file.h-for-LOCK_EX.patch \
+               file://0028-sd-event-Make-malloc_trim-conditional-on-glibc.patch \
+               file://0029-shared-Do-not-use-malloc_info-on-musl.patch \
                "
 
 PAM_PLUGINS = " \
@@ -140,8 +146,7 @@
 PACKAGECONFIG[default-compression-xz] = "-Dxz=true -Ddefault-compression=xz,,xz"
 PACKAGECONFIG[default-compression-zstd] = "-Dzstd=true -Ddefault-compression=zstd,,zstd"
 PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus"
-PACKAGECONFIG[efi] = "-Defi=true,-Defi=false"
-PACKAGECONFIG[gnu-efi] = "-Dgnu-efi=true -Defi-libdir=${STAGING_LIBDIR} -Defi-includedir=${STAGING_INCDIR}/efi,-Dgnu-efi=false,gnu-efi"
+PACKAGECONFIG[efi] = "-Defi=true -Dbootloader=true,-Defi=false -Dbootloader=false,python3-pyelftools"
 PACKAGECONFIG[elfutils] = "-Delfutils=true,-Delfutils=false,elfutils"
 PACKAGECONFIG[firstboot] = "-Dfirstboot=true,-Dfirstboot=false"
 PACKAGECONFIG[repart] = "-Drepart=true,-Drepart=false"
@@ -158,6 +163,7 @@
 PACKAGECONFIG[importd] = "-Dimportd=true,-Dimportd=false,glib-2.0"
 # Update NAT firewall rules
 PACKAGECONFIG[iptc] = "-Dlibiptc=true,-Dlibiptc=false,iptables"
+PACKAGECONFIG[journal-color] = ",,,less"
 PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
 PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod"
 PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig"
@@ -240,7 +246,9 @@
                   -Dsystem-gid-max=999 \
                   "
 
-# Hardcode target binary paths to avoid using paths from sysroot
+# Hardcode target binary paths to avoid using paths from sysroot or worse
+# it pokes for these binaries on build host and encodes that distro assumption
+# into target
 EXTRA_OEMESON += "-Dkexec-path=${sbindir}/kexec \
                   -Dkmod-path=${base_bindir}/kmod \
                   -Dmount-path=${base_bindir}/mount \
@@ -248,7 +256,9 @@
                   -Dquotaon-path=${sbindir}/quotaon \
                   -Dsulogin-path=${base_sbindir}/sulogin \
                   -Dnologin-path=${base_sbindir}/nologin \
-                  -Dumount-path=${base_bindir}/umount"
+                  -Dumount-path=${base_bindir}/umount \
+                  -Dloadkeys-path=${bindir}/loadkeys \
+                  -Dsetfont-path=${bindir}/setfont"
 
 # The 60 seconds is watchdog's default vaule.
 WATCHDOG_TIMEOUT ??= "60"
@@ -424,7 +434,7 @@
                     ${@bb.utils.contains('PACKAGECONFIG', 'journal-upload', '${PN}-journal-upload', '', d)} \
 "
 GROUPADD_PARAM:${PN} = "-r systemd-journal;"
-GROUPADD_PARAM:udev = "-r render;-r sgx;"
+GROUPADD_PARAM:udev = "-r render"
 GROUPADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'polkit_hostnamed_fallback', '-r systemd-hostname;', '', d)}"
 USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'coredump', '--system -d / -M --shell /sbin/nologin systemd-coredump;', '', d)}"
 USERADD_PARAM:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'networkd', '--system -d / -M --shell /sbin/nologin systemd-network;', '', d)}"
@@ -552,6 +562,7 @@
                         ${bindir}/systemd-stdio-bridge \
                         ${base_bindir}/systemd-ask-password \
                         ${base_bindir}/systemd-tty-ask-password-agent \
+                        ${base_sbindir}/mount.ddi \
                         ${systemd_system_unitdir}/initrd.target.wants/systemd-pcrphase-initrd.path \
                         ${systemd_system_unitdir}/systemd-ask-password-console.path \
                         ${systemd_system_unitdir}/systemd-ask-password-console.service \
@@ -622,6 +633,8 @@
                 ${datadir}/polkit-1 \
                 ${datadir}/${BPN} \
                 ${datadir}/factory \
+                ${sysconfdir}/credstore/ \
+                ${sysconfdir}/credstore.encrypted/ \
                 ${sysconfdir}/dbus-1/ \
                 ${sysconfdir}/modules-load.d/ \
                 ${sysconfdir}/pam.d/ \
@@ -650,6 +663,7 @@
                 ${bindir}/bootctl \
                 ${bindir}/oomctl \
                 ${bindir}/userdbctl \
+                ${exec_prefix}/lib/credstore \
                 ${exec_prefix}/lib/tmpfiles.d/*.conf \
                 ${exec_prefix}/lib/systemd \
                 ${exec_prefix}/lib/modules-load.d \
@@ -675,7 +689,7 @@
 
 FILES:${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
 
-RDEPENDS:${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) systemd-udev-rules util-linux-agetty util-linux-fsck"
+RDEPENDS:${PN} += "kmod dbus util-linux-mount util-linux-umount udev (= ${EXTENDPKGV}) systemd-udev-rules util-linux-agetty util-linux-fsck util-linux-swaponoff"
 RDEPENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'serial-getty-generator', '', 'systemd-serialgetty', d)}"
 RDEPENDS:${PN} += "volatile-binds"
 
@@ -685,6 +699,7 @@
                       kernel-module-autofs4 kernel-module-unix kernel-module-ipv6 kernel-module-sch-fq-codel \
                       os-release \
                       systemd-conf \
+                      ${@bb.utils.contains('PACKAGECONFIG', 'logind', 'pam-plugin-umask', '', d)} \
 "
 
 INSANE_SKIP:${PN} += "dev-so libdir"
@@ -708,6 +723,7 @@
                ${rootlibexecdir}/udev/dmi_memory_id \
                ${rootlibexecdir}/udev/fido_id \
                ${rootlibexecdir}/udev/findkeyboards \
+               ${rootlibexecdir}/udev/iocost \
                ${rootlibexecdir}/udev/keyboard-force-release.sh \
                ${rootlibexecdir}/udev/keymap \
                ${rootlibexecdir}/udev/mtd_probe \
@@ -719,6 +735,7 @@
                ${rootlibexecdir}/udev/rules.d/60-autosuspend-chromiumos.rules \
                ${rootlibexecdir}/udev/rules.d/60-block.rules \
                ${rootlibexecdir}/udev/rules.d/60-cdrom_id.rules \
+               ${rootlibexecdir}/udev/rules.d/60-dmi-id.rules \
                ${rootlibexecdir}/udev/rules.d/60-drm.rules \
                ${rootlibexecdir}/udev/rules.d/60-evdev.rules \
                ${rootlibexecdir}/udev/rules.d/60-fido-id.rules \
@@ -746,6 +763,7 @@
                ${rootlibexecdir}/udev/rules.d/80-net-setup-link.rules \
                ${rootlibexecdir}/udev/rules.d/81-net-dhcp.rules \
                ${rootlibexecdir}/udev/rules.d/90-vconsole.rules \
+               ${rootlibexecdir}/udev/rules.d/90-iocost.rules \
                ${rootlibexecdir}/udev/rules.d/README \
                ${sysconfdir}/udev \
                ${sysconfdir}/init.d/systemd-udevd \
diff --git a/poky/meta/recipes-core/udev/eudev_3.2.12.bb b/poky/meta/recipes-core/udev/eudev_3.2.12.bb
index 4268bcc..572ccec 100644
--- a/poky/meta/recipes-core/udev/eudev_3.2.12.bb
+++ b/poky/meta/recipes-core/udev/eudev_3.2.12.bb
@@ -18,7 +18,7 @@
 
 GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases"
 
-inherit autotools update-rc.d qemu pkgconfig features_check manpages github-releases useradd
+inherit autotools update-rc.d qemu pkgconfig features_check manpages github-releases
 
 CONFLICT_DISTRO_FEATURES = "systemd"
 
@@ -85,6 +85,3 @@
 pkg_prerm:${PN}-hwdb () {
 	rm -f $D${sysconfdir}/udev/hwdb.bin
 }
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM:${PN} = "-r sgx"
diff --git a/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.38.1.bb b/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.1.bb
similarity index 100%
rename from poky/meta/recipes-core/util-linux/util-linux-libuuid_2.38.1.bb
rename to poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.1.bb
diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc
index 3868b1c..99ce2a2 100644
--- a/poky/meta/recipes-core/util-linux/util-linux.inc
+++ b/poky/meta/recipes-core/util-linux/util-linux.inc
@@ -6,13 +6,13 @@
 
 SECTION = "base"
 
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & BSD-3-Clause & BSD-4-Clause"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause"
 LICENSE:${PN}-libblkid = "LGPL-2.1-or-later"
 LICENSE:${PN}-libfdisk = "LGPL-2.1-or-later"
 LICENSE:${PN}-libmount = "LGPL-2.1-or-later"
 LICENSE:${PN}-libsmartcols = "LGPL-2.1-or-later"
 
-LIC_FILES_CHKSUM = "file://README.licensing;md5=0fd5c050c6187d2bf0a4492b7f4e33da \
+LIC_FILES_CHKSUM = "file://README.licensing;md5=12ae7768a65ec8f2e44d930df9cb43fa \
                     file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c \
@@ -23,7 +23,7 @@
                     file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
                     file://libfdisk/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
                     file://libsmartcols/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
-"
+                    "
 
 FILESEXTRAPATHS:prepend := "${THISDIR}/util-linux:"
 MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
@@ -35,8 +35,6 @@
            file://run-ptest \
            file://display_testname_for_subtest.patch \
            file://avoid_parallel_tests.patch \
-           file://0001-check-for-sys-pidfd.h.patch \
-           file://0001-configure.ac-Improve-check-for-magic.patch \
            "
 
-SRC_URI[sha256sum] = "60492a19b44e6cf9a3ddff68325b333b8b52b6c59ce3ebd6a0ecaa4c5117e84f"
+SRC_URI[sha256sum] = "890ae8ff810247bd19e274df76e8371d202cda01ad277681b0ea88eeaa00286b"
diff --git a/poky/meta/recipes-core/util-linux/util-linux/0001-check-for-sys-pidfd.h.patch b/poky/meta/recipes-core/util-linux/util-linux/0001-check-for-sys-pidfd.h.patch
deleted file mode 100644
index 19f57f1..0000000
--- a/poky/meta/recipes-core/util-linux/util-linux/0001-check-for-sys-pidfd.h.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 548bc568f3c735e53fb5b0a5ab6473a3f1457b91 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 7 Aug 2022 14:39:19 -0700
-Subject: [PATCH] check for sys/pidfd.h
-
-This header in newer glibc defines the signatures of functions
-pidfd_send_signal() and pidfd_open() and when these functions are
-defined by libc then we need to include the relevant header to get
-the definitions. Clang 15+ has started to error out when function
-signatures are missing.
-
-Fixes errors like
-misc-utils/kill.c:402:6: error: call to undeclared function 'pidfd_send_signal'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
-        if (pidfd_send_signal(pfd, ctl->numsig, &info, 0) < 0)
-
-Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/1769]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac          | 1 +
- include/pidfd-utils.h | 4 +++-
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index a511e93de..fd7d9245f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -342,6 +342,7 @@ AC_CHECK_HEADERS([ \
- 	sys/mkdev.h \
- 	sys/mount.h \
- 	sys/param.h \
-+	sys/pidfd.h \
- 	sys/prctl.h \
- 	sys/resource.h \
- 	sys/sendfile.h \
-diff --git a/include/pidfd-utils.h b/include/pidfd-utils.h
-index eddede976..d9e33cbc5 100644
---- a/include/pidfd-utils.h
-+++ b/include/pidfd-utils.h
-@@ -4,8 +4,10 @@
- #ifdef HAVE_SYS_SYSCALL_H
- # include <sys/syscall.h>
- # if defined(SYS_pidfd_send_signal) && defined(SYS_pidfd_open)
-+#  ifdef HAVE_SYS_PIDFD_H
-+#   include <sys/pidfd.h>
-+#  endif
- #  include <sys/types.h>
--
- #  ifndef HAVE_PIDFD_SEND_SIGNAL
- static inline int pidfd_send_signal(int pidfd, int sig, siginfo_t *info,
- 				    unsigned int flags)
--- 
-2.37.1
-
diff --git a/poky/meta/recipes-core/util-linux/util-linux/0001-configure.ac-Improve-check-for-magic.patch b/poky/meta/recipes-core/util-linux/util-linux/0001-configure.ac-Improve-check-for-magic.patch
deleted file mode 100644
index 00611fe..0000000
--- a/poky/meta/recipes-core/util-linux/util-linux/0001-configure.ac-Improve-check-for-magic.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 263381ddd46eea2293c70bc811273b66bc52087b Mon Sep 17 00:00:00 2001
-From: Mateusz Marciniec <mateuszmar2@gmail.com>
-Date: Fri, 19 Aug 2022 14:47:49 +0200
-Subject: [PATCH] configure.ac: Improve check for magic
-
-Check whether magic.h header exists before defining HAVE_MAGIC.
-
-Despite library availability there still can be missing header.
-Current test doesn't cover that possibility which will lead compilation
-to fail in case of separate sysroot.
-
-Upstream-Status: Backport
-[https://github.com/util-linux/util-linux/commit/263381ddd46eea2293c70bc811273b66bc52087b]
-
-Signed-off-by: Mateusz Marciniec <mateuszmar2@gmail.com>
-Signed-off-by: Tomasz Dziendzielski <tomasz.dziendzielski@gmail.com>
----
- configure.ac | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index daa8f0dca..968a0daf0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1570,8 +1570,10 @@ AC_ARG_WITH([libmagic],
- )
- AS_IF([test "x$with_libmagic" = xno], [have_magic=no], [
-   AC_CHECK_LIB([magic], [magic_open], [
--    AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.])
--    MAGIC_LIBS="-lmagic"
-+    AC_CHECK_HEADER(magic.h, [
-+      AC_DEFINE([HAVE_MAGIC], [1], [Define to 1 if you have the libmagic present.])
-+      MAGIC_LIBS="-lmagic"
-+    ])
-   ])
- ])
- AC_SUBST([MAGIC_LIBS])
--- 
-2.37.1
-
diff --git a/poky/meta/recipes-core/util-linux/util-linux/run-ptest b/poky/meta/recipes-core/util-linux/util-linux/run-ptest
index 097107c..7b6b1d1 100644
--- a/poky/meta/recipes-core/util-linux/util-linux/run-ptest
+++ b/poky/meta/recipes-core/util-linux/util-linux/run-ptest
@@ -16,7 +16,15 @@
 # losetup tests will be skipped and/or fail otherwise
 modprobe loop
 
-./tests/run.sh --use-system-commands --parsable --show-diff | sed -u '{
+# required for mount/fallback test to pass
+# systemd does this by default, but ptest images do not use it
+# see https://man7.org/linux/man-pages/man7/mount_namespaces.7.html
+# for a long description of mount namespaces in Linux
+mount --make-shared /
+
+# lsfd/option-inet has races in the test script:
+# https://github.com/util-linux/util-linux/issues/2399
+./tests/run.sh --use-system-commands --parsable --show-diff --exclude=lsfd/option-inet | sed -u '{
       s/^\(.*\):\(.*\) \.\.\. OK$/PASS: \1:\2/                              
       s/^\(.*\):\(.*\) \.\.\. FAILED \(.*\)$/FAIL: \1:\2 \3/                
       s/^\(.*\):\(.*\) \.\.\. SKIPPED \(.*\)$/SKIP: \1:\2 \3/               
diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.38.1.bb b/poky/meta/recipes-core/util-linux/util-linux_2.39.1.bb
similarity index 100%
rename from poky/meta/recipes-core/util-linux/util-linux_2.38.1.bb
rename to poky/meta/recipes-core/util-linux/util-linux_2.39.1.bb
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch b/poky/meta/recipes-devtools/autoconf/autoconf/0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch
deleted file mode 100644
index 4f15bf9..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 7a3bbca81b803ba116b83c82de378e840cc35f81 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Thu, 1 Sep 2022 16:19:50 -0500
-Subject: [PATCH] Port to compilers that moan about K&R func decls
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* lib/autoconf/c.m4 (AC_LANG_CALL, AC_LANG_FUNC_LINK_TRY):
-Use '(void)' rather than '()' in function prototypes, as the latter
-provokes fatal errors in some compilers nowadays.
-* lib/autoconf/functions.m4 (AC_FUNC_STRTOD):
-* tests/fortran.at (AC_F77_DUMMY_MAIN usage):
-* tests/semantics.at (AC_CHECK_DECLS):
-Don’t use () in a function decl.
-
-Upstream-Status: Backport [https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=8b5e2016c7ed2d67f31b03a3d2e361858ff5299b]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doc/autoconf.texi         | 7 +++----
- lib/autoconf/c.m4         | 6 +++---
- lib/autoconf/functions.m4 | 3 ---
- tests/fortran.at          | 8 ++++----
- tests/semantics.at        | 2 +-
- 5 files changed, 11 insertions(+), 15 deletions(-)
-
---- a/doc/autoconf.texi
-+++ b/doc/autoconf.texi
-@@ -5465,9 +5465,7 @@ the @samp{#undef malloc}):
- #include <config.h>
- #undef malloc
- 
--#include <sys/types.h>
--
--void *malloc ();
-+#include <stdlib.h>
- 
- /* Allocate an N-byte block of memory from the heap.
-    If N is zero, allocate a 1-byte block.  */
-@@ -8295,7 +8293,7 @@ needed:
- #  ifdef __cplusplus
-      extern "C"
- #  endif
--   int F77_DUMMY_MAIN () @{ return 1; @}
-+   int F77_DUMMY_MAIN (void) @{ return 1; @}
- #endif
- @end example
- 
---- a/lib/autoconf/c.m4
-+++ b/lib/autoconf/c.m4
-@@ -127,7 +127,7 @@ m4_if([$2], [main], ,
- [/* Override any GCC internal prototype to avoid an error.
-    Use char because int might match the return type of a GCC
-    builtin and then its argument prototype would still apply.  */
--char $2 ();])], [return $2 ();])])
-+char $2 (void);])], [return $2 ();])])
- 
- 
- # AC_LANG_FUNC_LINK_TRY(C)(FUNCTION)
-@@ -151,7 +151,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)],
- #define $1 innocuous_$1
- 
- /* System header to define __stub macros and hopefully few prototypes,
--   which can conflict with char $1 (); below.  */
-+   which can conflict with char $1 (void); below.  */
- 
- #include <limits.h>
- #undef $1
-@@ -162,7 +162,7 @@ m4_define([AC_LANG_FUNC_LINK_TRY(C)],
- #ifdef __cplusplus
- extern "C"
- #endif
--char $1 ();
-+char $1 (void);
- /* The GNU C library defines this for functions which it implements
-     to always fail with ENOSYS.  Some functions are actually named
-     something starting with __ and the normal name is an alias.  */
---- a/lib/autoconf/functions.m4
-+++ b/lib/autoconf/functions.m4
-@@ -1601,9 +1601,6 @@ AC_DEFUN([AC_FUNC_STRTOD],
- AC_CACHE_CHECK(for working strtod, ac_cv_func_strtod,
- [AC_RUN_IFELSE([AC_LANG_SOURCE([[
- ]AC_INCLUDES_DEFAULT[
--#ifndef strtod
--double strtod ();
--#endif
- int
- main (void)
- {
---- a/tests/fortran.at
-+++ b/tests/fortran.at
-@@ -233,7 +233,7 @@ void FOOBAR_F77 (double *x, double *y);
- #  ifdef __cplusplus
-      extern "C"
- #  endif
--   int F77_DUMMY_MAIN () { return 1; }
-+   int F77_DUMMY_MAIN (void) { return 1; }
- #endif
- 
- int main(int argc, char *argv[])
-@@ -315,7 +315,7 @@ void FOOBAR_FC(double *x, double *y);
- #  ifdef __cplusplus
-      extern "C"
- #  endif
--   int FC_DUMMY_MAIN () { return 1; }
-+   int FC_DUMMY_MAIN (void) { return 1; }
- #endif
- 
- int main (int argc, char *argv[])
-@@ -561,7 +561,7 @@ void @foobar@ (int *x);
- #  ifdef __cplusplus
-      extern "C"
- #  endif
--   int F77_DUMMY_MAIN () { return 1; }
-+   int F77_DUMMY_MAIN (void) { return 1; }
- #endif
- 
- int main(int argc, char *argv[])
-@@ -637,7 +637,7 @@ void @foobar@ (int *x);
- #  ifdef __cplusplus
-      extern "C"
- #  endif
--   int FC_DUMMY_MAIN () { return 1; }
-+   int FC_DUMMY_MAIN (void) { return 1; }
- #endif
- 
- int main(int argc, char *argv[])
---- a/tests/semantics.at
-+++ b/tests/semantics.at
-@@ -207,7 +207,7 @@ AT_CHECK_MACRO([AC_CHECK_DECLS],
- 		 [[extern int yes;
- 		   enum { myenum };
- 		   extern struct mystruct_s { int x[20]; } mystruct;
--		   extern int myfunc();
-+		   extern int myfunc (int);
- 		   #define mymacro1(arg) arg
- 		   #define mymacro2]])
-   # Ensure we can detect missing declarations of functions whose
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch
new file mode 100644
index 0000000..3faf6f0
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch
@@ -0,0 +1,36 @@
+From 5ffc09fca39de051537fbebd7c6c33d5255a520f Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Mon, 27 Mar 2023 18:10:36 -0700
+Subject: [PATCH 01/29] mention prototypes more prominently in NEWS
+
+* NEWS: Mention the function prototype issue early.
+(From a suggestion by Zack Weinberg.)
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ NEWS | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/NEWS b/NEWS
+index cf01ee210..d64648c6f 100644
+--- a/NEWS
++++ b/NEWS
+@@ -4,6 +4,14 @@ GNU Autoconf NEWS - User visible changes.
+ 
+ ** Backward incompatibilities
+ 
++*** AC_CHECK_FUNC and similar macros now use function prototypes.
++  AC_CHECK_FUNC and and similar macros now use C declarations with
++  function prototypes, a feature introduced in C89.  The new approach
++  should work better with C23, which removed the non-prototyped K&R
++  style that AC_CHECK_FUNC previously used.  However, this change
++  means Autoconf no longer supports pre-1989 C compilers, as they do
++  not support function prototypes.
++
+ *** Autoconf now requires perl 5.10 (2007) or later.
+   Generated 'configure' scripts continue to run without perl.
+ 
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch
new file mode 100644
index 0000000..35f324c
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch
@@ -0,0 +1,123 @@
+From e2220ed33e69d8bc6504e3f6279894afe33a99a5 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Wed, 29 Mar 2023 12:59:09 -0700
+Subject: [PATCH 02/29] build: run "make fetch", which updated these:
+
+* build-aux/texinfo.tex: Update from texinfo.
+* lib/Autom4te/FileUtils.pm: Update from automake.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ build-aux/texinfo.tex     | 50 +++++++++++++++++++++------------------
+ lib/Autom4te/FileUtils.pm |  5 +++-
+ 2 files changed, 31 insertions(+), 24 deletions(-)
+
+diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
+index d25161109..55a002d27 100644
+--- a/build-aux/texinfo.tex
++++ b/build-aux/texinfo.tex
+@@ -3,7 +3,7 @@
+ % Load plain if necessary, i.e., if running under initex.
+ \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
+ %
+-\def\texinfoversion{2023-03-21.06}
++\def\texinfoversion{2023-03-27.21}
+ %
+ % Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc.
+ %
+@@ -1102,27 +1102,33 @@ where each line of input produces a line of output.}
+ 
+ % Output page labels information.
+ % See PDF reference v.1.7 p.594, section 8.3.1.
++% Page label ranges must be increasing.
+ \ifpdf
+ \def\pagelabels{%
+   \def\title{0 << /P (T-) /S /D >>}%
+-  \edef\roman{\the\romancount << /S /r >>}%
+-  \edef\arabic{\the\arabiccount << /S /D >>}%
+   %
+-  % Page label ranges must be increasing.  Remove any duplicates.
+-  % (There is a slight chance of this being wrong if e.g. there is
+-  % a @contents but no @titlepage, etc.)
+-  %
+-  \ifnum\romancount=0 \def\roman{}\fi
+-  \ifnum\arabiccount=0 \def\title{}%
+-  \else
+-    \ifnum\romancount=\arabiccount \def\roman{}\fi
+-  \fi
+-  %
+-  \ifnum\romancount<\arabiccount
+-    \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax
++  % support @contents at very end of document
++  \ifnum\contentsendcount=\pagecount
++    \ifnum\arabiccount<\romancount
++      \pdfcatalog{/PageLabels << /Nums
++                  [\title
++                   \the\arabiccount << /S /D >>
++                   \the\romancount << /S /r >>
++                  ] >> }\relax
++    \fi
++  % no contents in document
++  \else\ifnum\contentsendcount=0
++    \pdfcatalog{/PageLabels << /Nums
++                [\title
++                 \the\arabiccount << /S /D >>
++                ] >> }\relax
+   \else
+-    \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax
+-  \fi
++    \pdfcatalog{/PageLabels << /Nums
++                [\title
++                 \the\romancount << /S /r >>
++                 \the\contentsendcount << /S /D >>
++                ] >> }\relax
++  \fi\fi
+ }
+ \else
+   \let\pagelabels\relax
+@@ -1131,6 +1137,8 @@ where each line of input produces a line of output.}
+ \newcount\pagecount \pagecount=0
+ \newcount\romancount \romancount=0
+ \newcount\arabiccount \arabiccount=0
++\newcount\contentsendcount \contentsendcount=0
++
+ \ifpdf
+   \let\ptxadvancepageno\advancepageno
+   \def\advancepageno{%
+@@ -6809,12 +6817,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
+ % Get ready to use Arabic numerals again
+ \def\contentsendroman{%
+   \lastnegativepageno = \pageno
+-  \global\pageno = \savepageno
+-  %
+-  % If \romancount > \arabiccount, the contents are at the end of the
+-  % document.  Otherwise, advance where the Arabic numerals start for
+-  % the page numbers.
+-  \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi
++  \global\pageno=1
++  \contentsendcount = \pagecount
+ }
+ 
+ % Typeset the label for a chapter or appendix for the short contents.
+diff --git a/lib/Autom4te/FileUtils.pm b/lib/Autom4te/FileUtils.pm
+index ab58b9de4..2468fe6d8 100644
+--- a/lib/Autom4te/FileUtils.pm
++++ b/lib/Autom4te/FileUtils.pm
+@@ -39,9 +39,12 @@ use strict;
+ use warnings FATAL => 'all';
+ 
+ use Exporter;
+-use Time::HiRes qw(stat);
+ use IO::File;
+ 
++# use sub-second resolution timestamps if available,
++# carry on with one-second resolution timestamps if that is all we have
++BEGIN { eval { require Time::HiRes; import Time::HiRes qw(stat) } }
++
+ use Autom4te::Channels;
+ use Autom4te::ChannelDefs;
+ 
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch
new file mode 100644
index 0000000..76c37a0
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch
@@ -0,0 +1,29 @@
+From e05aa447945c0d72ad924fd89a28830cf1a0f8d3 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Fri, 31 Mar 2023 10:37:57 -0700
+Subject: [PATCH 03/29] * NEWS: Tighten up wording.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ NEWS | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index d64648c6f..884e46f45 100644
+--- a/NEWS
++++ b/NEWS
+@@ -5,9 +5,7 @@ GNU Autoconf NEWS - User visible changes.
+ ** Backward incompatibilities
+ 
+ *** AC_CHECK_FUNC and similar macros now use function prototypes.
+-  AC_CHECK_FUNC and and similar macros now use C declarations with
+-  function prototypes, a feature introduced in C89.  The new approach
+-  should work better with C23, which removed the non-prototyped K&R
++  This should work better with C23, which removed the non-prototyped K&R
+   style that AC_CHECK_FUNC previously used.  However, this change
+   means Autoconf no longer supports pre-1989 C compilers, as they do
+   not support function prototypes.
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch
new file mode 100644
index 0000000..1b30d99
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch
@@ -0,0 +1,82 @@
+From 232cab527897bcdf4d55492d41af73d31905bda5 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Fri, 31 Mar 2023 10:46:20 -0700
+Subject: [PATCH 04/29] Cater to programs misusing AC_EGREP_HEADER
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Problem reported by Frederic Berat in:
+https://lists.gnu.org/archive/html/autoconf/2022-11/msg00127.html
+* lib/autoconf/programs.m4 (AC_PROG_EGREP): Also set
+EGREP_TRADITIONAL and ac_cv_path_EGREP_TRADITIONAL.
+* tests/c.at (AC_PROG_EGREP and AC_EGREP_HEADER):
+New test, taken from Frederic Berat’s email in:
+https://lists.gnu.org/r/autoconf/2023-03/msg00043.html
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/programs.m4 | 10 ++++++++++
+ tests/c.at               | 24 ++++++++++++++++++++++++
+ 2 files changed, 34 insertions(+)
+
+diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4
+index 1b7460c85..62ba6b8b6 100644
+--- a/lib/autoconf/programs.m4
++++ b/lib/autoconf/programs.m4
+@@ -371,6 +371,16 @@ AC_CACHE_CHECK([for egrep], ac_cv_path_EGREP,
+    fi])
+  EGREP="$ac_cv_path_EGREP"
+  AC_SUBST([EGREP])
++ dnl
++ dnl Also set EGREP_TRADITIONAL even though unnecessary here,
++ dnl for wrong but too-common code with the following pattern:
++ dnl   AC_PROG_EGREP
++ dnl   if false; then
++ dnl      AC_EGREP_HEADER([printf], [stdio.h], [has_printf=yes])
++ dnl   fi
++ dnl   AC_EGREP_HEADER([malloc], [stdlib.h], [has_malloc=yes])
++ EGREP_TRADITIONAL=$EGREP
++ ac_cv_path_EGREP_TRADITIONAL=$EGREP
+ ])# AC_PROG_EGREP
+ 
+ # _AC_PROG_EGREP_TRADITIONAL
+diff --git a/tests/c.at b/tests/c.at
+index c37f43b10..fad54760f 100644
+--- a/tests/c.at
++++ b/tests/c.at
+@@ -232,6 +232,30 @@ AT_CHECK_DEFINES(
+ AT_CLEANUP
+ 
+ 
++## ----------------------------------- ##
++## AC_PROG_EGREP and AC_EGREP_HEADER.  ##
++## ----------------------------------- ##
++
++AT_SETUP([AC_PROG_EGREP and AC_EGREP_HEADER])
++
++_AT_CHECK_AC_MACRO(
++[[AC_PROG_CPP
++  AC_PROG_EGREP
++
++  # Although this code is incorrect (it should use AS_IF),
++  # it follows a too-common real world pattern.
++  # For now, test for it; we may remove this test later.
++  if false; then
++    AC_EGREP_HEADER([^], [limits.h])
++  fi
++
++  AC_EGREP_HEADER([$], [limits.h], [],
++    [AC_MSG_ERROR([[egrep-related macros do not tolerate misuse of 'if']])])
++]])
++
++AT_CLEANUP
++
++
+ ## ------------------------------------ ##
+ ## AC_NO_EXECUTABLES (working linker).  ##
+ ## ------------------------------------ ##
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch
new file mode 100644
index 0000000..53fb40b
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch
@@ -0,0 +1,75 @@
+From 713d9822bbfb2923115065efaefed34a0113f8a1 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Sat, 1 Apr 2023 16:44:03 -0700
+Subject: [PATCH 06/29] Fix timing bug on high-speed builds
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Problem reported by Bogdan via Jacob Bachmeyer in:
+https://lists.gnu.org/r/autoconf/2023-04/msg00002.html
+* bin/autom4te.in: If a file timestamp equals a dependency’s
+timestamp, consider the file to be out of date.  Although this may
+result in extra work, it fixes some rare timing bugs.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ bin/autom4te.in | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/bin/autom4te.in b/bin/autom4te.in
+index 4b61f0a82..71d7e6a62 100644
+--- a/bin/autom4te.in
++++ b/bin/autom4te.in
+@@ -910,10 +910,8 @@ sub up_to_date ($)
+   return 0
+     if ! -f $tfile || ! -f $ofile;
+ 
+-  # The youngest of the cache files must be older than the oldest of
++  # The younger of the cache files must be older than the oldest of
+   # the dependencies.
+-  # FIXME: These timestamps have only 1-second resolution.
+-  # Time::HiRes fixes this, but assumes Perl 5.8 or later.
+   my $tmtime = mtime ($tfile);
+   my $omtime = mtime ($ofile);
+   my ($file, $mtime) = ($tmtime < $omtime
+@@ -926,7 +924,7 @@ sub up_to_date ($)
+   # We depend at least upon the arguments.
+   foreach my $dep (@ARGV)
+     {
+-      if ($mtime < mtime ($dep))
++      if ($mtime <= mtime ($dep))
+ 	{
+ 	  verb "up_to_date ($file): outdated: $dep";
+ 	  return 0;
+@@ -949,7 +947,7 @@ sub up_to_date ($)
+       # timestamp of that missing file was newer).
+       return 0
+ 	if ! $dep;
+-      if ($mtime < mtime ($dep))
++      if ($mtime <= mtime ($dep))
+ 	{
+ 	  verb "up_to_date ($file): outdated: $dep";
+ 	  return 0;
+@@ -1038,7 +1036,7 @@ $icache_file = new Autom4te::XFile $icache, O_RDWR|O_CREAT;
+ $icache_file->lock (LOCK_EX)
+   if ($flock_implemented eq "yes");
+ 
+-# Read the cache index if available and older than autom4te itself.
++# Read the cache index if available and younger than autom4te itself.
+ # If autom4te is younger, then some structures such as C4che might
+ # have changed, which would corrupt its processing.
+ Autom4te::C4che->load ($icache_file)
+@@ -1105,7 +1103,7 @@ else
+     # Actual M4 expansion, if the user wants it, or if $output is old
+     # (STDOUT is pretty old).
+     handle_output ($req, $output)
+-      if $force || mtime ($output) < mtime ($ocache . $req->id);
++      if $force || mtime ($output) <= mtime ($ocache . $req->id);
+   }
+ 
+ # If we ran up to here, the cache is valid.
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch
new file mode 100644
index 0000000..f9f9345
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch
@@ -0,0 +1,57 @@
+From 794182506c3c5814d48b2fc4d832770f608ce0ef Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Sat, 1 Apr 2023 20:25:13 -0700
+Subject: [PATCH 07/29] Support underquoted callers better
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Problem reported bh Khem Raj for mcpp 2.7.2 (2008) in:
+https://lists.gnu.org/r/autoconf/2023-04/msg00001.html
+* lib/autoconf/programs.m4 (_AC_PATH_PROG_FLAVOR_GNU):
+Add two ‘@%:@(’s to cater to underquoted callers.
+* lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Use quadrigraph instead of
+‘#’, for underquoted callers.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/programs.m4 | 5 +++--
+ lib/m4sugar/m4sh.m4      | 2 +-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4
+index 62ba6b8b6..d06d18c44 100644
+--- a/lib/autoconf/programs.m4
++++ b/lib/autoconf/programs.m4
+@@ -543,11 +543,12 @@ dnl   # for best performing tool in a list breaks down.
+ # ----------------------------------------------------------------
+ m4_define([_AC_PATH_PROG_FLAVOR_GNU],
+ [# Check for GNU $1
+-case `"$1" --version 2>&1` in
++case `"$1" --version 2>&1` in @%:@(
+ *GNU*)
+   $2;;
+ m4_ifval([$3],
+-[*)
++[@%:@(
++*)
+   $3;;
+ ])esac
+ ])# _AC_PATH_PROG_FLAVOR_GNU
+diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
+index ab5ca7db7..368487fa0 100644
+--- a/lib/m4sugar/m4sh.m4
++++ b/lib/m4sugar/m4sh.m4
+@@ -1389,7 +1389,7 @@ m4_if([$1], m4_translit([[$1]], [:;]),
+ for as_dir in $as_dummy])
+ do
+   IFS=$as_save_IFS
+-  case $as_dir in #(((
++  case $as_dir in @%:@(((
+     '') as_dir=./ ;;
+     */) ;;
+     *) as_dir=$as_dir/ ;;
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch
new file mode 100644
index 0000000..cec7dcd
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch
@@ -0,0 +1,54 @@
+From 8babe5f2ccb73cc574933743b381557a4db02424 Mon Sep 17 00:00:00 2001
+From: Zack Weinberg <zackw@panix.com>
+Date: Thu, 30 Mar 2023 10:50:36 -0400
+Subject: [PATCH 08/29] New script for building inside Guix containers.
+
+build-aux/test-build-guix, goes with the top level manifest.scm.
+See the top of the file for usage instructions.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ build-aux/test-build-guix | 30 ++++++++++++++++++++++++++++++
+ 1 file changed, 30 insertions(+)
+ create mode 100755 build-aux/test-build-guix
+
+diff --git a/build-aux/test-build-guix b/build-aux/test-build-guix
+new file mode 100755
+index 000000000..4470af9b7
+--- /dev/null
++++ b/build-aux/test-build-guix
+@@ -0,0 +1,30 @@
++#! /bin/sh
++
++# From a pristine Git checkout, run
++#  guix shell --container --manifest=manifest.scm -- build-aux/test-build-guix
++# to perform a complete bootstrap and test build of Autoconf.
++
++set -ex
++
++# Guix bug? /bin/sh is usually *not* the shell specified in the manifest.
++SHELL="$(command -v sh)"
++export SHELL
++if [ "$(realpath /bin/sh)" != "$(realpath "$SHELL")" ]; then
++    (
++        cd /bin
++        rm sh
++        ln -s "$SHELL" sh
++    )
++    exec "$SHELL" "$0" "$@"
++fi
++
++./bootstrap
++if [ -d _build ]; then
++    rm -rf _build/*
++else
++    mkdir _build
++fi
++cd _build
++../configure
++make all info pdf dvi
++make distcheck
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch
new file mode 100644
index 0000000..c1c60dc
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch
@@ -0,0 +1,82 @@
+From dcf9bb7e3b12f3bd74edff60e80b53e668159579 Mon Sep 17 00:00:00 2001
+From: Zack Weinberg <zackw@panix.com>
+Date: Sun, 2 Apr 2023 10:27:08 -0400
+Subject: [PATCH 09/29] AC_XENIX_DIR: Rewrite using AC_CANONICAL_HOST.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+AC_XENIX_DIR is an obsolete macro, defined as AC_HEADER_DIRENT plus
+code to make absolutely sure configure scripts that depended on a
+shell variable internal to the original (2.13 era) definition of
+AC_XENIX_DIR are not broken by autoupdate.  (That variable had the
+temptingly public-sounding name “XENIX.”)  This compatibility code
+uses AC_EGREP_CPP, which is itself discouraged for use in new
+configure scripts.
+
+(N.B. codesearch.debian.net does not find any uses whatsoever of
+this macro, nor any code in an .ac or .m4 file that depends on the
+XENIX variable.)
+
+Change the compatibility code to use AC_CANONICAL_HOST instead,
+and clarify which pieces of the code inserted by autoupdate are
+probably still necessary.
+
+* lib/autoconf/specific.m4 (AC_XENIX_DIR): Set XENIX variable
+  based on value of host_os. Clarify what manual cleanup is
+  recommended after autoupdate replaces this obsolete macro.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/specific.m4 | 26 +++++++++++---------------
+ 1 file changed, 11 insertions(+), 15 deletions(-)
+
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index 1b3ee661b..a2dc5d488 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -754,9 +754,9 @@ dnl it should only be defined when necessary.
+ ## Checks for UNIX variants.  ##
+ ## -------------------------- ##
+ 
+-
+-# These are kludges which should be replaced by a single POSIX check.
+-# They aren't cached, to discourage their use.
++# These macros are all obsolete, from the early days of Autoconf,
++# before the invention of AC_CANONICAL_SYSTEM.  Autoupdate will
++# replace each with inline code for a more modern feature check.
+ 
+ # AC_AIX
+ # ------
+@@ -776,19 +776,15 @@ AU_DEFUN([AC_ISC_POSIX], [AC_SEARCH_LIBS([strerror], [cposix])])
+ # AC_XENIX_DIR
+ # ------------
+ AU_DEFUN([AC_XENIX_DIR],
+-[AC_MSG_CHECKING([for Xenix])
+-AC_EGREP_CPP([yes],
+-[#if defined M_XENIX && ! defined M_UNIX
+-  yes
+-@%:@endif],
+-	     [AC_MSG_RESULT([yes]); XENIX=yes],
+-	     [AC_MSG_RESULT([no]); XENIX=])
+-
+-AC_HEADER_DIRENT[]dnl
++[AC_HEADER_DIRENT
++# Autoupdate added the next two lines to ensure that your configure
++# script's behavior did not change.  They are safe to remove unless
++# you have code that depends on the XENIX shell variable.
++AC_CANONICAL_HOST
++AS_CASE([$host_os], [xenix*], [XENIX=yes], [XENIX=no])
++# End of code added by autoupdate
+ ],
+-[You shouldn't need to depend upon XENIX.  Remove the
+-'AC_MSG_CHECKING', 'AC_EGREP_CPP', and this warning if this part
+-of the test is useless.])
++[Check for code depending on the XENIX shell variable.])
+ 
+ 
+ # AC_DYNIX_SEQ
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch
new file mode 100644
index 0000000..4932271
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch
@@ -0,0 +1,77 @@
+From 51d98495d1aac00970d791f064e83ca762bf81c7 Mon Sep 17 00:00:00 2001
+From: Zack Weinberg <zackw@panix.com>
+Date: Sun, 2 Apr 2023 10:43:51 -0400
+Subject: [PATCH 10/29] AC_TYPE_UID_T: Rewrite using AC_CHECK_TYPE.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+AC_TYPE_UID_T uses AC_EGREP_HEADER to search sys/types.h for
+occurrences of the string ‘uid_t’ and, if found, assumes both
+uid_t and gid_t are available.  This would be better done using
+a pair of AC_CHECK_TYPE operations.
+
+I also converted two uses of old-style AC_CHECK_TYPE, immediately
+below, to new-style.  (There are probably other old-style uses in
+this file, I only did the ones I happened to see.)
+
+* lib/autoconf/types.m4 (AC_TYPE_UID_T): Check for uid_t and gid_t,
+  separately, using AC_CHECK_TYPE, instead of grepping sys/types.h.
+  (AC_TYPE_SIZE_T, AC_TYPE_SSIZE_T): Use new-style AC_CHECK_TYPE.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/types.m4 | 30 +++++++++++++++++-------------
+ 1 file changed, 17 insertions(+), 13 deletions(-)
+
+diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4
+index ebac0cf6d..ef2456135 100644
+--- a/lib/autoconf/types.m4
++++ b/lib/autoconf/types.m4
+@@ -589,25 +589,29 @@ AC_DEFUN([AC_TYPE_MBSTATE_T],
+ 
+ # AC_TYPE_UID_T
+ # -------------
+-# FIXME: Rewrite using AC_CHECK_TYPE.
+ AN_IDENTIFIER([gid_t], [AC_TYPE_UID_T])
+ AN_IDENTIFIER([uid_t], [AC_TYPE_UID_T])
+ AC_DEFUN([AC_TYPE_UID_T],
+-[AC_CACHE_CHECK(for uid_t in sys/types.h, ac_cv_type_uid_t,
+-[AC_EGREP_HEADER(uid_t, sys/types.h,
+-  ac_cv_type_uid_t=yes, ac_cv_type_uid_t=no)])
+-if test $ac_cv_type_uid_t = no; then
+-  AC_DEFINE(uid_t, int, [Define to 'int' if <sys/types.h> doesn't define.])
+-  AC_DEFINE(gid_t, int, [Define to 'int' if <sys/types.h> doesn't define.])
+-fi
+-])
+-
+-
++[AC_CHECK_TYPE([uid_t], [],
++  [AC_DEFINE([uid_t], [int],
++    [Define as 'int' if <sys/types.h> doesn't define.])])
++AC_CHECK_TYPE([gid_t], [],
++  [AC_DEFINE([gid_t], [int],
++    [Define as 'int' if <sys/types.h> doesn't define.])])])
++
++# This should be obsoleted, size_t is in C90.
+ AN_IDENTIFIER([size_t], [AC_TYPE_SIZE_T])
+-AC_DEFUN([AC_TYPE_SIZE_T], [AC_CHECK_TYPE(size_t, unsigned int)])
++AC_DEFUN([AC_TYPE_SIZE_T],
++[AC_CHECK_TYPE([size_t], [],
++  [AC_DEFINE([size_t], [unsigned int],
++    [Define as 'unsigned int' if <stddef.h> doesn't define.])])])
+ 
+ AN_IDENTIFIER([ssize_t], [AC_TYPE_SSIZE_T])
+-AC_DEFUN([AC_TYPE_SSIZE_T], [AC_CHECK_TYPE(ssize_t, int)])
++AC_DEFUN([AC_TYPE_SSIZE_T],
++[AC_CHECK_TYPE([ssize_t], [],
++  [AC_DEFINE([ssize_t], [int],
++    [Define as 'int' if <sys/types.h> doesn't define.])])])
++
+ 
+ AN_IDENTIFIER([pid_t], [AC_TYPE_PID_T])
+ AC_DEFUN([AC_TYPE_PID_T],
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch
new file mode 100644
index 0000000..9c1f435
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch
@@ -0,0 +1,180 @@
+From daaca7f74f94d6a7a51d571156d5fbaba5ef9a87 Mon Sep 17 00:00:00 2001
+From: Zack Weinberg <zackw@panix.com>
+Date: Sun, 2 Apr 2023 21:03:30 -0400
+Subject: [PATCH 11/29] Make AC_PROG_GCC_TRADITIONAL a compatibility alias for
+ AC_PROG_CC.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This macro is one of the last remaining internal uses of AC_EGREP_CPP.
+It has only ever done anything useful with GCC, and GCC dropped
+support for ‘traditional’ compilation in version 3.3 (released 2003)
+so I do not think it is worth trying to preserve.
+
+* lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL): Make into a
+  compatibility alias for AC_PROG_CC, similar to AC_PROG_CC_STDC.
+* lib/autoconf/general.m4 (AC_EGREP_CPP): Remove stale comment.
+* doc/autoconf.texi, NEWS: Document this change.
+* tests/mktests.pl: Exclude AC_PROG_GCC_TRADITIONAL from
+  autoupdate tests.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ NEWS                    |  7 +++++++
+ doc/autoconf.texi       | 29 ++++++++++++++---------------
+ lib/autoconf/c.m4       | 30 ++++++------------------------
+ lib/autoconf/general.m4 |  2 --
+ tests/mktests.pl        |  2 +-
+ 5 files changed, 28 insertions(+), 42 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 6a106f155..53c57ff59 100644
+--- a/NEWS
++++ b/NEWS
+@@ -81,6 +81,13 @@ GNU Autoconf NEWS - User visible changes.
+   with plain apostrophes instead of the older GNU style `like this'
+   with grave accent and apostrophe.
+ 
++*** AC_PROG_GCC_TRADITIONAL no longer does anything.
++
++  This macro has had no useful effect since GCC dropped support for
++  traditional-mode compilation in version 3.3 (released in 2003), and
++  the systems that needed it are also long obsolete.  It is now a
++  compatibility synonym for AC_PROG_CC.
++
+ ** Notable bug fixes
+ 
+ *** Autoconf caches now use finer-grained timestamps.
+diff --git a/doc/autoconf.texi b/doc/autoconf.texi
+index 8db64d8bb..037c8055f 100644
+--- a/doc/autoconf.texi
++++ b/doc/autoconf.texi
+@@ -7764,20 +7764,6 @@ This macro is obsolescent, as current C compilers support prototypes.
+ New programs need not use this macro.
+ @end defmac
+ 
+-@anchor{AC_PROG_GCC_TRADITIONAL}
+-@defmac AC_PROG_GCC_TRADITIONAL
+-@acindex{PROG_GCC_TRADITIONAL}
+-@ovindex CC
+-Add @option{-traditional} to output variable @code{CC} if using a
+-GNU C compiler and @code{ioctl} does not work properly without
+-@option{-traditional}.  That usually happens when the fixed header files
+-have not been installed on an old system.
+-
+-This macro is obsolescent, since current versions of the GNU C
+-compiler fix the header files automatically when installed.
+-@end defmac
+-
+-
+ @node C++ Compiler
+ @subsection C++ Compiler Characteristics
+ 
+@@ -23986,7 +23972,8 @@ These days portable programs should use @code{waitpid}, not
+ 
+ @defmac AC_GCC_TRADITIONAL
+ @acindex{GCC_TRADITIONAL}
+-Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}).
++Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}),
++which is itself obsolete.
+ @end defmac
+ 
+ @defmac AC_GETGROUPS_T
+@@ -24369,6 +24356,18 @@ Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
+ Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
+ @end defmac
+ 
++@anchor{AC_PROG_GCC_TRADITIONAL}
++@defmac AC_PROG_GCC_TRADITIONAL
++@acindex{PROG_GCC_TRADITIONAL}
++Used to put GCC into ``traditional'' (pre-ISO C) compilation mode,
++on systems with headers that did not work correctly with a
++standard-compliant compiler.  GCC has not supported traditional
++compilation in many years, and all of the systems that required this are
++long obsolete themselves.  This macro is now a compatibility synonym for
++@code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
++
++@end defmac
++
+ @defmac AC_PROGRAMS_CHECK
+ @acindex{PROGRAMS_CHECK}
+ Replaced by @code{AC_CHECK_PROGS} (@pxref{AC_CHECK_PROGS}).
+diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
+index fef6c516d..33648b5b9 100644
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -551,30 +551,6 @@ fi[]dnl
+ ])# _AC_PROG_CC_G
+ 
+ 
+-# AC_PROG_GCC_TRADITIONAL
+-# -----------------------
+-AC_DEFUN([AC_PROG_GCC_TRADITIONAL],
+-[AC_REQUIRE([AC_PROG_CC])dnl
+-if test $ac_cv_c_compiler_gnu = yes; then
+-    AC_CACHE_CHECK(whether $CC needs -traditional,
+-      ac_cv_prog_gcc_traditional,
+-[  ac_pattern="Autoconf.*'x'"
+-  AC_EGREP_CPP($ac_pattern, [#include <sgtty.h>
+-Autoconf TIOCGETP],
+-  ac_cv_prog_gcc_traditional=yes, ac_cv_prog_gcc_traditional=no)
+-
+-  if test $ac_cv_prog_gcc_traditional = no; then
+-    AC_EGREP_CPP($ac_pattern, [#include <termio.h>
+-Autoconf TCGETA],
+-    ac_cv_prog_gcc_traditional=yes)
+-  fi])
+-  if test $ac_cv_prog_gcc_traditional = yes; then
+-    CC="$CC -traditional"
+-  fi
+-fi
+-])# AC_PROG_GCC_TRADITIONAL
+-
+-
+ # AC_PROG_CC_C_O
+ # --------------
+ AC_DEFUN([AC_PROG_CC_C_O],
+@@ -1675,6 +1651,12 @@ AU_DEFUN([AC_PROG_CC_STDC],
+   [$0 is obsolete; use AC_PROG_CC]
+ )
+ 
++# AC_PROG_GCC_TRADITIONAL
++# -----------------------
++AU_DEFUN([AC_PROG_GCC_TRADITIONAL],
++  [AC_REQUIRE([AC_PROG_CC])],
++  [$0 is obsolete; use AC_PROG_CC]
++)
+ 
+ # AC_C_BACKSLASH_A
+ # ----------------
+diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
+index ecda0a51c..47d896d54 100644
+--- a/lib/autoconf/general.m4
++++ b/lib/autoconf/general.m4
+@@ -2766,8 +2766,6 @@ AU_DEFUN([AC_TRY_CPP],
+ # AC_EGREP_CPP(PATTERN, PROGRAM,
+ #              [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+ # ------------------------------------------------------
+-# Because this macro is used by AC_PROG_GCC_TRADITIONAL, which must
+-# come early, it is not included in AC_BEFORE checks.
+ AC_DEFUN([AC_EGREP_CPP],
+ [AC_LANG_PREPROC_REQUIRE()dnl
+ AC_REQUIRE([_AC_PROG_EGREP_TRADITIONAL])dnl
+diff --git a/tests/mktests.pl b/tests/mktests.pl
+index effed0bca..81f63586c 100644
+--- a/tests/mktests.pl
++++ b/tests/mktests.pl
+@@ -112,7 +112,7 @@ my @ac_exclude_list = (
+ # Check all AU_DEFUN'ed macros with AT_CHECK_AU_MACRO, except these.
+ my @au_exclude_list = (
+   # Empty.
+-  qr/^AC_(C_CROSS|PROG_CC_(C[89]9|STDC))$/,
++  qr/^AC_(C_CROSS|PROG_(CC_(C[89]9|STDC)|GCC_TRADITIONAL))$/,
+ 
+   # Use AC_REQUIRE.
+   qr/^AC_(CYGWIN|MINGW32|EMXOS2)$/,
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch
new file mode 100644
index 0000000..4d28101
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch
@@ -0,0 +1,328 @@
+From b5891a57b586ef6ff78bb752d62915b78cd58d7e Mon Sep 17 00:00:00 2001
+From: Zack Weinberg <zackw@panix.com>
+Date: Sun, 2 Apr 2023 15:07:58 -0400
+Subject: [PATCH 12/29] Overhaul AC_TYPE_GETGROUPS and AC_FUNC_GETGROUPS.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+AC_TYPE_GETGROUPS is the last remaining use of AC_EGREP_HEADER in
+stock Autoconf macros.  It uses it only when cross compiling, as a
+fallback from an AC_RUN_IFELSE check, testing for a bug in system
+headers from the late 1980s or early 1990s, where gid_t *existed*
+but the second argument to getgroups needed to be an array of int,
+and this didn’t cause a compile error (i.e. the system headers
+declare getgroups with no prototype or an incorrect prototype).
+AC_FUNC_GETGROUPS also uses AC_RUN_IFELSE to test for obscure
+problems specific to long-obsolete Unixes.
+
+The downsides of AC_RUN_IFELSE and AC_EGREP_HEADER seem more severe
+than the chances of someone compiling a current-generation program,
+that uses getgroups, on an OS old enough to have one of the really
+nasty bugs.  Accordingly, this patch changes AC_FUNC_GETGROUPS to use
+a host_os-based *blacklist* both in native and cross compilation.
+This is limited to the two host_os values for which either our old
+code, or Gnulib, documented a serious bug: ultrix* and nextstep*.
+Currently it does not try to pin down the exact version ranges subject
+to the bugs — that would require research by someone with access to
+the full history of these OSes.
+
+An incorrect guess by this blacklist can be overridden by setting
+ac_cv_func_getgroups_works in config.site.  AC_TYPE_GETGROUPS, for its
+part, now does a series of regular old AC_COMPILE_IFELSE checks to
+probe the prototype of getgroups, and considers that good enough.
+
+While I was in there I noticed that AC_FUNC_GETGROUPS does not
+AC_SUBST a documented output variable, and that the name of this
+variable is misspelled in the manual.
+
+* lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Use AC_SEARCH_LIBS
+  to probe for getgroups.  Use an AC_CANONICAL_HOST-based blacklist
+  for bug detection, not AC_RUN_IFELSE.  AC_SUBST the GETGROUPS_LIB
+  output variable.
+* lib/autoconf/types.m4 (AC_TYPE_GETGROUPS): Check only the prototype
+  of getgroups, using AC_COMPILE_IFELSE; do not use either AC_RUN_IFELSE
+  or AC_EGREP_HEADER.
+* doc/autoconf.texi: Update to match. Correct misspelling of
+  GETGROUPS_LIB.
+* tests.local.at (_AT_CHECK_ENV): Allow GETGROUPS_LIB output variable.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ NEWS                      | 11 +++++
+ doc/autoconf.texi         | 25 ++++++----
+ lib/autoconf/functions.m4 | 61 ++++++++++++------------
+ lib/autoconf/types.m4     | 97 ++++++++++++++++++++++++---------------
+ tests/local.at            |  2 +-
+ 5 files changed, 120 insertions(+), 76 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 53c57ff59..8e4ecc1bf 100644
+--- a/NEWS
++++ b/NEWS
+@@ -38,6 +38,17 @@ GNU Autoconf NEWS - User visible changes.
+   This matters only for uses that, contrary to the documentation
+   and despite warnings, use m4_divert with numbered diversions.
+ 
++*** AC_FUNC_GETGROUPS and AC_TYPE_GETGROUPS no longer run test programs.
++  These macros were testing for OS bugs that we believe are at least
++  twenty years in the past.  Most operating systems are now trusted to
++  provide an accurate prototype for getgroups in unistd.h, and to
++  implement it as specified in POSIX.
++
++  AC_FUNC_GETGROUPS still includes a short blacklist of OSes with
++  known, severe bugs in getgroups.  It can be overridden using
++  config.site.  If you encounter a mistake in this blacklist
++  please report it to bug-autoconf.
++
+ ** New features
+ 
+ *** New macro AC_SYS_YEAR2038.
+diff --git a/doc/autoconf.texi b/doc/autoconf.texi
+index 037c8055f..5d5f613e6 100644
+--- a/doc/autoconf.texi
++++ b/doc/autoconf.texi
+@@ -5257,17 +5257,26 @@ and also contains workarounds for other portability problems of
+ @defmac AC_FUNC_GETGROUPS
+ @acindex{FUNC_GETGROUPS}
+ @cvindex HAVE_GETGROUPS
+-@ovindex GETGROUPS_LIBS
++@ovindex GETGROUPS_LIB
+ @c @fuindex getgroups
+ @prindex @code{getgroups}
+ @caindex func_getgroups_works
+-If the @code{getgroups} function is available and works,
+-define @code{HAVE_GETGROUPS}.  Set @code{GETGROUPS_LIBS} to any libraries
+-needed to get that function.  This macro runs @code{AC_TYPE_GETGROUPS}.
+-
+-This macro is obsolescent. New programs need not use this macro.  But
+-they may want to use the Gnulib module @code{getgroups}, which provides
+-workarounds to other portability problems of this function.
++Perform all the checks performed by @code{AC_TYPE_GETGROUPS}
++(@pxref{AC_TYPE_GETGROUPS}).
++Then, if the @code{getgroups} function is available
++and known to work correctly, define @code{HAVE_GETGROUPS}.
++Set the output variable @code{GETGROUPS_LIB} to any libraries
++needed to get that function.
++
++This macro relies on a list of systems with known, serious bugs in
++@code{getgroups}.  If this list mis-identifies your system's
++@code{getgroups} as buggy, or as not buggy, you can override it by
++setting the cache variable @code{ac_cv_func_getgroups_works} in a
++@file{config.site} file (@pxref{Site Defaults}).  Please also report the
++error to @email{bug-autoconf@@gnu.org, the Autoconf Bugs mailing list}.
++
++The Gnulib module @code{getgroups} provides workarounds for additional,
++less severe portability problems with this function.
+ @end defmac
+ 
+ @anchor{AC_FUNC_GETLOADAVG}
+diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
+index 655d6ba8f..74512e97d 100644
+--- a/lib/autoconf/functions.m4
++++ b/lib/autoconf/functions.m4
+@@ -698,47 +698,46 @@ AS_IF([test "$ac_cv_func_fseeko_ftello" = "need _LARGEFILE_SOURCE"],
+ # When cross-compiling, assume getgroups is broken.
+ AN_FUNCTION([getgroups], [AC_FUNC_GETGROUPS])
+ AC_DEFUN([AC_FUNC_GETGROUPS],
+-[AC_REQUIRE([AC_TYPE_GETGROUPS])dnl
+-AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+-AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+-AC_CHECK_FUNC(getgroups)
++[AC_REQUIRE([AC_CANONICAL_HOST])dnl
++AC_REQUIRE([AC_TYPE_GETGROUPS])dnl
+ 
+-# If we don't yet have getgroups, see if it's in -lbsd.
++# On older systems getgroups might be in -lbsd.
+ # This is reported to be necessary on an ITOS 3000WS running SEIUX 3.1.
+ ac_save_LIBS=$LIBS
+-if test $ac_cv_func_getgroups = no; then
+-  AC_CHECK_LIB(bsd, getgroups, [GETGROUPS_LIB=-lbsd])
+-fi
+-
+-# Run the program to test the functionality of the system-supplied
+-# getgroups function only if there is such a function.
++LIBS=
++GETGROUPS_LIB=
++AC_SEARCH_LIBS([getgroups], [bsd],
++  [test "$ac_res" = "none required" || GETGROUPS_LIB="$ac_res"
++   ac_cv_func_getgroups=yes],
++  [ac_cv_func_getgroups=no])
++LIBS=$ac_save_LIBS
++AC_SUBST([GETGROUPS_LIB])
++
++# Known severe bugs in getgroups on particular systems.
++#  - On Ultrix 4.3 and NextSTEP 3.2, getgroups (0, 0) is reported to
++#    fail, rather than returning the number of supplementary groups as
++#    it ought to.  We do not know the exact range of releases affected
++#    in either case.
++# We currently reject all versions of the systems with known bugs, and
++# no other systems.  Please send corrections to bug-autoconf@gnu.org.
+ if test $ac_cv_func_getgroups = yes; then
++  # This AC_CACHE_CHECK exists so that one may override an incorrect
++  # guess by setting ac_cv_func_getgroups_works in a config.site file.
+   AC_CACHE_CHECK([for working getgroups], ac_cv_func_getgroups_works,
+-   [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
+-      [[/* On Ultrix 4.3, getgroups (0, 0) always fails.  */
+-       return getgroups (0, 0) == -1;]])],
+-		  [ac_cv_func_getgroups_works=yes],
+-		  [ac_cv_func_getgroups_works=no],
+-		  [case "$host_os" in # ((
+-			     # Guess yes on glibc systems.
+-		     *-gnu*) ac_cv_func_getgroups_works="guessing yes" ;;
+-			     # If we don't know, assume the worst.
+-		     *)      ac_cv_func_getgroups_works="guessing no" ;;
+-		   esac])
+-   ])
++   [AS_CASE([$host_os],
++     [ultrix* | nextstep*],
++      [ac_cv_func_getgroups_works=no # getgroups(0,0) fails
++],
++      [ac_cv_func_getgroups_works=yes])])
+ else
+   ac_cv_func_getgroups_works=no
+ fi
+-case "$ac_cv_func_getgroups_works" in
+-  *yes)
+-    AC_DEFINE(HAVE_GETGROUPS, 1,
+-	      [Define to 1 if your system has a working 'getgroups' function.])
+-    ;;
+-esac
+-LIBS=$ac_save_LIBS
++if test $ac_cv_func_getgroups_works = yes; then
++  AC_DEFINE(HAVE_GETGROUPS, 1,
++            [Define to 1 if your system has a working 'getgroups' function.])
++fi
+ ])# AC_FUNC_GETGROUPS
+ 
+-
+ # _AC_LIBOBJ_GETLOADAVG
+ # ---------------------
+ # Set up the AC_LIBOBJ replacement of 'getloadavg'.
+diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4
+index ef2456135..af3872b2f 100644
+--- a/lib/autoconf/types.m4
++++ b/lib/autoconf/types.m4
+@@ -258,44 +258,69 @@ AN_IDENTIFIER([ptrdiff_t], [AC_CHECK_TYPES])
+ # AC_TYPE_GETGROUPS
+ # -----------------
+ AC_DEFUN([AC_TYPE_GETGROUPS],
++dnl We now unconditionally assume that if <unistd.h> has a prototype for
++dnl getgroups, it is accurate; and that if <unistd.h> does _not_ declare
++dnl getgroups with a prototype, the second argument is an array of int.
++dnl (Older versions of Autoconf made these assumptions only when cross
++dnl compiling.)  See AC_FUNC_GETGROUPS, over in functions.m4, for why
++dnl this uses AC_COMPILE_IFELSE rather than AC_LINK_IFELSE.
+ [AC_REQUIRE([AC_TYPE_UID_T])dnl
+-AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups,
+-[AC_RUN_IFELSE([AC_LANG_SOURCE(
+-[[/* Thanks to Mike Rendell for this test.  */
+-]AC_INCLUDES_DEFAULT[
+-#define NGID 256
+-#undef MAX
+-#define MAX(x, y) ((x) > (y) ? (x) : (y))
+-
+-int
+-main (void)
+-{
+-  gid_t gidset[NGID];
+-  int i, n;
+-  union { gid_t gval; long int lval; }  val;
+-
+-  val.lval = -1;
+-  for (i = 0; i < NGID; i++)
+-    gidset[i] = val.gval;
+-  n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1,
+-		 gidset);
+-  /* Exit non-zero if getgroups seems to require an array of ints.  This
+-     happens when gid_t is short int but getgroups modifies an array
+-     of ints.  */
+-  return n > 0 && gidset[n] != val.gval;
+-}]])],
+-	       [ac_cv_type_getgroups=gid_t],
+-	       [ac_cv_type_getgroups=int],
+-	       [ac_cv_type_getgroups=cross])
+-if test $ac_cv_type_getgroups = cross; then
+-  dnl When we can't run the test program (we are cross compiling), presume
+-  dnl that <unistd.h> has either an accurate prototype for getgroups or none.
+-  dnl Old systems without prototypes probably use int.
+-  AC_EGREP_HEADER([getgroups.*int.*gid_t], unistd.h,
+-		  ac_cv_type_getgroups=gid_t, ac_cv_type_getgroups=int)
+-fi])
++AC_CACHE_CHECK([type of array argument to getgroups], ac_cv_type_getgroups,
++[# If AC_TYPE_UID_T says there isn't any gid_t typedef, then we can skip
++# everything below.
++AS_IF([test $ac_cv_type_gid_t = no],
++  [ac_cv_type_getgroups=int],
++  [# Test programs below rely on strict type checking of extern declarations:
++  # 'extern int getgroups(int, int *); extern int getgroups(int, pid_t *);'
++  # is valid in C89 if and only if pid_t is a typedef for int.  Unlike
++  # anything involving either an assignment or a function call, compilers
++  # tend to make this kind of type mismatch a hard error, not just an
++  # "incompatible pointer types" warning.
++  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
++[AC_INCLUDES_DEFAULT
++[extern int getgroups(int, gid_t *);]],
++[[return !(getgroups(0, 0) >= 0);]])],
++    [ac_getgroups_gidarray=yes],
++    [ac_getgroups_gidarray=no])
++  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
++[AC_INCLUDES_DEFAULT
++[extern int getgroups(int, int *);]],
++[[return !(getgroups(0, 0) >= 0);]])],
++    [ac_getgroups_intarray=yes],
++    [ac_getgroups_intarray=no])
++
++  AS_CASE([int:$ac_getgroups_intarray,gid:$ac_getgroups_gidarray],
++    [int:yes,gid:no], [ac_cv_type_getgroups=int],
++    [int:no,gid:yes], [ac_cv_type_getgroups=gid_t],
++    [int:yes,gid:yes], [
++      # Both programs compiled - this means *either* that getgroups
++      # was declared with no prototype, in which case we should use int,
++      # or that it was declared prototyped but gid_t is a typedef for int,
++      # in which case we should use gid_t.  Distinguish the two cases
++      # by testing if the compiler catches a blatantly incorrect function
++      # signature for getgroups.
++      AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
++[AC_INCLUDES_DEFAULT
++[extern int getgroups(int, float);]],
++[[return !(getgroups(0, 0) >= 0);]])], [
++        # Compiler did not catch incorrect argument list;
++        # getgroups is unprototyped.
++        ac_cv_type_getgroups=int
++      ], [
++        # Compiler caught incorrect argument list;
++        # gid_t is a typedef for int.
++        ac_cv_type_getgroups=gid_t
++      ])
++    ], [
++      # Both programs failed to compile - this probably means getgroups
++      # wasn't declared at all.  Use 'int', as this is probably a very
++      # old system where the type _would have been_ int.
++      ac_cv_type_getgroups=int
++    ])
++  ])
++])dnl AC_CACHE_CHECK
+ AC_DEFINE_UNQUOTED(GETGROUPS_T, $ac_cv_type_getgroups,
+-		   [Define to the type of elements in the array set by
++		   [Define to the type of elements in the array argument to
+ 		    'getgroups'. Usually this is either 'int' or 'gid_t'.])
+ ])# AC_TYPE_GETGROUPS
+ 
+diff --git a/tests/local.at b/tests/local.at
+index 64a9fb264..db49f84a9 100644
+--- a/tests/local.at
++++ b/tests/local.at
+@@ -401,7 +401,7 @@ if test -f state-env.before && test -f state-env.after; then
+       [interpval|PATH_SEPARATOR],
+       [GFC|F77_DUMMY_MAIN|f77_(case|underscore)],
+       [FC(_DUMMY_MAIN|FLAGS|LIBS|FLAGS_[fF]|_MODEXT|_MODINC|_MODOUT|_DEFINE)?],
+-      [ALLOCA|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB],
++      [ALLOCA|GETGROUPS_LIB|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB],
+       [AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|AR|RANLIB|SET_MAKE|YACC],
+       [EGREP_TRADITIONAL],
+       [GREP|[EF]GREP|SED],
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch
new file mode 100644
index 0000000..2dadd83
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch
@@ -0,0 +1,84 @@
+From a7dc6d83c7d12b8409c512c3c10ad29f01e6c164 Mon Sep 17 00:00:00 2001
+From: Zack Weinberg <zackw@panix.com>
+Date: Sun, 2 Apr 2023 21:54:31 -0400
+Subject: [PATCH 13/29] Fold AC_C_STRINGIZE into AC_PROG_CC.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Another of the last few uses of AC_EGREP_CPP is to check for the ISO C
+“stringification” operator.  As this is a feature of C89, let’s fold
+the test into the extensive C89 tests we already have, and make
+AC_C_STRINGIZE just lean on AC_PROG_CC, in the same way
+AC_C_PROTOTYPES does.
+
+* lib/autoconf/c.m4 (_AC_C_C89_TEST_GLOBALS): Add test of preprocessor
+  stringification and token pasting.
+  (AC_C_STRINGIZE): Just check ac_prog_cc_stdc.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/c.m4 | 31 ++++++++++++++++++++-----------
+ 1 file changed, 20 insertions(+), 11 deletions(-)
+
+diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
+index 33648b5b9..c8c6a665c 100644
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -1143,6 +1143,21 @@ static char *f (char * (*g) (char **, int), char **p, ...)
+   return s;
+ }
+ 
++/* C89 style stringification. */
++#define noexpand_stringify(a) #a
++const char *stringified = noexpand_stringify(arbitrary+token=sequence);
++
++/* C89 style token pasting.  Exercises some of the corner cases that
++   e.g. old MSVC gets wrong, but not very hard. */
++#define noexpand_concat(a,b) a##b
++#define expand_concat(a,b) noexpand_concat(a,b)
++extern int vA;
++extern int vbee;
++#define aye A
++#define bee B
++int *pvA = &expand_concat(v,aye);
++int *pvbee = &noexpand_concat(v,bee);
++
+ /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+    function prototypes and stuff, but not \xHH hex character constants.
+    These do not provoke an error unfortunately, instead are silently treated
+@@ -2112,16 +2127,10 @@ fi
+ # --------------
+ # Checks if '#' can be used to glue strings together at the CPP level.
+ # Defines HAVE_STRINGIZE if positive.
++# Obsolete - new code should assume C89 compliance.
+ AC_DEFUN([AC_C_STRINGIZE],
+-[AC_CACHE_CHECK([for preprocessor stringizing operator],
+-		[ac_cv_c_stringize],
+-[AC_EGREP_CPP([@%:@teststring],
+-	      [@%:@define x(y) #y
+-
+-char *s = x(teststring);],
+-	      [ac_cv_c_stringize=no],
+-	      [ac_cv_c_stringize=yes])])
+-if test $ac_cv_c_stringize = yes; then
++[AC_REQUIRE([AC_PROG_CC])
++if test "$ac_prog_cc_stdc" != no; then
+   AC_DEFINE(HAVE_STRINGIZE, 1,
+ 	    [Define to 1 if cpp supports the ANSI @%:@ stringizing operator.])
+ fi
+@@ -2130,8 +2139,8 @@ fi
+ 
+ # AC_C_PROTOTYPES
+ # ---------------
+-# Check if the C compiler supports prototypes, included if it needs
+-# options.
++# Check if the C compiler supports prototypes.
++# Obsolete - new code should assume C89 compliance.
+ AC_DEFUN([AC_C_PROTOTYPES],
+ [AC_REQUIRE([AC_PROG_CC])dnl
+ if test "$ac_prog_cc_stdc" != no; then
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch
new file mode 100644
index 0000000..85e9a45
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch
@@ -0,0 +1,116 @@
+From e25dfa75e18295d28de67747b4ff9d65f65c4f06 Mon Sep 17 00:00:00 2001
+From: Zack Weinberg <zackw@panix.com>
+Date: Sun, 2 Apr 2023 22:17:55 -0400
+Subject: [PATCH 14/29] Remove the last few internal uses of AC_EGREP_CPP.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Most of the remaining uses were converted to AC_COMPILE_IFELSE.
+The use in AC_FUNC_LOADAVG becomes an AC_PREPROC_IFELSE because
+we can’t be sure getloadavg.c can be _compiled_ at this point in
+the build.  The use in AC_C_VARARRAYS could be either _PREPROC_ or
+_COMPILE_; we use _COMPILE_ because, _PREPROC_ is never used, then
+we don’t have to do the “checking how to run the C preprocessor” test.
+
+* lib/autoconf/c.m4 (AC_C_VARARRAYS): Use AC_COMPILE_IFELSE instead of
+  AC_EGREP_CPP.
+* lib/autoconf/headers.m4 (_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H)
+  (_AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL_H): Likewise.
+* lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Use AC_PREPROC_IFELSE
+  instead of AC_EGREP_CPP.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/c.m4         |  8 ++++----
+ lib/autoconf/functions.m4 | 10 +++++-----
+ lib/autoconf/headers.m4   | 24 ++++++++++--------------
+ 3 files changed, 19 insertions(+), 23 deletions(-)
+
+diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
+index c8c6a665c..b8350c339 100644
+--- a/lib/autoconf/c.m4
++++ b/lib/autoconf/c.m4
+@@ -2197,11 +2197,11 @@ AC_DEFUN([AC_C_VARARRAYS],
+ [
+   AC_CACHE_CHECK([for variable-length arrays],
+     ac_cv_c_vararrays,
+-    [AC_EGREP_CPP([defined],
+-       [#ifdef __STDC_NO_VLA__
+-	defined
++    [AC_COMPILE_IFELSE([AC_LANG_SOURCE(
++[[	#ifndef __STDC_NO_VLA__
++	#error __STDC_NO_VLA__ not defined
+ 	#endif
+-       ],
++]])],
+        [ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'],
+        [AC_COMPILE_IFELSE(
+ 	  [AC_LANG_PROGRAM(
+diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
+index 74512e97d..499e4c024 100644
+--- a/lib/autoconf/functions.m4
++++ b/lib/autoconf/functions.m4
+@@ -842,11 +842,11 @@ AC_CHECK_FUNCS(getloadavg, [],
+ # Some definitions of getloadavg require that the program be installed setgid.
+ AC_CACHE_CHECK(whether getloadavg requires setgid,
+ 	       ac_cv_func_getloadavg_setgid,
+-[AC_EGREP_CPP([Yowza Am I SETGID yet],
+-[#include "$srcdir/$ac_config_libobj_dir/getloadavg.c"
+-#ifdef LDAV_PRIVILEGED
+-Yowza Am I SETGID yet
+-@%:@endif],
++[AC_PREPROC_IFELSE([AC_LANG_SOURCE(
++[[#include "$srcdir/$ac_config_libobj_dir/getloadavg.c"
++#ifndef LDAV_PRIVILEGED
++#error setgid not needed
++@%:@endif]])],
+ 	      ac_cv_func_getloadavg_setgid=yes,
+ 	      ac_cv_func_getloadavg_setgid=no)])
+ if test $ac_cv_func_getloadavg_setgid = yes; then
+diff --git a/lib/autoconf/headers.m4 b/lib/autoconf/headers.m4
+index 7f70e8fd4..19c124cc3 100644
+--- a/lib/autoconf/headers.m4
++++ b/lib/autoconf/headers.m4
+@@ -721,13 +721,11 @@ you to include it and time.h simultaneously.])
+ m4_define([_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H],
+ [AC_CACHE_CHECK([whether termios.h defines TIOCGWINSZ],
+ 		ac_cv_sys_tiocgwinsz_in_termios_h,
+-[AC_EGREP_CPP([yes],
+-	      [#include <sys/types.h>
+-#include <termios.h>
+-#ifdef TIOCGWINSZ
+-  yes
+-#endif
+-],
++[AC_COMPILE_IFELSE([AC_LANG_SOURCE(
++[AC_INCLUDES_DEFAULT
++[#include <termios.h>
++const int tiocgwinsz = TIOCGWINSZ;
++]])],
+ 		ac_cv_sys_tiocgwinsz_in_termios_h=yes,
+ 		ac_cv_sys_tiocgwinsz_in_termios_h=no)])
+ ])# _AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H
+@@ -738,13 +736,11 @@ m4_define([_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H],
+ m4_define([_AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL],
+ [AC_CACHE_CHECK([whether sys/ioctl.h defines TIOCGWINSZ],
+ 		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h,
+-[AC_EGREP_CPP([yes],
+-	      [#include <sys/types.h>
+-#include <sys/ioctl.h>
+-#ifdef TIOCGWINSZ
+-  yes
+-#endif
+-],
++[AC_COMPILE_IFELSE([AC_LANG_SOURCE(
++[AC_INCLUDES_DEFAULT
++[#include <sys/ioctl.h>
++const int tiocgwinsz = TIOCGWINSZ;
++]])],
+ 		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes,
+ 		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no)])
+ ])# _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch
new file mode 100644
index 0000000..36d1a94
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch
@@ -0,0 +1,32 @@
+From 1982523c6f052a2b361035a9d5d9737510ed0738 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Mon, 3 Apr 2023 09:12:40 -0700
+Subject: [PATCH 15/29] Support circa early 2022 Gnulib
+
+Problem reported by Frederic Berat in:
+https://lists.gnu.org/r/bug-rcs/2023-04/msg00001.html
+* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES):
+Bring back for compatibility with post-2.71, pre-2.73 Gnulib.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/specific.m4 | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index a2dc5d488..5dc006959 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -277,6 +277,8 @@ m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
+ 		       && LARGE_OFF_T % 2147483647 == 1)
+ 		      ? 1 : -1]];[]dnl
+ ])
++# Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it.
++m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [_AC_SYS_LARGEFILE_TEST_CODE])
+ 
+ # _AC_SYS_LARGEFILE_OPTIONS
+ # -------------------------
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch
new file mode 100644
index 0000000..e96faf2
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch
@@ -0,0 +1,121 @@
+From a1e82aff0fd842b0f09e2cd166560dfda725ba13 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Sun, 9 Apr 2023 11:41:57 -0700
+Subject: [PATCH 16/29] Improve year2038, largefile option processing
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* lib/autoconf/specific.m4 (_AC_SYS_YEAR2038_PROBE)
+(_AC_SYS_YEAR2038_ENABLE, _AC_SYS_YEAR2038_OPT_IN)
+(AC_SYS_YEAR2038, _AC_SYS_LARGEFILE_PROBE)
+(_AC_SYS_LARGEFILE_ENABLE): Do not use enable_largefile to record
+whether largefile is required, as ‘./configure
+--disable-largefile’ sets enable_largefile=no even if largefile is
+required and this disables largefile.  Instead, use a separate
+shell variable ac_largefile_required and test it as well.
+Similarly for enable_year2038.
+(_AC_SYS_LARGEFILE_ENABLE): Omit --disable-largefile help string
+if year2038 is required, since largefile is a prereq for year2038.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/specific.m4 | 35 ++++++++++++++++++++++-------------
+ 1 file changed, 22 insertions(+), 13 deletions(-)
+
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index 5dc006959..1a3f4a65c 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -155,10 +155,10 @@ AS_CASE([$ac_cv_sys_year2038_opts],
+   ["none needed"], [],
+   ["support not detected"],
+     [ac_have_year2038=no
+-     AS_CASE([$enable_year2038],
+-      [required],
++     AS_CASE([$ac_year2038_required,$enable_year2038],
++      [yes,*],
+         [AC_MSG_FAILURE([support for timestamps after Jan 2038 is required])],
+-      [yes],
++      [*,yes],
+         [# If we're not cross compiling and 'touch' works with a large
+         # timestamp, then we can presume the system supports wider time_t
+         # *somehow* and we just weren't able to detect it.  One common
+@@ -209,10 +209,12 @@ AS_CASE([$ac_cv_sys_year2038_opts],
+ m4_define([_AC_SYS_YEAR2038_ENABLE],
+ [m4_divert_text([DEFAULTS],
+   m4_provide_if([AC_SYS_YEAR2038_REQUIRED],
+-    [enable_year2038=required],
++    [ac_year2038_required=yes],
++    [ac_year2038_required=no]))dnl
++m4_divert_text([DEFAULTS],
+   m4_provide_if([AC_SYS_YEAR2038],
+     [enable_year2038=yes],
+-    [enable_year2038=no])))]dnl
++    [enable_year2038=no]))]dnl
+ [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [],
+ [AC_ARG_ENABLE([year2038],
+   m4_provide_if([AC_SYS_YEAR2038],
+@@ -231,7 +233,8 @@ m4_define([_AC_SYS_YEAR2038_ENABLE],
+ # documented macro.
+ AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
+ [m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
+-  AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++  AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no],
++    [_AC_SYS_YEAR2038_PROBE])
+   AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
+ ])])
+ 
+@@ -244,7 +247,8 @@ AC_DEFUN([AC_SYS_YEAR2038],
+ [m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
+   [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl
+ [m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
+-  AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
++  AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no],
++    [_AC_SYS_YEAR2038_PROBE])
+   AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
+ ])])
+ 
+@@ -326,7 +330,7 @@ AS_CASE([$ac_cv_sys_largefile_opts],
+   ["none needed"], [],
+   ["support not detected"],
+     [ac_have_largefile=no
+-     AS_IF([test $enable_largefile = required],
++     AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no],
+        [AC_MSG_FAILURE([support for large files is required])])],
+ 
+   ["-D_FILE_OFFSET_BITS=64"],
+@@ -358,11 +362,15 @@ _AC_SYS_YEAR2038_OPT_IN
+ m4_define([_AC_SYS_LARGEFILE_ENABLE],
+ [m4_divert_text([DEFAULTS],
+   m4_provide_if([AC_SYS_LARGEFILE_REQUIRED],
+-    [enable_largefile=required],
+-    [enable_largefile=yes]))]dnl
++    [ac_largefile_required=yes],
++    [ac_largefile_required=no]))dnl
++m4_divert_text([DEFAULTS],
++  [enable_largefile=yes])]dnl
+ [m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
+-[AC_ARG_ENABLE([largefile],
+-  [AS_HELP_STRING([--disable-largefile], [omit support for large files])])])])
++   [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [],
++      [AC_ARG_ENABLE([largefile],
++         [AS_HELP_STRING([--disable-largefile],
++	    [omit support for large files])])])])])
+ 
+ # AC_SYS_LARGEFILE
+ # ----------------
+@@ -377,7 +385,8 @@ m4_define([_AC_SYS_LARGEFILE_ENABLE],
+ # large files; see also AC_SYS_LARGEFILE_REQUIRED.
+ AC_DEFUN([AC_SYS_LARGEFILE],
+ [m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
+-  AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE])
++  AS_IF([test "$ac_largefile_required,$enable_largefile,$ac_year2038_required" != no,no,no],
++    [_AC_SYS_LARGEFILE_PROBE])
+   AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
+ ])])
+ 
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch
new file mode 100644
index 0000000..f62fe1c
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch
@@ -0,0 +1,30 @@
+From 0cc3c4ca8e6c550bf590ae45a916982b6ec50203 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Fri, 14 Apr 2023 16:18:35 +0200
+Subject: [PATCH 17/29] AC_SYS_YEAR2038: Fix configure failure on 32-bit mingw.
+
+* lib/autoconf/specific.m4 (_AC_SYS_YEAR2038_PROBE): Use the same option
+spelling as in _AC_SYS_YEAR2038_OPTIONS.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/specific.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index 1a3f4a65c..3bf1a0ed1 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -182,7 +182,7 @@ AS_CASE([$ac_cv_sys_year2038_opts],
+     [AC_DEFINE([_TIME_BITS], [64],
+       [Number of bits in time_t, on hosts where this is settable.])],
+ 
+-  ["-D__MINGW_USE_VC2005_COMPAT=1"],
++  ["-D__MINGW_USE_VC2005_COMPAT"],
+     [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
+       [Define to 1 on platforms where this makes time_t a 64-bit type.])],
+ 
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch
new file mode 100644
index 0000000..478c4e4
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch
@@ -0,0 +1,45 @@
+From e704a13c9644f4f4b9a9dd4e215ee7a1707f5850 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Fri, 3 Mar 2023 14:32:13 +0100
+Subject: [PATCH 18/29] Document limitation of BusyBox tr.
+
+BusyBox 1.35.0 tr, which is shipped with Alpine Linux 3.17, does not support
+the POSIX [x*n] syntax.
+
+* doc/autoconf.texi (Limitations of Usual Tools): Document limitation of 'tr'
+from BusyBox.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ doc/autoconf.texi | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/doc/autoconf.texi b/doc/autoconf.texi
+index 5d5f613e6..b3c708e87 100644
+--- a/doc/autoconf.texi
++++ b/doc/autoconf.texi
+@@ -20368,6 +20368,20 @@ $ @kbd{echo abc | coreutils/tr bc d}
+ add
+ @end example
+ 
++On platforms with the BusyBox tools, @command{tr} does not support the
++@code{[@var{x}*@var{n}]} option syntax.
++
++@example
++$ @kbd{echo abc | tr 'abcd' '[A*4]'}
++[A*
++$ @kbd{echo abc | coreutils/tr 'abcd' '[A*4]'}
++AAA
++$ @kbd{echo xyz | tr 'a-z' '[A*]'}
++]]]
++$ @kbd{echo xyz | coreutils/tr 'a-z' '[A*]'}
++AAA
++@end example
++
+ Posix requires @command{tr} to operate on binary files.  But at least
+ Solaris @command{/usr/ucb/tr} and @command{/usr/bin/tr} silently discard
+ @code{NUL} in the input prior to doing any translation.  When using
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch
new file mode 100644
index 0000000..db9307e
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch
@@ -0,0 +1,48 @@
+From 2277f2c15744ad1cc5cd1ecc50a43108e50530a2 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Wed, 19 Apr 2023 14:17:24 -0700
+Subject: [PATCH 19/29] AC_SYS_YEAR2038_REQUIRED: Fix configure failure with
+ MSVC.
+
+* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_PROBE): Distinguish the results
+"support not detected" and "supported through gnulib". If the result is
+"supported through gnulib", don't fail.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/specific.m4 | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index 3bf1a0ed1..f411695fe 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -323,11 +323,24 @@ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
+     test $ac_opt_found = no || break
+   done
+   CC="$ac_save_CC"
++  dnl Gnulib implements large file support for native Windows, based on the
++  dnl variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE.
++  m4_ifdef([gl_LARGEFILE], [
++    AC_REQUIRE([AC_CANONICAL_HOST])
++    if test $ac_opt_found != yes; then
++      AS_CASE([$host_os],
++        [mingw*],
++          [ac_cv_sys_largefile_opts="supported through gnulib"
++           ac_opt_found=yes]
++      )
++    fi
++  ])
+   test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"])
+ 
+ ac_have_largefile=yes
+ AS_CASE([$ac_cv_sys_largefile_opts],
+   ["none needed"], [],
++  ["supported through gnulib"], [],
+   ["support not detected"],
+     [ac_have_largefile=no
+      AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no],
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch
new file mode 100644
index 0000000..cbd89cc
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch
@@ -0,0 +1,405 @@
+From 9c0183724614517a67d0955065171465bab7154a Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Wed, 26 Apr 2023 18:21:48 -0700
+Subject: [PATCH 20/29] Tone down year-2038 changes
+
+New macro AC_SYS_YEAR2038_RECOMMENDED replaces new macro
+AC_SYS_YEAR2038_REQUIRED, and gives the builder an out of
+specifying --disable-year2038.  Remove new macro
+AC_SYS_LARGEFILE_REQUIRED, which was added only for symmetry and
+does not seem to have a great need.
+* NEWS, doc/autoconf.texi: Document this.
+* lib/autoconf/specific.m4:
+Be more specific about mid-January 2038 than just Jan 2038.
+(_AC_SYS_YEAR2038_PROBE): Ignore IF-NOT-DETECTED arg.
+If support is not detected, merely set ac_have_year2038=no instead
+of erroring out.  All callers changed.
+(_AC_SYS_YEAR2038_OPT_IN): Remove.  All callers removed.
+(AC_SYS_YEAR2038): Simplify by requiring AC_SYS_LARGEFILE
+and then testing the result.
+(AC_SYS_YEAR2038_REQUIRED, AC_SYS_LARGEFILE_REQUIRED): Remove.
+(AC_SYS_YEAR2038_RECOMMENDED): New macro.
+(_AC_SYS_LARGEFILE_PROBE): If support is not detected, merely set
+ac_have_largefile=no instead of erroring out.  All callers changed.
+Take on the burden of invoking year2038 probe as needed.
+(AC_SYS_LARGEFILE): Simplify.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ NEWS                     |  18 ++--
+ doc/autoconf.texi        |  34 +++-----
+ lib/autoconf/specific.m4 | 177 +++++++++++----------------------------
+ 3 files changed, 69 insertions(+), 160 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 8e4ecc1bf..a48a00858 100644
+--- a/NEWS
++++ b/NEWS
+@@ -51,7 +51,7 @@ GNU Autoconf NEWS - User visible changes.
+ 
+ ** New features
+ 
+-*** New macro AC_SYS_YEAR2038.
++*** New macros AC_SYS_YEAR2038 and AC_SYS_YEAR2038_RECOMMENDED.
+   This causes 'configure' to widen time_t if possible on systems where
+   time_t by default cannot represent file and other timestamps after
+   January 2038.  Widening is possible only on 32-bit GNU/Linux x86 and
+@@ -67,18 +67,14 @@ GNU Autoconf NEWS - User visible changes.
+   This is similar to longstanding consistency requirements with
+   --enable-largefile and --disable-largefile.
+ 
++  AC_SYS_YEAR2038_RECOMMENDED acts like AC_SYS_YEAR2038 except that
++  'configure' fails if the target lacks support for post-2038
++  timestamps and --disable-year2038 is not given.
++
+ *** AC_SYS_LARGEFILE now optionally arranges to widen time_t.
+   It now acts like AC_SYS_YEAR2038, except 'configure' defaults to
+-  --disable-year2038 unless AC_SYS_YEAR2038 is also present.
+-  As with AC_SYS_YEAR2038, application and library builders should
+-  configure consistently.
+-
+-*** New macros AC_SYS_LARGEFILE_REQUIRED and AC_SYS_YEAR2038_REQUIRED.
+-  These act like AC_SYS_LARGEFILE and AC_SYS_YEAR2038 respectively,
+-  except that 'configure' fails if the target lacks support
+-  for large files and for post-2038 timestamps, respectively.
+-  As with AC_SYS_YEAR2038, application and library builders should
+-  configure consistently.
++  --disable-year2038 unless either AC_SYS_YEAR2038 or
++  AC_SYS_YEAR2038_RECOMMENDED is also present.
+ 
+ *** AC_USE_SYSTEM_EXTENSIONS now enables C23 Annex F extensions
+   by defining __STDC_WANT_IEC_60559_EXT__.
+diff --git a/doc/autoconf.texi b/doc/autoconf.texi
+index b3c708e87..0f3047b31 100644
+--- a/doc/autoconf.texi
++++ b/doc/autoconf.texi
+@@ -8808,18 +8808,20 @@ if possible.  These types may include @code{blkcnt_t}, @code{dev_t},
+ 
+ Also, arrange for a @command{configure} option @code{--enable-year2038}
+ to request widening the type @code{time_t} as needed to represent file
+-wand other timestamps after January 2038.  This widening is possible
++wand other timestamps after mid-January 2038.  This widening is possible
+ only on 32-bit GNU/Linux x86 and ARM systems with glibc 2.34 or later.
+ If year-2038 support is requested but @command{configure} fails to find a way
+ to widen @code{time_t} and inspection of the system suggests that
+ this feature is available somehow, @command{configure} will error out.
+ If you want the default to be @code{--enable-year2038}, you can use
+-@code{AC_SYS_YEAR2038} instead of @code{AC_SYS_LARGEFILE}.
++@code{AC_SYS_YEAR2038} or @code{AC_SYS_YEAR2038_RECOMMENDED}
++instead of @code{AC_SYS_LARGEFILE}.
+ In other words, older packages that have long used @code{AC_SYS_LARGEFILE}
+ can have year-2038 support on 32-bit GNU/Linux x86 and ARM systems either by
+ regenerating @file{configure} with current Autoconf and configuring with
+-@option{--enable-year2038}, or by using @code{AC_SYS_YEAR2038} and
+-configuring without @option{--disable-year2038}.
++@option{--enable-year2038}, or by using @code{AC_SYS_YEAR2038} or
++@code{AC_SYS_YEAR2038_RECOMMENDED} and configuring without
++@option{--disable-year2038}.
+ A future version of Autoconf might change the @code{AC_SYS_LARGEFILE}
+ default to @code{--enable-year2038}; if and when that happens,
+ @code{AC_SYS_LARGEFILE} and @code{AC_SYS_YEAR2038} will become equivalent.
+@@ -8886,19 +8888,6 @@ library, enabling or disabling the application's large-file support may
+ break binary compatibility with that library.
+ @end defmac
+ 
+-@defmac AC_SYS_LARGEFILE_REQUIRED
+-@acindex{SYS_LARGEFILE_REQUIRED}
+-This macro has the same effect as @code{AC_SYS_LARGEFILE},
+-but also declares that the program being configured
+-requires support for large files.
+-If a large @code{off_t} is unavailable,
+-@command{configure} will error out.
+-The @option{--disable-largefile} option will not be available.
+-
+-Large-file and year-2038 support for applications and libraries should
+-be configured compatibly.  @xref{AC_SYS_LARGEFILE}.
+-@end defmac
+-
+ @anchor{AC_SYS_LONG_FILE_NAMES}
+ @defmac AC_SYS_LONG_FILE_NAMES
+ @acindex{SYS_LONG_FILE_NAMES}
+@@ -8927,14 +8916,13 @@ applications and libraries should be configured compatibly.
+ @xref{AC_SYS_LARGEFILE}.
+ @end defmac
+ 
+-@defmac AC_SYS_YEAR2038_REQUIRED
+-@acindex{SYS_YEAR2038_REQUIRED}
++@defmac AC_SYS_YEAR2038_RECOMMENDED
++@acindex{SYS_YEAR2038_RECOMMENDED}
+ This macro has the same effect as @code{AC_SYS_YEAR2038},
+ but also declares that the program being configured
+-requires support for timestamps after mid-January of 2038.
+-If a large @code{time_t} is unavailable,
+-@command{configure} will unconditionally error out.
+-The @option{--disable-year2038} option will not be available.
++should support timestamps after mid-January 2038.
++If a large @code{time_t} is unavailable, @command{configure} will error
++out unless the @option{--disable-year2038} option is specified.
+ 
+ Year-2038 support for applications and libraries should be configured
+ compatibly.  @xref{AC_SYS_YEAR2038}.
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index f411695fe..88e0479e8 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -115,8 +115,8 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
+                                       dnl 32-bit MinGW (misconfiguration)
+ ))
+ 
+-# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED])
+-# -----------------------------------------
++# _AC_SYS_YEAR2038_PROBE
++# ----------------------
+ # Subroutine of AC_SYS_YEAR2038.  Probe for time_t that can represent
+ # time points more than 2**31 - 1 seconds after the epoch (dates after
+ # 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts
+@@ -129,13 +129,10 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
+ # AC_TRY_RUN.  Note also that some systems only support large time_t
+ # together with large off_t.
+ #
+-# If support is not detected, the behavior depends on which of the
+-# top-level AC_SYS_YEAR2038 macros was used (see below).
+-#
+ # If you change this macro you may also need to change
+ # _AC_SYS_YEAR2038_OPTIONS.
+ AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
+-[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038],
++[AC_CACHE_CHECK([for $CC option for timestamps after 2038],
+   [ac_cv_sys_year2038_opts],
+   [ac_save_CPPFLAGS="$CPPFLAGS"
+   ac_opt_found=no
+@@ -154,29 +151,7 @@ ac_have_year2038=yes
+ AS_CASE([$ac_cv_sys_year2038_opts],
+   ["none needed"], [],
+   ["support not detected"],
+-    [ac_have_year2038=no
+-     AS_CASE([$ac_year2038_required,$enable_year2038],
+-      [yes,*],
+-        [AC_MSG_FAILURE([support for timestamps after Jan 2038 is required])],
+-      [*,yes],
+-        [# If we're not cross compiling and 'touch' works with a large
+-        # timestamp, then we can presume the system supports wider time_t
+-        # *somehow* and we just weren't able to detect it.  One common
+-        # case that we deliberately *don't* probe for is a system that
+-        # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
+-        # wide time_t.  (It would be inappropriate for us to override an
+-        # intentional use of -m32.)  Error out, demanding use of
+-        # --disable-year2038 if this is intentional.
+-        AS_IF([test $cross_compiling = no],
+-          [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
+-            [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
+-              [*'Feb  7  2106'* | *'Feb  7 17:10'*],
+-              [AC_MSG_FAILURE(m4_text_wrap(
+-      [this system appears to support timestamps after January 2038,
+-       but no mechanism for enabling wide 'time_t' was detected.
+-       Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.)
+-       To proceed with 32-bit time_t, configure with '--disable-year2038'.],
+-      [], [], [55]))])])])])],
++    [ac_have_year2038=no],
+ 
+   ["-D_TIME_BITS=64"],
+     [AC_DEFINE([_TIME_BITS], [64],
+@@ -189,7 +164,7 @@ AS_CASE([$ac_cv_sys_year2038_opts],
+   ["-U_USE_32_BIT_TIME_T"*],
+     [AC_MSG_FAILURE(m4_text_wrap(
+       [the 'time_t' type is currently forced to be 32-bit.
+-       It will stop working after January 2038.
++       It will stop working after mid-January 2038.
+        Remove _USE_32BIT_TIME_T from the compiler flags.],
+       [], [], [55]))],
+ 
+@@ -199,44 +174,23 @@ AS_CASE([$ac_cv_sys_year2038_opts],
+ 
+ # _AC_SYS_YEAR2038_ENABLE
+ # -----------------------
+-# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN.
+ # Depending on which of the YEAR2038 macros was used, add either an
+-# --enable-year2038, or a --disable-year2038, or no option at all to
+-# the configure script.  Note that this is expanded very late and
++# --enable-year2038 or a --disable-year2038 to
++# the configure script.  This is expanded very late and
+ # therefore there cannot be any code in the AC_ARG_ENABLE.  The
+ # default value for 'enable_year2038' is emitted unconditionally
+ # because the generated code always looks at this variable.
+ m4_define([_AC_SYS_YEAR2038_ENABLE],
+ [m4_divert_text([DEFAULTS],
+-  m4_provide_if([AC_SYS_YEAR2038_REQUIRED],
+-    [ac_year2038_required=yes],
+-    [ac_year2038_required=no]))dnl
+-m4_divert_text([DEFAULTS],
+   m4_provide_if([AC_SYS_YEAR2038],
+     [enable_year2038=yes],
+     [enable_year2038=no]))]dnl
+-[m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [],
+ [AC_ARG_ENABLE([year2038],
+   m4_provide_if([AC_SYS_YEAR2038],
+     [AS_HELP_STRING([--disable-year2038],
+-      [omit support for dates after Jan 2038])],
++      [don't support timestamps after 2038])],
+     [AS_HELP_STRING([--enable-year2038],
+-      [include support for dates after Jan 2038])]))])])
+-
+-# _AC_SYS_YEAR2038_OPT_IN
+-# -----------------------
+-# If the --enable-year2038 option is given to configure, attempt to
+-# detect and activate support for large time_t on 32-bit systems.
+-# This macro is automatically invoked by AC_SYS_LARGEFILE when large
+-# *file* support is detected.  It does not AC_REQUIRE AC_SYS_LARGEFILE
+-# to avoid a dependency loop, and is therefore unsafe to expose as a
+-# documented macro.
+-AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
+-[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
+-  AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no],
+-    [_AC_SYS_YEAR2038_PROBE])
+-  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
+-])])
++      [support timestamps after 2038])]))])
+ 
+ # AC_SYS_YEAR2038
+ # ---------------
+@@ -244,28 +198,39 @@ AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
+ # On systems where time_t is not always 64 bits, this probe can be
+ # skipped by passing the --disable-year2038 option to configure.
+ AC_DEFUN([AC_SYS_YEAR2038],
+-[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
+-  [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl
+-[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
+-  AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no],
+-    [_AC_SYS_YEAR2038_PROBE])
+-  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
+-])])
+-
+-# AC_SYS_YEAR2038_REQUIRED
+-# ------------------------
+-# Same as AC_SYS_YEAR2038, but declares that this program *requires*
+-# support for large time_t.  If we cannot find any way to make time_t
+-# capable of representing values larger than 2**31 - 1, configure will
+-# error out.  Furthermore, no --enable-year2038 nor --disable-year2038
+-# option will be available.
+-AC_DEFUN([AC_SYS_YEAR2038_REQUIRED],
+-[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
+-  [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl
+-[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
+-  _AC_SYS_YEAR2038_PROBE
+-  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
+-])])
++[AC_REQUIRE([AC_SYS_LARGEFILE])dnl
++AS_IF([test "$enable_year2038,$ac_have_year2038,$cross_compiling" = yes,no,no],
++ [# If we're not cross compiling and 'touch' works with a large
++  # timestamp, then we can presume the system supports wider time_t
++  # *somehow* and we just weren't able to detect it.  One common
++  # case that we deliberately *don't* probe for is a system that
++  # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
++  # wide time_t.  (It would be inappropriate for us to override an
++  # intentional use of -m32.)  Error out, demanding use of
++  # --disable-year2038 if this is intentional.
++  AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
++    [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
++       [*'Feb  7  2106'* | *'Feb  7 17:10'*],
++       [AC_MSG_FAILURE(m4_text_wrap(
++	  [this system appears to support timestamps after mid-January 2038,
++	   but no mechanism for enabling wide 'time_t' was detected.
++	   Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.)
++	   To proceed with 32-bit time_t, configure with '--disable-year2038'.],
++	  [], [], [55]))])])])])
++
++# AC_SYS_YEAR2038_RECOMMENDED
++# ---------------------------
++# Same as AC_SYS_YEAR2038, but recommend support for large time_t.
++# If we cannot find any way to make time_t capable of representing
++# values larger than 2**31 - 1, error out unless --disable-year2038 is given.
++AC_DEFUN([AC_SYS_YEAR2038_RECOMMENDED],
++[AC_REQUIRE([AC_SYS_YEAR2038])dnl
++AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
++   [AC_MSG_FAILURE(m4_text_wrap(
++      [could not enable timestamps after mid-January 2038.
++       Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.)
++       To proceed with 32-bit time_t, configure with '--disable-year2038'.],
++      [], [], [55]))])])
+ 
+ # _AC_SYS_LARGEFILE_TEST_CODE
+ # ---------------------------
+@@ -342,9 +307,7 @@ AS_CASE([$ac_cv_sys_largefile_opts],
+   ["none needed"], [],
+   ["supported through gnulib"], [],
+   ["support not detected"],
+-    [ac_have_largefile=no
+-     AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no],
+-       [AC_MSG_FAILURE([support for large files is required])])],
++    [ac_have_largefile=no],
+ 
+   ["-D_FILE_OFFSET_BITS=64"],
+     [AC_DEFINE([_FILE_OFFSET_BITS], [64],
+@@ -360,30 +323,9 @@ AS_CASE([$ac_cv_sys_largefile_opts],
+   [AC_MSG_ERROR(
+     [internal error: bad value for \$ac_cv_sys_largefile_opts])])
+ 
+-_AC_SYS_YEAR2038_OPT_IN
+-])
+-
+-# _AC_SYS_LARGEFILE_ENABLE
+-# ------------------------
+-# Subroutine of AC_SYS_LARGEFILE.  If AC_SYS_LARGEFILE_REQUIRED was
+-# not used at any point in this configure script, add a
+-# --disable-largefile option to the configure script.  Note that this
+-# is expanded very late and therefore there cannot be any code in the
+-# AC_ARG_ENABLE.  The default value for 'enable_largefile' is emitted
+-# unconditionally because the generated shell code always looks at
+-# this variable.
+-m4_define([_AC_SYS_LARGEFILE_ENABLE],
+-[m4_divert_text([DEFAULTS],
+-  m4_provide_if([AC_SYS_LARGEFILE_REQUIRED],
+-    [ac_largefile_required=yes],
+-    [ac_largefile_required=no]))dnl
+-m4_divert_text([DEFAULTS],
+-  [enable_largefile=yes])]dnl
+-[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
+-   [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [],
+-      [AC_ARG_ENABLE([largefile],
+-         [AS_HELP_STRING([--disable-largefile],
+-	    [omit support for large files])])])])])
++AS_IF([test "$enable_year2038" != no],
++  [_AC_SYS_YEAR2038_PROBE])
++AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])])
+ 
+ # AC_SYS_LARGEFILE
+ # ----------------
+@@ -394,29 +336,12 @@ m4_divert_text([DEFAULTS],
+ # Additionally, on Linux file systems with 64-bit inodes a file that happens
+ # to have a 64-bit inode number cannot be accessed by 32-bit applications on
+ # Linux x86/x86_64.  This can occur with file systems such as XFS and NFS.
+-# This macro allows configuration to continue if the system doesn't support
+-# large files; see also AC_SYS_LARGEFILE_REQUIRED.
+ AC_DEFUN([AC_SYS_LARGEFILE],
+-[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
+-  AS_IF([test "$ac_largefile_required,$enable_largefile,$ac_year2038_required" != no,no,no],
+-    [_AC_SYS_LARGEFILE_PROBE])
+-  AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
+-])])
+-
+-# AC_SYS_LARGEFILE_REQUIRED
+-# -------------------------
+-# Same as AC_SYS_LARGEFILE, but declares that this program *requires*
+-# support for large files.  If we cannot find a combination of compiler
+-# options and #defines that makes 'off_t' capable of representing 2**63 - 1,
+-# 'configure' will error out.  Furthermore, 'configure' will not offer a
+-# --disable-largefile command line option.
+-# If both AC_SYS_LARGEFILE and AC_SYS_LARGEFILE_REQUIRED are used in the
+-# same configure script -- in either order -- AC_SYS_LARGEFILE_REQUIRED wins.
+-AC_DEFUN([AC_SYS_LARGEFILE_REQUIRED],
+-[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
+-  _AC_SYS_LARGEFILE_PROBE
+-  AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
+-])])
++[AC_ARG_ENABLE([largefile],
++   [AS_HELP_STRING([--disable-largefile],
++      [omit support for large files])])dnl
++AS_IF([test "$enable_largefile,$enable_year2038" != no,no],
++  [_AC_SYS_LARGEFILE_PROBE])])
+ 
+ # AC_SYS_LONG_FILE_NAMES
+ # ----------------------
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch
new file mode 100644
index 0000000..56bcbb6
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch
@@ -0,0 +1,98 @@
+From 028526149ee804617a302ccef22cc6adbda681b0 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Wed, 10 May 2023 17:20:49 -0700
+Subject: [PATCH 21/29] Port AC_FUNC_MMAP to more-modern systems
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Don’t call
+getpagesize, as it’s tricky to configure, modern POSIX doesn’t
+require it, and calling it without including <unistd.h> provokes a
+compile-time error on modern systems.  Instead, rework the test
+to not need getpagesize.  Add a FIXME comment for unnecessary
+tests; I don't want to remove them now as we're too close to
+a release.  Remove long-obsolete comment about GNU grep.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/functions.m4 | 44 +++++----------------------------------
+ 1 file changed, 5 insertions(+), 39 deletions(-)
+
+diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
+index 499e4c024..5a0f01856 100644
+--- a/lib/autoconf/functions.m4
++++ b/lib/autoconf/functions.m4
+@@ -1283,6 +1283,7 @@ AU_ALIAS([AM_FUNC_MKTIME], [AC_FUNC_MKTIME])
+ AN_FUNCTION([mmap], [AC_FUNC_MMAP])
+ AC_DEFUN([AC_FUNC_MMAP],
+ [AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
++dnl FIXME: Remove the unnecessary checks for unistd.h, sys/param.h, getpagesize.
+ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h])
+ AC_CHECK_FUNCS_ONCE([getpagesize])
+ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
+@@ -1305,48 +1306,11 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
+    VM page cache was not coherent with the file system buffer cache
+    like early versions of FreeBSD and possibly contemporary NetBSD.)
+    For shared mappings, we should conversely verify that changes get
+-   propagated back to all the places they're supposed to be.
+-
+-   Grep wants private fixed already mapped.
+-   The main things grep needs to know about mmap are:
+-   * does it exist and is it safe to write into the mmap'd area
+-   * how to use it (BSD variants)  */
++   propagated back to all the places they're supposed to be.  */
+ 
+ #include <fcntl.h>
+ #include <sys/mman.h>
+ 
+-/* This mess was copied from the GNU getpagesize.h.  */
+-#ifndef HAVE_GETPAGESIZE
+-# ifdef _SC_PAGESIZE
+-#  define getpagesize() sysconf(_SC_PAGESIZE)
+-# else /* no _SC_PAGESIZE */
+-#  ifdef HAVE_SYS_PARAM_H
+-#   include <sys/param.h>
+-#   ifdef EXEC_PAGESIZE
+-#    define getpagesize() EXEC_PAGESIZE
+-#   else /* no EXEC_PAGESIZE */
+-#    ifdef NBPG
+-#     define getpagesize() NBPG * CLSIZE
+-#     ifndef CLSIZE
+-#      define CLSIZE 1
+-#     endif /* no CLSIZE */
+-#    else /* no NBPG */
+-#     ifdef NBPC
+-#      define getpagesize() NBPC
+-#     else /* no NBPC */
+-#      ifdef PAGESIZE
+-#       define getpagesize() PAGESIZE
+-#      endif /* PAGESIZE */
+-#     endif /* no NBPC */
+-#    endif /* no NBPG */
+-#   endif /* no EXEC_PAGESIZE */
+-#  else /* no HAVE_SYS_PARAM_H */
+-#   define getpagesize() 8192	/* punt totally */
+-#  endif /* no HAVE_SYS_PARAM_H */
+-# endif /* no _SC_PAGESIZE */
+-
+-#endif /* no HAVE_GETPAGESIZE */
+-
+ int
+ main (void)
+ {
+@@ -1355,7 +1319,9 @@ main (void)
+   int i, pagesize;
+   int fd, fd2;
+ 
+-  pagesize = getpagesize ();
++  /* The "page size" need not equal the system page size,
++     and need not even be a power of 2.  */
++  pagesize = 8192;
+ 
+   /* First, make a file with some known garbage in it. */
+   data = (char *) malloc (pagesize);
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch
new file mode 100644
index 0000000..1b168c7
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch
@@ -0,0 +1,91 @@
+From 33c26d2700f927432c756ccf7a4fc89403d35b95 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Wed, 10 May 2023 22:57:27 -0700
+Subject: [PATCH 22/29] Fix port of AC_FUNC_MMAP
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Problem reported by Matt Turner in:
+https://lists.gnu.org/r/bug-autoconf/2023-05/msg00005.html
+* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Go back to getting the
+page size, since the zero-fill test needs this after all.
+However, prefer sysconf (_SC_PAGESIZE) or sysconf (_SC_PAGE_SIZE)
+to getpagesize (), and use ‘long’ not ‘int’ to store the page size.
+Also, declare getpagesize if it is used as a function.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/functions.m4 | 41 ++++++++++++++++++++++++++++++++++-----
+ 1 file changed, 36 insertions(+), 5 deletions(-)
+
+diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
+index 5a0f01856..3d6e4aca8 100644
+--- a/lib/autoconf/functions.m4
++++ b/lib/autoconf/functions.m4
+@@ -1283,7 +1283,6 @@ AU_ALIAS([AM_FUNC_MKTIME], [AC_FUNC_MKTIME])
+ AN_FUNCTION([mmap], [AC_FUNC_MMAP])
+ AC_DEFUN([AC_FUNC_MMAP],
+ [AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+-dnl FIXME: Remove the unnecessary checks for unistd.h, sys/param.h, getpagesize.
+ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h])
+ AC_CHECK_FUNCS_ONCE([getpagesize])
+ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
+@@ -1311,17 +1310,49 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
+ #include <fcntl.h>
+ #include <sys/mman.h>
+ 
++#ifndef getpagesize
++# ifdef _SC_PAGESIZE
++#  define getpagesize() sysconf (_SC_PAGESIZE)
++# elif defined _SC_PAGE_SIZE
++#  define getpagesize() sysconf (_SC_PAGE_SIZE)
++# elif HAVE_GETPAGESIZE
++int getpagesize ();
++# else
++#  ifdef HAVE_SYS_PARAM_H
++#   include <sys/param.h>
++#   ifdef EXEC_PAGESIZE
++#    define getpagesize() EXEC_PAGESIZE
++#   else /* no EXEC_PAGESIZE */
++#    ifdef NBPG
++#     define getpagesize() NBPG * CLSIZE
++#     ifndef CLSIZE
++#      define CLSIZE 1
++#     endif /* no CLSIZE */
++#    else /* no NBPG */
++#     ifdef NBPC
++#      define getpagesize() NBPC
++#     else /* no NBPC */
++#      ifdef PAGESIZE
++#       define getpagesize() PAGESIZE
++#      endif /* PAGESIZE */
++#     endif /* no NBPC */
++#    endif /* no NBPG */
++#   endif /* no EXEC_PAGESIZE */
++#  else /* no HAVE_SYS_PARAM_H */
++#   define getpagesize() 8192	/* punt totally */
++#  endif /* no HAVE_SYS_PARAM_H */
++# endif
++#endif
++
+ int
+ main (void)
+ {
+   char *data, *data2, *data3;
+   const char *cdata2;
+-  int i, pagesize;
++  long i, pagesize;
+   int fd, fd2;
+ 
+-  /* The "page size" need not equal the system page size,
+-     and need not even be a power of 2.  */
+-  pagesize = 8192;
++  pagesize = getpagesize ();
+ 
+   /* First, make a file with some known garbage in it. */
+   data = (char *) malloc (pagesize);
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch
new file mode 100644
index 0000000..9fb33c3
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch
@@ -0,0 +1,38 @@
+From ccc0d640c4d829504568330f9674408af5092ffc Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Sat, 13 May 2023 09:56:33 -0700
+Subject: [PATCH 23/29] Improve AC_SYS_YEAR2038_RECOMMENDED diagnostic
+
+* lib/autoconf/specific.m4 (AC_SYS_YEAR2038_RECOMMENDED):
+Do not recommend gcc -m64, as that likely will not work.
+Problem reported by Bruno Haible in:
+https://lists.gnu.org/r/bug-gnulib/2023-05/msg00060.html
+Instead, mention that 32-bit time_t is not recommended
+for this package, before telling the builder how
+to configure with 32-bit time_t anyway.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/specific.m4 | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index 88e0479e8..91f20bf0d 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -228,8 +228,9 @@ AC_DEFUN([AC_SYS_YEAR2038_RECOMMENDED],
+ AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
+    [AC_MSG_FAILURE(m4_text_wrap(
+       [could not enable timestamps after mid-January 2038.
+-       Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.)
+-       To proceed with 32-bit time_t, configure with '--disable-year2038'.],
++       This package recommends support for these later timestamps.
++       However, to proceed with signed 32-bit time_t even though it
++       will fail then, configure with '--disable-year2038'.],
+       [], [], [55]))])])
+ 
+ # _AC_SYS_LARGEFILE_TEST_CODE
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch
new file mode 100644
index 0000000..2644c57
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch
@@ -0,0 +1,29 @@
+From 8e7281d7bebb5e389befe6e9a5afbb7b2ae13ae0 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Wed, 17 May 2023 11:50:27 -0700
+Subject: [PATCH 24/29] Improve AC_FUNC_MMAP comments
+
+* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Add comment.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/functions.m4 | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
+index 3d6e4aca8..54d04cc38 100644
+--- a/lib/autoconf/functions.m4
++++ b/lib/autoconf/functions.m4
+@@ -1311,6 +1311,8 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
+ #include <sys/mman.h>
+ 
+ #ifndef getpagesize
++/* Prefer sysconf to the legacy getpagesize function, as getpagesize has
++   been removed from POSIX and is limited to page sizes that fit in 'int'.  */
+ # ifdef _SC_PAGESIZE
+ #  define getpagesize() sysconf (_SC_PAGESIZE)
+ # elif defined _SC_PAGE_SIZE
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch
new file mode 100644
index 0000000..b7affed
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch
@@ -0,0 +1,62 @@
+From 103514e40da5f20aebf83a3446452ccebe5172bb Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Mon, 19 Jun 2023 14:04:29 -0700
+Subject: [PATCH 25/29] Fix AC_SYS_LARGEFILE on GNU/Linux alpha, s390x
+
+Problem reported by Matoro <https://bugs.gnu.org/64123>.
+* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_TEST_CODE):
+New overridable macro FTYPE, to test types other than off_t.
+(_AC_SYS_LARGEFILE_TEST_CODE): Test ino_t for
+-D_FILE_OFFSETBITS=64 too, if no flags are needed for off_t.
+Needed for GNU/Linux on alpha and s390x.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/autoconf/specific.m4 | 21 +++++++++++++++------
+ 1 file changed, 15 insertions(+), 6 deletions(-)
+
+diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
+index 91f20bf0d..9d5974548 100644
+--- a/lib/autoconf/specific.m4
++++ b/lib/autoconf/specific.m4
+@@ -238,13 +238,16 @@ AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
+ # C code used to probe for large file support.
+ m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
+ [@%:@include <sys/types.h>
+- /* Check that off_t can represent 2**63 - 1 correctly.
+-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
++@%:@ifndef FTYPE
++@%:@ define FTYPE off_t
++@%:@endif
++ /* Check that FTYPE can represent 2**63 - 1 correctly.
++    We can't simply define LARGE_FTYPE to be 9223372036854775807,
+     since some C++ compilers masquerading as C compilers
+     incorrectly reject 9223372036854775807.  */
+-@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+-  int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
+-		       && LARGE_OFF_T % 2147483647 == 1)
++@%:@define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31))
++  int FTYPE_is_large[[(LARGE_FTYPE % 2147483629 == 721
++		       && LARGE_FTYPE % 2147483647 == 1)
+ 		      ? 1 : -1]];[]dnl
+ ])
+ # Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it.
+@@ -284,7 +287,13 @@ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
+     AS_IF([test x"$ac_opt" != x"none needed"],
+       [CC="$ac_save_CC $ac_opt"])
+     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
+-      [ac_cv_sys_largefile_opts="$ac_opt"
++     [AS_IF([test x"$ac_opt" = x"none needed"],
++	[# GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
++	 CC="$CC -DFTYPE=ino_t"
++	 AC_COMPILE_IFELSE([], [],
++	   [CC="$CC -D_FILE_OFFSET_BITS=64"
++	    AC_COMPILE_IFELSE([], [ac_opt='-D_FILE_OFFSET_BITS=64'])])])
++      ac_cv_sys_largefile_opts=$ac_opt
+       ac_opt_found=yes])
+     test $ac_opt_found = no || break
+   done
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch
new file mode 100644
index 0000000..8d25396
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch
@@ -0,0 +1,270 @@
+From a7421b411b4359b97528c8f4e9dd8abe82235813 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Tue, 20 Jun 2023 13:23:19 -0700
+Subject: [PATCH 26/29] Modernize INSTALL
+
+Problem reported for gettext bootstrap by Julien Palard in:
+https://savannah.gnu.org/bugs/?62196
+* doc/install.texi: Give a brief info as to how to bootstrap,
+on packages built from Git rather from a distribution tarball.
+Remove aging details about c99, macOS, X, HP-UX, OSF/1, Solaris,
+Haiku, sun4.  Improve documentation for enable/disable and
+with/without options.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ doc/install.texi | 157 +++++++++++++++++++++--------------------------
+ 1 file changed, 70 insertions(+), 87 deletions(-)
+
+diff --git a/doc/install.texi b/doc/install.texi
+index e06689613..cec245fd0 100644
+--- a/doc/install.texi
++++ b/doc/install.texi
+@@ -18,9 +18,21 @@ warranty of any kind.
+ @node Basic Installation
+ @section Basic Installation
+ 
+-Briefly, the shell command
+-@samp{./configure@tie{}&& make@tie{}&& make@tie{}install}
+-should configure, build, and install this package.  The following
++Briefly, the following shell commands:
++
++@example
++test -f configure || ./bootstrap
++./configure
++make
++make install
++@end example
++
++@noindent
++should configure, build, and install this package.
++The @command{./bootstrap} line is intended for developers;
++you can omit it when building from a distribution tarball.
++
++The following
+ more-detailed instructions are generic; see the @file{README} file for
+ instructions specific to this package.
+ @ifclear autoconf
+@@ -32,6 +44,17 @@ More recommendations for GNU packages can be found in
+ @ref{Makefile Conventions, , Makefile Conventions, standards,
+ GNU Coding Standards}.
+ 
++If the @command{bootstrap} shell script exists, it attempts to build the
++@command{configure} shell script and related files, perhaps by
++downloading other software components from the network, and by using
++developer tools that are less commonly installed.  Because the output of
++@command{bootstrap} is system-independent, it is normally run by a
++package developer so that its output can be put into the distribution
++tarball and ordinary builders and users need not run @command{bootstrap}.
++Some packages have commands like @command{./autopull.sh} and
++@command {./autogen.sh} that you can run instead of @command{./bootstrap},
++for more fine-grained control over bootstrapping.
++
+ The @command{configure} shell script attempts to guess correct values
+ for various system-dependent variables used during compilation.  It uses
+ those values to create a @file{Makefile} in each directory of the
+@@ -63,8 +86,15 @@ The simplest way to compile this package is:
+ 
+ @enumerate
+ @item
+-@command{cd} to the directory containing the package's source code and type
+-@samp{./configure} to configure the package for your system.
++@command{cd} to the directory containing the package's source code.
++
++@item
++If this is a developer checkout and file @samp{configure} does not yet exist,
++type @samp{./bootstrap} to create it.
++You may need special developer tools and network access to bootstrap.
++
++@item
++Type @samp{./configure} to configure the package for your system.
+ 
+ Running @command{configure} might take a while.  While running, it prints some
+ messages telling which features it is checking for.
+@@ -124,7 +154,7 @@ parameters by setting variables in the command line or in the environment.
+ Here is an example:
+ 
+ @example
+-./configure CC=c99 CFLAGS=-g LIBS=-lposix
++./configure CC=gcc CFLAGS=-g LIBS=-lposix
+ @end example
+ 
+ @xref{Defining Variables}, for more details.
+@@ -148,21 +178,10 @@ architecture at a time in the source code directory.  After you have
+ installed the package for one architecture, use @samp{make distclean}
+ before reconfiguring for another architecture.
+ 
+-On MacOS X 10.5 and later systems, you can create libraries and
+-executables that work on multiple system types---known as @dfn{fat} or
+-@dfn{universal} binaries---by specifying multiple @option{-arch} options
+-to the compiler but only a single @option{-arch} option to the
+-preprocessor.  Like this:
+-
+-@example
+-./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+-            CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+-            CPP="gcc -E" CXXCPP="g++ -E"
+-@end example
+-
+-This is not guaranteed to produce working output in all cases, you may
+-have to build one architecture at a time and combine the results
+-using the @command{lipo} tool if you have problems.
++Some platforms, notably macOS, support ``fat'' or ``universal'' binaries,
++where a single binary can execute on different architectures.
++On these platforms you can configure and compile just once,
++with options specific to that platform.
+ 
+ @node Installation Names
+ @section Installation Names
+@@ -227,20 +246,16 @@ an extra prefix or suffix on their names by giving @command{configure}
+ the option @option{--program-prefix=@var{PREFIX}} or
+ @option{--program-suffix=@var{SUFFIX}}.
+ 
+-Some packages pay attention to @option{--enable-@var{feature}} options
++Some packages pay attention to @option{--enable-@var{feature}}
++and @option{--disable-@var{feature}} options
+ to @command{configure}, where @var{feature} indicates an optional part
+ of the package.  They may also pay attention to
+-@option{--with-@var{package}} options, where @var{package} is something
+-like @samp{gnu-as} or @samp{x} (for the X Window System).  The
+-@file{README} should mention any @option{--enable-} and @option{--with-}
++@option{--with-@var{package}} and @option{--without-@var{package}} options,
++where @var{package} is something like @samp{gnu-ld}.
++@samp{./configure --help} should mention the
++@option{--enable-...} and @option{--with-...}
+ options that the package recognizes.
+ 
+-For packages that use the X Window System, @command{configure} can
+-usually find the X include and library files automatically, but if it
+-doesn't, you can use the @command{configure} options
+-@option{--x-includes=@var{dir}} and @option{--x-libraries=@var{dir}} to
+-specify their locations.
+-
+ Some packages offer the ability to configure how verbose the execution
+ of @command{make} will be.  For these packages, running
+ @samp{./configure --enable-silent-rules} sets the default to minimal
+@@ -248,53 +263,6 @@ output, which can be overridden with @code{make V=1}; while running
+ @samp{./configure --disable-silent-rules} sets the default to verbose,
+ which can be overridden with @code{make V=0}.
+ 
+-@node Particular Systems
+-@section Particular systems
+-
+-On HP-UX, the default C compiler is not ANSI C compatible.  If GNU CC is
+-not installed, it is recommended to use the following options in order to
+-use an ANSI C compiler:
+-
+-@example
+-./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+-@end example
+-
+-@noindent
+-and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+-
+-HP-UX @command{make} updates targets which have the same timestamps as
+-their prerequisites, which makes it generally unusable when shipped
+-generated files such as @command{configure} are involved.  Use GNU
+-@command{make} instead.
+-
+-On OSF/1 a.k.a.@: Tru64, some versions of the default C compiler cannot
+-parse its @code{<wchar.h>} header file.  The option @option{-nodtk} can be
+-used as a workaround.  If GNU CC is not installed, it is therefore
+-recommended to try
+-
+-@example
+-./configure CC="cc"
+-@end example
+-
+-@noindent
+-and if that doesn't work, try
+-
+-@example
+-./configure CC="cc -nodtk"
+-@end example
+-
+-On Solaris, don't put @code{/usr/ucb} early in your @env{PATH}.  This
+-directory contains several dysfunctional programs; working variants
+-of these programs are available in @code{/usr/bin}.  So, if you need
+-@code{/usr/ucb} in your @env{PATH}, put it @emph{after} @code{/usr/bin}.
+-
+-On Haiku, software installed for all users goes in @file{/boot/common},
+-not @file{/usr/local}.  It is recommended to use the following options:
+-
+-@example
+-./configure --prefix=/boot/common
+-@end example
+-
+ @node System Type
+ @section Specifying the System Type
+ 
+@@ -304,7 +272,8 @@ will run on.  Usually, assuming the package is built to be run on the
+ @emph{same} architectures, @command{configure} can figure that out, but
+ if it prints a message saying it cannot guess the machine type, give it
+ the @option{--build=@var{type}} option.  @var{type} can either be a
+-short name for the system type, such as @samp{sun4}, or a canonical name
++short name like @samp{mingw64} for the system type, or a canonical name
++like @samp{x86_64-pc-linux-gnu}
+ which has the form:
+ 
+ @example
+@@ -319,6 +288,7 @@ where @var{system} can have one of these forms:
+ @var{kernel}-@var{os}
+ @end example
+ 
++@noindent
+ See the file @file{config.sub} for the possible values of each field.
+ If @file{config.sub} isn't included in this package, then this package
+ doesn't need to know the machine type.
+@@ -405,13 +375,6 @@ traditionally @file{config.cache}.  @var{file} defaults to
+ @itemx -C
+ Alias for @option{--cache-file=config.cache}.
+ 
+-@item --quiet
+-@itemx --silent
+-@itemx -q
+-Do not print messages saying which checks are being made.  To suppress
+-all normal output, redirect it to @file{/dev/null} (any error messages
+-will still be shown).
+-
+ @item --srcdir=@var{dir}
+ Look for the package's source code in directory @var{dir}.  Usually
+ @command{configure} can determine that directory automatically.
+@@ -421,13 +384,33 @@ Use @var{dir} as the installation prefix.  @ref{Installation Names}
+ for more details, including other options available for fine-tuning
+ the installation locations.
+ 
++@item --build=@var{type}
++Build for architecture @var{type}.  @ref{Specifying the System Type}
++for more details, including other system type options.
++
++@item --enable-@var{feature}
++@itemx --disable-@var{feature}
++Enable or disable the optional @var{feature}.  @xref{Optional Features}.
++
++@item --with-@var{package}
++@itemx --without-@var{package}
++Use or omit @var{package} when building.  @xref{Optional Features}.
++
++@item --quiet
++@itemx --silent
++@itemx -q
++Do not print messages saying which checks are being made.  To suppress
++all normal output, redirect it to @file{/dev/null} (any error messages
++will still be shown).
++
+ @item --no-create
+ @itemx -n
+ Run the configure checks, but stop before creating any output files.
+ @end table
+ 
+ @noindent
+-@command{configure} also accepts some other, not widely useful, options.
++@command{configure} also recognizes several environment variables,
++and accepts some other, less widely useful, options.
+ Run @samp{configure --help} for more details.
+ 
+ @c Local Variables:
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch
new file mode 100644
index 0000000..7ab5074
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch
@@ -0,0 +1,58 @@
+From eaea61e4485cdecf989fa777ff4e166c945a6eea Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Tue, 20 Jun 2023 13:39:15 -0700
+Subject: [PATCH 27/29] doc: fix broken cross-refs
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ doc/autoconf.texi | 5 +----
+ doc/install.texi  | 2 +-
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/doc/autoconf.texi b/doc/autoconf.texi
+index 0f3047b31..7817fc1b5 100644
+--- a/doc/autoconf.texi
++++ b/doc/autoconf.texi
+@@ -604,7 +604,6 @@ Running @command{configure} Scripts
+ * Multiple Architectures::      Compiling for multiple architectures at once
+ * Installation Names::          Installing in different directories
+ * Optional Features::           Selecting optional features
+-* Particular Systems::          Particular systems
+ * System Type::                 Specifying the system type
+ * Sharing Defaults::            Setting site-wide defaults for @command{configure}
+ * Defining Variables::          Specifying the compiler etc.
+@@ -23304,7 +23303,6 @@ may use comes with Autoconf.
+ * Multiple Architectures::      Compiling for multiple architectures at once
+ * Installation Names::          Installing in different directories
+ * Optional Features::           Selecting optional features
+-* Particular Systems::          Particular systems
+ * System Type::                 Specifying the system type
+ * Sharing Defaults::            Setting site-wide defaults for @command{configure}
+ * Defining Variables::          Specifying the compiler etc.
+@@ -26990,8 +26988,7 @@ for simple differences.
+ @item
+ Most tests which produce their result in a substituted variable allow to
+ override the test by setting the variable on the @command{configure}
+-command line (@pxref{Compilers and Options}, @pxref{Defining Variables},
+-@pxref{Particular Systems}).
++command line (@pxref{Compilers and Options}, @pxref{Defining Variables}).
+ 
+ @item
+ Many tests store their result in a cache variable (@pxref{Caching
+diff --git a/doc/install.texi b/doc/install.texi
+index cec245fd0..6d9788fa9 100644
+--- a/doc/install.texi
++++ b/doc/install.texi
+@@ -385,7 +385,7 @@ for more details, including other options available for fine-tuning
+ the installation locations.
+ 
+ @item --build=@var{type}
+-Build for architecture @var{type}.  @ref{Specifying the System Type}
++Build for architecture @var{type}.  @ref{System Type}.
+ for more details, including other system type options.
+ 
+ @item --enable-@var{feature}
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch
new file mode 100644
index 0000000..95ad80d
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch
@@ -0,0 +1,224 @@
+From 328f9b88ef896e8e31818c50d9ec2ade5c892ea4 Mon Sep 17 00:00:00 2001
+From: Bruno Haible <bruno@clisp.org>
+Date: Fri, 23 Jun 2023 17:37:35 +0200
+Subject: [PATCH 28/29] INSTALL: Clarify --build, --host, --target, and the
+ system types.
+
+* doc/install.texi (Compilers and Options): Add another reference.
+(System Types): Renamed from System Type. Explain how to canonicalize
+and how to validate a system type. Don't explain --build, --host,
+--target here.
+(Building for a different system type): New section.
+(Troubleshooting the Build Type): New section.
+(Configuring a Compiler): New section.
+(configure Invocation): Mention the --host option, not the --build
+option, since --build is so rarely needed.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ doc/autoconf.texi |   6 +--
+ doc/install.texi  | 132 +++++++++++++++++++++++++++++++++++++---------
+ 2 files changed, 111 insertions(+), 27 deletions(-)
+
+diff --git a/doc/autoconf.texi b/doc/autoconf.texi
+index 7817fc1b5..043f7fb21 100644
+--- a/doc/autoconf.texi
++++ b/doc/autoconf.texi
+@@ -604,7 +604,7 @@ Running @command{configure} Scripts
+ * Multiple Architectures::      Compiling for multiple architectures at once
+ * Installation Names::          Installing in different directories
+ * Optional Features::           Selecting optional features
+-* System Type::                 Specifying the system type
++* System Types::                Specifying a system type
+ * Sharing Defaults::            Setting site-wide defaults for @command{configure}
+ * Defining Variables::          Specifying the compiler etc.
+ * configure Invocation::        Changing how @command{configure} runs
+@@ -22383,7 +22383,7 @@ system it's running on.  To do so it runs a script called
+ command or symbols predefined by the C preprocessor.
+ 
+ Alternately, the user can specify the system type with command line
+-arguments to @command{configure} (@pxref{System Type}.  Doing so is
++arguments to @command{configure} (@pxref{System Types}.  Doing so is
+ necessary when
+ cross-compiling.  In the most complex case of cross-compiling, three
+ system types are involved.  The options to specify them are:
+@@ -23303,7 +23303,7 @@ may use comes with Autoconf.
+ * Multiple Architectures::      Compiling for multiple architectures at once
+ * Installation Names::          Installing in different directories
+ * Optional Features::           Selecting optional features
+-* System Type::                 Specifying the system type
++* System Types::                Specifying a system type
+ * Sharing Defaults::            Setting site-wide defaults for @command{configure}
+ * Defining Variables::          Specifying the compiler etc.
+ * configure Invocation::        Changing how @command{configure} runs
+diff --git a/doc/install.texi b/doc/install.texi
+index 6d9788fa9..a3ef17828 100644
+--- a/doc/install.texi
++++ b/doc/install.texi
+@@ -157,8 +157,16 @@ Here is an example:
+ ./configure CC=gcc CFLAGS=-g LIBS=-lposix
+ @end example
+ 
+-@xref{Defining Variables}, for more details.
+-
++See
++@ref{Defining Variables} and
++@ifset autoconf
++@ref{Preset Output Variables}
++@end ifset
++@ifclear autoconf
++@ref{Preset Output Variables,,, autoconf, Autoconf}
++@c (@url{https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Preset-Output-Variables.html})
++@end ifclear
++for more details.
+ 
+ @node Multiple Architectures
+ @section Compiling For Multiple Architectures
+@@ -263,18 +271,17 @@ output, which can be overridden with @code{make V=1}; while running
+ @samp{./configure --disable-silent-rules} sets the default to verbose,
+ which can be overridden with @code{make V=0}.
+ 
+-@node System Type
+-@section Specifying the System Type
++@node System Types
++@section Specifying a System Type
+ 
+-There may be some features @command{configure} cannot figure out
+-automatically, but needs to determine by the type of machine the package
+-will run on.  Usually, assuming the package is built to be run on the
+-@emph{same} architectures, @command{configure} can figure that out, but
+-if it prints a message saying it cannot guess the machine type, give it
+-the @option{--build=@var{type}} option.  @var{type} can either be a
+-short name like @samp{mingw64} for the system type, or a canonical name
+-like @samp{x86_64-pc-linux-gnu}
+-which has the form:
++The following sections go into details regarding situations where you
++may have to specify a system type, either through the option
++@option{--host=@var{type}}, or through the option
++@option{--build=@var{type}}, or -- in the case of compilers -- through
++@option{--target=@var{type}}.
++
++A system type @var{type} can either be a short name like @samp{mingw64},
++or a canonical name like @samp{x86_64-pc-linux-gnu} which has the form:
+ 
+ @example
+ @var{cpu}-@var{company}-@var{system}
+@@ -291,16 +298,93 @@ where @var{system} can have one of these forms:
+ @noindent
+ See the file @file{config.sub} for the possible values of each field.
+ If @file{config.sub} isn't included in this package, then this package
+-doesn't need to know the machine type.
++doesn't need to know any machine type.
++
++The file @file{config.sub} is a program that validates and canonicalizes
++a system type.
++It can do canonicalization, as in
++
++@example
++$ sh config.sub x86_64-linux
++x86_64-pc-linux-gnu
++$ sh config.sub arm64-linux
++aarch64-unknown-linux-gnu
++@end example
++
++@noindent
++It also validates the parts.  For example, this interaction tells you
++that ``crusoe'' is not a valid cpu architecture name:
+ 
+-If you are @emph{building} compiler tools for cross-compiling, you
+-should use the option @option{--target=@var{type}} to select the type of
+-system they will produce code for.
++@example
++$ sh config.sub crusoe-linux
++Invalid configuration `crusoe-linux': machine `crusoe-unknown' not recognized
++@end example
++
++@node Building for a different system type
++@section Creating binaries for a different system type
++
++When you want to create binaries that will run on a different machine
++type than the one you are building on, you need to specify both
++@itemize @bullet
++@item
++a @option{--host=@var{type}} option, specifying the machine type on
++which the binaries shall run,
++@item
++compiler variables (@code{CC} for the C compiler, @code{CXX} for the C++
++compiler, and so on), pointing to compilers that generate object code
++for that machine type.
++@end itemize
++
++For example, to create binaries intended to run on a 64-bit ARM
++processor:
++@example
++./configure --host=aarch64-linux-gnu \
++            CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
++@end example
+ 
+-If you want to @emph{use} a cross compiler, that generates code for a
+-platform different from the build platform, you should specify the
+-@dfn{host} platform (i.e., that on which the generated programs will
+-eventually be run) with @option{--host=@var{type}}.
++If you do this on a machine that can execute such binaries (e.g.@: by
++virtue of the @code{qemu-aarch64} program, system libraries for that
++architecture under @code{$QEMU_LD_PREFIX}, and a Linux
++@code{binfmt_misc} configuration), the build behaves like a native
++build.
++If not, the build is a cross-build, in the sense that @code{configure}
++will make cross-compilation guesses instead of running test programs,
++and ``make check'' will not work.
++
++@node Troubleshooting the Build Type
++@section Fixing a ``cannot guess build type'' error
++
++In rare cases, it may happen that @code{configure} fails with the error
++message ``cannot guess build type''.
++This error means that the files @file{config.guess} and
++@file{config.sub} don't recognize the type of the system on which you
++are building.
++In this case, first fetch the newest versions of these files, from
++@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess}
++and
++@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub},
++respectively, and use these as drop-in replacement for the files
++@file{config.guess} and @file{config.sub} that were shipped with this
++package.
++
++If this resolves the problem, feel free to report the solution to the
++maintainers of this package.
++
++Otherwise, it means that your system is not yet supported by
++@file{config.guess} and @file{config.sub}.
++As a workaround, you can use a configure option
++@option{--build=@var{type}}, where @var{type} comes closest to your
++system type.
++Also, you're welcome to file a report to
++@email{config-patches@@gnu.org}.
++
++@node Configuring a Compiler
++@section Configuration options specific to a compiler
++
++If you are building a compiler, and this compiler should generate code
++for a system type that is different from the one on which the compiler
++binaries shall run on, use the option @option{--target=@var{type}} to
++select the type of system for which the compiler should produce code.
+ 
+ @node Sharing Defaults
+ @section Sharing Defaults
+@@ -384,9 +468,9 @@ Use @var{dir} as the installation prefix.  @ref{Installation Names}
+ for more details, including other options available for fine-tuning
+ the installation locations.
+ 
+-@item --build=@var{type}
+-Build for architecture @var{type}.  @ref{System Type}.
+-for more details, including other system type options.
++@item --host=@var{type}
++Build binaries for architecture @var{type}.  @ref{System Types} and
++@ref{Building for a different system type} for more details.
+ 
+ @item --enable-@var{feature}
+ @itemx --disable-@var{feature}
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch
new file mode 100644
index 0000000..9129ab7
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch
@@ -0,0 +1,366 @@
+From d8ca8b323873e5cd9d969a062f70b31db450ba53 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Sat, 24 Jun 2023 14:39:34 -0700
+Subject: [PATCH 29/29] Shorten and improve INSTALL
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Rewrite install.texi so that INSTALL is shorter and hopefully
+more useful for new installers.
+* doc/install.texi: When not building the Autoconf manual, put
+copyright notice at the end, and omit external references as they
+do not work in INSTALL.
+Avoid long URLs as they do not work well in INSTALL or
+in info files.  Be more consistent (though not entirely
+consistent) about “system” vs “architecture”.
+(System Types, Building for a different system type)
+(Troubleshooting the Build Type): Coalesce into a single section
+and rewrite for clarity and brevity.  Mention build-aux.  Do not
+mention --target here as it’s too rare to make the cut.
+
+Upstream-Status: Backport
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ doc/install.texi | 224 +++++++++++++++++------------------------------
+ 1 file changed, 82 insertions(+), 142 deletions(-)
+
+diff --git a/doc/install.texi b/doc/install.texi
+index a3ef17828..6c3a9c21c 100644
+--- a/doc/install.texi
++++ b/doc/install.texi
+@@ -2,23 +2,13 @@
+ @c the INSTALL file.
+ 
+ @ifclear autoconf
+-
+ @unnumbered Installation Instructions
+-
+-Copyright @copyright{} 1994--1996, 1999--2002, 2004--2017, 2020--2023
+-Free Software Foundation, Inc.
+-
+-Copying and distribution of this file, with or without modification, are
+-permitted in any medium without royalty provided the copyright notice
+-and this notice are preserved.  This file is offered as-is, without
+-warranty of any kind.
+-
+ @end ifclear
+ 
+ @node Basic Installation
+ @section Basic Installation
+ 
+-Briefly, the following shell commands:
++The following shell commands:
+ 
+ @example
+ test -f configure || ./bootstrap
+@@ -41,8 +31,13 @@ of the features documented below.  The lack of an optional feature in a
+ given package is not necessarily a bug.
+ @end ifclear
+ More recommendations for GNU packages can be found in
++@ifset autoconf
+ @ref{Makefile Conventions, , Makefile Conventions, standards,
+ GNU Coding Standards}.
++@end ifset
++@ifclear autoconf
++the GNU Coding Standards.
++@end ifclear
+ 
+ If the @command{bootstrap} shell script exists, it attempts to build the
+ @command{configure} shell script and related files, perhaps by
+@@ -61,8 +56,8 @@ those values to create a @file{Makefile} in each directory of the
+ package.  It may also create one or more @file{.h} files containing
+ system-dependent definitions.  Finally, it creates a shell script
+ @file{config.status} that you can run in the future to recreate the
+-current configuration, and a file @file{config.log} containing compiler
+-output (useful mainly for debugging @command{configure}).
++current configuration, and a file @file{config.log} containing
++output useful for debugging @command{configure}.
+ 
+ It can also use an optional file (typically called @file{config.cache}
+ and enabled with @option{--cache-file=config.cache} or simply
+@@ -77,10 +72,9 @@ they can be considered for the next release.  If you are using the
+ cache, and at some point @file{config.cache} contains results you don't
+ want to keep, you may remove or edit it.
+ 
+-The file @file{configure.ac} (or @file{configure.in}) is used to create
+-@file{configure} by a program called @command{autoconf}.  You need
+-@file{configure.ac} if you want to change it or regenerate
+-@file{configure} using a newer version of @command{autoconf}.
++The @command{autoconf} program generates @file{configure} from the file
++@file{configure.ac}.  Normally you should edit @file{configure.ac}
++instead of editing @file{configure} directly.
+ 
+ The simplest way to compile this package is:
+ 
+@@ -95,8 +89,7 @@ You may need special developer tools and network access to bootstrap.
+ 
+ @item
+ Type @samp{./configure} to configure the package for your system.
+-
+-Running @command{configure} might take a while.  While running, it prints some
++This might take a while.  While running, @command{configure} prints
+ messages telling which features it is checking for.
+ 
+ @item
+@@ -125,21 +118,11 @@ code directory by typing @samp{make clean}.  To also remove the files
+ that @command{configure} created (so you can compile the package for a
+ different kind of computer), type @samp{make distclean}.  There is also
+ a @samp{make maintainer-clean} target, but that is intended mainly for
+-the package's developers.  If you use it, you may have to get all sorts
+-of other programs in order to regenerate files that came with the
+-distribution.
++the package's developers.  If you use it, you may have to bootstrap again.
+ 
+ @item
+-Often, you can also type @samp{make uninstall} to remove the installed
+-files again.  In practice, not all packages have tested that
+-uninstallation works correctly, even though it is required by the
+-GNU Coding Standards.
+-
+-@item
+-Some packages, particularly those that use Automake, provide @samp{make
+-distcheck}, which can by used by developers to test that all other
+-targets like @samp{make install} and @samp{make uninstall} work
+-correctly.  This target is generally not run by end users.
++If the package follows the GNU Coding Standards,
++you can type @samp{make uninstall} to remove the installed files.
+ @end enumerate
+ 
+ @node Compilers and Options
+@@ -158,21 +141,17 @@ Here is an example:
+ @end example
+ 
+ See
+-@ref{Defining Variables} and
++@ref{Defining Variables}
+ @ifset autoconf
+-@ref{Preset Output Variables}
++and @ref{Preset Output Variables}
+ @end ifset
+-@ifclear autoconf
+-@ref{Preset Output Variables,,, autoconf, Autoconf}
+-@c (@url{https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Preset-Output-Variables.html})
+-@end ifclear
+ for more details.
+ 
+ @node Multiple Architectures
+ @section Compiling For Multiple Architectures
+ 
+ You can compile the package for more than one kind of computer at the
+-same time, by placing the object files for each architecture in their
++same time, by placing the object files for each system in their
+ own directory.  To do this, you can use GNU @command{make}.
+ @command{cd} to the directory where you want the object files and
+ executables to go and run the @command{configure} script.
+@@ -182,9 +161,9 @@ known as a @dfn{VPATH} build.
+ 
+ With a non-GNU @command{make},
+ it is safer to compile the package for one
+-architecture at a time in the source code directory.  After you have
+-installed the package for one architecture, use @samp{make distclean}
+-before reconfiguring for another architecture.
++system at a time in the source code directory.  After you have
++installed the package for one system, use @samp{make distclean}
++before reconfiguring for another system.
+ 
+ Some platforms, notably macOS, support ``fat'' or ``universal'' binaries,
+ where a single binary can execute on different architectures.
+@@ -274,117 +253,65 @@ which can be overridden with @code{make V=0}.
+ @node System Types
+ @section Specifying a System Type
+ 
+-The following sections go into details regarding situations where you
+-may have to specify a system type, either through the option
+-@option{--host=@var{type}}, or through the option
+-@option{--build=@var{type}}, or -- in the case of compilers -- through
+-@option{--target=@var{type}}.
+-
+-A system type @var{type} can either be a short name like @samp{mingw64},
+-or a canonical name like @samp{x86_64-pc-linux-gnu} which has the form:
+-
+-@example
+-@var{cpu}-@var{company}-@var{system}
+-@end example
+-
+-@noindent
+-where @var{system} can have one of these forms:
++By default @command{configure} builds for the current system.
++To create binaries that can run on a different system type,
++specify a @option{--host=@var{type}} option along with compiler
++variables that specify how to generate object code for @var{type}.
++For example, to create binaries intended to run on a 64-bit ARM
++processor:
+ 
+ @example
+-@var{os}
+-@var{kernel}-@var{os}
++./configure --host=aarch64-linux-gnu \
++   CC=aarch64-linux-gnu-gcc \
++   CXX=aarch64-linux-gnu-g++
+ @end example
+ 
+ @noindent
+-See the file @file{config.sub} for the possible values of each field.
+-If @file{config.sub} isn't included in this package, then this package
+-doesn't need to know any machine type.
+-
+-The file @file{config.sub} is a program that validates and canonicalizes
+-a system type.
+-It can do canonicalization, as in
++If done on a machine that can execute these binaries
++(e.g., via @command{qemu-aarch64}, @env{$QEMU_LD_PREFIX}, and Linux's
++@code{binfmt_misc} capability), the build behaves like a native build.
++Otherwise it is a cross-build: @code{configure}
++will make cross-compilation guesses instead of running test programs,
++and @code{make check} will not work.
++
++A system type can either be a short name like @samp{mingw64},
++or a canonical name like @samp{x86_64-pc-linux-gnu}.
++Canonical names have the form @var{cpu}-@var{company}-@var{system}
++where @var{system} is either @var{os} or @var{kernel}-@var{os}.
++To canonicalize and validate a system type,
++you can run the command @file{config.sub},
++which is often squirreled away in a subdirectory like @file{build-aux}.
++For example:
+ 
+ @example
+-$ sh config.sub x86_64-linux
+-x86_64-pc-linux-gnu
+-$ sh config.sub arm64-linux
++$ build-aux/config.sub arm64-linux
+ aarch64-unknown-linux-gnu
++$ build-aux/config.sub riscv-lnx
++Invalid configuration 'riscv-lnx': OS 'lnx' not recognized
+ @end example
+ 
+ @noindent
+-It also validates the parts.  For example, this interaction tells you
+-that ``crusoe'' is not a valid cpu architecture name:
+-
+-@example
+-$ sh config.sub crusoe-linux
+-Invalid configuration `crusoe-linux': machine `crusoe-unknown' not recognized
+-@end example
+-
+-@node Building for a different system type
+-@section Creating binaries for a different system type
+-
+-When you want to create binaries that will run on a different machine
+-type than the one you are building on, you need to specify both
+-@itemize @bullet
+-@item
+-a @option{--host=@var{type}} option, specifying the machine type on
+-which the binaries shall run,
+-@item
+-compiler variables (@code{CC} for the C compiler, @code{CXX} for the C++
+-compiler, and so on), pointing to compilers that generate object code
+-for that machine type.
+-@end itemize
+-
+-For example, to create binaries intended to run on a 64-bit ARM
+-processor:
+-@example
+-./configure --host=aarch64-linux-gnu \
+-            CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
+-@end example
+-
+-If you do this on a machine that can execute such binaries (e.g.@: by
+-virtue of the @code{qemu-aarch64} program, system libraries for that
+-architecture under @code{$QEMU_LD_PREFIX}, and a Linux
+-@code{binfmt_misc} configuration), the build behaves like a native
+-build.
+-If not, the build is a cross-build, in the sense that @code{configure}
+-will make cross-compilation guesses instead of running test programs,
+-and ``make check'' will not work.
+-
+-@node Troubleshooting the Build Type
+-@section Fixing a ``cannot guess build type'' error
+-
+-In rare cases, it may happen that @code{configure} fails with the error
+-message ``cannot guess build type''.
+-This error means that the files @file{config.guess} and
+-@file{config.sub} don't recognize the type of the system on which you
+-are building.
+-In this case, first fetch the newest versions of these files, from
+-@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess}
+-and
+-@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub},
+-respectively, and use these as drop-in replacement for the files
+-@file{config.guess} and @file{config.sub} that were shipped with this
+-package.
+-
+-If this resolves the problem, feel free to report the solution to the
+-maintainers of this package.
+-
+-Otherwise, it means that your system is not yet supported by
+-@file{config.guess} and @file{config.sub}.
+-As a workaround, you can use a configure option
+-@option{--build=@var{type}}, where @var{type} comes closest to your
+-system type.
+-Also, you're welcome to file a report to
++You can look at the @file{config.sub} file to see which types are recognized.
++If the file is absent, this package does not need the system type.
++
++If @command{configure} fails with the diagnostic ``cannot guess build type''.
++@file{config.sub} did not recognize your system's type.
++In this case, first fetch the newest versions of these files
++from the @url{https://savannah.gnu.org/projects/config, GNU config package}.
++If that fixes things, please report it to the
++maintainers of the package containing @command{configure}.
++Otherwise, you can try the configure option
++@option{--build=@var{type}} where @var{type} comes close to your
++system type; also, please report the problem to
+ @email{config-patches@@gnu.org}.
+ 
+-@node Configuring a Compiler
+-@section Configuration options specific to a compiler
+-
+-If you are building a compiler, and this compiler should generate code
+-for a system type that is different from the one on which the compiler
+-binaries shall run on, use the option @option{--target=@var{type}} to
+-select the type of system for which the compiler should produce code.
++For more details about configuring system types, see
++@ifset autoconf
++@ref{Manual Configuration}.
++@end ifset
++@ifclear autoconf
++the Autoconf documentation.
++@end ifclear
+ 
+ @node Sharing Defaults
+ @section Sharing Defaults
+@@ -469,8 +396,8 @@ for more details, including other options available for fine-tuning
+ the installation locations.
+ 
+ @item --host=@var{type}
+-Build binaries for architecture @var{type}.  @ref{System Types} and
+-@ref{Building for a different system type} for more details.
++Build binaries for system @var{type}.
++@xref{System Types}.
+ 
+ @item --enable-@var{feature}
+ @itemx --disable-@var{feature}
+@@ -497,6 +424,19 @@ Run the configure checks, but stop before creating any output files.
+ and accepts some other, less widely useful, options.
+ Run @samp{configure --help} for more details.
+ 
++@ifclear autoconf
++@node Copyright notice
++@section Copyright notice
++
++Copyright @copyright{} 1994--1996, 1999--2002, 2004--2017, 2020--2023
++Free Software Foundation, Inc.
++
++Copying and distribution of this file, with or without modification, are
++permitted in any medium without royalty provided the copyright notice
++and this notice are preserved.  This file is offered as-is, without
++warranty of any kind.
++@end ifclear
++
+ @c Local Variables:
+ @c fill-column: 72
+ @c ispell-local-dictionary: "american"
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf_2.71.bb b/poky/meta/recipes-devtools/autoconf/autoconf_2.71.bb
deleted file mode 100644
index 97c241a..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf_2.71.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-SUMMARY = "A GNU tool that produce shell scripts to automatically configure software"
-DESCRIPTION = "Autoconf is an extensible package of M4 macros that produce shell scripts to automatically \ 
-configure software source code packages. Autoconf creates a configuration script for a package from a template \
-file that lists the operating system features that the package can use, in the form of M4 macro calls."
-LICENSE = "GPL-3.0-or-later"
-HOMEPAGE = "http://www.gnu.org/software/autoconf/"
-SECTION = "devel"
-DEPENDS = "m4-native autoconf-native automake-native gnu-config-native help2man-native"
-DEPENDS:remove:class-native = "autoconf-native automake-native help2man-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=cc3f3a7596cb558bbd9eb7fbaa3ef16c \
-		    file://COPYINGv3;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-SRC_URI = "${GNU_MIRROR}/autoconf/${BP}.tar.gz \
-           file://program_prefix.patch \
-           file://autoreconf-exclude.patch \
-           file://remove-usr-local-lib-from-m4.patch \
-           file://preferbash.patch \
-           file://autotest-automake-result-format.patch \
-           file://man-host-perl.patch \
-           file://0001-Port-to-compilers-that-moan-about-K-R-func-decls.patch \
-           "
-SRC_URI:append:class-native = " file://no-man.patch"
-
-SRC_URI[sha256sum] = "431075ad0bf529ef13cb41e9042c542381103e80015686222b8a9d4abef42a1c"
-
-RDEPENDS:${PN} = "m4 gnu-config \
-		  perl \
-		  perl-module-bytes \
-		  perl-module-carp \
-		  perl-module-constant \
-		  perl-module-data-dumper \
-		  perl-module-errno \
-		  perl-module-exporter \
-		  perl-module-file-basename \
-		  perl-module-file-compare \
-		  perl-module-file-copy \
-		  perl-module-file-find \
-		  perl-module-file-glob \
-		  perl-module-file-path \
-		  perl-module-file-spec \
-		  perl-module-file-spec-unix \
-		  perl-module-file-stat \
-                  perl-module-file-temp \
-		  perl-module-getopt-long \
-		  perl-module-io-file \
-                  perl-module-list-util \
-		  perl-module-overloading \
-		  perl-module-posix \
-                  perl-module-scalar-util \
-		  perl-module-symbol \
-		  perl-module-thread-queue \
-		  perl-module-threads \
-		 "
-RDEPENDS:${PN}:class-native = "m4-native gnu-config-native hostperl-runtime-native"
-
-inherit autotools texinfo
-
-PERL = "${USRBINPATH}/perl"
-PERL:class-native = "/usr/bin/env perl"
-PERL:class-nativesdk = "/usr/bin/env perl"
-
-CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'"
-
-EXTRA_OECONF += "ac_cv_path_M4=m4 ac_cv_prog_TEST_EMACS=no"
-
-# As autoconf installs its own config.* files, ensure that they're always up to date.
-update_gnu_config() {
-	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/build-aux
-	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/build-aux
-}
-do_configure[prefuncs] += "update_gnu_config"
-
-do_configure:class-native() {
-	oe_runconf
-}
-
-do_install:append() {
-    rm -rf ${D}${datadir}/emacs
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf_2.72c.bb b/poky/meta/recipes-devtools/autoconf/autoconf_2.72c.bb
new file mode 100644
index 0000000..76130d5
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf_2.72c.bb
@@ -0,0 +1,114 @@
+SUMMARY = "A GNU tool that produce shell scripts to automatically configure software"
+DESCRIPTION = "Autoconf is an extensible package of M4 macros that produce shell scripts to automatically \ 
+configure software source code packages. Autoconf creates a configuration script for a package from a template \
+file that lists the operating system features that the package can use, in the form of M4 macro calls."
+LICENSE = "GPL-3.0-or-later"
+HOMEPAGE = "http://www.gnu.org/software/autoconf/"
+SECTION = "devel"
+DEPENDS = "m4-native autoconf-native automake-native gnu-config-native help2man-native"
+DEPENDS:remove:class-native = "autoconf-native automake-native help2man-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=cc3f3a7596cb558bbd9eb7fbaa3ef16c \
+		    file://COPYINGv3;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = " \
+           https://alpha.gnu.org/gnu/autoconf/autoconf-2.72c.tar.gz \
+           file://program_prefix.patch \
+           file://autoreconf-exclude.patch \
+           file://remove-usr-local-lib-from-m4.patch \
+           file://preferbash.patch \
+           file://autotest-automake-result-format.patch \
+           file://man-host-perl.patch \
+	   ${BACKPORTS} \
+"
+SRC_URI:append:class-native = " file://no-man.patch"
+
+BACKPORTS = "\
+           file://backports/0001-mention-prototypes-more-prominently-in-NEWS.patch \
+           file://backports/0002-build-run-make-fetch-which-updated-these.patch \
+           file://backports/0003-NEWS-Tighten-up-wording.patch \
+           file://backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch \
+           file://backports/0006-Fix-timing-bug-on-high-speed-builds.patch \
+           file://backports/0007-Support-underquoted-callers-better.patch \
+           file://backports/0008-New-script-for-building-inside-Guix-containers.patch \
+           file://backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch \
+           file://backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch \
+           file://backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch \
+           file://backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch \
+           file://backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch \
+           file://backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch \
+           file://backports/0015-Support-circa-early-2022-Gnulib.patch \
+           file://backports/0016-Improve-year2038-largefile-option-processing.patch \
+           file://backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch \
+           file://backports/0018-Document-limitation-of-BusyBox-tr.patch \
+           file://backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch \
+           file://backports/0020-Tone-down-year-2038-changes.patch \
+           file://backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch \
+           file://backports/0022-Fix-port-of-AC_FUNC_MMAP.patch \
+           file://backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch \
+           file://backports/0024-Improve-AC_FUNC_MMAP-comments.patch \
+           file://backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch \
+           file://backports/0026-Modernize-INSTALL.patch \
+           file://backports/0027-doc-fix-broken-cross-refs.patch \
+           file://backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch \
+           file://backports/0029-Shorten-and-improve-INSTALL.patch \
+"
+
+SRC_URI[sha256sum] = "21b64169c820c6cdf27fc981ca9c2fb615546e5dead92bccf8d92d0784cdd364"
+
+RDEPENDS:${PN} = "m4 gnu-config \
+		  perl \
+		  perl-module-bytes \
+		  perl-module-carp \
+		  perl-module-constant \
+		  perl-module-data-dumper \
+		  perl-module-errno \
+		  perl-module-exporter \
+		  perl-module-file-basename \
+		  perl-module-file-compare \
+		  perl-module-file-copy \
+		  perl-module-file-find \
+		  perl-module-file-glob \
+		  perl-module-file-path \
+		  perl-module-file-spec \
+		  perl-module-file-spec-unix \
+		  perl-module-file-stat \
+                  perl-module-file-temp \
+		  perl-module-getopt-long \
+		  perl-module-io-file \
+                  perl-module-list-util \
+		  perl-module-overloading \
+		  perl-module-posix \
+                  perl-module-scalar-util \
+		  perl-module-symbol \
+		  perl-module-thread-queue \
+		  perl-module-threads \
+		 "
+RDEPENDS:${PN}:class-native = "m4-native gnu-config-native hostperl-runtime-native"
+
+inherit autotools texinfo
+
+PERL = "${USRBINPATH}/perl"
+PERL:class-native = "/usr/bin/env perl"
+PERL:class-nativesdk = "/usr/bin/env perl"
+
+CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'"
+
+EXTRA_OECONF += "ac_cv_path_M4=m4 ac_cv_prog_TEST_EMACS=no"
+
+# As autoconf installs its own config.* files, ensure that they're always up to date.
+update_gnu_config() {
+	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/build-aux
+	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/build-aux
+}
+do_configure[prefuncs] += "update_gnu_config"
+
+do_configure:class-native() {
+	oe_runconf
+}
+
+do_install:append() {
+    rm -rf ${D}${datadir}/emacs
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.40.inc b/poky/meta/recipes-devtools/binutils/binutils-2.41.inc
similarity index 79%
rename from poky/meta/recipes-devtools/binutils/binutils-2.40.inc
rename to poky/meta/recipes-devtools/binutils/binutils-2.41.inc
index dea68ee..7ab2926 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.40.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.41.inc
@@ -10,15 +10,15 @@
     file://bfd/COPYING;md5=d32239bcb673463ab874e80d47fae504\
     "
 
-# When upgrading to 2.41, please make sure there is no trailing .0, so
+# When upgrading to 2.42, please make sure there is no trailing .0, so
 # that upstream version check can work correctly.
-PV = "2.40"
-CVE_VERSION = "2.40"
-SRCBRANCH ?= "binutils-2_40-branch"
+PV = "2.41"
+CVE_VERSION = "2.41"
+SRCBRANCH ?= "binutils-2_41-branch"
 
 UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
 
-SRCREV ?= "4671be001eb5a899ecac3e2686a92934000f8262"
+SRCREV ?= "fd3cc73ee4a84df3ace3c0e470250a957e7d3468"
 BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${SRCBRANCH};protocol=https"
 SRC_URI = "\
      ${BINUTILS_GIT_URI} \
@@ -32,9 +32,7 @@
      file://0011-Check-for-clang-before-checking-gcc-version.patch \
      file://0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch \
      file://0013-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch \
-     file://0015-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch \
-     file://0016-CVE-2023-25586.patch \
-     file://fix-time64.patch \
-     file://0001-Fix-an-illegal-memory-access-when-an-accessing-a-zer.patch \
+     file://0014-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch \
+     file://0015-gprofng-Fix-build-with-64bit-file-offset-on-32bit-ma.patch \
 "
 S  = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.40.bb b/poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.41.bb
similarity index 100%
rename from poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.40.bb
rename to poky/meta/recipes-devtools/binutils/binutils-cross-canadian_2.41.bb
diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.40.bb b/poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.41.bb
similarity index 100%
rename from poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.40.bb
rename to poky/meta/recipes-devtools/binutils/binutils-cross-testsuite_2.41.bb
diff --git a/poky/meta/recipes-devtools/binutils/binutils-cross_2.40.bb b/poky/meta/recipes-devtools/binutils/binutils-cross_2.41.bb
similarity index 100%
rename from poky/meta/recipes-devtools/binutils/binutils-cross_2.40.bb
rename to poky/meta/recipes-devtools/binutils/binutils-cross_2.41.bb
diff --git a/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.40.bb b/poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.41.bb
similarity index 100%
rename from poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.40.bb
rename to poky/meta/recipes-devtools/binutils/binutils-crosssdk_2.41.bb
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0001-Fix-an-illegal-memory-access-when-an-accessing-a-zer.patch b/poky/meta/recipes-devtools/binutils/binutils/0001-Fix-an-illegal-memory-access-when-an-accessing-a-zer.patch
deleted file mode 100644
index 31157ca..0000000
--- a/poky/meta/recipes-devtools/binutils/binutils/0001-Fix-an-illegal-memory-access-when-an-accessing-a-zer.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c22d38baefc5a7a1e1f5cdc9dbb556b1f0ec5c57 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Thu, 30 Mar 2023 10:10:09 +0100
-Subject: [PATCH] Fix an illegal memory access when an accessing a
- zer0-lengthverdef table.
-
-  PR 30285
-  * elf.c (_bfd_elf_slurp_version_tables): Fail if no version definitions are allocated.
-
-CVE: CVE-2023-1972
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- bfd/ChangeLog | 6 ++++++
- bfd/elf.c     | 5 +++++
- 2 files changed, 11 insertions(+)
-
-diff --git a/bfd/elf.c b/bfd/elf.c
-index 027d0143735..185028cbd97 100644
---- a/bfd/elf.c
-+++ b/bfd/elf.c
-@@ -9030,6 +9030,9 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver)
- 	  bfd_set_error (bfd_error_file_too_big);
- 	  goto error_return_verdef;
- 	}
-+
-+      if (amt == 0)
-+	goto error_return_verdef;
-       elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt);
-       if (elf_tdata (abfd)->verdef == NULL)
- 	goto error_return_verdef;
-@@ -9133,6 +9136,8 @@ _bfd_elf_slurp_version_tables (bfd *abfd, bool default_imported_symver)
- 	  bfd_set_error (bfd_error_file_too_big);
- 	  goto error_return;
- 	}
-+      if (amt == 0)
-+	goto error_return;
-       elf_tdata (abfd)->verdef = (Elf_Internal_Verdef *) bfd_zalloc (abfd, amt);
-       if (elf_tdata (abfd)->verdef == NULL)
- 	goto error_return;
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch b/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch
index ca24983..ef7e1c4 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0001-binutils-crosssdk-Generate-relocatable-SDKs.patch
@@ -1,4 +1,4 @@
-From 4bdab425bdd7dc52c95bfd62e035c1b9abe9595e Mon Sep 17 00:00:00 2001
+From 95e23fba624c90d0e62c1adaf2bcc4f3cd3175c0 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 2 Mar 2015 01:58:54 +0000
 Subject: [PATCH] binutils-crosssdk: Generate relocatable SDKs
@@ -21,10 +21,10 @@
  3 files changed, 6 insertions(+), 3 deletions(-)
 
 diff --git a/gold/layout.cc b/gold/layout.cc
-index 899d4af0707..7c31b1bef6e 100644
+index b94855f8662..51f2d74d79d 100644
 --- a/gold/layout.cc
 +++ b/gold/layout.cc
-@@ -5083,7 +5083,7 @@ Layout::create_interp(const Target* target)
+@@ -5102,7 +5102,7 @@ Layout::create_interp(const Target* target)
        gold_assert(interp != NULL);
      }
  
@@ -59,7 +59,7 @@
  DATA_ALIGNMENT=${DATA_ALIGNMENT_}
  RELOCATING=" "
 diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
-index 5d3b0d31b1b..2163909cd56 100644
+index 1e3c5aa8504..b8d1977b3f0 100644
 --- a/ld/scripttempl/elf.sc
 +++ b/ld/scripttempl/elf.sc
 @@ -148,8 +148,8 @@ if test -z "$DATA_SEGMENT_ALIGN"; then
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch b/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch
index 663dc4a..3ea6923 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0002-binutils-cross-Do-not-generate-linker-script-directo.patch
@@ -1,4 +1,4 @@
-From c79005d4d9991593557766ad569f48c26482399f Mon Sep 17 00:00:00 2001
+From 2b3017e7dab4d929d3ab664c5e6f94226b0a6d31 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 6 Mar 2017 23:37:05 -0800
 Subject: [PATCH] binutils-cross: Do not generate linker script directories
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch b/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch
index f46116f..ace279b 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch
@@ -1,4 +1,4 @@
-From 70da8b91026c5381d430194910fc15e3b6c5ec7f Mon Sep 17 00:00:00 2001
+From c00ead7264dc1335cb43222cb742b95614666be8 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Wed, 19 Feb 2020 09:51:16 -0800
 Subject: [PATCH] binutils-nativesdk: Search for alternative ld.so.conf in SDK
@@ -29,7 +29,7 @@
  5 files changed, 7 insertions(+), 3 deletions(-)
 
 diff --git a/ld/Makefile.am b/ld/Makefile.am
-index b3195b4be68..fc6460317a7 100644
+index c3adbb0ccad..ce0f7e7f85d 100644
 --- a/ld/Makefile.am
 +++ b/ld/Makefile.am
 @@ -42,7 +42,8 @@ ZLIBINC = @zlibinc@
@@ -43,7 +43,7 @@
  NO_WERROR = @NO_WERROR@
  AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) $(JANSSON_CFLAGS) $(ZSTD_CFLAGS)
 diff --git a/ld/Makefile.in b/ld/Makefile.in
-index fe422569228..4a4c851b44a 100644
+index d1a56026437..9d86aed12c6 100644
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
 @@ -566,7 +566,8 @@ ZLIB = @zlibdir@ -lz
@@ -57,7 +57,7 @@
  AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) $(JANSSON_CFLAGS) $(ZSTD_CFLAGS)
  
 diff --git a/ld/ldelf.c b/ld/ldelf.c
-index eff6693e052..95787012b89 100644
+index f9a6819366f..1519f8ac4e5 100644
 --- a/ld/ldelf.c
 +++ b/ld/ldelf.c
 @@ -936,7 +936,7 @@ ldelf_check_ld_so_conf (const struct bfd_link_needed_list *l, int force,
@@ -65,15 +65,15 @@
        info.path = NULL;
        info.len = info.alloc = 0;
 -      tmppath = concat (ld_sysroot, prefix, "/etc/ld.so.conf",
-+      tmppath = concat (ld_sysconfdir, "/etc/ld.so.conf",
++      tmppath = concat (ld_sysconfdir, "/ld.so.conf",
  			(const char *) NULL);
        if (!ldelf_parse_ld_so_conf (&info, tmppath))
  	{
 diff --git a/ld/ldmain.c b/ld/ldmain.c
-index 9290a189b0d..ceaca2d85d0 100644
+index 06ac2c64fa8..5c38e8cd313 100644
 --- a/ld/ldmain.c
 +++ b/ld/ldmain.c
-@@ -70,6 +70,7 @@ char *program_name;
+@@ -69,6 +69,7 @@ char *program_name;
  
  /* The prefix for system library directories.  */
  const char *ld_sysroot;
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch b/poky/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch
index e7d2593..0747e40 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0004-Point-scripts-location-to-libdir.patch
@@ -1,4 +1,4 @@
-From fa477bb947fa17543f4550bc0e7e715c8355649c Mon Sep 17 00:00:00 2001
+From d2d1281b0b76f96c64a2043772c52c85f58994d5 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 2 Mar 2015 01:09:58 +0000
 Subject: [PATCH] Point scripts location to libdir
@@ -12,7 +12,7 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/ld/Makefile.am b/ld/Makefile.am
-index fc6460317a7..1b875904b8d 100644
+index ce0f7e7f85d..2e36ab4efc4 100644
 --- a/ld/Makefile.am
 +++ b/ld/Makefile.am
 @@ -51,7 +51,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) $(JANSSON_CFLAGS) $(ZSTD_CFLAGS)
@@ -25,7 +25,7 @@
  EMUL = @EMUL@
  EMULATION_OFILES = @EMULATION_OFILES@
 diff --git a/ld/Makefile.in b/ld/Makefile.in
-index 4a4c851b44a..08dcd7b75fc 100644
+index 9d86aed12c6..c21c554e432 100644
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
 @@ -574,7 +574,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS) $(JANSSON_CFLAGS) $(ZSTD_CFLAGS)
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0005-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch b/poky/meta/recipes-devtools/binutils/binutils/0005-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
index 7242f48..9fe8b73 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0005-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0005-don-t-let-the-distro-compiler-point-to-the-wrong-ins.patch
@@ -1,4 +1,4 @@
-From 7912f5a918e612950feb04d845934f26160e85da Mon Sep 17 00:00:00 2001
+From 5564cdf1433255a00acb427fb5b0656b772b2651 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 2 Mar 2015 01:39:01 +0000
 Subject: [PATCH] don't let the distro compiler point to the wrong installation
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0006-warn-for-uses-of-system-directories-when-cross-linki.patch b/poky/meta/recipes-devtools/binutils/binutils/0006-warn-for-uses-of-system-directories-when-cross-linki.patch
index 87bbe9f..9b09ec0 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0006-warn-for-uses-of-system-directories-when-cross-linki.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0006-warn-for-uses-of-system-directories-when-cross-linki.patch
@@ -1,4 +1,4 @@
-From 725ca09ee1041f64589f26ba815ef11da687c608 Mon Sep 17 00:00:00 2001
+From 41b09c6a9d78a31db0f3c70d27c05475292bde7e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 15 Jan 2016 06:31:09 +0000
 Subject: [PATCH] warn for uses of system directories when cross linking
@@ -59,8 +59,8 @@
  ld/ldfile.c     | 17 +++++++++++++++++
  ld/ldlex.h      |  2 ++
  ld/ldmain.c     |  6 ++++--
- ld/lexsup.c     | 16 ++++++++++++++++
- 9 files changed, 88 insertions(+), 2 deletions(-)
+ ld/lexsup.c     | 15 +++++++++++++++
+ 9 files changed, 87 insertions(+), 2 deletions(-)
 
 diff --git a/ld/config.in b/ld/config.in
 index ad0dc6a106c..d21edaddce7 100644
@@ -77,7 +77,7 @@
  #undef EXTRA_SHLIB_EXTENSION
  
 diff --git a/ld/configure b/ld/configure
-index 995708089fd..6406a42c442 100755
+index 1503936432f..29896853a90 100755
 --- a/ld/configure
 +++ b/ld/configure
 @@ -839,6 +839,7 @@ with_lib_path
@@ -139,7 +139,7 @@
  dnl "install_as_default" is set to false if gold is the default linker.
  dnl "installed_linker" is the installed BFD linker name.
 diff --git a/ld/ld.h b/ld/ld.h
-index 05649ff61b8..1818c227473 100644
+index a0f8a15c7a9..e3db345f3a5 100644
 --- a/ld/ld.h
 +++ b/ld/ld.h
 @@ -163,6 +163,14 @@ typedef struct
@@ -158,10 +158,10 @@
    enum endian_enum endian;
  
 diff --git a/ld/ld.texi b/ld/ld.texi
-index db3a9f09b45..77037399cb9 100644
+index aa8b1aa86eb..9bc4bc28823 100644
 --- a/ld/ld.texi
 +++ b/ld/ld.texi
-@@ -2960,6 +2960,18 @@ creation of the metadata note, if one had been enabled by an earlier
+@@ -3059,6 +3059,18 @@ creation of the metadata note, if one had been enabled by an earlier
  occurrence of the --package-metdata option.
  If the linker has been built with libjansson, then the JSON string
  will be validated.
@@ -181,10 +181,10 @@
  
  @c man end
 diff --git a/ld/ldfile.c b/ld/ldfile.c
-index b8fd4e5d8e0..1f1d8e23bc9 100644
+index df7c9cbd65e..0c965593225 100644
 --- a/ld/ldfile.c
 +++ b/ld/ldfile.c
-@@ -117,6 +117,23 @@ ldfile_add_library_path (const char *name, bool cmdline)
+@@ -327,6 +327,23 @@ ldfile_add_library_path (const char *name, bool cmdline)
      new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
    else
      new_dirs->name = xstrdup (name);
@@ -209,23 +209,23 @@
  
  /* Try to open a BFD for a lang_input_statement.  */
 diff --git a/ld/ldlex.h b/ld/ldlex.h
-index 0538f0a06a1..f94a71875d8 100644
+index 87cac02141d..d1a478fb827 100644
 --- a/ld/ldlex.h
 +++ b/ld/ldlex.h
-@@ -170,6 +170,8 @@ enum option_values
-   OPTION_NO_WARN_EXECSTACK,
-   OPTION_WARN_RWX_SEGMENTS,
-   OPTION_NO_WARN_RWX_SEGMENTS,
+@@ -147,6 +147,8 @@ enum option_values
+   OPTION_PLUGIN,
+   OPTION_PLUGIN_OPT,
+ #endif /* BFD_SUPPORTS_PLUGINS */
 +  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
 +  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
- };
- 
- /* The initial parser states.  */
+   OPTION_DEFAULT_SCRIPT,
+   OPTION_PRINT_OUTPUT_FORMAT,
+   OPTION_PRINT_SYSROOT,
 diff --git a/ld/ldmain.c b/ld/ldmain.c
-index ceaca2d85d0..62e7b4e5341 100644
+index 5c38e8cd313..04eed320aca 100644
 --- a/ld/ldmain.c
 +++ b/ld/ldmain.c
-@@ -322,6 +322,8 @@ main (int argc, char **argv)
+@@ -326,6 +326,8 @@ main (int argc, char **argv)
    command_line.warn_mismatch = true;
    command_line.warn_search_mismatch = true;
    command_line.check_section_addresses = -1;
@@ -234,7 +234,7 @@
  
    /* We initialize DEMANGLING based on the environment variable
       COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
-@@ -1454,7 +1456,7 @@ undefined_symbol (struct bfd_link_info *info,
+@@ -1458,7 +1460,7 @@ undefined_symbol (struct bfd_link_info *info,
        argv[1] = "undefined-symbol";
        argv[2] = (char *) name;
        argv[3] = NULL;
@@ -243,7 +243,7 @@
        if (verbose)
  	einfo (_("%P: About to run error handling script '%s' with arguments: '%s' '%s'\n"),
  	       argv[0], argv[1], argv[2]);
-@@ -1475,7 +1477,7 @@ undefined_symbol (struct bfd_link_info *info,
+@@ -1479,7 +1481,7 @@ undefined_symbol (struct bfd_link_info *info,
  	 carry on to issue the normal error message.  */
      }
  #endif /* SUPPORT_ERROR_HANDLING_SCRIPT */
@@ -253,10 +253,10 @@
      {
        if (error_count < MAX_ERRORS_IN_A_ROW)
 diff --git a/ld/lexsup.c b/ld/lexsup.c
-index a1c6140100d..d47ba4f977d 100644
+index fe8722313fe..1df7af3ccaa 100644
 --- a/ld/lexsup.c
 +++ b/ld/lexsup.c
-@@ -613,6 +613,14 @@ static const struct ld_option ld_options[] =
+@@ -629,6 +629,14 @@ static const struct ld_option ld_options[] =
  		   "                                <method> is: share-unconflicted (default),\n"
  		   "                                             share-duplicated"),
      TWO_DASHES },
@@ -271,18 +271,17 @@
  };
  
  #define OPTION_COUNT ARRAY_SIZE (ld_options)
-@@ -1737,6 +1745,14 @@ parse_args (unsigned argc, char **argv)
- 	  config.print_map_discarded = true;
- 	  break;
+@@ -1787,6 +1795,13 @@ parse_args (unsigned argc, char **argv)
  
+ 	case OPTION_PRINT_MAP_LOCALS:
+ 	  config.print_map_locals = true;
++
 +	case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
 +	  command_line.poison_system_directories = false;
 +	  break;
 +
 +	case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
 +	  command_line.error_poison_system_directories = true;
-+	  break;
-+
- 	case OPTION_DEPENDENCY_FILE:
- 	  config.dependency_file = optarg;
  	  break;
+ 
+ 	case OPTION_DEPENDENCY_FILE:
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0007-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch b/poky/meta/recipes-devtools/binutils/binutils/0007-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
index fdd1f77..d399790 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0007-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0007-fix-the-incorrect-assembling-for-ppc-wait-mnemonic.patch
@@ -1,4 +1,4 @@
-From 4e9d4ace8a340399aeaa8332e2cfbfcc7d2d14d7 Mon Sep 17 00:00:00 2001
+From 7f04e82ac2ded9a7f68dba9fabf1251d680bd0b9 Mon Sep 17 00:00:00 2001
 From: Zhenhua Luo <zhenhua.luo@nxp.com>
 Date: Sat, 11 Jun 2016 22:08:29 -0500
 Subject: [PATCH] fix the incorrect assembling for ppc wait mnemonic
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0008-Use-libtool-2.4.patch b/poky/meta/recipes-devtools/binutils/binutils/0008-Use-libtool-2.4.patch
index 0be871f..432c431 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0008-Use-libtool-2.4.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0008-Use-libtool-2.4.patch
@@ -1,4 +1,4 @@
-From a66b1806350a9bed7b188c7d115991f6cdee51a9 Mon Sep 17 00:00:00 2001
+From 8fc55f06d8950607f22e81f51c67dd4e6b4f6742 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 14 Feb 2016 17:04:07 +0000
 Subject: [PATCH] Use libtool 2.4
@@ -27,11 +27,12 @@
  gprofng/src/Makefile.in             |    2 +
  ld/Makefile.in                      |    3 +
  ld/configure                        | 1704 ++++++++++++----
- libbacktrace/Makefile.in            |    3 +
- libbacktrace/configure              | 1331 +++++++++---
+ libbacktrace/Makefile.in            |  108 +-
+ libbacktrace/aclocal.m4             |   73 +-
+ libbacktrace/configure              | 1441 +++++++++----
  libctf/Makefile.in                  |    2 +
  libctf/configure                    | 1330 +++++++++---
- libsframe/Makefile.in               |  249 ++-
+ libsframe/Makefile.in               |  344 ++--
  libsframe/aclocal.m4                |  220 +-
  libsframe/configure                 | 1553 ++++++++++----
  libtool.m4                          | 1093 ++++++----
@@ -41,17 +42,15 @@
  lt~obsolete.m4                      |    2 +-
  opcodes/Makefile.in                 |    3 +
  opcodes/configure                   | 1331 +++++++++---
- sim/Makefile.in                     |    3 +
- sim/configure                       | 1331 +++++++++---
  zlib/Makefile.in                    |    3 +
  zlib/configure                      | 1331 +++++++++---
- 36 files changed, 16896 insertions(+), 6289 deletions(-)
+ 35 files changed, 16108 insertions(+), 6126 deletions(-)
 
 diff --git a/bfd/Makefile.in b/bfd/Makefile.in
-index 80aed657643..106ec256a79 100644
+index 4edfedee924..ed7257f2e96 100644
 --- a/bfd/Makefile.in
 +++ b/bfd/Makefile.in
-@@ -347,6 +347,7 @@ DATADIRNAME = @DATADIRNAME@
+@@ -334,6 +334,7 @@ DATADIRNAME = @DATADIRNAME@
  DEBUGDIR = @DEBUGDIR@
  DEFS = @DEFS@
  DEPDIR = @DEPDIR@
@@ -59,7 +58,7 @@
  DSYMUTIL = @DSYMUTIL@
  DUMPBIN = @DUMPBIN@
  ECHO_C = @ECHO_C@
-@@ -381,6 +382,7 @@ LN_S = @LN_S@
+@@ -368,6 +369,7 @@ LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
  MAKEINFO = @MAKEINFO@
@@ -67,7 +66,7 @@
  MKDIR_P = @MKDIR_P@
  MKINSTALLDIRS = @MKINSTALLDIRS@
  MSGFMT = @MSGFMT@
-@@ -427,6 +429,7 @@ abs_builddir = @abs_builddir@
+@@ -414,6 +416,7 @@ abs_builddir = @abs_builddir@
  abs_srcdir = @abs_srcdir@
  abs_top_builddir = @abs_top_builddir@
  abs_top_srcdir = @abs_top_srcdir@
@@ -76,7 +75,7 @@
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
  all_backends = @all_backends@
 diff --git a/bfd/configure b/bfd/configure
-index 60ea6becab2..84dcdf167ba 100755
+index abc24a93028..f4c8ea4e54b 100755
 --- a/bfd/configure
 +++ b/bfd/configure
 @@ -706,6 +706,9 @@ OTOOL
@@ -1400,7 +1399,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -13482,7 +14132,7 @@ SHARED_LDFLAGS=
+@@ -13707,7 +14357,7 @@ SHARED_LDFLAGS=
  if test "$enable_shared" = "yes"; then
    x=`sed -n -e 's/^[ 	]*PICFLAG[ 	]*=[ 	]*//p' < ../libiberty/Makefile | sed -n '$p'`
    if test -n "$x"; then
@@ -1409,7 +1408,7 @@
    fi
  fi
  
-@@ -16129,13 +16779,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -16326,13 +16976,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
  lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
  lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
  lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -1430,7 +1429,7 @@
  STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
  RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
  old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -16150,14 +16807,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -16347,14 +17004,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
  lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -1449,7 +1448,7 @@
  DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
  NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
  LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -16190,12 +16850,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -16387,12 +17047,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
  hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
  inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -1463,7 +1462,7 @@
  file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
  variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
  need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -16250,8 +16910,13 @@ reload_flag \
+@@ -16447,8 +17107,13 @@ reload_flag \
  OBJDUMP \
  deplibs_check_method \
  file_magic_cmd \
@@ -1477,7 +1476,7 @@
  STRIP \
  RANLIB \
  CC \
-@@ -16261,12 +16926,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -16458,12 +17123,14 @@ lt_cv_sys_global_symbol_pipe \
  lt_cv_sys_global_symbol_to_cdecl \
  lt_cv_sys_global_symbol_to_c_name_address \
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -1493,7 +1492,7 @@
  DSYMUTIL \
  NMEDIT \
  LIPO \
-@@ -16282,7 +16949,6 @@ no_undefined_flag \
+@@ -16479,7 +17146,6 @@ no_undefined_flag \
  hardcode_libdir_flag_spec \
  hardcode_libdir_flag_spec_ld \
  hardcode_libdir_separator \
@@ -1501,7 +1500,7 @@
  exclude_expsyms \
  include_expsyms \
  file_list_spec \
-@@ -16318,6 +16984,7 @@ module_cmds \
+@@ -16515,6 +17181,7 @@ module_cmds \
  module_expsym_cmds \
  export_symbols_cmds \
  prelink_cmds \
@@ -1509,7 +1508,7 @@
  postinstall_cmds \
  postuninstall_cmds \
  finish_cmds \
-@@ -17086,7 +17753,8 @@ $as_echo X"$file" |
+@@ -17283,7 +17950,8 @@ $as_echo X"$file" |
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
  #
  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -1519,7 +1518,7 @@
  #   Written by Gordon Matzigkeit, 1996
  #
  #   This file is part of GNU Libtool.
-@@ -17189,19 +17857,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -17386,19 +18054,42 @@ SP2NL=$lt_lt_SP2NL
  # turn newlines into spaces.
  NL2SP=$lt_lt_NL2SP
  
@@ -1563,7 +1562,7 @@
  # A symbol stripping program.
  STRIP=$lt_STRIP
  
-@@ -17231,6 +17922,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -17428,6 +18119,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
  # Transform the output of nm in a C name address pair when lib prefix is needed.
  global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
  
@@ -1576,7 +1575,7 @@
  # The name of the directory that contains temporary libtool files.
  objdir=$objdir
  
-@@ -17240,6 +17937,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -17437,6 +18134,9 @@ MAGIC_CMD=$MAGIC_CMD
  # Must we lock files when doing compilation?
  need_locks=$lt_need_locks
  
@@ -1586,7 +1585,7 @@
  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  DSYMUTIL=$lt_DSYMUTIL
  
-@@ -17354,12 +18054,12 @@ with_gcc=$GCC
+@@ -17551,12 +18251,12 @@ with_gcc=$GCC
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
  
@@ -1602,7 +1601,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static
  
-@@ -17446,9 +18146,6 @@ inherit_rpath=$inherit_rpath
+@@ -17643,9 +18343,6 @@ inherit_rpath=$inherit_rpath
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs
  
@@ -1612,7 +1611,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols
  
-@@ -17464,6 +18161,9 @@ include_expsyms=$lt_include_expsyms
+@@ -17661,6 +18358,9 @@ include_expsyms=$lt_include_expsyms
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds
  
@@ -1622,7 +1621,7 @@
  # Specify filename containing input files.
  file_list_spec=$lt_file_list_spec
  
-@@ -17496,210 +18196,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -17693,210 +18393,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?
@@ -1997,10 +1996,10 @@
    chmod +x "$ofile"
  
 diff --git a/bfd/configure.ac b/bfd/configure.ac
-index 015fd011893..58f73ec709c 100644
+index f044616f4d9..c2b2ab1ec68 100644
 --- a/bfd/configure.ac
 +++ b/bfd/configure.ac
-@@ -272,7 +272,7 @@ changequote(,)dnl
+@@ -274,7 +274,7 @@ changequote(,)dnl
    x=`sed -n -e 's/^[ 	]*PICFLAG[ 	]*=[ 	]*//p' < ../libiberty/Makefile | sed -n '$p'`
  changequote([,])dnl
    if test -n "$x"; then
@@ -2010,7 +2009,7 @@
  fi
  
 diff --git a/binutils/Makefile.in b/binutils/Makefile.in
-index 27315addc0f..5ddd5a42a7d 100644
+index 2de46be1b30..70a04f1c538 100644
 --- a/binutils/Makefile.in
 +++ b/binutils/Makefile.in
 @@ -493,6 +493,7 @@ DEBUGINFOD_LIBS = @DEBUGINFOD_LIBS@
@@ -2038,7 +2037,7 @@
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
  am__include = @am__include@
 diff --git a/binutils/configure b/binutils/configure
-index c7bd42049c3..06285371350 100755
+index 4cd196ab74b..dca6f77919d 100755
 --- a/binutils/configure
 +++ b/binutils/configure
 @@ -700,8 +700,11 @@ OTOOL
@@ -3361,7 +3360,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -15549,13 +16199,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -15555,13 +16205,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
  lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
  lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
  lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -3382,7 +3381,7 @@
  STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
  RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
  old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -15570,14 +16227,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -15576,14 +16233,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
  lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -3401,7 +3400,7 @@
  DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
  NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
  LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -15610,12 +16270,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -15616,12 +16276,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
  hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
  inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -3415,7 +3414,7 @@
  file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
  variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
  need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -15670,8 +16330,13 @@ reload_flag \
+@@ -15676,8 +16336,13 @@ reload_flag \
  OBJDUMP \
  deplibs_check_method \
  file_magic_cmd \
@@ -3429,7 +3428,7 @@
  STRIP \
  RANLIB \
  CC \
-@@ -15681,12 +16346,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -15687,12 +16352,14 @@ lt_cv_sys_global_symbol_pipe \
  lt_cv_sys_global_symbol_to_cdecl \
  lt_cv_sys_global_symbol_to_c_name_address \
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -3445,7 +3444,7 @@
  DSYMUTIL \
  NMEDIT \
  LIPO \
-@@ -15702,7 +16369,6 @@ no_undefined_flag \
+@@ -15708,7 +16375,6 @@ no_undefined_flag \
  hardcode_libdir_flag_spec \
  hardcode_libdir_flag_spec_ld \
  hardcode_libdir_separator \
@@ -3453,7 +3452,7 @@
  exclude_expsyms \
  include_expsyms \
  file_list_spec \
-@@ -15738,6 +16404,7 @@ module_cmds \
+@@ -15744,6 +16410,7 @@ module_cmds \
  module_expsym_cmds \
  export_symbols_cmds \
  prelink_cmds \
@@ -3461,7 +3460,7 @@
  postinstall_cmds \
  postuninstall_cmds \
  finish_cmds \
-@@ -16503,7 +17170,8 @@ $as_echo X"$file" |
+@@ -16509,7 +17176,8 @@ $as_echo X"$file" |
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
  #
  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -3471,7 +3470,7 @@
  #   Written by Gordon Matzigkeit, 1996
  #
  #   This file is part of GNU Libtool.
-@@ -16606,19 +17274,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -16612,19 +17280,42 @@ SP2NL=$lt_lt_SP2NL
  # turn newlines into spaces.
  NL2SP=$lt_lt_NL2SP
  
@@ -3515,7 +3514,7 @@
  # A symbol stripping program.
  STRIP=$lt_STRIP
  
-@@ -16648,6 +17339,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -16654,6 +17345,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
  # Transform the output of nm in a C name address pair when lib prefix is needed.
  global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
  
@@ -3528,7 +3527,7 @@
  # The name of the directory that contains temporary libtool files.
  objdir=$objdir
  
-@@ -16657,6 +17354,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -16663,6 +17360,9 @@ MAGIC_CMD=$MAGIC_CMD
  # Must we lock files when doing compilation?
  need_locks=$lt_need_locks
  
@@ -3538,7 +3537,7 @@
  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  DSYMUTIL=$lt_DSYMUTIL
  
-@@ -16771,12 +17471,12 @@ with_gcc=$GCC
+@@ -16777,12 +17477,12 @@ with_gcc=$GCC
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
  
@@ -3554,7 +3553,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static
  
-@@ -16863,9 +17563,6 @@ inherit_rpath=$inherit_rpath
+@@ -16869,9 +17569,6 @@ inherit_rpath=$inherit_rpath
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs
  
@@ -3564,7 +3563,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols
  
-@@ -16881,6 +17578,9 @@ include_expsyms=$lt_include_expsyms
+@@ -16887,6 +17584,9 @@ include_expsyms=$lt_include_expsyms
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds
  
@@ -3574,7 +3573,7 @@
  # Specify filename containing input files.
  file_list_spec=$lt_file_list_spec
  
-@@ -16913,210 +17613,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -16919,210 +17619,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?
@@ -3949,7 +3948,7 @@
    chmod +x "$ofile"
  
 diff --git a/gas/Makefile.in b/gas/Makefile.in
-index 8319181b472..3425e414c1c 100644
+index 427f42dfa3a..ec6615d34e3 100644
 --- a/gas/Makefile.in
 +++ b/gas/Makefile.in
 @@ -377,6 +377,7 @@ CYGPATH_W = @CYGPATH_W@
@@ -3977,7 +3976,7 @@
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
  am__include = @am__include@
 diff --git a/gas/configure b/gas/configure
-index 3c0c3e27d3b..11baafb9db6 100755
+index db1b80fc907..4bdd9705d8d 100755
 --- a/gas/configure
 +++ b/gas/configure
 @@ -686,8 +686,11 @@ OTOOL
@@ -5300,7 +5299,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -15133,13 +15783,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -15132,13 +15782,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
  lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
  lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
  lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -5321,7 +5320,7 @@
  STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
  RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
  old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -15154,14 +15811,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -15153,14 +15810,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
  lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -5340,7 +5339,7 @@
  DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
  NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
  LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -15194,12 +15854,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -15193,12 +15853,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
  hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
  inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -5354,7 +5353,7 @@
  file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
  variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
  need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -15254,8 +15914,13 @@ reload_flag \
+@@ -15253,8 +15913,13 @@ reload_flag \
  OBJDUMP \
  deplibs_check_method \
  file_magic_cmd \
@@ -5368,7 +5367,7 @@
  STRIP \
  RANLIB \
  CC \
-@@ -15265,12 +15930,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -15264,12 +15929,14 @@ lt_cv_sys_global_symbol_pipe \
  lt_cv_sys_global_symbol_to_cdecl \
  lt_cv_sys_global_symbol_to_c_name_address \
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -5384,7 +5383,7 @@
  DSYMUTIL \
  NMEDIT \
  LIPO \
-@@ -15286,7 +15953,6 @@ no_undefined_flag \
+@@ -15285,7 +15952,6 @@ no_undefined_flag \
  hardcode_libdir_flag_spec \
  hardcode_libdir_flag_spec_ld \
  hardcode_libdir_separator \
@@ -5392,7 +5391,7 @@
  exclude_expsyms \
  include_expsyms \
  file_list_spec \
-@@ -15322,6 +15988,7 @@ module_cmds \
+@@ -15321,6 +15987,7 @@ module_cmds \
  module_expsym_cmds \
  export_symbols_cmds \
  prelink_cmds \
@@ -5400,7 +5399,7 @@
  postinstall_cmds \
  postuninstall_cmds \
  finish_cmds \
-@@ -16094,7 +16761,8 @@ $as_echo X"$file" |
+@@ -16093,7 +16760,8 @@ $as_echo X"$file" |
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
  #
  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -5410,7 +5409,7 @@
  #   Written by Gordon Matzigkeit, 1996
  #
  #   This file is part of GNU Libtool.
-@@ -16197,19 +16865,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -16196,19 +16864,42 @@ SP2NL=$lt_lt_SP2NL
  # turn newlines into spaces.
  NL2SP=$lt_lt_NL2SP
  
@@ -5454,7 +5453,7 @@
  # A symbol stripping program.
  STRIP=$lt_STRIP
  
-@@ -16239,6 +16930,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -16238,6 +16929,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
  # Transform the output of nm in a C name address pair when lib prefix is needed.
  global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
  
@@ -5467,7 +5466,7 @@
  # The name of the directory that contains temporary libtool files.
  objdir=$objdir
  
-@@ -16248,6 +16945,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -16247,6 +16944,9 @@ MAGIC_CMD=$MAGIC_CMD
  # Must we lock files when doing compilation?
  need_locks=$lt_need_locks
  
@@ -5477,7 +5476,7 @@
  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  DSYMUTIL=$lt_DSYMUTIL
  
-@@ -16362,12 +17062,12 @@ with_gcc=$GCC
+@@ -16361,12 +17061,12 @@ with_gcc=$GCC
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
  
@@ -5493,7 +5492,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static
  
-@@ -16454,9 +17154,6 @@ inherit_rpath=$inherit_rpath
+@@ -16453,9 +17153,6 @@ inherit_rpath=$inherit_rpath
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs
  
@@ -5503,7 +5502,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols
  
-@@ -16472,6 +17169,9 @@ include_expsyms=$lt_include_expsyms
+@@ -16471,6 +17168,9 @@ include_expsyms=$lt_include_expsyms
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds
  
@@ -5513,7 +5512,7 @@
  # Specify filename containing input files.
  file_list_spec=$lt_file_list_spec
  
-@@ -16504,210 +17204,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -16503,210 +17203,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?
@@ -5916,7 +5915,7 @@
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
  am__include = @am__include@
 diff --git a/gprof/configure b/gprof/configure
-index c5a081c88aa..a1b06379df4 100755
+index 98ba6d7f5b3..113505b963c 100755
 --- a/gprof/configure
 +++ b/gprof/configure
 @@ -663,8 +663,11 @@ OTOOL
@@ -7830,7 +7829,7 @@
    chmod +x "$ofile"
  
 diff --git a/gprofng/Makefile.in b/gprofng/Makefile.in
-index a2854950e34..4d307543d81 100644
+index 06b563cb8ef..b6ae509fd6c 100644
 --- a/gprofng/Makefile.in
 +++ b/gprofng/Makefile.in
 @@ -253,6 +253,7 @@ CXXFLAGS = @CXXFLAGS@
@@ -7850,10 +7849,10 @@
  NM = @NM@
  NMEDIT = @NMEDIT@
 diff --git a/gprofng/configure b/gprofng/configure
-index 3ad87139280..e4593cbb838 100755
+index 69eb806a17d..9e97e334544 100755
 --- a/gprofng/configure
 +++ b/gprofng/configure
-@@ -674,6 +674,8 @@ OTOOL
+@@ -672,6 +672,8 @@ OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
@@ -7862,7 +7861,7 @@
  OBJDUMP
  LN_S
  NM
-@@ -804,6 +806,7 @@ enable_static
+@@ -802,6 +804,7 @@ enable_static
  with_pic
  enable_fast_install
  with_gnu_ld
@@ -7870,7 +7869,7 @@
  enable_libtool_lock
  enable_werror_always
  enable_gprofng_tools
-@@ -1467,6 +1470,8 @@ Optional Packages:
+@@ -1465,6 +1468,8 @@ Optional Packages:
    --with-pic              try to use only PIC/non-PIC objects [default=use
                            both]
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -7879,7 +7878,7 @@
    --with-jdk=PATH         specify prefix directory for installed JDK.
    --with-system-zlib      use installed libz
  
-@@ -6158,8 +6163,8 @@ esac
+@@ -6156,8 +6161,8 @@ esac
  
  
  
@@ -7890,7 +7889,7 @@
  
  
  
-@@ -6199,7 +6204,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -6197,7 +6202,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
  $as_echo_n "checking how to print strings... " >&6; }
  # Test print first, because it will be a builtin if present.
@@ -7899,7 +7898,7 @@
     test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
    ECHO='print -r --'
  elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -6892,8 +6897,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -6890,8 +6895,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
  # Try some XSI features
  xsi_shell=no
  ( _lt_dummy="a/b/c"
@@ -7910,7 +7909,7 @@
      && eval 'test $(( 1 + 1 )) -eq 2 \
      && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
    && xsi_shell=yes
-@@ -6942,6 +6947,80 @@ esac
+@@ -6940,6 +6945,80 @@ esac
  
  
  
@@ -7991,7 +7990,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
  $as_echo_n "checking for $LD option to reload object files... " >&6; }
  if ${lt_cv_ld_reload_flag+:} false; then :
-@@ -6958,6 +7037,11 @@ case $reload_flag in
+@@ -6956,6 +7035,11 @@ case $reload_flag in
  esac
  reload_cmds='$LD$reload_flag -o $output$reload_objs'
  case $host_os in
@@ -8003,7 +8002,7 @@
    darwin*)
      if test "$GCC" = yes; then
        reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -7126,7 +7210,8 @@ mingw* | pw32*)
+@@ -7124,7 +7208,8 @@ mingw* | pw32*)
      lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
      lt_cv_file_magic_cmd='func_win32_libid'
    else
@@ -8013,7 +8012,7 @@
      lt_cv_file_magic_cmd='$OBJDUMP -f'
    fi
    ;;
-@@ -7280,6 +7365,21 @@ esac
+@@ -7278,6 +7363,21 @@ esac
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
  $as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -8035,7 +8034,7 @@
  file_magic_cmd=$lt_cv_file_magic_cmd
  deplibs_check_method=$lt_cv_deplibs_check_method
  test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -7295,6 +7395,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -7293,6 +7393,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
  
  
  
@@ -8193,7 +8192,7 @@
  plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
-@@ -7309,8 +7560,10 @@ for plugin in $plugin_names; do
+@@ -7307,8 +7558,10 @@ for plugin in $plugin_names; do
  done
  
  if test -n "$ac_tool_prefix"; then
@@ -8206,7 +8205,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_AR+:} false; then :
-@@ -7326,7 +7579,7 @@ do
+@@ -7324,7 +7577,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -8215,7 +8214,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -7346,11 +7599,15 @@ $as_echo "no" >&6; }
+@@ -7344,11 +7597,15 @@ $as_echo "no" >&6; }
  fi
  
  
@@ -8234,7 +8233,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_ac_ct_AR+:} false; then :
-@@ -7366,7 +7623,7 @@ do
+@@ -7364,7 +7621,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -8243,7 +8242,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -7385,6 +7642,10 @@ else
+@@ -7383,6 +7640,10 @@ else
  $as_echo "no" >&6; }
  fi
  
@@ -8254,7 +8253,7 @@
    if test "x$ac_ct_AR" = x; then
      AR="false"
    else
-@@ -7396,29 +7657,81 @@ ac_tool_warned=yes ;;
+@@ -7394,29 +7655,81 @@ ac_tool_warned=yes ;;
  esac
      AR=$ac_ct_AR
    fi
@@ -8351,7 +8350,7 @@
  
  
  
-@@ -7765,8 +8078,8 @@ esac
+@@ -7763,8 +8076,8 @@ esac
  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
  
  # Transform an extracted symbol line into symbol name and symbol address
@@ -8362,7 +8361,7 @@
  
  # Handle CRLF in mingw tool chain
  opt_cr=
-@@ -7802,6 +8115,7 @@ for ac_symprfx in "" "_"; do
+@@ -7800,6 +8113,7 @@ for ac_symprfx in "" "_"; do
    else
      lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
    fi
@@ -8370,7 +8369,7 @@
  
    # Check to see that the pipe works correctly.
    pipe_works=no
-@@ -7843,6 +8157,18 @@ _LT_EOF
+@@ -7841,6 +8155,18 @@ _LT_EOF
        if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
  	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
  	  cat <<_LT_EOF > conftest.$ac_ext
@@ -8389,7 +8388,7 @@
  #ifdef __cplusplus
  extern "C" {
  #endif
-@@ -7854,7 +8180,7 @@ _LT_EOF
+@@ -7852,7 +8178,7 @@ _LT_EOF
  	  cat <<_LT_EOF >> conftest.$ac_ext
  
  /* The mapping between symbol names and symbols.  */
@@ -8398,7 +8397,7 @@
    const char *name;
    void       *address;
  }
-@@ -7880,8 +8206,8 @@ static const void *lt_preloaded_setup() {
+@@ -7878,8 +8204,8 @@ static const void *lt_preloaded_setup() {
  _LT_EOF
  	  # Now try linking the two files.
  	  mv conftest.$ac_objext conftstm.$ac_objext
@@ -8409,7 +8408,7 @@
  	  LIBS="conftstm.$ac_objext"
  	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
  	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7891,8 +8217,8 @@ _LT_EOF
+@@ -7889,8 +8215,8 @@ _LT_EOF
    test $ac_status = 0; } && test -s conftest${ac_exeext}; then
  	    pipe_works=yes
  	  fi
@@ -8420,7 +8419,7 @@
  	else
  	  echo "cannot find nm_test_func in $nlist" >&5
  	fi
-@@ -7929,6 +8255,13 @@ else
+@@ -7927,6 +8253,13 @@ else
  $as_echo "ok" >&6; }
  fi
  
@@ -8434,7 +8433,7 @@
  
  
  
-@@ -7948,6 +8281,48 @@ fi
+@@ -7946,6 +8279,48 @@ fi
  
  
  
@@ -8483,7 +8482,7 @@
  
  
  # Check whether --enable-libtool-lock was given.
-@@ -8156,6 +8531,123 @@ esac
+@@ -8154,6 +8529,123 @@ esac
  
  need_locks="$enable_libtool_lock"
  
@@ -8607,7 +8606,7 @@
  
    case $host_os in
      rhapsody* | darwin*)
-@@ -8719,6 +9211,8 @@ _LT_EOF
+@@ -8717,6 +9209,8 @@ _LT_EOF
        $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
        echo "$AR cru libconftest.a conftest.o" >&5
        $AR cru libconftest.a conftest.o 2>&5
@@ -8616,7 +8615,7 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -8787,6 +9281,16 @@ done
+@@ -8785,6 +9279,16 @@ done
  
  
  
@@ -8633,7 +8632,7 @@
  
  
  # Set options
-@@ -9272,8 +9776,6 @@ fi
+@@ -9270,8 +9774,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
  
@@ -8642,7 +8641,7 @@
  
    if test "$GCC" = yes; then
      lt_prog_compiler_wl='-Wl,'
-@@ -9439,6 +9941,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -9437,6 +9939,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	lt_prog_compiler_pic='--shared'
  	lt_prog_compiler_static='--static'
  	;;
@@ -8655,7 +8654,7 @@
        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
          # Portland Group compilers (*not* the Pentium gcc compiler,
  	# which looks to be a dead project)
-@@ -9501,7 +10009,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -9499,7 +10007,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='-KPIC'
        lt_prog_compiler_static='-Bstatic'
        case $cc_basename in
@@ -8664,7 +8663,7 @@
  	lt_prog_compiler_wl='-Qoption ld ';;
        *)
  	lt_prog_compiler_wl='-Wl,';;
-@@ -9558,13 +10066,17 @@ case $host_os in
+@@ -9556,13 +10064,17 @@ case $host_os in
      lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
      ;;
  esac
@@ -8688,7 +8687,7 @@
  
  #
  # Check to make sure the PIC flag actually works.
-@@ -9625,6 +10137,11 @@ fi
+@@ -9623,6 +10135,11 @@ fi
  
  
  
@@ -8700,7 +8699,7 @@
  #
  # Check to make sure the static flag actually works.
  #
-@@ -9975,7 +10492,8 @@ _LT_EOF
+@@ -9973,7 +10490,8 @@ _LT_EOF
        allow_undefined_flag=unsupported
        always_export_symbols=no
        enable_shared_with_static_runtimes=yes
@@ -8710,7 +8709,7 @@
  
        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
          archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -10074,12 +10592,12 @@ _LT_EOF
+@@ -10072,12 +10590,12 @@ _LT_EOF
  	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
  	  hardcode_libdir_flag_spec=
  	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -8725,7 +8724,7 @@
  	  fi
  	  ;;
  	esac
-@@ -10093,8 +10611,8 @@ _LT_EOF
+@@ -10091,8 +10609,8 @@ _LT_EOF
  	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
  	wlarc=
        else
@@ -8736,7 +8735,7 @@
        fi
        ;;
  
-@@ -10112,8 +10630,8 @@ _LT_EOF
+@@ -10110,8 +10628,8 @@ _LT_EOF
  
  _LT_EOF
        elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -8747,7 +8746,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -10159,8 +10677,8 @@ _LT_EOF
+@@ -10157,8 +10675,8 @@ _LT_EOF
  
      *)
        if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -8758,7 +8757,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -10290,7 +10808,13 @@ _LT_EOF
+@@ -10288,7 +10806,13 @@ _LT_EOF
  	allow_undefined_flag='-berok'
          # Determine the default libpath from the value encoded in an
          # empty executable.
@@ -8773,7 +8772,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -10303,22 +10827,29 @@ main ()
+@@ -10301,22 +10825,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -8816,7 +8815,7 @@
  
          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -10330,7 +10861,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10328,7 +10859,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	else
  	 # Determine the default libpath from the value encoded in an
  	 # empty executable.
@@ -8831,7 +8830,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -10343,22 +10880,29 @@ main ()
+@@ -10341,22 +10878,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -8874,7 +8873,7 @@
  
  	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
  	  # Warning - without using the other run time loading flags,
-@@ -10403,20 +10947,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10401,20 +10945,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        # Microsoft Visual C++.
        # hardcode_libdir_flag_spec is actually meaningless, as there is
        # no search path for DLLs.
@@ -8952,7 +8951,7 @@
        ;;
  
      darwin* | rhapsody*)
-@@ -10477,7 +11064,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10475,7 +11062,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
      freebsd* | dragonfly*)
@@ -8961,7 +8960,7 @@
        hardcode_libdir_flag_spec='-R$libdir'
        hardcode_direct=yes
        hardcode_shlibpath_var=no
-@@ -10485,7 +11072,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10483,7 +11070,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux9*)
        if test "$GCC" = yes; then
@@ -8970,7 +8969,7 @@
        else
  	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
        fi
-@@ -10501,7 +11088,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10499,7 +11086,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux10*)
        if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -8979,7 +8978,7 @@
        else
  	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
        fi
-@@ -10525,10 +11112,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10523,10 +11110,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
  	  ;;
  	ia64*)
@@ -8992,7 +8991,7 @@
  	  ;;
  	esac
        else
-@@ -10607,23 +11194,36 @@ fi
+@@ -10605,23 +11192,36 @@ fi
  
      irix5* | irix6* | nonstopux*)
        if test "$GCC" = yes; then
@@ -9037,7 +9036,7 @@
        else
  	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
  	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -10708,7 +11308,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10706,7 +11306,7 @@ rm -f core conftest.err conftest.$ac_objext \
      osf4* | osf5*)	# as osf3* with the addition of -msym flag
        if test "$GCC" = yes; then
  	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -9046,7 +9045,7 @@
  	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
        else
  	allow_undefined_flag=' -expect_unresolved \*'
-@@ -10727,9 +11327,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10725,9 +11325,9 @@ rm -f core conftest.err conftest.$ac_objext \
        no_undefined_flag=' -z defs'
        if test "$GCC" = yes; then
  	wlarc='${wl}'
@@ -9058,7 +9057,7 @@
        else
  	case `$CC -V 2>&1` in
  	*"Compilers 5.0"*)
-@@ -11305,8 +11905,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -11303,8 +11903,9 @@ cygwin* | mingw* | pw32* | cegcc*)
    need_version=no
    need_lib_prefix=no
  
@@ -9070,7 +9069,7 @@
      library_names_spec='$libname.dll.a'
      # DLL is installed to $(libdir)/../bin by postinstall_cmds
      postinstall_cmds='base_file=`basename \${file}`~
-@@ -11339,13 +11940,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -11337,13 +11938,71 @@ cygwin* | mingw* | pw32* | cegcc*)
        library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
        ;;
      esac
@@ -9143,16 +9142,16 @@
    # FIXME: first we should search . and the directory the executable is in
    shlibpath_var=PATH
    ;;
-@@ -12223,7 +12882,7 @@ else
+@@ -12221,7 +12880,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
--#line 12226 "configure"
+-#line 12224 "configure"
 +#line $LINENO "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -12267,10 +12926,10 @@ else
+@@ -12265,10 +12924,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -9165,16 +9164,16 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12329,7 +12988,7 @@ else
+@@ -12327,7 +12986,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
--#line 12332 "configure"
+-#line 12330 "configure"
 +#line $LINENO "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -12373,10 +13032,10 @@ else
+@@ -12371,10 +13030,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -9187,7 +9186,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12768,6 +13427,7 @@ $RM -r conftest*
+@@ -12766,6 +13425,7 @@ $RM -r conftest*
  
    # Allow CC to be a program name with arguments.
    lt_save_CC=$CC
@@ -9195,7 +9194,7 @@
    lt_save_LD=$LD
    lt_save_GCC=$GCC
    GCC=$GXX
-@@ -12785,6 +13445,7 @@ $RM -r conftest*
+@@ -12783,6 +13443,7 @@ $RM -r conftest*
    fi
    test -z "${LDCXX+set}" || LD=$LDCXX
    CC=${CXX-"c++"}
@@ -9203,7 +9202,7 @@
    compiler=$CC
    compiler_CXX=$CC
    for cc_temp in $compiler""; do
-@@ -13067,7 +13728,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+@@ -13065,7 +13726,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
            allow_undefined_flag_CXX='-berok'
            # Determine the default libpath from the value encoded in an empty
            # executable.
@@ -9218,7 +9217,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -13080,22 +13747,29 @@ main ()
+@@ -13078,22 +13745,29 @@ main ()
  _ACEOF
  if ac_fn_cxx_try_link "$LINENO"; then :
  
@@ -9261,7 +9260,7 @@
  
            hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
  
-@@ -13108,7 +13782,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13106,7 +13780,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            else
  	    # Determine the default libpath from the value encoded in an
  	    # empty executable.
@@ -9276,7 +9275,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -13121,22 +13801,29 @@ main ()
+@@ -13119,22 +13799,29 @@ main ()
  _ACEOF
  if ac_fn_cxx_try_link "$LINENO"; then :
  
@@ -9319,7 +9318,7 @@
  
  	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
  	    # Warning - without using the other run time loading flags,
-@@ -13179,29 +13866,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13177,29 +13864,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
          ;;
  
        cygwin* | mingw* | pw32* | cegcc*)
@@ -9418,7 +9417,7 @@
        darwin* | rhapsody*)
  
  
-@@ -13307,7 +14040,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13305,7 +14038,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
              ;;
            *)
              if test "$GXX" = yes; then
@@ -9427,7 +9426,7 @@
              else
                # FIXME: insert proper C++ library support
                ld_shlibs_CXX=no
-@@ -13378,10 +14111,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13376,10 +14109,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
  	            ;;
  	          ia64*)
@@ -9440,7 +9439,7 @@
  	            ;;
  	        esac
  	      fi
-@@ -13422,9 +14155,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13420,9 +14153,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            *)
  	    if test "$GXX" = yes; then
  	      if test "$with_gnu_ld" = no; then
@@ -9452,7 +9451,7 @@
  	      fi
  	    fi
  	    link_all_deplibs_CXX=yes
-@@ -13494,20 +14227,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13492,20 +14225,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	      prelink_cmds_CXX='tpldir=Template.dir~
  		rm -rf $tpldir~
  		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
@@ -9477,7 +9476,7 @@
  	      ;;
  	    *) # Version 6 and above use weak symbols
  	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-@@ -13702,7 +14435,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13700,7 +14433,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
  		  ;;
  	        *)
@@ -9486,7 +9485,7 @@
  		  ;;
  	      esac
  
-@@ -13748,7 +14481,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13746,7 +14479,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
        solaris*)
          case $cc_basename in
@@ -9495,7 +9494,7 @@
  	    # Sun C++ 4.2, 5.x and Centerline C++
              archive_cmds_need_lc_CXX=yes
  	    no_undefined_flag_CXX=' -zdefs'
-@@ -13789,9 +14522,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13787,9 +14520,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
  	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
  	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
@@ -9507,7 +9506,7 @@
  
  	        # Commands to make compiler produce verbose output that lists
  	        # what "hidden" libraries, object files and flags are used when
-@@ -13926,6 +14659,13 @@ private:
+@@ -13924,6 +14657,13 @@ private:
  };
  _LT_EOF
  
@@ -9521,7 +9520,7 @@
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
    (eval $ac_compile) 2>&5
    ac_status=$?
-@@ -13939,7 +14679,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13937,7 +14677,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
    pre_test_object_deps_done=no
  
    for p in `eval "$output_verbose_link_cmd"`; do
@@ -9530,7 +9529,7 @@
  
      -L* | -R* | -l*)
         # Some compilers place space between "-{L,R}" and the path.
-@@ -13948,13 +14688,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13946,13 +14686,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
            test $p = "-R"; then
  	 prev=$p
  	 continue
@@ -9557,7 +9556,7 @@
  	   # Internal compiler library paths should come after those
  	   # provided the user.  The postdeps already come after the
  	   # user supplied libs so there is no need to process them.
-@@ -13974,8 +14723,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13972,8 +14721,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
  	 fi
         fi
@@ -9568,7 +9567,7 @@
      *.$objext)
         # This assumes that the test object file only shows up
         # once in the compiler output.
-@@ -14011,6 +14762,7 @@ else
+@@ -14009,6 +14760,7 @@ else
  fi
  
  $RM -f confest.$objext
@@ -9576,7 +9575,7 @@
  
  # PORTME: override above test on systems where it is broken
  case $host_os in
-@@ -14046,7 +14798,7 @@ linux*)
+@@ -14044,7 +14796,7 @@ linux*)
  
  solaris*)
    case $cc_basename in
@@ -9585,7 +9584,7 @@
      # The more standards-conforming stlport4 library is
      # incompatible with the Cstd library. Avoid specifying
      # it if it's in CXXFLAGS. Ignore libCrun as
-@@ -14111,8 +14863,6 @@ fi
+@@ -14109,8 +14861,6 @@ fi
  lt_prog_compiler_pic_CXX=
  lt_prog_compiler_static_CXX=
  
@@ -9594,7 +9593,7 @@
  
    # C++ specific cases for pic, static, wl, etc.
    if test "$GXX" = yes; then
-@@ -14217,6 +14967,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -14215,6 +14965,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	  ;;
  	esac
  	;;
@@ -9606,7 +9605,7 @@
        dgux*)
  	case $cc_basename in
  	  ec++*)
-@@ -14369,7 +15124,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -14367,7 +15122,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	;;
        solaris*)
  	case $cc_basename in
@@ -9615,7 +9614,7 @@
  	    # Sun C++ 4.2, 5.x and Centerline C++
  	    lt_prog_compiler_pic_CXX='-KPIC'
  	    lt_prog_compiler_static_CXX='-Bstatic'
-@@ -14434,10 +15189,17 @@ case $host_os in
+@@ -14432,10 +15187,17 @@ case $host_os in
      lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
      ;;
  esac
@@ -9636,7 +9635,7 @@
  
  #
  # Check to make sure the PIC flag actually works.
-@@ -14495,6 +15257,8 @@ fi
+@@ -14493,6 +15255,8 @@ fi
  
  
  
@@ -9645,7 +9644,7 @@
  #
  # Check to make sure the static flag actually works.
  #
-@@ -14672,6 +15436,7 @@ fi
+@@ -14670,6 +15434,7 @@ fi
  $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
  
    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -9653,7 +9652,7 @@
    case $host_os in
    aix[4-9]*)
      # If we're using GNU nm, then we don't want the "-C" option.
-@@ -14686,15 +15451,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+@@ -14684,15 +15449,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
      ;;
    pw32*)
      export_symbols_cmds_CXX="$ltdll_cmds"
@@ -9679,7 +9678,7 @@
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
  $as_echo "$ld_shlibs_CXX" >&6; }
-@@ -14957,8 +15727,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -14955,8 +15725,9 @@ cygwin* | mingw* | pw32* | cegcc*)
    need_version=no
    need_lib_prefix=no
  
@@ -9691,7 +9690,7 @@
      library_names_spec='$libname.dll.a'
      # DLL is installed to $(libdir)/../bin by postinstall_cmds
      postinstall_cmds='base_file=`basename \${file}`~
-@@ -14990,13 +15761,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -14988,13 +15759,71 @@ cygwin* | mingw* | pw32* | cegcc*)
        library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
        ;;
      esac
@@ -9764,7 +9763,7 @@
    # FIXME: first we should search . and the directory the executable is in
    shlibpath_var=PATH
    ;;
-@@ -15536,6 +16365,7 @@ fi
+@@ -15534,6 +16363,7 @@ fi
    fi # test -n "$compiler"
  
    CC=$lt_save_CC
@@ -9772,7 +9771,7 @@
    LDCXX=$LD
    LD=$lt_save_LD
    GCC=$lt_save_GCC
-@@ -17751,13 +18581,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -17737,13 +18567,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
  lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
  lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
  lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -9793,7 +9792,7 @@
  STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
  RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
  old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -17772,14 +18609,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -17758,14 +18595,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
  lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -9812,7 +9811,7 @@
  DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
  NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
  LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -17812,12 +18652,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -17798,12 +18638,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
  hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
  inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -9826,7 +9825,7 @@
  file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
  variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
  need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -17856,8 +18696,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
+@@ -17842,8 +18682,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
  compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
  GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
  lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
@@ -9836,7 +9835,7 @@
  lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
  lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
  archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-@@ -17884,12 +18724,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
+@@ -17870,12 +18710,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
  hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
  inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
@@ -9850,7 +9849,7 @@
  file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
  hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
  compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-@@ -17927,8 +18767,13 @@ reload_flag \
+@@ -17913,8 +18753,13 @@ reload_flag \
  OBJDUMP \
  deplibs_check_method \
  file_magic_cmd \
@@ -9864,7 +9863,7 @@
  STRIP \
  RANLIB \
  CC \
-@@ -17938,12 +18783,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -17924,12 +18769,14 @@ lt_cv_sys_global_symbol_pipe \
  lt_cv_sys_global_symbol_to_cdecl \
  lt_cv_sys_global_symbol_to_c_name_address \
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -9880,7 +9879,7 @@
  DSYMUTIL \
  NMEDIT \
  LIPO \
-@@ -17959,7 +18806,6 @@ no_undefined_flag \
+@@ -17945,7 +18792,6 @@ no_undefined_flag \
  hardcode_libdir_flag_spec \
  hardcode_libdir_flag_spec_ld \
  hardcode_libdir_separator \
@@ -9888,7 +9887,7 @@
  exclude_expsyms \
  include_expsyms \
  file_list_spec \
-@@ -17981,8 +18827,8 @@ LD_CXX \
+@@ -17967,8 +18813,8 @@ LD_CXX \
  reload_flag_CXX \
  compiler_CXX \
  lt_prog_compiler_no_builtin_flag_CXX \
@@ -9898,7 +9897,7 @@
  lt_prog_compiler_static_CXX \
  lt_cv_prog_compiler_c_o_CXX \
  export_dynamic_flag_spec_CXX \
-@@ -17994,7 +18840,6 @@ no_undefined_flag_CXX \
+@@ -17980,7 +18826,6 @@ no_undefined_flag_CXX \
  hardcode_libdir_flag_spec_CXX \
  hardcode_libdir_flag_spec_ld_CXX \
  hardcode_libdir_separator_CXX \
@@ -9906,7 +9905,7 @@
  exclude_expsyms_CXX \
  include_expsyms_CXX \
  file_list_spec_CXX \
-@@ -18028,6 +18873,7 @@ module_cmds \
+@@ -18014,6 +18859,7 @@ module_cmds \
  module_expsym_cmds \
  export_symbols_cmds \
  prelink_cmds \
@@ -9914,7 +9913,7 @@
  postinstall_cmds \
  postuninstall_cmds \
  finish_cmds \
-@@ -18042,7 +18888,8 @@ archive_expsym_cmds_CXX \
+@@ -18028,7 +18874,8 @@ archive_expsym_cmds_CXX \
  module_cmds_CXX \
  module_expsym_cmds_CXX \
  export_symbols_cmds_CXX \
@@ -9924,7 +9923,7 @@
      case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
      *[\\\\\\\`\\"\\\$]*)
        eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-@@ -18799,7 +19646,8 @@ $as_echo X"$file" |
+@@ -18785,7 +19632,8 @@ $as_echo X"$file" |
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
  #
  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -9934,7 +9933,7 @@
  #   Written by Gordon Matzigkeit, 1996
  #
  #   This file is part of GNU Libtool.
-@@ -18902,19 +19750,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -18888,19 +19736,42 @@ SP2NL=$lt_lt_SP2NL
  # turn newlines into spaces.
  NL2SP=$lt_lt_NL2SP
  
@@ -9978,7 +9977,7 @@
  # A symbol stripping program.
  STRIP=$lt_STRIP
  
-@@ -18944,6 +19815,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -18930,6 +19801,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
  # Transform the output of nm in a C name address pair when lib prefix is needed.
  global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
  
@@ -9991,7 +9990,7 @@
  # The name of the directory that contains temporary libtool files.
  objdir=$objdir
  
-@@ -18953,6 +19830,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -18939,6 +19816,9 @@ MAGIC_CMD=$MAGIC_CMD
  # Must we lock files when doing compilation?
  need_locks=$lt_need_locks
  
@@ -10001,7 +10000,7 @@
  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  DSYMUTIL=$lt_DSYMUTIL
  
-@@ -19067,12 +19947,12 @@ with_gcc=$GCC
+@@ -19053,12 +19933,12 @@ with_gcc=$GCC
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
  
@@ -10017,7 +10016,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static
  
-@@ -19159,9 +20039,6 @@ inherit_rpath=$inherit_rpath
+@@ -19145,9 +20025,6 @@ inherit_rpath=$inherit_rpath
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs
  
@@ -10027,7 +10026,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols
  
-@@ -19177,6 +20054,9 @@ include_expsyms=$lt_include_expsyms
+@@ -19163,6 +20040,9 @@ include_expsyms=$lt_include_expsyms
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds
  
@@ -10037,7 +10036,7 @@
  # Specify filename containing input files.
  file_list_spec=$lt_file_list_spec
  
-@@ -19223,210 +20103,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -19209,210 +20089,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?
@@ -10411,7 +10410,7 @@
      (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
    chmod +x "$ofile"
  
-@@ -19454,12 +20293,12 @@ with_gcc=$GCC_CXX
+@@ -19440,12 +20279,12 @@ with_gcc=$GCC_CXX
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
  
@@ -10427,7 +10426,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static_CXX
  
-@@ -19546,9 +20385,6 @@ inherit_rpath=$inherit_rpath_CXX
+@@ -19532,9 +20371,6 @@ inherit_rpath=$inherit_rpath_CXX
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs_CXX
  
@@ -10437,7 +10436,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols_CXX
  
-@@ -19564,6 +20400,9 @@ include_expsyms=$lt_include_expsyms_CXX
+@@ -19550,6 +20386,9 @@ include_expsyms=$lt_include_expsyms_CXX
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds_CXX
  
@@ -10448,10 +10447,10 @@
  file_list_spec=$lt_file_list_spec_CXX
  
 diff --git a/gprofng/doc/Makefile.in b/gprofng/doc/Makefile.in
-index 3cd2068cbf6..c5d431236aa 100644
+index 78f8ae11fc7..48058763422 100644
 --- a/gprofng/doc/Makefile.in
 +++ b/gprofng/doc/Makefile.in
-@@ -240,6 +240,7 @@ CXXFLAGS = @CXXFLAGS@
+@@ -238,6 +238,7 @@ CXXFLAGS = @CXXFLAGS@
  CYGPATH_W = @CYGPATH_W@
  DEFS = @DEFS@
  DEPDIR = @DEPDIR@
@@ -10459,7 +10458,7 @@
  DSYMUTIL = @DSYMUTIL@
  DUMPBIN = @DUMPBIN@
  ECHO_C = @ECHO_C@
-@@ -275,6 +276,7 @@ LN_S = @LN_S@
+@@ -273,6 +274,7 @@ LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
  MAKEINFO = @MAKEINFO@
@@ -10468,10 +10467,10 @@
  NM = @NM@
  NMEDIT = @NMEDIT@
 diff --git a/gprofng/gp-display-html/Makefile.in b/gprofng/gp-display-html/Makefile.in
-index 42886f7c645..b7e31ded46a 100644
+index 21cc1c6623b..e989804603e 100644
 --- a/gprofng/gp-display-html/Makefile.in
 +++ b/gprofng/gp-display-html/Makefile.in
-@@ -200,6 +200,7 @@ CXXFLAGS = @CXXFLAGS@
+@@ -197,6 +197,7 @@ CXXFLAGS = @CXXFLAGS@
  CYGPATH_W = @CYGPATH_W@
  DEFS = @DEFS@
  DEPDIR = @DEPDIR@
@@ -10479,7 +10478,7 @@
  DSYMUTIL = @DSYMUTIL@
  DUMPBIN = @DUMPBIN@
  ECHO_C = @ECHO_C@
-@@ -235,6 +236,7 @@ LN_S = @LN_S@
+@@ -232,6 +233,7 @@ LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
  MAKEINFO = @MAKEINFO@
@@ -10488,7 +10487,7 @@
  NM = @NM@
  NMEDIT = @NMEDIT@
 diff --git a/gprofng/libcollector/Makefile.in b/gprofng/libcollector/Makefile.in
-index eef61ba85f7..0eb1521b704 100644
+index dc76a76bd67..763b08822f2 100644
 --- a/gprofng/libcollector/Makefile.in
 +++ b/gprofng/libcollector/Makefile.in
 @@ -316,6 +316,7 @@ CXXFLAGS = @CXXFLAGS@
@@ -10499,7 +10498,7 @@
  DSYMUTIL = @DSYMUTIL@
  DUMPBIN = @DUMPBIN@
  ECHO_C = @ECHO_C@
-@@ -342,6 +343,7 @@ LN_S = @LN_S@
+@@ -341,6 +342,7 @@ LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
  MAKEINFO = @MAKEINFO@
@@ -10508,10 +10507,10 @@
  NM = @NM@
  NMEDIT = @NMEDIT@
 diff --git a/gprofng/libcollector/configure b/gprofng/libcollector/configure
-index 079a0b71ec3..a28289cfe9d 100755
+index 865ddb3d91d..31533528ee2 100755
 --- a/gprofng/libcollector/configure
 +++ b/gprofng/libcollector/configure
-@@ -641,6 +641,8 @@ OTOOL
+@@ -640,6 +640,8 @@ OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
@@ -10520,7 +10519,7 @@
  OBJDUMP
  LN_S
  NM
-@@ -770,6 +772,7 @@ enable_static
+@@ -769,6 +771,7 @@ enable_static
  with_pic
  enable_fast_install
  with_gnu_ld
@@ -10528,7 +10527,7 @@
  enable_libtool_lock
  '
        ac_precious_vars='build_alias
-@@ -1425,6 +1428,8 @@ Optional Packages:
+@@ -1424,6 +1427,8 @@ Optional Packages:
    --with-pic              try to use only PIC/non-PIC objects [default=use
                            both]
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -10537,7 +10536,7 @@
  
  Some influential environment variables:
    CC          C compiler command
-@@ -5969,8 +5974,8 @@ esac
+@@ -5968,8 +5973,8 @@ esac
  
  
  
@@ -10548,7 +10547,7 @@
  
  
  
-@@ -6010,7 +6015,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -6009,7 +6014,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
  $as_echo_n "checking how to print strings... " >&6; }
  # Test print first, because it will be a builtin if present.
@@ -10557,7 +10556,7 @@
     test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
    ECHO='print -r --'
  elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -6703,8 +6708,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -6702,8 +6707,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
  # Try some XSI features
  xsi_shell=no
  ( _lt_dummy="a/b/c"
@@ -10568,7 +10567,7 @@
      && eval 'test $(( 1 + 1 )) -eq 2 \
      && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
    && xsi_shell=yes
-@@ -6753,6 +6758,80 @@ esac
+@@ -6752,6 +6757,80 @@ esac
  
  
  
@@ -10649,7 +10648,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
  $as_echo_n "checking for $LD option to reload object files... " >&6; }
  if ${lt_cv_ld_reload_flag+:} false; then :
-@@ -6769,6 +6848,11 @@ case $reload_flag in
+@@ -6768,6 +6847,11 @@ case $reload_flag in
  esac
  reload_cmds='$LD$reload_flag -o $output$reload_objs'
  case $host_os in
@@ -10661,7 +10660,7 @@
    darwin*)
      if test "$GCC" = yes; then
        reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6937,7 +7021,8 @@ mingw* | pw32*)
+@@ -6936,7 +7020,8 @@ mingw* | pw32*)
      lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
      lt_cv_file_magic_cmd='func_win32_libid'
    else
@@ -10671,7 +10670,7 @@
      lt_cv_file_magic_cmd='$OBJDUMP -f'
    fi
    ;;
-@@ -7091,6 +7176,21 @@ esac
+@@ -7090,6 +7175,21 @@ esac
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
  $as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -10693,7 +10692,7 @@
  file_magic_cmd=$lt_cv_file_magic_cmd
  deplibs_check_method=$lt_cv_deplibs_check_method
  test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -7106,6 +7206,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -7105,6 +7205,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
  
  
  
@@ -10851,7 +10850,7 @@
  plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
-@@ -7120,8 +7371,10 @@ for plugin in $plugin_names; do
+@@ -7119,8 +7370,10 @@ for plugin in $plugin_names; do
  done
  
  if test -n "$ac_tool_prefix"; then
@@ -10864,7 +10863,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_AR+:} false; then :
-@@ -7137,7 +7390,7 @@ do
+@@ -7136,7 +7389,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -10873,7 +10872,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -7157,11 +7410,15 @@ $as_echo "no" >&6; }
+@@ -7156,11 +7409,15 @@ $as_echo "no" >&6; }
  fi
  
  
@@ -10892,7 +10891,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_ac_ct_AR+:} false; then :
-@@ -7177,7 +7434,7 @@ do
+@@ -7176,7 +7433,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -10901,7 +10900,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -7196,6 +7453,10 @@ else
+@@ -7195,6 +7452,10 @@ else
  $as_echo "no" >&6; }
  fi
  
@@ -10912,7 +10911,7 @@
    if test "x$ac_ct_AR" = x; then
      AR="false"
    else
-@@ -7207,29 +7468,81 @@ ac_tool_warned=yes ;;
+@@ -7206,29 +7467,81 @@ ac_tool_warned=yes ;;
  esac
      AR=$ac_ct_AR
    fi
@@ -11009,7 +11008,7 @@
  
  
  
-@@ -7576,8 +7889,8 @@ esac
+@@ -7575,8 +7888,8 @@ esac
  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
  
  # Transform an extracted symbol line into symbol name and symbol address
@@ -11020,7 +11019,7 @@
  
  # Handle CRLF in mingw tool chain
  opt_cr=
-@@ -7613,6 +7926,7 @@ for ac_symprfx in "" "_"; do
+@@ -7612,6 +7925,7 @@ for ac_symprfx in "" "_"; do
    else
      lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
    fi
@@ -11028,7 +11027,7 @@
  
    # Check to see that the pipe works correctly.
    pipe_works=no
-@@ -7654,6 +7968,18 @@ _LT_EOF
+@@ -7653,6 +7967,18 @@ _LT_EOF
        if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
  	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
  	  cat <<_LT_EOF > conftest.$ac_ext
@@ -11047,7 +11046,7 @@
  #ifdef __cplusplus
  extern "C" {
  #endif
-@@ -7665,7 +7991,7 @@ _LT_EOF
+@@ -7664,7 +7990,7 @@ _LT_EOF
  	  cat <<_LT_EOF >> conftest.$ac_ext
  
  /* The mapping between symbol names and symbols.  */
@@ -11056,7 +11055,7 @@
    const char *name;
    void       *address;
  }
-@@ -7691,8 +8017,8 @@ static const void *lt_preloaded_setup() {
+@@ -7690,8 +8016,8 @@ static const void *lt_preloaded_setup() {
  _LT_EOF
  	  # Now try linking the two files.
  	  mv conftest.$ac_objext conftstm.$ac_objext
@@ -11067,7 +11066,7 @@
  	  LIBS="conftstm.$ac_objext"
  	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
  	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7702,8 +8028,8 @@ _LT_EOF
+@@ -7701,8 +8027,8 @@ _LT_EOF
    test $ac_status = 0; } && test -s conftest${ac_exeext}; then
  	    pipe_works=yes
  	  fi
@@ -11078,7 +11077,7 @@
  	else
  	  echo "cannot find nm_test_func in $nlist" >&5
  	fi
-@@ -7740,6 +8066,13 @@ else
+@@ -7739,6 +8065,13 @@ else
  $as_echo "ok" >&6; }
  fi
  
@@ -11092,7 +11091,7 @@
  
  
  
-@@ -7759,6 +8092,48 @@ fi
+@@ -7758,6 +8091,48 @@ fi
  
  
  
@@ -11141,7 +11140,7 @@
  
  
  # Check whether --enable-libtool-lock was given.
-@@ -7967,6 +8342,123 @@ esac
+@@ -7966,6 +8341,123 @@ esac
  
  need_locks="$enable_libtool_lock"
  
@@ -11265,7 +11264,7 @@
  
    case $host_os in
      rhapsody* | darwin*)
-@@ -8530,6 +9022,8 @@ _LT_EOF
+@@ -8529,6 +9021,8 @@ _LT_EOF
        $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
        echo "$AR cru libconftest.a conftest.o" >&5
        $AR cru libconftest.a conftest.o 2>&5
@@ -11274,7 +11273,7 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -8598,6 +9092,16 @@ done
+@@ -8597,6 +9091,16 @@ done
  
  
  
@@ -11291,7 +11290,7 @@
  
  
  # Set options
-@@ -9113,8 +9617,6 @@ fi
+@@ -9112,8 +9616,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
  
@@ -11300,7 +11299,7 @@
  
    if test "$GCC" = yes; then
      lt_prog_compiler_wl='-Wl,'
-@@ -9280,6 +9782,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -9279,6 +9781,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	lt_prog_compiler_pic='--shared'
  	lt_prog_compiler_static='--static'
  	;;
@@ -11313,7 +11312,7 @@
        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
          # Portland Group compilers (*not* the Pentium gcc compiler,
  	# which looks to be a dead project)
-@@ -9342,7 +9850,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -9341,7 +9849,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='-KPIC'
        lt_prog_compiler_static='-Bstatic'
        case $cc_basename in
@@ -11322,7 +11321,7 @@
  	lt_prog_compiler_wl='-Qoption ld ';;
        *)
  	lt_prog_compiler_wl='-Wl,';;
-@@ -9399,13 +9907,17 @@ case $host_os in
+@@ -9398,13 +9906,17 @@ case $host_os in
      lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
      ;;
  esac
@@ -11346,7 +11345,7 @@
  
  #
  # Check to make sure the PIC flag actually works.
-@@ -9466,6 +9978,11 @@ fi
+@@ -9465,6 +9977,11 @@ fi
  
  
  
@@ -11358,7 +11357,7 @@
  #
  # Check to make sure the static flag actually works.
  #
-@@ -9816,7 +10333,8 @@ _LT_EOF
+@@ -9815,7 +10332,8 @@ _LT_EOF
        allow_undefined_flag=unsupported
        always_export_symbols=no
        enable_shared_with_static_runtimes=yes
@@ -11368,7 +11367,7 @@
  
        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
          archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -9915,12 +10433,12 @@ _LT_EOF
+@@ -9914,12 +10432,12 @@ _LT_EOF
  	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
  	  hardcode_libdir_flag_spec=
  	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -11383,7 +11382,7 @@
  	  fi
  	  ;;
  	esac
-@@ -9934,8 +10452,8 @@ _LT_EOF
+@@ -9933,8 +10451,8 @@ _LT_EOF
  	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
  	wlarc=
        else
@@ -11394,7 +11393,7 @@
        fi
        ;;
  
-@@ -9953,8 +10471,8 @@ _LT_EOF
+@@ -9952,8 +10470,8 @@ _LT_EOF
  
  _LT_EOF
        elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -11405,7 +11404,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -10000,8 +10518,8 @@ _LT_EOF
+@@ -9999,8 +10517,8 @@ _LT_EOF
  
      *)
        if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -11416,7 +11415,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -10131,7 +10649,13 @@ _LT_EOF
+@@ -10130,7 +10648,13 @@ _LT_EOF
  	allow_undefined_flag='-berok'
          # Determine the default libpath from the value encoded in an
          # empty executable.
@@ -11431,7 +11430,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -10144,22 +10668,29 @@ main ()
+@@ -10143,22 +10667,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -11474,7 +11473,7 @@
  
          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -10171,7 +10702,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10170,7 +10701,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	else
  	 # Determine the default libpath from the value encoded in an
  	 # empty executable.
@@ -11489,7 +11488,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -10184,22 +10721,29 @@ main ()
+@@ -10183,22 +10720,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -11532,7 +11531,7 @@
  
  	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
  	  # Warning - without using the other run time loading flags,
-@@ -10243,21 +10787,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10242,21 +10786,64 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        # When not using gcc, we currently assume that we are using
        # Microsoft Visual C++.
        # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -11612,7 +11611,7 @@
        ;;
  
      darwin* | rhapsody*)
-@@ -10318,7 +10905,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10317,7 +10904,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
      freebsd* | dragonfly*)
@@ -11621,7 +11620,7 @@
        hardcode_libdir_flag_spec='-R$libdir'
        hardcode_direct=yes
        hardcode_shlibpath_var=no
-@@ -10326,7 +10913,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10325,7 +10912,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux9*)
        if test "$GCC" = yes; then
@@ -11630,7 +11629,7 @@
        else
  	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
        fi
-@@ -10342,7 +10929,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10341,7 +10928,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux10*)
        if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -11639,7 +11638,7 @@
        else
  	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
        fi
-@@ -10366,10 +10953,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -10365,10 +10952,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
  	  ;;
  	ia64*)
@@ -11652,7 +11651,7 @@
  	  ;;
  	esac
        else
-@@ -10448,23 +11035,36 @@ fi
+@@ -10447,23 +11034,36 @@ fi
  
      irix5* | irix6* | nonstopux*)
        if test "$GCC" = yes; then
@@ -11697,7 +11696,7 @@
        else
  	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
  	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -10549,7 +11149,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10548,7 +11148,7 @@ rm -f core conftest.err conftest.$ac_objext \
      osf4* | osf5*)	# as osf3* with the addition of -msym flag
        if test "$GCC" = yes; then
  	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -11706,7 +11705,7 @@
  	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
        else
  	allow_undefined_flag=' -expect_unresolved \*'
-@@ -10568,9 +11168,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10567,9 +11167,9 @@ rm -f core conftest.err conftest.$ac_objext \
        no_undefined_flag=' -z defs'
        if test "$GCC" = yes; then
  	wlarc='${wl}'
@@ -11718,7 +11717,7 @@
        else
  	case `$CC -V 2>&1` in
  	*"Compilers 5.0"*)
-@@ -11146,8 +11746,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -11145,8 +11745,9 @@ cygwin* | mingw* | pw32* | cegcc*)
    need_version=no
    need_lib_prefix=no
  
@@ -11730,7 +11729,7 @@
      library_names_spec='$libname.dll.a'
      # DLL is installed to $(libdir)/../bin by postinstall_cmds
      postinstall_cmds='base_file=`basename \${file}`~
-@@ -11180,13 +11781,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -11179,13 +11780,71 @@ cygwin* | mingw* | pw32* | cegcc*)
        library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
        ;;
      esac
@@ -11803,16 +11802,16 @@
    # FIXME: first we should search . and the directory the executable is in
    shlibpath_var=PATH
    ;;
-@@ -12064,7 +12723,7 @@ else
+@@ -12063,7 +12722,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
--#line 12067 "configure"
+-#line 12066 "configure"
 +#line $LINENO "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -12108,10 +12767,10 @@ else
+@@ -12107,10 +12766,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -11825,16 +11824,16 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12170,7 +12829,7 @@ else
+@@ -12169,7 +12828,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
--#line 12173 "configure"
+-#line 12172 "configure"
 +#line $LINENO "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -12214,10 +12873,10 @@ else
+@@ -12213,10 +12872,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -11847,7 +11846,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12609,6 +13268,7 @@ $RM -r conftest*
+@@ -12608,6 +13267,7 @@ $RM -r conftest*
  
    # Allow CC to be a program name with arguments.
    lt_save_CC=$CC
@@ -11855,7 +11854,7 @@
    lt_save_LD=$LD
    lt_save_GCC=$GCC
    GCC=$GXX
-@@ -12626,6 +13286,7 @@ $RM -r conftest*
+@@ -12625,6 +13285,7 @@ $RM -r conftest*
    fi
    test -z "${LDCXX+set}" || LD=$LDCXX
    CC=${CXX-"c++"}
@@ -11863,7 +11862,7 @@
    compiler=$CC
    compiler_CXX=$CC
    for cc_temp in $compiler""; do
-@@ -12908,7 +13569,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+@@ -12907,7 +13568,13 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
            allow_undefined_flag_CXX='-berok'
            # Determine the default libpath from the value encoded in an empty
            # executable.
@@ -11878,7 +11877,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -12921,22 +13588,29 @@ main ()
+@@ -12920,22 +13587,29 @@ main ()
  _ACEOF
  if ac_fn_cxx_try_link "$LINENO"; then :
  
@@ -11921,7 +11920,7 @@
  
            hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
  
-@@ -12949,7 +13623,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -12948,7 +13622,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            else
  	    # Determine the default libpath from the value encoded in an
  	    # empty executable.
@@ -11936,7 +11935,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -12962,22 +13642,29 @@ main ()
+@@ -12961,22 +13641,29 @@ main ()
  _ACEOF
  if ac_fn_cxx_try_link "$LINENO"; then :
  
@@ -11979,7 +11978,7 @@
  
  	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
  	    # Warning - without using the other run time loading flags,
-@@ -13020,29 +13707,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13019,29 +13706,75 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
          ;;
  
        cygwin* | mingw* | pw32* | cegcc*)
@@ -12078,7 +12077,7 @@
        darwin* | rhapsody*)
  
  
-@@ -13148,7 +13881,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13147,7 +13880,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
              ;;
            *)
              if test "$GXX" = yes; then
@@ -12087,7 +12086,7 @@
              else
                # FIXME: insert proper C++ library support
                ld_shlibs_CXX=no
-@@ -13219,10 +13952,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13218,10 +13951,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
  	            ;;
  	          ia64*)
@@ -12100,7 +12099,7 @@
  	            ;;
  	        esac
  	      fi
-@@ -13263,9 +13996,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13262,9 +13995,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
            *)
  	    if test "$GXX" = yes; then
  	      if test "$with_gnu_ld" = no; then
@@ -12112,7 +12111,7 @@
  	      fi
  	    fi
  	    link_all_deplibs_CXX=yes
-@@ -13335,20 +14068,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13334,20 +14067,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	      prelink_cmds_CXX='tpldir=Template.dir~
  		rm -rf $tpldir~
  		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
@@ -12137,7 +12136,7 @@
  	      ;;
  	    *) # Version 6 and above use weak symbols
  	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-@@ -13543,7 +14276,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13542,7 +14275,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
  		  ;;
  	        *)
@@ -12146,7 +12145,7 @@
  		  ;;
  	      esac
  
-@@ -13589,7 +14322,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13588,7 +14321,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
        solaris*)
          case $cc_basename in
@@ -12155,7 +12154,7 @@
  	    # Sun C++ 4.2, 5.x and Centerline C++
              archive_cmds_need_lc_CXX=yes
  	    no_undefined_flag_CXX=' -zdefs'
-@@ -13630,9 +14363,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -13629,9 +14362,9 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
  	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
  	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
@@ -12167,7 +12166,7 @@
  
  	        # Commands to make compiler produce verbose output that lists
  	        # what "hidden" libraries, object files and flags are used when
-@@ -13767,6 +14500,13 @@ private:
+@@ -13766,6 +14499,13 @@ private:
  };
  _LT_EOF
  
@@ -12181,7 +12180,7 @@
  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
    (eval $ac_compile) 2>&5
    ac_status=$?
-@@ -13780,7 +14520,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13779,7 +14519,7 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
    pre_test_object_deps_done=no
  
    for p in `eval "$output_verbose_link_cmd"`; do
@@ -12190,7 +12189,7 @@
  
      -L* | -R* | -l*)
         # Some compilers place space between "-{L,R}" and the path.
-@@ -13789,13 +14529,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13788,13 +14528,22 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
            test $p = "-R"; then
  	 prev=$p
  	 continue
@@ -12217,7 +12216,7 @@
  	   # Internal compiler library paths should come after those
  	   # provided the user.  The postdeps already come after the
  	   # user supplied libs so there is no need to process them.
-@@ -13815,8 +14564,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+@@ -13814,8 +14563,10 @@ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
  	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
  	 fi
         fi
@@ -12228,7 +12227,7 @@
      *.$objext)
         # This assumes that the test object file only shows up
         # once in the compiler output.
-@@ -13852,6 +14603,7 @@ else
+@@ -13851,6 +14602,7 @@ else
  fi
  
  $RM -f confest.$objext
@@ -12236,7 +12235,7 @@
  
  # PORTME: override above test on systems where it is broken
  case $host_os in
-@@ -13887,7 +14639,7 @@ linux*)
+@@ -13886,7 +14638,7 @@ linux*)
  
  solaris*)
    case $cc_basename in
@@ -12245,7 +12244,7 @@
      # The more standards-conforming stlport4 library is
      # incompatible with the Cstd library. Avoid specifying
      # it if it's in CXXFLAGS. Ignore libCrun as
-@@ -13952,8 +14704,6 @@ fi
+@@ -13951,8 +14703,6 @@ fi
  lt_prog_compiler_pic_CXX=
  lt_prog_compiler_static_CXX=
  
@@ -12254,7 +12253,7 @@
  
    # C++ specific cases for pic, static, wl, etc.
    if test "$GXX" = yes; then
-@@ -14058,6 +14808,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -14057,6 +14807,11 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	  ;;
  	esac
  	;;
@@ -12266,7 +12265,7 @@
        dgux*)
  	case $cc_basename in
  	  ec++*)
-@@ -14210,7 +14965,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -14209,7 +14964,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	;;
        solaris*)
  	case $cc_basename in
@@ -12275,7 +12274,7 @@
  	    # Sun C++ 4.2, 5.x and Centerline C++
  	    lt_prog_compiler_pic_CXX='-KPIC'
  	    lt_prog_compiler_static_CXX='-Bstatic'
-@@ -14275,10 +15030,17 @@ case $host_os in
+@@ -14274,10 +15029,17 @@ case $host_os in
      lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
      ;;
  esac
@@ -12296,7 +12295,7 @@
  
  #
  # Check to make sure the PIC flag actually works.
-@@ -14336,6 +15098,8 @@ fi
+@@ -14335,6 +15097,8 @@ fi
  
  
  
@@ -12305,7 +12304,7 @@
  #
  # Check to make sure the static flag actually works.
  #
-@@ -14513,6 +15277,7 @@ fi
+@@ -14512,6 +15276,7 @@ fi
  $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
  
    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -12313,7 +12312,7 @@
    case $host_os in
    aix[4-9]*)
      # If we're using GNU nm, then we don't want the "-C" option.
-@@ -14527,15 +15292,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
+@@ -14526,15 +15291,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
      ;;
    pw32*)
      export_symbols_cmds_CXX="$ltdll_cmds"
@@ -12339,7 +12338,7 @@
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
  $as_echo "$ld_shlibs_CXX" >&6; }
-@@ -14798,8 +15568,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -14797,8 +15567,9 @@ cygwin* | mingw* | pw32* | cegcc*)
    need_version=no
    need_lib_prefix=no
  
@@ -12351,7 +12350,7 @@
      library_names_spec='$libname.dll.a'
      # DLL is installed to $(libdir)/../bin by postinstall_cmds
      postinstall_cmds='base_file=`basename \${file}`~
-@@ -14831,13 +15602,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -14830,13 +15601,71 @@ cygwin* | mingw* | pw32* | cegcc*)
        library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
        ;;
      esac
@@ -12424,7 +12423,7 @@
    # FIXME: first we should search . and the directory the executable is in
    shlibpath_var=PATH
    ;;
-@@ -15377,6 +16206,7 @@ fi
+@@ -15376,6 +16205,7 @@ fi
    fi # test -n "$compiler"
  
    CC=$lt_save_CC
@@ -12432,7 +12431,7 @@
    LDCXX=$LD
    LD=$lt_save_LD
    GCC=$lt_save_GCC
-@@ -16321,13 +17151,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -16303,13 +17133,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
  lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
  lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
  lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -12453,7 +12452,7 @@
  STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
  RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
  old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -16342,14 +17179,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -16324,14 +17161,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
  lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -12472,7 +12471,7 @@
  DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
  NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
  LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -16382,12 +17222,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -16364,12 +17204,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
  hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
  inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -12486,7 +12485,7 @@
  file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
  variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
  need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -16426,8 +17266,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
+@@ -16408,8 +17248,8 @@ old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote
  compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
  GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
  lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
@@ -12496,7 +12495,7 @@
  lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
  lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
  archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-@@ -16454,12 +17294,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
+@@ -16436,12 +17276,12 @@ hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_
  hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
  inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
@@ -12510,7 +12509,7 @@
  file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
  hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
  compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-@@ -16497,8 +17337,13 @@ reload_flag \
+@@ -16479,8 +17319,13 @@ reload_flag \
  OBJDUMP \
  deplibs_check_method \
  file_magic_cmd \
@@ -12524,7 +12523,7 @@
  STRIP \
  RANLIB \
  CC \
-@@ -16508,12 +17353,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -16490,12 +17335,14 @@ lt_cv_sys_global_symbol_pipe \
  lt_cv_sys_global_symbol_to_cdecl \
  lt_cv_sys_global_symbol_to_c_name_address \
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -12540,7 +12539,7 @@
  DSYMUTIL \
  NMEDIT \
  LIPO \
-@@ -16529,7 +17376,6 @@ no_undefined_flag \
+@@ -16511,7 +17358,6 @@ no_undefined_flag \
  hardcode_libdir_flag_spec \
  hardcode_libdir_flag_spec_ld \
  hardcode_libdir_separator \
@@ -12548,7 +12547,7 @@
  exclude_expsyms \
  include_expsyms \
  file_list_spec \
-@@ -16551,8 +17397,8 @@ LD_CXX \
+@@ -16533,8 +17379,8 @@ LD_CXX \
  reload_flag_CXX \
  compiler_CXX \
  lt_prog_compiler_no_builtin_flag_CXX \
@@ -12558,7 +12557,7 @@
  lt_prog_compiler_static_CXX \
  lt_cv_prog_compiler_c_o_CXX \
  export_dynamic_flag_spec_CXX \
-@@ -16564,7 +17410,6 @@ no_undefined_flag_CXX \
+@@ -16546,7 +17392,6 @@ no_undefined_flag_CXX \
  hardcode_libdir_flag_spec_CXX \
  hardcode_libdir_flag_spec_ld_CXX \
  hardcode_libdir_separator_CXX \
@@ -12566,7 +12565,7 @@
  exclude_expsyms_CXX \
  include_expsyms_CXX \
  file_list_spec_CXX \
-@@ -16598,6 +17443,7 @@ module_cmds \
+@@ -16580,6 +17425,7 @@ module_cmds \
  module_expsym_cmds \
  export_symbols_cmds \
  prelink_cmds \
@@ -12574,7 +12573,7 @@
  postinstall_cmds \
  postuninstall_cmds \
  finish_cmds \
-@@ -16612,7 +17458,8 @@ archive_expsym_cmds_CXX \
+@@ -16594,7 +17440,8 @@ archive_expsym_cmds_CXX \
  module_cmds_CXX \
  module_expsym_cmds_CXX \
  export_symbols_cmds_CXX \
@@ -12584,7 +12583,7 @@
      case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
      *[\\\\\\\`\\"\\\$]*)
        eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-@@ -17366,7 +18213,8 @@ $as_echo X"$file" |
+@@ -17348,7 +18195,8 @@ $as_echo X"$file" |
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
  #
  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -12594,7 +12593,7 @@
  #   Written by Gordon Matzigkeit, 1996
  #
  #   This file is part of GNU Libtool.
-@@ -17469,19 +18317,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -17451,19 +18299,42 @@ SP2NL=$lt_lt_SP2NL
  # turn newlines into spaces.
  NL2SP=$lt_lt_NL2SP
  
@@ -12638,7 +12637,7 @@
  # A symbol stripping program.
  STRIP=$lt_STRIP
  
-@@ -17511,6 +18382,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -17493,6 +18364,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
  # Transform the output of nm in a C name address pair when lib prefix is needed.
  global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
  
@@ -12651,7 +12650,7 @@
  # The name of the directory that contains temporary libtool files.
  objdir=$objdir
  
-@@ -17520,6 +18397,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -17502,6 +18379,9 @@ MAGIC_CMD=$MAGIC_CMD
  # Must we lock files when doing compilation?
  need_locks=$lt_need_locks
  
@@ -12661,7 +12660,7 @@
  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  DSYMUTIL=$lt_DSYMUTIL
  
-@@ -17634,12 +18514,12 @@ with_gcc=$GCC
+@@ -17616,12 +18496,12 @@ with_gcc=$GCC
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
  
@@ -12677,7 +12676,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static
  
-@@ -17726,9 +18606,6 @@ inherit_rpath=$inherit_rpath
+@@ -17708,9 +18588,6 @@ inherit_rpath=$inherit_rpath
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs
  
@@ -12687,7 +12686,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols
  
-@@ -17744,6 +18621,9 @@ include_expsyms=$lt_include_expsyms
+@@ -17726,6 +18603,9 @@ include_expsyms=$lt_include_expsyms
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds
  
@@ -12697,7 +12696,7 @@
  # Specify filename containing input files.
  file_list_spec=$lt_file_list_spec
  
-@@ -17790,210 +18670,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -17772,210 +18652,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?
@@ -13071,7 +13070,7 @@
      (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
    chmod +x "$ofile"
  
-@@ -18021,12 +18860,12 @@ with_gcc=$GCC_CXX
+@@ -18003,12 +18842,12 @@ with_gcc=$GCC_CXX
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
  
@@ -13087,7 +13086,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static_CXX
  
-@@ -18113,9 +18952,6 @@ inherit_rpath=$inherit_rpath_CXX
+@@ -18095,9 +18934,6 @@ inherit_rpath=$inherit_rpath_CXX
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs_CXX
  
@@ -13097,7 +13096,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols_CXX
  
-@@ -18131,6 +18967,9 @@ include_expsyms=$lt_include_expsyms_CXX
+@@ -18113,6 +18949,9 @@ include_expsyms=$lt_include_expsyms_CXX
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds_CXX
  
@@ -13108,10 +13107,10 @@
  file_list_spec=$lt_file_list_spec_CXX
  
 diff --git a/gprofng/src/Makefile.in b/gprofng/src/Makefile.in
-index 605fa4f6fd4..313c4ceb4ca 100644
+index b881268b0d9..cfc98458e79 100644
 --- a/gprofng/src/Makefile.in
 +++ b/gprofng/src/Makefile.in
-@@ -324,6 +324,7 @@ CXXFLAGS = @CXXFLAGS@
+@@ -321,6 +321,7 @@ CXXFLAGS = @CXXFLAGS@
  CYGPATH_W = @CYGPATH_W@
  DEFS = @DEFS@
  DEPDIR = @DEPDIR@
@@ -13119,7 +13118,7 @@
  DSYMUTIL = @DSYMUTIL@
  DUMPBIN = @DUMPBIN@
  ECHO_C = @ECHO_C@
-@@ -359,6 +360,7 @@ LN_S = @LN_S@
+@@ -356,6 +357,7 @@ LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
  MAKEINFO = @MAKEINFO@
@@ -13128,7 +13127,7 @@
  NM = @NM@
  NMEDIT = @NMEDIT@
 diff --git a/ld/Makefile.in b/ld/Makefile.in
-index 08dcd7b75fc..17c58dd2fd0 100644
+index c21c554e432..729e1f47e85 100644
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
 @@ -384,6 +384,7 @@ CYGPATH_W = @CYGPATH_W@
@@ -13156,7 +13155,7 @@
  ac_ct_CXX = @ac_ct_CXX@
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 diff --git a/ld/configure b/ld/configure
-index 6406a42c442..21ab5b06709 100755
+index 29896853a90..9e93585f94e 100755
 --- a/ld/configure
 +++ b/ld/configure
 @@ -700,8 +700,11 @@ OTOOL
@@ -15762,18 +15761,150 @@
  file_list_spec=$lt_file_list_spec_CXX
  
 diff --git a/libbacktrace/Makefile.in b/libbacktrace/Makefile.in
-index 0a61880ba67..5889b0477cd 100644
+index 0a61880ba67..500756cd023 100644
 --- a/libbacktrace/Makefile.in
 +++ b/libbacktrace/Makefile.in
-@@ -827,6 +827,7 @@ CPP = @CPP@
+@@ -1,7 +1,7 @@
+-# Makefile.in generated by automake 1.15.1 from Makefile.am.
++# Makefile.in generated by automake 1.16.5 from Makefile.am.
+ # @configure_input@
+ 
+-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
++# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+ 
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -189,6 +189,35 @@ CONFIG_HEADER = config.h
+ CONFIG_CLEAN_FILES = backtrace-supported.h \
+ 	install-debuginfo-for-buildid.sh
+ CONFIG_CLEAN_VPATH_FILES =
++@NATIVE_TRUE@am__EXEEXT_1 = allocfail$(EXEEXT)
++@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = b2test$(EXEEXT)
++@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_3 = b3test$(EXEEXT)
++@NATIVE_TRUE@am__EXEEXT_4 = test_elf_32$(EXEEXT) test_elf_64$(EXEEXT) \
++@NATIVE_TRUE@	test_macho$(EXEEXT) test_xcoff_32$(EXEEXT) \
++@NATIVE_TRUE@	test_xcoff_64$(EXEEXT) test_pecoff$(EXEEXT) \
++@NATIVE_TRUE@	test_unknown$(EXEEXT) unittest$(EXEEXT) \
++@NATIVE_TRUE@	unittest_alloc$(EXEEXT) btest$(EXEEXT)
++@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_5 = btest_lto$(EXEEXT)
++@NATIVE_TRUE@am__EXEEXT_6 = btest_alloc$(EXEEXT) stest$(EXEEXT) \
++@NATIVE_TRUE@	stest_alloc$(EXEEXT)
++@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_7 = ztest$(EXEEXT) \
++@HAVE_ELF_TRUE@@NATIVE_TRUE@	ztest_alloc$(EXEEXT)
++@NATIVE_TRUE@am__EXEEXT_8 = edtest$(EXEEXT) edtest_alloc$(EXEEXT)
++@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__EXEEXT_9 = ttest$(EXEEXT) \
++@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@	ttest_alloc$(EXEEXT)
++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_10 =  \
++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@	ctestg$(EXEEXT) \
++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@	ctesta$(EXEEXT) \
++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@	ctestg_alloc$(EXEEXT) \
++@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@	ctesta_alloc$(EXEEXT)
++@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__EXEEXT_11 = dwarf5$(EXEEXT) \
++@HAVE_DWARF5_TRUE@@NATIVE_TRUE@	dwarf5_alloc$(EXEEXT)
++@NATIVE_TRUE@am__EXEEXT_12 = mtest$(EXEEXT)
++@HAVE_ELF_TRUE@am__EXEEXT_13 = xztest$(EXEEXT) xztest_alloc$(EXEEXT)
++am__EXEEXT_14 = $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \
++	$(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \
++	$(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12) \
++	$(am__EXEEXT_13)
+ LTLIBRARIES = $(noinst_LTLIBRARIES)
+ am__DEPENDENCIES_1 =
+ am_libbacktrace_la_OBJECTS = atomic.lo dwarf.lo fileline.lo posix.lo \
+@@ -220,35 +249,6 @@ libbacktrace_instrumented_alloc_la_OBJECTS =  \
+ libbacktrace_noformat_la_OBJECTS =  \
+ 	$(am_libbacktrace_noformat_la_OBJECTS)
+ @NATIVE_TRUE@am_libbacktrace_noformat_la_rpath =
+-@NATIVE_TRUE@am__EXEEXT_1 = allocfail$(EXEEXT)
+-@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_2 = b2test$(EXEEXT)
+-@HAVE_DWZ_TRUE@@HAVE_ELF_TRUE@@HAVE_OBJCOPY_DEBUGLINK_TRUE@@NATIVE_TRUE@am__EXEEXT_3 = b3test$(EXEEXT)
+-@NATIVE_TRUE@am__EXEEXT_4 = test_elf_32$(EXEEXT) test_elf_64$(EXEEXT) \
+-@NATIVE_TRUE@	test_macho$(EXEEXT) test_xcoff_32$(EXEEXT) \
+-@NATIVE_TRUE@	test_xcoff_64$(EXEEXT) test_pecoff$(EXEEXT) \
+-@NATIVE_TRUE@	test_unknown$(EXEEXT) unittest$(EXEEXT) \
+-@NATIVE_TRUE@	unittest_alloc$(EXEEXT) btest$(EXEEXT)
+-@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_5 = btest_lto$(EXEEXT)
+-@NATIVE_TRUE@am__EXEEXT_6 = btest_alloc$(EXEEXT) stest$(EXEEXT) \
+-@NATIVE_TRUE@	stest_alloc$(EXEEXT)
+-@HAVE_ELF_TRUE@@NATIVE_TRUE@am__EXEEXT_7 = ztest$(EXEEXT) \
+-@HAVE_ELF_TRUE@@NATIVE_TRUE@	ztest_alloc$(EXEEXT)
+-@NATIVE_TRUE@am__EXEEXT_8 = edtest$(EXEEXT) edtest_alloc$(EXEEXT)
+-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@am__EXEEXT_9 = ttest$(EXEEXT) \
+-@HAVE_PTHREAD_TRUE@@NATIVE_TRUE@	ttest_alloc$(EXEEXT)
+-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@am__EXEEXT_10 =  \
+-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@	ctestg$(EXEEXT) \
+-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@	ctesta$(EXEEXT) \
+-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@	ctestg_alloc$(EXEEXT) \
+-@HAVE_COMPRESSED_DEBUG_TRUE@@NATIVE_TRUE@	ctesta_alloc$(EXEEXT)
+-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@am__EXEEXT_11 = dwarf5$(EXEEXT) \
+-@HAVE_DWARF5_TRUE@@NATIVE_TRUE@	dwarf5_alloc$(EXEEXT)
+-@NATIVE_TRUE@am__EXEEXT_12 = mtest$(EXEEXT)
+-@HAVE_ELF_TRUE@am__EXEEXT_13 = xztest$(EXEEXT) xztest_alloc$(EXEEXT)
+-am__EXEEXT_14 = $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6) \
+-	$(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \
+-	$(am__EXEEXT_10) $(am__EXEEXT_11) $(am__EXEEXT_12) \
+-	$(am__EXEEXT_13)
+ @NATIVE_TRUE@am_allocfail_OBJECTS = allocfail-allocfail.$(OBJEXT) \
+ @NATIVE_TRUE@	allocfail-testlib.$(OBJEXT)
+ allocfail_OBJECTS = $(am_allocfail_OBJECTS)
+@@ -536,7 +536,7 @@ am__v_at_0 = @
+ am__v_at_1 = 
+ DEFAULT_INCLUDES = -I.@am__isrc@
+ depcomp =
+-am__depfiles_maybe =
++am__maybe_remake_depfiles =
+ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+@@ -579,8 +579,8 @@ am__can_run_installinfo = \
+     n|no|NO) false;; \
+     *) (install-info --version) >/dev/null 2>&1;; \
+   esac
+-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+-	$(LISP)config.h.in
++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
++	config.h.in
+ # Read a list of newline-separated strings from the standard input,
+ # and print each of them once, without duplicates.  Input order is
+ # *not* preserved.
+@@ -597,9 +597,6 @@ am__define_uniq_tagged_files = \
+   unique=`for i in $$list; do \
+     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+   done | $(am__uniquify_input)`
+-ETAGS = etags
+-CTAGS = ctags
+-CSCOPE = cscope
+ AM_RECURSIVE_TARGETS = cscope check recheck
+ am__tty_colors_dummy = \
+   mgn= red= grn= lgn= blu= brg= std=; \
+@@ -783,6 +780,7 @@ am__set_TESTS_bases = \
+   bases='$(TEST_LOGS)'; \
+   bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+   bases=`echo $$bases`
++AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
+ RECHECK_LOGS = $(TEST_LOGS)
+ TEST_SUITE_LOG = test-suite.log
+ TEST_EXTENSIONS = @EXEEXT@ .test
+@@ -825,8 +823,11 @@ CLOCK_GETTIME_LINK = @CLOCK_GETTIME_LINK@
+ COMM = @COMM@
+ CPP = @CPP@
  CPPFLAGS = @CPPFLAGS@
++CSCOPE = @CSCOPE@
++CTAGS = @CTAGS@
  CYGPATH_W = @CYGPATH_W@
  DEFS = @DEFS@
 +DLLTOOL = @DLLTOOL@
  DSYMUTIL = @DSYMUTIL@
  DUMPBIN = @DUMPBIN@
  DWZ = @DWZ@
-@@ -854,6 +855,7 @@ LN_S = @LN_S@
+@@ -834,6 +835,7 @@ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
++ETAGS = @ETAGS@
+ EXEEXT = @EXEEXT@
+ EXTRA_FLAGS = @EXTRA_FLAGS@
+ FGREP = @FGREP@
+@@ -854,6 +856,7 @@ LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
  MAKEINFO = @MAKEINFO@
@@ -15781,7 +15912,7 @@
  MKDIR_P = @MKDIR_P@
  NM = @NM@
  NMEDIT = @NMEDIT@
-@@ -886,6 +888,7 @@ abs_builddir = @abs_builddir@
+@@ -886,6 +889,7 @@ abs_builddir = @abs_builddir@
  abs_srcdir = @abs_srcdir@
  abs_top_builddir = @abs_top_builddir@
  abs_top_srcdir = @abs_top_srcdir@
@@ -15789,8 +15920,331 @@
  ac_ct_CC = @ac_ct_CC@
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
  am__leading_dot = @am__leading_dot@
+@@ -1178,8 +1182,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	    echo ' $(SHELL) ./config.status'; \
+ 	    $(SHELL) ./config.status;; \
+ 	  *) \
+-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+-	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
++	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
++	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
+ 	esac;
+ $(top_srcdir)/../multilib.am $(am__empty):
+ 
+@@ -1211,6 +1215,15 @@ backtrace-supported.h: $(top_builddir)/config.status $(srcdir)/backtrace-support
+ install-debuginfo-for-buildid.sh: $(top_builddir)/config.status $(srcdir)/install-debuginfo-for-buildid.sh.in
+ 	cd $(top_builddir) && $(SHELL) ./config.status $@
+ 
++clean-checkPROGRAMS:
++	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
++	echo " rm -f" $$list; \
++	rm -f $$list || exit $$?; \
++	test -n "$(EXEEXT)" || exit 0; \
++	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
++	echo " rm -f" $$list; \
++	rm -f $$list
++
+ clean-checkLTLIBRARIES:
+ 	-test -z "$(check_LTLIBRARIES)" || rm -f $(check_LTLIBRARIES)
+ 	@list='$(check_LTLIBRARIES)'; \
+@@ -1248,15 +1261,6 @@ libbacktrace_instrumented_alloc.la: $(libbacktrace_instrumented_alloc_la_OBJECTS
+ libbacktrace_noformat.la: $(libbacktrace_noformat_la_OBJECTS) $(libbacktrace_noformat_la_DEPENDENCIES) $(EXTRA_libbacktrace_noformat_la_DEPENDENCIES) 
+ 	$(AM_V_CCLD)$(LINK) $(am_libbacktrace_noformat_la_rpath) $(libbacktrace_noformat_la_OBJECTS) $(libbacktrace_noformat_la_LIBADD) $(LIBS)
+ 
+-clean-checkPROGRAMS:
+-	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+-	echo " rm -f" $$list; \
+-	rm -f $$list || exit $$?; \
+-	test -n "$(EXEEXT)" || exit 0; \
+-	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+-	echo " rm -f" $$list; \
+-	rm -f $$list
+-
+ allocfail$(EXEEXT): $(allocfail_OBJECTS) $(allocfail_DEPENDENCIES) $(EXTRA_allocfail_DEPENDENCIES) 
+ 	@rm -f allocfail$(EXEEXT)
+ 	$(AM_V_CCLD)$(allocfail_LINK) $(allocfail_OBJECTS) $(allocfail_LDADD) $(LIBS)
+@@ -1959,7 +1963,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
+ 	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
+ 	fi;								\
+ 	echo "$${col}$$br$${std}"; 					\
+-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
++	echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}";	\
+ 	echo "$${col}$$br$${std}"; 					\
+ 	create_testsuite_report --maybe-color;				\
+ 	echo "$$col$$br$$std";						\
+@@ -1972,7 +1976,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
+ 	fi;								\
+ 	$$success || exit 1
+ 
+-check-TESTS:
++check-TESTS: $(check_PROGRAMS) $(check_LTLIBRARIES) $(check_DATA)
+ 	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
+ 	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ 	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+@@ -1982,7 +1986,7 @@ check-TESTS:
+ 	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ 	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ 	exit $$?;
+-recheck: all $(check_LTLIBRARIES) $(check_PROGRAMS) $(check_DATA)
++recheck: all $(check_PROGRAMS) $(check_LTLIBRARIES) $(check_DATA)
+ 	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ 	@set +e; $(am__set_TESTS_bases); \
+ 	bases=`for i in $$bases; do echo $$i; done \
+@@ -2260,7 +2264,7 @@ xztest_alloc.log: xztest_alloc$(EXEEXT)
+ @am__EXEEXT_TRUE@	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ @am__EXEEXT_TRUE@	"$$tst" $(AM_TESTS_FD_REDIRECT)
+ check-am: all-am
+-	$(MAKE) $(AM_MAKEFLAGS) $(check_LTLIBRARIES) $(check_PROGRAMS) \
++	$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(check_LTLIBRARIES) \
+ 	  $(check_DATA)
+ 	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
+ check: check-am
+diff --git a/libbacktrace/aclocal.m4 b/libbacktrace/aclocal.m4
+index 528e6173930..d88a5ec84f2 100644
+--- a/libbacktrace/aclocal.m4
++++ b/libbacktrace/aclocal.m4
+@@ -1,6 +1,6 @@
+-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
++# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
+ 
+-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
++# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+ 
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -20,7 +20,7 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
+ If you have problems, you may need to regenerate the build system entirely.
+ To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+ 
+-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
++# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
+ # generated from the m4 files accompanying Automake X.Y.
+ # (This private macro should not be called outside this file.)
+ AC_DEFUN([AM_AUTOMAKE_VERSION],
+-[am__api_version='1.15'
++[am__api_version='1.16'
+ dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+ dnl require some minimum version.  Point them to the right macro.
+-m4_if([$1], [1.15.1], [],
++m4_if([$1], [1.16.5], [],
+       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+ ])
+ 
+@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
+ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+ # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+ AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+-[AM_AUTOMAKE_VERSION([1.15.1])dnl
++[AM_AUTOMAKE_VERSION([1.16.5])dnl
+ m4_ifndef([AC_AUTOCONF_VERSION],
+   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+ 
+ # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+ 
+-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
++# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -110,7 +110,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
+ 
+ # AM_CONDITIONAL                                            -*- Autoconf -*-
+ 
+-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
++# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -143,7 +143,7 @@ fi])])
+ 
+ # Do all the work for Automake.                             -*- Autoconf -*-
+ 
+-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
++# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -171,6 +171,10 @@ m4_defn([AC_PROG_CC])
+ # release and drop the old call support.
+ AC_DEFUN([AM_INIT_AUTOMAKE],
+ [AC_PREREQ([2.65])dnl
++m4_ifdef([_$0_ALREADY_INIT],
++  [m4_fatal([$0 expanded multiple times
++]m4_defn([_$0_ALREADY_INIT]))],
++  [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
+ dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+ dnl the ones we care about.
+ m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+@@ -207,7 +211,7 @@ m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ [_AM_SET_OPTIONS([$1])dnl
+ dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+ m4_if(
+-  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
++  m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
+   [ok:ok],,
+   [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+  AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+@@ -230,8 +234,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+ # For better backward compatibility.  To be removed once Automake 1.9.x
+ # dies out for good.  For more background, see:
+-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
++# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
++# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+ AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+ # We need awk for the "check" target (and possibly the TAP driver).  The
+ # system "awk" is bad on some platforms.
+@@ -259,6 +263,20 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ 		  [m4_define([AC_PROG_OBJCXX],
+ 			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+ ])
++# Variables for tags utilities; see am/tags.am
++if test -z "$CTAGS"; then
++  CTAGS=ctags
++fi
++AC_SUBST([CTAGS])
++if test -z "$ETAGS"; then
++  ETAGS=etags
++fi
++AC_SUBST([ETAGS])
++if test -z "$CSCOPE"; then
++  CSCOPE=cscope
++fi
++AC_SUBST([CSCOPE])
++
+ AC_REQUIRE([AM_SILENT_RULES])dnl
+ dnl The testsuite driver may need to know about EXEEXT, so add the
+ dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+@@ -298,7 +316,7 @@ END
+ Aborting the configuration process, to ensure you take notice of the issue.
+ 
+ You can download and install GNU coreutils to get an 'rm' implementation
+-that behaves properly: <http://www.gnu.org/software/coreutils/>.
++that behaves properly: <https://www.gnu.org/software/coreutils/>.
+ 
+ If you want to complete the configuration process using your problematic
+ 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+@@ -340,7 +358,7 @@ for _am_header in $config_headers :; do
+ done
+ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+ 
+-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
++# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -364,7 +382,7 @@ AC_SUBST([install_sh])])
+ # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+ # From Jim Meyering
+ 
+-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
++# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -399,7 +417,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+ 
+ # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+ 
+-# Copyright (C) 1997-2017 Free Software Foundation, Inc.
++# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -420,12 +438,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN],
+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+ AC_REQUIRE_AUX_FILE([missing])dnl
+ if test x"${MISSING+set}" != xset; then
+-  case $am_aux_dir in
+-  *\ * | *\	*)
+-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+-  *)
+-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+-  esac
++  MISSING="\${SHELL} '$am_aux_dir/missing'"
+ fi
+ # Use eval to expand $SHELL
+ if eval "$MISSING --is-lightweight"; then
+@@ -438,7 +451,7 @@ fi
+ 
+ # Helper functions for option handling.                     -*- Autoconf -*-
+ 
+-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
++# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -467,7 +480,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
+ AC_DEFUN([_AM_IF_OPTION],
+ [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+ 
+-# Copyright (C) 1999-2017 Free Software Foundation, Inc.
++# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -514,7 +527,7 @@ AC_LANG_POP([C])])
+ # For backward compatibility.
+ AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+ 
+-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
++# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -533,7 +546,7 @@ AC_DEFUN([AM_RUN_LOG],
+ 
+ # Check to make sure that the build environment is sane.    -*- Autoconf -*-
+ 
+-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
++# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -614,7 +627,7 @@ AC_CONFIG_COMMANDS_PRE(
+ rm -f conftest.file
+ ])
+ 
+-# Copyright (C) 2009-2017 Free Software Foundation, Inc.
++# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -674,7 +687,7 @@ AC_SUBST([AM_BACKSLASH])dnl
+ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+ ])
+ 
+-# Copyright (C) 2001-2017 Free Software Foundation, Inc.
++# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -702,7 +715,7 @@ fi
+ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+ AC_SUBST([INSTALL_STRIP_PROGRAM])])
+ 
+-# Copyright (C) 2006-2017 Free Software Foundation, Inc.
++# Copyright (C) 2006-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -721,7 +734,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+ 
+ # Check how to create a tarball.                            -*- Autoconf -*-
+ 
+-# Copyright (C) 2004-2017 Free Software Foundation, Inc.
++# Copyright (C) 2004-2021 Free Software Foundation, Inc.
+ #
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
 diff --git a/libbacktrace/configure b/libbacktrace/configure
-index 406b67b8cbc..b648da40aab 100755
+index 406b67b8cbc..51f0a264cb7 100755
 --- a/libbacktrace/configure
 +++ b/libbacktrace/configure
 @@ -680,7 +680,10 @@ OTOOL
@@ -15804,7 +16258,17 @@
  OBJDUMP
  LN_S
  NM
-@@ -798,6 +801,7 @@ enable_static
+@@ -701,6 +704,9 @@ AM_BACKSLASH
+ AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V
+ AM_V
++CSCOPE
++ETAGS
++CTAGS
+ am__untar
+ am__tar
+ AMTAR
+@@ -798,6 +804,7 @@ enable_static
  with_pic
  enable_fast_install
  with_gnu_ld
@@ -15812,7 +16276,7 @@
  enable_libtool_lock
  enable_largefile
  enable_cet
-@@ -1458,6 +1462,8 @@ Optional Packages:
+@@ -1458,6 +1465,8 @@ Optional Packages:
    --with-pic              try to use only PIC/non-PIC objects [default=use
                            both]
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -15821,7 +16285,71 @@
    --with-system-libunwind use installed libunwind
  
  Some influential environment variables:
-@@ -5446,8 +5452,8 @@ esac
+@@ -4047,7 +4056,7 @@ libtool_VERSION=1:0:0
+ # -Wall: Issue all automake warnings.
+ # -Wno-portability: Don't warn about constructs supported by GNU make.
+ #    (because GCC requires GNU make anyhow).
+-am__api_version='1.15'
++am__api_version='1.16'
+ 
+ # Find a good install program.  We prefer a C program (faster),
+ # so one script is as good as another.  But avoid the broken or
+@@ -4220,12 +4229,7 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+ 
+ if test x"${MISSING+set}" != xset; then
+-  case $am_aux_dir in
+-  *\ * | *\	*)
+-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+-  *)
+-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+-  esac
++  MISSING="\${SHELL} '$am_aux_dir/missing'"
+ fi
+ # Use eval to expand $SHELL
+ if eval "$MISSING --is-lightweight"; then
+@@ -4551,8 +4555,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+ 
+ # For better backward compatibility.  To be removed once Automake 1.9.x
+ # dies out for good.  For more background, see:
+-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
++# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
++# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+ mkdir_p='$(MKDIR_P)'
+ 
+ # We need awk for the "check" target (and possibly the TAP driver).  The
+@@ -4571,6 +4575,20 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+ 
+ 
+ 
++# Variables for tags utilities; see am/tags.am
++if test -z "$CTAGS"; then
++  CTAGS=ctags
++fi
++
++if test -z "$ETAGS"; then
++  ETAGS=etags
++fi
++
++if test -z "$CSCOPE"; then
++  CSCOPE=cscope
++fi
++
++
+ 
+ # POSIX will say in a future version that running "rm -f" with no argument
+ # is OK; and we want to be able to make that assumption in our Makefile
+@@ -4603,7 +4621,7 @@ END
+ Aborting the configuration process, to ensure you take notice of the issue.
+ 
+ You can download and install GNU coreutils to get an 'rm' implementation
+-that behaves properly: <http://www.gnu.org/software/coreutils/>.
++that behaves properly: <https://www.gnu.org/software/coreutils/>.
+ 
+ If you want to complete the configuration process using your problematic
+ 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+@@ -5446,8 +5464,8 @@ esac
  
  
  
@@ -15832,7 +16360,7 @@
  
  
  
-@@ -5487,7 +5493,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -5487,7 +5505,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
  $as_echo_n "checking how to print strings... " >&6; }
  # Test print first, because it will be a builtin if present.
@@ -15841,7 +16369,7 @@
     test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
    ECHO='print -r --'
  elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -6180,8 +6186,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -6180,8 +6198,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
  # Try some XSI features
  xsi_shell=no
  ( _lt_dummy="a/b/c"
@@ -15852,7 +16380,7 @@
      && eval 'test $(( 1 + 1 )) -eq 2 \
      && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
    && xsi_shell=yes
-@@ -6230,6 +6236,80 @@ esac
+@@ -6230,6 +6248,80 @@ esac
  
  
  
@@ -15933,7 +16461,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
  $as_echo_n "checking for $LD option to reload object files... " >&6; }
  if ${lt_cv_ld_reload_flag+:} false; then :
-@@ -6246,6 +6326,11 @@ case $reload_flag in
+@@ -6246,6 +6338,11 @@ case $reload_flag in
  esac
  reload_cmds='$LD$reload_flag -o $output$reload_objs'
  case $host_os in
@@ -15945,7 +16473,7 @@
    darwin*)
      if test "$GCC" = yes; then
        reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6414,7 +6499,8 @@ mingw* | pw32*)
+@@ -6414,7 +6511,8 @@ mingw* | pw32*)
      lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
      lt_cv_file_magic_cmd='func_win32_libid'
    else
@@ -15955,7 +16483,7 @@
      lt_cv_file_magic_cmd='$OBJDUMP -f'
    fi
    ;;
-@@ -6568,6 +6654,21 @@ esac
+@@ -6568,6 +6666,21 @@ esac
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
  $as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -15977,7 +16505,7 @@
  file_magic_cmd=$lt_cv_file_magic_cmd
  deplibs_check_method=$lt_cv_deplibs_check_method
  test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6583,6 +6684,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6583,6 +6696,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
  
  
  
@@ -16135,7 +16663,7 @@
  plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
-@@ -6597,8 +6849,10 @@ for plugin in $plugin_names; do
+@@ -6597,8 +6861,10 @@ for plugin in $plugin_names; do
  done
  
  if test -n "$ac_tool_prefix"; then
@@ -16148,7 +16676,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_AR+:} false; then :
-@@ -6614,7 +6868,7 @@ do
+@@ -6614,7 +6880,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -16157,7 +16685,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -6634,11 +6888,15 @@ $as_echo "no" >&6; }
+@@ -6634,11 +6900,15 @@ $as_echo "no" >&6; }
  fi
  
  
@@ -16176,7 +16704,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_ac_ct_AR+:} false; then :
-@@ -6654,7 +6912,7 @@ do
+@@ -6654,7 +6924,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -16185,7 +16713,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -6673,6 +6931,10 @@ else
+@@ -6673,6 +6943,10 @@ else
  $as_echo "no" >&6; }
  fi
  
@@ -16196,7 +16724,7 @@
    if test "x$ac_ct_AR" = x; then
      AR="false"
    else
-@@ -6684,25 +6946,19 @@ ac_tool_warned=yes ;;
+@@ -6684,31 +6958,83 @@ ac_tool_warned=yes ;;
  esac
      AR=$ac_ct_AR
    fi
@@ -16228,10 +16756,14 @@
 +  rm -f conftest.*
 +: ${AR=ar}
 +: ${AR_FLAGS=cru}
++
++
++
++
++
  
  
  
-@@ -6714,6 +6970,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
  
  
  
@@ -16288,15 +16820,10 @@
 +fi
 +
 +
-+
-+
-+
-+
-+
- if test -n "$ac_tool_prefix"; then
-   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
- set dummy ${ac_tool_prefix}strip; ac_word=$2
-@@ -7053,8 +7367,8 @@ esac
+ 
+ 
+ 
+@@ -7053,8 +7379,8 @@ esac
  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
  
  # Transform an extracted symbol line into symbol name and symbol address
@@ -16307,7 +16834,7 @@
  
  # Handle CRLF in mingw tool chain
  opt_cr=
-@@ -7090,6 +7404,7 @@ for ac_symprfx in "" "_"; do
+@@ -7090,6 +7416,7 @@ for ac_symprfx in "" "_"; do
    else
      lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
    fi
@@ -16315,7 +16842,7 @@
  
    # Check to see that the pipe works correctly.
    pipe_works=no
-@@ -7131,6 +7446,18 @@ _LT_EOF
+@@ -7131,6 +7458,18 @@ _LT_EOF
        if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
  	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
  	  cat <<_LT_EOF > conftest.$ac_ext
@@ -16334,7 +16861,7 @@
  #ifdef __cplusplus
  extern "C" {
  #endif
-@@ -7142,7 +7469,7 @@ _LT_EOF
+@@ -7142,7 +7481,7 @@ _LT_EOF
  	  cat <<_LT_EOF >> conftest.$ac_ext
  
  /* The mapping between symbol names and symbols.  */
@@ -16343,7 +16870,7 @@
    const char *name;
    void       *address;
  }
-@@ -7168,8 +7495,8 @@ static const void *lt_preloaded_setup() {
+@@ -7168,8 +7507,8 @@ static const void *lt_preloaded_setup() {
  _LT_EOF
  	  # Now try linking the two files.
  	  mv conftest.$ac_objext conftstm.$ac_objext
@@ -16354,7 +16881,7 @@
  	  LIBS="conftstm.$ac_objext"
  	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
  	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7179,8 +7506,8 @@ _LT_EOF
+@@ -7179,8 +7518,8 @@ _LT_EOF
    test $ac_status = 0; } && test -s conftest${ac_exeext}; then
  	    pipe_works=yes
  	  fi
@@ -16365,7 +16892,7 @@
  	else
  	  echo "cannot find nm_test_func in $nlist" >&5
  	fi
-@@ -7217,6 +7544,18 @@ else
+@@ -7217,6 +7556,18 @@ else
  $as_echo "ok" >&6; }
  fi
  
@@ -16384,7 +16911,7 @@
  
  
  
-@@ -7233,6 +7572,43 @@ fi
+@@ -7233,6 +7584,43 @@ fi
  
  
  
@@ -16428,10 +16955,56 @@
  
  
  
-@@ -7444,6 +7820,123 @@ esac
- 
- need_locks="$enable_libtool_lock"
- 
+@@ -7399,50 +7787,167 @@ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+   lt_cv_cc_needs_belf=yes
+ else
+-  lt_cv_cc_needs_belf=no
++  lt_cv_cc_needs_belf=no
++fi
++rm -f core conftest.err conftest.$ac_objext \
++    conftest$ac_exeext conftest.$ac_ext
++     ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
++$as_echo "$lt_cv_cc_needs_belf" >&6; }
++  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
++    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
++    CFLAGS="$SAVE_CFLAGS"
++  fi
++  ;;
++sparc*-*solaris*)
++  # Find out which ABI we are using.
++  echo 'int i;' > conftest.$ac_ext
++  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; then
++    case `/usr/bin/file conftest.o` in
++    *64-bit*)
++      case $lt_cv_prog_gnu_ld in
++      yes*) LD="${LD-ld} -m elf64_sparc" ;;
++      *)
++	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
++	  LD="${LD-ld} -64"
++	fi
++	;;
++      esac
++      ;;
++    esac
++  fi
++  rm -rf conftest*
++  ;;
++esac
++
++need_locks="$enable_libtool_lock"
++
 +if test -n "$ac_tool_prefix"; then
 +  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
 +set dummy ${ac_tool_prefix}mt; ac_word=$2
@@ -16507,8 +17080,21 @@
 +else
 +  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 +$as_echo "no" >&6; }
-+fi
-+
+ fi
+-rm -f core conftest.err conftest.$ac_objext \
+-    conftest$ac_exeext conftest.$ac_ext
+-     ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ 
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+-$as_echo "$lt_cv_cc_needs_belf" >&6; }
+-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+-    CFLAGS="$SAVE_CFLAGS"
 +  if test "x$ac_ct_MANIFEST_TOOL" = x; then
 +    MANIFEST_TOOL=":"
 +  else
@@ -16519,7 +17105,28 @@
 +ac_tool_warned=yes ;;
 +esac
 +    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
-+  fi
+   fi
+-  ;;
+-sparc*-*solaris*)
+-  # Find out which ABI we are using.
+-  echo 'int i;' > conftest.$ac_ext
+-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+-  test $ac_status = 0; }; then
+-    case `/usr/bin/file conftest.o` in
+-    *64-bit*)
+-      case $lt_cv_prog_gnu_ld in
+-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+-      *)
+-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+-	  LD="${LD-ld} -64"
+-	fi
+-	;;
+-      esac
+-      ;;
+-    esac
 +else
 +  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
 +fi
@@ -16536,7 +17143,10 @@
 +  cat conftest.err >&5
 +  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
 +    lt_cv_path_mainfest_tool=yes
-+  fi
+   fi
+-  rm -rf conftest*
+-  ;;
+-esac
 +  rm -f conftest*
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
@@ -16547,12 +17157,12 @@
 +
 +
 +
-+
-+
+ 
+-need_locks="$enable_libtool_lock"
+ 
  
    case $host_os in
-     rhapsody* | darwin*)
-@@ -8007,6 +8500,8 @@ _LT_EOF
+@@ -8007,6 +8512,8 @@ _LT_EOF
        $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
        echo "$AR cru libconftest.a conftest.o" >&5
        $AR cru libconftest.a conftest.o 2>&5
@@ -16561,7 +17171,7 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -8589,8 +9084,6 @@ fi
+@@ -8589,8 +9096,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
  
@@ -16570,7 +17180,7 @@
  
    if test "$GCC" = yes; then
      lt_prog_compiler_wl='-Wl,'
-@@ -8756,6 +9249,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8756,6 +9261,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	lt_prog_compiler_pic='--shared'
  	lt_prog_compiler_static='--static'
  	;;
@@ -16583,7 +17193,7 @@
        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
          # Portland Group compilers (*not* the Pentium gcc compiler,
  	# which looks to be a dead project)
-@@ -8818,7 +9317,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8818,7 +9329,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='-KPIC'
        lt_prog_compiler_static='-Bstatic'
        case $cc_basename in
@@ -16592,7 +17202,7 @@
  	lt_prog_compiler_wl='-Qoption ld ';;
        *)
  	lt_prog_compiler_wl='-Wl,';;
-@@ -8875,13 +9374,17 @@ case $host_os in
+@@ -8875,13 +9386,17 @@ case $host_os in
      lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
      ;;
  esac
@@ -16616,7 +17226,7 @@
  
  #
  # Check to make sure the PIC flag actually works.
-@@ -8942,6 +9445,11 @@ fi
+@@ -8942,6 +9457,11 @@ fi
  
  
  
@@ -16628,7 +17238,7 @@
  #
  # Check to make sure the static flag actually works.
  #
-@@ -9292,7 +9800,8 @@ _LT_EOF
+@@ -9292,7 +9812,8 @@ _LT_EOF
        allow_undefined_flag=unsupported
        always_export_symbols=no
        enable_shared_with_static_runtimes=yes
@@ -16638,7 +17248,7 @@
  
        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
          archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -9391,12 +9900,12 @@ _LT_EOF
+@@ -9391,12 +9912,12 @@ _LT_EOF
  	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
  	  hardcode_libdir_flag_spec=
  	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -16653,7 +17263,7 @@
  	  fi
  	  ;;
  	esac
-@@ -9410,8 +9919,8 @@ _LT_EOF
+@@ -9410,8 +9931,8 @@ _LT_EOF
  	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
  	wlarc=
        else
@@ -16664,7 +17274,7 @@
        fi
        ;;
  
-@@ -9429,8 +9938,8 @@ _LT_EOF
+@@ -9429,8 +9950,8 @@ _LT_EOF
  
  _LT_EOF
        elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -16675,7 +17285,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -9476,8 +9985,8 @@ _LT_EOF
+@@ -9476,8 +9997,8 @@ _LT_EOF
  
      *)
        if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -16686,7 +17296,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -9607,7 +10116,13 @@ _LT_EOF
+@@ -9607,7 +10128,13 @@ _LT_EOF
  	allow_undefined_flag='-berok'
          # Determine the default libpath from the value encoded in an
          # empty executable.
@@ -16701,7 +17311,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -9620,22 +10135,29 @@ main ()
+@@ -9620,22 +10147,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -16744,7 +17354,7 @@
  
          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -9647,7 +10169,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9647,7 +10181,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	else
  	 # Determine the default libpath from the value encoded in an
  	 # empty executable.
@@ -16759,7 +17369,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -9660,22 +10188,29 @@ main ()
+@@ -9660,22 +10200,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -16802,7 +17412,7 @@
  
  	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
  	  # Warning - without using the other run time loading flags,
-@@ -9720,20 +10255,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9720,20 +10267,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        # Microsoft Visual C++.
        # hardcode_libdir_flag_spec is actually meaningless, as there is
        # no search path for DLLs.
@@ -16880,7 +17490,7 @@
        ;;
  
      darwin* | rhapsody*)
-@@ -9794,7 +10372,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9794,7 +10384,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
      freebsd* | dragonfly*)
@@ -16889,7 +17499,7 @@
        hardcode_libdir_flag_spec='-R$libdir'
        hardcode_direct=yes
        hardcode_shlibpath_var=no
-@@ -9802,7 +10380,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9802,7 +10392,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux9*)
        if test "$GCC" = yes; then
@@ -16898,7 +17508,7 @@
        else
  	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
        fi
-@@ -9818,7 +10396,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9818,7 +10408,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux10*)
        if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -16907,7 +17517,7 @@
        else
  	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
        fi
-@@ -9842,10 +10420,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9842,10 +10432,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
  	  ;;
  	ia64*)
@@ -16920,7 +17530,7 @@
  	  ;;
  	esac
        else
-@@ -9924,23 +10502,36 @@ fi
+@@ -9924,23 +10514,36 @@ fi
  
      irix5* | irix6* | nonstopux*)
        if test "$GCC" = yes; then
@@ -16965,7 +17575,7 @@
        else
  	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
  	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -10025,7 +10616,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10025,7 +10628,7 @@ rm -f core conftest.err conftest.$ac_objext \
      osf4* | osf5*)	# as osf3* with the addition of -msym flag
        if test "$GCC" = yes; then
  	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -16974,7 +17584,7 @@
  	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
        else
  	allow_undefined_flag=' -expect_unresolved \*'
-@@ -10044,9 +10635,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10044,9 +10647,9 @@ rm -f core conftest.err conftest.$ac_objext \
        no_undefined_flag=' -z defs'
        if test "$GCC" = yes; then
  	wlarc='${wl}'
@@ -16986,7 +17596,7 @@
        else
  	case `$CC -V 2>&1` in
  	*"Compilers 5.0"*)
-@@ -10622,8 +11213,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10622,8 +11225,9 @@ cygwin* | mingw* | pw32* | cegcc*)
    need_version=no
    need_lib_prefix=no
  
@@ -16998,7 +17608,7 @@
      library_names_spec='$libname.dll.a'
      # DLL is installed to $(libdir)/../bin by postinstall_cmds
      postinstall_cmds='base_file=`basename \${file}`~
-@@ -10656,13 +11248,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10656,13 +11260,71 @@ cygwin* | mingw* | pw32* | cegcc*)
        library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
        ;;
      esac
@@ -17071,7 +17681,7 @@
    # FIXME: first we should search . and the directory the executable is in
    shlibpath_var=PATH
    ;;
-@@ -11540,7 +12190,7 @@ else
+@@ -11540,7 +12202,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
@@ -17080,7 +17690,7 @@
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -11584,10 +12234,10 @@ else
+@@ -11584,10 +12246,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -17093,7 +17703,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11646,7 +12296,7 @@ else
+@@ -11646,7 +12308,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
@@ -17102,7 +17712,7 @@
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -11690,10 +12340,10 @@ else
+@@ -11690,10 +12352,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -17115,7 +17725,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -14979,13 +15629,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -14979,13 +15641,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
  lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
  lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
  lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -17136,7 +17746,7 @@
  STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
  RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
  old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -15000,14 +15657,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -15000,14 +15669,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
  lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -17155,7 +17765,7 @@
  DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
  NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
  LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -15040,12 +15700,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -15040,12 +15712,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
  hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
  inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -17169,7 +17779,7 @@
  file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
  variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
  need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -15100,8 +15760,13 @@ reload_flag \
+@@ -15100,8 +15772,13 @@ reload_flag \
  OBJDUMP \
  deplibs_check_method \
  file_magic_cmd \
@@ -17183,7 +17793,7 @@
  STRIP \
  RANLIB \
  CC \
-@@ -15111,12 +15776,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -15111,12 +15788,14 @@ lt_cv_sys_global_symbol_pipe \
  lt_cv_sys_global_symbol_to_cdecl \
  lt_cv_sys_global_symbol_to_c_name_address \
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -17199,7 +17809,7 @@
  DSYMUTIL \
  NMEDIT \
  LIPO \
-@@ -15132,7 +15799,6 @@ no_undefined_flag \
+@@ -15132,7 +15811,6 @@ no_undefined_flag \
  hardcode_libdir_flag_spec \
  hardcode_libdir_flag_spec_ld \
  hardcode_libdir_separator \
@@ -17207,7 +17817,7 @@
  exclude_expsyms \
  include_expsyms \
  file_list_spec \
-@@ -15168,6 +15834,7 @@ module_cmds \
+@@ -15168,6 +15846,7 @@ module_cmds \
  module_expsym_cmds \
  export_symbols_cmds \
  prelink_cmds \
@@ -17215,7 +17825,7 @@
  postinstall_cmds \
  postuninstall_cmds \
  finish_cmds \
-@@ -15866,7 +16533,8 @@ esac ;;
+@@ -15866,7 +16545,8 @@ esac ;;
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
  #
  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -17225,7 +17835,7 @@
  #   Written by Gordon Matzigkeit, 1996
  #
  #   This file is part of GNU Libtool.
-@@ -15969,19 +16637,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -15969,19 +16649,42 @@ SP2NL=$lt_lt_SP2NL
  # turn newlines into spaces.
  NL2SP=$lt_lt_NL2SP
  
@@ -17269,7 +17879,7 @@
  # A symbol stripping program.
  STRIP=$lt_STRIP
  
-@@ -16011,6 +16702,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -16011,6 +16714,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
  # Transform the output of nm in a C name address pair when lib prefix is needed.
  global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
  
@@ -17282,7 +17892,7 @@
  # The name of the directory that contains temporary libtool files.
  objdir=$objdir
  
-@@ -16020,6 +16717,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -16020,6 +16729,9 @@ MAGIC_CMD=$MAGIC_CMD
  # Must we lock files when doing compilation?
  need_locks=$lt_need_locks
  
@@ -17292,7 +17902,7 @@
  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  DSYMUTIL=$lt_DSYMUTIL
  
-@@ -16134,12 +16834,12 @@ with_gcc=$GCC
+@@ -16134,12 +16846,12 @@ with_gcc=$GCC
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
  
@@ -17308,7 +17918,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static
  
-@@ -16226,9 +16926,6 @@ inherit_rpath=$inherit_rpath
+@@ -16226,9 +16938,6 @@ inherit_rpath=$inherit_rpath
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs
  
@@ -17318,7 +17928,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols
  
-@@ -16244,6 +16941,9 @@ include_expsyms=$lt_include_expsyms
+@@ -16244,6 +16953,9 @@ include_expsyms=$lt_include_expsyms
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds
  
@@ -17328,7 +17938,7 @@
  # Specify filename containing input files.
  file_list_spec=$lt_file_list_spec
  
-@@ -16276,210 +16976,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -16276,210 +16988,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?
@@ -17703,10 +18313,10 @@
    chmod +x "$ofile"
  
 diff --git a/libctf/Makefile.in b/libctf/Makefile.in
-index f2b852e3fae..63e3b2e05ea 100644
+index 3d2696bcc47..3bad01c3c9b 100644
 --- a/libctf/Makefile.in
 +++ b/libctf/Makefile.in
-@@ -393,6 +393,7 @@ CYGPATH_W = @CYGPATH_W@
+@@ -392,6 +392,7 @@ CYGPATH_W = @CYGPATH_W@
  DATADIRNAME = @DATADIRNAME@
  DEFS = @DEFS@
  DEPDIR = @DEPDIR@
@@ -17723,10 +18333,10 @@
  NM = @NM@
  NMEDIT = @NMEDIT@
 diff --git a/libctf/configure b/libctf/configure
-index b347b292195..d6d6e341887 100755
+index a0e40f49a80..42bc002c2b9 100755
 --- a/libctf/configure
 +++ b/libctf/configure
-@@ -669,6 +669,8 @@ OTOOL
+@@ -668,6 +668,8 @@ OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
@@ -17735,7 +18345,7 @@
  OBJDUMP
  LN_S
  NM
-@@ -800,6 +802,7 @@ enable_static
+@@ -799,6 +801,7 @@ enable_static
  with_pic
  enable_fast_install
  with_gnu_ld
@@ -17743,7 +18353,7 @@
  enable_libtool_lock
  enable_largefile
  enable_werror_always
-@@ -1463,6 +1466,8 @@ Optional Packages:
+@@ -1462,6 +1465,8 @@ Optional Packages:
    --with-pic              try to use only PIC/non-PIC objects [default=use
                            both]
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -17752,7 +18362,7 @@
    --with-system-zlib      use installed libz
  
  Some influential environment variables:
-@@ -5568,8 +5573,8 @@ esac
+@@ -5567,8 +5572,8 @@ esac
  
  
  
@@ -17763,7 +18373,7 @@
  
  
  
-@@ -5609,7 +5614,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -5608,7 +5613,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
  $as_echo_n "checking how to print strings... " >&6; }
  # Test print first, because it will be a builtin if present.
@@ -17772,7 +18382,7 @@
     test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
    ECHO='print -r --'
  elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -6302,8 +6307,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -6301,8 +6306,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
  # Try some XSI features
  xsi_shell=no
  ( _lt_dummy="a/b/c"
@@ -17783,7 +18393,7 @@
      && eval 'test $(( 1 + 1 )) -eq 2 \
      && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
    && xsi_shell=yes
-@@ -6352,6 +6357,80 @@ esac
+@@ -6351,6 +6356,80 @@ esac
  
  
  
@@ -17864,7 +18474,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
  $as_echo_n "checking for $LD option to reload object files... " >&6; }
  if ${lt_cv_ld_reload_flag+:} false; then :
-@@ -6368,6 +6447,11 @@ case $reload_flag in
+@@ -6367,6 +6446,11 @@ case $reload_flag in
  esac
  reload_cmds='$LD$reload_flag -o $output$reload_objs'
  case $host_os in
@@ -17876,7 +18486,7 @@
    darwin*)
      if test "$GCC" = yes; then
        reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6536,7 +6620,8 @@ mingw* | pw32*)
+@@ -6535,7 +6619,8 @@ mingw* | pw32*)
      lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
      lt_cv_file_magic_cmd='func_win32_libid'
    else
@@ -17886,7 +18496,7 @@
      lt_cv_file_magic_cmd='$OBJDUMP -f'
    fi
    ;;
-@@ -6690,6 +6775,21 @@ esac
+@@ -6689,6 +6774,21 @@ esac
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
  $as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -17908,7 +18518,7 @@
  file_magic_cmd=$lt_cv_file_magic_cmd
  deplibs_check_method=$lt_cv_deplibs_check_method
  test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6705,6 +6805,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6704,6 +6804,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
  
  
  
@@ -18066,7 +18676,7 @@
  plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
-@@ -6719,8 +6970,10 @@ for plugin in $plugin_names; do
+@@ -6718,8 +6969,10 @@ for plugin in $plugin_names; do
  done
  
  if test -n "$ac_tool_prefix"; then
@@ -18079,7 +18689,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_AR+:} false; then :
-@@ -6736,7 +6989,7 @@ do
+@@ -6735,7 +6988,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -18088,7 +18698,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -6756,11 +7009,15 @@ $as_echo "no" >&6; }
+@@ -6755,11 +7008,15 @@ $as_echo "no" >&6; }
  fi
  
  
@@ -18107,7 +18717,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_ac_ct_AR+:} false; then :
-@@ -6776,7 +7033,7 @@ do
+@@ -6775,7 +7032,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -18116,7 +18726,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -6795,6 +7052,10 @@ else
+@@ -6794,6 +7051,10 @@ else
  $as_echo "no" >&6; }
  fi
  
@@ -18127,7 +18737,7 @@
    if test "x$ac_ct_AR" = x; then
      AR="false"
    else
-@@ -6806,25 +7067,19 @@ ac_tool_warned=yes ;;
+@@ -6805,25 +7066,19 @@ ac_tool_warned=yes ;;
  esac
      AR=$ac_ct_AR
    fi
@@ -18162,7 +18772,7 @@
  
  
  
-@@ -6836,6 +7091,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
+@@ -6835,6 +7090,64 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
  
  
  
@@ -18227,7 +18837,7 @@
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
  set dummy ${ac_tool_prefix}strip; ac_word=$2
-@@ -7175,8 +7488,8 @@ esac
+@@ -7174,8 +7487,8 @@ esac
  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
  
  # Transform an extracted symbol line into symbol name and symbol address
@@ -18238,7 +18848,7 @@
  
  # Handle CRLF in mingw tool chain
  opt_cr=
-@@ -7212,6 +7525,7 @@ for ac_symprfx in "" "_"; do
+@@ -7211,6 +7524,7 @@ for ac_symprfx in "" "_"; do
    else
      lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
    fi
@@ -18246,7 +18856,7 @@
  
    # Check to see that the pipe works correctly.
    pipe_works=no
-@@ -7253,6 +7567,18 @@ _LT_EOF
+@@ -7252,6 +7566,18 @@ _LT_EOF
        if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
  	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
  	  cat <<_LT_EOF > conftest.$ac_ext
@@ -18265,7 +18875,7 @@
  #ifdef __cplusplus
  extern "C" {
  #endif
-@@ -7264,7 +7590,7 @@ _LT_EOF
+@@ -7263,7 +7589,7 @@ _LT_EOF
  	  cat <<_LT_EOF >> conftest.$ac_ext
  
  /* The mapping between symbol names and symbols.  */
@@ -18274,7 +18884,7 @@
    const char *name;
    void       *address;
  }
-@@ -7290,8 +7616,8 @@ static const void *lt_preloaded_setup() {
+@@ -7289,8 +7615,8 @@ static const void *lt_preloaded_setup() {
  _LT_EOF
  	  # Now try linking the two files.
  	  mv conftest.$ac_objext conftstm.$ac_objext
@@ -18285,7 +18895,7 @@
  	  LIBS="conftstm.$ac_objext"
  	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
  	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7301,8 +7627,8 @@ _LT_EOF
+@@ -7300,8 +7626,8 @@ _LT_EOF
    test $ac_status = 0; } && test -s conftest${ac_exeext}; then
  	    pipe_works=yes
  	  fi
@@ -18296,7 +18906,7 @@
  	else
  	  echo "cannot find nm_test_func in $nlist" >&5
  	fi
-@@ -7339,6 +7665,17 @@ else
+@@ -7338,6 +7664,17 @@ else
  $as_echo "ok" >&6; }
  fi
  
@@ -18314,7 +18924,7 @@
  
  
  
-@@ -7355,6 +7692,44 @@ fi
+@@ -7354,6 +7691,44 @@ fi
  
  
  
@@ -18359,7 +18969,7 @@
  
  
  
-@@ -7566,6 +7941,123 @@ esac
+@@ -7565,6 +7940,123 @@ esac
  
  need_locks="$enable_libtool_lock"
  
@@ -18483,7 +19093,7 @@
  
    case $host_os in
      rhapsody* | darwin*)
-@@ -8129,6 +8621,8 @@ _LT_EOF
+@@ -8128,6 +8620,8 @@ _LT_EOF
        $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
        echo "$AR cru libconftest.a conftest.o" >&5
        $AR cru libconftest.a conftest.o 2>&5
@@ -18492,7 +19102,7 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -8681,8 +9175,6 @@ fi
+@@ -8680,8 +9174,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
  
@@ -18501,7 +19111,7 @@
  
    if test "$GCC" = yes; then
      lt_prog_compiler_wl='-Wl,'
-@@ -8848,6 +9340,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8847,6 +9339,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	lt_prog_compiler_pic='--shared'
  	lt_prog_compiler_static='--static'
  	;;
@@ -18514,7 +19124,7 @@
        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
          # Portland Group compilers (*not* the Pentium gcc compiler,
  	# which looks to be a dead project)
-@@ -8910,7 +9408,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8909,7 +9407,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='-KPIC'
        lt_prog_compiler_static='-Bstatic'
        case $cc_basename in
@@ -18523,7 +19133,7 @@
  	lt_prog_compiler_wl='-Qoption ld ';;
        *)
  	lt_prog_compiler_wl='-Wl,';;
-@@ -8967,13 +9465,17 @@ case $host_os in
+@@ -8966,13 +9464,17 @@ case $host_os in
      lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
      ;;
  esac
@@ -18547,7 +19157,7 @@
  
  #
  # Check to make sure the PIC flag actually works.
-@@ -9034,6 +9536,11 @@ fi
+@@ -9033,6 +9535,11 @@ fi
  
  
  
@@ -18559,7 +19169,7 @@
  #
  # Check to make sure the static flag actually works.
  #
-@@ -9384,7 +9891,8 @@ _LT_EOF
+@@ -9383,7 +9890,8 @@ _LT_EOF
        allow_undefined_flag=unsupported
        always_export_symbols=no
        enable_shared_with_static_runtimes=yes
@@ -18569,7 +19179,7 @@
  
        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
          archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -9483,12 +9991,12 @@ _LT_EOF
+@@ -9482,12 +9990,12 @@ _LT_EOF
  	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
  	  hardcode_libdir_flag_spec=
  	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -18584,7 +19194,7 @@
  	  fi
  	  ;;
  	esac
-@@ -9502,8 +10010,8 @@ _LT_EOF
+@@ -9501,8 +10009,8 @@ _LT_EOF
  	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
  	wlarc=
        else
@@ -18595,7 +19205,7 @@
        fi
        ;;
  
-@@ -9521,8 +10029,8 @@ _LT_EOF
+@@ -9520,8 +10028,8 @@ _LT_EOF
  
  _LT_EOF
        elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -18606,7 +19216,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -9568,8 +10076,8 @@ _LT_EOF
+@@ -9567,8 +10075,8 @@ _LT_EOF
  
      *)
        if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -18617,7 +19227,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -9699,7 +10207,13 @@ _LT_EOF
+@@ -9698,7 +10206,13 @@ _LT_EOF
  	allow_undefined_flag='-berok'
          # Determine the default libpath from the value encoded in an
          # empty executable.
@@ -18632,7 +19242,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -9712,22 +10226,29 @@ main ()
+@@ -9711,22 +10225,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -18675,7 +19285,7 @@
  
          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -9739,7 +10260,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9738,7 +10259,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	else
  	 # Determine the default libpath from the value encoded in an
  	 # empty executable.
@@ -18690,7 +19300,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -9752,22 +10279,29 @@ main ()
+@@ -9751,22 +10278,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -18733,7 +19343,7 @@
  
  	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
  	  # Warning - without using the other run time loading flags,
-@@ -9812,20 +10346,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9811,20 +10345,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        # Microsoft Visual C++.
        # hardcode_libdir_flag_spec is actually meaningless, as there is
        # no search path for DLLs.
@@ -18811,7 +19421,7 @@
        ;;
  
      darwin* | rhapsody*)
-@@ -9886,7 +10463,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9885,7 +10462,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
      freebsd* | dragonfly*)
@@ -18820,7 +19430,7 @@
        hardcode_libdir_flag_spec='-R$libdir'
        hardcode_direct=yes
        hardcode_shlibpath_var=no
-@@ -9894,7 +10471,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9893,7 +10470,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux9*)
        if test "$GCC" = yes; then
@@ -18829,7 +19439,7 @@
        else
  	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
        fi
-@@ -9910,7 +10487,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9909,7 +10486,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux10*)
        if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -18838,7 +19448,7 @@
        else
  	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
        fi
-@@ -9934,10 +10511,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9933,10 +10510,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
  	  ;;
  	ia64*)
@@ -18851,7 +19461,7 @@
  	  ;;
  	esac
        else
-@@ -10016,23 +10593,36 @@ fi
+@@ -10015,23 +10592,36 @@ fi
  
      irix5* | irix6* | nonstopux*)
        if test "$GCC" = yes; then
@@ -18896,7 +19506,7 @@
        else
  	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
  	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -10117,7 +10707,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10116,7 +10706,7 @@ rm -f core conftest.err conftest.$ac_objext \
      osf4* | osf5*)	# as osf3* with the addition of -msym flag
        if test "$GCC" = yes; then
  	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -18905,7 +19515,7 @@
  	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
        else
  	allow_undefined_flag=' -expect_unresolved \*'
-@@ -10136,9 +10726,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -10135,9 +10725,9 @@ rm -f core conftest.err conftest.$ac_objext \
        no_undefined_flag=' -z defs'
        if test "$GCC" = yes; then
  	wlarc='${wl}'
@@ -18917,7 +19527,7 @@
        else
  	case `$CC -V 2>&1` in
  	*"Compilers 5.0"*)
-@@ -10714,8 +11304,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10713,8 +11303,9 @@ cygwin* | mingw* | pw32* | cegcc*)
    need_version=no
    need_lib_prefix=no
  
@@ -18929,7 +19539,7 @@
      library_names_spec='$libname.dll.a'
      # DLL is installed to $(libdir)/../bin by postinstall_cmds
      postinstall_cmds='base_file=`basename \${file}`~
-@@ -10748,13 +11339,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10747,13 +11338,71 @@ cygwin* | mingw* | pw32* | cegcc*)
        library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
        ;;
      esac
@@ -19002,16 +19612,16 @@
    # FIXME: first we should search . and the directory the executable is in
    shlibpath_var=PATH
    ;;
-@@ -11632,7 +12281,7 @@ else
+@@ -11631,7 +12280,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
--#line 11635 "configure"
+-#line 11634 "configure"
 +#line $LINENO "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -11676,10 +12325,10 @@ else
+@@ -11675,10 +12324,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -19024,16 +19634,16 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11738,7 +12387,7 @@ else
+@@ -11737,7 +12386,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
--#line 11741 "configure"
+-#line 11740 "configure"
 +#line $LINENO "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -11782,10 +12431,10 @@ else
+@@ -11781,10 +12430,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -19046,7 +19656,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -15832,13 +16481,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -15825,13 +16474,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
  lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
  lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
  lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -19067,7 +19677,7 @@
  STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
  RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
  old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -15853,14 +16509,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -15846,14 +16502,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
  lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -19086,7 +19696,7 @@
  DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
  NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
  LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -15893,12 +16552,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -15886,12 +16545,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
  hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
  inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -19100,7 +19710,7 @@
  file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
  variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
  need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -15953,8 +16612,13 @@ reload_flag \
+@@ -15946,8 +16605,13 @@ reload_flag \
  OBJDUMP \
  deplibs_check_method \
  file_magic_cmd \
@@ -19114,7 +19724,7 @@
  STRIP \
  RANLIB \
  CC \
-@@ -15964,12 +16628,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -15957,12 +16621,14 @@ lt_cv_sys_global_symbol_pipe \
  lt_cv_sys_global_symbol_to_cdecl \
  lt_cv_sys_global_symbol_to_c_name_address \
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -19130,7 +19740,7 @@
  DSYMUTIL \
  NMEDIT \
  LIPO \
-@@ -15985,7 +16651,6 @@ no_undefined_flag \
+@@ -15978,7 +16644,6 @@ no_undefined_flag \
  hardcode_libdir_flag_spec \
  hardcode_libdir_flag_spec_ld \
  hardcode_libdir_separator \
@@ -19138,7 +19748,7 @@
  exclude_expsyms \
  include_expsyms \
  file_list_spec \
-@@ -16021,6 +16686,7 @@ module_cmds \
+@@ -16014,6 +16679,7 @@ module_cmds \
  module_expsym_cmds \
  export_symbols_cmds \
  prelink_cmds \
@@ -19146,7 +19756,7 @@
  postinstall_cmds \
  postuninstall_cmds \
  finish_cmds \
-@@ -16778,7 +17444,8 @@ $as_echo X"$file" |
+@@ -16771,7 +17437,8 @@ $as_echo X"$file" |
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
  #
  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -19156,7 +19766,7 @@
  #   Written by Gordon Matzigkeit, 1996
  #
  #   This file is part of GNU Libtool.
-@@ -16881,19 +17548,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -16874,19 +17541,42 @@ SP2NL=$lt_lt_SP2NL
  # turn newlines into spaces.
  NL2SP=$lt_lt_NL2SP
  
@@ -19200,7 +19810,7 @@
  # A symbol stripping program.
  STRIP=$lt_STRIP
  
-@@ -16923,6 +17613,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -16916,6 +17606,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
  # Transform the output of nm in a C name address pair when lib prefix is needed.
  global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
  
@@ -19213,7 +19823,7 @@
  # The name of the directory that contains temporary libtool files.
  objdir=$objdir
  
-@@ -16932,6 +17628,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -16925,6 +17621,9 @@ MAGIC_CMD=$MAGIC_CMD
  # Must we lock files when doing compilation?
  need_locks=$lt_need_locks
  
@@ -19223,7 +19833,7 @@
  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  DSYMUTIL=$lt_DSYMUTIL
  
-@@ -17046,12 +17745,12 @@ with_gcc=$GCC
+@@ -17039,12 +17738,12 @@ with_gcc=$GCC
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
  
@@ -19239,7 +19849,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static
  
-@@ -17138,9 +17837,6 @@ inherit_rpath=$inherit_rpath
+@@ -17131,9 +17830,6 @@ inherit_rpath=$inherit_rpath
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs
  
@@ -19249,7 +19859,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols
  
-@@ -17156,6 +17852,9 @@ include_expsyms=$lt_include_expsyms
+@@ -17149,6 +17845,9 @@ include_expsyms=$lt_include_expsyms
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds
  
@@ -19259,7 +19869,7 @@
  # Specify filename containing input files.
  file_list_spec=$lt_file_list_spec
  
-@@ -17188,210 +17887,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -17181,210 +17880,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?
@@ -19634,7 +20244,7 @@
    chmod +x "$ofile"
  
 diff --git a/libsframe/Makefile.in b/libsframe/Makefile.in
-index 107b82ccfdc..4a4459bf5eb 100644
+index 08c780caa4a..7ea9c94c2af 100644
 --- a/libsframe/Makefile.in
 +++ b/libsframe/Makefile.in
 @@ -1,7 +1,7 @@
@@ -19647,25 +20257,31 @@
  
  # This Makefile.in is free software; the Free Software Foundation
  # gives unlimited permission to copy and/or distribute it,
-@@ -139,6 +139,10 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+@@ -142,6 +142,13 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
  CONFIG_HEADER = config.h
  CONFIG_CLEAN_FILES =
  CONFIG_CLEAN_VPATH_FILES =
 +@HAVE_COMPAT_DEJAGNU_TRUE@am__EXEEXT_1 = testsuite/libsframe.decode/be-flipping$(EXEEXT) \
 +@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.decode/frecnt-1$(EXEEXT) \
 +@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.decode/frecnt-2$(EXEEXT) \
-+@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.encode/encode-1$(EXEEXT)
++@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.encode/encode-1$(EXEEXT) \
++@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.find/findfre-1$(EXEEXT) \
++@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.find/findfunc-1$(EXEEXT) \
++@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.find/plt-findfre-1$(EXEEXT)
  am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
  am__vpath_adj = case $$p in \
      $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-@@ -179,27 +183,27 @@ am__v_lt_0 = --silent
- am__v_lt_1 = 
+@@ -185,45 +192,44 @@ libsframe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ 	$(libsframe_la_LDFLAGS) $(LDFLAGS) -o $@
  @INSTALL_LIBBFD_FALSE@am_libsframe_la_rpath =
  @INSTALL_LIBBFD_TRUE@am_libsframe_la_rpath = -rpath $(libdir)
 -@HAVE_COMPAT_DEJAGNU_TRUE@am__EXEEXT_1 = testsuite/libsframe.decode/be-flipping$(EXEEXT) \
 -@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.decode/frecnt-1$(EXEEXT) \
 -@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.decode/frecnt-2$(EXEEXT) \
--@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.encode/encode-1$(EXEEXT)
+-@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.encode/encode-1$(EXEEXT) \
+-@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.find/findfre-1$(EXEEXT) \
+-@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.find/findfunc-1$(EXEEXT) \
+-@HAVE_COMPAT_DEJAGNU_TRUE@	testsuite/libsframe.find/plt-findfre-1$(EXEEXT)
  am__dirstamp = $(am__leading_dot)dirstamp
 -am_testsuite_libsframe_decode_be_flipping_OBJECTS = testsuite/libsframe.decode/testsuite_libsframe_decode_be_flipping-be-flipping.$(OBJEXT)
 +am_testsuite_libsframe_decode_be_flipping_OBJECTS =  \
@@ -19694,7 +20310,27 @@
  testsuite_libsframe_encode_encode_1_OBJECTS =  \
  	$(am_testsuite_libsframe_encode_encode_1_OBJECTS)
  testsuite_libsframe_encode_encode_1_DEPENDENCIES =  \
-@@ -218,7 +222,14 @@ am__v_at_0 = @
+ 	${top_builddir}/libsframe.la
+-am_testsuite_libsframe_find_findfre_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.$(OBJEXT)
++am_testsuite_libsframe_find_findfre_1_OBJECTS =  \
++	testsuite/libsframe.find/findfre_1-findfre-1.$(OBJEXT)
+ testsuite_libsframe_find_findfre_1_OBJECTS =  \
+ 	$(am_testsuite_libsframe_find_findfre_1_OBJECTS)
+ testsuite_libsframe_find_findfre_1_DEPENDENCIES =  \
+ 	${top_builddir}/libsframe.la
+-am_testsuite_libsframe_find_findfunc_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.$(OBJEXT)
++am_testsuite_libsframe_find_findfunc_1_OBJECTS =  \
++	testsuite/libsframe.find/findfunc_1-findfunc-1.$(OBJEXT)
+ testsuite_libsframe_find_findfunc_1_OBJECTS =  \
+ 	$(am_testsuite_libsframe_find_findfunc_1_OBJECTS)
+ testsuite_libsframe_find_findfunc_1_DEPENDENCIES =  \
+ 	${top_builddir}/libsframe.la
+-am_testsuite_libsframe_find_plt_findfre_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.$(OBJEXT)
++am_testsuite_libsframe_find_plt_findfre_1_OBJECTS = testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.$(OBJEXT)
+ testsuite_libsframe_find_plt_findfre_1_OBJECTS =  \
+ 	$(am_testsuite_libsframe_find_plt_findfre_1_OBJECTS)
+ testsuite_libsframe_find_plt_findfre_1_DEPENDENCIES =  \
+@@ -242,7 +248,17 @@ am__v_at_0 = @
  am__v_at_1 = 
  DEFAULT_INCLUDES = -I.@am__isrc@
  depcomp = $(SHELL) $(top_srcdir)/../depcomp
@@ -19706,11 +20342,14 @@
 +	testsuite/libsframe.decode/$(DEPDIR)/be_flipping-be-flipping.Po \
 +	testsuite/libsframe.decode/$(DEPDIR)/frecnt_1-frecnt-1.Po \
 +	testsuite/libsframe.decode/$(DEPDIR)/frecnt_2-frecnt-2.Po \
-+	testsuite/libsframe.encode/$(DEPDIR)/encode_1-encode-1.Po
++	testsuite/libsframe.encode/$(DEPDIR)/encode_1-encode-1.Po \
++	testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Po \
++	testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Po \
++	testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Po
  am__mv = mv -f
  COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
  	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-@@ -295,8 +306,8 @@ am__can_run_installinfo = \
+@@ -325,8 +341,8 @@ am__can_run_installinfo = \
    esac
  am__include_HEADERS_DIST = $(INCDIR)/sframe.h $(INCDIR)/sframe-api.h
  HEADERS = $(include_HEADERS)
@@ -19721,7 +20360,7 @@
  # Read a list of newline-separated strings from the standard input,
  # and print each of them once, without duplicates.  Input order is
  # *not* preserved.
-@@ -313,9 +324,6 @@ am__define_uniq_tagged_files = \
+@@ -343,9 +359,6 @@ am__define_uniq_tagged_files = \
    unique=`for i in $$list; do \
      if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
    done | $(am__uniquify_input)`
@@ -19731,7 +20370,7 @@
  AM_RECURSIVE_TARGETS = cscope
  DEJATOOL = $(PACKAGE)
  RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
-@@ -341,6 +349,8 @@ am__post_remove_distdir = $(am__remove_distdir)
+@@ -372,6 +385,8 @@ am__post_remove_distdir = $(am__remove_distdir)
  DIST_ARCHIVES = $(distdir).tar.gz
  GZIP_ENV = --best
  DIST_TARGETS = dist-gzip
@@ -19740,7 +20379,7 @@
  distuninstallcheck_listfiles = find . -type f -print
  am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
    | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-@@ -359,15 +369,19 @@ CFLAGS = @CFLAGS@
+@@ -390,15 +405,19 @@ CFLAGS = @CFLAGS@
  COMPAT_DEJAGNU = @COMPAT_DEJAGNU@
  CPP = @CPP@
  CPPFLAGS = @CPPFLAGS@
@@ -19760,7 +20399,7 @@
  EXEEXT = @EXEEXT@
  FGREP = @FGREP@
  GREP = @GREP@
-@@ -386,6 +400,7 @@ LN_S = @LN_S@
+@@ -417,6 +436,7 @@ LN_S = @LN_S@
  LTLIBOBJS = @LTLIBOBJS@
  MAINT = @MAINT@
  MAKEINFO = @MAKEINFO@
@@ -19768,7 +20407,7 @@
  MKDIR_P = @MKDIR_P@
  NM = @NM@
  NMEDIT = @NMEDIT@
-@@ -541,8 +556,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+@@ -589,8 +609,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
  	    echo ' $(SHELL) ./config.status'; \
  	    $(SHELL) ./config.status;; \
  	  *) \
@@ -19777,9 +20416,9 @@
 +	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
 +	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
  	esac;
- $(srcdir)/doc/local.mk $(srcdir)/testsuite/local.mk $(srcdir)/testsuite/libsframe.decode/local.mk $(srcdir)/testsuite/libsframe.encode/local.mk $(am__empty):
+ $(srcdir)/doc/local.mk $(srcdir)/testsuite/local.mk $(srcdir)/testsuite/libsframe.decode/local.mk $(srcdir)/testsuite/libsframe.encode/local.mk $(srcdir)/testsuite/libsframe.find/local.mk $(am__empty):
  
-@@ -570,6 +585,15 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+@@ -618,6 +638,15 @@ $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
  distclean-hdr:
  	-rm -f config.h stamp-h1
  
@@ -19795,10 +20434,10 @@
  install-libLTLIBRARIES: $(lib_LTLIBRARIES)
  	@$(NORMAL_INSTALL)
  	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
-@@ -618,36 +642,27 @@ clean-noinstLTLIBRARIES:
+@@ -666,36 +695,27 @@ clean-noinstLTLIBRARIES:
  
  libsframe.la: $(libsframe_la_OBJECTS) $(libsframe_la_DEPENDENCIES) $(EXTRA_libsframe_la_DEPENDENCIES) 
- 	$(AM_V_CCLD)$(LINK) $(am_libsframe_la_rpath) $(libsframe_la_OBJECTS) $(libsframe_la_LIBADD) $(LIBS)
+ 	$(AM_V_CCLD)$(libsframe_la_LINK) $(am_libsframe_la_rpath) $(libsframe_la_OBJECTS) $(libsframe_la_LIBADD) $(LIBS)
 -
 -clean-checkPROGRAMS:
 -	@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
@@ -19835,7 +20474,7 @@
  	testsuite/libsframe.decode/$(am__dirstamp) \
  	testsuite/libsframe.decode/$(DEPDIR)/$(am__dirstamp)
  
-@@ -660,7 +675,7 @@ testsuite/libsframe.encode/$(am__dirstamp):
+@@ -708,7 +728,7 @@ testsuite/libsframe.encode/$(am__dirstamp):
  testsuite/libsframe.encode/$(DEPDIR)/$(am__dirstamp):
  	@$(MKDIR_P) testsuite/libsframe.encode/$(DEPDIR)
  	@: > testsuite/libsframe.encode/$(DEPDIR)/$(am__dirstamp)
@@ -19844,7 +20483,32 @@
  	testsuite/libsframe.encode/$(am__dirstamp) \
  	testsuite/libsframe.encode/$(DEPDIR)/$(am__dirstamp)
  
-@@ -676,13 +691,19 @@ mostlyclean-compile:
+@@ -721,21 +741,21 @@ testsuite/libsframe.find/$(am__dirstamp):
+ testsuite/libsframe.find/$(DEPDIR)/$(am__dirstamp):
+ 	@$(MKDIR_P) testsuite/libsframe.find/$(DEPDIR)
+ 	@: > testsuite/libsframe.find/$(DEPDIR)/$(am__dirstamp)
+-testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.$(OBJEXT):  \
++testsuite/libsframe.find/findfre_1-findfre-1.$(OBJEXT):  \
+ 	testsuite/libsframe.find/$(am__dirstamp) \
+ 	testsuite/libsframe.find/$(DEPDIR)/$(am__dirstamp)
+ 
+ testsuite/libsframe.find/findfre-1$(EXEEXT): $(testsuite_libsframe_find_findfre_1_OBJECTS) $(testsuite_libsframe_find_findfre_1_DEPENDENCIES) $(EXTRA_testsuite_libsframe_find_findfre_1_DEPENDENCIES) testsuite/libsframe.find/$(am__dirstamp)
+ 	@rm -f testsuite/libsframe.find/findfre-1$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(testsuite_libsframe_find_findfre_1_OBJECTS) $(testsuite_libsframe_find_findfre_1_LDADD) $(LIBS)
+-testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.$(OBJEXT):  \
++testsuite/libsframe.find/findfunc_1-findfunc-1.$(OBJEXT):  \
+ 	testsuite/libsframe.find/$(am__dirstamp) \
+ 	testsuite/libsframe.find/$(DEPDIR)/$(am__dirstamp)
+ 
+ testsuite/libsframe.find/findfunc-1$(EXEEXT): $(testsuite_libsframe_find_findfunc_1_OBJECTS) $(testsuite_libsframe_find_findfunc_1_DEPENDENCIES) $(EXTRA_testsuite_libsframe_find_findfunc_1_DEPENDENCIES) testsuite/libsframe.find/$(am__dirstamp)
+ 	@rm -f testsuite/libsframe.find/findfunc-1$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(testsuite_libsframe_find_findfunc_1_OBJECTS) $(testsuite_libsframe_find_findfunc_1_LDADD) $(LIBS)
+-testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.$(OBJEXT):  \
++testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.$(OBJEXT):  \
+ 	testsuite/libsframe.find/$(am__dirstamp) \
+ 	testsuite/libsframe.find/$(DEPDIR)/$(am__dirstamp)
+ 
+@@ -752,16 +772,22 @@ mostlyclean-compile:
  distclean-compile:
  	-rm -f *.tab.c
  
@@ -19855,6 +20519,9 @@
 -@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.decode/$(DEPDIR)/testsuite_libsframe_decode_frecnt_1-frecnt-1.Po@am__quote@
 -@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.decode/$(DEPDIR)/testsuite_libsframe_decode_frecnt_2-frecnt-2.Po@am__quote@
 -@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.encode/$(DEPDIR)/testsuite_libsframe_encode_encode_1-encode-1.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfre_1-findfre-1.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfunc_1-findfunc-1.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.Po@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsframe_la-sframe-dump.Plo@am__quote@ # am--include-marker
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsframe_la-sframe-error.Plo@am__quote@ # am--include-marker
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libsframe_la-sframe.Plo@am__quote@ # am--include-marker
@@ -19862,6 +20529,9 @@
 +@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.decode/$(DEPDIR)/frecnt_1-frecnt-1.Po@am__quote@ # am--include-marker
 +@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.decode/$(DEPDIR)/frecnt_2-frecnt-2.Po@am__quote@ # am--include-marker
 +@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.encode/$(DEPDIR)/encode_1-encode-1.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Po@am__quote@ # am--include-marker
 +
 +$(am__depfiles_remade):
 +	@$(MKDIR_P) $(@D)
@@ -19871,7 +20541,7 @@
  
  .c.o:
  @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@@ -729,61 +750,61 @@ libsframe_la-sframe-error.lo: sframe-error.c
+@@ -808,103 +834,103 @@ libsframe_la-sframe-error.lo: sframe-error.c
  @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
  @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsframe_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libsframe_la-sframe-error.lo `test -f 'sframe-error.c' || echo '$(srcdir)/'`sframe-error.c
  
@@ -19971,9 +20641,81 @@
 -@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_encode_encode_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.encode/testsuite_libsframe_encode_encode_1-encode-1.obj `if test -f 'testsuite/libsframe.encode/encode-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.encode/encode-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.encode/encode-1.c'; fi`
 +@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_encode_encode_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.encode/encode_1-encode-1.obj `if test -f 'testsuite/libsframe.encode/encode-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.encode/encode-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.encode/encode-1.c'; fi`
  
+-testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.o: testsuite/libsframe.find/findfre-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.o -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfre_1-findfre-1.Tpo -c -o testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.o `test -f 'testsuite/libsframe.find/findfre-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/findfre-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfre_1-findfre-1.Tpo testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfre_1-findfre-1.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/findfre-1.c' object='testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.o' libtool=no @AMDEPBACKSLASH@
++testsuite/libsframe.find/findfre_1-findfre-1.o: testsuite/libsframe.find/findfre-1.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/findfre_1-findfre-1.o -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Tpo -c -o testsuite/libsframe.find/findfre_1-findfre-1.o `test -f 'testsuite/libsframe.find/findfre-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/findfre-1.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Tpo testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/findfre-1.c' object='testsuite/libsframe.find/findfre_1-findfre-1.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.o `test -f 'testsuite/libsframe.find/findfre-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/findfre-1.c
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/findfre_1-findfre-1.o `test -f 'testsuite/libsframe.find/findfre-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/findfre-1.c
+ 
+-testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.obj: testsuite/libsframe.find/findfre-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.obj -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfre_1-findfre-1.Tpo -c -o testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.obj `if test -f 'testsuite/libsframe.find/findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/findfre-1.c'; fi`
+-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfre_1-findfre-1.Tpo testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfre_1-findfre-1.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/findfre-1.c' object='testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.obj' libtool=no @AMDEPBACKSLASH@
++testsuite/libsframe.find/findfre_1-findfre-1.obj: testsuite/libsframe.find/findfre-1.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/findfre_1-findfre-1.obj -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Tpo -c -o testsuite/libsframe.find/findfre_1-findfre-1.obj `if test -f 'testsuite/libsframe.find/findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/findfre-1.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Tpo testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/findfre-1.c' object='testsuite/libsframe.find/findfre_1-findfre-1.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.obj `if test -f 'testsuite/libsframe.find/findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/findfre-1.c'; fi`
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/findfre_1-findfre-1.obj `if test -f 'testsuite/libsframe.find/findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/findfre-1.c'; fi`
+ 
+-testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.o: testsuite/libsframe.find/findfunc-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfunc_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.o -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfunc_1-findfunc-1.Tpo -c -o testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.o `test -f 'testsuite/libsframe.find/findfunc-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/findfunc-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfunc_1-findfunc-1.Tpo testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfunc_1-findfunc-1.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/findfunc-1.c' object='testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.o' libtool=no @AMDEPBACKSLASH@
++testsuite/libsframe.find/findfunc_1-findfunc-1.o: testsuite/libsframe.find/findfunc-1.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfunc_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/findfunc_1-findfunc-1.o -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Tpo -c -o testsuite/libsframe.find/findfunc_1-findfunc-1.o `test -f 'testsuite/libsframe.find/findfunc-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/findfunc-1.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Tpo testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/findfunc-1.c' object='testsuite/libsframe.find/findfunc_1-findfunc-1.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfunc_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.o `test -f 'testsuite/libsframe.find/findfunc-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/findfunc-1.c
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfunc_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/findfunc_1-findfunc-1.o `test -f 'testsuite/libsframe.find/findfunc-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/findfunc-1.c
+ 
+-testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.obj: testsuite/libsframe.find/findfunc-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfunc_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.obj -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfunc_1-findfunc-1.Tpo -c -o testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.obj `if test -f 'testsuite/libsframe.find/findfunc-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/findfunc-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/findfunc-1.c'; fi`
+-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfunc_1-findfunc-1.Tpo testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_findfunc_1-findfunc-1.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/findfunc-1.c' object='testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.obj' libtool=no @AMDEPBACKSLASH@
++testsuite/libsframe.find/findfunc_1-findfunc-1.obj: testsuite/libsframe.find/findfunc-1.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfunc_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/findfunc_1-findfunc-1.obj -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Tpo -c -o testsuite/libsframe.find/findfunc_1-findfunc-1.obj `if test -f 'testsuite/libsframe.find/findfunc-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/findfunc-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/findfunc-1.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Tpo testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/findfunc-1.c' object='testsuite/libsframe.find/findfunc_1-findfunc-1.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfunc_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.obj `if test -f 'testsuite/libsframe.find/findfunc-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/findfunc-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/findfunc-1.c'; fi`
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_findfunc_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/findfunc_1-findfunc-1.obj `if test -f 'testsuite/libsframe.find/findfunc-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/findfunc-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/findfunc-1.c'; fi`
+ 
+-testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.o: testsuite/libsframe.find/plt-findfre-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.o -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.Tpo -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.o `test -f 'testsuite/libsframe.find/plt-findfre-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/plt-findfre-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.Tpo testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/plt-findfre-1.c' object='testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.o' libtool=no @AMDEPBACKSLASH@
++testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.o: testsuite/libsframe.find/plt-findfre-1.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.o -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Tpo -c -o testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.o `test -f 'testsuite/libsframe.find/plt-findfre-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/plt-findfre-1.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Tpo testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/plt-findfre-1.c' object='testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.o' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.o `test -f 'testsuite/libsframe.find/plt-findfre-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/plt-findfre-1.c
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.o `test -f 'testsuite/libsframe.find/plt-findfre-1.c' || echo '$(srcdir)/'`testsuite/libsframe.find/plt-findfre-1.c
+ 
+-testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.obj: testsuite/libsframe.find/plt-findfre-1.c
+-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.obj -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.Tpo -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.obj `if test -f 'testsuite/libsframe.find/plt-findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/plt-findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/plt-findfre-1.c'; fi`
+-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.Tpo testsuite/libsframe.find/$(DEPDIR)/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.Po
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/plt-findfre-1.c' object='testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.obj' libtool=no @AMDEPBACKSLASH@
++testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.obj: testsuite/libsframe.find/plt-findfre-1.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.obj -MD -MP -MF testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Tpo -c -o testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.obj `if test -f 'testsuite/libsframe.find/plt-findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/plt-findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/plt-findfre-1.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Tpo testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='testsuite/libsframe.find/plt-findfre-1.c' object='testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.obj' libtool=no @AMDEPBACKSLASH@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.obj `if test -f 'testsuite/libsframe.find/plt-findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/plt-findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/plt-findfre-1.c'; fi`
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(testsuite_libsframe_find_plt_findfre_1_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o testsuite/libsframe.find/plt_findfre_1-plt-findfre-1.obj `if test -f 'testsuite/libsframe.find/plt-findfre-1.c'; then $(CYGPATH_W) 'testsuite/libsframe.find/plt-findfre-1.c'; else $(CYGPATH_W) '$(srcdir)/testsuite/libsframe.find/plt-findfre-1.c'; fi`
+ 
  mostlyclean-libtool:
  	-rm -f *.lo
-@@ -1020,7 +1041,7 @@ site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG)
+@@ -1142,7 +1168,7 @@ site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG)
  	@echo '# Do not edit here.  If you wish to override these values' >>site.tmp
  	@echo '# edit the last section' >>site.tmp
  	@echo 'set srcdir "$(srcdir)"' >>site.tmp
@@ -19982,7 +20724,7 @@
  	@echo 'set build_alias "$(build_alias)"' >>site.tmp
  	@echo 'set build_triplet $(build_triplet)' >>site.tmp
  	@echo 'set host_alias "$(host_alias)"' >>site.tmp
-@@ -1044,8 +1065,10 @@ distclean-DEJAGNU:
+@@ -1166,8 +1192,10 @@ distclean-DEJAGNU:
  	-l='$(DEJATOOL)'; for tool in $$l; do \
  	  rm -f $$tool.sum $$tool.log; \
  	done
@@ -19994,7 +20736,7 @@
  	$(am__remove_distdir)
  	test -d "$(distdir)" || mkdir "$(distdir)"
  	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-@@ -1103,6 +1126,10 @@ dist-xz: distdir
+@@ -1225,6 +1253,10 @@ dist-xz: distdir
  	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
  	$(am__post_remove_distdir)
  
@@ -20005,7 +20747,7 @@
  dist-tarZ: distdir
  	@echo WARNING: "Support for distribution archives compressed with" \
  		       "legacy program 'compress' is deprecated." >&2
-@@ -1145,6 +1172,8 @@ distcheck: dist
+@@ -1267,6 +1299,8 @@ distcheck: dist
  	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
  	*.zip*) \
  	  unzip $(distdir).zip ;;\
@@ -20014,7 +20756,7 @@
  	esac
  	chmod -R a-w $(distdir)
  	chmod u+w $(distdir)
-@@ -1160,7 +1189,7 @@ distcheck: dist
+@@ -1282,7 +1316,7 @@ distcheck: dist
  	    $(DISTCHECK_CONFIGURE_FLAGS) \
  	    --srcdir=../.. --prefix="$$dc_install_base" \
  	  && $(MAKE) $(AM_MAKEFLAGS) \
@@ -20023,7 +20765,7 @@
  	  && $(MAKE) $(AM_MAKEFLAGS) check \
  	  && $(MAKE) $(AM_MAKEFLAGS) install \
  	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
-@@ -1216,6 +1245,8 @@ check-am: all-am
+@@ -1338,6 +1372,8 @@ check-am: all-am
  	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
  check: check-am
  all-am: Makefile $(INFO_DEPS) $(LTLIBRARIES) $(HEADERS) config.h
@@ -20032,11 +20774,11 @@
  installdirs:
  	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(infodir)" "$(DESTDIR)$(includedir)"; do \
  	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-@@ -1266,7 +1297,13 @@ clean-am: clean-aminfo clean-checkPROGRAMS clean-generic \
+@@ -1390,7 +1426,16 @@ clean-am: clean-aminfo clean-checkPROGRAMS clean-generic \
  
  distclean: distclean-am
  	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
--	-rm -rf ./$(DEPDIR) testsuite/libsframe.decode/$(DEPDIR) testsuite/libsframe.encode/$(DEPDIR)
+-	-rm -rf ./$(DEPDIR) testsuite/libsframe.decode/$(DEPDIR) testsuite/libsframe.encode/$(DEPDIR) testsuite/libsframe.find/$(DEPDIR)
 +		-rm -f ./$(DEPDIR)/libsframe_la-sframe-dump.Plo
 +	-rm -f ./$(DEPDIR)/libsframe_la-sframe-error.Plo
 +	-rm -f ./$(DEPDIR)/libsframe_la-sframe.Plo
@@ -20044,14 +20786,17 @@
 +	-rm -f testsuite/libsframe.decode/$(DEPDIR)/frecnt_1-frecnt-1.Po
 +	-rm -f testsuite/libsframe.decode/$(DEPDIR)/frecnt_2-frecnt-2.Po
 +	-rm -f testsuite/libsframe.encode/$(DEPDIR)/encode_1-encode-1.Po
++	-rm -f testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Po
++	-rm -f testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Po
++	-rm -f testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Po
  	-rm -f Makefile
  distclean-am: clean-am distclean-DEJAGNU distclean-compile \
  	distclean-generic distclean-hdr distclean-libtool \
-@@ -1406,7 +1443,13 @@ installcheck-am:
+@@ -1530,7 +1575,16 @@ installcheck-am:
  maintainer-clean: maintainer-clean-am
  	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
  	-rm -rf $(top_srcdir)/autom4te.cache
--	-rm -rf ./$(DEPDIR) testsuite/libsframe.decode/$(DEPDIR) testsuite/libsframe.encode/$(DEPDIR)
+-	-rm -rf ./$(DEPDIR) testsuite/libsframe.decode/$(DEPDIR) testsuite/libsframe.encode/$(DEPDIR) testsuite/libsframe.find/$(DEPDIR)
 +		-rm -f ./$(DEPDIR)/libsframe_la-sframe-dump.Plo
 +	-rm -f ./$(DEPDIR)/libsframe_la-sframe-error.Plo
 +	-rm -f ./$(DEPDIR)/libsframe_la-sframe.Plo
@@ -20059,10 +20804,13 @@
 +	-rm -f testsuite/libsframe.decode/$(DEPDIR)/frecnt_1-frecnt-1.Po
 +	-rm -f testsuite/libsframe.decode/$(DEPDIR)/frecnt_2-frecnt-2.Po
 +	-rm -f testsuite/libsframe.encode/$(DEPDIR)/encode_1-encode-1.Po
++	-rm -f testsuite/libsframe.find/$(DEPDIR)/findfre_1-findfre-1.Po
++	-rm -f testsuite/libsframe.find/$(DEPDIR)/findfunc_1-findfunc-1.Po
++	-rm -f testsuite/libsframe.find/$(DEPDIR)/plt_findfre_1-plt-findfre-1.Po
  	-rm -f Makefile
  maintainer-clean-am: distclean-am maintainer-clean-aminfo \
  	maintainer-clean-generic
-@@ -1430,28 +1473,28 @@ uninstall-am: uninstall-dvi-am uninstall-html-am \
+@@ -1554,28 +1608,28 @@ uninstall-am: uninstall-dvi-am uninstall-html-am \
  
  .MAKE: all check-am install-am install-strip
  
@@ -20561,10 +21309,10 @@
  # This file is free software; the Free Software Foundation
  # gives unlimited permission to copy and/or distribute it,
 diff --git a/libsframe/configure b/libsframe/configure
-index 7bbed5d8ccf..795e7802110 100755
+index f7ad9c5e29a..78e875956ae 100755
 --- a/libsframe/configure
 +++ b/libsframe/configure
-@@ -654,6 +654,8 @@ OTOOL
+@@ -658,6 +658,8 @@ OTOOL
  LIPO
  NMEDIT
  DSYMUTIL
@@ -20573,7 +21321,7 @@
  OBJDUMP
  LN_S
  NM
-@@ -678,6 +680,9 @@ AM_BACKSLASH
+@@ -682,6 +684,9 @@ AM_BACKSLASH
  AM_DEFAULT_VERBOSITY
  AM_DEFAULT_V
  AM_V
@@ -20583,7 +21331,7 @@
  am__fastdepCC_FALSE
  am__fastdepCC_TRUE
  CCDEPMODE
-@@ -685,7 +690,6 @@ am__nodep
+@@ -689,7 +694,6 @@ am__nodep
  AMDEPBACKSLASH
  AMDEP_FALSE
  AMDEP_TRUE
@@ -20591,7 +21339,7 @@
  am__include
  DEPDIR
  am__untar
-@@ -758,7 +762,8 @@ PACKAGE_VERSION
+@@ -762,7 +766,8 @@ PACKAGE_VERSION
  PACKAGE_TARNAME
  PACKAGE_NAME
  PATH_SEPARATOR
@@ -20601,7 +21349,7 @@
  ac_subst_files=''
  ac_user_opts='
  enable_option_checking
-@@ -769,6 +774,7 @@ enable_static
+@@ -773,6 +778,7 @@ enable_static
  with_pic
  enable_fast_install
  with_gnu_ld
@@ -20609,7 +21357,7 @@
  enable_libtool_lock
  enable_largefile
  enable_maintainer_mode
-@@ -1424,6 +1430,8 @@ Optional Packages:
+@@ -1428,6 +1434,8 @@ Optional Packages:
    --with-pic              try to use only PIC/non-PIC objects [default=use
                            both]
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -20618,7 +21366,7 @@
  
  Some influential environment variables:
    CC          C compiler command
-@@ -3606,7 +3614,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+@@ -3610,7 +3618,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
    $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
  
  
@@ -20627,7 +21375,7 @@
  
  # Find a good install program.  We prefer a C program (faster),
  # so one script is as good as another.  But avoid the broken or
-@@ -3779,12 +3787,7 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+@@ -3783,12 +3791,7 @@ ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
  program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
  
  if test x"${MISSING+set}" != xset; then
@@ -20641,7 +21389,7 @@
  fi
  # Use eval to expand $SHELL
  if eval "$MISSING --is-lightweight"; then
-@@ -4032,45 +4035,45 @@ DEPDIR="${am__leading_dot}deps"
+@@ -4036,45 +4039,45 @@ DEPDIR="${am__leading_dot}deps"
  
  ac_config_commands="$ac_config_commands depfiles"
  
@@ -20720,7 +21468,7 @@
  
  # Check whether --enable-dependency-tracking was given.
  if test "${enable_dependency_tracking+set}" = set; then :
-@@ -4182,8 +4185,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+@@ -4186,8 +4189,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
  
  # For better backward compatibility.  To be removed once Automake 1.9.x
  # dies out for good.  For more background, see:
@@ -20731,7 +21479,7 @@
  mkdir_p='$(MKDIR_P)'
  
  # We need awk for the "check" target (and possibly the TAP driver).  The
-@@ -4330,6 +4333,20 @@ else
+@@ -4334,6 +4337,20 @@ else
  fi
  
  
@@ -20752,7 +21500,7 @@
  
  # POSIX will say in a future version that running "rm -f" with no argument
  # is OK; and we want to be able to make that assumption in our Makefile
-@@ -4362,7 +4379,7 @@ END
+@@ -4366,7 +4383,7 @@ END
  Aborting the configuration process, to ensure you take notice of the issue.
  
  You can download and install GNU coreutils to get an 'rm' implementation
@@ -20761,7 +21509,7 @@
  
  If you want to complete the configuration process using your problematic
  'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-@@ -5308,8 +5325,8 @@ esac
+@@ -5351,8 +5368,8 @@ esac
  
  
  
@@ -20772,7 +21520,7 @@
  
  
  
-@@ -5420,7 +5437,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+@@ -5463,7 +5480,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
  $as_echo_n "checking how to print strings... " >&6; }
  # Test print first, because it will be a builtin if present.
@@ -20781,7 +21529,7 @@
     test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
    ECHO='print -r --'
  elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -6113,8 +6130,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
+@@ -6156,8 +6173,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
  # Try some XSI features
  xsi_shell=no
  ( _lt_dummy="a/b/c"
@@ -20792,7 +21540,7 @@
      && eval 'test $(( 1 + 1 )) -eq 2 \
      && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
    && xsi_shell=yes
-@@ -6163,6 +6180,80 @@ esac
+@@ -6206,6 +6223,80 @@ esac
  
  
  
@@ -20873,7 +21621,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
  $as_echo_n "checking for $LD option to reload object files... " >&6; }
  if ${lt_cv_ld_reload_flag+:} false; then :
-@@ -6179,6 +6270,11 @@ case $reload_flag in
+@@ -6222,6 +6313,11 @@ case $reload_flag in
  esac
  reload_cmds='$LD$reload_flag -o $output$reload_objs'
  case $host_os in
@@ -20885,7 +21633,7 @@
    darwin*)
      if test "$GCC" = yes; then
        reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6347,7 +6443,8 @@ mingw* | pw32*)
+@@ -6390,7 +6486,8 @@ mingw* | pw32*)
      lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
      lt_cv_file_magic_cmd='func_win32_libid'
    else
@@ -20895,7 +21643,7 @@
      lt_cv_file_magic_cmd='$OBJDUMP -f'
    fi
    ;;
-@@ -6501,6 +6598,21 @@ esac
+@@ -6544,6 +6641,21 @@ esac
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
  $as_echo "$lt_cv_deplibs_check_method" >&6; }
@@ -20917,7 +21665,7 @@
  file_magic_cmd=$lt_cv_file_magic_cmd
  deplibs_check_method=$lt_cv_deplibs_check_method
  test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6516,6 +6628,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+@@ -6559,6 +6671,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
  
  
  
@@ -21075,7 +21823,7 @@
  plugin_option=
  plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
  for plugin in $plugin_names; do
-@@ -6530,8 +6793,10 @@ for plugin in $plugin_names; do
+@@ -6573,8 +6836,10 @@ for plugin in $plugin_names; do
  done
  
  if test -n "$ac_tool_prefix"; then
@@ -21088,7 +21836,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_AR+:} false; then :
-@@ -6547,7 +6812,7 @@ do
+@@ -6590,7 +6855,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -21097,7 +21845,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -6567,11 +6832,15 @@ $as_echo "no" >&6; }
+@@ -6610,11 +6875,15 @@ $as_echo "no" >&6; }
  fi
  
  
@@ -21116,7 +21864,7 @@
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
  $as_echo_n "checking for $ac_word... " >&6; }
  if ${ac_cv_prog_ac_ct_AR+:} false; then :
-@@ -6587,7 +6856,7 @@ do
+@@ -6630,7 +6899,7 @@ do
    test -z "$as_dir" && as_dir=.
      for ac_exec_ext in '' $ac_executable_extensions; do
    if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
@@ -21125,7 +21873,7 @@
      $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
      break 2
    fi
-@@ -6606,6 +6875,10 @@ else
+@@ -6649,6 +6918,10 @@ else
  $as_echo "no" >&6; }
  fi
  
@@ -21136,7 +21884,7 @@
    if test "x$ac_ct_AR" = x; then
      AR="false"
    else
-@@ -6617,29 +6890,81 @@ ac_tool_warned=yes ;;
+@@ -6660,29 +6933,81 @@ ac_tool_warned=yes ;;
  esac
      AR=$ac_ct_AR
    fi
@@ -21233,7 +21981,7 @@
  
  
  
-@@ -6986,8 +7311,8 @@ esac
+@@ -7029,8 +7354,8 @@ esac
  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
  
  # Transform an extracted symbol line into symbol name and symbol address
@@ -21244,7 +21992,7 @@
  
  # Handle CRLF in mingw tool chain
  opt_cr=
-@@ -7023,6 +7348,7 @@ for ac_symprfx in "" "_"; do
+@@ -7066,6 +7391,7 @@ for ac_symprfx in "" "_"; do
    else
      lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
    fi
@@ -21252,7 +22000,7 @@
  
    # Check to see that the pipe works correctly.
    pipe_works=no
-@@ -7064,6 +7390,18 @@ _LT_EOF
+@@ -7107,6 +7433,18 @@ _LT_EOF
        if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
  	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
  	  cat <<_LT_EOF > conftest.$ac_ext
@@ -21271,7 +22019,7 @@
  #ifdef __cplusplus
  extern "C" {
  #endif
-@@ -7075,7 +7413,7 @@ _LT_EOF
+@@ -7118,7 +7456,7 @@ _LT_EOF
  	  cat <<_LT_EOF >> conftest.$ac_ext
  
  /* The mapping between symbol names and symbols.  */
@@ -21280,7 +22028,7 @@
    const char *name;
    void       *address;
  }
-@@ -7101,8 +7439,8 @@ static const void *lt_preloaded_setup() {
+@@ -7144,8 +7482,8 @@ static const void *lt_preloaded_setup() {
  _LT_EOF
  	  # Now try linking the two files.
  	  mv conftest.$ac_objext conftstm.$ac_objext
@@ -21291,7 +22039,7 @@
  	  LIBS="conftstm.$ac_objext"
  	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
  	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7112,8 +7450,8 @@ _LT_EOF
+@@ -7155,8 +7493,8 @@ _LT_EOF
    test $ac_status = 0; } && test -s conftest${ac_exeext}; then
  	    pipe_works=yes
  	  fi
@@ -21302,7 +22050,7 @@
  	else
  	  echo "cannot find nm_test_func in $nlist" >&5
  	fi
-@@ -7150,6 +7488,16 @@ else
+@@ -7193,6 +7531,16 @@ else
  $as_echo "ok" >&6; }
  fi
  
@@ -21319,7 +22067,7 @@
  
  
  
-@@ -7166,6 +7514,45 @@ fi
+@@ -7209,6 +7557,45 @@ fi
  
  
  
@@ -21365,7 +22113,7 @@
  
  
  
-@@ -7371,11 +7758,128 @@ sparc*-*solaris*)
+@@ -7414,11 +7801,128 @@ sparc*-*solaris*)
        ;;
      esac
    fi
@@ -21497,7 +22245,7 @@
  
  
    case $host_os in
-@@ -7940,6 +8444,8 @@ _LT_EOF
+@@ -7983,6 +8487,8 @@ _LT_EOF
        $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
        echo "$AR cru libconftest.a conftest.o" >&5
        $AR cru libconftest.a conftest.o 2>&5
@@ -21506,7 +22254,7 @@
        cat > conftest.c << _LT_EOF
  int main() { return 0;}
  _LT_EOF
-@@ -8492,8 +8998,6 @@ fi
+@@ -8535,8 +9041,6 @@ fi
  lt_prog_compiler_pic=
  lt_prog_compiler_static=
  
@@ -21515,7 +22263,7 @@
  
    if test "$GCC" = yes; then
      lt_prog_compiler_wl='-Wl,'
-@@ -8659,6 +9163,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8702,6 +9206,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
  	lt_prog_compiler_pic='--shared'
  	lt_prog_compiler_static='--static'
  	;;
@@ -21528,7 +22276,7 @@
        pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
          # Portland Group compilers (*not* the Pentium gcc compiler,
  	# which looks to be a dead project)
-@@ -8721,7 +9231,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+@@ -8764,7 +9274,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
        lt_prog_compiler_pic='-KPIC'
        lt_prog_compiler_static='-Bstatic'
        case $cc_basename in
@@ -21537,7 +22285,7 @@
  	lt_prog_compiler_wl='-Qoption ld ';;
        *)
  	lt_prog_compiler_wl='-Wl,';;
-@@ -8778,13 +9288,17 @@ case $host_os in
+@@ -8821,13 +9331,17 @@ case $host_os in
      lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
      ;;
  esac
@@ -21561,7 +22309,7 @@
  
  #
  # Check to make sure the PIC flag actually works.
-@@ -8845,6 +9359,11 @@ fi
+@@ -8888,6 +9402,11 @@ fi
  
  
  
@@ -21573,7 +22321,7 @@
  #
  # Check to make sure the static flag actually works.
  #
-@@ -9195,7 +9714,8 @@ _LT_EOF
+@@ -9238,7 +9757,8 @@ _LT_EOF
        allow_undefined_flag=unsupported
        always_export_symbols=no
        enable_shared_with_static_runtimes=yes
@@ -21583,7 +22331,7 @@
  
        if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
          archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -9294,12 +9814,12 @@ _LT_EOF
+@@ -9337,12 +9857,12 @@ _LT_EOF
  	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
  	  hardcode_libdir_flag_spec=
  	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
@@ -21598,7 +22346,7 @@
  	  fi
  	  ;;
  	esac
-@@ -9313,8 +9833,8 @@ _LT_EOF
+@@ -9356,8 +9876,8 @@ _LT_EOF
  	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
  	wlarc=
        else
@@ -21609,7 +22357,7 @@
        fi
        ;;
  
-@@ -9332,8 +9852,8 @@ _LT_EOF
+@@ -9375,8 +9895,8 @@ _LT_EOF
  
  _LT_EOF
        elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -21620,7 +22368,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -9379,8 +9899,8 @@ _LT_EOF
+@@ -9422,8 +9942,8 @@ _LT_EOF
  
      *)
        if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
@@ -21631,7 +22379,7 @@
        else
  	ld_shlibs=no
        fi
-@@ -9510,7 +10030,13 @@ _LT_EOF
+@@ -9553,7 +10073,13 @@ _LT_EOF
  	allow_undefined_flag='-berok'
          # Determine the default libpath from the value encoded in an
          # empty executable.
@@ -21646,7 +22394,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -9523,22 +10049,29 @@ main ()
+@@ -9566,22 +10092,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -21689,7 +22437,7 @@
  
          hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
          archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -9550,7 +10083,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9593,7 +10126,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	else
  	 # Determine the default libpath from the value encoded in an
  	 # empty executable.
@@ -21704,7 +22452,7 @@
  /* end confdefs.h.  */
  
  int
-@@ -9563,22 +10102,29 @@ main ()
+@@ -9606,22 +10145,29 @@ main ()
  _ACEOF
  if ac_fn_c_try_link "$LINENO"; then :
  
@@ -21747,7 +22495,7 @@
  
  	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
  	  # Warning - without using the other run time loading flags,
-@@ -9623,20 +10169,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9666,20 +10212,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        # Microsoft Visual C++.
        # hardcode_libdir_flag_spec is actually meaningless, as there is
        # no search path for DLLs.
@@ -21825,7 +22573,7 @@
        ;;
  
      darwin* | rhapsody*)
-@@ -9697,7 +10286,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9740,7 +10329,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
      freebsd* | dragonfly*)
@@ -21834,7 +22582,7 @@
        hardcode_libdir_flag_spec='-R$libdir'
        hardcode_direct=yes
        hardcode_shlibpath_var=no
-@@ -9705,7 +10294,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9748,7 +10337,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux9*)
        if test "$GCC" = yes; then
@@ -21843,7 +22591,7 @@
        else
  	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
        fi
-@@ -9721,7 +10310,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9764,7 +10353,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  
      hpux10*)
        if test "$GCC" = yes && test "$with_gnu_ld" = no; then
@@ -21852,7 +22600,7 @@
        else
  	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
        fi
-@@ -9745,10 +10334,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+@@ -9788,10 +10377,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
  	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
  	  ;;
  	ia64*)
@@ -21865,7 +22613,7 @@
  	  ;;
  	esac
        else
-@@ -9827,23 +10416,36 @@ fi
+@@ -9870,23 +10459,36 @@ fi
  
      irix5* | irix6* | nonstopux*)
        if test "$GCC" = yes; then
@@ -21910,7 +22658,7 @@
        else
  	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
  	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -9928,7 +10530,7 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9971,7 +10573,7 @@ rm -f core conftest.err conftest.$ac_objext \
      osf4* | osf5*)	# as osf3* with the addition of -msym flag
        if test "$GCC" = yes; then
  	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
@@ -21919,7 +22667,7 @@
  	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
        else
  	allow_undefined_flag=' -expect_unresolved \*'
-@@ -9947,9 +10549,9 @@ rm -f core conftest.err conftest.$ac_objext \
+@@ -9990,9 +10592,9 @@ rm -f core conftest.err conftest.$ac_objext \
        no_undefined_flag=' -z defs'
        if test "$GCC" = yes; then
  	wlarc='${wl}'
@@ -21931,7 +22679,7 @@
        else
  	case `$CC -V 2>&1` in
  	*"Compilers 5.0"*)
-@@ -10525,8 +11127,9 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10568,8 +11170,9 @@ cygwin* | mingw* | pw32* | cegcc*)
    need_version=no
    need_lib_prefix=no
  
@@ -21943,7 +22691,7 @@
      library_names_spec='$libname.dll.a'
      # DLL is installed to $(libdir)/../bin by postinstall_cmds
      postinstall_cmds='base_file=`basename \${file}`~
-@@ -10559,13 +11162,71 @@ cygwin* | mingw* | pw32* | cegcc*)
+@@ -10602,13 +11205,71 @@ cygwin* | mingw* | pw32* | cegcc*)
        library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
        ;;
      esac
@@ -22016,16 +22764,16 @@
    # FIXME: first we should search . and the directory the executable is in
    shlibpath_var=PATH
    ;;
-@@ -11443,7 +12104,7 @@ else
+@@ -11486,7 +12147,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
--#line 11446 "configure"
+-#line 11489 "configure"
 +#line $LINENO "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -11487,10 +12148,10 @@ else
+@@ -11530,10 +12191,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -22038,16 +22786,16 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -11549,7 +12210,7 @@ else
+@@ -11592,7 +12253,7 @@ else
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
--#line 11552 "configure"
+-#line 11595 "configure"
 +#line $LINENO "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
-@@ -11593,10 +12254,10 @@ else
+@@ -11636,10 +12297,10 @@ else
  /* When -fvisbility=hidden is used, assume the code has been annotated
     correspondingly for the symbols needed.  */
  #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
@@ -22060,7 +22808,7 @@
  int main ()
  {
    void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -13361,7 +14022,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+@@ -13459,7 +14120,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
  #
  # INIT-COMMANDS
  #
@@ -22069,7 +22817,7 @@
  
  
  # The HP-UX ksh and POSIX shell print the target directory to stdout
-@@ -13399,13 +14060,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+@@ -13497,13 +14158,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
  lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
  lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
  lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
@@ -22090,7 +22838,7 @@
  STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
  RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
  old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -13420,14 +14088,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
+@@ -13518,14 +14186,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
  lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
@@ -22109,7 +22857,7 @@
  DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
  NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
  LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -13460,12 +14131,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
+@@ -13558,12 +14229,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
  hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
  inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
  link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
@@ -22123,7 +22871,7 @@
  file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
  variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
  need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -13520,8 +14191,13 @@ reload_flag \
+@@ -13618,8 +14289,13 @@ reload_flag \
  OBJDUMP \
  deplibs_check_method \
  file_magic_cmd \
@@ -22137,7 +22885,7 @@
  STRIP \
  RANLIB \
  CC \
-@@ -13531,12 +14207,14 @@ lt_cv_sys_global_symbol_pipe \
+@@ -13629,12 +14305,14 @@ lt_cv_sys_global_symbol_pipe \
  lt_cv_sys_global_symbol_to_cdecl \
  lt_cv_sys_global_symbol_to_c_name_address \
  lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
@@ -22153,7 +22901,7 @@
  DSYMUTIL \
  NMEDIT \
  LIPO \
-@@ -13552,7 +14230,6 @@ no_undefined_flag \
+@@ -13650,7 +14328,6 @@ no_undefined_flag \
  hardcode_libdir_flag_spec \
  hardcode_libdir_flag_spec_ld \
  hardcode_libdir_separator \
@@ -22161,7 +22909,7 @@
  exclude_expsyms \
  include_expsyms \
  file_list_spec \
-@@ -13588,6 +14265,7 @@ module_cmds \
+@@ -13686,6 +14363,7 @@ module_cmds \
  module_expsym_cmds \
  export_symbols_cmds \
  prelink_cmds \
@@ -22169,7 +22917,7 @@
  postinstall_cmds \
  postuninstall_cmds \
  finish_cmds \
-@@ -14234,29 +14912,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
+@@ -14332,29 +15010,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
    # Older Autoconf quotes --file arguments for eval, but not when files
    # are listed without --file.  Let's play safe and only enable the eval
    # if we detect the quoting.
@@ -22224,7 +22972,7 @@
      sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
  	    s//\1/
  	    q
-@@ -14274,53 +14958,50 @@ $as_echo X"$mf" |
+@@ -14372,53 +15056,50 @@ $as_echo X"$mf" |
  	    q
  	  }
  	  s/.*/./; q'`
@@ -22311,7 +23059,7 @@
  }
   ;;
      "libtool":C)
-@@ -14344,7 +15025,8 @@ $as_echo X"$file" |
+@@ -14442,7 +15123,8 @@ $as_echo X"$file" |
  # NOTE: Changes made to this file will be lost: look at ltmain.sh.
  #
  #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -22321,7 +23069,7 @@
  #   Written by Gordon Matzigkeit, 1996
  #
  #   This file is part of GNU Libtool.
-@@ -14447,19 +15129,42 @@ SP2NL=$lt_lt_SP2NL
+@@ -14545,19 +15227,42 @@ SP2NL=$lt_lt_SP2NL
  # turn newlines into spaces.
  NL2SP=$lt_lt_NL2SP
  
@@ -22365,7 +23113,7 @@
  # A symbol stripping program.
  STRIP=$lt_STRIP
  
-@@ -14489,6 +15194,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+@@ -14587,6 +15292,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
  # Transform the output of nm in a C name address pair when lib prefix is needed.
  global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
  
@@ -22378,7 +23126,7 @@
  # The name of the directory that contains temporary libtool files.
  objdir=$objdir
  
-@@ -14498,6 +15209,9 @@ MAGIC_CMD=$MAGIC_CMD
+@@ -14596,6 +15307,9 @@ MAGIC_CMD=$MAGIC_CMD
  # Must we lock files when doing compilation?
  need_locks=$lt_need_locks
  
@@ -22388,7 +23136,7 @@
  # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
  DSYMUTIL=$lt_DSYMUTIL
  
-@@ -14612,12 +15326,12 @@ with_gcc=$GCC
+@@ -14710,12 +15424,12 @@ with_gcc=$GCC
  # Compiler flag to turn off builtin functions.
  no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
  
@@ -22404,7 +23152,7 @@
  # Compiler flag to prevent dynamic linking.
  link_static_flag=$lt_lt_prog_compiler_static
  
-@@ -14704,9 +15418,6 @@ inherit_rpath=$inherit_rpath
+@@ -14802,9 +15516,6 @@ inherit_rpath=$inherit_rpath
  # Whether libtool must link a program against all its dependency libraries.
  link_all_deplibs=$link_all_deplibs
  
@@ -22414,7 +23162,7 @@
  # Set to "yes" if exported symbols are required.
  always_export_symbols=$always_export_symbols
  
-@@ -14722,6 +15433,9 @@ include_expsyms=$lt_include_expsyms
+@@ -14820,6 +15531,9 @@ include_expsyms=$lt_include_expsyms
  # Commands necessary for linking programs (against libraries) with templates.
  prelink_cmds=$lt_prelink_cmds
  
@@ -22424,7 +23172,7 @@
  # Specify filename containing input files.
  file_list_spec=$lt_file_list_spec
  
-@@ -14754,210 +15468,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
+@@ -14852,210 +15566,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
    # if finds mixed CR/LF and LF-only lines.  Since sed operates in
    # text mode, it properly converts lines to CR/LF.  This bash problem
    # is reportedly fixed, but why not run on old versions too?
@@ -29878,7 +30626,7 @@
  # These exist entirely to fool aclocal when bootstrapping libtool.
  #
 diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
-index c1eca5a42ed..7cab295b26d 100644
+index 2db307e8d7c..aa6e3e1b429 100644
 --- a/opcodes/Makefile.in
 +++ b/opcodes/Makefile.in
 @@ -292,6 +292,7 @@ CYGPATH_W = @CYGPATH_W@
@@ -29906,7 +30654,7 @@
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
  am__include = @am__include@
 diff --git a/opcodes/configure b/opcodes/configure
-index d2364991ee8..f9a46eec7a3 100755
+index fc4109a1a47..6c42352868c 100755
 --- a/opcodes/configure
 +++ b/opcodes/configure
 @@ -682,6 +682,9 @@ OTOOL
@@ -31817,1945 +32565,6 @@
      (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
    chmod +x "$ofile"
  
-diff --git a/sim/Makefile.in b/sim/Makefile.in
-index 65085cada9c..c216f21920f 100644
---- a/sim/Makefile.in
-+++ b/sim/Makefile.in
-@@ -1029,6 +1029,7 @@ CYGPATH_W = @CYGPATH_W@
- C_DIALECT = @C_DIALECT@
- DEFS = @DEFS@
- DEPDIR = @DEPDIR@
-+DLLTOOL = @DLLTOOL@
- DSYMUTIL = @DSYMUTIL@
- DTC = @DTC@
- DUMPBIN = @DUMPBIN@
-@@ -1089,6 +1090,7 @@ LN_S = @LN_S@
- LTLIBOBJS = @LTLIBOBJS@
- MAINT = @MAINT@
- MAKEINFO = @MAKEINFO@
-+MANIFEST_TOOL = @MANIFEST_TOOL@
- MKDIR_P = @MKDIR_P@
- NM = @NM@
- NMEDIT = @NMEDIT@
-@@ -1150,6 +1152,7 @@ abs_builddir = @abs_builddir@
- abs_srcdir = @abs_srcdir@
- abs_top_builddir = @abs_top_builddir@
- abs_top_srcdir = @abs_top_srcdir@
-+ac_ct_AR = @ac_ct_AR@
- ac_ct_CC = @ac_ct_CC@
- ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
- am__include = @am__include@
-diff --git a/sim/configure b/sim/configure
-index c31ff71c805..1936741abe2 100755
---- a/sim/configure
-+++ b/sim/configure
-@@ -887,8 +887,11 @@ OTOOL
- LIPO
- NMEDIT
- DSYMUTIL
-+MANIFEST_TOOL
- AWK
- STRIP
-+ac_ct_AR
-+DLLTOOL
- OBJDUMP
- LN_S
- NM
-@@ -991,6 +994,7 @@ enable_static
- with_pic
- enable_fast_install
- with_gnu_ld
-+with_libtool_sysroot
- enable_libtool_lock
- enable_maintainer_mode
- enable_dependency_tracking
-@@ -1809,6 +1813,8 @@ Optional Packages:
-   --with-pic              try to use only PIC/non-PIC objects [default=use
-                           both]
-   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-+  --with-libtool-sysroot=DIR Search for dependent libraries within DIR
-+                        (or the compiler's sysroot if not specified).
- 
- Some influential environment variables:
-   CC          C compiler command
-@@ -5642,8 +5648,8 @@ esac
- 
- 
- 
--macro_version='2.2.7a'
--macro_revision='1.3134'
-+macro_version='2.4'
-+macro_revision='1.3293'
- 
- 
- 
-@@ -5683,7 +5689,7 @@ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
- $as_echo_n "checking how to print strings... " >&6; }
- # Test print first, because it will be a builtin if present.
--if test "X`print -r -- -n 2>/dev/null`" = X-n && \
-+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-    test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-   ECHO='print -r --'
- elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-@@ -6376,8 +6382,8 @@ $as_echo_n "checking whether the shell understands some XSI constructs... " >&6;
- # Try some XSI features
- xsi_shell=no
- ( _lt_dummy="a/b/c"
--  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
--      = c,a/b,, \
-+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-+      = c,a/b,b/c, \
-     && eval 'test $(( 1 + 1 )) -eq 2 \
-     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-   && xsi_shell=yes
-@@ -6426,6 +6432,80 @@ esac
- 
- 
- 
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-+if ${lt_cv_to_host_file_cmd+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  case $host in
-+  *-*-mingw* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-+        ;;
-+      *-*-cygwin* )
-+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-+        ;;
-+      * ) # otherwise, assume *nix
-+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-+        ;;
-+    esac
-+    ;;
-+  *-*-cygwin* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-+        ;;
-+      *-*-cygwin* )
-+        lt_cv_to_host_file_cmd=func_convert_file_noop
-+        ;;
-+      * ) # otherwise, assume *nix
-+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-+        ;;
-+    esac
-+    ;;
-+  * ) # unhandled hosts (and "normal" native builds)
-+    lt_cv_to_host_file_cmd=func_convert_file_noop
-+    ;;
-+esac
-+
-+fi
-+
-+to_host_file_cmd=$lt_cv_to_host_file_cmd
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-+if ${lt_cv_to_tool_file_cmd+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  #assume ordinary cross tools, or native build.
-+lt_cv_to_tool_file_cmd=func_convert_file_noop
-+case $host in
-+  *-*-mingw* )
-+    case $build in
-+      *-*-mingw* ) # actually msys
-+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-+        ;;
-+    esac
-+    ;;
-+esac
-+
-+fi
-+
-+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-+
-+
-+
-+
-+
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
- $as_echo_n "checking for $LD option to reload object files... " >&6; }
- if ${lt_cv_ld_reload_flag+:} false; then :
-@@ -6442,6 +6522,11 @@ case $reload_flag in
- esac
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- case $host_os in
-+  cygwin* | mingw* | pw32* | cegcc*)
-+    if test "$GCC" != yes; then
-+      reload_cmds=false
-+    fi
-+    ;;
-   darwin*)
-     if test "$GCC" = yes; then
-       reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-@@ -6610,7 +6695,8 @@ mingw* | pw32*)
-     lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-     lt_cv_file_magic_cmd='func_win32_libid'
-   else
--    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-+    # Keep this pattern in sync with the one in func_win32_libid.
-+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-     lt_cv_file_magic_cmd='$OBJDUMP -f'
-   fi
-   ;;
-@@ -6764,6 +6850,21 @@ esac
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
- $as_echo "$lt_cv_deplibs_check_method" >&6; }
-+
-+file_magic_glob=
-+want_nocaseglob=no
-+if test "$build" = "$host"; then
-+  case $host_os in
-+  mingw* | pw32*)
-+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-+      want_nocaseglob=yes
-+    else
-+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
-+    fi
-+    ;;
-+  esac
-+fi
-+
- file_magic_cmd=$lt_cv_file_magic_cmd
- deplibs_check_method=$lt_cv_deplibs_check_method
- test -z "$deplibs_check_method" && deplibs_check_method=unknown
-@@ -6779,6 +6880,157 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
- 
- 
- 
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_DLLTOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$DLLTOOL"; then
-+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+DLLTOOL=$ac_cv_prog_DLLTOOL
-+if test -n "$DLLTOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-+$as_echo "$DLLTOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_DLLTOOL"; then
-+  ac_ct_DLLTOOL=$DLLTOOL
-+  # Extract the first word of "dlltool", so it can be a program name with args.
-+set dummy dlltool; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_DLLTOOL"; then
-+  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-+if test -n "$ac_ct_DLLTOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-+$as_echo "$ac_ct_DLLTOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_DLLTOOL" = x; then
-+    DLLTOOL="false"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    DLLTOOL=$ac_ct_DLLTOOL
-+  fi
-+else
-+  DLLTOOL="$ac_cv_prog_DLLTOOL"
-+fi
-+
-+test -z "$DLLTOOL" && DLLTOOL=dlltool
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_sharedlib_from_linklib_cmd='unknown'
-+
-+case $host_os in
-+cygwin* | mingw* | pw32* | cegcc*)
-+  # two different shell functions defined in ltmain.sh
-+  # decide which to use based on capabilities of $DLLTOOL
-+  case `$DLLTOOL --help 2>&1` in
-+  *--identify-strict*)
-+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-+    ;;
-+  *)
-+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-+    ;;
-+  esac
-+  ;;
-+*)
-+  # fallback: assume linklib IS sharedlib
-+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-+  ;;
-+esac
-+
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-+
-+
-+
-+
-+
-+
-+
- plugin_option=
- plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
- for plugin in $plugin_names; do
-@@ -6793,8 +7045,10 @@ for plugin in $plugin_names; do
- done
- 
- if test -n "$ac_tool_prefix"; then
--  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
--set dummy ${ac_tool_prefix}ar; ac_word=$2
-+  for ac_prog in ar
-+  do
-+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
- if ${ac_cv_prog_AR+:} false; then :
-@@ -6810,7 +7064,7 @@ do
-   test -z "$as_dir" && as_dir=.
-     for ac_exec_ext in '' $ac_executable_extensions; do
-   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_AR="${ac_tool_prefix}ar"
-+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
-     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
-@@ -6830,11 +7084,15 @@ $as_echo "no" >&6; }
- fi
- 
- 
-+    test -n "$AR" && break
-+  done
- fi
--if test -z "$ac_cv_prog_AR"; then
-+if test -z "$AR"; then
-   ac_ct_AR=$AR
--  # Extract the first word of "ar", so it can be a program name with args.
--set dummy ar; ac_word=$2
-+  for ac_prog in ar
-+do
-+  # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
- $as_echo_n "checking for $ac_word... " >&6; }
- if ${ac_cv_prog_ac_ct_AR+:} false; then :
-@@ -6850,7 +7108,7 @@ do
-   test -z "$as_dir" && as_dir=.
-     for ac_exec_ext in '' $ac_executable_extensions; do
-   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
--    ac_cv_prog_ac_ct_AR="ar"
-+    ac_cv_prog_ac_ct_AR="$ac_prog"
-     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
-@@ -6869,6 +7127,10 @@ else
- $as_echo "no" >&6; }
- fi
- 
-+
-+  test -n "$ac_ct_AR" && break
-+done
-+
-   if test "x$ac_ct_AR" = x; then
-     AR="false"
-   else
-@@ -6880,29 +7142,81 @@ ac_tool_warned=yes ;;
- esac
-     AR=$ac_ct_AR
-   fi
--else
--  AR="$ac_cv_prog_AR"
- fi
- 
--test -z "$AR" && AR=ar
--if test -n "$plugin_option"; then
--  if $AR --help 2>&1 | grep -q "\--plugin"; then
--    touch conftest.c
--    $AR $plugin_option rc conftest.a conftest.c
--    if test "$?" != 0; then
--      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-+  touch conftest.c
-+  $AR $plugin_option rc conftest.a conftest.c
-+  if test "$?" != 0; then
-+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
- $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
--    else
--      AR="$AR $plugin_option"
--    fi
--    rm -f conftest.*
-+  else
-+    AR="$AR $plugin_option"
-   fi
--fi
--test -z "$AR_FLAGS" && AR_FLAGS=cru
-+  rm -f conftest.*
-+: ${AR=ar}
-+: ${AR_FLAGS=cru}
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-+$as_echo_n "checking for archiver @FILE support... " >&6; }
-+if ${lt_cv_ar_at_file+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_ar_at_file=no
-+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+/* end confdefs.h.  */
-+
-+int
-+main ()
-+{
- 
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+if ac_fn_c_try_compile "$LINENO"; then :
-+  echo conftest.$ac_objext > conftest.lst
-+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
-+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-+  (eval $lt_ar_try) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }
-+      if test "$ac_status" -eq 0; then
-+	# Ensure the archiver fails upon bogus file names.
-+	rm -f conftest.$ac_objext libconftest.a
-+	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-+  (eval $lt_ar_try) 2>&5
-+  ac_status=$?
-+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-+  test $ac_status = 0; }
-+	if test "$ac_status" -ne 0; then
-+          lt_cv_ar_at_file=@
-+        fi
-+      fi
-+      rm -f conftest.* libconftest.a
- 
-+fi
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-+$as_echo "$lt_cv_ar_at_file" >&6; }
- 
-+if test "x$lt_cv_ar_at_file" = xno; then
-+  archiver_list_spec=
-+else
-+  archiver_list_spec=$lt_cv_ar_at_file
-+fi
- 
- 
- 
-@@ -7291,8 +7605,8 @@ esac
- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
- 
- # Transform an extracted symbol line into symbol name and symbol address
--lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
--lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
- 
- # Handle CRLF in mingw tool chain
- opt_cr=
-@@ -7328,6 +7642,7 @@ for ac_symprfx in "" "_"; do
-   else
-     lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-   fi
-+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
- 
-   # Check to see that the pipe works correctly.
-   pipe_works=no
-@@ -7369,6 +7684,18 @@ _LT_EOF
-       if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- 	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- 	  cat <<_LT_EOF > conftest.$ac_ext
-+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-+/* DATA imports from DLLs on WIN32 con't be const, because runtime
-+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-+# define LT_DLSYM_CONST
-+#elif defined(__osf__)
-+/* This system does not cope well with relocations in const data.  */
-+# define LT_DLSYM_CONST
-+#else
-+# define LT_DLSYM_CONST const
-+#endif
-+
- #ifdef __cplusplus
- extern "C" {
- #endif
-@@ -7380,7 +7707,7 @@ _LT_EOF
- 	  cat <<_LT_EOF >> conftest.$ac_ext
- 
- /* The mapping between symbol names and symbols.  */
--const struct {
-+LT_DLSYM_CONST struct {
-   const char *name;
-   void       *address;
- }
-@@ -7406,8 +7733,8 @@ static const void *lt_preloaded_setup() {
- _LT_EOF
- 	  # Now try linking the two files.
- 	  mv conftest.$ac_objext conftstm.$ac_objext
--	  lt_save_LIBS="$LIBS"
--	  lt_save_CFLAGS="$CFLAGS"
-+	  lt_globsym_save_LIBS=$LIBS
-+	  lt_globsym_save_CFLAGS=$CFLAGS
- 	  LIBS="conftstm.$ac_objext"
- 	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- 	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-@@ -7417,8 +7744,8 @@ _LT_EOF
-   test $ac_status = 0; } && test -s conftest${ac_exeext}; then
- 	    pipe_works=yes
- 	  fi
--	  LIBS="$lt_save_LIBS"
--	  CFLAGS="$lt_save_CFLAGS"
-+	  LIBS=$lt_globsym_save_LIBS
-+	  CFLAGS=$lt_globsym_save_CFLAGS
- 	else
- 	  echo "cannot find nm_test_func in $nlist" >&5
- 	fi
-@@ -7455,6 +7782,14 @@ else
- $as_echo "ok" >&6; }
- fi
- 
-+# Response file support.
-+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-+  nm_file_list_spec='@'
-+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
-+  nm_file_list_spec='@'
-+fi
-+
-+
- 
- 
- 
-@@ -7473,6 +7808,47 @@ fi
- 
- 
- 
-+
-+
-+
-+
-+
-+
-+
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-+$as_echo_n "checking for sysroot... " >&6; }
-+
-+# Check whether --with-libtool-sysroot was given.
-+if test "${with_libtool_sysroot+set}" = set; then :
-+  withval=$with_libtool_sysroot;
-+else
-+  with_libtool_sysroot=no
-+fi
-+
-+
-+lt_sysroot=
-+case ${with_libtool_sysroot} in #(
-+ yes)
-+   if test "$GCC" = yes; then
-+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-+   fi
-+   ;; #(
-+ /*)
-+   lt_sysroot=`echo "$with_libtool_sysroot" | sed -e "$sed_quote_subst"`
-+   ;; #(
-+ no|'')
-+   ;; #(
-+ *)
-+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_libtool_sysroot}" >&5
-+$as_echo "${with_libtool_sysroot}" >&6; }
-+   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
-+   ;;
-+esac
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-+$as_echo "${lt_sysroot:-no}" >&6; }
-+
-+
- 
- 
- 
-@@ -7682,6 +8058,123 @@ esac
- 
- need_locks="$enable_libtool_lock"
- 
-+if test -n "$ac_tool_prefix"; then
-+  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}mt; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$MANIFEST_TOOL"; then
-+  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-+if test -n "$MANIFEST_TOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-+$as_echo "$MANIFEST_TOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+fi
-+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
-+  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
-+  # Extract the first word of "mt", so it can be a program name with args.
-+set dummy mt; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$ac_ct_MANIFEST_TOOL"; then
-+  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-+if test -n "$ac_ct_MANIFEST_TOOL"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+  if test "x$ac_ct_MANIFEST_TOOL" = x; then
-+    MANIFEST_TOOL=":"
-+  else
-+    case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
-+  fi
-+else
-+  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-+fi
-+
-+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-+if ${lt_cv_path_mainfest_tool+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_path_mainfest_tool=no
-+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
-+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-+  cat conftest.err >&5
-+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-+    lt_cv_path_mainfest_tool=yes
-+  fi
-+  rm -f conftest*
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-+if test "x$lt_cv_path_mainfest_tool" != xyes; then
-+  MANIFEST_TOOL=:
-+fi
-+
-+
-+
-+
-+
- 
-   case $host_os in
-     rhapsody* | darwin*)
-@@ -8245,6 +8738,8 @@ _LT_EOF
-       $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
-       echo "$AR cru libconftest.a conftest.o" >&5
-       $AR cru libconftest.a conftest.o 2>&5
-+      echo "$RANLIB libconftest.a" >&5
-+      $RANLIB libconftest.a 2>&5
-       cat > conftest.c << _LT_EOF
- int main() { return 0;}
- _LT_EOF
-@@ -9499,8 +9994,6 @@ fi
- lt_prog_compiler_pic=
- lt_prog_compiler_static=
- 
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
--$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
- 
-   if test "$GCC" = yes; then
-     lt_prog_compiler_wl='-Wl,'
-@@ -9666,6 +10159,12 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
- 	lt_prog_compiler_pic='--shared'
- 	lt_prog_compiler_static='--static'
- 	;;
-+      nagfor*)
-+	# NAG Fortran compiler
-+	lt_prog_compiler_wl='-Wl,-Wl,,'
-+	lt_prog_compiler_pic='-PIC'
-+	lt_prog_compiler_static='-Bstatic'
-+	;;
-       pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-         # Portland Group compilers (*not* the Pentium gcc compiler,
- 	# which looks to be a dead project)
-@@ -9728,7 +10227,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-       lt_prog_compiler_pic='-KPIC'
-       lt_prog_compiler_static='-Bstatic'
-       case $cc_basename in
--      f77* | f90* | f95*)
-+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- 	lt_prog_compiler_wl='-Qoption ld ';;
-       *)
- 	lt_prog_compiler_wl='-Wl,';;
-@@ -9785,13 +10284,17 @@ case $host_os in
-     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-     ;;
- esac
--{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
--$as_echo "$lt_prog_compiler_pic" >&6; }
--
--
--
--
- 
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-+if ${lt_cv_prog_compiler_pic+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
- 
- #
- # Check to make sure the PIC flag actually works.
-@@ -9852,6 +10355,11 @@ fi
- 
- 
- 
-+
-+
-+
-+
-+
- #
- # Check to make sure the static flag actually works.
- #
-@@ -10202,7 +10710,8 @@ _LT_EOF
-       allow_undefined_flag=unsupported
-       always_export_symbols=no
-       enable_shared_with_static_runtimes=yes
--      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-+      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
- 
-       if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-         archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-@@ -10301,12 +10810,12 @@ _LT_EOF
- 	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- 	  hardcode_libdir_flag_spec=
- 	  hardcode_libdir_flag_spec_ld='-rpath $libdir'
--	  archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
-+	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- 	  if test "x$supports_anon_versioning" = xyes; then
- 	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- 	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- 	      echo "local: *; };" >> $output_objdir/$libname.ver~
--	      $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-+	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- 	  fi
- 	  ;;
- 	esac
-@@ -10320,8 +10829,8 @@ _LT_EOF
- 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- 	wlarc=
-       else
--	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
--	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-       fi
-       ;;
- 
-@@ -10339,8 +10848,8 @@ _LT_EOF
- 
- _LT_EOF
-       elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
--	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
--	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-       else
- 	ld_shlibs=no
-       fi
-@@ -10386,8 +10895,8 @@ _LT_EOF
- 
-     *)
-       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
--	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
--	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-       else
- 	ld_shlibs=no
-       fi
-@@ -10517,7 +11026,13 @@ _LT_EOF
- 	allow_undefined_flag='-berok'
-         # Determine the default libpath from the value encoded in an
-         # empty executable.
--        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+        if test "${lt_cv_aix_libpath+set}" = set; then
-+  aix_libpath=$lt_cv_aix_libpath
-+else
-+  if ${lt_cv_aix_libpath_+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- 
- int
-@@ -10530,22 +11045,29 @@ main ()
- _ACEOF
- if ac_fn_c_try_link "$LINENO"; then :
- 
--lt_aix_libpath_sed='
--    /Import File Strings/,/^$/ {
--	/^0/ {
--	    s/^0  *\(.*\)$/\1/
--	    p
--	}
--    }'
--aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
--# Check for a 64-bit object if we didn't find anything.
--if test -z "$aix_libpath"; then
--  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
--fi
-+  lt_aix_libpath_sed='
-+      /Import File Strings/,/^$/ {
-+	  /^0/ {
-+	      s/^0  *\([^ ]*\) *$/\1/
-+	      p
-+	  }
-+      }'
-+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  # Check for a 64-bit object if we didn't find anything.
-+  if test -z "$lt_cv_aix_libpath_"; then
-+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  fi
- fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
--if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-+  if test -z "$lt_cv_aix_libpath_"; then
-+    lt_cv_aix_libpath_="/usr/lib:/lib"
-+  fi
-+
-+fi
-+
-+  aix_libpath=$lt_cv_aix_libpath_
-+fi
- 
-         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-         archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-@@ -10557,7 +11079,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
- 	else
- 	 # Determine the default libpath from the value encoded in an
- 	 # empty executable.
--	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+	 if test "${lt_cv_aix_libpath+set}" = set; then
-+  aix_libpath=$lt_cv_aix_libpath
-+else
-+  if ${lt_cv_aix_libpath_+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
- 
- int
-@@ -10570,22 +11098,29 @@ main ()
- _ACEOF
- if ac_fn_c_try_link "$LINENO"; then :
- 
--lt_aix_libpath_sed='
--    /Import File Strings/,/^$/ {
--	/^0/ {
--	    s/^0  *\(.*\)$/\1/
--	    p
--	}
--    }'
--aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
--# Check for a 64-bit object if we didn't find anything.
--if test -z "$aix_libpath"; then
--  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
--fi
-+  lt_aix_libpath_sed='
-+      /Import File Strings/,/^$/ {
-+	  /^0/ {
-+	      s/^0  *\([^ ]*\) *$/\1/
-+	      p
-+	  }
-+      }'
-+  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  # Check for a 64-bit object if we didn't find anything.
-+  if test -z "$lt_cv_aix_libpath_"; then
-+    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-+  fi
- fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
--if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-+  if test -z "$lt_cv_aix_libpath_"; then
-+    lt_cv_aix_libpath_="/usr/lib:/lib"
-+  fi
-+
-+fi
-+
-+  aix_libpath=$lt_cv_aix_libpath_
-+fi
- 
- 	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- 	  # Warning - without using the other run time loading flags,
-@@ -10630,20 +11165,63 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-       # Microsoft Visual C++.
-       # hardcode_libdir_flag_spec is actually meaningless, as there is
-       # no search path for DLLs.
--      hardcode_libdir_flag_spec=' '
--      allow_undefined_flag=unsupported
--      # Tell ltmain to make .lib files, not .a files.
--      libext=lib
--      # Tell ltmain to make .dll files, not .so files.
--      shrext_cmds=".dll"
--      # FIXME: Setting linknames here is a bad hack.
--      archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
--      # The linker will automatically build a .lib file if we build a DLL.
--      old_archive_from_new_cmds='true'
--      # FIXME: Should let the user specify the lib program.
--      old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
--      fix_srcfile_path='`cygpath -w "$srcfile"`'
--      enable_shared_with_static_runtimes=yes
-+      case $cc_basename in
-+      cl*)
-+	# Native MSVC
-+	hardcode_libdir_flag_spec=' '
-+	allow_undefined_flag=unsupported
-+	always_export_symbols=yes
-+	file_list_spec='@'
-+	# Tell ltmain to make .lib files, not .a files.
-+	libext=lib
-+	# Tell ltmain to make .dll files, not .so files.
-+	shrext_cmds=".dll"
-+	# FIXME: Setting linknames here is a bad hack.
-+	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-+	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-+	  else
-+	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-+	  fi~
-+	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-+	  linknames='
-+	# The linker will not automatically build a static lib if we build a DLL.
-+	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
-+	enable_shared_with_static_runtimes=yes
-+	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-+	# Don't use ranlib
-+	old_postinstall_cmds='chmod 644 $oldlib'
-+	postlink_cmds='lt_outputfile="@OUTPUT@"~
-+	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-+	  case $lt_outputfile in
-+	    *.exe|*.EXE) ;;
-+	    *)
-+	      lt_outputfile="$lt_outputfile.exe"
-+	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-+	      ;;
-+	  esac~
-+	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-+	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-+	    $RM "$lt_outputfile.manifest";
-+	  fi'
-+	;;
-+      *)
-+	# Assume MSVC wrapper
-+	hardcode_libdir_flag_spec=' '
-+	allow_undefined_flag=unsupported
-+	# Tell ltmain to make .lib files, not .a files.
-+	libext=lib
-+	# Tell ltmain to make .dll files, not .so files.
-+	shrext_cmds=".dll"
-+	# FIXME: Setting linknames here is a bad hack.
-+	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-+	# The linker will automatically build a .lib file if we build a DLL.
-+	old_archive_from_new_cmds='true'
-+	# FIXME: Should let the user specify the lib program.
-+	old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-+	enable_shared_with_static_runtimes=yes
-+	;;
-+      esac
-       ;;
- 
-     darwin* | rhapsody*)
-@@ -10704,7 +11282,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
- 
-     # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-     freebsd* | dragonfly*)
--      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-+      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-       hardcode_libdir_flag_spec='-R$libdir'
-       hardcode_direct=yes
-       hardcode_shlibpath_var=no
-@@ -10712,7 +11290,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
- 
-     hpux9*)
-       if test "$GCC" = yes; then
--	archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-+	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-       else
- 	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-       fi
-@@ -10728,7 +11306,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
- 
-     hpux10*)
-       if test "$GCC" = yes && test "$with_gnu_ld" = no; then
--	archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-       else
- 	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-       fi
-@@ -10752,10 +11330,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
- 	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- 	  ;;
- 	ia64*)
--	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-+	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- 	  ;;
- 	*)
--	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-+	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- 	  ;;
- 	esac
-       else
-@@ -10834,23 +11412,36 @@ fi
- 
-     irix5* | irix6* | nonstopux*)
-       if test "$GCC" = yes; then
--	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- 	# Try to use the -exported_symbol ld option, if it does not
- 	# work, assume that -exports_file does not work either and
- 	# implicitly export all symbols.
--        save_LDFLAGS="$LDFLAGS"
--        LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
--        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+	# This should be the same for all languages, so no per-tag cache variable.
-+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-+if ${lt_cv_irix_exported_symbol+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  save_LDFLAGS="$LDFLAGS"
-+	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-+	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h.  */
--int foo(void) {}
-+int foo (void) { return 0; }
- _ACEOF
- if ac_fn_c_try_link "$LINENO"; then :
--  archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
--
-+  lt_cv_irix_exported_symbol=yes
-+else
-+  lt_cv_irix_exported_symbol=no
- fi
- rm -f core conftest.err conftest.$ac_objext \
-     conftest$ac_exeext conftest.$ac_ext
--        LDFLAGS="$save_LDFLAGS"
-+           LDFLAGS="$save_LDFLAGS"
-+fi
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
-+	if test "$lt_cv_irix_exported_symbol" = yes; then
-+          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-+	fi
-       else
- 	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- 	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-@@ -10935,7 +11526,7 @@ rm -f core conftest.err conftest.$ac_objext \
-     osf4* | osf5*)	# as osf3* with the addition of -msym flag
-       if test "$GCC" = yes; then
- 	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
--	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-+	archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- 	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-       else
- 	allow_undefined_flag=' -expect_unresolved \*'
-@@ -10954,9 +11545,9 @@ rm -f core conftest.err conftest.$ac_objext \
-       no_undefined_flag=' -z defs'
-       if test "$GCC" = yes; then
- 	wlarc='${wl}'
--	archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-+	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- 	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
--	  $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-+	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-       else
- 	case `$CC -V 2>&1` in
- 	*"Compilers 5.0"*)
-@@ -11532,8 +12123,9 @@ cygwin* | mingw* | pw32* | cegcc*)
-   need_version=no
-   need_lib_prefix=no
- 
--  case $GCC,$host_os in
--  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-+  case $GCC,$cc_basename in
-+  yes,*)
-+    # gcc
-     library_names_spec='$libname.dll.a'
-     # DLL is installed to $(libdir)/../bin by postinstall_cmds
-     postinstall_cmds='base_file=`basename \${file}`~
-@@ -11566,13 +12158,71 @@ cygwin* | mingw* | pw32* | cegcc*)
-       library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-       ;;
-     esac
-+    dynamic_linker='Win32 ld.exe'
-+    ;;
-+
-+  *,cl*)
-+    # Native MSVC
-+    libname_spec='$name'
-+    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-+    library_names_spec='${libname}.dll.lib'
-+
-+    case $build_os in
-+    mingw*)
-+      sys_lib_search_path_spec=
-+      lt_save_ifs=$IFS
-+      IFS=';'
-+      for lt_path in $LIB
-+      do
-+        IFS=$lt_save_ifs
-+        # Let DOS variable expansion print the short 8.3 style file name.
-+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-+      done
-+      IFS=$lt_save_ifs
-+      # Convert to MSYS style.
-+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
-+      ;;
-+    cygwin*)
-+      # Convert to unix form, then to dos form, then back to unix form
-+      # but this time dos style (no spaces!) so that the unix form looks
-+      # like /cygdrive/c/PROGRA~1:/cygdr...
-+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-+      ;;
-+    *)
-+      sys_lib_search_path_spec="$LIB"
-+      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-+        # It is most probably a Windows format PATH.
-+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-+      else
-+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-+      fi
-+      # FIXME: find the short name or the path components, as spaces are
-+      # common. (e.g. "Program Files" -> "PROGRA~1")
-+      ;;
-+    esac
-+
-+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-+    postinstall_cmds='base_file=`basename \${file}`~
-+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-+      dldir=$destdir/`dirname \$dlpath`~
-+      test -d \$dldir || mkdir -p \$dldir~
-+      $install_prog $dir/$dlname \$dldir/$dlname'
-+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-+      dlpath=$dir/\$dldll~
-+       $RM \$dlpath'
-+    shlibpath_overrides_runpath=yes
-+    dynamic_linker='Win32 link.exe'
-     ;;
- 
-   *)
-+    # Assume MSVC wrapper
-     library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-+    dynamic_linker='Win32 ld.exe'
-     ;;
-   esac
--  dynamic_linker='Win32 ld.exe'
-   # FIXME: first we should search . and the directory the executable is in
-   shlibpath_var=PATH
-   ;;
-@@ -12450,7 +13100,7 @@ else
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 12453 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -12494,10 +13144,10 @@ else
- /* When -fvisbility=hidden is used, assume the code has been annotated
-    correspondingly for the symbols needed.  */
- #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
--void fnord () __attribute__((visibility("default")));
-+int fnord () __attribute__((visibility("default")));
- #endif
- 
--void fnord () { int i=42; }
-+int fnord () { return 42; }
- int main ()
- {
-   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -12556,7 +13206,7 @@ else
-   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-   lt_status=$lt_dlunknown
-   cat > conftest.$ac_ext <<_LT_EOF
--#line 12559 "configure"
-+#line $LINENO "configure"
- #include "confdefs.h"
- 
- #if HAVE_DLFCN_H
-@@ -12600,10 +13250,10 @@ else
- /* When -fvisbility=hidden is used, assume the code has been annotated
-    correspondingly for the symbols needed.  */
- #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
--void fnord () __attribute__((visibility("default")));
-+int fnord () __attribute__((visibility("default")));
- #endif
- 
--void fnord () { int i=42; }
-+int fnord () { return 42; }
- int main ()
- {
-   void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-@@ -17596,13 +18246,20 @@ exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
- lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
- lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
- lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
- reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
- reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
- OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
- deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
- file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
- AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
- AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
- STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
- RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
- old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-@@ -17617,14 +18274,17 @@ lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$de
- lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
- lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
- lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
- objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
- MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
- lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
--lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
- lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
- lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
- lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
- need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
- DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
- NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
- LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-@@ -17657,12 +18317,12 @@ hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_q
- hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
- inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
- link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
--fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`'
- always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
- export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
- exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
- include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
- prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
- file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
- variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
- need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-@@ -17717,8 +18377,13 @@ reload_flag \
- OBJDUMP \
- deplibs_check_method \
- file_magic_cmd \
-+file_magic_glob \
-+want_nocaseglob \
-+DLLTOOL \
-+sharedlib_from_linklib_cmd \
- AR \
- AR_FLAGS \
-+archiver_list_spec \
- STRIP \
- RANLIB \
- CC \
-@@ -17728,12 +18393,14 @@ lt_cv_sys_global_symbol_pipe \
- lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-+nm_file_list_spec \
- lt_prog_compiler_no_builtin_flag \
--lt_prog_compiler_wl \
- lt_prog_compiler_pic \
-+lt_prog_compiler_wl \
- lt_prog_compiler_static \
- lt_cv_prog_compiler_c_o \
- need_locks \
-+MANIFEST_TOOL \
- DSYMUTIL \
- NMEDIT \
- LIPO \
-@@ -17749,7 +18416,6 @@ no_undefined_flag \
- hardcode_libdir_flag_spec \
- hardcode_libdir_flag_spec_ld \
- hardcode_libdir_separator \
--fix_srcfile_path \
- exclude_expsyms \
- include_expsyms \
- file_list_spec \
-@@ -17785,6 +18451,7 @@ module_cmds \
- module_expsym_cmds \
- export_symbols_cmds \
- prelink_cmds \
-+postlink_cmds \
- postinstall_cmds \
- postuninstall_cmds \
- finish_cmds \
-@@ -18610,7 +19277,8 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
- # NOTE: Changes made to this file will be lost: look at ltmain.sh.
- #
- #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
--#                 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-+#                 2006, 2007, 2008, 2009, 2010 Free Software Foundation,
-+#                 Inc.
- #   Written by Gordon Matzigkeit, 1996
- #
- #   This file is part of GNU Libtool.
-@@ -18713,19 +19381,42 @@ SP2NL=$lt_lt_SP2NL
- # turn newlines into spaces.
- NL2SP=$lt_lt_NL2SP
- 
-+# convert \$build file names to \$host format.
-+to_host_file_cmd=$lt_cv_to_host_file_cmd
-+
-+# convert \$build files to toolchain format.
-+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-+
- # An object symbol dumper.
- OBJDUMP=$lt_OBJDUMP
- 
- # Method to check whether dependent libraries are shared objects.
- deplibs_check_method=$lt_deplibs_check_method
- 
--# Command to use when deplibs_check_method == "file_magic".
-+# Command to use when deplibs_check_method = "file_magic".
- file_magic_cmd=$lt_file_magic_cmd
- 
-+# How to find potential files when deplibs_check_method = "file_magic".
-+file_magic_glob=$lt_file_magic_glob
-+
-+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-+want_nocaseglob=$lt_want_nocaseglob
-+
-+# DLL creation program.
-+DLLTOOL=$lt_DLLTOOL
-+
-+# Command to associate shared and link libraries.
-+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-+
- # The archiver.
- AR=$lt_AR
-+
-+# Flags to create an archive.
- AR_FLAGS=$lt_AR_FLAGS
- 
-+# How to feed a file listing to the archiver.
-+archiver_list_spec=$lt_archiver_list_spec
-+
- # A symbol stripping program.
- STRIP=$lt_STRIP
- 
-@@ -18755,6 +19446,12 @@ global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
- # Transform the output of nm in a C name address pair when lib prefix is needed.
- global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
- 
-+# Specify filename containing input files for \$NM.
-+nm_file_list_spec=$lt_nm_file_list_spec
-+
-+# The root where to search for dependent libraries,and in which our libraries should be installed.
-+lt_sysroot=$lt_sysroot
-+
- # The name of the directory that contains temporary libtool files.
- objdir=$objdir
- 
-@@ -18764,6 +19461,9 @@ MAGIC_CMD=$MAGIC_CMD
- # Must we lock files when doing compilation?
- need_locks=$lt_need_locks
- 
-+# Manifest tool.
-+MANIFEST_TOOL=$lt_MANIFEST_TOOL
-+
- # Tool to manipulate archived DWARF debug symbol files on Mac OS X.
- DSYMUTIL=$lt_DSYMUTIL
- 
-@@ -18878,12 +19578,12 @@ with_gcc=$GCC
- # Compiler flag to turn off builtin functions.
- no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
- 
--# How to pass a linker flag through the compiler.
--wl=$lt_lt_prog_compiler_wl
--
- # Additional compiler flags for building library objects.
- pic_flag=$lt_lt_prog_compiler_pic
- 
-+# How to pass a linker flag through the compiler.
-+wl=$lt_lt_prog_compiler_wl
-+
- # Compiler flag to prevent dynamic linking.
- link_static_flag=$lt_lt_prog_compiler_static
- 
-@@ -18970,9 +19670,6 @@ inherit_rpath=$inherit_rpath
- # Whether libtool must link a program against all its dependency libraries.
- link_all_deplibs=$link_all_deplibs
- 
--# Fix the shell variable \$srcfile for the compiler.
--fix_srcfile_path=$lt_fix_srcfile_path
--
- # Set to "yes" if exported symbols are required.
- always_export_symbols=$always_export_symbols
- 
-@@ -18988,6 +19685,9 @@ include_expsyms=$lt_include_expsyms
- # Commands necessary for linking programs (against libraries) with templates.
- prelink_cmds=$lt_prelink_cmds
- 
-+# Commands necessary for finishing linking programs.
-+postlink_cmds=$lt_postlink_cmds
-+
- # Specify filename containing input files.
- file_list_spec=$lt_file_list_spec
- 
-@@ -19020,210 +19720,169 @@ ltmain="$ac_aux_dir/ltmain.sh"
-   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-   # text mode, it properly converts lines to CR/LF.  This bash problem
-   # is reportedly fixed, but why not run on old versions too?
--  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
--    || (rm -f "$cfgfile"; exit 1)
--
--  case $xsi_shell in
--  yes)
--    cat << \_LT_EOF >> "$cfgfile"
--
--# func_dirname file append nondir_replacement
--# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
--# otherwise set result to NONDIR_REPLACEMENT.
--func_dirname ()
--{
--  case ${1} in
--    */*) func_dirname_result="${1%/*}${2}" ;;
--    *  ) func_dirname_result="${3}" ;;
--  esac
--}
--
--# func_basename file
--func_basename ()
--{
--  func_basename_result="${1##*/}"
--}
--
--# func_dirname_and_basename file append nondir_replacement
--# perform func_basename and func_dirname in a single function
--# call:
--#   dirname:  Compute the dirname of FILE.  If nonempty,
--#             add APPEND to the result, otherwise set result
--#             to NONDIR_REPLACEMENT.
--#             value returned in "$func_dirname_result"
--#   basename: Compute filename of FILE.
--#             value retuned in "$func_basename_result"
--# Implementation must be kept synchronized with func_dirname
--# and func_basename. For efficiency, we do not delegate to
--# those functions but instead duplicate the functionality here.
--func_dirname_and_basename ()
--{
--  case ${1} in
--    */*) func_dirname_result="${1%/*}${2}" ;;
--    *  ) func_dirname_result="${3}" ;;
--  esac
--  func_basename_result="${1##*/}"
--}
--
--# func_stripname prefix suffix name
--# strip PREFIX and SUFFIX off of NAME.
--# PREFIX and SUFFIX must not contain globbing or regex special
--# characters, hashes, percent signs, but SUFFIX may contain a leading
--# dot (in which case that matches only a dot).
--func_stripname ()
--{
--  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
--  # positional parameters, so assign one to ordinary parameter first.
--  func_stripname_result=${3}
--  func_stripname_result=${func_stripname_result#"${1}"}
--  func_stripname_result=${func_stripname_result%"${2}"}
--}
--
--# func_opt_split
--func_opt_split ()
--{
--  func_opt_split_opt=${1%%=*}
--  func_opt_split_arg=${1#*=}
--}
--
--# func_lo2o object
--func_lo2o ()
--{
--  case ${1} in
--    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
--    *)    func_lo2o_result=${1} ;;
--  esac
--}
--
--# func_xform libobj-or-source
--func_xform ()
--{
--  func_xform_result=${1%.*}.lo
--}
--
--# func_arith arithmetic-term...
--func_arith ()
--{
--  func_arith_result=$(( $* ))
--}
--
--# func_len string
--# STRING may not start with a hyphen.
--func_len ()
--{
--  func_len_result=${#1}
--}
--
--_LT_EOF
--    ;;
--  *) # Bourne compatible functions.
--    cat << \_LT_EOF >> "$cfgfile"
--
--# func_dirname file append nondir_replacement
--# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
--# otherwise set result to NONDIR_REPLACEMENT.
--func_dirname ()
--{
--  # Extract subdirectory from the argument.
--  func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
--  if test "X$func_dirname_result" = "X${1}"; then
--    func_dirname_result="${3}"
--  else
--    func_dirname_result="$func_dirname_result${2}"
--  fi
--}
--
--# func_basename file
--func_basename ()
--{
--  func_basename_result=`$ECHO "${1}" | $SED "$basename"`
--}
--
--
--# func_stripname prefix suffix name
--# strip PREFIX and SUFFIX off of NAME.
--# PREFIX and SUFFIX must not contain globbing or regex special
--# characters, hashes, percent signs, but SUFFIX may contain a leading
--# dot (in which case that matches only a dot).
--# func_strip_suffix prefix name
--func_stripname ()
--{
--  case ${2} in
--    .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
--    *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
--  esac
--}
--
--# sed scripts:
--my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
--my_sed_long_arg='1s/^-[^=]*=//'
--
--# func_opt_split
--func_opt_split ()
--{
--  func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
--  func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
--}
--
--# func_lo2o object
--func_lo2o ()
--{
--  func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
--}
--
--# func_xform libobj-or-source
--func_xform ()
--{
--  func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
--}
--
--# func_arith arithmetic-term...
--func_arith ()
--{
--  func_arith_result=`expr "$@"`
--}
--
--# func_len string
--# STRING may not start with a hyphen.
--func_len ()
--{
--  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
--}
--
--_LT_EOF
--esac
--
--case $lt_shell_append in
--  yes)
--    cat << \_LT_EOF >> "$cfgfile"
--
--# func_append var value
--# Append VALUE to the end of shell variable VAR.
--func_append ()
--{
--  eval "$1+=\$2"
--}
--_LT_EOF
--    ;;
--  *)
--    cat << \_LT_EOF >> "$cfgfile"
--
--# func_append var value
--# Append VALUE to the end of shell variable VAR.
--func_append ()
--{
--  eval "$1=\$$1\$2"
--}
--
--_LT_EOF
--    ;;
--  esac
--
--
--  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
--    || (rm -f "$cfgfile"; exit 1)
--
--  mv -f "$cfgfile" "$ofile" ||
-+  sed '$q' "$ltmain" >> "$cfgfile" \
-+     || (rm -f "$cfgfile"; exit 1)
-+
-+  if test x"$xsi_shell" = xyes; then
-+  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-+func_dirname ()\
-+{\
-+\    case ${1} in\
-+\      */*) func_dirname_result="${1%/*}${2}" ;;\
-+\      *  ) func_dirname_result="${3}" ;;\
-+\    esac\
-+} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_basename ()$/,/^} # func_basename /c\
-+func_basename ()\
-+{\
-+\    func_basename_result="${1##*/}"\
-+} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-+func_dirname_and_basename ()\
-+{\
-+\    case ${1} in\
-+\      */*) func_dirname_result="${1%/*}${2}" ;;\
-+\      *  ) func_dirname_result="${3}" ;;\
-+\    esac\
-+\    func_basename_result="${1##*/}"\
-+} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-+func_stripname ()\
-+{\
-+\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-+\    # positional parameters, so assign one to ordinary parameter first.\
-+\    func_stripname_result=${3}\
-+\    func_stripname_result=${func_stripname_result#"${1}"}\
-+\    func_stripname_result=${func_stripname_result%"${2}"}\
-+} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-+func_split_long_opt ()\
-+{\
-+\    func_split_long_opt_name=${1%%=*}\
-+\    func_split_long_opt_arg=${1#*=}\
-+} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-+func_split_short_opt ()\
-+{\
-+\    func_split_short_opt_arg=${1#??}\
-+\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-+} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-+func_lo2o ()\
-+{\
-+\    case ${1} in\
-+\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-+\      *)    func_lo2o_result=${1} ;;\
-+\    esac\
-+} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_xform ()$/,/^} # func_xform /c\
-+func_xform ()\
-+{\
-+    func_xform_result=${1%.*}.lo\
-+} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_arith ()$/,/^} # func_arith /c\
-+func_arith ()\
-+{\
-+    func_arith_result=$(( $* ))\
-+} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_len ()$/,/^} # func_len /c\
-+func_len ()\
-+{\
-+    func_len_result=${#1}\
-+} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+fi
-+
-+if test x"$lt_shell_append" = xyes; then
-+  sed -e '/^func_append ()$/,/^} # func_append /c\
-+func_append ()\
-+{\
-+    eval "${1}+=\\${2}"\
-+} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-+func_append_quoted ()\
-+{\
-+\    func_quote_for_eval "${2}"\
-+\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-+} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
-+  && mv -f "$cfgfile.tmp" "$cfgfile" \
-+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+test 0 -eq $? || _lt_function_replace_fail=:
-+
-+
-+  # Save a `func_append' function call where possible by direct use of '+='
-+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-+    && mv -f "$cfgfile.tmp" "$cfgfile" \
-+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+  test 0 -eq $? || _lt_function_replace_fail=:
-+else
-+  # Save a `func_append' function call even when '+=' is not available
-+  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-+    && mv -f "$cfgfile.tmp" "$cfgfile" \
-+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-+  test 0 -eq $? || _lt_function_replace_fail=:
-+fi
-+
-+if test x"$_lt_function_replace_fail" = x":"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-+$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-+fi
-+
-+
-+   mv -f "$cfgfile" "$ofile" ||
-     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-   chmod +x "$ofile"
- 
 diff --git a/zlib/Makefile.in b/zlib/Makefile.in
 index 855c23eea23..0605835c14f 100644
 --- a/zlib/Makefile.in
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0009-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch b/poky/meta/recipes-devtools/binutils/binutils/0009-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
index afd694d..acd8271 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0009-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0009-Fix-rpath-in-libtool-when-sysroot-is-enabled.patch
@@ -1,4 +1,4 @@
-From ff2754e302d06df51f8dd8ef877afb65eb30fcab Mon Sep 17 00:00:00 2001
+From 73d1af65ccfed87662342274d9ec33900786beb3 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 2 Mar 2015 01:42:38 +0000
 Subject: [PATCH] Fix rpath in libtool when sysroot is enabled
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0010-sync-with-OE-libtool-changes.patch b/poky/meta/recipes-devtools/binutils/binutils/0010-sync-with-OE-libtool-changes.patch
index cc0fb55..faf5f2c 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0010-sync-with-OE-libtool-changes.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0010-sync-with-OE-libtool-changes.patch
@@ -1,4 +1,4 @@
-From 039b4afd7d3b5a599aebee97410809276a622ccd Mon Sep 17 00:00:00 2001
+From da9dc36e90c6cf7d3d3bf6f4e337261a93d63428 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Mon, 6 Mar 2017 23:33:27 -0800
 Subject: [PATCH] sync with OE libtool changes
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0011-Check-for-clang-before-checking-gcc-version.patch b/poky/meta/recipes-devtools/binutils/binutils/0011-Check-for-clang-before-checking-gcc-version.patch
index b921dd1..05c7317 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0011-Check-for-clang-before-checking-gcc-version.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0011-Check-for-clang-before-checking-gcc-version.patch
@@ -1,4 +1,4 @@
-From 4eb24605fb2012c0f02883d1f560d5d852c0705e Mon Sep 17 00:00:00 2001
+From f6105e5202180627e9690884d483fd5b7dc28652 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 15 Apr 2020 14:17:20 -0700
 Subject: [PATCH] Check for clang before checking gcc version
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch b/poky/meta/recipes-devtools/binutils/binutils/0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
index f69071a..20eb943 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0012-Only-generate-an-RPATH-entry-if-LD_RUN_PATH-is-not-e.patch
@@ -1,4 +1,4 @@
-From 9613e47bfdea18d2764eec130676e3e0b40c676f Mon Sep 17 00:00:00 2001
+From 13cbec5bc5c75dd4c3e1d5f3ca80e5b64f7116d1 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 10 Mar 2022 21:21:33 -0800
 Subject: [PATCH] Only generate an RPATH entry if LD_RUN_PATH is not empty
@@ -14,7 +14,7 @@
  1 file changed, 5 insertions(+)
 
 diff --git a/ld/ldelf.c b/ld/ldelf.c
-index 95787012b89..bc29909386f 100644
+index 1519f8ac4e5..2a7c76dc29c 100644
 --- a/ld/ldelf.c
 +++ b/ld/ldelf.c
 @@ -1127,6 +1127,9 @@ ldelf_handle_dt_needed (struct elf_link_hash_table *htab,
@@ -27,7 +27,7 @@
  		  if (path
  		      && ldelf_search_needed (path, &n, force,
  					      is_linux, elfsize))
-@@ -1801,6 +1804,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
+@@ -1802,6 +1805,8 @@ ldelf_before_allocation (char *audit, char *depaudit,
    rpath = command_line.rpath;
    if (rpath == NULL)
      rpath = (const char *) getenv ("LD_RUN_PATH");
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0013-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch b/poky/meta/recipes-devtools/binutils/binutils/0013-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch
index 9cdc7e2..a6892e8 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0013-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0013-Define-alignof-using-_Alignof-when-using-C11-or-newe.patch
@@ -1,4 +1,4 @@
-From 8af01d85c4e5a5558d770291b7df86acfd59827c Mon Sep 17 00:00:00 2001
+From 9d451ca9ca6bf34b43a089033565ae7570db2065 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 15 Jan 2023 00:16:25 -0800
 Subject: [PATCH] Define alignof using _Alignof when using C11 or newer
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0015-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch b/poky/meta/recipes-devtools/binutils/binutils/0014-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch
similarity index 81%
rename from poky/meta/recipes-devtools/binutils/binutils/0015-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch
rename to poky/meta/recipes-devtools/binutils/binutils/0014-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch
index f57f65c..818d646 100644
--- a/poky/meta/recipes-devtools/binutils/binutils/0015-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch
+++ b/poky/meta/recipes-devtools/binutils/binutils/0014-Remove-duplicate-pe-dll.o-entry-deom-targ_extra_ofil.patch
@@ -1,4 +1,4 @@
-From 9599d7d48913fca4c2bf0d0012f9655353ca6f6c Mon Sep 17 00:00:00 2001
+From f0c39effd46d4dec0813276b1903d6deddcd82dc Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 18 Jan 2023 19:35:07 -0800
 Subject: [PATCH] Remove duplicate pe-dll.o entry deom targ_extra_ofiles
@@ -14,14 +14,14 @@
 Cc: Jedidiah Thompson <wej22007@outlook.com>
 Cc: Zac Walker <zac.walker@linaro.org>
 ---
- ld/configure.tgt | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ ld/configure.tgt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/ld/configure.tgt b/ld/configure.tgt
-index de04a44b812..f80c84ab13c 100644
+index c62b9581d9b..e78644d04e2 100644
 --- a/ld/configure.tgt
 +++ b/ld/configure.tgt
-@@ -1056,7 +1056,7 @@ x86_64-*-cygwin)	targ_emul=i386pep ;
+@@ -1055,7 +1055,7 @@ x86_64-*-cygwin)	targ_emul=i386pep ;
  			;;
  x86_64-*-mingw*)	targ_emul=i386pep ;
  			targ_extra_emuls=i386pe
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0015-gprofng-Fix-build-with-64bit-file-offset-on-32bit-ma.patch b/poky/meta/recipes-devtools/binutils/binutils/0015-gprofng-Fix-build-with-64bit-file-offset-on-32bit-ma.patch
new file mode 100644
index 0000000..3bb0838
--- /dev/null
+++ b/poky/meta/recipes-devtools/binutils/binutils/0015-gprofng-Fix-build-with-64bit-file-offset-on-32bit-ma.patch
@@ -0,0 +1,55 @@
+From 15936ae7cdfd6814654eff367b5cfb2565ea6af8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 31 Jul 2023 15:23:38 -0700
+Subject: [PATCH] gprofng: Fix build with 64bit file offset on 32bit machines
+
+gprofng/ChangeLog
+2023-07-31  Khem Raj <raj.khem@gmail.com>
+
+* libcollector/iotrace.c: Define open64, fgetpos64, and fsetpos64
+  only when __USE_LARGEFILE64 and __USE_FILE_OFFSET64 are not
+  defined.
+
+Upstream-Status: Submitted [https://sourceware.org/pipermail/binutils/2023-July/128741.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gprofng/libcollector/iotrace.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/gprofng/libcollector/iotrace.c b/gprofng/libcollector/iotrace.c
+index c0ea7497b09..81c844048d9 100644
+--- a/gprofng/libcollector/iotrace.c
++++ b/gprofng/libcollector/iotrace.c
+@@ -1030,8 +1030,9 @@ gprofng_open64 (int(real_open64) (const char *, int, ...),
+   }
+ 
+ DCL_FUNC_VER (DCL_OPEN64, open64_2_2, open64@GLIBC_2.2)
++#if !defined(__USE_LARGEFILE64)
+ DCL_OPEN64 (open64)
+-
++#endif
+ 
+ #define F_ERROR_ARG     0
+ #define F_INT_ARG       1
+@@ -2989,8 +2990,9 @@ DCL_FUNC_VER (DCL_FGETPOS64, fgetpos64_2_17, fgetpos64@GLIBC_2.17)
+ DCL_FUNC_VER (DCL_FGETPOS64, fgetpos64_2_2_5, fgetpos64@GLIBC_2.2.5)
+ DCL_FUNC_VER (DCL_FGETPOS64, fgetpos64_2_2, fgetpos64@GLIBC_2.2)
+ DCL_FUNC_VER (DCL_FGETPOS64, fgetpos64_2_1, fgetpos64@GLIBC_2.1)
++#if !defined(__USE_LARGEFILE64)
+ DCL_FGETPOS64 (fgetpos64)
+-
++#endif
+ /*------------------------------------------------------------- fsetpos */
+ static int
+ gprofng_fsetpos (int(real_fsetpos) (FILE *, const fpos_t *),
+@@ -3087,8 +3089,9 @@ DCL_FUNC_VER (DCL_FSETPOS64, fsetpos64_2_17, fsetpos64@GLIBC_2.17)
+ DCL_FUNC_VER (DCL_FSETPOS64, fsetpos64_2_2_5, fsetpos64@GLIBC_2.2.5)
+ DCL_FUNC_VER (DCL_FSETPOS64, fsetpos64_2_2, fsetpos64@GLIBC_2.2)
+ DCL_FUNC_VER (DCL_FSETPOS64, fsetpos64_2_1, fsetpos64@GLIBC_2.1)
++#if !defined(__USE_LARGEFILE64)
+ DCL_FSETPOS64 (fsetpos64)
+-
++#endif
+ /*------------------------------------------------------------- fsync */
+ int
+ fsync (int fildes)
diff --git a/poky/meta/recipes-devtools/binutils/binutils/0016-CVE-2023-25586.patch b/poky/meta/recipes-devtools/binutils/binutils/0016-CVE-2023-25586.patch
deleted file mode 100644
index 43e36ca..0000000
--- a/poky/meta/recipes-devtools/binutils/binutils/0016-CVE-2023-25586.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 5830876a0cca17bef3b2d54908928e72cca53502 Mon Sep 17 00:00:00 2001
-From: Alan Modra <amodra@gmail.com>
-Date: Tue, 6 Dec 2022 08:37:52 +1030
-Subject: [PATCH] PR29855, ch_type in bfd_init_section_decompress_status can be
- uninitialized
-
-	PR 29855
-	* compress.c (bfd_init_section_decompress_status): Set ch_type
-	to zero for zlib-gnu case.
-
-Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5830876a0cca17bef3b2d54908928e72cca53502]
-
-CVE: CVE-2023-25586
-
-Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
----
- bfd/compress.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/bfd/compress.c b/bfd/compress.c
-index 3d8c1d769f1..6b083468ca8 100644
---- a/bfd/compress.c
-+++ b/bfd/compress.c
-@@ -1012,7 +1012,7 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec)
-	  return false;
-	}
-       uncompressed_size = bfd_getb64 (header + 4);
--      ch_type = ch_none;
-+      ch_type = 0;
-     }
-   else if (!bfd_check_compression_header (abfd, header, sec,
-					  &ch_type,
---
-2.31.1
diff --git a/poky/meta/recipes-devtools/binutils/binutils/fix-time64.patch b/poky/meta/recipes-devtools/binutils/binutils/fix-time64.patch
deleted file mode 100644
index 0bfc977..0000000
--- a/poky/meta/recipes-devtools/binutils/binutils/fix-time64.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From f6f19a39ecfe962cb8a05522c27f513308687a74 Mon Sep 17 00:00:00 2001
-From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
-Date: Thu, 16 Feb 2023 19:00:47 -0800
-Subject: [PATCH] gprofng: PR30036 Build failure on aarch64 w/ glibc: symbol
- `pwrite64' is already defined
-
-gprofng/ChangeLog
-2023-02-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	PR gprofng/30036
-	* libcollector/iotrace.c: Define creat64 and pwrite64 only when
-	__USE_LARGEFILE64 and __USE_FILE_OFFSET64 are not defined.
-	* libcollector/mmaptrace.c: Likewise for mmap64.
-
-Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=f6f19a39ecfe962cb8a05522c27f513308687a74]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- gprofng/libcollector/iotrace.c   | 15 ++++++++-------
- gprofng/libcollector/mmaptrace.c |  2 +-
- 2 files changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/gprofng/libcollector/iotrace.c b/gprofng/libcollector/iotrace.c
-index af90cc31f1a..d8439b02b3a 100644
---- a/gprofng/libcollector/iotrace.c
-+++ b/gprofng/libcollector/iotrace.c
-@@ -1441,7 +1441,7 @@ creat (const char *path, mode_t mode)
- }
- 
- /*------------------------------------------------------------- creat64 */
--#if WSIZE(32)
-+#if WSIZE(32) && !defined(__USE_LARGEFILE64)
- int
- creat64 (const char *path, mode_t mode)
- {
-@@ -2476,7 +2476,7 @@ __collector_pwrite_2_1 (int fildes, const void *buf, size_t nbyte, off_t offset)
-   return ret;
- }
- 
--#else
-+#endif
- ssize_t
- pwrite (int fildes, const void *buf, size_t nbyte, off_t offset)
- {
-@@ -2497,11 +2497,10 @@ pwrite (int fildes, const void *buf, size_t nbyte, off_t offset)
-   POP_REENTRANCE (guard);
-   return ret;
- }
--#endif
- 
- /*------------------------------------------------------------- pwrite64 */
--#if WSIZE(32)
--#if !defined(__MUSL_LIBC) && ARCH(Intel)
-+#if WSIZE(32) && ARCH(Intel)
-+#if !defined(__MUSL_LIBC)
- // map interposed symbol versions
- 
- SYMVER_ATTRIBUTE (__collector_pwrite64_2_2, pwrite64@GLIBC_2.2)
-@@ -2547,8 +2546,9 @@ __collector_pwrite64_2_1 (int fildes, const void *buf, size_t nbyte, off64_t off
-   POP_REENTRANCE (guard);
-   return ret;
- }
-+#endif
- 
--#else
-+#if !defined(__USE_FILE_OFFSET64)
- ssize_t
- pwrite64 (int fildes, const void *buf, size_t nbyte, off64_t offset)
- {
-@@ -2570,7 +2570,8 @@ pwrite64 (int fildes, const void *buf, size_t nbyte, off64_t offset)
-   return ret;
- }
- #endif
--#endif /* SIZE(32) */
-+
-+#endif /* SIZE(32)  && ARCH(Intel) */
- 
- /*------------------------------------------------------------- fgets */
- char*
-diff --git a/gprofng/libcollector/mmaptrace.c b/gprofng/libcollector/mmaptrace.c
-index 61613c21560..221b4e2d176 100644
---- a/gprofng/libcollector/mmaptrace.c
-+++ b/gprofng/libcollector/mmaptrace.c
-@@ -1494,7 +1494,7 @@ mmap (void *start, size_t length, int prot, int flags, int fd, off_t offset)
- }
- 
- /*------------------------------------------------------------- mmap64 */
--#if WSIZE(32)       /* mmap64 only defined for non-64-bit */
-+#if WSIZE(32) && !defined(__USE_FILE_OFFSET64)
- 
- void *
- mmap64 (void *start, size_t length, int prot, int flags, int fd, off64_t offset)
--- 
-2.31.1
-
diff --git a/poky/meta/recipes-devtools/binutils/binutils_2.40.bb b/poky/meta/recipes-devtools/binutils/binutils_2.41.bb
similarity index 100%
rename from poky/meta/recipes-devtools/binutils/binutils_2.40.bb
rename to poky/meta/recipes-devtools/binutils/binutils_2.41.bb
diff --git a/poky/meta/recipes-devtools/bison/bison/autoconf-2.73.patch b/poky/meta/recipes-devtools/bison/bison/autoconf-2.73.patch
new file mode 100644
index 0000000..8360d39
--- /dev/null
+++ b/poky/meta/recipes-devtools/bison/bison/autoconf-2.73.patch
@@ -0,0 +1,24 @@
+The gnulib largefile macro needs updating to work with autoconf 2.73. Rather
+than the full code:
+
+https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4/largefile.m4?id=f91f633858cf132e50924224c50d6264a92caabb
+
+Just tweak the exiting code to work with 2.73. The next bison upgrade should
+update to new gnulib
+
+Upstream-Status: Inappropriate
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: findutils-4.9.0/gl/m4/largefile.m4
+===================================================================
+--- findutils-4.9.0.orig/m4/largefile.m4
++++ findutils-4.9.0/m4/largefile.m4
+@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
diff --git a/poky/meta/recipes-devtools/bison/bison_3.8.2.bb b/poky/meta/recipes-devtools/bison/bison_3.8.2.bb
index c95f321..da138e3 100644
--- a/poky/meta/recipes-devtools/bison/bison_3.8.2.bb
+++ b/poky/meta/recipes-devtools/bison/bison_3.8.2.bb
@@ -10,6 +10,7 @@
 DEPENDS = "bison-native flex-native"
 
 SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
+           file://autoconf-2.73.patch \
            file://add-with-bisonlocaledir.patch \
            "
 SRC_URI[sha256sum] = "9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2"
diff --git a/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb b/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
index d93152c..cce2f57 100644
--- a/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
+++ b/poky/meta/recipes-devtools/bootchart2/bootchart2_0.14.9.bb
@@ -83,7 +83,6 @@
 
 SUMMARY = "Booting sequence and CPU,I/O usage monitor"
 DESCRIPTION = "Monitors where the system spends its time at start, creating a graph of all processes, disk utilization, and wait time."
-AUTHOR = "Wonhong Kwon <wonhong.kwon@lge.com>"
 HOMEPAGE = "https://github.com/mmeeks/bootchart"
 LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=44ac4678311254db62edf8fd39cb8124"
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c/time64fix.patch b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/time64fix.patch
new file mode 100644
index 0000000..a63801c
--- /dev/null
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c/time64fix.patch
@@ -0,0 +1,69 @@
+From 89e1c9415fb8438310036d5810cdb7da75ee3a7f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 26 Jul 2023 12:27:14 -0700
+Subject: [PATCH] Adjust printf formats for 64bit time_t on 32bit systems
+
+Fixes format specifier mismatch warnings as well while here
+
+e.g.
+warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'time_t'
+
+Upstream-Status: Submitted [https://github.com/rpm-software-management/createrepo_c/pull/376]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/createrepo_c.c    | 4 ++--
+ src/misc.c            | 4 ++--
+ src/xml_dump_repomd.c | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/createrepo_c.c b/src/createrepo_c.c
+index 8681419..0f9048a 100644
+--- a/src/createrepo_c.c
++++ b/src/createrepo_c.c
+@@ -582,9 +582,9 @@ duplicates_warning(const char *nevra, GArray *locations, CmdDupNevra option)
+   for (size_t i=0; i<locations->len; i++) {
+       struct DuplicateLocation location = g_array_index(locations, struct
+                                                         DuplicateLocation, i);
+-      g_warning("    Sourced from location: \'%s\', build timestamp: %ld%s",
++      g_warning("    Sourced from location: \'%s\', build timestamp: %jd%s",
+                 location.location,
+-                location.pkg->time_build,
++                (intmax_t) location.pkg->time_build,
+                 location.pkg->skip_dump ? skip_reason : "");
+ 
+   }
+diff --git a/src/misc.c b/src/misc.c
+index 8511ca2..7866c7b 100644
+--- a/src/misc.c
++++ b/src/misc.c
+@@ -1512,11 +1512,11 @@ cr_append_pid_and_datetime(const char *str, const char *suffix)
+     gettimeofday(&tv, NULL);
+     timeinfo = localtime (&(tv.tv_sec));
+     strftime(datetime, 80, "%Y%m%d%H%M%S", timeinfo);
+-    gchar *result = g_strdup_printf("%s%jd.%s.%ld%s",
++    gchar *result = g_strdup_printf("%s%jd.%s.%jd%s",
+                                     str ? str : "",
+                                     (intmax_t) getpid(),
+                                     datetime,
+-                                    tv.tv_usec,
++                                    (intmax_t) tv.tv_usec,
+                                     suffix ? suffix : "");
+     return result;
+ }
+diff --git a/src/xml_dump_repomd.c b/src/xml_dump_repomd.c
+index 33b0e09..9d24249 100644
+--- a/src/xml_dump_repomd.c
++++ b/src/xml_dump_repomd.c
+@@ -143,7 +143,7 @@ cr_xml_dump_repomd_body(xmlNodePtr root, cr_Repomd *repomd)
+                            BAD_CAST repomd->revision);
+     } else {
+         // Use the current time if no revision was explicitly specified
+-        gchar *rev = g_strdup_printf("%ld", time(NULL));
++        gchar *rev = g_strdup_printf("%jd", (intmax_t) time(NULL));
+         xmlNewChild(root, NULL, BAD_CAST "revision", BAD_CAST rev);
+         g_free(rev);
+     }
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.21.1.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.21.1.bb
index 5080131..57f23b8 100644
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.21.1.bb
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.21.1.bb
@@ -8,6 +8,7 @@
            file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
            file://0001-include-rpm-rpmstring.h.patch \
            file://0001-src-cmd_parser.c-add-a-missing-parameter-name.patch \
+           file://time64fix.patch \
            "
 
 SRCREV = "0652d7303ce236e596c83c29ccc9bee7868fce6e"
diff --git a/poky/meta/recipes-devtools/file/file_5.44.bb b/poky/meta/recipes-devtools/file/file_5.44.bb
index 3090d34..3ce2664 100644
--- a/poky/meta/recipes-devtools/file/file_5.44.bb
+++ b/poky/meta/recipes-devtools/file/file_5.44.bb
@@ -45,9 +45,10 @@
 }
 
 do_install:append:class-nativesdk() {
+	create_wrapper ${D}/${bindir}/file MAGIC=${datadir}/misc/magic.mgc
 	mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d
 	cat <<- EOF > ${D}${SDKPATHNATIVE}/environment-setup.d/file.sh
-		export MAGIC="$OECORE_NATIVE_SYSROOT${datadir}/misc/magic.mgc"
+		export MAGIC="${datadir}/misc/magic.mgc"
 	EOF
 }
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-13.1.inc b/poky/meta/recipes-devtools/gcc/gcc-13.2.inc
similarity index 91%
rename from poky/meta/recipes-devtools/gcc/gcc-13.1.inc
rename to poky/meta/recipes-devtools/gcc/gcc-13.2.inc
index e94753e..7329562 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-13.1.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-13.2.inc
@@ -2,11 +2,11 @@
 
 # Third digit in PV should be incremented after a minor release
 
-PV = "13.1.1"
+PV = "13.2.0"
 
 # BINV should be incremented to a revision after a minor gcc release
 
-BINV = "13.1.1"
+BINV = "13.2.0"
 
 FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
 
@@ -30,14 +30,14 @@
 #SOURCEDIR ?= "official-gcc-${@'${RELEASE}'[0:7]}"
 
 # from snapshot
-RELEASE ?= "13-20230520"
-SOURCEDIR ?= "gcc-${RELEASE}"
-BASEURI ?= "https://gcc.gnu.org/pub/gcc/snapshots/${RELEASE}/gcc-${RELEASE}.tar.xz"
+#RELEASE ?= "13-20230520"
+#SOURCEDIR ?= "gcc-${RELEASE}"
+#BASEURI ?= "https://gcc.gnu.org/pub/gcc/snapshots/${RELEASE}/gcc-${RELEASE}.tar.xz"
 
 # official release
-#RELEASE ?= "${PV}"
-#BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
-#SOURCEDIR ?= "gcc-${PV}"
+RELEASE ?= "${PV}"
+BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
+SOURCEDIR ?= "gcc-${PV}"
 
 SRC_URI = "${BASEURI} \
            file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
@@ -65,7 +65,7 @@
            file://0023-Fix-install-path-of-linux64.h.patch \
            file://0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch \
 "
-SRC_URI[sha256sum] = "b8716f92e468086fca5aea8873f7405f1cd7d309ad0719f0a90c57b3483e448c"
+SRC_URI[sha256sum] = "e275e76442a6067341a27f04c5c6b83d8613144004c0413528863dc6b5c743da"
 
 S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${SOURCEDIR}"
 B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_13.1.bb b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-cross-canadian_13.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-cross-canadian_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross_13.1.bb b/poky/meta/recipes-devtools/gcc/gcc-cross_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-cross_13.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-cross_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc b/poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc
index bd65b1f..7eaad23 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-crosssdk.inc
@@ -10,3 +10,5 @@
 
 DEPENDS = "virtual/${TARGET_PREFIX}binutils gettext-native ${NATIVEDEPS}"
 PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
+
+gcc_multilib_setup[vardepsexclude] = "MULTILIB_VARIANTS"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_13.1.bb b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-crosssdk_13.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-crosssdk_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime_13.1.bb b/poky/meta/recipes-devtools/gcc/gcc-runtime_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-runtime_13.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-runtime_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-sanitizers_13.1.bb b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-sanitizers_13.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-sanitizers_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc-source_13.1.bb b/poky/meta/recipes-devtools/gcc/gcc-source_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc-source_13.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc-source_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
index 0f13404..5c75698 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
@@ -1,4 +1,4 @@
-From 3875ab692a7d7ee796a6d5d2ece6daa3db81d5c4 Mon Sep 17 00:00:00 2001
+From 553564bdcabdcc5d4cc4de73c7eb94c505ef51f5 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 08:37:11 +0400
 Subject: [PATCH] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
@@ -12,10 +12,10 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/configure b/configure
-index 85883099410..044315af1da 100755
+index 117a7ef23f2..535265253fd 100755
 --- a/configure
 +++ b/configure
-@@ -10183,7 +10183,7 @@ fi
+@@ -10195,7 +10195,7 @@ fi
  # for target_alias and gcc doesn't manage it consistently.
  target_configargs="--cache-file=./config.cache ${target_configargs}"
  
@@ -25,10 +25,10 @@
   *" newlib "*)
    case " $target_configargs " in
 diff --git a/configure.ac b/configure.ac
-index 2b612dce6e9..f26fffd4f62 100644
+index b3e9bbd2aa5..5ac8d6490f6 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -3339,7 +3339,7 @@ fi
+@@ -3351,7 +3351,7 @@ fi
  # for target_alias and gcc doesn't manage it consistently.
  target_configargs="--cache-file=./config.cache ${target_configargs}"
  
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch b/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
index 6fa5494..4923000 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
@@ -1,4 +1,4 @@
-From e09aa9c3565585390328dd514cc286c20b74e76a Mon Sep 17 00:00:00 2001
+From 52676b5934ba127c3af39fc484c8236c8fa60b96 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 8 Mar 2021 16:04:20 -0800
 Subject: [PATCH] gcc: poison-system-directories
@@ -11,7 +11,7 @@
 Instead, we add the two missing items to the current scan.  If the user
 wants this to be a failure, they can add "-Werror=poison-system-directories".
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [OE configuration]
 Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
@@ -132,7 +132,7 @@
  AC_SUBST(subdirs)
  AC_SUBST(srcdir)
 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index c9482886c5a..f302c637908 100644
+index de40f62e219..d6f203c8b71 100644
 --- a/gcc/doc/invoke.texi
 +++ b/gcc/doc/invoke.texi
 @@ -384,6 +384,7 @@ Objective-C and Objective-C++ Dialects}.
@@ -143,7 +143,7 @@
  -Wno-pragmas  -Wno-prio-ctor-dtor  -Wredundant-decls
  -Wrestrict  -Wno-return-local-addr  -Wreturn-type
  -Wno-scalar-storage-order  -Wsequence-point
-@@ -8422,6 +8423,14 @@ made up of data only and thus requires no special treatment.  But, for
+@@ -8426,6 +8427,14 @@ made up of data only and thus requires no special treatment.  But, for
  most targets, it is made up of code and thus requires the stack to be
  made executable in order for the program to work properly.
  
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch b/poky/meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch
index d547d7e..3b3eec2 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch
@@ -1,4 +1,4 @@
-From 86664e09670efa5a8662ef59590e01707f8e0cc3 Mon Sep 17 00:00:00 2001
+From febfac59d0e8a864370d0b4018b4e497ceec156d Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:10:06 +0400
 Subject: [PATCH] 64-bit multilib hack
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch b/poky/meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
index d749ff1..7e33bf1 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
@@ -1,4 +1,4 @@
-From 2a1336d2e2ba08747acd7368264fc5813a37b049 Mon Sep 17 00:00:00 2001
+From 6fbf920ccde6efc2d0caafde996d9e5738a1ba37 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Thu, 28 Oct 2021 11:33:40 +0100
 Subject: [PATCH] Pass CXXFLAGS_FOR_BUILD in a couple of places to avoid these
@@ -13,7 +13,7 @@
     * Makefile.in: Regenerate.
     * Makefile.tpl: Add missing CXXFLAGS_FOR_BUILD overrides
 
-Upstream-Status: Pending [should be submittable]
+Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2023-February/612560.html]
 
 Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/poky/meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
index 2eba38e..db2fea3 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
@@ -1,4 +1,4 @@
-From 6cce395992a1b573e6795fdad2f9086db921e924 Mon Sep 17 00:00:00 2001
+From 2cedf13819c0cc929660072d8a972f5e422f9701 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:17:25 +0400
 Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}
@@ -26,7 +26,7 @@
  4 files changed, 7 insertions(+), 7 deletions(-)
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index ad9a5d94cd0..fe636af3f63 100644
+index 775aaa1b3c4..04f28984b34 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
 @@ -561,7 +561,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch b/poky/meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch
index 3887aa3..704c44c 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch
@@ -1,4 +1,4 @@
-From 223ff12852a8c8974f6e542ee3a8b276639d2452 Mon Sep 17 00:00:00 2001
+From f0b4d02a3a3dca1d67fd7add15ed63c2cd572bb9 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:22:00 +0400
 Subject: [PATCH] cpp: honor sysroot.
@@ -17,7 +17,7 @@
 
 RP 2012/04/13
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [embedded specific]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/poky/meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
index e3af0bf..079142c 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
@@ -1,4 +1,4 @@
-From ba2e308f7993099708ef3d8cbf2db5f134f08941 Mon Sep 17 00:00:00 2001
+From aacfd6e14dd583b1fdc65691def61c5e1bc89708 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:24:50 +0400
 Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
@@ -35,6 +35,8 @@
  gcc/config/sparc/linux64.h         |  4 ++--
  18 files changed, 53 insertions(+), 58 deletions(-)
 
+diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
+index 4277f03da2a..e4c92c03291 100644
 --- a/gcc/config/aarch64/aarch64-linux.h
 +++ b/gcc/config/aarch64/aarch64-linux.h
 @@ -21,10 +21,10 @@
@@ -50,9 +52,11 @@
  
  #undef  ASAN_CC1_SPEC
  #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
+diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
+index 03f783f2ad1..4fa02668aa7 100644
 --- a/gcc/config/alpha/linux-elf.h
 +++ b/gcc/config/alpha/linux-elf.h
-@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3.
+@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3.  If not see
  #define EXTRA_SPECS \
  { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
  
@@ -63,6 +67,8 @@
  #if DEFAULT_LIBC == LIBC_UCLIBC
  #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
  #elif DEFAULT_LIBC == LIBC_GLIBC
+diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
+index a119875599d..dce7f59eeea 100644
 --- a/gcc/config/arm/linux-eabi.h
 +++ b/gcc/config/arm/linux-eabi.h
 @@ -62,8 +62,8 @@
@@ -85,6 +91,8 @@
  
  /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
     use the GNU/Linux version, not the generic BPABI version.  */
+diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
+index 7b7b7cbbe14..98ef2267117 100644
 --- a/gcc/config/arm/linux-elf.h
 +++ b/gcc/config/arm/linux-elf.h
 @@ -60,7 +60,7 @@
@@ -96,9 +104,11 @@
  
  #define LINUX_TARGET_LINK_SPEC  "%{h*} \
     %{static:-Bstatic} \
+diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
+index bbb7cc7115e..7d9272040ee 100644
 --- a/gcc/config/i386/linux.h
 +++ b/gcc/config/i386/linux.h
-@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3.
+@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
  #define GNU_USER_LINK_EMULATION "elf_i386"
@@ -108,9 +118,11 @@
  #undef MUSL_DYNAMIC_LINKER
 -#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
 +#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
+diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
+index 2bd9f48e271..dbbe7ca5440 100644
 --- a/gcc/config/i386/linux64.h
 +++ b/gcc/config/i386/linux64.h
-@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
  #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
  
@@ -130,9 +142,11 @@
  #undef MUSL_DYNAMIC_LINKERX32
 -#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
 +#define MUSL_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-musl-x32.so.1"
+diff --git a/gcc/config/linux.h b/gcc/config/linux.h
+index e3aca79cccc..6491c6b84f5 100644
 --- a/gcc/config/linux.h
 +++ b/gcc/config/linux.h
-@@ -86,10 +86,10 @@ see the files COPYING3 and COPYING.RUNTI
+@@ -86,10 +86,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
     GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
     supporting both 32-bit and 64-bit compilation.  */
@@ -147,9 +161,11 @@
  #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
  #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
  #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
+diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h
+index aecaa02a199..62f88f7f9a2 100644
 --- a/gcc/config/loongarch/gnu-user.h
 +++ b/gcc/config/loongarch/gnu-user.h
-@@ -31,11 +31,11 @@ along with GCC; see the file COPYING3.
+@@ -31,11 +31,11 @@ along with GCC; see the file COPYING3.  If not see
  
  #undef GLIBC_DYNAMIC_LINKER
  #define GLIBC_DYNAMIC_LINKER \
@@ -163,6 +179,8 @@
  
  #undef GNU_USER_TARGET_LINK_SPEC
  #define GNU_USER_TARGET_LINK_SPEC \
+diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h
+index e2e2c421c52..6f26480e3b5 100644
 --- a/gcc/config/microblaze/linux.h
 +++ b/gcc/config/microblaze/linux.h
 @@ -28,7 +28,7 @@
@@ -183,9 +201,11 @@
  
  #undef  SUBTARGET_EXTRA_SPECS
  #define SUBTARGET_EXTRA_SPECS \
+diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
+index 5add34ea134..34692b433b8 100644
 --- a/gcc/config/mips/linux.h
 +++ b/gcc/config/mips/linux.h
-@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3.
+@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3.  If not see
  #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
  
  #define GLIBC_DYNAMIC_LINKER32 \
@@ -224,6 +244,8 @@
  
  #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
  #define GNU_USER_DYNAMIC_LINKERN32 \
+diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
+index 2ce097ebbce..1d45d7b4962 100644
 --- a/gcc/config/nios2/linux.h
 +++ b/gcc/config/nios2/linux.h
 @@ -29,10 +29,10 @@
@@ -239,9 +261,11 @@
  
  #undef LINK_SPEC
  #define LINK_SPEC LINK_SPEC_ENDIAN \
+diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
+index 3e625e0f867..dc3afc97e27 100644
 --- a/gcc/config/riscv/linux.h
 +++ b/gcc/config/riscv/linux.h
-@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.
+@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.  If not see
      GNU_USER_TARGET_OS_CPP_BUILTINS();				\
    } while (0)
  
@@ -250,7 +274,7 @@
  
  #define MUSL_ABI_SUFFIX \
    "%{mabi=ilp32:-sf}" \
-@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.
+@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.  If not see
    "%{mabi=lp64d:}"
  
  #undef MUSL_DYNAMIC_LINKER
@@ -259,6 +283,8 @@
  
  #define ICACHE_FLUSH_FUNC "__riscv_flush_icache"
  
+diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
+index 9e457033d11..2ddab7c99c1 100644
 --- a/gcc/config/rs6000/linux64.h
 +++ b/gcc/config/rs6000/linux64.h
 @@ -339,24 +339,19 @@ extern int dot_symbols;
@@ -291,6 +317,8 @@
  
  #undef  DEFAULT_ASM_ENDIAN
  #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
+diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
+index ae932fc22f0..26db003cb3a 100644
 --- a/gcc/config/rs6000/sysv4.h
 +++ b/gcc/config/rs6000/sysv4.h
 @@ -771,10 +771,10 @@ GNU_USER_TARGET_CC1_SPEC
@@ -306,9 +334,11 @@
  
  #ifndef GNU_USER_DYNAMIC_LINKER
  #define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
+diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
+index 02aa1edaff8..fab268d61f4 100644
 --- a/gcc/config/s390/linux.h
 +++ b/gcc/config/s390/linux.h
-@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3.
+@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3.  If not see
  #define MULTILIB_DEFAULTS { "m31" }
  #endif
  
@@ -326,9 +356,11 @@
  
  #undef  LINK_SPEC
  #define LINK_SPEC \
+diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
+index 29f5902b98b..83d1e53e6e2 100644
 --- a/gcc/config/sh/linux.h
 +++ b/gcc/config/sh/linux.h
-@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3.
+@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3.  If not see
  
  #undef MUSL_DYNAMIC_LINKER
  #define MUSL_DYNAMIC_LINKER \
@@ -341,9 +373,11 @@
  
  #undef SUBTARGET_LINK_EMUL_SUFFIX
  #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
+diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
+index 0e33b3cac2c..84f29adbb35 100644
 --- a/gcc/config/sparc/linux.h
 +++ b/gcc/config/sparc/linux.h
-@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu
+@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
     When the -shared link option is used a final link is not being
     done.  */
  
@@ -352,9 +386,11 @@
  
  #undef  LINK_SPEC
  #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
+diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
+index f1cc0a19e49..94bc2032803 100644
 --- a/gcc/config/sparc/linux64.h
 +++ b/gcc/config/sparc/linux64.h
-@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3.
+@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3.  If not see
     When the -shared link option is used a final link is not being
     done.  */
  
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0008-libtool.patch b/poky/meta/recipes-devtools/gcc/gcc/0008-libtool.patch
index 72248e6..5b44dc8 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0008-libtool.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0008-libtool.patch
@@ -1,4 +1,4 @@
-From 5ce9e36a87974ce5c1c1adb6e4390350233d8770 Mon Sep 17 00:00:00 2001
+From 7608e93ab97e8c33e3b14323d0cabc651926e403 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:29:11 +0400
 Subject: [PATCH] libtool
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/poky/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
index 871a634..86542bd 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
@@ -1,4 +1,4 @@
-From 37c7471aa476dfc591a7123e39e38ef8b049f5c0 Mon Sep 17 00:00:00 2001
+From 4b0efc18e0d91967a3db11d9ef0595a5a76ad67a Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:30:32 +0400
 Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI.
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/poky/meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
index a88abc2..bc39430 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
@@ -1,4 +1,4 @@
-From 2be15956b4051680aa8da9df97ef032ac8616fb1 Mon Sep 17 00:00:00 2001
+From b015460586e2ea8a35a11d1a607728707bdf6509 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:33:04 +0400
 Subject: [PATCH] Use the multilib config files from ${B} instead of using the
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch b/poky/meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch
index f52e21e..974aca5 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch
@@ -1,4 +1,4 @@
-From 710d1325474e708e6b34eebe09f3f130420af293 Mon Sep 17 00:00:00 2001
+From b7ce05b2d969b311c6061bda32c3117c76bf7e0c Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 31 Jan 2023 22:03:38 -0800
 Subject: [PATCH] aarch64: Fix include paths when S != B
@@ -28,7 +28,7 @@
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
-index 155cace6afe..07d68958908 100644
+index 73b09e20508..10ea3672f20 100644
 --- a/gcc/config/aarch64/aarch64.h
 +++ b/gcc/config/aarch64/aarch64.h
 @@ -161,8 +161,8 @@
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/poky/meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
index b05be59..cf5efcd 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
@@ -1,4 +1,4 @@
-From e8e8a0ab572cfceb9758f99599c0db4c962e49c0 Mon Sep 17 00:00:00 2001
+From 39ab6fe76f2788b2c989d29c9016f1fe53cb736e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 20 Feb 2015 09:39:38 +0000
 Subject: [PATCH] Avoid using libdir from .la which usually points to a host
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch b/poky/meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch
index b9a3f05..e2343a3 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch
@@ -1,4 +1,4 @@
-From 93ad7cf3ff92771451c2994cab45e34a0c8574a0 Mon Sep 17 00:00:00 2001
+From 531b9df680c4380797e8e7705a8e7f8ed17ebe68 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
@@ -13,7 +13,7 @@
 
 Extend target gcc headers search to musl too
 
-Upstream-Status: Pending
+Upstream-Status: Inappropriate [embedded specific]
 
 Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
@@ -25,7 +25,7 @@
  4 files changed, 22 insertions(+)
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index fe636af3f63..065ce7e9a5b 100644
+index 04f28984b34..8ef996c0f4d 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
 @@ -640,6 +640,7 @@ libexecdir = @libexecdir@
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/poky/meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
index 5de0e3e..30224d7 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
@@ -1,4 +1,4 @@
-From e0775b77b8d10066e27ab89d15441b39024a29fd Mon Sep 17 00:00:00 2001
+From 793201cebfeb129f6f263e64310b30a0ffa48895 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 3 Mar 2015 08:21:19 +0000
 Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/poky/meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
index f1eee4a..33c601a 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
@@ -1,4 +1,4 @@
-From 7776c630e2560bacff7d1e9b04e7916ed4c05d00 Mon Sep 17 00:00:00 2001
+From 5de63874335c1c673dd132f6aca00dc13f1eac51 Mon Sep 17 00:00:00 2001
 From: Robert Yang <liezhi.yang@windriver.com>
 Date: Sun, 5 Jul 2015 20:25:18 -0700
 Subject: [PATCH] libcc1: fix libcc1's install path and rpath
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch b/poky/meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch
index e05fd4e..bdffcae 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch
@@ -1,4 +1,4 @@
-From 4f9c952ad5fa68260d6a40570b0fdb7359c85057 Mon Sep 17 00:00:00 2001
+From bbc75b93bff66891fa7ffb3af5c6ad53df1fff68 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
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/poky/meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
index d0aeeb2..8a11049 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
@@ -1,7 +1,8 @@
-From 0058f8a2233d9e96e39d09f4d994da3c96f9e030 Mon Sep 17 00:00:00 2001
+From 7e095089452b6e895ec40981752e9f902f0ad889 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 7 Dec 2015 23:41:45 +0000
-Subject: [PATCH] Search target sysroot gcc version specific dirs with multilib.
+Subject: [PATCH] Search target sysroot gcc version specific dirs with
+ multilib.
 
 We install the gcc libraries (such as crtbegin.p) into
 <sysroot><libdir>/<target-sys>/5.2.0/
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/poky/meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
index 9545e76..9bc77b4 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
@@ -1,4 +1,4 @@
-From 0a194b74f0f171b46527ff447c27fbf32406333d Mon Sep 17 00:00:00 2001
+From bf92b290556b7050df0a001cc7ae43cf79990456 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 27 Jun 2017 18:10:54 -0700
 Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets
@@ -13,7 +13,7 @@
 we do not need any library helper on glibc based systems
 but musl needs the libssp_noshared from gcc
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2023-April/615317.html]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch b/poky/meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch
index 409dff3..f785688 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch
@@ -1,4 +1,4 @@
-From 0b83874fd8e767248adffd616bcd07aa438b6905 Mon Sep 17 00:00:00 2001
+From 587ac4a59ea56da18a9989c31a75124e974cb37c Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 6 Jun 2018 12:10:22 -0700
 Subject: [PATCH] Re-introduce spe commandline options
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/poky/meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
index 205fdb6..b86edab 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
@@ -1,4 +1,4 @@
-From d8b6f60d1206a67c640096bac3b348828914163c Mon Sep 17 00:00:00 2001
+From 8c4c59521720f8c1b1e38e38896b47fcb1bf00ac Mon Sep 17 00:00:00 2001
 From: Szabolcs Nagy <nsz@port70.net>
 Date: Sat, 24 Oct 2015 20:09:53 +0000
 Subject: [PATCH] libgcc_s: Use alias for __cpu_indicator_init instead of
@@ -29,7 +29,7 @@
 	* config/i386/i386-expand.c (ix86_expand_builtin): Make __builtin_cpu_init
 	call __cpu_indicator_init_local instead of __cpu_indicator_init.
 
-Upstream-Status: Pending
+Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2023-February/612559.html]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/poky/meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
index 43df7fc..b670759 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
@@ -1,4 +1,4 @@
-From 18f400d6c91b800361af633b6b93a9e5881bbb0f Mon Sep 17 00:00:00 2001
+From f15b19d8e058c983c49c4566c1879fdaf5b1ab54 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Tue, 10 Mar 2020 08:26:53 -0700
 Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch b/poky/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch
index cb8969b..0ea8aac 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch
@@ -1,4 +1,4 @@
-From c3870d073eb9e5d82f9d3067d0fa15038b69713a Mon Sep 17 00:00:00 2001
+From 939a899b862f7a25e52b74d1587fc75fc65779c0 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Wed, 13 May 2020 15:10:38 -0700
 Subject: [PATCH] libatomic: Do not enforce march on aarch64
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch b/poky/meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch
index 11f42c5..cd962d8 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch
@@ -1,4 +1,4 @@
-From 7bd6e631e4a5273f5ecc41a5a48830a1342e5926 Mon Sep 17 00:00:00 2001
+From 696d696381dd99ec2bddb1170f96f98da36eb418 Mon Sep 17 00:00:00 2001
 From: Andrei Gherzan <andrei.gherzan@huawei.com>
 Date: Wed, 22 Dec 2021 12:49:25 +0100
 Subject: [PATCH] Fix install path of linux64.h
@@ -17,10 +17,10 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 065ce7e9a5b..d4c723968aa 100644
+index 8ef996c0f4d..21daf380e34 100644
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
-@@ -3738,6 +3738,8 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
+@@ -3731,6 +3731,8 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
  	  "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
  	  | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
  	    base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch b/poky/meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch
index ad82690..04d940a 100644
--- a/poky/meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch
+++ b/poky/meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch
@@ -1,4 +1,4 @@
-From 4623d87d779853a2862ee92a15a41fded81eddb8 Mon Sep 17 00:00:00 2001
+From 9487b1d6136ea09cce4792d59d0170c712575550 Mon Sep 17 00:00:00 2001
 From: Richard Purdie <richard.purdie@linuxfoundation.org>
 Date: Sat, 20 Aug 2022 09:04:14 -0700
 Subject: [PATCH] Avoid hardcoded build paths into ppc libgcc
diff --git a/poky/meta/recipes-devtools/gcc/gcc_13.1.bb b/poky/meta/recipes-devtools/gcc/gcc_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/gcc_13.1.bb
rename to poky/meta/recipes-devtools/gcc/gcc_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgcc-initial_13.1.bb b/poky/meta/recipes-devtools/gcc/libgcc-initial_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/libgcc-initial_13.1.bb
rename to poky/meta/recipes-devtools/gcc/libgcc-initial_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgcc_13.1.bb b/poky/meta/recipes-devtools/gcc/libgcc_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/libgcc_13.1.bb
rename to poky/meta/recipes-devtools/gcc/libgcc_13.2.bb
diff --git a/poky/meta/recipes-devtools/gcc/libgfortran_13.1.bb b/poky/meta/recipes-devtools/gcc/libgfortran_13.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/gcc/libgfortran_13.1.bb
rename to poky/meta/recipes-devtools/gcc/libgfortran_13.2.bb
diff --git a/poky/meta/recipes-devtools/git/git_2.39.3.bb b/poky/meta/recipes-devtools/git/git_2.41.0.bb
similarity index 97%
rename from poky/meta/recipes-devtools/git/git_2.39.3.bb
rename to poky/meta/recipes-devtools/git/git_2.41.0.bb
index 3393550..b84be24 100644
--- a/poky/meta/recipes-devtools/git/git_2.39.3.bb
+++ b/poky/meta/recipes-devtools/git/git_2.41.0.bb
@@ -117,7 +117,6 @@
 
 PERLTOOLS = " \
     ${bindir}/git-cvsserver \
-    ${libexecdir}/git-core/git-add--interactive \
     ${libexecdir}/git-core/git-archimport \
     ${libexecdir}/git-core/git-cvsexportcommit \
     ${libexecdir}/git-core/git-cvsimport \
@@ -161,4 +160,4 @@
                  "
 EXTRA_OEMAKE += "NO_GETTEXT=1"
 
-SRC_URI[tarball.sha256sum] = "2f9aa93c548941cc5aff641cedc24add15b912ad8c9b36ff5a41b1a9dcad783e"
+SRC_URI[tarball.sha256sum] = "c4a6a3dd1827895a80cbd824e14d94811796ae54037549e0da93f7b84cb45b9f"
diff --git a/poky/meta/recipes-devtools/go/go-1.20.6.inc b/poky/meta/recipes-devtools/go/go-1.20.7.inc
similarity index 89%
rename from poky/meta/recipes-devtools/go/go-1.20.6.inc
rename to poky/meta/recipes-devtools/go/go-1.20.7.inc
index 551171b..f797436 100644
--- a/poky/meta/recipes-devtools/go/go-1.20.6.inc
+++ b/poky/meta/recipes-devtools/go/go-1.20.7.inc
@@ -15,4 +15,4 @@
     file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
     file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \
 "
-SRC_URI[main.sha256sum] = "62ee5bc6fb55b8bae8f705e0cb8df86d6453626b4ecf93279e2867092e0b7f70"
+SRC_URI[main.sha256sum] = "2c5ee9c9ec1e733b0dbbc2bdfed3f62306e51d8172bf38f4f4e542b27520f597"
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.20.6.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.20.7.bb
similarity index 78%
rename from poky/meta/recipes-devtools/go/go-binary-native_1.20.6.bb
rename to poky/meta/recipes-devtools/go/go-binary-native_1.20.7.bb
index 5b2f8f4..3decde1 100644
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.20.6.bb
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.20.7.bb
@@ -9,9 +9,9 @@
 
 # Checksums available at https://go.dev/dl/
 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] = "b945ae2bb5db01a0fb4786afde64e6fbab50b67f6fa0eb6cfa4924f16a7ff1eb"
-SRC_URI[go_linux_arm64.sha256sum] = "4e15ab37556e979181a1a1cc60f6d796932223a0f5351d7c83768b356f84429b"
-SRC_URI[go_linux_ppc64le.sha256sum] = "a1b91a42a40bba54bfd5c96c23d72250e0c424038d0d2b5c7950b828b4905822"
+SRC_URI[go_linux_amd64.sha256sum] = "f0a87f1bcae91c4b69f8dc2bc6d7e6bfcd7524fceec130af525058c0c17b1b44"
+SRC_URI[go_linux_arm64.sha256sum] = "44781ae3b153c3b07651d93b6bc554e835a36e2d72a696281c1e4dad9efffe43"
+SRC_URI[go_linux_ppc64le.sha256sum] = "6318a1db307c12b8afe68808bd6fae4fba1e558a85b958216096869ed506dcb3"
 
 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-cross-canadian_1.20.6.bb b/poky/meta/recipes-devtools/go/go-cross-canadian_1.20.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross-canadian_1.20.6.bb
rename to poky/meta/recipes-devtools/go/go-cross-canadian_1.20.7.bb
diff --git a/poky/meta/recipes-devtools/go/go-cross_1.20.6.bb b/poky/meta/recipes-devtools/go/go-cross_1.20.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-cross_1.20.6.bb
rename to poky/meta/recipes-devtools/go/go-cross_1.20.7.bb
diff --git a/poky/meta/recipes-devtools/go/go-crosssdk_1.20.6.bb b/poky/meta/recipes-devtools/go/go-crosssdk_1.20.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-crosssdk_1.20.6.bb
rename to poky/meta/recipes-devtools/go/go-crosssdk_1.20.7.bb
diff --git a/poky/meta/recipes-devtools/go/go-native_1.20.6.bb b/poky/meta/recipes-devtools/go/go-native_1.20.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-native_1.20.6.bb
rename to poky/meta/recipes-devtools/go/go-native_1.20.7.bb
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.20.6.bb b/poky/meta/recipes-devtools/go/go-runtime_1.20.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go-runtime_1.20.6.bb
rename to poky/meta/recipes-devtools/go/go-runtime_1.20.7.bb
diff --git a/poky/meta/recipes-devtools/go/go_1.20.6.bb b/poky/meta/recipes-devtools/go/go_1.20.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/go/go_1.20.6.bb
rename to poky/meta/recipes-devtools/go/go_1.20.7.bb
diff --git a/poky/meta/recipes-devtools/jquery/jquery_3.6.3.bb b/poky/meta/recipes-devtools/jquery/jquery_3.7.0.bb
similarity index 74%
rename from poky/meta/recipes-devtools/jquery/jquery_3.6.3.bb
rename to poky/meta/recipes-devtools/jquery/jquery_3.7.0.bb
index db4745a..eceed9c 100644
--- a/poky/meta/recipes-devtools/jquery/jquery_3.6.3.bb
+++ b/poky/meta/recipes-devtools/jquery/jquery_3.7.0.bb
@@ -3,7 +3,7 @@
 DESCRIPTION = "${SUMMARY}"
 LICENSE = "MIT"
 SECTION = "devel"
-LIC_FILES_CHKSUM = "file://${S}/${BP}.js;beginline=8;endline=10;md5=9c7c6e9ab275fc1e0d99cb7180ecd14c"
+LIC_FILES_CHKSUM = "file://${S}/${BP}.js;beginline=5;endline=7;md5=9c7c6e9ab275fc1e0d99cb7180ecd14c"
 
 # unpack items to ${S} so the archiver can see them
 #
@@ -13,9 +13,9 @@
     https://code.jquery.com/${BP}.min.map;name=map;subdir=${BP} \
     "
 
-SRC_URI[js.sha256sum] = "9d02ee01919145c20b03ee9d3013af7118793dedf5d2c0696a773af90066c953"
-SRC_URI[min.sha256sum] = "a6f3f0faea4b3d48e03176341bef0ed3151ffbf226d4c6635f1c6039c0500575"
-SRC_URI[map.sha256sum] = "156b740931ade6c1a98d99713eeb186f93847ffc56057e973becab4d037ed53a"
+SRC_URI[js.sha256sum] = "265a924c42de4784cba8fd0e1bd77133bc833ea5f5a31fc77e08922c18fcfa43"
+SRC_URI[min.sha256sum] = "d8f9afbf492e4c139e9d2bcb9ba6ef7c14921eb509fb703bc7a3f911b774eff8"
+SRC_URI[map.sha256sum] = "cae47e834ee977975a48c851b165cc52ea916cc968ba7d280b1293f573cd1a48"
 
 UPSTREAM_CHECK_REGEX = "jquery-(?P<pver>\d+(\.\d+)+)\.js"
 
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf/0001-Set-interpreter-only-when-necessary.patch b/poky/meta/recipes-devtools/patchelf/patchelf/0001-Set-interpreter-only-when-necessary.patch
new file mode 100644
index 0000000..9a8216b
--- /dev/null
+++ b/poky/meta/recipes-devtools/patchelf/patchelf/0001-Set-interpreter-only-when-necessary.patch
@@ -0,0 +1,31 @@
+From f5df94952e87eaa390e5c845bc48fdb3dbc31cc2 Mon Sep 17 00:00:00 2001
+From: Yuta Hayama <hayama@lineo.co.jp>
+Date: Fri, 21 Jul 2023 10:47:02 +0900
+Subject: [PATCH] Set interpreter only when necessary
+
+If the given interpreter is already set, nothing needs to be done.
+As with modifySoname(), it skips unnecessary processing.
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/NixOS/patchelf/pull/508]
+
+ src/patchelf.cc | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/patchelf.cc b/src/patchelf.cc
+index 86429c4..e562c49 100644
+--- a/src/patchelf.cc
++++ b/src/patchelf.cc
+@@ -1460,6 +1460,11 @@ void ElfFile<ElfFileParamNames>::modifySoname(sonameMode op, const std::string &
+ template<ElfFileParams>
+ void ElfFile<ElfFileParamNames>::setInterpreter(const std::string & newInterpreter)
+ {
++    if (getInterpreter() == newInterpreter) {
++        debug("given interpreter is already set\n");
++        return;
++    }
++
+     std::string & section = replaceSection(".interp", newInterpreter.size() + 1);
+     setSubstr(section, 0, newInterpreter + '\0');
+     changed = true;
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf/0002-align-startOffset-with-p_align-instead-of-pagesize-f.patch b/poky/meta/recipes-devtools/patchelf/patchelf/0002-align-startOffset-with-p_align-instead-of-pagesize-f.patch
new file mode 100644
index 0000000..7906f0f
--- /dev/null
+++ b/poky/meta/recipes-devtools/patchelf/patchelf/0002-align-startOffset-with-p_align-instead-of-pagesize-f.patch
@@ -0,0 +1,42 @@
+From 1198329b922f3cdddc3e87a7c81d7730b646c088 Mon Sep 17 00:00:00 2001
+From: Yuta Hayama <hayama@lineo.co.jp>
+Date: Fri, 28 Jul 2023 16:22:31 +0900
+Subject: [PATCH] align startOffset with p_align instead of pagesize for
+ compatibility
+
+According to the ELF specification, the alignment of loadable process segments
+should satisfy (p_vaddr mod pagesize) == (p_offset mod pagesize). However,
+glibc earlier than 2.35 incorrectly requires that the LOAD segment be (p_vaddr
+mod p_align) == (p_offset mod p_align), and will output the error message
+"ELF load command address/offset not properly aligned" if this is not met.
+
+Since there are many systems that use glibc earlier than 2.35, it is preferable
+that newly added LOAD segments satisfy (p_vaddr mod p_align) == (p_offset mod
+p_align) for compatibility.
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/NixOS/patchelf/pull/510]
+
+ src/patchelf.cc | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/patchelf.cc b/src/patchelf.cc
+index 82b4b46..6edb81a 100644
+--- a/src/patchelf.cc
++++ b/src/patchelf.cc
+@@ -843,7 +843,13 @@ void ElfFile<ElfFileParamNames>::rewriteSectionsLibrary()
+         neededSpace += headerTableSpace;
+     debug("needed space is %d\n", neededSpace);
+ 
+-    Elf_Off startOffset = roundUp(fileContents->size(), getPageSize());
++    /* glibc earlier than 2.35 requires that the LOAD segment satisfies
++       (p_vaddr mod p_align) == (p_offset mod p_align).
++       The ELF specification requires that loadable process segments satisfy
++       (p_vaddr mod pagesize) == (p_offset mod pagesize), so glibc is probably
++       wrong, but here startOffset is calculated according to p_align for
++       compatibility. */
++    Elf_Off startOffset = roundUp(fileContents->size(), alignStartPage);
+ 
+     // In older version of binutils (2.30), readelf would check if the dynamic
+     // section segment is strictly smaller than the file (and not same size).
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf/0003-make-LOAD-segment-extensions-based-on-p_align-instea.patch b/poky/meta/recipes-devtools/patchelf/patchelf/0003-make-LOAD-segment-extensions-based-on-p_align-instea.patch
new file mode 100644
index 0000000..37eaf99
--- /dev/null
+++ b/poky/meta/recipes-devtools/patchelf/patchelf/0003-make-LOAD-segment-extensions-based-on-p_align-instea.patch
@@ -0,0 +1,32 @@
+From 299ad5766921d593e11a42a8e4dec55b4b350876 Mon Sep 17 00:00:00 2001
+From: Yuta Hayama <hayama@lineo.co.jp>
+Date: Mon, 31 Jul 2023 11:58:49 +0900
+Subject: [PATCH] make LOAD segment extensions based on p_align instead of
+ pagesize
+
+Since the p_align of the LOAD segment is no longer pagesize, the actual p_align
+value is used to calculate for the LOAD segment extension.
+
+If calculated with pagesize, new LOAD segment may be added even though the
+existing LOAD segment can be extended.
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/NixOS/patchelf/pull/510]
+
+ src/patchelf.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/patchelf.cc b/src/patchelf.cc
+index 6edb81a..86429c4 100644
+--- a/src/patchelf.cc
++++ b/src/patchelf.cc
+@@ -885,7 +885,7 @@ void ElfFile<ElfFileParamNames>::rewriteSectionsLibrary()
+         rdi(lastSeg.p_type) == PT_LOAD &&
+         rdi(lastSeg.p_flags) == (PF_R | PF_W) &&
+         rdi(lastSeg.p_align) == alignStartPage) {
+-        auto segEnd = roundUp(rdi(lastSeg.p_offset) + rdi(lastSeg.p_memsz), getPageSize());
++        auto segEnd = roundUp(rdi(lastSeg.p_offset) + rdi(lastSeg.p_memsz), alignStartPage);
+         if (segEnd == startOffset) {
+             auto newSz = startOffset + neededSpace - rdi(lastSeg.p_offset);
+             wri(lastSeg.p_filesz, wri(lastSeg.p_memsz, newSz));
diff --git a/poky/meta/recipes-devtools/patchelf/patchelf_0.18.0.bb b/poky/meta/recipes-devtools/patchelf/patchelf_0.18.0.bb
index e8bc2ff..dece342 100644
--- a/poky/meta/recipes-devtools/patchelf/patchelf_0.18.0.bb
+++ b/poky/meta/recipes-devtools/patchelf/patchelf_0.18.0.bb
@@ -4,7 +4,11 @@
 
 LICENSE = "GPL-3.0-only"
 
-SRC_URI = "git://github.com/NixOS/patchelf;protocol=https;branch=master"
+SRC_URI = "git://github.com/NixOS/patchelf;protocol=https;branch=master \
+    file://0001-Set-interpreter-only-when-necessary.patch \
+    file://0002-align-startOffset-with-p_align-instead-of-pagesize-f.patch \
+    file://0003-make-LOAD-segment-extensions-based-on-p_align-instea.patch \
+"
 SRCREV = "99c24238981b7b1084313aca8f5c493bb46f302c"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/python/python3-certifi_2023.5.7.bb b/poky/meta/recipes-devtools/python/python3-certifi_2023.7.22.bb
similarity index 86%
rename from poky/meta/recipes-devtools/python/python3-certifi_2023.5.7.bb
rename to poky/meta/recipes-devtools/python/python3-certifi_2023.7.22.bb
index 924b05c..c4e1e7b 100644
--- a/poky/meta/recipes-devtools/python/python3-certifi_2023.5.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-certifi_2023.7.22.bb
@@ -7,7 +7,7 @@
 LICENSE = "ISC"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3c2b7404369c587c3559afb604fce2f2"
 
-SRC_URI[sha256sum] = "0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"
+SRC_URI[sha256sum] = "539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"
 
 inherit pypi setuptools3
 
diff --git a/poky/meta/recipes-devtools/python/python3-chardet_5.1.0.bb b/poky/meta/recipes-devtools/python/python3-chardet_5.2.0.bb
similarity index 86%
rename from poky/meta/recipes-devtools/python/python3-chardet_5.1.0.bb
rename to poky/meta/recipes-devtools/python/python3-chardet_5.2.0.bb
index 9b2644e..cea7ebc 100644
--- a/poky/meta/recipes-devtools/python/python3-chardet_5.1.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-chardet_5.2.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "LGPL-2.1-only"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=4fbd65380cdd255951079008b364516c"
 
-SRC_URI[sha256sum] = "0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5"
+SRC_URI[sha256sum] = "1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"
 
 # setup.py of chardet needs this.
 DEPENDS += "${PYTHON_PN}-pytest-runner-native"
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.2.bb b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.3.bb
similarity index 90%
rename from poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.2.bb
rename to poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.3.bb
index 52f2c35..1b499e0 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.3.bb
@@ -9,7 +9,7 @@
 # NOTE: Make sure to keep this recipe at the same version as python3-cryptography
 #       Upgrade both recipes at the same time
 
-SRC_URI[sha256sum] = "028dff94a8522ca818b11295ff12df55f348f33a193c0597ddfe8239e53d1582"
+SRC_URI[sha256sum] = "80de0452c4b34f56f5518e81ebd75b6b905f5728aaed521d42e41f4ebc8a43fb"
 
 PYPI_PACKAGE = "cryptography_vectors"
 
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography_41.0.2.bb b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.3.bb
similarity index 95%
rename from poky/meta/recipes-devtools/python/python3-cryptography_41.0.2.bb
rename to poky/meta/recipes-devtools/python/python3-cryptography_41.0.3.bb
index 20d6c97..b6ea660 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography_41.0.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.3.bb
@@ -8,7 +8,7 @@
                    "
 LDSHARED += "-pthread"
 
-SRC_URI[sha256sum] = "7d230bf856164de164ecb615ccc14c7fc6de6906ddd5b491f3af90d3514c925c"
+SRC_URI[sha256sum] = "6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34"
 
 SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \
             file://0001-Fix-include-directory-when-cross-compiling-9129.patch \
diff --git a/poky/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch b/poky/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
new file mode 100644
index 0000000..a2df482
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-dtc/0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch
@@ -0,0 +1,132 @@
+From 4d4703e0199fb3556c37694e4d951785abca22fd Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Wed, 19 Jan 2022 12:46:42 -0500
+Subject: [PATCH] Revert "libfdt: overlay: make overlay_get_target() public"
+
+This reverts commit 45f3d1a095dd3440578d5c6313eba555a791f3fb.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+---
+ libfdt/fdt_overlay.c | 29 ++++++++++++++++++++++-------
+ libfdt/libfdt.h      | 18 ------------------
+ libfdt/version.lds   |  1 -
+ 3 files changed, 22 insertions(+), 26 deletions(-)
+
+diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c
+index 5c0c398..d217e79 100644
+--- a/libfdt/fdt_overlay.c
++++ b/libfdt/fdt_overlay.c
+@@ -40,22 +40,37 @@ static uint32_t overlay_get_target_phandle(const void *fdto, int fragment)
+ 	return fdt32_to_cpu(*val);
+ }
+ 
+-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
+-			      int fragment_offset, char const **pathp)
++/**
++ * overlay_get_target - retrieves the offset of a fragment's target
++ * @fdt: Base device tree blob
++ * @fdto: Device tree overlay blob
++ * @fragment: node offset of the fragment in the overlay
++ * @pathp: pointer which receives the path of the target (or NULL)
++ *
++ * overlay_get_target() retrieves the target offset in the base
++ * device tree of a fragment, no matter how the actual targeting is
++ * done (through a phandle or a path)
++ *
++ * returns:
++ *      the targeted node offset in the base device tree
++ *      Negative error code on error
++ */
++static int overlay_get_target(const void *fdt, const void *fdto,
++			      int fragment, char const **pathp)
+ {
+ 	uint32_t phandle;
+ 	const char *path = NULL;
+ 	int path_len = 0, ret;
+ 
+ 	/* Try first to do a phandle based lookup */
+-	phandle = overlay_get_target_phandle(fdto, fragment_offset);
++	phandle = overlay_get_target_phandle(fdto, fragment);
+ 	if (phandle == (uint32_t)-1)
+ 		return -FDT_ERR_BADPHANDLE;
+ 
+ 	/* no phandle, try path */
+ 	if (!phandle) {
+ 		/* And then a path based lookup */
+-		path = fdt_getprop(fdto, fragment_offset, "target-path", &path_len);
++		path = fdt_getprop(fdto, fragment, "target-path", &path_len);
+ 		if (path)
+ 			ret = fdt_path_offset(fdt, path);
+ 		else
+@@ -621,7 +636,7 @@ static int overlay_merge(void *fdt, void *fdto)
+ 		if (overlay < 0)
+ 			return overlay;
+ 
+-		target = fdt_overlay_target_offset(fdt, fdto, fragment, NULL);
++		target = overlay_get_target(fdt, fdto, fragment, NULL);
+ 		if (target < 0)
+ 			return target;
+ 
+@@ -764,7 +779,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
+ 			return -FDT_ERR_BADOVERLAY;
+ 
+ 		/* get the target of the fragment */
+-		ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
++		ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+ 		if (ret < 0)
+ 			return ret;
+ 		target = ret;
+@@ -786,7 +801,7 @@ static int overlay_symbol_update(void *fdt, void *fdto)
+ 
+ 		if (!target_path) {
+ 			/* again in case setprop_placeholder changed it */
+-			ret = fdt_overlay_target_offset(fdt, fdto, fragment, &target_path);
++			ret = overlay_get_target(fdt, fdto, fragment, &target_path);
+ 			if (ret < 0)
+ 				return ret;
+ 			target = ret;
+diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
+index a7f432c..7f117e8 100644
+--- a/libfdt/libfdt.h
++++ b/libfdt/libfdt.h
+@@ -2116,24 +2116,6 @@ int fdt_del_node(void *fdt, int nodeoffset);
+  */
+ int fdt_overlay_apply(void *fdt, void *fdto);
+ 
+-/**
+- * fdt_overlay_target_offset - retrieves the offset of a fragment's target
+- * @fdt: Base device tree blob
+- * @fdto: Device tree overlay blob
+- * @fragment_offset: node offset of the fragment in the overlay
+- * @pathp: pointer which receives the path of the target (or NULL)
+- *
+- * fdt_overlay_target_offset() retrieves the target offset in the base
+- * device tree of a fragment, no matter how the actual targeting is
+- * done (through a phandle or a path)
+- *
+- * returns:
+- *      the targeted node offset in the base device tree
+- *      Negative error code on error
+- */
+-int fdt_overlay_target_offset(const void *fdt, const void *fdto,
+-			      int fragment_offset, char const **pathp);
+-
+ /**********************************************************************/
+ /* Debugging / informational functions                                */
+ /**********************************************************************/
+diff --git a/libfdt/version.lds b/libfdt/version.lds
+index cbce5d4..7ab85f1 100644
+--- a/libfdt/version.lds
++++ b/libfdt/version.lds
+@@ -77,7 +77,6 @@ LIBFDT_1.2 {
+ 		fdt_appendprop_addrrange;
+ 		fdt_setprop_inplace_namelen_partial;
+ 		fdt_create_with_flags;
+-		fdt_overlay_target_offset;
+ 	local:
+ 		*;
+ };
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-devtools/python/python3-dtc_1.6.1.bb b/poky/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
new file mode 100644
index 0000000..a868bd0
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-dtc_1.6.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Python Library for the Device Tree Compiler"
+HOMEPAGE = "https://devicetree.org/"
+DESCRIPTION = "A python library for the Device Tree Compiler, a tool used to manipulate Device Tree files which contain a data structure for describing hardware."
+SECTION = "bootloader"
+LICENSE = "GPL-2.0-only | BSD-2-Clause"
+
+DEPENDS = "flex-native bison-native swig-native python3-setuptools-scm-native libyaml dtc"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git;branch=master \
+           file://0001-Revert-libfdt-overlay-make-overlay_get_target-public.patch \
+          "
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+LIC_FILES_CHKSUM = "file://pylibfdt/libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90"
+
+SRCREV = "c001fc01a43e7a06447c06ea3d50bd60641322b8"
+
+PV = "1.6.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+PYPA_WHEEL = "${S}/dist/libfdt-1.6.2*.whl"
+
+inherit setuptools3 pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-dtschema_2023.4.bb b/poky/meta/recipes-devtools/python/python3-dtschema_2023.6.1.bb
similarity index 61%
rename from poky/meta/recipes-devtools/python/python3-dtschema_2023.4.bb
rename to poky/meta/recipes-devtools/python/python3-dtschema_2023.6.1.bb
index f87563f..0c2c156 100644
--- a/poky/meta/recipes-devtools/python/python3-dtschema_2023.4.bb
+++ b/poky/meta/recipes-devtools/python/python3-dtschema_2023.6.1.bb
@@ -7,9 +7,14 @@
 
 PYPI_PACKAGE = "dtschema"
 
-SRC_URI[sha256sum] = "6daefb8f54403b4d82961b3346571200571747ab01950fd36c1f69950fa7a8cf"
+SRC_URI[sha256sum] = "d9dc11cea6a46ae2ee5ac4a5a1c7da7cb3704417cb390881820460f7c61eb784"
 
 DEPENDS += "python3-setuptools-scm-native"
-RDEPENDS:${PN} += "python3-ruamel-yaml python3-jsonschema python3-rfc3987"
+RDEPENDS:${PN} += "\
+        python3-dtc \
+        python3-jsonschema \
+        python3-rfc3987 \
+        python3-ruamel-yaml \
+        "
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.81.2.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.82.0.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_6.81.2.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_6.82.0.bb
index 93bf638..0aeeae1 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.81.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.82.0.bb
@@ -13,7 +13,7 @@
     file://test_rle.py \
     "
 
-SRC_URI[sha256sum] = "e35165a73064370d30d476d7218f600d2bf861ff218192c9e994cb36aa190ae7"
+SRC_URI[sha256sum] = "ffece8e40a34329e7112f7408f2c45fe587761978fdbc6f4f91bf0d683a7d4d9"
 
 RDEPENDS:${PN} += " \
     python3-attrs \
diff --git a/poky/meta/recipes-devtools/python/python3-more-itertools_9.1.0.bb b/poky/meta/recipes-devtools/python/python3-more-itertools_10.0.0.bb
similarity index 87%
rename from poky/meta/recipes-devtools/python/python3-more-itertools_9.1.0.bb
rename to poky/meta/recipes-devtools/python/python3-more-itertools_10.0.0.bb
index 8c33b71..e07d4b7 100644
--- a/poky/meta/recipes-devtools/python/python3-more-itertools_9.1.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-more-itertools_10.0.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
 
-SRC_URI[sha256sum] = "cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d"
+SRC_URI[sha256sum] = "cd65437d7c4b615ab81c0640c0480bc29a550ea032891977681efd28344d51e1"
 
 inherit pypi python_flit_core ptest
 
diff --git a/poky/meta/recipes-devtools/python/python3-pyyaml_6.0.bb b/poky/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
similarity index 81%
rename from poky/meta/recipes-devtools/python/python3-pyyaml_6.0.bb
rename to poky/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
index d142a0f..4ab8f03 100644
--- a/poky/meta/recipes-devtools/python/python3-pyyaml_6.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
@@ -9,7 +9,7 @@
 
 inherit pypi python_setuptools_build_meta
 
-SRC_URI[sha256sum] = "68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"
+SRC_URI[sha256sum] = "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"
 
 RDEPENDS:${PN} += "\
     ${PYTHON_PN}-datetime \
diff --git a/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.32.bb b/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.32.bb
index b745f34..4b5e77e 100644
--- a/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.32.bb
+++ b/poky/meta/recipes-devtools/python/python3-ruamel-yaml_0.17.32.bb
@@ -1,6 +1,5 @@
 SUMMARY = "YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order."
 HOMEPAGE = "https://pypi.org/project/ruamel.yaml/"
-AUTHOR = "Anthon van der Neut"
 
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=0e5f41db57c3a8d3584b450d35985ad1"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinx_7.0.1.bb b/poky/meta/recipes-devtools/python/python3-sphinx_7.1.1.bb
similarity index 88%
rename from poky/meta/recipes-devtools/python/python3-sphinx_7.0.1.bb
rename to poky/meta/recipes-devtools/python/python3-sphinx_7.1.1.bb
index 10e01a2..fa616cd 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinx_7.0.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinx_7.1.1.bb
@@ -4,13 +4,10 @@
 LICENSE = "BSD-2-Clause & MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5eb6ac1b115a1ed24a12d9f15b633993"
 
-PYPI_PACKAGE = "Sphinx"
-
-SRC_URI[sha256sum] = "61e025f788c5977d9412587e733733a289e2b9fdc2fef8868ddfbfc4ccfe881d"
+SRC_URI[sha256sum] = "59b8e391f0768a96cd233e8300fe7f0a8dc2f64f83dc2a54336a9a84f428ff4e"
 
 inherit python_flit_core pypi
 
- 
 do_install:append () {
 	# The cache format of "{None, 'en', 'ja'}" doesn't seem to be consistent (dict ordering?)
 	rm ${D}${libdir}/${PYTHON_DIR}/site-packages/sphinx/writers/__pycache__/*latex*
diff --git a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.3.bb b/poky/meta/recipes-devtools/python/python3-urllib3_2.0.4.bb
similarity index 87%
rename from poky/meta/recipes-devtools/python/python3-urllib3_2.0.3.bb
rename to poky/meta/recipes-devtools/python/python3-urllib3_2.0.4.bb
index 64b21db..0abd2ad 100644
--- a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-urllib3_2.0.4.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=52d273a3054ced561275d4d15260ecda"
 
-SRC_URI[sha256sum] = "bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"
+SRC_URI[sha256sum] = "8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"
 
 inherit pypi python_hatchling
 
diff --git a/poky/meta/recipes-devtools/python/python3-wheel_0.40.0.bb b/poky/meta/recipes-devtools/python/python3-wheel_0.41.0.bb
similarity index 85%
rename from poky/meta/recipes-devtools/python/python3-wheel_0.40.0.bb
rename to poky/meta/recipes-devtools/python/python3-wheel_0.41.0.bb
index 2b8111d..2d87425 100644
--- a/poky/meta/recipes-devtools/python/python3-wheel_0.40.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-wheel_0.41.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7ffb0db04527cfe380e4f2726bd05ebf"
 
-SRC_URI[sha256sum] = "cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873"
+SRC_URI[sha256sum] = "55a0f0a5a84869bce5ba775abfd9c462e3a6b1b7b7ec69d72c0b83d673a5114d"
 
 inherit python_flit_core pypi
 
diff --git a/poky/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch b/poky/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch
index 61dd4a5..a7d3726 100644
--- a/poky/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch
+++ b/poky/meta/recipes-devtools/python/python3/0001-Skip-failing-tests-due-to-load-variability-on-YP-AB.patch
@@ -1,4 +1,4 @@
-From 01e02fb4720ecbbc44c694ee1b7fb6d5d95b5fe2 Mon Sep 17 00:00:00 2001
+From 0c8002d12149fdfbbcd9a9215876d474f157eb9c Mon Sep 17 00:00:00 2001
 From: Yi Fan Yu <yifan.yu@windriver.com>
 Date: Thu, 1 Apr 2021 13:08:37 -0700
 Subject: [PATCH] Skip failing tests due to load variability on YP AB
@@ -11,16 +11,22 @@
 
 Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
 
+Skip two additional tests due to suspected load variability failures.
+
+[YOCTO #15131]
+[YOCTO #15177]
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
 ---
- Lib/test/_test_multiprocessing.py | 2 ++
- Lib/test/test_time.py             | 1 +
- 2 files changed, 3 insertions(+)
+ Lib/test/_test_multiprocessing.py | 3 +++
+ Lib/test/test_time.py             | 2 ++
+ 2 files changed, 5 insertions(+)
 
 diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py
-index 599c3f2..23328be 100644
+index b50a154320..b8b2c4204d 100644
 --- a/Lib/test/_test_multiprocessing.py
 +++ b/Lib/test/_test_multiprocessing.py
-@@ -618,6 +618,7 @@ class _TestProcess(BaseTestCase):
+@@ -618,6 +618,7 @@ def test_close(self):
  
          close_queue(q)
  
@@ -28,7 +34,15 @@
      def test_many_processes(self):
          if self.TYPE == 'threads':
              self.skipTest('test not appropriate for {}'.format(self.TYPE))
-@@ -4890,6 +4891,7 @@ class TestWait(unittest.TestCase):
+@@ -2003,6 +2004,7 @@ def _test_timeout_f(cls, barrier, results):
+         except threading.BrokenBarrierError:
+             results.append(True)
+ 
++    @unittest.skip('timing related test, dependent on load')
+     def test_timeout(self):
+         """
+         Test wait(timeout)
+@@ -4890,6 +4892,7 @@ def signal_and_sleep(cls, sem, period):
          sem.release()
          time.sleep(period)
  
@@ -37,10 +51,10 @@
          from multiprocessing.connection import wait
  
 diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
-index 884b142..542e980 100644
+index 884b14231f..8f0638c0d7 100644
 --- a/Lib/test/test_time.py
 +++ b/Lib/test/test_time.py
-@@ -492,6 +492,7 @@ class TimeTestCase(unittest.TestCase):
+@@ -492,6 +492,7 @@ def test_perf_counter(self):
      @unittest.skipIf(
          support.is_wasi, "process_time not available on WASI"
      )
@@ -48,3 +62,14 @@
      def test_process_time(self):
          # process_time() should not include time spend during a sleep
          start = time.process_time()
+@@ -505,6 +506,7 @@ def test_process_time(self):
+         self.assertTrue(info.monotonic)
+         self.assertFalse(info.adjustable)
+ 
++    @unittest.skip('timing related test, dependent on load')
+     def test_thread_time(self):
+         if not hasattr(time, 'thread_time'):
+             if sys.platform.startswith(('linux', 'win')):
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/rust/files/bootstrap_fail.patch b/poky/meta/recipes-devtools/rust/files/bootstrap_fail.patch
new file mode 100644
index 0000000..1f44b6e
--- /dev/null
+++ b/poky/meta/recipes-devtools/rust/files/bootstrap_fail.patch
@@ -0,0 +1,127 @@
+rust: Fix BOOTSTRAP_CARGO failure during Rust Oe-selftest
+
+BOOTSTRAP_CARGO command fails due to codegen flags like `-Cpanic` were
+prevented from being reflected in the current target configuration which
+leads to Rust build(rust version 1.70) failure in Oe-selftest.
+
+Upstream-Status: Backport [https://github.com/rust-lang/rust/commit/9dffb52738e0b2ccd15af36d4607a709b21e020c]
+
+Signed-off-by: Yash Shinde <yashinde145@gmail.com>
+---
+diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
+--- a/src/tools/compiletest/src/common.rs
++++ b/src/tools/compiletest/src/common.rs
+@@ -431,7 +431,6 @@
+             .unwrap()
+         };
+
+-        let mut current = None;
+         let mut all_targets = HashSet::new();
+         let mut all_archs = HashSet::new();
+         let mut all_oses = HashSet::new();
+@@ -452,14 +451,11 @@
+             }
+             all_pointer_widths.insert(format!("{}bit", cfg.pointer_width));
+
+-            if target == config.target {
+-                current = Some(cfg);
+-            }
+             all_targets.insert(target.into());
+         }
+
+         Self {
+-            current: current.expect("current target not found"),
++            current: Self::get_current_target_config(config),
+             all_targets,
+             all_archs,
+             all_oses,
+@@ -471,6 +467,89 @@
+         }
+     }
+
++    fn get_current_target_config(config: &Config) -> TargetCfg {
++        let mut arch = None;
++        let mut os = None;
++        let mut env = None;
++        let mut abi = None;
++        let mut families = Vec::new();
++        let mut pointer_width = None;
++        let mut endian = None;
++        let mut panic = None;
++
++        for config in
++            rustc_output(config, &["--print=cfg", "--target", &config.target]).trim().lines()
++        {
++            let (name, value) = config
++                .split_once("=\"")
++                .map(|(name, value)| {
++                    (
++                        name,
++                        Some(
++                            value
++                                .strip_suffix("\"")
++                                .expect("key-value pair should be properly quoted"),
++                        ),
++                    )
++                })
++                .unwrap_or_else(|| (config, None));
++
++            match name {
++                "target_arch" => {
++                    arch = Some(value.expect("target_arch should be a key-value pair").to_string());
++                }
++                "target_os" => {
++                    os = Some(value.expect("target_os sould be a key-value pair").to_string());
++                }
++                "target_env" => {
++                    env = Some(value.expect("target_env should be a key-value pair").to_string());
++                }
++                "target_abi" => {
++                    abi = Some(value.expect("target_abi should be a key-value pair").to_string());
++                }
++                "target_family" => {
++                    families
++                        .push(value.expect("target_family should be a key-value pair").to_string());
++                }
++                "target_pointer_width" => {
++                    pointer_width = Some(
++                        value
++                            .expect("target_pointer_width should be a key-value pair")
++                            .parse::<u32>()
++                            .expect("target_pointer_width should be a valid u32"),
++                    );
++                }
++                "target_endian" => {
++                    endian = Some(match value.expect("target_endian should be a key-value pair") {
++                        "big" => Endian::Big,
++                        "little" => Endian::Little,
++                        _ => panic!("target_endian should be either 'big' or 'little'"),
++                    });
++                }
++                "panic" => {
++                    panic = Some(match value.expect("panic should be a key-value pair") {
++                        "abort" => PanicStrategy::Abort,
++                        "unwind" => PanicStrategy::Unwind,
++                        _ => panic!("panic should be either 'abort' or 'unwind'"),
++                    });
++                }
++                _ => (),
++            }
++        }
++
++        TargetCfg {
++            arch: arch.expect("target configuration should specify target_arch"),
++            os: os.expect("target configuration should specify target_os"),
++            env: env.expect("target configuration should specify target_env"),
++            abi: abi.expect("target configuration should specify target_abi"),
++            families,
++            pointer_width: pointer_width
++                .expect("target configuration should specify target_pointer_width"),
++            endian: endian.expect("target configuration should specify target_endian"),
++            panic: panic.expect("target configuration should specify panic"),
++        }
++    }
++
+     // #[cfg(bootstrap)]
+     // Needed only for one cycle, remove during the bootstrap bump.
+     fn collect_all_slow(config: &Config) -> HashMap<String, TargetCfg> {
diff --git a/poky/meta/recipes-devtools/rust/files/rust-oe-selftest.patch b/poky/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
deleted file mode 100644
index 8e9da47..0000000
--- a/poky/meta/recipes-devtools/rust/files/rust-oe-selftest.patch
+++ /dev/null
@@ -1,2324 +0,0 @@
-Rust testsuite outputs error even on a single testcase failure.
-Hence, some test runs are ignored as they fail with error messages.
-
-Upstream-Status: Inappropriate [Ignore the testcase that errors out]
-Signed-off-by: Pgowda <pgowda.cve@gmail.com>
----
-
-diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs
-index eb8e65a6d..6e65e8787 100644
---- a/compiler/rustc_interface/src/tests.rs
-+++ b/compiler/rustc_interface/src/tests.rs
-@@ -103,6 +103,7 @@ fn assert_non_crate_hash_different(x: &Options, y: &Options) {
-
- // When the user supplies --test we should implicitly supply --cfg test
- #[test]
-+#[ignore]
- fn test_switch_implies_cfg_test() {
-     rustc_span::create_default_session_globals_then(|| {
-         let matches = optgroups().parse(&["--test".to_string()]).unwrap();
-@@ -114,6 +115,7 @@ fn test_switch_implies_cfg_test() {
-
- // When the user supplies --test and --cfg test, don't implicitly add another --cfg test
- #[test]
-+#[ignore]
- fn test_switch_implies_cfg_test_unless_cfg_test() {
-     rustc_span::create_default_session_globals_then(|| {
-         let matches = optgroups().parse(&["--test".to_string(), "--cfg=test".to_string()]).unwrap();
-@@ -126,6 +128,7 @@ fn test_switch_implies_cfg_test_unless_cfg_test() {
- }
-
- #[test]
-+#[ignore]
- fn test_can_print_warnings() {
-     rustc_span::create_default_session_globals_then(|| {
-         let matches = optgroups().parse(&["-Awarnings".to_string()]).unwrap();
-diff --git a/library/test/src/stats/tests.rs b/library/test/src/stats/tests.rs
-index 3a6e8401b..8442a6b39 100644
---- a/library/test/src/stats/tests.rs
-+++ b/library/test/src/stats/tests.rs
-@@ -40,6 +40,7 @@ fn check(samples: &[f64], summ: &Summary) {
- }
-
- #[test]
-+#[ignore]
- fn test_min_max_nan() {
-     let xs = &[1.0, 2.0, f64::NAN, 3.0, 4.0];
-     let summary = Summary::new(xs);
-diff --git a/tests/assembly/asm/aarch64-outline-atomics.rs b/tests/assembly/asm/aarch64-outline-atomics.rs
-index c2ec4e911..150d23004 100644
---- a/tests/assembly/asm/aarch64-outline-atomics.rs
-+++ b/tests/assembly/asm/aarch64-outline-atomics.rs
-@@ -4,6 +4,7 @@
- // needs-llvm-components: aarch64
- // only-aarch64
- // only-linux
-+// ignore-stage1
-
- #![crate_type = "rlib"]
-
-diff --git a/tests/codegen/abi-main-signature-32bit-c-int.rs b/tests/codegen/abi-main-signature-32bit-c-int.rs
-index 7f22ddcfc..ec84b72aa 100644
---- a/tests/codegen/abi-main-signature-32bit-c-int.rs
-+++ b/tests/codegen/abi-main-signature-32bit-c-int.rs
-@@ -3,6 +3,7 @@
-
- // This test is for targets with 32bit c_int only.
- // ignore-msp430
-+// ignore-stage1
-
- fn main() {
- }
-diff --git a/tests/codegen/sse42-implies-crc32.rs b/tests/codegen/sse42-implies-crc32.rs
-index 47b1a8993..71e2d5ef7 100644
---- a/tests/codegen/sse42-implies-crc32.rs
-+++ b/tests/codegen/sse42-implies-crc32.rs
-@@ -1,5 +1,6 @@
- // only-x86_64
- // compile-flags: -Copt-level=3
-+// ignore-stage1
-
- #![crate_type = "lib"]
-
-diff --git a/tests/codegen/thread-local.rs b/tests/codegen/thread-local.rs
-index 0f1b29ca7..b2b4fd2ff 100644
---- a/tests/codegen/thread-local.rs
-+++ b/tests/codegen/thread-local.rs
-@@ -5,6 +5,7 @@
- // ignore-emscripten globals are used instead of thread locals
- // ignore-android does not use #[thread_local]
- // ignore-nto does not use #[thread_local]
-+// ignore-stage1
-
- #![crate_type = "lib"]
-
-diff --git a/tests/codegen/uninit-consts.rs b/tests/codegen/uninit-consts.rs
-index 4c07740b3..dac5da866 100644
---- a/tests/codegen/uninit-consts.rs
-+++ b/tests/codegen/uninit-consts.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -C no-prepopulate-passes
-+// ignore-stage1
-
- // Check that we use undef (and not zero) for uninitialized bytes in constants.
-
-diff --git a/tests/pretty/raw-str-nonexpr.rs b/tests/pretty/raw-str-nonexpr.rs
-index 12440b5ae..5b62d45ff 100644
---- a/tests/pretty/raw-str-nonexpr.rs
-+++ b/tests/pretty/raw-str-nonexpr.rs
-@@ -1,5 +1,6 @@
- // needs-asm-support
- // pp-exact
-+// ignore-stage1
-
- #[cfg(foo = r#"just parse this"#)]
- extern crate blah as blah;
-diff --git a/tests/run-make/issue-36710/Makefile b/tests/run-make/issue-36710/Makefile
-index 7b91107a234..e404fcc3996 100644
---- a/tests/run-make/issue-36710/Makefile
-+++ b/tests/run-make/issue-36710/Makefile
-@@ -6,6 +6,7 @@
- # ignore-musl FIXME: this makefile needs teaching how to use a musl toolchain
- #                    (see dist-i586-gnu-i586-i686-musl Dockerfile)
- # ignore-sgx
-+# ignore-stage1
- 
- include ../tools.mk
-
-diff --git a/tests/rustdoc-ui/cfg-test.rs b/tests/rustdoc-ui/cfg-test.rs
-index d4ca92585..fceb2968d 100644
---- a/tests/rustdoc-ui/cfg-test.rs
-+++ b/tests/rustdoc-ui/cfg-test.rs
-@@ -5,6 +5,7 @@
-
- // Crates like core have doctests gated on `cfg(not(test))` so we need to make
- // sure `cfg(test)` is not active when running `rustdoc --test`.
-+// ignore-stage1
-
- /// this doctest will be ignored:
- ///
-diff --git a/tests/rustdoc-ui/check-cfg-test.rs b/tests/rustdoc-ui/check-cfg-test.rs
-index 626cc8387..b0f9a1948 100644
---- a/tests/rustdoc-ui/check-cfg-test.rs
-+++ b/tests/rustdoc-ui/check-cfg-test.rs
-@@ -3,6 +3,7 @@
- // normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
-
- /// The doctest will produce a warning because feature invalid is unexpected
- /// ```
-diff --git a/tests/rustdoc-ui/display-output.rs b/tests/rustdoc-ui/display-output.rs
-index ec27a9f6b..61655fa6e 100644
---- a/tests/rustdoc-ui/display-output.rs
-+++ b/tests/rustdoc-ui/display-output.rs
-@@ -5,6 +5,7 @@
- // compile-flags:--test --test-args=--show-output
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
-
- /// ```
- /// #![warn(unused)]
-diff --git a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs b/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
-index 97259f782..50a155fba 100644
---- a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
-+++ b/tests/rustdoc-ui/doc-comment-multi-line-attr.rs
-@@ -3,6 +3,7 @@
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
- // check-pass
-+// ignore-stage1
-
- //! ```rust
- //! #![deny(
-diff --git a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs b/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
-index b2a8133c9..ea064ba85 100644
---- a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
-+++ b/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs
-@@ -2,6 +2,7 @@
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
- // check-pass
-+// ignore-stage1
-
- /// ```
- /// # #![cfg_attr(not(dox), deny(missing_abi,
-diff --git a/tests/rustdoc-ui/doc-test-doctest-feature.rs b/tests/rustdoc-ui/doc-test-doctest-feature.rs
-index 0b79aaece..8cef6d974 100644
---- a/tests/rustdoc-ui/doc-test-doctest-feature.rs
-+++ b/tests/rustdoc-ui/doc-test-doctest-feature.rs
-@@ -5,6 +5,7 @@
-
- // Make sure `cfg(doctest)` is set when finding doctests but not inside
- // the doctests.
-+// ignore-stage1
-
- /// ```
- /// assert!(!cfg!(doctest));
-diff --git a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs b/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
-index bf334c67e..c372097bd 100644
---- a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
-+++ b/tests/rustdoc-ui/doc-test-rustdoc-feature.rs
-@@ -2,6 +2,7 @@
- // compile-flags:--test
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
-
- #![feature(doc_cfg)]
-
-diff --git a/tests/rustdoc-ui/doctest-output.rs b/tests/rustdoc-ui/doctest-output.rs
-index 2670fa572..b4b612916 100644
---- a/tests/rustdoc-ui/doctest-output.rs
-+++ b/tests/rustdoc-ui/doctest-output.rs
-@@ -4,6 +4,7 @@
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
- // check-pass
-+// ignore-stage1
-
- //! ```
- //! assert_eq!(1 + 1, 2);
-diff --git a/tests/rustdoc-ui/failed-doctest-compile-fail.rs b/tests/rustdoc-ui/failed-doctest-compile-fail.rs
-index 6f2ff5d70..2561ffdc3 100644
---- a/tests/rustdoc-ui/failed-doctest-compile-fail.rs
-+++ b/tests/rustdoc-ui/failed-doctest-compile-fail.rs
-@@ -5,6 +5,7 @@
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
- // failure-status: 101
-+// ignore-stage1
-
- /// ```compile_fail
- /// println!("Hello");
-diff --git a/tests/rustdoc-ui/issue-91134.rs b/tests/rustdoc-ui/issue-91134.rs
-index d2ff3a252..90e0816d2 100644
---- a/tests/rustdoc-ui/issue-91134.rs
-+++ b/tests/rustdoc-ui/issue-91134.rs
-@@ -4,6 +4,7 @@
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
- // edition:2021
-+// ignore-stage1
-
- /// <https://github.com/rust-lang/rust/issues/91134>
- ///
-diff --git a/tests/rustdoc-ui/nocapture.rs b/tests/rustdoc-ui/nocapture.rs
-index 321f5ca08..463751e48 100644
---- a/tests/rustdoc-ui/nocapture.rs
-+++ b/tests/rustdoc-ui/nocapture.rs
-@@ -2,6 +2,7 @@
- // compile-flags:--test -Zunstable-options --nocapture
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
-
- /// ```
- /// println!("hello!");
-diff --git a/tests/rustdoc-ui/run-directory.rs b/tests/rustdoc-ui/run-directory.rs
-index 0d432c1e6..357e3ccc3 100644
---- a/tests/rustdoc-ui/run-directory.rs
-+++ b/tests/rustdoc-ui/run-directory.rs
-@@ -6,6 +6,7 @@
- // [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
-
- /// ```
- /// assert_eq!(
-diff --git a/tests/rustdoc-ui/test-no_std.rs b/tests/rustdoc-ui/test-no_std.rs
-index ee919985e..3e479bf6f 100644
---- a/tests/rustdoc-ui/test-no_std.rs
-+++ b/tests/rustdoc-ui/test-no_std.rs
-@@ -2,6 +2,7 @@
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
- // check-pass
-+// ignore-stage1
-
- #![no_std]
-
-diff --git a/tests/rustdoc-ui/test-type.rs b/tests/rustdoc-ui/test-type.rs
-index 882da5c25..bc8e8e30f 100644
---- a/tests/rustdoc-ui/test-type.rs
-+++ b/tests/rustdoc-ui/test-type.rs
-@@ -2,6 +2,7 @@
- // check-pass
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
-
- /// ```
- /// let a = true;
-diff --git a/tests/ui-fulldeps/internal-lints/default_hash_types.rs b/tests/ui-fulldeps/internal-lints/default_hash_types.rs
-index 795c7d2dc..dc6b4f53f 100644
---- a/tests/ui-fulldeps/internal-lints/default_hash_types.rs
-+++ b/tests/ui-fulldeps/internal-lints/default_hash_types.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -Z unstable-options
-+// ignore-stage1
-
- #![feature(rustc_private)]
- #![deny(rustc::default_hash_types)]
-diff --git a/tests/ui-fulldeps/internal-lints/diagnostics.rs b/tests/ui-fulldeps/internal-lints/diagnostics.rs
-index 643e81d99..2433228ef 100644
---- a/tests/ui-fulldeps/internal-lints/diagnostics.rs
-+++ b/tests/ui-fulldeps/internal-lints/diagnostics.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -Z unstable-options
-+// ignore-stage1
-
- #![crate_type = "lib"]
- #![feature(rustc_attrs)]
-diff --git a/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs b/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
-index f6f0c0385..4523e2a6d 100644
---- a/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
-+++ b/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -Z unstable-options
-+// ignore-stage1
-
- #![feature(rustc_private)]
- #![deny(rustc::lint_pass_impl_without_macro)]
-diff --git a/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs b/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
-index 32b987338..6187e2370 100644
---- a/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
-+++ b/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -Z unstable-options
-+// ignore-stage1
-
- #![feature(rustc_private)]
- #![deny(rustc::usage_of_qualified_ty)]
-diff --git a/tests/ui-fulldeps/internal-lints/query_stability.rs b/tests/ui-fulldeps/internal-lints/query_stability.rs
-index 560675b44..e7d5ba583 100644
---- a/tests/ui-fulldeps/internal-lints/query_stability.rs
-+++ b/tests/ui-fulldeps/internal-lints/query_stability.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -Z unstable-options
-+// ignore-stage1
-
- #![feature(rustc_private)]
- #![deny(rustc::potential_query_instability)]
-diff --git a/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs b/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
-index 10bab2d88..8e72c8b38 100644
---- a/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
-+++ b/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -Z unstable-options
-+// ignore-stage1
-
- #![feature(rustc_attrs)]
- #![feature(rustc_private)]
-diff --git a/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs b/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
-index 2cb1ed6fc..31b5a2131 100644
---- a/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
-+++ b/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -Z unstable-options
-+// ignore-stage1
-
- #![feature(rustc_private)]
-
-diff --git a/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs b/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
-index 7498745f2..28c00f2f8 100644
---- a/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
-+++ b/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs
-@@ -1,6 +1,7 @@
- // aux-build:lint-group-plugin-test.rs
- // check-pass
- // compile-flags: -D unused -A unused-variables
-+// ignore-stage1
-
- fn main() {
-     let x = 1;
-diff --git a/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs b/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
-index fc19bc039..9563e9930 100644
---- a/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
-+++ b/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs
-@@ -1,5 +1,6 @@
- // aux-build:lint-group-plugin-test.rs
- // compile-flags: -F unused -A unused
-+// ignore-stage1
-
- fn main() {
-     let x = 1;
-diff --git a/tests/ui-fulldeps/lint-pass-macros.rs b/tests/ui-fulldeps/lint-pass-macros.rs
-index b3c2a5427..9ed711a34 100644
---- a/tests/ui-fulldeps/lint-pass-macros.rs
-+++ b/tests/ui-fulldeps/lint-pass-macros.rs
-@@ -1,5 +1,6 @@
- // compile-flags: -Z unstable-options
- // check-pass
-+// ignore-stage1
-
- #![feature(rustc_private)]
-
-diff --git a/tests/ui/empty_global_asm.rs b/tests/ui/empty_global_asm.rs
-index af13762d1..e9a5433ff 100644
---- a/tests/ui/empty_global_asm.rs
-+++ b/tests/ui/empty_global_asm.rs
-@@ -1,5 +1,6 @@
- // needs-asm-support
- // run-pass
-+// ignore-stage1
-
- use std::arch::global_asm;
-
-diff --git a/tests/ui/linkage-attr/issue-10755.rs b/tests/ui/linkage-attr/issue-10755.rs
-index afd2dc46c..f0d4705e4 100644
---- a/tests/ui/linkage-attr/issue-10755.rs
-+++ b/tests/ui/linkage-attr/issue-10755.rs
-@@ -2,6 +2,7 @@
- // dont-check-compiler-stderr
- // compile-flags: -C linker=llllll -C linker-flavor=ld
- // error-pattern: `llllll`
-+// ignore-stage1
-
- // Before, the error-pattern checked for "not found". On WSL with appendWindowsPath=true, running
- // in invalid command returns a PermissionDenied instead.
-diff --git a/tests/ui/macros/restricted-shadowing-legacy.rs b/tests/ui/macros/restricted-shadowing-legacy.rs
-index f5cac2dfb..d84f8efd6 100644
---- a/tests/ui/macros/restricted-shadowing-legacy.rs
-+++ b/tests/ui/macros/restricted-shadowing-legacy.rs
-@@ -74,6 +74,7 @@
- // 62 |   Unordered   |   Unordered   |       =       |    +?    |
- // 63 |   Unordered   |   Unordered   |       >       |    +?    |
- // 64 |   Unordered   |   Unordered   |   Unordered   |    +     |
-+// ignore-stage1
-
- #![feature(decl_macro, rustc_attrs)]
-
-diff --git a/tests/ui/process/nofile-limit.rs b/tests/ui/process/nofile-limit.rs
-index 3ddf8d6ef..316823fcc 100644
---- a/tests/ui/process/nofile-limit.rs
-+++ b/tests/ui/process/nofile-limit.rs
-@@ -3,6 +3,7 @@
- // test for issue #96621.
- //
- // run-pass
-+// ignore-stage1
- // dont-check-compiler-stderr
- // only-linux
- // no-prefer-dynamic
-diff --git a/tests/ui/process/process-panic-after-fork.rs b/tests/ui/process/process-panic-after-fork.rs
-index 6d4d24922..f681526bd 100644
---- a/tests/ui/process/process-panic-after-fork.rs
-+++ b/tests/ui/process/process-panic-after-fork.rs
-@@ -6,6 +6,7 @@
- // ignore-emscripten no processes
- // ignore-sgx no processes
- // ignore-fuchsia no fork
-+// ignore-stage1
-
- #![feature(rustc_private)]
- #![feature(never_type)]
-diff --git a/tests/ui/simd/target-feature-mixup.rs b/tests/ui/simd/target-feature-mixup.rs
-index 5dd163715..ab8b02f23 100644
---- a/tests/ui/simd/target-feature-mixup.rs
-+++ b/tests/ui/simd/target-feature-mixup.rs
-@@ -1,4 +1,6 @@
- // run-pass
-+// ignore-stage1
-+
- #![allow(unused_variables)]
- #![allow(stable_features)]
- #![allow(overflowing_literals)]
-diff --git a/tests/ui-fulldeps/internal-lints/bad_opt_access.rs b/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
-index d6bd6945e15..a5794e3636a 100644
---- a/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
-+++ b/tests/ui-fulldeps/internal-lints/bad_opt_access.rs
-@@ -3,6 +3,7 @@
- // Test that accessing command line options by field access triggers a lint for those fields
- // that have wrapper functions which should be used.
- 
-+// ignore-stage1
- #![crate_type = "lib"]
- #![feature(rustc_private)]
- #![deny(rustc::bad_opt_access)]
-diff --git a/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs b/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
-index a0a8114e0c5..29faed24e13 100644
---- a/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
-+++ b/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs
-@@ -1,5 +1,6 @@
- // rustc-env:CARGO_CRATE_NAME=rustc_dummy
- 
-+// ignore-stage1
- #![feature(rustc_private)]
- #![crate_type = "lib"]
- 
-diff --git a/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs b/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
-index ff764015dc7..8d0184b40f5 100644
---- a/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
-+++ b/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs
-@@ -5,4 +5,5 @@
- //
- // Make sure that we don't explode with an error if we don't actually end up emitting any `dwo`s,
- // as would be the case if we don't actually codegen anything.
-+// ignore-stage1
- #![crate_type="rlib"]
-diff --git a/tests/ui/drop/dynamic-drop.rs b/tests/ui/drop/dynamic-drop.rs
-index 9e51d3adaaa..296032acebb 100644
---- a/tests/ui/drop/dynamic-drop.rs
-+++ b/tests/ui/drop/dynamic-drop.rs
-@@ -1,6 +1,7 @@
- // run-pass
- // needs-unwind
- 
-+// ignore-stage1
- #![feature(generators, generator_trait)]
- 
- #![allow(unused_assignments)]
-diff --git a/src/bootstrap/builder/tests.rs b/src/bootstrap/builder/tests.rs
-index 3574f11189e..4f4698a25bd 100644
---- a/src/bootstrap/builder/tests.rs
-+++ b/src/bootstrap/builder/tests.rs
-@@ -76,6 +76,7 @@ macro_rules! rustc {
- }
- 
- #[test]
-+#[ignore]
- fn test_valid() {
-     // make sure multi suite paths are accepted
-     check_cli(["test", "tests/ui/attr-start.rs", "tests/ui/attr-shebang.rs"]);
-@@ -104,6 +105,7 @@ fn test_intersection() {
- }
- 
- #[test]
-+#[ignore]
- fn test_exclude() {
-     let mut config = configure("test", &["A"], &["A"]);
-     config.exclude = vec![TaskPath::parse("src/tools/tidy")];
-@@ -117,6 +119,7 @@ fn test_exclude() {
- }
- 
- #[test]
-+#[ignore]
- fn test_exclude_kind() {
-     let path = PathBuf::from("src/tools/cargotest");
-     let exclude = TaskPath::parse("test::src/tools/cargotest");
-@@ -137,6 +140,7 @@ fn test_exclude_kind() {
- 
- /// Ensure that if someone passes both a single crate and `library`, all library crates get built.
- #[test]
-+#[ignore]
- fn alias_and_path_for_library() {
-     let mut cache =
-         run_build(&["library".into(), "core".into()], configure("build", &["A"], &["A"]));
-@@ -153,6 +157,7 @@ mod defaults {
-     use pretty_assertions::assert_eq;
- 
-     #[test]
-+    #[ignore]
-     fn build_default() {
-         let mut cache = run_build(&[], configure("build", &["A"], &["A"]));
- 
-@@ -173,6 +178,7 @@ fn build_default() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn build_stage_0() {
-         let config = Config { stage: 0, ..configure("build", &["A"], &["A"]) };
-         let mut cache = run_build(&[], config);
-@@ -190,6 +196,7 @@ fn build_stage_0() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn build_cross_compile() {
-         let config = Config { stage: 1, ..configure("build", &["A", "B"], &["A", "B"]) };
-         let mut cache = run_build(&[], config);
-@@ -233,6 +240,7 @@ fn build_cross_compile() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn doc_default() {
-         let mut config = configure("doc", &["A"], &["A"]);
-         config.compiler_docs = true;
-@@ -267,6 +275,7 @@ fn configure(host: &[&str], target: &[&str]) -> Config {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn dist_baseline() {
-         let mut cache = run_build(&[], configure(&["A"], &["A"]));
- 
-@@ -291,6 +300,7 @@ fn dist_baseline() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn dist_with_targets() {
-         let mut cache = run_build(&[], configure(&["A"], &["A", "B"]));
- 
-@@ -320,6 +330,7 @@ fn dist_with_targets() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn dist_with_hosts() {
-         let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B"]));
- 
-@@ -362,6 +373,7 @@ fn dist_with_hosts() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn dist_only_cross_host() {
-         let b = TargetSelection::from_user("B");
-         let mut config = configure(&["A", "B"], &["A", "B"]);
-@@ -381,6 +393,7 @@ fn dist_only_cross_host() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn dist_with_targets_and_hosts() {
-         let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B", "C"]));
- 
-@@ -415,6 +428,7 @@ fn dist_with_targets_and_hosts() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn dist_with_empty_host() {
-         let config = configure(&[], &["C"]);
-         let mut cache = run_build(&[], config);
-@@ -431,6 +445,7 @@ fn dist_with_empty_host() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn dist_with_same_targets_and_hosts() {
-         let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B"]));
- 
-@@ -482,6 +497,7 @@ fn dist_with_same_targets_and_hosts() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn build_all() {
-         let build = Build::new(configure(&["A", "B"], &["A", "B", "C"]));
-         let mut builder = Builder::new(&build);
-@@ -515,6 +531,7 @@ fn build_all() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn build_with_empty_host() {
-         let config = configure(&[], &["C"]);
-         let build = Build::new(config);
-@@ -542,6 +559,7 @@ fn build_with_empty_host() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn test_with_no_doc_stage0() {
-         let mut config = configure(&["A"], &["A"]);
-         config.stage = 0;
-@@ -585,6 +603,7 @@ fn test_with_no_doc_stage0() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn doc_ci() {
-         let mut config = configure(&["A"], &["A"]);
-         config.compiler_docs = true;
-@@ -613,6 +632,7 @@ fn doc_ci() {
-     }
- 
-     #[test]
-+    #[ignore]
-     fn test_docs() {
-         // Behavior of `x.py test` doing various documentation tests.
-         let mut config = configure(&["A"], &["A"]);
-diff --git a/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr b/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr
---- a/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr 2023-01-10 10:47:33.000000000 -0800
-+++ b/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr 2023-01-20 03:49:06.575109271 -0800
-@@ -1,20 +1,11 @@
--error: use `Session::split_debuginfo` instead of this field
--  --> $DIR/bad_opt_access.rs:14:13
-+error[E0463]: can't find crate for `rustc_macros` which `rustc_session` depends on
-+  --> $DIR/bad_opt_access.rs:10:1
-    |
--LL |     let _ = sess.opts.cg.split_debuginfo;
--   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-+LL | extern crate rustc_session;
-+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
-    |
--note: the lint level is defined here
--  --> $DIR/bad_opt_access.rs:8:9
--   |
--LL | #![deny(rustc::bad_opt_access)]
--   |         ^^^^^^^^^^^^^^^^^^^^^
--
--error: use `Session::crate_types` instead of this field
--  --> $DIR/bad_opt_access.rs:17:13
--   |
--LL |     let _ = sess.opts.crate_types;
--   |             ^^^^^^^^^^^^^^^^^^^^^
-+   = help: maybe you need to install the missing components with: `rustup component add rust-src rustc-dev llvm-tools-preview`
- 
--error: aborting due to 2 previous errors
-+error: aborting due to previous error
- 
-+For more information about this error, try `rustc --explain E0463`.
-diff --git a/tests/ui/process/process-sigpipe.rs b/tests/ui/process/process-sigpipe.rs
---- a/tests/ui/process/process-sigpipe.rs    2023-01-10 10:47:33.000000000 -0800
-+++ b/tests/ui/process/process-sigpipe.rs    2023-01-27 01:07:05.335718181 -0800
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- #![allow(unused_imports)]
- #![allow(deprecated)]
- 
-diff --git a/tests/run-make/static-pie/Makefile b/tests/run-make/static-pie/Makefile
---- a/tests/run-make/static-pie/Makefile     2023-02-21 02:25:36.553233415 -0800
-+++ b/tests/run-make/static-pie/Makefile     2023-02-21 02:19:45.848629908 -0800
-@@ -3,6 +3,7 @@ include ../../run-make-fulldeps/tools.mk
- # only-x86_64
- # only-linux
- # ignore-32bit
-+# ignore-stage1
-
- # How to manually run this
- # $ ./x.py test --target x86_64-unknown-linux-[musl,gnu] tests/run-make/static-pie
-diff --git a/tests/codegen/repr-transparent-aggregates-3.rs b/tests/codegen/repr-transparent-aggregates-3.rs
-index 0db17e6b13a..6e9cb7224c8 100644
---- a/tests/codegen/repr-transparent-aggregates-3.rs
-+++ b/tests/codegen/repr-transparent-aggregates-3.rs
-@@ -3,6 +3,7 @@
- 
- // only-mips64
- // See repr-transparent.rs
-+// ignore-stage1
- 
- #![feature(transparent_unions)]
-
-diff --git a/tests/codegen/abi-repr-ext.rs b/tests/codegen/abi-repr-ext.rs
-index 23ade3c7216..addd8a2ebdc 100644
---- a/tests/codegen/abi-repr-ext.rs
-+++ b/tests/codegen/abi-repr-ext.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -O
-+// ignore-stage1
- 
- // revisions:x86_64 i686 aarch64-apple aarch64-windows aarch64-linux arm riscv
- 
-diff --git a/tests/codegen/abi-x86-interrupt.rs b/tests/codegen/abi-x86-interrupt.rs
-index 928ad5a9bbd..5185edaae40 100644
---- a/tests/codegen/abi-x86-interrupt.rs
-+++ b/tests/codegen/abi-x86-interrupt.rs
-@@ -4,6 +4,7 @@
- 
- // needs-llvm-components: x86
- // compile-flags: -C no-prepopulate-passes --target=x86_64-unknown-linux-gnu -Copt-level=0
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- #![no_core]
-diff --git a/tests/codegen/branch-protection.rs b/tests/codegen/branch-protection.rs
-index 994c71b2619..5d83a29da74 100644
---- a/tests/codegen/branch-protection.rs
-+++ b/tests/codegen/branch-protection.rs
-@@ -7,6 +7,7 @@
- // [LEAF] compile-flags: -Z branch-protection=pac-ret,leaf
- // [BKEY] compile-flags: -Z branch-protection=pac-ret,b-key
- // compile-flags: --target aarch64-unknown-linux-gnu
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- #![feature(no_core, lang_items)]
-diff --git a/tests/codegen/catch-unwind.rs b/tests/codegen/catch-unwind.rs
-index b90ef104ce7..12d5d1451a2 100644
---- a/tests/codegen/catch-unwind.rs
-+++ b/tests/codegen/catch-unwind.rs
-@@ -10,6 +10,7 @@
- // ignore-riscv64 FIXME
- // On s390x the closure is also in another function
- // ignore-s390x FIXME
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- #![feature(c_unwind)]
-diff --git a/tests/codegen/cf-protection.rs b/tests/codegen/cf-protection.rs
-index ccbc863f571..f4281d87abf 100644
---- a/tests/codegen/cf-protection.rs
-+++ b/tests/codegen/cf-protection.rs
-@@ -8,6 +8,7 @@
- // [return] compile-flags: -Z cf-protection=return
- // [full] compile-flags: -Z cf-protection=full
- // compile-flags: --target x86_64-unknown-linux-gnu
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- #![feature(no_core, lang_items)]
-diff --git a/tests/codegen/enum-bounds-check-derived-idx.rs b/tests/codegen/enum-bounds-check-derived-idx.rs
-index aa66c2ed08e..db6c87c7338 100644
---- a/tests/codegen/enum-bounds-check-derived-idx.rs
-+++ b/tests/codegen/enum-bounds-check-derived-idx.rs
-@@ -1,7 +1,7 @@
- // This test checks an optimization that is not guaranteed to work. This test case should not block
- // a future LLVM update.
- // compile-flags: -O
--
-+// ignore-stage1
- #![crate_type = "lib"]
- 
- pub enum Bar {
-diff --git a/tests/codegen/force-unwind-tables.rs b/tests/codegen/force-unwind-tables.rs
-index 4c0a5602c6d..d5faf190290 100644
---- a/tests/codegen/force-unwind-tables.rs
-+++ b/tests/codegen/force-unwind-tables.rs
-@@ -1,5 +1,5 @@
- // compile-flags: -C no-prepopulate-passes -C force-unwind-tables=y
--
-+// ignore-stage1
- #![crate_type="lib"]
- 
- // CHECK: attributes #{{.*}} uwtable
-diff --git a/tests/codegen/intrinsic-no-unnamed-attr.rs b/tests/codegen/intrinsic-no-unnamed-attr.rs
-index c8a8e0b3e7a..f779f5cc27e 100644
---- a/tests/codegen/intrinsic-no-unnamed-attr.rs
-+++ b/tests/codegen/intrinsic-no-unnamed-attr.rs
-@@ -1,5 +1,5 @@
- // compile-flags: -C no-prepopulate-passes
--
-+// ignore-stage1
- #![feature(intrinsics)]
- 
- extern "rust-intrinsic" {
-diff --git a/tests/codegen/issues/issue-103840.rs b/tests/codegeni/issues/issue-103840.rs
-index f19d7031bb3..92408e75964 100644
---- a/tests/codegen/issues/issue-103840.rs
-+++ b/tests/codegen/issues/issue-103840.rs
-@@ -1,5 +1,6 @@
- // compile-flags: -O
- #![crate_type = "lib"]
-+// ignore-stage1
- 
- pub fn foo(t: &mut Vec<usize>) {
-     // CHECK-NOT: __rust_dealloc
-diff --git a/tests/codegen/issues/issue-47278.rs b/tests/codegen/issues/issue-47278.rs
-index 9076274f45e..de7203e139b 100644
---- a/tests/codegen/issues/issue-47278.rs
-+++ b/tests/codegen/issues/issue-47278.rs
-@@ -1,5 +1,6 @@
- // -C no-prepopulate-passes
- #![crate_type="staticlib"]
-+// ignore-stage1
- 
- #[repr(C)]
- pub struct Foo(u64);
-diff --git a/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs b/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
-index 1ad05906e21..8df862aeee5 100644
---- a/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
-+++ b/tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs
-@@ -2,6 +2,7 @@
- // index is part of a (x | y) < C style condition
- 
- // compile-flags: -O
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- 
-diff --git a/tests/codegen/lifetime_start_end.rs b/tests/codegen/lifetime_start_end.rs
-index 471a0b8cedd..356650de0c1 100644
---- a/tests/codegen/lifetime_start_end.rs
-+++ b/tests/codegen/lifetime_start_end.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -O -C no-prepopulate-passes -Zmir-opt-level=0
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- 
-diff --git a/tests/codegen/local-generics-in-exe-internalized.rs b/tests/codegen/local-generics-in-exe-internalized.rs
-index 449c5ca75fc..746a7ed1b6f 100644
---- a/tests/codegen/local-generics-in-exe-internalized.rs
-+++ b/tests/codegen/local-generics-in-exe-internalized.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -C no-prepopulate-passes -Zshare-generics=yes
-+// ignore-stage1
- 
- // Check that local generics are internalized if they are in the same CGU
- 
-diff --git a/tests/codegen/match-unoptimized.rs b/tests/codegen/match-unoptimized.rs
-index 78ea4f9b409..23b2c62bd38 100644
---- a/tests/codegen/match-unoptimized.rs
-+++ b/tests/codegen/match-unoptimized.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -C no-prepopulate-passes -Copt-level=0
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- 
-diff --git a/tests/codegen/noalias-rwlockreadguard.rs b/tests/codegen/noalias-rwlockreadguard.rs
-index 7f7b46c85a8..a32910da3e7 100644
---- a/tests/codegen/noalias-rwlockreadguard.rs
-+++ b/tests/codegen/noalias-rwlockreadguard.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -O -C no-prepopulate-passes -Z mutable-noalias=yes
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- 
-diff --git a/tests/codegen/non-terminate/nonempty-infinite-loop.rs b/tests/codegen/non-terminate/nonempty-infinite-loop.rs
-index 5e25e04fc24..fce094f7efd 100644
---- a/tests/codegen/non-terminate/nonempty-infinite-loop.rs
-+++ b/tests/codegen/non-terminate/nonempty-infinite-loop.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -C opt-level=3
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- 
-diff --git a/tests/codegen/noreturn-uninhabited.rs b/tests/codegen/noreturn-uninhabited.rs
-index 49f93cf62c7..2da42faeabd 100644
---- a/tests/codegen/noreturn-uninhabited.rs
-+++ b/tests/codegen/noreturn-uninhabited.rs
-@@ -1,4 +1,5 @@
- // compile-flags: -g -C no-prepopulate-passes
-+// ignore-stage1
- 
- #![crate_type = "lib"]
- 
-diff --git a/tests/rustdoc/async-move-doctest.rs b/tests/rustdoc/async-move-doctest.rs
-index 2ba61388c9e..402c5bbaaf7 100644
---- a/tests/rustdoc/async-move-doctest.rs
-+++ b/tests/rustdoc/async-move-doctest.rs
-@@ -1,5 +1,6 @@
- // compile-flags:--test
- // edition:2018
-+// ignore-stage1
- 
- // Prior to setting the default edition for the doctest pre-parser,
- // this doctest would fail due to a fatal parsing error.
-diff --git a/tests/rustdoc/async-trait.rs b/tests/rustdoc/async-trait.rs
-index a473e467473..df3be5adc17 100644
---- a/tests/rustdoc/async-trait.rs
-+++ b/tests/rustdoc/async-trait.rs
-@@ -1,5 +1,6 @@
- // aux-build:async-trait-dep.rs
- // edition:2021
-+// ignore-stage1
- 
- #![feature(async_fn_in_trait)]
- #![allow(incomplete_features)]
-diff --git a/tests/rustdoc/check-source-code-urls-to-def.rs b/tests/rustdoc/check-source-code-urls-to-def.rs
-index 41b9d41fa44..0805a07a0c9 100644
---- a/tests/rustdoc/check-source-code-urls-to-def.rs
-+++ b/tests/rustdoc/check-source-code-urls-to-def.rs
-@@ -1,6 +1,7 @@
- // compile-flags: -Zunstable-options --generate-link-to-definition
- // aux-build:source_code.rs
- // build-aux-docs
-+// ignore-stage1
- 
- #![feature(rustc_attrs)]
- 
-diff --git a/tests/rustdoc/comment-in-doctest.rs b/tests/rustdoc/comment-in-doctest.rs
-index 5691d173569..a57c0e1f3bd 100644
---- a/tests/rustdoc/comment-in-doctest.rs
-+++ b/tests/rustdoc/comment-in-doctest.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- // comments, both doc comments and regular ones, used to trick rustdoc's doctest parser into
- // thinking that everything after it was part of the regular program. combined with the librustc_ast
-diff --git a/tests/rustdoc/const-generics/const-generics-docs.rs b/tests/rustdoc/const-generics/const-generics-docs.rs
-index 828486a41d4..02a934996f8 100644
---- a/tests/rustdoc/const-generics/const-generics-docs.rs
-+++ b/tests/rustdoc/const-generics/const-generics-docs.rs
-@@ -1,5 +1,7 @@
- // edition:2018
- // aux-build: extern_crate.rs
-+// ignore-stage1
-+
- #![crate_name = "foo"]
- 
- extern crate extern_crate;
-diff --git a/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs b/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
-index d02bc4fe712..6f432da06bf 100644
---- a/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
-+++ b/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs
-@@ -1,5 +1,6 @@
- // Regression test for issue #95717
- // Hide cross-crate `#[doc(hidden)]` associated items in trait impls.
-+// ignore-stage1
- 
- #![crate_name = "dependent"]
- // edition:2021
-diff --git a/tests/rustdoc/cross-crate-hidden-impl-parameter.rs b/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
-index eb2ced2f7f4..08a6f8b27f3 100644
---- a/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
-+++ b/tests/rustdoc/cross-crate-hidden-impl-parameter.rs
-@@ -1,4 +1,6 @@
- // Issue #86448: test for cross-crate `doc(hidden)`
-+// ignore-stage1
-+
- #![crate_name = "foo"]
- 
- // aux-build:cross-crate-hidden-impl-parameter.rs
-diff --git a/tests/rustdoc/cross-crate-links.rs b/tests/rustdoc/cross-crate-links.rs
-index 7c736a4cc11..a0be9a367c6 100644
---- a/tests/rustdoc/cross-crate-links.rs
-+++ b/tests/rustdoc/cross-crate-links.rs
-@@ -1,5 +1,6 @@
- // aux-build:all-item-types.rs
- // build-aux-docs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/cross-crate-primitive-doc.rs b/tests/rustdoc/cross-crate-primitive-doc.rs
-index 4ba296ee04a..51fa62ffb53 100644
---- a/tests/rustdoc/cross-crate-primitive-doc.rs
-+++ b/tests/rustdoc/cross-crate-primitive-doc.rs
-@@ -1,6 +1,7 @@
- // aux-build:primitive-doc.rs
- // compile-flags: --extern-html-root-url=primitive_doc=../ -Z unstable-options
- // only-linux
-+// ignore-stage1
- 
- #![feature(no_core)]
- #![no_core]
-diff --git a/tests/rustdoc/doctest-manual-crate-name.rs b/tests/rustdoc/doctest-manual-crate-name.rs
-index 3a5e3734e14..2b4b19b4708 100644
---- a/tests/rustdoc/doctest-manual-crate-name.rs
-+++ b/tests/rustdoc/doctest-manual-crate-name.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- //! ```
- //! #![crate_name="asdf"]
-diff --git a/tests/rustdoc/edition-doctest.rs b/tests/rustdoc/edition-doctest.rs
-index 6de25996bed..4acb562a29c 100644
---- a/tests/rustdoc/edition-doctest.rs
-+++ b/tests/rustdoc/edition-doctest.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- /// ```rust,edition2018
- /// #![feature(try_blocks)]
-diff --git a/tests/rustdoc/edition-flag.rs b/tests/rustdoc/edition-flag.rs
-index e54c7d2969b..4cee5e1a3cf 100644
---- a/tests/rustdoc/edition-flag.rs
-+++ b/tests/rustdoc/edition-flag.rs
-@@ -1,5 +1,6 @@
- // compile-flags:--test
- // edition:2018
-+// ignore-stage1
- 
- /// ```rust
- /// fn main() {
-diff --git a/tests/rustdoc/elided-lifetime.rs b/tests/rustdoc/elided-lifetime.rs
-index 006132ef8aa..75ac6496dfb 100644
---- a/tests/rustdoc/elided-lifetime.rs
-+++ b/tests/rustdoc/elided-lifetime.rs
-@@ -4,6 +4,7 @@
- //
- // Since Rust 2018 we encourage writing out <'_> explicitly to make it clear
- // that borrowing is occurring. Make sure rustdoc is following the same idiom.
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/extern-html-root-url.rs b/tests/rustdoc/extern-html-root-url.rs
-index 17eedcf2ab8..429bf78b9d5 100644
---- a/tests/rustdoc/extern-html-root-url.rs
-+++ b/tests/rustdoc/extern-html-root-url.rs
-@@ -2,6 +2,7 @@
- // aux-build:html_root.rs
- // aux-build:no_html_root.rs
- // NOTE: intentionally does not build any auxiliary docs
-+// ignore-stage1
- 
- extern crate html_root;
- extern crate no_html_root;
-diff --git a/tests/rustdoc/extern-impl-trait.rs b/tests/rustdoc/extern-impl-trait.rs
-index 8ab026afd1b..c47d6802211 100644
---- a/tests/rustdoc/extern-impl-trait.rs
-+++ b/tests/rustdoc/extern-impl-trait.rs
-@@ -1,4 +1,5 @@
- // aux-build:extern-impl-trait.rs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/external-macro-src.rs b/tests/rustdoc/external-macro-src.rs
-index 359551ab78d..86499a0bf2e 100644
---- a/tests/rustdoc/external-macro-src.rs
-+++ b/tests/rustdoc/external-macro-src.rs
-@@ -1,4 +1,5 @@
- // aux-build:external-macro-src.rs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/hide-unstable-trait.rs b/tests/rustdoc/hide-unstable-trait.rs
-index 0bf7cabc43b..9ceeccfead8 100644
---- a/tests/rustdoc/hide-unstable-trait.rs
-+++ b/tests/rustdoc/hide-unstable-trait.rs
-@@ -1,4 +1,5 @@
- // aux-build:unstable-trait.rs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- #![feature(private_trait)]
-diff --git a/tests/rustdoc/inline_cross/add-docs.rs b/tests/rustdoc/inline_cross/add-docs.rs
-index a1124d2094c..a11b866647d 100644
---- a/tests/rustdoc/inline_cross/add-docs.rs
-+++ b/tests/rustdoc/inline_cross/add-docs.rs
-@@ -1,4 +1,5 @@
- // aux-build:add-docs.rs
-+// ignore-stage1
- 
- extern crate inner;
- 
-diff --git a/tests/rustdoc/inline_cross/default-trait-method.rs b/tests/rustdoc/inline_cross/default-trait-method.rs
-index a4ec73a127d..8db38c99791 100644
---- a/tests/rustdoc/inline_cross/default-trait-method.rs
-+++ b/tests/rustdoc/inline_cross/default-trait-method.rs
-@@ -1,4 +1,5 @@
- // aux-build:default-trait-method.rs
-+// ignore-stage1
- 
- extern crate foo;
- 
-diff --git a/tests/rustdoc/inline_cross/impl_trait.rs b/tests/rustdoc/inline_cross/impl_trait.rs
-index b6a1552bc00..85377b19e0d 100644
---- a/tests/rustdoc/inline_cross/impl_trait.rs
-+++ b/tests/rustdoc/inline_cross/impl_trait.rs
-@@ -1,5 +1,6 @@
- // aux-build:impl_trait_aux.rs
- // edition:2018
-+// ignore-stage1
- 
- extern crate impl_trait_aux;
- 
-diff --git a/tests/rustdoc/inline_cross/issue-24183.rs b/tests/rustdoc/inline_cross/issue-24183.rs
-index 751a32385e8..d25211cb2b0 100644
---- a/tests/rustdoc/inline_cross/issue-24183.rs
-+++ b/tests/rustdoc/inline_cross/issue-24183.rs
-@@ -1,5 +1,6 @@
- #![crate_type = "lib"]
- #![crate_name = "usr"]
-+// ignore-stage1
- 
- // aux-crate:issue_24183=issue-24183.rs
- // edition: 2021
-diff --git a/tests/rustdoc/inline_cross/macros.rs b/tests/rustdoc/inline_cross/macros.rs
-index a41b9c5b197..1b4bccee176 100644
---- a/tests/rustdoc/inline_cross/macros.rs
-+++ b/tests/rustdoc/inline_cross/macros.rs
-@@ -1,5 +1,6 @@
- // aux-build:macros.rs
- // build-aux-docs
-+// ignore-stage1
- 
- #![feature(macro_test)]
- #![crate_name = "foo"]
-diff --git a/tests/rustdoc/inline_cross/trait-vis.rs b/tests/rustdoc/inline_cross/trait-vis.rs
-index b646babacc5..b77e966afe3 100644
---- a/tests/rustdoc/inline_cross/trait-vis.rs
-+++ b/tests/rustdoc/inline_cross/trait-vis.rs
-@@ -1,4 +1,5 @@
- // aux-build:trait-vis.rs
-+// ignore-stage1
- 
- extern crate inner;
- 
-diff --git a/tests/rustdoc/inline_cross/use_crate.rs b/tests/rustdoc/inline_cross/use_crate.rs
-index 00e0f041c56..c5bf6010d93 100644
---- a/tests/rustdoc/inline_cross/use_crate.rs
-+++ b/tests/rustdoc/inline_cross/use_crate.rs
-@@ -3,6 +3,7 @@
- // build-aux-docs
- // edition:2018
- // compile-flags:--extern use_crate --extern use_crate_2
-+// ignore-stage1
- 
- // During the buildup to Rust 2018, rustdoc would eagerly inline `pub use some_crate;` as if it
- // were a module, so we changed it to make `pub use`ing crate roots remain as a `pub use` statement
-diff --git a/tests/rustdoc/intra-doc-crate/self.rs b/tests/rustdoc/intra-doc-crate/self.rs
-index 8c36a7fa002..848e17a18a1 100644
---- a/tests/rustdoc/intra-doc-crate/self.rs
-+++ b/tests/rustdoc/intra-doc-crate/self.rs
-@@ -1,5 +1,6 @@
- // aux-build:self.rs
- // build-aux-docs
-+// ignore-stage1
- 
- extern crate cross_crate_self;
- 
-diff --git a/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs b/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
-index e52fb9b1c9f..765ad78fb4d 100644
---- a/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs
-@@ -1,5 +1,7 @@
- // aux-build:additional_doc.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![deny(rustdoc::broken_intra_doc_links)]
- 
- extern crate my_rand;
-diff --git a/tests/rustdoc/intra-doc/cross-crate/basic.rs b/tests/rustdoc/intra-doc/cross-crate/basic.rs
-index ad7454918b4..a959a15a672 100644
---- a/tests/rustdoc/intra-doc/cross-crate/basic.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/basic.rs
-@@ -1,5 +1,7 @@
- // aux-build:intra-doc-basic.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![deny(rustdoc::broken_intra_doc_links)]
- 
- // from https://github.com/rust-lang/rust/issues/65983
-diff --git a/tests/rustdoc/intra-doc/cross-crate/crate.rs b/tests/rustdoc/intra-doc/cross-crate/crate.rs
-index edf544708b6..735847bcbb5 100644
---- a/tests/rustdoc/intra-doc/cross-crate/crate.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/crate.rs
-@@ -1,5 +1,7 @@
- // aux-build:intra-link-cross-crate-crate.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![crate_name = "outer"]
- extern crate inner;
- // @has outer/fn.f.html '//a[@href="../inner/fn.g.html"]' "crate::g"
-diff --git a/tests/rustdoc/intra-doc/cross-crate/hidden.rs b/tests/rustdoc/intra-doc/cross-crate/hidden.rs
-index 4f7d075ba48..d7ffed2d19d 100644
---- a/tests/rustdoc/intra-doc/cross-crate/hidden.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/hidden.rs
-@@ -1,5 +1,7 @@
- // aux-build:hidden.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![deny(rustdoc::broken_intra_doc_links)]
- 
- // tests https://github.com/rust-lang/rust/issues/73363
-diff --git a/tests/rustdoc/intra-doc/cross-crate/macro.rs b/tests/rustdoc/intra-doc/cross-crate/macro.rs
-index 32f0a55d3c6..31add14b3b6 100644
---- a/tests/rustdoc/intra-doc/cross-crate/macro.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/macro.rs
-@@ -1,6 +1,8 @@
- // aux-build:macro_inner.rs
- // aux-build:proc_macro.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![deny(rustdoc::broken_intra_doc_links)]
- extern crate macro_inner;
- extern crate proc_macro_inner;
-diff --git a/tests/rustdoc/intra-doc/cross-crate/module.rs b/tests/rustdoc/intra-doc/cross-crate/module.rs
-index fde9322657d..72e55a83007 100644
---- a/tests/rustdoc/intra-doc/cross-crate/module.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/module.rs
-@@ -1,6 +1,8 @@
- // outer.rs
- // aux-build: module.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![deny(rustdoc::broken_intra_doc_links)]
- extern crate module_inner;
- // @has 'module/bar/index.html' '//a[@href="../../module_inner/trait.SomeTrait.html"]' 'SomeTrait'
-diff --git a/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs b/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
-index 577fe78a508..1da901cd8b8 100644
---- a/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs
-@@ -1,5 +1,7 @@
- // aux-build:submodule-inner.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![deny(rustdoc::broken_intra_doc_links)]
- 
- extern crate a;
-diff --git a/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs b/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
-index d0c0b7e85ae..39c42c5a684 100644
---- a/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs
-@@ -1,5 +1,7 @@
- // aux-build:submodule-outer.rs
- // edition:2018
-+// ignore-stage1
-+
- #![deny(rustdoc::broken_intra_doc_links)]
- 
- extern crate bar as bar_;
-diff --git a/tests/rustdoc/intra-doc/cross-crate/traits.rs b/tests/rustdoc/intra-doc/cross-crate/traits.rs
-index 7b9554bfdb0..0417a5f4537 100644
---- a/tests/rustdoc/intra-doc/cross-crate/traits.rs
-+++ b/tests/rustdoc/intra-doc/cross-crate/traits.rs
-@@ -1,5 +1,7 @@
- // aux-build:traits.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![deny(rustdoc::broken_intra_doc_links)]
- 
- extern crate inner;
-diff --git a/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs b/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
-index 7bb1ded3f3c..994ece708ca 100644
---- a/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
-+++ b/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs
-@@ -1,6 +1,7 @@
- // Reexport of a structure that derefs to a type with lang item impls having doc links in their
- // comments. The doc link points to an associated item, so we check that traits in scope for that
- // link are populated.
-+// ignore-stage1
- 
- // aux-build:extern-builtin-type-impl-dep.rs
- 
-diff --git a/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs b/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
-index ad50887e922..69d5aa1717a 100644
---- a/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
-+++ b/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs
-@@ -7,6 +7,7 @@
- // aux-crate:priv:empty2=empty2.rs
- // build-aux-docs
- // compile-flags:-Z unstable-options --edition 2018
-+// ignore-stage1
- 
- // @has extern_crate_only_used_in_link/index.html
- // @has - '//a[@href="../issue_66159_1/struct.Something.html"]' 'issue_66159_1::Something'
-diff --git a/tests/rustdoc/intra-doc/extern-crate.rs b/tests/rustdoc/intra-doc/extern-crate.rs
-index 4e4438dea03..b6793531515 100644
---- a/tests/rustdoc/intra-doc/extern-crate.rs
-+++ b/tests/rustdoc/intra-doc/extern-crate.rs
-@@ -3,6 +3,7 @@
- // When loading `extern crate` statements, we would pull in their docs at the same time, even
- // though they would never actually get displayed. This tripped intra-doc-link resolution failures,
- // for items that aren't under our control, and not actually getting documented!
-+// ignore-stage1
- 
- #![deny(rustdoc::broken_intra_doc_links)]
- 
-diff --git a/tests/rustdoc/intra-doc/extern-inherent-impl.rs b/tests/rustdoc/intra-doc/extern-inherent-impl.rs
-index 2e41c2214f4..8851071adbd 100644
---- a/tests/rustdoc/intra-doc/extern-inherent-impl.rs
-+++ b/tests/rustdoc/intra-doc/extern-inherent-impl.rs
-@@ -1,5 +1,6 @@
- // Reexport of a structure with public inherent impls having doc links in their comments. The doc
- // link points to an associated item, so we check that traits in scope for that link are populated.
-+// ignore-stage1
- 
- // aux-build:extern-inherent-impl-dep.rs
- 
-diff --git a/tests/rustdoc/intra-doc/extern-reference-link.rs b/tests/rustdoc/intra-doc/extern-reference-link.rs
-index bad6ec75579..43cf0c23e8b 100644
---- a/tests/rustdoc/intra-doc/extern-reference-link.rs
-+++ b/tests/rustdoc/intra-doc/extern-reference-link.rs
-@@ -1,5 +1,6 @@
- // compile-flags: --extern pub_struct
- // aux-build:pub-struct.rs
-+// ignore-stage1
- 
- /// [SomeStruct]
- ///
-diff --git a/tests/rustdoc/intra-doc/issue-103463.rs b/tests/rustdoc/intra-doc/issue-103463.rs
-index 4adf8a9a8a4..3b965529577 100644
---- a/tests/rustdoc/intra-doc/issue-103463.rs
-+++ b/tests/rustdoc/intra-doc/issue-103463.rs
-@@ -1,6 +1,7 @@
- // The `Trait` is not pulled into the crate resulting in doc links in its methods being resolved.
- 
- // aux-build:issue-103463-aux.rs
-+// ignore-stage1
- 
- extern crate issue_103463_aux;
- use issue_103463_aux::Trait;
-diff --git a/tests/rustdoc/intra-doc/issue-104145.rs b/tests/rustdoc/intra-doc/issue-104145.rs
-index 9ce36740d60..74c790ddd45 100644
---- a/tests/rustdoc/intra-doc/issue-104145.rs
-+++ b/tests/rustdoc/intra-doc/issue-104145.rs
-@@ -1,6 +1,7 @@
- // Doc links in `Trait`'s methods are resolved because it has a local impl.
- 
- // aux-build:issue-103463-aux.rs
-+// ignore-stage1
- 
- extern crate issue_103463_aux;
- use issue_103463_aux::Trait;
-diff --git a/tests/rustdoc/intra-doc/issue-66159.rs b/tests/rustdoc/intra-doc/issue-66159.rs
-index 56742b39790..64ef5f3d07c 100644
---- a/tests/rustdoc/intra-doc/issue-66159.rs
-+++ b/tests/rustdoc/intra-doc/issue-66159.rs
-@@ -1,5 +1,6 @@
- // aux-crate:priv:pub_struct=pub-struct.rs
- // compile-flags:-Z unstable-options
-+// ignore-stage1
- 
- // The issue was an ICE which meant that we never actually generated the docs
- // so if we have generated the docs, we're okay.
-diff --git a/tests/rustdoc/intra-doc/pub-use.rs b/tests/rustdoc/intra-doc/pub-use.rs
-index 8a998496cf5..26109bc52fc 100644
---- a/tests/rustdoc/intra-doc/pub-use.rs
-+++ b/tests/rustdoc/intra-doc/pub-use.rs
-@@ -1,4 +1,5 @@
- // aux-build: intra-link-pub-use.rs
-+// ignore-stage1
- #![deny(rustdoc::broken_intra_doc_links)]
- #![crate_name = "outer"]
- 
-diff --git a/tests/rustdoc/intra-doc/reexport-additional-docs.rs b/tests/rustdoc/intra-doc/reexport-additional-docs.rs
-index 64683bacd65..6ed63e4dd26 100644
---- a/tests/rustdoc/intra-doc/reexport-additional-docs.rs
-+++ b/tests/rustdoc/intra-doc/reexport-additional-docs.rs
-@@ -1,5 +1,7 @@
- // aux-build:intra-link-reexport-additional-docs.rs
- // build-aux-docs
-+// ignore-stage1
-+
- #![crate_name = "foo"]
- extern crate inner;
- 
-diff --git a/tests/rustdoc/issue-18199.rs b/tests/rustdoc/issue-18199.rs
-index bc0c4a56502..1995fd2ec7d 100644
---- a/tests/rustdoc/issue-18199.rs
-+++ b/tests/rustdoc/issue-18199.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- #![doc(test(attr(feature(staged_api))))]
- 
-diff --git a/tests/rustdoc/issue-23106.rs b/tests/rustdoc/issue-23106.rs
-index 8cda2fc3380..e7b5c1e28c5 100644
---- a/tests/rustdoc/issue-23106.rs
-+++ b/tests/rustdoc/issue-23106.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- /// ```
- /// #
-diff --git a/tests/rustdoc/issue-23744.rs b/tests/rustdoc/issue-23744.rs
-index 642817396b2..780b131a842 100644
---- a/tests/rustdoc/issue-23744.rs
-+++ b/tests/rustdoc/issue-23744.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- /// Example of rustdoc incorrectly parsing <code>```rust,should_panic</code>.
- ///
-diff --git a/tests/rustdoc/issue-25944.rs b/tests/rustdoc/issue-25944.rs
-index 49625294bbe..b6df4518de4 100644
---- a/tests/rustdoc/issue-25944.rs
-+++ b/tests/rustdoc/issue-25944.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- /// ```
- /// let a = r#"
-diff --git a/tests/rustdoc/issue-30252.rs b/tests/rustdoc/issue-30252.rs
-index c3777362a66..a80f92dc754 100644
---- a/tests/rustdoc/issue-30252.rs
-+++ b/tests/rustdoc/issue-30252.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test --cfg feature="bar"
-+// ignore-stage1
- 
- /// ```rust
- /// assert_eq!(cfg!(feature = "bar"), true);
-diff --git a/tests/rustdoc/issue-38129.rs b/tests/rustdoc/issue-38129.rs
-index 156d50fa52a..60ab5dd1885 100644
---- a/tests/rustdoc/issue-38129.rs
-+++ b/tests/rustdoc/issue-38129.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- // This file tests the source-partitioning behavior of rustdoc.
- // Each test contains some code that should be put into the generated
-diff --git a/tests/rustdoc/issue-40936.rs b/tests/rustdoc/issue-40936.rs
-index 4d2e4c17b1f..8dcfc4068d3 100644
---- a/tests/rustdoc/issue-40936.rs
-+++ b/tests/rustdoc/issue-40936.rs
-@@ -1,5 +1,6 @@
- // aux-build:issue-40936.rs
- // build-aux-docs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/issue-43153.rs b/tests/rustdoc/issue-43153.rs
-index 0fe680f10af..8c67d64826a 100644
---- a/tests/rustdoc/issue-43153.rs
-+++ b/tests/rustdoc/issue-43153.rs
-@@ -1,5 +1,6 @@
- // Test that `include!` in a doc test searches relative to the directory in
- // which the test is declared.
-+// ignore-stage1
- 
- // compile-flags:--test
- 
-diff --git a/tests/rustdoc/issue-46727.rs b/tests/rustdoc/issue-46727.rs
-index 8cfc4827a7f..55f155e0219 100644
---- a/tests/rustdoc/issue-46727.rs
-+++ b/tests/rustdoc/issue-46727.rs
-@@ -1,4 +1,5 @@
- // aux-build:issue-46727.rs
-+// ignore-stage1
- 
- extern crate issue_46727;
- 
-diff --git a/tests/rustdoc/issue-48377.rs b/tests/rustdoc/issue-48377.rs
-index c32bcf380ea..c196b77a3e7 100644
---- a/tests/rustdoc/issue-48377.rs
-+++ b/tests/rustdoc/issue-48377.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- //! This is a doc comment
- //!
-diff --git a/tests/rustdoc/issue-48414.rs b/tests/rustdoc/issue-48414.rs
-index b35743d887b..e8ade910228 100644
---- a/tests/rustdoc/issue-48414.rs
-+++ b/tests/rustdoc/issue-48414.rs
-@@ -1,4 +1,5 @@
- // aux-build:issue-48414.rs
-+// ignore-stage1
- 
- // ICE when resolving paths for a trait that linked to another trait, when both were in an external
- // crate
-diff --git a/tests/rustdoc/issue-53689.rs b/tests/rustdoc/issue-53689.rs
-index 832140e061b..9a40ea6bc1b 100644
---- a/tests/rustdoc/issue-53689.rs
-+++ b/tests/rustdoc/issue-53689.rs
-@@ -1,4 +1,5 @@
- // aux-build:issue-53689.rs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/issue-54478-demo-allocator.rs b/tests/rustdoc/issue-54478-demo-allocator.rs
-index 4811f363bc9..f4d12f6f630 100644
---- a/tests/rustdoc/issue-54478-demo-allocator.rs
-+++ b/tests/rustdoc/issue-54478-demo-allocator.rs
-@@ -1,5 +1,6 @@
- // Issue #54478: regression test showing that we can demonstrate
- // `#[global_allocator]` in code blocks built by `rustdoc`.
-+// ignore-stage1
- //
- // ## Background
- //
-@@ -11,6 +12,7 @@
- // Rather than try to revise the visbility semanics, we instead
- // decided to change `rustdoc` to behave more like the compiler's
- // default setting, by leaving off `-C prefer-dynamic`.
-+// ignore-stage1
- 
- // compile-flags:--test
- 
-diff --git a/tests/rustdoc/issue-57180.rs b/tests/rustdoc/issue-57180.rs
-index 14bd2b0fec0..5f89e5d42f5 100644
---- a/tests/rustdoc/issue-57180.rs
-+++ b/tests/rustdoc/issue-57180.rs
-@@ -1,4 +1,5 @@
- // aux-build:issue-57180.rs
-+// ignore-stage1
- 
- extern crate issue_57180;
- use issue_57180::Trait;
-diff --git a/tests/rustdoc/issue-61592.rs b/tests/rustdoc/issue-61592.rs
-index 4b6c37b94aa..048487390bb 100644
---- a/tests/rustdoc/issue-61592.rs
-+++ b/tests/rustdoc/issue-61592.rs
-@@ -1,4 +1,5 @@
- // aux-build:issue-61592.rs
-+// ignore-stage1
- 
- extern crate foo;
- 
-diff --git a/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs b/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
-index 2700f2370ee..d883c03d7d2 100644
---- a/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
-+++ b/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs
-@@ -1,4 +1,5 @@
- // Regression test for ICE #73061
-+// ignore-stage1
- 
- // aux-build:issue-73061.rs
- 
-diff --git a/tests/rustdoc/issue-75588.rs b/tests/rustdoc/issue-75588.rs
-index 3b11059a755..e78cdfa236e 100644
---- a/tests/rustdoc/issue-75588.rs
-+++ b/tests/rustdoc/issue-75588.rs
-@@ -1,5 +1,6 @@
- // aux-build:realcore.rs
- // aux-build:real_gimli.rs
-+// ignore-stage1
- 
- // Ensure unstably exported traits have their Implementors sections.
- 
-diff --git a/tests/rustdoc/issue-85454.rs b/tests/rustdoc/issue-85454.rs
-index 5a49a9d0651..fd2f4f8b535 100644
---- a/tests/rustdoc/issue-85454.rs
-+++ b/tests/rustdoc/issue-85454.rs
-@@ -1,4 +1,5 @@
- // aux-build:issue-85454.rs
-+// ignore-stage1
- // build-aux-docs
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/issue-86620.rs b/tests/rustdoc/issue-86620.rs
-index ef15946ec50..675a12b4d14 100644
---- a/tests/rustdoc/issue-86620.rs
-+++ b/tests/rustdoc/issue-86620.rs
-@@ -1,4 +1,5 @@
- // aux-build:issue-86620-1.rs
-+// ignore-stage1
- 
- extern crate issue_86620_1;
- 
-diff --git a/tests/rustdoc/macro_pub_in_module.rs b/tests/rustdoc/macro_pub_in_module.rs
-index 42f760cff6a..1a51aef9a8a 100644
---- a/tests/rustdoc/macro_pub_in_module.rs
-+++ b/tests/rustdoc/macro_pub_in_module.rs
-@@ -1,5 +1,6 @@
- // aux-build:macro_pub_in_module.rs
- // edition:2018
-+// ignore-stage1
- // build-aux-docs
- 
- //! See issue #74355
-diff --git a/tests/rustdoc/masked.rs b/tests/rustdoc/masked.rs
-index 875c026fd05..416d8fbabd0 100644
---- a/tests/rustdoc/masked.rs
-+++ b/tests/rustdoc/masked.rs
-@@ -1,4 +1,5 @@
- // aux-build:masked.rs
-+// ignore-stage1
- 
- #![feature(doc_masked)]
- 
-diff --git a/tests/rustdoc/no-stack-overflow-25295.rs b/tests/rustdoc/no-stack-overflow-25295.rs
-index dd79f1e4baa..0bc58afa4cb 100644
---- a/tests/rustdoc/no-stack-overflow-25295.rs
-+++ b/tests/rustdoc/no-stack-overflow-25295.rs
-@@ -1,5 +1,6 @@
- // Ensure this code doesn't stack overflow.
- // aux-build:enum-primitive.rs
-+// ignore-stage1
- 
- #[macro_use] extern crate enum_primitive;
- 
-diff --git a/tests/rustdoc/normalize-assoc-item.rs b/tests/rustdoc/normalize-assoc-item.rs
-index c6fd5e1101e..945a31853f4 100644
---- a/tests/rustdoc/normalize-assoc-item.rs
-+++ b/tests/rustdoc/normalize-assoc-item.rs
-@@ -1,4 +1,5 @@
- // ignore-tidy-linelength
-+// ignore-stage1
- // aux-build:normalize-assoc-item.rs
- // build-aux-docs
- // compile-flags:-Znormalize-docs
-diff --git a/tests/rustdoc/primitive-reexport.rs b/tests/rustdoc/primitive-reexport.rs
-index 10a8a47db52..ecdb4848265 100644
---- a/tests/rustdoc/primitive-reexport.rs
-+++ b/tests/rustdoc/primitive-reexport.rs
-@@ -1,5 +1,6 @@
- // aux-build: primitive-reexport.rs
- // compile-flags:--extern foo --edition 2018
-+// ignore-stage1
- 
- #![crate_name = "bar"]
- 
-diff --git a/tests/rustdoc/process-termination.rs b/tests/rustdoc/process-termination.rs
-index 32258792b6e..2236842afc9 100644
---- a/tests/rustdoc/process-termination.rs
-+++ b/tests/rustdoc/process-termination.rs
-@@ -1,4 +1,5 @@
- // compile-flags:--test
-+// ignore-stage1
- 
- /// A check of using various process termination strategies
- ///
-diff --git a/tests/rustdoc/pub-extern-crate.rs b/tests/rustdoc/pub-extern-crate.rs
-index 26747a4d1ac..98b3068cfd5 100644
---- a/tests/rustdoc/pub-extern-crate.rs
-+++ b/tests/rustdoc/pub-extern-crate.rs
-@@ -1,4 +1,5 @@
- // aux-build:pub-extern-crate.rs
-+// ignore-stage1
- 
- // @has pub_extern_crate/index.html
- // @!has - '//code' 'pub extern crate inner'
-diff --git a/tests/rustdoc/pub-use-extern-macros.rs b/tests/rustdoc/pub-use-extern-macros.rs
-index eefe6b4b073..f67ec499459 100644
---- a/tests/rustdoc/pub-use-extern-macros.rs
-+++ b/tests/rustdoc/pub-use-extern-macros.rs
-@@ -1,4 +1,5 @@
- // aux-build:pub-use-extern-macros.rs
-+// ignore-stage1
- 
- extern crate macros;
- 
-diff --git a/tests/rustdoc/reexport-check.rs b/tests/rustdoc/reexport-check.rs
-index 5908d2150f2..9e3c825558e 100644
---- a/tests/rustdoc/reexport-check.rs
-+++ b/tests/rustdoc/reexport-check.rs
-@@ -1,4 +1,6 @@
- // aux-build:reexport-check.rs
-+// ignore-stage1
-+
- #![crate_name = "foo"]
- 
- extern crate reexport_check;
-diff --git a/tests/rustdoc/reexport-dep-foreign-fn.rs b/tests/rustdoc/reexport-dep-foreign-fn.rs
-index e7f5720d583..f09e2da12f8 100644
---- a/tests/rustdoc/reexport-dep-foreign-fn.rs
-+++ b/tests/rustdoc/reexport-dep-foreign-fn.rs
-@@ -1,4 +1,5 @@
- // aux-build:all-item-types.rs
-+// ignore-stage1
- 
- // This test is to ensure there is no problem on handling foreign functions
- // coming from a dependency.
-diff --git a/tests/rustdoc/reexport-doc.rs b/tests/rustdoc/reexport-doc.rs
-index df2c889b4d5..52558b39068 100644
---- a/tests/rustdoc/reexport-doc.rs
-+++ b/tests/rustdoc/reexport-doc.rs
-@@ -1,4 +1,5 @@
- // aux-build:reexport-doc-aux.rs
-+// ignore-stage1
- 
- extern crate reexport_doc_aux as dep;
- 
-diff --git a/tests/rustdoc/reexports-priv.rs b/tests/rustdoc/reexports-priv.rs
-index 571d7f06fdc..bec1096ad14 100644
---- a/tests/rustdoc/reexports-priv.rs
-+++ b/tests/rustdoc/reexports-priv.rs
-@@ -1,4 +1,5 @@
- // aux-build: reexports.rs
-+// ignore-stage1
- // compile-flags: --document-private-items
- 
- #![crate_name = "foo"]
-diff --git a/tests/rustdoc/reexports.rs b/tests/rustdoc/reexports.rs
-index 3c51ac395af..018abbfd277 100644
---- a/tests/rustdoc/reexports.rs
-+++ b/tests/rustdoc/reexports.rs
-@@ -1,4 +1,5 @@
- // aux-build: reexports.rs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/rustc-incoherent-impls.rs b/tests/rustdoc/rustc-incoherent-impls.rs
-index 3fdefbecc54..c8382a50679 100644
---- a/tests/rustdoc/rustc-incoherent-impls.rs
-+++ b/tests/rustdoc/rustc-incoherent-impls.rs
-@@ -1,4 +1,5 @@
- // aux-build:incoherent-impl-types.rs
-+// ignore-stage1
- // build-aux-docs
- 
- #![crate_name = "foo"]
-diff --git a/tests/rustdoc/test_option_check/bar.rs b/tests/rustdoc/test_option_check/bar.rs
-index 50a182cf7e0..6f48c9c923b 100644
---- a/tests/rustdoc/test_option_check/bar.rs
-+++ b/tests/rustdoc/test_option_check/bar.rs
-@@ -1,5 +1,6 @@
- // compile-flags: --test
- // check-test-line-numbers-match
-+// ignore-stage1
- 
- /// This looks like another awesome test!
- ///
-diff --git a/tests/rustdoc/test_option_check/test.rs b/tests/rustdoc/test_option_check/test.rs
-index 964e8e37ed5..208bccafe4c 100644
---- a/tests/rustdoc/test_option_check/test.rs
-+++ b/tests/rustdoc/test_option_check/test.rs
-@@ -1,4 +1,5 @@
- // compile-flags: --test
-+// ignore-stage1
- // check-test-line-numbers-match
- 
- pub mod bar;
-diff --git a/tests/rustdoc/trait-alias-mention.rs b/tests/rustdoc/trait-alias-mention.rs
-index 6da0dc68785..8916e1321c7 100644
---- a/tests/rustdoc/trait-alias-mention.rs
-+++ b/tests/rustdoc/trait-alias-mention.rs
-@@ -1,5 +1,6 @@
- // aux-build:trait-alias-mention.rs
- // build-aux-docs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/trait-visibility.rs b/tests/rustdoc/trait-visibility.rs
-index 8ba3ee03a74..9bd62dd5c0a 100644
---- a/tests/rustdoc/trait-visibility.rs
-+++ b/tests/rustdoc/trait-visibility.rs
-@@ -1,4 +1,5 @@
- // aux-build:trait-visibility.rs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/rustdoc/unit-return.rs b/tests/rustdoc/unit-return.rs
-index 6ddfa0c4d5c..a144308a581 100644
---- a/tests/rustdoc/unit-return.rs
-+++ b/tests/rustdoc/unit-return.rs
-@@ -1,4 +1,5 @@
- // aux-build:unit-return.rs
-+// ignore-stage1
- 
- #![crate_name = "foo"]
- 
-diff --git a/tests/ui-fulldeps/deriving-encodable-decodable-box.rs b/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
-index 1c376f59e51..8f852db5efd 100644
---- a/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
-+++ b/tests/ui-fulldeps/deriving-encodable-decodable-box.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![allow(unused_imports)]
- #![feature(rustc_private)]
-diff --git a/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs b/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
-index 844d40f2ecd..d0d530ac79f 100644
---- a/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
-+++ b/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![allow(unused_imports)]
- // This briefly tests the capability of `Cell` and `RefCell` to implement the
-diff --git a/tests/ui-fulldeps/deriving-global.rs b/tests/ui-fulldeps/deriving-global.rs
-index 214bb4368ff..7ff6e31f09e 100644
---- a/tests/ui-fulldeps/deriving-global.rs
-+++ b/tests/ui-fulldeps/deriving-global.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![feature(rustc_private)]
- 
-diff --git a/tests/ui-fulldeps/deriving-hygiene.rs b/tests/ui-fulldeps/deriving-hygiene.rs
-index e1084a08fec..f18b703116a 100644
---- a/tests/ui-fulldeps/deriving-hygiene.rs
-+++ b/tests/ui-fulldeps/deriving-hygiene.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![allow(non_upper_case_globals)]
- #![feature(rustc_private)]
-diff --git a/tests/ui-fulldeps/dropck_tarena_sound_drop.rs b/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
-index ffad80171da..d60062be118 100644
---- a/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
-+++ b/tests/ui-fulldeps/dropck_tarena_sound_drop.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![allow(unknown_lints)]
- // Check that an arena (TypedArena) can carry elements whose drop
-diff --git a/tests/ui-fulldeps/empty-struct-braces-derive.rs b/tests/ui-fulldeps/empty-struct-braces-derive.rs
-index 10e8beaa7b1..29419f97aa1 100644
---- a/tests/ui-fulldeps/empty-struct-braces-derive.rs
-+++ b/tests/ui-fulldeps/empty-struct-braces-derive.rs
-@@ -1,5 +1,6 @@
- // run-pass
- // `#[derive(Trait)]` works for empty structs/variants with braces or parens.
-+// ignore-stage1
- 
- #![feature(rustc_private)]
- 
-diff --git a/tests/ui-fulldeps/issue-14021.rs b/tests/ui-fulldeps/issue-14021.rs
-index 309b5c4a03d..5b9fb023d85 100644
---- a/tests/ui-fulldeps/issue-14021.rs
-+++ b/tests/ui-fulldeps/issue-14021.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![allow(unused_mut)]
- #![allow(unused_imports)]
-diff --git a/tests/ui-fulldeps/regions-mock-tcx.rs b/tests/ui-fulldeps/regions-mock-tcx.rs
-index 63975ef62c5..24e008bb76b 100644
---- a/tests/ui-fulldeps/regions-mock-tcx.rs
-+++ b/tests/ui-fulldeps/regions-mock-tcx.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![allow(dead_code)]
- #![allow(unused_imports)]
-diff --git a/tests/ui-fulldeps/rustc_encodable_hygiene.rs b/tests/ui-fulldeps/rustc_encodable_hygiene.rs
-index 509a6b1d22c..ab5f4aed548 100644
---- a/tests/ui-fulldeps/rustc_encodable_hygiene.rs
-+++ b/tests/ui-fulldeps/rustc_encodable_hygiene.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![feature(rustc_private)]
-
-diff --git a/tests/run-make/cdylib-fewer-symbols/foo.rs b/tests/run-make/cdylib-fewer-symbols/foo.rs
-index af37bc8e953..2f080fb37b2 100644
---- a/tests/run-make/cdylib-fewer-symbols/foo.rs
-+++ b/tests/run-make/cdylib-fewer-symbols/foo.rs
-@@ -1,5 +1,5 @@
- #![crate_type = "cdylib"]
--
-+#[ignore]
- #[no_mangle]
- pub extern "C" fn foo() -> u32 {
-     3
-diff --git a/tests/run-make/doctests-keep-binaries/t.rs b/tests/run-make/doctests-keep-binaries/t.rs
-index c38cf0a0b25..13b89c05e03 100644
---- a/tests/run-make/doctests-keep-binaries/t.rs
-+++ b/tests/run-make/doctests-keep-binaries/t.rs
-@@ -1,3 +1,4 @@
-+// ignore-stage1
- /// Fungle the foople.
- /// ```
- /// t::foople();
-diff --git a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs b/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
-index 260f5a7a64f..c05f9adf46b 100644
---- a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
-+++ b/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs
-@@ -2,6 +2,7 @@
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
- // check-pass
-+// ignore-stage1
- 
- /// ```
- /// #![deprecated(since = "5.2", note = "foo was rarely used. \
-diff --git a/tests/rustdoc-ui/issue-80992.rs b/tests/rustdoc-ui/issue-80992.rs
-index 80ff225b879..e589999ae29 100644
---- a/tests/rustdoc-ui/issue-80992.rs
-+++ b/tests/rustdoc-ui/issue-80992.rs
-@@ -2,6 +2,7 @@
- // compile-flags:--test
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
- 
- pub fn test() -> Result<(), ()> {
-     //! ```compile_fail
-diff --git a/tests/rustdoc-ui/no-run-flag.rs b/tests/rustdoc-ui/no-run-flag.rs
-index 181730eb416..33fa85d7d9d 100644
---- a/tests/rustdoc-ui/no-run-flag.rs
-+++ b/tests/rustdoc-ui/no-run-flag.rs
-@@ -4,6 +4,7 @@
- // compile-flags:-Z unstable-options --test --no-run --test-args=--test-threads=1
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
- 
- /// ```
- /// let a = true;
-diff --git a/tests/rustdoc-ui/nocapture-fail.rs b/tests/rustdoc-ui/nocapture-fail.rs
-index 9a3fb592c63..9899183cdf6 100644
---- a/tests/rustdoc-ui/nocapture-fail.rs
-+++ b/tests/rustdoc-ui/nocapture-fail.rs
-@@ -3,6 +3,7 @@
- // normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR"
- // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME"
-+// ignore-stage1
- 
- /// ```compile_fail
- /// fn foo() {
-diff --git a/tests/run-make/issue-22131/foo.rs b/tests/run-make/issue-22131/foo.rs
-index 33255d76879..56ffc4224e4 100644
---- a/tests/run-make/issue-22131/foo.rs
-+++ b/tests/run-make/issue-22131/foo.rs
-@@ -1,5 +1,6 @@
- /// ```rust
- /// assert_eq!(foo::foo(), 1);
- /// ```
-+// ignore-stage1
- #[cfg(feature = "bar")]
- pub fn foo() -> i32 { 1 }
-diff --git a/tests/rustdoc/auto-traits.rs b/tests/rustdoc/auto-traits.rs
-index 93d4bf2f656..b0eb5f1af7c 100644
---- a/tests/rustdoc/auto-traits.rs
-+++ b/tests/rustdoc/auto-traits.rs
-@@ -1,4 +1,5 @@
- // aux-build:auto-traits.rs
-+// ignore-stage1
- 
- #![feature(auto_traits)]
- 
-diff --git a/tests/rustdoc/inline_cross/dyn_trait.rs b/tests/rustdoc/inline_cross/dyn_trait.rs
-index 649d98f7139..82f88a4713c 100644
---- a/tests/rustdoc/inline_cross/dyn_trait.rs
-+++ b/tests/rustdoc/inline_cross/dyn_trait.rs
-@@ -1,4 +1,5 @@
- #![crate_name = "user"]
-+// ignore-stage1
- 
- // aux-crate:dyn_trait=dyn_trait.rs
- // edition:2021
-diff --git a/tests/ui/abi/stack-probes-lto.rs b/tests/ui/abi/stack-probes-lto.rs
-index 0dccb633df9..36e4d04ccaa 100644
---- a/tests/ui/abi/stack-probes-lto.rs
-+++ b/tests/ui/abi/stack-probes-lto.rs
-@@ -13,6 +13,7 @@
- // ignore-fuchsia no exception handler registered for segfault
- // compile-flags: -C lto
- // no-prefer-dynamic
-+// ignore-stage1
- // ignore-nto Crash analysis impossible at SIGSEGV in QNX Neutrino
- 
- include!("stack-probes.rs");
-diff --git a/tests/ui/abi/stack-probes.rs b/tests/ui/abi/stack-probes.rs
-index 8137c92304d..9f4edca3caf 100644
---- a/tests/ui/abi/stack-probes.rs
-+++ b/tests/ui/abi/stack-probes.rs
-@@ -11,6 +11,7 @@
- // ignore-sgx no processes
- // ignore-fuchsia no exception handler registered for segfault
- // ignore-nto Crash analysis impossible at SIGSEGV in QNX Neutrino
-+// ignore-stage1
- 
- use std::env;
- use std::mem::MaybeUninit;
-diff --git a/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs b/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
-index 5a6283e9f13..c036f7f03e6 100644
---- a/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
-+++ b/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs
-@@ -1,7 +1,7 @@
- // Test that slice subslice patterns are correctly handled in const evaluation.
- 
- // run-pass
--
-+// ignore-stage1
- #[derive(PartialEq, Debug, Clone)]
- struct N(u8);
- 
-diff --git a/tests/ui/asm/x86_64/sym.rs b/tests/ui/asm/x86_64/sym.rs
-index 93ef4f09062..6b076924bda 100644
---- a/tests/ui/asm/x86_64/sym.rs
-+++ b/tests/ui/asm/x86_64/sym.rs
-@@ -2,6 +2,7 @@
- // only-linux
- // needs-asm-support
- // run-pass
-+// ignore-stage1
- 
- #![feature(thread_local)]
- 
-diff --git a/tests/ui/associated-type-bounds/fn-apit.rs b/tests/ui/associated-type-bounds/fn-apit.rs
-index 3c9f511338f..e8fd5fc3c3e 100644
---- a/tests/ui/associated-type-bounds/fn-apit.rs
-+++ b/tests/ui/associated-type-bounds/fn-apit.rs
-@@ -1,6 +1,6 @@
- // run-pass
- // aux-build:fn-aux.rs
--
-+// ignore-stage1
- #![allow(unused)]
- #![feature(associated_type_bounds)]
- 
-diff --git a/tests/ui/associated-type-bounds/fn-dyn-apit.rs b/tests/ui/associated-type-bounds/fn-dyn-apit.rs
-index c4e8092c211..7c690f42846 100644
---- a/tests/ui/associated-type-bounds/fn-dyn-apit.rs
-+++ b/tests/ui/associated-type-bounds/fn-dyn-apit.rs
-@@ -1,6 +1,7 @@
- // run-pass
- // aux-build:fn-dyn-aux.rs
- 
-+// ignore-stage1
- #![allow(unused)]
- #![feature(associated_type_bounds)]
- 
-diff --git a/tests/ui/associated-type-bounds/fn-wrap-apit.rs b/tests/ui/associated-type-bounds/fn-wrap-apit.rs
-index 96df13e372a..b1df6e867f2 100644
---- a/tests/ui/associated-type-bounds/fn-wrap-apit.rs
-+++ b/tests/ui/associated-type-bounds/fn-wrap-apit.rs
-@@ -1,6 +1,7 @@
- // run-pass
- // aux-build:fn-aux.rs
- 
-+// ignore-stage1
- #![feature(associated_type_bounds)]
- #![allow(dead_code)]
- 
-diff --git a/tests/ui/structs-enums/multiple-reprs.rs b/tests/ui/structs-enums/multiple-reprs.rs
-index 4be503a0ef4..2cf0875fc5c 100644
---- a/tests/ui/structs-enums/multiple-reprs.rs
-+++ b/tests/ui/structs-enums/multiple-reprs.rs
-@@ -1,4 +1,5 @@
- // run-pass
-+// ignore-stage1
- 
- #![allow(dead_code)]
-
-diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
---- a/src/tools/compiletest/src/common.rs
-+++ b/src/tools/compiletest/src/common.rs
-@@ -431,7 +431,6 @@
-             .unwrap()
-         };
- 
--        let mut current = None;
-         let mut all_targets = HashSet::new();
-         let mut all_archs = HashSet::new();
-         let mut all_oses = HashSet::new();
-@@ -452,14 +451,11 @@
-             }
-             all_pointer_widths.insert(format!("{}bit", cfg.pointer_width));
- 
--            if target == config.target {
--                current = Some(cfg);
--            }
-             all_targets.insert(target.into());
-         }
- 
-         Self {
--            current: current.expect("current target not found"),
-+            current: Self::get_current_target_config(config),
-             all_targets,
-             all_archs,
-             all_oses,
-@@ -471,6 +467,89 @@
-         }
-     }
- 
-+    fn get_current_target_config(config: &Config) -> TargetCfg {
-+        let mut arch = None;
-+        let mut os = None;
-+        let mut env = None;
-+        let mut abi = None;
-+        let mut families = Vec::new();
-+        let mut pointer_width = None;
-+        let mut endian = None;
-+        let mut panic = None;
-+
-+        for config in
-+            rustc_output(config, &["--print=cfg", "--target", &config.target]).trim().lines()
-+        {
-+            let (name, value) = config
-+                .split_once("=\"")
-+                .map(|(name, value)| {
-+                    (
-+                        name,
-+                        Some(
-+                            value
-+                                .strip_suffix("\"")
-+                                .expect("key-value pair should be properly quoted"),
-+                        ),
-+                    )
-+                })
-+                .unwrap_or_else(|| (config, None));
-+
-+            match name {
-+                "target_arch" => {
-+                    arch = Some(value.expect("target_arch should be a key-value pair").to_string());
-+                }
-+                "target_os" => {
-+                    os = Some(value.expect("target_os sould be a key-value pair").to_string());
-+                }
-+                "target_env" => {
-+                    env = Some(value.expect("target_env should be a key-value pair").to_string());
-+                }
-+                "target_abi" => {
-+                    abi = Some(value.expect("target_abi should be a key-value pair").to_string());
-+                }
-+                "target_family" => {
-+                    families
-+                        .push(value.expect("target_family should be a key-value pair").to_string());
-+                }
-+                "target_pointer_width" => {
-+                    pointer_width = Some(
-+                        value
-+                            .expect("target_pointer_width should be a key-value pair")
-+                            .parse::<u32>()
-+                            .expect("target_pointer_width should be a valid u32"),
-+                    );
-+                }
-+                "target_endian" => {
-+                    endian = Some(match value.expect("target_endian should be a key-value pair") {
-+                        "big" => Endian::Big,
-+                        "little" => Endian::Little,
-+                        _ => panic!("target_endian should be either 'big' or 'little'"),
-+                    });
-+                }
-+                "panic" => {
-+                    panic = Some(match value.expect("panic should be a key-value pair") {
-+                        "abort" => PanicStrategy::Abort,
-+                        "unwind" => PanicStrategy::Unwind,
-+                        _ => panic!("panic should be either 'abort' or 'unwind'"),
-+                    });
-+                }
-+                _ => (),
-+            }
-+        }
-+
-+        TargetCfg {
-+            arch: arch.expect("target configuration should specify target_arch"),
-+            os: os.expect("target configuration should specify target_os"),
-+            env: env.expect("target configuration should specify target_env"),
-+            abi: abi.expect("target configuration should specify target_abi"),
-+            families,
-+            pointer_width: pointer_width
-+                .expect("target configuration should specify target_pointer_width"),
-+            endian: endian.expect("target configuration should specify target_endian"),
-+            panic: panic.expect("target configuration should specify panic"),
-+        }
-+    }
-+
-     // #[cfg(bootstrap)]
-     // Needed only for one cycle, remove during the bootstrap bump.
-     fn collect_all_slow(config: &Config) -> HashMap<String, TargetCfg> {
-diff --git a/tests/run-make/issue-47551/Makefile b/tests/run-make/issue-47551/Makefile
-index 5a6ac725701..9290f2e0555 100644
---- a/tests/run-make/issue-47551/Makefile
-+++ b/tests/run-make/issue-47551/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- # only-linux
- # ignore-32bit
- 
-diff --git a/tests/run-make/pgo-branch-weights/Makefile b/tests/run-make/pgo-branch-weights/Makefile
-index c60206a1f34..4666be03b85 100644
---- a/tests/run-make/pgo-branch-weights/Makefile
-+++ b/tests/run-make/pgo-branch-weights/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- # needs-profiler-support
- # ignore-windows-gnu
- 
-diff --git a/tests/run-make/pgo-gen-lto/Makefile b/tests/run-make/pgo-gen-lto/Makefile
-index 3f2f6a838b5..9e4f555d21c 100644
---- a/tests/run-make/pgo-gen-lto/Makefile
-+++ b/tests/run-make/pgo-gen-lto/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- # needs-profiler-support
- # ignore-windows-gnu
- 
-diff --git a/tests/run-make/pgo-gen/Makefile b/tests/run-make/pgo-gen/Makefile
-index 4623a74957b..22aed059cf4 100644
---- a/tests/run-make/pgo-gen/Makefile
-+++ b/tests/run-make/pgo-gen/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- # needs-profiler-support
- # ignore-windows-gnu
- 
-diff --git a/tests/run-make/pgo-indirect-call-promotion/Makefile b/tests/run-make/pgo-indirect-call-promotion/Makefile
-index 45302215cc6..519447882ea 100644
---- a/tests/run-make/pgo-indirect-call-promotion/Makefile
-+++ b/tests/run-make/pgo-indirect-call-promotion/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- # needs-profiler-support
- # ignore-windows-gnu
- 
-diff --git a/tests/run-make/pgo-use/Makefile b/tests/run-make/pgo-use/Makefile
-index 3bac9b77aa3..5c64b2342e1 100644
---- a/tests/run-make/pgo-use/Makefile
-+++ b/tests/run-make/pgo-use/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- # needs-profiler-support
- # ignore-windows-gnu
- 
-diff --git a/tests/run-make/profile/Makefile b/tests/run-make/profile/Makefile
-index fffc051adbf..42a63a871d6 100644
---- a/tests/run-make/profile/Makefile
-+++ b/tests/run-make/profile/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- # needs-profiler-support
- 
- include ../tools.mk
-diff --git a/tests/run-make/sysroot-crates-are-unstable/Makefile b/tests/run-make/sysroot-crates-are-unstable/Makefile
-index 1e267fb9576..e3e83c52cc2 100644
---- a/tests/run-make/sysroot-crates-are-unstable/Makefile
-+++ b/tests/run-make/sysroot-crates-are-unstable/Makefile
-@@ -1,2 +1,3 @@
-+# ignore-stage1
- all:
- 	'$(PYTHON)' test.py
-diff --git a/tests/run-make/target-specs/Makefile b/tests/run-make/target-specs/Makefile
-index a33f5368e3c..84459293364 100644
---- a/tests/run-make/target-specs/Makefile
-+++ b/tests/run-make/target-specs/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- include ../tools.mk
- all:
- 	$(RUSTC) foo.rs --target=my-awesome-platform.json --crate-type=lib --emit=asm
-diff --git a/tests/ui/functions-closures/fn-help-with-err.rs b/tests/ui/functions-closures/fn-help-with-err.rs
-index 612fe1b8419..d021f33c550 100644
---- a/tests/ui/functions-closures/fn-help-with-err.rs
-+++ b/tests/ui/functions-closures/fn-help-with-err.rs
-@@ -1,4 +1,5 @@
- // This test case checks the behavior of typeck::check::method::suggest::is_fn on Ty::Error.
-+// ignore-stage1
- 
- struct Foo;
-
-diff --git a/tests/run-make/pointer-auth-link-with-c/Makefile b/tests/run-make/pointer-auth-link-with-c/Makefile
-index dffbd303582..5347d0a90f1 100644
---- a/tests/run-make/pointer-auth-link-with-c/Makefile
-+++ b/tests/run-make/pointer-auth-link-with-c/Makefile
-@@ -1,3 +1,4 @@
-+# ignore-stage1
- include ../tools.mk
- 
- # only-aarch64
diff --git a/poky/meta/recipes-devtools/rust/rust-source.inc b/poky/meta/recipes-devtools/rust/rust-source.inc
index 0009c50..4a720e6 100644
--- a/poky/meta/recipes-devtools/rust/rust-source.inc
+++ b/poky/meta/recipes-devtools/rust/rust-source.inc
@@ -6,7 +6,7 @@
             file://0001-Do-not-use-LFS64-on-linux-with-musl.patch;patchdir=${RUSTSRC} \
             file://zlib-off64_t.patch;patchdir=${RUSTSRC} \
             file://0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=${RUSTSRC} \
-            file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \
+            file://bootstrap_fail.patch;patchdir=${RUSTSRC} \
 "
 SRC_URI[rust.sha256sum] = "bb8e9c564566b2d3228d95de9063a9254182446a161353f1d843bfbaf5c34639"
 
diff --git a/poky/meta/recipes-devtools/strace/strace/00ace1392f5bd289239b755458dcdeeed69af1da.patch b/poky/meta/recipes-devtools/strace/strace/00ace1392f5bd289239b755458dcdeeed69af1da.patch
deleted file mode 100644
index bdf815e..0000000
--- a/poky/meta/recipes-devtools/strace/strace/00ace1392f5bd289239b755458dcdeeed69af1da.patch
+++ /dev/null
@@ -1,303 +0,0 @@
-From 00ace1392f5bd289239b755458dcdeeed69af1da Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@strace.io>
-Date: Mon, 26 Jun 2023 10:00:00 +0000
-Subject: [PATCH] tests: avoid accept() libc function when tracing accept()
- syscall
-
-The libc function is allowed to implement accept() using accept4()
-syscall, so migrate to accept4() those tests that trace accept() syscall
-but do not test accept() specifically, and change the test of accept()
-syscall to invoke either __NR_accept or __NR_socketcall(SYS_ACCEPT)
-directly.
-
-* tests/accept_compat.h: Remove.
-* tests/Makefile.am (EXTRA_DIST): Remove accept_compat.h.
-* tests/accept.c [TEST_SYSCALL_NAME]: Do not invoke accept(),
-call __NR_accept or __NR_socketcall if available, or skip the test.
-* tests/net-y-unix.c: Do not include "accept_compat.h".
-(main): Invoke accept4() instead of accept().
-* tests/net-yy-inet.c: Likewise.
-* tests/net-yy-unix.c: Likewise.
-
-Resolves: https://github.com/strace/strace/issues/260
-
-Upstream-Status: Backport
----
- tests/Makefile.am     |  1 -
- tests/accept.c        | 36 ++++++++++++++++++++----------------
- tests/accept_compat.h | 32 --------------------------------
- tests/net-y-unix.c    | 16 ++++++++--------
- tests/net-yy-inet.c   | 12 ++++++------
- tests/net-yy-unix.c   | 16 ++++++++--------
- 6 files changed, 42 insertions(+), 71 deletions(-)
- delete mode 100644 tests/accept_compat.h
-
-Index: strace-6.3/tests/Makefile.am
-===================================================================
---- strace-6.3.orig/tests/Makefile.am
-+++ strace-6.3/tests/Makefile.am
-@@ -776,7 +776,6 @@ check_DATA = \
- 	# end of check_DATA
- 
- EXTRA_DIST = \
--	accept_compat.h \
- 	attach-p-cmd.h \
- 	clock_adjtime-common.c \
- 	clock_xettime-common.c \
-Index: strace-6.3/tests/accept.c
-===================================================================
---- strace-6.3.orig/tests/accept.c
-+++ strace-6.3/tests/accept.c
-@@ -9,38 +9,36 @@
-  */
- 
- #include "tests.h"
--
-+#include "scno.h"
- #include <unistd.h>
- 
--#include "scno.h"
-+#ifndef TEST_SYSCALL_NAME
- 
--#if defined __NR_accept
-+# if defined __NR_accept || defined __NR_socketcall
- 
--# ifndef TEST_SYSCALL_NAME
- #  define TEST_SYSCALL_NAME do_accept
--
--#  ifndef TEST_SYSCALL_STR
--#   define TEST_SYSCALL_STR "accept"
--#  endif
-+#  define TEST_SYSCALL_STR "accept"
- 
- static int
- do_accept(int sockfd, void *addr, void *addrlen)
- {
-+#  ifdef __NR_accept
- 	return syscall(__NR_accept, sockfd, addr, addrlen);
-+#  else /* __NR_socketcall */
-+	const long args[] = { sockfd, (long) addr, (long) addrlen };
-+	return syscall(__NR_socketcall, 5, args);
-+#  endif
- }
--# endif /* !TEST_SYSCALL_NAME */
- 
--#else /* !__NR_accept */
-+# endif /* __NR_accept || __NR_socketcall */
- 
--# ifndef TEST_SYSCALL_NAME
--#  define TEST_SYSCALL_NAME accept
--# endif
-+#endif /* !TEST_SYSCALL_NAME */
- 
--#endif /* __NR_accept */
-+#ifdef TEST_SYSCALL_NAME
- 
--#define TEST_SYSCALL_PREPARE connect_un()
-+# define TEST_SYSCALL_PREPARE connect_un()
- static void connect_un(void);
--#include "sockname.c"
-+# include "sockname.c"
- 
- static void
- connect_un(void)
-@@ -90,3 +88,9 @@ main(void)
- 	puts("+++ exited with 0 +++");
- 	return 0;
- }
-+
-+#else
-+
-+SKIP_MAIN_UNDEFINED("__NR_accept || __NR_socketcall")
-+
-+#endif
-Index: strace-6.3/tests/accept_compat.h
-===================================================================
---- strace-6.3.orig/tests/accept_compat.h
-+++ /dev/null
-@@ -1,32 +0,0 @@
--/*
-- * Copyright (c) 2018-2019 The strace developers.
-- * All rights reserved.
-- *
-- * SPDX-License-Identifier: GPL-2.0-or-later
-- */
--
--#ifndef _STRACE_TESTS_ACCEPT_COMPAT_H_
--# define _STRACE_TESTS_ACCEPT_COMPAT_H_
--
--# include <unistd.h>
--# include <sys/socket.h>
--# include "scno.h"
--
--# if defined __NR_socketcall && defined __sparc__
--/*
-- * Work around the fact that
-- * - glibc >= 2.26 uses accept4 syscall to implement accept() call on sparc;
-- * - accept syscall had not been wired up on sparc until v4.4-rc8~4^2~1.
-- */
--static inline int
--do_accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
--{
--	const long args[] = { sockfd, (long) addr, (long) addrlen };
--
--	return syscall(__NR_socketcall, 5, args);
--}
--# else
--#  define do_accept accept
--# endif
--
--#endif /* !_STRACE_TESTS_ACCEPT_COMPAT_H_ */
-Index: strace-6.3/tests/net-y-unix.c
-===================================================================
---- strace-6.3.orig/tests/net-y-unix.c
-+++ strace-6.3/tests/net-y-unix.c
-@@ -10,6 +10,7 @@
- 
- #include "tests.h"
- #include <assert.h>
-+#include <fcntl.h>
- #include <stddef.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -18,8 +19,6 @@
- #include <sys/socket.h>
- #include <sys/un.h>
- 
--#include "accept_compat.h"
--
- #define TEST_SOCKET "net-y-unix.socket"
- 
- int
-@@ -88,12 +87,12 @@ main(void)
- 	struct sockaddr * const accept_sa = tail_alloc(sizeof(addr));
- 	memset(accept_sa, 0, sizeof(addr));
- 	*len = sizeof(addr);
--	int accept_fd = do_accept(listen_fd, accept_sa, len);
-+	int accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
- 	if (accept_fd < 0)
- 		perror_msg_and_fail("accept");
- 	unsigned long accept_inode = inode_of_sockfd(accept_fd);
--	printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX}"
--	       ", [%d => %d]) = %d<socket:[%lu]>\n",
-+	printf("accept4(%d<socket:[%lu]>, {sa_family=AF_UNIX}"
-+	       ", [%d => %d], SOCK_CLOEXEC) = %d<socket:[%lu]>\n",
- 	       listen_fd, listen_inode,
- 	       (int) sizeof(addr), (int) *len,
- 	       accept_fd, accept_inode);
-@@ -160,14 +159,15 @@ main(void)
- 
- 	memset(accept_sa, 0, sizeof(addr));
- 	*len = sizeof(addr);
--	accept_fd = do_accept(listen_fd, accept_sa, len);
-+	accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
- 	if (accept_fd < 0)
- 		perror_msg_and_fail("accept");
- 	accept_inode = inode_of_sockfd(accept_fd);
- 	const char * const sun_path1 =
- 		((struct sockaddr_un *) accept_sa)->sun_path + 1;
--	printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX"
--	       ", sun_path=@\"%s\"}, [%d => %d]) = %d<socket:[%lu]>\n",
-+	printf("accept4(%d<socket:[%lu]>, {sa_family=AF_UNIX"
-+	       ", sun_path=@\"%s\"}, [%d => %d], SOCK_CLOEXEC)"
-+	       " = %d<socket:[%lu]>\n",
- 	       listen_fd, listen_inode, sun_path1,
- 	       (int) sizeof(addr), (int) *len,
- 	       accept_fd, accept_inode);
-Index: strace-6.3/tests/net-yy-inet.c
-===================================================================
---- strace-6.3.orig/tests/net-yy-inet.c
-+++ strace-6.3/tests/net-yy-inet.c
-@@ -10,6 +10,7 @@
- 
- #include "tests.h"
- #include <assert.h>
-+#include <fcntl.h>
- #include <stddef.h>
- #include <stdio.h>
- #include <string.h>
-@@ -19,8 +20,6 @@
- #include <netinet/tcp.h>
- #include <arpa/inet.h>
- 
--#include "accept_compat.h"
--
- #ifndef ADDR_FAMILY
- # define ADDR_FAMILY_FIELD sin_family
- # define ADDR_FAMILY AF_INET
-@@ -104,14 +103,15 @@ main(void)
- 	struct sockaddr * const accept_sa = tail_alloc(sizeof(addr));
- 	memset(accept_sa, 0, sizeof(addr));
- 	*len = sizeof(addr);
--	const int accept_fd = do_accept(listen_fd, accept_sa, len);
-+	const int accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
- 	if (accept_fd < 0)
- 		perror_msg_and_fail("accept");
- 	const unsigned int connect_port =
- 		ntohs(((struct SOCKADDR_TYPE *) accept_sa)->INPORT);
--	printf("accept(%d<" TCP_STR ":[" LOOPBACK ":%u]>, {sa_family=" AF_STR
--	       ", " INPORT_STR "=htons(%u), " INADDR_STR SA_FIELDS "}"
--	       ", [%u]) = %d<" TCP_STR ":[" LOOPBACK ":%u->" LOOPBACK ":%u]>\n",
-+	printf("accept4(%d<" TCP_STR ":[" LOOPBACK ":%u]>, {sa_family=" AF_STR
-+	       ", " INPORT_STR "=htons(%u), " INADDR_STR SA_FIELDS "}, [%u]"
-+	       ", SOCK_CLOEXEC) = %d<" TCP_STR ":[" LOOPBACK ":%u->" LOOPBACK
-+	       ":%u]>\n",
- 	       listen_fd, listen_port, connect_port, (unsigned) *len,
- 	       accept_fd, listen_port, connect_port);
- 
-Index: strace-6.3/tests/net-yy-unix.c
-===================================================================
---- strace-6.3.orig/tests/net-yy-unix.c
-+++ strace-6.3/tests/net-yy-unix.c
-@@ -10,6 +10,7 @@
- 
- #include "tests.h"
- #include <assert.h>
-+#include <fcntl.h>
- #include <stddef.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -22,8 +23,6 @@
- # include "xmalloc.h"
- #endif
- 
--#include "accept_compat.h"
--
- #define TEST_SOCKET "net-yy-unix.socket"
- 
- int
-@@ -112,12 +111,12 @@ main(void)
- 	struct sockaddr * const accept_sa = tail_alloc(sizeof(addr));
- 	memset(accept_sa, 0, sizeof(addr));
- 	*len = sizeof(addr);
--	int accept_fd = do_accept(listen_fd, accept_sa, len);
-+	int accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
- 	if (accept_fd < 0)
- 		perror_msg_and_fail("accept");
- 	unsigned long accept_inode = inode_of_sockfd(accept_fd);
--	printf("accept(%d<%s:[%lu,\"%s\"]>, {sa_family=AF_UNIX}"
--	       ", [%d => %d]) = %d<%s:[%lu->%lu,\"%s\"]>\n",
-+	printf("accept4(%d<%s:[%lu,\"%s\"]>, {sa_family=AF_UNIX}"
-+	       ", [%d => %d], SOCK_CLOEXEC) = %d<%s:[%lu->%lu,\"%s\"]>\n",
- 	       listen_fd, sock_proto_name, listen_inode, TEST_SOCKET,
- 	       (int) sizeof(addr), (int) *len,
- 	       accept_fd, sock_proto_name, accept_inode, connect_inode,
-@@ -191,14 +190,15 @@ main(void)
- 
- 	memset(accept_sa, 0, sizeof(addr));
- 	*len = sizeof(addr);
--	accept_fd = do_accept(listen_fd, accept_sa, len);
-+	accept_fd = accept4(listen_fd, accept_sa, len, O_CLOEXEC);
- 	if (accept_fd < 0)
- 		perror_msg_and_fail("accept");
- 	accept_inode = inode_of_sockfd(accept_fd);
- 	const char * const sun_path1 =
- 		((struct sockaddr_un *) accept_sa)->sun_path + 1;
--	printf("accept(%d<%s:[%lu,\"%s\"]>, {sa_family=AF_UNIX"
--	       ", sun_path=@\"%s\"}, [%d => %d]) = %d<%s:[%lu->%lu,\"%s\"]>\n",
-+	printf("accept4(%d<%s:[%lu,\"%s\"]>, {sa_family=AF_UNIX"
-+	       ", sun_path=@\"%s\"}, [%d => %d], SOCK_CLOEXEC)"
-+	       " = %d<%s:[%lu->%lu,\"%s\"]>\n",
- 	       listen_fd, sock_proto_name, listen_inode, TEST_SOCKET,
- 	       sun_path1, (int) sizeof(addr), (int) *len,
- 	       accept_fd, sock_proto_name, accept_inode, connect_inode,
diff --git a/poky/meta/recipes-devtools/strace/strace/3bbfb541b258baec9eba674b5d8dc30007a61542.patch b/poky/meta/recipes-devtools/strace/strace/3bbfb541b258baec9eba674b5d8dc30007a61542.patch
deleted file mode 100644
index b4c6ff9..0000000
--- a/poky/meta/recipes-devtools/strace/strace/3bbfb541b258baec9eba674b5d8dc30007a61542.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 3bbfb541b258baec9eba674b5d8dc30007a61542 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@strace.io>
-Date: Wed, 21 Jun 2023 08:00:00 +0000
-Subject: [PATCH] net: enhance getsockopt decoding
-
-When getsockopt syscall fails the kernel sometimes updates the optlen
-argument, for example, NETLINK_LIST_MEMBERSHIPS updates it even if
-optval is not writable.
-
-* src/net.c (SYS_FUNC(getsockopt)): Try to fetch and print optlen
-argument on exiting syscall regardless of getsockopt exit status.
-
-Upstream-Status: Backport
----
- src/net.c | 15 ++++++++++++++-
- 1 file changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/src/net.c b/src/net.c
-index f68ccb947..7244b5e57 100644
---- a/src/net.c
-+++ b/src/net.c
-@@ -1038,7 +1038,7 @@ SYS_FUNC(getsockopt)
- 	} else {
- 		ulen = get_tcb_priv_ulong(tcp);
- 
--		if (syserror(tcp) || umove(tcp, tcp->u_arg[4], &rlen) < 0) {
-+		if (umove(tcp, tcp->u_arg[4], &rlen) < 0) {
- 			/* optval */
- 			printaddr(tcp->u_arg[3]);
- 			tprint_arg_next();
-@@ -1047,6 +1047,19 @@ SYS_FUNC(getsockopt)
- 			tprint_indirect_begin();
- 			PRINT_VAL_D(ulen);
- 			tprint_indirect_end();
-+		} else if (syserror(tcp)) {
-+			/* optval */
-+			printaddr(tcp->u_arg[3]);
-+			tprint_arg_next();
-+
-+			/* optlen */
-+			tprint_indirect_begin();
-+			if (ulen != rlen) {
-+				PRINT_VAL_D(ulen);
-+				tprint_value_changed();
-+			}
-+			PRINT_VAL_D(rlen);
-+			tprint_indirect_end();
- 		} else {
- 			/* optval */
- 			print_getsockopt(tcp, tcp->u_arg[1], tcp->u_arg[2],
diff --git a/poky/meta/recipes-devtools/strace/strace/f31c2f4494779e5c5f170ad10539bfc2dfafe967.patch b/poky/meta/recipes-devtools/strace/strace/f31c2f4494779e5c5f170ad10539bfc2dfafe967.patch
deleted file mode 100644
index a084383..0000000
--- a/poky/meta/recipes-devtools/strace/strace/f31c2f4494779e5c5f170ad10539bfc2dfafe967.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f31c2f4494779e5c5f170ad10539bfc2dfafe967 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@strace.io>
-Date: Sat, 24 Jun 2023 08:00:00 +0000
-Subject: [PATCH] tests: update sockopt-sol_netlink test
-
-Update sockopt-sol_netlink test that started to fail, likely
-due to recent linux kernel commit f4e4534850a9 ("net/netlink: fix
-NETLINK_LIST_MEMBERSHIPS length report").
-
-* tests/sockopt-sol_netlink.c (main): Always print changing optlen value
-on exiting syscall.
-
-Reported-by: Alexander Gordeev <agordeev@linux.ibm.com>
----
- tests/sockopt-sol_netlink.c | 13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-Upstream-Status: Backport
-
-diff --git a/tests/sockopt-sol_netlink.c b/tests/sockopt-sol_netlink.c
-index 82b98adc23..1c33219ac5 100644
---- a/tests/sockopt-sol_netlink.c
-+++ b/tests/sockopt-sol_netlink.c
-@@ -94,7 +94,10 @@ main(void)
- 			printf("%p", val);
- 		else
- 			printf("[%d]", *val);
--		printf(", [%d]) = %s\n", *len, errstr);
-+		printf(", [%d", (int) sizeof(*val));
-+		if ((int) sizeof(*val) != *len)
-+			printf(" => %d", *len);
-+		printf("]) = %s\n", errstr);
- 
- 		/* optlen larger than necessary - shortened */
- 		*len = sizeof(*val) + 1;
-@@ -150,8 +153,12 @@ main(void)
- 		/* optval EFAULT - print address */
- 		*len = sizeof(*val);
- 		get_sockopt(fd, names[i].val, efault, len);
--		printf("getsockopt(%d, SOL_NETLINK, %s, %p, [%d]) = %s\n",
--		       fd, names[i].str, efault, *len, errstr);
-+		printf("getsockopt(%d, SOL_NETLINK, %s, %p",
-+		       fd, names[i].str, efault);
-+		printf(", [%d", (int) sizeof(*val));
-+		if ((int) sizeof(*val) != *len)
-+			printf(" => %d", *len);
-+		printf("]) = %s\n", errstr);
- 
- 		/* optlen EFAULT - print address */
- 		get_sockopt(fd, names[i].val, val, len + 1);
diff --git a/poky/meta/recipes-devtools/strace/strace_6.3.bb b/poky/meta/recipes-devtools/strace/strace_6.4.bb
similarity index 88%
rename from poky/meta/recipes-devtools/strace/strace_6.3.bb
rename to poky/meta/recipes-devtools/strace/strace_6.4.bb
index a47cc71..2174790 100644
--- a/poky/meta/recipes-devtools/strace/strace_6.3.bb
+++ b/poky/meta/recipes-devtools/strace/strace_6.4.bb
@@ -14,11 +14,8 @@
            file://skip-load.patch \
            file://0001-configure-Use-autoconf-macro-to-detect-largefile-sup.patch \
            file://0002-tests-Replace-off64_t-with-off_t.patch \
-           file://00ace1392f5bd289239b755458dcdeeed69af1da.patch \
-           file://f31c2f4494779e5c5f170ad10539bfc2dfafe967.patch \
-           file://3bbfb541b258baec9eba674b5d8dc30007a61542.patch \
            "
-SRC_URI[sha256sum] = "e17878e301506c1cc301611118ad14efee7f8bcef63b27ace5d290acce7bb731"
+SRC_URI[sha256sum] = "27987dbac57fdfd260c6db4dc8328df35c95c6867c8a3d4371d59cdcf4eb9238"
 
 inherit autotools ptest
 
diff --git a/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb b/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
index 9e77f12..7d151d4 100644
--- a/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
+++ b/poky/meta/recipes-devtools/tcf-agent/tcf-agent_git.bb
@@ -6,8 +6,8 @@
 LICENSE = "EPL-1.0 | EDL-1.0"
 LIC_FILES_CHKSUM = "file://edl-v10.html;md5=522a390a83dc186513f0500543ad3679"
 
-SRCREV = "4a2c4baaccbc8c29ce0297705de9a4e096d57ce5"
-PV = "1.7.0+git${SRCPV}"
+SRCREV = "1f11747e83ebf4f53e8d17f430136f92ec378709"
+PV = "1.8.0+git${SRCPV}"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
 SRC_URI = "git://git.eclipse.org/r/tcf/org.eclipse.tcf.agent.git;protocol=https;branch=master \
diff --git a/poky/meta/recipes-extended/acpica/acpica_20230628.bb b/poky/meta/recipes-extended/acpica/acpica_20230628.bb
index 06db99c..3b939ad 100644
--- a/poky/meta/recipes-extended/acpica/acpica_20230628.bb
+++ b/poky/meta/recipes-extended/acpica/acpica_20230628.bb
@@ -6,7 +6,7 @@
 subsystem, and a small set of tools to assist in developing and debugging \
 ACPI tables."
 
-HOMEPAGE = "http://www.acpica.org/"
+HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/topic-technology/open/acpica/overview.html"
 SECTION = "console/tools"
 
 LICENSE = "Intel | BSD-3-Clause | GPL-2.0-only"
@@ -16,10 +16,11 @@
 
 DEPENDS = "m4-native flex-native bison-native"
 
-SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
+SRC_URI = "https://downloadmirror.intel.com/783534/acpica-unix-${PV}.tar.gz"
 SRC_URI[sha256sum] = "86876a745e3d224dcfd222ed3de465b47559e85811df2db9820ef09a9dff5cce"
 
-UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
+UPSTREAM_CHECK_URI = "https://www.intel.com/content/www/us/en/download/776303/acpi-component-architecture-downloads-unix-format-source-code-and-build-environment-with-an-intel-license.html"
+UPSTREAM_VERSION_UNKNOWN = "1"
 
 S = "${WORKDIR}/acpica-unix-${PV}"
 
diff --git a/poky/meta/recipes-extended/findutils/findutils.inc b/poky/meta/recipes-extended/findutils/findutils.inc
index ddcc057..03cf2a8 100644
--- a/poky/meta/recipes-extended/findutils/findutils.inc
+++ b/poky/meta/recipes-extended/findutils/findutils.inc
@@ -7,6 +7,7 @@
 SECTION = "console/utils"
 
 SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.xz \
+          file://autoconf-2.73.patch \
           file://run-ptest \
           "
 
diff --git a/poky/meta/recipes-extended/findutils/findutils/autoconf-2.73.patch b/poky/meta/recipes-extended/findutils/findutils/autoconf-2.73.patch
new file mode 100644
index 0000000..63728b5
--- /dev/null
+++ b/poky/meta/recipes-extended/findutils/findutils/autoconf-2.73.patch
@@ -0,0 +1,24 @@
+The gnulib largefile macro needs updating to work with autoconf 2.73. Rather
+than the full code:
+
+https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4/largefile.m4?id=f91f633858cf132e50924224c50d6264a92caabb
+
+Just tweak the exiting code to work with 2.73. The next findutils upgrade should
+update to new gnulib
+
+Upstream-Status: Inappropriate
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: findutils-4.9.0/gl/m4/largefile.m4
+===================================================================
+--- findutils-4.9.0.orig/gl/m4/largefile.m4
++++ findutils-4.9.0/gl/m4/largefile.m4
+@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch b/poky/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch
new file mode 100644
index 0000000..b29212f
--- /dev/null
+++ b/poky/meta/recipes-extended/ghostscript/ghostscript/0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch
@@ -0,0 +1,31 @@
+From d81b82c70bc1fb9991bb95f1201abb5dea55f57f Mon Sep 17 00:00:00 2001
+From: Chris Liddell <chris.liddell@artifex.com>
+Date: Mon, 17 Jul 2023 14:06:37 +0100
+Subject: [PATCH] Bug 706897: Copy pcx buffer overrun fix from
+ devices/gdevpcx.c
+
+Bounds check the buffer, before dereferencing the pointer.
+
+CVE: CVE-2023-38559
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ base/gdevdevn.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/base/gdevdevn.c b/base/gdevdevn.c
+index 7b14d9c71..6351fb77a 100644
+--- a/base/gdevdevn.c
++++ b/base/gdevdevn.c
+@@ -1983,7 +1983,7 @@ devn_pcx_write_rle(const byte * from, const byte * end, int step, gp_file * file
+         byte data = *from;
+ 
+         from += step;
+-        if (data != *from || from == end) {
++        if (from >= end || data != *from) {
+             if (data >= 0xc0)
+                 gp_fputc(0xc1, file);
+         } else {
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb b/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb
index fdbdfb6..0ddf708 100644
--- a/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb
+++ b/poky/meta/recipes-extended/ghostscript/ghostscript_10.01.2.bb
@@ -25,6 +25,7 @@
 SRC_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${@gs_verdir("${PV}")}/${BPN}-${PV}.tar.gz \
            file://ghostscript-9.16-Werror-return-type.patch \
            file://avoid-host-contamination.patch \
+           file://0001-Bug-706897-Copy-pcx-buffer-overrun-fix-from-devices-.patch \
 "
 
 SRC_URI[sha256sum] = "a4cd61a07fec161bee35da0211a5e5cde8ff8a0aaf942fc0176715e499d21661"
@@ -66,3 +67,5 @@
 
 # some entries in NVD uses gpl_ghostscript
 CVE_PRODUCT = "ghostscript gpl_ghostscript"
+
+CVE_STATUS[CVE-2023-38560] = "not-applicable-config: PCL isn't part of the Ghostscript release"
diff --git a/poky/meta/recipes-extended/gzip/gzip-1.12/autoconf-2.73.patch b/poky/meta/recipes-extended/gzip/gzip-1.12/autoconf-2.73.patch
new file mode 100644
index 0000000..18f992b
--- /dev/null
+++ b/poky/meta/recipes-extended/gzip/gzip-1.12/autoconf-2.73.patch
@@ -0,0 +1,24 @@
+The gnulib largefile macro needs updating to work with autoconf 2.73. Rather
+than the full code:
+
+https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4/largefile.m4?id=f91f633858cf132e50924224c50d6264a92caabb
+
+Just tweak the exiting code to work with 2.73. The next gzip upgrade should
+update to new gnulib
+
+Upstream-Status: Inappropriate
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: findutils-4.9.0/gl/m4/largefile.m4
+===================================================================
+--- findutils-4.9.0.orig/m4/largefile.m4
++++ findutils-4.9.0/m4/largefile.m4
+@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
diff --git a/poky/meta/recipes-extended/gzip/gzip_1.12.bb b/poky/meta/recipes-extended/gzip/gzip_1.12.bb
index 14de50b..35eb7c4 100644
--- a/poky/meta/recipes-extended/gzip/gzip_1.12.bb
+++ b/poky/meta/recipes-extended/gzip/gzip_1.12.bb
@@ -5,6 +5,7 @@
 LICENSE = "GPL-3.0-or-later"
 
 SRC_URI = "${GNU_MIRROR}/gzip/${BP}.tar.gz \
+           file://autoconf-2.73.patch \
            file://run-ptest \
           "
 SRC_URI:append:class-target = " file://wrong-path-fix.patch"
diff --git a/poky/meta/recipes-extended/images/core-image-full-cmdline.bb b/poky/meta/recipes-extended/images/core-image-full-cmdline.bb
index 4d69073..4e1cf58 100644
--- a/poky/meta/recipes-extended/images/core-image-full-cmdline.bb
+++ b/poky/meta/recipes-extended/images/core-image-full-cmdline.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "A console-only image with more full-featured Linux system \
+SUMMARY = "A console-only image with more full-featured Linux system \
 functionality installed."
 
 IMAGE_FEATURES += "splash ssh-server-openssh"
diff --git a/poky/meta/recipes-extended/images/core-image-testcontroller-initramfs.bb b/poky/meta/recipes-extended/images/core-image-testcontroller-initramfs.bb
index 2bc035a..a5b3d10 100644
--- a/poky/meta/recipes-extended/images/core-image-testcontroller-initramfs.bb
+++ b/poky/meta/recipes-extended/images/core-image-testcontroller-initramfs.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "Small image capable of booting a device with custom install scripts, \
+SUMMARY = "Small image capable of booting a device with custom install scripts, \
 adding a second rootfs, used for testing."
 
 # use -testfs live-install scripts
diff --git a/poky/meta/recipes-extended/images/core-image-testcontroller.bb b/poky/meta/recipes-extended/images/core-image-testcontroller.bb
index 20edbd5..ff79bde 100644
--- a/poky/meta/recipes-extended/images/core-image-testcontroller.bb
+++ b/poky/meta/recipes-extended/images/core-image-testcontroller.bb
@@ -1,4 +1,4 @@
-DESCRIPTION = "A test controller image to be deployed on a target useful for testing other images using the OEQA runtime tests"
+SUMMARY = "A test controller image to be deployed on a target useful for testing other images using the OEQA runtime tests"
 
 IMAGE_FEATURES += "ssh-server-openssh package-management"
 
diff --git a/poky/meta/recipes-extended/libarchive/libarchive/configurehack.patch b/poky/meta/recipes-extended/libarchive/libarchive/configurehack.patch
new file mode 100644
index 0000000..f3989d9
--- /dev/null
+++ b/poky/meta/recipes-extended/libarchive/libarchive/configurehack.patch
@@ -0,0 +1,49 @@
+To work with autoconf 2.73, tweak the macro ordering in configure.in.
+
+Upstream-Status: Pending
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: libarchive-3.6.2/configure.ac
+===================================================================
+--- libarchive-3.6.2.orig/configure.ac
++++ libarchive-3.6.2/configure.ac
+@@ -357,6 +357,19 @@ if test "x$with_bz2lib" != "xno"; then
+   esac
+ fi
+ 
++# Checks for typedefs, structures, and compiler characteristics.
++AC_C_CONST
++# la_TYPE_UID_T defaults to "int", which is incorrect for MinGW
++# and MSVC. Use a customized version.
++la_TYPE_UID_T
++AC_TYPE_MODE_T
++# AC_TYPE_OFF_T defaults to "long", which limits us to 4GB files on
++# most systems... default to "long long" instead.
++AC_CHECK_TYPE(off_t, [long long])
++AC_TYPE_SIZE_T
++AC_CHECK_TYPE(id_t, [unsigned long])
++AC_CHECK_TYPE(uintptr_t, [unsigned int])
++
+ AC_ARG_WITH([libb2],
+   AS_HELP_STRING([--without-libb2], [Don't build support for BLAKE2 through libb2]))
+ 
+@@ -558,19 +571,6 @@ LDFLAGS=$save_LDFLAGS
+ 
+ AC_SUBST(GC_SECTIONS)
+ 
+-# Checks for typedefs, structures, and compiler characteristics.
+-AC_C_CONST
+-# la_TYPE_UID_T defaults to "int", which is incorrect for MinGW
+-# and MSVC. Use a customized version.
+-la_TYPE_UID_T
+-AC_TYPE_MODE_T
+-# AC_TYPE_OFF_T defaults to "long", which limits us to 4GB files on
+-# most systems... default to "long long" instead.
+-AC_CHECK_TYPE(off_t, [long long])
+-AC_TYPE_SIZE_T
+-AC_CHECK_TYPE(id_t, [unsigned long])
+-AC_CHECK_TYPE(uintptr_t, [unsigned int])
+-
+ # Check for tm_gmtoff in struct tm
+ AC_CHECK_MEMBERS([struct tm.tm_gmtoff, struct tm.__tm_gmtoff],,,
+ [
diff --git a/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb b/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
index aafede3..4169a01 100644
--- a/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
+++ b/poky/meta/recipes-extended/libarchive/libarchive_3.6.2.bb
@@ -29,10 +29,13 @@
 EXTRA_OECONF += "--enable-largefile --without-iconv"
 
 SRC_URI = "http://libarchive.org/downloads/libarchive-${PV}.tar.gz"
+SRC_URI += "file://configurehack.patch"
 UPSTREAM_CHECK_URI = "http://libarchive.org/"
 
 SRC_URI[sha256sum] = "ba6d02f15ba04aba9c23fd5f236bb234eab9d5209e95d1c4df85c44d5f19b9b3"
 
+CVE_STATUS[CVE-2023-30571] = "upstream-wontfix: upstream has documented that reported function is not thread-safe"
+
 inherit autotools update-alternatives pkgconfig
 
 CPPFLAGS += "-I${WORKDIR}/extra-includes"
diff --git a/poky/meta/recipes-extended/libpipeline/libpipeline/autoconf-2.73.patch b/poky/meta/recipes-extended/libpipeline/libpipeline/autoconf-2.73.patch
new file mode 100644
index 0000000..e61e5aa
--- /dev/null
+++ b/poky/meta/recipes-extended/libpipeline/libpipeline/autoconf-2.73.patch
@@ -0,0 +1,24 @@
+The gnulib largefile macro needs updating to work with autoconf 2.73. Rather
+than the full code:
+
+https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4/largefile.m4?id=f91f633858cf132e50924224c50d6264a92caabb
+
+Just tweak the exiting code to work with 2.73. The next libpipeline upgrade should
+update to new gnulib
+
+Upstream-Status: Inappropriate
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: findutils-4.9.0/gl/m4/largefile.m4
+===================================================================
+--- findutils-4.9.0.orig/gl/m4/largefile.m4
++++ findutils-4.9.0/gl/m4/largefile.m4
+@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
diff --git a/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.7.bb b/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.7.bb
index 73c7aaa..7e3f13e 100644
--- a/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.7.bb
+++ b/poky/meta/recipes-extended/libpipeline/libpipeline_1.5.7.bb
@@ -7,6 +7,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
 
 SRC_URI = "${SAVANNAH_GNU_MIRROR}/libpipeline/libpipeline-${PV}.tar.gz"
+SRC_URI += "file://autoconf-2.73.patch"
 SRC_URI[sha256sum] = "b8b45194989022a79ec1317f64a2a75b1551b2a55bea06f67704cb2a2e4690b0"
 
 inherit pkgconfig autotools
diff --git a/poky/meta/recipes-extended/ltp/ltp_20230516.bb b/poky/meta/recipes-extended/ltp/ltp_20230516.bb
index e9407d3..4d132b7 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20230516.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20230516.bb
@@ -41,13 +41,14 @@
 # https://sourceware.org/bugzilla/show_bug.cgi?id=18097
 # https://github.com/linux-test-project/ltp/commit/3fce2064b54843218d085aae326c8f7ecf3a8c41#diff-39268f0855c634ca48c8993fcd2c95b12a65b79e8d9fa5ccd6b0f5a8785c0dd6R36
 LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd', '', d)}"
+LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd', '', d)}"
 
 # After 0002-kvm-use-LD-instead-of-hardcoding-ld.patch
 # https://github.com/linux-test-project/ltp/commit/f94e0ef3b7280f886384703ef9019aaf2f2dfebb
 # it fails with gold also a bit later when trying to use *-payload.bin
 # http://errors.yoctoproject.org/Errors/Details/663094/
 # work around this by forcing .bfd linked in LD when ld-is-gold is in DISTRO_FEATURES
-KVM_LD = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${LD}', d)}"
+KVM_LD = "${@bb.utils.contains_any('DISTRO_FEATURES', 'ld-is-gold ld-is-lld', '${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${LD}', d)}"
 
 TARGET_CC_ARCH += "${LDFLAGS}"
 
@@ -112,6 +113,8 @@
     tar \
 "
 
+RRECOMMENDS:${PN} += "kernel-module-loop"
+
 FILES:${PN} += "${prefix}/* ${prefix}/runtest/* ${prefix}/scenario_groups/* ${prefix}/testcases/bin/* ${prefix}/testcases/bin/*/bin/* ${prefix}/testscripts/* ${prefix}/testcases/open_posix_testsuite/* ${prefix}/testcases/open_posix_testsuite/conformance/* ${prefix}/testcases/open_posix_testsuite/Documentation/* ${prefix}/testcases/open_posix_testsuite/functional/* ${prefix}/testcases/open_posix_testsuite/include/* ${prefix}/testcases/open_posix_testsuite/scripts/* ${prefix}/testcases/open_posix_testsuite/stress/* ${prefix}/testcases/open_posix_testsuite/tools/* ${prefix}/testcases/data/nm01/lib.a ${prefix}/lib/libmem.a"
 
 # Avoid stripping some generated binaries otherwise some of the ltp tests such as ldd01 & nm01 fail
diff --git a/poky/meta/recipes-extended/man-db/files/autoconf-2.73.patch b/poky/meta/recipes-extended/man-db/files/autoconf-2.73.patch
new file mode 100644
index 0000000..6c997a6
--- /dev/null
+++ b/poky/meta/recipes-extended/man-db/files/autoconf-2.73.patch
@@ -0,0 +1,24 @@
+The gnulib largefile macro needs updating to work with autoconf 2.73. Rather
+than the full code:
+
+https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4/largefile.m4?id=f91f633858cf132e50924224c50d6264a92caabb
+
+Just tweak the exiting code to work with 2.73. The next man-db upgrade should
+update to new gnulib
+
+Upstream-Status: Inappropriate
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: findutils-4.9.0/gl/m4/largefile.m4
+===================================================================
+--- findutils-4.9.0.orig/gl/m4/largefile.m4
++++ findutils-4.9.0/gl/m4/largefile.m4
+@@ -26,7 +26,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # with _TIME_BITS.  Also, work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
diff --git a/poky/meta/recipes-extended/man-db/man-db_2.11.2.bb b/poky/meta/recipes-extended/man-db/man-db_2.11.2.bb
index ca0cb1a..3884a53 100644
--- a/poky/meta/recipes-extended/man-db/man-db_2.11.2.bb
+++ b/poky/meta/recipes-extended/man-db/man-db_2.11.2.bb
@@ -10,6 +10,7 @@
 SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/man-db/man-db-${PV}.tar.xz \
            file://99_mandb \
            file://0001-man-Move-local-variable-declaration-to-function-scop.patch \
+           file://autoconf-2.73.patch \
            file://man_db.conf-avoid-multilib-install-file-conflict.patch"
 SRC_URI[sha256sum] = "cffa1ee4e974be78646c46508e6dd2f37e7c589aaab2938cc1064f058fef9f8d"
 
diff --git a/poky/meta/recipes-extended/mdadm/files/run-ptest b/poky/meta/recipes-extended/mdadm/files/run-ptest
index 2380c32..c3f2014 100644
--- a/poky/meta/recipes-extended/mdadm/files/run-ptest
+++ b/poky/meta/recipes-extended/mdadm/files/run-ptest
@@ -1,7 +1,10 @@
 #!/bin/sh
 
-mkdir -p /mdadm-testing-dir
-# make the test continue to execute even one fail
-dir=. ./test --keep-going --disable-integrity --skip-broken
+logdir=$PWD/logs
+targetdir=/mdadm-testing-dir
 
-rm -rf /mdadm-testing-dir/*
+rm -rf $targetdir $logdir
+mkdir -p $targetdir $logdir
+
+# make the test continue to execute even one fail
+./test --keep-going --disable-integrity --skip-broken --save-logs --logdir=$logdir
diff --git a/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb b/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb
index 50d9548..fa50325 100644
--- a/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb
+++ b/poky/meta/recipes-extended/mdadm/mdadm_4.2.bb
@@ -107,7 +107,14 @@
 }
 
 RDEPENDS:${PN} += "bash"
-RDEPENDS:${PN}-ptest += "bash e2fsprogs-mke2fs util-linux-lsblk util-linux-losetup strace"
+RDEPENDS:${PN}-ptest += " \
+    bash \
+    e2fsprogs-mke2fs \
+    util-linux-lsblk \
+    util-linux-losetup \
+    util-linux-blockdev \
+    strace \
+"
 RRECOMMENDS:${PN}-ptest += " \
     coreutils \
     kernel-module-loop \
diff --git a/poky/meta/recipes-extended/pam/libpam_1.5.3.bb b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
index eafb5aa..1aa307a 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
@@ -169,7 +169,7 @@
 }
 
 inherit features_check
-REQUIRED_DISTRO_FEATURES = "pam"
+ANY_OF_DISTRO_FEATURES = "pam systemd"
 
 BBCLASSEXTEND = "nativesdk native"
 
diff --git a/poky/meta/recipes-extended/parted/files/autoconf-2.73.patch b/poky/meta/recipes-extended/parted/files/autoconf-2.73.patch
new file mode 100644
index 0000000..63dea88
--- /dev/null
+++ b/poky/meta/recipes-extended/parted/files/autoconf-2.73.patch
@@ -0,0 +1,22 @@
+The gnulib largefile macro needs updating to work with autoconf 2.73. Rather
+than the full code:
+
+https://git.savannah.gnu.org/cgit/gnulib.git/commit/m4/largefile.m4?id=f91f633858cf132e50924224c50d6264a92caabb
+
+Just tweak the exiting code to work with 2.73. The next parted upgrade should
+update to new gnulib
+
+Upstream-Status: Inappropriate
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+--- a/m4/largefile.m4
++++ b/m4/largefile.m4
+@@ -27,7 +27,7 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+ # Work around a problem in autoconf <= 2.69:
+ # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5,
+ # or configures them incorrectly in some cases.
+-m4_version_prereq([2.70], [], [
++m4_version_prereq([2.73], [], [
+ 
+ # _AC_SYS_LARGEFILE_TEST_INCLUDES
+ # -------------------------------
diff --git a/poky/meta/recipes-extended/parted/parted_3.6.bb b/poky/meta/recipes-extended/parted/parted_3.6.bb
index a755e1c..a537ef7 100644
--- a/poky/meta/recipes-extended/parted/parted_3.6.bb
+++ b/poky/meta/recipes-extended/parted/parted_3.6.bb
@@ -9,6 +9,7 @@
 SRC_URI = "${GNU_MIRROR}/parted/parted-${PV}.tar.xz \
            file://fix-doc-mandir.patch \
            file://0001-fs-Add-libuuid-to-linker-flags-for-libparted-fs-resi.patch \
+           file://autoconf-2.73.patch \
            file://run-ptest \
            "
 
diff --git a/poky/meta/recipes-extended/procps/procps/0001-po-fr.po-address-failures-with-gettext-0.22.patch b/poky/meta/recipes-extended/procps/procps/0001-po-fr.po-address-failures-with-gettext-0.22.patch
new file mode 100644
index 0000000..8055179
--- /dev/null
+++ b/poky/meta/recipes-extended/procps/procps/0001-po-fr.po-address-failures-with-gettext-0.22.patch
@@ -0,0 +1,37 @@
+From 1d685477c254e5b10a81e32c87786e0f001b70f1 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Mon, 24 Jul 2023 18:06:51 +0200
+Subject: [PATCH] po/fr.po: address failures with gettext 0.22
+
+Specifically:
+| fr.1po:3027: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 4, the argument size specifier is invalid.
+| fr.1po:3820: 'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the argument size specifier is invalid.
+
+Upstream-Status: Submitted [https://gitlab.com/procps-ng/procps/-/merge_requests/199]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ po/fr.po | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/po/fr.po b/po/fr.po
+index 715c2b69..700834e1 100644
+--- a/po/fr.po
++++ b/po/fr.po
+@@ -3800,7 +3800,7 @@ msgid ""
+ "Type 'q' or <Esc> to continue "
+ msgstr ""
+ "Aide pour les commandes interactives~2 - %s\n"
+-"Fenêtre ~1%s~6: ~1Mode cumulatif ~3%s~2.  ~1Système~6: ~1Délai ~3%.1lf "
++"Fenêtre ~1%s~6: ~1Mode cumulatif ~3%s~2.  ~1Système~6: ~1Délai ~3%.1f "
+ "secs~2; ~1Mode sûr ~3%s~2.\n"
+ "\n"
+ "  Z~5,~1B~5,E,e   Global: «~1Z~2» couleurs; «~1B~2» gras; «~1E~2»/«~1e~2» "
+@@ -4723,7 +4723,7 @@ msgstr " -v, --version  affiche les informations de version et sort\n"
+ #: src/watch.c:486
+ #, c-format
+ msgid "Every %.1fs: "
+-msgstr "Toutes les %.1lfs: "
++msgstr "Toutes les %.1fs: "
+ 
+ #: src/watch.c:487
+ #, c-format
diff --git a/poky/meta/recipes-extended/procps/procps_4.0.3.bb b/poky/meta/recipes-extended/procps/procps_4.0.3.bb
index dc0e957..71efb80 100644
--- a/poky/meta/recipes-extended/procps/procps_4.0.3.bb
+++ b/poky/meta/recipes-extended/procps/procps_4.0.3.bb
@@ -15,6 +15,7 @@
 SRC_URI = "git://gitlab.com/procps-ng/procps.git;protocol=https;branch=master \
            file://sysctl.conf \
            file://0001-src-w.c-use-utmp.h-only.patch \
+           file://0001-po-fr.po-address-failures-with-gettext-0.22.patch \
            "
 SRCREV = "806eb270f217ff7e1e745c7bda2b002b5be74be4"
 
diff --git a/poky/meta/recipes-extended/rust-example/rust-hello-world/0001-enable-LTO.patch b/poky/meta/recipes-extended/rust-example/rust-hello-world/0001-enable-LTO.patch
deleted file mode 100644
index f319545..0000000
--- a/poky/meta/recipes-extended/rust-example/rust-hello-world/0001-enable-LTO.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From fa40b874f6470ec11a8fd7b0c9909d0cdd2d6feb Mon Sep 17 00:00:00 2001
-From: Dan Callaghan <dan.callaghan@opengear.com>
-Date: Fri, 5 Feb 2021 08:56:34 +1000
-Subject: [PATCH] enable LTO
-
-Upstream-Status: Pending
----
- Cargo.toml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/Cargo.toml b/Cargo.toml
-index 7a2f6c8..cdb6b5d 100644
---- a/Cargo.toml
-+++ b/Cargo.toml
-@@ -3,3 +3,6 @@
- name = "rust-hello-world"
- version = "0.0.1"
- authors = ["Cody P Schafer <dev@codyps.com>"]
-+
-+[profile.release]
-+lto = true
--- 
-2.28.0
-
diff --git a/poky/meta/recipes-extended/rust-example/rust-hello-world_git.bb b/poky/meta/recipes-extended/rust-example/rust-hello-world_git.bb
deleted file mode 100644
index 1d91109..0000000
--- a/poky/meta/recipes-extended/rust-example/rust-hello-world_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-inherit cargo
-
-SRC_URI = "git://github.com/meta-rust/rust-hello-world.git;protocol=https;branch=master"
-SRCREV="e0fa23f1a3cb1eb1407165bd2fc36d2f6e6ad728"
-LIC_FILES_CHKSUM="file://COPYRIGHT;md5=e6b2207ac3740d2d01141c49208c2147"
-
-SRC_URI += "\
-    file://0001-enable-LTO.patch \
-    "
-
-UPSTREAM_CHECK_COMMITS = "1"
-
-SUMMARY = "Hello World by Cargo for Rust"
-HOMEPAGE = "https://github.com/meta-rust/rust-hello-world"
-LICENSE = "MIT | Apache-2.0"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-extended/sudo/files/0001-lib-util-mksigname.c-correctly-include-header-for-ou.patch b/poky/meta/recipes-extended/sudo/files/0001-lib-util-mksigname.c-correctly-include-header-for-ou.patch
deleted file mode 100644
index f63ed55..0000000
--- a/poky/meta/recipes-extended/sudo/files/0001-lib-util-mksigname.c-correctly-include-header-for-ou.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From f993c5c88faacc43971899aae2168ffb3e34dc80 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Fri, 24 Sep 2021 13:36:24 +0200
-Subject: [PATCH] lib/util/mksigname.c: correctly include header for out of
- tree builds
-
-Upstream-Status: Submitted [https://github.com/sudo-project/sudo/pull/123]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- lib/util/mksigname.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/util/mksigname.c b/lib/util/mksigname.c
-index de8b1ad..0a69e7e 100644
---- a/lib/util/mksigname.c
-+++ b/lib/util/mksigname.c
-@@ -36,7 +36,7 @@ main(int argc, char *argv[])
- {
-     unsigned int i;
- 
--#include "mksigname.h"
-+#include "lib/util/mksigname.h"
- 
-     printf("const char *const sudo_sys_signame[] = {\n");
-     for (i = 0; i < nitems(sudo_sys_signame); i++) {
diff --git a/poky/meta/recipes-extended/sudo/sudo.inc b/poky/meta/recipes-extended/sudo/sudo.inc
index bedf713..feb1cf3 100644
--- a/poky/meta/recipes-extended/sudo/sudo.inc
+++ b/poky/meta/recipes-extended/sudo/sudo.inc
@@ -8,7 +8,6 @@
                     file://plugins/sudoers/redblack.c;beginline=1;endline=46;md5=03e35317699ba00b496251e0dfe9f109 \
                     file://lib/util/reallocarray.c;beginline=3;endline=15;md5=397dd45c7683e90b9f8bf24638cf03bf \
                     file://lib/util/fnmatch.c;beginline=3;endline=27;md5=004d7d2866ba1f5b41174906849d2e0f \
-                    file://lib/util/getcwd.c;beginline=2;endline=27;md5=50f8d9667750e18dea4e84a935c12009 \
                     file://lib/util/glob.c;beginline=2;endline=31;md5=2852f68687544e3eb8a0a61665506f0e \
                     file://lib/util/snprintf.c;beginline=3;endline=33;md5=b70df6179969e38fcf68da91b53b8029 \
                     file://include/sudo_queue.h;beginline=2;endline=27;md5=ad578e9664d17a010b63e4bc0576ee8d \
@@ -31,12 +30,12 @@
 EXTRA_OECONF:append:libc-musl = " --disable-hardening "
 
 do_compile:prepend () {
-       # Remove build host references from sudo_usage.h
+       # Remove build host references from config.h
        sed -i  \
            -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \
            -e 's,--build=${BUILD_SYS},,g' \
            -e 's,--host=${HOST_SYS},,g' \
-           ${B}/src/sudo_usage.h
+           ${B}/config.h
 }
 
 # Explicitly create ${localstatedir}/lib before do_install to ensure
diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.13p3.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.14p2.bb
similarity index 92%
rename from poky/meta/recipes-extended/sudo/sudo_1.9.13p3.bb
rename to poky/meta/recipes-extended/sudo/sudo_1.9.14p2.bb
index 2e11739..fa79391 100644
--- a/poky/meta/recipes-extended/sudo/sudo_1.9.13p3.bb
+++ b/poky/meta/recipes-extended/sudo/sudo_1.9.14p2.bb
@@ -3,12 +3,11 @@
 SRC_URI = "https://www.sudo.ws/dist/sudo-${PV}.tar.gz \
            ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
            file://0001-sudo.conf.in-fix-conflict-with-multilib.patch \
-           file://0001-lib-util-mksigname.c-correctly-include-header-for-ou.patch \
            "
 
 PAM_SRC_URI = "file://sudo.pam"
 
-SRC_URI[sha256sum] = "92334a12bb93e0c056b09f53e255ccb7d6f67c6350e2813cd9593ceeca78560b"
+SRC_URI[sha256sum] = "15f6308db0ed4265ec929f2c61e2e13492e551750c203ee001d1fcd8104c9514"
 
 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-gnome/epiphany/epiphany_43.1.bb b/poky/meta/recipes-gnome/epiphany/epiphany_44.6.bb
similarity index 92%
rename from poky/meta/recipes-gnome/epiphany/epiphany_43.1.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_44.6.bb
index c97ede4..d8dd3d6 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_43.1.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_44.6.bb
@@ -8,10 +8,11 @@
 
 DEPENDS = " \
           webkitgtk \
-          gcr3 \
+          gcr \
           gsettings-desktop-schemas \
           nettle \
           json-glib \
+          libadwaita \
           libarchive \
           libdazzle \
           libhandy \
@@ -31,7 +32,7 @@
            file://migrator.patch \
            file://distributor.patch \
            "
-SRC_URI[archive.sha256sum] = "e86ead27cb9982815150664de3bf20faf375f77b8065b02b31180c65b6bbebb4"
+SRC_URI[archive.sha256sum] = "5335dd573581db61e126d854dc16ae519657a5b8790789a47d25e43e17cd3a43"
 
 # Developer mode enables debugging
 PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.3.3.bb b/poky/meta/recipes-gnome/libadwaita/libadwaita_1.3.3.bb
similarity index 82%
rename from meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.3.3.bb
rename to poky/meta/recipes-gnome/libadwaita/libadwaita_1.3.3.bb
index c0eff35..8ec5258 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/libadwaita/libadwaita_1.3.3.bb
+++ b/poky/meta/recipes-gnome/libadwaita/libadwaita_1.3.3.bb
@@ -1,4 +1,5 @@
 SUMMARY = "Building blocks for modern GNOME applications"
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/libadwaita"
 LICENSE="LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
@@ -8,7 +9,7 @@
     gtk4 \
 "
 
-inherit gnomebase gobject-introspection gtk-doc vala features_check
+inherit gnomebase gobject-introspection gi-docgen vala features_check
 
 SRC_URI[archive.sha256sum] = "3fb9f6f8f570e543ab2dafb8b4b94d8b376c59ad565efadfede44557e3f3a9e1"
 
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc b/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
index 8d790c3..5886f3d 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
+++ b/poky/meta/recipes-gnome/librsvg/librsvg-crates.inc
@@ -3,16 +3,16 @@
 # from Cargo.lock
 SRC_URI += " \
     crate://crates.io/adler/1.0.2 \
-    crate://crates.io/aho-corasick/1.0.1 \
+    crate://crates.io/aho-corasick/1.0.2 \
     crate://crates.io/android-tzdata/0.1.1 \
     crate://crates.io/android_system_properties/0.1.5 \
     crate://crates.io/anes/0.1.6 \
     crate://crates.io/anstream/0.3.2 \
-    crate://crates.io/anstyle/1.0.0 \
-    crate://crates.io/anstyle-parse/0.2.0 \
+    crate://crates.io/anstyle/1.0.1 \
+    crate://crates.io/anstyle-parse/0.2.1 \
     crate://crates.io/anstyle-query/1.0.0 \
     crate://crates.io/anstyle-wincon/1.0.1 \
-    crate://crates.io/anyhow/1.0.71 \
+    crate://crates.io/anyhow/1.0.72 \
     crate://crates.io/approx/0.5.1 \
     crate://crates.io/assert_cmd/2.0.11 \
     crate://crates.io/atty/0.2.14 \
@@ -21,26 +21,27 @@
     crate://crates.io/bit-set/0.5.3 \
     crate://crates.io/bit-vec/0.6.3 \
     crate://crates.io/bitflags/1.3.2 \
+    crate://crates.io/bitflags/2.3.3 \
     crate://crates.io/block/0.1.6 \
-    crate://crates.io/bstr/1.5.0 \
+    crate://crates.io/bstr/1.6.0 \
     crate://crates.io/bumpalo/3.13.0 \
     crate://crates.io/bytemuck/1.13.1 \
     crate://crates.io/byteorder/1.4.3 \
-    crate://crates.io/cairo-rs/0.17.0 \
-    crate://crates.io/cairo-sys-rs/0.17.0 \
+    crate://crates.io/cairo-rs/0.17.10 \
+    crate://crates.io/cairo-sys-rs/0.17.10 \
     crate://crates.io/cast/0.3.0 \
     crate://crates.io/cc/1.0.79 \
-    crate://crates.io/cfg-expr/0.15.1 \
+    crate://crates.io/cfg-expr/0.15.3 \
     crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/chrono/0.4.25 \
+    crate://crates.io/chrono/0.4.26 \
     crate://crates.io/ciborium/0.2.1 \
     crate://crates.io/ciborium-io/0.2.1 \
     crate://crates.io/ciborium-ll/0.2.1 \
     crate://crates.io/clap/3.2.25 \
-    crate://crates.io/clap/4.3.0 \
-    crate://crates.io/clap_builder/4.3.0 \
-    crate://crates.io/clap_complete/4.3.0 \
-    crate://crates.io/clap_derive/4.3.0 \
+    crate://crates.io/clap/4.3.17 \
+    crate://crates.io/clap_builder/4.3.17 \
+    crate://crates.io/clap_complete/4.3.2 \
+    crate://crates.io/clap_derive/4.3.12 \
     crate://crates.io/clap_lex/0.2.4 \
     crate://crates.io/clap_lex/0.5.0 \
     crate://crates.io/colorchoice/1.0.0 \
@@ -53,18 +54,18 @@
     crate://crates.io/criterion-plot/0.5.0 \
     crate://crates.io/crossbeam-channel/0.5.8 \
     crate://crates.io/crossbeam-deque/0.8.3 \
-    crate://crates.io/crossbeam-epoch/0.9.14 \
-    crate://crates.io/crossbeam-utils/0.8.15 \
+    crate://crates.io/crossbeam-epoch/0.9.15 \
+    crate://crates.io/crossbeam-utils/0.8.16 \
     crate://crates.io/cssparser/0.29.6 \
-    crate://crates.io/cssparser-macros/0.6.0 \
+    crate://crates.io/cssparser-macros/0.6.1 \
     crate://crates.io/data-url/0.2.0 \
     crate://crates.io/derive_more/0.99.17 \
     crate://crates.io/difflib/0.4.0 \
     crate://crates.io/discard/1.0.4 \
-    crate://crates.io/dlib/0.5.0 \
+    crate://crates.io/dlib/0.5.2 \
     crate://crates.io/doc-comment/0.3.3 \
-    crate://crates.io/dtoa/0.4.8 \
-    crate://crates.io/dtoa-short/0.3.3 \
+    crate://crates.io/dtoa/1.0.9 \
+    crate://crates.io/dtoa-short/0.3.4 \
     crate://crates.io/either/1.8.1 \
     crate://crates.io/encoding/0.2.33 \
     crate://crates.io/encoding-index-japanese/1.20141219.5 \
@@ -74,14 +75,15 @@
     crate://crates.io/encoding-index-tradchinese/1.20141219.5 \
     crate://crates.io/encoding_index_tests/0.1.4 \
     crate://crates.io/encoding_rs/0.8.32 \
+    crate://crates.io/equivalent/1.0.1 \
     crate://crates.io/errno/0.3.1 \
     crate://crates.io/errno-dragonfly/0.1.2 \
-    crate://crates.io/fastrand/1.9.0 \
+    crate://crates.io/fastrand/2.0.0 \
     crate://crates.io/fdeflate/0.3.0 \
     crate://crates.io/flate2/1.0.26 \
     crate://crates.io/float-cmp/0.9.0 \
     crate://crates.io/fnv/1.0.7 \
-    crate://crates.io/form_urlencoded/1.1.0 \
+    crate://crates.io/form_urlencoded/1.2.0 \
     crate://crates.io/futf/0.1.5 \
     crate://crates.io/futures-channel/0.3.28 \
     crate://crates.io/futures-core/0.3.28 \
@@ -91,42 +93,41 @@
     crate://crates.io/futures-task/0.3.28 \
     crate://crates.io/futures-util/0.3.28 \
     crate://crates.io/fxhash/0.2.1 \
-    crate://crates.io/gdk-pixbuf/0.17.0 \
-    crate://crates.io/gdk-pixbuf-sys/0.17.0 \
+    crate://crates.io/gdk-pixbuf/0.17.10 \
+    crate://crates.io/gdk-pixbuf-sys/0.17.10 \
     crate://crates.io/getrandom/0.1.16 \
-    crate://crates.io/getrandom/0.2.9 \
-    crate://crates.io/gio/0.17.9 \
-    crate://crates.io/gio-sys/0.17.4 \
-    crate://crates.io/glib/0.17.9 \
-    crate://crates.io/glib-macros/0.17.9 \
-    crate://crates.io/glib-sys/0.17.4 \
-    crate://crates.io/gobject-sys/0.17.4 \
+    crate://crates.io/getrandom/0.2.10 \
+    crate://crates.io/gio/0.17.10 \
+    crate://crates.io/gio-sys/0.17.10 \
+    crate://crates.io/glib/0.17.10 \
+    crate://crates.io/glib-macros/0.17.10 \
+    crate://crates.io/glib-sys/0.17.10 \
+    crate://crates.io/gobject-sys/0.17.10 \
     crate://crates.io/half/1.8.2 \
     crate://crates.io/hashbrown/0.12.3 \
+    crate://crates.io/hashbrown/0.14.0 \
     crate://crates.io/heck/0.4.1 \
     crate://crates.io/hermit-abi/0.1.19 \
-    crate://crates.io/hermit-abi/0.2.6 \
-    crate://crates.io/hermit-abi/0.3.1 \
-    crate://crates.io/iana-time-zone/0.1.56 \
+    crate://crates.io/hermit-abi/0.3.2 \
+    crate://crates.io/iana-time-zone/0.1.57 \
     crate://crates.io/iana-time-zone-haiku/0.1.2 \
-    crate://crates.io/idna/0.3.0 \
+    crate://crates.io/idna/0.4.0 \
     crate://crates.io/indexmap/1.9.3 \
-    crate://crates.io/instant/0.1.12 \
-    crate://crates.io/io-lifetimes/1.0.11 \
-    crate://crates.io/is-terminal/0.4.7 \
+    crate://crates.io/indexmap/2.0.0 \
+    crate://crates.io/is-terminal/0.4.9 \
     crate://crates.io/itertools/0.10.5 \
-    crate://crates.io/itoa/1.0.6 \
-    crate://crates.io/js-sys/0.3.63 \
+    crate://crates.io/itoa/1.0.9 \
+    crate://crates.io/js-sys/0.3.64 \
     crate://crates.io/language-tags/0.3.2 \
     crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/libc/0.2.144 \
-    crate://crates.io/libloading/0.7.4 \
+    crate://crates.io/libc/0.2.147 \
+    crate://crates.io/libloading/0.8.0 \
     crate://crates.io/libm/0.2.7 \
     crate://crates.io/linked-hash-map/0.5.6 \
-    crate://crates.io/linux-raw-sys/0.3.8 \
+    crate://crates.io/linux-raw-sys/0.4.3 \
     crate://crates.io/locale_config/0.3.0 \
-    crate://crates.io/lock_api/0.4.9 \
-    crate://crates.io/log/0.4.18 \
+    crate://crates.io/lock_api/0.4.10 \
+    crate://crates.io/log/0.4.19 \
     crate://crates.io/lopdf/0.29.0 \
     crate://crates.io/mac/0.1.1 \
     crate://crates.io/malloc_buf/0.0.6 \
@@ -134,10 +135,10 @@
     crate://crates.io/matches/0.1.10 \
     crate://crates.io/matrixmultiply/0.3.7 \
     crate://crates.io/memchr/2.5.0 \
-    crate://crates.io/memoffset/0.8.0 \
+    crate://crates.io/memoffset/0.9.0 \
     crate://crates.io/miniz_oxide/0.7.1 \
-    crate://crates.io/nalgebra/0.32.2 \
-    crate://crates.io/nalgebra-macros/0.2.0 \
+    crate://crates.io/nalgebra/0.32.3 \
+    crate://crates.io/nalgebra-macros/0.2.1 \
     crate://crates.io/new_debug_unreachable/1.0.4 \
     crate://crates.io/nodrop/0.1.14 \
     crate://crates.io/normalize-line-endings/0.3.0 \
@@ -145,21 +146,21 @@
     crate://crates.io/num-integer/0.1.45 \
     crate://crates.io/num-rational/0.4.1 \
     crate://crates.io/num-traits/0.2.15 \
-    crate://crates.io/num_cpus/1.15.0 \
+    crate://crates.io/num_cpus/1.16.0 \
     crate://crates.io/objc/0.2.7 \
     crate://crates.io/objc-foundation/0.1.1 \
     crate://crates.io/objc_id/0.1.1 \
-    crate://crates.io/once_cell/1.17.2 \
+    crate://crates.io/once_cell/1.18.0 \
     crate://crates.io/oorandom/11.1.3 \
-    crate://crates.io/os_str_bytes/6.5.0 \
-    crate://crates.io/pango/0.17.4 \
-    crate://crates.io/pango-sys/0.17.0 \
-    crate://crates.io/pangocairo/0.17.0 \
-    crate://crates.io/pangocairo-sys/0.17.3 \
+    crate://crates.io/os_str_bytes/6.5.1 \
+    crate://crates.io/pango/0.17.10 \
+    crate://crates.io/pango-sys/0.17.10 \
+    crate://crates.io/pangocairo/0.17.10 \
+    crate://crates.io/pangocairo-sys/0.17.10 \
     crate://crates.io/parking_lot/0.12.1 \
-    crate://crates.io/parking_lot_core/0.9.7 \
-    crate://crates.io/paste/1.0.12 \
-    crate://crates.io/percent-encoding/2.2.0 \
+    crate://crates.io/parking_lot_core/0.9.8 \
+    crate://crates.io/paste/1.0.14 \
+    crate://crates.io/percent-encoding/2.3.0 \
     crate://crates.io/phf/0.8.0 \
     crate://crates.io/phf/0.10.1 \
     crate://crates.io/phf_codegen/0.8.0 \
@@ -169,14 +170,14 @@
     crate://crates.io/phf_macros/0.10.0 \
     crate://crates.io/phf_shared/0.8.0 \
     crate://crates.io/phf_shared/0.10.0 \
-    crate://crates.io/pin-project-lite/0.2.9 \
+    crate://crates.io/pin-project-lite/0.2.10 \
     crate://crates.io/pin-utils/0.1.0 \
     crate://crates.io/pkg-config/0.3.27 \
-    crate://crates.io/plotters/0.3.4 \
-    crate://crates.io/plotters-backend/0.3.4 \
-    crate://crates.io/plotters-svg/0.3.3 \
-    crate://crates.io/png/0.17.8 \
-    crate://crates.io/pom/3.2.0 \
+    crate://crates.io/plotters/0.3.5 \
+    crate://crates.io/plotters-backend/0.3.5 \
+    crate://crates.io/plotters-svg/0.3.5 \
+    crate://crates.io/png/0.17.9 \
+    crate://crates.io/pom/3.3.0 \
     crate://crates.io/ppv-lite86/0.2.17 \
     crate://crates.io/precomputed-hash/0.1.1 \
     crate://crates.io/predicates/2.1.5 \
@@ -187,10 +188,10 @@
     crate://crates.io/proc-macro-error/1.0.4 \
     crate://crates.io/proc-macro-error-attr/1.0.4 \
     crate://crates.io/proc-macro-hack/0.5.20+deprecated \
-    crate://crates.io/proc-macro2/1.0.59 \
+    crate://crates.io/proc-macro2/1.0.66 \
     crate://crates.io/proptest/1.2.0 \
     crate://crates.io/quick-error/1.2.3 \
-    crate://crates.io/quote/1.0.28 \
+    crate://crates.io/quote/1.0.31 \
     crate://crates.io/rand/0.7.3 \
     crate://crates.io/rand/0.8.5 \
     crate://crates.io/rand_chacha/0.2.2 \
@@ -204,29 +205,28 @@
     crate://crates.io/rayon/1.7.0 \
     crate://crates.io/rayon-core/1.11.0 \
     crate://crates.io/rctree/0.5.0 \
-    crate://crates.io/redox_syscall/0.2.16 \
     crate://crates.io/redox_syscall/0.3.5 \
-    crate://crates.io/regex/1.8.3 \
-    crate://crates.io/regex-automata/0.1.10 \
+    crate://crates.io/regex/1.9.1 \
+    crate://crates.io/regex-automata/0.3.3 \
     crate://crates.io/regex-syntax/0.6.29 \
-    crate://crates.io/regex-syntax/0.7.2 \
+    crate://crates.io/regex-syntax/0.7.4 \
     crate://crates.io/rgb/0.8.36 \
     crate://crates.io/rustc_version/0.2.3 \
     crate://crates.io/rustc_version/0.4.0 \
-    crate://crates.io/rustix/0.37.19 \
+    crate://crates.io/rustix/0.38.4 \
     crate://crates.io/rusty-fork/0.3.0 \
-    crate://crates.io/ryu/1.0.13 \
-    crate://crates.io/safe_arch/0.6.0 \
+    crate://crates.io/ryu/1.0.15 \
+    crate://crates.io/safe_arch/0.7.1 \
     crate://crates.io/same-file/1.0.6 \
-    crate://crates.io/scopeguard/1.1.0 \
+    crate://crates.io/scopeguard/1.2.0 \
     crate://crates.io/selectors/0.24.0 \
     crate://crates.io/semver/0.9.0 \
-    crate://crates.io/semver/1.0.17 \
+    crate://crates.io/semver/1.0.18 \
     crate://crates.io/semver-parser/0.7.0 \
-    crate://crates.io/serde/1.0.163 \
-    crate://crates.io/serde_derive/1.0.163 \
-    crate://crates.io/serde_json/1.0.96 \
-    crate://crates.io/serde_spanned/0.6.2 \
+    crate://crates.io/serde/1.0.173 \
+    crate://crates.io/serde_derive/1.0.173 \
+    crate://crates.io/serde_json/1.0.103 \
+    crate://crates.io/serde_spanned/0.6.3 \
     crate://crates.io/servo_arc/0.2.0 \
     crate://crates.io/sha1/0.6.1 \
     crate://crates.io/sha1_smol/1.0.0 \
@@ -234,7 +234,7 @@
     crate://crates.io/simd-adler32/0.3.5 \
     crate://crates.io/siphasher/0.3.10 \
     crate://crates.io/slab/0.4.8 \
-    crate://crates.io/smallvec/1.10.0 \
+    crate://crates.io/smallvec/1.11.0 \
     crate://crates.io/stable_deref_trait/1.2.0 \
     crate://crates.io/standback/0.2.17 \
     crate://crates.io/stdweb/0.4.20 \
@@ -245,30 +245,30 @@
     crate://crates.io/string_cache_codegen/0.5.2 \
     crate://crates.io/strsim/0.10.0 \
     crate://crates.io/syn/1.0.109 \
-    crate://crates.io/syn/2.0.18 \
-    crate://crates.io/system-deps/6.1.0 \
-    crate://crates.io/target-lexicon/0.12.7 \
-    crate://crates.io/tempfile/3.5.0 \
+    crate://crates.io/syn/2.0.26 \
+    crate://crates.io/system-deps/6.1.1 \
+    crate://crates.io/target-lexicon/0.12.10 \
+    crate://crates.io/tempfile/3.7.0 \
     crate://crates.io/tendril/0.4.3 \
     crate://crates.io/termtree/0.4.1 \
     crate://crates.io/textwrap/0.16.0 \
-    crate://crates.io/thiserror/1.0.40 \
-    crate://crates.io/thiserror-impl/1.0.40 \
+    crate://crates.io/thiserror/1.0.43 \
+    crate://crates.io/thiserror-impl/1.0.43 \
     crate://crates.io/time/0.2.27 \
     crate://crates.io/time-macros/0.1.1 \
     crate://crates.io/time-macros-impl/0.1.2 \
     crate://crates.io/tinytemplate/1.2.1 \
     crate://crates.io/tinyvec/1.6.0 \
     crate://crates.io/tinyvec_macros/0.1.1 \
-    crate://crates.io/toml/0.7.4 \
-    crate://crates.io/toml_datetime/0.6.2 \
-    crate://crates.io/toml_edit/0.19.10 \
+    crate://crates.io/toml/0.7.6 \
+    crate://crates.io/toml_datetime/0.6.3 \
+    crate://crates.io/toml_edit/0.19.14 \
     crate://crates.io/typenum/1.16.0 \
     crate://crates.io/unarray/0.1.4 \
     crate://crates.io/unicode-bidi/0.3.13 \
-    crate://crates.io/unicode-ident/1.0.9 \
+    crate://crates.io/unicode-ident/1.0.11 \
     crate://crates.io/unicode-normalization/0.1.22 \
-    crate://crates.io/url/2.3.1 \
+    crate://crates.io/url/2.4.0 \
     crate://crates.io/utf-8/0.7.6 \
     crate://crates.io/utf8parse/0.2.1 \
     crate://crates.io/version-compare/0.1.1 \
@@ -277,53 +277,44 @@
     crate://crates.io/walkdir/2.3.3 \
     crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
     crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
-    crate://crates.io/wasm-bindgen/0.2.86 \
-    crate://crates.io/wasm-bindgen-backend/0.2.86 \
-    crate://crates.io/wasm-bindgen-macro/0.2.86 \
-    crate://crates.io/wasm-bindgen-macro-support/0.2.86 \
-    crate://crates.io/wasm-bindgen-shared/0.2.86 \
-    crate://crates.io/web-sys/0.3.63 \
+    crate://crates.io/wasm-bindgen/0.2.87 \
+    crate://crates.io/wasm-bindgen-backend/0.2.87 \
+    crate://crates.io/wasm-bindgen-macro/0.2.87 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.87 \
+    crate://crates.io/wasm-bindgen-shared/0.2.87 \
+    crate://crates.io/web-sys/0.3.64 \
     crate://crates.io/weezl/0.1.7 \
-    crate://crates.io/wide/0.7.9 \
+    crate://crates.io/wide/0.7.11 \
     crate://crates.io/winapi/0.3.9 \
     crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
     crate://crates.io/winapi-util/0.1.5 \
     crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
     crate://crates.io/windows/0.48.0 \
-    crate://crates.io/windows-sys/0.45.0 \
     crate://crates.io/windows-sys/0.48.0 \
-    crate://crates.io/windows-targets/0.42.2 \
-    crate://crates.io/windows-targets/0.48.0 \
-    crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
+    crate://crates.io/windows-targets/0.48.1 \
     crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
-    crate://crates.io/windows_aarch64_msvc/0.42.2 \
     crate://crates.io/windows_aarch64_msvc/0.48.0 \
-    crate://crates.io/windows_i686_gnu/0.42.2 \
     crate://crates.io/windows_i686_gnu/0.48.0 \
-    crate://crates.io/windows_i686_msvc/0.42.2 \
     crate://crates.io/windows_i686_msvc/0.48.0 \
-    crate://crates.io/windows_x86_64_gnu/0.42.2 \
     crate://crates.io/windows_x86_64_gnu/0.48.0 \
-    crate://crates.io/windows_x86_64_gnullvm/0.42.2 \
     crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
-    crate://crates.io/windows_x86_64_msvc/0.42.2 \
     crate://crates.io/windows_x86_64_msvc/0.48.0 \
-    crate://crates.io/winnow/0.4.6 \
+    crate://crates.io/winnow/0.5.0 \
     crate://crates.io/xml5ever/0.17.0 \
     crate://crates.io/yeslogic-fontconfig-sys/4.0.1 \
 "
 
 SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-SRC_URI[aho-corasick-1.0.1.sha256sum] = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+SRC_URI[aho-corasick-1.0.2.sha256sum] = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
 SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
 SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
 SRC_URI[anes-0.1.6.sha256sum] = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
-SRC_URI[anstyle-1.0.0.sha256sum] = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d"
-SRC_URI[anstyle-parse-0.2.0.sha256sum] = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee"
+SRC_URI[anstyle-1.0.1.sha256sum] = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+SRC_URI[anstyle-parse-0.2.1.sha256sum] = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
 SRC_URI[anstyle-query-1.0.0.sha256sum] = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
 SRC_URI[anstyle-wincon-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
-SRC_URI[anyhow-1.0.71.sha256sum] = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+SRC_URI[anyhow-1.0.72.sha256sum] = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
 SRC_URI[approx-0.5.1.sha256sum] = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
 SRC_URI[assert_cmd-2.0.11.sha256sum] = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151"
 SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
@@ -332,26 +323,27 @@
 SRC_URI[bit-set-0.5.3.sha256sum] = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
 SRC_URI[bit-vec-0.6.3.sha256sum] = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
 SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.3.3.sha256sum] = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
 SRC_URI[block-0.1.6.sha256sum] = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-SRC_URI[bstr-1.5.0.sha256sum] = "a246e68bb43f6cd9db24bea052a53e40405417c5fb372e3d1a8a7f770a564ef5"
+SRC_URI[bstr-1.6.0.sha256sum] = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
 SRC_URI[bumpalo-3.13.0.sha256sum] = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
 SRC_URI[bytemuck-1.13.1.sha256sum] = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
 SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-SRC_URI[cairo-rs-0.17.0.sha256sum] = "a8af54f5d48af1226928adc1f57edd22f5df1349e7da1fc96ae15cf43db0e871"
-SRC_URI[cairo-sys-rs-0.17.0.sha256sum] = "f55382a01d30e5e53f185eee269124f5e21ab526595b872751278dfbb463594e"
+SRC_URI[cairo-rs-0.17.10.sha256sum] = "ab3603c4028a5e368d09b51c8b624b9a46edcd7c3778284077a6125af73c9f0a"
+SRC_URI[cairo-sys-rs-0.17.10.sha256sum] = "691d0c66b1fb4881be80a760cb8fe76ea97218312f9dfe2c9cc0f496ca279cb1"
 SRC_URI[cast-0.3.0.sha256sum] = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
 SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
-SRC_URI[cfg-expr-0.15.1.sha256sum] = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9"
+SRC_URI[cfg-expr-0.15.3.sha256sum] = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c"
 SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-SRC_URI[chrono-0.4.25.sha256sum] = "fdbc37d37da9e5bce8173f3a41b71d9bf3c674deebbaceacd0ebdabde76efb03"
+SRC_URI[chrono-0.4.26.sha256sum] = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
 SRC_URI[ciborium-0.2.1.sha256sum] = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926"
 SRC_URI[ciborium-io-0.2.1.sha256sum] = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656"
 SRC_URI[ciborium-ll-0.2.1.sha256sum] = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b"
 SRC_URI[clap-3.2.25.sha256sum] = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123"
-SRC_URI[clap-4.3.0.sha256sum] = "93aae7a4192245f70fe75dd9157fc7b4a5bf53e88d30bd4396f7d8f9284d5acc"
-SRC_URI[clap_builder-4.3.0.sha256sum] = "4f423e341edefb78c9caba2d9c7f7687d0e72e89df3ce3394554754393ac3990"
-SRC_URI[clap_complete-4.3.0.sha256sum] = "a04ddfaacc3bc9e6ea67d024575fafc2a813027cf374b8f24f7bc233c6b6be12"
-SRC_URI[clap_derive-4.3.0.sha256sum] = "191d9573962933b4027f932c600cd252ce27a8ad5979418fe78e43c07996f27b"
+SRC_URI[clap-4.3.17.sha256sum] = "5b0827b011f6f8ab38590295339817b0d26f344aa4932c3ced71b45b0c54b4a9"
+SRC_URI[clap_builder-4.3.17.sha256sum] = "9441b403be87be858db6a23edb493e7f694761acdc3343d5a0fcaafd304cbc9e"
+SRC_URI[clap_complete-4.3.2.sha256sum] = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce"
+SRC_URI[clap_derive-4.3.12.sha256sum] = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
 SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
 SRC_URI[clap_lex-0.5.0.sha256sum] = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
 SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
@@ -364,18 +356,18 @@
 SRC_URI[criterion-plot-0.5.0.sha256sum] = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
 SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
 SRC_URI[crossbeam-deque-0.8.3.sha256sum] = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
-SRC_URI[crossbeam-epoch-0.9.14.sha256sum] = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
-SRC_URI[crossbeam-utils-0.8.15.sha256sum] = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+SRC_URI[crossbeam-epoch-0.9.15.sha256sum] = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+SRC_URI[crossbeam-utils-0.8.16.sha256sum] = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
 SRC_URI[cssparser-0.29.6.sha256sum] = "f93d03419cb5950ccfd3daf3ff1c7a36ace64609a1a8746d493df1ca0afde0fa"
-SRC_URI[cssparser-macros-0.6.0.sha256sum] = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e"
+SRC_URI[cssparser-macros-0.6.1.sha256sum] = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
 SRC_URI[data-url-0.2.0.sha256sum] = "8d7439c3735f405729d52c3fbbe4de140eaf938a1fe47d227c27f8254d4302a5"
 SRC_URI[derive_more-0.99.17.sha256sum] = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
 SRC_URI[difflib-0.4.0.sha256sum] = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 SRC_URI[discard-1.0.4.sha256sum] = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
-SRC_URI[dlib-0.5.0.sha256sum] = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
+SRC_URI[dlib-0.5.2.sha256sum] = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 SRC_URI[doc-comment-0.3.3.sha256sum] = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
-SRC_URI[dtoa-0.4.8.sha256sum] = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
-SRC_URI[dtoa-short-0.3.3.sha256sum] = "bde03329ae10e79ede66c9ce4dc930aa8599043b0743008548680f25b91502d6"
+SRC_URI[dtoa-1.0.9.sha256sum] = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
+SRC_URI[dtoa-short-0.3.4.sha256sum] = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
 SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
 SRC_URI[encoding-0.2.33.sha256sum] = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
 SRC_URI[encoding-index-japanese-1.20141219.5.sha256sum] = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
@@ -385,14 +377,15 @@
 SRC_URI[encoding-index-tradchinese-1.20141219.5.sha256sum] = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
 SRC_URI[encoding_index_tests-0.1.4.sha256sum] = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
 SRC_URI[encoding_rs-0.8.32.sha256sum] = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
 SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[fastrand-2.0.0.sha256sum] = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
 SRC_URI[fdeflate-0.3.0.sha256sum] = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
 SRC_URI[flate2-1.0.26.sha256sum] = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
 SRC_URI[float-cmp-0.9.0.sha256sum] = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
 SRC_URI[fnv-1.0.7.sha256sum] = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-SRC_URI[form_urlencoded-1.1.0.sha256sum] = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+SRC_URI[form_urlencoded-1.2.0.sha256sum] = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
 SRC_URI[futf-0.1.5.sha256sum] = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
 SRC_URI[futures-channel-0.3.28.sha256sum] = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
 SRC_URI[futures-core-0.3.28.sha256sum] = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
@@ -402,42 +395,41 @@
 SRC_URI[futures-task-0.3.28.sha256sum] = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
 SRC_URI[futures-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
 SRC_URI[fxhash-0.2.1.sha256sum] = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-SRC_URI[gdk-pixbuf-0.17.0.sha256sum] = "b023fbe0c6b407bd3d9805d107d9800da3829dc5a676653210f1d5f16d7f59bf"
-SRC_URI[gdk-pixbuf-sys-0.17.0.sha256sum] = "7b41bd2b44ed49d99277d3925652a163038bd5ed943ec9809338ffb2f4391e3b"
+SRC_URI[gdk-pixbuf-0.17.10.sha256sum] = "695d6bc846438c5708b07007537b9274d883373dd30858ca881d7d71b5540717"
+SRC_URI[gdk-pixbuf-sys-0.17.10.sha256sum] = "9285ec3c113c66d7d0ab5676599176f1f42f4944ca1b581852215bf5694870cb"
 SRC_URI[getrandom-0.1.16.sha256sum] = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-SRC_URI[getrandom-0.2.9.sha256sum] = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
-SRC_URI[gio-0.17.9.sha256sum] = "d14522e56c6bcb6f7a3aebc25cbcfb06776af4c0c25232b601b4383252d7cb92"
-SRC_URI[gio-sys-0.17.4.sha256sum] = "6b1d43b0d7968b48455244ecafe41192871257f5740aa6b095eb19db78e362a5"
-SRC_URI[glib-0.17.9.sha256sum] = "a7f1de7cbde31ea4f0a919453a2dcece5d54d5b70e08f8ad254dc4840f5f09b6"
-SRC_URI[glib-macros-0.17.9.sha256sum] = "0a7206c5c03851ef126ea1444990e81fdd6765fb799d5bc694e4897ca01bb97f"
-SRC_URI[glib-sys-0.17.4.sha256sum] = "49f00ad0a1bf548e61adfff15d83430941d9e1bb620e334f779edd1c745680a5"
-SRC_URI[gobject-sys-0.17.4.sha256sum] = "15e75b0000a64632b2d8ca3cf856af9308e3a970844f6e9659bd197f026793d0"
+SRC_URI[getrandom-0.2.10.sha256sum] = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+SRC_URI[gio-0.17.10.sha256sum] = "a6973e92937cf98689b6a054a9e56c657ed4ff76de925e36fc331a15f0c5d30a"
+SRC_URI[gio-sys-0.17.10.sha256sum] = "0ccf87c30a12c469b6d958950f6a9c09f2be20b7773f7e70d20b867fdf2628c3"
+SRC_URI[glib-0.17.10.sha256sum] = "d3fad45ba8d4d2cea612b432717e834f48031cd8853c8aaf43b2c79fec8d144b"
+SRC_URI[glib-macros-0.17.10.sha256sum] = "eca5c79337338391f1ab8058d6698125034ce8ef31b72a442437fa6c8580de26"
+SRC_URI[glib-sys-0.17.10.sha256sum] = "d80aa6ea7bba0baac79222204aa786a6293078c210abe69ef1336911d4bdc4f0"
+SRC_URI[gobject-sys-0.17.10.sha256sum] = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062"
 SRC_URI[half-1.8.2.sha256sum] = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
 SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hashbrown-0.14.0.sha256sum] = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
 SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-SRC_URI[hermit-abi-0.3.1.sha256sum] = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-SRC_URI[iana-time-zone-0.1.56.sha256sum] = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
+SRC_URI[hermit-abi-0.3.2.sha256sum] = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+SRC_URI[iana-time-zone-0.1.57.sha256sum] = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
 SRC_URI[iana-time-zone-haiku-0.1.2.sha256sum] = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
-SRC_URI[idna-0.3.0.sha256sum] = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+SRC_URI[idna-0.4.0.sha256sum] = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
 SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
-SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-SRC_URI[is-terminal-0.4.7.sha256sum] = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+SRC_URI[indexmap-2.0.0.sha256sum] = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+SRC_URI[is-terminal-0.4.9.sha256sum] = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
-SRC_URI[itoa-1.0.6.sha256sum] = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
-SRC_URI[js-sys-0.3.63.sha256sum] = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790"
+SRC_URI[itoa-1.0.9.sha256sum] = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+SRC_URI[js-sys-0.3.64.sha256sum] = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
 SRC_URI[language-tags-0.3.2.sha256sum] = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
 SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-SRC_URI[libc-0.2.144.sha256sum] = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
-SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+SRC_URI[libc-0.2.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[libloading-0.8.0.sha256sum] = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"
 SRC_URI[libm-0.2.7.sha256sum] = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
 SRC_URI[linked-hash-map-0.5.6.sha256sum] = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
-SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[linux-raw-sys-0.4.3.sha256sum] = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
 SRC_URI[locale_config-0.3.0.sha256sum] = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
-SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-SRC_URI[log-0.4.18.sha256sum] = "518ef76f2f87365916b142844c16d8fefd85039bc5699050210a7778ee1cd1de"
+SRC_URI[lock_api-0.4.10.sha256sum] = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+SRC_URI[log-0.4.19.sha256sum] = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
 SRC_URI[lopdf-0.29.0.sha256sum] = "de0f69c40d6dbc68ebac4bf5aec3d9978e094e22e29fcabd045acd9cec74a9dc"
 SRC_URI[mac-0.1.1.sha256sum] = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 SRC_URI[malloc_buf-0.0.6.sha256sum] = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
@@ -445,10 +437,10 @@
 SRC_URI[matches-0.1.10.sha256sum] = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
 SRC_URI[matrixmultiply-0.3.7.sha256sum] = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77"
 SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
 SRC_URI[miniz_oxide-0.7.1.sha256sum] = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-SRC_URI[nalgebra-0.32.2.sha256sum] = "d68d47bba83f9e2006d117a9a33af1524e655516b8919caac694427a6fb1e511"
-SRC_URI[nalgebra-macros-0.2.0.sha256sum] = "d232c68884c0c99810a5a4d333ef7e47689cfd0edc85efc9e54e1e6bf5212766"
+SRC_URI[nalgebra-0.32.3.sha256sum] = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa"
+SRC_URI[nalgebra-macros-0.2.1.sha256sum] = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998"
 SRC_URI[new_debug_unreachable-1.0.4.sha256sum] = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
 SRC_URI[nodrop-0.1.14.sha256sum] = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
 SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
@@ -456,21 +448,21 @@
 SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
 SRC_URI[num-rational-0.4.1.sha256sum] = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
 SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-SRC_URI[num_cpus-1.15.0.sha256sum] = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 SRC_URI[objc-0.2.7.sha256sum] = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
 SRC_URI[objc-foundation-0.1.1.sha256sum] = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
 SRC_URI[objc_id-0.1.1.sha256sum] = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
-SRC_URI[once_cell-1.17.2.sha256sum] = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
 SRC_URI[oorandom-11.1.3.sha256sum] = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
-SRC_URI[os_str_bytes-6.5.0.sha256sum] = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
-SRC_URI[pango-0.17.4.sha256sum] = "52c280b82a881e4208afb3359a8e7fde27a1b272280981f1f34610bed5770d37"
-SRC_URI[pango-sys-0.17.0.sha256sum] = "4293d0f0b5525eb5c24734d30b0ed02cd02aa734f216883f376b54de49625de8"
-SRC_URI[pangocairo-0.17.0.sha256sum] = "2feeb7ea7874507f83f5e7ba869c54e321959431c8fbd70d4b735c8b15d90506"
-SRC_URI[pangocairo-sys-0.17.3.sha256sum] = "f60f1be8ef08087ddcbdcc1350e06073bff11113d425d12b622b716d96b9611c"
+SRC_URI[os_str_bytes-6.5.1.sha256sum] = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac"
+SRC_URI[pango-0.17.10.sha256sum] = "35be456fc620e61f62dff7ff70fbd54dcbaf0a4b920c0f16de1107c47d921d48"
+SRC_URI[pango-sys-0.17.10.sha256sum] = "3da69f9f3850b0d8990d462f8c709561975e95f689c1cdf0fecdebde78b35195"
+SRC_URI[pangocairo-0.17.10.sha256sum] = "86bf29cb1c2e73817944f66011fb12135e1c6d268e8e4c5cfc689101c25822cf"
+SRC_URI[pangocairo-sys-0.17.10.sha256sum] = "94dfd38d9bf8ff5f881be2107ba49fcb22090d247aa00133f8dadf96b122b97a"
 SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-SRC_URI[parking_lot_core-0.9.7.sha256sum] = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
-SRC_URI[paste-1.0.12.sha256sum] = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79"
-SRC_URI[percent-encoding-2.2.0.sha256sum] = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+SRC_URI[parking_lot_core-0.9.8.sha256sum] = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+SRC_URI[paste-1.0.14.sha256sum] = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+SRC_URI[percent-encoding-2.3.0.sha256sum] = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
 SRC_URI[phf-0.8.0.sha256sum] = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
 SRC_URI[phf-0.10.1.sha256sum] = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
 SRC_URI[phf_codegen-0.8.0.sha256sum] = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
@@ -480,14 +472,14 @@
 SRC_URI[phf_macros-0.10.0.sha256sum] = "58fdf3184dd560f160dd73922bea2d5cd6e8f064bf4b13110abd81b03697b4e0"
 SRC_URI[phf_shared-0.8.0.sha256sum] = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
 SRC_URI[phf_shared-0.10.0.sha256sum] = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
-SRC_URI[pin-project-lite-0.2.9.sha256sum] = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
+SRC_URI[pin-project-lite-0.2.10.sha256sum] = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
 SRC_URI[pin-utils-0.1.0.sha256sum] = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 SRC_URI[pkg-config-0.3.27.sha256sum] = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
-SRC_URI[plotters-0.3.4.sha256sum] = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
-SRC_URI[plotters-backend-0.3.4.sha256sum] = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
-SRC_URI[plotters-svg-0.3.3.sha256sum] = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
-SRC_URI[png-0.17.8.sha256sum] = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa"
-SRC_URI[pom-3.2.0.sha256sum] = "07e2192780e9f8e282049ff9bffcaa28171e1cb0844f49ed5374e518ae6024ec"
+SRC_URI[plotters-0.3.5.sha256sum] = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
+SRC_URI[plotters-backend-0.3.5.sha256sum] = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
+SRC_URI[plotters-svg-0.3.5.sha256sum] = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
+SRC_URI[png-0.17.9.sha256sum] = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11"
+SRC_URI[pom-3.3.0.sha256sum] = "5c2d73a5fe10d458e77534589512104e5aa8ac480aa9ac30b74563274235cce4"
 SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 SRC_URI[precomputed-hash-0.1.1.sha256sum] = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
 SRC_URI[predicates-2.1.5.sha256sum] = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd"
@@ -498,10 +490,10 @@
 SRC_URI[proc-macro-error-1.0.4.sha256sum] = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 SRC_URI[proc-macro-error-attr-1.0.4.sha256sum] = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
 SRC_URI[proc-macro-hack-0.5.20+deprecated.sha256sum] = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
-SRC_URI[proc-macro2-1.0.59.sha256sum] = "6aeca18b86b413c660b781aa319e4e2648a3e6f9eadc9b47e9038e6fe9f3451b"
+SRC_URI[proc-macro2-1.0.66.sha256sum] = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 SRC_URI[proptest-1.2.0.sha256sum] = "4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65"
 SRC_URI[quick-error-1.2.3.sha256sum] = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-SRC_URI[quote-1.0.28.sha256sum] = "1b9ab9c7eadfd8df19006f1cf1a4aed13540ed5cbc047010ece5826e10825488"
+SRC_URI[quote-1.0.31.sha256sum] = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0"
 SRC_URI[rand-0.7.3.sha256sum] = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 SRC_URI[rand_chacha-0.2.2.sha256sum] = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
@@ -515,29 +507,28 @@
 SRC_URI[rayon-1.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
 SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
 SRC_URI[rctree-0.5.0.sha256sum] = "3b42e27ef78c35d3998403c1d26f3efd9e135d3e5121b0a4845cc5cc27547f4f"
-SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
 SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-SRC_URI[regex-1.8.3.sha256sum] = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390"
-SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.3.sha256sum] = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310"
 SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
-SRC_URI[regex-syntax-0.7.2.sha256sum] = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+SRC_URI[regex-syntax-0.7.4.sha256sum] = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
 SRC_URI[rgb-0.8.36.sha256sum] = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
 SRC_URI[rustc_version-0.2.3.sha256sum] = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
 SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-SRC_URI[rustix-0.37.19.sha256sum] = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
+SRC_URI[rustix-0.38.4.sha256sum] = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5"
 SRC_URI[rusty-fork-0.3.0.sha256sum] = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
-SRC_URI[ryu-1.0.13.sha256sum] = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
-SRC_URI[safe_arch-0.6.0.sha256sum] = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529"
+SRC_URI[ryu-1.0.15.sha256sum] = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+SRC_URI[safe_arch-0.7.1.sha256sum] = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354"
 SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 SRC_URI[selectors-0.24.0.sha256sum] = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416"
 SRC_URI[semver-0.9.0.sha256sum] = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-SRC_URI[semver-1.0.17.sha256sum] = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+SRC_URI[semver-1.0.18.sha256sum] = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
 SRC_URI[semver-parser-0.7.0.sha256sum] = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-SRC_URI[serde-1.0.163.sha256sum] = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
-SRC_URI[serde_derive-1.0.163.sha256sum] = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
-SRC_URI[serde_json-1.0.96.sha256sum] = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1"
-SRC_URI[serde_spanned-0.6.2.sha256sum] = "93107647184f6027e3b7dcb2e11034cf95ffa1e3a682c67951963ac69c1c007d"
+SRC_URI[serde-1.0.173.sha256sum] = "e91f70896d6720bc714a4a57d22fc91f1db634680e65c8efe13323f1fa38d53f"
+SRC_URI[serde_derive-1.0.173.sha256sum] = "a6250dde8342e0232232be9ca3db7aa40aceb5a3e5dd9bddbc00d99a007cde49"
+SRC_URI[serde_json-1.0.103.sha256sum] = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"
+SRC_URI[serde_spanned-0.6.3.sha256sum] = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
 SRC_URI[servo_arc-0.2.0.sha256sum] = "d52aa42f8fdf0fed91e5ce7f23d8138441002fa31dca008acf47e6fd4721f741"
 SRC_URI[sha1-0.6.1.sha256sum] = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
 SRC_URI[sha1_smol-1.0.0.sha256sum] = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
@@ -545,7 +536,7 @@
 SRC_URI[simd-adler32-0.3.5.sha256sum] = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
 SRC_URI[siphasher-0.3.10.sha256sum] = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
 SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
-SRC_URI[smallvec-1.10.0.sha256sum] = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+SRC_URI[smallvec-1.11.0.sha256sum] = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
 SRC_URI[stable_deref_trait-1.2.0.sha256sum] = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
 SRC_URI[standback-0.2.17.sha256sum] = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
 SRC_URI[stdweb-0.4.20.sha256sum] = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
@@ -556,30 +547,30 @@
 SRC_URI[string_cache_codegen-0.5.2.sha256sum] = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
 SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-SRC_URI[syn-2.0.18.sha256sum] = "32d41677bcbe24c20c52e7c70b0d8db04134c5d1066bf98662e2871ad200ea3e"
-SRC_URI[system-deps-6.1.0.sha256sum] = "e5fa6fb9ee296c0dc2df41a656ca7948546d061958115ddb0bcaae43ad0d17d2"
-SRC_URI[target-lexicon-0.12.7.sha256sum] = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5"
-SRC_URI[tempfile-3.5.0.sha256sum] = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+SRC_URI[syn-2.0.26.sha256sum] = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"
+SRC_URI[system-deps-6.1.1.sha256sum] = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
+SRC_URI[target-lexicon-0.12.10.sha256sum] = "1d2faeef5759ab89935255b1a4cd98e0baf99d1085e37d36599c625dac49ae8e"
+SRC_URI[tempfile-3.7.0.sha256sum] = "5486094ee78b2e5038a6382ed7645bc084dc2ec433426ca4c3cb61e2007b8998"
 SRC_URI[tendril-0.4.3.sha256sum] = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
 SRC_URI[termtree-0.4.1.sha256sum] = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
 SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
-SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+SRC_URI[thiserror-1.0.43.sha256sum] = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"
+SRC_URI[thiserror-impl-1.0.43.sha256sum] = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"
 SRC_URI[time-0.2.27.sha256sum] = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
 SRC_URI[time-macros-0.1.1.sha256sum] = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
 SRC_URI[time-macros-impl-0.1.2.sha256sum] = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
 SRC_URI[tinytemplate-1.2.1.sha256sum] = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
 SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
 SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
-SRC_URI[toml-0.7.4.sha256sum] = "d6135d499e69981f9ff0ef2167955a5333c35e36f6937d382974566b3d5b94ec"
-SRC_URI[toml_datetime-0.6.2.sha256sum] = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f"
-SRC_URI[toml_edit-0.19.10.sha256sum] = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739"
+SRC_URI[toml-0.7.6.sha256sum] = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+SRC_URI[toml_datetime-0.6.3.sha256sum] = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+SRC_URI[toml_edit-0.19.14.sha256sum] = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
 SRC_URI[typenum-1.16.0.sha256sum] = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
 SRC_URI[unarray-0.1.4.sha256sum] = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
 SRC_URI[unicode-bidi-0.3.13.sha256sum] = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
-SRC_URI[unicode-ident-1.0.9.sha256sum] = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0"
+SRC_URI[unicode-ident-1.0.11.sha256sum] = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
-SRC_URI[url-2.3.1.sha256sum] = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+SRC_URI[url-2.4.0.sha256sum] = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
 SRC_URI[utf-8-0.7.6.sha256sum] = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
 SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 SRC_URI[version-compare-0.1.1.sha256sum] = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
@@ -588,37 +579,28 @@
 SRC_URI[walkdir-2.3.3.sha256sum] = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
 SRC_URI[wasi-0.9.0+wasi-snapshot-preview1.sha256sum] = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
 SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-SRC_URI[wasm-bindgen-0.2.86.sha256sum] = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73"
-SRC_URI[wasm-bindgen-backend-0.2.86.sha256sum] = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb"
-SRC_URI[wasm-bindgen-macro-0.2.86.sha256sum] = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258"
-SRC_URI[wasm-bindgen-macro-support-0.2.86.sha256sum] = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
-SRC_URI[wasm-bindgen-shared-0.2.86.sha256sum] = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93"
-SRC_URI[web-sys-0.3.63.sha256sum] = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2"
+SRC_URI[wasm-bindgen-0.2.87.sha256sum] = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+SRC_URI[wasm-bindgen-backend-0.2.87.sha256sum] = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+SRC_URI[wasm-bindgen-macro-0.2.87.sha256sum] = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+SRC_URI[wasm-bindgen-macro-support-0.2.87.sha256sum] = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+SRC_URI[wasm-bindgen-shared-0.2.87.sha256sum] = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+SRC_URI[web-sys-0.3.64.sha256sum] = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
 SRC_URI[weezl-0.1.7.sha256sum] = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
-SRC_URI[wide-0.7.9.sha256sum] = "5cd0496a71f3cc6bc4bf0ed91346426a5099e93d89807e663162dc5a1069ff65"
+SRC_URI[wide-0.7.11.sha256sum] = "aa469ffa65ef7e0ba0f164183697b89b854253fd31aeb92358b7b6155177d62f"
 SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 SRC_URI[winapi-util-0.1.5.sha256sum] = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 SRC_URI[windows-0.48.0.sha256sum] = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
-SRC_URI[windows-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
 SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
-SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-SRC_URI[windows-targets-0.48.0.sha256sum] = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
-SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+SRC_URI[windows-targets-0.48.1.sha256sum] = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
 SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
-SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
 SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
-SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
 SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
-SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
 SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
-SRC_URI[windows_x86_64_gnu-0.42.2.sha256sum] = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
 SRC_URI[windows_x86_64_gnu-0.48.0.sha256sum] = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
-SRC_URI[windows_x86_64_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
 SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
-SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
 SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
-SRC_URI[winnow-0.4.6.sha256sum] = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699"
+SRC_URI[winnow-0.5.0.sha256sum] = "81fac9742fd1ad1bd9643b991319f72dd031016d44b77039a26977eb667141e7"
 SRC_URI[xml5ever-0.17.0.sha256sum] = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
 SRC_URI[yeslogic-fontconfig-sys-4.0.1.sha256sum] = "ec657fd32bbcbeaef5c7bc8e10b3db95b143fab8db0a50079773dbf936fd4f73"
diff --git a/poky/meta/recipes-gnome/librsvg/librsvg_2.56.1.bb b/poky/meta/recipes-gnome/librsvg/librsvg_2.56.3.bb
similarity index 91%
rename from poky/meta/recipes-gnome/librsvg/librsvg_2.56.1.bb
rename to poky/meta/recipes-gnome/librsvg/librsvg_2.56.3.bb
index edd7ad3..4b9aaee 100644
--- a/poky/meta/recipes-gnome/librsvg/librsvg_2.56.1.bb
+++ b/poky/meta/recipes-gnome/librsvg/librsvg_2.56.3.bb
@@ -14,14 +14,16 @@
 DEPENDS = "cairo gdk-pixbuf glib-2.0 libxml2 pango python3-docutils-native"
 BBCLASSEXTEND = "native nativesdk"
 
-inherit cargo_common gnomebase pixbufcache upstream-version-is-even gobject-introspection rust vala gi-docgen cargo-update-recipe-crates
+inherit cargo_common gnomebase pixbufcache gobject-introspection rust vala gi-docgen cargo-update-recipe-crates
 
 require ${BPN}-crates.inc
 
 SRC_URI += "file://0001-Makefile.am-pass-rust-target-to-cargo-also-when-not-.patch \
            "
 
-SRC_URI[archive.sha256sum] = "1685aeacae9a441dcb12c0c3ec63706172a2f52705dafbefb8e7311d4d5e430b"
+SRC_URI[archive.sha256sum] = "5a328048a02d014645cd27f61140f4e0b11280fb2c7f2a21864fe0c59ac1ce88"
+
+UPSTREAM_CHECK_REGEX = "librsvg-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
 
 # librsvg is still autotools-based, but is calling cargo from its automake-driven makefiles
 # so we cannot use cargo class directly, but still need bits and pieces from it 
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
index ca76251..b385ff7 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -10,8 +10,9 @@
 
 LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
 
-SRCREV = "cf4ec7f35521eb54d72ce0c92ce65b2249171cbd"
+SRCREV = "53ea71efe63470cf698726d983e9da5748a754a1"
 SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https"
+
 UPSTREAM_CHECK_COMMITS = "1"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 9288990..79a1d97 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -106,6 +106,7 @@
 VULKAN_DRIVERS:append:i686 = ",intel"
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}"
 VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}"
+VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',swrast', '', d)}"
 PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
 
 # mesa development and testing tools support, per driver
@@ -163,7 +164,7 @@
 
 # radeonsi requires LLVM
 GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}"
-GALLIUMDRIVERS_LLVM = "r300,nouveau${GALLIUMDRIVERS_RADEONSI}"
+GALLIUMDRIVERS_LLVM = ",r300,nouveau${GALLIUMDRIVERS_RADEONSI}"
 GALLIUMDRIVERS_LLVM:append:x86 = ",svga"
 GALLIUMDRIVERS_LLVM:append:x86-64 = ",svga"
 # i686 is a 32 bit override for mesa-native
@@ -172,7 +173,7 @@
 PACKAGECONFIG[r600] = ""
 PACKAGECONFIG[virgl] = ""
 
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}"
+GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${GALLIUMDRIVERS_LLVM}', '', d)}"
 GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}"
 GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}"
 
diff --git a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.26.bb b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.26.bb
index bc83afb..11a3c4f 100644
--- a/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.26.bb
+++ b/poky/meta/recipes-kernel/kexec/kexec-tools_2.0.26.bb
@@ -1,7 +1,6 @@
 
 SUMMARY = "Kexec fast reboot tools"
 DESCRIPTION = "Kexec is a fast reboot feature that lets you reboot to a new Linux kernel"
-AUTHOR = "Eric Biederman"
 HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
 SECTION = "kernel/userland"
 LICENSE = "GPL-2.0-only"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230625.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230625.bb
index 329a3e3..6765226 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230625.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20230625.bb
@@ -241,6 +241,7 @@
              ${PN}-rtl-license ${PN}-rtl8188 ${PN}-rtl8192cu ${PN}-rtl8192ce ${PN}-rtl8192su ${PN}-rtl8723 ${PN}-rtl8821 \
              ${PN}-rtl8761 \
              ${PN}-rtl8168 \
+             ${PN}-rtl8822 \
              ${PN}-cypress-license \
              ${PN}-broadcom-license \
              ${PN}-bcm-0bb4-0306 \
@@ -315,14 +316,15 @@
              ${PN}-qcom-vpu-1.0 ${PN}-qcom-vpu-2.0 \
              ${PN}-qcom-adreno-a2xx ${PN}-qcom-adreno-a3xx ${PN}-qcom-adreno-a4xx ${PN}-qcom-adreno-a530 \
              ${PN}-qcom-adreno-a630 ${PN}-qcom-adreno-a650 ${PN}-qcom-adreno-a660 \
-             ${PN}-qcom-apq8096-audio ${PN}-qcom-apq8096-modem \
+             ${PN}-qcom-apq8016-modem ${PN}-qcom-apq8016-wifi \
+             ${PN}-qcom-apq8096-adreno ${PN}-qcom-apq8096-audio ${PN}-qcom-apq8096-modem \
              ${PN}-qcom-sc8280xp-lenovo-x13s-compat \
              ${PN}-qcom-sc8280xp-lenovo-x13s-audio \
              ${PN}-qcom-sc8280xp-lenovo-x13s-adreno \
              ${PN}-qcom-sc8280xp-lenovo-x13s-compute \
              ${PN}-qcom-sc8280xp-lenovo-x13s-sensors \
-             ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \
-             ${PN}-qcom-sm8250-audio ${PN}-qcom-sm8250-compute \
+             ${PN}-qcom-sdm845-adreno ${PN}-qcom-sdm845-audio ${PN}-qcom-sdm845-compute ${PN}-qcom-sdm845-modem \
+             ${PN}-qcom-sm8250-adreno ${PN}-qcom-sm8250-audio ${PN}-qcom-sm8250-compute \
              ${PN}-amlogic-vdec-license ${PN}-amlogic-vdec \
              ${PN}-lt9611uxc ${PN}-lontium-license \
              ${PN}-whence-license \
@@ -417,7 +419,7 @@
 
 FILES:${PN}-mt7601u-license = "${nonarch_base_libdir}/firmware/LICENCE.ralink_a_mediatek_company_firmware"
 FILES:${PN}-mt7601u = " \
-  ${nonarch_base_libdir}/firmware/mt7601u.bin \
+  ${nonarch_base_libdir}/firmware/mediatek/mt7601u.bin \
 "
 
 RDEPENDS:${PN}-mt7601u += "${PN}-mt7601u-license"
@@ -581,6 +583,7 @@
 LICENSE:${PN}-rtl8723 = "Firmware-rtlwifi_firmware"
 LICENSE:${PN}-rtl8761 = "Firmware-rtlwifi_firmware"
 LICENSE:${PN}-rtl8821 = "Firmware-rtlwifi_firmware"
+LICENSE:${PN}-rtl8822 = "Firmware-rtlwifi_firmware"
 LICENSE:${PN}-rtl-license = "Firmware-rtlwifi_firmware"
 LICENSE:${PN}-rtl8168 = "WHENCE"
 
@@ -611,6 +614,11 @@
 FILES:${PN}-rtl8168 = " \
   ${nonarch_base_libdir}/firmware/rtl_nic/rtl8168*.fw \
 "
+FILES:${PN}-rtl8822 = " \
+  ${nonarch_base_libdir}/firmware/rtl_bt/rtl8822*.bin \
+  ${nonarch_base_libdir}/firmware/rtw88/rtw8822*.bin \
+  ${nonarch_base_libdir}/firmware/rtlwifi/rtl8822*.bin \
+"
 
 RDEPENDS:${PN}-rtl8188 += "${PN}-rtl-license"
 RDEPENDS:${PN}-rtl8192ce += "${PN}-rtl-license"
@@ -619,6 +627,7 @@
 RDEPENDS:${PN}-rtl8723 += "${PN}-rtl-license"
 RDEPENDS:${PN}-rtl8821 += "${PN}-rtl-license"
 RDEPENDS:${PN}-rtl8761 += "${PN}-rtl-license"
+RDEPENDS:${PN}-rtl8822 += "${PN}-rtl-license"
 RDEPENDS:${PN}-rtl8168 += "${PN}-whence-license"
 
 # For ti-connectivity
@@ -1000,16 +1009,21 @@
 LICENSE:${PN}-qcom-adreno-a630 = "Firmware-qcom"
 LICENSE:${PN}-qcom-adreno-a650 = "Firmware-qcom"
 LICENSE:${PN}-qcom-adreno-a660 = "Firmware-qcom"
+LICENSE:${PN}-qcom-apq8016-modem = "Firmware-qcom"
+LICENSE:${PN}-qcom-apq8016-wifi = "Firmware-qcom"
 LICENSE:${PN}-qcom-apq8096-audio = "Firmware-qcom"
+LICENSE:${PN}-qcom-apq8096-adreno = "Firmware-qcom"
 LICENSE:${PN}-qcom-apq8096-modem = "Firmware-qcom"
 LICENSE:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "Firmware-qcom"
 LICENSE:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "Firmware-qcom"
 LICENSE:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "Firmware-qcom"
 LICENSE:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "Firmware-qcom"
 LICENSE:${PN}-qcom-sdm845-audio = "Firmware-qcom"
+LICENSE:${PN}-qcom-sdm845-adreno = "Firmware-qcom"
 LICENSE:${PN}-qcom-sdm845-compute = "Firmware-qcom"
 LICENSE:${PN}-qcom-sdm845-modem = "Firmware-qcom"
 LICENSE:${PN}-qcom-sm8250-audio = "Firmware-qcom"
+LICENSE:${PN}-qcom-sm8250-adreno = "Firmware-qcom"
 LICENSE:${PN}-qcom-sm8250-compute = "Firmware-qcom"
 
 FILES:${PN}-qcom-license   = "${nonarch_base_libdir}/firmware/LICENSE.qcom ${nonarch_base_libdir}/firmware/qcom/NOTICE.txt"
@@ -1023,10 +1037,13 @@
 FILES:${PN}-qcom-adreno-a2xx = "${nonarch_base_libdir}/firmware/qcom/leia_*.fw ${nonarch_base_libdir}/firmware/qcom/yamato_*.fw"
 FILES:${PN}-qcom-adreno-a3xx = "${nonarch_base_libdir}/firmware/qcom/a3*_*.fw ${nonarch_base_libdir}/firmware/a300_*.fw"
 FILES:${PN}-qcom-adreno-a4xx = "${nonarch_base_libdir}/firmware/qcom/a4*_*.fw"
-FILES:${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.* ${nonarch_base_libdir}/firmware/qcom/apq8096/a530*.*"
-FILES:${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*"
-FILES:${PN}-qcom-adreno-a650 = "${nonarch_base_libdir}/firmware/qcom/a650*.* ${nonarch_base_libdir}/firmware/qcom/sm8250/a650*.*"
+FILES:${PN}-qcom-adreno-a530 = "${nonarch_base_libdir}/firmware/qcom/a530*.fw*"
+FILES:${PN}-qcom-adreno-a630 = "${nonarch_base_libdir}/firmware/qcom/a630*.*"
+FILES:${PN}-qcom-adreno-a650 = "${nonarch_base_libdir}/firmware/qcom/a650*.*"
 FILES:${PN}-qcom-adreno-a660 = "${nonarch_base_libdir}/firmware/qcom/a660*.*"
+FILES:${PN}-qcom-apq8016-modem = "${nonarch_base_libdir}/firmware/qcom/apq8016/mba.mbn ${nonarch_base_libdir}/firmware/qcom/apq8016/modem.mbn"
+FILES:${PN}-qcom-apq8016-wifi = "${nonarch_base_libdir}/firmware/qcom/apq8016/wcnss.mbn ${nonarch_base_libdir}/firmware/qcom/apq8016/WCNSS*"
+FILES:${PN}-qcom-apq8096-adreno = "${nonarch_base_libdir}/firmware/qcom/apq8096/a530_zap.mbn ${nonarch_base_libdir}/firmware/qcom/a530_zap.mdt"
 FILES:${PN}-qcom-apq8096-audio = "${nonarch_base_libdir}/firmware/qcom/apq8096/adsp*.*"
 FILES:${PN}-qcom-apq8096-modem = "${nonarch_base_libdir}/firmware/qcom/apq8096/mba.mbn ${nonarch_base_libdir}/firmware/qcom/apq8096/modem*.* ${nonarch_base_libdir}/firmware/qcom/apq8096/wlanmdsp.mbn"
 FILES:${PN}-qcom-sc8280xp-lenovo-x13s-compat = "${nonarch_base_libdir}/firmware/qcom/LENOVO/21BX"
@@ -1034,9 +1051,11 @@
 FILES:${PN}-qcom-sc8280xp-lenovo-x13s-adreno = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/qcdxkmsuc8280.mbn"
 FILES:${PN}-qcom-sc8280xp-lenovo-x13s-compute = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/*cdsp*.*"
 FILES:${PN}-qcom-sc8280xp-lenovo-x13s-sensors = "${nonarch_base_libdir}/firmware/qcom/sc8280xp/LENOVO/21BX/*slpi*.*"
+FILES:${PN}-qcom-sdm845-adreno = "${nonarch_base_libdir}/firmware/qcom/sdm845/a630*.*"
 FILES:${PN}-qcom-sdm845-audio = "${nonarch_base_libdir}/firmware/qcom/sdm845/adsp*.*"
 FILES:${PN}-qcom-sdm845-compute = "${nonarch_base_libdir}/firmware/qcom/sdm845/cdsp*.*"
 FILES:${PN}-qcom-sdm845-modem = "${nonarch_base_libdir}/firmware/qcom/sdm845/mba.mbn ${nonarch_base_libdir}/firmware/qcom/sdm845/modem*.* ${nonarch_base_libdir}/firmware/qcom/sdm845/wlanmdsp.mbn"
+FILES:${PN}-qcom-sm8250-adreno = "${nonarch_base_libdir}/firmware/qcom/sm8250/a650*.*"
 FILES:${PN}-qcom-sm8250-audio = "${nonarch_base_libdir}/firmware/qcom/sm8250/adsp*.*"
 FILES:${PN}-qcom-sm8250-compute = "${nonarch_base_libdir}/firmware/qcom/sm8250/cdsp*.*"
 
@@ -1053,6 +1072,8 @@
 RDEPENDS:${PN}-qcom-adreno-a630 = "${PN}-qcom-license"
 RDEPENDS:${PN}-qcom-adreno-a650 = "${PN}-qcom-license"
 RDEPENDS:${PN}-qcom-adreno-a660 = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-apq8016-modem = "${PN}-qcom-license"
+RDEPENDS:${PN}-qcom-apq8016-wifi = "${PN}-qcom-license"
 RDEPENDS:${PN}-qcom-apq8096-audio = "${PN}-qcom-license"
 RDEPENDS:${PN}-qcom-apq8096-modem = "${PN}-qcom-license"
 RDEPENDS:${PN}-qcom-sc8280xp-lenovo-x13s-audio = "${PN}-qcom-license"
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion.inc b/poky/meta/recipes-kernel/linux/cve-exclusion.inc
new file mode 100644
index 0000000..42f1c19
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion.inc
@@ -0,0 +1,10 @@
+CVE_STATUS[CVE-2018-6559] = "not-applicable-platform: Issue only affects Ubuntu"
+
+CVE_STATUS[CVE-2020-11935] = "not-applicable-config: Issue only affects aufs, which is not in linux-yocto"
+
+# Introduced in version v6.1 7b88bda3761b95856cf97822efe8281c8100067b
+# Patched in kernel since v6.2 4a625ceee8a0ab0273534cb6b432ce6b331db5ee
+# But, the CVE is disputed:
+CVE_STATUS[CVE-2023-23005] = "disputed: There are no realistic cases \
+in which a user can cause the alloc_memory_type error case to be reached. \
+See: https://bugzilla.suse.com/show_bug.cgi?id=1208844#c2"
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
index 2eb4836..2441788 100644
--- a/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.1.inc
@@ -1,605 +1,4967 @@
-CVE_STATUS[CVE-2018-6559] = "not-applicable-platform: Issue only affects Ubuntu"
+# Auto-generated CVE metadata, DO NOT EDIT BY HAND.
+# Generated at 2023-08-09 15:51:19.757857 for version 6.1.43
+
+CVE_STATUS[CVE-2003-1604] = "fixed-version: Fixed after version 2.6.12rc2"
+
+CVE_STATUS[CVE-2004-0230] = "fixed-version: Fixed after version 3.6rc1"
+
+# CVE-2005-3660 has no known resolution
+
+CVE_STATUS[CVE-2006-3635] = "fixed-version: Fixed after version 2.6.26rc5"
+
+CVE_STATUS[CVE-2006-5331] = "fixed-version: Fixed after version 2.6.19rc3"
+
+CVE_STATUS[CVE-2006-6128] = "fixed-version: Fixed after version 2.6.19rc2"
+
+# CVE-2007-3719 has no known resolution
+
+CVE_STATUS[CVE-2007-4774] = "fixed-version: Fixed after version 2.6.12rc2"
+
+CVE_STATUS[CVE-2007-6761] = "fixed-version: Fixed after version 2.6.24rc6"
+
+CVE_STATUS[CVE-2007-6762] = "fixed-version: Fixed after version 2.6.20rc5"
+
+# CVE-2008-2544 has no known resolution
+
+# CVE-2008-4609 has no known resolution
+
+CVE_STATUS[CVE-2008-7316] = "fixed-version: Fixed after version 2.6.25rc1"
+
+CVE_STATUS[CVE-2009-2692] = "fixed-version: Fixed after version 2.6.31rc6"
+
+CVE_STATUS[CVE-2010-0008] = "fixed-version: Fixed after version 2.6.23rc9"
+
+CVE_STATUS[CVE-2010-3432] = "fixed-version: Fixed after version 2.6.36rc5"
+
+# CVE-2010-4563 has no known resolution
+
+CVE_STATUS[CVE-2010-4648] = "fixed-version: Fixed after version 2.6.37rc6"
+
+CVE_STATUS[CVE-2010-5313] = "fixed-version: Fixed after version 2.6.38rc1"
+
+# CVE-2010-5321 has no known resolution
+
+CVE_STATUS[CVE-2010-5328] = "fixed-version: Fixed after version 2.6.35rc1"
+
+CVE_STATUS[CVE-2010-5329] = "fixed-version: Fixed after version 2.6.39rc1"
+
+CVE_STATUS[CVE-2010-5331] = "fixed-version: Fixed after version 2.6.34rc7"
+
+CVE_STATUS[CVE-2010-5332] = "fixed-version: Fixed after version 2.6.37rc1"
+
+CVE_STATUS[CVE-2011-4098] = "fixed-version: Fixed after version 3.2rc1"
+
+CVE_STATUS[CVE-2011-4131] = "fixed-version: Fixed after version 3.3rc1"
+
+CVE_STATUS[CVE-2011-4915] = "fixed-version: Fixed after version 3.2rc1"
+
+# CVE-2011-4916 has no known resolution
+
+# CVE-2011-4917 has no known resolution
+
+CVE_STATUS[CVE-2011-5321] = "fixed-version: Fixed after version 3.2rc1"
+
+CVE_STATUS[CVE-2011-5327] = "fixed-version: Fixed after version 3.1rc1"
+
+CVE_STATUS[CVE-2012-0957] = "fixed-version: Fixed after version 3.7rc2"
+
+CVE_STATUS[CVE-2012-2119] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2136] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2137] = "fixed-version: Fixed after version 3.5rc2"
+
+CVE_STATUS[CVE-2012-2313] = "fixed-version: Fixed after version 3.4rc6"
+
+CVE_STATUS[CVE-2012-2319] = "fixed-version: Fixed after version 3.4rc6"
+
+CVE_STATUS[CVE-2012-2372] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2012-2375] = "fixed-version: Fixed after version 3.4rc1"
+
+CVE_STATUS[CVE-2012-2390] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2669] = "fixed-version: Fixed after version 3.5rc4"
+
+CVE_STATUS[CVE-2012-2744] = "fixed-version: Fixed after version 2.6.34rc1"
+
+CVE_STATUS[CVE-2012-2745] = "fixed-version: Fixed after version 3.4rc3"
+
+CVE_STATUS[CVE-2012-3364] = "fixed-version: Fixed after version 3.5rc6"
+
+CVE_STATUS[CVE-2012-3375] = "fixed-version: Fixed after version 3.4rc5"
+
+CVE_STATUS[CVE-2012-3400] = "fixed-version: Fixed after version 3.5rc5"
+
+CVE_STATUS[CVE-2012-3412] = "fixed-version: Fixed after version 3.6rc2"
+
+CVE_STATUS[CVE-2012-3430] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-3510] = "fixed-version: Fixed after version 2.6.19rc4"
+
+CVE_STATUS[CVE-2012-3511] = "fixed-version: Fixed after version 3.5rc6"
+
+CVE_STATUS[CVE-2012-3520] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-3552] = "fixed-version: Fixed after version 3.0rc1"
+
+# Skipping CVE-2012-4220, no affected_versions
+
+# Skipping CVE-2012-4221, no affected_versions
+
+# Skipping CVE-2012-4222, no affected_versions
+
+CVE_STATUS[CVE-2012-4398] = "fixed-version: Fixed after version 3.4rc1"
+
+CVE_STATUS[CVE-2012-4444] = "fixed-version: Fixed after version 2.6.36rc4"
+
+CVE_STATUS[CVE-2012-4461] = "fixed-version: Fixed after version 3.7rc6"
+
+CVE_STATUS[CVE-2012-4467] = "fixed-version: Fixed after version 3.6rc5"
+
+CVE_STATUS[CVE-2012-4508] = "fixed-version: Fixed after version 3.7rc3"
+
+CVE_STATUS[CVE-2012-4530] = "fixed-version: Fixed after version 3.8rc1"
+
+# CVE-2012-4542 has no known resolution
+
+CVE_STATUS[CVE-2012-4565] = "fixed-version: Fixed after version 3.7rc4"
+
+CVE_STATUS[CVE-2012-5374] = "fixed-version: Fixed after version 3.8rc1"
+
+CVE_STATUS[CVE-2012-5375] = "fixed-version: Fixed after version 3.8rc1"
+
+CVE_STATUS[CVE-2012-5517] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6536] = "fixed-version: Fixed after version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6537] = "fixed-version: Fixed after version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6538] = "fixed-version: Fixed after version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6539] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6540] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6541] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6542] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6543] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6544] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6545] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6546] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6547] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6548] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6549] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6638] = "fixed-version: Fixed after version 3.3rc1"
+
+CVE_STATUS[CVE-2012-6647] = "fixed-version: Fixed after version 3.6rc2"
+
+CVE_STATUS[CVE-2012-6657] = "fixed-version: Fixed after version 3.6"
+
+CVE_STATUS[CVE-2012-6689] = "fixed-version: Fixed after version 3.6rc5"
+
+CVE_STATUS[CVE-2012-6701] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-6703] = "fixed-version: Fixed after version 3.7rc1"
+
+CVE_STATUS[CVE-2012-6704] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-6712] = "fixed-version: Fixed after version 3.4rc1"
+
+CVE_STATUS[CVE-2013-0160] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-0190] = "fixed-version: Fixed after version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0216] = "fixed-version: Fixed after version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0217] = "fixed-version: Fixed after version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0228] = "fixed-version: Fixed after version 3.8"
+
+CVE_STATUS[CVE-2013-0231] = "fixed-version: Fixed after version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0268] = "fixed-version: Fixed after version 3.8rc6"
+
+CVE_STATUS[CVE-2013-0290] = "fixed-version: Fixed after version 3.8"
+
+CVE_STATUS[CVE-2013-0309] = "fixed-version: Fixed after version 3.7rc1"
+
+CVE_STATUS[CVE-2013-0310] = "fixed-version: Fixed after version 3.5"
+
+CVE_STATUS[CVE-2013-0311] = "fixed-version: Fixed after version 3.7rc8"
+
+CVE_STATUS[CVE-2013-0313] = "fixed-version: Fixed after version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0343] = "fixed-version: Fixed after version 3.11rc7"
+
+CVE_STATUS[CVE-2013-0349] = "fixed-version: Fixed after version 3.8rc6"
+
+CVE_STATUS[CVE-2013-0871] = "fixed-version: Fixed after version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0913] = "fixed-version: Fixed after version 3.9rc4"
+
+CVE_STATUS[CVE-2013-0914] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1059] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-1763] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-1767] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-1772] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2013-1773] = "fixed-version: Fixed after version 3.3rc1"
+
+CVE_STATUS[CVE-2013-1774] = "fixed-version: Fixed after version 3.8rc5"
+
+CVE_STATUS[CVE-2013-1792] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1796] = "fixed-version: Fixed after version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1797] = "fixed-version: Fixed after version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1798] = "fixed-version: Fixed after version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1819] = "fixed-version: Fixed after version 3.8rc6"
+
+CVE_STATUS[CVE-2013-1826] = "fixed-version: Fixed after version 3.6rc7"
+
+CVE_STATUS[CVE-2013-1827] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2013-1828] = "fixed-version: Fixed after version 3.9rc2"
+
+CVE_STATUS[CVE-2013-1848] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1858] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1860] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1928] = "fixed-version: Fixed after version 3.7rc3"
+
+CVE_STATUS[CVE-2013-1929] = "fixed-version: Fixed after version 3.9rc6"
+
+# Skipping CVE-2013-1935, no affected_versions
+
+CVE_STATUS[CVE-2013-1943] = "fixed-version: Fixed after version 3.0rc1"
+
+CVE_STATUS[CVE-2013-1956] = "fixed-version: Fixed after version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1957] = "fixed-version: Fixed after version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1958] = "fixed-version: Fixed after version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1959] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-1979] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2015] = "fixed-version: Fixed after version 3.8rc2"
+
+CVE_STATUS[CVE-2013-2017] = "fixed-version: Fixed after version 2.6.34"
+
+CVE_STATUS[CVE-2013-2058] = "fixed-version: Fixed after version 3.8rc4"
+
+CVE_STATUS[CVE-2013-2094] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2128] = "fixed-version: Fixed after version 2.6.34rc4"
+
+CVE_STATUS[CVE-2013-2140] = "fixed-version: Fixed after version 3.11rc3"
+
+CVE_STATUS[CVE-2013-2141] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2146] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2147] = "fixed-version: Fixed after version 3.12rc3"
+
+CVE_STATUS[CVE-2013-2148] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-2164] = "fixed-version: Fixed after version 3.11rc1"
+
+# Skipping CVE-2013-2188, no affected_versions
+
+CVE_STATUS[CVE-2013-2206] = "fixed-version: Fixed after version 3.9rc4"
+
+# Skipping CVE-2013-2224, no affected_versions
+
+CVE_STATUS[CVE-2013-2232] = "fixed-version: Fixed after version 3.10"
+
+CVE_STATUS[CVE-2013-2234] = "fixed-version: Fixed after version 3.10"
+
+CVE_STATUS[CVE-2013-2237] = "fixed-version: Fixed after version 3.9rc6"
+
+# Skipping CVE-2013-2239, no affected_versions
+
+CVE_STATUS[CVE-2013-2546] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2547] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2548] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2596] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2634] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2635] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2636] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2850] = "fixed-version: Fixed after version 3.10rc4"
+
+CVE_STATUS[CVE-2013-2851] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-2852] = "fixed-version: Fixed after version 3.10rc6"
+
+CVE_STATUS[CVE-2013-2888] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2889] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2890] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2891] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2892] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2893] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2894] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2895] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2896] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2897] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2898] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2899] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2929] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-2930] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-3076] = "fixed-version: Fixed after version 3.9"
+
+CVE_STATUS[CVE-2013-3222] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3223] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3224] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3225] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3226] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3227] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3228] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3229] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3230] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3231] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3232] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3233] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3234] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3235] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3236] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3237] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3301] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3302] = "fixed-version: Fixed after version 3.8rc3"
+
+CVE_STATUS[CVE-2013-4125] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4127] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4129] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4162] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4163] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4205] = "fixed-version: Fixed after version 3.11rc5"
+
+CVE_STATUS[CVE-2013-4220] = "fixed-version: Fixed after version 3.10rc4"
+
+CVE_STATUS[CVE-2013-4247] = "fixed-version: Fixed after version 3.10rc5"
+
+CVE_STATUS[CVE-2013-4254] = "fixed-version: Fixed after version 3.11rc6"
+
+CVE_STATUS[CVE-2013-4270] = "fixed-version: Fixed after version 3.12rc4"
+
+CVE_STATUS[CVE-2013-4299] = "fixed-version: Fixed after version 3.12rc6"
+
+CVE_STATUS[CVE-2013-4300] = "fixed-version: Fixed after version 3.11"
+
+CVE_STATUS[CVE-2013-4312] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2013-4343] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-4345] = "fixed-version: Fixed after version 3.13rc2"
+
+CVE_STATUS[CVE-2013-4348] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-4350] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-4387] = "fixed-version: Fixed after version 3.12rc4"
+
+CVE_STATUS[CVE-2013-4470] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2013-4483] = "fixed-version: Fixed after version 3.10rc1"
+
+CVE_STATUS[CVE-2013-4511] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4512] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4513] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4514] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4515] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4516] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4563] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-4579] = "fixed-version: Fixed after version 3.13rc7"
+
+CVE_STATUS[CVE-2013-4587] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-4588] = "fixed-version: Fixed after version 2.6.33rc4"
+
+CVE_STATUS[CVE-2013-4591] = "fixed-version: Fixed after version 3.8rc1"
+
+CVE_STATUS[CVE-2013-4592] = "fixed-version: Fixed after version 3.7rc1"
+
+# Skipping CVE-2013-4737, no affected_versions
+
+# Skipping CVE-2013-4738, no affected_versions
+
+# Skipping CVE-2013-4739, no affected_versions
+
+CVE_STATUS[CVE-2013-5634] = "fixed-version: Fixed after version 3.10rc5"
+
+CVE_STATUS[CVE-2013-6282] = "fixed-version: Fixed after version 3.6rc6"
+
+CVE_STATUS[CVE-2013-6367] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6368] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6376] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6378] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6380] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6381] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6382] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6383] = "fixed-version: Fixed after version 3.12"
+
+# Skipping CVE-2013-6392, no affected_versions
+
+CVE_STATUS[CVE-2013-6431] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-6432] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6885] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2013-7026] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7027] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2013-7263] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7264] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7265] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7266] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7267] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7268] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7269] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7270] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7271] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7281] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7339] = "fixed-version: Fixed after version 3.13rc7"
+
+CVE_STATUS[CVE-2013-7348] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7421] = "fixed-version: Fixed after version 3.19rc1"
+
+# CVE-2013-7445 has no known resolution
+
+CVE_STATUS[CVE-2013-7446] = "fixed-version: Fixed after version 4.4rc4"
+
+CVE_STATUS[CVE-2013-7470] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2014-0038] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2014-0049] = "fixed-version: Fixed after version 3.14rc5"
+
+CVE_STATUS[CVE-2014-0055] = "fixed-version: Fixed after version 3.14"
+
+CVE_STATUS[CVE-2014-0069] = "fixed-version: Fixed after version 3.14rc4"
+
+CVE_STATUS[CVE-2014-0077] = "fixed-version: Fixed after version 3.14"
+
+CVE_STATUS[CVE-2014-0100] = "fixed-version: Fixed after version 3.14rc7"
+
+CVE_STATUS[CVE-2014-0101] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-0102] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-0131] = "fixed-version: Fixed after version 3.14rc7"
+
+CVE_STATUS[CVE-2014-0155] = "fixed-version: Fixed after version 3.15rc2"
+
+CVE_STATUS[CVE-2014-0181] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2014-0196] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2014-0203] = "fixed-version: Fixed after version 2.6.33rc5"
+
+CVE_STATUS[CVE-2014-0205] = "fixed-version: Fixed after version 2.6.37rc1"
+
+CVE_STATUS[CVE-2014-0206] = "fixed-version: Fixed after version 3.16rc3"
+
+# Skipping CVE-2014-0972, no affected_versions
+
+CVE_STATUS[CVE-2014-1438] = "fixed-version: Fixed after version 3.13"
+
+CVE_STATUS[CVE-2014-1444] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2014-1445] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2014-1446] = "fixed-version: Fixed after version 3.13rc7"
+
+CVE_STATUS[CVE-2014-1690] = "fixed-version: Fixed after version 3.13rc8"
+
+CVE_STATUS[CVE-2014-1737] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2014-1738] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2014-1739] = "fixed-version: Fixed after version 3.15rc6"
+
+CVE_STATUS[CVE-2014-1874] = "fixed-version: Fixed after version 3.14rc2"
+
+CVE_STATUS[CVE-2014-2038] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2014-2039] = "fixed-version: Fixed after version 3.14rc3"
+
+CVE_STATUS[CVE-2014-2309] = "fixed-version: Fixed after version 3.14rc7"
+
+CVE_STATUS[CVE-2014-2523] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2014-2568] = "fixed-version: Fixed after version 3.14"
+
+CVE_STATUS[CVE-2014-2580] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2672] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2673] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2678] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2706] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2739] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2851] = "fixed-version: Fixed after version 3.15rc2"
+
+CVE_STATUS[CVE-2014-2889] = "fixed-version: Fixed after version 3.2rc7"
+
+CVE_STATUS[CVE-2014-3122] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-3144] = "fixed-version: Fixed after version 3.15rc2"
+
+CVE_STATUS[CVE-2014-3145] = "fixed-version: Fixed after version 3.15rc2"
+
+CVE_STATUS[CVE-2014-3153] = "fixed-version: Fixed after version 3.15"
+
+CVE_STATUS[CVE-2014-3180] = "fixed-version: Fixed after version 3.17rc4"
+
+CVE_STATUS[CVE-2014-3181] = "fixed-version: Fixed after version 3.17rc3"
+
+CVE_STATUS[CVE-2014-3182] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3183] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3184] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3185] = "fixed-version: Fixed after version 3.17rc3"
+
+CVE_STATUS[CVE-2014-3186] = "fixed-version: Fixed after version 3.17rc3"
+
+# Skipping CVE-2014-3519, no affected_versions
+
+CVE_STATUS[CVE-2014-3534] = "fixed-version: Fixed after version 3.16rc7"
+
+CVE_STATUS[CVE-2014-3535] = "fixed-version: Fixed after version 2.6.36rc1"
+
+CVE_STATUS[CVE-2014-3601] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3610] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3611] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3631] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-3645] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2014-3646] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3647] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3673] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3687] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3688] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3690] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3917] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-3940] = "fixed-version: Fixed after version 3.15"
+
+CVE_STATUS[CVE-2014-4014] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-4027] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2014-4157] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-4171] = "fixed-version: Fixed after version 3.16rc3"
+
+# Skipping CVE-2014-4322, no affected_versions
+
+# Skipping CVE-2014-4323, no affected_versions
+
+CVE_STATUS[CVE-2014-4508] = "fixed-version: Fixed after version 3.16rc3"
+
+CVE_STATUS[CVE-2014-4608] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-4611] = "fixed-version: Fixed after version 3.16rc3"
+
+CVE_STATUS[CVE-2014-4652] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4653] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4654] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4655] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4656] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4667] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-4699] = "fixed-version: Fixed after version 3.16rc4"
+
+CVE_STATUS[CVE-2014-4943] = "fixed-version: Fixed after version 3.16rc6"
+
+CVE_STATUS[CVE-2014-5045] = "fixed-version: Fixed after version 3.16rc7"
+
+CVE_STATUS[CVE-2014-5077] = "fixed-version: Fixed after version 3.16"
+
+CVE_STATUS[CVE-2014-5206] = "fixed-version: Fixed after version 3.17rc1"
+
+CVE_STATUS[CVE-2014-5207] = "fixed-version: Fixed after version 3.17rc1"
+
+# Skipping CVE-2014-5332, no affected_versions
+
+CVE_STATUS[CVE-2014-5471] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-5472] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-6410] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6416] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6417] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6418] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-7145] = "fixed-version: Fixed after version 3.17rc2"
+
+# Skipping CVE-2014-7207, no affected_versions
+
+CVE_STATUS[CVE-2014-7283] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-7284] = "fixed-version: Fixed after version 3.15rc7"
+
+CVE_STATUS[CVE-2014-7822] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-7825] = "fixed-version: Fixed after version 3.18rc3"
+
+CVE_STATUS[CVE-2014-7826] = "fixed-version: Fixed after version 3.18rc3"
+
+CVE_STATUS[CVE-2014-7841] = "fixed-version: Fixed after version 3.18rc5"
+
+CVE_STATUS[CVE-2014-7842] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-7843] = "fixed-version: Fixed after version 3.18rc5"
+
+CVE_STATUS[CVE-2014-7970] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-7975] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8086] = "fixed-version: Fixed after version 3.18rc3"
+
+CVE_STATUS[CVE-2014-8133] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8134] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8159] = "fixed-version: Fixed after version 4.0rc7"
+
+CVE_STATUS[CVE-2014-8160] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8171] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2014-8172] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2014-8173] = "fixed-version: Fixed after version 3.13rc5"
+
+# Skipping CVE-2014-8181, no affected_versions
+
+CVE_STATUS[CVE-2014-8369] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8480] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8481] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8559] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8709] = "fixed-version: Fixed after version 3.14rc3"
+
+CVE_STATUS[CVE-2014-8884] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8989] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9090] = "fixed-version: Fixed after version 3.18rc6"
+
+CVE_STATUS[CVE-2014-9322] = "fixed-version: Fixed after version 3.18rc6"
+
+CVE_STATUS[CVE-2014-9419] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9420] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9428] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9529] = "fixed-version: Fixed after version 3.19rc4"
+
+CVE_STATUS[CVE-2014-9584] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9585] = "fixed-version: Fixed after version 3.19rc4"
+
+CVE_STATUS[CVE-2014-9644] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9683] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9710] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9715] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-9717] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2014-9728] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9729] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9730] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9731] = "fixed-version: Fixed after version 3.19rc3"
+
+# Skipping CVE-2014-9777, no affected_versions
+
+# Skipping CVE-2014-9778, no affected_versions
+
+# Skipping CVE-2014-9779, no affected_versions
+
+# Skipping CVE-2014-9780, no affected_versions
+
+# Skipping CVE-2014-9781, no affected_versions
+
+# Skipping CVE-2014-9782, no affected_versions
+
+# Skipping CVE-2014-9783, no affected_versions
+
+# Skipping CVE-2014-9784, no affected_versions
+
+# Skipping CVE-2014-9785, no affected_versions
+
+# Skipping CVE-2014-9786, no affected_versions
+
+# Skipping CVE-2014-9787, no affected_versions
+
+# Skipping CVE-2014-9788, no affected_versions
+
+# Skipping CVE-2014-9789, no affected_versions
+
+CVE_STATUS[CVE-2014-9803] = "fixed-version: Fixed after version 3.16rc1"
+
+# Skipping CVE-2014-9863, no affected_versions
+
+# Skipping CVE-2014-9864, no affected_versions
+
+# Skipping CVE-2014-9865, no affected_versions
+
+# Skipping CVE-2014-9866, no affected_versions
+
+# Skipping CVE-2014-9867, no affected_versions
+
+# Skipping CVE-2014-9868, no affected_versions
+
+# Skipping CVE-2014-9869, no affected_versions
+
+CVE_STATUS[CVE-2014-9870] = "fixed-version: Fixed after version 3.11rc1"
+
+# Skipping CVE-2014-9871, no affected_versions
+
+# Skipping CVE-2014-9872, no affected_versions
+
+# Skipping CVE-2014-9873, no affected_versions
+
+# Skipping CVE-2014-9874, no affected_versions
+
+# Skipping CVE-2014-9875, no affected_versions
+
+# Skipping CVE-2014-9876, no affected_versions
+
+# Skipping CVE-2014-9877, no affected_versions
+
+# Skipping CVE-2014-9878, no affected_versions
+
+# Skipping CVE-2014-9879, no affected_versions
+
+# Skipping CVE-2014-9880, no affected_versions
+
+# Skipping CVE-2014-9881, no affected_versions
+
+# Skipping CVE-2014-9882, no affected_versions
+
+# Skipping CVE-2014-9883, no affected_versions
+
+# Skipping CVE-2014-9884, no affected_versions
+
+# Skipping CVE-2014-9885, no affected_versions
+
+# Skipping CVE-2014-9886, no affected_versions
+
+# Skipping CVE-2014-9887, no affected_versions
+
+CVE_STATUS[CVE-2014-9888] = "fixed-version: Fixed after version 3.13rc1"
+
+# Skipping CVE-2014-9889, no affected_versions
+
+# Skipping CVE-2014-9890, no affected_versions
+
+# Skipping CVE-2014-9891, no affected_versions
+
+# Skipping CVE-2014-9892, no affected_versions
+
+# Skipping CVE-2014-9893, no affected_versions
+
+# Skipping CVE-2014-9894, no affected_versions
+
+CVE_STATUS[CVE-2014-9895] = "fixed-version: Fixed after version 3.11rc1"
+
+# Skipping CVE-2014-9896, no affected_versions
+
+# Skipping CVE-2014-9897, no affected_versions
+
+# Skipping CVE-2014-9898, no affected_versions
+
+# Skipping CVE-2014-9899, no affected_versions
+
+# Skipping CVE-2014-9900, no affected_versions
+
+CVE_STATUS[CVE-2014-9903] = "fixed-version: Fixed after version 3.14rc4"
+
+CVE_STATUS[CVE-2014-9904] = "fixed-version: Fixed after version 3.17rc1"
+
+CVE_STATUS[CVE-2014-9914] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-9922] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-9940] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2015-0239] = "fixed-version: Fixed after version 3.19rc6"
+
+CVE_STATUS[CVE-2015-0274] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2015-0275] = "fixed-version: Fixed after version 4.1rc1"
+
+# Skipping CVE-2015-0777, no affected_versions
+
+# Skipping CVE-2015-1328, no affected_versions
+
+CVE_STATUS[CVE-2015-1333] = "fixed-version: Fixed after version 4.2rc5"
+
+CVE_STATUS[CVE-2015-1339] = "fixed-version: Fixed after version 4.4rc5"
+
+CVE_STATUS[CVE-2015-1350] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2015-1420] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-1421] = "fixed-version: Fixed after version 3.19rc7"
+
+CVE_STATUS[CVE-2015-1465] = "fixed-version: Fixed after version 3.19rc7"
+
+CVE_STATUS[CVE-2015-1573] = "fixed-version: Fixed after version 3.19rc5"
+
+CVE_STATUS[CVE-2015-1593] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-1805] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2015-2041] = "fixed-version: Fixed after version 3.19rc7"
+
+CVE_STATUS[CVE-2015-2042] = "fixed-version: Fixed after version 3.19"
+
+CVE_STATUS[CVE-2015-2150] = "fixed-version: Fixed after version 4.0rc4"
+
+CVE_STATUS[CVE-2015-2666] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-2672] = "fixed-version: Fixed after version 4.0rc3"
+
+CVE_STATUS[CVE-2015-2686] = "fixed-version: Fixed after version 4.0rc6"
+
+CVE_STATUS[CVE-2015-2830] = "fixed-version: Fixed after version 4.0rc3"
+
+# CVE-2015-2877 has no known resolution
+
+CVE_STATUS[CVE-2015-2922] = "fixed-version: Fixed after version 4.0rc7"
+
+CVE_STATUS[CVE-2015-2925] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2015-3212] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2015-3214] = "fixed-version: Fixed after version 2.6.33rc8"
+
+CVE_STATUS[CVE-2015-3288] = "fixed-version: Fixed after version 4.2rc2"
+
+CVE_STATUS[CVE-2015-3290] = "fixed-version: Fixed after version 4.2rc3"
+
+CVE_STATUS[CVE-2015-3291] = "fixed-version: Fixed after version 4.2rc3"
+
+CVE_STATUS[CVE-2015-3331] = "fixed-version: Fixed after version 4.0rc5"
+
+# Skipping CVE-2015-3332, no affected_versions
+
+CVE_STATUS[CVE-2015-3339] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-3636] = "fixed-version: Fixed after version 4.1rc2"
+
+CVE_STATUS[CVE-2015-4001] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4002] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4003] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4004] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2015-4036] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-4167] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-4170] = "fixed-version: Fixed after version 3.13rc5"
+
+CVE_STATUS[CVE-2015-4176] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4177] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4178] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4692] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2015-4700] = "fixed-version: Fixed after version 4.1rc6"
+
+CVE_STATUS[CVE-2015-5156] = "fixed-version: Fixed after version 4.2rc7"
+
+CVE_STATUS[CVE-2015-5157] = "fixed-version: Fixed after version 4.2rc3"
+
+CVE_STATUS[CVE-2015-5257] = "fixed-version: Fixed after version 4.3rc3"
+
+CVE_STATUS[CVE-2015-5283] = "fixed-version: Fixed after version 4.3rc3"
+
+CVE_STATUS[CVE-2015-5307] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-5327] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-5364] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-5366] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-5697] = "fixed-version: Fixed after version 4.2rc6"
+
+CVE_STATUS[CVE-2015-5706] = "fixed-version: Fixed after version 4.1rc3"
+
+CVE_STATUS[CVE-2015-5707] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-6252] = "fixed-version: Fixed after version 4.2rc5"
+
+CVE_STATUS[CVE-2015-6526] = "fixed-version: Fixed after version 4.1rc1"
+
+# CVE-2015-6619 has no known resolution
+
+# CVE-2015-6646 has no known resolution
+
+CVE_STATUS[CVE-2015-6937] = "fixed-version: Fixed after version 4.3rc1"
+
+# Skipping CVE-2015-7312, no affected_versions
+
+CVE_STATUS[CVE-2015-7509] = "fixed-version: Fixed after version 3.7rc1"
+
+CVE_STATUS[CVE-2015-7513] = "fixed-version: Fixed after version 4.4rc7"
+
+CVE_STATUS[CVE-2015-7515] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-7550] = "fixed-version: Fixed after version 4.4rc8"
+
+# Skipping CVE-2015-7553, no affected_versions
+
+CVE_STATUS[CVE-2015-7566] = "fixed-version: Fixed after version 4.5rc2"
+
+CVE_STATUS[CVE-2015-7613] = "fixed-version: Fixed after version 4.3rc4"
+
+CVE_STATUS[CVE-2015-7799] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7833] = "fixed-version: Fixed after version 4.6rc6"
+
+# Skipping CVE-2015-7837, no affected_versions
+
+CVE_STATUS[CVE-2015-7872] = "fixed-version: Fixed after version 4.3rc7"
+
+CVE_STATUS[CVE-2015-7884] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7885] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7990] = "fixed-version: Fixed after version 4.4rc4"
+
+# Skipping CVE-2015-8019, no affected_versions
+
+CVE_STATUS[CVE-2015-8104] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8215] = "fixed-version: Fixed after version 4.0rc3"
+
+CVE_STATUS[CVE-2015-8324] = "fixed-version: Fixed after version 2.6.34rc1"
+
+CVE_STATUS[CVE-2015-8374] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8539] = "fixed-version: Fixed after version 4.4rc3"
+
+CVE_STATUS[CVE-2015-8543] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8550] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8551] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8552] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8553] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8569] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8575] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8660] = "fixed-version: Fixed after version 4.4rc4"
+
+CVE_STATUS[CVE-2015-8709] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2015-8746] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2015-8767] = "fixed-version: Fixed after version 4.3rc4"
+
+CVE_STATUS[CVE-2015-8785] = "fixed-version: Fixed after version 4.4rc5"
+
+CVE_STATUS[CVE-2015-8787] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8812] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8816] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8830] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-8839] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8844] = "fixed-version: Fixed after version 4.4rc3"
+
+CVE_STATUS[CVE-2015-8845] = "fixed-version: Fixed after version 4.4rc3"
+
+# Skipping CVE-2015-8937, no affected_versions
+
+# Skipping CVE-2015-8938, no affected_versions
+
+# Skipping CVE-2015-8939, no affected_versions
+
+# Skipping CVE-2015-8940, no affected_versions
+
+# Skipping CVE-2015-8941, no affected_versions
+
+# Skipping CVE-2015-8942, no affected_versions
+
+# Skipping CVE-2015-8943, no affected_versions
+
+# Skipping CVE-2015-8944, no affected_versions
+
+CVE_STATUS[CVE-2015-8950] = "fixed-version: Fixed after version 4.1rc2"
+
+CVE_STATUS[CVE-2015-8952] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2015-8953] = "fixed-version: Fixed after version 4.3"
+
+CVE_STATUS[CVE-2015-8955] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-8956] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2015-8961] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8962] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8963] = "fixed-version: Fixed after version 4.4"
+
+CVE_STATUS[CVE-2015-8964] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8966] = "fixed-version: Fixed after version 4.4rc8"
+
+CVE_STATUS[CVE-2015-8967] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-8970] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2015-9004] = "fixed-version: Fixed after version 3.19rc7"
+
+CVE_STATUS[CVE-2015-9016] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2015-9289] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2016-0617] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-0723] = "fixed-version: Fixed after version 4.5rc2"
+
+CVE_STATUS[CVE-2016-0728] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-0758] = "fixed-version: Fixed after version 4.6"
+
+# Skipping CVE-2016-0774, no affected_versions
+
+CVE_STATUS[CVE-2016-0821] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2016-0823] = "fixed-version: Fixed after version 4.0rc5"
+
+CVE_STATUS[CVE-2016-10044] = "fixed-version: Fixed after version 4.8rc7"
+
+CVE_STATUS[CVE-2016-10088] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10147] = "fixed-version: Fixed after version 4.9"
+
+CVE_STATUS[CVE-2016-10150] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-10153] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10154] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10200] = "fixed-version: Fixed after version 4.9rc7"
+
+CVE_STATUS[CVE-2016-10208] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10229] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-10318] = "fixed-version: Fixed after version 4.8rc6"
+
+CVE_STATUS[CVE-2016-10723] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2016-10741] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10764] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10905] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2016-10906] = "fixed-version: Fixed after version 4.5rc6"
+
+CVE_STATUS[CVE-2016-10907] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2016-1237] = "fixed-version: Fixed after version 4.7rc5"
+
+CVE_STATUS[CVE-2016-1575] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-1576] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-1583] = "fixed-version: Fixed after version 4.7rc3"
+
+CVE_STATUS[CVE-2016-2053] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2016-2069] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2070] = "fixed-version: Fixed after version 4.4"
+
+CVE_STATUS[CVE-2016-2085] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2117] = "fixed-version: Fixed after version 4.6rc5"
+
+CVE_STATUS[CVE-2016-2143] = "fixed-version: Fixed after version 4.5"
+
+CVE_STATUS[CVE-2016-2184] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2185] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2186] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2187] = "fixed-version: Fixed after version 4.6rc5"
+
+CVE_STATUS[CVE-2016-2188] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2016-2383] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2384] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2543] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2544] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2545] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2546] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2547] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2548] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2549] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2550] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2782] = "fixed-version: Fixed after version 4.5rc2"
+
+CVE_STATUS[CVE-2016-2847] = "fixed-version: Fixed after version 4.5rc1"
+
+# Skipping CVE-2016-2853, no affected_versions
+
+# Skipping CVE-2016-2854, no affected_versions
+
+CVE_STATUS[CVE-2016-3044] = "fixed-version: Fixed after version 4.5"
+
+CVE_STATUS[CVE-2016-3070] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2016-3134] = "fixed-version: Fixed after version 4.6rc2"
+
+CVE_STATUS[CVE-2016-3135] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3136] = "fixed-version: Fixed after version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3137] = "fixed-version: Fixed after version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3138] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3139] = "fixed-version: Fixed after version 3.17rc1"
+
+CVE_STATUS[CVE-2016-3140] = "fixed-version: Fixed after version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3156] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3157] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3672] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3689] = "fixed-version: Fixed after version 4.6rc1"
+
+# Skipping CVE-2016-3695, no affected_versions
+
+# Skipping CVE-2016-3699, no affected_versions
+
+# Skipping CVE-2016-3707, no affected_versions
+
+CVE_STATUS[CVE-2016-3713] = "fixed-version: Fixed after version 4.7rc1"
+
+# CVE-2016-3775 has no known resolution
+
+# CVE-2016-3802 has no known resolution
+
+# CVE-2016-3803 has no known resolution
+
+CVE_STATUS[CVE-2016-3841] = "fixed-version: Fixed after version 4.4rc4"
+
+CVE_STATUS[CVE-2016-3857] = "fixed-version: Fixed after version 4.8rc2"
+
+CVE_STATUS[CVE-2016-3951] = "fixed-version: Fixed after version 4.5"
+
+CVE_STATUS[CVE-2016-3955] = "fixed-version: Fixed after version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3961] = "fixed-version: Fixed after version 4.6rc5"
+
+CVE_STATUS[CVE-2016-4440] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4470] = "fixed-version: Fixed after version 4.7rc4"
+
+CVE_STATUS[CVE-2016-4482] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4485] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-4486] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-4557] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4558] = "fixed-version: Fixed after version 4.6rc7"
+
+CVE_STATUS[CVE-2016-4565] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4568] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4569] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4578] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4580] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-4581] = "fixed-version: Fixed after version 4.6rc7"
+
+CVE_STATUS[CVE-2016-4794] = "fixed-version: Fixed after version 4.7rc4"
+
+CVE_STATUS[CVE-2016-4805] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-4913] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-4951] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4997] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4998] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-5195] = "fixed-version: Fixed after version 4.9rc2"
+
+CVE_STATUS[CVE-2016-5243] = "fixed-version: Fixed after version 4.7rc3"
+
+CVE_STATUS[CVE-2016-5244] = "fixed-version: Fixed after version 4.7rc3"
+
+# Skipping CVE-2016-5340, no affected_versions
+
+# Skipping CVE-2016-5342, no affected_versions
+
+# Skipping CVE-2016-5343, no affected_versions
+
+# Skipping CVE-2016-5344, no affected_versions
+
+CVE_STATUS[CVE-2016-5400] = "fixed-version: Fixed after version 4.7"
+
+CVE_STATUS[CVE-2016-5412] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2016-5696] = "fixed-version: Fixed after version 4.7"
+
+CVE_STATUS[CVE-2016-5728] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-5828] = "fixed-version: Fixed after version 4.7rc6"
+
+CVE_STATUS[CVE-2016-5829] = "fixed-version: Fixed after version 4.7rc5"
+
+# CVE-2016-5870 has no known resolution
+
+CVE_STATUS[CVE-2016-6130] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2016-6136] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2016-6156] = "fixed-version: Fixed after version 4.7rc7"
+
+CVE_STATUS[CVE-2016-6162] = "fixed-version: Fixed after version 4.7"
+
+CVE_STATUS[CVE-2016-6187] = "fixed-version: Fixed after version 4.7rc7"
+
+CVE_STATUS[CVE-2016-6197] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-6198] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-6213] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2016-6327] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-6480] = "fixed-version: Fixed after version 4.8rc3"
+
+CVE_STATUS[CVE-2016-6516] = "fixed-version: Fixed after version 4.8rc1"
+
+# Skipping CVE-2016-6753, no affected_versions
+
+CVE_STATUS[CVE-2016-6786] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2016-6787] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2016-6828] = "fixed-version: Fixed after version 4.8rc5"
+
+CVE_STATUS[CVE-2016-7039] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-7042] = "fixed-version: Fixed after version 4.9rc3"
+
+CVE_STATUS[CVE-2016-7097] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2016-7117] = "fixed-version: Fixed after version 4.6rc1"
+
+# Skipping CVE-2016-7118, no affected_versions
+
+CVE_STATUS[CVE-2016-7425] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2016-7910] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2016-7911] = "fixed-version: Fixed after version 4.7rc7"
+
+CVE_STATUS[CVE-2016-7912] = "fixed-version: Fixed after version 4.6rc5"
+
+CVE_STATUS[CVE-2016-7913] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-7914] = "fixed-version: Fixed after version 4.6rc4"
+
+CVE_STATUS[CVE-2016-7915] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-7916] = "fixed-version: Fixed after version 4.6rc7"
+
+CVE_STATUS[CVE-2016-7917] = "fixed-version: Fixed after version 4.5rc6"
+
+CVE_STATUS[CVE-2016-8399] = "fixed-version: Fixed after version 4.9"
+
+# Skipping CVE-2016-8401, no affected_versions
+
+# Skipping CVE-2016-8402, no affected_versions
+
+# Skipping CVE-2016-8403, no affected_versions
+
+# Skipping CVE-2016-8404, no affected_versions
+
+CVE_STATUS[CVE-2016-8405] = "fixed-version: Fixed after version 4.10rc6"
+
+# Skipping CVE-2016-8406, no affected_versions
+
+# Skipping CVE-2016-8407, no affected_versions
+
+CVE_STATUS[CVE-2016-8630] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-8632] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-8633] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-8636] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2016-8645] = "fixed-version: Fixed after version 4.9rc6"
+
+CVE_STATUS[CVE-2016-8646] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2016-8650] = "fixed-version: Fixed after version 4.9rc7"
+
+CVE_STATUS[CVE-2016-8655] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-8658] = "fixed-version: Fixed after version 4.8rc7"
+
+# CVE-2016-8660 has no known resolution
+
+CVE_STATUS[CVE-2016-8666] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9083] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9084] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9120] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9178] = "fixed-version: Fixed after version 4.8rc7"
+
+CVE_STATUS[CVE-2016-9191] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2016-9313] = "fixed-version: Fixed after version 4.9rc3"
+
+CVE_STATUS[CVE-2016-9555] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9576] = "fixed-version: Fixed after version 4.9"
+
+CVE_STATUS[CVE-2016-9588] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-9604] = "fixed-version: Fixed after version 4.11rc8"
+
+# Skipping CVE-2016-9644, no affected_versions
+
+CVE_STATUS[CVE-2016-9685] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9754] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9755] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-9756] = "fixed-version: Fixed after version 4.9rc7"
+
+CVE_STATUS[CVE-2016-9777] = "fixed-version: Fixed after version 4.9rc7"
+
+CVE_STATUS[CVE-2016-9793] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-9794] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9806] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9919] = "fixed-version: Fixed after version 4.9rc8"
+
+# Skipping CVE-2017-0403, no affected_versions
+
+# Skipping CVE-2017-0404, no affected_versions
+
+# Skipping CVE-2017-0426, no affected_versions
+
+# Skipping CVE-2017-0427, no affected_versions
+
+# CVE-2017-0507 has no known resolution
+
+# CVE-2017-0508 has no known resolution
+
+# Skipping CVE-2017-0510, no affected_versions
+
+# Skipping CVE-2017-0528, no affected_versions
+
+# Skipping CVE-2017-0537, no affected_versions
+
+# CVE-2017-0564 has no known resolution
+
+CVE_STATUS[CVE-2017-0605] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-0627] = "fixed-version: Fixed after version 4.14rc1"
+
+# CVE-2017-0630 has no known resolution
+
+# CVE-2017-0749 has no known resolution
+
+CVE_STATUS[CVE-2017-0750] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2017-0786] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-0861] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2017-1000] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000111] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000112] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000251] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-1000252] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-1000253] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2017-1000255] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-1000363] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-1000364] = "fixed-version: Fixed after version 4.12rc6"
+
+CVE_STATUS[CVE-2017-1000365] = "fixed-version: Fixed after version 4.12rc7"
+
+CVE_STATUS[CVE-2017-1000370] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-1000371] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-1000379] = "fixed-version: Fixed after version 4.12rc6"
+
+CVE_STATUS[CVE-2017-1000380] = "fixed-version: Fixed after version 4.12rc5"
+
+CVE_STATUS[CVE-2017-1000405] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2017-1000407] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2017-1000410] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2017-10661] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-10662] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-10663] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-10810] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-10911] = "fixed-version: Fixed after version 4.12rc7"
+
+CVE_STATUS[CVE-2017-11089] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-11176] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-11472] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-11473] = "fixed-version: Fixed after version 4.13rc2"
+
+CVE_STATUS[CVE-2017-11600] = "fixed-version: Fixed after version 4.13"
+
+CVE_STATUS[CVE-2017-12134] = "fixed-version: Fixed after version 4.13rc6"
+
+CVE_STATUS[CVE-2017-12146] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-12153] = "fixed-version: Fixed after version 4.14rc2"
+
+CVE_STATUS[CVE-2017-12154] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-12168] = "fixed-version: Fixed after version 4.9rc6"
+
+CVE_STATUS[CVE-2017-12188] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-12190] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-12192] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-12193] = "fixed-version: Fixed after version 4.14rc7"
+
+CVE_STATUS[CVE-2017-12762] = "fixed-version: Fixed after version 4.13rc4"
+
+CVE_STATUS[CVE-2017-13080] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-13166] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-13167] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2017-13168] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2017-13215] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2017-13216] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2017-13220] = "fixed-version: Fixed after version 3.19rc3"
+
+# CVE-2017-13221 has no known resolution
+
+# CVE-2017-13222 has no known resolution
+
+CVE_STATUS[CVE-2017-13305] = "fixed-version: Fixed after version 4.12rc5"
+
+CVE_STATUS[CVE-2017-13686] = "fixed-version: Fixed after version 4.13rc7"
+
+# CVE-2017-13693 has no known resolution
+
+# CVE-2017-13694 has no known resolution
+
+CVE_STATUS[CVE-2017-13695] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2017-13715] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2017-14051] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14106] = "fixed-version: Fixed after version 4.12rc3"
+
+CVE_STATUS[CVE-2017-14140] = "fixed-version: Fixed after version 4.13rc6"
+
+CVE_STATUS[CVE-2017-14156] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14340] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14489] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-14497] = "fixed-version: Fixed after version 4.13"
+
+CVE_STATUS[CVE-2017-14954] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-14991] = "fixed-version: Fixed after version 4.14rc2"
+
+CVE_STATUS[CVE-2017-15102] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2017-15115] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-15116] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2017-15121] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2017-15126] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-15127] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2017-15128] = "fixed-version: Fixed after version 4.14rc8"
+
+CVE_STATUS[CVE-2017-15129] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-15265] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-15274] = "fixed-version: Fixed after version 4.12rc5"
+
+CVE_STATUS[CVE-2017-15299] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-15306] = "fixed-version: Fixed after version 4.14rc7"
+
+CVE_STATUS[CVE-2017-15537] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-15649] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-15868] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2017-15951] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16525] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16526] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16527] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16528] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-16529] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16530] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16531] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16532] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16533] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16534] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16535] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16536] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16537] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16538] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-16643] = "fixed-version: Fixed after version 4.14rc7"
+
+CVE_STATUS[CVE-2017-16644] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-16645] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16646] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16647] = "fixed-version: Fixed after version 4.14"
+
+CVE_STATUS[CVE-2017-16648] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16649] = "fixed-version: Fixed after version 4.14"
+
+CVE_STATUS[CVE-2017-16650] = "fixed-version: Fixed after version 4.14"
+
+CVE_STATUS[CVE-2017-16911] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16912] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16913] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16914] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16939] = "fixed-version: Fixed after version 4.14rc7"
+
+CVE_STATUS[CVE-2017-16994] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16995] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-16996] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17052] = "fixed-version: Fixed after version 4.13rc7"
+
+CVE_STATUS[CVE-2017-17053] = "fixed-version: Fixed after version 4.13rc7"
+
+CVE_STATUS[CVE-2017-17448] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17449] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17450] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17558] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17712] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17741] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17805] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17806] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17807] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2017-17852] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17853] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17854] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17855] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17856] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17857] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17862] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-17863] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17864] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17975] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2017-18017] = "fixed-version: Fixed after version 4.11rc7"
+
+CVE_STATUS[CVE-2017-18075] = "fixed-version: Fixed after version 4.15rc7"
+
+CVE_STATUS[CVE-2017-18079] = "fixed-version: Fixed after version 4.13rc1"
+
+# CVE-2017-18169 has no known resolution
+
+CVE_STATUS[CVE-2017-18174] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2017-18193] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18200] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-18202] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2017-18203] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18204] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18208] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2017-18216] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18218] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18221] = "fixed-version: Fixed after version 4.12rc4"
+
+CVE_STATUS[CVE-2017-18222] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-18224] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18232] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-18241] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18249] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-18255] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18257] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18261] = "fixed-version: Fixed after version 4.13rc6"
+
+CVE_STATUS[CVE-2017-18270] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-18344] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-18360] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-18379] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-18509] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18549] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18550] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18551] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2017-18552] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18595] = "fixed-version: Fixed after version 4.15rc6"
+
+CVE_STATUS[CVE-2017-2583] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-2584] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-2596] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-2618] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-2634] = "fixed-version: Fixed after version 2.6.25rc1"
+
+CVE_STATUS[CVE-2017-2636] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-2647] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2017-2671] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-5123] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-5546] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5547] = "fixed-version: Fixed after version 4.10rc5"
+
+CVE_STATUS[CVE-2017-5548] = "fixed-version: Fixed after version 4.10rc5"
+
+CVE_STATUS[CVE-2017-5549] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5550] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5551] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5576] = "fixed-version: Fixed after version 4.10rc6"
+
+CVE_STATUS[CVE-2017-5577] = "fixed-version: Fixed after version 4.10rc6"
+
+CVE_STATUS[CVE-2017-5669] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-5715] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2017-5753] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2017-5754] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-5897] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-5967] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-5970] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-5972] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2017-5986] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-6001] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-6074] = "fixed-version: Fixed after version 4.10"
+
+CVE_STATUS[CVE-2017-6214] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-6345] = "fixed-version: Fixed after version 4.10"
+
+CVE_STATUS[CVE-2017-6346] = "fixed-version: Fixed after version 4.10"
+
+CVE_STATUS[CVE-2017-6347] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-6348] = "fixed-version: Fixed after version 4.10"
+
+CVE_STATUS[CVE-2017-6353] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-6874] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-6951] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2017-7184] = "fixed-version: Fixed after version 4.11rc5"
+
+CVE_STATUS[CVE-2017-7187] = "fixed-version: Fixed after version 4.11rc5"
+
+CVE_STATUS[CVE-2017-7261] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7273] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-7277] = "fixed-version: Fixed after version 4.11rc4"
+
+CVE_STATUS[CVE-2017-7294] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7308] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7346] = "fixed-version: Fixed after version 4.12rc5"
+
+# CVE-2017-7369 has no known resolution
+
+CVE_STATUS[CVE-2017-7374] = "fixed-version: Fixed after version 4.11rc4"
+
+CVE_STATUS[CVE-2017-7472] = "fixed-version: Fixed after version 4.11rc8"
+
+CVE_STATUS[CVE-2017-7477] = "fixed-version: Fixed after version 4.11"
+
+CVE_STATUS[CVE-2017-7482] = "fixed-version: Fixed after version 4.12rc7"
+
+CVE_STATUS[CVE-2017-7487] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-7495] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2017-7518] = "fixed-version: Fixed after version 4.12rc7"
+
+CVE_STATUS[CVE-2017-7533] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-7541] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-7542] = "fixed-version: Fixed after version 4.13rc2"
+
+CVE_STATUS[CVE-2017-7558] = "fixed-version: Fixed after version 4.13"
+
+CVE_STATUS[CVE-2017-7616] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7618] = "fixed-version: Fixed after version 4.11rc8"
+
+CVE_STATUS[CVE-2017-7645] = "fixed-version: Fixed after version 4.11"
+
+CVE_STATUS[CVE-2017-7889] = "fixed-version: Fixed after version 4.11rc7"
+
+CVE_STATUS[CVE-2017-7895] = "fixed-version: Fixed after version 4.11"
+
+CVE_STATUS[CVE-2017-7979] = "fixed-version: Fixed after version 4.11rc8"
+
+CVE_STATUS[CVE-2017-8061] = "fixed-version: Fixed after version 4.11rc4"
+
+CVE_STATUS[CVE-2017-8062] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-8063] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8064] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8065] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8066] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8067] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8068] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8069] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8070] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8071] = "fixed-version: Fixed after version 4.10rc7"
+
+CVE_STATUS[CVE-2017-8072] = "fixed-version: Fixed after version 4.10rc7"
+
+CVE_STATUS[CVE-2017-8106] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2017-8240] = "fixed-version: Fixed after version 3.19rc6"
+
+# CVE-2017-8242 has no known resolution
+
+# CVE-2017-8244 has no known resolution
+
+# CVE-2017-8245 has no known resolution
+
+# CVE-2017-8246 has no known resolution
+
+CVE_STATUS[CVE-2017-8797] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-8824] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2017-8831] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-8890] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-8924] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-8925] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-9059] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-9074] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9075] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9076] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9077] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9150] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-9211] = "fixed-version: Fixed after version 4.12rc3"
+
+CVE_STATUS[CVE-2017-9242] = "fixed-version: Fixed after version 4.12rc3"
+
+CVE_STATUS[CVE-2017-9605] = "fixed-version: Fixed after version 4.12rc5"
+
+CVE_STATUS[CVE-2017-9725] = "fixed-version: Fixed after version 4.3rc7"
+
+CVE_STATUS[CVE-2017-9984] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-9985] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-9986] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2018-1000004] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2018-1000026] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-1000028] = "fixed-version: Fixed after version 4.15"
+
+CVE_STATUS[CVE-2018-1000199] = "fixed-version: Fixed after version 4.16"
+
+CVE_STATUS[CVE-2018-1000200] = "fixed-version: Fixed after version 4.17rc5"
+
+CVE_STATUS[CVE-2018-1000204] = "fixed-version: Fixed after version 4.17rc7"
+
+CVE_STATUS[CVE-2018-10021] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-10074] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-10087] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2018-10124] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2018-10322] = "fixed-version: Fixed after version 4.17rc4"
+
+CVE_STATUS[CVE-2018-10323] = "fixed-version: Fixed after version 4.17rc4"
+
+CVE_STATUS[CVE-2018-1065] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2018-1066] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2018-10675] = "fixed-version: Fixed after version 4.13rc6"
+
+CVE_STATUS[CVE-2018-1068] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2018-10840] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-10853] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-1087] = "fixed-version: Fixed after version 4.16rc7"
+
+# CVE-2018-10872 has no known resolution
+
+CVE_STATUS[CVE-2018-10876] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10877] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10878] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10879] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10880] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10881] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10882] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10883] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10901] = "fixed-version: Fixed after version 2.6.36rc1"
+
+CVE_STATUS[CVE-2018-10902] = "fixed-version: Fixed after version 4.18rc6"
+
+CVE_STATUS[CVE-2018-1091] = "fixed-version: Fixed after version 4.14rc2"
+
+CVE_STATUS[CVE-2018-1092] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-1093] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-10938] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2018-1094] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-10940] = "fixed-version: Fixed after version 4.17rc3"
+
+CVE_STATUS[CVE-2018-1095] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-1108] = "fixed-version: Fixed after version 4.17rc2"
+
+CVE_STATUS[CVE-2018-1118] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-1120] = "fixed-version: Fixed after version 4.17rc6"
+
+# CVE-2018-1121 has no known resolution
+
+CVE_STATUS[CVE-2018-11232] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2018-1128] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-1129] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-1130] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-11412] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-11506] = "fixed-version: Fixed after version 4.17rc7"
+
+CVE_STATUS[CVE-2018-11508] = "fixed-version: Fixed after version 4.17rc5"
+
+# CVE-2018-11987 has no known resolution
+
+CVE_STATUS[CVE-2018-12126] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12127] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12130] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12207] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2018-12232] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-12233] = "fixed-version: Fixed after version 4.18rc2"
+
+CVE_STATUS[CVE-2018-12633] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-12714] = "fixed-version: Fixed after version 4.18rc2"
+
+CVE_STATUS[CVE-2018-12896] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-12904] = "fixed-version: Fixed after version 4.18rc1"
+
+# CVE-2018-12928 has no known resolution
+
+# CVE-2018-12929 has no known resolution
+
+# CVE-2018-12930 has no known resolution
+
+# CVE-2018-12931 has no known resolution
+
+CVE_STATUS[CVE-2018-13053] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13093] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-13094] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-13095] = "fixed-version: Fixed after version 4.18rc3"
+
+CVE_STATUS[CVE-2018-13096] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13097] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13098] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13099] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13100] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13405] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-13406] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-14609] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14610] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14611] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14612] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14613] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14614] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14615] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14616] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14617] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14619] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2018-14625] = "fixed-version: Fixed after version 4.20rc6"
+
+CVE_STATUS[CVE-2018-14633] = "fixed-version: Fixed after version 4.19rc6"
+
+CVE_STATUS[CVE-2018-14634] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2018-14641] = "fixed-version: Fixed after version 4.19rc4"
+
+CVE_STATUS[CVE-2018-14646] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2018-14656] = "fixed-version: Fixed after version 4.19rc2"
+
+CVE_STATUS[CVE-2018-14678] = "fixed-version: Fixed after version 4.18rc8"
+
+CVE_STATUS[CVE-2018-14734] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-15471] = "fixed-version: Fixed after version 4.19rc7"
+
+CVE_STATUS[CVE-2018-15572] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-15594] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-16276] = "fixed-version: Fixed after version 4.18rc5"
+
+CVE_STATUS[CVE-2018-16597] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2018-16658] = "fixed-version: Fixed after version 4.19rc2"
+
+CVE_STATUS[CVE-2018-16862] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2018-16871] = "fixed-version: Fixed after version 4.20rc3"
+
+CVE_STATUS[CVE-2018-16880] = "fixed-version: Fixed after version 5.0rc5"
+
+CVE_STATUS[CVE-2018-16882] = "fixed-version: Fixed after version 4.20"
+
+CVE_STATUS[CVE-2018-16884] = "fixed-version: Fixed after version 5.0rc1"
+
+# CVE-2018-16885 has no known resolution
+
+CVE_STATUS[CVE-2018-17182] = "fixed-version: Fixed after version 4.19rc4"
+
+CVE_STATUS[CVE-2018-17972] = "fixed-version: Fixed after version 4.19rc7"
+
+# CVE-2018-17977 has no known resolution
+
+CVE_STATUS[CVE-2018-18021] = "fixed-version: Fixed after version 4.19rc7"
+
+CVE_STATUS[CVE-2018-18281] = "fixed-version: Fixed after version 4.19"
+
+CVE_STATUS[CVE-2018-18386] = "fixed-version: Fixed after version 4.15rc6"
+
+CVE_STATUS[CVE-2018-18397] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2018-18445] = "fixed-version: Fixed after version 4.19rc7"
+
+CVE_STATUS[CVE-2018-18559] = "fixed-version: Fixed after version 4.15rc2"
+
+# CVE-2018-18653 has no known resolution
+
+CVE_STATUS[CVE-2018-18690] = "fixed-version: Fixed after version 4.17rc4"
+
+CVE_STATUS[CVE-2018-18710] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2018-18955] = "fixed-version: Fixed after version 4.20rc2"
+
+CVE_STATUS[CVE-2018-19406] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2018-19407] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2018-19824] = "fixed-version: Fixed after version 4.20rc6"
+
+CVE_STATUS[CVE-2018-19854] = "fixed-version: Fixed after version 4.20rc3"
+
+CVE_STATUS[CVE-2018-19985] = "fixed-version: Fixed after version 4.20"
+
+CVE_STATUS[CVE-2018-20169] = "fixed-version: Fixed after version 4.20rc6"
+
+CVE_STATUS[CVE-2018-20449] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-20509] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2018-20510] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2018-20511] = "fixed-version: Fixed after version 4.19rc5"
+
+CVE_STATUS[CVE-2018-20669] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2018-20784] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2018-20836] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2018-20854] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2018-20855] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-20856] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-20961] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-20976] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-21008] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-25015] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2018-25020] = "fixed-version: Fixed after version 4.17rc7"
+
+# CVE-2018-3574 has no known resolution
+
+CVE_STATUS[CVE-2018-3620] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-3639] = "fixed-version: Fixed after version 4.17rc7"
+
+CVE_STATUS[CVE-2018-3646] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-3665] = "fixed-version: Fixed after version 3.7rc1"
+
+CVE_STATUS[CVE-2018-3693] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-5332] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5333] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5344] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5390] = "fixed-version: Fixed after version 4.18rc7"
+
+CVE_STATUS[CVE-2018-5391] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-5703] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2018-5750] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-5803] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-5814] = "fixed-version: Fixed after version 4.17rc6"
+
+CVE_STATUS[CVE-2018-5848] = "fixed-version: Fixed after version 4.16rc1"
+
+# Skipping CVE-2018-5856, no affected_versions
+
+CVE_STATUS[CVE-2018-5873] = "fixed-version: Fixed after version 4.11rc8"
+
+CVE_STATUS[CVE-2018-5953] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-5995] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-6412] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2018-6554] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-6555] = "fixed-version: Fixed after version 4.17rc1"
+
+# CVE-2018-6559 has no known resolution
+
+CVE_STATUS[CVE-2018-6927] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2018-7191] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2018-7273] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-7480] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2018-7492] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2018-7566] = "fixed-version: Fixed after version 4.16rc2"
+
+CVE_STATUS[CVE-2018-7740] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-7754] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-7755] = "fixed-version: Fixed after version 4.19rc5"
+
+CVE_STATUS[CVE-2018-7757] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-7995] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2018-8043] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-8087] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-8781] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-8822] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-8897] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-9363] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-9385] = "fixed-version: Fixed after version 4.17rc3"
+
+CVE_STATUS[CVE-2018-9415] = "fixed-version: Fixed after version 4.17rc3"
+
+CVE_STATUS[CVE-2018-9422] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2018-9465] = "fixed-version: Fixed after version 4.15rc6"
+
+CVE_STATUS[CVE-2018-9516] = "fixed-version: Fixed after version 4.18rc5"
+
+CVE_STATUS[CVE-2018-9517] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2018-9518] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2018-9568] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2019-0136] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-0145] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0146] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0147] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0148] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0149] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-0154] = "fixed-version: Fixed after version 5.4rc8"
+
+CVE_STATUS[CVE-2019-0155] = "fixed-version: Fixed after version 5.4rc8"
+
+CVE_STATUS[CVE-2019-10124] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-10125] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-10126] = "fixed-version: Fixed after version 5.2rc6"
+
+# CVE-2019-10140 has no known resolution
+
+CVE_STATUS[CVE-2019-10142] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-10207] = "fixed-version: Fixed after version 5.3rc3"
+
+CVE_STATUS[CVE-2019-10220] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-10638] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-10639] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11085] = "fixed-version: Fixed after version 5.0rc3"
+
+CVE_STATUS[CVE-2019-11091] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-11135] = "fixed-version: Fixed after version 5.4rc8"
+
+CVE_STATUS[CVE-2019-11190] = "fixed-version: Fixed after version 4.8rc5"
+
+CVE_STATUS[CVE-2019-11191] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-1125] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-11477] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11478] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11479] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11486] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11487] = "fixed-version: Fixed after version 5.1rc5"
+
+CVE_STATUS[CVE-2019-11599] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-11683] = "fixed-version: Fixed after version 5.1"
+
+CVE_STATUS[CVE-2019-11810] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-11811] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-11815] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11833] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-11884] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-12378] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12379] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12380] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12381] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12382] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12454] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12455] = "fixed-version: Fixed after version 5.3rc1"
+
+# CVE-2019-12456 has no known resolution
+
+CVE_STATUS[CVE-2019-12614] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12615] = "fixed-version: Fixed after version 5.2rc4"
+
+CVE_STATUS[CVE-2019-12817] = "fixed-version: Fixed after version 5.2rc7"
+
+CVE_STATUS[CVE-2019-12818] = "fixed-version: Fixed after version 5.0"
+
+CVE_STATUS[CVE-2019-12819] = "fixed-version: Fixed after version 5.0rc8"
+
+CVE_STATUS[CVE-2019-12881] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2019-12984] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-13233] = "fixed-version: Fixed after version 5.2rc4"
+
+CVE_STATUS[CVE-2019-13272] = "fixed-version: Fixed after version 5.2"
+
+CVE_STATUS[CVE-2019-13631] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-13648] = "fixed-version: Fixed after version 5.3rc2"
+
+CVE_STATUS[CVE-2019-14283] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-14284] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-14615] = "fixed-version: Fixed after version 5.5rc7"
+
+CVE_STATUS[CVE-2019-14763] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2019-14814] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-14815] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-14816] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-14821] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-14835] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-14895] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-14896] = "fixed-version: Fixed after version 5.5"
+
+CVE_STATUS[CVE-2019-14897] = "fixed-version: Fixed after version 5.5"
+
+# CVE-2019-14898 has no known resolution
+
+CVE_STATUS[CVE-2019-14901] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-15030] = "fixed-version: Fixed after version 5.3rc8"
+
+CVE_STATUS[CVE-2019-15031] = "fixed-version: Fixed after version 5.3rc8"
+
+CVE_STATUS[CVE-2019-15090] = "fixed-version: Fixed after version 5.2rc2"
+
+CVE_STATUS[CVE-2019-15098] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-15099] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-15117] = "fixed-version: Fixed after version 5.3rc5"
+
+CVE_STATUS[CVE-2019-15118] = "fixed-version: Fixed after version 5.3rc5"
+
+CVE_STATUS[CVE-2019-15211] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15212] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15213] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15214] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15215] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15216] = "fixed-version: Fixed after version 5.1"
+
+CVE_STATUS[CVE-2019-15217] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15218] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15219] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15220] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15221] = "fixed-version: Fixed after version 5.2"
+
+CVE_STATUS[CVE-2019-15222] = "fixed-version: Fixed after version 5.3rc3"
+
+CVE_STATUS[CVE-2019-15223] = "fixed-version: Fixed after version 5.2rc3"
+
+# CVE-2019-15239 has no known resolution
+
+# CVE-2019-15290 has no known resolution
+
+CVE_STATUS[CVE-2019-15291] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-15292] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15504] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-15505] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-15538] = "fixed-version: Fixed after version 5.3rc6"
+
+CVE_STATUS[CVE-2019-15666] = "fixed-version: Fixed after version 5.1"
+
+# CVE-2019-15791 has no known resolution
+
+# CVE-2019-15792 has no known resolution
+
+# CVE-2019-15793 has no known resolution
+
+CVE_STATUS[CVE-2019-15794] = "fixed-version: Fixed after version 5.12"
+
+CVE_STATUS[CVE-2019-15807] = "fixed-version: Fixed after version 5.2rc3"
+
+# CVE-2019-15902 has no known resolution
+
+CVE_STATUS[CVE-2019-15916] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15917] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15918] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15919] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15920] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15921] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-15922] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15923] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15924] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15925] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15926] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15927] = "fixed-version: Fixed after version 5.0rc2"
+
+# CVE-2019-16089 has no known resolution
+
+CVE_STATUS[CVE-2019-16229] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16230] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16231] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-16232] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16233] = "fixed-version: Fixed after version 5.4rc5"
+
+CVE_STATUS[CVE-2019-16234] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-16413] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-16714] = "fixed-version: Fixed after version 5.3rc7"
+
+CVE_STATUS[CVE-2019-16746] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-16921] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2019-16994] = "fixed-version: Fixed after version 5.0"
+
+CVE_STATUS[CVE-2019-16995] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-17052] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17053] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17054] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17055] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17056] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17075] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-17133] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-17351] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-17666] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18198] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-18282] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18660] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18675] = "fixed-version: Fixed after version 4.17rc5"
+
+# CVE-2019-18680 has no known resolution
+
+CVE_STATUS[CVE-2019-18683] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18786] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18805] = "fixed-version: Fixed after version 5.1rc7"
+
+CVE_STATUS[CVE-2019-18806] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18807] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18808] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18809] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18810] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18811] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-18812] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-18813] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18814] = "fixed-version: Fixed after version 5.7rc7"
+
+CVE_STATUS[CVE-2019-18885] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-19036] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19037] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-19039] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2019-19043] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19044] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19045] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19046] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19047] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19048] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19049] = "fixed-version: Fixed after version 5.4rc5"
+
+CVE_STATUS[CVE-2019-19050] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19051] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19052] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19053] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19054] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19055] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19056] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19057] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19058] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19059] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19060] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19061] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19062] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19063] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19064] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19065] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19066] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19067] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19068] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19069] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19070] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19071] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19072] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19073] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19074] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19075] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19076] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19077] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19078] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19079] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-19080] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19081] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19082] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19083] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19227] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-19241] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19252] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19318] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19319] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19332] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19338] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19377] = "fixed-version: Fixed after version 5.7rc1"
+
+# CVE-2019-19378 has no known resolution
+
+CVE_STATUS[CVE-2019-19447] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19448] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2019-19449] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2019-19462] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2019-19523] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19524] = "fixed-version: Fixed after version 5.4rc8"
+
+CVE_STATUS[CVE-2019-19525] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19526] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19527] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19528] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19529] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19530] = "fixed-version: Fixed after version 5.3rc5"
+
+CVE_STATUS[CVE-2019-19531] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19532] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19533] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19534] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19535] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19536] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19537] = "fixed-version: Fixed after version 5.3rc5"
+
+CVE_STATUS[CVE-2019-19543] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19602] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19767] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19768] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2019-19769] = "fixed-version: Fixed after version 5.6rc5"
+
+CVE_STATUS[CVE-2019-19770] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2019-19807] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19813] = "fixed-version: Fixed after version 5.2rc1"
+
+# CVE-2019-19814 has no known resolution
+
+CVE_STATUS[CVE-2019-19815] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-19816] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19922] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19927] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-19947] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-19965] = "fixed-version: Fixed after version 5.5rc2"
+
+CVE_STATUS[CVE-2019-19966] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-1999] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20054] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20095] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-20096] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-2024] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2019-2025] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2019-20422] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-2054] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2019-20636] = "fixed-version: Fixed after version 5.5rc6"
+
+# CVE-2019-20794 has no known resolution
+
+CVE_STATUS[CVE-2019-20806] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-20810] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2019-20811] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20812] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-20908] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-20934] = "fixed-version: Fixed after version 5.3rc2"
+
+CVE_STATUS[CVE-2019-2101] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-2181] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-2182] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2019-2213] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-2214] = "fixed-version: Fixed after version 5.3rc2"
+
+CVE_STATUS[CVE-2019-2215] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2019-25044] = "fixed-version: Fixed after version 5.2rc4"
+
+CVE_STATUS[CVE-2019-25045] = "fixed-version: Fixed after version 5.1"
+
+CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2019-3459] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-3460] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-3701] = "fixed-version: Fixed after version 5.0rc3"
+
+CVE_STATUS[CVE-2019-3819] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-3837] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2019-3846] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-3874] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-3882] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-3887] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-3892] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-3896] = "fixed-version: Fixed after version 2.6.35rc1"
+
+CVE_STATUS[CVE-2019-3900] = "fixed-version: Fixed after version 5.2rc4"
+
+CVE_STATUS[CVE-2019-3901] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2019-5108] = "fixed-version: Fixed after version 5.3"
+
+# Skipping CVE-2019-5489, no affected_versions
+
+CVE_STATUS[CVE-2019-6133] = "fixed-version: Fixed after version 5.0rc2"
+
+CVE_STATUS[CVE-2019-6974] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7221] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7222] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7308] = "fixed-version: Fixed after version 5.0rc3"
+
+CVE_STATUS[CVE-2019-8912] = "fixed-version: Fixed after version 5.0rc8"
+
+CVE_STATUS[CVE-2019-8956] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-8980] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9003] = "fixed-version: Fixed after version 5.0rc4"
+
+CVE_STATUS[CVE-2019-9162] = "fixed-version: Fixed after version 5.0rc7"
+
+CVE_STATUS[CVE-2019-9213] = "fixed-version: Fixed after version 5.0"
+
+CVE_STATUS[CVE-2019-9245] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2019-9444] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2019-9445] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9453] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-9454] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2019-9455] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2019-9456] = "fixed-version: Fixed after version 4.16rc6"
+
+CVE_STATUS[CVE-2019-9457] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2019-9458] = "fixed-version: Fixed after version 4.19rc7"
+
+CVE_STATUS[CVE-2019-9466] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9500] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9503] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9506] = "fixed-version: Fixed after version 5.2"
+
+CVE_STATUS[CVE-2019-9857] = "fixed-version: Fixed after version 5.1rc2"
+
+CVE_STATUS[CVE-2020-0009] = "fixed-version: Fixed after version 5.6rc3"
+
+CVE_STATUS[CVE-2020-0030] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2020-0041] = "fixed-version: Fixed after version 5.5rc2"
+
+CVE_STATUS[CVE-2020-0066] = "fixed-version: Fixed after version 4.3rc7"
+
+CVE_STATUS[CVE-2020-0067] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2020-0110] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2020-0255] = "fixed-version: Fixed after version 5.7rc4"
+
+CVE_STATUS[CVE-2020-0305] = "fixed-version: Fixed after version 5.5rc6"
+
+# CVE-2020-0347 has no known resolution
+
+CVE_STATUS[CVE-2020-0404] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2020-0423] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-0427] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2020-0429] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2020-0430] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2020-0431] = "fixed-version: Fixed after version 5.5rc6"
+
+CVE_STATUS[CVE-2020-0432] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2020-0433] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2020-0435] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2020-0444] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-0465] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-0466] = "fixed-version: Fixed after version 5.9rc2"
+
+CVE_STATUS[CVE-2020-0543] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10135] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10690] = "fixed-version: Fixed after version 5.5rc5"
+
+# CVE-2020-10708 has no known resolution
+
+CVE_STATUS[CVE-2020-10711] = "fixed-version: Fixed after version 5.7rc6"
+
+CVE_STATUS[CVE-2020-10720] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2020-10732] = "fixed-version: Fixed after version 5.7"
+
+CVE_STATUS[CVE-2020-10742] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2020-10751] = "fixed-version: Fixed after version 5.7rc4"
+
+CVE_STATUS[CVE-2020-10757] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10766] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10767] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10768] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10769] = "fixed-version: Fixed after version 5.0rc3"
+
+CVE_STATUS[CVE-2020-10773] = "fixed-version: Fixed after version 5.4rc6"
+
+# CVE-2020-10774 has no known resolution
+
+CVE_STATUS[CVE-2020-10781] = "fixed-version: Fixed after version 5.8rc6"
+
+CVE_STATUS[CVE-2020-10942] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-11494] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11565] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11608] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11609] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11668] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11669] = "fixed-version: Fixed after version 5.2rc1"
+
+# CVE-2020-11725 has no known resolution
+
+CVE_STATUS[CVE-2020-11884] = "fixed-version: Fixed after version 5.7rc4"
+
+# CVE-2020-11935 has no known resolution
+
+CVE_STATUS[CVE-2020-12114] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2020-12351] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-12352] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-12362] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12363] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12364] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12464] = "fixed-version: Fixed after version 5.7rc3"
+
+CVE_STATUS[CVE-2020-12465] = "fixed-version: Fixed after version 5.6rc6"
+
+CVE_STATUS[CVE-2020-12652] = "fixed-version: Fixed after version 5.5rc7"
+
+CVE_STATUS[CVE-2020-12653] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2020-12654] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2020-12655] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12656] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-12657] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12659] = "fixed-version: Fixed after version 5.7rc2"
+
+CVE_STATUS[CVE-2020-12768] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-12769] = "fixed-version: Fixed after version 5.5rc6"
+
+CVE_STATUS[CVE-2020-12770] = "fixed-version: Fixed after version 5.7rc3"
+
+CVE_STATUS[CVE-2020-12771] = "fixed-version: Fixed after version 5.8rc2"
+
+CVE_STATUS[CVE-2020-12826] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12888] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-12912] = "fixed-version: Fixed after version 5.10rc4"
+
+CVE_STATUS[CVE-2020-13143] = "fixed-version: Fixed after version 5.7rc6"
+
+CVE_STATUS[CVE-2020-13974] = "fixed-version: Fixed after version 5.8rc1"
+
+# CVE-2020-14304 has no known resolution
+
+CVE_STATUS[CVE-2020-14305] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2020-14314] = "fixed-version: Fixed after version 5.9rc2"
+
+CVE_STATUS[CVE-2020-14331] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2020-14351] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-14353] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2020-14356] = "fixed-version: Fixed after version 5.8rc5"
+
+CVE_STATUS[CVE-2020-14381] = "fixed-version: Fixed after version 5.6rc6"
+
+CVE_STATUS[CVE-2020-14385] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-14386] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-14390] = "fixed-version: Fixed after version 5.9rc6"
+
+CVE_STATUS[CVE-2020-14416] = "fixed-version: Fixed after version 5.5"
+
+CVE_STATUS[CVE-2020-15393] = "fixed-version: Fixed after version 5.8rc3"
+
+CVE_STATUS[CVE-2020-15436] = "fixed-version: Fixed after version 5.8rc2"
+
+CVE_STATUS[CVE-2020-15437] = "fixed-version: Fixed after version 5.8rc7"
+
+CVE_STATUS[CVE-2020-15780] = "fixed-version: Fixed after version 5.8rc3"
+
+# CVE-2020-15802 has no known resolution
+
+CVE_STATUS[CVE-2020-15852] = "fixed-version: Fixed after version 5.8rc6"
+
+CVE_STATUS[CVE-2020-16119] = "fixed-version: Fixed after version 5.15rc2"
+
+CVE_STATUS[CVE-2020-16120] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-16166] = "fixed-version: Fixed after version 5.8"
+
+CVE_STATUS[CVE-2020-1749] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2020-24394] = "fixed-version: Fixed after version 5.8rc4"
+
+CVE_STATUS[CVE-2020-24490] = "fixed-version: Fixed after version 5.8"
+
+# CVE-2020-24502 has no known resolution
+
+# CVE-2020-24503 has no known resolution
+
+CVE_STATUS[CVE-2020-24504] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2020-24586] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-24587] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-24588] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-25211] = "fixed-version: Fixed after version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25212] = "fixed-version: Fixed after version 5.9rc1"
+
+# CVE-2020-25220 has no known resolution
+
+CVE_STATUS[CVE-2020-25221] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25284] = "fixed-version: Fixed after version 5.9rc5"
+
+CVE_STATUS[CVE-2020-25285] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25639] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2020-25641] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25643] = "fixed-version: Fixed after version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25645] = "fixed-version: Fixed after version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25656] = "fixed-version: Fixed after version 5.10rc2"
+
+# CVE-2020-25661 has no known resolution
+
+# CVE-2020-25662 has no known resolution
+
+CVE_STATUS[CVE-2020-25668] = "fixed-version: Fixed after version 5.10rc3"
+
+CVE_STATUS[CVE-2020-25669] = "fixed-version: Fixed after version 5.10rc5"
+
+CVE_STATUS[CVE-2020-25670] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25671] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25672] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25673] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25704] = "fixed-version: Fixed after version 5.10rc3"
+
+CVE_STATUS[CVE-2020-25705] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-26088] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2020-26139] = "fixed-version: Fixed after version 5.13rc4"
+
+# CVE-2020-26140 has no known resolution
+
+CVE_STATUS[CVE-2020-26141] = "fixed-version: Fixed after version 5.13rc4"
+
+# CVE-2020-26142 has no known resolution
+
+# CVE-2020-26143 has no known resolution
+
+CVE_STATUS[CVE-2020-26145] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-26147] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-26541] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2020-26555] = "fixed-version: Fixed after version 5.13rc1"
+
+# CVE-2020-26556 has no known resolution
+
+# CVE-2020-26557 has no known resolution
+
+CVE_STATUS[CVE-2020-26558] = "fixed-version: Fixed after version 5.13rc1"
+
+# CVE-2020-26559 has no known resolution
+
+# CVE-2020-26560 has no known resolution
+
+CVE_STATUS[CVE-2020-27066] = "fixed-version: Fixed after version 5.6"
+
+CVE_STATUS[CVE-2020-27067] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2020-27068] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2020-27152] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27170] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2020-27171] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2020-27194] = "fixed-version: Fixed after version 5.9"
+
+CVE_STATUS[CVE-2020-2732] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-27673] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27675] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27777] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27784] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27786] = "fixed-version: Fixed after version 5.7rc6"
+
+CVE_STATUS[CVE-2020-27815] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-27820] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2020-27825] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27830] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-27835] = "fixed-version: Fixed after version 5.10rc6"
+
+CVE_STATUS[CVE-2020-28097] = "fixed-version: Fixed after version 5.9rc6"
+
+CVE_STATUS[CVE-2020-28374] = "fixed-version: Fixed after version 5.11rc4"
+
+CVE_STATUS[CVE-2020-28588] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-28915] = "fixed-version: Fixed after version 5.9"
+
+CVE_STATUS[CVE-2020-28941] = "fixed-version: Fixed after version 5.10rc5"
+
+CVE_STATUS[CVE-2020-28974] = "fixed-version: Fixed after version 5.10rc3"
+
+CVE_STATUS[CVE-2020-29368] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-29369] = "fixed-version: Fixed after version 5.8rc7"
+
+CVE_STATUS[CVE-2020-29370] = "fixed-version: Fixed after version 5.6rc7"
+
+CVE_STATUS[CVE-2020-29371] = "fixed-version: Fixed after version 5.9rc2"
+
+CVE_STATUS[CVE-2020-29372] = "fixed-version: Fixed after version 5.7rc3"
+
+CVE_STATUS[CVE-2020-29373] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2020-29374] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-29534] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-29568] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-29569] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-29660] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-29661] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-35499] = "fixed-version: Fixed after version 5.11rc1"
+
+# CVE-2020-35501 has no known resolution
+
+CVE_STATUS[CVE-2020-35508] = "fixed-version: Fixed after version 5.10rc3"
+
+CVE_STATUS[CVE-2020-35513] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2020-35519] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-36158] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-36310] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-36311] = "fixed-version: Fixed after version 5.9rc5"
+
+CVE_STATUS[CVE-2020-36312] = "fixed-version: Fixed after version 5.9rc5"
+
+CVE_STATUS[CVE-2020-36313] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-36322] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-36385] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-36386] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2020-36387] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2020-36516] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2020-36557] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-36558] = "fixed-version: Fixed after version 5.6rc3"
+
+CVE_STATUS[CVE-2020-36691] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-36694] = "fixed-version: Fixed after version 5.10"
+
+CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed after version 5.10rc5"
+
+CVE_STATUS[CVE-2020-7053] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2020-8428] = "fixed-version: Fixed after version 5.5"
+
+CVE_STATUS[CVE-2020-8647] = "fixed-version: Fixed after version 5.6rc5"
+
+CVE_STATUS[CVE-2020-8648] = "fixed-version: Fixed after version 5.6rc3"
+
+CVE_STATUS[CVE-2020-8649] = "fixed-version: Fixed after version 5.6rc5"
+
+CVE_STATUS[CVE-2020-8694] = "fixed-version: Fixed after version 5.10rc4"
+
+# CVE-2020-8832 has no known resolution
+
+CVE_STATUS[CVE-2020-8834] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2020-8835] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-8992] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2020-9383] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-9391] = "fixed-version: Fixed after version 5.6rc3"
+
+CVE_STATUS[CVE-2021-0129] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-0342] = "fixed-version: Fixed after version 5.8rc1"
+
+# CVE-2021-0399 has no known resolution
+
+CVE_STATUS[CVE-2021-0447] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2021-0448] = "fixed-version: Fixed after version 5.9rc7"
+
+CVE_STATUS[CVE-2021-0512] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-0605] = "fixed-version: Fixed after version 5.8"
+
+# CVE-2021-0606 has no known resolution
+
+# CVE-2021-0695 has no known resolution
+
+CVE_STATUS[CVE-2021-0707] = "fixed-version: Fixed after version 5.11rc3"
+
+CVE_STATUS[CVE-2021-0920] = "fixed-version: Fixed after version 5.14rc4"
+
+# CVE-2021-0924 has no known resolution
+
+CVE_STATUS[CVE-2021-0929] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2021-0935] = "fixed-version: Fixed after version 4.16rc7"
+
+# CVE-2021-0936 has no known resolution
+
+CVE_STATUS[CVE-2021-0937] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-0938] = "fixed-version: Fixed after version 5.10rc4"
+
+CVE_STATUS[CVE-2021-0941] = "fixed-version: Fixed after version 5.12rc1"
+
+# CVE-2021-0961 has no known resolution
+
+CVE_STATUS[CVE-2021-1048] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2021-20177] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2021-20194] = "fixed-version: Fixed after version 5.10rc1"
+
+# CVE-2021-20219 has no known resolution
+
+CVE_STATUS[CVE-2021-20226] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2021-20239] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2021-20261] = "fixed-version: Fixed after version 4.5rc5"
+
+CVE_STATUS[CVE-2021-20265] = "fixed-version: Fixed after version 4.5rc3"
+
+CVE_STATUS[CVE-2021-20268] = "fixed-version: Fixed after version 5.11rc5"
+
+CVE_STATUS[CVE-2021-20292] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2021-20317] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2021-20320] = "fixed-version: Fixed after version 5.15rc3"
+
+CVE_STATUS[CVE-2021-20321] = "fixed-version: Fixed after version 5.15rc5"
+
+CVE_STATUS[CVE-2021-20322] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-21781] = "fixed-version: Fixed after version 5.11rc7"
+
+CVE_STATUS[CVE-2021-22543] = "fixed-version: Fixed after version 5.13"
+
+CVE_STATUS[CVE-2021-22555] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-22600] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-23133] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-23134] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-26401] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2021-26708] = "fixed-version: Fixed after version 5.11rc7"
+
+CVE_STATUS[CVE-2021-26930] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-26931] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-26932] = "fixed-version: Fixed after version 5.12rc1"
+
+# CVE-2021-26934 has no known resolution
+
+CVE_STATUS[CVE-2021-27363] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-27364] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-27365] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28038] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28039] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28375] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-28660] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-28688] = "fixed-version: Fixed after version 5.12rc6"
+
+CVE_STATUS[CVE-2021-28691] = "fixed-version: Fixed after version 5.13rc6"
+
+CVE_STATUS[CVE-2021-28711] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28712] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28713] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28714] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28715] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28950] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28951] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28952] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28964] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28971] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28972] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-29154] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2021-29155] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-29264] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-29265] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-29266] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-29646] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29647] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29648] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29649] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29650] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29657] = "fixed-version: Fixed after version 5.12rc6"
+
+CVE_STATUS[CVE-2021-30002] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-30178] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-31440] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-3178] = "fixed-version: Fixed after version 5.11rc5"
+
+CVE_STATUS[CVE-2021-31829] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-31916] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-32078] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-32399] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-32606] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-33033] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-33034] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-33061] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2021-33098] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-33135] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2021-33200] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3347] = "fixed-version: Fixed after version 5.11rc6"
+
+CVE_STATUS[CVE-2021-3348] = "fixed-version: Fixed after version 5.11rc6"
+
+CVE_STATUS[CVE-2021-33624] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-33655] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2021-33656] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-33909] = "fixed-version: Fixed after version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3411] = "fixed-version: Fixed after version 5.10"
+
+CVE_STATUS[CVE-2021-3428] = "fixed-version: Fixed after version 5.9rc2"
+
+CVE_STATUS[CVE-2021-3444] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-34556] = "fixed-version: Fixed after version 5.14rc4"
+
+CVE_STATUS[CVE-2021-34693] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-3483] = "fixed-version: Fixed after version 5.12rc6"
+
+CVE_STATUS[CVE-2021-34866] = "fixed-version: Fixed after version 5.14"
+
+CVE_STATUS[CVE-2021-3489] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3490] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3491] = "fixed-version: Fixed after version 5.13rc1"
+
+# CVE-2021-3492 has no known resolution
+
+CVE_STATUS[CVE-2021-3493] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2021-34981] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3501] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-35039] = "fixed-version: Fixed after version 5.13"
+
+CVE_STATUS[CVE-2021-3506] = "fixed-version: Fixed after version 5.13rc1"
+
+# CVE-2021-3542 has no known resolution
+
+CVE_STATUS[CVE-2021-3543] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-35477] = "fixed-version: Fixed after version 5.14rc4"
+
+CVE_STATUS[CVE-2021-3564] = "fixed-version: Fixed after version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3573] = "fixed-version: Fixed after version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3587] = "fixed-version: Fixed after version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3600] = "fixed-version: Fixed after version 5.11"
+
+CVE_STATUS[CVE-2021-3609] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3612] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-3635] = "fixed-version: Fixed after version 5.5rc7"
+
+CVE_STATUS[CVE-2021-3640] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-3653] = "fixed-version: Fixed after version 5.14rc7"
+
+CVE_STATUS[CVE-2021-3655] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3656] = "fixed-version: Fixed after version 5.14rc7"
+
+CVE_STATUS[CVE-2021-3659] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2021-3669] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3679] = "fixed-version: Fixed after version 5.14rc3"
+
+# CVE-2021-3714 has no known resolution
+
+CVE_STATUS[CVE-2021-3715] = "fixed-version: Fixed after version 5.6"
+
+CVE_STATUS[CVE-2021-37159] = "fixed-version: Fixed after version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3732] = "fixed-version: Fixed after version 5.14rc6"
+
+CVE_STATUS[CVE-2021-3736] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3739] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3743] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-3744] = "fixed-version: Fixed after version 5.15rc4"
+
+CVE_STATUS[CVE-2021-3752] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-3753] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-37576] = "fixed-version: Fixed after version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3759] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3760] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3764] = "fixed-version: Fixed after version 5.15rc4"
+
+CVE_STATUS[CVE-2021-3772] = "fixed-version: Fixed after version 5.15"
+
+CVE_STATUS[CVE-2021-38160] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38166] = "fixed-version: Fixed after version 5.14rc6"
+
+CVE_STATUS[CVE-2021-38198] = "fixed-version: Fixed after version 5.13rc6"
+
+CVE_STATUS[CVE-2021-38199] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38200] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38201] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38202] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38203] = "fixed-version: Fixed after version 5.14rc2"
+
+CVE_STATUS[CVE-2021-38204] = "fixed-version: Fixed after version 5.14rc3"
+
+CVE_STATUS[CVE-2021-38205] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38206] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38207] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38208] = "fixed-version: Fixed after version 5.13rc5"
+
+CVE_STATUS[CVE-2021-38209] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-38300] = "fixed-version: Fixed after version 5.15rc4"
+
+# CVE-2021-3847 has no known resolution
+
+# CVE-2021-3864 has no known resolution
+
+# CVE-2021-3892 has no known resolution
+
+CVE_STATUS[CVE-2021-3894] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3896] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3923] = "fixed-version: Fixed after version 5.16"
+
+CVE_STATUS[CVE-2021-39633] = "fixed-version: Fixed after version 5.14"
+
+CVE_STATUS[CVE-2021-39634] = "fixed-version: Fixed after version 5.9rc8"
+
+CVE_STATUS[CVE-2021-39636] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2021-39648] = "fixed-version: Fixed after version 5.11rc3"
+
+CVE_STATUS[CVE-2021-39656] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-39657] = "fixed-version: Fixed after version 5.11rc4"
+
+CVE_STATUS[CVE-2021-39685] = "fixed-version: Fixed after version 5.16rc5"
+
+CVE_STATUS[CVE-2021-39686] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-39698] = "fixed-version: Fixed after version 5.16rc5"
+
+CVE_STATUS[CVE-2021-39711] = "fixed-version: Fixed after version 4.18rc6"
+
+CVE_STATUS[CVE-2021-39713] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2021-39714] = "fixed-version: Fixed after version 4.12rc1"
+
+# CVE-2021-39800 has no known resolution
+
+# CVE-2021-39801 has no known resolution
+
+# CVE-2021-39802 has no known resolution
+
+CVE_STATUS[CVE-2021-4001] = "fixed-version: Fixed after version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4002] = "fixed-version: Fixed after version 5.16rc3"
+
+CVE_STATUS[CVE-2021-4023] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-4028] = "fixed-version: Fixed after version 5.15rc4"
+
+CVE_STATUS[CVE-2021-4032] = "fixed-version: Fixed after version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4037] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-40490] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-4083] = "fixed-version: Fixed after version 5.16rc4"
+
+CVE_STATUS[CVE-2021-4090] = "fixed-version: Fixed after version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4093] = "fixed-version: Fixed after version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4095] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-41073] = "fixed-version: Fixed after version 5.15rc2"
+
+CVE_STATUS[CVE-2021-4135] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-4148] = "fixed-version: Fixed after version 5.15"
+
+CVE_STATUS[CVE-2021-4149] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-4150] = "fixed-version: Fixed after version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4154] = "fixed-version: Fixed after version 5.14rc2"
+
+CVE_STATUS[CVE-2021-4155] = "fixed-version: Fixed after version 5.16"
+
+CVE_STATUS[CVE-2021-4157] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-4159] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2021-41864] = "fixed-version: Fixed after version 5.15rc5"
+
+CVE_STATUS[CVE-2021-4197] = "fixed-version: Fixed after version 5.16"
+
+CVE_STATUS[CVE-2021-42008] = "fixed-version: Fixed after version 5.14rc7"
+
+CVE_STATUS[CVE-2021-4202] = "fixed-version: Fixed after version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4203] = "fixed-version: Fixed after version 5.15rc4"
+
+CVE_STATUS[CVE-2021-4204] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-4218] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2021-42252] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-42327] = "fixed-version: Fixed after version 5.15"
+
+CVE_STATUS[CVE-2021-42739] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-43056] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-43057] = "fixed-version: Fixed after version 5.15rc3"
+
+CVE_STATUS[CVE-2021-43267] = "fixed-version: Fixed after version 5.15"
+
+CVE_STATUS[CVE-2021-43389] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-43975] = "fixed-version: Fixed after version 5.16rc2"
+
+CVE_STATUS[CVE-2021-43976] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-44733] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-44879] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-45095] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45100] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-45402] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45469] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-45480] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45485] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-45486] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-45868] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-46283] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2022-0001] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0002] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0168] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-0171] = "fixed-version: Fixed after version 5.18rc4"
+
+CVE_STATUS[CVE-2022-0185] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0264] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2022-0286] = "fixed-version: Fixed after version 5.14rc2"
+
+CVE_STATUS[CVE-2022-0322] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2022-0330] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-0382] = "fixed-version: Fixed after version 5.16"
+
+# CVE-2022-0400 has no known resolution
+
+CVE_STATUS[CVE-2022-0433] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0435] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0480] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-0487] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0492] = "fixed-version: Fixed after version 5.17rc3"
+
+CVE_STATUS[CVE-2022-0494] = "fixed-version: Fixed after version 5.17rc5"
+
+CVE_STATUS[CVE-2022-0500] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0516] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0617] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-0644] = "fixed-version: Fixed after version 5.15rc7"
+
+CVE_STATUS[CVE-2022-0646] = "fixed-version: Fixed after version 5.17rc5"
+
+CVE_STATUS[CVE-2022-0742] = "fixed-version: Fixed after version 5.17rc7"
+
+CVE_STATUS[CVE-2022-0812] = "fixed-version: Fixed after version 5.8rc6"
+
+CVE_STATUS[CVE-2022-0847] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-0850] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2022-0854] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0995] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0998] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-1011] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-1012] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1015] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1016] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1043] = "fixed-version: Fixed after version 5.14rc7"
+
+CVE_STATUS[CVE-2022-1048] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1055] = "fixed-version: Fixed after version 5.17rc3"
+
+# CVE-2022-1116 has no known resolution
+
+CVE_STATUS[CVE-2022-1158] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1184] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1195] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2022-1198] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-1199] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-1204] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1205] = "fixed-version: Fixed after version 5.18rc1"
+
+# CVE-2022-1247 has no known resolution
+
+CVE_STATUS[CVE-2022-1263] = "fixed-version: Fixed after version 5.18rc3"
+
+CVE_STATUS[CVE-2022-1280] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-1353] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-1419] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2022-1462] = "fixed-version: Fixed after version 5.19rc7"
+
+CVE_STATUS[CVE-2022-1508] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-1516] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1651] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1652] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1671] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1678] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2022-1679] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-1729] = "fixed-version: Fixed after version 5.18"
+
+CVE_STATUS[CVE-2022-1734] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1786] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-1789] = "fixed-version: Fixed after version 5.18"
+
+CVE_STATUS[CVE-2022-1836] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2022-1852] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1882] = "fixed-version: Fixed after version 5.19rc8"
+
+CVE_STATUS[CVE-2022-1943] = "fixed-version: Fixed after version 5.18rc7"
+
+CVE_STATUS[CVE-2022-1966] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1972] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1973] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1974] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1975] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1976] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1998] = "fixed-version: Fixed after version 5.17rc3"
+
+CVE_STATUS[CVE-2022-20008] = "fixed-version: Fixed after version 5.17rc5"
+
+CVE_STATUS[CVE-2022-20132] = "fixed-version: Fixed after version 5.16rc5"
+
+CVE_STATUS[CVE-2022-20141] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-20148] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2022-20153] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2022-20154] = "fixed-version: Fixed after version 5.16rc8"
+
+CVE_STATUS[CVE-2022-20158] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-20166] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2022-20368] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-20369] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-20409] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20421] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-20422] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-20423] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-20424] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20565] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2022-20566] = "fixed-version: Fixed after version 5.19"
+
+CVE_STATUS[CVE-2022-20567] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2022-20568] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20572] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-2078] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-21123] = "fixed-version: Fixed after version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21125] = "fixed-version: Fixed after version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21166] = "fixed-version: Fixed after version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21385] = "fixed-version: Fixed after version 4.20"
+
+CVE_STATUS[CVE-2022-21499] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-21505] = "fixed-version: Fixed after version 5.19rc8"
+
+CVE_STATUS[CVE-2022-2153] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2196] = "cpe-stable-backport: Backported in 6.1.14"
+
+# CVE-2022-2209 has no known resolution
+
+CVE_STATUS[CVE-2022-22942] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-23036] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23037] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23038] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23039] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23040] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23041] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23042] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-2308] = "fixed-version: Fixed after version 6.0"
+
+CVE_STATUS[CVE-2022-2318] = "fixed-version: Fixed after version 5.19rc5"
+
+CVE_STATUS[CVE-2022-23222] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-2327] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-2380] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-23816] = "fixed-version: Fixed after version 5.19rc7"
+
+# CVE-2022-23825 has no known resolution
+
+CVE_STATUS[CVE-2022-23960] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-24122] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-24448] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-24958] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-24959] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-2503] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-25258] = "fixed-version: Fixed after version 5.17rc4"
+
+# CVE-2022-25265 has no known resolution
+
+CVE_STATUS[CVE-2022-25375] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-25636] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-2585] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2586] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2588] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2590] = "fixed-version: Fixed after version 6.0rc3"
+
+CVE_STATUS[CVE-2022-2602] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-26365] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-26373] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2639] = "fixed-version: Fixed after version 5.18rc4"
+
+CVE_STATUS[CVE-2022-26490] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-2663] = "fixed-version: Fixed after version 6.0rc5"
+
+# CVE-2022-26878 has no known resolution
+
+CVE_STATUS[CVE-2022-26966] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-27223] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-27666] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-27672] = "cpe-stable-backport: Backported in 6.1.12"
+
+CVE_STATUS[CVE-2022-2785] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-27950] = "fixed-version: Fixed after version 5.17rc5"
+
+CVE_STATUS[CVE-2022-28356] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28388] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28389] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28390] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2873] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-28796] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28893] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2022-2905] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-29156] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-2938] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-29581] = "fixed-version: Fixed after version 5.18rc4"
+
+CVE_STATUS[CVE-2022-29582] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2022-2959] = "fixed-version: Fixed after version 5.19rc1"
+
+# CVE-2022-2961 has no known resolution
+
+CVE_STATUS[CVE-2022-2964] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-2977] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2978] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-29900] = "fixed-version: Fixed after version 5.19rc7"
+
+CVE_STATUS[CVE-2022-29901] = "fixed-version: Fixed after version 5.19rc7"
+
+CVE_STATUS[CVE-2022-2991] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-29968] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3028] = "fixed-version: Fixed after version 6.0rc3"
+
+CVE_STATUS[CVE-2022-30594] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3061] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3077] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3078] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3103] = "fixed-version: Fixed after version 6.0rc3"
+
+CVE_STATUS[CVE-2022-3104] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3105] = "fixed-version: Fixed after version 5.16"
+
+CVE_STATUS[CVE-2022-3106] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2022-3107] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-3108] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-3110] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3111] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3112] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3113] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3114] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3115] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3169] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3170] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-3176] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-3202] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-32250] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-32296] = "fixed-version: Fixed after version 5.18rc6"
+
+# CVE-2022-3238 has no known resolution
+
+CVE_STATUS[CVE-2022-3239] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-32981] = "fixed-version: Fixed after version 5.19rc2"
+
+CVE_STATUS[CVE-2022-3303] = "fixed-version: Fixed after version 6.0rc5"
+
+CVE_STATUS[CVE-2022-3344] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2022-33740] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33741] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33742] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33743] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33744] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33981] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3424] = "cpe-stable-backport: Backported in 6.1.2"
+
+CVE_STATUS[CVE-2022-3435] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-34494] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-34495] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-34918] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-3521] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3522] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3523] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3524] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3526] = "fixed-version: Fixed after version 5.18rc3"
+
+CVE_STATUS[CVE-2022-3531] = "cpe-stable-backport: Backported in 6.1.2"
+
+CVE_STATUS[CVE-2022-3532] = "cpe-stable-backport: Backported in 6.1.2"
+
+# CVE-2022-3533 has no known resolution
+
+CVE_STATUS[CVE-2022-3534] = "cpe-stable-backport: Backported in 6.1.2"
+
+CVE_STATUS[CVE-2022-3535] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3541] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3542] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3543] = "fixed-version: Fixed after version 6.1rc1"
+
+# CVE-2022-3544 has no known resolution
+
+CVE_STATUS[CVE-2022-3545] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3564] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2022-3565] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3566] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3567] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3577] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3586] = "fixed-version: Fixed after version 6.0rc5"
+
+CVE_STATUS[CVE-2022-3594] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3595] = "fixed-version: Fixed after version 6.1rc1"
+
+# CVE-2022-3606 has no known resolution
+
+CVE_STATUS[CVE-2022-36123] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-3619] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2022-3621] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3623] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3624] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3625] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3628] = "fixed-version: Fixed after version 6.1rc5"
+
+CVE_STATUS[CVE-2022-36280] = "cpe-stable-backport: Backported in 6.1.4"
+
+CVE_STATUS[CVE-2022-3629] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3630] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3633] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3635] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3636] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3640] = "fixed-version: Fixed after version 6.1rc4"
+
+# CVE-2022-36402 has no known resolution
+
+# CVE-2022-3642 has no known resolution
+
+CVE_STATUS[CVE-2022-3643] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-3646] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3649] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-36879] = "fixed-version: Fixed after version 5.19rc8"
+
+CVE_STATUS[CVE-2022-36946] = "fixed-version: Fixed after version 5.19"
+
+CVE_STATUS[CVE-2022-3707] = "cpe-stable-backport: Backported in 6.1.5"
+
+# CVE-2022-38096 has no known resolution
+
+CVE_STATUS[CVE-2022-38457] = "cpe-stable-backport: Backported in 6.1.7"
+
+CVE_STATUS[CVE-2022-3903] = "fixed-version: Fixed after version 6.1rc2"
+
+CVE_STATUS[CVE-2022-3910] = "fixed-version: Fixed after version 6.0rc6"
+
+CVE_STATUS[CVE-2022-39188] = "fixed-version: Fixed after version 5.19rc8"
+
+CVE_STATUS[CVE-2022-39189] = "fixed-version: Fixed after version 5.19rc2"
+
+CVE_STATUS[CVE-2022-39190] = "fixed-version: Fixed after version 6.0rc3"
+
+CVE_STATUS[CVE-2022-3977] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-39842] = "fixed-version: Fixed after version 5.19rc4"
+
+CVE_STATUS[CVE-2022-40133] = "cpe-stable-backport: Backported in 6.1.7"
+
+CVE_STATUS[CVE-2022-40307] = "fixed-version: Fixed after version 6.0rc5"
+
+CVE_STATUS[CVE-2022-40476] = "fixed-version: Fixed after version 5.19rc4"
+
+CVE_STATUS[CVE-2022-40768] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-4095] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-41218] = "cpe-stable-backport: Backported in 6.1.4"
+
+CVE_STATUS[CVE-2022-41222] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2022-4127] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-4128] = "fixed-version: Fixed after version 5.19rc7"
+
+CVE_STATUS[CVE-2022-4129] = "fixed-version: Fixed after version 6.1rc6"
+
+CVE_STATUS[CVE-2022-4139] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-41674] = "fixed-version: Fixed after version 6.1rc1"
+
+# CVE-2022-41848 has no known resolution
+
+CVE_STATUS[CVE-2022-41849] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-41850] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-41858] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2022-42328] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-42329] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-42432] = "fixed-version: Fixed after version 6.0rc7"
+
+CVE_STATUS[CVE-2022-4269] = "cpe-stable-backport: Backported in 6.1.22"
+
+CVE_STATUS[CVE-2022-42703] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-42719] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42720] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42721] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42722] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42895] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2022-42896] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2022-43750] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-4378] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-4379] = "cpe-stable-backport: Backported in 6.1.3"
+
+CVE_STATUS[CVE-2022-4382] = "cpe-stable-backport: Backported in 6.1.8"
+
+CVE_STATUS[CVE-2022-43945] = "fixed-version: Fixed after version 6.1rc1"
+
+# CVE-2022-44032 has no known resolution
+
+# CVE-2022-44033 has no known resolution
+
+# CVE-2022-44034 has no known resolution
+
+# CVE-2022-4543 has no known resolution
+
+CVE_STATUS[CVE-2022-45869] = "fixed-version: Fixed after version 6.1rc7"
+
+# CVE-2022-45884 has no known resolution
+
+# CVE-2022-45885 has no known resolution
+
+# CVE-2022-45886 has no known resolution
+
+# CVE-2022-45887 has no known resolution
+
+# CVE-2022-45888 needs backporting (fixed from 6.2rc1)
+
+# CVE-2022-45919 has no known resolution
+
+CVE_STATUS[CVE-2022-45934] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-4662] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-4696] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-4744] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2022-47518] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47519] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47520] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47521] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47929] = "cpe-stable-backport: Backported in 6.1.6"
+
+CVE_STATUS[CVE-2022-47938] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47939] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47940] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-47941] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47942] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47943] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47946] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2022-4842] = "cpe-stable-backport: Backported in 6.1.8"
+
+CVE_STATUS[CVE-2022-48423] = "cpe-stable-backport: Backported in 6.1.3"
+
+CVE_STATUS[CVE-2022-48424] = "cpe-stable-backport: Backported in 6.1.3"
+
+CVE_STATUS[CVE-2022-48425] = "cpe-stable-backport: Backported in 6.1.33"
+
+CVE_STATUS[CVE-2022-48502] = "cpe-stable-backport: Backported in 6.1.40"
+
+CVE_STATUS[CVE-2023-0030] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2023-0045] = "cpe-stable-backport: Backported in 6.1.5"
+
+CVE_STATUS[CVE-2023-0047] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2023-0122] = "fixed-version: Fixed after version 6.0rc4"
+
+# CVE-2023-0160 has no known resolution
+
+CVE_STATUS[CVE-2023-0179] = "cpe-stable-backport: Backported in 6.1.7"
+
+CVE_STATUS[CVE-2023-0210] = "cpe-stable-backport: Backported in 6.1.5"
+
+CVE_STATUS[CVE-2023-0240] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2023-0266] = "cpe-stable-backport: Backported in 6.1.6"
+
+CVE_STATUS[CVE-2023-0386] = "cpe-stable-backport: Backported in 6.1.9"
+
+CVE_STATUS[CVE-2023-0394] = "cpe-stable-backport: Backported in 6.1.7"
+
+CVE_STATUS[CVE-2023-0458] = "cpe-stable-backport: Backported in 6.1.8"
+
+CVE_STATUS[CVE-2023-0459] = "cpe-stable-backport: Backported in 6.1.14"
+
+CVE_STATUS[CVE-2023-0461] = "cpe-stable-backport: Backported in 6.1.5"
+
+CVE_STATUS[CVE-2023-0468] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-0469] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-0590] = "fixed-version: Fixed after version 6.1rc2"
+
+# CVE-2023-0597 needs backporting (fixed from 6.2rc1)
+
+CVE_STATUS[CVE-2023-0615] = "fixed-version: Fixed after version 6.1rc3"
+
+CVE_STATUS[CVE-2023-1032] = "cpe-stable-backport: Backported in 6.1.16"
+
+CVE_STATUS[CVE-2023-1073] = "cpe-stable-backport: Backported in 6.1.9"
+
+CVE_STATUS[CVE-2023-1074] = "cpe-stable-backport: Backported in 6.1.9"
+
+CVE_STATUS[CVE-2023-1075] = "cpe-stable-backport: Backported in 6.1.11"
+
+CVE_STATUS[CVE-2023-1076] = "cpe-stable-backport: Backported in 6.1.16"
+
+CVE_STATUS[CVE-2023-1077] = "cpe-stable-backport: Backported in 6.1.16"
+
+CVE_STATUS[CVE-2023-1078] = "cpe-stable-backport: Backported in 6.1.12"
+
+CVE_STATUS[CVE-2023-1079] = "cpe-stable-backport: Backported in 6.1.16"
+
+CVE_STATUS[CVE-2023-1095] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2023-1118] = "cpe-stable-backport: Backported in 6.1.16"
+
+CVE_STATUS[CVE-2023-1192] = "cpe-stable-backport: Backported in 6.1.33"
+
+# CVE-2023-1193 has no known resolution
+
+# CVE-2023-1194 has no known resolution
+
+CVE_STATUS[CVE-2023-1195] = "fixed-version: Fixed after version 6.1rc3"
+
+# CVE-2023-1206 has no known resolution
+
+CVE_STATUS[CVE-2023-1249] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2023-1252] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2023-1281] = "cpe-stable-backport: Backported in 6.1.13"
+
+CVE_STATUS[CVE-2023-1295] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2023-1380] = "cpe-stable-backport: Backported in 6.1.27"
+
+CVE_STATUS[CVE-2023-1382] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-1390] = "fixed-version: Fixed after version 5.11rc4"
+
+CVE_STATUS[CVE-2023-1513] = "cpe-stable-backport: Backported in 6.1.13"
+
+CVE_STATUS[CVE-2023-1582] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2023-1583] = "cpe-stable-backport: Backported in 6.1.22"
+
+CVE_STATUS[CVE-2023-1611] = "cpe-stable-backport: Backported in 6.1.23"
+
+CVE_STATUS[CVE-2023-1637] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2023-1652] = "cpe-stable-backport: Backported in 6.1.9"
+
+CVE_STATUS[CVE-2023-1670] = "cpe-stable-backport: Backported in 6.1.22"
+
+CVE_STATUS[CVE-2023-1829] = "cpe-stable-backport: Backported in 6.1.18"
+
+CVE_STATUS[CVE-2023-1838] = "fixed-version: Fixed after version 5.18"
+
+CVE_STATUS[CVE-2023-1855] = "cpe-stable-backport: Backported in 6.1.21"
+
+CVE_STATUS[CVE-2023-1859] = "cpe-stable-backport: Backported in 6.1.25"
+
+CVE_STATUS[CVE-2023-1872] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2023-1989] = "cpe-stable-backport: Backported in 6.1.22"
+
+CVE_STATUS[CVE-2023-1990] = "cpe-stable-backport: Backported in 6.1.21"
+
+CVE_STATUS[CVE-2023-1998] = "cpe-stable-backport: Backported in 6.1.16"
+
+CVE_STATUS[CVE-2023-2002] = "cpe-stable-backport: Backported in 6.1.27"
+
+CVE_STATUS[CVE-2023-2006] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-2007] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2023-2008] = "fixed-version: Fixed after version 5.19rc4"
+
+CVE_STATUS[CVE-2023-2019] = "fixed-version: Fixed after version 6.0rc1"
+
+# CVE-2023-20593 has no known resolution
+
+CVE_STATUS[CVE-2023-20928] = "fixed-version: Fixed after version 6.0rc1"
+
+# CVE-2023-20937 has no known resolution
+
+CVE_STATUS[CVE-2023-20938] = "fixed-version: Fixed after version 5.18rc5"
+
+# CVE-2023-20941 has no known resolution
+
+CVE_STATUS[CVE-2023-21102] = "cpe-stable-backport: Backported in 6.1.8"
+
+CVE_STATUS[CVE-2023-21106] = "cpe-stable-backport: Backported in 6.1.9"
+
+CVE_STATUS[CVE-2023-2124] = "cpe-stable-backport: Backported in 6.1.33"
+
+CVE_STATUS[CVE-2023-21255] = "cpe-stable-backport: Backported in 6.1.31"
+
+CVE_STATUS[CVE-2023-2156] = "cpe-stable-backport: Backported in 6.1.26"
+
+CVE_STATUS[CVE-2023-2162] = "cpe-stable-backport: Backported in 6.1.11"
+
+CVE_STATUS[CVE-2023-2163] = "cpe-stable-backport: Backported in 6.1.26"
+
+CVE_STATUS[CVE-2023-2166] = "fixed-version: Fixed after version 6.1"
+
+# CVE-2023-2176 needs backporting (fixed from 6.3rc1)
+
+CVE_STATUS[CVE-2023-2177] = "fixed-version: Fixed after version 5.19"
+
+CVE_STATUS[CVE-2023-2194] = "cpe-stable-backport: Backported in 6.1.22"
+
+CVE_STATUS[CVE-2023-2235] = "cpe-stable-backport: Backported in 6.1.21"
+
+CVE_STATUS[CVE-2023-2236] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-2248] = "cpe-stable-backport: Backported in 6.1.26"
+
+CVE_STATUS[CVE-2023-2269] = "cpe-stable-backport: Backported in 6.1.28"
+
+CVE_STATUS[CVE-2023-22995] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-22996] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2023-22997] = "cpe-stable-backport: Backported in 6.1.2"
+
+CVE_STATUS[CVE-2023-22998] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2023-22999] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23000] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23001] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23002] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23003] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2023-23004] = "fixed-version: Fixed after version 5.19rc1"
+
+# CVE-2023-23005 needs backporting (fixed from 6.2rc1)
+
+CVE_STATUS[CVE-2023-23006] = "fixed-version: Fixed after version 5.16rc8"
+
+# CVE-2023-23039 has no known resolution
+
+CVE_STATUS[CVE-2023-23454] = "cpe-stable-backport: Backported in 6.1.5"
+
+CVE_STATUS[CVE-2023-23455] = "cpe-stable-backport: Backported in 6.1.5"
+
+CVE_STATUS[CVE-2023-23559] = "cpe-stable-backport: Backported in 6.1.9"
+
+CVE_STATUS[CVE-2023-23586] = "fixed-version: Fixed after version 5.12rc1"
+
+# CVE-2023-2430 needs backporting (fixed from 6.2rc5)
+
+CVE_STATUS[CVE-2023-2483] = "cpe-stable-backport: Backported in 6.1.22"
+
+CVE_STATUS[CVE-2023-25012] = "cpe-stable-backport: Backported in 6.1.16"
+
+CVE_STATUS[CVE-2023-2513] = "fixed-version: Fixed after version 6.0rc1"
 
-# https://www.linuxkernelcves.com/cves/CVE-2019-3016
-# Fixed with 5.6
-CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed in version v5.6"
+CVE_STATUS[CVE-2023-2598] = "fixed-version: only affects 6.3rc1 onwards"
 
-# https://www.linuxkernelcves.com/cves/CVE-2019-3819
-# Fixed with 5.1
-CVE_STATUS[CVE-2019-3819] = "fixed-version: Fixed in version v5.1"
+# CVE-2023-26242 has no known resolution
 
-# https://www.linuxkernelcves.com/cves/CVE-2019-3887
-# Fixed with 5.2
-CVE_STATUS[CVE-2019-3887] = "fixed-version: Fixed in version v5.2"
+CVE_STATUS[CVE-2023-26544] = "cpe-stable-backport: Backported in 6.1.3"
 
-CVE_STATUS[CVE-2020-11935] = "not-applicable-config: Issue only affects aufs, which is not in linux-yocto"
+CVE_STATUS[CVE-2023-26545] = "cpe-stable-backport: Backported in 6.1.13"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2020-27784
-# Introduced in version v4.1 b26394bd567e5ebe57ec4dee7fe6cd14023c96e9
-# Patched in kernel since v5.10	e8d5f92b8d30bb4ade76494490c3c065e12411b1
-# Backported in version v5.4.73	e9e791f5c39ab30e374a3b1a9c25ca7ff24988f3
-CVE_STATUS[CVE-2020-27784] = "cpe-stable-backport: Backported in version v5.4.73"
+CVE_STATUS[CVE-2023-26605] = "fixed-version: Fixed after version 6.1rc7"
 
+CVE_STATUS[CVE-2023-26606] = "cpe-stable-backport: Backported in 6.1.2"
 
-# 2021
+CVE_STATUS[CVE-2023-26607] = "fixed-version: Fixed after version 6.1rc1"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2021-3669
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.15 20401d1058f3f841f35a594ac2fc1293710e55b9
-CVE_STATUS[CVE-2021-3669] = "fixed-version: Fixed in version v5.15"
+CVE_STATUS[CVE-2023-28327] = "fixed-version: Fixed after version 6.1"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2021-3759
-# Introduced in version v4.5 a9bb7e620efdfd29b6d1c238041173e411670996
-# Patched in kernel since v5.15 18319498fdd4cdf8c1c2c48cd432863b1f915d6f
-# Backported in version v5.4.224 bad83d55134e647a739ebef2082541963f2cbc92
-# Backported in version v5.10.154 836686e1a01d7e2fda6a5a18252243ff30a6e196
-CVE_STATUS[CVE-2021-3759] = "cpe-stable-backport: Backported in versions v5.4.224 and v6.1.11"
+CVE_STATUS[CVE-2023-28328] = "cpe-stable-backport: Backported in 6.1.2"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2021-4218
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.8 32927393dc1ccd60fb2bdc05b9e8e88753761469
-CVE_STATUS[CVE-2021-4218] = "fixed-version: Fixed in version v5.8"
+CVE_STATUS[CVE-2023-28410] = "fixed-version: Fixed after version 5.19rc1"
 
+CVE_STATUS[CVE-2023-28464] = "fixed-version: only affects 6.3rc1 onwards"
 
-# 2022
+CVE_STATUS[CVE-2023-28466] = "cpe-stable-backport: Backported in 6.1.20"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-0480
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.15 0f12156dff2862ac54235fc72703f18770769042
-CVE_STATUS[CVE-2022-0480] = "fixed-version: Fixed in version v5.15"
+CVE_STATUS[CVE-2023-2860] = "fixed-version: Fixed after version 6.0rc5"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-1184
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 46c116b920ebec58031f0a78c5ea9599b0d2a371
-# Backported in version v5.4.198 17034d45ec443fb0e3c0e7297f9cd10f70446064
-# Backported in version v5.10.121 da2f05919238c7bdc6e28c79539f55c8355408bb
-# Backported in version v5.15.46 ca17db384762be0ec38373a12460081d22a8b42d
-CVE_STATUS[CVE-2022-1184] = "cpe-stable-backport: Backported in versions v5.4.198, v5.10.121 and v5.15.46"
+CVE_STATUS[CVE-2023-28772] = "fixed-version: Fixed after version 5.14rc1"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-1462
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 a501ab75e7624d133a5a3c7ec010687c8b961d23
-# Backported in version v5.4.208 f7785092cb7f022f59ebdaa181651f7c877df132
-# Backported in version v5.10.134 08afa87f58d83dfe040572ed591b47e8cb9e225c
-# Backported in version v5.15.58 b2d1e4cd558cffec6bfe318f5d74e6cffc374d29
-CVE_STATUS[CVE-2022-1462] = "cpe-stable-backport: Backported in versions v5.4.208, v5.10.134 and v5.15.58"
+CVE_STATUS[CVE-2023-28866] = "cpe-stable-backport: Backported in 6.1.22"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2196
-# Introduced in version v5.8 5c911beff20aa8639e7a1f28988736c13e03ed54
-# Breaking commit backported in v5.4.47 64b8f33b2e1e687d465b5cb382e7bec495f1e026
-# Patched in kernel since v6.2 2e7eab81425ad6c875f2ed47c0ce01e78afc38a5
-# Backported in version v5.4.233 f93a1a5bdcdd122aae0a3eab7a52c15b71fb725b
-# Backported in version v5.10.170 1b0cafaae8884726c597caded50af185ffc13349
-# Backported in version v5.15.96 6b539a7dbb49250f92515c2ba60aea239efc9e35
-# Backported in version v6.1.14 63fada296062e91ad9f871970d4e7f19e21a6a15
-CVE_STATUS[CVE-2022-2196] = "cpe-stable-backport: Backported in versions v5.4.1233, v5.10.170, v5.15.46 and v6.1.14"
+CVE_STATUS[CVE-2023-2898] = "cpe-stable-backport: Backported in 6.1.39"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2308
-# Introduced in version v5.15 c8a6153b6c59d95c0e091f053f6f180952ade91e
-# Patched in kernel since v6.0 46f8a29272e51b6df7393d58fc5cb8967397ef2b
-# Backported in version v5.15.72 dc248ddf41eab4566e95b1ee2433c8a5134ad94a
-# Backported in version v5.19.14 38d854c4a11c3bbf6a96ea46f14b282670c784ac
-CVE_STATUS[CVE-2022-2308] = "cpe-stable-backport: Backported in versions v5.15.72 and v5.19.14"
+CVE_STATUS[CVE-2023-2985] = "cpe-stable-backport: Backported in 6.1.16"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2327
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.10.125 df3f3bb5059d20ef094d6b2f0256c4bf4127a859
-CVE_STATUS[CVE-2022-2327] = "fixed-version: Fixed in version v5.10.125"
+CVE_STATUS[CVE-2023-3006] = "fixed-version: Fixed after version 6.1rc1"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2663
-# Introduced in version v2.6.20 869f37d8e48f3911eb70f38a994feaa8f8380008
-# Patched in kernel since v6.0 0efe125cfb99e6773a7434f3463f7c2fa28f3a43
-# Backported in version v5.4.213 36f7b71f8ad8e4d224b45f7d6ecfeff63b091547
-# Backported in version v5.10.143 e12ce30fe593dd438c5b392290ad7316befc11ca
-# Backported in version v5.15.68 451c9ce1e2fc9b9e40303bef8e5a0dca1a923cc4
-# Backported in version v5.19.9 6cf0609154b2ce8d3ae160e7506ab316400a8d3d
-CVE_STATUS[CVE-2022-2663] = "cpe-stable-backport: Backported in versions v5.4.213, v5.10.143, v5.15.68 and v5.19.9"
+# Skipping CVE-2023-3022, no affected_versions
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-2785
-# Introduced in version v5.18 b1d18a7574d0df5eb4117c14742baf8bc2b9bb74
-# Patched in kernel since v6.0 86f44fcec22ce2979507742bc53db8400e454f46
-# Backported in version v5.19.4 b429d0b9a7a0f3dddb1f782b72629e6353f292fd
-CVE_STATUS[CVE-2022-2785] = "cpe-stable-backport: Backported in version v5.19.4"
+CVE_STATUS[CVE-2023-30456] = "cpe-stable-backport: Backported in 6.1.21"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3176
-# Introduced in version v5.1 221c5eb2338232f7340386de1c43decc32682e58
-# Patched in kernel since v5.17 791f3465c4afde02d7f16cf7424ca87070b69396
-# Backported in version v5.15.65 e9d7ca0c4640cbebe6840ee3bac66a25a9bacaf5
-CVE_STATUS[CVE-2022-3176] = "cpe-stable-backport: Backported in version v5.15.65"
+CVE_STATUS[CVE-2023-30772] = "cpe-stable-backport: Backported in 6.1.22"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3424
-# Introduced in version v2.6.33 55484c45dbeca2eec7642932ec3f60f8a2d4bdbf
-# Patched in kernel since v6.2 643a16a0eb1d6ac23744bb6e90a00fc21148a9dc
-# Backported in version v5.4.229 0078dd8758561540ed30b2c5daa1cb647e758977
-# Backported in version v5.10.163 0f67ed565f20ea2fdd98e3b0b0169d9e580bb83c
-# Backported in version v5.15.86 d5c8f9003a289ee2a9b564d109e021fc4d05d106
-# Backported in version v6.1.2 4e947fc71bec7c7da791f8562d5da233b235ba5e
-CVE_STATUS[CVE-2022-3424] = "cpe-stable-backport: Backported in versions v5.4.229, v5.10.163, v5.15.86 and v 6.1.2"
+CVE_STATUS[CVE-2023-3090] = "cpe-stable-backport: Backported in 6.1.30"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3435
-# Introduced in version v5.18 6bf92d70e690b7ff12b24f4bfff5e5434d019b82
-# Breaking commit backported in v5.4.189 f5064531c23ad646da7be8b938292b00a7e61438
-# Breaking commit backported in v5.10.111 63ea57478aaa3e06a597081a0f537318fc04e49f
-# Breaking commit backported in v5.15.34 907c97986d6fa77318d17659dd76c94b65dd27c5
-# Patched in kernel since v6.1 61b91eb33a69c3be11b259c5ea484505cd79f883
-# Backported in version v5.4.226 cc3cd130ecfb8b0ae52e235e487bae3f16a24a32
-# Backported in version v5.10.158 0b5394229ebae09afc07aabccb5ffd705ffd250e
-# Backported in version v5.15.82 25174d91e4a32a24204060d283bd5fa6d0ddf133
-CVE_STATUS[CVE-2022-3435] = "cpe-stable-backport: Backported in versions v5.4.226, v5.10.158 and v5.15.82"
+CVE_STATUS[CVE-2023-3106] = "fixed-version: Fixed after version 4.8rc7"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3523
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 16ce101db85db694a91380aa4c89b25530871d33
-CVE_STATUS[CVE-2022-3523] = "fixed-version: Fixed in version v6.1"
+# Skipping CVE-2023-3108, no affected_versions
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3526
-# Introduced in version v5.13 427f0c8c194b22edcafef1b0a42995ddc5c2227d
-# Patched in kernel since v5.18 e16b859872b87650bb55b12cca5a5fcdc49c1442
-# Backported in version v5.15.35 8f79ce226ad2e9b2ec598de2b9560863b7549d1b
-CVE_STATUS[CVE-2022-3526] = "cpe-stable-backport: Backported in version v5.15.35"
+# CVE-2023-31081 has no known resolution
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3534
-# Introduced in version v5.10 919d2b1dbb074d438027135ba644411931179a59
-# Patched in kernel since v6.2 93c660ca40b5d2f7c1b1626e955a8e9fa30e0749
-# Backported in version v5.10.163 c61650b869e0b6fb0c0a28ed42d928eea969afc8
-# Backported in version v5.15.86 a733bf10198eb5bb927890940de8ab457491ed3b
-# Backported in version v6.1.2 fbe08093fb2334549859829ef81d42570812597d
-CVE_STATUS[CVE-2022-3534] = "cpe-stable-backport: Backported in versions v5.10.163, v5.15.86 and v6.1.2"
+# CVE-2023-31082 has no known resolution
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3564
-# Introduced in version v3.6 4b51dae96731c9d82f5634e75ac7ffd3b9c1b060
-# Patched in kernel since v6.1 3aff8aaca4e36dc8b17eaa011684881a80238966
-# Backported in version v5.10.154 cb1c012099ef5904cd468bdb8d6fcdfdd9bcb569
-# Backported in version v5.15.78 8278a87bb1eeea94350d675ef961ee5a03341fde
-CVE_STATUS[CVE-2022-3564] = "cpe-stable-backport: Backported in versions v5.10.154 and v5.15.78"
+# CVE-2023-31083 has no known resolution
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3566
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 f49cd2f4d6170d27a2c61f1fecb03d8a70c91f57
-CVE_STATUS[CVE-2022-3566] = "fixed-version: Fixed in version v6.1"
+# CVE-2023-31084 needs backporting (fixed from 6.4rc3)
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3567
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 364f997b5cfe1db0d63a390fe7c801fa2b3115f6
-CVE_STATUS[CVE-2022-3567] = "fixed-version: Fixed in version v6.1"
+# CVE-2023-31085 has no known resolution
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3619
-# Introduced in version v5.12 4d7ea8ee90e42fc75995f6fb24032d3233314528
-# Patched in kernel since v6.1 7c9524d929648935bac2bbb4c20437df8f9c3f42
-# Backported in version v5.15.78 aa16cac06b752e5f609c106735bd7838f444784c
-CVE_STATUS[CVE-2022-3619] = "cpe-stable-backport: Backported in version v5.15.78"
+CVE_STATUS[CVE-2023-3111] = "fixed-version: Fixed after version 6.0rc2"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3621
-# Introduced in version v2.60.30 05fe58fdc10df9ebea04c0eaed57adc47af5c184
-# Patched in kernel since v6.1 21a87d88c2253350e115029f14fe2a10a7e6c856
-# Backported in version v5.4.218 792211333ad77fcea50a44bb7f695783159fc63c
-# Backported in version v5.10.148 3f840480e31495ce674db4a69912882b5ac083f2
-# Backported in version v5.15.74 1e512c65b4adcdbdf7aead052f2162b079cc7f55
-# Backported in version v5.19.16 caf2c6b580433b3d3e413a3d54b8414a94725dcd
-CVE_STATUS[CVE-2022-3621] = "cpe-stable-backport: Backported in versions v5.4.218, v5.10.148, v5.15.74 and v5.19.16"
+CVE_STATUS[CVE-2023-3117] = "cpe-stable-backport: Backported in 6.1.35"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3623
-# Introduced in version v5.1 5480280d3f2d11d47f9be59d49b20a8d7d1b33e8
-# Patched in kernel since v6.1 fac35ba763ed07ba93154c95ffc0c4a55023707f
-# Backported in version v5.4.228 176ba4c19d1bb153aa6baaa61d586e785b7d736c
-# Backported in version v5.10.159 fccee93eb20d72f5390432ecea7f8c16af88c850
-# Backported in version v5.15.78 3a44ae4afaa5318baed3c6e2959f24454e0ae4ff
-# Backported in version v5.19.17 86a913d55c89dd13ba070a87f61a493563e94b54
-CVE_STATUS[CVE-2022-3623] = "cpe-stable-backport: Backported in versions v5.4.228, v5.10.159, v5.15.78 and v 5.19.17"
+CVE_STATUS[CVE-2023-31248] = "cpe-stable-backport: Backported in 6.1.39"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3624
-# Introduced in version v6.0 d5410ac7b0baeca91cf73ff5241d35998ecc8c9e
-# Patched in kernel since v6.0 4f5d33f4f798b1c6d92b613f0087f639d9836971
-CVE_STATUS[CVE-2022-3624] = "fixed-version: Fixed in version v6.0"
+CVE_STATUS[CVE-2023-3141] = "cpe-stable-backport: Backported in 6.1.30"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3625
-# Introduced in version v4.19 45f05def5c44c806f094709f1c9b03dcecdd54f0
-# Patched in kernel since v6.0 6b4db2e528f650c7fb712961aac36455468d5902
-# Backported in version v5.4.211 1ad4ba9341f15412cf86dc6addbb73871a10212f
-# Backported in version v5.10.138 0e28678a770df7989108327cfe86f835d8760c33
-# Backported in version v5.15.63 c4d09fd1e18bac11c2f7cf736048112568687301
-# Backported in version v5.19.4 26bef5616255066268c0e40e1da10cc9b78b82e9
-CVE_STATUS[CVE-2022-3625] = "cpe-stable-backport: Backported in versions v5.4.211, v5.10.138, v5.15.63 and v5.19.4"
+CVE_STATUS[CVE-2023-31436] = "cpe-stable-backport: Backported in 6.1.26"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3629
-# Introduced in version v3.9 d021c344051af91f42c5ba9fdedc176740cbd238
-# Patched in kernel since v6.0 7e97cfed9929eaabc41829c395eb0d1350fccb9d
-# Backported in version v5.4.211 f82f1e2042b397277cd39f16349950f5abade58d
-# Backported in version v5.10.138 38ddccbda5e8b762c8ee06670bb1f64f1be5ee50
-# Backported in version v5.15.63 e4c0428f8a6fc8c218d7fd72bddd163f05b29795
-# Backported in version v5.19.4 8ff5db3c1b3d6797eda5cd326dcd31b9cd1c5f72
-CVE_STATUS[CVE-2022-3629] = "cpe-stable-backport: Backported in versions v5.4.211, v5.10.138, v5.15.63 and v5.19.4"
+CVE_STATUS[CVE-2023-3159] = "fixed-version: Fixed after version 5.18rc6"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3630
-# Introduced in version v5.19 85e4ea1049c70fb99de5c6057e835d151fb647da
-# Patched in kernel since v6.0 fb24771faf72a2fd62b3b6287af3c610c3ec9cf1
-# Backported in version v5.19.4 7a369dc87b66acc85d0cffcf39984344a203e20b
-CVE_STATUS[CVE-2022-3630] = "cpe-stable-backport: Backported in version v5.19.4"
+CVE_STATUS[CVE-2023-3161] = "cpe-stable-backport: Backported in 6.1.11"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3633
-# Introduced in version v5.4 9d71dd0c70099914fcd063135da3c580865e924c
-# Patched in kernel since v6.0 8c21c54a53ab21842f5050fa090f26b03c0313d6
-# Backported in version v5.4.211 04e41b6bacf474f5431491f92e981096e8cc8e93
-# Backported in version v5.10.138 a220ff343396bae8d3b6abee72ab51f1f34b3027
-# Backported in version v5.15.63 98dc8fb08299ab49e0b9c08daedadd2f4de1a2f2
-# Backported in version v5.19.4 a0278dbeaaf7ca60346c62a9add65ae7d62564de
-CVE_STATUS[CVE-2022-3633] = "cpe-stable-backport: Backported in versions v5.4.211, v5.10.138, v5.15.63 and v5.19.4"
+CVE_STATUS[CVE-2023-3212] = "cpe-stable-backport: Backported in 6.1.33"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3635
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.0 3f4093e2bf4673f218c0bf17d8362337c400e77b
-# Backported in version v5.4.211 9a6cbaa50f263b12df18a051b37f3f42f9fb5253
-# Backported in version v5.10.138 a0ae122e9aeccbff75014c4d36d11a9d32e7fb5e
-# Backported in version v5.15.63 a5d7ce086fe942c5ab422fd2c034968a152be4c4
-# Backported in version v5.19.4 af412b252550f9ac36d9add7b013c2a2c3463835
-CVE_STATUS[CVE-2022-3635] = "cpe-stable-backport: Backported in versions v5.4.211, v5.10.138, v5.15.63 and v5.19.4"
+CVE_STATUS[CVE-2023-3220] = "cpe-stable-backport: Backported in 6.1.16"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3636
-# Introduced in version v5.19 33fc42de33278b2b3ec6f3390512987bc29a62b7
-# Patched in kernel since v5.19 17a5f6a78dc7b8db385de346092d7d9f9dc24df6
-CVE_STATUS[CVE-2022-3636] = "cpe-stable-backport: Backported in version v5.19"
+CVE_STATUS[CVE-2023-32233] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3640
-# Introduced in version v5.19 d0be8347c623e0ac4202a1d4e0373882821f56b0
-# Breaking commit backported in v5.4.209 098e07ef0059296e710a801cdbd74b59016e6624
-# Breaking commit backported in v5.10.135 de5d4654ac6c22b1be756fdf7db18471e7df01ea
-# Breaking commit backported in v5.15.59 f32d5615a78a1256c4f557ccc6543866e75d03f4
-# Patched in kernel since v6.1 0d0e2d032811280b927650ff3c15fe5020e82533
-# Backported in version v5.4.224 c1f594dddd9ffd747c39f49cc5b67a9b7677d2ab
-# Backported in version v5.10.154 d9ec6e2fbd4a565b2345d4852f586b7ae3ab41fd
-# Backported in version v5.15.78 a3a7b2ac64de232edb67279e804932cb42f0b52a
-CVE_STATUS[CVE-2022-3640] = "cpe-stable-backport: Backported in versions v5.4.224, v5.10.154 and v5.15.78"
+CVE_STATUS[CVE-2023-32247] = "cpe-stable-backport: Backported in 6.1.29"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3646
-# Introduced in version v2.6.30 9ff05123e3bfbb1d2b68ba1d9bf1f7d1dffc1453
-# Patched in kernel since v6.1 d0d51a97063db4704a5ef6bc978dddab1636a306
-# Backported in version v5.4.218 b7e409d11db9ce9f8bc05fcdfa24d143f60cd393
-# Backported in version v5.10.148 aad4c997857f1d4b6c1e296c07e4729d3f8058ee
-# Backported in version v5.15.74 44b1ee304bac03f1b879be5afe920e3a844e40fc
-# Backported in version v5.19.16 4755fcd844240857b525f6e8d8b65ee140fe9570
-CVE_STATUS[CVE-2022-3646] = "cpe-stable-backport: Backported in versions v5.4.218, v5.10.148, v5.15.74 and v5.19.16"
+CVE_STATUS[CVE-2023-32248] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-3649
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 d325dc6eb763c10f591c239550b8c7e5466a5d09
-# Backported in version v5.4.220 d1c2d820a2cd73867b7d352e89e92fb3ac29e926
-# Backported in version v5.10.148 21ee3cffed8fbabb669435facfd576ba18ac8652
-# Backported in version v5.15.74 cb602c2b654e26763226d8bd27a702f79cff4006
-# Backported in version v5.19.16 394b2571e9a74ddaed55aa9c4d0f5772f81c21e4
-CVE_STATUS[CVE-2022-3649] = "cpe-stable-backport: Backported in versions v5.4.220, v5.10.148, v5.15.74 and v5.19.16"
+CVE_STATUS[CVE-2023-32250] = "cpe-stable-backport: Backported in 6.1.29"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-4382
-# Introduced in version v5.3 e5d82a7360d124ae1a38c2a5eac92ba49b125191
-# Patched in kernel since v6.2-rc5 d18dcfe9860e842f394e37ba01ca9440ab2178f4
-# Backported in version v5.4.230 9a39f4626b361ee7aa10fd990401c37ec3b466ae
-# Backported in version v5.10.165 856e4b5e53f21edbd15d275dde62228dd94fb2b4
-# Backported in version v5.15.90 a2e075f40122d8daf587db126c562a67abd69cf9
-# Backported in version v6.1.8 616fd34d017000ecf9097368b13d8a266f4920b3
-CVE_STATUS[CVE-2022-4382] = "cpe-stable-backport: Backported in versions v5.4.230, v5.10.165, v5.15.90 and v6.1.8"
+CVE_STATUS[CVE-2023-32252] = "cpe-stable-backport: Backported in 6.1.29"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-26365
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 2f446ffe9d737e9a844b97887919c4fda18246e7
-# Backported in version v5.4.204 42112e8f94617d83943f8f3b8de2b66041905506
-# Backported in version v5.10.129 cfea428030be836d79a7690968232bb7fa4410f1
-# Backported in version v5.15.53 7ed65a4ad8fa9f40bc3979b32c54243d6a684ec9
-CVE_STATUS[CVE-2022-26365] = "cpe-stable-backport: Backported in versions v5.4.204, v5.10.129 and v5.15.53"
+CVE_STATUS[CVE-2023-32254] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-33740
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 307c8de2b02344805ebead3440d8feed28f2f010
-# Backported in version v5.4.204 04945b5beb73019145ac17a2565526afa7293c14
-# Backported in version v5.10.129 728d68bfe68d92eae1407b8a9edc7817d6227404
-# Backported in version v5.15.53 5dd0993c36832d33820238fc8dc741ba801b7961
-CVE_STATUS[CVE-2022-33740] = "cpe-stable-backport: Backported in versions v5.4.204, v5.10.129 and v5.15.53"
+CVE_STATUS[CVE-2023-32257] = "cpe-stable-backport: Backported in 6.1.29"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-33741
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 4491001c2e0fa69efbb748c96ec96b100a5cdb7e
-# Backported in version v5.4.204 ede57be88a5fff42cd00e6bcd071503194d398dd
-# Backported in version v5.10.129 4923217af5742a796821272ee03f8d6de15c0cca
-# Backported in version v5.15.53 ed3cfc690675d852c3416aedb271e0e7d179bf49
-CVE_STATUS[CVE-2022-33741] = "cpe-stable-backport: Backported in versions v5.4.204, v5.10.129 and v5.15.53"
+CVE_STATUS[CVE-2023-32258] = "cpe-stable-backport: Backported in 6.1.29"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-33742
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v5.19 2400617da7eebf9167d71a46122828bc479d64c9
-# Backported in version v5.4.204 60ac50daad36ef3fe9d70d89cfe3b95d381db997
-# Backported in version v5.10.129 cbbd2d2531539212ff090aecbea9877c996e6ce6
-# Backported in version v5.15.53 6d0a9127279a4533815202e30ad1b3a39f560ba3
-CVE_STATUS[CVE-2022-33742] = "cpe-stable-backport: Backported in versions v5.4.204, v5.10.129 and v5.15.53"
+CVE_STATUS[CVE-2023-32269] = "cpe-stable-backport: Backported in 6.1.11"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-42895
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 b1a2cd50c0357f243b7435a732b4e62ba3157a2e
-# Backported in version v5.4.224 6949400ec9feca7f88c0f6ca5cb5fdbcef419c89
-# Backported in version v5.10.154 26ca2ac091b49281d73df86111d16e5a76e43bd7
-# Backported in version v5.15.78 3e4697ffdfbb38a2755012c4e571546c89ab6422
-CVE_STATUS[CVE-2022-42895] = "cpe-stable-backport: Backported in versions v5.4.224, v5.10.154 and v5.15.78"
+CVE_STATUS[CVE-2023-3268] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-42896
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.1 711f8c3fb3db61897080468586b970c87c61d9e4
-# Backported in version v5.4.226 0d87bb6070361e5d1d9cb391ba7ee73413bc109b
-# Backported in version v5.10.154 6b6f94fb9a74dd2891f11de4e638c6202bc89476
-# Backported in version v5.15.78 81035e1201e26d57d9733ac59140a3e29befbc5a
-CVE_STATUS[CVE-2022-42896] = "cpe-stable-backport: Backported in versions v5.4.226, v5.10.154 and v5.15.78"
+CVE_STATUS[CVE-2023-3269] = "cpe-stable-backport: Backported in 6.1.37"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2022-38457
-# https://nvd.nist.gov/vuln/detail/CVE-2022-40133
-# Both CVE-2022-38457 & CVE-2022-40133 are fixed by the same commit:
-# Introduced in version v4.20 e14c02e6b6990e9f6ee18a214a22ac26bae1b25e
-# Patched in kernel since v6.2 a309c7194e8a2f8bd4539b9449917913f6c2cd50
-# Backported in version v6.1.7 7ac9578e45b20e3f3c0c8eb71f5417a499a7226a
-# See:
-#  * https://www.linuxkernelcves.com/cves/CVE-2022-38457
-#  * https://www.linuxkernelcves.com/cves/CVE-2022-40133
-#  * https://lore.kernel.org/all/CAODzB9q3OBD0k6W2bcWrSZo2jC3EvV0PrLyWmO07rxR4nQgkJA@mail.gmail.com/T/
-CVE_STATUS[CVE-2022-38457] = "cpe-stable-backport: Backported in version v6.1.7"
-CVE_STATUS[CVE-2022-40133] = "cpe-stable-backport: Backported in version v6.1.7"
+CVE_STATUS[CVE-2023-3312] = "fixed-version: only affects 6.2rc1 onwards"
 
-# Backported to 6.1.33
-CVE_STATUS[CVE-2022-48425] = "cpe-stable-backport: Backported in version v6.1.33"
+CVE_STATUS[CVE-2023-3317] = "fixed-version: only affects 6.2rc1 onwards"
 
-# 2023
+CVE_STATUS[CVE-2023-33203] = "cpe-stable-backport: Backported in 6.1.22"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0179
-# Patched in kernel since v6.2 696e1a48b1a1b01edad542a1ef293665864a4dd0
-# Backported in version v5.10.164 550efeff989b041f3746118c0ddd863c39ddc1aa
-# Backported in version v5.15.89 a8acfe2c6fb99f9375a9325807a179cd8c32e6e3
-# Backported in version v6.1.7 76ef74d4a379faa451003621a84e3498044e7aa3
-CVE_STATUS[CVE-2023-0179] = "cpe-stable-backport: Backported in versions v5.10.164, v5.15.89 and v6.1.7"
+# CVE-2023-33250 has no known resolution
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0266
-# Introduced in version v2.6.12 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
-# Patched in kernel since v6.2 56b88b50565cd8b946a2d00b0c83927b7ebb055e
-# Backported in version v5.15.88 26350c21bc5e97a805af878e092eb8125843fe2c
-# Backported in version v6.1.6 d6ad4bd1d896ae1daffd7628cd50f124280fb8b1
-CVE_STATUS[CVE-2023-0266] = "cpe-stable-backport: Backported in versions v5.15.88 and v6.1.6"
+CVE_STATUS[CVE-2023-33288] = "cpe-stable-backport: Backported in 6.1.22"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0394
-# Introduced in version 2.6.12 357b40a18b04c699da1d45608436e9b76b50e251
-# Patched in kernel since v6.2 cb3e9864cdbe35ff6378966660edbcbac955fe17
-# Backported in version v5.4.229 3998dba0f78a59922b0ef333ccfeb58d9410cd3d
-# Backported in version v5.10.164 6c9e2c11c33c35563d34d12b343d43b5c12200b5
-# Backported in version v5.15.89 456e3794e08a0b59b259da666e31d0884b376bcf
-# Backported in version v6.1.7 0afa5f0736584411771299074bbeca8c1f9706d4
-CVE_STATUS[CVE-2023-0394] = "cpe-stable-backport: Backported in versions v5.4.229, v5.10.164, v5.15.89 and v6.1.7"
+CVE_STATUS[CVE-2023-3338] = "fixed-version: Fixed after version 6.1rc1"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0386
-# Introduced in 5.11 459c7c565ac36ba09ffbf24231147f408fde4203
-# Patched in kernel v6.2 4f11ada10d0ad3fd53e2bd67806351de63a4f9c3
-# Backported in version 5.15.91 e91308e63710574c4b6a0cadda3e042a3699666e
-# Backported in version 6.1.9 42fea1c35254c49cce07c600d026cbc00c6d3c81
-CVE_STATUS[CVE-2023-0386] = "cpe-stable-backport: Backported in versions v5.15.91 and v6.1.9"
+CVE_STATUS[CVE-2023-3355] = "cpe-stable-backport: Backported in 6.1.16"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-0461
-# Introduced in version v4.13 734942cc4ea6478eed125af258da1bdbb4afe578
-# Patched in kernel since v6.2 2c02d41d71f90a5168391b6a5f2954112ba2307c
-# Backported in version v5.4.229 c6d29a5ffdbc362314853462a0e24e63330a654d
-# Backported in version v5.10.163 f8ed0a93b5d576bbaf01639ad816473bdfd1dcb0
-# Backported in version v5.15.88 dadd0dcaa67d27f550131de95c8e182643d2c9d6
-# Backported in version v6.1.5 7d242f4a0c8319821548c7176c09a6e0e71f223c
-CVE_STATUS[CVE-2023-0461] = "cpe-stable-backport: Backported in versions v5.4.229, v5.10.163, v5.15.88 and v6.1.5"
+CVE_STATUS[CVE-2023-3357] = "cpe-stable-backport: Backported in 6.1.2"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1073
-# Introduced in v3.16 1b15d2e5b8077670b1e6a33250a0d9577efff4a5
-# Patched in kernel v6.2 b12fece4c64857e5fab4290bf01b2e0317a88456
-# Backported in version 5.10.166 5dc3469a1170dd1344d262a332b26994214eeb58
-# Backported in version 5.15.91 2b49568254365c9c247beb0eabbaa15d0e279d64
-# Backported in version 6.1.9 cdcdc0531a51659527fea4b4d064af343452062d
-CVE_STATUS[CVE-2023-1073] = "cpe-stable-backport: Backported in versions v5.10.166, v5.15.91 and v6.1.9"
+CVE_STATUS[CVE-2023-3358] = "cpe-stable-backport: Backported in 6.1.9"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1074
-# Patched in kernel v6.2 458e279f861d3f61796894cd158b780765a1569f
-# Backported in version 5.15.91 3391bd42351be0beb14f438c7556912b9f96cb32
-# Backported in version 6.1.9 9f08bb650078dca24a13fea1c375358ed6292df3
-CVE_STATUS[CVE-2023-1074] = "cpe-stable-backport: Backported in versions v5.15.91 andv6.1.9"
+CVE_STATUS[CVE-2023-3359] = "cpe-stable-backport: Backported in 6.1.11"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1075
-# Introduced in v4.20 a42055e8d2c30d4decfc13ce943d09c7b9dad221
-# Patched in kernel v6.2 ffe2a22562444720b05bdfeb999c03e810d84cbb
-# Backported in version 6.1.11 37c0cdf7e4919e5f76381ac60817b67bcbdacb50
-# 5.15 still has issue, include/net/tls.h:is_tx_ready() would need patch
-CVE_STATUS[CVE-2023-1075] = "cpe-stable-backport: Backported in version v6.1.11"
+CVE_STATUS[CVE-2023-3389] = "fixed-version: Fixed after version 6.0rc1"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1076
-# Patched in kernel v6.3 a096ccca6e503a5c575717ff8a36ace27510ab0a
-# Backported in version v5.4.235 d92d87000eda9884d49f1acec1c1fccd63cd9b11
-# Backported in version v5.10.173 9a31af61f397500ccae49d56d809b2217d1e2178
-# Backported in version v5.15.99 67f9f02928a34aad0a2c11dab5eea269f5ecf427
-# Backported in version v6.1.16 b4ada752eaf1341f47bfa3d8ada377eca75a8d44
-# Backported in version v6.2.3 4aa4b4b3b3e9551c4de2bf2987247c28805fb8f6
-CVE_STATUS[CVE-2023-1076] = "cpe-stable-backport: Backported in versions v5.4.235, v5.10.173, v5.15.99, v6.1.16 and v6.2.3"
+CVE_STATUS[CVE-2023-3390] = "cpe-stable-backport: Backported in 6.1.35"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1077
-# Patched in kernel 6.3rc1 7c4a5b89a0b5a57a64b601775b296abf77a9fe97
-# Backported in version 5.15.99 2c36c390a74981d03f04f01fe7ee9c3ac3ea11f7
-# Backported in version 6.1.16 6b4fcc4e8a3016e85766c161daf0732fca16c3a3
-CVE_STATUS[CVE-2023-1077] = "cpe-stable-backport: Backported in versions v5.15.99 and v6.1.16"
+CVE_STATUS[CVE-2023-33951] = "cpe-stable-backport: Backported in 6.1.13"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1078
-# Patched in kernel 6.2 f753a68980cf4b59a80fe677619da2b1804f526d
-# Backported in version 5.15.94 528e3f3a4b53df36dafd10cdf6b8c0fe2aa1c4ba
-# Backported in version 6.1.12 1d52bbfd469af69fbcae88c67f160ce1b968e7f3
-CVE_STATUS[CVE-2023-1078] = "cpe-stable-backport: Backported in versions v5.15.94 and v6.1.12"
+CVE_STATUS[CVE-2023-33952] = "cpe-stable-backport: Backported in 6.1.13"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1079
-# Patched in kernel since v6.3-rc1 4ab3a086d10eeec1424f2e8a968827a6336203df
-# Backported in version v5.4.235 dd08e68d04d08d2f42b09162c939a0b0841216cc
-# Backported in version v5.10.173 21a2eec4a440060a6eb294dc890eaf553101ba09
-# Backported in version v5.15.99 3959316f8ceb17866646abc6be4a332655407138
-# Backported in version v6.1.16 ee907829b36949c452c6f89485cb2a58e97c048e
-# Backported in version v6.2.3 b08bcfb4c97d7bd41b362cff44b2c537ce9e8540
-CVE_STATUS[CVE-2023-1079] = "cpe-stable-backport: Backported in versions v5.4.235, v5.10.173, v5.15.99, v6.1.16 and v6.2.3"
+# CVE-2023-3397 has no known resolution
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1118
-# Introduced in version v2.6.36 9ea53b74df9c4681f5bb2da6b2e10e37d87ea6d6
-# Patched in kernel since v6.3-rc1 29b0589a865b6f66d141d79b2dd1373e4e50fe17
-# Backported in version v5.4.235 d120334278b370b6a1623a75ebe53b0c76cb247c
-# Backported in version v5.10.173 78da5a378bdacd5bf68c3a6389bdc1dd0c0f5b3c
-# Backported in version v5.15.99 29962c478e8b2e6a6154d8d84b8806dbe36f9c28
-# Backported in version v6.1.16 029c1410e345ce579db5c007276340d072aac54a
-# Backported in version v6.2.3 182ea492aae5b64067277e60a4ea5995c4628555
-CVE_STATUS[CVE-2023-1118] = "cpe-stable-backport: Backported in versions v5.4.235, v5.10.173, v5.15.99, v6.1.16 and v6.2.3"
+CVE_STATUS[CVE-2023-34255] = "cpe-stable-backport: Backported in 6.1.33"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1281
-# Introduced in version v4.14 9b0d4446b56904b59ae3809913b0ac760fa941a6
-# Patched in kernel since v6.2 ee059170b1f7e94e55fa6cadee544e176a6e59c2
-# Backported in version v5.10.169 eb8e9d8572d1d9df17272783ad8a84843ce559d4
-# Backported in version v5.15.95 becf55394f6acb60dd60634a1c797e73c747f9da
-# Backported in version v6.1.13 bd662ba56187b5ef8a62a3511371cd38299a507f
-CVE_STATUS[CVE-2023-1281] = "cpe-stable-backport: Backported in versions v5.10.169, v5.15.95 and v6.1.13"
+CVE_STATUS[CVE-2023-34256] = "cpe-stable-backport: Backported in 6.1.29"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1513
-# Patched in kernel since v6.2 2c10b61421a28e95a46ab489fd56c0f442ff6952
-# Backported in version v5.4.232 9f95a161a7deef62d6d2f57b1a69f94e0546d8d8
-# Backported in version v5.10.169 6416c2108ba54d569e4c98d3b62ac78cb12e7107
-# Backported in version v5.15.95 35351e3060d67eed8af1575d74b71347a87425d8
-# Backported in version v6.1.13 747ca7c8a0c7bce004709143d1cd6596b79b1deb
-CVE_STATUS[CVE-2023-1513] = "cpe-stable-backport: Backported in versions v5.4.232, v5.10.169, v5.15.95 and v6.1.13"
+CVE_STATUS[CVE-2023-3439] = "fixed-version: Fixed after version 5.18rc5"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1652
-# Patched in kernel since v6.2 e6cf91b7b47ff82b624bdfe2fdcde32bb52e71dd
-# Backported in version v5.15.91 0a27dcd5343026ac0cb168ee63304255372b7a36
-# Backported in version v6.1.9 32d5eb95f8f0e362e37c393310b13b9e95404560
-# Ref: https://www.linuxkernelcves.com/cves/CVE-2023-1652
-# Ref: Debian kernel-sec team: https://salsa.debian.org/kernel-team/kernel-sec/-/blob/1fa77554d4721da54e2df06fa1908a83ba6b1045/retired/CVE-2023-1652
-CVE_STATUS[CVE-2023-1652] = "cpe-stable-backport: Backported in versions v5.15.91 and v6.1.9"
+CVE_STATUS[CVE-2023-35001] = "cpe-stable-backport: Backported in 6.1.39"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-1829
-# Patched in kernel since v6.3-rc1 8c710f75256bb3cf05ac7b1672c82b92c43f3d28
-# Backported in version v5.4.235 7a6fb69bbcb21e9ce13bdf18c008c268874f0480
-# Backported in version v5.10.173 18c3fa7a7fdbb4d21dafc8a7710ae2c1680930f6
-# Backported in version v5.15.100 7c183dc0af472dec33d2c0786a5e356baa8cad19
-# Backported in version v6.1.18 3abebc503a5148072052c229c6b04b329a420ecd
-# Backported in version v6.2.5 372ae77cf11d11fb118cbe2d37def9dd5f826abd
-# Ref: https://www.linuxkernelcves.com/cves/CVE-2023-1829
-# Ref: Debian kernel-sec team : https://salsa.debian.org/kernel-team/kernel-sec/-/blob/1fa77554d4721da54e2df06fa1908a83ba6b1045/active/CVE-2023-1829
-CVE_STATUS[CVE-2023-1829] = "cpe-stable-backport: Backported in versions v5.4.235, v5.10.173, v5.15.100, v6.1.18 and v6.2.5"
+CVE_STATUS[CVE-2023-3567] = "cpe-stable-backport: Backported in 6.1.11"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-28466
-# Introduced in version v4.13 3c4d7559159bfe1e3b94df3a657b2cda3a34e218
-# Patched in kernel since v6.3-rc2 49c47cc21b5b7a3d8deb18fc57b0aa2ab1286962
-# Backported in version v5.15.105 0b54d75aa43a1edebc8a3770901f5c3557ee0daa
-# Backported in version v6.1.20 14c17c673e1bba08032d245d5fb025d1cbfee123
-# Backported in version v6.2.7 5231fa057bb0e52095591b303cf95ebd17bc62ce
-CVE_STATUS[CVE-2023-28466] = "cpe-stable-backport: Backported in versions v5.15.05, v6.1.20 and v6.2.7"
+# CVE-2023-35693 has no known resolution
 
+CVE_STATUS[CVE-2023-35788] = "cpe-stable-backport: Backported in 6.1.33"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-0615
-# Fixed in 6.1 onwards
-CVE_STATUS[CVE-2023-0615] = "fixed-version: Fixed in version v6.1 onwards"
+CVE_STATUS[CVE-2023-35823] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-28328
-# Fixed with 6.1.2
-CVE_STATUS[CVE-2023-28328] = "fixed-version: Fixed in version v6.1.2"
+CVE_STATUS[CVE-2023-35824] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-2162
-# Fixed in 6.1.11
-CVE_STATUS[CVE-2023-2162] = "fixed-version: Fixed in version v6.1.11"
+CVE_STATUS[CVE-2023-35826] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-0459
-# Fixed in 6.1.14 onwards
-CVE_STATUS[CVE-2023-0459] = "fixed-version: Fixed in version v6.1.14"
+# CVE-2023-35827 has no known resolution
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-1999
-# https://www.linuxkernelcves.com/cves/CVE-2023-2985
-# Fixed in 6.1.16
-CVE_STATUS[CVE-2023-1998] = "fixed-version: Fixed in version v6.1.16"
-CVE_STATUS[CVE-2023-2985] = "fixed-version: Fixed in version v6.1.16"
+CVE_STATUS[CVE-2023-35828] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-1855
-# https://www.linuxkernelcves.com/cves/CVE-2023-1990
-# https://www.linuxkernelcves.com/cves/CVE-2023-2235
-# https://www.linuxkernelcves.com/cves/CVE-2023-30456
-# Fixed in 6.1.21
-CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_6121"
-CVE_STATUS_KERNEL_6121 = "CVE-2023-1855 CVE-2023-1990 CVE-2023-2235 CVE-2023-30456"
-CVE_STATUS_KERNEL_6121[status] =  "fixed-version: Fixed in version v6.1.21"
+CVE_STATUS[CVE-2023-35829] = "cpe-stable-backport: Backported in 6.1.28"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-1989
-# https://www.linuxkernelcves.com/cves/CVE-2023-2194
-# https://www.linuxkernelcves.com/cves/CVE-2023-28866
-# https://www.linuxkernelcves.com/cves/CVE-2023-30772
-# https://www.linuxkernelcves.com/cves/CVE-2023-33203
-# https://www.linuxkernelcves.com/cves/CVE-2023-33288
-# Fixed with 6.1.22
-CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_6122"
-CVE_STATUS_KERNEL_6122 = "CVE-2023-2194 CVE-2023-1989 CVE-2023-28866 CVE-2023-30772 CVE-2023-33203 CVE-2023-33288"
-CVE_STATUS_KERNEL_6122[status] =  "fixed-version: Fixed in version v6.1.22"
+CVE_STATUS[CVE-2023-3609] = "cpe-stable-backport: Backported in 6.1.35"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-1611
-# Fixed in 6.1.23
-CVE_STATUS[CVE-2023-1611] = "fixed-version: Fixed in version v6.1.23"
+CVE_STATUS[CVE-2023-3610] = "cpe-stable-backport: Backported in 6.1.36"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-1859
-# Fixed in 6.1.25
-CVE_STATUS[CVE-2023-1859] = "fixed-version: Fixed in version v6.1.25"
+CVE_STATUS[CVE-2023-3611] = "cpe-stable-backport: Backported in 6.1.40"
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-2156
-# https://www.linuxkernelcves.com/cves/CVE-2023-31436
-# Fixed in 6.1.26
-CVE_STATUS[CVE-2023-2156] = "fixed-version: Fixed in version v6.1.26"
-CVE_STATUS[CVE-2023-31436] = "fixed-version: Fixed in version v6.1.26"
+# CVE-2023-3640 has no known resolution
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-1380
-# https://www.linuxkernelcves.com/cves/CVE-2023-2002
-# Fixed in 6.1.27
-CVE_STATUS[CVE-2023-1380] = "fixed-version: Fixed in version v6.1.27"
-CVE_STATUS[CVE-2023-2002] = "fixed-version: Fixed in version v6.1.27"
+# CVE-2023-37453 has no known resolution
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-32233
-# Fixed with 6.1.28
-CVE_STATUS[CVE-2023-32233] = "fixed-version: Fixed in version v6.1.28"
+# CVE-2023-37454 has no known resolution
 
-# https://www.linuxkernelcves.com/cves/CVE-2023-34256
-# Fixed in 6.1.29
-CVE_STATUS[CVE-2023-34256] = "fixed-version: Fixed in version v6.1.29"
+# CVE-2023-3772 has no known resolution
 
+# CVE-2023-3773 has no known resolution
 
-# Backported to 6.1.9
-CVE_STATUS[CVE-2023-3358] = "cpe-stable-backport: Backported in version v6.1.9"
+CVE_STATUS[CVE-2023-3776] = "cpe-stable-backport: Backported in 6.1.40"
 
-# Backported to 6.1.11
-CVE_STATUS[CVE-2023-3359] = "cpe-stable-backport: Backported in version v6.1.11"
-CVE_STATUS[CVE-2023-3161] = "cpe-stable-backport: Backported in version v6.1.11"
+CVE_STATUS[CVE-2023-3812] = "fixed-version: Fixed after version 6.1rc4"
 
-# Backported to 6.1.16
-CVE_STATUS[CVE-2023-3220] = "cpe-stable-backport: Backported in version v6.1.16"
+CVE_STATUS[CVE-2023-38409] = "cpe-stable-backport: Backported in 6.1.25"
 
-# Backported to 6.1.28
-CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_6128"
-CVE_STATUS_KERNEL_6128 = "CVE-2023-3268 CVE-2023-35823 CVE-2023-35824 CVE-2023-35826 CVE-2023-35828 CVE-2023-35829"
-CVE_STATUS_KERNEL_6122[status] = "cpe-stable-backport: Backported in version v6.1.28"
+CVE_STATUS[CVE-2023-38426] = "cpe-stable-backport: Backported in 6.1.30"
 
-# Backported to 6.1.30
-# Backported to 6.1.30 as 9a342d4
-CVE_STATUS[CVE-2023-3090] = "cpe-stable-backport: Backported in version v6.1.30"
-CVE_STATUS[CVE-2023-3141] = "cpe-stable-backport: Backported in version v6.1.30 as 9a342d4"
+CVE_STATUS[CVE-2023-38427] = "cpe-stable-backport: Backported in 6.1.34"
 
-# Backported to 6.1.33
-CVE_STATUS_GROUPS += "CVE_STATUS_KERNEL_6133"
-CVE_STATUS_KERNEL_6133 = "CVE-2023-2124 CVE-2023-3212 CVE-2023-35788"
-CVE_STATUS_KERNEL_6133[status] = "cpe-stable-backport: Backported in version v6.1.33"
+CVE_STATUS[CVE-2023-38428] = "cpe-stable-backport: Backported in 6.1.30"
 
-# Backported to 6.1.35
-CVE_STATUS[CVE-2023-3117] = "cpe-stable-backport: Backported in version v6.1.35"
-CVE_STATUS[CVE-2023-3390] = "cpe-stable-backport: Backported in version v6.1.35"
+CVE_STATUS[CVE-2023-38429] = "cpe-stable-backport: Backported in 6.1.30"
 
-# Backported to 6.1.36
-CVE_STATUS[CVE-2023-3389] = "cpe-stable-backport: Backported in version v6.1.36"
+CVE_STATUS[CVE-2023-38430] = "cpe-stable-backport: Backported in 6.1.35"
 
-# Only in 6.2.0 to 6.2.14, and 6.3.0 to 6.3.1
-CVE_STATUS[CVE-2023-3312] = "not-applicable-config: Only in versions v6.2.0 to v6.2.4 and v6.3.0 to v6.3.1"
+CVE_STATUS[CVE-2023-38431] = "cpe-stable-backport: Backported in 6.1.34"
 
+CVE_STATUS[CVE-2023-38432] = "cpe-stable-backport: Backported in 6.1.36"
 
-# https://nvd.nist.gov/vuln/detail/CVE-2023-23005
-# Introduced in version v6.1 7b88bda3761b95856cf97822efe8281c8100067b
-# Patched in kernel since v6.2 4a625ceee8a0ab0273534cb6b432ce6b331db5ee
-# But, the CVE is disputed:
-CVE_STATUS[CVE-2023-23005] = "disputed: There are no realistic cases \
-in which a user can cause the alloc_memory_type error case to be reached. \
-See: https://bugzilla.suse.com/show_bug.cgi?id=1208844#c2"
+CVE_STATUS[CVE-2023-3863] = "cpe-stable-backport: Backported in 6.1.39"
 
-CVE_STATUS[CVE-2023-28464] = "not-applicable-config: Only in 6.3-rc"
diff --git a/poky/meta/recipes-kernel/linux/cve-exclusion_6.4.inc b/poky/meta/recipes-kernel/linux/cve-exclusion_6.4.inc
new file mode 100644
index 0000000..98e9ee2
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/cve-exclusion_6.4.inc
@@ -0,0 +1,4967 @@
+# Auto-generated CVE metadata, DO NOT EDIT BY HAND.
+# Generated at 2023-08-09 15:51:30.073765 for version 6.4.9
+
+CVE_STATUS[CVE-2003-1604] = "fixed-version: Fixed after version 2.6.12rc2"
+
+CVE_STATUS[CVE-2004-0230] = "fixed-version: Fixed after version 3.6rc1"
+
+# CVE-2005-3660 has no known resolution
+
+CVE_STATUS[CVE-2006-3635] = "fixed-version: Fixed after version 2.6.26rc5"
+
+CVE_STATUS[CVE-2006-5331] = "fixed-version: Fixed after version 2.6.19rc3"
+
+CVE_STATUS[CVE-2006-6128] = "fixed-version: Fixed after version 2.6.19rc2"
+
+# CVE-2007-3719 has no known resolution
+
+CVE_STATUS[CVE-2007-4774] = "fixed-version: Fixed after version 2.6.12rc2"
+
+CVE_STATUS[CVE-2007-6761] = "fixed-version: Fixed after version 2.6.24rc6"
+
+CVE_STATUS[CVE-2007-6762] = "fixed-version: Fixed after version 2.6.20rc5"
+
+# CVE-2008-2544 has no known resolution
+
+# CVE-2008-4609 has no known resolution
+
+CVE_STATUS[CVE-2008-7316] = "fixed-version: Fixed after version 2.6.25rc1"
+
+CVE_STATUS[CVE-2009-2692] = "fixed-version: Fixed after version 2.6.31rc6"
+
+CVE_STATUS[CVE-2010-0008] = "fixed-version: Fixed after version 2.6.23rc9"
+
+CVE_STATUS[CVE-2010-3432] = "fixed-version: Fixed after version 2.6.36rc5"
+
+# CVE-2010-4563 has no known resolution
+
+CVE_STATUS[CVE-2010-4648] = "fixed-version: Fixed after version 2.6.37rc6"
+
+CVE_STATUS[CVE-2010-5313] = "fixed-version: Fixed after version 2.6.38rc1"
+
+# CVE-2010-5321 has no known resolution
+
+CVE_STATUS[CVE-2010-5328] = "fixed-version: Fixed after version 2.6.35rc1"
+
+CVE_STATUS[CVE-2010-5329] = "fixed-version: Fixed after version 2.6.39rc1"
+
+CVE_STATUS[CVE-2010-5331] = "fixed-version: Fixed after version 2.6.34rc7"
+
+CVE_STATUS[CVE-2010-5332] = "fixed-version: Fixed after version 2.6.37rc1"
+
+CVE_STATUS[CVE-2011-4098] = "fixed-version: Fixed after version 3.2rc1"
+
+CVE_STATUS[CVE-2011-4131] = "fixed-version: Fixed after version 3.3rc1"
+
+CVE_STATUS[CVE-2011-4915] = "fixed-version: Fixed after version 3.2rc1"
+
+# CVE-2011-4916 has no known resolution
+
+# CVE-2011-4917 has no known resolution
+
+CVE_STATUS[CVE-2011-5321] = "fixed-version: Fixed after version 3.2rc1"
+
+CVE_STATUS[CVE-2011-5327] = "fixed-version: Fixed after version 3.1rc1"
+
+CVE_STATUS[CVE-2012-0957] = "fixed-version: Fixed after version 3.7rc2"
+
+CVE_STATUS[CVE-2012-2119] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2136] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2137] = "fixed-version: Fixed after version 3.5rc2"
+
+CVE_STATUS[CVE-2012-2313] = "fixed-version: Fixed after version 3.4rc6"
+
+CVE_STATUS[CVE-2012-2319] = "fixed-version: Fixed after version 3.4rc6"
+
+CVE_STATUS[CVE-2012-2372] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2012-2375] = "fixed-version: Fixed after version 3.4rc1"
+
+CVE_STATUS[CVE-2012-2390] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-2669] = "fixed-version: Fixed after version 3.5rc4"
+
+CVE_STATUS[CVE-2012-2744] = "fixed-version: Fixed after version 2.6.34rc1"
+
+CVE_STATUS[CVE-2012-2745] = "fixed-version: Fixed after version 3.4rc3"
+
+CVE_STATUS[CVE-2012-3364] = "fixed-version: Fixed after version 3.5rc6"
+
+CVE_STATUS[CVE-2012-3375] = "fixed-version: Fixed after version 3.4rc5"
+
+CVE_STATUS[CVE-2012-3400] = "fixed-version: Fixed after version 3.5rc5"
+
+CVE_STATUS[CVE-2012-3412] = "fixed-version: Fixed after version 3.6rc2"
+
+CVE_STATUS[CVE-2012-3430] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-3510] = "fixed-version: Fixed after version 2.6.19rc4"
+
+CVE_STATUS[CVE-2012-3511] = "fixed-version: Fixed after version 3.5rc6"
+
+CVE_STATUS[CVE-2012-3520] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-3552] = "fixed-version: Fixed after version 3.0rc1"
+
+# Skipping CVE-2012-4220, no affected_versions
+
+# Skipping CVE-2012-4221, no affected_versions
+
+# Skipping CVE-2012-4222, no affected_versions
+
+CVE_STATUS[CVE-2012-4398] = "fixed-version: Fixed after version 3.4rc1"
+
+CVE_STATUS[CVE-2012-4444] = "fixed-version: Fixed after version 2.6.36rc4"
+
+CVE_STATUS[CVE-2012-4461] = "fixed-version: Fixed after version 3.7rc6"
+
+CVE_STATUS[CVE-2012-4467] = "fixed-version: Fixed after version 3.6rc5"
+
+CVE_STATUS[CVE-2012-4508] = "fixed-version: Fixed after version 3.7rc3"
+
+CVE_STATUS[CVE-2012-4530] = "fixed-version: Fixed after version 3.8rc1"
+
+# CVE-2012-4542 has no known resolution
+
+CVE_STATUS[CVE-2012-4565] = "fixed-version: Fixed after version 3.7rc4"
+
+CVE_STATUS[CVE-2012-5374] = "fixed-version: Fixed after version 3.8rc1"
+
+CVE_STATUS[CVE-2012-5375] = "fixed-version: Fixed after version 3.8rc1"
+
+CVE_STATUS[CVE-2012-5517] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6536] = "fixed-version: Fixed after version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6537] = "fixed-version: Fixed after version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6538] = "fixed-version: Fixed after version 3.6rc7"
+
+CVE_STATUS[CVE-2012-6539] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6540] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6541] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6542] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6543] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6544] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6545] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6546] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2012-6547] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6548] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6549] = "fixed-version: Fixed after version 3.6rc1"
+
+CVE_STATUS[CVE-2012-6638] = "fixed-version: Fixed after version 3.3rc1"
+
+CVE_STATUS[CVE-2012-6647] = "fixed-version: Fixed after version 3.6rc2"
+
+CVE_STATUS[CVE-2012-6657] = "fixed-version: Fixed after version 3.6"
+
+CVE_STATUS[CVE-2012-6689] = "fixed-version: Fixed after version 3.6rc5"
+
+CVE_STATUS[CVE-2012-6701] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-6703] = "fixed-version: Fixed after version 3.7rc1"
+
+CVE_STATUS[CVE-2012-6704] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2012-6712] = "fixed-version: Fixed after version 3.4rc1"
+
+CVE_STATUS[CVE-2013-0160] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-0190] = "fixed-version: Fixed after version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0216] = "fixed-version: Fixed after version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0217] = "fixed-version: Fixed after version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0228] = "fixed-version: Fixed after version 3.8"
+
+CVE_STATUS[CVE-2013-0231] = "fixed-version: Fixed after version 3.8rc7"
+
+CVE_STATUS[CVE-2013-0268] = "fixed-version: Fixed after version 3.8rc6"
+
+CVE_STATUS[CVE-2013-0290] = "fixed-version: Fixed after version 3.8"
+
+CVE_STATUS[CVE-2013-0309] = "fixed-version: Fixed after version 3.7rc1"
+
+CVE_STATUS[CVE-2013-0310] = "fixed-version: Fixed after version 3.5"
+
+CVE_STATUS[CVE-2013-0311] = "fixed-version: Fixed after version 3.7rc8"
+
+CVE_STATUS[CVE-2013-0313] = "fixed-version: Fixed after version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0343] = "fixed-version: Fixed after version 3.11rc7"
+
+CVE_STATUS[CVE-2013-0349] = "fixed-version: Fixed after version 3.8rc6"
+
+CVE_STATUS[CVE-2013-0871] = "fixed-version: Fixed after version 3.8rc5"
+
+CVE_STATUS[CVE-2013-0913] = "fixed-version: Fixed after version 3.9rc4"
+
+CVE_STATUS[CVE-2013-0914] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1059] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-1763] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-1767] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-1772] = "fixed-version: Fixed after version 3.5rc1"
+
+CVE_STATUS[CVE-2013-1773] = "fixed-version: Fixed after version 3.3rc1"
+
+CVE_STATUS[CVE-2013-1774] = "fixed-version: Fixed after version 3.8rc5"
+
+CVE_STATUS[CVE-2013-1792] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1796] = "fixed-version: Fixed after version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1797] = "fixed-version: Fixed after version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1798] = "fixed-version: Fixed after version 3.9rc4"
+
+CVE_STATUS[CVE-2013-1819] = "fixed-version: Fixed after version 3.8rc6"
+
+CVE_STATUS[CVE-2013-1826] = "fixed-version: Fixed after version 3.6rc7"
+
+CVE_STATUS[CVE-2013-1827] = "fixed-version: Fixed after version 3.6rc3"
+
+CVE_STATUS[CVE-2013-1828] = "fixed-version: Fixed after version 3.9rc2"
+
+CVE_STATUS[CVE-2013-1848] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1858] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1860] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-1928] = "fixed-version: Fixed after version 3.7rc3"
+
+CVE_STATUS[CVE-2013-1929] = "fixed-version: Fixed after version 3.9rc6"
+
+# Skipping CVE-2013-1935, no affected_versions
+
+CVE_STATUS[CVE-2013-1943] = "fixed-version: Fixed after version 3.0rc1"
+
+CVE_STATUS[CVE-2013-1956] = "fixed-version: Fixed after version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1957] = "fixed-version: Fixed after version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1958] = "fixed-version: Fixed after version 3.9rc5"
+
+CVE_STATUS[CVE-2013-1959] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-1979] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2015] = "fixed-version: Fixed after version 3.8rc2"
+
+CVE_STATUS[CVE-2013-2017] = "fixed-version: Fixed after version 2.6.34"
+
+CVE_STATUS[CVE-2013-2058] = "fixed-version: Fixed after version 3.8rc4"
+
+CVE_STATUS[CVE-2013-2094] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2128] = "fixed-version: Fixed after version 2.6.34rc4"
+
+CVE_STATUS[CVE-2013-2140] = "fixed-version: Fixed after version 3.11rc3"
+
+CVE_STATUS[CVE-2013-2141] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2146] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2147] = "fixed-version: Fixed after version 3.12rc3"
+
+CVE_STATUS[CVE-2013-2148] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-2164] = "fixed-version: Fixed after version 3.11rc1"
+
+# Skipping CVE-2013-2188, no affected_versions
+
+CVE_STATUS[CVE-2013-2206] = "fixed-version: Fixed after version 3.9rc4"
+
+# Skipping CVE-2013-2224, no affected_versions
+
+CVE_STATUS[CVE-2013-2232] = "fixed-version: Fixed after version 3.10"
+
+CVE_STATUS[CVE-2013-2234] = "fixed-version: Fixed after version 3.10"
+
+CVE_STATUS[CVE-2013-2237] = "fixed-version: Fixed after version 3.9rc6"
+
+# Skipping CVE-2013-2239, no affected_versions
+
+CVE_STATUS[CVE-2013-2546] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2547] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2548] = "fixed-version: Fixed after version 3.9rc1"
+
+CVE_STATUS[CVE-2013-2596] = "fixed-version: Fixed after version 3.9rc8"
+
+CVE_STATUS[CVE-2013-2634] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2635] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2636] = "fixed-version: Fixed after version 3.9rc3"
+
+CVE_STATUS[CVE-2013-2850] = "fixed-version: Fixed after version 3.10rc4"
+
+CVE_STATUS[CVE-2013-2851] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-2852] = "fixed-version: Fixed after version 3.10rc6"
+
+CVE_STATUS[CVE-2013-2888] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2889] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2890] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2891] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2892] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2893] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2894] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2895] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2896] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2897] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-2898] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2899] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-2929] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-2930] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-3076] = "fixed-version: Fixed after version 3.9"
+
+CVE_STATUS[CVE-2013-3222] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3223] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3224] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3225] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3226] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3227] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3228] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3229] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3230] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3231] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3232] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3233] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3234] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3235] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3236] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3237] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3301] = "fixed-version: Fixed after version 3.9rc7"
+
+CVE_STATUS[CVE-2013-3302] = "fixed-version: Fixed after version 3.8rc3"
+
+CVE_STATUS[CVE-2013-4125] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4127] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4129] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4162] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4163] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2013-4205] = "fixed-version: Fixed after version 3.11rc5"
+
+CVE_STATUS[CVE-2013-4220] = "fixed-version: Fixed after version 3.10rc4"
+
+CVE_STATUS[CVE-2013-4247] = "fixed-version: Fixed after version 3.10rc5"
+
+CVE_STATUS[CVE-2013-4254] = "fixed-version: Fixed after version 3.11rc6"
+
+CVE_STATUS[CVE-2013-4270] = "fixed-version: Fixed after version 3.12rc4"
+
+CVE_STATUS[CVE-2013-4299] = "fixed-version: Fixed after version 3.12rc6"
+
+CVE_STATUS[CVE-2013-4300] = "fixed-version: Fixed after version 3.11"
+
+CVE_STATUS[CVE-2013-4312] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2013-4343] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-4345] = "fixed-version: Fixed after version 3.13rc2"
+
+CVE_STATUS[CVE-2013-4348] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-4350] = "fixed-version: Fixed after version 3.12rc2"
+
+CVE_STATUS[CVE-2013-4387] = "fixed-version: Fixed after version 3.12rc4"
+
+CVE_STATUS[CVE-2013-4470] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2013-4483] = "fixed-version: Fixed after version 3.10rc1"
+
+CVE_STATUS[CVE-2013-4511] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4512] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4513] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4514] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4515] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4516] = "fixed-version: Fixed after version 3.12"
+
+CVE_STATUS[CVE-2013-4563] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-4579] = "fixed-version: Fixed after version 3.13rc7"
+
+CVE_STATUS[CVE-2013-4587] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-4588] = "fixed-version: Fixed after version 2.6.33rc4"
+
+CVE_STATUS[CVE-2013-4591] = "fixed-version: Fixed after version 3.8rc1"
+
+CVE_STATUS[CVE-2013-4592] = "fixed-version: Fixed after version 3.7rc1"
+
+# Skipping CVE-2013-4737, no affected_versions
+
+# Skipping CVE-2013-4738, no affected_versions
+
+# Skipping CVE-2013-4739, no affected_versions
+
+CVE_STATUS[CVE-2013-5634] = "fixed-version: Fixed after version 3.10rc5"
+
+CVE_STATUS[CVE-2013-6282] = "fixed-version: Fixed after version 3.6rc6"
+
+CVE_STATUS[CVE-2013-6367] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6368] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6376] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6378] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6380] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6381] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6382] = "fixed-version: Fixed after version 3.13rc4"
+
+CVE_STATUS[CVE-2013-6383] = "fixed-version: Fixed after version 3.12"
+
+# Skipping CVE-2013-6392, no affected_versions
+
+CVE_STATUS[CVE-2013-6431] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2013-6432] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-6885] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2013-7026] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7027] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2013-7263] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7264] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7265] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7266] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7267] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7268] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7269] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7270] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7271] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7281] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7339] = "fixed-version: Fixed after version 3.13rc7"
+
+CVE_STATUS[CVE-2013-7348] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2013-7421] = "fixed-version: Fixed after version 3.19rc1"
+
+# CVE-2013-7445 has no known resolution
+
+CVE_STATUS[CVE-2013-7446] = "fixed-version: Fixed after version 4.4rc4"
+
+CVE_STATUS[CVE-2013-7470] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2014-0038] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2014-0049] = "fixed-version: Fixed after version 3.14rc5"
+
+CVE_STATUS[CVE-2014-0055] = "fixed-version: Fixed after version 3.14"
+
+CVE_STATUS[CVE-2014-0069] = "fixed-version: Fixed after version 3.14rc4"
+
+CVE_STATUS[CVE-2014-0077] = "fixed-version: Fixed after version 3.14"
+
+CVE_STATUS[CVE-2014-0100] = "fixed-version: Fixed after version 3.14rc7"
+
+CVE_STATUS[CVE-2014-0101] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-0102] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-0131] = "fixed-version: Fixed after version 3.14rc7"
+
+CVE_STATUS[CVE-2014-0155] = "fixed-version: Fixed after version 3.15rc2"
+
+CVE_STATUS[CVE-2014-0181] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2014-0196] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2014-0203] = "fixed-version: Fixed after version 2.6.33rc5"
+
+CVE_STATUS[CVE-2014-0205] = "fixed-version: Fixed after version 2.6.37rc1"
+
+CVE_STATUS[CVE-2014-0206] = "fixed-version: Fixed after version 3.16rc3"
+
+# Skipping CVE-2014-0972, no affected_versions
+
+CVE_STATUS[CVE-2014-1438] = "fixed-version: Fixed after version 3.13"
+
+CVE_STATUS[CVE-2014-1444] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2014-1445] = "fixed-version: Fixed after version 3.12rc7"
+
+CVE_STATUS[CVE-2014-1446] = "fixed-version: Fixed after version 3.13rc7"
+
+CVE_STATUS[CVE-2014-1690] = "fixed-version: Fixed after version 3.13rc8"
+
+CVE_STATUS[CVE-2014-1737] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2014-1738] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2014-1739] = "fixed-version: Fixed after version 3.15rc6"
+
+CVE_STATUS[CVE-2014-1874] = "fixed-version: Fixed after version 3.14rc2"
+
+CVE_STATUS[CVE-2014-2038] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2014-2039] = "fixed-version: Fixed after version 3.14rc3"
+
+CVE_STATUS[CVE-2014-2309] = "fixed-version: Fixed after version 3.14rc7"
+
+CVE_STATUS[CVE-2014-2523] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2014-2568] = "fixed-version: Fixed after version 3.14"
+
+CVE_STATUS[CVE-2014-2580] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2672] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2673] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2678] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2706] = "fixed-version: Fixed after version 3.14rc6"
+
+CVE_STATUS[CVE-2014-2739] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-2851] = "fixed-version: Fixed after version 3.15rc2"
+
+CVE_STATUS[CVE-2014-2889] = "fixed-version: Fixed after version 3.2rc7"
+
+CVE_STATUS[CVE-2014-3122] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-3144] = "fixed-version: Fixed after version 3.15rc2"
+
+CVE_STATUS[CVE-2014-3145] = "fixed-version: Fixed after version 3.15rc2"
+
+CVE_STATUS[CVE-2014-3153] = "fixed-version: Fixed after version 3.15"
+
+CVE_STATUS[CVE-2014-3180] = "fixed-version: Fixed after version 3.17rc4"
+
+CVE_STATUS[CVE-2014-3181] = "fixed-version: Fixed after version 3.17rc3"
+
+CVE_STATUS[CVE-2014-3182] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3183] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3184] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3185] = "fixed-version: Fixed after version 3.17rc3"
+
+CVE_STATUS[CVE-2014-3186] = "fixed-version: Fixed after version 3.17rc3"
+
+# Skipping CVE-2014-3519, no affected_versions
+
+CVE_STATUS[CVE-2014-3534] = "fixed-version: Fixed after version 3.16rc7"
+
+CVE_STATUS[CVE-2014-3535] = "fixed-version: Fixed after version 2.6.36rc1"
+
+CVE_STATUS[CVE-2014-3601] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-3610] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3611] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3631] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-3645] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2014-3646] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3647] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-3673] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3687] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3688] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3690] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-3917] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-3940] = "fixed-version: Fixed after version 3.15"
+
+CVE_STATUS[CVE-2014-4014] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-4027] = "fixed-version: Fixed after version 3.14rc1"
+
+CVE_STATUS[CVE-2014-4157] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-4171] = "fixed-version: Fixed after version 3.16rc3"
+
+# Skipping CVE-2014-4322, no affected_versions
+
+# Skipping CVE-2014-4323, no affected_versions
+
+CVE_STATUS[CVE-2014-4508] = "fixed-version: Fixed after version 3.16rc3"
+
+CVE_STATUS[CVE-2014-4608] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-4611] = "fixed-version: Fixed after version 3.16rc3"
+
+CVE_STATUS[CVE-2014-4652] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4653] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4654] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4655] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4656] = "fixed-version: Fixed after version 3.16rc2"
+
+CVE_STATUS[CVE-2014-4667] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-4699] = "fixed-version: Fixed after version 3.16rc4"
+
+CVE_STATUS[CVE-2014-4943] = "fixed-version: Fixed after version 3.16rc6"
+
+CVE_STATUS[CVE-2014-5045] = "fixed-version: Fixed after version 3.16rc7"
+
+CVE_STATUS[CVE-2014-5077] = "fixed-version: Fixed after version 3.16"
+
+CVE_STATUS[CVE-2014-5206] = "fixed-version: Fixed after version 3.17rc1"
+
+CVE_STATUS[CVE-2014-5207] = "fixed-version: Fixed after version 3.17rc1"
+
+# Skipping CVE-2014-5332, no affected_versions
+
+CVE_STATUS[CVE-2014-5471] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-5472] = "fixed-version: Fixed after version 3.17rc2"
+
+CVE_STATUS[CVE-2014-6410] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6416] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6417] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-6418] = "fixed-version: Fixed after version 3.17rc5"
+
+CVE_STATUS[CVE-2014-7145] = "fixed-version: Fixed after version 3.17rc2"
+
+# Skipping CVE-2014-7207, no affected_versions
+
+CVE_STATUS[CVE-2014-7283] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-7284] = "fixed-version: Fixed after version 3.15rc7"
+
+CVE_STATUS[CVE-2014-7822] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-7825] = "fixed-version: Fixed after version 3.18rc3"
+
+CVE_STATUS[CVE-2014-7826] = "fixed-version: Fixed after version 3.18rc3"
+
+CVE_STATUS[CVE-2014-7841] = "fixed-version: Fixed after version 3.18rc5"
+
+CVE_STATUS[CVE-2014-7842] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-7843] = "fixed-version: Fixed after version 3.18rc5"
+
+CVE_STATUS[CVE-2014-7970] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-7975] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8086] = "fixed-version: Fixed after version 3.18rc3"
+
+CVE_STATUS[CVE-2014-8133] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8134] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8159] = "fixed-version: Fixed after version 4.0rc7"
+
+CVE_STATUS[CVE-2014-8160] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8171] = "fixed-version: Fixed after version 3.12rc1"
+
+CVE_STATUS[CVE-2014-8172] = "fixed-version: Fixed after version 3.13rc1"
+
+CVE_STATUS[CVE-2014-8173] = "fixed-version: Fixed after version 3.13rc5"
+
+# Skipping CVE-2014-8181, no affected_versions
+
+CVE_STATUS[CVE-2014-8369] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8480] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8481] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-8559] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-8709] = "fixed-version: Fixed after version 3.14rc3"
+
+CVE_STATUS[CVE-2014-8884] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2014-8989] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9090] = "fixed-version: Fixed after version 3.18rc6"
+
+CVE_STATUS[CVE-2014-9322] = "fixed-version: Fixed after version 3.18rc6"
+
+CVE_STATUS[CVE-2014-9419] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9420] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9428] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9529] = "fixed-version: Fixed after version 3.19rc4"
+
+CVE_STATUS[CVE-2014-9584] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9585] = "fixed-version: Fixed after version 3.19rc4"
+
+CVE_STATUS[CVE-2014-9644] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9683] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9710] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2014-9715] = "fixed-version: Fixed after version 3.15rc1"
+
+CVE_STATUS[CVE-2014-9717] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2014-9728] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9729] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9730] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2014-9731] = "fixed-version: Fixed after version 3.19rc3"
+
+# Skipping CVE-2014-9777, no affected_versions
+
+# Skipping CVE-2014-9778, no affected_versions
+
+# Skipping CVE-2014-9779, no affected_versions
+
+# Skipping CVE-2014-9780, no affected_versions
+
+# Skipping CVE-2014-9781, no affected_versions
+
+# Skipping CVE-2014-9782, no affected_versions
+
+# Skipping CVE-2014-9783, no affected_versions
+
+# Skipping CVE-2014-9784, no affected_versions
+
+# Skipping CVE-2014-9785, no affected_versions
+
+# Skipping CVE-2014-9786, no affected_versions
+
+# Skipping CVE-2014-9787, no affected_versions
+
+# Skipping CVE-2014-9788, no affected_versions
+
+# Skipping CVE-2014-9789, no affected_versions
+
+CVE_STATUS[CVE-2014-9803] = "fixed-version: Fixed after version 3.16rc1"
+
+# Skipping CVE-2014-9863, no affected_versions
+
+# Skipping CVE-2014-9864, no affected_versions
+
+# Skipping CVE-2014-9865, no affected_versions
+
+# Skipping CVE-2014-9866, no affected_versions
+
+# Skipping CVE-2014-9867, no affected_versions
+
+# Skipping CVE-2014-9868, no affected_versions
+
+# Skipping CVE-2014-9869, no affected_versions
+
+CVE_STATUS[CVE-2014-9870] = "fixed-version: Fixed after version 3.11rc1"
+
+# Skipping CVE-2014-9871, no affected_versions
+
+# Skipping CVE-2014-9872, no affected_versions
+
+# Skipping CVE-2014-9873, no affected_versions
+
+# Skipping CVE-2014-9874, no affected_versions
+
+# Skipping CVE-2014-9875, no affected_versions
+
+# Skipping CVE-2014-9876, no affected_versions
+
+# Skipping CVE-2014-9877, no affected_versions
+
+# Skipping CVE-2014-9878, no affected_versions
+
+# Skipping CVE-2014-9879, no affected_versions
+
+# Skipping CVE-2014-9880, no affected_versions
+
+# Skipping CVE-2014-9881, no affected_versions
+
+# Skipping CVE-2014-9882, no affected_versions
+
+# Skipping CVE-2014-9883, no affected_versions
+
+# Skipping CVE-2014-9884, no affected_versions
+
+# Skipping CVE-2014-9885, no affected_versions
+
+# Skipping CVE-2014-9886, no affected_versions
+
+# Skipping CVE-2014-9887, no affected_versions
+
+CVE_STATUS[CVE-2014-9888] = "fixed-version: Fixed after version 3.13rc1"
+
+# Skipping CVE-2014-9889, no affected_versions
+
+# Skipping CVE-2014-9890, no affected_versions
+
+# Skipping CVE-2014-9891, no affected_versions
+
+# Skipping CVE-2014-9892, no affected_versions
+
+# Skipping CVE-2014-9893, no affected_versions
+
+# Skipping CVE-2014-9894, no affected_versions
+
+CVE_STATUS[CVE-2014-9895] = "fixed-version: Fixed after version 3.11rc1"
+
+# Skipping CVE-2014-9896, no affected_versions
+
+# Skipping CVE-2014-9897, no affected_versions
+
+# Skipping CVE-2014-9898, no affected_versions
+
+# Skipping CVE-2014-9899, no affected_versions
+
+# Skipping CVE-2014-9900, no affected_versions
+
+CVE_STATUS[CVE-2014-9903] = "fixed-version: Fixed after version 3.14rc4"
+
+CVE_STATUS[CVE-2014-9904] = "fixed-version: Fixed after version 3.17rc1"
+
+CVE_STATUS[CVE-2014-9914] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2014-9922] = "fixed-version: Fixed after version 3.18rc2"
+
+CVE_STATUS[CVE-2014-9940] = "fixed-version: Fixed after version 3.19rc1"
+
+CVE_STATUS[CVE-2015-0239] = "fixed-version: Fixed after version 3.19rc6"
+
+CVE_STATUS[CVE-2015-0274] = "fixed-version: Fixed after version 3.15rc5"
+
+CVE_STATUS[CVE-2015-0275] = "fixed-version: Fixed after version 4.1rc1"
+
+# Skipping CVE-2015-0777, no affected_versions
+
+# Skipping CVE-2015-1328, no affected_versions
+
+CVE_STATUS[CVE-2015-1333] = "fixed-version: Fixed after version 4.2rc5"
+
+CVE_STATUS[CVE-2015-1339] = "fixed-version: Fixed after version 4.4rc5"
+
+CVE_STATUS[CVE-2015-1350] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2015-1420] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-1421] = "fixed-version: Fixed after version 3.19rc7"
+
+CVE_STATUS[CVE-2015-1465] = "fixed-version: Fixed after version 3.19rc7"
+
+CVE_STATUS[CVE-2015-1573] = "fixed-version: Fixed after version 3.19rc5"
+
+CVE_STATUS[CVE-2015-1593] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-1805] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2015-2041] = "fixed-version: Fixed after version 3.19rc7"
+
+CVE_STATUS[CVE-2015-2042] = "fixed-version: Fixed after version 3.19"
+
+CVE_STATUS[CVE-2015-2150] = "fixed-version: Fixed after version 4.0rc4"
+
+CVE_STATUS[CVE-2015-2666] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-2672] = "fixed-version: Fixed after version 4.0rc3"
+
+CVE_STATUS[CVE-2015-2686] = "fixed-version: Fixed after version 4.0rc6"
+
+CVE_STATUS[CVE-2015-2830] = "fixed-version: Fixed after version 4.0rc3"
+
+# CVE-2015-2877 has no known resolution
+
+CVE_STATUS[CVE-2015-2922] = "fixed-version: Fixed after version 4.0rc7"
+
+CVE_STATUS[CVE-2015-2925] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2015-3212] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2015-3214] = "fixed-version: Fixed after version 2.6.33rc8"
+
+CVE_STATUS[CVE-2015-3288] = "fixed-version: Fixed after version 4.2rc2"
+
+CVE_STATUS[CVE-2015-3290] = "fixed-version: Fixed after version 4.2rc3"
+
+CVE_STATUS[CVE-2015-3291] = "fixed-version: Fixed after version 4.2rc3"
+
+CVE_STATUS[CVE-2015-3331] = "fixed-version: Fixed after version 4.0rc5"
+
+# Skipping CVE-2015-3332, no affected_versions
+
+CVE_STATUS[CVE-2015-3339] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-3636] = "fixed-version: Fixed after version 4.1rc2"
+
+CVE_STATUS[CVE-2015-4001] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4002] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4003] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-4004] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2015-4036] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-4167] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-4170] = "fixed-version: Fixed after version 3.13rc5"
+
+CVE_STATUS[CVE-2015-4176] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4177] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4178] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-4692] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2015-4700] = "fixed-version: Fixed after version 4.1rc6"
+
+CVE_STATUS[CVE-2015-5156] = "fixed-version: Fixed after version 4.2rc7"
+
+CVE_STATUS[CVE-2015-5157] = "fixed-version: Fixed after version 4.2rc3"
+
+CVE_STATUS[CVE-2015-5257] = "fixed-version: Fixed after version 4.3rc3"
+
+CVE_STATUS[CVE-2015-5283] = "fixed-version: Fixed after version 4.3rc3"
+
+CVE_STATUS[CVE-2015-5307] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-5327] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-5364] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-5366] = "fixed-version: Fixed after version 4.1rc7"
+
+CVE_STATUS[CVE-2015-5697] = "fixed-version: Fixed after version 4.2rc6"
+
+CVE_STATUS[CVE-2015-5706] = "fixed-version: Fixed after version 4.1rc3"
+
+CVE_STATUS[CVE-2015-5707] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-6252] = "fixed-version: Fixed after version 4.2rc5"
+
+CVE_STATUS[CVE-2015-6526] = "fixed-version: Fixed after version 4.1rc1"
+
+# CVE-2015-6619 has no known resolution
+
+# CVE-2015-6646 has no known resolution
+
+CVE_STATUS[CVE-2015-6937] = "fixed-version: Fixed after version 4.3rc1"
+
+# Skipping CVE-2015-7312, no affected_versions
+
+CVE_STATUS[CVE-2015-7509] = "fixed-version: Fixed after version 3.7rc1"
+
+CVE_STATUS[CVE-2015-7513] = "fixed-version: Fixed after version 4.4rc7"
+
+CVE_STATUS[CVE-2015-7515] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-7550] = "fixed-version: Fixed after version 4.4rc8"
+
+# Skipping CVE-2015-7553, no affected_versions
+
+CVE_STATUS[CVE-2015-7566] = "fixed-version: Fixed after version 4.5rc2"
+
+CVE_STATUS[CVE-2015-7613] = "fixed-version: Fixed after version 4.3rc4"
+
+CVE_STATUS[CVE-2015-7799] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7833] = "fixed-version: Fixed after version 4.6rc6"
+
+# Skipping CVE-2015-7837, no affected_versions
+
+CVE_STATUS[CVE-2015-7872] = "fixed-version: Fixed after version 4.3rc7"
+
+CVE_STATUS[CVE-2015-7884] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7885] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-7990] = "fixed-version: Fixed after version 4.4rc4"
+
+# Skipping CVE-2015-8019, no affected_versions
+
+CVE_STATUS[CVE-2015-8104] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8215] = "fixed-version: Fixed after version 4.0rc3"
+
+CVE_STATUS[CVE-2015-8324] = "fixed-version: Fixed after version 2.6.34rc1"
+
+CVE_STATUS[CVE-2015-8374] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8539] = "fixed-version: Fixed after version 4.4rc3"
+
+CVE_STATUS[CVE-2015-8543] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8550] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8551] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8552] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8553] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8569] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8575] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8660] = "fixed-version: Fixed after version 4.4rc4"
+
+CVE_STATUS[CVE-2015-8709] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2015-8746] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2015-8767] = "fixed-version: Fixed after version 4.3rc4"
+
+CVE_STATUS[CVE-2015-8785] = "fixed-version: Fixed after version 4.4rc5"
+
+CVE_STATUS[CVE-2015-8787] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8812] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8816] = "fixed-version: Fixed after version 4.4rc6"
+
+CVE_STATUS[CVE-2015-8830] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-8839] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8844] = "fixed-version: Fixed after version 4.4rc3"
+
+CVE_STATUS[CVE-2015-8845] = "fixed-version: Fixed after version 4.4rc3"
+
+# Skipping CVE-2015-8937, no affected_versions
+
+# Skipping CVE-2015-8938, no affected_versions
+
+# Skipping CVE-2015-8939, no affected_versions
+
+# Skipping CVE-2015-8940, no affected_versions
+
+# Skipping CVE-2015-8941, no affected_versions
+
+# Skipping CVE-2015-8942, no affected_versions
+
+# Skipping CVE-2015-8943, no affected_versions
+
+# Skipping CVE-2015-8944, no affected_versions
+
+CVE_STATUS[CVE-2015-8950] = "fixed-version: Fixed after version 4.1rc2"
+
+CVE_STATUS[CVE-2015-8952] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2015-8953] = "fixed-version: Fixed after version 4.3"
+
+CVE_STATUS[CVE-2015-8955] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2015-8956] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2015-8961] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8962] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2015-8963] = "fixed-version: Fixed after version 4.4"
+
+CVE_STATUS[CVE-2015-8964] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2015-8966] = "fixed-version: Fixed after version 4.4rc8"
+
+CVE_STATUS[CVE-2015-8967] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2015-8970] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2015-9004] = "fixed-version: Fixed after version 3.19rc7"
+
+CVE_STATUS[CVE-2015-9016] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2015-9289] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2016-0617] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-0723] = "fixed-version: Fixed after version 4.5rc2"
+
+CVE_STATUS[CVE-2016-0728] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-0758] = "fixed-version: Fixed after version 4.6"
+
+# Skipping CVE-2016-0774, no affected_versions
+
+CVE_STATUS[CVE-2016-0821] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2016-0823] = "fixed-version: Fixed after version 4.0rc5"
+
+CVE_STATUS[CVE-2016-10044] = "fixed-version: Fixed after version 4.8rc7"
+
+CVE_STATUS[CVE-2016-10088] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10147] = "fixed-version: Fixed after version 4.9"
+
+CVE_STATUS[CVE-2016-10150] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-10153] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10154] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10200] = "fixed-version: Fixed after version 4.9rc7"
+
+CVE_STATUS[CVE-2016-10208] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10229] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-10318] = "fixed-version: Fixed after version 4.8rc6"
+
+CVE_STATUS[CVE-2016-10723] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2016-10741] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10764] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-10905] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2016-10906] = "fixed-version: Fixed after version 4.5rc6"
+
+CVE_STATUS[CVE-2016-10907] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2016-1237] = "fixed-version: Fixed after version 4.7rc5"
+
+CVE_STATUS[CVE-2016-1575] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-1576] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-1583] = "fixed-version: Fixed after version 4.7rc3"
+
+CVE_STATUS[CVE-2016-2053] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2016-2069] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2070] = "fixed-version: Fixed after version 4.4"
+
+CVE_STATUS[CVE-2016-2085] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2117] = "fixed-version: Fixed after version 4.6rc5"
+
+CVE_STATUS[CVE-2016-2143] = "fixed-version: Fixed after version 4.5"
+
+CVE_STATUS[CVE-2016-2184] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2185] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2186] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-2187] = "fixed-version: Fixed after version 4.6rc5"
+
+CVE_STATUS[CVE-2016-2188] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2016-2383] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2384] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2543] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2544] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2545] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2546] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2547] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2548] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2549] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2016-2550] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2016-2782] = "fixed-version: Fixed after version 4.5rc2"
+
+CVE_STATUS[CVE-2016-2847] = "fixed-version: Fixed after version 4.5rc1"
+
+# Skipping CVE-2016-2853, no affected_versions
+
+# Skipping CVE-2016-2854, no affected_versions
+
+CVE_STATUS[CVE-2016-3044] = "fixed-version: Fixed after version 4.5"
+
+CVE_STATUS[CVE-2016-3070] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2016-3134] = "fixed-version: Fixed after version 4.6rc2"
+
+CVE_STATUS[CVE-2016-3135] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3136] = "fixed-version: Fixed after version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3137] = "fixed-version: Fixed after version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3138] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3139] = "fixed-version: Fixed after version 3.17rc1"
+
+CVE_STATUS[CVE-2016-3140] = "fixed-version: Fixed after version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3156] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3157] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3672] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-3689] = "fixed-version: Fixed after version 4.6rc1"
+
+# Skipping CVE-2016-3695, no affected_versions
+
+# Skipping CVE-2016-3699, no affected_versions
+
+# Skipping CVE-2016-3707, no affected_versions
+
+CVE_STATUS[CVE-2016-3713] = "fixed-version: Fixed after version 4.7rc1"
+
+# CVE-2016-3775 has no known resolution
+
+# CVE-2016-3802 has no known resolution
+
+# CVE-2016-3803 has no known resolution
+
+CVE_STATUS[CVE-2016-3841] = "fixed-version: Fixed after version 4.4rc4"
+
+CVE_STATUS[CVE-2016-3857] = "fixed-version: Fixed after version 4.8rc2"
+
+CVE_STATUS[CVE-2016-3951] = "fixed-version: Fixed after version 4.5"
+
+CVE_STATUS[CVE-2016-3955] = "fixed-version: Fixed after version 4.6rc3"
+
+CVE_STATUS[CVE-2016-3961] = "fixed-version: Fixed after version 4.6rc5"
+
+CVE_STATUS[CVE-2016-4440] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4470] = "fixed-version: Fixed after version 4.7rc4"
+
+CVE_STATUS[CVE-2016-4482] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4485] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-4486] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-4557] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4558] = "fixed-version: Fixed after version 4.6rc7"
+
+CVE_STATUS[CVE-2016-4565] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4568] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2016-4569] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4578] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4580] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-4581] = "fixed-version: Fixed after version 4.6rc7"
+
+CVE_STATUS[CVE-2016-4794] = "fixed-version: Fixed after version 4.7rc4"
+
+CVE_STATUS[CVE-2016-4805] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-4913] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-4951] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4997] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-4998] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-5195] = "fixed-version: Fixed after version 4.9rc2"
+
+CVE_STATUS[CVE-2016-5243] = "fixed-version: Fixed after version 4.7rc3"
+
+CVE_STATUS[CVE-2016-5244] = "fixed-version: Fixed after version 4.7rc3"
+
+# Skipping CVE-2016-5340, no affected_versions
+
+# Skipping CVE-2016-5342, no affected_versions
+
+# Skipping CVE-2016-5343, no affected_versions
+
+# Skipping CVE-2016-5344, no affected_versions
+
+CVE_STATUS[CVE-2016-5400] = "fixed-version: Fixed after version 4.7"
+
+CVE_STATUS[CVE-2016-5412] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2016-5696] = "fixed-version: Fixed after version 4.7"
+
+CVE_STATUS[CVE-2016-5728] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-5828] = "fixed-version: Fixed after version 4.7rc6"
+
+CVE_STATUS[CVE-2016-5829] = "fixed-version: Fixed after version 4.7rc5"
+
+# CVE-2016-5870 has no known resolution
+
+CVE_STATUS[CVE-2016-6130] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2016-6136] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2016-6156] = "fixed-version: Fixed after version 4.7rc7"
+
+CVE_STATUS[CVE-2016-6162] = "fixed-version: Fixed after version 4.7"
+
+CVE_STATUS[CVE-2016-6187] = "fixed-version: Fixed after version 4.7rc7"
+
+CVE_STATUS[CVE-2016-6197] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-6198] = "fixed-version: Fixed after version 4.6"
+
+CVE_STATUS[CVE-2016-6213] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2016-6327] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-6480] = "fixed-version: Fixed after version 4.8rc3"
+
+CVE_STATUS[CVE-2016-6516] = "fixed-version: Fixed after version 4.8rc1"
+
+# Skipping CVE-2016-6753, no affected_versions
+
+CVE_STATUS[CVE-2016-6786] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2016-6787] = "fixed-version: Fixed after version 4.0rc1"
+
+CVE_STATUS[CVE-2016-6828] = "fixed-version: Fixed after version 4.8rc5"
+
+CVE_STATUS[CVE-2016-7039] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-7042] = "fixed-version: Fixed after version 4.9rc3"
+
+CVE_STATUS[CVE-2016-7097] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2016-7117] = "fixed-version: Fixed after version 4.6rc1"
+
+# Skipping CVE-2016-7118, no affected_versions
+
+CVE_STATUS[CVE-2016-7425] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2016-7910] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2016-7911] = "fixed-version: Fixed after version 4.7rc7"
+
+CVE_STATUS[CVE-2016-7912] = "fixed-version: Fixed after version 4.6rc5"
+
+CVE_STATUS[CVE-2016-7913] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-7914] = "fixed-version: Fixed after version 4.6rc4"
+
+CVE_STATUS[CVE-2016-7915] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-7916] = "fixed-version: Fixed after version 4.6rc7"
+
+CVE_STATUS[CVE-2016-7917] = "fixed-version: Fixed after version 4.5rc6"
+
+CVE_STATUS[CVE-2016-8399] = "fixed-version: Fixed after version 4.9"
+
+# Skipping CVE-2016-8401, no affected_versions
+
+# Skipping CVE-2016-8402, no affected_versions
+
+# Skipping CVE-2016-8403, no affected_versions
+
+# Skipping CVE-2016-8404, no affected_versions
+
+CVE_STATUS[CVE-2016-8405] = "fixed-version: Fixed after version 4.10rc6"
+
+# Skipping CVE-2016-8406, no affected_versions
+
+# Skipping CVE-2016-8407, no affected_versions
+
+CVE_STATUS[CVE-2016-8630] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-8632] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-8633] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-8636] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2016-8645] = "fixed-version: Fixed after version 4.9rc6"
+
+CVE_STATUS[CVE-2016-8646] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2016-8650] = "fixed-version: Fixed after version 4.9rc7"
+
+CVE_STATUS[CVE-2016-8655] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-8658] = "fixed-version: Fixed after version 4.8rc7"
+
+# CVE-2016-8660 has no known resolution
+
+CVE_STATUS[CVE-2016-8666] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9083] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9084] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9120] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9178] = "fixed-version: Fixed after version 4.8rc7"
+
+CVE_STATUS[CVE-2016-9191] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2016-9313] = "fixed-version: Fixed after version 4.9rc3"
+
+CVE_STATUS[CVE-2016-9555] = "fixed-version: Fixed after version 4.9rc4"
+
+CVE_STATUS[CVE-2016-9576] = "fixed-version: Fixed after version 4.9"
+
+CVE_STATUS[CVE-2016-9588] = "fixed-version: Fixed after version 4.10rc1"
+
+CVE_STATUS[CVE-2016-9604] = "fixed-version: Fixed after version 4.11rc8"
+
+# Skipping CVE-2016-9644, no affected_versions
+
+CVE_STATUS[CVE-2016-9685] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2016-9754] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9755] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-9756] = "fixed-version: Fixed after version 4.9rc7"
+
+CVE_STATUS[CVE-2016-9777] = "fixed-version: Fixed after version 4.9rc7"
+
+CVE_STATUS[CVE-2016-9793] = "fixed-version: Fixed after version 4.9rc8"
+
+CVE_STATUS[CVE-2016-9794] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9806] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2016-9919] = "fixed-version: Fixed after version 4.9rc8"
+
+# Skipping CVE-2017-0403, no affected_versions
+
+# Skipping CVE-2017-0404, no affected_versions
+
+# Skipping CVE-2017-0426, no affected_versions
+
+# Skipping CVE-2017-0427, no affected_versions
+
+# CVE-2017-0507 has no known resolution
+
+# CVE-2017-0508 has no known resolution
+
+# Skipping CVE-2017-0510, no affected_versions
+
+# Skipping CVE-2017-0528, no affected_versions
+
+# Skipping CVE-2017-0537, no affected_versions
+
+# CVE-2017-0564 has no known resolution
+
+CVE_STATUS[CVE-2017-0605] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-0627] = "fixed-version: Fixed after version 4.14rc1"
+
+# CVE-2017-0630 has no known resolution
+
+# CVE-2017-0749 has no known resolution
+
+CVE_STATUS[CVE-2017-0750] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2017-0786] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-0861] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2017-1000] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000111] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000112] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2017-1000251] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-1000252] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-1000253] = "fixed-version: Fixed after version 4.1rc1"
+
+CVE_STATUS[CVE-2017-1000255] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-1000363] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-1000364] = "fixed-version: Fixed after version 4.12rc6"
+
+CVE_STATUS[CVE-2017-1000365] = "fixed-version: Fixed after version 4.12rc7"
+
+CVE_STATUS[CVE-2017-1000370] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-1000371] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-1000379] = "fixed-version: Fixed after version 4.12rc6"
+
+CVE_STATUS[CVE-2017-1000380] = "fixed-version: Fixed after version 4.12rc5"
+
+CVE_STATUS[CVE-2017-1000405] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2017-1000407] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2017-1000410] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2017-10661] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-10662] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-10663] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-10810] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-10911] = "fixed-version: Fixed after version 4.12rc7"
+
+CVE_STATUS[CVE-2017-11089] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-11176] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-11472] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-11473] = "fixed-version: Fixed after version 4.13rc2"
+
+CVE_STATUS[CVE-2017-11600] = "fixed-version: Fixed after version 4.13"
+
+CVE_STATUS[CVE-2017-12134] = "fixed-version: Fixed after version 4.13rc6"
+
+CVE_STATUS[CVE-2017-12146] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-12153] = "fixed-version: Fixed after version 4.14rc2"
+
+CVE_STATUS[CVE-2017-12154] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-12168] = "fixed-version: Fixed after version 4.9rc6"
+
+CVE_STATUS[CVE-2017-12188] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-12190] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-12192] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-12193] = "fixed-version: Fixed after version 4.14rc7"
+
+CVE_STATUS[CVE-2017-12762] = "fixed-version: Fixed after version 4.13rc4"
+
+CVE_STATUS[CVE-2017-13080] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-13166] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-13167] = "fixed-version: Fixed after version 4.5rc4"
+
+CVE_STATUS[CVE-2017-13168] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2017-13215] = "fixed-version: Fixed after version 4.5rc1"
+
+CVE_STATUS[CVE-2017-13216] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2017-13220] = "fixed-version: Fixed after version 3.19rc3"
+
+# CVE-2017-13221 has no known resolution
+
+# CVE-2017-13222 has no known resolution
+
+CVE_STATUS[CVE-2017-13305] = "fixed-version: Fixed after version 4.12rc5"
+
+CVE_STATUS[CVE-2017-13686] = "fixed-version: Fixed after version 4.13rc7"
+
+# CVE-2017-13693 has no known resolution
+
+# CVE-2017-13694 has no known resolution
+
+CVE_STATUS[CVE-2017-13695] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2017-13715] = "fixed-version: Fixed after version 4.3rc1"
+
+CVE_STATUS[CVE-2017-14051] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14106] = "fixed-version: Fixed after version 4.12rc3"
+
+CVE_STATUS[CVE-2017-14140] = "fixed-version: Fixed after version 4.13rc6"
+
+CVE_STATUS[CVE-2017-14156] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14340] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-14489] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-14497] = "fixed-version: Fixed after version 4.13"
+
+CVE_STATUS[CVE-2017-14954] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-14991] = "fixed-version: Fixed after version 4.14rc2"
+
+CVE_STATUS[CVE-2017-15102] = "fixed-version: Fixed after version 4.9rc1"
+
+CVE_STATUS[CVE-2017-15115] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-15116] = "fixed-version: Fixed after version 4.2rc1"
+
+CVE_STATUS[CVE-2017-15121] = "fixed-version: Fixed after version 3.11rc1"
+
+CVE_STATUS[CVE-2017-15126] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-15127] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2017-15128] = "fixed-version: Fixed after version 4.14rc8"
+
+CVE_STATUS[CVE-2017-15129] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-15265] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-15274] = "fixed-version: Fixed after version 4.12rc5"
+
+CVE_STATUS[CVE-2017-15299] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-15306] = "fixed-version: Fixed after version 4.14rc7"
+
+CVE_STATUS[CVE-2017-15537] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-15649] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-15868] = "fixed-version: Fixed after version 3.19rc3"
+
+CVE_STATUS[CVE-2017-15951] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16525] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16526] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16527] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16528] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2017-16529] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16530] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16531] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16532] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16533] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-16534] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2017-16535] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16536] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16537] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16538] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-16643] = "fixed-version: Fixed after version 4.14rc7"
+
+CVE_STATUS[CVE-2017-16644] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-16645] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2017-16646] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16647] = "fixed-version: Fixed after version 4.14"
+
+CVE_STATUS[CVE-2017-16648] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16649] = "fixed-version: Fixed after version 4.14"
+
+CVE_STATUS[CVE-2017-16650] = "fixed-version: Fixed after version 4.14"
+
+CVE_STATUS[CVE-2017-16911] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16912] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16913] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16914] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-16939] = "fixed-version: Fixed after version 4.14rc7"
+
+CVE_STATUS[CVE-2017-16994] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-16995] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-16996] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17052] = "fixed-version: Fixed after version 4.13rc7"
+
+CVE_STATUS[CVE-2017-17053] = "fixed-version: Fixed after version 4.13rc7"
+
+CVE_STATUS[CVE-2017-17448] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17449] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17450] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17558] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17712] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17741] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17805] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17806] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-17807] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2017-17852] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17853] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17854] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17855] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17856] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17857] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17862] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-17863] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17864] = "fixed-version: Fixed after version 4.15rc5"
+
+CVE_STATUS[CVE-2017-17975] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2017-18017] = "fixed-version: Fixed after version 4.11rc7"
+
+CVE_STATUS[CVE-2017-18075] = "fixed-version: Fixed after version 4.15rc7"
+
+CVE_STATUS[CVE-2017-18079] = "fixed-version: Fixed after version 4.13rc1"
+
+# CVE-2017-18169 has no known resolution
+
+CVE_STATUS[CVE-2017-18174] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2017-18193] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18200] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-18202] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2017-18203] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18204] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18208] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2017-18216] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18218] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18221] = "fixed-version: Fixed after version 4.12rc4"
+
+CVE_STATUS[CVE-2017-18222] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-18224] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2017-18232] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-18241] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18249] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-18255] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18257] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18261] = "fixed-version: Fixed after version 4.13rc6"
+
+CVE_STATUS[CVE-2017-18270] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-18344] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2017-18360] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-18379] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2017-18509] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18549] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18550] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-18551] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2017-18552] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-18595] = "fixed-version: Fixed after version 4.15rc6"
+
+CVE_STATUS[CVE-2017-2583] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-2584] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-2596] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-2618] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-2634] = "fixed-version: Fixed after version 2.6.25rc1"
+
+CVE_STATUS[CVE-2017-2636] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-2647] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2017-2671] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-5123] = "fixed-version: Fixed after version 4.14rc5"
+
+CVE_STATUS[CVE-2017-5546] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5547] = "fixed-version: Fixed after version 4.10rc5"
+
+CVE_STATUS[CVE-2017-5548] = "fixed-version: Fixed after version 4.10rc5"
+
+CVE_STATUS[CVE-2017-5549] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5550] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5551] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-5576] = "fixed-version: Fixed after version 4.10rc6"
+
+CVE_STATUS[CVE-2017-5577] = "fixed-version: Fixed after version 4.10rc6"
+
+CVE_STATUS[CVE-2017-5669] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-5715] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2017-5753] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2017-5754] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2017-5897] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-5967] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-5970] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-5972] = "fixed-version: Fixed after version 4.4rc1"
+
+CVE_STATUS[CVE-2017-5986] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-6001] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-6074] = "fixed-version: Fixed after version 4.10"
+
+CVE_STATUS[CVE-2017-6214] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-6345] = "fixed-version: Fixed after version 4.10"
+
+CVE_STATUS[CVE-2017-6346] = "fixed-version: Fixed after version 4.10"
+
+CVE_STATUS[CVE-2017-6347] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-6348] = "fixed-version: Fixed after version 4.10"
+
+CVE_STATUS[CVE-2017-6353] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-6874] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-6951] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2017-7184] = "fixed-version: Fixed after version 4.11rc5"
+
+CVE_STATUS[CVE-2017-7187] = "fixed-version: Fixed after version 4.11rc5"
+
+CVE_STATUS[CVE-2017-7261] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7273] = "fixed-version: Fixed after version 4.10rc4"
+
+CVE_STATUS[CVE-2017-7277] = "fixed-version: Fixed after version 4.11rc4"
+
+CVE_STATUS[CVE-2017-7294] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7308] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7346] = "fixed-version: Fixed after version 4.12rc5"
+
+# CVE-2017-7369 has no known resolution
+
+CVE_STATUS[CVE-2017-7374] = "fixed-version: Fixed after version 4.11rc4"
+
+CVE_STATUS[CVE-2017-7472] = "fixed-version: Fixed after version 4.11rc8"
+
+CVE_STATUS[CVE-2017-7477] = "fixed-version: Fixed after version 4.11"
+
+CVE_STATUS[CVE-2017-7482] = "fixed-version: Fixed after version 4.12rc7"
+
+CVE_STATUS[CVE-2017-7487] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-7495] = "fixed-version: Fixed after version 4.7rc1"
+
+CVE_STATUS[CVE-2017-7518] = "fixed-version: Fixed after version 4.12rc7"
+
+CVE_STATUS[CVE-2017-7533] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-7541] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-7542] = "fixed-version: Fixed after version 4.13rc2"
+
+CVE_STATUS[CVE-2017-7558] = "fixed-version: Fixed after version 4.13"
+
+CVE_STATUS[CVE-2017-7616] = "fixed-version: Fixed after version 4.11rc6"
+
+CVE_STATUS[CVE-2017-7618] = "fixed-version: Fixed after version 4.11rc8"
+
+CVE_STATUS[CVE-2017-7645] = "fixed-version: Fixed after version 4.11"
+
+CVE_STATUS[CVE-2017-7889] = "fixed-version: Fixed after version 4.11rc7"
+
+CVE_STATUS[CVE-2017-7895] = "fixed-version: Fixed after version 4.11"
+
+CVE_STATUS[CVE-2017-7979] = "fixed-version: Fixed after version 4.11rc8"
+
+CVE_STATUS[CVE-2017-8061] = "fixed-version: Fixed after version 4.11rc4"
+
+CVE_STATUS[CVE-2017-8062] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-8063] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8064] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8065] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8066] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8067] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2017-8068] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8069] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8070] = "fixed-version: Fixed after version 4.10rc8"
+
+CVE_STATUS[CVE-2017-8071] = "fixed-version: Fixed after version 4.10rc7"
+
+CVE_STATUS[CVE-2017-8072] = "fixed-version: Fixed after version 4.10rc7"
+
+CVE_STATUS[CVE-2017-8106] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2017-8240] = "fixed-version: Fixed after version 3.19rc6"
+
+# CVE-2017-8242 has no known resolution
+
+# CVE-2017-8244 has no known resolution
+
+# CVE-2017-8245 has no known resolution
+
+# CVE-2017-8246 has no known resolution
+
+CVE_STATUS[CVE-2017-8797] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-8824] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2017-8831] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-8890] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-8924] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-8925] = "fixed-version: Fixed after version 4.11rc2"
+
+CVE_STATUS[CVE-2017-9059] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-9074] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9075] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9076] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9077] = "fixed-version: Fixed after version 4.12rc2"
+
+CVE_STATUS[CVE-2017-9150] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2017-9211] = "fixed-version: Fixed after version 4.12rc3"
+
+CVE_STATUS[CVE-2017-9242] = "fixed-version: Fixed after version 4.12rc3"
+
+CVE_STATUS[CVE-2017-9605] = "fixed-version: Fixed after version 4.12rc5"
+
+CVE_STATUS[CVE-2017-9725] = "fixed-version: Fixed after version 4.3rc7"
+
+CVE_STATUS[CVE-2017-9984] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-9985] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2017-9986] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2018-1000004] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2018-1000026] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-1000028] = "fixed-version: Fixed after version 4.15"
+
+CVE_STATUS[CVE-2018-1000199] = "fixed-version: Fixed after version 4.16"
+
+CVE_STATUS[CVE-2018-1000200] = "fixed-version: Fixed after version 4.17rc5"
+
+CVE_STATUS[CVE-2018-1000204] = "fixed-version: Fixed after version 4.17rc7"
+
+CVE_STATUS[CVE-2018-10021] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-10074] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-10087] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2018-10124] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2018-10322] = "fixed-version: Fixed after version 4.17rc4"
+
+CVE_STATUS[CVE-2018-10323] = "fixed-version: Fixed after version 4.17rc4"
+
+CVE_STATUS[CVE-2018-1065] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2018-1066] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2018-10675] = "fixed-version: Fixed after version 4.13rc6"
+
+CVE_STATUS[CVE-2018-1068] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2018-10840] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-10853] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-1087] = "fixed-version: Fixed after version 4.16rc7"
+
+# CVE-2018-10872 has no known resolution
+
+CVE_STATUS[CVE-2018-10876] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10877] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10878] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10879] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10880] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10881] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10882] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10883] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-10901] = "fixed-version: Fixed after version 2.6.36rc1"
+
+CVE_STATUS[CVE-2018-10902] = "fixed-version: Fixed after version 4.18rc6"
+
+CVE_STATUS[CVE-2018-1091] = "fixed-version: Fixed after version 4.14rc2"
+
+CVE_STATUS[CVE-2018-1092] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-1093] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-10938] = "fixed-version: Fixed after version 4.13rc5"
+
+CVE_STATUS[CVE-2018-1094] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-10940] = "fixed-version: Fixed after version 4.17rc3"
+
+CVE_STATUS[CVE-2018-1095] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-1108] = "fixed-version: Fixed after version 4.17rc2"
+
+CVE_STATUS[CVE-2018-1118] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-1120] = "fixed-version: Fixed after version 4.17rc6"
+
+# CVE-2018-1121 has no known resolution
+
+CVE_STATUS[CVE-2018-11232] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2018-1128] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-1129] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-1130] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-11412] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-11506] = "fixed-version: Fixed after version 4.17rc7"
+
+CVE_STATUS[CVE-2018-11508] = "fixed-version: Fixed after version 4.17rc5"
+
+# CVE-2018-11987 has no known resolution
+
+CVE_STATUS[CVE-2018-12126] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12127] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12130] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2018-12207] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2018-12232] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-12233] = "fixed-version: Fixed after version 4.18rc2"
+
+CVE_STATUS[CVE-2018-12633] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-12714] = "fixed-version: Fixed after version 4.18rc2"
+
+CVE_STATUS[CVE-2018-12896] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-12904] = "fixed-version: Fixed after version 4.18rc1"
+
+# CVE-2018-12928 has no known resolution
+
+# CVE-2018-12929 has no known resolution
+
+# CVE-2018-12930 has no known resolution
+
+# CVE-2018-12931 has no known resolution
+
+CVE_STATUS[CVE-2018-13053] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13093] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-13094] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-13095] = "fixed-version: Fixed after version 4.18rc3"
+
+CVE_STATUS[CVE-2018-13096] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13097] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13098] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13099] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13100] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-13405] = "fixed-version: Fixed after version 4.18rc4"
+
+CVE_STATUS[CVE-2018-13406] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-14609] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14610] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14611] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14612] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14613] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14614] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14615] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14616] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14617] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-14619] = "fixed-version: Fixed after version 4.15rc4"
+
+CVE_STATUS[CVE-2018-14625] = "fixed-version: Fixed after version 4.20rc6"
+
+CVE_STATUS[CVE-2018-14633] = "fixed-version: Fixed after version 4.19rc6"
+
+CVE_STATUS[CVE-2018-14634] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2018-14641] = "fixed-version: Fixed after version 4.19rc4"
+
+CVE_STATUS[CVE-2018-14646] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2018-14656] = "fixed-version: Fixed after version 4.19rc2"
+
+CVE_STATUS[CVE-2018-14678] = "fixed-version: Fixed after version 4.18rc8"
+
+CVE_STATUS[CVE-2018-14734] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-15471] = "fixed-version: Fixed after version 4.19rc7"
+
+CVE_STATUS[CVE-2018-15572] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-15594] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-16276] = "fixed-version: Fixed after version 4.18rc5"
+
+CVE_STATUS[CVE-2018-16597] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2018-16658] = "fixed-version: Fixed after version 4.19rc2"
+
+CVE_STATUS[CVE-2018-16862] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2018-16871] = "fixed-version: Fixed after version 4.20rc3"
+
+CVE_STATUS[CVE-2018-16880] = "fixed-version: Fixed after version 5.0rc5"
+
+CVE_STATUS[CVE-2018-16882] = "fixed-version: Fixed after version 4.20"
+
+CVE_STATUS[CVE-2018-16884] = "fixed-version: Fixed after version 5.0rc1"
+
+# CVE-2018-16885 has no known resolution
+
+CVE_STATUS[CVE-2018-17182] = "fixed-version: Fixed after version 4.19rc4"
+
+CVE_STATUS[CVE-2018-17972] = "fixed-version: Fixed after version 4.19rc7"
+
+# CVE-2018-17977 has no known resolution
+
+CVE_STATUS[CVE-2018-18021] = "fixed-version: Fixed after version 4.19rc7"
+
+CVE_STATUS[CVE-2018-18281] = "fixed-version: Fixed after version 4.19"
+
+CVE_STATUS[CVE-2018-18386] = "fixed-version: Fixed after version 4.15rc6"
+
+CVE_STATUS[CVE-2018-18397] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2018-18445] = "fixed-version: Fixed after version 4.19rc7"
+
+CVE_STATUS[CVE-2018-18559] = "fixed-version: Fixed after version 4.15rc2"
+
+# CVE-2018-18653 has no known resolution
+
+CVE_STATUS[CVE-2018-18690] = "fixed-version: Fixed after version 4.17rc4"
+
+CVE_STATUS[CVE-2018-18710] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2018-18955] = "fixed-version: Fixed after version 4.20rc2"
+
+CVE_STATUS[CVE-2018-19406] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2018-19407] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2018-19824] = "fixed-version: Fixed after version 4.20rc6"
+
+CVE_STATUS[CVE-2018-19854] = "fixed-version: Fixed after version 4.20rc3"
+
+CVE_STATUS[CVE-2018-19985] = "fixed-version: Fixed after version 4.20"
+
+CVE_STATUS[CVE-2018-20169] = "fixed-version: Fixed after version 4.20rc6"
+
+CVE_STATUS[CVE-2018-20449] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-20509] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2018-20510] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2018-20511] = "fixed-version: Fixed after version 4.19rc5"
+
+CVE_STATUS[CVE-2018-20669] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2018-20784] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2018-20836] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2018-20854] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2018-20855] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-20856] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-20961] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-20976] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-21008] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2018-25015] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2018-25020] = "fixed-version: Fixed after version 4.17rc7"
+
+# CVE-2018-3574 has no known resolution
+
+CVE_STATUS[CVE-2018-3620] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-3639] = "fixed-version: Fixed after version 4.17rc7"
+
+CVE_STATUS[CVE-2018-3646] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-3665] = "fixed-version: Fixed after version 3.7rc1"
+
+CVE_STATUS[CVE-2018-3693] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-5332] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5333] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5344] = "fixed-version: Fixed after version 4.15rc8"
+
+CVE_STATUS[CVE-2018-5390] = "fixed-version: Fixed after version 4.18rc7"
+
+CVE_STATUS[CVE-2018-5391] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-5703] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2018-5750] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-5803] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-5814] = "fixed-version: Fixed after version 4.17rc6"
+
+CVE_STATUS[CVE-2018-5848] = "fixed-version: Fixed after version 4.16rc1"
+
+# Skipping CVE-2018-5856, no affected_versions
+
+CVE_STATUS[CVE-2018-5873] = "fixed-version: Fixed after version 4.11rc8"
+
+CVE_STATUS[CVE-2018-5953] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-5995] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-6412] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2018-6554] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2018-6555] = "fixed-version: Fixed after version 4.17rc1"
+
+# CVE-2018-6559 has no known resolution
+
+CVE_STATUS[CVE-2018-6927] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2018-7191] = "fixed-version: Fixed after version 4.14rc6"
+
+CVE_STATUS[CVE-2018-7273] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-7480] = "fixed-version: Fixed after version 4.11rc1"
+
+CVE_STATUS[CVE-2018-7492] = "fixed-version: Fixed after version 4.15rc3"
+
+CVE_STATUS[CVE-2018-7566] = "fixed-version: Fixed after version 4.16rc2"
+
+CVE_STATUS[CVE-2018-7740] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-7754] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2018-7755] = "fixed-version: Fixed after version 4.19rc5"
+
+CVE_STATUS[CVE-2018-7757] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-7995] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2018-8043] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-8087] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2018-8781] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-8822] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-8897] = "fixed-version: Fixed after version 4.16rc7"
+
+CVE_STATUS[CVE-2018-9363] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2018-9385] = "fixed-version: Fixed after version 4.17rc3"
+
+CVE_STATUS[CVE-2018-9415] = "fixed-version: Fixed after version 4.17rc3"
+
+CVE_STATUS[CVE-2018-9422] = "fixed-version: Fixed after version 4.6rc1"
+
+CVE_STATUS[CVE-2018-9465] = "fixed-version: Fixed after version 4.15rc6"
+
+CVE_STATUS[CVE-2018-9516] = "fixed-version: Fixed after version 4.18rc5"
+
+CVE_STATUS[CVE-2018-9517] = "fixed-version: Fixed after version 4.14rc1"
+
+CVE_STATUS[CVE-2018-9518] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2018-9568] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2019-0136] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-0145] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0146] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0147] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0148] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-0149] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-0154] = "fixed-version: Fixed after version 5.4rc8"
+
+CVE_STATUS[CVE-2019-0155] = "fixed-version: Fixed after version 5.4rc8"
+
+CVE_STATUS[CVE-2019-10124] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-10125] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-10126] = "fixed-version: Fixed after version 5.2rc6"
+
+# CVE-2019-10140 has no known resolution
+
+CVE_STATUS[CVE-2019-10142] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-10207] = "fixed-version: Fixed after version 5.3rc3"
+
+CVE_STATUS[CVE-2019-10220] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-10638] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-10639] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11085] = "fixed-version: Fixed after version 5.0rc3"
+
+CVE_STATUS[CVE-2019-11091] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-11135] = "fixed-version: Fixed after version 5.4rc8"
+
+CVE_STATUS[CVE-2019-11190] = "fixed-version: Fixed after version 4.8rc5"
+
+CVE_STATUS[CVE-2019-11191] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-1125] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-11477] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11478] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11479] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-11486] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11487] = "fixed-version: Fixed after version 5.1rc5"
+
+CVE_STATUS[CVE-2019-11599] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-11683] = "fixed-version: Fixed after version 5.1"
+
+CVE_STATUS[CVE-2019-11810] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-11811] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-11815] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-11833] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-11884] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-12378] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12379] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12380] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12381] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-12382] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12454] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12455] = "fixed-version: Fixed after version 5.3rc1"
+
+# CVE-2019-12456 has no known resolution
+
+CVE_STATUS[CVE-2019-12614] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-12615] = "fixed-version: Fixed after version 5.2rc4"
+
+CVE_STATUS[CVE-2019-12817] = "fixed-version: Fixed after version 5.2rc7"
+
+CVE_STATUS[CVE-2019-12818] = "fixed-version: Fixed after version 5.0"
+
+CVE_STATUS[CVE-2019-12819] = "fixed-version: Fixed after version 5.0rc8"
+
+CVE_STATUS[CVE-2019-12881] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2019-12984] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-13233] = "fixed-version: Fixed after version 5.2rc4"
+
+CVE_STATUS[CVE-2019-13272] = "fixed-version: Fixed after version 5.2"
+
+CVE_STATUS[CVE-2019-13631] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-13648] = "fixed-version: Fixed after version 5.3rc2"
+
+CVE_STATUS[CVE-2019-14283] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-14284] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-14615] = "fixed-version: Fixed after version 5.5rc7"
+
+CVE_STATUS[CVE-2019-14763] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2019-14814] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-14815] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-14816] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-14821] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-14835] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-14895] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-14896] = "fixed-version: Fixed after version 5.5"
+
+CVE_STATUS[CVE-2019-14897] = "fixed-version: Fixed after version 5.5"
+
+# CVE-2019-14898 has no known resolution
+
+CVE_STATUS[CVE-2019-14901] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-15030] = "fixed-version: Fixed after version 5.3rc8"
+
+CVE_STATUS[CVE-2019-15031] = "fixed-version: Fixed after version 5.3rc8"
+
+CVE_STATUS[CVE-2019-15090] = "fixed-version: Fixed after version 5.2rc2"
+
+CVE_STATUS[CVE-2019-15098] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-15099] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-15117] = "fixed-version: Fixed after version 5.3rc5"
+
+CVE_STATUS[CVE-2019-15118] = "fixed-version: Fixed after version 5.3rc5"
+
+CVE_STATUS[CVE-2019-15211] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15212] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15213] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15214] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15215] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15216] = "fixed-version: Fixed after version 5.1"
+
+CVE_STATUS[CVE-2019-15217] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15218] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15219] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2019-15220] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15221] = "fixed-version: Fixed after version 5.2"
+
+CVE_STATUS[CVE-2019-15222] = "fixed-version: Fixed after version 5.3rc3"
+
+CVE_STATUS[CVE-2019-15223] = "fixed-version: Fixed after version 5.2rc3"
+
+# CVE-2019-15239 has no known resolution
+
+# CVE-2019-15290 has no known resolution
+
+CVE_STATUS[CVE-2019-15291] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-15292] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15504] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-15505] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-15538] = "fixed-version: Fixed after version 5.3rc6"
+
+CVE_STATUS[CVE-2019-15666] = "fixed-version: Fixed after version 5.1"
+
+# CVE-2019-15791 has no known resolution
+
+# CVE-2019-15792 has no known resolution
+
+# CVE-2019-15793 has no known resolution
+
+CVE_STATUS[CVE-2019-15794] = "fixed-version: Fixed after version 5.12"
+
+CVE_STATUS[CVE-2019-15807] = "fixed-version: Fixed after version 5.2rc3"
+
+# CVE-2019-15902 has no known resolution
+
+CVE_STATUS[CVE-2019-15916] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15917] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-15918] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15919] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15920] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-15921] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-15922] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15923] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15924] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-15925] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15926] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-15927] = "fixed-version: Fixed after version 5.0rc2"
+
+# CVE-2019-16089 has no known resolution
+
+CVE_STATUS[CVE-2019-16229] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16230] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16231] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-16232] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-16233] = "fixed-version: Fixed after version 5.4rc5"
+
+CVE_STATUS[CVE-2019-16234] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-16413] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-16714] = "fixed-version: Fixed after version 5.3rc7"
+
+CVE_STATUS[CVE-2019-16746] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-16921] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2019-16994] = "fixed-version: Fixed after version 5.0"
+
+CVE_STATUS[CVE-2019-16995] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-17052] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17053] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17054] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17055] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17056] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-17075] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-17133] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-17351] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-17666] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18198] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-18282] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18660] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18675] = "fixed-version: Fixed after version 4.17rc5"
+
+# CVE-2019-18680 has no known resolution
+
+CVE_STATUS[CVE-2019-18683] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18786] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18805] = "fixed-version: Fixed after version 5.1rc7"
+
+CVE_STATUS[CVE-2019-18806] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18807] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18808] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18809] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-18810] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-18811] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-18812] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-18813] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-18814] = "fixed-version: Fixed after version 5.7rc7"
+
+CVE_STATUS[CVE-2019-18885] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-19036] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19037] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-19039] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2019-19043] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19044] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19045] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19046] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19047] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19048] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19049] = "fixed-version: Fixed after version 5.4rc5"
+
+CVE_STATUS[CVE-2019-19050] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19051] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19052] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19053] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19054] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19055] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19056] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19057] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19058] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19059] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19060] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19061] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19062] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19063] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19064] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19065] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19066] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19067] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19068] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19069] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19070] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19071] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19072] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19073] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19074] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19075] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19076] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19077] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19078] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19079] = "fixed-version: Fixed after version 5.3"
+
+CVE_STATUS[CVE-2019-19080] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19081] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19082] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19083] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19227] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-19241] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19252] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19318] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19319] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19332] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19338] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19377] = "fixed-version: Fixed after version 5.7rc1"
+
+# CVE-2019-19378 has no known resolution
+
+CVE_STATUS[CVE-2019-19447] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19448] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2019-19449] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2019-19462] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2019-19523] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19524] = "fixed-version: Fixed after version 5.4rc8"
+
+CVE_STATUS[CVE-2019-19525] = "fixed-version: Fixed after version 5.4rc2"
+
+CVE_STATUS[CVE-2019-19526] = "fixed-version: Fixed after version 5.4rc4"
+
+CVE_STATUS[CVE-2019-19527] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19528] = "fixed-version: Fixed after version 5.4rc3"
+
+CVE_STATUS[CVE-2019-19529] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19530] = "fixed-version: Fixed after version 5.3rc5"
+
+CVE_STATUS[CVE-2019-19531] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19532] = "fixed-version: Fixed after version 5.4rc6"
+
+CVE_STATUS[CVE-2019-19533] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19534] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19535] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19536] = "fixed-version: Fixed after version 5.3rc4"
+
+CVE_STATUS[CVE-2019-19537] = "fixed-version: Fixed after version 5.3rc5"
+
+CVE_STATUS[CVE-2019-19543] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19602] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19767] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2019-19768] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2019-19769] = "fixed-version: Fixed after version 5.6rc5"
+
+CVE_STATUS[CVE-2019-19770] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2019-19807] = "fixed-version: Fixed after version 5.4rc7"
+
+CVE_STATUS[CVE-2019-19813] = "fixed-version: Fixed after version 5.2rc1"
+
+# CVE-2019-19814 has no known resolution
+
+CVE_STATUS[CVE-2019-19815] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2019-19816] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-19922] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-19927] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-19947] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-19965] = "fixed-version: Fixed after version 5.5rc2"
+
+CVE_STATUS[CVE-2019-19966] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-1999] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20054] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20095] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-20096] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-2024] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2019-2025] = "fixed-version: Fixed after version 4.20rc5"
+
+CVE_STATUS[CVE-2019-20422] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-2054] = "fixed-version: Fixed after version 4.8rc1"
+
+CVE_STATUS[CVE-2019-20636] = "fixed-version: Fixed after version 5.5rc6"
+
+# CVE-2019-20794 has no known resolution
+
+CVE_STATUS[CVE-2019-20806] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-20810] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2019-20811] = "fixed-version: Fixed after version 5.1rc3"
+
+CVE_STATUS[CVE-2019-20812] = "fixed-version: Fixed after version 5.5rc3"
+
+CVE_STATUS[CVE-2019-20908] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2019-20934] = "fixed-version: Fixed after version 5.3rc2"
+
+CVE_STATUS[CVE-2019-2101] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-2181] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-2182] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2019-2213] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-2214] = "fixed-version: Fixed after version 5.3rc2"
+
+CVE_STATUS[CVE-2019-2215] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2019-25044] = "fixed-version: Fixed after version 5.2rc4"
+
+CVE_STATUS[CVE-2019-25045] = "fixed-version: Fixed after version 5.1"
+
+CVE_STATUS[CVE-2019-3016] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2019-3459] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-3460] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-3701] = "fixed-version: Fixed after version 5.0rc3"
+
+CVE_STATUS[CVE-2019-3819] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-3837] = "fixed-version: Fixed after version 3.18rc1"
+
+CVE_STATUS[CVE-2019-3846] = "fixed-version: Fixed after version 5.2rc6"
+
+CVE_STATUS[CVE-2019-3874] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-3882] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-3887] = "fixed-version: Fixed after version 5.1rc4"
+
+CVE_STATUS[CVE-2019-3892] = "fixed-version: Fixed after version 5.1rc6"
+
+CVE_STATUS[CVE-2019-3896] = "fixed-version: Fixed after version 2.6.35rc1"
+
+CVE_STATUS[CVE-2019-3900] = "fixed-version: Fixed after version 5.2rc4"
+
+CVE_STATUS[CVE-2019-3901] = "fixed-version: Fixed after version 4.6rc6"
+
+CVE_STATUS[CVE-2019-5108] = "fixed-version: Fixed after version 5.3"
+
+# Skipping CVE-2019-5489, no affected_versions
+
+CVE_STATUS[CVE-2019-6133] = "fixed-version: Fixed after version 5.0rc2"
+
+CVE_STATUS[CVE-2019-6974] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7221] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7222] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-7308] = "fixed-version: Fixed after version 5.0rc3"
+
+CVE_STATUS[CVE-2019-8912] = "fixed-version: Fixed after version 5.0rc8"
+
+CVE_STATUS[CVE-2019-8956] = "fixed-version: Fixed after version 5.0rc6"
+
+CVE_STATUS[CVE-2019-8980] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9003] = "fixed-version: Fixed after version 5.0rc4"
+
+CVE_STATUS[CVE-2019-9162] = "fixed-version: Fixed after version 5.0rc7"
+
+CVE_STATUS[CVE-2019-9213] = "fixed-version: Fixed after version 5.0"
+
+CVE_STATUS[CVE-2019-9245] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2019-9444] = "fixed-version: Fixed after version 4.15rc2"
+
+CVE_STATUS[CVE-2019-9445] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9453] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2019-9454] = "fixed-version: Fixed after version 4.15rc9"
+
+CVE_STATUS[CVE-2019-9455] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2019-9456] = "fixed-version: Fixed after version 4.16rc6"
+
+CVE_STATUS[CVE-2019-9457] = "fixed-version: Fixed after version 4.13rc1"
+
+CVE_STATUS[CVE-2019-9458] = "fixed-version: Fixed after version 4.19rc7"
+
+CVE_STATUS[CVE-2019-9466] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9500] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9503] = "fixed-version: Fixed after version 5.1rc1"
+
+CVE_STATUS[CVE-2019-9506] = "fixed-version: Fixed after version 5.2"
+
+CVE_STATUS[CVE-2019-9857] = "fixed-version: Fixed after version 5.1rc2"
+
+CVE_STATUS[CVE-2020-0009] = "fixed-version: Fixed after version 5.6rc3"
+
+CVE_STATUS[CVE-2020-0030] = "fixed-version: Fixed after version 4.16rc3"
+
+CVE_STATUS[CVE-2020-0041] = "fixed-version: Fixed after version 5.5rc2"
+
+CVE_STATUS[CVE-2020-0066] = "fixed-version: Fixed after version 4.3rc7"
+
+CVE_STATUS[CVE-2020-0067] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2020-0110] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2020-0255] = "fixed-version: Fixed after version 5.7rc4"
+
+CVE_STATUS[CVE-2020-0305] = "fixed-version: Fixed after version 5.5rc6"
+
+# CVE-2020-0347 has no known resolution
+
+CVE_STATUS[CVE-2020-0404] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2020-0423] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-0427] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2020-0429] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2020-0430] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2020-0431] = "fixed-version: Fixed after version 5.5rc6"
+
+CVE_STATUS[CVE-2020-0432] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2020-0433] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2020-0435] = "fixed-version: Fixed after version 4.19rc1"
+
+CVE_STATUS[CVE-2020-0444] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-0465] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-0466] = "fixed-version: Fixed after version 5.9rc2"
+
+CVE_STATUS[CVE-2020-0543] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10135] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10690] = "fixed-version: Fixed after version 5.5rc5"
+
+# CVE-2020-10708 has no known resolution
+
+CVE_STATUS[CVE-2020-10711] = "fixed-version: Fixed after version 5.7rc6"
+
+CVE_STATUS[CVE-2020-10720] = "fixed-version: Fixed after version 5.2rc3"
+
+CVE_STATUS[CVE-2020-10732] = "fixed-version: Fixed after version 5.7"
+
+CVE_STATUS[CVE-2020-10742] = "fixed-version: Fixed after version 3.16rc1"
+
+CVE_STATUS[CVE-2020-10751] = "fixed-version: Fixed after version 5.7rc4"
+
+CVE_STATUS[CVE-2020-10757] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10766] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10767] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10768] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-10769] = "fixed-version: Fixed after version 5.0rc3"
+
+CVE_STATUS[CVE-2020-10773] = "fixed-version: Fixed after version 5.4rc6"
+
+# CVE-2020-10774 has no known resolution
+
+CVE_STATUS[CVE-2020-10781] = "fixed-version: Fixed after version 5.8rc6"
+
+CVE_STATUS[CVE-2020-10942] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-11494] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11565] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11608] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11609] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11668] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-11669] = "fixed-version: Fixed after version 5.2rc1"
+
+# CVE-2020-11725 has no known resolution
+
+CVE_STATUS[CVE-2020-11884] = "fixed-version: Fixed after version 5.7rc4"
+
+# CVE-2020-11935 has no known resolution
+
+CVE_STATUS[CVE-2020-12114] = "fixed-version: Fixed after version 5.3rc1"
+
+CVE_STATUS[CVE-2020-12351] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-12352] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-12362] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12363] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12364] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-12464] = "fixed-version: Fixed after version 5.7rc3"
+
+CVE_STATUS[CVE-2020-12465] = "fixed-version: Fixed after version 5.6rc6"
+
+CVE_STATUS[CVE-2020-12652] = "fixed-version: Fixed after version 5.5rc7"
+
+CVE_STATUS[CVE-2020-12653] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2020-12654] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2020-12655] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12656] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-12657] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12659] = "fixed-version: Fixed after version 5.7rc2"
+
+CVE_STATUS[CVE-2020-12768] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-12769] = "fixed-version: Fixed after version 5.5rc6"
+
+CVE_STATUS[CVE-2020-12770] = "fixed-version: Fixed after version 5.7rc3"
+
+CVE_STATUS[CVE-2020-12771] = "fixed-version: Fixed after version 5.8rc2"
+
+CVE_STATUS[CVE-2020-12826] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-12888] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-12912] = "fixed-version: Fixed after version 5.10rc4"
+
+CVE_STATUS[CVE-2020-13143] = "fixed-version: Fixed after version 5.7rc6"
+
+CVE_STATUS[CVE-2020-13974] = "fixed-version: Fixed after version 5.8rc1"
+
+# CVE-2020-14304 has no known resolution
+
+CVE_STATUS[CVE-2020-14305] = "fixed-version: Fixed after version 4.12rc1"
+
+CVE_STATUS[CVE-2020-14314] = "fixed-version: Fixed after version 5.9rc2"
+
+CVE_STATUS[CVE-2020-14331] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2020-14351] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-14353] = "fixed-version: Fixed after version 4.14rc3"
+
+CVE_STATUS[CVE-2020-14356] = "fixed-version: Fixed after version 5.8rc5"
+
+CVE_STATUS[CVE-2020-14381] = "fixed-version: Fixed after version 5.6rc6"
+
+CVE_STATUS[CVE-2020-14385] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-14386] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-14390] = "fixed-version: Fixed after version 5.9rc6"
+
+CVE_STATUS[CVE-2020-14416] = "fixed-version: Fixed after version 5.5"
+
+CVE_STATUS[CVE-2020-15393] = "fixed-version: Fixed after version 5.8rc3"
+
+CVE_STATUS[CVE-2020-15436] = "fixed-version: Fixed after version 5.8rc2"
+
+CVE_STATUS[CVE-2020-15437] = "fixed-version: Fixed after version 5.8rc7"
+
+CVE_STATUS[CVE-2020-15780] = "fixed-version: Fixed after version 5.8rc3"
+
+# CVE-2020-15802 has no known resolution
+
+CVE_STATUS[CVE-2020-15852] = "fixed-version: Fixed after version 5.8rc6"
+
+CVE_STATUS[CVE-2020-16119] = "fixed-version: Fixed after version 5.15rc2"
+
+CVE_STATUS[CVE-2020-16120] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-16166] = "fixed-version: Fixed after version 5.8"
+
+CVE_STATUS[CVE-2020-1749] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2020-24394] = "fixed-version: Fixed after version 5.8rc4"
+
+CVE_STATUS[CVE-2020-24490] = "fixed-version: Fixed after version 5.8"
+
+# CVE-2020-24502 has no known resolution
+
+# CVE-2020-24503 has no known resolution
+
+CVE_STATUS[CVE-2020-24504] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2020-24586] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-24587] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-24588] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-25211] = "fixed-version: Fixed after version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25212] = "fixed-version: Fixed after version 5.9rc1"
+
+# CVE-2020-25220 has no known resolution
+
+CVE_STATUS[CVE-2020-25221] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25284] = "fixed-version: Fixed after version 5.9rc5"
+
+CVE_STATUS[CVE-2020-25285] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25639] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2020-25641] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2020-25643] = "fixed-version: Fixed after version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25645] = "fixed-version: Fixed after version 5.9rc7"
+
+CVE_STATUS[CVE-2020-25656] = "fixed-version: Fixed after version 5.10rc2"
+
+# CVE-2020-25661 has no known resolution
+
+# CVE-2020-25662 has no known resolution
+
+CVE_STATUS[CVE-2020-25668] = "fixed-version: Fixed after version 5.10rc3"
+
+CVE_STATUS[CVE-2020-25669] = "fixed-version: Fixed after version 5.10rc5"
+
+CVE_STATUS[CVE-2020-25670] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25671] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25672] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25673] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2020-25704] = "fixed-version: Fixed after version 5.10rc3"
+
+CVE_STATUS[CVE-2020-25705] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-26088] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2020-26139] = "fixed-version: Fixed after version 5.13rc4"
+
+# CVE-2020-26140 has no known resolution
+
+CVE_STATUS[CVE-2020-26141] = "fixed-version: Fixed after version 5.13rc4"
+
+# CVE-2020-26142 has no known resolution
+
+# CVE-2020-26143 has no known resolution
+
+CVE_STATUS[CVE-2020-26145] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-26147] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2020-26541] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2020-26555] = "fixed-version: Fixed after version 5.13rc1"
+
+# CVE-2020-26556 has no known resolution
+
+# CVE-2020-26557 has no known resolution
+
+CVE_STATUS[CVE-2020-26558] = "fixed-version: Fixed after version 5.13rc1"
+
+# CVE-2020-26559 has no known resolution
+
+# CVE-2020-26560 has no known resolution
+
+CVE_STATUS[CVE-2020-27066] = "fixed-version: Fixed after version 5.6"
+
+CVE_STATUS[CVE-2020-27067] = "fixed-version: Fixed after version 4.14rc4"
+
+CVE_STATUS[CVE-2020-27068] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2020-27152] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27170] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2020-27171] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2020-27194] = "fixed-version: Fixed after version 5.9"
+
+CVE_STATUS[CVE-2020-2732] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-27673] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27675] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27777] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27784] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27786] = "fixed-version: Fixed after version 5.7rc6"
+
+CVE_STATUS[CVE-2020-27815] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-27820] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2020-27825] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-27830] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-27835] = "fixed-version: Fixed after version 5.10rc6"
+
+CVE_STATUS[CVE-2020-28097] = "fixed-version: Fixed after version 5.9rc6"
+
+CVE_STATUS[CVE-2020-28374] = "fixed-version: Fixed after version 5.11rc4"
+
+CVE_STATUS[CVE-2020-28588] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-28915] = "fixed-version: Fixed after version 5.9"
+
+CVE_STATUS[CVE-2020-28941] = "fixed-version: Fixed after version 5.10rc5"
+
+CVE_STATUS[CVE-2020-28974] = "fixed-version: Fixed after version 5.10rc3"
+
+CVE_STATUS[CVE-2020-29368] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-29369] = "fixed-version: Fixed after version 5.8rc7"
+
+CVE_STATUS[CVE-2020-29370] = "fixed-version: Fixed after version 5.6rc7"
+
+CVE_STATUS[CVE-2020-29371] = "fixed-version: Fixed after version 5.9rc2"
+
+CVE_STATUS[CVE-2020-29372] = "fixed-version: Fixed after version 5.7rc3"
+
+CVE_STATUS[CVE-2020-29373] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2020-29374] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-29534] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-29568] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-29569] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-29660] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-29661] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-35499] = "fixed-version: Fixed after version 5.11rc1"
+
+# CVE-2020-35501 has no known resolution
+
+CVE_STATUS[CVE-2020-35508] = "fixed-version: Fixed after version 5.10rc3"
+
+CVE_STATUS[CVE-2020-35513] = "fixed-version: Fixed after version 4.17rc1"
+
+CVE_STATUS[CVE-2020-35519] = "fixed-version: Fixed after version 5.10rc7"
+
+CVE_STATUS[CVE-2020-36158] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-36310] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-36311] = "fixed-version: Fixed after version 5.9rc5"
+
+CVE_STATUS[CVE-2020-36312] = "fixed-version: Fixed after version 5.9rc5"
+
+CVE_STATUS[CVE-2020-36313] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-36322] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2020-36385] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2020-36386] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2020-36387] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2020-36516] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2020-36557] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-36558] = "fixed-version: Fixed after version 5.6rc3"
+
+CVE_STATUS[CVE-2020-36691] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2020-36694] = "fixed-version: Fixed after version 5.10"
+
+CVE_STATUS[CVE-2020-3702] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2020-4788] = "fixed-version: Fixed after version 5.10rc5"
+
+CVE_STATUS[CVE-2020-7053] = "fixed-version: Fixed after version 5.2rc1"
+
+CVE_STATUS[CVE-2020-8428] = "fixed-version: Fixed after version 5.5"
+
+CVE_STATUS[CVE-2020-8647] = "fixed-version: Fixed after version 5.6rc5"
+
+CVE_STATUS[CVE-2020-8648] = "fixed-version: Fixed after version 5.6rc3"
+
+CVE_STATUS[CVE-2020-8649] = "fixed-version: Fixed after version 5.6rc5"
+
+CVE_STATUS[CVE-2020-8694] = "fixed-version: Fixed after version 5.10rc4"
+
+# CVE-2020-8832 has no known resolution
+
+CVE_STATUS[CVE-2020-8834] = "fixed-version: Fixed after version 4.18rc1"
+
+CVE_STATUS[CVE-2020-8835] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2020-8992] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2020-9383] = "fixed-version: Fixed after version 5.6rc4"
+
+CVE_STATUS[CVE-2020-9391] = "fixed-version: Fixed after version 5.6rc3"
+
+CVE_STATUS[CVE-2021-0129] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-0342] = "fixed-version: Fixed after version 5.8rc1"
+
+# CVE-2021-0399 has no known resolution
+
+CVE_STATUS[CVE-2021-0447] = "fixed-version: Fixed after version 4.15rc1"
+
+CVE_STATUS[CVE-2021-0448] = "fixed-version: Fixed after version 5.9rc7"
+
+CVE_STATUS[CVE-2021-0512] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-0605] = "fixed-version: Fixed after version 5.8"
+
+# CVE-2021-0606 has no known resolution
+
+# CVE-2021-0695 has no known resolution
+
+CVE_STATUS[CVE-2021-0707] = "fixed-version: Fixed after version 5.11rc3"
+
+CVE_STATUS[CVE-2021-0920] = "fixed-version: Fixed after version 5.14rc4"
+
+# CVE-2021-0924 has no known resolution
+
+CVE_STATUS[CVE-2021-0929] = "fixed-version: Fixed after version 5.6rc1"
+
+CVE_STATUS[CVE-2021-0935] = "fixed-version: Fixed after version 4.16rc7"
+
+# CVE-2021-0936 has no known resolution
+
+CVE_STATUS[CVE-2021-0937] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-0938] = "fixed-version: Fixed after version 5.10rc4"
+
+CVE_STATUS[CVE-2021-0941] = "fixed-version: Fixed after version 5.12rc1"
+
+# CVE-2021-0961 has no known resolution
+
+CVE_STATUS[CVE-2021-1048] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2021-20177] = "fixed-version: Fixed after version 5.5rc1"
+
+CVE_STATUS[CVE-2021-20194] = "fixed-version: Fixed after version 5.10rc1"
+
+# CVE-2021-20219 has no known resolution
+
+CVE_STATUS[CVE-2021-20226] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2021-20239] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2021-20261] = "fixed-version: Fixed after version 4.5rc5"
+
+CVE_STATUS[CVE-2021-20265] = "fixed-version: Fixed after version 4.5rc3"
+
+CVE_STATUS[CVE-2021-20268] = "fixed-version: Fixed after version 5.11rc5"
+
+CVE_STATUS[CVE-2021-20292] = "fixed-version: Fixed after version 5.9rc1"
+
+CVE_STATUS[CVE-2021-20317] = "fixed-version: Fixed after version 5.4rc1"
+
+CVE_STATUS[CVE-2021-20320] = "fixed-version: Fixed after version 5.15rc3"
+
+CVE_STATUS[CVE-2021-20321] = "fixed-version: Fixed after version 5.15rc5"
+
+CVE_STATUS[CVE-2021-20322] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-21781] = "fixed-version: Fixed after version 5.11rc7"
+
+CVE_STATUS[CVE-2021-22543] = "fixed-version: Fixed after version 5.13"
+
+CVE_STATUS[CVE-2021-22555] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-22600] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-23133] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-23134] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-26401] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2021-26708] = "fixed-version: Fixed after version 5.11rc7"
+
+CVE_STATUS[CVE-2021-26930] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-26931] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-26932] = "fixed-version: Fixed after version 5.12rc1"
+
+# CVE-2021-26934 has no known resolution
+
+CVE_STATUS[CVE-2021-27363] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-27364] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-27365] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28038] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28039] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28375] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-28660] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-28688] = "fixed-version: Fixed after version 5.12rc6"
+
+CVE_STATUS[CVE-2021-28691] = "fixed-version: Fixed after version 5.13rc6"
+
+CVE_STATUS[CVE-2021-28711] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28712] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28713] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28714] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28715] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-28950] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28951] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-28952] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28964] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28971] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-28972] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-29154] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2021-29155] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-29264] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-29265] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-29266] = "fixed-version: Fixed after version 5.12rc4"
+
+CVE_STATUS[CVE-2021-29646] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29647] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29648] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29649] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29650] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-29657] = "fixed-version: Fixed after version 5.12rc6"
+
+CVE_STATUS[CVE-2021-30002] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-30178] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2021-31440] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-3178] = "fixed-version: Fixed after version 5.11rc5"
+
+CVE_STATUS[CVE-2021-31829] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-31916] = "fixed-version: Fixed after version 5.12rc5"
+
+CVE_STATUS[CVE-2021-32078] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-32399] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-32606] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-33033] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-33034] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-33061] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2021-33098] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-33135] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2021-33200] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3347] = "fixed-version: Fixed after version 5.11rc6"
+
+CVE_STATUS[CVE-2021-3348] = "fixed-version: Fixed after version 5.11rc6"
+
+CVE_STATUS[CVE-2021-33624] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-33655] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2021-33656] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-33909] = "fixed-version: Fixed after version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3411] = "fixed-version: Fixed after version 5.10"
+
+CVE_STATUS[CVE-2021-3428] = "fixed-version: Fixed after version 5.9rc2"
+
+CVE_STATUS[CVE-2021-3444] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-34556] = "fixed-version: Fixed after version 5.14rc4"
+
+CVE_STATUS[CVE-2021-34693] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-3483] = "fixed-version: Fixed after version 5.12rc6"
+
+CVE_STATUS[CVE-2021-34866] = "fixed-version: Fixed after version 5.14"
+
+CVE_STATUS[CVE-2021-3489] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3490] = "fixed-version: Fixed after version 5.13rc4"
+
+CVE_STATUS[CVE-2021-3491] = "fixed-version: Fixed after version 5.13rc1"
+
+# CVE-2021-3492 has no known resolution
+
+CVE_STATUS[CVE-2021-3493] = "fixed-version: Fixed after version 5.11rc1"
+
+CVE_STATUS[CVE-2021-34981] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3501] = "fixed-version: Fixed after version 5.12rc8"
+
+CVE_STATUS[CVE-2021-35039] = "fixed-version: Fixed after version 5.13"
+
+CVE_STATUS[CVE-2021-3506] = "fixed-version: Fixed after version 5.13rc1"
+
+# CVE-2021-3542 has no known resolution
+
+CVE_STATUS[CVE-2021-3543] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-35477] = "fixed-version: Fixed after version 5.14rc4"
+
+CVE_STATUS[CVE-2021-3564] = "fixed-version: Fixed after version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3573] = "fixed-version: Fixed after version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3587] = "fixed-version: Fixed after version 5.13rc5"
+
+CVE_STATUS[CVE-2021-3600] = "fixed-version: Fixed after version 5.11"
+
+CVE_STATUS[CVE-2021-3609] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3612] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-3635] = "fixed-version: Fixed after version 5.5rc7"
+
+CVE_STATUS[CVE-2021-3640] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-3653] = "fixed-version: Fixed after version 5.14rc7"
+
+CVE_STATUS[CVE-2021-3655] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-3656] = "fixed-version: Fixed after version 5.14rc7"
+
+CVE_STATUS[CVE-2021-3659] = "fixed-version: Fixed after version 5.12rc7"
+
+CVE_STATUS[CVE-2021-3669] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3679] = "fixed-version: Fixed after version 5.14rc3"
+
+# CVE-2021-3714 has no known resolution
+
+CVE_STATUS[CVE-2021-3715] = "fixed-version: Fixed after version 5.6"
+
+CVE_STATUS[CVE-2021-37159] = "fixed-version: Fixed after version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3732] = "fixed-version: Fixed after version 5.14rc6"
+
+CVE_STATUS[CVE-2021-3736] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3739] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3743] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-3744] = "fixed-version: Fixed after version 5.15rc4"
+
+CVE_STATUS[CVE-2021-3752] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-3753] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-37576] = "fixed-version: Fixed after version 5.14rc3"
+
+CVE_STATUS[CVE-2021-3759] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-3760] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3764] = "fixed-version: Fixed after version 5.15rc4"
+
+CVE_STATUS[CVE-2021-3772] = "fixed-version: Fixed after version 5.15"
+
+CVE_STATUS[CVE-2021-38160] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38166] = "fixed-version: Fixed after version 5.14rc6"
+
+CVE_STATUS[CVE-2021-38198] = "fixed-version: Fixed after version 5.13rc6"
+
+CVE_STATUS[CVE-2021-38199] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38200] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38201] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38202] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38203] = "fixed-version: Fixed after version 5.14rc2"
+
+CVE_STATUS[CVE-2021-38204] = "fixed-version: Fixed after version 5.14rc3"
+
+CVE_STATUS[CVE-2021-38205] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-38206] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38207] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2021-38208] = "fixed-version: Fixed after version 5.13rc5"
+
+CVE_STATUS[CVE-2021-38209] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-38300] = "fixed-version: Fixed after version 5.15rc4"
+
+# CVE-2021-3847 has no known resolution
+
+# CVE-2021-3864 has no known resolution
+
+# CVE-2021-3892 has no known resolution
+
+CVE_STATUS[CVE-2021-3894] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3896] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-3923] = "fixed-version: Fixed after version 5.16"
+
+CVE_STATUS[CVE-2021-39633] = "fixed-version: Fixed after version 5.14"
+
+CVE_STATUS[CVE-2021-39634] = "fixed-version: Fixed after version 5.9rc8"
+
+CVE_STATUS[CVE-2021-39636] = "fixed-version: Fixed after version 4.16rc1"
+
+CVE_STATUS[CVE-2021-39648] = "fixed-version: Fixed after version 5.11rc3"
+
+CVE_STATUS[CVE-2021-39656] = "fixed-version: Fixed after version 5.12rc3"
+
+CVE_STATUS[CVE-2021-39657] = "fixed-version: Fixed after version 5.11rc4"
+
+CVE_STATUS[CVE-2021-39685] = "fixed-version: Fixed after version 5.16rc5"
+
+CVE_STATUS[CVE-2021-39686] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-39698] = "fixed-version: Fixed after version 5.16rc5"
+
+CVE_STATUS[CVE-2021-39711] = "fixed-version: Fixed after version 4.18rc6"
+
+CVE_STATUS[CVE-2021-39713] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2021-39714] = "fixed-version: Fixed after version 4.12rc1"
+
+# CVE-2021-39800 has no known resolution
+
+# CVE-2021-39801 has no known resolution
+
+# CVE-2021-39802 has no known resolution
+
+CVE_STATUS[CVE-2021-4001] = "fixed-version: Fixed after version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4002] = "fixed-version: Fixed after version 5.16rc3"
+
+CVE_STATUS[CVE-2021-4023] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-4028] = "fixed-version: Fixed after version 5.15rc4"
+
+CVE_STATUS[CVE-2021-4032] = "fixed-version: Fixed after version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4037] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2021-40490] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-4083] = "fixed-version: Fixed after version 5.16rc4"
+
+CVE_STATUS[CVE-2021-4090] = "fixed-version: Fixed after version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4093] = "fixed-version: Fixed after version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4095] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-41073] = "fixed-version: Fixed after version 5.15rc2"
+
+CVE_STATUS[CVE-2021-4135] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-4148] = "fixed-version: Fixed after version 5.15"
+
+CVE_STATUS[CVE-2021-4149] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-4150] = "fixed-version: Fixed after version 5.15rc7"
+
+CVE_STATUS[CVE-2021-4154] = "fixed-version: Fixed after version 5.14rc2"
+
+CVE_STATUS[CVE-2021-4155] = "fixed-version: Fixed after version 5.16"
+
+CVE_STATUS[CVE-2021-4157] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-4159] = "fixed-version: Fixed after version 5.7rc1"
+
+CVE_STATUS[CVE-2021-41864] = "fixed-version: Fixed after version 5.15rc5"
+
+CVE_STATUS[CVE-2021-4197] = "fixed-version: Fixed after version 5.16"
+
+CVE_STATUS[CVE-2021-42008] = "fixed-version: Fixed after version 5.14rc7"
+
+CVE_STATUS[CVE-2021-4202] = "fixed-version: Fixed after version 5.16rc2"
+
+CVE_STATUS[CVE-2021-4203] = "fixed-version: Fixed after version 5.15rc4"
+
+CVE_STATUS[CVE-2021-4204] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-4218] = "fixed-version: Fixed after version 5.8rc1"
+
+CVE_STATUS[CVE-2021-42252] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2021-42327] = "fixed-version: Fixed after version 5.15"
+
+CVE_STATUS[CVE-2021-42739] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-43056] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-43057] = "fixed-version: Fixed after version 5.15rc3"
+
+CVE_STATUS[CVE-2021-43267] = "fixed-version: Fixed after version 5.15"
+
+CVE_STATUS[CVE-2021-43389] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2021-43975] = "fixed-version: Fixed after version 5.16rc2"
+
+CVE_STATUS[CVE-2021-43976] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-44733] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-44879] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-45095] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45100] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2021-45402] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45469] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2021-45480] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2021-45485] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2021-45486] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2021-45868] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2021-46283] = "fixed-version: Fixed after version 5.13rc7"
+
+CVE_STATUS[CVE-2022-0001] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0002] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0168] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-0171] = "fixed-version: Fixed after version 5.18rc4"
+
+CVE_STATUS[CVE-2022-0185] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0264] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2022-0286] = "fixed-version: Fixed after version 5.14rc2"
+
+CVE_STATUS[CVE-2022-0322] = "fixed-version: Fixed after version 5.15rc6"
+
+CVE_STATUS[CVE-2022-0330] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-0382] = "fixed-version: Fixed after version 5.16"
+
+# CVE-2022-0400 has no known resolution
+
+CVE_STATUS[CVE-2022-0433] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0435] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0480] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-0487] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0492] = "fixed-version: Fixed after version 5.17rc3"
+
+CVE_STATUS[CVE-2022-0494] = "fixed-version: Fixed after version 5.17rc5"
+
+CVE_STATUS[CVE-2022-0500] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-0516] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-0617] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-0644] = "fixed-version: Fixed after version 5.15rc7"
+
+CVE_STATUS[CVE-2022-0646] = "fixed-version: Fixed after version 5.17rc5"
+
+CVE_STATUS[CVE-2022-0742] = "fixed-version: Fixed after version 5.17rc7"
+
+CVE_STATUS[CVE-2022-0812] = "fixed-version: Fixed after version 5.8rc6"
+
+CVE_STATUS[CVE-2022-0847] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-0850] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2022-0854] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0995] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-0998] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-1011] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-1012] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1015] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1016] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1043] = "fixed-version: Fixed after version 5.14rc7"
+
+CVE_STATUS[CVE-2022-1048] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1055] = "fixed-version: Fixed after version 5.17rc3"
+
+# CVE-2022-1116 has no known resolution
+
+CVE_STATUS[CVE-2022-1158] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1184] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1195] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2022-1198] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-1199] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-1204] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1205] = "fixed-version: Fixed after version 5.18rc1"
+
+# CVE-2022-1247 has no known resolution
+
+CVE_STATUS[CVE-2022-1263] = "fixed-version: Fixed after version 5.18rc3"
+
+CVE_STATUS[CVE-2022-1280] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-1353] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-1419] = "fixed-version: Fixed after version 5.6rc2"
+
+CVE_STATUS[CVE-2022-1462] = "fixed-version: Fixed after version 5.19rc7"
+
+CVE_STATUS[CVE-2022-1508] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-1516] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1651] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1652] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1671] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-1678] = "fixed-version: Fixed after version 4.20rc1"
+
+CVE_STATUS[CVE-2022-1679] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-1729] = "fixed-version: Fixed after version 5.18"
+
+CVE_STATUS[CVE-2022-1734] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1786] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-1789] = "fixed-version: Fixed after version 5.18"
+
+CVE_STATUS[CVE-2022-1836] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2022-1852] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1882] = "fixed-version: Fixed after version 5.19rc8"
+
+CVE_STATUS[CVE-2022-1943] = "fixed-version: Fixed after version 5.18rc7"
+
+CVE_STATUS[CVE-2022-1966] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1972] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1973] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1974] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1975] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2022-1976] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-1998] = "fixed-version: Fixed after version 5.17rc3"
+
+CVE_STATUS[CVE-2022-20008] = "fixed-version: Fixed after version 5.17rc5"
+
+CVE_STATUS[CVE-2022-20132] = "fixed-version: Fixed after version 5.16rc5"
+
+CVE_STATUS[CVE-2022-20141] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-20148] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2022-20153] = "fixed-version: Fixed after version 5.13rc1"
+
+CVE_STATUS[CVE-2022-20154] = "fixed-version: Fixed after version 5.16rc8"
+
+CVE_STATUS[CVE-2022-20158] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-20166] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2022-20368] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-20369] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-20409] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20421] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-20422] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-20423] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-20424] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20565] = "fixed-version: Fixed after version 5.9rc4"
+
+CVE_STATUS[CVE-2022-20566] = "fixed-version: Fixed after version 5.19"
+
+CVE_STATUS[CVE-2022-20567] = "fixed-version: Fixed after version 4.16rc5"
+
+CVE_STATUS[CVE-2022-20568] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-20572] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-2078] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-21123] = "fixed-version: Fixed after version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21125] = "fixed-version: Fixed after version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21166] = "fixed-version: Fixed after version 5.19rc3"
+
+CVE_STATUS[CVE-2022-21385] = "fixed-version: Fixed after version 4.20"
+
+CVE_STATUS[CVE-2022-21499] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-21505] = "fixed-version: Fixed after version 5.19rc8"
+
+CVE_STATUS[CVE-2022-2153] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2196] = "fixed-version: Fixed after version 6.2rc1"
+
+# CVE-2022-2209 has no known resolution
+
+CVE_STATUS[CVE-2022-22942] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-23036] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23037] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23038] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23039] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23040] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23041] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-23042] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-2308] = "fixed-version: Fixed after version 6.0"
+
+CVE_STATUS[CVE-2022-2318] = "fixed-version: Fixed after version 5.19rc5"
+
+CVE_STATUS[CVE-2022-23222] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-2327] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-2380] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-23816] = "fixed-version: Fixed after version 5.19rc7"
+
+# CVE-2022-23825 has no known resolution
+
+CVE_STATUS[CVE-2022-23960] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-24122] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-24448] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-24958] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-24959] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-2503] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-25258] = "fixed-version: Fixed after version 5.17rc4"
+
+# CVE-2022-25265 has no known resolution
+
+CVE_STATUS[CVE-2022-25375] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-25636] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-2585] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2586] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2588] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2590] = "fixed-version: Fixed after version 6.0rc3"
+
+CVE_STATUS[CVE-2022-2602] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-26365] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-26373] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-2639] = "fixed-version: Fixed after version 5.18rc4"
+
+CVE_STATUS[CVE-2022-26490] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-2663] = "fixed-version: Fixed after version 6.0rc5"
+
+# CVE-2022-26878 has no known resolution
+
+CVE_STATUS[CVE-2022-26966] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-27223] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-27666] = "fixed-version: Fixed after version 5.17rc8"
+
+CVE_STATUS[CVE-2022-27672] = "fixed-version: Fixed after version 6.2"
+
+CVE_STATUS[CVE-2022-2785] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-27950] = "fixed-version: Fixed after version 5.17rc5"
+
+CVE_STATUS[CVE-2022-28356] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28388] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28389] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28390] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2873] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-28796] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-28893] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2022-2905] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-29156] = "fixed-version: Fixed after version 5.17rc6"
+
+CVE_STATUS[CVE-2022-2938] = "fixed-version: Fixed after version 5.17rc2"
+
+CVE_STATUS[CVE-2022-29581] = "fixed-version: Fixed after version 5.18rc4"
+
+CVE_STATUS[CVE-2022-29582] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2022-2959] = "fixed-version: Fixed after version 5.19rc1"
+
+# CVE-2022-2961 has no known resolution
+
+CVE_STATUS[CVE-2022-2964] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2022-2977] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-2978] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-29900] = "fixed-version: Fixed after version 5.19rc7"
+
+CVE_STATUS[CVE-2022-29901] = "fixed-version: Fixed after version 5.19rc7"
+
+CVE_STATUS[CVE-2022-2991] = "fixed-version: Fixed after version 5.15rc1"
+
+CVE_STATUS[CVE-2022-29968] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3028] = "fixed-version: Fixed after version 6.0rc3"
+
+CVE_STATUS[CVE-2022-30594] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3061] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3077] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3078] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3103] = "fixed-version: Fixed after version 6.0rc3"
+
+CVE_STATUS[CVE-2022-3104] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3105] = "fixed-version: Fixed after version 5.16"
+
+CVE_STATUS[CVE-2022-3106] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2022-3107] = "fixed-version: Fixed after version 5.17"
+
+CVE_STATUS[CVE-2022-3108] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-3110] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3111] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3112] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3113] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-3114] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3115] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3169] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3170] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-3176] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2022-3202] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-32250] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-32296] = "fixed-version: Fixed after version 5.18rc6"
+
+# CVE-2022-3238 has no known resolution
+
+CVE_STATUS[CVE-2022-3239] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2022-32981] = "fixed-version: Fixed after version 5.19rc2"
+
+CVE_STATUS[CVE-2022-3303] = "fixed-version: Fixed after version 6.0rc5"
+
+CVE_STATUS[CVE-2022-3344] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2022-33740] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33741] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33742] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33743] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33744] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-33981] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2022-3424] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-3435] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-34494] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-34495] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-34918] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-3521] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3522] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3523] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3524] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3526] = "fixed-version: Fixed after version 5.18rc3"
+
+CVE_STATUS[CVE-2022-3531] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-3532] = "fixed-version: Fixed after version 6.2rc1"
+
+# CVE-2022-3533 has no known resolution
+
+CVE_STATUS[CVE-2022-3534] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-3535] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3541] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3542] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3543] = "fixed-version: Fixed after version 6.1rc1"
+
+# CVE-2022-3544 has no known resolution
+
+CVE_STATUS[CVE-2022-3545] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3564] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2022-3565] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3566] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3567] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3577] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3586] = "fixed-version: Fixed after version 6.0rc5"
+
+CVE_STATUS[CVE-2022-3594] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3595] = "fixed-version: Fixed after version 6.1rc1"
+
+# CVE-2022-3606 has no known resolution
+
+CVE_STATUS[CVE-2022-36123] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-3619] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2022-3621] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3623] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3624] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3625] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3628] = "fixed-version: Fixed after version 6.1rc5"
+
+CVE_STATUS[CVE-2022-36280] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-3629] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3630] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3633] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3635] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-3636] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-3640] = "fixed-version: Fixed after version 6.1rc4"
+
+# CVE-2022-36402 has no known resolution
+
+# CVE-2022-3642 has no known resolution
+
+CVE_STATUS[CVE-2022-3643] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-3646] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-3649] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-36879] = "fixed-version: Fixed after version 5.19rc8"
+
+CVE_STATUS[CVE-2022-36946] = "fixed-version: Fixed after version 5.19"
+
+CVE_STATUS[CVE-2022-3707] = "fixed-version: Fixed after version 6.2rc3"
+
+# CVE-2022-38096 has no known resolution
+
+CVE_STATUS[CVE-2022-38457] = "fixed-version: Fixed after version 6.2rc4"
+
+CVE_STATUS[CVE-2022-3903] = "fixed-version: Fixed after version 6.1rc2"
+
+CVE_STATUS[CVE-2022-3910] = "fixed-version: Fixed after version 6.0rc6"
+
+CVE_STATUS[CVE-2022-39188] = "fixed-version: Fixed after version 5.19rc8"
+
+CVE_STATUS[CVE-2022-39189] = "fixed-version: Fixed after version 5.19rc2"
+
+CVE_STATUS[CVE-2022-39190] = "fixed-version: Fixed after version 6.0rc3"
+
+CVE_STATUS[CVE-2022-3977] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-39842] = "fixed-version: Fixed after version 5.19rc4"
+
+CVE_STATUS[CVE-2022-40133] = "fixed-version: Fixed after version 6.2rc4"
+
+CVE_STATUS[CVE-2022-40307] = "fixed-version: Fixed after version 6.0rc5"
+
+CVE_STATUS[CVE-2022-40476] = "fixed-version: Fixed after version 5.19rc4"
+
+CVE_STATUS[CVE-2022-40768] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-4095] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-41218] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-41222] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2022-4127] = "fixed-version: Fixed after version 5.19rc6"
+
+CVE_STATUS[CVE-2022-4128] = "fixed-version: Fixed after version 5.19rc7"
+
+CVE_STATUS[CVE-2022-4129] = "fixed-version: Fixed after version 6.1rc6"
+
+CVE_STATUS[CVE-2022-4139] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-41674] = "fixed-version: Fixed after version 6.1rc1"
+
+# CVE-2022-41848 has no known resolution
+
+CVE_STATUS[CVE-2022-41849] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-41850] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-41858] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2022-42328] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-42329] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-42432] = "fixed-version: Fixed after version 6.0rc7"
+
+CVE_STATUS[CVE-2022-4269] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2022-42703] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-42719] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42720] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42721] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42722] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-42895] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2022-42896] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2022-43750] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2022-4378] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-4379] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-4382] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2022-43945] = "fixed-version: Fixed after version 6.1rc1"
+
+# CVE-2022-44032 has no known resolution
+
+# CVE-2022-44033 has no known resolution
+
+# CVE-2022-44034 has no known resolution
+
+# CVE-2022-4543 has no known resolution
+
+CVE_STATUS[CVE-2022-45869] = "fixed-version: Fixed after version 6.1rc7"
+
+# CVE-2022-45884 has no known resolution
+
+# CVE-2022-45885 has no known resolution
+
+# CVE-2022-45886 has no known resolution
+
+# CVE-2022-45887 has no known resolution
+
+CVE_STATUS[CVE-2022-45888] = "fixed-version: Fixed after version 6.2rc1"
+
+# CVE-2022-45919 has no known resolution
+
+CVE_STATUS[CVE-2022-45934] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2022-4662] = "fixed-version: Fixed after version 6.0rc4"
+
+CVE_STATUS[CVE-2022-4696] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2022-4744] = "fixed-version: Fixed after version 5.16rc7"
+
+CVE_STATUS[CVE-2022-47518] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47519] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47520] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47521] = "fixed-version: Fixed after version 6.1rc8"
+
+CVE_STATUS[CVE-2022-47929] = "fixed-version: Fixed after version 6.2rc4"
+
+CVE_STATUS[CVE-2022-47938] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47939] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47940] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2022-47941] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47942] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47943] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2022-47946] = "fixed-version: Fixed after version 5.12rc2"
+
+CVE_STATUS[CVE-2022-4842] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-48423] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-48424] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2022-48425] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2022-48502] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2023-0030] = "fixed-version: Fixed after version 5.0rc1"
+
+CVE_STATUS[CVE-2023-0045] = "fixed-version: Fixed after version 6.2rc3"
+
+CVE_STATUS[CVE-2023-0047] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2023-0122] = "fixed-version: Fixed after version 6.0rc4"
+
+# CVE-2023-0160 has no known resolution
+
+CVE_STATUS[CVE-2023-0179] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2023-0210] = "fixed-version: Fixed after version 6.2rc4"
+
+CVE_STATUS[CVE-2023-0240] = "fixed-version: Fixed after version 5.10rc1"
+
+CVE_STATUS[CVE-2023-0266] = "fixed-version: Fixed after version 6.2rc4"
+
+CVE_STATUS[CVE-2023-0386] = "fixed-version: Fixed after version 6.2rc6"
+
+CVE_STATUS[CVE-2023-0394] = "fixed-version: Fixed after version 6.2rc4"
+
+CVE_STATUS[CVE-2023-0458] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2023-0459] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-0461] = "fixed-version: Fixed after version 6.2rc3"
+
+CVE_STATUS[CVE-2023-0468] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-0469] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-0590] = "fixed-version: Fixed after version 6.1rc2"
+
+CVE_STATUS[CVE-2023-0597] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2023-0615] = "fixed-version: Fixed after version 6.1rc3"
+
+CVE_STATUS[CVE-2023-1032] = "fixed-version: Fixed after version 6.3rc2"
+
+CVE_STATUS[CVE-2023-1073] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2023-1074] = "fixed-version: Fixed after version 6.2rc6"
+
+CVE_STATUS[CVE-2023-1075] = "fixed-version: Fixed after version 6.2rc7"
+
+CVE_STATUS[CVE-2023-1076] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1077] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1078] = "fixed-version: Fixed after version 6.2rc8"
+
+CVE_STATUS[CVE-2023-1079] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1095] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2023-1118] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1192] = "fixed-version: Fixed after version 6.4rc1"
+
+# CVE-2023-1193 has no known resolution
+
+# CVE-2023-1194 has no known resolution
+
+CVE_STATUS[CVE-2023-1195] = "fixed-version: Fixed after version 6.1rc3"
+
+# CVE-2023-1206 has no known resolution
+
+CVE_STATUS[CVE-2023-1249] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2023-1252] = "fixed-version: Fixed after version 5.16rc1"
+
+CVE_STATUS[CVE-2023-1281] = "fixed-version: Fixed after version 6.2"
+
+CVE_STATUS[CVE-2023-1295] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2023-1380] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-1382] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-1390] = "fixed-version: Fixed after version 5.11rc4"
+
+CVE_STATUS[CVE-2023-1513] = "fixed-version: Fixed after version 6.2"
+
+CVE_STATUS[CVE-2023-1582] = "fixed-version: Fixed after version 5.17rc4"
+
+CVE_STATUS[CVE-2023-1583] = "fixed-version: Fixed after version 6.3rc4"
+
+CVE_STATUS[CVE-2023-1611] = "fixed-version: Fixed after version 6.3rc5"
+
+CVE_STATUS[CVE-2023-1637] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2023-1652] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2023-1670] = "fixed-version: Fixed after version 6.3rc4"
+
+CVE_STATUS[CVE-2023-1829] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-1838] = "fixed-version: Fixed after version 5.18"
+
+CVE_STATUS[CVE-2023-1855] = "fixed-version: Fixed after version 6.3rc3"
+
+CVE_STATUS[CVE-2023-1859] = "fixed-version: Fixed after version 6.3rc7"
+
+CVE_STATUS[CVE-2023-1872] = "fixed-version: Fixed after version 5.18rc2"
+
+CVE_STATUS[CVE-2023-1989] = "fixed-version: Fixed after version 6.3rc4"
+
+CVE_STATUS[CVE-2023-1990] = "fixed-version: Fixed after version 6.3rc3"
+
+CVE_STATUS[CVE-2023-1998] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-2002] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-2006] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-2007] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2023-2008] = "fixed-version: Fixed after version 5.19rc4"
+
+CVE_STATUS[CVE-2023-2019] = "fixed-version: Fixed after version 6.0rc1"
+
+# CVE-2023-20593 has no known resolution
+
+CVE_STATUS[CVE-2023-20928] = "fixed-version: Fixed after version 6.0rc1"
+
+# CVE-2023-20937 has no known resolution
+
+CVE_STATUS[CVE-2023-20938] = "fixed-version: Fixed after version 5.18rc5"
+
+# CVE-2023-20941 has no known resolution
+
+CVE_STATUS[CVE-2023-21102] = "fixed-version: Fixed after version 6.2rc4"
+
+CVE_STATUS[CVE-2023-21106] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2023-2124] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-21255] = "fixed-version: Fixed after version 6.4rc4"
+
+CVE_STATUS[CVE-2023-2156] = "fixed-version: Fixed after version 6.3"
+
+CVE_STATUS[CVE-2023-2162] = "fixed-version: Fixed after version 6.2rc6"
+
+CVE_STATUS[CVE-2023-2163] = "fixed-version: Fixed after version 6.3"
+
+CVE_STATUS[CVE-2023-2166] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2023-2176] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-2177] = "fixed-version: Fixed after version 5.19"
+
+CVE_STATUS[CVE-2023-2194] = "fixed-version: Fixed after version 6.3rc4"
+
+CVE_STATUS[CVE-2023-2235] = "fixed-version: Fixed after version 6.3rc3"
+
+CVE_STATUS[CVE-2023-2236] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-2248] = "fixed-version: Fixed after version 6.3"
+
+CVE_STATUS[CVE-2023-2269] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-22995] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-22996] = "fixed-version: Fixed after version 5.18rc1"
+
+CVE_STATUS[CVE-2023-22997] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2023-22998] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2023-22999] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23000] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23001] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23002] = "fixed-version: Fixed after version 5.17rc1"
+
+CVE_STATUS[CVE-2023-23003] = "fixed-version: Fixed after version 5.16rc6"
+
+CVE_STATUS[CVE-2023-23004] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2023-23005] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2023-23006] = "fixed-version: Fixed after version 5.16rc8"
+
+# CVE-2023-23039 has no known resolution
+
+CVE_STATUS[CVE-2023-23454] = "fixed-version: Fixed after version 6.2rc3"
+
+CVE_STATUS[CVE-2023-23455] = "fixed-version: Fixed after version 6.2rc3"
+
+CVE_STATUS[CVE-2023-23559] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2023-23586] = "fixed-version: Fixed after version 5.12rc1"
+
+CVE_STATUS[CVE-2023-2430] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2023-2483] = "fixed-version: Fixed after version 6.3rc4"
+
+CVE_STATUS[CVE-2023-25012] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-2513] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2023-2598] = "fixed-version: Fixed after version 6.4rc1"
+
+# CVE-2023-26242 has no known resolution
+
+CVE_STATUS[CVE-2023-26544] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2023-26545] = "fixed-version: Fixed after version 6.2"
+
+CVE_STATUS[CVE-2023-26605] = "fixed-version: Fixed after version 6.1rc7"
+
+CVE_STATUS[CVE-2023-26606] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2023-26607] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2023-28327] = "fixed-version: Fixed after version 6.1"
+
+CVE_STATUS[CVE-2023-28328] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2023-28410] = "fixed-version: Fixed after version 5.19rc1"
+
+CVE_STATUS[CVE-2023-28464] = "fixed-version: Fixed after version 6.3rc7"
+
+CVE_STATUS[CVE-2023-28466] = "fixed-version: Fixed after version 6.3rc2"
+
+CVE_STATUS[CVE-2023-2860] = "fixed-version: Fixed after version 6.0rc5"
+
+CVE_STATUS[CVE-2023-28772] = "fixed-version: Fixed after version 5.14rc1"
+
+CVE_STATUS[CVE-2023-28866] = "fixed-version: Fixed after version 6.3rc4"
+
+CVE_STATUS[CVE-2023-2898] = "cpe-stable-backport: Backported in 6.4.4"
+
+CVE_STATUS[CVE-2023-2985] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-3006] = "fixed-version: Fixed after version 6.1rc1"
+
+# Skipping CVE-2023-3022, no affected_versions
+
+CVE_STATUS[CVE-2023-30456] = "fixed-version: Fixed after version 6.3rc3"
+
+CVE_STATUS[CVE-2023-30772] = "fixed-version: Fixed after version 6.3rc4"
+
+CVE_STATUS[CVE-2023-3090] = "fixed-version: Fixed after version 6.4rc2"
+
+CVE_STATUS[CVE-2023-3106] = "fixed-version: Fixed after version 4.8rc7"
+
+# Skipping CVE-2023-3108, no affected_versions
+
+# CVE-2023-31081 has no known resolution
+
+# CVE-2023-31082 has no known resolution
+
+# CVE-2023-31083 has no known resolution
+
+CVE_STATUS[CVE-2023-31084] = "fixed-version: Fixed after version 6.4rc3"
+
+# CVE-2023-31085 has no known resolution
+
+CVE_STATUS[CVE-2023-3111] = "fixed-version: Fixed after version 6.0rc2"
+
+CVE_STATUS[CVE-2023-3117] = "fixed-version: Fixed after version 6.4rc7"
+
+CVE_STATUS[CVE-2023-31248] = "cpe-stable-backport: Backported in 6.4.4"
+
+CVE_STATUS[CVE-2023-3141] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-31436] = "fixed-version: Fixed after version 6.3"
+
+CVE_STATUS[CVE-2023-3159] = "fixed-version: Fixed after version 5.18rc6"
+
+CVE_STATUS[CVE-2023-3161] = "fixed-version: Fixed after version 6.2rc7"
+
+CVE_STATUS[CVE-2023-3212] = "fixed-version: Fixed after version 6.4rc2"
+
+CVE_STATUS[CVE-2023-3220] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-32233] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32247] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32248] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32250] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32252] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32254] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32257] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32258] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-32269] = "fixed-version: Fixed after version 6.2rc7"
+
+CVE_STATUS[CVE-2023-3268] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-3269] = "cpe-stable-backport: Backported in 6.4.1"
+
+CVE_STATUS[CVE-2023-3312] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-3317] = "fixed-version: Fixed after version 6.3rc6"
+
+CVE_STATUS[CVE-2023-33203] = "fixed-version: Fixed after version 6.3rc4"
+
+# CVE-2023-33250 has no known resolution
+
+CVE_STATUS[CVE-2023-33288] = "fixed-version: Fixed after version 6.3rc4"
+
+CVE_STATUS[CVE-2023-3338] = "fixed-version: Fixed after version 6.1rc1"
+
+CVE_STATUS[CVE-2023-3355] = "fixed-version: Fixed after version 6.3rc1"
+
+CVE_STATUS[CVE-2023-3357] = "fixed-version: Fixed after version 6.2rc1"
+
+CVE_STATUS[CVE-2023-3358] = "fixed-version: Fixed after version 6.2rc5"
+
+CVE_STATUS[CVE-2023-3359] = "fixed-version: Fixed after version 6.2rc7"
+
+CVE_STATUS[CVE-2023-3389] = "fixed-version: Fixed after version 6.0rc1"
+
+CVE_STATUS[CVE-2023-3390] = "fixed-version: Fixed after version 6.4rc7"
+
+CVE_STATUS[CVE-2023-33951] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-33952] = "fixed-version: Fixed after version 6.4rc1"
+
+# CVE-2023-3397 has no known resolution
+
+CVE_STATUS[CVE-2023-34255] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-34256] = "fixed-version: Fixed after version 6.4rc2"
+
+CVE_STATUS[CVE-2023-3439] = "fixed-version: Fixed after version 5.18rc5"
+
+CVE_STATUS[CVE-2023-35001] = "cpe-stable-backport: Backported in 6.4.4"
+
+CVE_STATUS[CVE-2023-3567] = "fixed-version: Fixed after version 6.2rc7"
+
+# CVE-2023-35693 has no known resolution
+
+CVE_STATUS[CVE-2023-35788] = "fixed-version: Fixed after version 6.4rc5"
+
+CVE_STATUS[CVE-2023-35823] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-35824] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-35826] = "fixed-version: Fixed after version 6.4rc1"
+
+# CVE-2023-35827 has no known resolution
+
+CVE_STATUS[CVE-2023-35828] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-35829] = "fixed-version: Fixed after version 6.4rc1"
+
+CVE_STATUS[CVE-2023-3609] = "fixed-version: Fixed after version 6.4rc7"
+
+CVE_STATUS[CVE-2023-3610] = "fixed-version: Fixed after version 6.4"
+
+CVE_STATUS[CVE-2023-3611] = "cpe-stable-backport: Backported in 6.4.5"
+
+# CVE-2023-3640 has no known resolution
+
+# CVE-2023-37453 has no known resolution
+
+# CVE-2023-37454 has no known resolution
+
+# CVE-2023-3772 has no known resolution
+
+# CVE-2023-3773 has no known resolution
+
+CVE_STATUS[CVE-2023-3776] = "cpe-stable-backport: Backported in 6.4.5"
+
+CVE_STATUS[CVE-2023-3812] = "fixed-version: Fixed after version 6.1rc4"
+
+CVE_STATUS[CVE-2023-38409] = "fixed-version: Fixed after version 6.3rc7"
+
+CVE_STATUS[CVE-2023-38426] = "fixed-version: Fixed after version 6.4rc3"
+
+CVE_STATUS[CVE-2023-38427] = "fixed-version: Fixed after version 6.4rc6"
+
+CVE_STATUS[CVE-2023-38428] = "fixed-version: Fixed after version 6.4rc3"
+
+CVE_STATUS[CVE-2023-38429] = "fixed-version: Fixed after version 6.4rc3"
+
+CVE_STATUS[CVE-2023-38430] = "fixed-version: Fixed after version 6.4rc6"
+
+CVE_STATUS[CVE-2023-38431] = "fixed-version: Fixed after version 6.4rc6"
+
+CVE_STATUS[CVE-2023-38432] = "fixed-version: Fixed after version 6.4"
+
+CVE_STATUS[CVE-2023-3863] = "cpe-stable-backport: Backported in 6.4.4"
+
diff --git a/poky/meta/recipes-kernel/linux/generate-cve-exclusions.py b/poky/meta/recipes-kernel/linux/generate-cve-exclusions.py
new file mode 100755
index 0000000..4d96f19
--- /dev/null
+++ b/poky/meta/recipes-kernel/linux/generate-cve-exclusions.py
@@ -0,0 +1,89 @@
+#! /usr/bin/env python3
+
+# Generate granular CVE status metadata for a specific version of the kernel
+# using data from linuxkernelcves.com.
+#
+# SPDX-License-Identifier: GPL-2.0-only
+
+import argparse
+import datetime
+import json
+import pathlib
+import re
+
+from packaging.version import Version
+
+
+def parse_version(s):
+    """
+    Parse the version string and either return a packaging.version.Version, or
+    None if the string was unset or "unk".
+    """
+    if s and s != "unk":
+        # packaging.version.Version doesn't approve of versions like v5.12-rc1-dontuse
+        s = s.replace("-dontuse", "")
+        return Version(s)
+    return None
+
+
+def main(argp=None):
+    parser = argparse.ArgumentParser()
+    parser.add_argument("datadir", type=pathlib.Path, help="Path to a clone of https://github.com/nluedtke/linux_kernel_cves")
+    parser.add_argument("version", type=Version, help="Kernel version number to generate data for, such as 6.1.38")
+
+    args = parser.parse_args(argp)
+    datadir = args.datadir
+    version = args.version
+    base_version = f"{version.major}.{version.minor}"
+
+    with open(datadir / "data" / "kernel_cves.json", "r") as f:
+        cve_data = json.load(f)
+
+    with open(datadir / "data" / "stream_fixes.json", "r") as f:
+        stream_data = json.load(f)
+
+    print("# Auto-generated CVE metadata, DO NOT EDIT BY HAND.")
+    print(f"# Generated at {datetime.datetime.now()} for version {version}")
+    print()
+
+    for cve, data in cve_data.items():
+        if "affected_versions" not in data:
+            print(f"# Skipping {cve}, no affected_versions")
+            print()
+            continue
+
+        affected = data["affected_versions"]
+        first_affected, last_affected = re.search(r"(.+) to (.+)", affected).groups()
+        first_affected = parse_version(first_affected)
+        last_affected = parse_version(last_affected)
+
+        if not last_affected:
+            print(f"# {cve} has no known resolution")
+        elif first_affected and version < first_affected:
+            print(f'CVE_STATUS[{cve}] = "fixed-version: only affects {first_affected} onwards"')
+        elif last_affected < version:
+            print(
+                f'CVE_STATUS[{cve}] = "fixed-version: Fixed after version {last_affected}"'
+            )
+        else:
+            if cve in stream_data:
+                backport_data = stream_data[cve]
+                if base_version in backport_data:
+                    backport_ver = Version(backport_data[base_version]["fixed_version"])
+                    if backport_ver < version:
+                        print(
+                            f'CVE_STATUS[{cve}] = "cpe-stable-backport: Backported in {backport_ver}"'
+                        )
+                    else:
+                        # TODO print a note that the kernel needs bumping
+                        print(f"# {cve} needs backporting (fixed from {backport_ver})")
+                else:
+                    print(f"# {cve} needs backporting (fixed from {last_affected})")
+            else:
+                print(f"# {cve} needs backporting (fixed from {last_affected})")
+
+        print()
+
+
+if __name__ == "__main__":
+    main()
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 37904ac..e695e2d 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -14,7 +14,7 @@
 # provide this .inc to set specific revisions
 include recipes-kernel/linux/linux-yocto-dev-revisions.inc
 
-KBRANCH = "v6.4/standard/base"
+KBRANCH = "v6.5/standard/base"
 KMETA = "kernel-meta"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name=machine;protocol=https \
@@ -28,7 +28,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 ?= "6.4"
+LINUX_VERSION ?= "6.5"
 LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
index d4488b3..0645458 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.1.bb
@@ -14,13 +14,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "efb2c857761e865cd7947aab42eaa5ba77ef6ee7"
-SRCREV_meta ?= "cba89f406c6e07a16018cb77b51950cbae8ec654"
+SRCREV_machine ?= "ca3ebd29a77417d2c6cabc451496f2283d69e46d"
+SRCREV_meta ?= "9f8ee63473567964331b9465fa1aba301a9a725b"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=${KMETA};protocol=https"
 
-LINUX_VERSION ?= "6.1.38"
+LINUX_VERSION ?= "6.1.43"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb
index 9273a08..2f05184 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_6.4.bb
@@ -14,13 +14,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "917d160a84f61aada28d09f5afc04d6451fa52a0"
-SRCREV_meta ?= "dab56f52aa33b5cea1513b36b98e50a6c7c31f47"
+SRCREV_machine ?= "121d700ad4b877fab9238a92356ad32506ef70d5"
+SRCREV_meta ?= "88ed9ec49099d69f9546d21137191fd747d06ec4"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine;protocol=https \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.4;destsuffix=${KMETA};protocol=https"
 
-LINUX_VERSION ?= "6.4.3"
+LINUX_VERSION ?= "6.4.9"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
index 4e45e25..dfc1e5e 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.1.bb
@@ -8,7 +8,7 @@
 # CVE exclusions
 include recipes-kernel/linux/cve-exclusion_6.1.inc
 
-LINUX_VERSION ?= "6.1.38"
+LINUX_VERSION ?= "6.1.43"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_meta ?= "cba89f406c6e07a16018cb77b51950cbae8ec654"
+SRCREV_machine ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_meta ?= "9f8ee63473567964331b9465fa1aba301a9a725b"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb
index 39abfcb..64dfb3a 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_6.4.bb
@@ -8,7 +8,7 @@
 # CVE exclusions
 include recipes-kernel/linux/cve-exclusion_6.4.inc
 
-LINUX_VERSION ?= "6.4.3"
+LINUX_VERSION ?= "6.4.9"
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -17,8 +17,8 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_meta ?= "dab56f52aa33b5cea1513b36b98e50a6c7c31f47"
+SRCREV_machine ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_meta ?= "88ed9ec49099d69f9546d21137191fd747d06ec4"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
index a76d2dc..2f804d3 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.1.bb
@@ -3,6 +3,7 @@
 require recipes-kernel/linux/linux-yocto.inc
 
 # CVE exclusions
+include recipes-kernel/linux/cve-exclusion.inc
 include recipes-kernel/linux/cve-exclusion_6.1.inc
 
 # board specific branches
@@ -17,25 +18,25 @@
 KBRANCH:qemuloongarch64  ?= "v6.1/standard/base"
 KBRANCH:qemumips64 ?= "v6.1/standard/mti-malta64"
 
-SRCREV_machine:qemuarm ?= "a74344429a095a5941cd8dfac532160349344c92"
-SRCREV_machine:qemuarm64 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_machine:qemuloongarch64 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_machine:qemumips ?= "78c81e178f8e2ffbb7c03cd324cf50ee0c5c4cf2"
-SRCREV_machine:qemuppc ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_machine:qemuriscv64 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_machine:qemuriscv32 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_machine:qemux86 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_machine:qemux86-64 ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_machine:qemumips64 ?= "6c6b1170464e1f64f78a45cf7e78d5c678f38f48"
-SRCREV_machine ?= "b110cf9bbc395fe757956839d8110e72368699f4"
-SRCREV_meta ?= "cba89f406c6e07a16018cb77b51950cbae8ec654"
+SRCREV_machine:qemuarm ?= "d6ed8644d9b0767f8f676987a5c4f61173b803a8"
+SRCREV_machine:qemuarm64 ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_machine:qemuloongarch64 ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_machine:qemumips ?= "6e0c4ce9fd26b55a23becbddd466d0100b3fc2b0"
+SRCREV_machine:qemuppc ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_machine:qemuriscv64 ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_machine:qemuriscv32 ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_machine:qemux86 ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_machine:qemux86-64 ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_machine:qemumips64 ?= "98b8dbe56e119690cdc0af0661867df6c3ee39a2"
+SRCREV_machine ?= "19cd9d8c4bafb673a03b2d7c22407d7c8d192a96"
+SRCREV_meta ?= "9f8ee63473567964331b9465fa1aba301a9a725b"
 
 # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
 # get the <version>/base branch, which is pure upstream -stable, and the same
 # meta SRCREV as the linux-yocto-standard builds. Select your version using the
 # normal PREFERRED_VERSION settings.
 BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "61fd484b2cf6bc8022e8e5ea6f693a9991740ac2"
+SRCREV_machine:class-devupstream ?= "52a953d0934b17a88f403b4135eb3cdf83d19f91"
 PN:class-devupstream = "linux-yocto-upstream"
 KBRANCH:class-devupstream = "v6.1/base"
 
@@ -44,7 +45,7 @@
 SRC_URI += "file://0001-perf-cpumap-Make-counter-as-unsigned-ints.patch"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.1.38"
+LINUX_VERSION ?= "6.1.43"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb
index 443a89c..d0d96c4 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_6.4.bb
@@ -3,6 +3,7 @@
 require recipes-kernel/linux/linux-yocto.inc
 
 # CVE exclusions
+include recipes-kernel/linux/cve-exclusion.inc
 include recipes-kernel/linux/cve-exclusion_6.4.inc
 
 # board specific branches
@@ -17,25 +18,25 @@
 KBRANCH:qemuloongarch64  ?= "v6.4/standard/base"
 KBRANCH:qemumips64 ?= "v6.4/standard/mti-malta64"
 
-SRCREV_machine:qemuarm ?= "aa7642358697dc9be32c4563a3d950f257a3f2ed"
-SRCREV_machine:qemuarm64 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_machine:qemuloongarch64 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_machine:qemumips ?= "8a3ac37b45e7dcc98d28ab3920309340202272d9"
-SRCREV_machine:qemuppc ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_machine:qemuriscv64 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_machine:qemuriscv32 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_machine:qemux86 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_machine:qemux86-64 ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_machine:qemumips64 ?= "144ff37fee7f0499574d5b508e4db82234f38fec"
-SRCREV_machine ?= "dee78ad1963cff9c063fba486d43fc9670285883"
-SRCREV_meta ?= "dab56f52aa33b5cea1513b36b98e50a6c7c31f47"
+SRCREV_machine:qemuarm ?= "16af0b21320a78b21d5d9ded1188e398352d262a"
+SRCREV_machine:qemuarm64 ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_machine:qemuloongarch64 ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_machine:qemumips ?= "de46701cb3ac494b27ae70f1475efb855e9d817a"
+SRCREV_machine:qemuppc ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_machine:qemuriscv64 ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_machine:qemuriscv32 ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_machine:qemux86 ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_machine:qemux86-64 ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_machine:qemumips64 ?= "47d7881e76d678cc9dc034f0acdd1bc416fa05bb"
+SRCREV_machine ?= "72bad8cd7540f07ab54e08b83ad106dec0df123c"
+SRCREV_meta ?= "88ed9ec49099d69f9546d21137191fd747d06ec4"
 
 # set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
 # get the <version>/base branch, which is pure upstream -stable, and the same
 # meta SRCREV as the linux-yocto-standard builds. Select your version using the
 # normal PREFERRED_VERSION settings.
 BBCLASSEXTEND = "devupstream:target"
-SRCREV_machine:class-devupstream ?= "160f4124ea8b4cd6c86867e111fa55e266345a16"
+SRCREV_machine:class-devupstream ?= "38ca69782268c8e9578ba2f1fccf931f643eb8da"
 PN:class-devupstream = "linux-yocto-upstream"
 KBRANCH:class-devupstream = "v6.4/base"
 
@@ -43,7 +44,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.4;destsuffix=${KMETA};protocol=https"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "6.4.3"
+LINUX_VERSION ?= "6.4.9"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
index e3b2587..a91680d 100644
--- a/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
+++ b/poky/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
@@ -21,6 +21,9 @@
 EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
 EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}" CROSS_COMPILE=${TARGET_PREFIX}"
 
+KERNEL_LOCALVERSION = "${@get_kernellocalversion_file("${STAGING_KERNEL_BUILDDIR}")}"
+export LOCALVERSION="${KERNEL_LOCALVERSION}"
+
 # Build some host tools under work-shared.  CC, LD, and AR are probably
 # not used, but this is the historical way of invoking "make scripts".
 #
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-add-define-to-compile-with-glibc-2.38.patch b/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-add-define-to-compile-with-glibc-2.38.patch
new file mode 100644
index 0000000..8c23fb2
--- /dev/null
+++ b/poky/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-add-define-to-compile-with-glibc-2.38.patch
@@ -0,0 +1,39 @@
+From a610f4c21b083c0f9cf62ad2251dfadc98abb50e Mon Sep 17 00:00:00 2001
+From: Rudi Heitbaum <rudi@heitbaum.com>
+Date: Sat, 22 Jul 2023 15:36:09 +0000
+Subject: [PATCH] alsactl: add define to compile with glibc 2.38
+
+strlcat and strlcpy have been added to glibc 2.38.
+update the defines to use the glibc versions, and not conflict with
+string.h.
+
+ref:
+- https://sourceware.org/git/?p=glibc.git;a=commit;h=454a20c8756c9c1d55419153255fc7692b3d2199
+
+Fixes: https://github.com/alsa-project/alsa-utils/pull/225
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+Upstream-Status: Backport [https://github.com/alsa-project/alsa-utils/commit/d6a71bfbde9e1710743d3a446c6ea3b41c45234e]
+---
+ alsactl/init_sysdeps.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/alsactl/init_sysdeps.c b/alsactl/init_sysdeps.c
+index 3aca1b4..f09b1ae 100644
+--- a/alsactl/init_sysdeps.c
++++ b/alsactl/init_sysdeps.c
+@@ -18,6 +18,7 @@
+  */
+ 
+ #if defined(__GLIBC__) && !(defined(__UCLIBC__) && defined(__USE_BSD))
++#if !(__GLIBC_PREREQ(2, 38))
+ static size_t strlcpy(char *dst, const char *src, size_t size)
+ {
+ 	size_t bytes = 0;
+@@ -60,4 +61,5 @@ static size_t strlcat(char *dst, const char *src, size_t size)
+ 	*q = '\0';
+ 	return bytes;
+ }
++#endif /* !(__GLIBC_PREREQ(2, 38)) */
+ #endif /* __GLIBC__ */
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.9.bb b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.9.bb
index 2f34401..af28f54 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.9.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-utils_1.2.9.bb
@@ -26,6 +26,7 @@
 # alsa-utils specified in SRC_URI due to alsa-utils-scripts recipe
 SRC_URI = "https://www.alsa-project.org/files/pub/utils/alsa-utils-${PV}.tar.bz2 \
            file://0001-alsactl-fix-compilation-when-building-in-a-subdir.patch \
+           file://0001-alsactl-add-define-to-compile-with-glibc-2.38.patch \
           "
 SRC_URI[sha256sum] = "e7623d4525595f92e11ce25ee9a97f2040a14c6e4dcd027aa96e06cbce7817bd"
 
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
new file mode 100644
index 0000000..a47a203
--- /dev/null
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
@@ -0,0 +1,77 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
+Date: Sun, 16 Jul 2023 18:18:02 +0300
+Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
+ instructions within inline assembly
+
+Fixes assembling with binutil as >= 2.41
+
+Upstream-Status: Backport [https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/effadce6c756247ea8bae32dc13bb3e6f464f0eb]
+Signed-off-by: James Almer <jamrial@gmail.com>
+---
+ libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++---
+ 1 file changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h
+index 6298f5ed19..ca7e2dffc1 100644
+--- a/libavcodec/x86/mathops.h
++++ b/libavcodec/x86/mathops.h
+@@ -35,12 +35,20 @@
+ static av_always_inline av_const int MULL(int a, int b, unsigned shift)
+ {
+     int rt, dummy;
++    if (__builtin_constant_p(shift))
+     __asm__ (
+         "imull %3               \n\t"
+         "shrdl %4, %%edx, %%eax \n\t"
+         :"=a"(rt), "=d"(dummy)
+-        :"a"(a), "rm"(b), "ci"((uint8_t)shift)
++        :"a"(a), "rm"(b), "i"(shift & 0x1F)
+     );
++    else
++        __asm__ (
++            "imull %3               \n\t"
++            "shrdl %4, %%edx, %%eax \n\t"
++            :"=a"(rt), "=d"(dummy)
++            :"a"(a), "rm"(b), "c"((uint8_t)shift)
++        );
+     return rt;
+ }
+ 
+@@ -113,19 +121,31 @@ __asm__ volatile(\
+ // avoid +32 for shift optimization (gcc should do that ...)
+ #define NEG_SSR32 NEG_SSR32
+ static inline  int32_t NEG_SSR32( int32_t a, int8_t s){
++    if (__builtin_constant_p(s))
+     __asm__ ("sarl %1, %0\n\t"
+          : "+r" (a)
+-         : "ic" ((uint8_t)(-s))
++         : "i" (-s & 0x1F)
+     );
++    else
++        __asm__ ("sarl %1, %0\n\t"
++               : "+r" (a)
++               : "c" ((uint8_t)(-s))
++        );
+     return a;
+ }
+ 
+ #define NEG_USR32 NEG_USR32
+ static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
++    if (__builtin_constant_p(s))
+     __asm__ ("shrl %1, %0\n\t"
+          : "+r" (a)
+-         : "ic" ((uint8_t)(-s))
++         : "i" (-s & 0x1F)
+     );
++    else
++        __asm__ ("shrl %1, %0\n\t"
++               : "+r" (a)
++               : "c" ((uint8_t)(-s))
++        );
+     return a;
+ }
+ 
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
index 181c17d..07c641d 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.0.bb
@@ -23,6 +23,7 @@
                     file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
 SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
+           file://0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch \
            file://0001-libswscale-riscv-Fix-syntax-of-vsetvli.patch"
 
 SRC_URI[sha256sum] = "57be87c22d9b49c112b6d24bc67d42508660e6b718b3db89c44e47e289137082"
@@ -133,6 +134,7 @@
 # ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684
 
 LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd ', '', d)}"
 
 EXTRA_OEMAKE = "V=1"
 
diff --git a/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.0.bb b/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.0.bb
index b8001f4..58eea0b 100644
--- a/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.0.bb
+++ b/poky/meta/recipes-multimedia/libsndfile/libsndfile1_1.2.0.bb
@@ -3,7 +3,6 @@
 sound (such as MS Windows WAV and the Apple/SGI AIFF format) through \
 one standard library interface."
 HOMEPAGE = "https://libsndfile.github.io/libsndfile/"
-AUTHOR = "Erik de Castro Lopo"
 DEPENDS = "flac libogg libvorbis"
 SECTION = "libs/multimedia"
 LICENSE = "LGPL-2.1-only"
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index 6055a9e..08a608b 100644
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -2,7 +2,6 @@
 DESCRIPTION = "A general purpose sound server intended to run as a middleware \
 between your applications and your hardware devices, either using ALSA or OSS."
 HOMEPAGE = "http://www.pulseaudio.org"
-AUTHOR = "Lennart Poettering"
 SECTION = "libs/multimedia"
 
 # Most of PulseAudio code is under LGPL-2.1-or-later. There are a few
diff --git a/poky/meta/recipes-sato/images/core-image-sato.bb b/poky/meta/recipes-sato/images/core-image-sato.bb
index e63a229..9200ae5 100644
--- a/poky/meta/recipes-sato/images/core-image-sato.bb
+++ b/poky/meta/recipes-sato/images/core-image-sato.bb
@@ -1,3 +1,4 @@
+SUMMARY = "Image with Sato, a mobile environment and visual style for mobile devices."
 DESCRIPTION = "Image with Sato, a mobile environment and visual style for \
 mobile devices. The image supports X11 with a Sato theme, Pimlico \
 applications, and contains terminal, editor, and file manager."
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch
deleted file mode 100644
index bbe2650..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From cd65e3d9256a4f6eb7906a9f10678c29a4ffef2f Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex@linutronix.de>
-Date: Mon, 26 Jun 2023 14:30:02 +0200
-Subject: [PATCH] Source/JavaScriptCore/CMakeLists.txt: ensure reproducibility
- of __TIMESTAMP__
-
-__TIMESTAMP__ refers to mtime of the file that contains it, which is unstable
-and breaks binary reproducibility when the file is generated at build time. To ensure
-this does not happen, mtime should be set from the original file.
-
-Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/15293]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- Source/JavaScriptCore/CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
-index 43dc22ff..c2e3b1cd 100644
---- a/Source/JavaScriptCore/CMakeLists.txt
-+++ b/Source/JavaScriptCore/CMakeLists.txt
-@@ -159,6 +159,7 @@ add_custom_command(
-     OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
-     MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in
-     COMMAND ${PERL_EXECUTABLE} -pe s/CACHED_TYPES_CKSUM/__TIMESTAMP__/ ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in > ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
-+    COMMAND touch -r ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
-             VERBATIM
- )
- 
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch b/poky/meta/recipes-sato/webkit/webkitgtk/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch
deleted file mode 100644
index 79da855..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 4977290ab4ab35258a6da9b13795c9b0f7894bf4 Mon Sep 17 00:00:00 2001
-From: Diego Pino Garcia <dpino@igalia.com>
-Date: Mon, 22 May 2023 19:58:50 -0700
-Subject: [PATCH] [GLIB] Fix build error after 264196@main
- https://bugs.webkit.org/show_bug.cgi?id=256917
-
-Reviewed by Michael Catanzaro.
-
-Variable BWRAP_EXECUTABLE is only defined when BUBBLEWRAP_SANDBOX is
-enabled.
-
-* Source/WTF/wtf/glib/Sandbox.cpp:
-(WTF::isInsideUnsupportedContainer):
-
-Canonical link: https://commits.webkit.org/264395@main
-Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/4977290ab4ab35258a6da9b13795c9b0f7894bf4]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- Source/WTF/wtf/glib/Sandbox.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/Source/WTF/wtf/glib/Sandbox.cpp b/Source/WTF/wtf/glib/Sandbox.cpp
-index 7d84e830ab33e..9b07bb8cb5a9b 100644
---- a/Source/WTF/wtf/glib/Sandbox.cpp
-+++ b/Source/WTF/wtf/glib/Sandbox.cpp
-@@ -36,6 +36,7 @@ bool isInsideFlatpak()
-     return returnValue;
- }
- 
-+#if ENABLE(BUBBLEWRAP_SANDBOX)
- bool isInsideUnsupportedContainer()
- {
-     static bool inContainer = g_file_test("/run/.containerenv", G_FILE_TEST_EXISTS);
-@@ -64,6 +65,7 @@ bool isInsideUnsupportedContainer()
- 
-     return inContainer && !supportedContainer;
- }
-+#endif
- 
- bool isInsideSnap()
- {
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb
similarity index 95%
rename from poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb
rename to poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb
index 8bef0b1..7bf32e8 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.2.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb
@@ -13,11 +13,9 @@
            file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
            file://reproducibility.patch \
            file://0d3344e17d258106617b0e6d783d073b188a2548.patch \
-           file://4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch \
-           file://0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch \
            file://check-GST_GL_HAVE_PLATFORM_GLX.patch \
            "
-SRC_URI[sha256sum] = "96898870d994da406ee7a632816dcde9a3bb395ee5f344fcb3f3b8cc8a77e000"
+SRC_URI[sha256sum] = "7de051a263668621d91a61a5eb1c3771d1a7cec900043d4afef06c326c16037f"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
 
@@ -35,7 +33,7 @@
           jpeg \
           atk \
           libwebp \
-          gtk+3 \
+          gtk4 \
           libxslt \
           libtasn1 \
           libnotify \
@@ -84,6 +82,7 @@
 		-DENABLE_MINIBROWSER=ON \
                 -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
                 -DENABLE_GAMEPAD=OFF \
+                -DUSE_GTK4=ON \
 		"
 
 # Javascript JIT is not supported on ARC
@@ -124,7 +123,7 @@
 SECURITY_CFLAGS:remove:aarch64 = "-fpie"
 SECURITY_CFLAGS:append:aarch64 = " -fPIE"
 
-FILES:${PN} += "${libdir}/webkit2gtk-4.*/injected-bundle/libwebkit2gtkinjectedbundle.so"
+FILES:${PN} += "${libdir}/webkitgtk-*/injected-bundle/*.so"
 
 RRECOMMENDS:${PN} += "ca-certificates shared-mime-info"
 
@@ -161,6 +160,5 @@
             ${B}/JavaScriptCore/PrivateHeaders/JavaScriptCore/*.h \
             ${B}/WebCore/DerivedSources/*.cpp \
             ${B}/WebKitGTK/DerivedSources/webkit/*.cpp
-
 }
 
diff --git a/poky/meta/recipes-support/apr/apr/autoconf-2.73.patch b/poky/meta/recipes-support/apr/apr/autoconf-2.73.patch
new file mode 100644
index 0000000..a8b7a77
--- /dev/null
+++ b/poky/meta/recipes-support/apr/apr/autoconf-2.73.patch
@@ -0,0 +1,26 @@
+To work with autoconf 2.73, tweak the macro ordering in configure.in.
+
+Upstream-Status: Pending
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: apr-1.7.2/configure.in
+===================================================================
+--- apr-1.7.2.orig/configure.in
++++ apr-1.7.2/configure.in
+@@ -430,6 +430,8 @@ if test "$host" = "i586-pc-beos"; then
+   ) dnl
+ fi
+ 
++APR_CHECK_DEFINE(LOCK_EX, sys/file.h)
++
+ # this is the place to put specific options for platform/compiler
+ # combinations
+ case "$host:$CC" in
+@@ -2384,7 +2386,6 @@ AC_MSG_RESULT([$msg])
+ AC_SUBST(have_union_semun)
+ 
+ dnl Checks for libraries.
+-APR_CHECK_DEFINE(LOCK_EX, sys/file.h)
+ APR_CHECK_DEFINE(F_SETLK, fcntl.h)
+ APR_CHECK_DEFINE(SEM_UNDO, sys/sem.h)
+ 
diff --git a/poky/meta/recipes-support/apr/apr_1.7.4.bb b/poky/meta/recipes-support/apr/apr_1.7.4.bb
index e571469..5ac7f4b 100644
--- a/poky/meta/recipes-support/apr/apr_1.7.4.bb
+++ b/poky/meta/recipes-support/apr/apr_1.7.4.bb
@@ -22,6 +22,7 @@
            file://libtoolize_check.patch \
            file://0001-Add-option-to-disable-timed-dependant-tests.patch \
            file://0001-configure-Remove-runtime-test-for-mmap-that-can-map-.patch \
+           file://autoconf-2.73.patch \
            "
 
 SRC_URI[sha256sum] = "fc648de983f3a2a6c9e78dea1f180639bd2fad6c06d556d4367a701fe5c35577"
diff --git a/poky/meta/recipes-support/curl/curl/disable-tests b/poky/meta/recipes-support/curl/curl/disable-tests
index 92056bd..b687b2b 100644
--- a/poky/meta/recipes-support/curl/curl/disable-tests
+++ b/poky/meta/recipes-support/curl/curl/disable-tests
@@ -18,6 +18,8 @@
 1165
 # This CRL test is looking for src files
 1185
+# This test is scanning the source tree
+1222
 # These CRL tests need --libcurl option to be enabled
 1400
 1401
diff --git a/poky/meta/recipes-support/curl/curl/run-ptest b/poky/meta/recipes-support/curl/curl/run-ptest
index 614e822..2c74c58 100644
--- a/poky/meta/recipes-support/curl/curl/run-ptest
+++ b/poky/meta/recipes-support/curl/curl/run-ptest
@@ -1,6 +1,6 @@
 #!/bin/sh
 cd tests
-./runtests.pl -a -n -s | sed \
+{ ./runtests.pl -a -n -s || echo "FAIL: curl" ; } | sed \
      -e 's|\([^ ]* *\) \([^ ]* *\)...OK|PASS: \1 \2|' \
      -e 's|\([^ ]* *\) \([^ ]* *\)...FAILED|FAIL: \1 \2|' \
      -e 's/Warning: test[0-9]\+ not present in tests\/data\/Makefile.inc//'
diff --git a/poky/meta/recipes-support/curl/curl_8.1.2.bb b/poky/meta/recipes-support/curl/curl_8.2.0.bb
similarity index 91%
rename from poky/meta/recipes-support/curl/curl_8.1.2.bb
rename to poky/meta/recipes-support/curl/curl_8.2.0.bb
index d84f7d0..9c16d3d 100644
--- a/poky/meta/recipes-support/curl/curl_8.1.2.bb
+++ b/poky/meta/recipes-support/curl/curl_8.2.0.bb
@@ -14,7 +14,7 @@
     file://run-ptest \
     file://disable-tests \
 "
-SRC_URI[sha256sum] = "31b1118eb8bfd43cd95d9a3f146f814ff874f6ed3999b29d94f4d1e7dbac5ef6"
+SRC_URI[sha256sum] = "2859ec79e2cd96e976a99493547359b8001af1d1e21f3a3a3b846544ef54500f"
 
 # Curl has used many names over the years...
 CVE_PRODUCT = "haxx:curl haxx:libcurl curl:curl curl:libcurl libcurl:libcurl daniel_stenberg:curl"
@@ -100,8 +100,23 @@
 	cp -rf ${D}${bindir}/curl-config ${D}${PTEST_PATH}
 }
 
-RDEPENDS:${PN}-ptest += "bash perl-modules perl-module-time-hires perl-module-digest-md5 \
-                         perl-module-digest perl-module-ipc-open2"
+RDEPENDS:${PN}-ptest += " \
+	bash \
+	perl-module-b \
+	perl-module-base \
+	perl-module-cwd \
+	perl-module-digest \
+	perl-module-digest-md5 \
+	perl-module-file-basename \
+	perl-module-file-spec \
+	perl-module-file-temp \
+	perl-module-io-socket \
+	perl-module-ipc-open2 \
+	perl-module-list-util \
+	perl-module-memoize \
+	perl-module-storable \
+	perl-module-time-hires \
+"
 
 PACKAGES =+ "lib${BPN}"
 
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.4.2.bb b/poky/meta/recipes-support/gnupg/gnupg_2.4.2.bb
index 5807820..631df8a 100644
--- a/poky/meta/recipes-support/gnupg/gnupg_2.4.2.bb
+++ b/poky/meta/recipes-support/gnupg/gnupg_2.4.2.bb
@@ -33,6 +33,8 @@
 		--with-mailprog=${sbindir}/sendmail \
 		--enable-gpg-is-gpg2 \
                "
+# yat2m can be found from recipe-sysroot-native non-deterministically with different versioning otherwise
+CACHED_CONFIGUREVARS += "ac_cv_path_YAT2M=./yat2m"
 
 # A minimal package containing just enough to run gpg+gpgagent (E.g. use gpgme in opkg)
 PACKAGES =+ "${PN}-gpg"
diff --git a/poky/meta/recipes-support/libdaemon/libdaemon_0.14.bb b/poky/meta/recipes-support/libdaemon/libdaemon_0.14.bb
index de6ac38..089f19d 100644
--- a/poky/meta/recipes-support/libdaemon/libdaemon_0.14.bb
+++ b/poky/meta/recipes-support/libdaemon/libdaemon_0.14.bb
@@ -4,7 +4,6 @@
 as well as file locking to ensure that only a single copy of a given daemon \
 is running at a time."
 SECTION = "libs"
-AUTHOR = "Lennart Poettering <lennart@poettering.net>"
 HOMEPAGE = "http://0pointer.de/lennart/projects/libdaemon/"
 LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \
diff --git a/poky/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch b/poky/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch
new file mode 100644
index 0000000..505aa07
--- /dev/null
+++ b/poky/meta/recipes-support/libexif/libexif/0001-Add-serial-tests-config-needed-by-ptest.patch
@@ -0,0 +1,26 @@
+From 1ee7217c8ae724d793f9a9876c3608057a2ccbf8 Mon Sep 17 00:00:00 2001
+From: Julien Stephan <jstephan@baylibre.com>
+Date: Tue, 11 Jul 2023 16:07:54 +0200
+Subject: [PATCH] Add serial-tests config needed by ptest
+
+Add serial-tests support, ptest needs it.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Julien Stephan <jstephan@baylibre.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index cd48047..5413907 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -16,6 +16,7 @@ AM_INIT_AUTOMAKE([
+   dist-zip
+   check-news
+   subdir-objects
++  serial-tests
+ ])
+ AM_MAINTAINER_MODE
+ 
diff --git a/poky/meta/recipes-support/libexif/libexif/run-ptest b/poky/meta/recipes-support/libexif/libexif/run-ptest
new file mode 100644
index 0000000..2d23159
--- /dev/null
+++ b/poky/meta/recipes-support/libexif/libexif/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+make -o Makefile runtest-TESTS
diff --git a/poky/meta/recipes-support/libexif/libexif_0.6.24.bb b/poky/meta/recipes-support/libexif/libexif_0.6.24.bb
index 367f012..27e369a 100644
--- a/poky/meta/recipes-support/libexif/libexif_0.6.24.bb
+++ b/poky/meta/recipes-support/libexif/libexif_0.6.24.bb
@@ -11,12 +11,40 @@
     return "_".join(v.split("."))
 
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/libexif-${PV}.tar.bz2 \
+           file://0001-Add-serial-tests-config-needed-by-ptest.patch \
+           file://run-ptest \
            "
 
 SRC_URI[sha256sum] = "d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae"
 
-inherit autotools gettext github-releases
+inherit autotools gettext github-releases ptest
 
 EXTRA_OECONF += "--disable-docs"
 
+do_compile_ptest() {
+    oe_runmake -C test buildtest-TESTS
+}
+
+do_install_ptest() {
+    install ${B}/test/test*[!\.o] ${D}${PTEST_PATH}
+    for f in ${D}${PTEST_PATH}/test*; do
+        sed -i "s/\(LD_LIBRARY_PATH=\).*\(:\$LD_LIBRARY_PATH\)\"/\1.\2/" $f
+    done
+
+    install ${B}/test/Makefile ${D}${PTEST_PATH}
+    sed -i -e "/^srcdir/c srcdir = \$\{PWD\}" ${D}${PTEST_PATH}/Makefile
+
+    install -d ${D}${PTEST_PATH}/nls
+    install ${B}/test/nls/*[!\.o] ${D}${PTEST_PATH}/nls
+    install -d ${D}${PTEST_PATH}/.libs
+    install ${B}/test/.libs/* ${D}${PTEST_PATH}/.libs
+
+    install ${S}/test/*.sh ${D}${PTEST_PATH}
+
+    install -d ${D}${PTEST_PATH}/testdata
+    install ${S}/test/testdata/* ${D}${PTEST_PATH}/testdata
+}
+
+RDEPENDS:${PN}-ptest += "make bash"
+
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/libgit2/libgit2_1.6.4.bb b/poky/meta/recipes-support/libgit2/libgit2_1.7.0.bb
similarity index 88%
rename from poky/meta/recipes-support/libgit2/libgit2_1.6.4.bb
rename to poky/meta/recipes-support/libgit2/libgit2_1.7.0.bb
index ffe00d8..15a91cf 100644
--- a/poky/meta/recipes-support/libgit2/libgit2_1.6.4.bb
+++ b/poky/meta/recipes-support/libgit2/libgit2_1.7.0.bb
@@ -5,8 +5,8 @@
 
 DEPENDS = "curl openssl zlib libssh2 libgcrypt libpcre2"
 
-SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v1.6;protocol=https"
-SRCREV = "e6325351ceee58cf56f58bdce61b38907805544f"
+SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v1.7;protocol=https"
+SRCREV = "3e2baa6d0bfb42f9016e24cba1733a6ae26a8ae6"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-support/re2c/re2c_3.0.bb b/poky/meta/recipes-support/re2c/re2c_3.0.bb
index f8f8512..f3d5ff0 100644
--- a/poky/meta/recipes-support/re2c/re2c_3.0.bb
+++ b/poky/meta/recipes-support/re2c/re2c_3.0.bb
@@ -2,7 +2,6 @@
 DESCRIPTION = "A free and open-source lexer generator for C, C++ and Go. It compiles regular expressions to determinisitic finite automata and encodes the automata in the form of a program in the target language. Unlike any other such tool, re2c focuses on generating high efficient code for regular expression matching. As a result this allows a much broader range of use than any traditional lexer."
 HOMEPAGE = "http://re2c.org/"
 BUGTRACKER = "https://github.com/skvadrik/re2c/issues"
-AUTHOR = "Marcus Börger <helly@users.sourceforge.net>"
 SECTION = "devel"
 LICENSE = "PD"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=64eca4d8a3b67f9dc7656094731a2c8d"
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.16.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.16.bb
index b31b266..d23d6be 100644
--- a/poky/meta/recipes-support/rng-tools/rng-tools_6.16.bb
+++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.16.bb
@@ -1,7 +1,5 @@
 SUMMARY = "Random number generator daemon"
 DESCRIPTION = "Check and feed random data from hardware device to kernel"
-AUTHOR = "Philipp Rumpf, Jeff Garzik <jgarzik@pobox.com>, \
-          Henrique de Moraes Holschuh <hmh@debian.org>"
 HOMEPAGE = "https://github.com/nhorman/rng-tools"
 BUGTRACKER = "https://github.com/nhorman/rng-tools/issues"
 LICENSE = "GPL-2.0-only"
diff --git a/poky/meta/site/common-glibc b/poky/meta/site/common-glibc
index 7ba91e0..958699b 100644
--- a/poky/meta/site/common-glibc
+++ b/poky/meta/site/common-glibc
@@ -12,7 +12,6 @@
 ac_cv_func_getpwuid_r=${ac_cv_func_getpwuid_r=yes}
 ac_cv_func_posix_getpwuid_r=${ac_cv_func_posix_getpwuid_r=yes}
 ac_cv_func_posix_getgrgid_r=${ac_cv_func_posix_getgrgid_r=yes}
-ac_cv_type_uid_t={ac_cv_type_uid_t=yes}
 ac_cv_func_getaddrinfo=${ac_cv_func_getaddrinfo=yes}
 ac_cv_func_strtod=${ac_cv_func_strtod=yes}
 
diff --git a/poky/meta/site/x32-linux b/poky/meta/site/x32-linux
index cf4ef14..2e12048 100644
--- a/poky/meta/site/x32-linux
+++ b/poky/meta/site/x32-linux
@@ -1,5 +1,4 @@
 # general
 ac_cv_sizeof_long_double=${ac_cv_sizeof_long_double=16}
 ac_cv_sizeof_dev_t=${ac_cv_sizeof_dev_t=8}
-ac_cv_sys_file_offset_bits=${ac_cv_sys_file_offset_bits=64}
 ac_cv_alignof_double=8
diff --git a/poky/scripts/lib/devtool/standard.py b/poky/scripts/lib/devtool/standard.py
index 86ca77f..88a6ecd 100644
--- a/poky/scripts/lib/devtool/standard.py
+++ b/poky/scripts/lib/devtool/standard.py
@@ -567,6 +567,8 @@
         logger.debug('writing append file %s' % appendfile)
         with open(appendfile, 'a') as f:
             f.write('###--- _extract_source\n')
+            f.write('deltask do_recipe_qa\n')
+            f.write('deltask do_recipe_qa_setscene\n')
             f.write('ERROR_QA:remove = "patch-fuzz"\n')
             f.write('DEVTOOL_TEMPDIR = "%s"\n' % tempdir)
             f.write('DEVTOOL_DEVBRANCH = "%s"\n' % devbranch)
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index 6c4a62b..e015a85 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -35,6 +35,8 @@
     dirs = scriptutils.filter_src_subdirs(tmpdir)
     if len(dirs) == 1:
         srctree = os.path.join(tmpdir, dirs[0])
+    else:
+        raise DevtoolError("Cannot determine where the source tree is after unpacking in {}: {}".format(tmpdir,dirs))
     return srctree
 
 def _copy_source_code(orig, dest):
diff --git a/poky/scripts/lib/resulttool/regression.py b/poky/scripts/lib/resulttool/regression.py
index 1facbcd..3d64b8f 100644
--- a/poky/scripts/lib/resulttool/regression.py
+++ b/poky/scripts/lib/resulttool/regression.py
@@ -74,6 +74,10 @@
     }
 }
 
+STATUS_STRINGS = {
+    "None": "No matching test result"
+}
+
 def test_has_at_least_one_matching_tag(test, tag_list):
     return "oetags" in test and any(oetag in tag_list for oetag in test["oetags"])
 
@@ -173,11 +177,16 @@
     return ret and metadata_matches(base_configuration, target_configuration) \
         and machine_matches(base_configuration, target_configuration)
 
+def get_status_str(raw_status):
+    raw_status_lower = raw_status.lower() if raw_status else "None"
+    return STATUS_STRINGS.get(raw_status_lower, raw_status)
 
 def compare_result(logger, base_name, target_name, base_result, target_result):
     base_result = base_result.get('result')
     target_result = target_result.get('result')
     result = {}
+    new_tests = 0
+
     if base_result and target_result:
         for k in base_result:
             base_testcase = base_result[k]
@@ -189,6 +198,13 @@
                     result[k] = {'base': base_status, 'target': target_status}
             else:
                 logger.error('Failed to retrieved base test case status: %s' % k)
+
+        # Also count new tests that were not present in base results: it
+        # could be newly added tests, but it could also highlights some tests
+        # renames or fixed faulty ptests
+        for k in target_result:
+            if k not in base_result:
+                new_tests += 1
     if result:
         new_pass_count = sum(test['target'] is not None and test['target'].startswith("PASS") for test in result.values())
         # Print a regression report only if at least one test has a regression status (FAIL, SKIPPED, absent...)
@@ -196,14 +212,17 @@
             resultstring = "Regression:  %s\n             %s\n" % (base_name, target_name)
             for k in sorted(result):
                 if not result[k]['target'] or not result[k]['target'].startswith("PASS"):
-                    resultstring += '    %s: %s -> %s\n' % (k, result[k]['base'], result[k]['target'])
+                    resultstring += '    %s: %s -> %s\n' % (k, get_status_str(result[k]['base']), get_status_str(result[k]['target']))
             if new_pass_count > 0:
                 resultstring += f'    Additionally, {new_pass_count} previously failing test(s) is/are now passing\n'
         else:
-            resultstring = "Improvement: %s\n             %s\n             (+%d test(s) passing)" % (base_name, target_name, new_pass_count)
+            resultstring = "Improvement: %s\n             %s\n             (+%d test(s) passing)\n" % (base_name, target_name, new_pass_count)
             result = None
     else:
-        resultstring = "Match:       %s\n             %s" % (base_name, target_name)
+        resultstring = "Match:       %s\n             %s\n" % (base_name, target_name)
+
+    if new_tests > 0:
+        resultstring += f'    Additionally, {new_tests} new test(s) is/are present\n'
     return result, resultstring
 
 def get_results(logger, source):
diff --git a/poky/scripts/lib/scriptutils.py b/poky/scripts/lib/scriptutils.py
index f7c1bd9..f433106 100644
--- a/poky/scripts/lib/scriptutils.py
+++ b/poky/scripts/lib/scriptutils.py
@@ -277,6 +277,6 @@
     Used by devtool and recipetool.
     """
     dirlist = os.listdir(pth)
-    filterout = ['git.indirectionsymlink', 'source-date-epoch']
+    filterout = ['git.indirectionsymlink', 'source-date-epoch', 'sstate-install-recipe_qa']
     dirlist = [x for x in dirlist if x not in filterout]
     return dirlist
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
index 2bf7375..4f30926 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -332,15 +332,6 @@
                         shutil.copyfileobj(in_file, initrd)
                 initrd.close()
 
-                dtb = source_params.get('dtb')
-                if dtb:
-                    if ';' in dtb:
-                        raise WicError("Only one DTB supported, exiting")
-                    dtb_params = '--add-section .dtb=%s/%s --change-section-vma .dtb=0x40000' % \
-                        (deploy_dir, dtb)
-                else:
-                    dtb_params = ''
-
                 # Searched by systemd-boot:
                 # https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images
                 install_cmd = "install -d %s/EFI/Linux" % hdddir
@@ -349,20 +340,64 @@
                 staging_dir_host = get_bitbake_var("STAGING_DIR_HOST")
                 target_sys = get_bitbake_var("TARGET_SYS")
 
+                objdump_cmd = "%s-objdump" % target_sys
+                objdump_cmd += " -p %s" % efi_stub
+                objdump_cmd += " | awk '{ if ($1 == \"SectionAlignment\"){print $2} }'"
+
+                ret, align_str = exec_native_cmd(objdump_cmd, native_sysroot)
+                align = int(align_str, 16)
+
+                objdump_cmd = "%s-objdump" % target_sys
+                objdump_cmd += " -h %s | tail -2" % efi_stub
+                ret, output = exec_native_cmd(objdump_cmd, native_sysroot)
+
+                offset = int(output.split()[2], 16) + int(output.split()[3], 16)
+
+                osrel_off = offset + align - offset % align
+                osrel_path = "%s/usr/lib/os-release" % staging_dir_host
+                osrel_sz = os.stat(osrel_path).st_size
+
+                cmdline_off = osrel_off + osrel_sz
+                cmdline_off = cmdline_off + align - cmdline_off % align
+                cmdline_sz = os.stat(cmdline.name).st_size
+
+                dtb_off = cmdline_off + cmdline_sz
+                dtb_off = dtb_off + align - dtb_off % align
+
+                dtb = source_params.get('dtb')
+                if dtb:
+                    if ';' in dtb:
+                        raise WicError("Only one DTB supported, exiting")
+                    dtb_path = "%s/%s" % (deploy_dir, dtb)
+                    dtb_params = '--add-section .dtb=%s --change-section-vma .dtb=0x%x' % \
+                            (dtb_path, dtb_off)
+                    linux_off = dtb_off + os.stat(dtb_path).st_size
+                    linux_off = linux_off + align - linux_off % align
+                else:
+                    dtb_params = ''
+                    linux_off = dtb_off
+
+                linux_path = "%s/%s" % (staging_kernel_dir, kernel)
+                linux_sz = os.stat(linux_path).st_size
+
+                initrd_off = linux_off + linux_sz
+                initrd_off = initrd_off + align - initrd_off % align
+
                 # https://www.freedesktop.org/software/systemd/man/systemd-stub.html
                 objcopy_cmd = "%s-objcopy" % target_sys
                 objcopy_cmd += " --enable-deterministic-archives"
                 objcopy_cmd += " --preserve-dates"
-                objcopy_cmd += " --add-section .osrel=%s/usr/lib/os-release" % staging_dir_host
-                objcopy_cmd += " --change-section-vma .osrel=0x20000"
+                objcopy_cmd += " --add-section .osrel=%s" % osrel_path
+                objcopy_cmd += " --change-section-vma .osrel=0x%x" % osrel_off
                 objcopy_cmd += " --add-section .cmdline=%s" % cmdline.name
-                objcopy_cmd += " --change-section-vma .cmdline=0x30000"
+                objcopy_cmd += " --change-section-vma .cmdline=0x%x" % cmdline_off
                 objcopy_cmd += dtb_params
-                objcopy_cmd += " --add-section .linux=%s/%s" % (staging_kernel_dir, kernel)
-                objcopy_cmd += " --change-section-vma .linux=0x2000000"
+                objcopy_cmd += " --add-section .linux=%s" % linux_path
+                objcopy_cmd += " --change-section-vma .linux=0x%x" % linux_off
                 objcopy_cmd += " --add-section .initrd=%s" % initrd.name
-                objcopy_cmd += " --change-section-vma .initrd=0x3000000"
+                objcopy_cmd += " --change-section-vma .initrd=0x%x" % initrd_off
                 objcopy_cmd += " %s %s/EFI/Linux/linux.efi" % (efi_stub, hdddir)
+
                 exec_native_cmd(objcopy_cmd, native_sysroot)
         else:
             install_cmd = "install -m 0644 %s/%s %s/%s" % \
diff --git a/poky/scripts/runqemu b/poky/scripts/runqemu
index 5e6793d..0e105a9 100755
--- a/poky/scripts/runqemu
+++ b/poky/scripts/runqemu
@@ -203,7 +203,7 @@
         self.fsinfo = {}
         self.network_device = "-device e1000,netdev=net0,mac=@MAC@"
         self.cmdline_ip_slirp = "ip=dhcp"
-        self.cmdline_ip_tap = "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0::eth0:off:8.8.8.8"
+        self.cmdline_ip_tap = "ip=192.168.7.@CLIENT@::192.168.7.@GATEWAY@:255.255.255.0::eth0:off:8.8.8.8 net.ifnames=0"
         # Use different mac section for tap and slirp to avoid
         # conflicts, e.g., when one is running with tap, the other is
         # running with slirp.