subtree updates

meta-raspberrypi: 8dc3a31088..c7f4c739a3:
  Khem Raj (5):
        linux-raspberrypi: Upgrade to 5.10.52
        userland: Update to latest master branch
        raspberrypi-firmware: Update to latest
        raspberrypi-tools: Update to latest
        sdcard_image-rpi.bbclass: Fix IMAGE_TYPEDEP override to use new syntax

  Martin Jansa (4):
        Convert to new override syntax
        Manually fix conversion
        layer.conf: Update to honister
        userland: package man pages in PN-doc

  Pierre-Jean Texier (2):
        kas: local.conf: bump CONF_VERSION variable
        kas: local.conf: disable prelink

poky: 17aabc0127..492205ea83:
  Alexander Kanavin (17):
        llvm: update 12.0.0 -> 12.0.1
        systemd: update 248.3 -> 249.1
        python3-testools: update 2.4.0 -> 2.5.0
        libuv: update 1.41.0 -> 1.42.0
        gnu-config: update to latest revision
        vulkan-samples: update to latest revision
        cmake: update 3.20.5 -> 3.21.0
        cmake: update 3.21.0 -> 3.21.1
        mtools: update 4.0.32 -> 4.0.34
        util-linux: update 2.37 -> 2.37.1
        iputils: update 20210202 -> 20210722
        freetype: update 2.10.4 -> 2.11.0
        devtool: print a warning on upgrades if PREFERRED_VERSION is set
        rpm: do not RRECOMMEND rpm-build
        selftest: add core-image-weston to no-gpl3-no-meta-gpl2 image test
        shadow: update 4.8.1 -> 4.9
        local.conf.sample: disable prelink

  Bernhard Rosenkränzer (1):
        gcc: update 11.1 -> 11.2

  Bruce Ashfield (6):
        linux-yocto/5.10: update to v5.10.53
        linux-yocto/5.13: update to v5.13.5
        linux-yocto/5.4: update to v5.4.135
        linux-yocto-rt/5.10: update to -rt47
        linux-yocto/5.13: enable TYPEC_TCPCI in usbc fragment
        linux-yocto/5.10: enable TYPEC_TCPCI in usbc fragment

  Changqing Li (1):
        archiver.bbclass: fix do_ar_configured failure for kernel

  Chen Qi (3):
        zstd: fix CVE_PRODUCT
        insane.bbclass: fix the file-rdeps QA message for the new override syntax
        iputils: fix do_configure failure of missing ip command

  Damian Wrobel (1):
        rootfs: remove ldconfig auxiliary cache where appropriate

  Denys Dmytriyenko (4):
        meta: convert nested overrides leftovers to new syntax
        convert-overrides.py: handle few more cases of overrides
        libwpe: remove rpi-specific custom code
        poky-tiny: drop uclibc override

  Jon Mason (1):
        parselogs.py: qemuarm should be qemuarmv5

  Joshua Watt (4):
        mesa: Fix v3d & vc4 dmabuf import
        bitbake: bitbake: asyncrpc: Catch early SIGTERM
        libxft: Fix bad PKG value
        bitbake: contrib: vim: Update for new override syntax

  Kai Kang (2):
        u-boot_2021.07: set UBOOT_MACHINE for qemumips and qemumips64
        python3-pytest: display correct version info

  Kevin Hao (2):
        meta-yocto-bsp: Introduce the v5.13 bbappend
        meta-yocto-bsp: Bump to the v5.10.55

  Khem Raj (10):
        binutils: Upgrade to 2.37 branch
        texinfo: Update gnulib to fix build with glibc 2.34
        systemd: Fix build on musl
        stress-ng: Drop defining daddr_t
        stress-ng: Detemine minimal stack size via sysconf
        mesa: Define a fallback for DRIDRIVERS
        libssh2: Fix syntax for using ptest override
        toaster-managed-mode.json: Correctly specify term with new override syntax
        distrooverrides.bbclass: Correct override syntax
        devtool.py: Correct override syntax

  Lee Chee Yang (1):
        aspell: fix CVE-2019-25051

  Marek Vasut (2):
        image_types: Restore pre-btrfs-tools 4.14.1 mkfs.btrfs shrink behavior
        kernel-uboot: Handle gzip and lzo compression options

  Martin Jansa (6):
        convert-overrides.py: show processed file and version of this script
        convert-overrides.py: remove base_dep_prepend and autotools_dep_prepend exception
        convert-overrides.py: 0.9.1 include '(' as delimiter for shortvars
        convert-overrides.py: allow specifying multiple target dirs
        convert-overrides.py: allow dots before override in vars_re and shortvars_re
        systemd-boot: use ld.bfd as efi-ld even when gold or lld is used in ${LD}

  Matthias Klein (2):
        runqemu: Fix typo in error message
        runqemu: decouple bios and kernel options

  Matthias Schiffer (3):
        initscripts: populate-volatile.sh: do not log to tty0
        initscripts: populate-volatile.sh: run create_file synchronously
        initscripts: fix creation order for /var/log with VOLATILE_LOG_DIR=true

  Michael Halstead (1):
        releases: update to include 3.3.1

  Michael Opdenacker (18):
        oe-setup-builddir: update YP docs and OE URLs
        conf-notes.txt: now suggesting to run 'runqemu qemux86-64'
        test-manual: document LTO related reproducibility bug
        quick start manual: update "source oe-init-build-env" output
        dev-manual: fix wrong reference to class
        documentation/README: improve BitBake manual referencing guidelines
        manuals: simplify references to BitBake manual
        manuals: remove explicit BitBake variable references
        meta-skeleton: add recipe examples from documentation sources
        bitbake: doc: bitbake-user-manual: fix syntax in example and improve description
        bitbake: doc: bitbake-user-manual: update bitbake option help
        bitbake: doc: bitbake-user-manual: grammar fix for the number of "metadata"
        manuals: initial documentation for CVE management
        ref-manual: remove example recipe source files
        profile-manual: document how to build perf manpages on target
        cve-check: fix comments
        cve-check: update link to NVD website for CVE details
        cve-check: improve comment about CVE patch file names

  Mingli Yu (2):
        perlcross: not break build if already patched
        curl: Upgrade to 7.78.0

  Nicolas Dechesne (4):
        yocto-check-layer: improve missed dependencies
        checklayer: new function get_layer_dependencies()
        checklayer: rename _find_layer_depends
        yocto-check-layer: ensure that all layer dependencies are tested too

  Oleksandr Kravchuk (1):
        bitbake.conf: change GNOME_MIRROR to new one

  Patrick Williams (1):
        pixman: re-disable iwmmxt

  Paul Barker (4):
        bitbake: asyncrpc: Fix bad message error in client
        bitbake: asyncrpc: Set timeout when waiting for reply from server
        bitbake: parse/ast: Substitute '~' when naming anonymous functions
        kernel-yocto: Simplify no git repo case in do_kernel_checkout

  Quentin Schulz (4):
        bitbake: doc: Makefile: turn warnings into errors by default
        bitbake: doc: bitbake-user-manual: ref-variables: order alphabetically the glossary sources
        bitbake: doc: bitbake-user-manual: ref-variables: force glossary output to be alphabetically sorted
        bitbake: doc: bitbake-user-manual: replace ``FOO`` by :term:`FOO` where possible

  Richard Purdie (49):
        Add MAINTAINERS.md file
        yocto-check-layer: Remove duplicated code
        libubootenv: Drop default-env RRECOMMENDS
        bitbake: data_smart: Allow colon in variable expansion regex
        meta-poky/meta-yocto-bsp: Convert to new override syntax
        layer.conf: Update to honister
        autotools/base/icecc: Remove prepend from function names
        scripts/contrib: Add override conversion script
        systemtap: Fix headers issue with x86 and 5.13 headers
        migration-guides: Add start of 3.4 guide with override migration notes
        common-tasks: Fix conversion error in npm example
        bitbake: bitbake: Switch to using new override syntax
        bitbake: doc/lib: Update to use new override syntax containing colons
        bitbake: doc/lib: Add fixes for issues missed by the automated conversion
        bitbake: bitbake: Update to version 1.51.1
        layer.conf: Override changes mean we're only compatible with honister
        Convert to new override syntax
        meta: Manual override fixes
        local.conf.sample: Bump version so users update their config
        sanity.conf: Require bitbake 1.51.1
        dropbear: Fix incorrect package override for postrm
        convert-overrides: Allow script to handle patch/diffs
        sdk: Decouple default install path from built in path
        sstate: Fix rebuilds when changing layer config
        populate_sdk_ext: Fix handling of TOOLCHAIN_HOST_TASK in the eSDK case
        local.conf.sample: Bump version so users update their config
        poky: Use SDKPATHINSTALL instead of SDKPATH
        vim: Clarify where RDEPENDS/RRECOMMENDS apply
        bitbake: data_smart: Fix inactive overide accidental variable value corruption
        local.conf.sample: Fix missed override conversion
        license: Exclude COPYING.MIT from pseudo
        meta: Convert IMAGE_TYPEDEP to use override syntax
        uboot-extlinux-config: Fix missing override conversion
        image/image_types: Convert CONVERSION_CMD/COMPRESS_CMD to new override syntax
        image: Drop COMPRESS_CMD
        devupstream: Allow support of native class extensions
        diffoscope: Upgrade 178 -> 179
        strace: Upgrade 5.12 -> 5.13
        valgrind: Add patches for glibc 2.34 support
        bitbake: runqueue: Improve multiconfig deferred task issues
        elfutils: Add patch from upstream for glibc 2.34 ptest fixes
        bitbake: doc: Fix append/prepend/remove references
        bitbake: fetch/tests/toaster: Override conversion fixups
        bitbake: process: Improve traceback error reporting from main loop
        bitbake: command: Ensure we catch/handle exceptions
        bitbake: ui/taskexp: Improve startup exception handling
        bitbake: ui/taskexp: Fix to work with empty build directories
        oeqa/runtime/cases/ptest: Increase test timeout from 300s to 450s
        packagedata: Fix after override syntax change

  Ross Burton (2):
        glew: fix Makefile race
        libx11: fix xkb compilation with _EVDEVK symbols

  Saul Wold (1):
        MAINTAINERS: Saul will cover devtool and eSDK

  Stefan Wiehler (1):
        dev-manual: fix source release example script

  Stefano Babic (1):
        mtd-utils: upgrade 2.1.2 -> 2.1.3

  Tim Orling (2):
        python3-hypothesis: upgrade 6.14.3 -> 6.14.5
        python3-importlib-metadata: upgrade 4.6.1 -> 4.6.3

  Tony Battersby (2):
        lto.inc: disable LTO for grub
        gcc: Backport patch to make LTO builds more reproducible

  Tony Tascioglu (6):
        ffmpeg: fix-CVE-2020-20446
        ffmpeg: fix CVE-2020-20453
        ffmpeg: fix CVE-2020-22015
        ffmpeg: fix CVE-2020-22021
        ffmpeg: fix CVE-2020-22033 and CVE-2020-22019
        ffmpeg: fix CVE-2021-33815

  Trevor Woerner (1):
        ffmpeg: add libatomic for armv5

  Ulrich Ölmann (2):
        initramfs-framework: fix whitespace issue
        initramfs-framework/setup-live: fix shebang

  Vinay Kumar (1):
        glibc: Fix CVE-2021-33574

  Vivien Didelot (1):
        init-manager-systemd: define weak dev manager

  Zqiang (1):
        python3: use monotonic clock for condvar if possible

  hongxu (1):
        createrepo-c: fix createrepo-c failed in nativesdk

  leimaohui (1):
        archiver.bbclass: Fix patch error for recipes that inherit dos2unix.

  wangmy (3):
        bind: upgrade 9.16.18 -> 9.16.19
        i2c-tools: upgrade 4.2 -> 4.3
        diffoscope: upgrade 177 -> 178

  zangrc (2):
        python3-dbus: upgrade 1.2.16 -> 1.2.18
        python3-pip: upgrade 21.1.3 -> 21.2.1

meta-openembedded: 8fbcfb9f02..3cf2475ea0:
  Anastasios Kavoukis (1):
        pm-qa: fix paths for shell scripts

  Andreas Müller (3):
        mozjs/0001-Port-build-to-python3.patch: Fix typos in description
        jack: upgrade 1.19.18 -> 1.19.19
        fluidsynth: upgrade 2.2.1 -> 2.2.2

  Andrej Valek (1):
        thrift: upgrade to 0.14.2

  Andrew Jeffery (2):
        python3-gmpy: Add native support
        python3-ecdsa: Add native support

  Armin Kuster (2):
        hiawatha: fix url.
        wireshark: update to 3.4.7

  Ben Brown (1):
        android-tools: fix install of adb client when TOOLS is overridden

  Changqing Li (1):
        apache2: upgrade 2.4.46 -> 2.4.48

  Devendra Tewari (1):
        Suppress eol in functionfs setup scripts (#147)

  Gianfranco (1):
        vboxguestdrivers: upgrade 6.1.22 -> 6.1.24

  Joe Slater (2):
        php: move to version 7.4.21
        gtksourceview4: work around dependency deficiency

  Johannes Obermüller (1):
        evtest: fix timestamps in output

  Kai Kang (2):
        python3-blivet: 3.1.4 -> 3.4.0
        python3-blivetgui: 2.1.10 -> 2.2.1

  Khem Raj (23):
        netperf: Update to latest
        netperf: Add systemd unit file
        packagegroup-meta-oe: Add lmdb
        packagegroup-meta-oe: Add mbw
        addcli: check for ns_get16 and ns_get32
        fuse: Define closefrom if not available
        autofs: Fix build with glibc 2.34+
        ntp: Do not use PTHREAD_STACK_MIN on glibc
        ntp: Fix make check
        mongodb: Upgrade to 4.4.7
        vboxguestdrivers: Remove __divmoddi4 patch
        packagegroup-meta-oe: Add jemalloc
        apitrace: Exclude from builds with glibc 2.34+
        libhugetlbfs: Disable build with glibc 2.34+
        fvwm: Package extra files and man pages
        luajit: Fix override syntax
        lua: Drop uclibc patch
        packagegroup-meta-oe: Correct override name and fix syntax
        recipes: Fix override syntax
        emacs,libgpiod,cockpit: Fix override syntax in using FILES_${PN}
        fvwm: Fix build time paths in target perl/python scripts
        nis: Drop uclibc check in anon python function
        jemalloc: Fix build on musl

  Leon Anavi (3):
        python3-networkx: Upgrade 2.6.1 -> 2.6.2
        python3-pysonos: Upgrade 0.0.53 -> 0.0.54
        python3-zeroconf: Upgrade 0.33.1 -> 0.33.2

  Li Wang (1):
        openlldp: fix segfault

  Maksym Sloyko (1):
        libusbgx: Configure the Devices Used

  Martin Jansa (5):
        Convert to new override syntax
        layer.conf: Update to honister
        mariadb: manually fix the conversion
        packagegroup-meta-oe: manually finish override syntax conversion
        klibc.bbclass, image_types_sparse.bbclass, packagegroup-meta-oe.bb: update the overrides syntax conversion

  Mingli Yu (4):
        mariadb: redefine log-error item
        jemalloc: add new recipe
        hdf5: improve reproducibility
        mariadb: Update SRC_URI

  Nicolas Dechesne (1):
        mbw: add new recipe

  Paulo Neves (1):
        htop: Add ncurses-terminfo-base to RDEPENDS

  Sakib Sajal (1):
        lmdb: add recipe

  Salman Ahmed (2):
        nginx: upgrade 1.18.0 -> 1.20.1
        nginx: upgrade 1.19.6 -> 1.21.1

  Tony Battersby (1):
        net-snmp: fix QA Issue after LDFLAGS change

  Yi Zhao (3):
        postfix: upgrade 3.6.1 -> 3.6.2
        audit: upgrade 3.0.2 -> 3.0.3
        audit: fix compile error for 2.8.5

  Zang Ruochen (1):
        python3-robotframework: upgrade 4.0.3 -> 4.1

  wangmy (17):
        evince: upgrade 40.2 -> 40.4
        gnome-backgrounds: upgrade 3.36.0 -> 3.38.0
        gnome-desktop3: upgrade 3.36.6 -> 3.38.8
        cmark: upgrade 0.30.0 -> 0.30.1
        ctags: upgrade 5.9.20210711.0 -> 5.9.20210718.0
        libnet-dns-perl: upgrade 1.31 -> 1.32
        libtalloc: upgrade 2.3.2 -> 2.3.3
        nghttp2: upgrade 1.43.0 -> 1.44.0
        bats: upgrade 1.3.0 -> 1.4.1
        networkmanager: upgrade 1.32.2 -> 1.32.4
        gensio: upgrade 2.2.7 -> 2.2.8
        libmbim: upgrade 1.24.8 -> 1.26.0
        fetchmail: upgrade 6.4.19 -> 6.4.20
        ctags: upgrade 5.9.20210718.0 -> 5.9.20210801.0
        libblockdev: upgrade 2.25 -> 2.26
        libqmi: upgrade 1.28.6 -> 1.28.8
        monit: upgrade 5.28.0 -> 5.28.1

  zangrc (15):
        python3-qrcode: upgrade 7.1 -> 7.2
        python3-rdflib: upgrade 5.0.0 -> 6.0.0
        python3-simplejson: upgrade 3.17.2 -> 3.17.3
        python3-bitstring: upgrade 3.1.7 -> 3.1.9
        python3-iso8601: upgrade 0.1.14 -> 0.1.16
        python3-gmqtt: upgrade 0.6.9 -> 0.6.10
        python3-graphviz: upgrade 0.16 -> 0.17
        python3-smbus: upgrade 4.2 -> 4.3
        python3-pandas: upgrade 1.3.0 -> 1.3.1
        python3-progress: upgrade 1.5 -> 1.6
        python3-sentry-sdk: upgrade 1.3.0 -> 1.3.1
        python3-socketio: upgrade 5.3.0 -> 5.4.0
        python3-tqdm: upgrade 4.61.2 -> 4.62.0
        python3-twisted: upgrade 21.2.0 -> 21.7.0
        python3-xlsxwriter: upgrade 1.4.4 -> 1.4.5

  zhengruoqin (15):
        live555: upgrade 20210710 -> 20210720
        libtest-warnings-perl: upgrade 0.030 -> 0.031
        python3-pybind11: upgrade 2.6.2 -> 2.7.0
        python3-pymongo: upgrade 3.11.4 -> 3.12.0
        python3-sqlalchemy: upgrade 1.4.20 -> 1.4.22
        python3-sentry-sdk: upgrade 1.2.0 -> 1.3.0
        libcurses-perl: upgrade 1.37 -> 1.38
        libdbd-sqlite-perl: upgrade 1.66 -> 1.68
        libencode-perl: upgrade 3.10 -> 3.11
        python3-bitarray: upgrade 2.2.2 -> 2.2.3
        python3-cbor2: upgrade 5.4.0 -> 5.4.1
        python3-gast: upgrade 0.5.0 -> 0.5.1
        poppler: upgrade 21.07.0 -> 21.08.0
        valijson: upgrade 0.4 -> 0.5
        xwd: upgrade 1.0.7 -> 1.0.8

meta-security: 152cdb506b..c885d399cd:
  Armin Kuster (18):
        suricata.inc: exclude ppc in rust version
        suricata: Drop 4.1.x its EOL
        add meta-rust
        crowdsec: add pkg
        packagegroup-core-security.bb: fix suricat-ptest inclusion
        gitlab-ci.yml:  streamline builds matrix
        krill: Add new pkg
        clamav: fix branch name and update
        meta-security: Convert to new override syntax
        meta-tpm: Convert to new override syntax
        meta-integrity: Convert to new override syntax
        meta-hardening: Convert to new override syntax
        meta-security-isafw: Convert to new override syntax
        meta-parsec: Convert to new override syntax
        meta-security-compliance: Convert to new override syntax
        dynamix-layers: Convert to new override syntax
        kas: Convert to new override syntax
        packagegroup-core-security.bb: only include suricat-ptest if rust is included

  Martin Jansa (1):
        layer.conf: Update to honister

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Iec7301cf1c43b7cec462dcf88292a8b1b12a5045
diff --git a/poky/meta/recipes-extended/acpica/acpica_20210331.bb b/poky/meta/recipes-extended/acpica/acpica_20210331.bb
index e17bc94..35f8ecd 100644
--- a/poky/meta/recipes-extended/acpica/acpica_20210331.bb
+++ b/poky/meta/recipes-extended/acpica/acpica_20210331.bb
@@ -26,7 +26,7 @@
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "acpixtract acpidump"
+ALTERNATIVE:${PN} = "acpixtract acpidump"
 
 EXTRA_OEMAKE = "CC='${CC}' \
                 OPT_CFLAGS=-Wall \
@@ -44,8 +44,8 @@
 
 # iasl*.bb is a subset of this recipe, so RREPLACE it
 PROVIDES = "iasl"
-RPROVIDES_${PN} += "iasl"
-RREPLACES_${PN} += "iasl"
-RCONFLICTS_${PN} += "iasl"
+RPROVIDES:${PN} += "iasl"
+RREPLACES:${PN} += "iasl"
+RCONFLICTS:${PN} += "iasl"
 
 BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-extended/asciidoc/asciidoc_9.1.0.bb b/poky/meta/recipes-extended/asciidoc/asciidoc_9.1.0.bb
index 523bf33..dd9f8e3 100644
--- a/poky/meta/recipes-extended/asciidoc/asciidoc_9.1.0.bb
+++ b/poky/meta/recipes-extended/asciidoc/asciidoc_9.1.0.bb
@@ -24,8 +24,8 @@
 CLEANBROKEN = "1"
 
 # target and nativesdk needs python3, but for native we can use the host.
-RDEPENDS_${PN} += "python3"
-RDEPENDS_remove_class-native = "python3"
+RDEPENDS:${PN} += "python3"
+RDEPENDS:remove:class-native = "python3"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-extended/at/at_3.2.2.bb b/poky/meta/recipes-extended/at/at_3.2.2.bb
index 5c20187..efe5694 100644
--- a/poky/meta/recipes-extended/at/at_3.2.2.bb
+++ b/poky/meta/recipes-extended/at/at_3.2.2.bb
@@ -14,13 +14,13 @@
 
 PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux,"
 
-RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \
+RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_DEPS}', '', d)} \
 "
 
 PAM_DEPS = "libpam libpam-runtime pam-plugin-env pam-plugin-limits"
 
-RCONFLICTS_${PN} = "atd"
-RREPLACES_${PN} = "atd"
+RCONFLICTS:${PN} = "atd"
+RREPLACES:${PN} = "atd"
 
 SRC_URI = "http://software.calhariz.com/at/${BPN}_${PV}.orig.tar.gz \
     file://fix_parallel_build_error.patch \
@@ -51,7 +51,7 @@
 INITSCRIPT_NAME = "atd"
 INITSCRIPT_PARAMS = "defaults"
 
-SYSTEMD_SERVICE_${PN} = "atd.service"
+SYSTEMD_SERVICE:${PN} = "atd.service"
 
 copy_sources() {
 	cp -f ${WORKDIR}/posixtm.[ch] ${S}
diff --git a/poky/meta/recipes-extended/bash/bash.inc b/poky/meta/recipes-extended/bash/bash.inc
index 7350601..ca788e1 100644
--- a/poky/meta/recipes-extended/bash/bash.inc
+++ b/poky/meta/recipes-extended/bash/bash.inc
@@ -22,18 +22,18 @@
 # causes a lot of garbage in non-interactive shells
 CFLAGS += "-DBRACKETED_PASTE_DEFAULT=0"
 
-ALTERNATIVE_${PN} = "bash sh"
+ALTERNATIVE:${PN} = "bash sh"
 ALTERNATIVE_LINK_NAME[bash] = "${base_bindir}/bash"
 ALTERNATIVE_TARGET[bash] = "${base_bindir}/bash"
 ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
 ALTERNATIVE_TARGET[sh] = "${base_bindir}/bash.${BPN}"
 ALTERNATIVE_PRIORITY = "100"
 
-RDEPENDS_${PN} += "base-files"
-RDEPENDS_${PN}_class-nativesdk = ""
-RDEPENDS_${PN}-ptest += "make coreutils perl sed shadow util-linux-setpriv"
+RDEPENDS:${PN} += "base-files"
+RDEPENDS:${PN}:class-nativesdk = ""
+RDEPENDS:${PN}-ptest += "make coreutils perl sed shadow util-linux-setpriv"
 
-RDEPENDS_${PN}-ptest_append_libc-glibc = " \
+RDEPENDS:${PN}-ptest:append:libc-glibc = " \
 	glibc-gconv-big5hkscs \
 	glibc-gconv-iso8859-1 \
 	glibc-utils \
@@ -46,13 +46,13 @@
 
 CACHED_CONFIGUREVARS += "headersdir=${includedir}/${PN}"
 
-do_configure_prepend () {
+do_configure:prepend () {
     if [ ! -e ${S}/acinclude.m4 ]; then
        cat ${S}/aclocal.m4 > ${S}/acinclude.m4
     fi
 }
 
-do_compile_prepend() {
+do_compile:prepend() {
     # Remove any leftover .build files. This ensures that bash always has the
     # same version number and keeps builds reproducible
     rm -f ${B}/.build
@@ -62,14 +62,14 @@
 	oe_runmake buildtest
 }
 
-do_install_append () {
+do_install:append () {
 	# Move /usr/bin/bash to /bin/bash, if need
 	if [ "${base_bindir}" != "${bindir}" ]; then
 		mkdir -p ${D}${base_bindir}
 		mv ${D}${bindir}/bash ${D}${base_bindir}
 	fi
 }
-do_install_append_class-target () {
+do_install:append:class-target () {
 	# Clean buildhost references in bashbug
 	sed -i -e "s,--sysroot=${STAGING_DIR_TARGET},,g" \
 		-e "s,-I${WORKDIR}/\S* ,,g" \
@@ -107,20 +107,20 @@
 # hash
 do_install_ptest[vardepsexclude] += "UNINATIVE_LOADER"
 
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
 	grep -q "^${base_bindir}/bash$" $D${sysconfdir}/shells || echo ${base_bindir}/bash >> $D${sysconfdir}/shells
 }
 
-pkg_postrm_${PN} () {
+pkg_postrm:${PN} () {
 	printf "$(grep -v "^${base_bindir}/bash$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
 }
 
 PACKAGES += "${PN}-bashbug"
-FILES_${PN} = "${bindir}/bash ${base_bindir}/bash.bash"
-FILES_${PN}-bashbug = "${bindir}/bashbug"
+FILES:${PN} = "${bindir}/bash ${base_bindir}/bash.bash"
+FILES:${PN}-bashbug = "${bindir}/bashbug"
 
 PACKAGE_BEFORE_PN += "${PN}-loadable"
-RDEPENDS_${PN}-loadable += "${PN}"
-FILES_${PN}-loadable += "${libdir}/bash/*"
+RDEPENDS:${PN}-loadable += "${PN}"
+FILES:${PN}-loadable += "${libdir}/bash/*"
 
-RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh /bin/bash', '', d)}"
+RPROVIDES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh /bin/bash', '', d)}"
diff --git a/poky/meta/recipes-extended/bash/bash_5.1.8.bb b/poky/meta/recipes-extended/bash/bash_5.1.8.bb
index 5d7704a..9400835 100644
--- a/poky/meta/recipes-extended/bash/bash_5.1.8.bb
+++ b/poky/meta/recipes-extended/bash/bash_5.1.8.bb
@@ -19,7 +19,7 @@
 
 SRC_URI[tarball.sha256sum] = "0cfb5c9bb1a29f800a97bd242d19511c997a1013815b805e0fdd32214113d6be"
 
-DEBUG_OPTIMIZATION_append_armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
-DEBUG_OPTIMIZATION_append_armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
+DEBUG_OPTIMIZATION:append:armv4 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
+DEBUG_OPTIMIZATION:append:armv5 = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
 
 BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-extended/bc/bc_1.07.1.bb b/poky/meta/recipes-extended/bc/bc_1.07.1.bb
index ff3e8f4..37f06b7 100644
--- a/poky/meta/recipes-extended/bc/bc_1.07.1.bb
+++ b/poky/meta/recipes-extended/bc/bc_1.07.1.bb
@@ -25,11 +25,11 @@
 PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
 PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
 
-do_compile_prepend() {
+do_compile:prepend() {
     cp -f ${WORKDIR}/libmath.h ${B}/bc/libmath.h
 }
 
-ALTERNATIVE_${PN} = "bc dc"
+ALTERNATIVE:${PN} = "bc dc"
 ALTERNATIVE_PRIORITY = "100"
 
 BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
index 70eb67f..296bc68 100644
--- a/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
+++ b/poky/meta/recipes-extended/bzip2/bzip2_1.0.8.bb
@@ -5,13 +5,13 @@
 HOMEPAGE = "https://sourceware.org/bzip2/"
 SECTION = "console/utils"
 LICENSE = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib"
-LICENSE_${PN} = "bzip2-1.0.6"
-LICENSE_${PN}-dev = "bzip2-1.0.6"
-LICENSE_${PN}-dbg = "bzip2-1.0.6"
-LICENSE_${PN}-doc = "bzip2-1.0.6"
-LICENSE_${PN}-src = "bzip2-1.0.6"
-LICENSE_libbz2 = "bzip2-1.0.6"
-LICENSE_${PN}-ptest = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib"
+LICENSE:${PN} = "bzip2-1.0.6"
+LICENSE:${PN}-dev = "bzip2-1.0.6"
+LICENSE:${PN}-dbg = "bzip2-1.0.6"
+LICENSE:${PN}-doc = "bzip2-1.0.6"
+LICENSE:${PN}-src = "bzip2-1.0.6"
+LICENSE:libbz2 = "bzip2-1.0.6"
+LICENSE:${PN}-ptest = "bzip2-1.0.6 & GPLv3+ & Apache-2.0 & MS-PL & BSD-3-Clause & Zlib"
 
 LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \
                     file://${WORKDIR}/git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \
@@ -36,17 +36,17 @@
 
 PACKAGES =+ "libbz2"
 
-CFLAGS_append = " -fPIC -fpic -Winline -fno-strength-reduce -D_FILE_OFFSET_BITS=64"
+CFLAGS:append = " -fPIC -fpic -Winline -fno-strength-reduce -D_FILE_OFFSET_BITS=64"
 
 inherit autotools update-alternatives ptest relative_symlinks
 
 ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "bunzip2 bzcat bzip2"
+ALTERNATIVE:${PN} = "bunzip2 bzcat bzip2"
 
 #install binaries to bzip2-native under sysroot for replacement-native
-EXTRA_OECONF_append_class-native = " --bindir=${STAGING_BINDIR_NATIVE}/${PN}"
+EXTRA_OECONF:append:class-native = " --bindir=${STAGING_BINDIR_NATIVE}/${PN}"
 
-do_configure_prepend () {
+do_configure:prepend () {
     sed -i -e "s|%BZIP2_VERSION%|${PV}|" ${S}/configure.ac
 }
 
@@ -62,9 +62,9 @@
 	sed -i -e "s|^Makefile:|_Makefile:|" ${D}${PTEST_PATH}/Makefile
 }
 
-FILES_libbz2 = "${libdir}/lib*${SOLIBS}"
+FILES:libbz2 = "${libdir}/lib*${SOLIBS}"
 
-RDEPENDS_${PN}-ptest += "make bash"
+RDEPENDS:${PN}-ptest += "make bash"
 
-PROVIDES_append_class-native = " bzip2-replacement-native"
+PROVIDES:append:class-native = " bzip2-replacement-native"
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/cpio/cpio_2.13.bb b/poky/meta/recipes-extended/cpio/cpio_2.13.bb
index f4df826..20ea3c2 100644
--- a/poky/meta/recipes-extended/cpio/cpio_2.13.bb
+++ b/poky/meta/recipes-extended/cpio/cpio_2.13.bb
@@ -37,14 +37,14 @@
 
 PACKAGES =+ "${PN}-rmt"
 
-FILES_${PN}-rmt = "${sbindir}/rmt*"
+FILES:${PN}-rmt = "${sbindir}/rmt*"
 
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "100"
 
-ALTERNATIVE_${PN} = "cpio"
-ALTERNATIVE_${PN}-rmt = "rmt"
+ALTERNATIVE:${PN} = "cpio"
+ALTERNATIVE:${PN}-rmt = "rmt"
 
 ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio"
 
diff --git a/poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb b/poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb
index 9cdb71f..c267718 100644
--- a/poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb
+++ b/poky/meta/recipes-extended/cracklib/cracklib_2.9.5.bb
@@ -22,7 +22,7 @@
 
 inherit autotools gettext
 
-do_install_append_class-target() {
+do_install:append:class-target() {
 	create-cracklib-dict -o ${D}${datadir}/cracklib/pw_dict ${D}${datadir}/cracklib/cracklib-small
 }
 
diff --git a/poky/meta/recipes-extended/cronie/cronie_1.5.7.bb b/poky/meta/recipes-extended/cronie/cronie_1.5.7.bb
index d0abdd8..2cbae59 100644
--- a/poky/meta/recipes-extended/cronie/cronie_1.5.7.bb
+++ b/poky/meta/recipes-extended/cronie/cronie_1.5.7.bb
@@ -39,11 +39,11 @@
 INITSCRIPT_PARAMS = "start 90 2 3 4 5 . stop 60 0 1 6 ."
 
 USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system crontab"
+GROUPADD_PARAM:${PN} = "--system crontab"
 
-SYSTEMD_SERVICE_${PN} = "crond.service"
+SYSTEMD_SERVICE:${PN} = "crond.service"
 
-do_install_append () {
+do_install:append () {
 	install -d ${D}${sysconfdir}/sysconfig/
 	install -d ${D}${sysconfdir}/init.d/
 	install -m 0644 ${S}/crond.sysconfig ${D}${sysconfdir}/sysconfig/crond
@@ -79,5 +79,5 @@
 	chmod 600 ${D}${sysconfdir}/crontab
 }
 
-FILES_${PN} += "${sysconfdir}/cron*"
-CONFFILES_${PN} += "${sysconfdir}/crontab"
+FILES:${PN} += "${sysconfdir}/cron*"
+CONFFILES:${PN} += "${sysconfdir}/crontab"
diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc
index df23825..f6f8637 100644
--- a/poky/meta/recipes-extended/cups/cups.inc
+++ b/poky/meta/recipes-extended/cups/cups.inc
@@ -34,9 +34,9 @@
 inherit autotools-brokensep binconfig useradd systemd pkgconfig multilib_script
 
 USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system lpadmin"
+GROUPADD_PARAM:${PN} = "--system lpadmin"
 
-SYSTEMD_SERVICE_${PN} = "cups.socket cups.path cups.service cups-lpd.socket"
+SYSTEMD_SERVICE:${PN} = "cups.socket cups.path cups.service cups-lpd.socket"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
                    ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)}"
@@ -91,21 +91,21 @@
 
 PACKAGES =+ "${PN}-lib ${PN}-libimage"
 
-RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'procps', '', d)}"
-FILES_${PN} += "${libexecdir}/cups/"
+RDEPENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'procps', '', d)}"
+FILES:${PN} += "${libexecdir}/cups/"
 
-FILES_${PN}-lib = "${libdir}/libcups.so.*"
+FILES:${PN}-lib = "${libdir}/libcups.so.*"
 
-FILES_${PN}-libimage = "${libdir}/libcupsimage.so.*"
+FILES:${PN}-libimage = "${libdir}/libcupsimage.so.*"
 
 #package the html for the webgui inside the main packages (~1MB uncompressed)
 
-FILES_${PN} += "${datadir}/doc/cups/images \
+FILES:${PN} += "${datadir}/doc/cups/images \
                 ${datadir}/doc/cups/*html \
                 ${datadir}/doc/cups/*.css \
                 ${datadir}/icons/ \
                "
-CONFFILES_${PN} += "${sysconfdir}/cups/cupsd.conf"
+CONFFILES:${PN} += "${sysconfdir}/cups/cupsd.conf"
 
 MULTILIB_SCRIPTS = "${PN}-dev:${bindir}/cups-config"
 
diff --git a/poky/meta/recipes-extended/diffutils/diffutils.inc b/poky/meta/recipes-extended/diffutils/diffutils.inc
index c9e3130..194d6e5 100644
--- a/poky/meta/recipes-extended/diffutils/diffutils.inc
+++ b/poky/meta/recipes-extended/diffutils/diffutils.inc
@@ -7,7 +7,7 @@
 
 inherit autotools texinfo update-alternatives gettext
 
-ALTERNATIVE_${PN} = "diff cmp"
+ALTERNATIVE:${PN} = "diff cmp"
 ALTERNATIVE_PRIORITY = "100"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb b/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb
index b9a54fe..7b4ae16 100644
--- a/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb
+++ b/poky/meta/recipes-extended/diffutils/diffutils_3.7.bb
@@ -19,7 +19,7 @@
 
 inherit ptest
 
-RDEPENDS_${PN}-ptest += "make perl"
+RDEPENDS:${PN}-ptest += "make perl"
 
 do_install_ptest() {
 	t=${D}${PTEST_PATH}
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.13.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.13.bb
index 8f6a790..3c99deb 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool_5.13.bb
+++ b/poky/meta/recipes-extended/ethtool/ethtool_5.13.bb
@@ -17,7 +17,7 @@
 
 inherit autotools ptest bash-completion pkgconfig
 
-RDEPENDS_${PN}-ptest += "make"
+RDEPENDS:${PN}-ptest += "make"
 
 PACKAGECONFIG ?= "netlink"
 PACKAGECONFIG[netlink] = "--enable-netlink,--disable-netlink,libmnl,"
diff --git a/poky/meta/recipes-extended/findutils/findutils.inc b/poky/meta/recipes-extended/findutils/findutils.inc
index 9aa7239..ea8a1b7 100644
--- a/poky/meta/recipes-extended/findutils/findutils.inc
+++ b/poky/meta/recipes-extended/findutils/findutils.inc
@@ -10,7 +10,7 @@
 
 inherit autotools gettext texinfo update-alternatives
 
-ALTERNATIVE_${PN} = "find xargs"
+ALTERNATIVE:${PN} = "find xargs"
 ALTERNATIVE_PRIORITY = "100"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb b/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb
index ae897be..3c801e8 100644
--- a/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb
+++ b/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb
@@ -25,14 +25,14 @@
 
 inherit autotools gettext texinfo update-alternatives
 
-FILES_${PN} += "${datadir}/awk"
-FILES_${PN}-dev += "${libdir}/${BPN}/*.la"
+FILES:${PN} += "${datadir}/awk"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.la"
 
-ALTERNATIVE_${PN} = "awk"
+ALTERNATIVE:${PN} = "awk"
 ALTERNATIVE_TARGET[awk] = "${bindir}/gawk"
 ALTERNATIVE_PRIORITY = "100"
 
-do_install_append() {
+do_install:append() {
 	# remove the link since we don't package it
 	rm ${D}${bindir}/awk
 }
@@ -51,9 +51,9 @@
         sed -i -e "s|GAWKLOCALE|LANG|g" ${D}${PTEST_PATH}/test/Maketests
 }
 
-RDEPENDS_${PN}-ptest += "make"
+RDEPENDS:${PN}-ptest += "make"
 
-RDEPENDS_${PN}-ptest_append_libc-glibc = "\
+RDEPENDS:${PN}-ptest:append:libc-glibc = "\
      locale-base-en-us.iso-8859-1 \
 "
 
diff --git a/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb b/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb
index 81f8d61..59cc560 100644
--- a/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb
+++ b/poky/meta/recipes-extended/ghostscript/ghostscript_9.54.0.bb
@@ -14,7 +14,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=70dc2bac4d0ce4448da873cd86b123fc"
 
 DEPENDS = "ghostscript-native tiff jpeg fontconfig cups libpng"
-DEPENDS_class-native = "libpng-native"
+DEPENDS:class-native = "libpng-native"
 
 UPSTREAM_CHECK_URI = "https://github.com/ArtifexSoftware/ghostpdl-downloads/releases"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.tar"
@@ -40,7 +40,7 @@
            file://cups-no-gcrypt.patch \
            "
 
-SRC_URI_class-native = "${SRC_URI_BASE} \
+SRC_URI:class-native = "${SRC_URI_BASE} \
                         file://ghostscript-9.21-native-fix-disable-system-libtiff.patch \
                         file://base-genht.c-add-a-preprocessor-define-to-allow-fope.patch \
                         "
@@ -49,13 +49,13 @@
 
 # Put something like
 #
-#   PACKAGECONFIG_append_pn-ghostscript = " x11"
+#   PACKAGECONFIG:append:pn-ghostscript = " x11"
 #
 # in local.conf to enable building with X11.  Be careful.  The order
 # of the overrides matters!
 #
 #PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
-PACKAGECONFIG_class-native = ""
+PACKAGECONFIG:class-native = ""
 
 PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR}, \
                       --without-x, virtual/libx11 libxext libxt gtk+3\
@@ -68,11 +68,11 @@
                 CUPSCONFIG="${STAGING_BINDIR_CROSS}/cups-config" \
                 "
 
-EXTRA_OECONF_append_mipsarcho32 = " --with-large_color_index=0"
+EXTRA_OECONF:append:mipsarcho32 = " --with-large_color_index=0"
 
 # Explicity disable libtiff, fontconfig,
 # freetype, cups for ghostscript-native
-EXTRA_OECONF_class-native = "--without-x --with-system-libtiff=no \
+EXTRA_OECONF:class-native = "--without-x --with-system-libtiff=no \
                              --without-jbig2dec --without-libpaper \
                              --with-fontpath=${datadir}/fonts \
                              --without-libidn --disable-fontconfig \
@@ -86,11 +86,11 @@
 
 inherit autotools-brokensep
 
-do_configure_prepend_class-target () {
+do_configure:prepend:class-target () {
         rm -rf ${S}/jpeg/
 }
 
-do_configure_append () {
+do_configure:append () {
 	# copy tools from the native ghostscript build
 	if [ "${PN}" != "ghostscript-native" ]; then
 		mkdir -p obj/aux soobj
@@ -100,20 +100,20 @@
 	fi
 }
 
-do_install_append () {
+do_install:append () {
     mkdir -p ${D}${datadir}/ghostscript/${PV}/
     cp -r ${S}/Resource ${D}${datadir}/ghostscript/${PV}/
     cp -r ${S}/iccprofiles ${D}${datadir}/ghostscript/${PV}/
 }
 
-do_compile_class-native () {
+do_compile:class-native () {
     mkdir -p obj
     for i in genarch genconf mkromfs echogs gendev genht packps; do
         oe_runmake obj/aux/$i
     done
 }
 
-do_install_class-native () {
+do_install:class-native () {
     install -d ${D}${bindir}/ghostscript-${PV}
     for i in genarch genconf mkromfs echogs gendev genht packps; do
         install -m 755 obj/aux/$i ${D}${bindir}/ghostscript-${PV}/$i
diff --git a/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb b/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
index c51f163..aeff482 100644
--- a/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
+++ b/poky/meta/recipes-extended/go-examples/go-helloworld_0.1.bb
@@ -17,6 +17,6 @@
 inherit go
 
 # This is just to make clear where this example is
-do_install_append() {
+do_install:append() {
     mv ${D}${bindir}/hello ${D}${bindir}/${BPN}
 }
diff --git a/poky/meta/recipes-extended/grep/grep_3.6.bb b/poky/meta/recipes-extended/grep/grep_3.6.bb
index c17b96d..750575e 100644
--- a/poky/meta/recipes-extended/grep/grep_3.6.bb
+++ b/poky/meta/recipes-extended/grep/grep_3.6.bb
@@ -15,7 +15,7 @@
 # Fix "Argument list too long" error when len(TMPDIR) = 410
 acpaths = "-I ./m4"
 
-do_configure_prepend () {
+do_configure:prepend () {
 	sed -i -e '1s,#!@SHELL@,#!/bin/sh,' ${S}/src/egrep.sh
 	rm -f ${S}/m4/init.m4
 }
@@ -38,7 +38,7 @@
 
 ALTERNATIVE_PRIORITY = "100"
 
-ALTERNATIVE_${PN} = "grep egrep fgrep"
+ALTERNATIVE:${PN} = "grep egrep fgrep"
 ALTERNATIVE_LINK_NAME[grep] = "${base_bindir}/grep"
 ALTERNATIVE_LINK_NAME[egrep] = "${base_bindir}/egrep"
 ALTERNATIVE_LINK_NAME[fgrep] = "${base_bindir}/fgrep"
diff --git a/poky/meta/recipes-extended/groff/groff_1.22.4.bb b/poky/meta/recipes-extended/groff/groff_1.22.4.bb
index f0e9eb6..d0b543a 100644
--- a/poky/meta/recipes-extended/groff/groff_1.22.4.bb
+++ b/poky/meta/recipes-extended/groff/groff_1.22.4.bb
@@ -22,7 +22,7 @@
 PR = "r1"
 
 DEPENDS = "bison-native"
-RDEPENDS_${PN} += "perl sed"
+RDEPENDS:${PN} += "perl sed"
 
 inherit autotools-brokensep texinfo multilib_script pkgconfig
 
@@ -35,12 +35,12 @@
 
 # Delete these generated files since we depend on bison-native
 # and regenerate them. Do it deterministically (always).
-do_configure_prepend() {
+do_configure:prepend() {
 	rm -f ${S}/src/preproc/eqn/eqn.cpp
 	rm -f ${S}/src/preproc/eqn/eqn.hpp
 }
 
-do_install_append() {
+do_install:append() {
 	# Some distros have both /bin/perl and /usr/bin/perl, but we set perl location
 	# for target as /usr/bin/perl, so fix it to /usr/bin/perl.
 	for i in afmtodit mmroff gropdf pdfmom grog; do
@@ -68,13 +68,13 @@
 	rm -rf ${D}${mandir}/man1/grap2graph*
 }
 
-do_install_append_class-native() {
+do_install:append:class-native() {
 	create_cmdline_wrapper ${D}/${bindir}/groff \
 		-F${STAGING_DIR_NATIVE}${datadir_native}/groff/${PV}/font \
 		-M${STAGING_DIR_NATIVE}${datadir_native}/groff/${PV}/tmac
 }
 
-FILES_${PN} += "${libdir}/${BPN}/site-tmac \
+FILES:${PN} += "${libdir}/${BPN}/site-tmac \
                 ${libdir}/${BPN}/groffer/"
 
 BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-extended/gzip/gzip.inc b/poky/meta/recipes-extended/gzip/gzip.inc
index 04f8f95..15fd665 100644
--- a/poky/meta/recipes-extended/gzip/gzip.inc
+++ b/poky/meta/recipes-extended/gzip/gzip.inc
@@ -8,10 +8,10 @@
 inherit autotools texinfo
 export DEFS="NO_ASM"
 
-EXTRA_OEMAKE_class-target = "GREP=${base_bindir}/grep"
-EXTRA_OECONF_append_libc-musl = " gl_cv_func_fflush_stdin=yes "
+EXTRA_OEMAKE:class-target = "GREP=${base_bindir}/grep"
+EXTRA_OECONF:append:libc-musl = " gl_cv_func_fflush_stdin=yes "
 
-do_install_append () {
+do_install:append () {
 	if [ "${base_bindir}" != "${bindir}" ]; then
 		# Rename and move files into /bin (FHS), which is typical place for gzip
 		install -d ${D}${base_bindir}
@@ -25,7 +25,7 @@
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "gunzip gzip zcat"
+ALTERNATIVE:${PN} = "gunzip gzip zcat"
 ALTERNATIVE_LINK_NAME[gunzip] = "${base_bindir}/gunzip"
 ALTERNATIVE_LINK_NAME[gzip] = "${base_bindir}/gzip"
 ALTERNATIVE_LINK_NAME[zcat] = "${base_bindir}/zcat"
diff --git a/poky/meta/recipes-extended/gzip/gzip_1.10.bb b/poky/meta/recipes-extended/gzip/gzip_1.10.bb
index 9778e68..120e1d4 100644
--- a/poky/meta/recipes-extended/gzip/gzip_1.10.bb
+++ b/poky/meta/recipes-extended/gzip/gzip_1.10.bb
@@ -5,14 +5,14 @@
 SRC_URI = "${GNU_MIRROR}/gzip/${BP}.tar.gz \
            file://run-ptest \
           "
-SRC_URI_append_class-target = " file://wrong-path-fix.patch"
+SRC_URI:append:class-target = " file://wrong-path-fix.patch"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
                     file://gzip.h;beginline=8;endline=20;md5=6e47caaa630e0c8bf9f1bc8d94a8ed0e"
 
-PROVIDES_append_class-native = " gzip-replacement-native"
+PROVIDES:append:class-native = " gzip-replacement-native"
 
-RDEPENDS_${PN}-ptest += "make perl grep diffutils"
+RDEPENDS:${PN}-ptest += "make perl grep diffutils"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb b/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb
index 0267723..3d4081c 100644
--- a/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb
+++ b/poky/meta/recipes-extended/hdparm/hdparm_9.62.bb
@@ -5,9 +5,9 @@
 SECTION = "console/utils"
 
 LICENSE = "BSD & GPLv2"
-LICENSE_${PN} = "BSD"
-LICENSE_${PN}-dbg = "BSD"
-LICENSE_wiper = "GPLv2"
+LICENSE:${PN} = "BSD"
+LICENSE:${PN}-dbg = "BSD"
+LICENSE:wiper = "GPLv2"
 
 LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=495d03e50dc6c89d6a30107ab0df5b03 \
                     file://debian/copyright;md5=a82d7ba3ade9e8ec902749db98c592f3 \
@@ -17,9 +17,9 @@
 
 PACKAGES =+ "wiper"
 
-FILES_wiper = "${bindir}/wiper.sh"
+FILES:wiper = "${bindir}/wiper.sh"
 
-RDEPENDS_wiper = "bash gawk coreutils"
+RDEPENDS:wiper = "bash gawk coreutils"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/hdparm/${BP}.tar.gz \
            file://wiper.sh-fix-stat-path.patch \
@@ -31,7 +31,7 @@
 
 inherit update-alternatives
 
-ALTERNATIVE_${PN} = "hdparm"
+ALTERNATIVE:${PN} = "hdparm"
 ALTERNATIVE_LINK_NAME[hdparm] = "${base_sbindir}/hdparm"
 ALTERNATIVE_PRIORITY = "100"
 
diff --git a/poky/meta/recipes-extended/images/core-image-kernel-dev.bb b/poky/meta/recipes-extended/images/core-image-kernel-dev.bb
index 4d16da1..4018af7 100644
--- a/poky/meta/recipes-extended/images/core-image-kernel-dev.bb
+++ b/poky/meta/recipes-extended/images/core-image-kernel-dev.bb
@@ -15,7 +15,7 @@
                             "
 
 # We need extra space for things like kernel builds, etc.
-IMAGE_ROOTFS_EXTRA_SPACE_append = " + 3000000"
+IMAGE_ROOTFS_EXTRA_SPACE:append = " + 3000000"
 
 # Let's define our own subset to test, we can later add a on-target kernel build even!
 DEFAULT_TEST_SUITES = "ping ssh df connman syslog scp date parselogs"
diff --git a/poky/meta/recipes-extended/iptables/iptables_1.8.7.bb b/poky/meta/recipes-extended/iptables/iptables_1.8.7.bb
index 621f87f..93af96b 100644
--- a/poky/meta/recipes-extended/iptables/iptables_1.8.7.bb
+++ b/poky/meta/recipes-extended/iptables/iptables_1.8.7.bb
@@ -18,7 +18,7 @@
            "
 SRC_URI[sha256sum] = "c109c96bb04998cd44156622d36f8e04b140701ec60531a10668cfdff5e8d8f0"
 
-SYSTEMD_SERVICE_${PN} = "\
+SYSTEMD_SERVICE:${PN} = "\
     iptables.service \
     ${@bb.utils.contains('PACKAGECONFIG', 'ipv6', 'ip6tables.service', '', d)} \
 "
@@ -36,7 +36,7 @@
 # libnftnl recipe is in meta-networking layer(previously known as libnftables)
 PACKAGECONFIG[libnftnl] = "--enable-nftables,--disable-nftables,libnftnl"
 
-do_configure_prepend() {
+do_configure:prepend() {
     # Remove some libtool m4 files
     # Keep ax_check_linker_flags.m4 which belongs to autoconf-archive.
     rm -f libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4
@@ -44,7 +44,7 @@
 
 IPTABLES_RULES_DIR ?= "${sysconfdir}/${BPN}"
 
-do_install_append() {
+do_install:append() {
     install -d ${D}${IPTABLES_RULES_DIR}
     install -m 0644 ${WORKDIR}/iptables.rules ${D}${IPTABLES_RULES_DIR}
 
@@ -70,15 +70,15 @@
 PACKAGES =+ "${PN}-modules ${PN}-apply"
 PACKAGES_DYNAMIC += "^${PN}-module-.*"
 
-python populate_packages_prepend() {
+python populate_packages:prepend() {
     modules = do_split_packages(d, '${libdir}/xtables', r'lib(.*)\.so$', '${PN}-module-%s', '${PN} module %s', extra_depends='')
     if modules:
         metapkg = d.getVar('PN') + '-modules'
-        d.appendVar('RDEPENDS_' + metapkg, ' ' + ' '.join(modules))
+        d.appendVar('RDEPENDS:' + metapkg, ' ' + ' '.join(modules))
 }
 
-RDEPENDS_${PN} = "${PN}-module-xt-standard"
-RRECOMMENDS_${PN} = " \
+RDEPENDS:${PN} = "${PN}-module-xt-standard"
+RRECOMMENDS:${PN} = " \
     ${PN}-modules \
     kernel-module-x-tables \
     kernel-module-ip-tables \
@@ -95,16 +95,16 @@
     ', '', d)} \
 "
 
-FILES_${PN} += "${datadir}/xtables"
+FILES:${PN} += "${datadir}/xtables"
 
-FILES_${PN}-apply = "${sbindir}/ip*-apply"
-RDEPENDS_${PN}-apply = "${PN} bash"
+FILES:${PN}-apply = "${sbindir}/ip*-apply"
+RDEPENDS:${PN}-apply = "${PN} bash"
 
 # Include the symlinks as well in respective packages
-FILES_${PN}-module-xt-conntrack += "${libdir}/xtables/libxt_state.so"
-FILES_${PN}-module-xt-ct += "${libdir}/xtables/libxt_NOTRACK.so"
+FILES:${PN}-module-xt-conntrack += "${libdir}/xtables/libxt_state.so"
+FILES:${PN}-module-xt-ct += "${libdir}/xtables/libxt_NOTRACK.so"
 
-ALLOW_EMPTY_${PN}-modules = "1"
+ALLOW_EMPTY:${PN}-modules = "1"
 
-INSANE_SKIP_${PN}-module-xt-conntrack = "dev-so"
-INSANE_SKIP_${PN}-module-xt-ct = "dev-so"
+INSANE_SKIP:${PN}-module-xt-conntrack = "dev-so"
+INSANE_SKIP:${PN}-module-xt-ct = "dev-so"
diff --git a/poky/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch b/poky/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch
new file mode 100644
index 0000000..9f17cbd
--- /dev/null
+++ b/poky/meta/recipes-extended/iputils/iputils/0001-meson-Make-tests-optional.patch
@@ -0,0 +1,220 @@
+From d8048d60d30a2efe7883b36626123630ce69b9fc Mon Sep 17 00:00:00 2001
+From: Heiko Becker <heirecka@exherbo.org>
+Date: Fri, 23 Jul 2021 16:32:46 +0200
+Subject: [PATCH] meson: Make tests optional
+
+Now can be disabled with -DSKIP_TESTS=true.
+
+It allows to avoid meson error during build when ip isn't installed.
+
+Closes: #359
+
+Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
+Signed-off-by: Heiko Becker <heirecka@exherbo.org>
+[ pvorel: Rename variable TEST => SKIP_TESTS, default false, adjust
+the description ]
+Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
+
+Upstream-Status: Backport [3163c49f9f4ad473a00d8a345ee334a028376011]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ meson_options.txt     |  3 ++
+ ping/meson.build      | 84 ++-----------------------------------------
+ ping/test/meson.build | 81 +++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 86 insertions(+), 82 deletions(-)
+ create mode 100644 ping/test/meson.build
+
+diff --git a/meson_options.txt b/meson_options.txt
+index ac5f5d9..517667f 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -72,3 +72,6 @@ option('INSTALL_SYSTEMD_UNITS', type: 'boolean', value: false,
+ 
+ option('USE_GETTEXT', type: 'boolean', value: true,
+ 	description: 'Enable I18N')
++
++option('SKIP_TESTS', type: 'boolean', value: false,
++	description: 'Skip tests during build')
+diff --git a/ping/meson.build b/ping/meson.build
+index 1e678ec..83ea353 100644
+--- a/ping/meson.build
++++ b/ping/meson.build
+@@ -27,86 +27,6 @@ if (setcap_ping)
+ 	)
+ endif
+ 
+-##### TESTS #####
+-
+-# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_"
+-
+-# GitHub CI does not have working IPv6
+-# https://github.com/actions/virtual-environments/issues/668
+-ipv6_dst = []
+-ipv6_switch = []
+-r = run_command('ip', '-6', 'a')
+-if r.stdout().strip().contains('::1')
+-  message('IPv6 enabled')
+-  ipv6_dst = [ '::1' ]
+-  ipv6_switch = [ '-6' ]
+-else
+-  message('WARNING: IPv6 disabled')
++if not get_option('SKIP_TESTS')
++	subdir('test')
+ endif
+-
+-run_as_root = false
+-r = run_command('id', '-u')
+-if r.stdout().strip().to_int() == 0
+-  message('running as root')
+-  run_as_root = true
+-else
+-  message('running as normal user')
+-endif
+-
+-foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst
+-  foreach switch : [ '', '-4' ] + ipv6_switch
+-	args = [ '-c1', dst ]
+-	should_fail = false
+-
+-	if switch != ''
+-	  args = [switch] + args
+-	  if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1')
+-		 should_fail = true
+-	  endif
+-	endif
+-
+-	name = 'ping ' + ' '.join(args)
+-	test(name, ping, args : args, should_fail : should_fail)
+-  endforeach
+-endforeach
+-
+-ping_tests_opt = [
+-  [ '-c1' ],
+-  [ '-c5', '-i0.1' ],
+-  [ '-c1', '-I', 'lo' ],
+-  [ '-c1', '-w1' ],
+-  [ '-c1', '-W1' ],
+-  [ '-c1', '-W1.1' ],
+-]
+-foreach dst : [ '127.0.0.1' ] + ipv6_dst
+-  foreach args : ping_tests_opt
+-	args += [ dst ]
+-	name = 'ping ' + ' '.join(args)
+-	test(name, ping, args : args)
+-  endforeach
+-endforeach
+-
+-ping_tests_opt_fail = [
+-  [ '-c1.1' ],
+-  [ '-I', 'nonexisting' ],
+-  [ '-w0.1' ],
+-  [ '-w0,1' ],
+-]
+-foreach dst : [ '127.0.0.1' ] + ipv6_dst
+-  foreach args : ping_tests_opt_fail
+-	args += [ dst ]
+-	name = 'ping ' + ' '.join(args)
+-	test(name, ping, args : args, should_fail : true)
+-  endforeach
+-endforeach
+-
+-ping_tests_user_fail = [
+-  [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root
+-]
+-foreach dst : [ '127.0.0.1' ] + ipv6_dst
+-  foreach args : ping_tests_user_fail
+-	args += [ dst ]
+-	name = 'ping ' + ' '.join(args)
+-	test(name, ping, args : args, should_fail : not run_as_root)
+-  endforeach
+-endforeach
+diff --git a/ping/test/meson.build b/ping/test/meson.build
+new file mode 100644
+index 0000000..43aed75
+--- /dev/null
++++ b/ping/test/meson.build
+@@ -0,0 +1,81 @@
++# TODO: ::1 generates DEPRECATION: ":" is not allowed in test name "ping -c1 ::1", it has been replaced with "_"
++
++# GitHub CI does not have working IPv6
++# https://github.com/actions/virtual-environments/issues/668
++ipv6_dst = []
++ipv6_switch = []
++r = run_command('ip', '-6', 'a')
++if r.stdout().strip().contains('::1')
++  message('IPv6 enabled')
++  ipv6_dst = [ '::1' ]
++  ipv6_switch = [ '-6' ]
++else
++  message('WARNING: IPv6 disabled')
++endif
++
++run_as_root = false
++r = run_command('id', '-u')
++if r.stdout().strip().to_int() == 0
++  message('running as root')
++  run_as_root = true
++else
++  message('running as normal user')
++endif
++
++foreach dst : [ 'localhost', '127.0.0.1' ] + ipv6_dst
++  foreach switch : [ '', '-4' ] + ipv6_switch
++	args = [ '-c1', dst ]
++	should_fail = false
++
++	if switch != ''
++	  args = [switch] + args
++	  if (switch == '-4' and dst == '::1') or (switch == '-6' and dst == '127.0.0.1')
++		 should_fail = true
++	  endif
++	endif
++
++	name = 'ping ' + ' '.join(args)
++	test(name, ping, args : args, should_fail : should_fail)
++  endforeach
++endforeach
++
++ping_tests_opt = [
++  [ '-c1' ],
++  [ '-c5', '-i0.1' ],
++  [ '-c1', '-I', 'lo' ],
++  [ '-c1', '-w1' ],
++  [ '-c1', '-W1' ],
++  [ '-c1', '-W1.1' ],
++]
++foreach dst : [ '127.0.0.1' ] + ipv6_dst
++  foreach args : ping_tests_opt
++	args += [ dst ]
++	name = 'ping ' + ' '.join(args)
++	test(name, ping, args : args)
++  endforeach
++endforeach
++
++ping_tests_opt_fail = [
++  [ '-c1.1' ],
++  [ '-I', 'nonexisting' ],
++  [ '-w0.1' ],
++  [ '-w0,1' ],
++]
++foreach dst : [ '127.0.0.1' ] + ipv6_dst
++  foreach args : ping_tests_opt_fail
++	args += [ dst ]
++	name = 'ping ' + ' '.join(args)
++	test(name, ping, args : args, should_fail : true)
++  endforeach
++endforeach
++
++ping_tests_user_fail = [
++  [ '-c1', '-i0.001' ], # -c1 required to quit ping when running as root
++]
++foreach dst : [ '127.0.0.1' ] + ipv6_dst
++  foreach args : ping_tests_user_fail
++	args += [ dst ]
++	name = 'ping ' + ' '.join(args)
++	test(name, ping, args : args, should_fail : not run_as_root)
++  endforeach
++endforeach
+-- 
+2.30.2
+
diff --git a/poky/meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch b/poky/meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch
index d7367ca..c61e39d 100644
--- a/poky/meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch
+++ b/poky/meta/recipes-extended/iputils/iputils/0001-rarpd-rdisc-Drop-PrivateUsers.patch
@@ -1,20 +1,20 @@
-From 6e51d529988cfc0bb357751fd767e9f1478e2b81 Mon Sep 17 00:00:00 2001
+From dfeeb3f1328d09f516edeb6349bd63e3c87f9397 Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Thu, 13 Feb 2020 06:08:45 +0000
-Subject: [PATCH] rarpd: rdisc: Drop PrivateUsers
+Subject: [PATCH] rarpd:Drop PrivateUsers
 
-Neither rarpd nor rdisc can gain the necessary capabilities with
+rarpd cannot gain the necessary capabilities with
 PrivateUsers enabled.
 
 Upstream-Status: Pending
 Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+
 ---
  systemd/rarpd.service.in | 1 -
- systemd/rdisc.service.in | 3 ++-
- 2 files changed, 2 insertions(+), 2 deletions(-)
+ 1 file changed, 1 deletion(-)
 
 diff --git a/systemd/rarpd.service.in b/systemd/rarpd.service.in
-index e600c10c93e6..f5d7621a7ce8 100644
+index e600c10..f5d7621 100644
 --- a/systemd/rarpd.service.in
 +++ b/systemd/rarpd.service.in
 @@ -12,7 +12,6 @@ AmbientCapabilities=CAP_NET_RAW
@@ -25,22 +25,3 @@
  ProtectSystem=strict
  ProtectHome=yes
  ProtectControlGroups=yes
-diff --git a/systemd/rdisc.service.in b/systemd/rdisc.service.in
-index 4e2a1ec9d0e5..a71b87d36b37 100644
---- a/systemd/rdisc.service.in
-+++ b/systemd/rdisc.service.in
-@@ -8,9 +8,10 @@ After=network.target
- EnvironmentFile=-/etc/sysconfig/rdisc
- ExecStart=@sbindir@/rdisc -f -t $OPTIONS $SEND_ADDRESS $RECEIVE_ADDRESS
- 
-+CapabilityBoundingSet=CAP_NET_RAW
- AmbientCapabilities=CAP_NET_RAW
- PrivateTmp=yes
--PrivateUsers=yes
-+DynamicUser=yes
- ProtectSystem=strict
- ProtectHome=yes
- ProtectControlGroups=yes
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-extended/iputils/iputils_20210202.bb b/poky/meta/recipes-extended/iputils/iputils_20210722.bb
similarity index 72%
rename from poky/meta/recipes-extended/iputils/iputils_20210202.bb
rename to poky/meta/recipes-extended/iputils/iputils_20210722.bb
index 02a3037..2e8d903 100644
--- a/poky/meta/recipes-extended/iputils/iputils_20210202.bb
+++ b/poky/meta/recipes-extended/iputils/iputils_20210722.bb
@@ -12,8 +12,9 @@
 
 SRC_URI = "git://github.com/iputils/iputils \
            file://0001-rarpd-rdisc-Drop-PrivateUsers.patch \
+           file://0001-meson-Make-tests-optional.patch \
            "
-SRCREV = "cc16da6b574ce6637f3e6e9ab3c1a728663006ff"
+SRCREV = "71bb2a6c72e9f658e90ac618c73d873a76bbaa81"
 
 S = "${WORKDIR}/git"
 
@@ -38,11 +39,11 @@
 
 inherit meson systemd update-alternatives
 
-EXTRA_OEMESON += "--prefix=${root_prefix}/"
+EXTRA_OEMESON += "--prefix=${root_prefix}/ -DSKIP_TESTS=true"
 
 ALTERNATIVE_PRIORITY = "100"
 
-ALTERNATIVE_${PN}-ping = "ping"
+ALTERNATIVE:${PN}-ping = "ping"
 ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
 
 SPLITPKGS = "${PN}-ping ${PN}-arping ${PN}-tracepath ${PN}-clockdiff ${PN}-rdisc \
@@ -51,21 +52,21 @@
              ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '${PN}-traceroute6 ${PN}-ninfod', '', d)}"
 PACKAGES += "${SPLITPKGS}"
 
-ALLOW_EMPTY_${PN} = "1"
-RDEPENDS_${PN} += "${SPLITPKGS}"
+ALLOW_EMPTY:${PN} = "1"
+RDEPENDS:${PN} += "${SPLITPKGS}"
 
-FILES_${PN} = ""
-FILES_${PN}-ping = "${base_bindir}/ping.${BPN}"
-FILES_${PN}-arping = "${base_bindir}/arping"
-FILES_${PN}-tracepath = "${base_bindir}/tracepath"
-FILES_${PN}-traceroute6	= "${base_bindir}/traceroute6"
-FILES_${PN}-clockdiff = "${base_bindir}/clockdiff"
-FILES_${PN}-tftpd = "${base_bindir}/tftpd ${sysconfdir}/xinetd.d/tftp"
-FILES_${PN}-rarpd = "${base_sbindir}/rarpd  ${systemd_unitdir}/system/rarpd@.service"
-FILES_${PN}-rdisc = "${base_sbindir}/rdisc"
-FILES_${PN}-ninfod = "${base_sbindir}/ninfod ${sysconfdir}/init.d/ninfod.sh"
+FILES:${PN} = ""
+FILES:${PN}-ping = "${base_bindir}/ping.${BPN}"
+FILES:${PN}-arping = "${base_bindir}/arping"
+FILES:${PN}-tracepath = "${base_bindir}/tracepath"
+FILES:${PN}-traceroute6	= "${base_bindir}/traceroute6"
+FILES:${PN}-clockdiff = "${base_bindir}/clockdiff"
+FILES:${PN}-tftpd = "${base_bindir}/tftpd ${sysconfdir}/xinetd.d/tftp"
+FILES:${PN}-rarpd = "${base_sbindir}/rarpd  ${systemd_unitdir}/system/rarpd@.service"
+FILES:${PN}-rdisc = "${base_sbindir}/rdisc"
+FILES:${PN}-ninfod = "${base_sbindir}/ninfod ${sysconfdir}/init.d/ninfod.sh"
 
 SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '${PN}-ninfod', '', d)} \
                     ${PN}-rdisc"
-SYSTEMD_SERVICE_${PN}-ninfod = "ninfod.service"
-SYSTEMD_SERVICE_${PN}-rdisc = "rdisc.service"
+SYSTEMD_SERVICE:${PN}-ninfod = "ninfod.service"
+SYSTEMD_SERVICE:${PN}-rdisc = "rdisc.service"
diff --git a/poky/meta/recipes-extended/less/less_590.bb b/poky/meta/recipes-extended/less/less_590.bb
index 82a2312..5d0d0a5 100644
--- a/poky/meta/recipes-extended/less/less_590.bb
+++ b/poky/meta/recipes-extended/less/less_590.bb
@@ -38,5 +38,5 @@
         oe_runmake 'bindir=${D}${bindir}' 'mandir=${D}${mandir}' install
 }
 
-ALTERNATIVE_${PN} = "less"
+ALTERNATIVE:${PN} = "less"
 ALTERNATIVE_PRIORITY = "100"
diff --git a/poky/meta/recipes-extended/libarchive/libarchive_3.5.1.bb b/poky/meta/recipes-extended/libarchive/libarchive_3.5.1.bb
index ebecee1..7d98e57 100644
--- a/poky/meta/recipes-extended/libarchive/libarchive_3.5.1.bb
+++ b/poky/meta/recipes-extended/libarchive/libarchive_3.5.1.bb
@@ -9,12 +9,12 @@
 
 PACKAGECONFIG ?= "zlib bz2 xz lzo zstd"
 
-PACKAGECONFIG_append_class-target = "\
+PACKAGECONFIG:append:class-target = "\
 	${@bb.utils.filter('DISTRO_FEATURES', 'acl xattr', d)} \
 "
 
 DEPENDS_BZIP2 = "bzip2-replacement-native"
-DEPENDS_BZIP2_class-target = "bzip2"
+DEPENDS_BZIP2:class-target = "bzip2"
 
 PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
 PACKAGECONFIG[xattr] = "--enable-xattr,--disable-xattr,attr,"
@@ -41,7 +41,7 @@
 CPPFLAGS += "-I${WORKDIR}/extra-includes"
 
 do_configure[cleandirs] += "${WORKDIR}/extra-includes"
-do_configure_prepend() {
+do_configure:prepend() {
 	# We just need the headers for some type constants, so no need to
 	# build all of e2fsprogs for the target
 	cp -R ${STAGING_INCDIR_NATIVE}/ext2fs ${WORKDIR}/extra-includes/
@@ -50,16 +50,16 @@
 ALTERNATIVE_PRIORITY = "80"
 
 PACKAGES =+ "bsdtar"
-FILES_bsdtar = "${bindir}/bsdtar"
+FILES:bsdtar = "${bindir}/bsdtar"
 
-ALTERNATIVE_bsdtar = "tar"
+ALTERNATIVE:bsdtar = "tar"
 ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar"
 ALTERNATIVE_TARGET[tar] = "${bindir}/bsdtar"
 
 PACKAGES =+ "bsdcpio"
-FILES_bsdcpio = "${bindir}/bsdcpio"
+FILES:bsdcpio = "${bindir}/bsdcpio"
 
-ALTERNATIVE_bsdcpio = "cpio"
+ALTERNATIVE:bsdcpio = "cpio"
 ALTERNATIVE_LINK_NAME[cpio] = "${base_bindir}/cpio"
 ALTERNATIVE_TARGET[cpio] = "${bindir}/bsdcpio"
 
diff --git a/poky/meta/recipes-extended/libidn/libidn2_2.3.1.bb b/poky/meta/recipes-extended/libidn/libidn2_2.3.1.bb
index d33d6a7..0778194 100644
--- a/poky/meta/recipes-extended/libidn/libidn2_2.3.1.bb
+++ b/poky/meta/recipes-extended/libidn/libidn2_2.3.1.bb
@@ -21,12 +21,12 @@
                  --with-libunistring-prefix=${STAGING_EXECPREFIXDIR} \
                  "
 
-do_install_append() {
+do_install:append() {
 	# Need to remove any duplicate whitespace too for reproducibility
 	sed -i -e 's|-L${STAGING_LIBDIR}||' -e 's/  */ /g' ${D}${libdir}/pkgconfig/libidn2.pc
 }
 
-LICENSE_${PN} = "(GPLv2+ | LGPLv3)"
-LICENSE_${PN}-bin = "GPLv3+"
+LICENSE:${PN} = "(GPLv2+ | LGPLv3)"
+LICENSE:${PN}-bin = "GPLv3+"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
index a1d914e..3410342 100644
--- a/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
+++ b/poky/meta/recipes-extended/libnss-nis/libnss-nis.bb
@@ -28,4 +28,4 @@
 #
 # We will skip parsing this packagegeoup for non-glibc systems
 #
-COMPATIBLE_HOST_libc-musl = 'null'
+COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb
index 0c69636..bb92507 100644
--- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb
+++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.19.bb
@@ -26,7 +26,7 @@
 
 PACKAGES =+ "${PN}-tools ${PN}ext"
 
-FILES_${PN}-tools = "${bindir}/*"
-FILES_${PN}ext = "${libdir}/${PN}ext.so.*"
+FILES:${PN}-tools = "${bindir}/*"
+FILES:${PN}ext = "${libdir}/${PN}ext.so.*"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.2.bb b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.2.bb
index b666263..45b3d2b 100644
--- a/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.2.bb
+++ b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.2.bb
@@ -18,7 +18,7 @@
 
 EXTRA_OECONF = "--disable-gssapi"
 
-do_install_append() {
+do_install:append() {
 	chown root:root ${D}${sysconfdir}/netconfig
 }
 
diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.59.bb b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.59.bb
index cf7f478..f97c591 100644
--- a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.59.bb
+++ b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.59.bb
@@ -7,10 +7,10 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=e4dac5c6ab169aa212feb5028853a579"
 
 SECTION = "net"
-RDEPENDS_${PN} = "lighttpd-module-dirlisting \
+RDEPENDS:${PN} = "lighttpd-module-dirlisting \
                   lighttpd-module-indexfile \
                   lighttpd-module-staticfile"
-RRECOMMENDS_${PN} = "lighttpd-module-access \
+RRECOMMENDS:${PN} = "lighttpd-module-access \
                      lighttpd-module-accesslog"
 
 SRC_URI = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${PV}.tar.xz \
@@ -52,9 +52,9 @@
 INITSCRIPT_NAME = "lighttpd"
 INITSCRIPT_PARAMS = "defaults 70"
 
-SYSTEMD_SERVICE_${PN} = "lighttpd.service"
+SYSTEMD_SERVICE:${PN} = "lighttpd.service"
 
-do_install_append() {
+do_install:append() {
 	install -d ${D}${sysconfdir}/init.d ${D}${sysconfdir}/lighttpd ${D}${sysconfdir}/lighttpd.d ${D}/www/pages/dav
 	install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d
 	install -m 0644 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir}/lighttpd
@@ -71,13 +71,13 @@
 	ln -sf ${localstatedir}/tmp ${D}/www/var
 }
 
-FILES_${PN} += "${sysconfdir} /www"
+FILES:${PN} += "${sysconfdir} /www"
 
-CONFFILES_${PN} = "${sysconfdir}/lighttpd/lighttpd.conf"
+CONFFILES:${PN} = "${sysconfdir}/lighttpd/lighttpd.conf"
 
 PACKAGES_DYNAMIC += "^lighttpd-module-.*"
 
-python populate_packages_prepend () {
+python populate_packages:prepend () {
     lighttpd_libdir = d.expand('${libdir}')
     do_split_packages(d, lighttpd_libdir, r'^mod_(.*)\.so$', 'lighttpd-module-%s', 'Lighttpd module for %s', extra_depends='')
 }
diff --git a/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb b/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb
index d853f7b..bca4787 100644
--- a/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb
+++ b/poky/meta/recipes-extended/logrotate/logrotate_3.18.1.bb
@@ -29,7 +29,7 @@
 PACKAGECONFIG[acl] = ",,acl"
 PACKAGECONFIG[selinux] = ",,libselinux"
 
-CONFFILES_${PN} += "${localstatedir}/lib/logrotate.status \
+CONFFILES:${PN} += "${localstatedir}/lib/logrotate.status \
                     ${sysconfdir}/logrotate.conf \
                     ${sysconfdir}/logrotate.d/btmp \
                     ${sysconfdir}/logrotate.d/wtmp"
@@ -53,7 +53,7 @@
 
 inherit autotools systemd
 
-SYSTEMD_SERVICE_${PN} = "\
+SYSTEMD_SERVICE:${PN} = "\
     ${BPN}.service \
     ${BPN}.timer \
 "
diff --git a/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb b/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb
index bafc18f..a3bcaf5 100644
--- a/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb
+++ b/poky/meta/recipes-extended/lsb/lsb-release_1.4.bb
@@ -4,7 +4,7 @@
 LICENSE = "GPLv2+"
 
 # lsb_release needs getopt
-RDEPENDS_${PN} += "${VIRTUAL-RUNTIME_getopt}"
+RDEPENDS:${PN} += "${VIRTUAL-RUNTIME_getopt}"
 
 LIC_FILES_CHKSUM = "file://README;md5=12da544b1a3a5a1795a21160b49471cf"
 
@@ -35,4 +35,4 @@
 	echo "DISTRIB_DESCRIPTION=\"${DISTRO_NAME} ${DISTRO_VERSION}\"" >> ${D}${sysconfdir}/lsb-release
 }
 
-FILES_${PN} += "${base_libdir}"
+FILES:${PN} += "${base_libdir}"
diff --git a/poky/meta/recipes-extended/ltp/ltp_20210524.bb b/poky/meta/recipes-extended/ltp/ltp_20210524.bb
index 26fd9ac..702fa62 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20210524.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20210524.bb
@@ -15,18 +15,18 @@
 "
 
 DEPENDS = "attr libaio libcap acl openssl zip-native"
-DEPENDS_append_libc-musl = " fts "
-EXTRA_OEMAKE_append_libc-musl = " LIBC=musl "
-EXTRA_OECONF_append_libc-musl = " LIBS=-lfts "
+DEPENDS:append:libc-musl = " fts "
+EXTRA_OEMAKE:append:libc-musl = " LIBC=musl "
+EXTRA_OECONF:append:libc-musl = " LIBS=-lfts "
 
 # since ltp contains x86-64 assembler which uses the frame-pointer register,
 # set -fomit-frame-pointer x86-64 to handle cases where optimisation
 # is set to -O0 or frame pointers have been enabled by -fno-omit-frame-pointer
 # earlier in CFLAGS, etc.
-CFLAGS_append_x86-64 = " -fomit-frame-pointer"
+CFLAGS:append:x86-64 = " -fomit-frame-pointer"
 
-CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__"
-CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__"
+CFLAGS:append:powerpc64 = " -D__SANE_USERSPACE_TYPES__"
+CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__"
 SRCREV = "0fb171f2beddaf64bd27597577c206c0f892b3cd"
 
 SRC_URI = "git://github.com/linux-test-project/ltp.git \
@@ -75,7 +75,7 @@
     sed -e '/^memcg_stress/d' -i ${D}${prefix}/runtest/controllers
 }
 
-RDEPENDS_${PN} = "\
+RDEPENDS:${PN} = "\
     attr \
     bash \
     bc \
@@ -105,11 +105,11 @@
     tar \
 "
 
-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"
+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
 INHIBIT_PACKAGE_STRIP_FILES = "${prefix}/testcases/bin/nm01 ${prefix}/testcases/bin/ldd01"
-INSANE_SKIP_${PN} += "already-stripped staticdev"
+INSANE_SKIP:${PN} += "already-stripped staticdev"
 
 remove_broken_musl_sources() {
 	[ "${TCLIBC}" = "musl" ] || return 0
@@ -135,4 +135,4 @@
 # exist on the running system.  For instance it has specific checks for
 # csh and ksh which are not typically part of OpenEmbedded systems (but
 # can be added via additional layers.)
-SKIP_FILEDEPS_${PN} = '1'
+SKIP_FILEDEPS:${PN} = '1'
diff --git a/poky/meta/recipes-extended/man-db/man-db_2.9.4.bb b/poky/meta/recipes-extended/man-db/man-db_2.9.4.bb
index cfa6561..c4cdbcc 100644
--- a/poky/meta/recipes-extended/man-db/man-db_2.9.4.bb
+++ b/poky/meta/recipes-extended/man-db/man-db_2.9.4.bb
@@ -11,11 +11,11 @@
 SRC_URI[sha256sum] = "b66c99edfad16ad928c889f87cf76380263c1609323c280b3a9e6963fdb16756"
 
 DEPENDS = "libpipeline gdbm groff-native base-passwd"
-RDEPENDS_${PN} += "base-passwd"
+RDEPENDS:${PN} += "base-passwd"
 PACKAGE_WRITE_DEPS += "base-passwd"
 
 # | /usr/src/debug/man-db/2.8.0-r0/man-db-2.8.0/src/whatis.c:939: undefined reference to `_nl_msg_cat_cntr'
-USE_NLS_libc-musl = "no"
+USE_NLS:libc-musl = "no"
 
 inherit gettext pkgconfig autotools systemd
 
@@ -31,17 +31,17 @@
 	fi
 }
 
-do_install_append_libc-musl() {
+do_install:append:libc-musl() {
         rm -f ${D}${libdir}/charset.alias
 }
 
-FILES_${PN} += "${prefix}/lib/tmpfiles.d"
+FILES:${PN} += "${prefix}/lib/tmpfiles.d"
 
-FILES_${PN}-dev += "${libdir}/man-db/libman.so ${libdir}/${BPN}/libmandb.so"
+FILES:${PN}-dev += "${libdir}/man-db/libman.so ${libdir}/${BPN}/libmandb.so"
 
-RDEPENDS_${PN} += "groff"
-RRECOMMENDS_${PN} += "less"
-RPROVIDES_${PN} += " man"
+RDEPENDS:${PN} += "groff"
+RRECOMMENDS:${PN} += "less"
+RPROVIDES:${PN} += " man"
 
 def compress_pkg(d):
     if bb.utils.contains("INHERIT", "compress_doc", True, False, d):
@@ -54,7 +54,7 @@
              return "xz"
     return ""
 
-RDEPENDS_${PN} += "${@compress_pkg(d)}"
+RDEPENDS:${PN} += "${@compress_pkg(d)}"
 
-SYSTEMD_SERVICE_${PN} = "man-db.timer man-db.service"
+SYSTEMD_SERVICE:${PN} = "man-db.timer man-db.service"
 SYSTEMD_AUTO_ENABLE ?= "disable"
diff --git a/poky/meta/recipes-extended/man-pages/man-pages_5.12.bb b/poky/meta/recipes-extended/man-pages/man-pages_5.12.bb
index a5b2c30..ed30103 100644
--- a/poky/meta/recipes-extended/man-pages/man-pages_5.12.bb
+++ b/poky/meta/recipes-extended/man-pages/man-pages_5.12.bb
@@ -23,14 +23,14 @@
         oe_runmake install prefix=${prefix} DESTDIR=${D}
 }
 
-# Only deliveres man-pages so FILES_${PN} gets everything
-FILES_${PN}-doc = ""
-FILES_${PN} = "${mandir}/*"
+# Only deliveres man-pages so FILES:${PN} gets everything
+FILES:${PN}-doc = ""
+FILES:${PN} = "${mandir}/*"
 
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "passwd.5 getspnam.3 crypt.3"
+ALTERNATIVE:${PN} = "passwd.5 getspnam.3 crypt.3"
 ALTERNATIVE_LINK_NAME[passwd.5] = "${mandir}/man5/passwd.5"
 ALTERNATIVE_LINK_NAME[getspnam.3] = "${mandir}/man3/getspnam.3"
 ALTERNATIVE_LINK_NAME[crypt.3] = "${mandir}/man3/crypt.3"
diff --git a/poky/meta/recipes-extended/mc/mc_4.8.26.bb b/poky/meta/recipes-extended/mc/mc_4.8.26.bb
index 5c5e679..d561967 100644
--- a/poky/meta/recipes-extended/mc/mc_4.8.26.bb
+++ b/poky/meta/recipes-extended/mc/mc_4.8.26.bb
@@ -5,8 +5,8 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=270bbafe360e73f9840bd7981621f9c2"
 SECTION = "console/utils"
 DEPENDS = "ncurses glib-2.0 util-linux"
-RDEPENDS_${PN} = "ncurses-terminfo-base"
-RRECOMMENDS_${PN} = "ncurses-terminfo"
+RDEPENDS:${PN} = "ncurses-terminfo-base"
+RRECOMMENDS:${PN} = "ncurses-terminfo"
 
 SRC_URI = "http://www.midnight-commander.org/downloads/${BPN}-${PV}.tar.bz2 \
            file://0001-mc-replace-perl-w-with-use-warnings.patch \
@@ -23,7 +23,7 @@
 PACKAGECONFIG[smb] = "--enable-vfs-smb,--disable-vfs-smb,samba,"
 PACKAGECONFIG[sftp] = "--enable-vfs-sftp,--disable-vfs-sftp,libssh2,"
 
-CFLAGS_append_libc-musl = ' -DNCURSES_WIDECHAR=1 '
+CFLAGS:append:libc-musl = ' -DNCURSES_WIDECHAR=1 '
 EXTRA_OECONF = "--with-screen=ncurses --without-gpm-mouse --without-x --disable-configure-args"
 
 CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl'"
@@ -31,7 +31,7 @@
 CACHED_CONFIGUREVARS += "ac_cv_path_GREP='/usr/bin/env grep'"
 CACHED_CONFIGUREVARS += "mc_cv_have_zipinfo=yes"
 
-do_install_append () {
+do_install:append () {
 	sed -i -e '1s,#!.*perl,#!${bindir}/env perl,' ${D}${libexecdir}/mc/extfs.d/*
         
         rm ${D}${libexecdir}/mc/extfs.d/s3+ ${D}${libexecdir}/mc/extfs.d/uc1541
@@ -39,17 +39,17 @@
 
 PACKAGES =+ "${BPN}-helpers-perl ${BPN}-helpers ${BPN}-fish"
 
-SUMMARY_${BPN}-helpers-perl = "Midnight Commander Perl-based helper scripts"
-FILES_${BPN}-helpers-perl = "${libexecdir}/mc/extfs.d/a+ ${libexecdir}/mc/extfs.d/apt+ \
+SUMMARY:${BPN}-helpers-perl = "Midnight Commander Perl-based helper scripts"
+FILES:${BPN}-helpers-perl = "${libexecdir}/mc/extfs.d/a+ ${libexecdir}/mc/extfs.d/apt+ \
                              ${libexecdir}/mc/extfs.d/deb ${libexecdir}/mc/extfs.d/deba \
                              ${libexecdir}/mc/extfs.d/debd ${libexecdir}/mc/extfs.d/dpkg+ \
                              ${libexecdir}/mc/extfs.d/mailfs ${libexecdir}/mc/extfs.d/patchfs \ 
                              ${libexecdir}/mc/extfs.d/rpms+ ${libexecdir}/mc/extfs.d/ulib \ 
                              ${libexecdir}/mc/extfs.d/uzip"
-RDEPENDS_${BPN}-helpers-perl = "perl"
+RDEPENDS:${BPN}-helpers-perl = "perl"
 
-SUMMARY_${BPN}-helpers = "Midnight Commander shell helper scripts"
-FILES_${BPN}-helpers = "${libexecdir}/mc/extfs.d/* ${libexecdir}/mc/ext.d/*"
+SUMMARY:${BPN}-helpers = "Midnight Commander shell helper scripts"
+FILES:${BPN}-helpers = "${libexecdir}/mc/extfs.d/* ${libexecdir}/mc/ext.d/*"
 
-SUMMARY_${BPN}-fish = "Midnight Commander Fish scripts"
-FILES_${BPN}-fish = "${libexecdir}/mc/fish"
+SUMMARY:${BPN}-fish = "Midnight Commander Fish scripts"
+FILES:${BPN}-fish = "${libexecdir}/mc/fish"
diff --git a/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb b/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb
index bb77759..062797a 100644
--- a/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb
+++ b/poky/meta/recipes-extended/mdadm/mdadm_4.1.bb
@@ -31,23 +31,23 @@
 
 inherit autotools-brokensep ptest systemd
 
-SYSTEMD_SERVICE_${PN} = "mdmonitor.service"
+SYSTEMD_SERVICE:${PN} = "mdmonitor.service"
 SYSTEMD_AUTO_ENABLE = "disable"
 
-CFLAGS_append_toolchain-clang = " -Wno-error=address-of-packed-member"
+CFLAGS:append:toolchain-clang = " -Wno-error=address-of-packed-member"
 
 # PPC64 and MIPS64 uses long long for u64 in the kernel, but powerpc's asm/types.h
 # prevents 64-bit userland from seeing this definition, instead defaulting
 # to u64 == long in userspace. Define __SANE_USERSPACE_TYPES__ to get
 # int-ll64.h included
-CFLAGS_append_powerpc64 = ' -D__SANE_USERSPACE_TYPES__'
-CFLAGS_append_mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__'
-CFLAGS_append_mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__'
+CFLAGS:append:powerpc64 = ' -D__SANE_USERSPACE_TYPES__'
+CFLAGS:append:mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__'
+CFLAGS:append:mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__'
 
 EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${systemd_unitdir}/system \
                 BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev"'
 
-DEBUG_OPTIMIZATION_append = " -Wno-error"
+DEBUG_OPTIMIZATION:append = " -Wno-error"
 
 do_compile() {
 	oe_runmake SYSROOT="${STAGING_DIR_TARGET}"
@@ -58,14 +58,14 @@
 	autotools_do_install
 }
 
-do_install_append() {
+do_install:append() {
         install -d ${D}/${sysconfdir}/
         install -m 644 ${S}/mdadm.conf-example ${D}${sysconfdir}/mdadm.conf
         install -d ${D}/${sysconfdir}/init.d
         install -m 755 ${WORKDIR}/mdadm.init ${D}${sysconfdir}/init.d/mdmonitor
 }
 
-do_install_append() {
+do_install:append() {
         oe_runmake install-systemd DESTDIR=${D}
 }
 
@@ -93,8 +93,8 @@
 	done
 }
 
-RDEPENDS_${PN}-ptest += "bash e2fsprogs-mke2fs"
-RRECOMMENDS_${PN}-ptest += " \
+RDEPENDS:${PN}-ptest += "bash e2fsprogs-mke2fs"
+RRECOMMENDS:${PN}-ptest += " \
     coreutils \
     util-linux \
     kernel-module-loop \
@@ -105,4 +105,4 @@
     kernel-module-raid456 \
 "
 
-FILES_${PN} += "${systemd_unitdir}/*"
+FILES:${PN} += "${systemd_unitdir}/*"
diff --git a/poky/meta/recipes-extended/mingetty/mingetty_1.08.bb b/poky/meta/recipes-extended/mingetty/mingetty_1.08.bb
index 9822e86..27feaa8 100644
--- a/poky/meta/recipes-extended/mingetty/mingetty_1.08.bb
+++ b/poky/meta/recipes-extended/mingetty/mingetty_1.08.bb
@@ -24,7 +24,7 @@
 
 inherit update-alternatives
 
-ALTERNATIVE_${PN} = "getty"
+ALTERNATIVE:${PN} = "getty"
 ALTERNATIVE_LINK_NAME[getty] = "${base_sbindir}/getty"
 ALTERNATIVE_TARGET[getty] = "${base_sbindir}/mingetty"
 ALTERNATIVE_PRIORITY = "10"
diff --git a/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb b/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb
index 12003ff..4f715cb 100644
--- a/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb
+++ b/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb
@@ -28,6 +28,6 @@
 	for d in doc extras man lib src; do make -C $d DESTDIR=${D} install; done
 }
 
-RRECOMMENDS_${PN} += "lrzsz"
+RRECOMMENDS:${PN} += "lrzsz"
 
-RDEPENDS_${PN} += "ncurses-terminfo-base"
+RDEPENDS:${PN} += "ncurses-terminfo-base"
diff --git a/poky/meta/recipes-extended/msmtp/msmtp_1.8.15.bb b/poky/meta/recipes-extended/msmtp/msmtp_1.8.15.bb
index e85873e..bb56a2e 100644
--- a/poky/meta/recipes-extended/msmtp/msmtp_1.8.15.bb
+++ b/poky/meta/recipes-extended/msmtp/msmtp_1.8.15.bb
@@ -17,9 +17,9 @@
 
 EXTRA_OECONF += "--without-libsecret --without-libgsasl --without-libidn"
 
-ALTERNATIVE_${PN} = "sendmail"
+ALTERNATIVE:${PN} = "sendmail"
 # /usr/lib/sendmial is required by LSB core test
-ALTERNATIVE_${PN}_linuxstdbase = "sendmail usr-lib-sendmail"
+ALTERNATIVE:${PN}:linuxstdbase = "sendmail usr-lib-sendmail"
 ALTERNATIVE_TARGET[sendmail] = "${bindir}/msmtp"
 ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
 ALTERNATIVE_TARGET[usr-lib-sendmail] = "${bindir}/msmtp"
diff --git a/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb b/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb
index de4a715..00caccd 100644
--- a/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb
+++ b/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb
@@ -90,8 +90,8 @@
     ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'dnsdomainname domainname hostname nisdomainname ypdomainname', '', d)} \
 "
 
-ALTERNATIVE_${PN} = "${base_sbindir_progs} ${base_bindir_progs}"
-ALTERNATIVE_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'hostname.1 dnsdomainname.1', '', d)}"
+ALTERNATIVE:${PN} = "${base_sbindir_progs} ${base_bindir_progs}"
+ALTERNATIVE:${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'hostname.1 dnsdomainname.1', '', d)}"
 ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
 ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1"
 ALTERNATIVE_PRIORITY[hostname.1] = "10"
@@ -105,16 +105,16 @@
 ALTERNATIVE_PRIORITY = "100"
 
 NETTOOLS_PACKAGES = "${PN}-mii-tool"
-NETTOOLS_PACKAGES_class-native = ""
+NETTOOLS_PACKAGES:class-native = ""
 
 PACKAGE_BEFORE_PN = "${NETTOOLS_PACKAGES}"
-RDEPENDS_${PN} += "${NETTOOLS_PACKAGES}"
+RDEPENDS:${PN} += "${NETTOOLS_PACKAGES}"
 
-FILES_${PN}-mii-tool = "${base_sbindir}/mii-tool"
+FILES:${PN}-mii-tool = "${base_sbindir}/mii-tool"
 
-ALTERNATIVE_${PN}_remove = "mii-tool"
+ALTERNATIVE:${PN}:remove = "mii-tool"
 
-ALTERNATIVE_${PN}-mii-tool = "mii-tool"
+ALTERNATIVE:${PN}-mii-tool = "mii-tool"
 ALTERNATIVE_TARGET[mii-tool] = "${base_sbindir}/mii-tool"
 ALTERNATIVE_LINK_NAME[mii-tool] = "${base_sbindir}/mii-tool"
 
diff --git a/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb b/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb
index 88b4cf4..84d327c 100644
--- a/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb
+++ b/poky/meta/recipes-extended/newt/libnewt_0.52.21.bb
@@ -39,20 +39,20 @@
 
 export CPPFLAGS
 
-PACKAGES_prepend = "whiptail ${PN}-python "
+PACKAGES:prepend = "whiptail ${PN}-python "
 
-RDEPENDS_${PN}-python += "python3-core"
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
+RDEPENDS:${PN}-python += "python3-core"
+FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*"
 
-do_configure_prepend() {
+do_configure:prepend() {
     sh autogen.sh
 }
 
-do_compile_prepend() {
+do_compile:prepend() {
     # Make sure the recompile is OK
     rm -f ${B}/.depend
 }
 
-FILES_whiptail = "${bindir}/whiptail"
+FILES:whiptail = "${bindir}/whiptail"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
index 1e63da7..b17cba4 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-base-utils.bb
@@ -13,7 +13,7 @@
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
-RDEPENDS_${PN} = "\
+RDEPENDS:${PN} = "\
     base-passwd \
     bash \
     bind-utils \
diff --git a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
index 16c2f9f..14a7bde 100644
--- a/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
+++ b/poky/meta/recipes-extended/packagegroups/packagegroup-core-full-cmdline.bb
@@ -49,13 +49,13 @@
         if mapped:
             oldtaskname = mapped.replace("packagegroup-core", "task-core")
             mapstr = " %s%s %s%s" % (mlprefix, mapped, mlprefix, oldtaskname)
-            d.appendVar("RPROVIDES_%s" % pkg, mapstr)
-            d.appendVar("RREPLACES_%s" % pkg, mapstr)
-            d.appendVar("RCONFLICTS_%s" % pkg, mapstr)
+            d.appendVar("RPROVIDES:%s" % pkg, mapstr)
+            d.appendVar("RREPLACES:%s" % pkg, mapstr)
+            d.appendVar("RCONFLICTS:%s" % pkg, mapstr)
 }
 
 
-RDEPENDS_packagegroup-core-full-cmdline = "\
+RDEPENDS:packagegroup-core-full-cmdline = "\
     packagegroup-core-full-cmdline-libs \
     packagegroup-core-full-cmdline-utils \
     packagegroup-core-full-cmdline-extended \
@@ -65,11 +65,11 @@
     packagegroup-core-full-cmdline-sys-services \
     "
 
-RDEPENDS_packagegroup-core-full-cmdline-libs = "\
+RDEPENDS:packagegroup-core-full-cmdline-libs = "\
     glib-2.0 \
     "
 
-RDEPENDS_packagegroup-core-full-cmdline-utils = "\
+RDEPENDS:packagegroup-core-full-cmdline-utils = "\
     bash \
     acl \
     attr \
@@ -99,7 +99,7 @@
     util-linux \
     "
 
-RDEPENDS_packagegroup-core-full-cmdline-extended = "\
+RDEPENDS:packagegroup-core-full-cmdline-extended = "\
     iproute2 \
     iputils \
     iptables \
@@ -107,7 +107,7 @@
     openssl \
     "
 
-RDEPENDS_packagegroup-core-full-cmdline-dev-utils = "\
+RDEPENDS:packagegroup-core-full-cmdline-dev-utils = "\
     diffutils \
     m4 \
     make \
@@ -115,7 +115,7 @@
     "
 
 VIRTUAL-RUNTIME_syslog ?= "sysklogd"
-RDEPENDS_packagegroup-core-full-cmdline-initscripts = "\
+RDEPENDS:packagegroup-core-full-cmdline-initscripts = "\
     ${VIRTUAL-RUNTIME_initscripts} \
     ${VIRTUAL-RUNTIME_init_manager} \
     ethtool \
@@ -123,7 +123,7 @@
     ${VIRTUAL-RUNTIME_syslog} \
     "
 
-RDEPENDS_packagegroup-core-full-cmdline-multiuser = "\
+RDEPENDS:packagegroup-core-full-cmdline-multiuser = "\
     bzip2 \
     cracklib \
     gzip \
@@ -131,7 +131,7 @@
     sudo \
     "
 
-RDEPENDS_packagegroup-core-full-cmdline-sys-services = "\
+RDEPENDS:packagegroup-core-full-cmdline-sys-services = "\
     at \
     cronie \
     logrotate \
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-modules-pam_namespace-Makefile.am-correctly-install-.patch b/poky/meta/recipes-extended/pam/libpam/0001-modules-pam_namespace-Makefile.am-correctly-install-.patch
new file mode 100644
index 0000000..b41d1e5
--- /dev/null
+++ b/poky/meta/recipes-extended/pam/libpam/0001-modules-pam_namespace-Makefile.am-correctly-install-.patch
@@ -0,0 +1,28 @@
+From e2db4082f6b988f1d5803028e9e47aee5f3519ac Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sun, 27 Dec 2020 00:30:45 +0100
+Subject: [PATCH] modules/pam_namespace/Makefile.am: correctly install systemd
+ unit file
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ modules/pam_namespace/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/pam_namespace/Makefile.am b/modules/pam_namespace/Makefile.am
+index 21e1b33..ddd5fc0 100644
+--- a/modules/pam_namespace/Makefile.am
++++ b/modules/pam_namespace/Makefile.am
+@@ -18,7 +18,7 @@ TESTS = $(dist_check_SCRIPTS)
+ securelibdir = $(SECUREDIR)
+ secureconfdir = $(SCONFIGDIR)
+ namespaceddir = $(SCONFIGDIR)/namespace.d
+-servicedir = $(prefix)/lib/systemd/system
++servicedir = /lib/systemd/system
+ 
+ AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \
+         -DSECURECONF_DIR=\"$(SCONFIGDIR)/\" $(WARN_CFLAGS)
+-- 
+2.24.0
+
diff --git a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
index 43db08e..9b5b1e1 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
@@ -87,10 +87,10 @@
 python populate_packages:prepend () {
     def pam_plugin_append_file(pn, dir, file):
         nf = os.path.join(dir, file)
-        of = d.getVar('FILES_' + pn)
+        of = d.getVar('FILES:' + pn)
         if of:
             nf = of + " " + nf
-        d.setVar('FILES_' + pn, nf)
+        d.setVar('FILES:' + pn, nf)
 
     def pam_plugin_hook(file, pkg, pattern, format, basename):
         pn = d.getVar('PN')
diff --git a/poky/meta/recipes-extended/parted/parted_3.4.bb b/poky/meta/recipes-extended/parted/parted_3.4.bb
index d9b3ffb..8924bdb 100644
--- a/poky/meta/recipes-extended/parted/parted_3.4.bb
+++ b/poky/meta/recipes-extended/parted/parted_3.4.bb
@@ -49,9 +49,9 @@
 	sed -e 's| ../parted||' -i $t/tests/*.sh
 }
 
-RDEPENDS_${PN}-ptest = "bash coreutils perl util-linux-losetup util-linux-mkswap python3 make gawk e2fsprogs-mke2fs e2fsprogs-tune2fs python3-core dosfstools"
-RRECOMMENDS_${PN}-ptest += "kernel-module-scsi-debug kernel-module-loop kernel-module-vfat"
-RDEPENDS_${PN}-ptest_append_libc-glibc = "\
+RDEPENDS:${PN}-ptest = "bash coreutils perl util-linux-losetup util-linux-mkswap python3 make gawk e2fsprogs-mke2fs e2fsprogs-tune2fs python3-core dosfstools"
+RRECOMMENDS:${PN}-ptest += "kernel-module-scsi-debug kernel-module-loop kernel-module-vfat"
+RDEPENDS:${PN}-ptest:append:libc-glibc = "\
         glibc-utils \
         locale-base-en-us \
         "
@@ -59,5 +59,5 @@
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "partprobe"
+ALTERNATIVE:${PN} = "partprobe"
 ALTERNATIVE_LINK_NAME[partprobe] = "${sbindir}/partprobe"
diff --git a/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb b/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb
index ed21d81..3fa89de 100644
--- a/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb
+++ b/poky/meta/recipes-extended/pbzip2/pbzip2_1.1.13.bb
@@ -9,7 +9,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=398b8832c6f840cfebd20ab2be6a3743"
 
 DEPENDS = "bzip2"
-DEPENDS_append_class-native = " bzip2-replacement-native"
+DEPENDS:append:class-native = " bzip2-replacement-native"
 
 SRC_URI = "https://launchpad.net/${BPN}/1.1/${PV}/+download/${BP}.tar.gz \
            file://0001-pbzip2-Fix-invalid-suffix-on-literal-C-11-warning.patch \
diff --git a/poky/meta/recipes-extended/perl/libconvert-asn1-perl_0.27.bb b/poky/meta/recipes-extended/perl/libconvert-asn1-perl_0.27.bb
index 409a8f3..cdc43b5 100644
--- a/poky/meta/recipes-extended/perl/libconvert-asn1-perl_0.27.bb
+++ b/poky/meta/recipes-extended/perl/libconvert-asn1-perl_0.27.bb
@@ -16,7 +16,7 @@
 
 EXTRA_PERLFLAGS = "-I ${PERLHOSTLIB}"
 
-RDEPENDS_${PN} += "perl-module-exporter perl-module-constant perl-module-encode perl-module-encode-encoding perl-module-utf8 perl-module-socket perl-module-time-local perl-module-posix"
-RDEPENDS_${PN}-ptest += "perl-module-math-bigint perl-module-io-socket perl-module-data-dumper perl-module-math-bigint-calc"
+RDEPENDS:${PN} += "perl-module-exporter perl-module-constant perl-module-encode perl-module-encode-encoding perl-module-utf8 perl-module-socket perl-module-time-local perl-module-posix"
+RDEPENDS:${PN}-ptest += "perl-module-math-bigint perl-module-io-socket perl-module-data-dumper perl-module-math-bigint-calc"
 
 BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-extended/perl/libtimedate-perl_2.30.bb b/poky/meta/recipes-extended/perl/libtimedate-perl_2.30.bb
index 46843bf..7c5e990 100644
--- a/poky/meta/recipes-extended/perl/libtimedate-perl_2.30.bb
+++ b/poky/meta/recipes-extended/perl/libtimedate-perl_2.30.bb
@@ -14,8 +14,8 @@
 
 BBCLASSEXTEND = "native"
 
-RDEPENDS_${PN} += "perl-module-carp perl-module-exporter perl-module-strict perl-module-time-local"
-RDEPENDS_${PN}-ptest += "perl-module-test-more perl-module-utf8"
+RDEPENDS:${PN} += "perl-module-carp perl-module-exporter perl-module-strict perl-module-time-local"
+RDEPENDS:${PN}-ptest += "perl-module-test-more perl-module-utf8"
 
 SRC_URI[md5sum] = "b1d91153ac971347aee84292ed886c1c"
 SRC_URI[sha256sum] = "75bd254871cb5853a6aa0403ac0be270cdd75c9d1b6639f18ecba63c15298e86"
diff --git a/poky/meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb b/poky/meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb
index 57c407e..03bf0b6 100644
--- a/poky/meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb
+++ b/poky/meta/recipes-extended/perl/libxml-namespacesupport-perl_1.12.bb
@@ -21,7 +21,7 @@
 
 inherit cpan ptest-perl
 
-RDEPENDS_${PN}-ptest += "perl-module-test-more"
+RDEPENDS:${PN}-ptest += "perl-module-test-more"
 
 BBCLASSEXTEND="native nativesdk"
 
diff --git a/poky/meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb b/poky/meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb
index 2bff65a..790ff51 100644
--- a/poky/meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb
+++ b/poky/meta/recipes-extended/perl/libxml-sax-base-perl_1.09.bb
@@ -8,7 +8,7 @@
 
 SECTION = "libs"
 LICENSE = "Artistic-1.0 | GPL-1.0+"
-RDEPENDS_${PN} += "perl-module-extutils-makemaker"
+RDEPENDS:${PN} += "perl-module-extutils-makemaker"
 
 LIC_FILES_CHKSUM = "file://dist.ini;endline=5;md5=8f9c9a55340aefaee6e9704c88466446"
 
@@ -21,6 +21,6 @@
 
 inherit cpan ptest-perl
 
-RDEPENDS_${PN}-ptest += "perl-module-test perl-module-test-more"
+RDEPENDS:${PN}-ptest += "perl-module-test perl-module-test-more"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb b/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
index 02ee34e..9aa6fd0 100644
--- a/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
+++ b/poky/meta/recipes-extended/perl/libxml-sax-perl_1.02.bb
@@ -11,7 +11,7 @@
 SECTION = "libs"
 LICENSE = "Artistic-1.0 | GPL-1.0+"
 DEPENDS += "libxml-namespacesupport-perl-native"
-RDEPENDS_${PN} += "libxml-namespacesupport-perl libxml-sax-base-perl perl-module-file-temp"
+RDEPENDS:${PN} += "libxml-namespacesupport-perl libxml-sax-base-perl perl-module-file-temp"
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=65c4cd8f39c24c7135ed70dacbcb09e3"
 
@@ -29,9 +29,9 @@
 	chown -R root:root ${D}${PTEST_PATH}/testfiles
 }
 
-RDEPENDS_${PN} += "perl-module-encode perl-module-perlio"
+RDEPENDS:${PN} += "perl-module-encode perl-module-perlio"
 
-RDEPENDS_${PN}-ptest += " \
+RDEPENDS:${PN}-ptest += " \
     perl-module-base  \
     perl-module-encode-byte \
     perl-module-encode-unicode \
diff --git a/poky/meta/recipes-extended/pigz/pigz_2.6.bb b/poky/meta/recipes-extended/pigz/pigz_2.6.bb
index 05be9b7..3566e18 100644
--- a/poky/meta/recipes-extended/pigz/pigz_2.6.bb
+++ b/poky/meta/recipes-extended/pigz/pigz_2.6.bb
@@ -10,7 +10,7 @@
 
 SRC_URI = "http://zlib.net/${BPN}/fossils/${BP}.tar.gz"
 SRC_URI[sha256sum] = "2eed7b0d7449d1d70903f2a62cd6005d262eb3a8c9e98687bc8cbb5809db2a7d"
-PROVIDES_class-native += "gzip-native"
+PROVIDES:class-native += "gzip-native"
 
 # Point this at the homepage in case /fossils/ isn't updated
 UPSTREAM_CHECK_URI = "http://zlib.net/${BPN}/"
@@ -30,7 +30,7 @@
 	ln -nsf pigz ${D}${base_bindir}/pigzcat
 }
 
-do_install_append_class-native() {
+do_install:append:class-native() {
 	install -d ${D}${bindir}
 	install ${B}/pigz ${D}${bindir}/gzip
 	ln -nsf gzip ${D}${bindir}/gunzip
@@ -38,8 +38,8 @@
 }
 
 ALTERNATIVE_PRIORITY = "110"
-ALTERNATIVE_${PN} = "gunzip gzip zcat"
-ALTERNATIVE_${PN}_class-nativesdk = ""
+ALTERNATIVE:${PN} = "gunzip gzip zcat"
+ALTERNATIVE:${PN}:class-nativesdk = ""
 ALTERNATIVE_LINK_NAME[gunzip] = "${base_bindir}/gunzip"
 ALTERNATIVE_LINK_NAME[gzip] = "${base_bindir}/gzip"
 ALTERNATIVE_LINK_NAME[zcat] = "${base_bindir}/zcat"
diff --git a/poky/meta/recipes-extended/procps/procps_3.3.17.bb b/poky/meta/recipes-extended/procps/procps_3.3.17.bb
index c74a901..64a2d15 100644
--- a/poky/meta/recipes-extended/procps/procps_3.3.17.bb
+++ b/poky/meta/recipes-extended/procps/procps_3.3.17.bb
@@ -24,7 +24,7 @@
 # Upstream has a custom autogen.sh which invokes po/update-potfiles as they
 # don't ship a po/POTFILES.in (which is silly).  Without that file gettext
 # doesn't believe po/ is a gettext directory and won't generate po/Makefile.
-do_configure_prepend() {
+do_configure:prepend() {
     ( cd ${S} && po/update-potfiles )
 }
 
@@ -33,7 +33,7 @@
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
 PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd"
 
-do_install_append () {
+do_install:append () {
 	install -d ${D}${base_bindir}
 	[ "${bindir}" != "${base_bindir}" ] && for i in ${base_bindir_progs}; do mv ${D}${bindir}/$i ${D}${base_bindir}/$i; done
 	install -d ${D}${base_sbindir}
@@ -50,7 +50,7 @@
         fi
 }
 
-CONFFILES_${PN} = "${sysconfdir}/sysctl.conf"
+CONFFILES:${PN} = "${sysconfdir}/sysctl.conf"
 
 bindir_progs = "free pkill pmap pgrep pwdx skill snice top uptime w"
 base_bindir_progs += "kill pidof ps watch"
@@ -59,9 +59,9 @@
 ALTERNATIVE_PRIORITY = "200"
 ALTERNATIVE_PRIORITY[pidof] = "150"
 
-ALTERNATIVE_${PN} = "${bindir_progs} ${base_bindir_progs} ${base_sbindir_progs}"
+ALTERNATIVE:${PN} = "${bindir_progs} ${base_bindir_progs} ${base_sbindir_progs}"
 
-ALTERNATIVE_${PN}-doc = "kill.1 uptime.1"
+ALTERNATIVE:${PN}-doc = "kill.1 uptime.1"
 ALTERNATIVE_LINK_NAME[kill.1] = "${mandir}/man1/kill.1"
 ALTERNATIVE_LINK_NAME[uptime.1] = "${mandir}/man1/uptime.1"
 
@@ -82,22 +82,22 @@
                    ${PN}-sysctl"
 
 PACKAGE_BEFORE_PN = "${PROCPS_PACKAGES}"
-RDEPENDS_${PN} += "${PROCPS_PACKAGES}"
+RDEPENDS:${PN} += "${PROCPS_PACKAGES}"
 
-RDEPENDS_${PN}-ps += "${PN}-lib"
-RDEPENDS_${PN}-sysctl += "${PN}-lib"
+RDEPENDS:${PN}-ps += "${PN}-lib"
+RDEPENDS:${PN}-sysctl += "${PN}-lib"
 
-FILES_${PN}-lib = "${libdir}"
-FILES_${PN}-ps = "${base_bindir}/ps.${BPN}"
-FILES_${PN}-sysctl = "${base_sbindir}/sysctl.${BPN} ${sysconfdir}/sysctl.conf ${sysconfdir}/sysctl.d"
+FILES:${PN}-lib = "${libdir}"
+FILES:${PN}-ps = "${base_bindir}/ps.${BPN}"
+FILES:${PN}-sysctl = "${base_sbindir}/sysctl.${BPN} ${sysconfdir}/sysctl.conf ${sysconfdir}/sysctl.d"
 
-ALTERNATIVE_${PN}_remove = "ps"
-ALTERNATIVE_${PN}_remove = "sysctl"
+ALTERNATIVE:${PN}:remove = "ps"
+ALTERNATIVE:${PN}:remove = "sysctl"
 
-ALTERNATIVE_${PN}-ps = "ps"
+ALTERNATIVE:${PN}-ps = "ps"
 ALTERNATIVE_TARGET[ps] = "${base_bindir}/ps"
 ALTERNATIVE_LINK_NAME[ps] = "${base_bindir}/ps"
 
-ALTERNATIVE_${PN}-sysctl = "sysctl"
+ALTERNATIVE:${PN}-sysctl = "sysctl"
 ALTERNATIVE_TARGET[sysctl] = "${base_sbindir}/sysctl"
 ALTERNATIVE_LINK_NAME[sysctl] = "${base_sbindir}/sysctl"
\ No newline at end of file
diff --git a/poky/meta/recipes-extended/psmisc/psmisc.inc b/poky/meta/recipes-extended/psmisc/psmisc.inc
index 6ab1288..ad6263e 100644
--- a/poky/meta/recipes-extended/psmisc/psmisc.inc
+++ b/poky/meta/recipes-extended/psmisc/psmisc.inc
@@ -19,7 +19,7 @@
 # Upstream has a custom autogen.sh which invokes po/update-potfiles as they 
 # don't ship a po/POTFILES.in (which is silly).  Without that file gettext 
 # doesn't believe po/ is a gettext directory and won't generate po/Makefile.
-do_configure_prepend() {
+do_configure:prepend() {
     ( cd ${S} && po/update-potfiles )
 }
 
@@ -27,30 +27,30 @@
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
 PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
 
-ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY:${PN} = "1"
 
 PACKAGES =+ "fuser fuser-doc killall killall-doc pstree pstree-doc"
 PACKAGES += "psmisc-extras"
 
-FILES_${PN} = ""
-RDEPENDS_${PN} = "fuser killall pstree"
+FILES:${PN} = ""
+RDEPENDS:${PN} = "fuser killall pstree"
 
-FILES_fuser = "${bindir}/fuser.${BPN}"
-FILES_fuser-doc = "${mandir}/man1/fuser*"
+FILES:fuser = "${bindir}/fuser.${BPN}"
+FILES:fuser-doc = "${mandir}/man1/fuser*"
 
-FILES_killall = "${bindir}/killall.${BPN}"
-FILES_killall-doc = "${mandir}/man1/killall*"
+FILES:killall = "${bindir}/killall.${BPN}"
+FILES:killall-doc = "${mandir}/man1/killall*"
 
-FILES_pstree = "${bindir}/pstree"
-FILES_pstree-doc = "${mandir}/man1/pstree*"
+FILES:pstree = "${bindir}/pstree"
+FILES:pstree-doc = "${mandir}/man1/pstree*"
 
-FILES_psmisc-extras = "${bindir}"
-FILES_psmisc-extras-doc = "${mandir}"
+FILES:psmisc-extras = "${bindir}"
+FILES:psmisc-extras-doc = "${mandir}"
 
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "90"
 
-ALTERNATIVE_killall = "killall"
+ALTERNATIVE:killall = "killall"
 
-ALTERNATIVE_fuser = "fuser"
+ALTERNATIVE:fuser = "fuser"
diff --git a/poky/meta/recipes-extended/quota/quota_4.06.bb b/poky/meta/recipes-extended/quota/quota_4.06.bb
index 027b081..5115cb3 100644
--- a/poky/meta/recipes-extended/quota/quota_4.06.bb
+++ b/poky/meta/recipes-extended/quota/quota_4.06.bb
@@ -27,7 +27,7 @@
 ASNEEDED = ""
 
 PACKAGECONFIG ??= "tcp-wrappers rpc bsd"
-PACKAGECONFIG_libc-musl = "tcp-wrappers rpc"
+PACKAGECONFIG:libc-musl = "tcp-wrappers rpc"
 
 PACKAGECONFIG[tcp-wrappers] = "--enable-libwrap,--disable-libwrap,tcp-wrappers"
 PACKAGECONFIG[rpc] = "--enable-rpc,--disable-rpc,libtirpc"
diff --git a/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb b/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
index b02638b..e58214d 100644
--- a/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
+++ b/poky/meta/recipes-extended/rpcbind/rpcbind_1.2.6.bb
@@ -26,12 +26,12 @@
 INITSCRIPT_NAME = "rpcbind"
 INITSCRIPT_PARAMS = "start 12 2 3 4 5 . stop 60 0 1 6 ."
 
-SYSTEMD_SERVICE_${PN} = "rpcbind.service rpcbind.socket"
+SYSTEMD_SERVICE:${PN} = "rpcbind.service rpcbind.socket"
 
 inherit useradd
 
 USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --home-dir / \
+USERADD_PARAM:${PN} = "--system --no-create-home --home-dir / \
                        --shell /bin/false --user-group rpc"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
@@ -42,7 +42,7 @@
 
 EXTRA_OECONF += " --enable-warmstarts --with-rpcuser=rpc"
 
-do_install_append () {
+do_install:append () {
 	install -d ${D}${sysconfdir}/init.d
 	sed -e 's,/etc/,${sysconfdir}/,g' \
 		-e 's,/sbin/,${sbindir}/,g' \
@@ -50,5 +50,5 @@
 	chmod 0755 ${D}${sysconfdir}/init.d/rpcbind
 }
 
-ALTERNATIVE_${PN} = "rpcinfo"
+ALTERNATIVE:${PN} = "rpcinfo"
 ALTERNATIVE_LINK_NAME[rpcinfo] = "${bindir}/rpcinfo"
diff --git a/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb b/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
index 5aff2b5..678632a 100644
--- a/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
+++ b/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
@@ -27,13 +27,13 @@
 
 inherit autotools gettext
 
-EXTRA_OEMAKE_class-native = " -C rpcgen"
+EXTRA_OEMAKE:class-native = " -C rpcgen"
 
-do_configure_prepend() {
+do_configure:prepend() {
 	touch ${S}/ABOUT-NLS
 }
 
-do_install_append() {
+do_install:append() {
 	# They come from quota recipe
 	rm -rf ${D}${includedir}/rpcsvc/rquota.[hx]
 }
diff --git a/poky/meta/recipes-extended/screen/screen_4.8.0.bb b/poky/meta/recipes-extended/screen/screen_4.8.0.bb
index fe640c2..6d307d5 100644
--- a/poky/meta/recipes-extended/screen/screen_4.8.0.bb
+++ b/poky/meta/recipes-extended/screen/screen_4.8.0.bb
@@ -14,7 +14,7 @@
 
 DEPENDS = "ncurses virtual/crypt \
           ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-RDEPENDS_${PN} = "base-files"
+RDEPENDS:${PN} = "base-files"
 
 SRC_URI = "${GNU_MIRROR}/screen/screen-${PV}.tar.gz \
            ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://screen.pam', '', d)} \
@@ -35,17 +35,17 @@
 EXTRA_OECONF = "--with-pty-mode=0620 --with-pty-group=5 --with-sys-screenrc=${sysconfdir}/screenrc \
                ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--enable-pam', '--disable-pam', d)}"
 
-do_install_append () {
+do_install:append () {
 	install -D -m 644 ${S}/etc/etcscreenrc ${D}/${sysconfdir}/screenrc
 	if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
 		install -D -m 644 ${WORKDIR}/screen.pam ${D}/${sysconfdir}/pam.d/screen
 	fi
 }
 
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
 	grep -q "^${bindir}/screen$" $D${sysconfdir}/shells || echo ${bindir}/screen >> $D${sysconfdir}/shells
 }
 
-pkg_postrm_${PN} () {
+pkg_postrm:${PN} () {
 	printf "$(grep -v "^${bindir}/screen$" $D${sysconfdir}/shells)\n" > $D${sysconfdir}/shells
 }
diff --git a/poky/meta/recipes-extended/sed/sed_4.8.bb b/poky/meta/recipes-extended/sed/sed_4.8.bb
index 57a769e..1f68214 100644
--- a/poky/meta/recipes-extended/sed/sed_4.8.bb
+++ b/poky/meta/recipes-extended/sed/sed_4.8.bb
@@ -18,8 +18,8 @@
 
 PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
 
-RDEPENDS_${PN}-ptest += "make gawk perl perl-module-filehandle perl-module-file-compare perl-module-file-find perl-module-file-temp perl-module-file-stat"
-RRECOMMENDS_${PN}-ptest_append_libc-glibc = " locale-base-ru-ru locale-base-en-us locale-base-el-gr.iso-8859-7"
+RDEPENDS:${PN}-ptest += "make gawk perl perl-module-filehandle perl-module-file-compare perl-module-file-find perl-module-file-temp perl-module-file-stat"
+RRECOMMENDS:${PN}-ptest:append:libc-glibc = " locale-base-ru-ru locale-base-en-us locale-base-el-gr.iso-8859-7"
 
 EXTRA_OECONF = "--disable-acl \
                "
@@ -33,7 +33,7 @@
 	fi
 }
 
-ALTERNATIVE_${PN} = "sed"
+ALTERNATIVE:${PN} = "sed"
 ALTERNATIVE_LINK_NAME[sed] = "${base_bindir}/sed"
 ALTERNATIVE_PRIORITY = "100"
 
@@ -63,6 +63,6 @@
 	    -i ${D}${PTEST_PATH}/Makefile
 }
 
-RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sed', '', d)}"
+RPROVIDES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sed', '', d)}"
 
 BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch b/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
index ab317b9..95728bc 100644
--- a/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
+++ b/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
@@ -1,4 +1,4 @@
-From fa2d9453656641002802d8165e80adb9e6a729d2 Mon Sep 17 00:00:00 2001
+From 30a3906a0a21120fa6bbc918b6258ab9303fbeaa Mon Sep 17 00:00:00 2001
 From: Scott Garman <scott.a.garman@intel.com>
 Date: Thu, 14 Apr 2016 12:28:57 +0200
 Subject: [PATCH] Disable use of syslog for sysroot
@@ -19,12 +19,12 @@
  src/groupmems.c | 3 +++
  src/groupmod.c  | 3 +++
  src/useradd.c   | 3 +++
- src/userdel.c   | 3 +++
+ src/userdel.c   | 4 ++++
  src/usermod.c   | 3 +++
- 7 files changed, 21 insertions(+)
+ 7 files changed, 22 insertions(+)
 
 diff --git a/src/groupadd.c b/src/groupadd.c
-index 2dd8eec..e9c4bb7 100644
+index d7f68b1..5fe5f43 100644
 --- a/src/groupadd.c
 +++ b/src/groupadd.c
 @@ -34,6 +34,9 @@
@@ -38,7 +38,7 @@
  #include <fcntl.h>
  #include <getopt.h>
 diff --git a/src/groupdel.c b/src/groupdel.c
-index f941a84..5a70056 100644
+index 5c89312..2aefc5a 100644
 --- a/src/groupdel.c
 +++ b/src/groupdel.c
 @@ -34,6 +34,9 @@
@@ -52,7 +52,7 @@
  #include <fcntl.h>
  #include <grp.h>
 diff --git a/src/groupmems.c b/src/groupmems.c
-index fc91c8b..2842514 100644
+index 654a8f3..6b2026b 100644
 --- a/src/groupmems.c
 +++ b/src/groupmems.c
 @@ -32,6 +32,9 @@
@@ -66,7 +66,7 @@
  #include <getopt.h>
  #include <grp.h>
 diff --git a/src/groupmod.c b/src/groupmod.c
-index 1dca5fc..bc14438 100644
+index acd6f35..a2c5247 100644
 --- a/src/groupmod.c
 +++ b/src/groupmod.c
 @@ -34,6 +34,9 @@
@@ -80,7 +80,7 @@
  #include <fcntl.h>
  #include <getopt.h>
 diff --git a/src/useradd.c b/src/useradd.c
-index 4af0f7c..1b7bf06 100644
+index 127177e..b80e505 100644
 --- a/src/useradd.c
 +++ b/src/useradd.c
 @@ -34,6 +34,9 @@
@@ -94,21 +94,22 @@
  #include <ctype.h>
  #include <errno.h>
 diff --git a/src/userdel.c b/src/userdel.c
-index cc951e5..153e0be 100644
+index 79a7c89..c1e010a 100644
 --- a/src/userdel.c
 +++ b/src/userdel.c
-@@ -34,6 +34,9 @@
+@@ -31,6 +31,10 @@
+  */
  
- #ident "$Id$"
- 
+ #include <config.h>
++
 +/* Disable use of syslog since we're running this command against a sysroot */
 +#undef USE_SYSLOG
 +
  #include <assert.h>
+ #include <dirent.h>
  #include <errno.h>
- #include <fcntl.h>
 diff --git a/src/usermod.c b/src/usermod.c
-index 05b9871..21c6da9 100644
+index 03bb9b9..e15fdd4 100644
 --- a/src/usermod.c
 +++ b/src/usermod.c
 @@ -34,6 +34,9 @@
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Fix-out-of-tree-builds-with-respect-to-libsubid-incl.patch b/poky/meta/recipes-extended/shadow/files/0001-Fix-out-of-tree-builds-with-respect-to-libsubid-incl.patch
new file mode 100644
index 0000000..c577be6
--- /dev/null
+++ b/poky/meta/recipes-extended/shadow/files/0001-Fix-out-of-tree-builds-with-respect-to-libsubid-incl.patch
@@ -0,0 +1,114 @@
+From eced8077b57946fe0b723e7c6c510e8f344ce89b Mon Sep 17 00:00:00 2001
+From: Serge Hallyn <serge@hallyn.com>
+Date: Fri, 23 Jul 2021 17:51:13 -0500
+Subject: [PATCH] Fix out of tree builds with respect to libsubid includes
+
+There's a better way to do this, and I hope to clean that up,
+but this fixes out of tree builds for me right now.
+
+Closes #386
+
+Signed-off-by: Serge Hallyn <serge@hallyn.com>
+Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/537b8cd90be7b47b45c45cfd27765ef85eb0ebf1]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ lib/Makefile.am      | 2 ++
+ libmisc/Makefile.am  | 2 +-
+ libsubid/Makefile.am | 4 ++--
+ src/Makefile.am      | 6 ++++++
+ 4 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index ecf3ee25..5ac2e111 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -10,6 +10,8 @@ if HAVE_VENDORDIR
+ libshadow_la_CPPFLAGS += -DVENDORDIR=\"$(VENDORDIR)\"
+ endif
+ 
++libshadow_la_CPPFLAGS += -I$(top_srcdir)
++
+ libshadow_la_SOURCES = \
+ 	commonio.c \
+ 	commonio.h \
+diff --git a/libmisc/Makefile.am b/libmisc/Makefile.am
+index 9766a7ec..9f237e0d 100644
+--- a/libmisc/Makefile.am
++++ b/libmisc/Makefile.am
+@@ -1,7 +1,7 @@
+ 
+ EXTRA_DIST = .indent.pro xgetXXbyYY.c
+ 
+-AM_CPPFLAGS = -I$(top_srcdir)/lib $(ECONF_CPPFLAGS)
++AM_CPPFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir) $(ECONF_CPPFLAGS)
+ 
+ noinst_LTLIBRARIES = libmisc.la
+ 
+diff --git a/libsubid/Makefile.am b/libsubid/Makefile.am
+index 189165b0..cdc41fe6 100644
+--- a/libsubid/Makefile.am
++++ b/libsubid/Makefile.am
+@@ -19,8 +19,8 @@ MISCLIBS = \
+ 	$(LIBTCB)
+ 
+ libsubid_la_LIBADD = \
+-	$(top_srcdir)/lib/libshadow.la \
+-	$(top_srcdir)/libmisc/libmisc.la \
++	$(top_builddir)/lib/libshadow.la \
++	$(top_builddir)/libmisc/libmisc.la \
+ 	$(MISCLIBS) -ldl
+ 
+ AM_CPPFLAGS = \
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 35027013..7c1a3491 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -10,6 +10,7 @@ sgidperms = 2755
+ AM_CPPFLAGS = \
+ 	-I${top_srcdir}/lib \
+ 	-I$(top_srcdir)/libmisc \
++	-I$(top_srcdir) \
+ 	-DLOCALEDIR=\"$(datadir)/locale\"
+ 
+ # XXX why are login and su in /bin anyway (other than for
+@@ -183,6 +184,7 @@ list_subid_ranges_LDADD = \
+ list_subid_ranges_CPPFLAGS = \
+ 	-I$(top_srcdir)/lib \
+ 	-I$(top_srcdir)/libmisc \
++	-I$(top_srcdir) \
+ 	-I$(top_srcdir)/libsubid
+ 
+ get_subid_owners_LDADD = \
+@@ -194,11 +196,13 @@ get_subid_owners_LDADD = \
+ get_subid_owners_CPPFLAGS = \
+ 	-I$(top_srcdir)/lib \
+ 	-I$(top_srcdir)/libmisc \
++	-I$(top_srcdir) \
+ 	-I$(top_srcdir)/libsubid
+ 
+ new_subid_range_CPPFLAGS = \
+ 	-I$(top_srcdir)/lib \
+ 	-I$(top_srcdir)/libmisc \
++	-I$(top_srcdir) \
+ 	-I$(top_srcdir)/libsubid
+ 
+ new_subid_range_LDADD = \
+@@ -210,6 +214,7 @@ new_subid_range_LDADD = \
+ free_subid_range_CPPFLAGS = \
+ 	-I$(top_srcdir)/lib \
+ 	-I$(top_srcdir)/libmisc \
++	-I$(top_srcdir) \
+ 	-I$(top_srcdir)/libsubid
+ 
+ free_subid_range_LDADD = \
+@@ -220,6 +225,7 @@ free_subid_range_LDADD = \
+ 
+ check_subid_range_CPPFLAGS = \
+ 	-I$(top_srcdir)/lib \
++	-I$(top_srcdir) \
+ 	-I$(top_srcdir)/libmisc
+ 
+ check_subid_range_LDADD = \
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-extended/shadow/files/0001-libsubid-link-to-PAM-libraries.patch b/poky/meta/recipes-extended/shadow/files/0001-libsubid-link-to-PAM-libraries.patch
new file mode 100644
index 0000000..ea7a99d
--- /dev/null
+++ b/poky/meta/recipes-extended/shadow/files/0001-libsubid-link-to-PAM-libraries.patch
@@ -0,0 +1,31 @@
+From 4f44617af3a0c59be267ac5fcc33586e3783f5e6 Mon Sep 17 00:00:00 2001
+From: Xi Ruoyao <xry111@mengyan1223.wang>
+Date: Fri, 23 Jul 2021 14:38:08 +0800
+Subject: [PATCH] libsubid: link to PAM libraries
+
+libsubid.so links to libmisc.a, which contains several routines referring to
+PAM functions.
+
+Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/f4a84efb468b8be21be124700ce35159c444e9d6]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ libsubid/Makefile.am | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/libsubid/Makefile.am b/libsubid/Makefile.am
+index cdc41fe6..99308c1f 100644
+--- a/libsubid/Makefile.am
++++ b/libsubid/Makefile.am
+@@ -16,7 +16,8 @@ MISCLIBS = \
+ 	$(LIBCRYPT) \
+ 	$(LIBACL) \
+ 	$(LIBATTR) \
+-	$(LIBTCB)
++	$(LIBTCB) \
++	$(LIBPAM)
+ 
+ libsubid_la_LIBADD = \
+ 	$(top_builddir)/lib/libshadow.la \
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-extended/shadow/files/0002-Allow-for-setting-password-in-clear-text.patch b/poky/meta/recipes-extended/shadow/files/0002-Allow-for-setting-password-in-clear-text.patch
deleted file mode 100644
index c6332e4..0000000
--- a/poky/meta/recipes-extended/shadow/files/0002-Allow-for-setting-password-in-clear-text.patch
+++ /dev/null
@@ -1,301 +0,0 @@
-From a7d995228491ad5255ad86c1f04ba071f6880897 Mon Sep 17 00:00:00 2001
-From: Chen Qi <Qi.Chen@windriver.com>
-Date: Sat, 16 Nov 2013 15:27:47 +0800
-Subject: [PATCH] Allow for setting password in clear text
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
----
- src/Makefile.am |  8 ++++----
- src/groupadd.c  | 20 +++++++++++++++-----
- src/groupmod.c  | 20 +++++++++++++++-----
- src/useradd.c   | 21 +++++++++++++++------
- src/usermod.c   | 20 +++++++++++++++-----
- 5 files changed, 64 insertions(+), 25 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index f31fd7a..4a317a3 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -103,10 +103,10 @@ chsh_LDADD     = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT_NOPAM)
- chpasswd_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF)
- expiry_LDADD = $(LDADD) $(LIBECONF)
- gpasswd_LDADD  = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBCRYPT) $(LIBECONF)
--groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
-+groupadd_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF) $(LIBCRYPT)
- groupdel_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
- groupmems_LDADD = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
--groupmod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
-+groupmod_LDADD = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF) $(LIBCRYPT)
- grpck_LDADD    = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
- grpconv_LDADD  = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
- grpunconv_LDADD = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
-@@ -127,9 +127,9 @@ su_SOURCES     = \
- 	suauth.c
- su_LDADD       = $(LDADD) $(LIBPAM) $(LIBAUDIT) $(LIBCRYPT_NOPAM) $(LIBSKEY) $(LIBMD) $(LIBECONF)
- sulogin_LDADD  = $(LDADD) $(LIBCRYPT) $(LIBECONF)
--useradd_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF)
-+useradd_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF) $(LIBCRYPT)
- userdel_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBECONF)
--usermod_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF)
-+usermod_LDADD  = $(LDADD) $(LIBPAM_SUID) $(LIBAUDIT) $(LIBSELINUX) $(LIBSEMANAGE) $(LIBACL) $(LIBATTR) $(LIBECONF) $(LIBCRYPT)
- vipw_LDADD     = $(LDADD) $(LIBAUDIT) $(LIBSELINUX) $(LIBECONF)
- 
- install-am: all-am
-diff --git a/src/groupadd.c b/src/groupadd.c
-index e9c4bb7..d572c00 100644
---- a/src/groupadd.c
-+++ b/src/groupadd.c
-@@ -127,9 +127,10 @@ static /*@noreturn@*/void usage (int status)
- 	(void) fputs (_("  -o, --non-unique              allow to create groups with duplicate\n"
- 	                "                                (non-unique) GID\n"), usageout);
- 	(void) fputs (_("  -p, --password PASSWORD       use this encrypted password for the new group\n"), usageout);
-+	(void) fputs (_("  -P, --clear-password PASSWORD use this clear password for the new group\n"), usageout);
- 	(void) fputs (_("  -r, --system                  create a system account\n"), usageout);
- 	(void) fputs (_("  -R, --root CHROOT_DIR         directory to chroot into\n"), usageout);
--	(void) fputs (_("  -P, --prefix PREFIX_DIR       directory prefix\n"), usageout);
-+	(void) fputs (_("  -A, --prefix PREFIX_DIR       directory prefix\n"), usageout);
- 	(void) fputs ("\n", usageout);
- 	exit (status);
- }
-@@ -391,13 +392,14 @@ static void process_flags (int argc, char **argv)
- 		{"key",        required_argument, NULL, 'K'},
- 		{"non-unique", no_argument,       NULL, 'o'},
- 		{"password",   required_argument, NULL, 'p'},
-+		{"clear-password", required_argument, NULL, 'P'},
- 		{"system",     no_argument,       NULL, 'r'},
- 		{"root",       required_argument, NULL, 'R'},
--		{"prefix",     required_argument, NULL, 'P'},
-+		{"prefix",     required_argument, NULL, 'A'},
- 		{NULL, 0, NULL, '\0'}
- 	};
- 
--	while ((c = getopt_long (argc, argv, "fg:hK:op:rR:P:",
-+	while ((c = getopt_long (argc, argv, "fg:hK:op:P:rR:A:",
- 		                 long_options, NULL)) != -1) {
- 		switch (c) {
- 		case 'f':
-@@ -449,12 +451,20 @@ static void process_flags (int argc, char **argv)
- 			pflg = true;
- 			group_passwd = optarg;
- 			break;
-+		case 'P':
-+			pflg = true;
-+			group_passwd = pw_encrypt (optarg, crypt_make_salt (NULL, NULL));
-+			break;
- 		case 'r':
- 			rflg = true;
- 			break;
- 		case 'R': /* no-op, handled in process_root_flag () */
- 			break;
--		case 'P': /* no-op, handled in process_prefix_flag () */
-+		case 'A': /* no-op, handled in process_prefix_flag () */
-+			fprintf (stderr,
-+				 _("%s: -A is deliberately not supported \n"),
-+				 Prog);
-+			exit (E_BAD_ARG);
- 			break;
- 		default:
- 			usage (E_USAGE);
-@@ -588,7 +598,7 @@ int main (int argc, char **argv)
- 	(void) textdomain (PACKAGE);
- 
- 	process_root_flag ("-R", argc, argv);
--	prefix = process_prefix_flag ("-P", argc, argv);
-+	prefix = process_prefix_flag ("-A", argc, argv);
- 
- 	OPENLOG ("groupadd");
- #ifdef WITH_AUDIT
-diff --git a/src/groupmod.c b/src/groupmod.c
-index bc14438..25ccb44 100644
---- a/src/groupmod.c
-+++ b/src/groupmod.c
-@@ -138,8 +138,9 @@ static void usage (int status)
- 	(void) fputs (_("  -o, --non-unique              allow to use a duplicate (non-unique) GID\n"), usageout);
- 	(void) fputs (_("  -p, --password PASSWORD       change the password to this (encrypted)\n"
- 	                "                                PASSWORD\n"), usageout);
-+	(void) fputs (_("  -P, --clear-password PASSWORD change the password to this clear PASSWORD\n"), usageout);
- 	(void) fputs (_("  -R, --root CHROOT_DIR         directory to chroot into\n"), usageout);
--	(void) fputs (_("  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files\n"), usageout);
-+	(void) fputs (_("  -A, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files\n"), usageout);
- 	(void) fputs ("\n", usageout);
- 	exit (status);
- }
-@@ -387,11 +388,12 @@ static void process_flags (int argc, char **argv)
- 		{"new-name",   required_argument, NULL, 'n'},
- 		{"non-unique", no_argument,       NULL, 'o'},
- 		{"password",   required_argument, NULL, 'p'},
-+		{"clear-password", required_argument, NULL, 'P'},
- 		{"root",       required_argument, NULL, 'R'},
--		{"prefix",     required_argument, NULL, 'P'},
-+		{"prefix",     required_argument, NULL, 'A'},
- 		{NULL, 0, NULL, '\0'}
- 	};
--	while ((c = getopt_long (argc, argv, "g:hn:op:R:P:",
-+	while ((c = getopt_long (argc, argv, "g:hn:op:P:R:A:",
- 		                 long_options, NULL)) != -1) {
- 		switch (c) {
- 		case 'g':
-@@ -418,9 +420,17 @@ static void process_flags (int argc, char **argv)
- 			group_passwd = optarg;
- 			pflg = true;
- 			break;
-+		case 'P':
-+			group_passwd = pw_encrypt (optarg, crypt_make_salt (NULL, NULL));
-+			pflg = true;
-+			break;
- 		case 'R': /* no-op, handled in process_root_flag () */
- 			break;
--		case 'P': /* no-op, handled in process_prefix_flag () */
-+		case 'A': /* no-op, handled in process_prefix_flag () */
-+			fprintf (stderr,
-+				 _("%s: -A is deliberately not supported \n"),
-+				 Prog);
-+			exit (E_BAD_ARG);
- 			break;
- 		default:
- 			usage (E_USAGE);
-@@ -761,7 +771,7 @@ int main (int argc, char **argv)
- 	(void) textdomain (PACKAGE);
- 
- 	process_root_flag ("-R", argc, argv);
--	prefix = process_prefix_flag ("-P", argc, argv);
-+	prefix = process_prefix_flag ("-A", argc, argv);
- 
- 	OPENLOG ("groupmod");
- #ifdef WITH_AUDIT
-diff --git a/src/useradd.c b/src/useradd.c
-index 1b7bf06..44f09e2 100644
---- a/src/useradd.c
-+++ b/src/useradd.c
-@@ -853,9 +853,10 @@ static void usage (int status)
- 	(void) fputs (_("  -o, --non-unique              allow to create users with duplicate\n"
- 	                "                                (non-unique) UID\n"), usageout);
- 	(void) fputs (_("  -p, --password PASSWORD       encrypted password of the new account\n"), usageout);
-+	(void) fputs (_("  -P, --clear-password PASSWORD clear password of the new account\n"), usageout);
- 	(void) fputs (_("  -r, --system                  create a system account\n"), usageout);
- 	(void) fputs (_("  -R, --root CHROOT_DIR         directory to chroot into\n"), usageout);
--	(void) fputs (_("  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files\n"), usageout);
-+	(void) fputs (_("  -A, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files\n"), usageout);
- 	(void) fputs (_("  -s, --shell SHELL             login shell of the new account\n"), usageout);
- 	(void) fputs (_("  -u, --uid UID                 user ID of the new account\n"), usageout);
- 	(void) fputs (_("  -U, --user-group              create a group with the same name as the user\n"), usageout);
-@@ -1133,9 +1134,10 @@ static void process_flags (int argc, char **argv)
- 			{"no-user-group",  no_argument,       NULL, 'N'},
- 			{"non-unique",     no_argument,       NULL, 'o'},
- 			{"password",       required_argument, NULL, 'p'},
-+			{"clear-password", required_argument, NULL, 'P'},
- 			{"system",         no_argument,       NULL, 'r'},
- 			{"root",           required_argument, NULL, 'R'},
--			{"prefix",         required_argument, NULL, 'P'},
-+			{"prefix",         required_argument, NULL, 'A'},
- 			{"shell",          required_argument, NULL, 's'},
- 			{"uid",            required_argument, NULL, 'u'},
- 			{"user-group",     no_argument,       NULL, 'U'},
-@@ -1146,9 +1148,9 @@ static void process_flags (int argc, char **argv)
- 		};
- 		while ((c = getopt_long (argc, argv,
- #ifdef WITH_SELINUX
--		                         "b:c:d:De:f:g:G:hk:K:lmMNop:rR:P:s:u:UZ:",
-+		                         "b:c:d:De:f:g:G:hk:K:lmMNop:P:rR:A:s:u:UZ:",
- #else				/* !WITH_SELINUX */
--		                         "b:c:d:De:f:g:G:hk:K:lmMNop:rR:P:s:u:U",
-+		                         "b:c:d:De:f:g:G:hk:K:lmMNop:P:rR:A:s:u:U",
- #endif				/* !WITH_SELINUX */
- 		                         long_options, NULL)) != -1) {
- 			switch (c) {
-@@ -1320,12 +1322,19 @@ static void process_flags (int argc, char **argv)
- 				}
- 				user_pass = optarg;
- 				break;
-+			case 'P': /* set clear text password */
-+				user_pass = pw_encrypt (optarg, crypt_make_salt (NULL, NULL));
-+				break;
- 			case 'r':
- 				rflg = true;
- 				break;
- 			case 'R': /* no-op, handled in process_root_flag () */
- 				break;
--			case 'P': /* no-op, handled in process_prefix_flag () */
-+			case 'A': /* no-op, handled in process_prefix_flag () */
-+				fprintf (stderr,
-+					 _("%s: -A is deliberately not supported \n"),
-+					 Prog);
-+				exit (E_BAD_ARG);
- 				break;
- 			case 's':
- 				if (   ( !VALID (optarg) )
-@@ -2257,7 +2266,7 @@ int main (int argc, char **argv)
- 
- 	process_root_flag ("-R", argc, argv);
- 
--	prefix = process_prefix_flag("-P", argc, argv);
-+	prefix = process_prefix_flag("-A", argc, argv);
- 
- 	OPENLOG ("useradd");
- #ifdef WITH_AUDIT
-diff --git a/src/usermod.c b/src/usermod.c
-index 21c6da9..cffdb3e 100644
---- a/src/usermod.c
-+++ b/src/usermod.c
-@@ -431,8 +431,9 @@ static /*@noreturn@*/void usage (int status)
- 	                "                                new location (use only with -d)\n"), usageout);
- 	(void) fputs (_("  -o, --non-unique              allow using duplicate (non-unique) UID\n"), usageout);
- 	(void) fputs (_("  -p, --password PASSWORD       use encrypted password for the new password\n"), usageout);
-+	(void) fputs (_("  -P, --clear-password PASSWORD use clear password for the new password\n"), usageout);
- 	(void) fputs (_("  -R, --root CHROOT_DIR         directory to chroot into\n"), usageout);
--	(void) fputs (_("  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files\n"), usageout);
-+	(void) fputs (_("  -A, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files\n"), usageout);
- 	(void) fputs (_("  -s, --shell SHELL             new login shell for the user account\n"), usageout);
- 	(void) fputs (_("  -u, --uid UID                 new UID for the user account\n"), usageout);
- 	(void) fputs (_("  -U, --unlock                  unlock the user account\n"), usageout);
-@@ -1010,8 +1011,9 @@ static void process_flags (int argc, char **argv)
- 			{"move-home",    no_argument,       NULL, 'm'},
- 			{"non-unique",   no_argument,       NULL, 'o'},
- 			{"password",     required_argument, NULL, 'p'},
-+			{"clear-password", required_argument, NULL, 'P'},
- 			{"root",         required_argument, NULL, 'R'},
--			{"prefix",       required_argument, NULL, 'P'},
-+			{"prefix",       required_argument, NULL, 'A'},
- 			{"shell",        required_argument, NULL, 's'},
- 			{"uid",          required_argument, NULL, 'u'},
- 			{"unlock",       no_argument,       NULL, 'U'},
-@@ -1027,7 +1029,7 @@ static void process_flags (int argc, char **argv)
- 			{NULL, 0, NULL, '\0'}
- 		};
- 		while ((c = getopt_long (argc, argv,
--		                         "abc:d:e:f:g:G:hl:Lmop:R:s:u:UP:"
-+		                         "abc:d:e:f:g:G:hl:Lmop:P:R:s:u:UA:"
- #ifdef ENABLE_SUBIDS
- 		                         "v:w:V:W:"
- #endif				/* ENABLE_SUBIDS */
-@@ -1130,9 +1132,17 @@ static void process_flags (int argc, char **argv)
- 				user_pass = optarg;
- 				pflg = true;
- 				break;
-+			case 'P':
-+				user_pass = pw_encrypt (optarg, crypt_make_salt (NULL, NULL));
-+				pflg = true;
-+				break;
- 			case 'R': /* no-op, handled in process_root_flag () */
- 				break;
--			case 'P': /* no-op, handled in process_prefix_flag () */
-+			case 'A': /* no-op, handled in process_prefix_flag () */
-+				fprintf (stderr,
-+					 _("%s: -A is deliberately not supported \n"),
-+					 Prog);
-+				exit (E_BAD_ARG);
- 				break;
- 			case 's':
- 				if (!VALID (optarg)) {
-@@ -2127,7 +2137,7 @@ int main (int argc, char **argv)
- 	(void) textdomain (PACKAGE);
- 
- 	process_root_flag ("-R", argc, argv);
--	prefix = process_prefix_flag ("-P", argc, argv);
-+	prefix = process_prefix_flag ("-A", argc, argv);
- 
- 	OPENLOG ("usermod");
- #ifdef WITH_AUDIT
diff --git a/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch b/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
index 9825216..bd24626 100644
--- a/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
+++ b/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
@@ -1,4 +1,4 @@
-From 66533c7c6f347d257020675a1ed6e0c59cbbc3f0 Mon Sep 17 00:00:00 2001
+From 1422c24f7266b553c82100e3d18a10c55cd91063 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Thu, 17 Jul 2014 15:53:34 +0800
 Subject: [PATCH] commonio.c-fix-unexpected-open-failure-in-chroot-env
@@ -21,10 +21,10 @@
  1 file changed, 12 insertions(+), 4 deletions(-)
 
 diff --git a/lib/commonio.c b/lib/commonio.c
-index 16fa7e7..d6bc297 100644
+index cef404b..66908fb 100644
 --- a/lib/commonio.c
 +++ b/lib/commonio.c
-@@ -632,10 +632,18 @@ int commonio_open (struct commonio_db *db, int mode)
+@@ -646,10 +646,18 @@ int commonio_open (struct commonio_db *db, int mode)
  	db->cursor = NULL;
  	db->changed = false;
  
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index 2cbdfbc..2834509 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -10,28 +10,28 @@
 DEPENDS = "virtual/crypt"
 
 UPSTREAM_CHECK_URI = "https://github.com/shadow-maint/shadow/releases"
-SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/${PV}/${BP}.tar.gz \
+SRC_URI = "https://github.com/shadow-maint/shadow/releases/download/v${PV}/${BP}.tar.gz \
            file://shadow-4.1.3-dots-in-usernames.patch \
            ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
            file://shadow-relaxed-usernames.patch \
+           file://0001-Fix-out-of-tree-builds-with-respect-to-libsubid-incl.patch \
+           file://0001-libsubid-link-to-PAM-libraries.patch \
            "
 
-SRC_URI_append_class-target = " \
+SRC_URI:append:class-target = " \
            file://login_defs_pam.sed \
            file://shadow-update-pam-conf.patch \
            "
 
-SRC_URI_append_class-native = " \
+SRC_URI:append:class-native = " \
            file://0001-Disable-use-of-syslog-for-sysroot.patch \
-           file://0002-Allow-for-setting-password-in-clear-text.patch \
            file://commonio.c-fix-unexpected-open-failure-in-chroot-env.patch \
            "
-SRC_URI_append_class-nativesdk = " \
+SRC_URI:append:class-nativesdk = " \
            file://0001-Disable-use-of-syslog-for-sysroot.patch \
            "
 
-SRC_URI[md5sum] = "3d97f11e66bfb0b14702b115fa8be480"
-SRC_URI[sha256sum] = "3ee3081fbbcbcfea5c8916419e46bc724807bab271072104f23e7a29e9668f3a"
+SRC_URI[sha256sum] = "6c4627ff9c9422b96664517ae753c944f2902e92809d0698b65f5fef11985212"
 
 # Additional Policy files for PAM
 PAM_SRC_URI = "file://pam.d/chfn \
@@ -55,9 +55,9 @@
                  ${NSCDOPT}"
 
 NSCDOPT = ""
-NSCDOPT_class-native = "--without-nscd"
-NSCDOPT_class-nativesdk = "--without-nscd"
-NSCDOPT_libc-glibc = "--with-nscd"
+NSCDOPT:class-native = "--without-nscd"
+NSCDOPT:class-nativesdk = "--without-nscd"
+NSCDOPT:libc-glibc = "--with-nscd"
 
 PAM_PLUGINS = "libpam-runtime \
                pam-plugin-faildelay \
@@ -72,21 +72,21 @@
                pam-plugin-shells \
                pam-plugin-rootok"
 
-PAM_PLUGINS_remove_libc-musl = "pam-plugin-lastlog"
+PAM_PLUGINS:remove:libc-musl = "pam-plugin-lastlog"
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
-PACKAGECONFIG_class-native ??= "${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
-PACKAGECONFIG_class-nativesdk = ""
+PACKAGECONFIG:class-native ??= "${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
+PACKAGECONFIG:class-nativesdk = ""
 PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam,${PAM_PLUGINS}"
 PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
 PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
 
-RDEPENDS_${PN} = "shadow-securetty \
+RDEPENDS:${PN} = "shadow-securetty \
                   base-passwd \
                   util-linux-sulogin"
-RDEPENDS_${PN}_class-native = ""
-RDEPENDS_${PN}_class-nativesdk = ""
+RDEPENDS:${PN}:class-native = ""
+RDEPENDS:${PN}:class-nativesdk = ""
 
 do_install() {
 	oe_runmake DESTDIR="${D}" sbindir="${base_sbindir}" usbindir="${sbindir}" install
@@ -115,15 +115,9 @@
 	# Use proper encryption for passwords
 	sed -i 's/^#ENCRYPT_METHOD.*$/ENCRYPT_METHOD SHA512/' ${D}${sysconfdir}/login.defs
 
-	# Now we don't have a mail system. Disable mail creation for now.
-	sed -i 's:/bin/bash:/bin/sh:g' ${D}${sysconfdir}/default/useradd
-	sed -i '/^CREATE_MAIL_SPOOL/ s:^:#:' ${D}${sysconfdir}/default/useradd
-
-	# Use users group by default
-	sed -i 's,^GROUP=1000,GROUP=100,g' ${D}${sysconfdir}/default/useradd
 }
 
-do_install_append() {
+do_install:append() {
 	# Ensure that the image has as a /var/spool/mail dir so shadow can
 	# put mailboxes there if the user reconfigures shadow to its
 	# defaults (see sed below).
@@ -156,7 +150,7 @@
 }
 
 PACKAGES =+ "${PN}-base"
-FILES_${PN}-base = "\
+FILES:${PN}-base = "\
     ${base_bindir}/login.shadow \
     ${base_bindir}/su.shadow \
     ${bindir}/sg \
@@ -166,13 +160,13 @@
     ${sysconfdir}/pam.d/su \
     ${sysconfdir}/login.defs \
 "
-RDEPENDS_${PN} += "${PN}-base"
+RDEPENDS:${PN} += "${PN}-base"
 
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "200"
 
-ALTERNATIVE_${PN} = "passwd chfn chsh chpasswd vipw vigr nologin"
+ALTERNATIVE:${PN} = "passwd chfn chsh chpasswd vipw vigr nologin"
 ALTERNATIVE_LINK_NAME[chfn] = "${bindir}/chfn"
 ALTERNATIVE_LINK_NAME[chsh] = "${bindir}/chsh"
 ALTERNATIVE_LINK_NAME[chpasswd] = "${sbindir}/chpasswd"
@@ -180,19 +174,12 @@
 ALTERNATIVE_LINK_NAME[vigr] = "${base_sbindir}/vigr"
 ALTERNATIVE_LINK_NAME[nologin] = "${base_sbindir}/nologin"
 
-ALTERNATIVE_${PN}-base = "newgrp groups login su"
+ALTERNATIVE:${PN}-base = "newgrp groups login su"
 ALTERNATIVE_LINK_NAME[login] = "${base_bindir}/login"
 ALTERNATIVE_LINK_NAME[su] = "${base_bindir}/su"
 
-ALTERNATIVE_${PN}-doc = "passwd.5 getspnam.3 groups.1 su.1 nologin.8"
-ALTERNATIVE_LINK_NAME[passwd.5] = "${mandir}/man5/passwd.5"
-ALTERNATIVE_LINK_NAME[getspnam.3] = "${mandir}/man3/getspnam.3"
-ALTERNATIVE_LINK_NAME[groups.1] = "${mandir}/man1/groups.1"
-ALTERNATIVE_LINK_NAME[su.1] = "${mandir}/man1/su.1"
-ALTERNATIVE_LINK_NAME[nologin.8] = "${mandir}/man8/nologin.8"
-
 PACKAGE_WRITE_DEPS += "shadow-native"
-pkg_postinst_${PN}_class-target () {
+pkg_postinst:${PN}:class-target () {
 	if [ "x$D" != "x" ]; then
 	  rootarg="--root $D"
 	else
diff --git a/poky/meta/recipes-extended/shadow/shadow_4.8.1.bb b/poky/meta/recipes-extended/shadow/shadow_4.9.bb
similarity index 84%
rename from poky/meta/recipes-extended/shadow/shadow_4.8.1.bb
rename to poky/meta/recipes-extended/shadow/shadow_4.9.bb
index ff4aad9..2fbd81b 100644
--- a/poky/meta/recipes-extended/shadow/shadow_4.8.1.bb
+++ b/poky/meta/recipes-extended/shadow/shadow_4.9.bb
@@ -2,7 +2,7 @@
 
 # Build falsely assumes that if --enable-libpam is set, we don't need to link against
 # libcrypt. This breaks chsh.
-BUILD_LDFLAGS_append_class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-lcrypt', '', d)}"
+BUILD_LDFLAGS:append:class-target = " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-lcrypt', '', d)}"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-extended/slang/slang_2.3.2.bb b/poky/meta/recipes-extended/slang/slang_2.3.2.bb
index 99efb16..81d152f 100644
--- a/poky/meta/recipes-extended/slang/slang_2.3.2.bb
+++ b/poky/meta/recipes-extended/slang/slang_2.3.2.bb
@@ -27,7 +27,7 @@
 SRC_URI[sha256sum] = "fc9e3b0fc4f67c3c1f6d43c90c16a5c42d117b8e28457c5b46831b8b5d3ae31a"
 
 UPSTREAM_CHECK_URI = "http://www.jedsoft.org/releases/slang/"
-PREMIRRORS_append = "\n http://www.jedsoft.org/releases/slang/.* http://www.jedsoft.org/releases/slang/old/ \n"
+PREMIRRORS:append = "\n http://www.jedsoft.org/releases/slang/.* http://www.jedsoft.org/releases/slang/old/ \n"
 
 inherit autotools-brokensep ptest
 CLEANBROKEN = "1"
@@ -42,7 +42,7 @@
 PACKAGECONFIG[png] = "--with-png=${STAGING_DIR_HOST}${prefix},--without-png,libpng"
 PACKAGECONFIG[zlib] = "--with-z=${STAGING_DIR_HOST}${prefix},--without-z,zlib"
 
-do_configure_prepend() {
+do_configure:prepend() {
     cd ${S}/autoconf
     # slang keeps configure.ac and rest of autoconf files in autoconf/ directory
     # we have to go there to be able to run gnu-configize cause it expects configure.{in,ac}
@@ -74,9 +74,9 @@
 	sed -i 's/\.\.\/\.\.\/doc\/text\/slangfun\.txt/slangfun\.txt/' ${D}${PTEST_PATH}/test/docfun.sl
 }
 
-FILES_${PN} += "${libdir}/${BPN}/v2/modules/ ${datadir}/slsh/"
+FILES:${PN} += "${libdir}/${BPN}/v2/modules/ ${datadir}/slsh/"
 
-RDEPENDS_${PN}-ptest += "make"
+RDEPENDS:${PN}-ptest += "make"
 
 PARALLEL_MAKE = ""
 PARALLEL_MAKEINST = ""
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Detemine-minimal-stack-size-via-sysconf-then-PTHREAD.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Detemine-minimal-stack-size-via-sysconf-then-PTHREAD.patch
new file mode 100644
index 0000000..d275e3d
--- /dev/null
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng/0001-Detemine-minimal-stack-size-via-sysconf-then-PTHREAD.patch
@@ -0,0 +1,103 @@
+From f839de283c44ffe46a2d14bfdf854c145abd8ed6 Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Mon, 19 Jul 2021 20:49:34 +0100
+Subject: [PATCH] Detemine minimal stack size via sysconf, then PTHREAD_STACK_MIN then guess
+
+Don't rely on PTHREAD_STACK_MIN being defined, use sysconf, then
+PTHREAD_STACK_MIN if it is defined, then 8K default.
+
+Upstream-Status: Backport [https://kernel.ubuntu.com/git/cking/stress-ng.git/commit/?id=f839de283c44ffe46a2d14bfdf854c145abd8ed6]
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+---
+ core-helper.c    | 31 +++++++++++++++++++++++++++++++
+ stress-ng.h      |  1 +
+ stress-pthread.c | 13 ++-----------
+ 3 files changed, 34 insertions(+), 11 deletions(-)
+
+diff --git a/core-helper.c b/core-helper.c
+index 508627f2..97a3b869 100644
+--- a/core-helper.c
++++ b/core-helper.c
+@@ -2494,6 +2494,37 @@ size_t stress_min_sig_stack_size(void)
+ 	return (size_t)sz;
+ }
+
++size_t stress_min_pthread_stack_size(void)
++{
++	static long sz = -1, min;
++
++	/* return cached copy */
++	if (sz > 0)
++		return sz;
++
++	min = stress_min_aux_sig_stack_size();
++#if defined(__SC_THREAD_STACK_MIN_VALUE)
++	sz = sysconf(__SC_THREAD_STACK_MIN_VALUE);
++	if (sz > min)
++		min = sz;
++#endif
++#if defined(_SC_THREAD_STACK_MIN_VALUE)
++	sz = sysconf(_SC_THREAD_STACK_MIN_VALUE);
++	if (sz > min)
++		min = sz;
++#endif
++#if defined(PTHREAD_STACK_MIN)
++	if (PTHREAD_STACK_MIN > min)
++		min = PTHREAD_STACK_MIN;
++#endif
++	if (8192 > min)
++		min = 8192;
++
++	sz = min;
++
++	return (size_t)sz;
++}
++
+ /*
+  *  stress_sig_handler_exit()
+  *	signal handler that exits a process via _exit(0) for
+diff --git a/stress-ng.h b/stress-ng.h
+index 8a8b17ae..cd744756 100644
+--- a/stress-ng.h
++++ b/stress-ng.h
+@@ -4056,6 +4056,7 @@ extern WARN_UNUSED int32_t  stress_get_opt_ionice_class(const char *const str);
+ /* Misc helper funcs */
+ extern WARN_UNUSED size_t stress_sig_stack_size(void);
+ extern WARN_UNUSED size_t stress_min_sig_stack_size(void);
++extern WARN_UNUSED size_t stress_min_pthread_stack_size(void);
+
+ #define STRESS_SIGSTKSZ		(stress_sig_stack_size())
+ #define STRESS_MINSIGSTKSZ	(stress_min_sig_stack_size())
+diff --git a/stress-pthread.c b/stress-pthread.c
+index 0da3aeec..27777af8 100644
+--- a/stress-pthread.c
++++ b/stress-pthread.c
+@@ -69,12 +69,7 @@ static const stress_opt_set_func_t opt_set_funcs[] = {
+
+ #if defined(HAVE_LIB_PTHREAD)
+
+-/* Some systems such as GNU/HURD don't define PTHREAD_STACK_MIN */
+-#if !defined(PTHREAD_STACK_MIN)
+-#define PTHREAD_STACK_MIN		(16 * KB)
+-#endif
+-
+-#define DEFAULT_STACK_MIN		(16 * KB)
++#define DEFAULT_STACK_MIN		(8 * KB)
+
+ #if defined(HAVE_GET_ROBUST_LIST) &&	\
+     defined(HAVE_LINUX_FUTEX_H)
+@@ -404,11 +399,7 @@ static int stress_pthread(const stress_args_t *args)
+ 	stress_pthread_args_t pargs = { args, NULL, 0 };
+ 	sigset_t set;
+ #if defined(HAVE_PTHREAD_ATTR_SETSTACK)
+-#if DEFAULT_STACK_MIN == PTHREAD_STACK_MIN
+-	const size_t stack_size = PTHREAD_STACK_MIN;
+-#else
+-	const size_t stack_size = STRESS_MAXIMUM(DEFAULT_STACK_MIN, PTHREAD_STACK_MIN);
+-#endif
++	const size_t stack_size = STRESS_MAXIMUM(DEFAULT_STACK_MIN, stress_min_pthread_stack_size());
+ #endif
+
+ 	keep_running_flag = true;
+--
+2.32.0
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch b/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch
deleted file mode 100644
index dba4494..0000000
--- a/poky/meta/recipes-extended/stress-ng/stress-ng/no_daddr_t.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 55e11765af2bdc8adfac87dab1fb2682f7e6c236 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 9 Jun 2020 22:10:28 -0700
-Subject: [PATCH] Define daddr_t if __DADDR_T_TYPE is not defined
-
-glibc defined daddr_t but musl does not, ideally it should not be used
-and simple int type is enough. However, its better to leave glibc behavior
-as it is and only define it to int if daddr_t is not provided by libc
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- stress-ng.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/stress-ng.h b/stress-ng.h
-index 1a66293..802dc25 100644
---- a/stress-ng.h
-+++ b/stress-ng.h
-@@ -3763,6 +3763,10 @@ struct shim_statx {
- 	uint64_t __spare2[14];
- };
- 
-+#ifndef __DADDR_T_TYPE
-+typedef int daddr_t;
-+#endif
-+
- /* old ustat struct */
- struct shim_ustat {
- #if defined(HAVE_DADDR_T)
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.12.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.12.bb
index 97eaa75..afc9ddf 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.12.bb
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.12.bb
@@ -7,16 +7,16 @@
 
 SRC_URI = "https://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \
            file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \
-           file://no_daddr_t.patch \
+           file://0001-Detemine-minimal-stack-size-via-sysconf-then-PTHREAD.patch \
            "
 SRC_URI[sha256sum] = "f27af50f6f2308e707fef927674bdd209a046b116734281b792aeca35a4e4499"
 
 DEPENDS = "coreutils-native"
 
 PROVIDES = "stress"
-RPROVIDES_${PN} = "stress"
-RREPLACES_${PN} = "stress"
-RCONFLICTS_${PN} = "stress"
+RPROVIDES:${PN} = "stress"
+RREPLACES:${PN} = "stress"
+RCONFLICTS:${PN} = "stress"
 
 inherit bash-completion
 
@@ -24,4 +24,3 @@
     oe_runmake DESTDIR=${D} install
     ln -s stress-ng ${D}${bindir}/stress
 }
-
diff --git a/poky/meta/recipes-extended/sudo/sudo.inc b/poky/meta/recipes-extended/sudo/sudo.inc
index 0bea35a..f109672 100644
--- a/poky/meta/recipes-extended/sudo/sudo.inc
+++ b/poky/meta/recipes-extended/sudo/sudo.inc
@@ -24,14 +24,14 @@
 PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib"
 PACKAGECONFIG[pam-wheel] = ",,,pam-plugin-wheel"
 
-CONFFILES_${PN} = "${sysconfdir}/sudoers"
+CONFFILES:${PN} = "${sysconfdir}/sudoers"
 
 EXTRA_OECONF = "--with-editor=${base_bindir}/vi --with-env-editor"
 
-EXTRA_OECONF_append_libc-musl = " --disable-hardening "
+EXTRA_OECONF:append:libc-musl = " --disable-hardening "
 
 # mksigname/mksiglist are used on build host to generate source files
-do_compile_prepend () {
+do_compile:prepend () {
 	# Remove build host references from sudo_usage.h
 	sed -i  \
 	    -e 's,--with-libtool-sysroot=${STAGING_DIR_TARGET},,g' \
@@ -46,7 +46,7 @@
 # script (from sudo) will recursively create ${localstatedir}/lib/sudo
 # and then chmod each directory with 0700 permissions, which isn't what
 # we want (i.e, users would not be able to access /var/lib).
-do_install_prepend (){
+do_install:prepend (){
 	mkdir -p ${D}/${localstatedir}/lib
 }
 
diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb
index aba6f4a..8d47c01 100644
--- a/poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb
+++ b/poky/meta/recipes-extended/sudo/sudo_1.9.7p1.bb
@@ -10,7 +10,7 @@
 SRC_URI[sha256sum] = "391431f454e55121b60c6ded0fcf30ddb80d623d7d16a6d1907cfa6a0b91d8cf"
 
 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)}"
+RDEPENDS:${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}"
 
 CACHED_CONFIGUREVARS = " \
         ac_cv_type_rsize_t=no \
@@ -28,7 +28,7 @@
              --libexecdir=${libdir} \
              "
 
-do_install_append () {
+do_install:append () {
 	if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
 		install -D -m 644 ${WORKDIR}/sudo.pam ${D}/${sysconfdir}/pam.d/sudo
 		if ${@bb.utils.contains('PACKAGECONFIG', 'pam-wheel', 'true', 'false', d)} ; then
@@ -44,7 +44,7 @@
 	rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo
 }
 
-FILES_${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV} ${libdir}/${BPN}/*.la \
+FILES:${PN}-dev += "${libdir}/${BPN}/lib*${SOLIBSDEV} ${libdir}/${BPN}/*.la \
                     ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la"
 
 SUDO_PACKAGES = "${PN}-sudo\
@@ -52,8 +52,8 @@
 
 PACKAGE_BEFORE_PN = "${SUDO_PACKAGES}"
 
-RDEPENDS_${PN}-sudo = "${PN}-lib"
-RDEPENDS_${PN} += "${SUDO_PACKAGES}"
+RDEPENDS:${PN}-sudo = "${PN}-lib"
+RDEPENDS:${PN} += "${SUDO_PACKAGES}"
 
-FILES_${PN}-sudo = "${bindir}/sudo ${bindir}/sudoedit"
-FILES_${PN}-lib = "${localstatedir} ${libexecdir} ${sysconfdir} ${libdir} ${nonarch_libdir}"
+FILES:${PN}-sudo = "${bindir}/sudo ${bindir}/sudoedit"
+FILES:${PN}-lib = "${localstatedir} ${libexecdir} ${sysconfdir} ${libdir} ${nonarch_libdir}"
diff --git a/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb b/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb
index be34ec7..eca531d 100644
--- a/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb
+++ b/poky/meta/recipes-extended/sysklogd/sysklogd_2.2.3.bb
@@ -20,7 +20,7 @@
 
 EXTRA_OECONF = "--with-systemd=${systemd_system_unitdir} --without-logger"
 
-do_install_append () {
+do_install:append () {
        install -d ${D}${sysconfdir}
        install -m 644 ${S}/syslog.conf ${D}${sysconfdir}/syslog.conf
        install -d ${D}${sysconfdir}/init.d
@@ -28,21 +28,21 @@
 }
 
 SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "syslogd.service"
+SYSTEMD_SERVICE:${PN} = "syslogd.service"
 SYSTEMD_AUTO_ENABLE = "enable"
 
 INITSCRIPT_NAME = "syslog"
-CONFFILES_${PN} = "${sysconfdir}/syslog.conf"
-RCONFLICTS_${PN} = "rsyslog busybox-syslog syslog-ng"
+CONFFILES:${PN} = "${sysconfdir}/syslog.conf"
+RCONFLICTS:${PN} = "rsyslog busybox-syslog syslog-ng"
 
-FILES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/sysklogd.conf', '', d)}"
+FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','systemd','${exec_prefix}/lib/tmpfiles.d/sysklogd.conf', '', d)}"
 
 ALTERNATIVE_PRIORITY = "100"
 
-ALTERNATIVE_${PN}-doc = "syslogd.8"
+ALTERNATIVE:${PN}-doc = "syslogd.8"
 ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8"
 
-pkg_prerm_${PN} () {
+pkg_prerm:${PN} () {
 	if test "x$D" = "x"; then
 	if test "$1" = "upgrade" -o "$1" = "remove"; then
 		/etc/init.d/syslog stop || :
diff --git a/poky/meta/recipes-extended/sysstat/sysstat.inc b/poky/meta/recipes-extended/sysstat/sysstat.inc
index f97b88d..14c6f07 100644
--- a/poky/meta/recipes-extended/sysstat/sysstat.inc
+++ b/poky/meta/recipes-extended/sysstat/sysstat.inc
@@ -24,10 +24,10 @@
 EXTRA_OECONF += "--disable-stripping"
 
 SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "sysstat.service"
+SYSTEMD_SERVICE:${PN} = "sysstat.service"
 SYSTEMD_AUTO_ENABLE = "enable"
 
-do_configure_prepend() {
+do_configure:prepend() {
     export sa_lib_dir=${libexecdir}/sa
 }
 
@@ -58,7 +58,7 @@
 	fi
 }
 
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
 	if [  ! -n "$D" ]; then
 		if [ -e /etc/init.d/populate-volatile.sh ]; then
 			/etc/init.d/populate-volatile.sh update
@@ -66,6 +66,6 @@
 	fi
 }
 
-FILES_${PN} += "${systemd_system_unitdir} ${nonarch_base_libdir}/systemd"
+FILES:${PN} += "${systemd_system_unitdir} ${nonarch_base_libdir}/systemd"
 
 TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/poky/meta/recipes-extended/tar/tar_1.34.bb b/poky/meta/recipes-extended/tar/tar_1.34.bb
index af04919..c096a8c 100644
--- a/poky/meta/recipes-extended/tar/tar_1.34.bb
+++ b/poky/meta/recipes-extended/tar/tar_1.34.bb
@@ -13,7 +13,7 @@
 inherit autotools gettext texinfo
 
 PACKAGECONFIG ??= ""
-PACKAGECONFIG_append_class-target = " ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)}"
+PACKAGECONFIG:append:class-target = " ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)}"
 
 PACKAGECONFIG[acl] = "--with-posix-acls,--without-posix-acls,acl"
 
@@ -32,7 +32,7 @@
     ln -s tar ${D}${bindir}/gtar
 }
 
-do_install_append_class-target() {
+do_install:append:class-target() {
     if [ "${base_bindir}" != "${bindir}" ]; then
         install -d ${D}${base_bindir}
         mv ${D}${bindir}/tar ${D}${base_bindir}/tar
@@ -43,21 +43,21 @@
 
 PACKAGES =+ "${PN}-rmt"
 
-FILES_${PN}-rmt = "${sbindir}/rmt*"
+FILES:${PN}-rmt = "${sbindir}/rmt*"
 
 inherit update-alternatives
 
 ALTERNATIVE_PRIORITY = "100"
 
-ALTERNATIVE_${PN} = "tar"
-ALTERNATIVE_${PN}-rmt = "rmt"
-ALTERNATIVE_${PN}_class-nativesdk = ""
-ALTERNATIVE_${PN}-rmt_class-nativesdk = ""
+ALTERNATIVE:${PN} = "tar"
+ALTERNATIVE:${PN}-rmt = "rmt"
+ALTERNATIVE:${PN}:class-nativesdk = ""
+ALTERNATIVE:${PN}-rmt:class-nativesdk = ""
 
 ALTERNATIVE_LINK_NAME[tar] = "${base_bindir}/tar"
 ALTERNATIVE_LINK_NAME[rmt] = "${sbindir}/rmt"
 
-PROVIDES_append_class-native = " tar-replacement-native"
+PROVIDES:append:class-native = " tar-replacement-native"
 NATIVE_PACKAGE_PATH_SUFFIX = "/${PN}"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb b/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
index e903b9d..814d7fd 100644
--- a/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/poky/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -11,12 +11,12 @@
 DEPENDS += "libnsl2"
 
 PACKAGES = "${PN}-dbg libwrap libwrap-doc libwrap-dev libwrap-staticdev ${PN} ${PN}-doc"
-FILES_libwrap = "${base_libdir}/lib*${SOLIBS}"
-FILES_libwrap-doc = "${mandir}/man3 ${mandir}/man5"
-FILES_libwrap-dev = "${libdir}/lib*${SOLIBSDEV} ${includedir}"
-FILES_libwrap-staticdev = "${libdir}/lib*.a"
-FILES_${PN} = "${sbindir}"
-FILES_${PN}-doc = "${mandir}/man8"
+FILES:libwrap = "${base_libdir}/lib*${SOLIBS}"
+FILES:libwrap-doc = "${mandir}/man3 ${mandir}/man5"
+FILES:libwrap-dev = "${libdir}/lib*${SOLIBSDEV} ${includedir}"
+FILES:libwrap-staticdev = "${libdir}/lib*.a"
+FILES:${PN} = "${sbindir}"
+FILES:${PN}-doc = "${mandir}/man8"
 
 SRC_URI = "http://ftp.porcupine.org/pub/security/tcp_wrappers_${PV}.tar.gz \
            file://00_man_quoting.diff \
@@ -78,9 +78,9 @@
                 'EXTRA_CFLAGS=${CFLAGS} -DSYS_ERRLIST_DEFINED -DHAVE_STRERROR -DHAVE_WEAKSYMS -D_REENTRANT -DINET6=1 -Dss_family=__ss_family -Dss_len=__ss_len'"
 
 EXTRA_OEMAKE_NETGROUP = "-DNETGROUP -DUSE_GETDOMAIN"
-EXTRA_OEMAKE_NETGROUP_libc-musl = "-DUSE_GETDOMAIN"
+EXTRA_OEMAKE_NETGROUP:libc-musl = "-DUSE_GETDOMAIN"
 
-EXTRA_OEMAKE_append_libc-musl = " 'LIBS='"
+EXTRA_OEMAKE:append:libc-musl = " 'LIBS='"
 
 do_compile () {
 	oe_runmake 'TABLES=-DHOSTS_DENY=\"${sysconfdir}/hosts.deny\" -DHOSTS_ALLOW=\"${sysconfdir}/hosts.allow\"' \
@@ -133,4 +133,4 @@
 	touch ${D}${sysconfdir}/hosts.deny
 }
 
-FILES_${PN} += "${sysconfdir}/hosts.allow ${sysconfdir}/hosts.deny"
+FILES:${PN} += "${sysconfdir}/hosts.allow ${sysconfdir}/hosts.deny"
diff --git a/poky/meta/recipes-extended/texinfo/texinfo/0001-gnulib-Update.patch b/poky/meta/recipes-extended/texinfo/texinfo/0001-gnulib-Update.patch
new file mode 100644
index 0000000..470212c
--- /dev/null
+++ b/poky/meta/recipes-extended/texinfo/texinfo/0001-gnulib-Update.patch
@@ -0,0 +1,11765 @@
+From 4908050c39dbcdcbd59955ea23d692f25f342307 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Jul 2021 13:42:35 -0700
+Subject: [PATCH] gnulib: Update
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gnulib/lib/Makefile.am                       | 782 +++++++++++--------
+ gnulib/lib/_Noreturn.h                       |   8 +-
+ gnulib/lib/alloca.in.h                       |  20 +-
+ gnulib/lib/arg-nonnull.h                     |   8 +-
+ gnulib/lib/argz.c                            |  16 +-
+ gnulib/lib/argz.in.h                         |  14 +-
+ gnulib/lib/asnprintf.c                       |  16 +-
+ gnulib/lib/asprintf.c                        |  16 +-
+ gnulib/lib/attribute.h                       |  16 +-
+ gnulib/lib/basename-lgpl.c                   |  14 +-
+ gnulib/lib/basename-lgpl.h                   |  26 +-
+ gnulib/lib/btowc.c                           |  14 +-
+ gnulib/lib/c++defs.h                         |   8 +-
+ gnulib/lib/calloc.c                          |  55 ++
+ gnulib/lib/cdefs.h                           |  26 +-
+ gnulib/lib/cloexec.c                         |  18 +-
+ gnulib/lib/cloexec.h                         |  18 +-
+ gnulib/lib/close.c                           |  14 +-
+ gnulib/lib/dup2.c                            |  14 +-
+ gnulib/lib/dynarray.h                        |  24 +-
+ gnulib/lib/errno.in.h                        |  16 +-
+ gnulib/lib/error.c                           |  14 +-
+ gnulib/lib/error.h                           |  14 +-
+ gnulib/lib/exitfail.c                        |  14 +-
+ gnulib/lib/exitfail.h                        |  14 +-
+ gnulib/lib/fcntl.c                           |  14 +-
+ gnulib/lib/fcntl.in.h                        |  14 +-
+ gnulib/lib/fd-hook.c                         |  16 +-
+ gnulib/lib/fd-hook.h                         |  16 +-
+ gnulib/lib/filename.h                        |   8 +-
+ gnulib/lib/float+.h                          |  16 +-
+ gnulib/lib/float.c                           |  14 +-
+ gnulib/lib/float.in.h                        |  14 +-
+ gnulib/lib/free.c                            |  53 ++
+ gnulib/lib/fstat.c                           |  14 +-
+ gnulib/lib/getdtablesize.c                   |  14 +-
+ gnulib/lib/getopt-cdefs.in.h                 |  21 +-
+ gnulib/lib/getopt-core.h                     |   8 +-
+ gnulib/lib/getopt-ext.h                      |   8 +-
+ gnulib/lib/getopt-pfx-core.h                 |  21 +-
+ gnulib/lib/getopt-pfx-ext.h                  |  21 +-
+ gnulib/lib/getopt.c                          |   8 +-
+ gnulib/lib/getopt.in.h                       |  24 +-
+ gnulib/lib/getopt1.c                         |   8 +-
+ gnulib/lib/getopt_int.h                      |   8 +-
+ gnulib/lib/getprogname.c                     |  18 +-
+ gnulib/lib/getprogname.h                     |   8 +-
+ gnulib/lib/gettext.h                         |  16 +-
+ gnulib/lib/glthread/lock.c                   |  16 +-
+ gnulib/lib/glthread/lock.h                   |  16 +-
+ gnulib/lib/glthread/threadlib.c              |  16 +-
+ gnulib/lib/hard-locale.c                     |  14 +-
+ gnulib/lib/hard-locale.h                     |  14 +-
+ gnulib/lib/ialloc.c                          |  21 +
+ gnulib/lib/ialloc.h                          |  94 +++
+ gnulib/lib/idx.h                             | 114 +++
+ gnulib/lib/intprops.h                        |  26 +-
+ gnulib/lib/inttypes.in.h                     |  14 +-
+ gnulib/lib/iswblank.c                        |  16 +-
+ gnulib/lib/iswdigit.c                        |  16 +-
+ gnulib/lib/iswxdigit.c                       |  16 +-
+ gnulib/lib/itold.c                           |  14 +-
+ gnulib/lib/langinfo.in.h                     |  16 +-
+ gnulib/lib/lc-charset-dispatch.c             |  14 +-
+ gnulib/lib/lc-charset-dispatch.h             |  14 +-
+ gnulib/lib/libc-config.h                     |  25 +-
+ gnulib/lib/limits.in.h                       |  16 +-
+ gnulib/lib/localcharset.c                    |  16 +-
+ gnulib/lib/localcharset.h                    |  16 +-
+ gnulib/lib/locale.in.h                       |  14 +-
+ gnulib/lib/localeconv.c                      |  14 +-
+ gnulib/lib/malloc.c                          |  51 +-
+ gnulib/lib/malloc/dynarray-skeleton.c        |   8 +-
+ gnulib/lib/malloc/dynarray.h                 |   8 +-
+ gnulib/lib/malloc/dynarray_at_failure.c      |   8 +-
+ gnulib/lib/malloc/dynarray_emplace_enlarge.c |   8 +-
+ gnulib/lib/malloc/dynarray_finalize.c        |   8 +-
+ gnulib/lib/malloc/dynarray_resize.c          |   8 +-
+ gnulib/lib/malloc/dynarray_resize_clear.c    |   8 +-
+ gnulib/lib/malloca.c                         |  24 +-
+ gnulib/lib/malloca.h                         |  21 +-
+ gnulib/lib/mbchar.c                          |  14 +-
+ gnulib/lib/mbchar.h                          |  14 +-
+ gnulib/lib/mbiter.c                          |  18 +
+ gnulib/lib/mbiter.h                          |  14 +-
+ gnulib/lib/mbrtowc-impl-utf8.h               |  16 +-
+ gnulib/lib/mbrtowc-impl.h                    |  14 +-
+ gnulib/lib/mbrtowc.c                         |  14 +-
+ gnulib/lib/mbscasecmp.c                      |  14 +-
+ gnulib/lib/mbschr.c                          |  14 +-
+ gnulib/lib/mbsinit.c                         |  14 +-
+ gnulib/lib/mbslen.c                          |  14 +-
+ gnulib/lib/mbsncasecmp.c                     |  14 +-
+ gnulib/lib/mbsstr.c                          |  14 +-
+ gnulib/lib/mbtowc-impl.h                     |  14 +-
+ gnulib/lib/mbtowc-lock.c                     |  14 +-
+ gnulib/lib/mbtowc-lock.h                     |  14 +-
+ gnulib/lib/mbtowc.c                          |  14 +-
+ gnulib/lib/mbuiter.c                         |  17 +
+ gnulib/lib/mbuiter.h                         |  14 +-
+ gnulib/lib/memchr.c                          |  24 +-
+ gnulib/lib/memchr.valgrind                   |  14 +-
+ gnulib/lib/mempcpy.c                         |  16 +-
+ gnulib/lib/memrchr.c                         |  14 +-
+ gnulib/lib/minmax.h                          |  60 ++
+ gnulib/lib/msvc-inval.c                      |  16 +-
+ gnulib/lib/msvc-inval.h                      |  16 +-
+ gnulib/lib/msvc-nothrow.c                    |  16 +-
+ gnulib/lib/msvc-nothrow.h                    |  16 +-
+ gnulib/lib/nl_langinfo-lock.c                |  14 +-
+ gnulib/lib/nl_langinfo.c                     |  14 +-
+ gnulib/lib/open.c                            |  14 +-
+ gnulib/lib/pathmax.h                         |  16 +-
+ gnulib/lib/printf-args.c                     |  16 +-
+ gnulib/lib/printf-args.h                     |  16 +-
+ gnulib/lib/printf-parse.c                    |  27 +-
+ gnulib/lib/printf-parse.h                    |  16 +-
+ gnulib/lib/realloc.c                         |  63 ++
+ gnulib/lib/reallocarray.c                    |  39 +
+ gnulib/lib/regcomp.c                         |   8 +-
+ gnulib/lib/regex.c                           |   8 +-
+ gnulib/lib/regex.h                           |   8 +-
+ gnulib/lib/regex_internal.c                  |   8 +-
+ gnulib/lib/regex_internal.h                  |   8 +-
+ gnulib/lib/regexec.c                         |  20 +-
+ gnulib/lib/setlocale-lock.c                  |  14 +-
+ gnulib/lib/setlocale_null.c                  |  14 +-
+ gnulib/lib/setlocale_null.h                  |  14 +-
+ gnulib/lib/size_max.h                        |  16 +-
+ gnulib/lib/stat-time.c                       |  18 +
+ gnulib/lib/stat-time.h                       |  14 +-
+ gnulib/lib/stat-w32.c                        |  14 +-
+ gnulib/lib/stat-w32.h                        |  14 +-
+ gnulib/lib/stat.c                            |  14 +-
+ gnulib/lib/stdarg.in.h                       |  16 +-
+ gnulib/lib/stdbool.in.h                      |  16 +-
+ gnulib/lib/stddef.in.h                       |  16 +-
+ gnulib/lib/stdint.in.h                       |  20 +-
+ gnulib/lib/stdio.in.h                        |  24 +-
+ gnulib/lib/stdlib.in.h                       | 146 +++-
+ gnulib/lib/stpcpy.c                          |  14 +-
+ gnulib/lib/str-kmp.h                         |  26 +-
+ gnulib/lib/str-two-way.h                     |  16 +-
+ gnulib/lib/strcasecmp.c                      |  16 +-
+ gnulib/lib/strcasestr.c                      |  16 +-
+ gnulib/lib/strdup.c                          |  16 +-
+ gnulib/lib/streq.h                           |  16 +-
+ gnulib/lib/strerror-override.c               | 100 +--
+ gnulib/lib/strerror-override.h               |  15 +-
+ gnulib/lib/strerror.c                        |  14 +-
+ gnulib/lib/string.in.h                       |  18 +-
+ gnulib/lib/strings.in.h                      |  16 +-
+ gnulib/lib/strncasecmp.c                     |  16 +-
+ gnulib/lib/strndup.c                         |  16 +-
+ gnulib/lib/strnlen.c                         |  16 +-
+ gnulib/lib/strnlen1.c                        |  14 +-
+ gnulib/lib/strnlen1.h                        |  14 +-
+ gnulib/lib/strstr.c                          |  16 +-
+ gnulib/lib/sys_stat.in.h                     |  16 +-
+ gnulib/lib/sys_types.in.h                    |  16 +-
+ gnulib/lib/time.in.h                         |  58 +-
+ gnulib/lib/unistd.c                          |  18 +
+ gnulib/lib/unistd.in.h                       |  29 +-
+ gnulib/lib/unitypes.in.h                     |  16 +-
+ gnulib/lib/uniwidth.in.h                     |  16 +-
+ gnulib/lib/uniwidth/cjk.h                    |  16 +-
+ gnulib/lib/uniwidth/width.c                  |  16 +-
+ gnulib/lib/vasnprintf.c                      |  71 +-
+ gnulib/lib/vasnprintf.h                      |  16 +-
+ gnulib/lib/vasprintf.c                       |  16 +-
+ gnulib/lib/verify.h                          |  14 +-
+ gnulib/lib/warn-on-use.h                     |   8 +-
+ gnulib/lib/wchar.in.h                        |  18 +-
+ gnulib/lib/wcrtomb.c                         |  14 +-
+ gnulib/lib/wctype-h.c                        |  19 +
+ gnulib/lib/wctype.in.h                       |  26 +-
+ gnulib/lib/wcwidth.c                         |  14 +-
+ gnulib/lib/windows-initguard.h               |  16 +-
+ gnulib/lib/windows-mutex.c                   |  16 +-
+ gnulib/lib/windows-mutex.h                   |  16 +-
+ gnulib/lib/windows-once.c                    |  16 +-
+ gnulib/lib/windows-once.h                    |  16 +-
+ gnulib/lib/windows-recmutex.c                |  16 +-
+ gnulib/lib/windows-recmutex.h                |  16 +-
+ gnulib/lib/windows-rwlock.c                  |  16 +-
+ gnulib/lib/windows-rwlock.h                  |  16 +-
+ gnulib/lib/xalloc-oversized.h                |  53 +-
+ gnulib/lib/xalloc.h                          | 143 +---
+ gnulib/lib/xmalloc.c                         | 293 +++++--
+ gnulib/lib/xsize.c                           |  18 +
+ gnulib/lib/xsize.h                           |  16 +-
+ gnulib/m4/calloc.m4                          |  82 ++
+ gnulib/m4/fcntl_h.m4                         |  39 +-
+ gnulib/m4/free.m4                            |  52 ++
+ gnulib/m4/fstat.m4                           |   4 +-
+ gnulib/m4/gnulib-common.m4                   |  84 +-
+ gnulib/m4/gnulib-comp.m4                     | 192 ++++-
+ gnulib/m4/inttypes.m4                        |  31 +-
+ gnulib/m4/iswdigit.m4                        |   6 +-
+ gnulib/m4/iswxdigit.m4                       |   4 +-
+ gnulib/m4/langinfo_h.m4                      |  25 +-
+ gnulib/m4/largefile.m4                       |  28 +-
+ gnulib/m4/locale_h.m4                        |  37 +-
+ gnulib/m4/malloc.m4                          | 152 +++-
+ gnulib/m4/math_h.m4                          | 227 +++---
+ gnulib/m4/mbslen.m4                          |   4 +-
+ gnulib/m4/memchr.m4                          |   4 +-
+ gnulib/m4/mempcpy.m4                         |   4 +-
+ gnulib/m4/memrchr.m4                         |   4 +-
+ gnulib/m4/minmax.m4                          |  44 ++
+ gnulib/m4/printf.m4                          |   5 +-
+ gnulib/m4/realloc.m4                         |  63 ++
+ gnulib/m4/reallocarray.m4                    |  23 +
+ gnulib/m4/stat.m4                            |   4 +-
+ gnulib/m4/stddef_h.m4                        |  23 +-
+ gnulib/m4/stdint.m4                          |   6 +-
+ gnulib/m4/stdio_h.m4                         | 168 ++--
+ gnulib/m4/stdlib_h.m4                        | 122 +--
+ gnulib/m4/stpcpy.m4                          |   4 +-
+ gnulib/m4/strcase.m4                         |   6 +-
+ gnulib/m4/strcasestr.m4                      |   4 +-
+ gnulib/m4/strdup.m4                          |   6 +-
+ gnulib/m4/strerror.m4                        |   4 +-
+ gnulib/m4/string_h.m4                        | 124 +--
+ gnulib/m4/strings_h.m4                       |  38 +-
+ gnulib/m4/strndup.m4                         |   4 +-
+ gnulib/m4/strnlen.m4                         |   4 +-
+ gnulib/m4/strstr.m4                          |   4 +-
+ gnulib/m4/sys_socket_h.m4                    |  53 +-
+ gnulib/m4/sys_stat_h.m4                      |  65 +-
+ gnulib/m4/sys_types_h.m4                     |  16 +-
+ gnulib/m4/time_h.m4                          |  62 +-
+ gnulib/m4/unistd_h.m4                        | 194 ++---
+ gnulib/m4/visibility.m4                      |   6 +-
+ gnulib/m4/wchar_h.m4                         | 109 +--
+ gnulib/m4/wctype_h.m4                        |  39 +-
+ gnulib/m4/wint_t.m4                          |  10 +-
+ gnulib/m4/year2038.m4                        | 112 +++
+ 238 files changed, 4521 insertions(+), 2636 deletions(-)
+ create mode 100644 gnulib/lib/calloc.c
+ create mode 100644 gnulib/lib/free.c
+ create mode 100644 gnulib/lib/ialloc.c
+ create mode 100644 gnulib/lib/ialloc.h
+ create mode 100644 gnulib/lib/idx.h
+ create mode 100644 gnulib/lib/minmax.h
+ create mode 100644 gnulib/lib/realloc.c
+ create mode 100644 gnulib/lib/reallocarray.c
+ create mode 100644 gnulib/m4/calloc.m4
+ create mode 100644 gnulib/m4/free.m4
+ create mode 100644 gnulib/m4/minmax.m4
+ create mode 100644 gnulib/m4/realloc.m4
+ create mode 100644 gnulib/m4/reallocarray.m4
+ create mode 100644 gnulib/m4/year2038.m4
+
+--- a/gnulib/lib/Makefile.am
++++ b/gnulib/lib/Makefile.am
+@@ -165,6 +165,24 @@ EXTRA_libgnu_a_SOURCES += btowc.c
+ 
+ ## end   gnulib module btowc
+ 
++## begin gnulib module calloc-gnu
++
++
++EXTRA_DIST += calloc.c
++
++EXTRA_libgnu_a_SOURCES += calloc.c
++
++## end   gnulib module calloc-gnu
++
++## begin gnulib module calloc-posix
++
++
++EXTRA_DIST += calloc.c
++
++EXTRA_libgnu_a_SOURCES += calloc.c
++
++## end   gnulib module calloc-posix
++
+ ## begin gnulib module cloexec
+ 
+ if gl_GNULIB_ENABLED_cloexec
+@@ -200,6 +218,32 @@ EXTRA_libgnu_a_SOURCES += dup2.c
+ ## begin gnulib module dynarray
+ 
+ if gl_GNULIB_ENABLED_dynarray
++BUILT_SOURCES += malloc/dynarray.gl.h malloc/dynarray-skeleton.gl.h
++
++malloc/dynarray.gl.h: malloc/dynarray.h
++	$(AM_V_at)$(MKDIR_P) malloc
++	$(AM_V_GEN)rm -f $@-t $@ && \
++	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
++	  sed -e '/libc_hidden_proto/d' < $(srcdir)/malloc/dynarray.h; \
++	} > $@-t && \
++	mv $@-t $@
++MOSTLYCLEANFILES += malloc/dynarray.gl.h malloc/dynarray.gl.h-t
++
++malloc/dynarray-skeleton.gl.h: malloc/dynarray-skeleton.c
++	$(AM_V_at)$(MKDIR_P) malloc
++	$(AM_V_GEN)rm -f $@-t $@ && \
++	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
++	  sed -e 's|<malloc/dynarray\.h>|<malloc/dynarray.gl.h>|g' \
++	      -e 's|__attribute_maybe_unused__|_GL_ATTRIBUTE_MAYBE_UNUSED|g' \
++	      -e 's|__attribute_nonnull__|_GL_ATTRIBUTE_NONNULL|g' \
++	      -e 's|__attribute_warn_unused_result__|_GL_ATTRIBUTE_NODISCARD|g' \
++	      -e 's|__glibc_likely|_GL_LIKELY|g' \
++	      -e 's|__glibc_unlikely|_GL_UNLIKELY|g' \
++	      < $(srcdir)/malloc/dynarray-skeleton.c; \
++	} > $@-t && \
++	mv $@-t $@
++MOSTLYCLEANFILES += malloc/dynarray-skeleton.gl.h malloc/dynarray-skeleton.gl.h-t
++
+ libgnu_a_SOURCES += malloc/dynarray_at_failure.c                 malloc/dynarray_emplace_enlarge.c                 malloc/dynarray_finalize.c                 malloc/dynarray_resize.c                 malloc/dynarray_resize_clear.c
+ 
+ endif
+@@ -285,13 +329,13 @@ fcntl.h: fcntl.in.h $(top_builddir)/conf
+ 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
+-	      -e 's/@''GNULIB_CREAT''@/$(GNULIB_CREAT)/g' \
+-	      -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
+-	      -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \
+-	      -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \
+-	      -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \
+-	      -e 's/@''GNULIB_MDA_CREAT''@/$(GNULIB_MDA_CREAT)/g' \
+-	      -e 's/@''GNULIB_MDA_OPEN''@/$(GNULIB_MDA_OPEN)/g' \
++	      -e 's/@''GNULIB_CREAT''@/$(GL_GNULIB_CREAT)/g' \
++	      -e 's/@''GNULIB_FCNTL''@/$(GL_GNULIB_FCNTL)/g' \
++	      -e 's/@''GNULIB_NONBLOCKING''@/$(GL_GNULIB_NONBLOCKING)/g' \
++	      -e 's/@''GNULIB_OPEN''@/$(GL_GNULIB_OPEN)/g' \
++	      -e 's/@''GNULIB_OPENAT''@/$(GL_GNULIB_OPENAT)/g' \
++	      -e 's/@''GNULIB_MDA_CREAT''@/$(GL_GNULIB_MDA_CREAT)/g' \
++	      -e 's/@''GNULIB_MDA_OPEN''@/$(GL_GNULIB_MDA_OPEN)/g' \
+ 	      -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \
+ 	      -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \
+ 	      -e 's|@''REPLACE_CREAT''@|$(REPLACE_CREAT)|g' \
+@@ -358,6 +402,17 @@ EXTRA_libgnu_a_SOURCES += float.c itold.
+ 
+ ## end   gnulib module float
+ 
++## begin gnulib module free-posix
++
++if gl_GNULIB_ENABLED_ef07dc4b3077c11ea9cef586db4e5955
++
++endif
++EXTRA_DIST += free.c
++
++EXTRA_libgnu_a_SOURCES += free.c
++
++## end   gnulib module free-posix
++
+ ## begin gnulib module fstat
+ 
+ if gl_GNULIB_ENABLED_fstat
+@@ -445,11 +500,23 @@ EXTRA_DIST += $(top_srcdir)/build-aux/co
+ 
+ ## end   gnulib module havelib
+ 
++## begin gnulib module ialloc
++
++libgnu_a_SOURCES += ialloc.c
++
++EXTRA_DIST += ialloc.h
++
++## end   gnulib module ialloc
++
++## begin gnulib module idx
++
++libgnu_a_SOURCES += idx.h
++
++## end   gnulib module idx
++
+ ## begin gnulib module intprops
+ 
+-if gl_GNULIB_ENABLED_intprops
+ 
+-endif
+ EXTRA_DIST += intprops.h
+ 
+ ## end   gnulib module intprops
+@@ -470,10 +537,10 @@ inttypes.h: inttypes.in.h $(top_builddir
+ 	      -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \
+ 	      -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+ 	      -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \
+-	      -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \
+-	      -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \
+-	      -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \
+-	      -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \
++	      -e 's/@''GNULIB_IMAXABS''@/$(GL_GNULIB_IMAXABS)/g' \
++	      -e 's/@''GNULIB_IMAXDIV''@/$(GL_GNULIB_IMAXDIV)/g' \
++	      -e 's/@''GNULIB_STRTOIMAX''@/$(GL_GNULIB_STRTOIMAX)/g' \
++	      -e 's/@''GNULIB_STRTOUMAX''@/$(GL_GNULIB_STRTOUMAX)/g' \
+ 	      -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \
+ 	      -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \
+ 	      -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \
+@@ -540,7 +607,7 @@ langinfo.h: langinfo.in.h $(top_builddir
+ 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_LANGINFO_H''@|$(NEXT_LANGINFO_H)|g' \
+-	      -e 's/@''GNULIB_NL_LANGINFO''@/$(GNULIB_NL_LANGINFO)/g' \
++	      -e 's/@''GNULIB_NL_LANGINFO''@/$(GL_GNULIB_NL_LANGINFO)/g' \
+ 	      -e 's|@''HAVE_LANGINFO_CODESET''@|$(HAVE_LANGINFO_CODESET)|g' \
+ 	      -e 's|@''HAVE_LANGINFO_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
+ 	      -e 's|@''HAVE_LANGINFO_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|g' \
+@@ -622,11 +689,11 @@ locale.h: locale.in.h $(top_builddir)/co
+ 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \
+-	      -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \
+-	      -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \
+-	      -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GNULIB_SETLOCALE_NULL)/g' \
+-	      -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \
+-	      -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \
++	      -e 's/@''GNULIB_LOCALECONV''@/$(GL_GNULIB_LOCALECONV)/g' \
++	      -e 's/@''GNULIB_SETLOCALE''@/$(GL_GNULIB_SETLOCALE)/g' \
++	      -e 's/@''GNULIB_SETLOCALE_NULL''@/$(GL_GNULIB_SETLOCALE_NULL)/g' \
++	      -e 's/@''GNULIB_DUPLOCALE''@/$(GL_GNULIB_DUPLOCALE)/g' \
++	      -e 's/@''GNULIB_LOCALENAME''@/$(GL_GNULIB_LOCALENAME)/g' \
+ 	      -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \
+ 	      -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \
+ 	      -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|g' \
+@@ -670,11 +737,18 @@ libgnu_a_SOURCES += glthread/lock.h glth
+ endif
+ ## end   gnulib module lock
+ 
++## begin gnulib module malloc-gnu
++
++
++EXTRA_DIST += malloc.c
++
++EXTRA_libgnu_a_SOURCES += malloc.c
++
++## end   gnulib module malloc-gnu
++
+ ## begin gnulib module malloc-posix
+ 
+-if gl_GNULIB_ENABLED_ef455225c00f5049c808c2eda3e76866
+ 
+-endif
+ EXTRA_DIST += malloc.c
+ 
+ EXTRA_libgnu_a_SOURCES += malloc.c
+@@ -805,6 +879,12 @@ EXTRA_libgnu_a_SOURCES += memrchr.c
+ 
+ ## end   gnulib module memrchr
+ 
++## begin gnulib module minmax
++
++libgnu_a_SOURCES += minmax.h
++
++## end   gnulib module minmax
++
+ ## begin gnulib module msvc-inval
+ 
+ if gl_GNULIB_ENABLED_f691f076f650964c9f5598c3ee487616
+@@ -856,6 +936,33 @@ EXTRA_DIST += pathmax.h
+ 
+ ## end   gnulib module pathmax
+ 
++## begin gnulib module realloc-gnu
++
++
++EXTRA_DIST += realloc.c
++
++EXTRA_libgnu_a_SOURCES += realloc.c
++
++## end   gnulib module realloc-gnu
++
++## begin gnulib module realloc-posix
++
++
++EXTRA_DIST += realloc.c
++
++EXTRA_libgnu_a_SOURCES += realloc.c
++
++## end   gnulib module realloc-posix
++
++## begin gnulib module reallocarray
++
++
++EXTRA_DIST += reallocarray.c
++
++EXTRA_libgnu_a_SOURCES += reallocarray.c
++
++## end   gnulib module reallocarray
++
+ ## begin gnulib module regex
+ 
+ 
+@@ -1072,7 +1179,7 @@ stdint.h: stdint.in.h $(top_builddir)/co
+ 	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+ 	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+ 	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+-	      -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \
++	      -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \
+ 	      < $(srcdir)/stdint.in.h; \
+ 	} > $@-t && \
+ 	mv $@-t $@
+@@ -1100,65 +1207,65 @@ stdio.h: stdio.in.h $(top_builddir)/conf
+ 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \
+-	      -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \
+-	      -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \
+-	      -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \
+-	      -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
+-	      -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
+-	      -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \
+-	      -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \
+-	      -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \
+-	      -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \
+-	      -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \
+-	      -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \
+-	      -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \
+-	      -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \
+-	      -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
+-	      -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \
+-	      -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \
+-	      -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \
+-	      -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \
+-	      -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \
+-	      -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \
+-	      -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \
+-	      -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
+-	      -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
+-	      -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
+-	      -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
+-	      -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
+-	      -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \
+-	      -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \
+-	      -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \
+-	      -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \
+-	      -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \
+-	      -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \
+-	      -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \
+-	      -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \
+-	      -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \
+-	      -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \
+-	      -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \
+-	      -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \
+-	      -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
+-	      -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
+-	      -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
+-	      -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
+-	      -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \
+-	      -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \
+-	      -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \
+-	      -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \
+-	      -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \
+-	      -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
+-	      -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \
+-	      -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \
+-	      -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \
+-	      -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \
+-	      -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \
+-	      -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GNULIB_MDA_FCLOSEALL)/g' \
+-	      -e 's/@''GNULIB_MDA_FDOPEN''@/$(GNULIB_MDA_FDOPEN)/g' \
+-	      -e 's/@''GNULIB_MDA_FILENO''@/$(GNULIB_MDA_FILENO)/g' \
+-	      -e 's/@''GNULIB_MDA_GETW''@/$(GNULIB_MDA_GETW)/g' \
+-	      -e 's/@''GNULIB_MDA_PUTW''@/$(GNULIB_MDA_PUTW)/g' \
+-	      -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GNULIB_MDA_TEMPNAM)/g' \
++	      -e 's/@''GNULIB_DPRINTF''@/$(GL_GNULIB_DPRINTF)/g' \
++	      -e 's/@''GNULIB_FCLOSE''@/$(GL_GNULIB_FCLOSE)/g' \
++	      -e 's/@''GNULIB_FDOPEN''@/$(GL_GNULIB_FDOPEN)/g' \
++	      -e 's/@''GNULIB_FFLUSH''@/$(GL_GNULIB_FFLUSH)/g' \
++	      -e 's/@''GNULIB_FGETC''@/$(GL_GNULIB_FGETC)/g' \
++	      -e 's/@''GNULIB_FGETS''@/$(GL_GNULIB_FGETS)/g' \
++	      -e 's/@''GNULIB_FOPEN''@/$(GL_GNULIB_FOPEN)/g' \
++	      -e 's/@''GNULIB_FPRINTF''@/$(GL_GNULIB_FPRINTF)/g' \
++	      -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GL_GNULIB_FPRINTF_POSIX)/g' \
++	      -e 's/@''GNULIB_FPURGE''@/$(GL_GNULIB_FPURGE)/g' \
++	      -e 's/@''GNULIB_FPUTC''@/$(GL_GNULIB_FPUTC)/g' \
++	      -e 's/@''GNULIB_FPUTS''@/$(GL_GNULIB_FPUTS)/g' \
++	      -e 's/@''GNULIB_FREAD''@/$(GL_GNULIB_FREAD)/g' \
++	      -e 's/@''GNULIB_FREOPEN''@/$(GL_GNULIB_FREOPEN)/g' \
++	      -e 's/@''GNULIB_FSCANF''@/$(GL_GNULIB_FSCANF)/g' \
++	      -e 's/@''GNULIB_FSEEK''@/$(GL_GNULIB_FSEEK)/g' \
++	      -e 's/@''GNULIB_FSEEKO''@/$(GL_GNULIB_FSEEKO)/g' \
++	      -e 's/@''GNULIB_FTELL''@/$(GL_GNULIB_FTELL)/g' \
++	      -e 's/@''GNULIB_FTELLO''@/$(GL_GNULIB_FTELLO)/g' \
++	      -e 's/@''GNULIB_FWRITE''@/$(GL_GNULIB_FWRITE)/g' \
++	      -e 's/@''GNULIB_GETC''@/$(GL_GNULIB_GETC)/g' \
++	      -e 's/@''GNULIB_GETCHAR''@/$(GL_GNULIB_GETCHAR)/g' \
++	      -e 's/@''GNULIB_GETDELIM''@/$(GL_GNULIB_GETDELIM)/g' \
++	      -e 's/@''GNULIB_GETLINE''@/$(GL_GNULIB_GETLINE)/g' \
++	      -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GL_GNULIB_OBSTACK_PRINTF)/g' \
++	      -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GL_GNULIB_OBSTACK_PRINTF_POSIX)/g' \
++	      -e 's/@''GNULIB_PCLOSE''@/$(GL_GNULIB_PCLOSE)/g' \
++	      -e 's/@''GNULIB_PERROR''@/$(GL_GNULIB_PERROR)/g' \
++	      -e 's/@''GNULIB_POPEN''@/$(GL_GNULIB_POPEN)/g' \
++	      -e 's/@''GNULIB_PRINTF''@/$(GL_GNULIB_PRINTF)/g' \
++	      -e 's/@''GNULIB_PRINTF_POSIX''@/$(GL_GNULIB_PRINTF_POSIX)/g' \
++	      -e 's/@''GNULIB_PUTC''@/$(GL_GNULIB_PUTC)/g' \
++	      -e 's/@''GNULIB_PUTCHAR''@/$(GL_GNULIB_PUTCHAR)/g' \
++	      -e 's/@''GNULIB_PUTS''@/$(GL_GNULIB_PUTS)/g' \
++	      -e 's/@''GNULIB_REMOVE''@/$(GL_GNULIB_REMOVE)/g' \
++	      -e 's/@''GNULIB_RENAME''@/$(GL_GNULIB_RENAME)/g' \
++	      -e 's/@''GNULIB_RENAMEAT''@/$(GL_GNULIB_RENAMEAT)/g' \
++	      -e 's/@''GNULIB_SCANF''@/$(GL_GNULIB_SCANF)/g' \
++	      -e 's/@''GNULIB_SNPRINTF''@/$(GL_GNULIB_SNPRINTF)/g' \
++	      -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GL_GNULIB_SPRINTF_POSIX)/g' \
++	      -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GL_GNULIB_STDIO_H_NONBLOCKING)/g' \
++	      -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GL_GNULIB_STDIO_H_SIGPIPE)/g' \
++	      -e 's/@''GNULIB_TMPFILE''@/$(GL_GNULIB_TMPFILE)/g' \
++	      -e 's/@''GNULIB_VASPRINTF''@/$(GL_GNULIB_VASPRINTF)/g' \
++	      -e 's/@''GNULIB_VDPRINTF''@/$(GL_GNULIB_VDPRINTF)/g' \
++	      -e 's/@''GNULIB_VFPRINTF''@/$(GL_GNULIB_VFPRINTF)/g' \
++	      -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GL_GNULIB_VFPRINTF_POSIX)/g' \
++	      -e 's/@''GNULIB_VFSCANF''@/$(GL_GNULIB_VFSCANF)/g' \
++	      -e 's/@''GNULIB_VSCANF''@/$(GL_GNULIB_VSCANF)/g' \
++	      -e 's/@''GNULIB_VPRINTF''@/$(GL_GNULIB_VPRINTF)/g' \
++	      -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GL_GNULIB_VPRINTF_POSIX)/g' \
++	      -e 's/@''GNULIB_VSNPRINTF''@/$(GL_GNULIB_VSNPRINTF)/g' \
++	      -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GL_GNULIB_VSPRINTF_POSIX)/g' \
++	      -e 's/@''GNULIB_MDA_FCLOSEALL''@/$(GL_GNULIB_MDA_FCLOSEALL)/g' \
++	      -e 's/@''GNULIB_MDA_FDOPEN''@/$(GL_GNULIB_MDA_FDOPEN)/g' \
++	      -e 's/@''GNULIB_MDA_FILENO''@/$(GL_GNULIB_MDA_FILENO)/g' \
++	      -e 's/@''GNULIB_MDA_GETW''@/$(GL_GNULIB_MDA_GETW)/g' \
++	      -e 's/@''GNULIB_MDA_PUTW''@/$(GL_GNULIB_MDA_PUTW)/g' \
++	      -e 's/@''GNULIB_MDA_TEMPNAM''@/$(GL_GNULIB_MDA_TEMPNAM)/g' \
+ 	      < $(srcdir)/stdio.in.h | \
+ 	  sed -e 's|@''HAVE_DECL_FCLOSEALL''@|$(HAVE_DECL_FCLOSEALL)|g' \
+ 	      -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \
+@@ -1236,49 +1343,51 @@ stdlib.h: stdlib.in.h $(top_builddir)/co
+ 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+-	      -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \
+-	      -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GNULIB_ALIGNED_ALLOC)/g' \
+-	      -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \
+-	      -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \
+-	      -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \
+-	      -e 's/@''GNULIB_FREE_POSIX''@/$(GNULIB_FREE_POSIX)/g' \
+-	      -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \
+-	      -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \
+-	      -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
+-	      -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
+-	      -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \
+-	      -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \
+-	      -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \
+-	      -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \
+-	      -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \
+-	      -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \
+-	      -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GNULIB_POSIX_MEMALIGN)/g' \
+-	      -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
+-	      -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
+-	      -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
+-	      -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
+-	      -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \
+-	      -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
+-	      -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
+-	      -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
+-	      -e 's/@''GNULIB_REALLOCARRAY''@/$(GNULIB_REALLOCARRAY)/g' \
+-	      -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \
+-	      -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \
+-	      -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \
+-	      -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \
+-	      -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \
+-	      -e 's/@''GNULIB_STRTOLD''@/$(GNULIB_STRTOLD)/g' \
+-	      -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \
+-	      -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \
+-	      -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
+-	      -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
+-	      -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
+-	      -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
+-	      -e 's/@''GNULIB_MDA_ECVT''@/$(GNULIB_MDA_ECVT)/g' \
+-	      -e 's/@''GNULIB_MDA_FCVT''@/$(GNULIB_MDA_FCVT)/g' \
+-	      -e 's/@''GNULIB_MDA_GCVT''@/$(GNULIB_MDA_GCVT)/g' \
+-	      -e 's/@''GNULIB_MDA_MKTEMP''@/$(GNULIB_MDA_MKTEMP)/g' \
+-	      -e 's/@''GNULIB_MDA_PUTENV''@/$(GNULIB_MDA_PUTENV)/g' \
++	      -e 's/@''GNULIB__EXIT''@/$(GL_GNULIB__EXIT)/g' \
++	      -e 's/@''GNULIB_ALIGNED_ALLOC''@/$(GL_GNULIB_ALIGNED_ALLOC)/g' \
++	      -e 's/@''GNULIB_ATOLL''@/$(GL_GNULIB_ATOLL)/g' \
++	      -e 's/@''GNULIB_CALLOC_POSIX''@/$(GL_GNULIB_CALLOC_POSIX)/g' \
++	      -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GL_GNULIB_CANONICALIZE_FILE_NAME)/g' \
++	      -e 's/@''GNULIB_FREE_POSIX''@/$(GL_GNULIB_FREE_POSIX)/g' \
++	      -e 's/@''GNULIB_GETLOADAVG''@/$(GL_GNULIB_GETLOADAVG)/g' \
++	      -e 's/@''GNULIB_GETSUBOPT''@/$(GL_GNULIB_GETSUBOPT)/g' \
++	      -e 's/@''GNULIB_GRANTPT''@/$(GL_GNULIB_GRANTPT)/g' \
++	      -e 's/@''GNULIB_MALLOC_POSIX''@/$(GL_GNULIB_MALLOC_POSIX)/g' \
++	      -e 's/@''GNULIB_MBTOWC''@/$(GL_GNULIB_MBTOWC)/g' \
++	      -e 's/@''GNULIB_MKDTEMP''@/$(GL_GNULIB_MKDTEMP)/g' \
++	      -e 's/@''GNULIB_MKOSTEMP''@/$(GL_GNULIB_MKOSTEMP)/g' \
++	      -e 's/@''GNULIB_MKOSTEMPS''@/$(GL_GNULIB_MKOSTEMPS)/g' \
++	      -e 's/@''GNULIB_MKSTEMP''@/$(GL_GNULIB_MKSTEMP)/g' \
++	      -e 's/@''GNULIB_MKSTEMPS''@/$(GL_GNULIB_MKSTEMPS)/g' \
++	      -e 's/@''GNULIB_POSIX_MEMALIGN''@/$(GL_GNULIB_POSIX_MEMALIGN)/g' \
++	      -e 's/@''GNULIB_POSIX_OPENPT''@/$(GL_GNULIB_POSIX_OPENPT)/g' \
++	      -e 's/@''GNULIB_PTSNAME''@/$(GL_GNULIB_PTSNAME)/g' \
++	      -e 's/@''GNULIB_PTSNAME_R''@/$(GL_GNULIB_PTSNAME_R)/g' \
++	      -e 's/@''GNULIB_PUTENV''@/$(GL_GNULIB_PUTENV)/g' \
++	      -e 's/@''GNULIB_QSORT_R''@/$(GL_GNULIB_QSORT_R)/g' \
++	      -e 's/@''GNULIB_RANDOM''@/$(GL_GNULIB_RANDOM)/g' \
++	      -e 's/@''GNULIB_RANDOM_R''@/$(GL_GNULIB_RANDOM_R)/g' \
++	      -e 's/@''GNULIB_REALLOC_POSIX''@/$(GL_GNULIB_REALLOC_POSIX)/g' \
++	      -e 's/@''GNULIB_REALLOCARRAY''@/$(GL_GNULIB_REALLOCARRAY)/g' \
++	      -e 's/@''GNULIB_REALPATH''@/$(GL_GNULIB_REALPATH)/g' \
++	      -e 's/@''GNULIB_RPMATCH''@/$(GL_GNULIB_RPMATCH)/g' \
++	      -e 's/@''GNULIB_SECURE_GETENV''@/$(GL_GNULIB_SECURE_GETENV)/g' \
++	      -e 's/@''GNULIB_SETENV''@/$(GL_GNULIB_SETENV)/g' \
++	      -e 's/@''GNULIB_STRTOD''@/$(GL_GNULIB_STRTOD)/g' \
++	      -e 's/@''GNULIB_STRTOL''@/$(GL_GNULIB_STRTOL)/g' \
++	      -e 's/@''GNULIB_STRTOLD''@/$(GL_GNULIB_STRTOLD)/g' \
++	      -e 's/@''GNULIB_STRTOLL''@/$(GL_GNULIB_STRTOLL)/g' \
++	      -e 's/@''GNULIB_STRTOUL''@/$(GL_GNULIB_STRTOUL)/g' \
++	      -e 's/@''GNULIB_STRTOULL''@/$(GL_GNULIB_STRTOULL)/g' \
++	      -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GL_GNULIB_SYSTEM_POSIX)/g' \
++	      -e 's/@''GNULIB_UNLOCKPT''@/$(GL_GNULIB_UNLOCKPT)/g' \
++	      -e 's/@''GNULIB_UNSETENV''@/$(GL_GNULIB_UNSETENV)/g' \
++	      -e 's/@''GNULIB_WCTOMB''@/$(GL_GNULIB_WCTOMB)/g' \
++	      -e 's/@''GNULIB_MDA_ECVT''@/$(GL_GNULIB_MDA_ECVT)/g' \
++	      -e 's/@''GNULIB_MDA_FCVT''@/$(GL_GNULIB_MDA_FCVT)/g' \
++	      -e 's/@''GNULIB_MDA_GCVT''@/$(GL_GNULIB_MDA_GCVT)/g' \
++	      -e 's/@''GNULIB_MDA_MKTEMP''@/$(GL_GNULIB_MDA_MKTEMP)/g' \
++	      -e 's/@''GNULIB_MDA_PUTENV''@/$(GL_GNULIB_MDA_PUTENV)/g' \
+ 	      < $(srcdir)/stdlib.in.h | \
+ 	  sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
+ 	      -e 's|@''HAVE_ALIGNED_ALLOC''@|$(HAVE_ALIGNED_ALLOC)|g' \
+@@ -1314,8 +1423,10 @@ stdlib.h: stdlib.in.h $(top_builddir)/co
+ 	      -e 's|@''HAVE_SETSTATE''@|$(HAVE_SETSTATE)|g' \
+ 	      -e 's|@''HAVE_DECL_SETSTATE''@|$(HAVE_DECL_SETSTATE)|g' \
+ 	      -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \
++	      -e 's|@''HAVE_STRTOL''@|$(HAVE_STRTOL)|g' \
+ 	      -e 's|@''HAVE_STRTOLD''@|$(HAVE_STRTOLD)|g' \
+ 	      -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \
++	      -e 's|@''HAVE_STRTOUL''@|$(HAVE_STRTOUL)|g' \
+ 	      -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \
+ 	      -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \
+ 	      -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \
+@@ -1337,11 +1448,16 @@ stdlib.h: stdlib.in.h $(top_builddir)/co
+ 	      -e 's|@''REPLACE_RANDOM''@|$(REPLACE_RANDOM)|g' \
+ 	      -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
+ 	      -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
++	      -e 's|@''REPLACE_REALLOCARRAY''@|$(REPLACE_REALLOCARRAY)|g' \
+ 	      -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
+ 	      -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \
+ 	      -e 's|@''REPLACE_SETSTATE''@|$(REPLACE_SETSTATE)|g' \
+ 	      -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \
++	      -e 's|@''REPLACE_STRTOL''@|$(REPLACE_STRTOL)|g' \
+ 	      -e 's|@''REPLACE_STRTOLD''@|$(REPLACE_STRTOLD)|g' \
++	      -e 's|@''REPLACE_STRTOLL''@|$(REPLACE_STRTOLL)|g' \
++	      -e 's|@''REPLACE_STRTOUL''@|$(REPLACE_STRTOUL)|g' \
++	      -e 's|@''REPLACE_STRTOULL''@|$(REPLACE_STRTOULL)|g' \
+ 	      -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \
+ 	      -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
+ 	      -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+@@ -1444,49 +1560,49 @@ string.h: string.in.h $(top_builddir)/co
+ 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+-	      -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GNULIB_EXPLICIT_BZERO)/g' \
+-	      -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
+-	      -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \
+-	      -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \
+-	      -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \
+-	      -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \
+-	      -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \
+-	      -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \
+-	      -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \
+-	      -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \
+-	      -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \
+-	      -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \
+-	      -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \
+-	      -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \
+-	      -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \
+-	      -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \
+-	      -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \
+-	      -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \
+-	      -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \
+-	      -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \
+-	      -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \
+-	      -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \
+-	      -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \
+-	      -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \
+-	      -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \
+-	      -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \
+-	      -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \
+-	      -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \
+-	      -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \
+-	      -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \
+-	      -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \
+-	      -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \
+-	      -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \
+-	      -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \
+-	      -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \
+-	      -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
+-	      -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GNULIB_STRERRORNAME_NP)/g' \
+-	      -e 's/@''GNULIB_SIGABBREV_NP''@/$(GNULIB_SIGABBREV_NP)/g' \
+-	      -e 's/@''GNULIB_SIGDESCR_NP''@/$(GNULIB_SIGDESCR_NP)/g' \
+-	      -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
+-	      -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
+-	      -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GNULIB_MDA_MEMCCPY)/g' \
+-	      -e 's/@''GNULIB_MDA_STRDUP''@/$(GNULIB_MDA_STRDUP)/g' \
++	      -e 's/@''GNULIB_EXPLICIT_BZERO''@/$(GL_GNULIB_EXPLICIT_BZERO)/g' \
++	      -e 's/@''GNULIB_FFSL''@/$(GL_GNULIB_FFSL)/g' \
++	      -e 's/@''GNULIB_FFSLL''@/$(GL_GNULIB_FFSLL)/g' \
++	      -e 's/@''GNULIB_MBSLEN''@/$(GL_GNULIB_MBSLEN)/g' \
++	      -e 's/@''GNULIB_MBSNLEN''@/$(GL_GNULIB_MBSNLEN)/g' \
++	      -e 's/@''GNULIB_MBSCHR''@/$(GL_GNULIB_MBSCHR)/g' \
++	      -e 's/@''GNULIB_MBSRCHR''@/$(GL_GNULIB_MBSRCHR)/g' \
++	      -e 's/@''GNULIB_MBSSTR''@/$(GL_GNULIB_MBSSTR)/g' \
++	      -e 's/@''GNULIB_MBSCASECMP''@/$(GL_GNULIB_MBSCASECMP)/g' \
++	      -e 's/@''GNULIB_MBSNCASECMP''@/$(GL_GNULIB_MBSNCASECMP)/g' \
++	      -e 's/@''GNULIB_MBSPCASECMP''@/$(GL_GNULIB_MBSPCASECMP)/g' \
++	      -e 's/@''GNULIB_MBSCASESTR''@/$(GL_GNULIB_MBSCASESTR)/g' \
++	      -e 's/@''GNULIB_MBSCSPN''@/$(GL_GNULIB_MBSCSPN)/g' \
++	      -e 's/@''GNULIB_MBSPBRK''@/$(GL_GNULIB_MBSPBRK)/g' \
++	      -e 's/@''GNULIB_MBSSPN''@/$(GL_GNULIB_MBSSPN)/g' \
++	      -e 's/@''GNULIB_MBSSEP''@/$(GL_GNULIB_MBSSEP)/g' \
++	      -e 's/@''GNULIB_MBSTOK_R''@/$(GL_GNULIB_MBSTOK_R)/g' \
++	      -e 's/@''GNULIB_MEMCHR''@/$(GL_GNULIB_MEMCHR)/g' \
++	      -e 's/@''GNULIB_MEMMEM''@/$(GL_GNULIB_MEMMEM)/g' \
++	      -e 's/@''GNULIB_MEMPCPY''@/$(GL_GNULIB_MEMPCPY)/g' \
++	      -e 's/@''GNULIB_MEMRCHR''@/$(GL_GNULIB_MEMRCHR)/g' \
++	      -e 's/@''GNULIB_RAWMEMCHR''@/$(GL_GNULIB_RAWMEMCHR)/g' \
++	      -e 's/@''GNULIB_STPCPY''@/$(GL_GNULIB_STPCPY)/g' \
++	      -e 's/@''GNULIB_STPNCPY''@/$(GL_GNULIB_STPNCPY)/g' \
++	      -e 's/@''GNULIB_STRCHRNUL''@/$(GL_GNULIB_STRCHRNUL)/g' \
++	      -e 's/@''GNULIB_STRDUP''@/$(GL_GNULIB_STRDUP)/g' \
++	      -e 's/@''GNULIB_STRNCAT''@/$(GL_GNULIB_STRNCAT)/g' \
++	      -e 's/@''GNULIB_STRNDUP''@/$(GL_GNULIB_STRNDUP)/g' \
++	      -e 's/@''GNULIB_STRNLEN''@/$(GL_GNULIB_STRNLEN)/g' \
++	      -e 's/@''GNULIB_STRPBRK''@/$(GL_GNULIB_STRPBRK)/g' \
++	      -e 's/@''GNULIB_STRSEP''@/$(GL_GNULIB_STRSEP)/g' \
++	      -e 's/@''GNULIB_STRSTR''@/$(GL_GNULIB_STRSTR)/g' \
++	      -e 's/@''GNULIB_STRCASESTR''@/$(GL_GNULIB_STRCASESTR)/g' \
++	      -e 's/@''GNULIB_STRTOK_R''@/$(GL_GNULIB_STRTOK_R)/g' \
++	      -e 's/@''GNULIB_STRERROR''@/$(GL_GNULIB_STRERROR)/g' \
++	      -e 's/@''GNULIB_STRERROR_R''@/$(GL_GNULIB_STRERROR_R)/g' \
++	      -e 's/@''GNULIB_STRERRORNAME_NP''@/$(GL_GNULIB_STRERRORNAME_NP)/g' \
++	      -e 's/@''GNULIB_SIGABBREV_NP''@/$(GL_GNULIB_SIGABBREV_NP)/g' \
++	      -e 's/@''GNULIB_SIGDESCR_NP''@/$(GL_GNULIB_SIGDESCR_NP)/g' \
++	      -e 's/@''GNULIB_STRSIGNAL''@/$(GL_GNULIB_STRSIGNAL)/g' \
++	      -e 's/@''GNULIB_STRVERSCMP''@/$(GL_GNULIB_STRVERSCMP)/g' \
++	      -e 's/@''GNULIB_MDA_MEMCCPY''@/$(GL_GNULIB_MDA_MEMCCPY)/g' \
++	      -e 's/@''GNULIB_MDA_STRDUP''@/$(GL_GNULIB_MDA_STRDUP)/g' \
+ 	      < $(srcdir)/string.in.h | \
+ 	  sed -e 's|@''HAVE_EXPLICIT_BZERO''@|$(HAVE_EXPLICIT_BZERO)|g' \
+ 	      -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+@@ -1556,7 +1672,7 @@ strings.h: strings.in.h $(top_builddir)/
+ 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
+-	      -e 's/@''GNULIB_FFS''@/$(GNULIB_FFS)/g' \
++	      -e 's/@''GNULIB_FFS''@/$(GL_GNULIB_FFS)/g' \
+ 	      -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
+ 	      -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
+ 	      -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|g' \
+@@ -1638,25 +1754,25 @@ sys/stat.h: sys_stat.in.h $(top_builddir
+ 	      -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
+ 	      -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \
+ 	      -e 's|@''WINDOWS_STAT_TIMESPEC''@|$(WINDOWS_STAT_TIMESPEC)|g' \
+-	      -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \
+-	      -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \
+-	      -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \
+-	      -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \
+-	      -e 's/@''GNULIB_GETUMASK''@/$(GNULIB_GETUMASK)/g' \
+-	      -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \
+-	      -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \
+-	      -e 's/@''GNULIB_MKDIR''@/$(GNULIB_MKDIR)/g' \
+-	      -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \
+-	      -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \
+-	      -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \
+-	      -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \
+-	      -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \
+-	      -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \
+-	      -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \
+-	      -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GNULIB_OVERRIDES_STRUCT_STAT)/g' \
+-	      -e 's/@''GNULIB_MDA_CHMOD''@/$(GNULIB_MDA_CHMOD)/g' \
+-	      -e 's/@''GNULIB_MDA_MKDIR''@/$(GNULIB_MDA_MKDIR)/g' \
+-	      -e 's/@''GNULIB_MDA_UMASK''@/$(GNULIB_MDA_UMASK)/g' \
++	      -e 's/@''GNULIB_FCHMODAT''@/$(GL_GNULIB_FCHMODAT)/g' \
++	      -e 's/@''GNULIB_FSTAT''@/$(GL_GNULIB_FSTAT)/g' \
++	      -e 's/@''GNULIB_FSTATAT''@/$(GL_GNULIB_FSTATAT)/g' \
++	      -e 's/@''GNULIB_FUTIMENS''@/$(GL_GNULIB_FUTIMENS)/g' \
++	      -e 's/@''GNULIB_GETUMASK''@/$(GL_GNULIB_GETUMASK)/g' \
++	      -e 's/@''GNULIB_LCHMOD''@/$(GL_GNULIB_LCHMOD)/g' \
++	      -e 's/@''GNULIB_LSTAT''@/$(GL_GNULIB_LSTAT)/g' \
++	      -e 's/@''GNULIB_MKDIR''@/$(GL_GNULIB_MKDIR)/g' \
++	      -e 's/@''GNULIB_MKDIRAT''@/$(GL_GNULIB_MKDIRAT)/g' \
++	      -e 's/@''GNULIB_MKFIFO''@/$(GL_GNULIB_MKFIFO)/g' \
++	      -e 's/@''GNULIB_MKFIFOAT''@/$(GL_GNULIB_MKFIFOAT)/g' \
++	      -e 's/@''GNULIB_MKNOD''@/$(GL_GNULIB_MKNOD)/g' \
++	      -e 's/@''GNULIB_MKNODAT''@/$(GL_GNULIB_MKNODAT)/g' \
++	      -e 's/@''GNULIB_STAT''@/$(GL_GNULIB_STAT)/g' \
++	      -e 's/@''GNULIB_UTIMENSAT''@/$(GL_GNULIB_UTIMENSAT)/g' \
++	      -e 's/@''GNULIB_OVERRIDES_STRUCT_STAT''@/$(GL_GNULIB_OVERRIDES_STRUCT_STAT)/g' \
++	      -e 's/@''GNULIB_MDA_CHMOD''@/$(GL_GNULIB_MDA_CHMOD)/g' \
++	      -e 's/@''GNULIB_MDA_MKDIR''@/$(GL_GNULIB_MDA_MKDIR)/g' \
++	      -e 's/@''GNULIB_MDA_UMASK''@/$(GL_GNULIB_MDA_UMASK)/g' \
+ 	      -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \
+ 	      -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \
+ 	      -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \
+@@ -1744,18 +1860,18 @@ time.h: time.in.h $(top_builddir)/config
+ 	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
+-	      -e 's/@''GNULIB_CTIME''@/$(GNULIB_CTIME)/g' \
+-	      -e 's/@''GNULIB_LOCALTIME''@/$(GNULIB_LOCALTIME)/g' \
+-	      -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \
+-	      -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \
+-	      -e 's/@''GNULIB_STRFTIME''@/$(GNULIB_STRFTIME)/g' \
+-	      -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \
+-	      -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \
+-	      -e 's/@''GNULIB_TIMESPEC_GET''@/$(GNULIB_TIMESPEC_GET)/g' \
+-	      -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
+-	      -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \
+-	      -e 's/@''GNULIB_TZSET''@/$(GNULIB_TZSET)/g' \
+-	      -e 's/@''GNULIB_MDA_TZSET''@/$(GNULIB_MDA_TZSET)/g' \
++	      -e 's/@''GNULIB_CTIME''@/$(GL_GNULIB_CTIME)/g' \
++	      -e 's/@''GNULIB_LOCALTIME''@/$(GL_GNULIB_LOCALTIME)/g' \
++	      -e 's/@''GNULIB_MKTIME''@/$(GL_GNULIB_MKTIME)/g' \
++	      -e 's/@''GNULIB_NANOSLEEP''@/$(GL_GNULIB_NANOSLEEP)/g' \
++	      -e 's/@''GNULIB_STRFTIME''@/$(GL_GNULIB_STRFTIME)/g' \
++	      -e 's/@''GNULIB_STRPTIME''@/$(GL_GNULIB_STRPTIME)/g' \
++	      -e 's/@''GNULIB_TIMEGM''@/$(GL_GNULIB_TIMEGM)/g' \
++	      -e 's/@''GNULIB_TIMESPEC_GET''@/$(GL_GNULIB_TIMESPEC_GET)/g' \
++	      -e 's/@''GNULIB_TIME_R''@/$(GL_GNULIB_TIME_R)/g' \
++	      -e 's/@''GNULIB_TIME_RZ''@/$(GL_GNULIB_TIME_RZ)/g' \
++	      -e 's/@''GNULIB_TZSET''@/$(GL_GNULIB_TZSET)/g' \
++	      -e 's/@''GNULIB_MDA_TZSET''@/$(GL_GNULIB_MDA_TZSET)/g' \
+ 	      -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
+ 	      -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
+ 	      -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
+@@ -1806,89 +1922,89 @@ unistd.h: unistd.in.h $(top_builddir)/co
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+ 	      -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \
+-	      -e 's/@''GNULIB_ACCESS''@/$(GNULIB_ACCESS)/g' \
+-	      -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
+-	      -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
+-	      -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+-	      -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GNULIB_COPY_FILE_RANGE)/g' \
+-	      -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \
+-	      -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \
+-	      -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \
+-	      -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \
+-	      -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \
+-	      -e 's/@''GNULIB_EXECL''@/$(GNULIB_EXECL)/g' \
+-	      -e 's/@''GNULIB_EXECLE''@/$(GNULIB_EXECLE)/g' \
+-	      -e 's/@''GNULIB_EXECLP''@/$(GNULIB_EXECLP)/g' \
+-	      -e 's/@''GNULIB_EXECV''@/$(GNULIB_EXECV)/g' \
+-	      -e 's/@''GNULIB_EXECVE''@/$(GNULIB_EXECVE)/g' \
+-	      -e 's/@''GNULIB_EXECVP''@/$(GNULIB_EXECVP)/g' \
+-	      -e 's/@''GNULIB_EXECVPE''@/$(GNULIB_EXECVPE)/g' \
+-	      -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \
+-	      -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \
+-	      -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \
+-	      -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \
+-	      -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \
+-	      -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \
+-	      -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \
+-	      -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \
+-	      -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \
+-	      -e 's/@''GNULIB_GETENTROPY''@/$(GNULIB_GETENTROPY)/g' \
+-	      -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \
+-	      -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \
+-	      -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \
+-	      -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \
+-	      -e 's/@''GNULIB_GETOPT_POSIX''@/$(GNULIB_GETOPT_POSIX)/g' \
+-	      -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \
+-	      -e 's/@''GNULIB_GETPASS''@/$(GNULIB_GETPASS)/g' \
+-	      -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \
+-	      -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
+-	      -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \
+-	      -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \
+-	      -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \
+-	      -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \
+-	      -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \
+-	      -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \
+-	      -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
+-	      -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
+-	      -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
+-	      -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \
+-	      -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \
+-	      -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \
+-	      -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \
+-	      -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \
+-	      -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \
+-	      -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \
+-	      -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \
+-	      -e 's/@''GNULIB_TRUNCATE''@/$(GNULIB_TRUNCATE)/g' \
+-	      -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
+-	      -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
+-	      -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \
+-	      -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \
+-	      -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \
+-	      -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \
+-	      -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \
+-	      -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \
+-	      -e 's/@''GNULIB_MDA_ACCESS''@/$(GNULIB_MDA_ACCESS)/g' \
+-	      -e 's/@''GNULIB_MDA_CHDIR''@/$(GNULIB_MDA_CHDIR)/g' \
+-	      -e 's/@''GNULIB_MDA_CLOSE''@/$(GNULIB_MDA_CLOSE)/g' \
+-	      -e 's/@''GNULIB_MDA_DUP''@/$(GNULIB_MDA_DUP)/g' \
+-	      -e 's/@''GNULIB_MDA_DUP2''@/$(GNULIB_MDA_DUP2)/g' \
+-	      -e 's/@''GNULIB_MDA_EXECL''@/$(GNULIB_MDA_EXECL)/g' \
+-	      -e 's/@''GNULIB_MDA_EXECLE''@/$(GNULIB_MDA_EXECLE)/g' \
+-	      -e 's/@''GNULIB_MDA_EXECLP''@/$(GNULIB_MDA_EXECLP)/g' \
+-	      -e 's/@''GNULIB_MDA_EXECV''@/$(GNULIB_MDA_EXECV)/g' \
+-	      -e 's/@''GNULIB_MDA_EXECVE''@/$(GNULIB_MDA_EXECVE)/g' \
+-	      -e 's/@''GNULIB_MDA_EXECVP''@/$(GNULIB_MDA_EXECVP)/g' \
+-	      -e 's/@''GNULIB_MDA_EXECVPE''@/$(GNULIB_MDA_EXECVPE)/g' \
+-	      -e 's/@''GNULIB_MDA_GETCWD''@/$(GNULIB_MDA_GETCWD)/g' \
+-	      -e 's/@''GNULIB_MDA_GETPID''@/$(GNULIB_MDA_GETPID)/g' \
+-	      -e 's/@''GNULIB_MDA_ISATTY''@/$(GNULIB_MDA_ISATTY)/g' \
+-	      -e 's/@''GNULIB_MDA_LSEEK''@/$(GNULIB_MDA_LSEEK)/g' \
+-	      -e 's/@''GNULIB_MDA_READ''@/$(GNULIB_MDA_READ)/g' \
+-	      -e 's/@''GNULIB_MDA_RMDIR''@/$(GNULIB_MDA_RMDIR)/g' \
+-	      -e 's/@''GNULIB_MDA_SWAB''@/$(GNULIB_MDA_SWAB)/g' \
+-	      -e 's/@''GNULIB_MDA_UNLINK''@/$(GNULIB_MDA_UNLINK)/g' \
+-	      -e 's/@''GNULIB_MDA_WRITE''@/$(GNULIB_MDA_WRITE)/g' \
++	      -e 's/@''GNULIB_ACCESS''@/$(GL_GNULIB_ACCESS)/g' \
++	      -e 's/@''GNULIB_CHDIR''@/$(GL_GNULIB_CHDIR)/g' \
++	      -e 's/@''GNULIB_CHOWN''@/$(GL_GNULIB_CHOWN)/g' \
++	      -e 's/@''GNULIB_CLOSE''@/$(GL_GNULIB_CLOSE)/g' \
++	      -e 's/@''GNULIB_COPY_FILE_RANGE''@/$(GL_GNULIB_COPY_FILE_RANGE)/g' \
++	      -e 's/@''GNULIB_DUP''@/$(GL_GNULIB_DUP)/g' \
++	      -e 's/@''GNULIB_DUP2''@/$(GL_GNULIB_DUP2)/g' \
++	      -e 's/@''GNULIB_DUP3''@/$(GL_GNULIB_DUP3)/g' \
++	      -e 's/@''GNULIB_ENVIRON''@/$(GL_GNULIB_ENVIRON)/g' \
++	      -e 's/@''GNULIB_EUIDACCESS''@/$(GL_GNULIB_EUIDACCESS)/g' \
++	      -e 's/@''GNULIB_EXECL''@/$(GL_GNULIB_EXECL)/g' \
++	      -e 's/@''GNULIB_EXECLE''@/$(GL_GNULIB_EXECLE)/g' \
++	      -e 's/@''GNULIB_EXECLP''@/$(GL_GNULIB_EXECLP)/g' \
++	      -e 's/@''GNULIB_EXECV''@/$(GL_GNULIB_EXECV)/g' \
++	      -e 's/@''GNULIB_EXECVE''@/$(GL_GNULIB_EXECVE)/g' \
++	      -e 's/@''GNULIB_EXECVP''@/$(GL_GNULIB_EXECVP)/g' \
++	      -e 's/@''GNULIB_EXECVPE''@/$(GL_GNULIB_EXECVPE)/g' \
++	      -e 's/@''GNULIB_FACCESSAT''@/$(GL_GNULIB_FACCESSAT)/g' \
++	      -e 's/@''GNULIB_FCHDIR''@/$(GL_GNULIB_FCHDIR)/g' \
++	      -e 's/@''GNULIB_FCHOWNAT''@/$(GL_GNULIB_FCHOWNAT)/g' \
++	      -e 's/@''GNULIB_FDATASYNC''@/$(GL_GNULIB_FDATASYNC)/g' \
++	      -e 's/@''GNULIB_FSYNC''@/$(GL_GNULIB_FSYNC)/g' \
++	      -e 's/@''GNULIB_FTRUNCATE''@/$(GL_GNULIB_FTRUNCATE)/g' \
++	      -e 's/@''GNULIB_GETCWD''@/$(GL_GNULIB_GETCWD)/g' \
++	      -e 's/@''GNULIB_GETDOMAINNAME''@/$(GL_GNULIB_GETDOMAINNAME)/g' \
++	      -e 's/@''GNULIB_GETDTABLESIZE''@/$(GL_GNULIB_GETDTABLESIZE)/g' \
++	      -e 's/@''GNULIB_GETENTROPY''@/$(GL_GNULIB_GETENTROPY)/g' \
++	      -e 's/@''GNULIB_GETGROUPS''@/$(GL_GNULIB_GETGROUPS)/g' \
++	      -e 's/@''GNULIB_GETHOSTNAME''@/$(GL_GNULIB_GETHOSTNAME)/g' \
++	      -e 's/@''GNULIB_GETLOGIN''@/$(GL_GNULIB_GETLOGIN)/g' \
++	      -e 's/@''GNULIB_GETLOGIN_R''@/$(GL_GNULIB_GETLOGIN_R)/g' \
++	      -e 's/@''GNULIB_GETOPT_POSIX''@/$(GL_GNULIB_GETOPT_POSIX)/g' \
++	      -e 's/@''GNULIB_GETPAGESIZE''@/$(GL_GNULIB_GETPAGESIZE)/g' \
++	      -e 's/@''GNULIB_GETPASS''@/$(GL_GNULIB_GETPASS)/g' \
++	      -e 's/@''GNULIB_GETUSERSHELL''@/$(GL_GNULIB_GETUSERSHELL)/g' \
++	      -e 's/@''GNULIB_GROUP_MEMBER''@/$(GL_GNULIB_GROUP_MEMBER)/g' \
++	      -e 's/@''GNULIB_ISATTY''@/$(GL_GNULIB_ISATTY)/g' \
++	      -e 's/@''GNULIB_LCHOWN''@/$(GL_GNULIB_LCHOWN)/g' \
++	      -e 's/@''GNULIB_LINK''@/$(GL_GNULIB_LINK)/g' \
++	      -e 's/@''GNULIB_LINKAT''@/$(GL_GNULIB_LINKAT)/g' \
++	      -e 's/@''GNULIB_LSEEK''@/$(GL_GNULIB_LSEEK)/g' \
++	      -e 's/@''GNULIB_PIPE''@/$(GL_GNULIB_PIPE)/g' \
++	      -e 's/@''GNULIB_PIPE2''@/$(GL_GNULIB_PIPE2)/g' \
++	      -e 's/@''GNULIB_PREAD''@/$(GL_GNULIB_PREAD)/g' \
++	      -e 's/@''GNULIB_PWRITE''@/$(GL_GNULIB_PWRITE)/g' \
++	      -e 's/@''GNULIB_READ''@/$(GL_GNULIB_READ)/g' \
++	      -e 's/@''GNULIB_READLINK''@/$(GL_GNULIB_READLINK)/g' \
++	      -e 's/@''GNULIB_READLINKAT''@/$(GL_GNULIB_READLINKAT)/g' \
++	      -e 's/@''GNULIB_RMDIR''@/$(GL_GNULIB_RMDIR)/g' \
++	      -e 's/@''GNULIB_SETHOSTNAME''@/$(GL_GNULIB_SETHOSTNAME)/g' \
++	      -e 's/@''GNULIB_SLEEP''@/$(GL_GNULIB_SLEEP)/g' \
++	      -e 's/@''GNULIB_SYMLINK''@/$(GL_GNULIB_SYMLINK)/g' \
++	      -e 's/@''GNULIB_SYMLINKAT''@/$(GL_GNULIB_SYMLINKAT)/g' \
++	      -e 's/@''GNULIB_TRUNCATE''@/$(GL_GNULIB_TRUNCATE)/g' \
++	      -e 's/@''GNULIB_TTYNAME_R''@/$(GL_GNULIB_TTYNAME_R)/g' \
++	      -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GL_GNULIB_UNISTD_H_GETOPT)/g' \
++	      -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GL_GNULIB_UNISTD_H_NONBLOCKING)/g' \
++	      -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GL_GNULIB_UNISTD_H_SIGPIPE)/g' \
++	      -e 's/@''GNULIB_UNLINK''@/$(GL_GNULIB_UNLINK)/g' \
++	      -e 's/@''GNULIB_UNLINKAT''@/$(GL_GNULIB_UNLINKAT)/g' \
++	      -e 's/@''GNULIB_USLEEP''@/$(GL_GNULIB_USLEEP)/g' \
++	      -e 's/@''GNULIB_WRITE''@/$(GL_GNULIB_WRITE)/g' \
++	      -e 's/@''GNULIB_MDA_ACCESS''@/$(GL_GNULIB_MDA_ACCESS)/g' \
++	      -e 's/@''GNULIB_MDA_CHDIR''@/$(GL_GNULIB_MDA_CHDIR)/g' \
++	      -e 's/@''GNULIB_MDA_CLOSE''@/$(GL_GNULIB_MDA_CLOSE)/g' \
++	      -e 's/@''GNULIB_MDA_DUP''@/$(GL_GNULIB_MDA_DUP)/g' \
++	      -e 's/@''GNULIB_MDA_DUP2''@/$(GL_GNULIB_MDA_DUP2)/g' \
++	      -e 's/@''GNULIB_MDA_EXECL''@/$(GL_GNULIB_MDA_EXECL)/g' \
++	      -e 's/@''GNULIB_MDA_EXECLE''@/$(GL_GNULIB_MDA_EXECLE)/g' \
++	      -e 's/@''GNULIB_MDA_EXECLP''@/$(GL_GNULIB_MDA_EXECLP)/g' \
++	      -e 's/@''GNULIB_MDA_EXECV''@/$(GL_GNULIB_MDA_EXECV)/g' \
++	      -e 's/@''GNULIB_MDA_EXECVE''@/$(GL_GNULIB_MDA_EXECVE)/g' \
++	      -e 's/@''GNULIB_MDA_EXECVP''@/$(GL_GNULIB_MDA_EXECVP)/g' \
++	      -e 's/@''GNULIB_MDA_EXECVPE''@/$(GL_GNULIB_MDA_EXECVPE)/g' \
++	      -e 's/@''GNULIB_MDA_GETCWD''@/$(GL_GNULIB_MDA_GETCWD)/g' \
++	      -e 's/@''GNULIB_MDA_GETPID''@/$(GL_GNULIB_MDA_GETPID)/g' \
++	      -e 's/@''GNULIB_MDA_ISATTY''@/$(GL_GNULIB_MDA_ISATTY)/g' \
++	      -e 's/@''GNULIB_MDA_LSEEK''@/$(GL_GNULIB_MDA_LSEEK)/g' \
++	      -e 's/@''GNULIB_MDA_READ''@/$(GL_GNULIB_MDA_READ)/g' \
++	      -e 's/@''GNULIB_MDA_RMDIR''@/$(GL_GNULIB_MDA_RMDIR)/g' \
++	      -e 's/@''GNULIB_MDA_SWAB''@/$(GL_GNULIB_MDA_SWAB)/g' \
++	      -e 's/@''GNULIB_MDA_UNLINK''@/$(GL_GNULIB_MDA_UNLINK)/g' \
++	      -e 's/@''GNULIB_MDA_WRITE''@/$(GL_GNULIB_MDA_WRITE)/g' \
+ 	      < $(srcdir)/unistd.in.h | \
+ 	  sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \
+ 	      -e 's|@''HAVE_COPY_FILE_RANGE''@|$(HAVE_COPY_FILE_RANGE)|g' \
+@@ -2080,49 +2196,49 @@ wchar.h: wchar.in.h $(top_builddir)/conf
+ 	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+ 	      -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
+ 	      -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \
+-	      -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \
+-	      -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \
+-	      -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \
+-	      -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \
+-	      -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \
+-	      -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \
+-	      -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \
+-	      -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \
+-	      -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \
+-	      -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \
+-	      -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \
+-	      -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \
+-	      -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
+-	      -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
+-	      -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
+-	      -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
+-	      -e 's/@''GNULIB_WMEMPCPY''@/$(GNULIB_WMEMPCPY)/g' \
+-	      -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
+-	      -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
+-	      -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
+-	      -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
+-	      -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
+-	      -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
+-	      -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
+-	      -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
+-	      -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
+-	      -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
+-	      -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
+-	      -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
+-	      -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
+-	      -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
+-	      -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
+-	      -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
+-	      -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
+-	      -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
+-	      -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
+-	      -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
+-	      -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
+-	      -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
+-	      -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
+-	      -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
+-	      -e 's/@''GNULIB_WCSFTIME''@/$(GNULIB_WCSFTIME)/g' \
+-	      -e 's/@''GNULIB_MDA_WCSDUP''@/$(GNULIB_MDA_WCSDUP)/g' \
++	      -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \
++	      -e 's/@''GNULIB_BTOWC''@/$(GL_GNULIB_BTOWC)/g' \
++	      -e 's/@''GNULIB_WCTOB''@/$(GL_GNULIB_WCTOB)/g' \
++	      -e 's/@''GNULIB_MBSINIT''@/$(GL_GNULIB_MBSINIT)/g' \
++	      -e 's/@''GNULIB_MBRTOWC''@/$(GL_GNULIB_MBRTOWC)/g' \
++	      -e 's/@''GNULIB_MBRLEN''@/$(GL_GNULIB_MBRLEN)/g' \
++	      -e 's/@''GNULIB_MBSRTOWCS''@/$(GL_GNULIB_MBSRTOWCS)/g' \
++	      -e 's/@''GNULIB_MBSNRTOWCS''@/$(GL_GNULIB_MBSNRTOWCS)/g' \
++	      -e 's/@''GNULIB_WCRTOMB''@/$(GL_GNULIB_WCRTOMB)/g' \
++	      -e 's/@''GNULIB_WCSRTOMBS''@/$(GL_GNULIB_WCSRTOMBS)/g' \
++	      -e 's/@''GNULIB_WCSNRTOMBS''@/$(GL_GNULIB_WCSNRTOMBS)/g' \
++	      -e 's/@''GNULIB_WCWIDTH''@/$(GL_GNULIB_WCWIDTH)/g' \
++	      -e 's/@''GNULIB_WMEMCHR''@/$(GL_GNULIB_WMEMCHR)/g' \
++	      -e 's/@''GNULIB_WMEMCMP''@/$(GL_GNULIB_WMEMCMP)/g' \
++	      -e 's/@''GNULIB_WMEMCPY''@/$(GL_GNULIB_WMEMCPY)/g' \
++	      -e 's/@''GNULIB_WMEMMOVE''@/$(GL_GNULIB_WMEMMOVE)/g' \
++	      -e 's/@''GNULIB_WMEMPCPY''@/$(GL_GNULIB_WMEMPCPY)/g' \
++	      -e 's/@''GNULIB_WMEMSET''@/$(GL_GNULIB_WMEMSET)/g' \
++	      -e 's/@''GNULIB_WCSLEN''@/$(GL_GNULIB_WCSLEN)/g' \
++	      -e 's/@''GNULIB_WCSNLEN''@/$(GL_GNULIB_WCSNLEN)/g' \
++	      -e 's/@''GNULIB_WCSCPY''@/$(GL_GNULIB_WCSCPY)/g' \
++	      -e 's/@''GNULIB_WCPCPY''@/$(GL_GNULIB_WCPCPY)/g' \
++	      -e 's/@''GNULIB_WCSNCPY''@/$(GL_GNULIB_WCSNCPY)/g' \
++	      -e 's/@''GNULIB_WCPNCPY''@/$(GL_GNULIB_WCPNCPY)/g' \
++	      -e 's/@''GNULIB_WCSCAT''@/$(GL_GNULIB_WCSCAT)/g' \
++	      -e 's/@''GNULIB_WCSNCAT''@/$(GL_GNULIB_WCSNCAT)/g' \
++	      -e 's/@''GNULIB_WCSCMP''@/$(GL_GNULIB_WCSCMP)/g' \
++	      -e 's/@''GNULIB_WCSNCMP''@/$(GL_GNULIB_WCSNCMP)/g' \
++	      -e 's/@''GNULIB_WCSCASECMP''@/$(GL_GNULIB_WCSCASECMP)/g' \
++	      -e 's/@''GNULIB_WCSNCASECMP''@/$(GL_GNULIB_WCSNCASECMP)/g' \
++	      -e 's/@''GNULIB_WCSCOLL''@/$(GL_GNULIB_WCSCOLL)/g' \
++	      -e 's/@''GNULIB_WCSXFRM''@/$(GL_GNULIB_WCSXFRM)/g' \
++	      -e 's/@''GNULIB_WCSDUP''@/$(GL_GNULIB_WCSDUP)/g' \
++	      -e 's/@''GNULIB_WCSCHR''@/$(GL_GNULIB_WCSCHR)/g' \
++	      -e 's/@''GNULIB_WCSRCHR''@/$(GL_GNULIB_WCSRCHR)/g' \
++	      -e 's/@''GNULIB_WCSCSPN''@/$(GL_GNULIB_WCSCSPN)/g' \
++	      -e 's/@''GNULIB_WCSSPN''@/$(GL_GNULIB_WCSSPN)/g' \
++	      -e 's/@''GNULIB_WCSPBRK''@/$(GL_GNULIB_WCSPBRK)/g' \
++	      -e 's/@''GNULIB_WCSSTR''@/$(GL_GNULIB_WCSSTR)/g' \
++	      -e 's/@''GNULIB_WCSTOK''@/$(GL_GNULIB_WCSTOK)/g' \
++	      -e 's/@''GNULIB_WCSWIDTH''@/$(GL_GNULIB_WCSWIDTH)/g' \
++	      -e 's/@''GNULIB_WCSFTIME''@/$(GL_GNULIB_WCSFTIME)/g' \
++	      -e 's/@''GNULIB_MDA_WCSDUP''@/$(GL_GNULIB_MDA_WCSDUP)/g' \
+ 	      < $(srcdir)/wchar.in.h | \
+ 	  sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
+ 	      -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
+@@ -2222,14 +2338,14 @@ wctype.h: wctype.in.h $(top_builddir)/co
+ 	      -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ 	      -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+ 	      -e 's/@''HAVE_CRTDEFS_H''@/$(HAVE_CRTDEFS_H)/g' \
+-	      -e 's/@''GNULIB_OVERRIDES_WINT_T''@/$(GNULIB_OVERRIDES_WINT_T)/g' \
+-	      -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
+-	      -e 's/@''GNULIB_ISWDIGIT''@/$(GNULIB_ISWDIGIT)/g' \
+-	      -e 's/@''GNULIB_ISWXDIGIT''@/$(GNULIB_ISWXDIGIT)/g' \
+-	      -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
+-	      -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
+-	      -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
+-	      -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
++	      -e 's/@''GNULIBHEADERS_OVERRIDE_WINT_T''@/$(GNULIBHEADERS_OVERRIDE_WINT_T)/g' \
++	      -e 's/@''GNULIB_ISWBLANK''@/$(GL_GNULIB_ISWBLANK)/g' \
++	      -e 's/@''GNULIB_ISWDIGIT''@/$(GL_GNULIB_ISWDIGIT)/g' \
++	      -e 's/@''GNULIB_ISWXDIGIT''@/$(GL_GNULIB_ISWXDIGIT)/g' \
++	      -e 's/@''GNULIB_WCTYPE''@/$(GL_GNULIB_WCTYPE)/g' \
++	      -e 's/@''GNULIB_ISWCTYPE''@/$(GL_GNULIB_ISWCTYPE)/g' \
++	      -e 's/@''GNULIB_WCTRANS''@/$(GL_GNULIB_WCTRANS)/g' \
++	      -e 's/@''GNULIB_TOWCTRANS''@/$(GL_GNULIB_TOWCTRANS)/g' \
+ 	      -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
+ 	      -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+ 	      -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
+--- a/gnulib/lib/_Noreturn.h
++++ b/gnulib/lib/_Noreturn.h
+@@ -2,16 +2,16 @@
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ 
+    This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
++   under the terms of the GNU Lesser General Public License as published
++   by the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _Noreturn
+--- a/gnulib/lib/alloca.in.h
++++ b/gnulib/lib/alloca.in.h
+@@ -3,20 +3,18 @@
+    Copyright (C) 1995, 1999, 2001-2004, 2006-2021 Free Software Foundation,
+    Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
+-   License along with this program; if not, see
+-   <https://www.gnu.org/licenses/>.
+-  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
+    means there is a real alloca function.  */
+--- a/gnulib/lib/arg-nonnull.h
++++ b/gnulib/lib/arg-nonnull.h
+@@ -2,16 +2,16 @@
+    Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ 
+    This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
++   under the terms of the GNU Lesser General Public License as published
++   by the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
+--- a/gnulib/lib/argz.c
++++ b/gnulib/lib/argz.c
+@@ -3,18 +3,18 @@
+    Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/argz.in.h
++++ b/gnulib/lib/argz.in.h
+@@ -3,17 +3,17 @@
+    Inc.
+    This file is part of the GNU C Library.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _ARGZ_H
+--- a/gnulib/lib/asnprintf.c
++++ b/gnulib/lib/asnprintf.c
+@@ -1,18 +1,18 @@
+ /* Formatted output to strings.
+    Copyright (C) 1999, 2002, 2006, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/asprintf.c
++++ b/gnulib/lib/asprintf.c
+@@ -2,18 +2,18 @@
+    Copyright (C) 1999, 2002, 2006-2007, 2009-2021 Free Software Foundation,
+    Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/attribute.h
++++ b/gnulib/lib/attribute.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright 2020-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Paul Eggert.  */
+--- a/gnulib/lib/basename-lgpl.c
++++ b/gnulib/lib/basename-lgpl.c
+@@ -3,17 +3,17 @@
+    Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2021 Free Software
+    Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/basename-lgpl.h
++++ b/gnulib/lib/basename-lgpl.h
+@@ -1,20 +1,20 @@
+-/*  Extract the last component (base name) of a file name.
++/* Extract the last component (base name) of a file name.
+ 
+-    Copyright (C) 1998, 2001, 2003-2006, 2009-2021 Free Software Foundation,
+-    Inc.
++   Copyright (C) 1998, 2001, 2003-2006, 2009-2021 Free Software Foundation,
++   Inc.
+ 
+-    This program is free software: you can redistribute it and/or modify
+-    it under the terms of the GNU General Public License as published by
+-    the Free Software Foundation; either version 3 of the License, or
+-    (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-    This program is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-    GNU General Public License for more details.
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-    You should have received a copy of the GNU General Public License
+-    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _BASENAME_LGPL_H
+ #define _BASENAME_LGPL_H
+--- a/gnulib/lib/btowc.c
++++ b/gnulib/lib/btowc.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2008, 2010-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2008.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/c++defs.h
++++ b/gnulib/lib/c++defs.h
+@@ -2,16 +2,16 @@
+    Copyright (C) 2010-2021 Free Software Foundation, Inc.
+ 
+    This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
++   under the terms of the GNU Lesser General Public License as published
++   by the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GL_CXXDEFS_H
+--- /dev/null
++++ b/gnulib/lib/calloc.c
+@@ -0,0 +1,55 @@
++/* calloc() function that is glibc compatible.
++   This wrapper function is required at least on Tru64 UNIX 5.1 and mingw.
++   Copyright (C) 2004-2007, 2009-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
++/* written by Jim Meyering and Bruno Haible */
++
++#include <config.h>
++
++/* Specification.  */
++#include <stdlib.h>
++
++#include <errno.h>
++
++#include "xalloc-oversized.h"
++
++/* Call the system's calloc below.  */
++#undef calloc
++
++/* Allocate and zero-fill an NxS-byte block of memory from the heap,
++   even if N or S is zero.  */
++
++void *
++rpl_calloc (size_t n, size_t s)
++{
++  if (n == 0 || s == 0)
++    n = s = 1;
++
++  if (xalloc_oversized (n, s))
++    {
++      errno = ENOMEM;
++      return NULL;
++    }
++
++  void *result = calloc (n, s);
++
++#if !HAVE_MALLOC_POSIX
++  if (result == NULL)
++    errno = ENOMEM;
++#endif
++
++  return result;
++}
+--- a/gnulib/lib/cdefs.h
++++ b/gnulib/lib/cdefs.h
+@@ -2,16 +2,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+@@ -259,10 +259,12 @@
+ # define __attribute_const__ /* Ignore */
+ #endif
+ 
+-#if defined __STDC_VERSION__ && 201710L < __STDC_VERSION__
+-# define __attribute_maybe_unused__ [[__maybe_unused__]]
+-#elif __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__)
++#if __GNUC_PREREQ (2,7) || __glibc_has_attribute (__unused__)
+ # define __attribute_maybe_unused__ __attribute__ ((__unused__))
++/* Once the next version of the C standard comes out, we can
++   do something like the following here:
++   #elif defined __STDC_VERSION__ && 202???L <= __STDC_VERSION__
++   # define __attribute_maybe_unused__ [[__maybe_unused__]]   */
+ #else
+ # define __attribute_maybe_unused__ /* Ignore */
+ #endif
+@@ -320,7 +322,9 @@
+ #endif
+ 
+ /* The nonnull function attribute marks pointer parameters that
+-   must not be NULL.  */
++   must not be NULL.  This has the name __nonnull in glibc,
++   and __attribute_nonnull__ in files shared with Gnulib to avoid
++   collision with a different __nonnull in DragonFlyBSD 5.9.  */
+ #ifndef __attribute_nonnull__
+ # if __GNUC_PREREQ (3,3) || __glibc_has_attribute (__nonnull__)
+ #  define __attribute_nonnull__(params) __attribute__ ((__nonnull__ params))
+@@ -485,9 +489,9 @@
+       [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })]
+ #endif
+ 
+-/* The #ifndef lets Gnulib avoid including these on non-glibc
+-   platforms, where the includes typically do not exist.  */
+-#ifndef __WORDSIZE
++/* Gnulib avoids including these, as they don't work on non-glibc or
++   older glibc platforms.  */
++#ifndef __GNULIB_CDEFS
+ # include <bits/wordsize.h>
+ # include <bits/long-double.h>
+ #endif
+--- a/gnulib/lib/cloexec.c
++++ b/gnulib/lib/cloexec.c
+@@ -2,20 +2,20 @@
+ 
+    Copyright (C) 1991, 2004-2006, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+-   The code is taken from glibc/manual/llio.texi  */
++/* The code is taken from glibc/manual/llio.texi  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/cloexec.h
++++ b/gnulib/lib/cloexec.h
+@@ -2,20 +2,18 @@
+ 
+    Copyright (C) 2004, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-
+-*/
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <stdbool.h>
+ 
+--- a/gnulib/lib/close.c
++++ b/gnulib/lib/close.c
+@@ -1,17 +1,17 @@
+ /* close replacement.
+    Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/dup2.c
++++ b/gnulib/lib/dup2.c
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 1999, 2004-2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* written by Paul Eggert */
+--- a/gnulib/lib/dynarray.h
++++ b/gnulib/lib/dynarray.h
+@@ -1,17 +1,17 @@
+ /* Type-safe arrays which grow dynamically.
+    Copyright 2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Paul Eggert and Bruno Haible, 2021.  */
+@@ -257,18 +257,22 @@ static DYNARRAY_ELEMENT *
+ 
+ #if defined DYNARRAY_STRUCT || defined DYNARRAY_ELEMENT || defined DYNARRAY_PREFIX
+ 
+-# include <libc-config.h>
++# ifndef _GL_LIKELY
++/* Rely on __builtin_expect, as provided by the module 'builtin-expect'.  */
++#  define _GL_LIKELY(cond) __builtin_expect ((cond), 1)
++#  define _GL_UNLIKELY(cond) __builtin_expect ((cond), 0)
++# endif
+ 
+ /* Define auxiliary structs and declare auxiliary functions, common to all
+    instantiations of dynarray.  */
+-# include <malloc/dynarray.h>
++# include <malloc/dynarray.gl.h>
+ 
+ /* Define the instantiation, specified through
+      DYNARRAY_STRUCT
+      DYNARRAY_ELEMENT
+      DYNARRAY_PREFIX
+    etc.  */
+-# include <malloc/dynarray-skeleton.c>
++# include <malloc/dynarray-skeleton.gl.h>
+ 
+ #else
+ 
+--- a/gnulib/lib/errno.in.h
++++ b/gnulib/lib/errno.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _@GUARD_PREFIX@_ERRNO_H
+ 
+--- a/gnulib/lib/error.c
++++ b/gnulib/lib/error.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 1990-1998, 2000-2007, 2009-2021 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by David MacKenzie <djm@gnu.ai.mit.edu>.  */
+--- a/gnulib/lib/error.h
++++ b/gnulib/lib/error.h
+@@ -3,17 +3,17 @@
+    Inc.
+    This file is part of the GNU C Library.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _ERROR_H
+--- a/gnulib/lib/exitfail.c
++++ b/gnulib/lib/exitfail.c
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/exitfail.h
++++ b/gnulib/lib/exitfail.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2002, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ extern int volatile exit_failure;
+--- a/gnulib/lib/fcntl.c
++++ b/gnulib/lib/fcntl.c
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Eric Blake <ebb9@byu.net>.  */
+--- a/gnulib/lib/fcntl.in.h
++++ b/gnulib/lib/fcntl.in.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2006-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* written by Paul Eggert */
+--- a/gnulib/lib/fd-hook.c
++++ b/gnulib/lib/fd-hook.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2009-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2009.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/fd-hook.h
++++ b/gnulib/lib/fd-hook.h
+@@ -1,17 +1,17 @@
+ /* Hook for making file descriptor functions close(), ioctl() extensible.
+    Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ 
+--- a/gnulib/lib/filename.h
++++ b/gnulib/lib/filename.h
+@@ -3,16 +3,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/float+.h
++++ b/gnulib/lib/float+.h
+@@ -2,18 +2,18 @@
+    Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2007.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _FLOATPLUS_H
+ #define _FLOATPLUS_H
+--- a/gnulib/lib/float.c
++++ b/gnulib/lib/float.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2011.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/float.in.h
++++ b/gnulib/lib/float.in.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _@GUARD_PREFIX@_FLOAT_H
+--- /dev/null
++++ b/gnulib/lib/free.c
+@@ -0,0 +1,53 @@
++/* Make free() preserve errno.
++
++   Copyright (C) 2003, 2006, 2009-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
++/* written by Paul Eggert */
++
++#include <config.h>
++
++/* Specification.  */
++#include <stdlib.h>
++
++/* A function definition is only needed if HAVE_FREE_POSIX is not defined.  */
++#if !HAVE_FREE_POSIX
++
++# include <errno.h>
++
++void
++rpl_free (void *p)
++# undef free
++{
++# if defined __GNUC__ && !defined __clang__
++  /* An invalid GCC optimization
++     <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98396>
++     would optimize away the assignments in the code below, when link-time
++     optimization (LTO) is enabled.  Make the code more complicated, so that
++     GCC does not grok how to optimize it.  */
++  int err[2];
++  err[0] = errno;
++  err[1] = errno;
++  errno = 0;
++  free (p);
++  errno = err[errno == 0];
++# else
++  int err = errno;
++  free (p);
++  errno = err;
++# endif
++}
++
++#endif
+--- a/gnulib/lib/fstat.c
++++ b/gnulib/lib/fstat.c
+@@ -1,17 +1,17 @@
+ /* fstat() replacement.
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* If the user's config.h happens to include <sys/stat.h>, let it include only
+--- a/gnulib/lib/getdtablesize.c
++++ b/gnulib/lib/getdtablesize.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2008-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2008.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/getopt-cdefs.in.h
++++ b/gnulib/lib/getopt-cdefs.in.h
+@@ -4,19 +4,18 @@
+    Unlike most of the getopt implementation, it is NOT shared
+    with the GNU C Library.
+ 
+-   This file is free software; you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as
+-   published by the Free Software Foundation; either version 3 of
+-   the License, or (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This file is distributed in the hope that it will be useful, but
+-   WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
+-   License along with gnulib; if not, see
+-   <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GETOPT_CDEFS_H
+ #define _GETOPT_CDEFS_H 1
+--- a/gnulib/lib/getopt-core.h
++++ b/gnulib/lib/getopt-core.h
+@@ -4,16 +4,16 @@
+    Patches to this file should be submitted to both projects.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/getopt-ext.h
++++ b/gnulib/lib/getopt-ext.h
+@@ -4,16 +4,16 @@
+    Patches to this file should be submitted to both projects.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/getopt-pfx-core.h
++++ b/gnulib/lib/getopt-pfx-core.h
+@@ -4,19 +4,18 @@
+    Unlike most of the getopt implementation, it is NOT shared
+    with the GNU C Library.
+ 
+-   This file is free software; you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as
+-   published by the Free Software Foundation; either version 3 of
+-   the License, or (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This file is distributed in the hope that it will be useful, but
+-   WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
+-   License along with gnulib; if not, see
+-   <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GETOPT_PFX_CORE_H
+ #define _GETOPT_PFX_CORE_H 1
+--- a/gnulib/lib/getopt-pfx-ext.h
++++ b/gnulib/lib/getopt-pfx-ext.h
+@@ -4,19 +4,18 @@
+    Unlike most of the getopt implementation, it is NOT shared
+    with the GNU C Library.
+ 
+-   This file is free software; you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as
+-   published by the Free Software Foundation; either version 3 of
+-   the License, or (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This file is distributed in the hope that it will be useful, but
+-   WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
+-   License along with gnulib; if not, see
+-   <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GETOPT_PFX_EXT_H
+ #define _GETOPT_PFX_EXT_H 1
+--- a/gnulib/lib/getopt.c
++++ b/gnulib/lib/getopt.c
+@@ -4,16 +4,16 @@
+    Patches to this file should be submitted to both projects.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/getopt.in.h
++++ b/gnulib/lib/getopt.in.h
+@@ -5,18 +5,18 @@
+    with the GNU C Library, which supplies a different version of
+    this file.
+ 
+-   This file is free software; you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as
+-   published by the Free Software Foundation; either version 3 of
+-   the License, or (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This file is distributed in the hope that it will be useful, but
+-   WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
+-   License along with gnulib; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _@GUARD_PREFIX@_GETOPT_H
+ 
+--- a/gnulib/lib/getopt1.c
++++ b/gnulib/lib/getopt1.c
+@@ -4,16 +4,16 @@
+    Patches to this file should be submitted to both projects.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/getopt_int.h
++++ b/gnulib/lib/getopt_int.h
+@@ -4,16 +4,16 @@
+    Patches to this file should be submitted to both projects.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/getprogname.c
++++ b/gnulib/lib/getprogname.c
+@@ -2,16 +2,16 @@
+    Copyright (C) 2016-2021 Free Software Foundation, Inc.
+ 
+    This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
++   it under the terms of the GNU Lesser General Public License as published by
++   the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+@@ -43,7 +43,7 @@
+ # include <string.h>
+ #endif
+ 
+-#ifdef __sgi
++#if defined __sgi || defined __osf__
+ # include <string.h>
+ # include <unistd.h>
+ # include <stdio.h>
+@@ -224,11 +224,15 @@ getprogname (void)
+       free (buf.ps_pathptr);
+     }
+   return p;
+-# elif defined __sgi                                        /* IRIX */
++# elif defined __sgi || defined __osf__                     /* IRIX or Tru64 */
+   char filename[50];
+   int fd;
+ 
+-  sprintf (filename, "/proc/pinfo/%d", (int) getpid ());
++  # if defined __sgi
++    sprintf (filename, "/proc/pinfo/%d", (int) getpid ());
++  # else
++    sprintf (filename, "/proc/%d", (int) getpid ());
++  # endif
+   fd = open (filename, O_RDONLY | O_CLOEXEC);
+   if (0 <= fd)
+     {
+--- a/gnulib/lib/getprogname.h
++++ b/gnulib/lib/getprogname.h
+@@ -2,16 +2,16 @@
+    Copyright (C) 2016-2021 Free Software Foundation, Inc.
+ 
+    This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
++   it under the terms of the GNU Lesser General Public License as published by
++   the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GL_GETPROGNAME_H
+--- a/gnulib/lib/gettext.h
++++ b/gnulib/lib/gettext.h
+@@ -2,18 +2,18 @@
+    Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2021 Free Software
+    Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LIBGETTEXT_H
+ #define _LIBGETTEXT_H 1
+--- a/gnulib/lib/glthread/lock.c
++++ b/gnulib/lib/glthread/lock.c
+@@ -1,18 +1,18 @@
+ /* Locking in multithreaded situations.
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-posix.h, gthr-posix95.h.  */
+--- a/gnulib/lib/glthread/lock.h
++++ b/gnulib/lib/glthread/lock.h
+@@ -1,18 +1,18 @@
+ /* Locking in multithreaded situations.
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-win32.h.  */
+--- a/gnulib/lib/glthread/threadlib.c
++++ b/gnulib/lib/glthread/threadlib.c
+@@ -1,18 +1,18 @@
+ /* Multithreading primitives.
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.  */
+ 
+--- a/gnulib/lib/hard-locale.c
++++ b/gnulib/lib/hard-locale.c
+@@ -3,17 +3,17 @@
+    Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2021 Free Software
+    Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/hard-locale.h
++++ b/gnulib/lib/hard-locale.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 1999, 2003-2004, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef HARD_LOCALE_H_
+--- /dev/null
++++ b/gnulib/lib/ialloc.c
+@@ -0,0 +1,21 @@
++/* malloc with idx_t rather than size_t
++
++   Copyright 2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++
++#define IALLOC_INLINE _GL_EXTERN_INLINE
++#include "ialloc.h"
+--- /dev/null
++++ b/gnulib/lib/ialloc.h
+@@ -0,0 +1,94 @@
++/* ialloc.h -- malloc with idx_t rather than size_t
++
++   Copyright 2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
++#ifndef IALLOC_H_
++#define IALLOC_H_
++
++#include "idx.h"
++
++#include <errno.h>
++#include <stdint.h>
++#include <stdlib.h>
++
++#ifndef _GL_INLINE_HEADER_BEGIN
++ #error "Please include config.h first."
++#endif
++_GL_INLINE_HEADER_BEGIN
++#ifndef IALLOC_INLINE
++# define IALLOC_INLINE _GL_INLINE
++#endif
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++IALLOC_INLINE void * _GL_ATTRIBUTE_COLD
++_gl_alloc_nomem (void)
++{
++  errno = ENOMEM;
++  return NULL;
++}
++
++IALLOC_INLINE void *
++imalloc (idx_t s)
++{
++  return s <= SIZE_MAX ? malloc (s) : _gl_alloc_nomem ();
++}
++
++IALLOC_INLINE void *
++irealloc (void *p, idx_t s)
++{
++  /* Work around GNU realloc glitch by treating a zero size as if it
++     were 1, so that returning NULL is equivalent to failing.  */
++  return s <= SIZE_MAX ? realloc (p, s | !s) : _gl_alloc_nomem ();
++}
++
++IALLOC_INLINE void *
++icalloc (idx_t n, idx_t s)
++{
++  if (SIZE_MAX < n)
++    {
++      if (s != 0)
++        return _gl_alloc_nomem ();
++      n = 0;
++    }
++  if (SIZE_MAX < s)
++    {
++      if (n != 0)
++        return _gl_alloc_nomem ();
++      s = 0;
++    }
++  return calloc (n, s);
++}
++
++IALLOC_INLINE void *
++ireallocarray (void *p, idx_t n, idx_t s)
++{
++  /* Work around GNU reallocarray glitch by treating a zero size as if
++     it were 1, so that returning NULL is equivalent to failing.  */
++  if (n == 0 || s == 0)
++    n = s = 1;
++  return (n <= SIZE_MAX && s <= SIZE_MAX
++          ? reallocarray (p, n, s)
++          : _gl_alloc_nomem ());
++}
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+--- /dev/null
++++ b/gnulib/lib/idx.h
+@@ -0,0 +1,114 @@
++/* A type for indices and sizes.
++   Copyright (C) 2020-2021 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#ifndef _IDX_H
++#define _IDX_H
++
++/* Get ptrdiff_t.  */
++#include <stddef.h>
++
++/* Get PTRDIFF_MAX.  */
++#include <stdint.h>
++
++/* The type 'idx_t' holds an (array) index or an (object) size.
++   Its implementation promotes to a signed integer type,
++   which can hold the values
++     0..2^63-1 (on 64-bit platforms) or
++     0..2^31-1 (on 32-bit platforms).
++
++   Why a signed integer type?
++
++     * Security: Signed types can be checked for overflow via
++       '-fsanitize=undefined', but unsigned types cannot.
++
++     * Comparisons without surprises: ISO C99 § 6.3.1.8 specifies a few
++       surprising results for comparisons, such as
++
++           (int) -3 < (unsigned long) 7  =>  false
++           (int) -3 < (unsigned int) 7   =>  false
++       and on 32-bit machines:
++           (long) -3 < (unsigned int) 7  =>  false
++
++       This is surprising because the natural comparison order is by
++       value in the realm of infinite-precision signed integers (ℤ).
++
++       The best way to get rid of such surprises is to use signed types
++       for numerical integer values, and use unsigned types only for
++       bit masks and enums.
++
++   Why not use 'size_t' directly?
++
++     * Because 'size_t' is an unsigned type, and a signed type is better.
++       See above.
++
++   Why not use 'ptrdiff_t' directly?
++
++     * Maintainability: When reading and modifying code, it helps to know that
++       a certain variable cannot have negative values.  For example, when you
++       have a loop
++
++         int n = ...;
++         for (int i = 0; i < n; i++) ...
++
++       or
++
++         ptrdiff_t n = ...;
++         for (ptrdiff_t i = 0; i < n; i++) ...
++
++       you have to ask yourself "what if n < 0?".  Whereas in
++
++         idx_t n = ...;
++         for (idx_t i = 0; i < n; i++) ...
++
++       you know that this case cannot happen.
++
++       Similarly, when a programmer writes
++
++         idx_t = ptr2 - ptr1;
++
++       there is an implied assertion that ptr1 and ptr2 point into the same
++       object and that ptr1 <= ptr2.
++
++     * Being future-proof: In the future, range types (integers which are
++       constrained to a certain range of values) may be added to C compilers
++       or to the C standard.  Several programming languages (Ada, Haskell,
++       Common Lisp, Pascal) already have range types.  Such range types may
++       help producing good code and good warnings.  The type 'idx_t' could
++       then be typedef'ed to a range type that is signed after promotion.  */
++
++/* In the future, idx_t could be typedef'ed to a signed range type.
++   The clang "extended integer types", supported in Clang 11 or newer
++   <https://clang.llvm.org/docs/LanguageExtensions.html#extended-integer-types>,
++   are a special case of range types.  However, these types don't support binary
++   operators with plain integer types (e.g. expressions such as x > 1).
++   Therefore, they don't behave like signed types (and not like unsigned types
++   either).  So, we cannot use them here.  */
++
++/* Use the signed type 'ptrdiff_t'.  */
++/* Note: ISO C does not mandate that 'size_t' and 'ptrdiff_t' have the same
++   size, but it is so on all platforms we have seen since 1990.  */
++typedef ptrdiff_t idx_t;
++
++/* IDX_MAX is the maximum value of an idx_t.  */
++#define IDX_MAX PTRDIFF_MAX
++
++/* So far no need has been found for an IDX_WIDTH macro.
++   Perhaps there should be another macro IDX_VALUE_BITS that does not
++   count the sign bit and is therefore one less than PTRDIFF_WIDTH.  */
++
++#endif /* _IDX_H */
+--- a/gnulib/lib/intprops.h
++++ b/gnulib/lib/intprops.h
+@@ -3,16 +3,16 @@
+    Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ 
+    This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
++   under the terms of the GNU Lesser General Public License as published
++   by the Free Software Foundation; either version 2.1 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Paul Eggert.  */
+@@ -133,7 +133,8 @@
+    operators might not yield numerically correct answers due to
+    arithmetic overflow.  They do not rely on undefined or
+    implementation-defined behavior.  Their implementations are simple
+-   and straightforward, but they are a bit harder to use than the
++   and straightforward, but they are harder to use and may be less
++   efficient than the INT_<op>_WRAPV, INT_<op>_OK, and
+    INT_<op>_OVERFLOW macros described below.
+ 
+    Example usage:
+@@ -158,6 +159,9 @@
+    must have minimum value MIN and maximum MAX.  Unsigned types should
+    use a zero MIN of the proper type.
+ 
++   Because all arguments are subject to integer promotions, these
++   macros typically do not work on types narrower than 'int'.
++
+    These macros are tuned for constant MIN and MAX.  For commutative
+    operations such as A + B, they are also tuned for constant B.  */
+ 
+@@ -339,9 +343,15 @@
+    arguments should not have side effects.
+ 
+    The WRAPV macros are not constant expressions.  They support only
+-   +, binary -, and *.  Because the WRAPV macros convert the result,
+-   they report overflow in different circumstances than the OVERFLOW
+-   macros do.
++   +, binary -, and *.
++
++   Because the WRAPV macros convert the result, they report overflow
++   in different circumstances than the OVERFLOW macros do.  For
++   example, in the typical case with 16-bit 'short' and 32-bit 'int',
++   if A, B and R are all of type 'short' then INT_ADD_OVERFLOW (A, B)
++   returns false because the addition cannot overflow after A and B
++   are converted to 'int', whereas INT_ADD_WRAPV (A, B, &R) returns
++   true or false depending on whether the sum fits into 'short'.
+ 
+    These macros are tuned for their last input argument being a constant.
+ 
+--- a/gnulib/lib/inttypes.in.h
++++ b/gnulib/lib/inttypes.in.h
+@@ -2,17 +2,17 @@
+    Written by Paul Eggert, Bruno Haible, Derek Price.
+    This file is part of gnulib.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /*
+--- a/gnulib/lib/iswblank.c
++++ b/gnulib/lib/iswblank.c
+@@ -1,18 +1,18 @@
+ /* Test wide character for being blank.
+    Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/iswdigit.c
++++ b/gnulib/lib/iswdigit.c
+@@ -1,18 +1,18 @@
+ /* Test wide character for being a digit.
+    Copyright (C) 2020-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/iswxdigit.c
++++ b/gnulib/lib/iswxdigit.c
+@@ -1,18 +1,18 @@
+ /* Test wide character for being a hexadecimal digit.
+    Copyright (C) 2020-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/itold.c
++++ b/gnulib/lib/itold.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2011.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/langinfo.in.h
++++ b/gnulib/lib/langinfo.in.h
+@@ -1,18 +1,18 @@
+ /* Substitute for and wrapper around <langinfo.h>.
+    Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /*
+  * POSIX <langinfo.h> for platforms that lack it or have an incomplete one.
+--- a/gnulib/lib/lc-charset-dispatch.c
++++ b/gnulib/lib/lc-charset-dispatch.c
+@@ -1,17 +1,17 @@
+ /* Dispatching based on the current locale's character encoding.
+    Copyright (C) 2018-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2018.  */
+--- a/gnulib/lib/lc-charset-dispatch.h
++++ b/gnulib/lib/lc-charset-dispatch.h
+@@ -1,17 +1,17 @@
+ /* Dispatching based on the current locale's character encoding.
+    Copyright (C) 2018-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2018.  */
+--- a/gnulib/lib/libc-config.h
++++ b/gnulib/lib/libc-config.h
+@@ -3,16 +3,16 @@
+    Copyright 2017-2021 Free Software Foundation, Inc.
+ 
+    This program is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with this program; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+@@ -28,7 +28,10 @@
+ 
+    When compiled as part of glibc this is a no-op; when compiled as
+    part of Gnulib this includes Gnulib's <config.h> and defines macros
+-   that glibc library code would normally assume.  */
++   that glibc library code would normally assume.
++
++   Note: This header file MUST NOT be included by public header files
++   of Gnulib.  */
+ 
+ #include <config.h>
+ 
+@@ -71,7 +74,7 @@
+ # endif
+ #endif
+ 
+-#ifndef __attribute_maybe_unused__
++#ifndef __attribute_nonnull__
+ /* <sys/cdefs.h> either does not exist, or is too old for Gnulib.
+    Prepare to include <cdefs.h>, which is Gnulib's version of a
+    more-recent glibc <sys/cdefs.h>.  */
+@@ -80,13 +83,9 @@
+ # ifndef _FEATURES_H
+ #  define _FEATURES_H 1
+ # endif
+-/* Define __WORDSIZE so that <cdefs.h> does not attempt to include
+-   nonexistent files.  Make it a syntax error, since Gnulib does not
+-   use __WORDSIZE now, and if Gnulib uses it later the syntax error
+-   will let us know that __WORDSIZE needs configuring.  */
+-# ifndef __WORDSIZE
+-#  define __WORDSIZE %%%
+-# endif
++/* Define __GNULIB_CDEFS so that <cdefs.h> does not attempt to include
++   nonexistent files.  */
++# define __GNULIB_CDEFS
+ /* Undef the macros unconditionally defined by our copy of glibc
+    <sys/cdefs.h>, so that they do not clash with any system-defined
+    versions.  */
+--- a/gnulib/lib/limits.in.h
++++ b/gnulib/lib/limits.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright 2016-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public License
+-   as published by the Free Software Foundation; either version 3, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #if __GNUC__ >= 3
+ @PRAGMA_SYSTEM_HEADER@
+--- a/gnulib/lib/localcharset.c
++++ b/gnulib/lib/localcharset.c
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2000-2006, 2008-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+ 
+--- a/gnulib/lib/localcharset.h
++++ b/gnulib/lib/localcharset.h
+@@ -2,18 +2,18 @@
+    Copyright (C) 2000-2003, 2009-2021 Free Software Foundation, Inc.
+    This file is part of the GNU CHARSET Library.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LOCALCHARSET_H
+ #define _LOCALCHARSET_H
+--- a/gnulib/lib/locale.in.h
++++ b/gnulib/lib/locale.in.h
+@@ -1,17 +1,17 @@
+ /* A POSIX <locale.h>.
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #if __GNUC__ >= 3
+--- a/gnulib/lib/localeconv.c
++++ b/gnulib/lib/localeconv.c
+@@ -1,17 +1,17 @@
+ /* Query locale dependent information for formatting numbers.
+    Copyright (C) 2012-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/malloc.c
++++ b/gnulib/lib/malloc.c
+@@ -2,61 +2,50 @@
+ 
+    Copyright (C) 1997-1998, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* written by Jim Meyering and Bruno Haible */
+ 
+ #define _GL_USE_STDLIB_ALLOC 1
+ #include <config.h>
+-/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h.  */
+-#ifdef malloc
+-# define NEED_MALLOC_GNU 1
+-# undef malloc
+-/* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU.  */
+-#elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU
+-# define NEED_MALLOC_GNU 1
+-#endif
+ 
+ #include <stdlib.h>
+ 
+-/* A function definition is only needed if NEED_MALLOC_GNU is defined above
+-   or if the module 'malloc-posix' requests it.  */
+-#if NEED_MALLOC_GNU || (GNULIB_MALLOC_POSIX && !HAVE_MALLOC_POSIX)
++#include <errno.h>
+ 
+-# include <errno.h>
++#include "xalloc-oversized.h"
+ 
+-/* Allocate an N-byte block of memory from the heap.
+-   If N is zero, allocate a 1-byte block.  */
++/* Allocate an N-byte block of memory from the heap, even if N is 0.  */
+ 
+ void *
+ rpl_malloc (size_t n)
+ {
+-  void *result;
+-
+-# if NEED_MALLOC_GNU
+   if (n == 0)
+     n = 1;
+-# endif
+ 
+-  result = malloc (n);
++  if (xalloc_oversized (n, 1))
++    {
++      errno = ENOMEM;
++      return NULL;
++    }
++
++  void *result = malloc (n);
+ 
+-# if !HAVE_MALLOC_POSIX
++#if !HAVE_MALLOC_POSIX
+   if (result == NULL)
+     errno = ENOMEM;
+-# endif
++#endif
+ 
+   return result;
+ }
+-
+-#endif
+--- a/gnulib/lib/malloc/dynarray-skeleton.c
++++ b/gnulib/lib/malloc/dynarray-skeleton.c
+@@ -3,16 +3,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/malloc/dynarray.h
++++ b/gnulib/lib/malloc/dynarray.h
+@@ -3,16 +3,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/malloc/dynarray_at_failure.c
++++ b/gnulib/lib/malloc/dynarray_at_failure.c
+@@ -3,16 +3,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/malloc/dynarray_emplace_enlarge.c
++++ b/gnulib/lib/malloc/dynarray_emplace_enlarge.c
+@@ -3,16 +3,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/malloc/dynarray_finalize.c
++++ b/gnulib/lib/malloc/dynarray_finalize.c
+@@ -3,16 +3,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/malloc/dynarray_resize.c
++++ b/gnulib/lib/malloc/dynarray_resize.c
+@@ -3,16 +3,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/malloc/dynarray_resize_clear.c
++++ b/gnulib/lib/malloc/dynarray_resize_clear.c
+@@ -3,16 +3,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/malloca.c
++++ b/gnulib/lib/malloca.c
+@@ -2,18 +2,18 @@
+    Copyright (C) 2003, 2006-2007, 2009-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2003, 2018.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #define _GL_USE_STDLIB_ALLOC 1
+ #include <config.h>
+@@ -21,6 +21,8 @@
+ /* Specification.  */
+ #include "malloca.h"
+ 
++#include "idx.h"
++#include "intprops.h"
+ #include "verify.h"
+ 
+ /* The speed critical point in this file is freea() applied to an alloca()
+@@ -45,9 +47,9 @@ mmalloca (size_t n)
+ #if HAVE_ALLOCA
+   /* Allocate one more word, used to determine the address to pass to freea(),
+      and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max.  */
+-  size_t nplus = n + sizeof (small_t) + 2 * sa_alignment_max - 1;
+-
+-  if (nplus >= n)
++  int plus = sizeof (small_t) + 2 * sa_alignment_max - 1;
++  idx_t nplus;
++  if (!INT_ADD_WRAPV (n, plus, &nplus) && !xalloc_oversized (nplus, 1))
+     {
+       char *mem = (char *) malloc (nplus);
+ 
+--- a/gnulib/lib/malloca.h
++++ b/gnulib/lib/malloca.h
+@@ -2,18 +2,18 @@
+    Copyright (C) 2003-2007, 2009-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2003.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _MALLOCA_H
+ #define _MALLOCA_H
+@@ -76,9 +76,10 @@ extern void freea (void *p);
+ 
+ /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S).
+    It allocates an array of N objects, each with S bytes of memory,
+-   on the stack.  S must be positive and N must be nonnegative.
++   on the stack.  N and S should be nonnegative and free of side effects.
+    The array must be freed using freea() before the function returns.  */
+-#define nmalloca(n, s) (xalloc_oversized (n, s) ? NULL : malloca ((n) * (s)))
++#define nmalloca(n, s) \
++  (xalloc_oversized (n, s) ? NULL : malloca ((n) * (size_t) (s)))
+ 
+ 
+ #ifdef __cplusplus
+--- a/gnulib/lib/mbchar.c
++++ b/gnulib/lib/mbchar.c
+@@ -1,16 +1,16 @@
+ /* Copyright (C) 2001, 2006, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ 
+--- a/gnulib/lib/mbchar.h
++++ b/gnulib/lib/mbchar.h
+@@ -1,17 +1,17 @@
+ /* Multibyte character data type.
+    Copyright (C) 2001, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+--- a/gnulib/lib/mbiter.c
++++ b/gnulib/lib/mbiter.c
+@@ -1,3 +1,21 @@
++/* Iterating through multibyte strings: macros for multi-byte encodings.
++
++   Copyright (C) 2012-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #define MBITER_INLINE _GL_EXTERN_INLINE
+ #include "mbiter.h"
+--- a/gnulib/lib/mbiter.h
++++ b/gnulib/lib/mbiter.h
+@@ -1,17 +1,17 @@
+ /* Iterating through multibyte strings: macros for multi-byte encodings.
+    Copyright (C) 2001, 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+--- a/gnulib/lib/mbrtowc-impl-utf8.h
++++ b/gnulib/lib/mbrtowc-impl-utf8.h
+@@ -1,17 +1,17 @@
+ /* Convert multibyte character to wide character.
+    Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
+@@ -96,7 +96,7 @@
+ 
+                     if ((c2 ^ 0x80) < 0x40
+                         && (c >= 0xf1 || c2 >= 0x90)
+-                        && (c < 0xf4 || (c == 0xf4 && c2 < 0x90)))
++                        && (c < 0xf4 || (/* c == 0xf4 && */ c2 < 0x90)))
+                       {
+                         if (m == 2)
+                           goto incomplete;
+--- a/gnulib/lib/mbrtowc-impl.h
++++ b/gnulib/lib/mbrtowc-impl.h
+@@ -1,17 +1,17 @@
+ /* Convert multibyte character to wide character.
+    Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
+--- a/gnulib/lib/mbrtowc.c
++++ b/gnulib/lib/mbrtowc.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 1999-2002, 2005-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2008.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbscasecmp.c
++++ b/gnulib/lib/mbscasecmp.c
+@@ -3,17 +3,17 @@
+    Written by Bruno Haible <bruno@clisp.org>, 2005,
+    based on earlier glibc code.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbschr.c
++++ b/gnulib/lib/mbschr.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2007.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbsinit.c
++++ b/gnulib/lib/mbsinit.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2008-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2008.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbslen.c
++++ b/gnulib/lib/mbslen.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2007.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbsncasecmp.c
++++ b/gnulib/lib/mbsncasecmp.c
+@@ -3,17 +3,17 @@
+    Written by Bruno Haible <bruno@clisp.org>, 2005,
+    based on earlier glibc code.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbsstr.c
++++ b/gnulib/lib/mbsstr.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2005.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbtowc-impl.h
++++ b/gnulib/lib/mbtowc-impl.h
+@@ -2,17 +2,17 @@
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2011.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* We don't need a static internal state, because the encoding is not state
+--- a/gnulib/lib/mbtowc-lock.c
++++ b/gnulib/lib/mbtowc-lock.c
+@@ -1,17 +1,17 @@
+ /* Return the internal lock used by mbrtowc and mbrtoc32.
+    Copyright (C) 2019-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2019-2020.  */
+--- a/gnulib/lib/mbtowc-lock.h
++++ b/gnulib/lib/mbtowc-lock.h
+@@ -1,17 +1,17 @@
+ /* Use the internal lock used by mbrtowc and mbrtoc32.
+    Copyright (C) 2019-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2019-2020.  */
+--- a/gnulib/lib/mbtowc.c
++++ b/gnulib/lib/mbtowc.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2011.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/mbuiter.c
++++ b/gnulib/lib/mbuiter.c
+@@ -1,3 +1,20 @@
++/* Iterating through multibyte strings: macros for multi-byte encodings.
++   Copyright (C) 2012-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #define MBUITER_INLINE _GL_EXTERN_INLINE
+ #include "mbuiter.h"
+--- a/gnulib/lib/mbuiter.h
++++ b/gnulib/lib/mbuiter.h
+@@ -1,17 +1,17 @@
+ /* Iterating through multibyte strings: macros for multi-byte encodings.
+    Copyright (C) 2001, 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+--- a/gnulib/lib/memchr.c
++++ b/gnulib/lib/memchr.c
+@@ -7,21 +7,21 @@
+    adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
+    and implemented by Roland McGrath (roland@ai.mit.edu).
+ 
+-NOTE: The canonical source of this file is maintained with the GNU C Library.
+-Bugs can be reported to bug-glibc@prep.ai.mit.edu.
++   NOTE: The canonical source of this file is maintained with the GNU C Library.
++   Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+ 
+-This program is free software: you can redistribute it and/or modify it
+-under the terms of the GNU General Public License as published by the
+-Free Software Foundation; either version 3 of the License, or any
+-later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-This program is distributed in the hope that it will be useful,
+-but WITHOUT ANY WARRANTY; without even the implied warranty of
+-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-GNU General Public License for more details.
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-You should have received a copy of the GNU General Public License
+-along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+--- a/gnulib/lib/memchr.valgrind
++++ b/gnulib/lib/memchr.valgrind
+@@ -2,17 +2,17 @@
+ 
+ # Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ #
+-# This program is free software: you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 3 of the License, or
+-# (at your option) any later version.
++# This file is free software: you can redistribute it and/or modify
++# it under the terms of the GNU Lesser General Public License as
++# published by the Free Software Foundation; either version 2.1 of the
++# License, or (at your option) any later version.
+ #
+-# This program is distributed in the hope that it will be useful,
++# This file is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
++# GNU Lesser General Public License for more details.
+ #
+-# You should have received a copy of the GNU General Public License
++# You should have received a copy of the GNU Lesser General Public License
+ # along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ 
+ # POSIX states that when the character is found, memchr must not read extra
+--- a/gnulib/lib/mempcpy.c
++++ b/gnulib/lib/mempcpy.c
+@@ -1,18 +1,18 @@
+ /* Copy memory area and return pointer after last written byte.
+    Copyright (C) 2003, 2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/memrchr.c
++++ b/gnulib/lib/memrchr.c
+@@ -9,17 +9,17 @@
+    adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu),
+    and implemented by Roland McGrath (roland@ai.mit.edu).
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 3 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #if defined _LIBC
+--- /dev/null
++++ b/gnulib/lib/minmax.h
+@@ -0,0 +1,60 @@
++/* MIN, MAX macros.
++   Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2021 Free Software
++   Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
++#ifndef _MINMAX_H
++#define _MINMAX_H
++
++/* Note: MIN, MAX are also defined in <sys/param.h> on some systems
++   (glibc, IRIX, HP-UX, OSF/1).  Therefore you might get warnings about
++   MIN, MAX macro redefinitions on some systems; the workaround is to
++   #include this file as the last one among the #include list.  */
++
++/* Before we define the following symbols we get the <limits.h> file
++   since otherwise we get redefinitions on some systems if <limits.h> is
++   included after this file.  Likewise for <sys/param.h>.
++   If more than one of these system headers define MIN and MAX, pick just
++   one of the headers (because the definitions most likely are the same).  */
++#if HAVE_MINMAX_IN_LIMITS_H
++# include <limits.h>
++#elif HAVE_MINMAX_IN_SYS_PARAM_H
++# include <sys/param.h>
++#endif
++
++/* Note: MIN and MAX should be used with two arguments of the
++   same type.  They might not return the minimum and maximum of their two
++   arguments, if the arguments have different types or have unusual
++   floating-point values.  For example, on a typical host with 32-bit 'int',
++   64-bit 'long long', and 64-bit IEEE 754 'double' types:
++
++     MAX (-1, 2147483648) returns 4294967295.
++     MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0.
++     MAX (NaN, 0.0) returns 0.0.
++     MAX (+0.0, -0.0) returns -0.0.
++
++   and in each case the answer is in some sense bogus.  */
++
++/* MAX(a,b) returns the maximum of A and B.  */
++#ifndef MAX
++# define MAX(a,b) ((a) > (b) ? (a) : (b))
++#endif
++
++/* MIN(a,b) returns the minimum of A and B.  */
++#ifndef MIN
++# define MIN(a,b) ((a) < (b) ? (a) : (b))
++#endif
++
++#endif /* _MINMAX_H */
+--- a/gnulib/lib/msvc-inval.c
++++ b/gnulib/lib/msvc-inval.c
+@@ -1,18 +1,18 @@
+ /* Invalid parameter handler for MSVC runtime libraries.
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/msvc-inval.h
++++ b/gnulib/lib/msvc-inval.h
+@@ -1,18 +1,18 @@
+ /* Invalid parameter handler for MSVC runtime libraries.
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _MSVC_INVAL_H
+ #define _MSVC_INVAL_H
+--- a/gnulib/lib/msvc-nothrow.c
++++ b/gnulib/lib/msvc-nothrow.c
+@@ -2,18 +2,18 @@
+    with MSVC runtime libraries.
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/msvc-nothrow.h
++++ b/gnulib/lib/msvc-nothrow.h
+@@ -2,18 +2,18 @@
+    with MSVC runtime libraries.
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _MSVC_NOTHROW_H
+ #define _MSVC_NOTHROW_H
+--- a/gnulib/lib/nl_langinfo-lock.c
++++ b/gnulib/lib/nl_langinfo-lock.c
+@@ -1,17 +1,17 @@
+ /* Return the internal lock used by nl_langinfo.
+    Copyright (C) 2019-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2019-2020.  */
+--- a/gnulib/lib/nl_langinfo.c
++++ b/gnulib/lib/nl_langinfo.c
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/open.c
++++ b/gnulib/lib/open.c
+@@ -1,17 +1,17 @@
+ /* Open a descriptor to a file.
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+--- a/gnulib/lib/pathmax.h
++++ b/gnulib/lib/pathmax.h
+@@ -2,18 +2,18 @@
+    Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2021 Free Software
+    Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _PATHMAX_H
+ # define _PATHMAX_H
+--- a/gnulib/lib/printf-args.c
++++ b/gnulib/lib/printf-args.c
+@@ -2,18 +2,18 @@
+    Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2021 Free Software
+    Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* This file can be parametrized with the following macros:
+      ENABLE_UNISTDIO    Set to 1 to enable the unistdio extensions.
+--- a/gnulib/lib/printf-args.h
++++ b/gnulib/lib/printf-args.h
+@@ -2,18 +2,18 @@
+    Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2021 Free Software
+    Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _PRINTF_ARGS_H
+ #define _PRINTF_ARGS_H
+--- a/gnulib/lib/printf-parse.c
++++ b/gnulib/lib/printf-parse.c
+@@ -1,18 +1,18 @@
+ /* Formatted output to strings.
+    Copyright (C) 1999-2000, 2002-2003, 2006-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* This file can be parametrized with the following macros:
+      CHAR_T             The element type of the format string.
+@@ -48,16 +48,7 @@
+ #include <stddef.h>
+ 
+ /* Get intmax_t.  */
+-#if defined IN_LIBINTL || defined IN_LIBASPRINTF
+-# if HAVE_STDINT_H_WITH_UINTMAX
+-#  include <stdint.h>
+-# endif
+-# if HAVE_INTTYPES_H_WITH_UINTMAX
+-#  include <inttypes.h>
+-# endif
+-#else
+-# include <stdint.h>
+-#endif
++#include <stdint.h>
+ 
+ /* malloc(), realloc(), free().  */
+ #include <stdlib.h>
+--- a/gnulib/lib/printf-parse.h
++++ b/gnulib/lib/printf-parse.h
+@@ -2,18 +2,18 @@
+    Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2021 Free Software
+    Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _PRINTF_PARSE_H
+ #define _PRINTF_PARSE_H
+--- /dev/null
++++ b/gnulib/lib/realloc.c
+@@ -0,0 +1,63 @@
++/* realloc() function that is glibc compatible.
++
++   Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2021 Free Software
++   Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
++/* written by Jim Meyering and Bruno Haible */
++
++#include <config.h>
++
++#include <stdlib.h>
++
++#include <errno.h>
++
++#include "xalloc-oversized.h"
++
++/* Call the system's realloc below.  This file does not define
++   _GL_USE_STDLIB_ALLOC because it needs Gnulib's malloc if present.  */
++#undef realloc
++
++/* Change the size of an allocated block of memory P to N bytes,
++   with error checking.  If P is NULL, use malloc.  Otherwise if N is zero,
++   free P and return NULL.  */
++
++void *
++rpl_realloc (void *p, size_t n)
++{
++  if (p == NULL)
++    return malloc (n);
++
++  if (n == 0)
++    {
++      free (p);
++      return NULL;
++    }
++
++  if (xalloc_oversized (n, 1))
++    {
++      errno = ENOMEM;
++      return NULL;
++    }
++
++  void *result = realloc (p, n);
++
++#if !HAVE_MALLOC_POSIX
++  if (result == NULL)
++    errno = ENOMEM;
++#endif
++
++  return result;
++}
+--- /dev/null
++++ b/gnulib/lib/reallocarray.c
+@@ -0,0 +1,39 @@
++/* reallocarray function that is glibc compatible.
++
++   Copyright (C) 2017-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
++/* written by Darshit Shah */
++
++#include <config.h>
++
++#include <stdlib.h>
++#include <errno.h>
++
++#include "intprops.h"
++
++void *
++reallocarray (void *ptr, size_t nmemb, size_t size)
++{
++  size_t nbytes;
++  if (INT_MULTIPLY_WRAPV (nmemb, size, &nbytes))
++    {
++      errno = ENOMEM;
++      return NULL;
++    }
++
++  /* Rely on the semantics of GNU realloc.  */
++  return realloc (ptr, nbytes);
++}
+--- a/gnulib/lib/regcomp.c
++++ b/gnulib/lib/regcomp.c
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regex.c
++++ b/gnulib/lib/regex.c
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regex.h
++++ b/gnulib/lib/regex.h
+@@ -4,16 +4,16 @@
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regex_internal.c
++++ b/gnulib/lib/regex_internal.c
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regex_internal.h
++++ b/gnulib/lib/regex_internal.h
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+--- a/gnulib/lib/regexec.c
++++ b/gnulib/lib/regexec.c
+@@ -4,16 +4,16 @@
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU General Public
++   modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 3 of the License, or (at your option) any later version.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public
++   You should have received a copy of the GNU Lesser General Public
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+@@ -1220,9 +1220,13 @@ proceed_next_node (const re_match_contex
+     {
+       re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes;
+       re_node_set *edests = &dfa->edests[node];
+-      bool ok = re_node_set_insert (eps_via_nodes, node);
+-      if (__glibc_unlikely (! ok))
+-	return -2;
++
++      if (! re_node_set_contains (eps_via_nodes, node))
++        {
++          bool ok = re_node_set_insert (eps_via_nodes, node);
++          if (__glibc_unlikely (! ok))
++            return -2;
++        }
+ 
+       /* Pick a valid destination, or return -1 if none is found.  */
+       Idx dest_node = -1;
+@@ -1414,7 +1418,7 @@ set_regs (const regex_t *preg, const re_
+       update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch);
+ 
+       if ((idx == pmatch[0].rm_eo && cur_node == mctx->last_node)
+-	  || re_node_set_contains (&eps_via_nodes, cur_node))
++	  || (fs && re_node_set_contains (&eps_via_nodes, cur_node)))
+ 	{
+ 	  Idx reg_idx;
+ 	  cur_node = -1;
+--- a/gnulib/lib/setlocale-lock.c
++++ b/gnulib/lib/setlocale-lock.c
+@@ -1,17 +1,17 @@
+ /* Return the internal lock used by setlocale_null_r.
+    Copyright (C) 2019-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2019.  */
+--- a/gnulib/lib/setlocale_null.c
++++ b/gnulib/lib/setlocale_null.c
+@@ -1,17 +1,17 @@
+ /* Query the name of the current global locale.
+    Copyright (C) 2019-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2019.  */
+--- a/gnulib/lib/setlocale_null.h
++++ b/gnulib/lib/setlocale_null.h
+@@ -1,17 +1,17 @@
+ /* Query the name of the current global locale.
+    Copyright (C) 2019-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2019.  */
+--- a/gnulib/lib/size_max.h
++++ b/gnulib/lib/size_max.h
+@@ -2,18 +2,18 @@
+    Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc.
+    Written by Simon Josefsson.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef GNULIB_SIZE_MAX_H
+ #define GNULIB_SIZE_MAX_H
+--- a/gnulib/lib/stat-time.c
++++ b/gnulib/lib/stat-time.c
+@@ -1,3 +1,21 @@
++/* stat-related time functions.
++
++   Copyright (C) 2012-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE
+ #include "stat-time.h"
+--- a/gnulib/lib/stat-time.h
++++ b/gnulib/lib/stat-time.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2005, 2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Paul Eggert.  */
+--- a/gnulib/lib/stat-w32.c
++++ b/gnulib/lib/stat-w32.c
+@@ -1,17 +1,17 @@
+ /* Core of implementation of fstat and stat for native Windows.
+    Copyright (C) 2017-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible.  */
+--- a/gnulib/lib/stat-w32.h
++++ b/gnulib/lib/stat-w32.h
+@@ -1,17 +1,17 @@
+ /* Core of implementation of fstat and stat for native Windows.
+    Copyright (C) 2017-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _STAT_W32_H
+--- a/gnulib/lib/stat.c
++++ b/gnulib/lib/stat.c
+@@ -1,17 +1,17 @@
+ /* Work around platform bugs in stat.
+    Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Eric Blake and Bruno Haible.  */
+--- a/gnulib/lib/stdarg.in.h
++++ b/gnulib/lib/stdarg.in.h
+@@ -1,18 +1,18 @@
+ /* Substitute for and wrapper around <stdarg.h>.
+    Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _@GUARD_PREFIX@_STDARG_H
+ 
+--- a/gnulib/lib/stdbool.in.h
++++ b/gnulib/lib/stdbool.in.h
+@@ -1,18 +1,18 @@
+ /* Copyright (C) 2001-2003, 2006-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <haible@clisp.cons.org>, 2001.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GL_STDBOOL_H
+ #define _GL_STDBOOL_H
+--- a/gnulib/lib/stddef.in.h
++++ b/gnulib/lib/stddef.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Eric Blake.  */
+ 
+--- a/gnulib/lib/stdint.in.h
++++ b/gnulib/lib/stdint.in.h
+@@ -2,18 +2,18 @@
+    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
+    This file is part of gnulib.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /*
+  * ISO C 99 <stdint.h> for platforms that lack it.
+@@ -85,7 +85,7 @@
+ 
+ /* Override WINT_MIN and WINT_MAX if gnulib's <wchar.h> or <wctype.h> overrides
+    wint_t.  */
+-#if @GNULIB_OVERRIDES_WINT_T@
++#if @GNULIBHEADERS_OVERRIDE_WINT_T@
+ # undef WINT_MIN
+ # undef WINT_MAX
+ # define WINT_MIN 0x0U
+@@ -598,7 +598,7 @@ typedef int _verify_intmax_size[sizeof (
+ /* wint_t limits */
+ /* If gnulib's <wchar.h> or <wctype.h> overrides wint_t, @WINT_T_SUFFIX@ is not
+    accurate, therefore use the definitions from above.  */
+-# if !@GNULIB_OVERRIDES_WINT_T@
++# if !@GNULIBHEADERS_OVERRIDE_WINT_T@
+ #  undef WINT_MIN
+ #  undef WINT_MAX
+ #  if @HAVE_SIGNED_WINT_T@
+--- a/gnulib/lib/stdio.in.h
++++ b/gnulib/lib/stdio.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2004, 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #if __GNUC__ >= 3
+ @PRAGMA_SYSTEM_HEADER@
+@@ -242,7 +242,7 @@ _GL_WARN_ON_USE (fclose, "fclose is not
+ _GL_CXXALIAS_MDA (fcloseall, int, (void));
+ # else
+ #  if @HAVE_DECL_FCLOSEALL@
+-#   if defined __FreeBSD__
++#   if defined __FreeBSD__ || defined __DragonFly__
+ _GL_CXXALIAS_SYS (fcloseall, void, (void));
+ #   else
+ _GL_CXXALIAS_SYS (fcloseall, int, (void));
+@@ -1257,6 +1257,7 @@ _GL_CXXALIASWARN (scanf);
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   define snprintf rpl_snprintf
+ #  endif
++#  define GNULIB_overrides_snprintf 1
+ _GL_FUNCDECL_RPL (snprintf, int,
+                   (char *restrict str, size_t size,
+                    const char *restrict format, ...)
+@@ -1302,6 +1303,7 @@ _GL_WARN_ON_USE (snprintf, "snprintf is
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   define sprintf rpl_sprintf
+ #  endif
++#  define GNULIB_overrides_sprintf 1
+ _GL_FUNCDECL_RPL (sprintf, int,
+                   (char *restrict str, const char *restrict format, ...)
+                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
+@@ -1369,6 +1371,7 @@ _GL_WARN_ON_USE (tmpfile, "tmpfile is no
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   define asprintf rpl_asprintf
+ #  endif
++#  define GNULIB_overrides_asprintf
+ _GL_FUNCDECL_RPL (asprintf, int,
+                   (char **result, const char *format, ...)
+                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 3)
+@@ -1390,6 +1393,7 @@ _GL_CXXALIASWARN (asprintf);
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   define vasprintf rpl_vasprintf
+ #  endif
++#  define GNULIB_overrides_vasprintf 1
+ _GL_FUNCDECL_RPL (vasprintf, int,
+                   (char **result, const char *format, va_list args)
+                   _GL_ATTRIBUTE_FORMAT_PRINTF_STANDARD (2, 0)
+@@ -1573,6 +1577,7 @@ _GL_CXXALIASWARN (vscanf);
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   define vsnprintf rpl_vsnprintf
+ #  endif
++#  define GNULIB_overrides_vsnprintf 1
+ _GL_FUNCDECL_RPL (vsnprintf, int,
+                   (char *restrict str, size_t size,
+                    const char *restrict format, va_list args)
+@@ -1609,6 +1614,7 @@ _GL_WARN_ON_USE (vsnprintf, "vsnprintf i
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   define vsprintf rpl_vsprintf
+ #  endif
++#  define GNULIB_overrides_vsprintf 1
+ _GL_FUNCDECL_RPL (vsprintf, int,
+                   (char *restrict str,
+                    const char *restrict format, va_list args)
+--- a/gnulib/lib/stdlib.in.h
++++ b/gnulib/lib/stdlib.in.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 1995, 2001-2004, 2006-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #if __GNUC__ >= 3
+@@ -1032,12 +1032,23 @@ _GL_WARN_ON_USE (realloc, "realloc is no
+ 
+ 
+ #if @GNULIB_REALLOCARRAY@
+-# if ! @HAVE_REALLOCARRAY@
++# if @REPLACE_REALLOCARRAY@
++#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
++#   undef reallocarray
++#   define reallocarray rpl_reallocarray
++#  endif
++_GL_FUNCDECL_RPL (reallocarray, void *,
++                  (void *ptr, size_t nmemb, size_t size));
++_GL_CXXALIAS_RPL (reallocarray, void *,
++                  (void *ptr, size_t nmemb, size_t size));
++# else
++#  if ! @HAVE_REALLOCARRAY@
+ _GL_FUNCDECL_SYS (reallocarray, void *,
+                   (void *ptr, size_t nmemb, size_t size));
+-# endif
++#  endif
+ _GL_CXXALIAS_SYS (reallocarray, void *,
+                   (void *ptr, size_t nmemb, size_t size));
++# endif
+ _GL_CXXALIASWARN (reallocarray);
+ #elif defined GNULIB_POSIXCHECK
+ # undef reallocarray
+@@ -1202,6 +1213,47 @@ _GL_WARN_ON_USE (strtold, "strtold is un
+ # endif
+ #endif
+ 
++#if @GNULIB_STRTOL@
++/* Parse a signed integer whose textual representation starts at STRING.
++   The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
++   it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
++   "0x").
++   If ENDPTR is not NULL, the address of the first byte after the integer is
++   stored in *ENDPTR.
++   Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set
++   to ERANGE.  */
++# if @REPLACE_STRTOL@
++#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
++#   define strtol rpl_strtol
++#  endif
++#  define GNULIB_defined_strtol_function 1
++_GL_FUNCDECL_RPL (strtol, long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base)
++                  _GL_ARG_NONNULL ((1)));
++_GL_CXXALIAS_RPL (strtol, long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base));
++# else
++#  if !@HAVE_STRTOL@
++_GL_FUNCDECL_SYS (strtol, long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base)
++                  _GL_ARG_NONNULL ((1)));
++#  endif
++_GL_CXXALIAS_SYS (strtol, long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base));
++# endif
++_GL_CXXALIASWARN (strtol);
++#elif defined GNULIB_POSIXCHECK
++# undef strtol
++# if HAVE_RAW_DECL_STRTOL
++_GL_WARN_ON_USE (strtol, "strtol is unportable - "
++                 "use gnulib module strtol for portability");
++# endif
++#endif
++
+ #if @GNULIB_STRTOLL@
+ /* Parse a signed integer whose textual representation starts at STRING.
+    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
+@@ -1211,15 +1263,29 @@ _GL_WARN_ON_USE (strtold, "strtold is un
+    stored in *ENDPTR.
+    Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
+    to ERANGE.  */
+-# if !@HAVE_STRTOLL@
++# if @REPLACE_STRTOLL@
++#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
++#   define strtoll rpl_strtoll
++#  endif
++#  define GNULIB_defined_strtoll_function 1
++_GL_FUNCDECL_RPL (strtoll, long long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base)
++                  _GL_ARG_NONNULL ((1)));
++_GL_CXXALIAS_RPL (strtoll, long long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base));
++# else
++#  if !@HAVE_STRTOLL@
+ _GL_FUNCDECL_SYS (strtoll, long long,
+                   (const char *restrict string, char **restrict endptr,
+                    int base)
+                   _GL_ARG_NONNULL ((1)));
+-# endif
++#  endif
+ _GL_CXXALIAS_SYS (strtoll, long long,
+                   (const char *restrict string, char **restrict endptr,
+                    int base));
++# endif
+ _GL_CXXALIASWARN (strtoll);
+ #elif defined GNULIB_POSIXCHECK
+ # undef strtoll
+@@ -1229,6 +1295,46 @@ _GL_WARN_ON_USE (strtoll, "strtoll is un
+ # endif
+ #endif
+ 
++#if @GNULIB_STRTOUL@
++/* Parse an unsigned integer whose textual representation starts at STRING.
++   The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
++   it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
++   "0x").
++   If ENDPTR is not NULL, the address of the first byte after the integer is
++   stored in *ENDPTR.
++   Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE.  */
++# if @REPLACE_STRTOUL@
++#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
++#   define strtoul rpl_strtoul
++#  endif
++#  define GNULIB_defined_strtoul_function 1
++_GL_FUNCDECL_RPL (strtoul, unsigned long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base)
++                  _GL_ARG_NONNULL ((1)));
++_GL_CXXALIAS_RPL (strtoul, unsigned long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base));
++# else
++#  if !@HAVE_STRTOUL@
++_GL_FUNCDECL_SYS (strtoul, unsigned long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base)
++                  _GL_ARG_NONNULL ((1)));
++#  endif
++_GL_CXXALIAS_SYS (strtoul, unsigned long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base));
++# endif
++_GL_CXXALIASWARN (strtoul);
++#elif defined GNULIB_POSIXCHECK
++# undef strtoul
++# if HAVE_RAW_DECL_STRTOUL
++_GL_WARN_ON_USE (strtoul, "strtoul is unportable - "
++                 "use gnulib module strtoul for portability");
++# endif
++#endif
++
+ #if @GNULIB_STRTOULL@
+ /* Parse an unsigned integer whose textual representation starts at STRING.
+    The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
+@@ -1238,15 +1344,29 @@ _GL_WARN_ON_USE (strtoll, "strtoll is un
+    stored in *ENDPTR.
+    Upon overflow, the return value is ULLONG_MAX, and errno is set to
+    ERANGE.  */
+-# if !@HAVE_STRTOULL@
++# if @REPLACE_STRTOULL@
++#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
++#   define strtoull rpl_strtoull
++#  endif
++#  define GNULIB_defined_strtoull_function 1
++_GL_FUNCDECL_RPL (strtoull, unsigned long long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base)
++                  _GL_ARG_NONNULL ((1)));
++_GL_CXXALIAS_RPL (strtoull, unsigned long long,
++                  (const char *restrict string, char **restrict endptr,
++                   int base));
++# else
++#  if !@HAVE_STRTOULL@
+ _GL_FUNCDECL_SYS (strtoull, unsigned long long,
+                   (const char *restrict string, char **restrict endptr,
+                    int base)
+                   _GL_ARG_NONNULL ((1)));
+-# endif
++#  endif
+ _GL_CXXALIAS_SYS (strtoull, unsigned long long,
+                   (const char *restrict string, char **restrict endptr,
+                    int base));
++# endif
+ _GL_CXXALIASWARN (strtoull);
+ #elif defined GNULIB_POSIXCHECK
+ # undef strtoull
+--- a/gnulib/lib/stpcpy.c
++++ b/gnulib/lib/stpcpy.c
+@@ -5,17 +5,17 @@
+    NOTE: The canonical source of this file is maintained with the GNU C Library.
+    Bugs can be reported to bug-glibc@prep.ai.mit.edu.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published by the
+-   Free Software Foundation; either version 3 of the License, or any
+-   later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/str-kmp.h
++++ b/gnulib/lib/str-kmp.h
+@@ -3,18 +3,26 @@
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2005.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software.
++   It is dual-licensed under "the GNU LGPLv3+ or the GNU GPLv2+".
++   You can redistribute it and/or modify it under either
++     - the terms of the GNU Lesser General Public License as published
++       by the Free Software Foundation; either version 3, or (at your
++       option) any later version, or
++     - the terms of the GNU General Public License as published by the
++       Free Software Foundation; either version 2, or (at your option)
++       any later version, or
++     - the same dual license "the GNU LGPLv3+ or the GNU GPLv2+".
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License and the GNU General Public License
++   for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public
++   License and of the GNU General Public License along with this
++   program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Before including this file, you need to define:
+      UNIT                    The element type of the needle and haystack.
+--- a/gnulib/lib/str-two-way.h
++++ b/gnulib/lib/str-two-way.h
+@@ -3,18 +3,18 @@
+    This file is part of the GNU C Library.
+    Written by Eric Blake <ebb9@byu.net>, 2008.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Before including this file, you need to include <config.h> and
+    <string.h>, and define:
+--- a/gnulib/lib/strcasecmp.c
++++ b/gnulib/lib/strcasecmp.c
+@@ -1,18 +1,18 @@
+ /* Case-insensitive string comparison function.
+    Copyright (C) 1998-1999, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/strcasestr.c
++++ b/gnulib/lib/strcasestr.c
+@@ -2,18 +2,18 @@
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2005.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/strdup.c
++++ b/gnulib/lib/strdup.c
+@@ -3,18 +3,18 @@
+ 
+    This file is part of the GNU C Library.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _LIBC
+ # include <config.h>
+--- a/gnulib/lib/streq.h
++++ b/gnulib/lib/streq.h
+@@ -1,17 +1,17 @@
+ /* Optimized string comparison.
+    Copyright (C) 2001-2002, 2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>.  */
+--- a/gnulib/lib/strerror-override.c
++++ b/gnulib/lib/strerror-override.c
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2010-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
+@@ -29,6 +29,8 @@
+ # endif
+ #endif
+ 
++#if !GNULIB_defined_strerror_override_macro
++
+ /* If ERRNUM maps to an errno value defined by gnulib, return a string
+    describing the error.  Otherwise return NULL.  */
+ const char *
+@@ -37,12 +39,12 @@ strerror_override (int errnum)
+   /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
+   switch (errnum)
+     {
+-#if REPLACE_STRERROR_0
++# if REPLACE_STRERROR_0
+     case 0:
+       return "Success";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
++# if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
+     case EINPROGRESS:
+       return "Operation now in progress";
+     case EALREADY:
+@@ -89,8 +91,8 @@ strerror_override (int errnum)
+       return "No route to host";
+     case EWOULDBLOCK:
+       return "Operation would block";
+-#endif
+-#if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
++# endif
++# if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
+     case ETXTBSY:
+       return "Text file busy";
+     case ENODATA:
+@@ -103,8 +105,8 @@ strerror_override (int errnum)
+       return "Timer expired";
+     case EOTHER:
+       return "Other error";
+-#endif
+-#if GNULIB_defined_EWINSOCK /* native Windows platforms */
++# endif
++# if GNULIB_defined_EWINSOCK /* native Windows platforms */
+     case ESOCKTNOSUPPORT:
+       return "Socket type not supported";
+     case EPFNOSUPPORT:
+@@ -125,7 +127,7 @@ strerror_override (int errnum)
+       return "Stale NFS file handle";
+     case EREMOTE:
+       return "Object is remote";
+-# if HAVE_WINSOCK2_H
++#  if HAVE_WINSOCK2_H
+       /* WSA_INVALID_HANDLE maps to EBADF */
+       /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
+       /* WSA_INVALID_PARAMETER maps to EINVAL */
+@@ -213,90 +215,92 @@ strerror_override (int errnum)
+     case WSANO_DATA:
+       return "Valid name, no data record of requested type";
+       /* WSA_QOS_* omitted */
++#  endif
+ # endif
+-#endif
+ 
+-#if GNULIB_defined_ENOMSG
++# if GNULIB_defined_ENOMSG
+     case ENOMSG:
+       return "No message of desired type";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_EIDRM
++# if GNULIB_defined_EIDRM
+     case EIDRM:
+       return "Identifier removed";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_ENOLINK
++# if GNULIB_defined_ENOLINK
+     case ENOLINK:
+       return "Link has been severed";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_EPROTO
++# if GNULIB_defined_EPROTO
+     case EPROTO:
+       return "Protocol error";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_EMULTIHOP
++# if GNULIB_defined_EMULTIHOP
+     case EMULTIHOP:
+       return "Multihop attempted";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_EBADMSG
++# if GNULIB_defined_EBADMSG
+     case EBADMSG:
+       return "Bad message";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_EOVERFLOW
++# if GNULIB_defined_EOVERFLOW
+     case EOVERFLOW:
+       return "Value too large for defined data type";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_ENOTSUP
++# if GNULIB_defined_ENOTSUP
+     case ENOTSUP:
+       return "Not supported";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_ENETRESET
++# if GNULIB_defined_ENETRESET
+     case ENETRESET:
+       return "Network dropped connection on reset";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_ECONNABORTED
++# if GNULIB_defined_ECONNABORTED
+     case ECONNABORTED:
+       return "Software caused connection abort";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_ESTALE
++# if GNULIB_defined_ESTALE
+     case ESTALE:
+       return "Stale NFS file handle";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_EDQUOT
++# if GNULIB_defined_EDQUOT
+     case EDQUOT:
+       return "Disk quota exceeded";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_ECANCELED
++# if GNULIB_defined_ECANCELED
+     case ECANCELED:
+       return "Operation canceled";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_EOWNERDEAD
++# if GNULIB_defined_EOWNERDEAD
+     case EOWNERDEAD:
+       return "Owner died";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_ENOTRECOVERABLE
++# if GNULIB_defined_ENOTRECOVERABLE
+     case ENOTRECOVERABLE:
+       return "State not recoverable";
+-#endif
++# endif
+ 
+-#if GNULIB_defined_EILSEQ
++# if GNULIB_defined_EILSEQ
+     case EILSEQ:
+       return "Invalid or incomplete multibyte or wide character";
+-#endif
++# endif
+ 
+     default:
+       return NULL;
+     }
+ }
++
++#endif
+--- a/gnulib/lib/strerror-override.h
++++ b/gnulib/lib/strerror-override.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2010-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _GL_STRERROR_OVERRIDE_H
+@@ -51,6 +51,7 @@
+ extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST;
+ # else
+ #  define strerror_override(ignored) NULL
++#  define GNULIB_defined_strerror_override_macro 1
+ # endif
+ 
+ #endif /* _GL_STRERROR_OVERRIDE_H */
+--- a/gnulib/lib/strerror.c
++++ b/gnulib/lib/strerror.c
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/string.in.h
++++ b/gnulib/lib/string.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 1995-1996, 2001-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #if __GNUC__ >= 3
+ @PRAGMA_SYSTEM_HEADER@
+@@ -446,7 +446,7 @@ _GL_WARN_ON_USE (strdup, "strdup is unpo
+ #elif @GNULIB_MDA_STRDUP@
+ /* On native Windows, map 'creat' to '_creat', so that -loldnames is not
+    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
+-   platforms by defining GNULIB_NAMESPACE::creat always.  */
++   platforms by defining GNULIB_NAMESPACE::strdup always.  */
+ # if defined _WIN32 && !defined __CYGWIN__
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   undef strdup
+--- a/gnulib/lib/strings.in.h
++++ b/gnulib/lib/strings.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _@GUARD_PREFIX@_STRINGS_H
+ 
+--- a/gnulib/lib/strncasecmp.c
++++ b/gnulib/lib/strncasecmp.c
+@@ -1,18 +1,18 @@
+ /* strncasecmp.c -- case insensitive string comparator
+    Copyright (C) 1998-1999, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/strndup.c
++++ b/gnulib/lib/strndup.c
+@@ -3,18 +3,18 @@
+    Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2021 Free Software
+    Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published by the
+-   Free Software Foundation; either version 3, or (at your option) any
+-   later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/strnlen.c
++++ b/gnulib/lib/strnlen.c
+@@ -2,18 +2,18 @@
+    Copyright (C) 2005-2007, 2009-2021 Free Software Foundation, Inc.
+    Written by Simon Josefsson.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/strnlen1.c
++++ b/gnulib/lib/strnlen1.c
+@@ -1,17 +1,17 @@
+ /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+    Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/strnlen1.h
++++ b/gnulib/lib/strnlen1.h
+@@ -1,17 +1,17 @@
+ /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+    Copyright (C) 2005, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _STRNLEN1_H
+--- a/gnulib/lib/strstr.c
++++ b/gnulib/lib/strstr.c
+@@ -2,18 +2,18 @@
+    Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* This particular implementation was written by Eric Blake, 2008.  */
+ 
+--- a/gnulib/lib/sys_stat.in.h
++++ b/gnulib/lib/sys_stat.in.h
+@@ -1,18 +1,18 @@
+ /* Provide a more complete sys/stat.h header file.
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Eric Blake, Paul Eggert, and Jim Meyering.  */
+ 
+--- a/gnulib/lib/sys_types.in.h
++++ b/gnulib/lib/sys_types.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #if __GNUC__ >= 3
+ @PRAGMA_SYSTEM_HEADER@
+--- a/gnulib/lib/time.in.h
++++ b/gnulib/lib/time.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #if __GNUC__ >= 3
+ @PRAGMA_SYSTEM_HEADER@
+@@ -340,22 +340,60 @@ _GL_CXXALIASWARN (strftime);
+ # endif
+ 
+ # if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@
++/* Functions that use a first-class time zone data type, instead of
++   relying on an implicit global time zone.
++   Inspired by NetBSD.  */
++
++/* Represents a time zone.
++   (timezone_t) NULL stands for UTC.  */
+ typedef struct tm_zone *timezone_t;
++
++/* tzalloc (name)
++   Returns a time zone object for the given time zone NAME.  This object
++   represents the time zone that other functions would use it the TZ
++   environment variable was set to NAME.
++   If NAME is NULL, the result represents the time zone that other functions
++   would use it the TZ environment variable was unset.
++   May return NULL if NAME is invalid (this is platform dependent) or
++   upon memory allocation failure.  */
+ _GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name));
+ _GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name));
++
++/* tzfree (tz)
++   Frees a time zone object.
++   The argument must have been returned by tzalloc().  */
+ _GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz));
+ _GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz));
++
++/* localtime_rz (tz, &t, &result)
++   Converts an absolute time T to a broken-down time RESULT, assuming the
++   time zone TZ.
++   This function is like 'localtime_r', but relies on the argument TZ instead
++   of an implicit global time zone.  */
+ _GL_FUNCDECL_SYS (localtime_rz, struct tm *,
+                   (timezone_t __tz, time_t const *restrict __timer,
+                    struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3)));
+ _GL_CXXALIAS_SYS (localtime_rz, struct tm *,
+                   (timezone_t __tz, time_t const *restrict __timer,
+                    struct tm *restrict __result));
++
++/* mktime_z (tz, &tm)
++   Normalizes the broken-down time TM and converts it to an absolute time,
++   assuming the time zone TZ.  Returns the absolute time.
++   This function is like 'mktime', but relies on the argument TZ instead
++   of an implicit global time zone.  */
+ _GL_FUNCDECL_SYS (mktime_z, time_t,
+-                  (timezone_t __tz, struct tm *restrict __result)
++                  (timezone_t __tz, struct tm *restrict __tm)
+                   _GL_ARG_NONNULL ((2)));
+ _GL_CXXALIAS_SYS (mktime_z, time_t,
+-                  (timezone_t __tz, struct tm *restrict __result));
++                  (timezone_t __tz, struct tm *restrict __tm));
++
++/* Time zone abbreviation strings (returned by 'localtime_rz' or 'mktime_z'
++   in the 'tm_zone' member of 'struct tm') are valid as long as
++     - the 'struct tm' argument is not destroyed or overwritten,
++   and
++     - the 'timezone_t' argument is not freed through tzfree().  */
++
+ # endif
+ 
+ /* Convert TM to a time_t value, assuming UTC.  */
+--- a/gnulib/lib/unistd.c
++++ b/gnulib/lib/unistd.c
+@@ -1,4 +1,22 @@
++/* Inline functions for <unistd.h>.
++
++   Copyright (C) 2012-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE
+ #include "unistd.h"
+ typedef int dummy;
+--- a/gnulib/lib/unistd.in.h
++++ b/gnulib/lib/unistd.in.h
+@@ -1,18 +1,18 @@
+ /* Substitute for and wrapper around <unistd.h>.
+    Copyright (C) 2003-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _@GUARD_PREFIX@_UNISTD_H
+ 
+@@ -1521,6 +1521,7 @@ _GL_WARN_ON_USE (group_member, "group_me
+ #   undef isatty
+ #   define isatty rpl_isatty
+ #  endif
++#  define GNULIB_defined_isatty 1
+ _GL_FUNCDECL_RPL (isatty, int, (int fd));
+ _GL_CXXALIAS_RPL (isatty, int, (int fd));
+ # elif defined _WIN32 && !defined __CYGWIN__
+@@ -2027,15 +2028,23 @@ _GL_WARN_ON_USE (sleep, "sleep is unport
+ #if @GNULIB_MDA_SWAB@
+ /* On native Windows, map 'swab' to '_swab', so that -loldnames is not
+    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
+-   platforms by defining GNULIB_NAMESPACE::creat always.  */
++   platforms by defining GNULIB_NAMESPACE::swab always.  */
+ # if defined _WIN32 && !defined __CYGWIN__
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   undef swab
+ #   define swab _swab
+ #  endif
+-_GL_CXXALIAS_MDA (swab, void, (char *from, char *to, int n));
+-# else
++/* Need to cast, because in old mingw the arguments are
++                             (const char *from, char *to, size_t n).  */
++_GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n));
++# else
++#  if defined __hpux /* HP-UX */
++_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n));
++#  elif defined __sun && !defined _XPG4 /* Solaris */
++_GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n));
++#  else
+ _GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n));
++#  endif
+ # endif
+ _GL_CXXALIASWARN (swab);
+ #endif
+--- a/gnulib/lib/unitypes.in.h
++++ b/gnulib/lib/unitypes.in.h
+@@ -1,17 +1,17 @@
+ /* Elementary types and macros for the GNU UniString library.
+    Copyright (C) 2002, 2005-2006, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _UNITYPES_H
+--- a/gnulib/lib/uniwidth.in.h
++++ b/gnulib/lib/uniwidth.in.h
+@@ -2,17 +2,17 @@
+    Copyright (C) 2001-2002, 2005, 2007, 2009-2021 Free Software Foundation,
+    Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _UNIWIDTH_H
+--- a/gnulib/lib/uniwidth/cjk.h
++++ b/gnulib/lib/uniwidth/cjk.h
+@@ -2,17 +2,17 @@
+    Copyright (C) 2001-2002, 2005-2007, 2009-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2002.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include "streq.h"
+--- a/gnulib/lib/uniwidth/width.c
++++ b/gnulib/lib/uniwidth/width.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2001-2002, 2006-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2002.
+ 
+-   This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/vasnprintf.c
++++ b/gnulib/lib/vasnprintf.c
+@@ -1,18 +1,18 @@
+ /* vsprintf with automatic memory allocation.
+    Copyright (C) 1999, 2002-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* This file can be parametrized with the following macros:
+      VASNPRINTF         The name of the function being defined.
+@@ -60,9 +60,7 @@
+ #ifndef VASNPRINTF
+ # include <config.h>
+ #endif
+-#ifndef IN_LIBINTL
+-# include <alloca.h>
+-#endif
++#include <alloca.h>
+ 
+ /* Specification.  */
+ #ifndef VASNPRINTF
+@@ -1859,6 +1857,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+     /* errno is already set.  */
+     return NULL;
+ 
++  /* Frees the memory allocated by this function.  Preserves errno.  */
+ #define CLEANUP() \
+   if (d.dir != d.direct_alloc_dir)                                      \
+     free (d.dir);                                                       \
+@@ -1923,7 +1922,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+ 
+     /* Ensures that allocated >= needed.  Aborts through a jump to
+        out_of_memory if needed is SIZE_MAX or otherwise too big.  */
+-#define ENSURE_ALLOCATION(needed) \
++#define ENSURE_ALLOCATION_ELSE(needed, oom_statement) \
+     if ((needed) > allocated)                                                \
+       {                                                                      \
+         size_t memory_size;                                                  \
+@@ -1934,17 +1933,19 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+           allocated = (needed);                                              \
+         memory_size = xtimes (allocated, sizeof (DCHAR_T));                  \
+         if (size_overflow_p (memory_size))                                   \
+-          goto out_of_memory;                                                \
++          oom_statement                                                      \
+         if (result == resultbuf || result == NULL)                           \
+           memory = (DCHAR_T *) malloc (memory_size);                         \
+         else                                                                 \
+           memory = (DCHAR_T *) realloc (result, memory_size);                \
+         if (memory == NULL)                                                  \
+-          goto out_of_memory;                                                \
++          oom_statement                                                      \
+         if (result == resultbuf && length > 0)                               \
+           DCHAR_CPY (memory, result, length);                                \
+         result = memory;                                                     \
+       }
++#define ENSURE_ALLOCATION(needed) \
++  ENSURE_ALLOCATION_ELSE((needed), goto out_of_memory; )
+ 
+     for (cp = format, i = 0, dp = &d.dir[0]; ; cp = dp->dir_end, i++, dp++)
+       {
+@@ -2183,18 +2184,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+ #  endif
+                         if (converted == NULL)
+                           {
+-                            int saved_errno = errno;
+                             if (!(result == resultbuf || result == NULL))
+                               free (result);
+                             if (buf_malloced != NULL)
+                               free (buf_malloced);
+                             CLEANUP ();
+-                            errno = saved_errno;
+                             return NULL;
+                           }
+                         if (converted != result + length)
+                           {
+-                            ENSURE_ALLOCATION (xsum (length, converted_len));
++                            ENSURE_ALLOCATION_ELSE (xsum (length, converted_len),
++                                                    { free (converted); goto out_of_memory; });
+                             DCHAR_CPY (result + length, converted, converted_len);
+                             free (converted);
+                           }
+@@ -2309,18 +2309,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+ #  endif
+                         if (converted == NULL)
+                           {
+-                            int saved_errno = errno;
+                             if (!(result == resultbuf || result == NULL))
+                               free (result);
+                             if (buf_malloced != NULL)
+                               free (buf_malloced);
+                             CLEANUP ();
+-                            errno = saved_errno;
+                             return NULL;
+                           }
+                         if (converted != result + length)
+                           {
+-                            ENSURE_ALLOCATION (xsum (length, converted_len));
++                            ENSURE_ALLOCATION_ELSE (xsum (length, converted_len),
++                                                    { free (converted); goto out_of_memory; });
+                             DCHAR_CPY (result + length, converted, converted_len);
+                             free (converted);
+                           }
+@@ -2435,18 +2434,17 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+ #  endif
+                         if (converted == NULL)
+                           {
+-                            int saved_errno = errno;
+                             if (!(result == resultbuf || result == NULL))
+                               free (result);
+                             if (buf_malloced != NULL)
+                               free (buf_malloced);
+                             CLEANUP ();
+-                            errno = saved_errno;
+                             return NULL;
+                           }
+                         if (converted != result + length)
+                           {
+-                            ENSURE_ALLOCATION (xsum (length, converted_len));
++                            ENSURE_ALLOCATION_ELSE (xsum (length, converted_len),
++                                                    { free (converted); goto out_of_memory; });
+                             DCHAR_CPY (result + length, converted, converted_len);
+                             free (converted);
+                           }
+@@ -2852,14 +2850,12 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+                                               NULL, &tmpdst_len);
+                   if (tmpdst == NULL)
+                     {
+-                      int saved_errno = errno;
+                       free (tmpsrc);
+                       if (!(result == resultbuf || result == NULL))
+                         free (result);
+                       if (buf_malloced != NULL)
+                         free (buf_malloced);
+                       CLEANUP ();
+-                      errno = saved_errno;
+                       return NULL;
+                     }
+                   free (tmpsrc);
+@@ -2951,7 +2947,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+                         }
+                     }
+ #  else
+-                  ENSURE_ALLOCATION (xsum (length, tmpdst_len));
++                  ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len),
++                                          { free (tmpdst); goto out_of_memory; });
+                   DCHAR_CPY (result + length, tmpdst, tmpdst_len);
+                   free (tmpdst);
+                   length += tmpdst_len;
+@@ -3079,13 +3076,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+                                               NULL, &tmpdst_len);
+                   if (tmpdst == NULL)
+                     {
+-                      int saved_errno = errno;
+                       if (!(result == resultbuf || result == NULL))
+                         free (result);
+                       if (buf_malloced != NULL)
+                         free (buf_malloced);
+                       CLEANUP ();
+-                      errno = saved_errno;
+                       return NULL;
+                     }
+ # endif
+@@ -3156,7 +3151,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+                         }
+                     }
+ # else
+-                  ENSURE_ALLOCATION (xsum (length, tmpdst_len));
++                  ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len),
++                                          { free (tmpdst); goto out_of_memory; });
+                   DCHAR_CPY (result + length, tmpdst, tmpdst_len);
+                   free (tmpdst);
+                   length += tmpdst_len;
+@@ -5449,15 +5445,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+                     /* Attempt to handle failure.  */
+                     if (count < 0)
+                       {
+-                        /* SNPRINTF or sprintf failed.  Save and use the errno
+-                           that it has set, if any.  */
+-                        int saved_errno = errno;
+-                        if (saved_errno == 0)
++                        /* SNPRINTF or sprintf failed.  Use the errno that it
++                           has set, if any.  */
++                        if (errno == 0)
+                           {
+                             if (dp->conversion == 'c' || dp->conversion == 's')
+-                              saved_errno = EILSEQ;
++                              errno = EILSEQ;
+                             else
+-                              saved_errno = EINVAL;
++                              errno = EINVAL;
+                           }
+ 
+                         if (!(result == resultbuf || result == NULL))
+@@ -5466,7 +5461,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+                           free (buf_malloced);
+                         CLEANUP ();
+ 
+-                        errno = saved_errno;
+                         return NULL;
+                       }
+ 
+@@ -5602,16 +5596,15 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
+                                                     NULL, &tmpdst_len);
+                         if (tmpdst == NULL)
+                           {
+-                            int saved_errno = errno;
+                             if (!(result == resultbuf || result == NULL))
+                               free (result);
+                             if (buf_malloced != NULL)
+                               free (buf_malloced);
+                             CLEANUP ();
+-                            errno = saved_errno;
+                             return NULL;
+                           }
+-                        ENSURE_ALLOCATION (xsum (length, tmpdst_len));
++                        ENSURE_ALLOCATION_ELSE (xsum (length, tmpdst_len),
++                                                { free (tmpdst); goto out_of_memory; });
+                         DCHAR_CPY (result + length, tmpdst, tmpdst_len);
+                         free (tmpdst);
+                         count = tmpdst_len;
+--- a/gnulib/lib/vasnprintf.h
++++ b/gnulib/lib/vasnprintf.h
+@@ -1,18 +1,18 @@
+ /* vsprintf with automatic memory allocation.
+    Copyright (C) 2002-2004, 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _VASNPRINTF_H
+ #define _VASNPRINTF_H
+--- a/gnulib/lib/vasprintf.c
++++ b/gnulib/lib/vasprintf.c
+@@ -1,18 +1,18 @@
+ /* Formatted output to strings.
+    Copyright (C) 1999, 2002, 2006-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License along
+-   with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+ 
+--- a/gnulib/lib/verify.h
++++ b/gnulib/lib/verify.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 2005-2006, 2009-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering.  */
+--- a/gnulib/lib/warn-on-use.h
++++ b/gnulib/lib/warn-on-use.h
+@@ -2,16 +2,16 @@
+    Copyright (C) 2010-2021 Free Software Foundation, Inc.
+ 
+    This program is free software: you can redistribute it and/or modify it
+-   under the terms of the GNU General Public License as published
+-   by the Free Software Foundation; either version 3 of the License, or
++   under the terms of the GNU Lesser General Public License as published
++   by the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   General Public License for more details.
++   Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration
+--- a/gnulib/lib/wchar.in.h
++++ b/gnulib/lib/wchar.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Eric Blake.  */
+ 
+@@ -111,7 +111,7 @@
+ /* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or
+    <stddef.h>.  This is too small: ISO C 99 section 7.24.1.(2) says that
+    wint_t must be "unchanged by default argument promotions".  Override it.  */
+-# if @GNULIB_OVERRIDES_WINT_T@
++# if @GNULIBHEADERS_OVERRIDE_WINT_T@
+ #  if !GNULIB_defined_wint_t
+ #   if @HAVE_CRTDEFS_H@
+ #    include <crtdefs.h>
+--- a/gnulib/lib/wcrtomb.c
++++ b/gnulib/lib/wcrtomb.c
+@@ -2,17 +2,17 @@
+    Copyright (C) 2008-2021 Free Software Foundation, Inc.
+    Written by Bruno Haible <bruno@clisp.org>, 2008.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/wctype-h.c
++++ b/gnulib/lib/wctype-h.c
+@@ -1,4 +1,23 @@
++/* Inline functions for <wctype.h>.
++
++   Copyright (C) 2012-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
+ /* Normally this would be wctype.c, but that name's already taken.  */
++
+ #include <config.h>
++
+ #define _GL_WCTYPE_INLINE _GL_EXTERN_INLINE
+ #include "wctype.h"
+--- a/gnulib/lib/wctype.in.h
++++ b/gnulib/lib/wctype.in.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2006-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible and Paul Eggert.  */
+ 
+@@ -103,7 +103,7 @@ _GL_INLINE_HEADER_BEGIN
+ /* mingw and MSVC define wint_t as 'unsigned short' in <crtdefs.h> or
+    <stddef.h>.  This is too small: ISO C 99 section 7.24.1.(2) says that
+    wint_t must be "unchanged by default argument promotions".  Override it.  */
+-# if @GNULIB_OVERRIDES_WINT_T@
++# if @GNULIBHEADERS_OVERRIDE_WINT_T@
+ #  if !GNULIB_defined_wint_t
+ #   if @HAVE_CRTDEFS_H@
+ #    include <crtdefs.h>
+@@ -132,7 +132,7 @@ typedef unsigned int rpl_wint_t;
+    same way, or not at all.  */
+ # if ! @HAVE_ISWCNTRL@ || @REPLACE_ISWCNTRL@
+ 
+-#  if @GNULIB_OVERRIDES_WINT_T@ /* implies @REPLACE_ISWCNTRL@ */
++#  if @GNULIBHEADERS_OVERRIDE_WINT_T@ /* implies @REPLACE_ISWCNTRL@ */
+ 
+ _GL_WCTYPE_INLINE int
+ rpl_iswalnum (wint_t wc)
+@@ -496,7 +496,7 @@ _GL_FUNCDECL_RPL (iswxdigit, int, (wint_
+ 
+ # endif
+ 
+-# if defined __MINGW32__ && !@GNULIB_OVERRIDES_WINT_T@
++# if defined __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@
+ 
+ /* On native Windows, wchar_t is uint16_t, and wint_t is uint32_t.
+    The functions towlower and towupper are implemented in the MSVCRT library
+@@ -529,7 +529,7 @@ rpl_towupper (wint_t wc)
+ #   define towupper rpl_towupper
+ #  endif
+ 
+-# endif /* __MINGW32__ && !@GNULIB_OVERRIDES_WINT_T@ */
++# endif /* __MINGW32__ && !@GNULIBHEADERS_OVERRIDE_WINT_T@ */
+ 
+ # define GNULIB_defined_wctype_functions 1
+ #endif
+@@ -646,7 +646,7 @@ _GL_WARN_ON_USE (wctype, "wctype is unpo
+    The argument WC must be either a wchar_t value or WEOF.
+    The argument DESC must have been returned by the wctype() function.  */
+ #if @GNULIB_ISWCTYPE@
+-# if @GNULIB_OVERRIDES_WINT_T@
++# if @GNULIBHEADERS_OVERRIDE_WINT_T@
+ #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+ #   undef iswctype
+ #   define iswctype rpl_iswctype
+--- a/gnulib/lib/wcwidth.c
++++ b/gnulib/lib/wcwidth.c
+@@ -1,17 +1,17 @@
+ /* Determine the number of screen columns needed for a character.
+    Copyright (C) 2006-2007, 2010-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #include <config.h>
+--- a/gnulib/lib/windows-initguard.h
++++ b/gnulib/lib/windows-initguard.h
+@@ -1,18 +1,18 @@
+ /* Init guards, somewhat like spinlocks (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/windows-mutex.c
++++ b/gnulib/lib/windows-mutex.c
+@@ -1,18 +1,18 @@
+ /* Plain mutexes (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/windows-mutex.h
++++ b/gnulib/lib/windows-mutex.h
+@@ -1,18 +1,18 @@
+ /* Plain mutexes (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/windows-once.c
++++ b/gnulib/lib/windows-once.c
+@@ -1,18 +1,18 @@
+ /* Once-only control (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/windows-once.h
++++ b/gnulib/lib/windows-once.h
+@@ -1,18 +1,18 @@
+ /* Once-only control (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/windows-recmutex.c
++++ b/gnulib/lib/windows-recmutex.c
+@@ -1,18 +1,18 @@
+ /* Plain recursive mutexes (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/windows-recmutex.h
++++ b/gnulib/lib/windows-recmutex.h
+@@ -1,18 +1,18 @@
+ /* Plain recursive mutexes (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/windows-rwlock.c
++++ b/gnulib/lib/windows-rwlock.c
+@@ -1,18 +1,18 @@
+ /* Read-write locks (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/windows-rwlock.h
++++ b/gnulib/lib/windows-rwlock.h
+@@ -1,18 +1,18 @@
+ /* Read-write locks (native Windows implementation).
+    Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ /* Written by Bruno Haible <bruno@clisp.org>, 2005.
+    Based on GCC's gthr-win32.h.  */
+--- a/gnulib/lib/xalloc-oversized.h
++++ b/gnulib/lib/xalloc-oversized.h
+@@ -2,17 +2,17 @@
+ 
+    Copyright (C) 1990-2000, 2003-2004, 2006-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software: you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3 of the License, or
+-   (at your option) any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
++   You should have received a copy of the GNU Lesser General Public License
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef XALLOC_OVERSIZED_H_
+@@ -21,34 +21,39 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
+-/* True if N * S would overflow in a size_t calculation,
+-   or would generate a value larger than PTRDIFF_MAX.
++/* True if N * S does not fit into both ptrdiff_t and size_t.
++   N and S should be nonnegative and free of side effects.
+    This expands to a constant expression if N and S are both constants.
+-   By gnulib convention, SIZE_MAX represents overflow in size
++   By gnulib convention, SIZE_MAX represents overflow in size_t
+    calculations, so the conservative size_t-based dividend to use here
+    is SIZE_MAX - 1.  */
+ #define __xalloc_oversized(n, s) \
+-  ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) < (n))
+-
+-#if PTRDIFF_MAX < SIZE_MAX
+-typedef ptrdiff_t __xalloc_count_type;
+-#else
+-typedef size_t __xalloc_count_type;
+-#endif
+-
+-/* Return 1 if an array of N objects, each of size S, cannot exist
+-   reliably due to size or ptrdiff_t arithmetic overflow.  S must be
+-   positive and N must be nonnegative.  This is a macro, not a
+-   function, so that it works correctly even when SIZE_MAX < N.  */
+-
+-#if 7 <= __GNUC__ && !defined __clang__
++  ((s) != 0 \
++   && ((size_t) (PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX - 1) / (s) \
++       < (n)))
++
++/* Return 1 if and only if an array of N objects, each of size S,
++   cannot exist reliably because its total size in bytes would exceed
++   MIN (PTRDIFF_MAX, SIZE_MAX - 1).
++
++   N and S should be nonnegative and free of side effects.
++
++   Warning: (xalloc_oversized (N, S) ? NULL : malloc (N * S)) can
++   misbehave if N and S are both narrower than ptrdiff_t and size_t,
++   and can be rewritten as (xalloc_oversized (N, S) ?  NULL
++   : malloc (N * (size_t) S)).
++
++   This is a macro, not a function, so that it works even if an
++   argument exceeds MAX (PTRDIFF_MAX, SIZE_MAX).  */
++#if 7 <= __GNUC__ && !defined __clang__ && PTRDIFF_MAX < SIZE_MAX
+ # define xalloc_oversized(n, s) \
+-   __builtin_mul_overflow_p (n, s, (__xalloc_count_type) 1)
+-#elif 5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__
++   __builtin_mul_overflow_p (n, s, (ptrdiff_t) 1)
++#elif (5 <= __GNUC__ && !defined __ICC && !__STRICT_ANSI__ \
++       && PTRDIFF_MAX < SIZE_MAX)
+ # define xalloc_oversized(n, s) \
+    (__builtin_constant_p (n) && __builtin_constant_p (s) \
+     ? __xalloc_oversized (n, s) \
+-    : ({ __xalloc_count_type __xalloc_count; \
++    : ({ ptrdiff_t __xalloc_count; \
+          __builtin_mul_overflow (n, s, &__xalloc_count); }))
+ 
+ /* Other compilers use integer division; this may be slower but is
+--- a/gnulib/lib/xalloc.h
++++ b/gnulib/lib/xalloc.h
+@@ -21,7 +21,10 @@
+ #include <stddef.h>
+ #include <stdint.h>
+ 
+-#include "xalloc-oversized.h"
++#if GNULIB_XALLOC
++# include "idx.h"
++# include "intprops.h"
++#endif
+ 
+ #ifndef _GL_INLINE_HEADER_BEGIN
+  #error "Please include config.h first."
+@@ -50,17 +53,26 @@ extern "C" {
+ 
+ #if GNULIB_XALLOC
+ 
+-void *xmalloc (size_t s)
+-      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+-void *xzalloc (size_t s)
+-      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
++void *xmalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
++void *ximalloc (idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
++void *xzalloc (size_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
++void *xizalloc (idx_t s) _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+ void *xcalloc (size_t n, size_t s)
+-      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
+-void *xrealloc (void *p, size_t s)
+-      _GL_ATTRIBUTE_ALLOC_SIZE ((2));
+-void *x2realloc (void *p, size_t *pn);
+-void *xmemdup (void const *p, size_t s)
+-      _GL_ATTRIBUTE_ALLOC_SIZE ((2));
++  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
++void *xicalloc (idx_t n, idx_t s)
++  _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
++void *xrealloc (void *p, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2));
++void *xirealloc (void *p, idx_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2));
++void *xreallocarray (void *p, size_t n, size_t s)
++      _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3));
++void *xireallocarray (void *p, idx_t n, idx_t s)
++      _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3));
++void *x2realloc (void *p, size_t *ps); /* superseded by xpalloc */
++void *x2nrealloc (void *p, size_t *pn, size_t s); /* superseded by xpalloc */
++void *xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s);
++void *xmemdup (void const *p, size_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2));
++void *ximemdup (void const *p, idx_t s) _GL_ATTRIBUTE_ALLOC_SIZE ((2));
++char *ximemdup0 (void const *p, idx_t s) _GL_ATTRIBUTE_MALLOC;
+ char *xstrdup (char const *str)
+       _GL_ATTRIBUTE_MALLOC;
+ 
+@@ -98,11 +110,10 @@ XALLOC_INLINE void *xnmalloc (size_t n,
+ XALLOC_INLINE void *
+ xnmalloc (size_t n, size_t s)
+ {
+-  if (xalloc_oversized (n, s))
+-    xalloc_die ();
+-  return xmalloc (n * s);
++  return xreallocarray (NULL, n, s);
+ }
+ 
++/* FIXME: Deprecate this in favor of xreallocarray?  */
+ /* Change the size of an allocated block of memory P to an array of N
+    objects each of S bytes, with error checking.  S must be nonzero.  */
+ 
+@@ -111,100 +122,7 @@ XALLOC_INLINE void *xnrealloc (void *p,
+ XALLOC_INLINE void *
+ xnrealloc (void *p, size_t n, size_t s)
+ {
+-  if (xalloc_oversized (n, s))
+-    xalloc_die ();
+-  return xrealloc (p, n * s);
+-}
+-
+-/* If P is null, allocate a block of at least *PN such objects;
+-   otherwise, reallocate P so that it contains more than *PN objects
+-   each of S bytes.  S must be nonzero.  Set *PN to the new number of
+-   objects, and return the pointer to the new block.  *PN is never set
+-   to zero, and the returned pointer is never null.
+-
+-   Repeated reallocations are guaranteed to make progress, either by
+-   allocating an initial block with a nonzero size, or by allocating a
+-   larger block.
+-
+-   In the following implementation, nonzero sizes are increased by a
+-   factor of approximately 1.5 so that repeated reallocations have
+-   O(N) overall cost rather than O(N**2) cost, but the
+-   specification for this function does not guarantee that rate.
+-
+-   Here is an example of use:
+-
+-     int *p = NULL;
+-     size_t used = 0;
+-     size_t allocated = 0;
+-
+-     void
+-     append_int (int value)
+-       {
+-         if (used == allocated)
+-           p = x2nrealloc (p, &allocated, sizeof *p);
+-         p[used++] = value;
+-       }
+-
+-   This causes x2nrealloc to allocate a block of some nonzero size the
+-   first time it is called.
+-
+-   To have finer-grained control over the initial size, set *PN to a
+-   nonzero value before calling this function with P == NULL.  For
+-   example:
+-
+-     int *p = NULL;
+-     size_t used = 0;
+-     size_t allocated = 0;
+-     size_t allocated1 = 1000;
+-
+-     void
+-     append_int (int value)
+-       {
+-         if (used == allocated)
+-           {
+-             p = x2nrealloc (p, &allocated1, sizeof *p);
+-             allocated = allocated1;
+-           }
+-         p[used++] = value;
+-       }
+-
+-   */
+-
+-XALLOC_INLINE void *
+-x2nrealloc (void *p, size_t *pn, size_t s)
+-{
+-  size_t n = *pn;
+-
+-  if (! p)
+-    {
+-      if (! n)
+-        {
+-          /* The approximate size to use for initial small allocation
+-             requests, when the invoking code specifies an old size of
+-             zero.  This is the largest "small" request for the GNU C
+-             library malloc.  */
+-          enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
+-
+-          n = DEFAULT_MXFAST / s;
+-          n += !n;
+-        }
+-      if (xalloc_oversized (n, s))
+-        xalloc_die ();
+-    }
+-  else
+-    {
+-      /* Set N = floor (1.5 * N) + 1 so that progress is made even if N == 0.
+-         Check for overflow, so that N * S stays in both ptrdiff_t and
+-         size_t range.  The check may be slightly conservative, but an
+-         exact check isn't worth the trouble.  */
+-      if ((PTRDIFF_MAX < SIZE_MAX ? PTRDIFF_MAX : SIZE_MAX) / 3 * 2 / s
+-          <= n)
+-        xalloc_die ();
+-      n += n / 2 + 1;
+-    }
+-
+-  *pn = n;
+-  return xrealloc (p, n * s);
++  return xreallocarray (p, n, s);
+ }
+ 
+ /* Return a pointer to a new buffer of N bytes.  This is like xmalloc,
+@@ -239,9 +157,16 @@ xrealloc (T *p, size_t s)
+ }
+ 
+ template <typename T> inline T *
++xreallocarray (T *p, size_t n, size_t s)
++{
++  return (T *) xreallocarray ((void *) p, n, s);
++}
++
++/* FIXME: Deprecate this in favor of xreallocarray?  */
++template <typename T> inline T *
+ xnrealloc (T *p, size_t n, size_t s)
+ {
+-  return (T *) xnrealloc ((void *) p, n, s);
++  return xreallocarray (p, n, s);
+ }
+ 
+ template <typename T> inline T *
+--- a/gnulib/lib/xmalloc.c
++++ b/gnulib/lib/xmalloc.c
+@@ -21,80 +21,250 @@
+ 
+ #include "xalloc.h"
+ 
++#include "ialloc.h"
++#include "intprops.h"
++#include "minmax.h"
++
+ #include <stdlib.h>
+ #include <string.h>
+ 
+-/* 1 if calloc, malloc and realloc are known to be compatible with GNU.
+-   This matters if we are not also using the calloc-gnu, malloc-gnu
+-   and realloc-gnu modules, which define HAVE_CALLOC_GNU,
+-   HAVE_MALLOC_GNU and HAVE_REALLOC_GNU and support the GNU API even
+-   on non-GNU platforms.  */
+-#if defined HAVE_CALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__)
+-enum { HAVE_GNU_CALLOC = 1 };
+-#else
+-enum { HAVE_GNU_CALLOC = 0 };
+-#endif
+-#if defined HAVE_MALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__)
+-enum { HAVE_GNU_MALLOC = 1 };
+-#else
+-enum { HAVE_GNU_MALLOC = 0 };
+-#endif
+-#if defined HAVE_REALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__)
+-enum { HAVE_GNU_REALLOC = 1 };
+-#else
+-enum { HAVE_GNU_REALLOC = 0 };
+-#endif
++static void * _GL_ATTRIBUTE_PURE
++nonnull (void *p)
++{
++  if (!p)
++    xalloc_die ();
++  return p;
++}
+ 
+-/* Allocate N bytes of memory dynamically, with error checking.  */
++/* Allocate S bytes of memory dynamically, with error checking.  */
+ 
+ void *
+-xmalloc (size_t n)
++xmalloc (size_t s)
+ {
+-  void *p = malloc (n);
+-  if (!p && (HAVE_GNU_MALLOC || n))
+-    xalloc_die ();
+-  return p;
++  return nonnull (malloc (s));
++}
++
++void *
++ximalloc (idx_t s)
++{
++  return nonnull (imalloc (s));
+ }
+ 
+-/* Change the size of an allocated block of memory P to N bytes,
++/* Change the size of an allocated block of memory P to S bytes,
+    with error checking.  */
+ 
+ void *
+-xrealloc (void *p, size_t n)
++xrealloc (void *p, size_t s)
+ {
+-  if (!HAVE_GNU_REALLOC && !n && p)
+-    {
+-      /* The GNU and C99 realloc behaviors disagree here.  Act like GNU.  */
+-      free (p);
+-      return NULL;
+-    }
++  void *r = realloc (p, s);
++  if (!r && (!p || s))
++    xalloc_die ();
++  return r;
++}
++
++void *
++xirealloc (void *p, idx_t s)
++{
++  return nonnull (irealloc (p, s));
++}
++
++/* Change the size of an allocated block of memory P to an array of N
++   objects each of S bytes, with error checking.  */
+ 
+-  void *r = realloc (p, n);
+-  if (!r && (n || (HAVE_GNU_REALLOC && !p)))
++void *
++xreallocarray (void *p, size_t n, size_t s)
++{
++  void *r = reallocarray (p, n, s);
++  if (!r && (!p || (n && s)))
+     xalloc_die ();
+   return r;
+ }
+ 
+-/* If P is null, allocate a block of at least *PN bytes; otherwise,
+-   reallocate P so that it contains more than *PN bytes.  *PN must be
+-   nonzero unless P is null.  Set *PN to the new block's size, and
+-   return the pointer to the new block.  *PN is never set to zero, and
++void *
++xireallocarray (void *p, idx_t n, idx_t s)
++{
++  return nonnull (ireallocarray (p, n, s));
++}
++
++/* If P is null, allocate a block of at least *PS bytes; otherwise,
++   reallocate P so that it contains more than *PS bytes.  *PS must be
++   nonzero unless P is null.  Set *PS to the new block's size, and
++   return the pointer to the new block.  *PS is never set to zero, and
+    the returned pointer is never null.  */
+ 
+ void *
+-x2realloc (void *p, size_t *pn)
++x2realloc (void *p, size_t *ps)
++{
++  return x2nrealloc (p, ps, 1);
++}
++
++/* If P is null, allocate a block of at least *PN such objects;
++   otherwise, reallocate P so that it contains more than *PN objects
++   each of S bytes.  S must be nonzero.  Set *PN to the new number of
++   objects, and return the pointer to the new block.  *PN is never set
++   to zero, and the returned pointer is never null.
++
++   Repeated reallocations are guaranteed to make progress, either by
++   allocating an initial block with a nonzero size, or by allocating a
++   larger block.
++
++   In the following implementation, nonzero sizes are increased by a
++   factor of approximately 1.5 so that repeated reallocations have
++   O(N) overall cost rather than O(N**2) cost, but the
++   specification for this function does not guarantee that rate.
++
++   Here is an example of use:
++
++     int *p = NULL;
++     size_t used = 0;
++     size_t allocated = 0;
++
++     void
++     append_int (int value)
++       {
++         if (used == allocated)
++           p = x2nrealloc (p, &allocated, sizeof *p);
++         p[used++] = value;
++       }
++
++   This causes x2nrealloc to allocate a block of some nonzero size the
++   first time it is called.
++
++   To have finer-grained control over the initial size, set *PN to a
++   nonzero value before calling this function with P == NULL.  For
++   example:
++
++     int *p = NULL;
++     size_t used = 0;
++     size_t allocated = 0;
++     size_t allocated1 = 1000;
++
++     void
++     append_int (int value)
++       {
++         if (used == allocated)
++           {
++             p = x2nrealloc (p, &allocated1, sizeof *p);
++             allocated = allocated1;
++           }
++         p[used++] = value;
++       }
++
++   */
++
++void *
++x2nrealloc (void *p, size_t *pn, size_t s)
+ {
+-  return x2nrealloc (p, pn, 1);
++  size_t n = *pn;
++
++  if (! p)
++    {
++      if (! n)
++        {
++          /* The approximate size to use for initial small allocation
++             requests, when the invoking code specifies an old size of
++             zero.  This is the largest "small" request for the GNU C
++             library malloc.  */
++          enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
++
++          n = DEFAULT_MXFAST / s;
++          n += !n;
++        }
++    }
++  else
++    {
++      /* Set N = floor (1.5 * N) + 1 to make progress even if N == 0.  */
++      if (INT_ADD_WRAPV (n, (n >> 1) + 1, &n))
++        xalloc_die ();
++    }
++
++  p = xreallocarray (p, n, s);
++  *pn = n;
++  return p;
+ }
+ 
+-/* Allocate N bytes of zeroed memory dynamically, with error checking.
++/* Grow PA, which points to an array of *PN items, and return the
++   location of the reallocated array, updating *PN to reflect its
++   new size.  The new array will contain at least N_INCR_MIN more
++   items, but will not contain more than N_MAX items total.
++   S is the size of each item, in bytes.
++
++   S and N_INCR_MIN must be positive.  *PN must be
++   nonnegative.  If N_MAX is -1, it is treated as if it were
++   infinity.
++
++   If PA is null, then allocate a new array instead of reallocating
++   the old one.
++
++   Thus, to grow an array A without saving its old contents, do
++   { free (A); A = xpalloc (NULL, &AITEMS, ...); }.  */
++
++void *
++xpalloc (void *pa, idx_t *pn, idx_t n_incr_min, ptrdiff_t n_max, idx_t s)
++{
++  idx_t n0 = *pn;
++
++  /* The approximate size to use for initial small allocation
++     requests.  This is the largest "small" request for the GNU C
++     library malloc.  */
++  enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
++
++  /* If the array is tiny, grow it to about (but no greater than)
++     DEFAULT_MXFAST bytes.  Otherwise, grow it by about 50%.
++     Adjust the growth according to three constraints: N_INCR_MIN,
++     N_MAX, and what the C language can represent safely.  */
++
++  idx_t n;
++  if (INT_ADD_WRAPV (n0, n0 >> 1, &n))
++    n = IDX_MAX;
++  if (0 <= n_max && n_max < n)
++    n = n_max;
++
++  /* NBYTES is of a type suitable for holding the count of bytes in an object.
++     This is typically idx_t, but it should be size_t on (theoretical?)
++     platforms where SIZE_MAX < IDX_MAX so xpalloc does not pass
++     values greater than SIZE_MAX to xrealloc.  */
++#if IDX_MAX <= SIZE_MAX
++  idx_t nbytes;
++#else
++  size_t nbytes;
++#endif
++  idx_t adjusted_nbytes
++    = (INT_MULTIPLY_WRAPV (n, s, &nbytes)
++       ? MIN (IDX_MAX, SIZE_MAX)
++       : nbytes < DEFAULT_MXFAST ? DEFAULT_MXFAST : 0);
++  if (adjusted_nbytes)
++    {
++      n = adjusted_nbytes / s;
++      nbytes = adjusted_nbytes - adjusted_nbytes % s;
++    }
++
++  if (! pa)
++    *pn = 0;
++  if (n - n0 < n_incr_min
++      && (INT_ADD_WRAPV (n0, n_incr_min, &n)
++          || (0 <= n_max && n_max < n)
++          || INT_MULTIPLY_WRAPV (n, s, &nbytes)))
++    xalloc_die ();
++  pa = xrealloc (pa, nbytes);
++  *pn = n;
++  return pa;
++}
++
++/* Allocate S bytes of zeroed memory dynamically, with error checking.
+    There's no need for xnzalloc (N, S), since it would be equivalent
+    to xcalloc (N, S).  */
+ 
+ void *
+-xzalloc (size_t n)
++xzalloc (size_t s)
++{
++  return xcalloc (s, 1);
++}
++
++void *
++xizalloc (idx_t s)
+ {
+-  return xcalloc (n, 1);
++  return xicalloc (s, 1);
+ }
+ 
+ /* Allocate zeroed memory for N elements of S bytes, with error
+@@ -103,15 +273,13 @@ xzalloc (size_t n)
+ void *
+ xcalloc (size_t n, size_t s)
+ {
+-  void *p;
+-  /* Test for overflow, since objects with size greater than
+-     PTRDIFF_MAX cause pointer subtraction to go awry.  Omit size-zero
+-     tests if HAVE_GNU_CALLOC, since GNU calloc never returns NULL if
+-     successful.  */
+-  if (xalloc_oversized (n, s)
+-      || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0)))
+-    xalloc_die ();
+-  return p;
++  return nonnull (calloc (n, s));
++}
++
++void *
++xicalloc (idx_t n, idx_t s)
++{
++  return nonnull (icalloc (n, s));
+ }
+ 
+ /* Clone an object P of size S, with error checking.  There's no need
+@@ -124,6 +292,23 @@ xmemdup (void const *p, size_t s)
+   return memcpy (xmalloc (s), p, s);
+ }
+ 
++void *
++ximemdup (void const *p, idx_t s)
++{
++  return memcpy (ximalloc (s), p, s);
++}
++
++/* Clone an object P of size S, with error checking.  Append
++   a terminating NUL byte.  */
++
++char *
++ximemdup0 (void const *p, idx_t s)
++{
++  char *result = ximalloc (s + 1);
++  result[s] = 0;
++  return memcpy (result, p, s);
++}
++
+ /* Clone STRING.  */
+ 
+ char *
+--- a/gnulib/lib/xsize.c
++++ b/gnulib/lib/xsize.c
+@@ -1,3 +1,21 @@
++/* Checked size_t computations.
++
++   Copyright (C) 2012-2021 Free Software Foundation, Inc.
++
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
++
++   This file is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
++
+ #include <config.h>
++
+ #define XSIZE_INLINE _GL_EXTERN_INLINE
+ #include "xsize.h"
+--- a/gnulib/lib/xsize.h
++++ b/gnulib/lib/xsize.h
+@@ -2,18 +2,18 @@
+ 
+    Copyright (C) 2003, 2008-2021 Free Software Foundation, Inc.
+ 
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 3, or (at your option)
+-   any later version.
++   This file is free software: you can redistribute it and/or modify
++   it under the terms of the GNU Lesser General Public License as
++   published by the Free Software Foundation; either version 2.1 of the
++   License, or (at your option) any later version.
+ 
+-   This program is distributed in the hope that it will be useful,
++   This file is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-   GNU General Public License for more details.
++   GNU Lesser General Public License for more details.
+ 
+-   You should have received a copy of the GNU General Public License
+-   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
++   You should have received a copy of the GNU Lesser General Public License
++   along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _XSIZE_H
+ #define _XSIZE_H
+--- /dev/null
++++ b/gnulib/m4/calloc.m4
+@@ -0,0 +1,82 @@
++# calloc.m4 serial 27
++
++# 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,
++# with or without modifications, as long as this notice is preserved.
++
++# Written by Jim Meyering.
++
++# Determine whether calloc (N, S) returns non-NULL when N*S is zero,
++# and returns NULL when N*S overflows.
++# If so, define HAVE_CALLOC.  Otherwise, define calloc to rpl_calloc
++# and arrange to use a calloc wrapper function that does work in that case.
++
++# _AC_FUNC_CALLOC_IF([IF-WORKS], [IF-NOT])
++# -------------------------------------
++# If calloc is compatible with GNU calloc, run IF-WORKS, otherwise, IF-NOT.
++AC_DEFUN([_AC_FUNC_CALLOC_IF],
++[
++  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
++  AC_CACHE_CHECK([whether calloc (0, n) and calloc (n, 0) return nonnull],
++    [ac_cv_func_calloc_0_nonnull],
++    [if test $cross_compiling != yes; then
++       ac_cv_func_calloc_0_nonnull=yes
++       AC_RUN_IFELSE(
++         [AC_LANG_PROGRAM(
++            [AC_INCLUDES_DEFAULT],
++            [[int result = 0;
++              char * volatile p = calloc (0, 0);
++              if (!p)
++                result |= 1;
++              free (p);
++              return result;
++            ]])],
++         [],
++         [ac_cv_func_calloc_0_nonnull=no])
++     else
++       case "$host_os" in
++                        # Guess yes on glibc systems.
++         *-gnu* | gnu*) ac_cv_func_calloc_0_nonnull="guessing yes" ;;
++                        # Guess yes on musl systems.
++         *-musl*)       ac_cv_func_calloc_0_nonnull="guessing yes" ;;
++                        # Guess yes on native Windows.
++         mingw*)        ac_cv_func_calloc_0_nonnull="guessing yes" ;;
++                        # If we don't know, obey --enable-cross-guesses.
++         *)             ac_cv_func_calloc_0_nonnull="$gl_cross_guess_normal" ;;
++       esac
++     fi
++    ])
++  AS_CASE([$ac_cv_func_calloc_0_nonnull], [*yes], [$1], [$2])
++])
++
++
++# gl_FUNC_CALLOC_GNU
++# ------------------
++# Replace calloc if it is not compatible with GNU libc.
++AC_DEFUN([gl_FUNC_CALLOC_GNU],
++[
++  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++  AC_REQUIRE([gl_FUNC_CALLOC_POSIX])
++  if test $REPLACE_CALLOC = 0; then
++    _AC_FUNC_CALLOC_IF([], [REPLACE_CALLOC=1])
++  fi
++])# gl_FUNC_CALLOC_GNU
++
++# gl_FUNC_CALLOC_POSIX
++# --------------------
++# Test whether 'calloc' is POSIX compliant (sets errno to ENOMEM when it
++# fails, and doesn't mess up with ptrdiff_t or size_t overflow),
++# and replace calloc if it is not.
++AC_DEFUN([gl_FUNC_CALLOC_POSIX],
++[
++  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++  AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
++  if test $REPLACE_MALLOC = 1; then
++    REPLACE_CALLOC=1
++  fi
++  dnl Although in theory we should also test for size_t overflow,
++  dnl in practice testing for ptrdiff_t overflow suffices
++  dnl since PTRDIFF_MAX <= SIZE_MAX on all known Gnulib porting targets.
++  dnl A separate size_t test would slow down 'configure'.
++])
+--- a/gnulib/m4/fcntl_h.m4
++++ b/gnulib/m4/fcntl_h.m4
+@@ -1,4 +1,4 @@
+-# serial 17
++# serial 20
+ # Configure fcntl.h.
+ dnl Copyright (C) 2006-2007, 2009-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -7,7 +7,7 @@ dnl with or without modifications, as lo
+ 
+ dnl Written by Paul Eggert.
+ 
+-AC_DEFUN([gl_FCNTL_H],
++AC_DEFUN_ONCE([gl_FCNTL_H],
+ [
+   AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+   AC_REQUIRE([gl_FCNTL_O_FLAGS])
+@@ -26,25 +26,40 @@ AC_DEFUN([gl_FCNTL_H],
+     ]], [fcntl openat])
+ ])
+ 
++# gl_FCNTL_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_FCNTL_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_FCNTL_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_FCNTL_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CREAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCNTL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NONBLOCKING])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OPENAT])
++    dnl Support Microsoft deprecated alias function names by default.
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CREAT], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_OPEN], [1])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_FCNTL_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_FCNTL_H_DEFAULTS],
+ [
+-  GNULIB_CREAT=0;        AC_SUBST([GNULIB_CREAT])
+-  GNULIB_FCNTL=0;        AC_SUBST([GNULIB_FCNTL])
+-  GNULIB_NONBLOCKING=0;  AC_SUBST([GNULIB_NONBLOCKING])
+-  GNULIB_OPEN=0;         AC_SUBST([GNULIB_OPEN])
+-  GNULIB_OPENAT=0;       AC_SUBST([GNULIB_OPENAT])
+-  dnl Support Microsoft deprecated alias function names by default.
+-  GNULIB_MDA_CREAT=1;    AC_SUBST([GNULIB_MDA_CREAT])
+-  GNULIB_MDA_OPEN=1;     AC_SUBST([GNULIB_MDA_OPEN])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_FCNTL=1;          AC_SUBST([HAVE_FCNTL])
+   HAVE_OPENAT=1;         AC_SUBST([HAVE_OPENAT])
+--- /dev/null
++++ b/gnulib/m4/free.m4
+@@ -0,0 +1,52 @@
++# free.m4 serial 6
++# Copyright (C) 2003-2005, 2009-2021 Free Software Foundation, Inc.
++# 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.
++
++# Written by Paul Eggert and Bruno Haible.
++
++AC_DEFUN([gl_FUNC_FREE],
++[
++  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++
++  dnl In the next release of POSIX, free must preserve errno.
++  dnl https://www.austingroupbugs.net/view.php?id=385
++  dnl https://sourceware.org/bugzilla/show_bug.cgi?id=17924
++  dnl So far, we know of three platforms that do this:
++  dnl * glibc >= 2.33, thanks to the fix for this bug:
++  dnl   <https://sourceware.org/bugzilla/show_bug.cgi?id=17924>
++  dnl * OpenBSD >= 4.5, thanks to this commit:
++  dnl   <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdlib/malloc.c.diff?r1=1.100&r2=1.101&f=h>
++  dnl * Solaris, because its malloc() implementation is based on brk(),
++  dnl   not mmap(); hence its free() implementation makes no system calls.
++  dnl For other platforms, you can only be sure if they state it in their
++  dnl documentation, or by code inspection of the free() implementation in libc.
++  AC_CACHE_CHECK([whether free is known to preserve errno],
++    [gl_cv_func_free_preserves_errno],
++    [AC_COMPILE_IFELSE(
++       [AC_LANG_PROGRAM(
++          [[#include <stdlib.h>
++          ]],
++          [[#if 2 < __GLIBC__ + (33 <= __GLIBC_MINOR__)
++            #elif defined __OpenBSD__
++            #elif defined __sun
++            #else
++              #error "'free' is not known to preserve errno"
++            #endif
++          ]])],
++       [gl_cv_func_free_preserves_errno=yes],
++       [gl_cv_func_free_preserves_errno=no])
++    ])
++
++  case $gl_cv_func_free_preserves_errno in
++   *yes)
++    AC_DEFINE([HAVE_FREE_POSIX], [1],
++      [Define if the 'free' function is guaranteed to preserve errno.])
++    ;;
++   *) REPLACE_FREE=1 ;;
++  esac
++])
++
++# Prerequisites of lib/free.c.
++AC_DEFUN([gl_PREREQ_FREE], [:])
+--- a/gnulib/m4/fstat.m4
++++ b/gnulib/m4/fstat.m4
+@@ -1,4 +1,4 @@
+-# fstat.m4 serial 7
++# fstat.m4 serial 8
+ dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -34,7 +34,7 @@ AC_DEFUN([gl_FUNC_FSTAT],
+ 
+ # Prerequisites of lib/fstat.c and lib/stat-w32.c.
+ AC_DEFUN([gl_PREREQ_FSTAT], [
+-  AC_REQUIRE([gl_HEADER_SYS_STAT_H])
++  AC_REQUIRE([gl_SYS_STAT_H])
+   AC_REQUIRE([gl_PREREQ_STAT_W32])
+   :
+ ])
+--- a/gnulib/m4/gnulib-common.m4
++++ b/gnulib/m4/gnulib-common.m4
+@@ -1,4 +1,4 @@
+-# gnulib-common.m4 serial 63
++# gnulib-common.m4 serial 66
+ dnl Copyright (C) 2007-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -357,6 +357,16 @@ AC_DEFUN([gl_COMMON_BODY], [
+   export LIBC_FATAL_STDERR_
+ ])
+ 
++# gl_MODULE_INDICATOR_INIT_VARIABLE([variablename])
++# gl_MODULE_INDICATOR_INIT_VARIABLE([variablename], [initialvalue])
++# initializes the shell variable that indicates the presence of the given module
++# as a C preprocessor expression.
++AC_DEFUN([gl_MODULE_INDICATOR_INIT_VARIABLE],
++[
++  GL_MODULE_INDICATOR_PREFIX[]_[$1]=m4_if([$2], , [0], [$2])
++  AC_SUBST(GL_MODULE_INDICATOR_PREFIX[]_[$1])
++])
++
+ # gl_MODULE_INDICATOR_CONDITION
+ # expands to a C preprocessor expression that evaluates to 1 or 0, depending
+ # whether a gnulib module that has been requested shall be considered present
+@@ -369,9 +379,9 @@ m4_define([gl_MODULE_INDICATOR_CONDITION
+ AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE],
+ [
+   gl_MODULE_INDICATOR_SET_VARIABLE_AUX(
+-    [GNULIB_[]m4_translit([[$1]],
+-                          [abcdefghijklmnopqrstuvwxyz./-],
+-                          [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
++    [GL_MODULE_INDICATOR_PREFIX[]_GNULIB_[]m4_translit([[$1]],
++                                                       [abcdefghijklmnopqrstuvwxyz./-],
++                                                       [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
+     [gl_MODULE_INDICATOR_CONDITION])
+ ])
+ 
+@@ -656,6 +666,72 @@ AC_DEFUN([gl_CACHE_VAL_SILENT],
+   ])
+ ])
+ 
++# gl_CC_ALLOW_WARNINGS
++# sets and substitutes a variable GL_CFLAG_ALLOW_WARNINGS, to a $(CC) option
++# that reverts a preceding '-Werror' option, if available.
++# This is expected to be '-Wno-error' on gcc, clang (except clang/MSVC), xlclang
++# and empty otherwise.
++AC_DEFUN([gl_CC_ALLOW_WARNINGS],
++[
++  AC_REQUIRE([AC_PROG_CC])
++  AC_CACHE_CHECK([for C compiler option to allow warnings],
++    [gl_cv_cc_wallow],
++    [rm -f conftest*
++     echo 'int dummy;' > conftest.c
++     AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -c conftest.c 2>conftest1.err]) >/dev/null
++     AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -Wno-error -c conftest.c 2>conftest2.err]) >/dev/null
++     dnl Test the number of error output lines, because AIX xlc accepts the
++     dnl option '-Wno-error', just to produce a warning
++     dnl "Option -Wno-error was incorrectly specified. The option will be ignored."
++     dnl afterwards.
++     if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then
++       gl_cv_cc_wallow='-Wno-error'
++     else
++       gl_cv_cc_wallow=none
++     fi
++     rm -f conftest*
++    ])
++  case "$gl_cv_cc_wallow" in
++    none) GL_CFLAG_ALLOW_WARNINGS='' ;;
++    *)    GL_CFLAG_ALLOW_WARNINGS="$gl_cv_cc_wallow" ;;
++  esac
++  AC_SUBST([GL_CFLAG_ALLOW_WARNINGS])
++])
++
++# gl_CXX_ALLOW_WARNINGS
++# sets and substitutes a variable GL_CXXFLAG_ALLOW_WARNINGS, to a $(CC) option
++# that reverts a preceding '-Werror' option, if available.
++AC_DEFUN([gl_CXX_ALLOW_WARNINGS],
++[
++  dnl Requires AC_PROG_CXX or gl_PROG_ANSI_CXX.
++  if test -n "$CXX" && test "$CXX" != no; then
++    AC_CACHE_CHECK([for C++ compiler option to allow warnings],
++      [gl_cv_cxx_wallow],
++      [rm -f conftest*
++       echo 'int dummy;' > conftest.cc
++       AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -c conftest.cc 2>conftest1.err]) >/dev/null
++       AC_TRY_COMMAND([${CXX-c++} $CXXFLAGS $CPPFLAGS -Wno-error -c conftest.cc 2>conftest2.err]) >/dev/null
++       dnl Test the number of error output lines, because AIX xlC accepts the
++       dnl option '-Wno-error', just to produce a warning
++       dnl "Option -Wno-error was incorrectly specified. The option will be ignored."
++       dnl afterwards.
++       if test $? = 0 && test `wc -l < conftest1.err` = `wc -l < conftest2.err`; then
++         gl_cv_cxx_wallow='-Wno-error'
++       else
++         gl_cv_cxx_wallow=none
++       fi
++       rm -f conftest*
++      ])
++    case "$gl_cv_cxx_wallow" in
++      none) GL_CXXFLAG_ALLOW_WARNINGS='' ;;
++      *)    GL_CXXFLAG_ALLOW_WARNINGS="$gl_cv_cxx_wallow" ;;
++    esac
++  else
++    GL_CXXFLAG_ALLOW_WARNINGS=''
++  fi
++  AC_SUBST([GL_CXXFLAG_ALLOW_WARNINGS])
++])
++
+ dnl Expands to some code for use in .c programs that, on native Windows, defines
+ dnl the Microsoft deprecated alias function names to the underscore-prefixed
+ dnl actual function names. With this macro, these function names are available
+--- a/gnulib/m4/gnulib-comp.m4
++++ b/gnulib/m4/gnulib-comp.m4
+@@ -51,6 +51,8 @@ AC_DEFUN([gl_EARLY],
+   # Code from module btowc:
+   # Code from module builtin-expect:
+   # Code from module c99:
++  # Code from module calloc-gnu:
++  # Code from module calloc-posix:
+   # Code from module cloexec:
+   # Code from module close:
+   # Code from module double-slash-root:
+@@ -66,6 +68,7 @@ AC_DEFUN([gl_EARLY],
+   # Code from module fd-hook:
+   # Code from module filename:
+   # Code from module float:
++  # Code from module free-posix:
+   # Code from module fstat:
+   # Code from module getdtablesize:
+   # Code from module getopt-gnu:
+@@ -74,7 +77,9 @@ AC_DEFUN([gl_EARLY],
+   # Code from module gettext-h:
+   # Code from module hard-locale:
+   # Code from module havelib:
++  # Code from module ialloc:
+   # Code from module iconv:
++  # Code from module idx:
+   # Code from module include_next:
+   # Code from module intprops:
+   # Code from module inttypes-incomplete:
+@@ -84,12 +89,14 @@ AC_DEFUN([gl_EARLY],
+   # Code from module langinfo:
+   # Code from module largefile:
+   AC_REQUIRE([AC_SYS_LARGEFILE])
++  AC_REQUIRE([gl_YEAR2038_EARLY])
+   # Code from module libc-config:
+   # Code from module limits-h:
+   # Code from module localcharset:
+   # Code from module locale:
+   # Code from module localeconv:
+   # Code from module lock:
++  # Code from module malloc-gnu:
+   # Code from module malloc-posix:
+   # Code from module malloca:
+   # Code from module mbchar:
+@@ -107,6 +114,7 @@ AC_DEFUN([gl_EARLY],
+   # Code from module memchr:
+   # Code from module mempcpy:
+   # Code from module memrchr:
++  # Code from module minmax:
+   # Code from module msvc-inval:
+   # Code from module msvc-nothrow:
+   # Code from module multiarch:
+@@ -114,6 +122,9 @@ AC_DEFUN([gl_EARLY],
+   # Code from module nocrash:
+   # Code from module open:
+   # Code from module pathmax:
++  # Code from module realloc-gnu:
++  # Code from module realloc-posix:
++  # Code from module reallocarray:
+   # Code from module regex:
+   # Code from module setlocale-null:
+   # Code from module size_max:
+@@ -189,6 +200,8 @@ AC_DEFUN([gl_INIT],
+   m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES]))
+   m4_pushdef([gl_LIBSOURCES_LIST], [])
+   m4_pushdef([gl_LIBSOURCES_DIR], [])
++  m4_pushdef([GL_MACRO_PREFIX], [gl])
++  m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL])
+   gl_COMMON
+   gl_source_base='gnulib/lib'
+   gl_FUNC_ALLOCA
+@@ -196,6 +209,15 @@ AC_DEFUN([gl_INIT],
+   if test -n "$ARGZ_H"; then
+     AC_LIBOBJ([argz])
+   fi
++  gl_FUNC_CALLOC_GNU
++  if test $REPLACE_CALLOC = 1; then
++    AC_LIBOBJ([calloc])
++  fi
++  gl_FUNC_CALLOC_POSIX
++  if test $REPLACE_CALLOC = 1; then
++    AC_LIBOBJ([calloc])
++  fi
++  gl_STDLIB_MODULE_INDICATOR([calloc-posix])
+   gl_DOUBLE_SLASH_ROOT
+   gl_HEADER_ERRNO_H
+   gl_ERROR
+@@ -208,6 +230,7 @@ AC_DEFUN([gl_INIT],
+      AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
+   AC_REQUIRE([gl_EXTERN_INLINE])
+   gl_FCNTL_H
++  gl_FCNTL_H_REQUIRE_DEFAULTS
+   gl_FLOAT_H
+   if test $REPLACE_FLOAT_LDBL = 1; then
+     AC_LIBOBJ([float])
+@@ -223,10 +246,10 @@ AC_DEFUN([gl_INIT],
+   if test $REPLACE_GETOPT = 1; then
+     AC_LIBOBJ([getopt])
+     AC_LIBOBJ([getopt1])
+-    dnl Arrange for unistd.h to include getopt.h.
+-    GNULIB_GL_UNISTD_H_GETOPT=1
++    dnl Define the substituted variable GNULIB_UNISTD_H_GETOPT to 1.
++    gl_UNISTD_H_REQUIRE_DEFAULTS
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT], [1])
+   fi
+-  AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+   gl_UNISTD_MODULE_INDICATOR([getopt-posix])
+   gl_FUNC_GETPROGNAME
+   AC_SUBST([LIBINTL])
+@@ -236,6 +259,7 @@ AC_DEFUN([gl_INIT],
+   m4_ifdef([gl_ICONV_MODULE_INDICATOR],
+     [gl_ICONV_MODULE_INDICATOR([iconv])])
+   gl_INTTYPES_INCOMPLETE
++  gl_INTTYPES_H_REQUIRE_DEFAULTS
+   gl_FUNC_ISWBLANK
+   if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+     :
+@@ -265,6 +289,15 @@ AC_DEFUN([gl_INIT],
+   gl_WCTYPE_MODULE_INDICATOR([iswxdigit])
+   AC_REQUIRE([gl_LARGEFILE])
+   gl_LIMITS_H
++  gl_FUNC_MALLOC_GNU
++  if test $REPLACE_MALLOC = 1; then
++    AC_LIBOBJ([malloc])
++  fi
++  AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
++  if test $REPLACE_MALLOC = 1; then
++    AC_LIBOBJ([malloc])
++  fi
++  gl_STDLIB_MODULE_INDICATOR([malloc-posix])
+   gl_MALLOCA
+   gl_MBCHAR
+   gl_MBITER
+@@ -305,6 +338,7 @@ AC_DEFUN([gl_INIT],
+     gl_PREREQ_MEMRCHR
+   fi
+   gl_STRING_MODULE_INDICATOR([memrchr])
++  gl_MINMAX
+   gl_MULTIARCH
+   gl_FUNC_OPEN
+   if test $REPLACE_OPEN = 1; then
+@@ -312,6 +346,22 @@ AC_DEFUN([gl_INIT],
+     gl_PREREQ_OPEN
+   fi
+   gl_FCNTL_MODULE_INDICATOR([open])
++  gl_FUNC_REALLOC_GNU
++  if test $REPLACE_REALLOC = 1; then
++    AC_LIBOBJ([realloc])
++  fi
++  gl_FUNC_REALLOC_POSIX
++  if test $REPLACE_REALLOC = 1; then
++    AC_LIBOBJ([realloc])
++  fi
++  gl_STDLIB_MODULE_INDICATOR([realloc-posix])
++  gl_FUNC_REALLOCARRAY
++  if test $HAVE_REALLOCARRAY = 0 || test $REPLACE_REALLOCARRAY = 1; then
++    AC_LIBOBJ([reallocarray])
++    gl_PREREQ_REALLOCARRAY
++  fi
++  gl_MODULE_INDICATOR([reallocarray])
++  gl_STDLIB_MODULE_INDICATOR([reallocarray])
+   gl_REGEX
+   if test $ac_use_included_regex = yes; then
+     AC_LIBOBJ([regex])
+@@ -321,9 +371,35 @@ AC_DEFUN([gl_INIT],
+   gl_STDARG_H
+   AM_STDBOOL_H
+   gl_STDDEF_H
++  gl_STDDEF_H_REQUIRE_DEFAULTS
+   gl_STDINT_H
+   gl_STDIO_H
++  gl_STDIO_H_REQUIRE_DEFAULTS
++  dnl No need to create extra modules for these functions. Everyone who uses
++  dnl <stdio.h> likely needs them.
++  gl_STDIO_MODULE_INDICATOR([fscanf])
++  gl_MODULE_INDICATOR([fscanf])
++  gl_STDIO_MODULE_INDICATOR([scanf])
++  gl_MODULE_INDICATOR([scanf])
++  gl_STDIO_MODULE_INDICATOR([fgetc])
++  gl_STDIO_MODULE_INDICATOR([getc])
++  gl_STDIO_MODULE_INDICATOR([getchar])
++  gl_STDIO_MODULE_INDICATOR([fgets])
++  gl_STDIO_MODULE_INDICATOR([fread])
++  dnl No need to create extra modules for these functions. Everyone who uses
++  dnl <stdio.h> likely needs them.
++  gl_STDIO_MODULE_INDICATOR([fprintf])
++  gl_STDIO_MODULE_INDICATOR([printf])
++  gl_STDIO_MODULE_INDICATOR([vfprintf])
++  gl_STDIO_MODULE_INDICATOR([vprintf])
++  gl_STDIO_MODULE_INDICATOR([fputc])
++  gl_STDIO_MODULE_INDICATOR([putc])
++  gl_STDIO_MODULE_INDICATOR([putchar])
++  gl_STDIO_MODULE_INDICATOR([fputs])
++  gl_STDIO_MODULE_INDICATOR([puts])
++  gl_STDIO_MODULE_INDICATOR([fwrite])
+   gl_STDLIB_H
++  gl_STDLIB_H_REQUIRE_DEFAULTS
+   gl_STRCASE
+   if test $HAVE_STRCASECMP = 0; then
+     AC_LIBOBJ([strcasecmp])
+@@ -356,8 +432,10 @@ AC_DEFUN([gl_INIT],
+   fi
+   gl_MODULE_INDICATOR([strerror])
+   gl_STRING_MODULE_INDICATOR([strerror])
+-  gl_HEADER_STRING_H
+-  gl_HEADER_STRINGS_H
++  gl_STRING_H
++  gl_STRING_H_REQUIRE_DEFAULTS
++  gl_STRINGS_H
++  gl_STRINGS_H_REQUIRE_DEFAULTS
+   gl_FUNC_STRNLEN
+   if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+     AC_LIBOBJ([strnlen])
+@@ -365,10 +443,27 @@ AC_DEFUN([gl_INIT],
+   fi
+   gl_STRING_MODULE_INDICATOR([strnlen])
+   gl_SYS_TYPES_H
++  gl_SYS_TYPES_H_REQUIRE_DEFAULTS
+   AC_PROG_MKDIR_P
+   gl_UNISTD_H
+-  gl_LIBUNISTRING_LIBHEADER([0.9.4], [unitypes.h])
+-  gl_LIBUNISTRING_LIBHEADER([0.9.4], [uniwidth.h])
++  gl_UNISTD_H_REQUIRE_DEFAULTS
++  gl_LIBUNISTRING_LIBHEADER([0.9.11], [unitypes.h])
++  AH_VERBATIM([unitypes_restrict], [
++  /* This definition is a duplicate of the one in unitypes.h.
++     It is here so that we can cope with an older version of unitypes.h
++     that does not contain this definition and that is pre-installed among
++     the public header files.  */
++  # if defined __restrict \
++       || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
++       || __clang_major__ >= 3
++  #  define _UC_RESTRICT __restrict
++  # elif 199901L <= __STDC_VERSION__ || defined restrict
++  #  define _UC_RESTRICT restrict
++  # else
++  #  define _UC_RESTRICT
++  # endif
++  ])
++  gl_LIBUNISTRING_LIBHEADER([0.9.11], [uniwidth.h])
+   gl_LIBUNISTRING_MODULE([0.9.8], [uniwidth/width])
+   gl_FUNC_VASPRINTF
+   gl_STDIO_MODULE_INDICATOR([vasprintf])
+@@ -376,7 +471,9 @@ AC_DEFUN([gl_INIT],
+     [AM_][XGETTEXT_OPTION([--flag=asprintf:2:c-format])
+      AM_][XGETTEXT_OPTION([--flag=vasprintf:2:c-format])])
+   gl_WCHAR_H
++  gl_WCHAR_H_REQUIRE_DEFAULTS
+   gl_WCTYPE_H
++  gl_WCTYPE_H_REQUIRE_DEFAULTS
+   gl_FUNC_WCWIDTH
+   if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+     AC_LIBOBJ([wcwidth])
+@@ -395,17 +492,16 @@ AC_DEFUN([gl_INIT],
+   gl_gnulib_enabled_dynarray=false
+   gl_gnulib_enabled_fcntl=false
+   gl_gnulib_enabled_43fe87a341d9b4b93c47c3ad819a5239=false
++  gl_gnulib_enabled_ef07dc4b3077c11ea9cef586db4e5955=false
+   gl_gnulib_enabled_fstat=false
+   gl_gnulib_enabled_getdtablesize=false
+   gl_gnulib_enabled_30838f5439487421042f2225bed3af76=false
+-  gl_gnulib_enabled_intprops=false
+   gl_gnulib_enabled_langinfo=false
+   gl_gnulib_enabled_21ee726a3540c09237a8e70c0baf7467=false
+   gl_gnulib_enabled_localcharset=false
+   gl_gnulib_enabled_locale=false
+   gl_gnulib_enabled_localeconv=false
+   gl_gnulib_enabled_lock=false
+-  gl_gnulib_enabled_ef455225c00f5049c808c2eda3e76866=false
+   gl_gnulib_enabled_mbtowc=false
+   gl_gnulib_enabled_mempcpy=false
+   gl_gnulib_enabled_f691f076f650964c9f5598c3ee487616=false
+@@ -506,8 +602,9 @@ AC_DEFUN([gl_INIT],
+   func_gl_gnulib_m4code_dynarray ()
+   {
+     if ! $gl_gnulib_enabled_dynarray; then
++      AC_PROG_MKDIR_P
+       gl_gnulib_enabled_dynarray=true
+-      func_gl_gnulib_m4code_intprops
++      func_gl_gnulib_m4code_37f71b604aa9c54446783d80f42fe547
+       func_gl_gnulib_m4code_21ee726a3540c09237a8e70c0baf7467
+     fi
+   }
+@@ -540,6 +637,18 @@ AC_DEFUN([gl_INIT],
+       gl_gnulib_enabled_43fe87a341d9b4b93c47c3ad819a5239=true
+     fi
+   }
++  func_gl_gnulib_m4code_ef07dc4b3077c11ea9cef586db4e5955 ()
++  {
++    if ! $gl_gnulib_enabled_ef07dc4b3077c11ea9cef586db4e5955; then
++      gl_FUNC_FREE
++      if test $REPLACE_FREE = 1; then
++        AC_LIBOBJ([free])
++        gl_PREREQ_FREE
++      fi
++      gl_STDLIB_MODULE_INDICATOR([free-posix])
++      gl_gnulib_enabled_ef07dc4b3077c11ea9cef586db4e5955=true
++    fi
++  }
+   func_gl_gnulib_m4code_fstat ()
+   {
+     if ! $gl_gnulib_enabled_fstat; then
+@@ -595,16 +704,11 @@ AC_DEFUN([gl_INIT],
+       func_gl_gnulib_m4code_e7e881d32ca02f1c997b13c737c64bbd
+     fi
+   }
+-  func_gl_gnulib_m4code_intprops ()
+-  {
+-    if ! $gl_gnulib_enabled_intprops; then
+-      gl_gnulib_enabled_intprops=true
+-    fi
+-  }
+   func_gl_gnulib_m4code_langinfo ()
+   {
+     if ! $gl_gnulib_enabled_langinfo; then
+       gl_LANGINFO_H
++      gl_LANGINFO_H_REQUIRE_DEFAULTS
+       gl_gnulib_enabled_langinfo=true
+     fi
+   }
+@@ -629,6 +733,7 @@ AC_DEFUN([gl_INIT],
+   {
+     if ! $gl_gnulib_enabled_locale; then
+       gl_LOCALE_H
++      gl_LOCALE_H_REQUIRE_DEFAULTS
+       gl_gnulib_enabled_locale=true
+     fi
+   }
+@@ -666,18 +771,6 @@ AC_DEFUN([gl_INIT],
+       fi
+     fi
+   }
+-  func_gl_gnulib_m4code_ef455225c00f5049c808c2eda3e76866 ()
+-  {
+-    if ! $gl_gnulib_enabled_ef455225c00f5049c808c2eda3e76866; then
+-      gl_FUNC_MALLOC_POSIX
+-      if test $REPLACE_MALLOC = 1; then
+-        AC_LIBOBJ([malloc])
+-      fi
+-      gl_STDLIB_MODULE_INDICATOR([malloc-posix])
+-      gl_MODULE_INDICATOR([malloc-posix])
+-      gl_gnulib_enabled_ef455225c00f5049c808c2eda3e76866=true
+-    fi
+-  }
+   func_gl_gnulib_m4code_mbtowc ()
+   {
+     if ! $gl_gnulib_enabled_mbtowc; then
+@@ -803,7 +896,6 @@ AC_DEFUN([gl_INIT],
+       gl_STAT_TIME
+       gl_STAT_BIRTHTIME
+       gl_gnulib_enabled_0137e3d3638b33e5819d132d0b23165c=true
+-      func_gl_gnulib_m4code_intprops
+       func_gl_gnulib_m4code_time
+     fi
+   }
+@@ -870,7 +962,8 @@ AC_DEFUN([gl_INIT],
+   func_gl_gnulib_m4code_sys_stat ()
+   {
+     if ! $gl_gnulib_enabled_sys_stat; then
+-      gl_HEADER_SYS_STAT_H
++      gl_SYS_STAT_H
++      gl_SYS_STAT_H_REQUIRE_DEFAULTS
+       AC_PROG_MKDIR_P
+       gl_gnulib_enabled_sys_stat=true
+       func_gl_gnulib_m4code_time
+@@ -886,7 +979,8 @@ AC_DEFUN([gl_INIT],
+   func_gl_gnulib_m4code_time ()
+   {
+     if ! $gl_gnulib_enabled_time; then
+-      gl_HEADER_TIME_H
++      gl_TIME_H
++      gl_TIME_H_REQUIRE_DEFAULTS
+       gl_gnulib_enabled_time=true
+     fi
+   }
+@@ -897,6 +991,7 @@ AC_DEFUN([gl_INIT],
+       gl_FUNC_VASNPRINTF
+       gl_gnulib_enabled_vasnprintf=true
+       func_gl_gnulib_m4code_attribute
++      func_gl_gnulib_m4code_ef07dc4b3077c11ea9cef586db4e5955
+       func_gl_gnulib_m4code_xsize
+     fi
+   }
+@@ -1002,6 +1097,9 @@ AC_DEFUN([gl_INIT],
+   if test $REPLACE_OPEN = 1; then
+     func_gl_gnulib_m4code_stat
+   fi
++  if test $REPLACE_REALLOC = 1; then
++    func_gl_gnulib_m4code_ef07dc4b3077c11ea9cef586db4e5955
++  fi
+   if test $ac_use_included_regex = yes; then
+     func_gl_gnulib_m4code_attribute
+   fi
+@@ -1015,9 +1113,6 @@ AC_DEFUN([gl_INIT],
+     func_gl_gnulib_m4code_dynarray
+   fi
+   if test $ac_use_included_regex = yes; then
+-    func_gl_gnulib_m4code_intprops
+-  fi
+-  if test $ac_use_included_regex = yes; then
+     func_gl_gnulib_m4code_langinfo
+   fi
+   if test $ac_use_included_regex = yes; then
+@@ -1032,12 +1127,6 @@ AC_DEFUN([gl_INIT],
+   if test $ac_use_included_regex = yes; then
+     func_gl_gnulib_m4code_wcrtomb
+   fi
+-  if test $REPLACE_STRDUP = 1; then
+-    func_gl_gnulib_m4code_ef455225c00f5049c808c2eda3e76866
+-  fi
+-  if test $REPLACE_STRERROR = 1; then
+-    func_gl_gnulib_m4code_intprops
+-  fi
+   if test $REPLACE_STRERROR = 1; then
+     func_gl_gnulib_m4code_dbb57f49352be8fb86869629a254fb72
+   fi
+@@ -1057,17 +1146,16 @@ AC_DEFUN([gl_INIT],
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_dynarray], [$gl_gnulib_enabled_dynarray])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_fcntl], [$gl_gnulib_enabled_fcntl])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_43fe87a341d9b4b93c47c3ad819a5239], [$gl_gnulib_enabled_43fe87a341d9b4b93c47c3ad819a5239])
++  AM_CONDITIONAL([gl_GNULIB_ENABLED_ef07dc4b3077c11ea9cef586db4e5955], [$gl_gnulib_enabled_ef07dc4b3077c11ea9cef586db4e5955])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_fstat], [$gl_gnulib_enabled_fstat])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_getdtablesize], [$gl_gnulib_enabled_getdtablesize])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_30838f5439487421042f2225bed3af76], [$gl_gnulib_enabled_30838f5439487421042f2225bed3af76])
+-  AM_CONDITIONAL([gl_GNULIB_ENABLED_intprops], [$gl_gnulib_enabled_intprops])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_langinfo], [$gl_gnulib_enabled_langinfo])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_21ee726a3540c09237a8e70c0baf7467], [$gl_gnulib_enabled_21ee726a3540c09237a8e70c0baf7467])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_localcharset], [$gl_gnulib_enabled_localcharset])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_locale], [$gl_gnulib_enabled_locale])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_localeconv], [$gl_gnulib_enabled_localeconv])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_lock], [$gl_gnulib_enabled_lock])
+-  AM_CONDITIONAL([gl_GNULIB_ENABLED_ef455225c00f5049c808c2eda3e76866], [$gl_gnulib_enabled_ef455225c00f5049c808c2eda3e76866])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_mbtowc], [$gl_gnulib_enabled_mbtowc])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_mempcpy], [$gl_gnulib_enabled_mempcpy])
+   AM_CONDITIONAL([gl_GNULIB_ENABLED_f691f076f650964c9f5598c3ee487616], [$gl_gnulib_enabled_f691f076f650964c9f5598c3ee487616])
+@@ -1105,6 +1193,8 @@ AC_DEFUN([gl_INIT],
+       m4_if(m4_sysval, [0], [],
+         [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
+   ])
++  m4_popdef([GL_MODULE_INDICATOR_PREFIX])
++  m4_popdef([GL_MACRO_PREFIX])
+   m4_popdef([gl_LIBSOURCES_DIR])
+   m4_popdef([gl_LIBSOURCES_LIST])
+   m4_popdef([AC_LIBSOURCES])
+@@ -1131,6 +1221,8 @@ AC_DEFUN([gl_INIT],
+   m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES]))
+   m4_pushdef([gltests_LIBSOURCES_LIST], [])
+   m4_pushdef([gltests_LIBSOURCES_DIR], [])
++  m4_pushdef([GL_MACRO_PREFIX], [gltests])
++  m4_pushdef([GL_MODULE_INDICATOR_PREFIX], [GL])
+   gl_COMMON
+   gl_source_base='tests'
+ changequote(,)dnl
+@@ -1152,6 +1244,8 @@ changequote([, ])dnl
+       m4_if(m4_sysval, [0], [],
+         [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
+   ])
++  m4_popdef([GL_MODULE_INDICATOR_PREFIX])
++  m4_popdef([GL_MACRO_PREFIX])
+   m4_popdef([gltests_LIBSOURCES_DIR])
+   m4_popdef([gltests_LIBSOURCES_LIST])
+   m4_popdef([AC_LIBSOURCES])
+@@ -1247,6 +1341,7 @@ AC_DEFUN([gl_FILE_LIST], [
+   lib/basename-lgpl.h
+   lib/btowc.c
+   lib/c++defs.h
++  lib/calloc.c
+   lib/cdefs.h
+   lib/cloexec.c
+   lib/cloexec.h
+@@ -1266,6 +1361,7 @@ AC_DEFUN([gl_FILE_LIST], [
+   lib/float+.h
+   lib/float.c
+   lib/float.in.h
++  lib/free.c
+   lib/fstat.c
+   lib/getdtablesize.c
+   lib/getopt-cdefs.in.h
+@@ -1285,6 +1381,9 @@ AC_DEFUN([gl_FILE_LIST], [
+   lib/glthread/threadlib.c
+   lib/hard-locale.c
+   lib/hard-locale.h
++  lib/ialloc.c
++  lib/ialloc.h
++  lib/idx.h
+   lib/intprops.h
+   lib/inttypes.in.h
+   lib/iswblank.c
+@@ -1335,6 +1434,7 @@ AC_DEFUN([gl_FILE_LIST], [
+   lib/memchr.valgrind
+   lib/mempcpy.c
+   lib/memrchr.c
++  lib/minmax.h
+   lib/msvc-inval.c
+   lib/msvc-inval.h
+   lib/msvc-nothrow.c
+@@ -1347,6 +1447,8 @@ AC_DEFUN([gl_FILE_LIST], [
+   lib/printf-args.h
+   lib/printf-parse.c
+   lib/printf-parse.h
++  lib/realloc.c
++  lib/reallocarray.c
+   lib/regcomp.c
+   lib/regex.c
+   lib/regex.h
+@@ -1427,6 +1529,7 @@ AC_DEFUN([gl_FILE_LIST], [
+   m4/argz.m4
+   m4/btowc.m4
+   m4/builtin-expect.m4
++  m4/calloc.m4
+   m4/close.m4
+   m4/codeset.m4
+   m4/double-slash-root.m4
+@@ -1441,6 +1544,7 @@ AC_DEFUN([gl_FILE_LIST], [
+   m4/fcntl.m4
+   m4/fcntl_h.m4
+   m4/float_h.m4
++  m4/free.m4
+   m4/fstat.m4
+   m4/getdtablesize.m4
+   m4/getopt.m4
+@@ -1483,6 +1587,7 @@ AC_DEFUN([gl_FILE_LIST], [
+   m4/memchr.m4
+   m4/mempcpy.m4
+   m4/memrchr.m4
++  m4/minmax.m4
+   m4/mmap-anon.m4
+   m4/mode_t.m4
+   m4/msvc-inval.m4
+@@ -1498,6 +1603,8 @@ AC_DEFUN([gl_FILE_LIST], [
+   m4/pid_t.m4
+   m4/printf.m4
+   m4/pthread_rwlock_rdlock.m4
++  m4/realloc.m4
++  m4/reallocarray.m4
+   m4/regex.m4
+   m4/setlocale_null.m4
+   m4/size_max.m4
+@@ -1540,5 +1647,6 @@ AC_DEFUN([gl_FILE_LIST], [
+   m4/wint_t.m4
+   m4/xalloc.m4
+   m4/xsize.m4
++  m4/year2038.m4
+   m4/zzgnulib.m4
+ ])
+--- a/gnulib/m4/inttypes.m4
++++ b/gnulib/m4/inttypes.m4
+@@ -1,4 +1,4 @@
+-# inttypes.m4 serial 32
++# inttypes.m4 serial 35
+ dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -7,7 +7,7 @@ dnl with or without modifications, as lo
+ dnl From Derek Price, Bruno Haible.
+ dnl Test whether <inttypes.h> is supported or must be substituted.
+ 
+-AC_DEFUN([gl_INTTYPES_H],
++AC_DEFUN_ONCE([gl_INTTYPES_H],
+ [
+   AC_REQUIRE([gl_INTTYPES_INCOMPLETE])
+   gl_INTTYPES_PRI_SCN
+@@ -136,19 +136,34 @@ AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_IN
+   AC_SUBST([$1])
+ ])
+ 
++# gl_INTTYPES_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_INTTYPES_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_INTTYPES_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXABS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_IMAXDIV])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOIMAX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUMAX])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_INTTYPES_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
+ [
+-  GNULIB_IMAXABS=0;      AC_SUBST([GNULIB_IMAXABS])
+-  GNULIB_IMAXDIV=0;      AC_SUBST([GNULIB_IMAXDIV])
+-  GNULIB_STRTOIMAX=0;    AC_SUBST([GNULIB_STRTOIMAX])
+-  GNULIB_STRTOUMAX=0;    AC_SUBST([GNULIB_STRTOUMAX])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_DECL_IMAXABS=1;   AC_SUBST([HAVE_DECL_IMAXABS])
+   HAVE_DECL_IMAXDIV=1;   AC_SUBST([HAVE_DECL_IMAXDIV])
+--- a/gnulib/m4/iswdigit.m4
++++ b/gnulib/m4/iswdigit.m4
+@@ -1,4 +1,4 @@
+-# iswdigit.m4 serial 2
++# iswdigit.m4 serial 3
+ dnl Copyright (C) 2020-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -81,12 +81,12 @@ main (int argc, char *argv[])
+     }
+   if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+     {
+-      /* This fails on FreeBSD 12, NetBSD 8.0, MSVC 14.  */
++      /* This fails on FreeBSD 13.0, NetBSD 8.0, MSVC 14.  */
+       /* U+0663 ARABIC-INDIC DIGIT THREE */
+       is = for_character ("\331\243", 2);
+       if (!(is == 0))
+         result |= 4;
+-      /* This fails on FreeBSD 12, NetBSD 8.0, MSVC 14.  */
++      /* This fails on FreeBSD 13.0, NetBSD 8.0, MSVC 14.  */
+       /* U+FF11 FULLWIDTH DIGIT ONE */
+       is = for_character ("\357\274\221", 3);
+       if (!(is == 0))
+--- a/gnulib/m4/iswxdigit.m4
++++ b/gnulib/m4/iswxdigit.m4
+@@ -1,4 +1,4 @@
+-# iswxdigit.m4 serial 2
++# iswxdigit.m4 serial 3
+ dnl Copyright (C) 2020-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -72,7 +72,7 @@ main (int argc, char *argv[])
+     }
+   if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+     {
+-      /* This fails on FreeBSD 12.  */
++      /* This fails on FreeBSD 13.0.  */
+       /* U+0663 ARABIC-INDIC DIGIT THREE */
+       is = for_character ("\331\243", 2);
+       if (!(is == 0))
+--- a/gnulib/m4/langinfo_h.m4
++++ b/gnulib/m4/langinfo_h.m4
+@@ -1,10 +1,10 @@
+-# langinfo_h.m4 serial 9
++# langinfo_h.m4 serial 12
+ dnl Copyright (C) 2009-2021 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.
+ 
+-AC_DEFUN([gl_LANGINFO_H],
++AC_DEFUN_ONCE([gl_LANGINFO_H],
+ [
+   AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
+ 
+@@ -104,18 +104,33 @@ int a = YESEXPR;
+     ]], [nl_langinfo])
+ ])
+ 
++# gl_LANGINFO_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_LANGINFO_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_LANGINFO_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_LANGINFO_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NL_LANGINFO])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_LANGINFO_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_LANGINFO_H_DEFAULTS],
+ [
+-  GNULIB_NL_LANGINFO=0;  AC_SUBST([GNULIB_NL_LANGINFO])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_NL_LANGINFO=1;    AC_SUBST([HAVE_NL_LANGINFO])
+   REPLACE_NL_LANGINFO=0; AC_SUBST([REPLACE_NL_LANGINFO])
+--- a/gnulib/m4/largefile.m4
++++ b/gnulib/m4/largefile.m4
+@@ -22,7 +22,8 @@ AC_DEFUN([gl_SET_LARGEFILE_SOURCE],
+   esac
+ ])
+ 
+-# The following implementation works around a problem in autoconf <= 2.69;
++# Work around a problem in Autoconf through at least 2.71 on glibc 2.34+
++# 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], [], [
+@@ -40,6 +41,7 @@ m4_define([_AC_SYS_LARGEFILE_TEST_INCLUD
+                        && LARGE_OFF_T % 2147483647 == 1)
+                       ? 1 : -1]];[]dnl
+ ])
++])# m4_version_prereq 2.70
+ 
+ 
+ # _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+@@ -54,7 +56,8 @@ m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE
+     [AC_LANG_PROGRAM([$5], [$6])],
+     [$3=no; break])
+   m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+-    [AC_LANG_PROGRAM([#define $1 $2
++    [AC_LANG_PROGRAM([#undef $1
++#define $1 $2
+ $5], [$6])],
+     [$3=$2; break])
+   $3=unknown
+@@ -80,9 +83,8 @@ rm -rf conftest*[]dnl
+ AC_DEFUN([AC_SYS_LARGEFILE],
+ [AC_ARG_ENABLE(largefile,
+                [  --disable-largefile     omit support for large files])
+-if test "$enable_largefile" != no; then
+-
+-  AC_CACHE_CHECK([for special C compiler options needed for large files],
++AS_IF([test "$enable_largefile" != no],
++ [AC_CACHE_CHECK([for special C compiler options needed for large files],
+     ac_cv_sys_largefile_CC,
+     [ac_cv_sys_largefile_CC=no
+      if test "$GCC" != yes; then
+@@ -107,15 +109,15 @@ if test "$enable_largefile" != no; then
+     ac_cv_sys_file_offset_bits,
+     [Number of bits in a file offset, on hosts where this is settable.],
+     [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+-  if test $ac_cv_sys_file_offset_bits = unknown; then
+-    _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1,
+-      ac_cv_sys_large_files,
+-      [Define for large files, on AIX-style hosts.],
+-      [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+-  fi
+-fi
++  AS_CASE([$ac_cv_sys_file_offset_bits],
++    [unknown],
++      [_AC_SYS_LARGEFILE_MACRO_VALUE([_LARGE_FILES], [1],
++         [ac_cv_sys_large_files],
++         [Define for large files, on AIX-style hosts.],
++         [_AC_SYS_LARGEFILE_TEST_INCLUDES])],
++    [64],
++      [gl_YEAR2038_BODY([])])])
+ ])# AC_SYS_LARGEFILE
+-])# m4_version_prereq 2.70
+ 
+ # Enable large files on systems where this is implemented by Gnulib, not by the
+ # system headers.
+--- a/gnulib/m4/locale_h.m4
++++ b/gnulib/m4/locale_h.m4
+@@ -1,13 +1,13 @@
+-# locale_h.m4 serial 25
++# locale_h.m4 serial 28
+ dnl Copyright (C) 2007, 2009-2021 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.
+ 
+-AC_DEFUN([gl_LOCALE_H],
++AC_DEFUN_ONCE([gl_LOCALE_H],
+ [
+-  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+-  dnl once only, before all statements that occur in other macros.
++  dnl Ensure to expand the default settings once only, before all statements
++  dnl that occur in other macros.
+   AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
+ 
+   dnl Persuade glibc <locale.h> to define locale_t and the int_p_*, int_n_*
+@@ -129,22 +129,37 @@ AC_DEFUN([gl_LOCALE_T],
+   AC_SUBST([HAVE_XLOCALE_H])
+ ])
+ 
++# gl_LOCALE_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_LOCALE_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_LOCALE_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_LOCALE_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALECONV])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETLOCALE_NULL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUPLOCALE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALENAME])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_LOCALE_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_LOCALE_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_LOCALE_H_DEFAULTS],
+ [
+-  GNULIB_LOCALECONV=0;     AC_SUBST([GNULIB_LOCALECONV])
+-  GNULIB_SETLOCALE=0;      AC_SUBST([GNULIB_SETLOCALE])
+-  GNULIB_SETLOCALE_NULL=0; AC_SUBST([GNULIB_SETLOCALE_NULL])
+-  GNULIB_DUPLOCALE=0;      AC_SUBST([GNULIB_DUPLOCALE])
+-  GNULIB_LOCALENAME=0;     AC_SUBST([GNULIB_LOCALENAME])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_NEWLOCALE=1;       AC_SUBST([HAVE_NEWLOCALE])
+   HAVE_DUPLOCALE=1;       AC_SUBST([HAVE_DUPLOCALE])
+--- a/gnulib/m4/malloc.m4
++++ b/gnulib/m4/malloc.m4
+@@ -1,21 +1,21 @@
+-# malloc.m4 serial 22
++# malloc.m4 serial 27
+ dnl Copyright (C) 2007, 2009-2021 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.
+ 
+ # This is adapted with modifications from upstream Autoconf here:
+-# https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c
++# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n949
+ AC_DEFUN([_AC_FUNC_MALLOC_IF],
+ [
+   AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
+-  AC_CACHE_CHECK([for GNU libc compatible malloc],
++  AC_CACHE_CHECK([whether malloc (0) returns nonnull],
+     [ac_cv_func_malloc_0_nonnull],
+     [AC_RUN_IFELSE(
+        [AC_LANG_PROGRAM(
+           [[#include <stdlib.h>
+           ]],
+-          [[char *p = malloc (0);
++          [[void *p = malloc (0);
+             int result = !p;
+             free (p);
+             return result;]])
+@@ -24,75 +24,151 @@ AC_DEFUN([_AC_FUNC_MALLOC_IF],
+        [ac_cv_func_malloc_0_nonnull=no],
+        [case "$host_os" in
+           # Guess yes on platforms where we know the result.
+-          *-gnu* | gnu* | *-musl* | freebsd* | midnightbsd* | netbsd* | openbsd* \
+-          | hpux* | solaris* | cygwin* | mingw*)
++          *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
++          | gnu* | *-musl* | midnightbsd* \
++          | hpux* | solaris* | cygwin* | mingw* | msys* )
+             ac_cv_func_malloc_0_nonnull="guessing yes" ;;
+           # If we don't know, obey --enable-cross-guesses.
+           *) ac_cv_func_malloc_0_nonnull="$gl_cross_guess_normal" ;;
+         esac
+        ])
+     ])
+-  case "$ac_cv_func_malloc_0_nonnull" in
+-    *yes)
+-      $1
+-      ;;
+-    *)
+-      $2
+-      ;;
+-  esac
++  AS_CASE([$ac_cv_func_malloc_0_nonnull], [*yes], [$1], [$2])
+ ])# _AC_FUNC_MALLOC_IF
+ 
+ # gl_FUNC_MALLOC_GNU
+ # ------------------
+-# Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if
+-# it is not.
++# Replace malloc if it is not compatible with GNU libc.
+ AC_DEFUN([gl_FUNC_MALLOC_GNU],
+ [
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+-  dnl _AC_FUNC_MALLOC_IF is defined in Autoconf.
+-  _AC_FUNC_MALLOC_IF(
+-    [AC_DEFINE([HAVE_MALLOC_GNU], [1],
+-               [Define to 1 if your system has a GNU libc compatible 'malloc'
+-                function, and to 0 otherwise.])],
+-    [AC_DEFINE([HAVE_MALLOC_GNU], [0])
+-     REPLACE_MALLOC=1
++  AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
++  if test $REPLACE_MALLOC = 0; then
++    _AC_FUNC_MALLOC_IF([], [REPLACE_MALLOC=1])
++  fi
++])
++
++# gl_FUNC_MALLOC_PTRDIFF
++# ----------------------
++# Test whether malloc (N) reliably fails when N exceeds PTRDIFF_MAX,
++# and replace malloc otherwise.
++AC_DEFUN([gl_FUNC_MALLOC_PTRDIFF],
++[
++  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++  AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF])
++  test "$gl_cv_malloc_ptrdiff" = yes || REPLACE_MALLOC=1
++])
++
++# Test whether malloc, realloc, calloc refuse to create objects
++# larger than what can be expressed in ptrdiff_t.
++# Set gl_cv_func_malloc_gnu to yes or no accordingly.
++AC_DEFUN([gl_CHECK_MALLOC_PTRDIFF],
++[
++  AC_CACHE_CHECK([whether malloc is ptrdiff_t safe],
++    [gl_cv_malloc_ptrdiff],
++    [AC_COMPILE_IFELSE(
++       [AC_LANG_PROGRAM(
++          [[#include <stdint.h>
++          ]],
++          [[/* 64-bit ptrdiff_t is so wide that no practical platform
++               can exceed it.  */
++            #define WIDE_PTRDIFF (PTRDIFF_MAX >> 31 >> 31 != 0)
++
++            /* On rare machines where size_t fits in ptrdiff_t there
++               is no problem.  */
++            #define NARROW_SIZE (SIZE_MAX <= PTRDIFF_MAX)
++
++            /* glibc 2.30 and later malloc refuses to exceed ptrdiff_t
++               bounds even on 32-bit platforms.  We don't know which
++               non-glibc systems are safe.  */
++            #define KNOWN_SAFE (2 < __GLIBC__ + (30 <= __GLIBC_MINOR__))
++
++            #if WIDE_PTRDIFF || NARROW_SIZE || KNOWN_SAFE
++              return 0;
++            #else
++              #error "malloc might not be ptrdiff_t safe"
++              syntax error
++            #endif
++          ]])],
++       [gl_cv_malloc_ptrdiff=yes],
++       [gl_cv_malloc_ptrdiff=no])
+     ])
+ ])
+ 
+ # gl_FUNC_MALLOC_POSIX
+ # --------------------
+ # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
+-# fails), and replace malloc if it is not.
++# fails, and doesn't mess up with ptrdiff_t overflow), and replace
++# malloc if it is not.
+ AC_DEFUN([gl_FUNC_MALLOC_POSIX],
+ [
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++  AC_REQUIRE([gl_FUNC_MALLOC_PTRDIFF])
+   AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+-  if test $gl_cv_func_malloc_posix = yes; then
++  if test "$gl_cv_func_malloc_posix" = yes; then
+     AC_DEFINE([HAVE_MALLOC_POSIX], [1],
+-      [Define if the 'malloc' function is POSIX compliant.])
++      [Define if malloc, realloc, and calloc set errno on allocation failure.])
+   else
+     REPLACE_MALLOC=1
+   fi
+ ])
+ 
+-# Test whether malloc, realloc, calloc are POSIX compliant,
++# Test whether malloc, realloc, calloc set errno to ENOMEM on failure.
+ # Set gl_cv_func_malloc_posix to yes or no accordingly.
+ AC_DEFUN([gl_CHECK_MALLOC_POSIX],
+ [
+-  AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
++  AC_REQUIRE([AC_CANONICAL_HOST])
++  AC_CACHE_CHECK([whether malloc, realloc, calloc set errno on failure],
+     [gl_cv_func_malloc_posix],
+     [
+       dnl It is too dangerous to try to allocate a large amount of memory:
+       dnl some systems go to their knees when you do that. So assume that
+-      dnl all Unix implementations of the function are POSIX compliant.
+-      AC_COMPILE_IFELSE(
+-        [AC_LANG_PROGRAM(
+-           [[]],
+-           [[#if defined _WIN32 && ! defined __CYGWIN__
+-             choke me
+-             #endif
+-            ]])],
+-        [gl_cv_func_malloc_posix=yes],
+-        [gl_cv_func_malloc_posix=no])
++      dnl all Unix implementations of the function set errno on failure,
++      dnl except on those platforms where we have seen 'test-malloc-gnu',
++      dnl 'test-realloc-gnu', 'test-calloc-gnu' fail.
++      case "$host_os" in
++        mingw*)
++          gl_cv_func_malloc_posix=no ;;
++        irix* | solaris*)
++          dnl On IRIX 6.5, the three functions return NULL with errno unset
++          dnl when the argument is larger than PTRDIFF_MAX.
++          dnl On Solaris 11.3, the three functions return NULL with errno set
++          dnl to EAGAIN, not ENOMEM, when the argument is larger than
++          dnl PTRDIFF_MAX.
++          dnl Here is a test program:
++m4_divert_push([KILL])
++#include <errno.h>
++#include <stdio.h>
++#include <stdlib.h>
++#define ptrdiff_t long
++#ifndef PTRDIFF_MAX
++# define PTRDIFF_MAX ((ptrdiff_t) ((1UL << (8 * sizeof (ptrdiff_t) - 1)) - 1))
++#endif
++
++int main ()
++{
++  void *p;
++
++  fprintf (stderr, "PTRDIFF_MAX = %lu\n", (unsigned long) PTRDIFF_MAX);
++
++  errno = 0;
++  p = malloc ((unsigned long) PTRDIFF_MAX + 1);
++  fprintf (stderr, "p=%p errno=%d\n", p, errno);
++
++  errno = 0;
++  p = calloc (PTRDIFF_MAX / 2 + 1, 2);
++  fprintf (stderr, "p=%p errno=%d\n", p, errno);
++
++  errno = 0;
++  p = realloc (NULL, (unsigned long) PTRDIFF_MAX + 1);
++  fprintf (stderr, "p=%p errno=%d\n", p, errno);
++
++  return 0;
++}
++m4_divert_pop([KILL])
++          gl_cv_func_malloc_posix=no ;;
++        *)
++          gl_cv_func_malloc_posix=yes ;;
++      esac
+     ])
+ ])
+--- a/gnulib/m4/mbslen.m4
++++ b/gnulib/m4/mbslen.m4
+@@ -1,4 +1,4 @@
+-# mbslen.m4 serial 2
++# mbslen.m4 serial 3
+ dnl Copyright (C) 2010-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -6,7 +6,7 @@ dnl with or without modifications, as lo
+ 
+ AC_DEFUN([gl_FUNC_MBSLEN],
+ [
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_CHECK_FUNCS_ONCE([mbslen])
+   if test $ac_cv_func_mbslen = yes; then
+     HAVE_MBSLEN=1
+--- a/gnulib/m4/memchr.m4
++++ b/gnulib/m4/memchr.m4
+@@ -1,4 +1,4 @@
+-# memchr.m4 serial 17
++# memchr.m4 serial 18
+ dnl Copyright (C) 2002-2004, 2009-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -13,7 +13,7 @@ AC_DEFUN_ONCE([gl_FUNC_MEMCHR],
+   AC_CHECK_HEADERS_ONCE([sys/mman.h])
+   AC_CHECK_FUNCS_ONCE([mprotect])
+ 
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   # Detect platform-specific bugs in some versions of glibc:
+   # memchr should not dereference anything with length 0
+   #   https://bugzilla.redhat.com/show_bug.cgi?id=499689
+--- a/gnulib/m4/mempcpy.m4
++++ b/gnulib/m4/mempcpy.m4
+@@ -1,4 +1,4 @@
+-# mempcpy.m4 serial 11
++# mempcpy.m4 serial 12
+ dnl Copyright (C) 2003-2004, 2006-2007, 2009-2021 Free Software Foundation,
+ dnl Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -13,7 +13,7 @@ AC_DEFUN([gl_FUNC_MEMPCPY],
+   dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'.
+   AC_REQUIRE([AC_C_RESTRICT])
+ 
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_CHECK_FUNCS([mempcpy])
+   if test $ac_cv_func_mempcpy = no; then
+     HAVE_MEMPCPY=0
+--- a/gnulib/m4/memrchr.m4
++++ b/gnulib/m4/memrchr.m4
+@@ -1,4 +1,4 @@
+-# memrchr.m4 serial 10
++# memrchr.m4 serial 11
+ dnl Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation,
+ dnl Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_MEMRCHR],
+   dnl Persuade glibc <string.h> to declare memrchr().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ 
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_CHECK_DECLS_ONCE([memrchr])
+   if test $ac_cv_have_decl_memrchr = no; then
+     HAVE_DECL_MEMRCHR=0
+--- /dev/null
++++ b/gnulib/m4/minmax.m4
+@@ -0,0 +1,44 @@
++# minmax.m4 serial 4
++dnl Copyright (C) 2005, 2009-2021 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.
++
++AC_PREREQ([2.53])
++
++AC_DEFUN([gl_MINMAX],
++[
++  AC_REQUIRE([gl_PREREQ_MINMAX])
++])
++
++# Prerequisites of lib/minmax.h.
++AC_DEFUN([gl_PREREQ_MINMAX],
++[
++  gl_MINMAX_IN_HEADER([limits.h])
++  gl_MINMAX_IN_HEADER([sys/param.h])
++])
++
++dnl gl_MINMAX_IN_HEADER(HEADER)
++dnl The parameter has to be a literal header name; it cannot be macro,
++dnl nor a shell variable. (Because autoheader collects only AC_DEFINE
++dnl invocations with a literal macro name.)
++AC_DEFUN([gl_MINMAX_IN_HEADER],
++[
++  m4_pushdef([header], AS_TR_SH([$1]))
++  m4_pushdef([HEADER], AS_TR_CPP([$1]))
++  AC_CACHE_CHECK([whether <$1> defines MIN and MAX],
++    [gl_cv_minmax_in_]header,
++    [AC_COMPILE_IFELSE(
++       [AC_LANG_PROGRAM(
++          [[#include <$1>
++            int x = MIN (42, 17);]],
++          [[]])],
++       [gl_cv_minmax_in_]header[=yes],
++       [gl_cv_minmax_in_]header[=no])])
++  if test $gl_cv_minmax_in_[]header = yes; then
++    AC_DEFINE([HAVE_MINMAX_IN_]HEADER, 1,
++      [Define to 1 if <$1> defines the MIN and MAX macros.])
++  fi
++  m4_popdef([HEADER])
++  m4_popdef([header])
++])
+--- a/gnulib/m4/printf.m4
++++ b/gnulib/m4/printf.m4
+@@ -1,4 +1,4 @@
+-# printf.m4 serial 72
++# printf.m4 serial 73
+ dnl Copyright (C) 2003, 2007-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -537,7 +537,7 @@ int main ()
+           && strcmp (buf, "-0X6.488P-1 33") != 0
+           && strcmp (buf, "-0XC.91P-2 33") != 0))
+     result |= 2;
+-  /* This catches a FreeBSD 6.1 bug: it doesn't round.  */
++  /* This catches a FreeBSD 13.0 bug: it doesn't round.  */
+   if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
+       || (strcmp (buf, "0x1.83p+0 33") != 0
+           && strcmp (buf, "0x3.05p-1 33") != 0
+@@ -1690,6 +1690,7 @@ dnl
+ dnl                                  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
+ dnl   glibc 2.5                      .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
+ dnl   glibc 2.3.6                    .  .  .  .  #  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .
++dnl   FreeBSD 13.0                   .  .  .  .  #  .  .  .  .  .  .  .  .  #  .  .  .  .  .  .
+ dnl   FreeBSD 5.4, 6.1               .  .  .  .  #  .  .  .  .  .  .  #  .  #  .  .  .  .  .  .
+ dnl   Mac OS X 10.13.5               .  .  .  #  #  .  #  .  .  .  .  .  .  .  .  .  .  #  .  .
+ dnl   Mac OS X 10.5.8                .  .  .  #  #  .  .  .  .  .  .  #  .  .  .  .  .  .  .  .
+--- /dev/null
++++ b/gnulib/m4/realloc.m4
+@@ -0,0 +1,63 @@
++# realloc.m4 serial 24
++dnl Copyright (C) 2007, 2009-2021 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.
++
++# This is adapted with modifications from upstream Autoconf here:
++# https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/functions.m4?id=v2.70#n1455
++AC_DEFUN([_AC_FUNC_REALLOC_IF],
++[
++  AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
++  AC_CACHE_CHECK([whether realloc (0, 0) returns nonnull],
++    [ac_cv_func_realloc_0_nonnull],
++    [AC_RUN_IFELSE(
++       [AC_LANG_PROGRAM(
++          [[#include <stdlib.h>
++          ]],
++          [[void *p = realloc (0, 0);
++            int result = !p;
++            free (p);
++            return result;]])
++       ],
++       [ac_cv_func_realloc_0_nonnull=yes],
++       [ac_cv_func_realloc_0_nonnull=no],
++       [case "$host_os" in
++          # Guess yes on platforms where we know the result.
++          *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
++          | gnu* | *-musl* | midnightbsd* \
++          | hpux* | solaris* | cygwin* | mingw* | msys* )
++            ac_cv_func_realloc_0_nonnull="guessing yes" ;;
++          # If we don't know, obey --enable-cross-guesses.
++          *) ac_cv_func_realloc_0_nonnull="$gl_cross_guess_normal" ;;
++        esac
++       ])
++    ])
++  AS_CASE([$ac_cv_func_realloc_0_nonnull], [*yes], [$1], [$2])
++])# AC_FUNC_REALLOC
++
++# gl_FUNC_REALLOC_GNU
++# -------------------
++# Replace realloc if it is not compatible with GNU libc.
++AC_DEFUN([gl_FUNC_REALLOC_GNU],
++[
++  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++  AC_REQUIRE([gl_FUNC_REALLOC_POSIX])
++  if test $REPLACE_REALLOC = 0; then
++    _AC_FUNC_REALLOC_IF([], [REPLACE_REALLOC=1])
++  fi
++])# gl_FUNC_REALLOC_GNU
++
++# gl_FUNC_REALLOC_POSIX
++# ---------------------
++# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it
++# fails, and doesn't mess up with ptrdiff_t overflow),
++# and replace realloc if it is not.
++AC_DEFUN([gl_FUNC_REALLOC_POSIX],
++[
++  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++  AC_REQUIRE([gl_FUNC_MALLOC_POSIX])
++  if test $REPLACE_MALLOC = 1; then
++    REPLACE_REALLOC=1
++  fi
++])
+--- /dev/null
++++ b/gnulib/m4/reallocarray.m4
+@@ -0,0 +1,23 @@
++# reallocarray.m4 serial 3
++dnl Copyright (C) 2017-2021 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.
++
++AC_DEFUN([gl_FUNC_REALLOCARRAY],
++[
++  dnl Persuade glibc <stdlib.h> to declare reallocarray.
++  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
++
++  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++  AC_REQUIRE([gl_CHECK_MALLOC_PTRDIFF])
++  AC_CHECK_FUNCS([reallocarray])
++  if test "$ac_cv_func_reallocarray" = no; then
++    HAVE_REALLOCARRAY=0
++  elif test "$gl_cv_malloc_ptrdiff" = no; then
++    REPLACE_REALLOCARRAY=1
++  fi
++])
++
++# Prerequisites of lib/reallocarray.c.
++AC_DEFUN([gl_PREREQ_REALLOCARRAY], [:])
+--- a/gnulib/m4/stat.m4
++++ b/gnulib/m4/stat.m4
+@@ -1,4 +1,4 @@
+-# serial 17
++# serial 18
+ 
+ # Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ #
+@@ -69,7 +69,7 @@ AC_DEFUN([gl_FUNC_STAT],
+ 
+ # Prerequisites of lib/stat.c and lib/stat-w32.c.
+ AC_DEFUN([gl_PREREQ_STAT], [
+-  AC_REQUIRE([gl_HEADER_SYS_STAT_H])
++  AC_REQUIRE([gl_SYS_STAT_H])
+   AC_REQUIRE([gl_PREREQ_STAT_W32])
+   :
+ ])
+--- a/gnulib/m4/stddef_h.m4
++++ b/gnulib/m4/stddef_h.m4
+@@ -1,4 +1,4 @@
+-# stddef_h.m4 serial 9
++# stddef_h.m4 serial 11
+ dnl Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -6,7 +6,7 @@ dnl with or without modifications, as lo
+ 
+ dnl A placeholder for <stddef.h>, for platforms that have issues.
+ 
+-AC_DEFUN([gl_STDDEF_H],
++AC_DEFUN_ONCE([gl_STDDEF_H],
+ [
+   AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
+   AC_REQUIRE([gt_TYPE_WCHAR_T])
+@@ -68,13 +68,28 @@ AC_DEFUN([gl_STDDEF_H],
+   fi
+ ])
+ 
++# gl_STDDEF_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_STDDEF_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_STDDEF_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_STDDEF_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS], [
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_STDDEF_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_STDDEF_H_DEFAULTS],
+ [
+   dnl Assume proper GNU behavior unless another module says otherwise.
+--- a/gnulib/m4/stdint.m4
++++ b/gnulib/m4/stdint.m4
+@@ -1,4 +1,4 @@
+-# stdint.m4 serial 58
++# stdint.m4 serial 60
+ dnl Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -170,7 +170,7 @@ struct s {
+       PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+       && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+       ? 1 : -1;
+-  /* Detect bug in FreeBSD 6.0 / ia64.  */
++  /* Detect bug in FreeBSD 6.0/ia64 and FreeBSD 13.0/arm64.  */
+   int check_SIG_ATOMIC:
+       SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+       && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+@@ -527,7 +527,7 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
+   dnl requirement that wint_t is "unchanged by default argument promotions".
+   dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t.
+   dnl Set the variable BITSIZEOF_WINT_T accordingly.
+-  if test $GNULIB_OVERRIDES_WINT_T = 1; then
++  if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then
+     BITSIZEOF_WINT_T=32
+   fi
+ ])
+--- a/gnulib/m4/stdio_h.m4
++++ b/gnulib/m4/stdio_h.m4
+@@ -1,11 +1,12 @@
+-# stdio_h.m4 serial 52
++# stdio_h.m4 serial 56
+ dnl Copyright (C) 2007-2021 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.
+ 
+-AC_DEFUN([gl_STDIO_H],
++AC_DEFUN_ONCE([gl_STDIO_H],
+ [
++  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+   AH_VERBATIM([MINGW_ANSI_STDIO],
+ [/* Use GNU style printf and scanf.  */
+ #ifndef __USE_MINGW_ANSI_STDIO
+@@ -13,7 +14,6 @@ AC_DEFUN([gl_STDIO_H],
+ #endif
+ ])
+   AC_DEFINE([__USE_MINGW_ANSI_STDIO])
+-  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+   gl_NEXT_HEADERS([stdio.h])
+ 
+   dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and
+@@ -40,17 +40,6 @@ AC_DEFUN([gl_STDIO_H],
+        attribute "__gnu_printf__" instead of "__printf__"])
+   fi
+ 
+-  dnl No need to create extra modules for these functions. Everyone who uses
+-  dnl <stdio.h> likely needs them.
+-  GNULIB_FSCANF=1
+-  gl_MODULE_INDICATOR([fscanf])
+-  GNULIB_SCANF=1
+-  gl_MODULE_INDICATOR([scanf])
+-  GNULIB_FGETC=1
+-  GNULIB_GETC=1
+-  GNULIB_GETCHAR=1
+-  GNULIB_FGETS=1
+-  GNULIB_FREAD=1
+   dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
+   dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+   dnl also an optimization, to avoid performing a configure check whose result
+@@ -64,18 +53,6 @@ AC_DEFUN([gl_STDIO_H],
+     fi
+   ])
+ 
+-  dnl No need to create extra modules for these functions. Everyone who uses
+-  dnl <stdio.h> likely needs them.
+-  GNULIB_FPRINTF=1
+-  GNULIB_PRINTF=1
+-  GNULIB_VFPRINTF=1
+-  GNULIB_VPRINTF=1
+-  GNULIB_FPUTC=1
+-  GNULIB_PUTC=1
+-  GNULIB_PUTCHAR=1
+-  GNULIB_FPUTS=1
+-  GNULIB_PUTS=1
+-  GNULIB_FWRITE=1
+   dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+   dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+   dnl also an optimization, to avoid performing a configure check whose result
+@@ -116,77 +93,92 @@ AC_DEFUN([gl_STDIO_H],
+   fi
+ ])
+ 
++# gl_STDIO_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_STDIO_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_STDIO_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DPRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCLOSE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDOPEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFLUSH])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FGETS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FOPEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPRINTF_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPURGE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FPUTS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREAD])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREOPEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSCANF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSEEKO])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTELLO])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FWRITE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCHAR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDELIM])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLINE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OBSTACK_PRINTF_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PCLOSE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PERROR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POPEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PRINTF_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTCHAR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REMOVE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RENAMEAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SCANF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SNPRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SPRINTF_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_NONBLOCKING])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STDIO_H_SIGPIPE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TMPFILE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VASPRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFSCANF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSCANF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VDPRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VFPRINTF_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VPRINTF_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSNPRINTF])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_VSPRINTF_POSIX])
++    dnl Support Microsoft deprecated alias function names by default.
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCLOSEALL], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FDOPEN], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FILENO], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETW], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTW], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TEMPNAM], [1])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_STDIO_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_STDIO_H_DEFAULTS],
+ [
+-  GNULIB_DPRINTF=0;              AC_SUBST([GNULIB_DPRINTF])
+-  GNULIB_FCLOSE=0;               AC_SUBST([GNULIB_FCLOSE])
+-  GNULIB_FDOPEN=0;               AC_SUBST([GNULIB_FDOPEN])
+-  GNULIB_FFLUSH=0;               AC_SUBST([GNULIB_FFLUSH])
+-  GNULIB_FGETC=0;                AC_SUBST([GNULIB_FGETC])
+-  GNULIB_FGETS=0;                AC_SUBST([GNULIB_FGETS])
+-  GNULIB_FOPEN=0;                AC_SUBST([GNULIB_FOPEN])
+-  GNULIB_FPRINTF=0;              AC_SUBST([GNULIB_FPRINTF])
+-  GNULIB_FPRINTF_POSIX=0;        AC_SUBST([GNULIB_FPRINTF_POSIX])
+-  GNULIB_FPURGE=0;               AC_SUBST([GNULIB_FPURGE])
+-  GNULIB_FPUTC=0;                AC_SUBST([GNULIB_FPUTC])
+-  GNULIB_FPUTS=0;                AC_SUBST([GNULIB_FPUTS])
+-  GNULIB_FREAD=0;                AC_SUBST([GNULIB_FREAD])
+-  GNULIB_FREOPEN=0;              AC_SUBST([GNULIB_FREOPEN])
+-  GNULIB_FSCANF=0;               AC_SUBST([GNULIB_FSCANF])
+-  GNULIB_FSEEK=0;                AC_SUBST([GNULIB_FSEEK])
+-  GNULIB_FSEEKO=0;               AC_SUBST([GNULIB_FSEEKO])
+-  GNULIB_FTELL=0;                AC_SUBST([GNULIB_FTELL])
+-  GNULIB_FTELLO=0;               AC_SUBST([GNULIB_FTELLO])
+-  GNULIB_FWRITE=0;               AC_SUBST([GNULIB_FWRITE])
+-  GNULIB_GETC=0;                 AC_SUBST([GNULIB_GETC])
+-  GNULIB_GETCHAR=0;              AC_SUBST([GNULIB_GETCHAR])
+-  GNULIB_GETDELIM=0;             AC_SUBST([GNULIB_GETDELIM])
+-  GNULIB_GETLINE=0;              AC_SUBST([GNULIB_GETLINE])
+-  GNULIB_OBSTACK_PRINTF=0;       AC_SUBST([GNULIB_OBSTACK_PRINTF])
+-  GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
+-  GNULIB_PCLOSE=0;               AC_SUBST([GNULIB_PCLOSE])
+-  GNULIB_PERROR=0;               AC_SUBST([GNULIB_PERROR])
+-  GNULIB_POPEN=0;                AC_SUBST([GNULIB_POPEN])
+-  GNULIB_PRINTF=0;               AC_SUBST([GNULIB_PRINTF])
+-  GNULIB_PRINTF_POSIX=0;         AC_SUBST([GNULIB_PRINTF_POSIX])
+-  GNULIB_PUTC=0;                 AC_SUBST([GNULIB_PUTC])
+-  GNULIB_PUTCHAR=0;              AC_SUBST([GNULIB_PUTCHAR])
+-  GNULIB_PUTS=0;                 AC_SUBST([GNULIB_PUTS])
+-  GNULIB_REMOVE=0;               AC_SUBST([GNULIB_REMOVE])
+-  GNULIB_RENAME=0;               AC_SUBST([GNULIB_RENAME])
+-  GNULIB_RENAMEAT=0;             AC_SUBST([GNULIB_RENAMEAT])
+-  GNULIB_SCANF=0;                AC_SUBST([GNULIB_SCANF])
+-  GNULIB_SNPRINTF=0;             AC_SUBST([GNULIB_SNPRINTF])
+-  GNULIB_SPRINTF_POSIX=0;        AC_SUBST([GNULIB_SPRINTF_POSIX])
+-  GNULIB_STDIO_H_NONBLOCKING=0;  AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
+-  GNULIB_STDIO_H_SIGPIPE=0;      AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
+-  GNULIB_TMPFILE=0;              AC_SUBST([GNULIB_TMPFILE])
+-  GNULIB_VASPRINTF=0;            AC_SUBST([GNULIB_VASPRINTF])
+-  GNULIB_VFSCANF=0;              AC_SUBST([GNULIB_VFSCANF])
+-  GNULIB_VSCANF=0;               AC_SUBST([GNULIB_VSCANF])
+-  GNULIB_VDPRINTF=0;             AC_SUBST([GNULIB_VDPRINTF])
+-  GNULIB_VFPRINTF=0;             AC_SUBST([GNULIB_VFPRINTF])
+-  GNULIB_VFPRINTF_POSIX=0;       AC_SUBST([GNULIB_VFPRINTF_POSIX])
+-  GNULIB_VPRINTF=0;              AC_SUBST([GNULIB_VPRINTF])
+-  GNULIB_VPRINTF_POSIX=0;        AC_SUBST([GNULIB_VPRINTF_POSIX])
+-  GNULIB_VSNPRINTF=0;            AC_SUBST([GNULIB_VSNPRINTF])
+-  GNULIB_VSPRINTF_POSIX=0;       AC_SUBST([GNULIB_VSPRINTF_POSIX])
+-  dnl Support Microsoft deprecated alias function names by default.
+-  GNULIB_MDA_FCLOSEALL=1;        AC_SUBST([GNULIB_MDA_FCLOSEALL])
+-  GNULIB_MDA_FDOPEN=1;           AC_SUBST([GNULIB_MDA_FDOPEN])
+-  GNULIB_MDA_FILENO=1;           AC_SUBST([GNULIB_MDA_FILENO])
+-  GNULIB_MDA_GETW=1;             AC_SUBST([GNULIB_MDA_GETW])
+-  GNULIB_MDA_PUTW=1;             AC_SUBST([GNULIB_MDA_PUTW])
+-  GNULIB_MDA_TEMPNAM=1;          AC_SUBST([GNULIB_MDA_TEMPNAM])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_DECL_FCLOSEALL=1;         AC_SUBST([HAVE_DECL_FCLOSEALL])
+   HAVE_DECL_FPURGE=1;            AC_SUBST([HAVE_DECL_FPURGE])
+--- a/gnulib/m4/stdlib_h.m4
++++ b/gnulib/m4/stdlib_h.m4
+@@ -1,10 +1,10 @@
+-# stdlib_h.m4 serial 55
++# stdlib_h.m4 serial 63
+ dnl Copyright (C) 2007-2021 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.
+ 
+-AC_DEFUN([gl_STDLIB_H],
++AC_DEFUN_ONCE([gl_STDLIB_H],
+ [
+   AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+   gl_NEXT_HEADERS([stdlib.h])
+@@ -28,7 +28,7 @@ AC_DEFUN([gl_STDLIB_H],
+     posix_memalign posix_openpt ptsname ptsname_r qsort_r
+     random random_r reallocarray realpath rpmatch secure_getenv setenv
+     setstate setstate_r srandom srandom_r
+-    strtod strtold strtoll strtoull unlockpt unsetenv])
++    strtod strtol strtold strtoll strtoul strtoull unlockpt unsetenv])
+ 
+   AC_REQUIRE([AC_C_RESTRICT])
+ 
+@@ -46,61 +46,78 @@ AC_DEFUN([gl_STDLIB_H],
+   fi
+ ])
+ 
++# gl_STDLIB_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_STDLIB_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_STDLIB_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_STDLIB_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB__EXIT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ALIGNED_ALLOC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ATOLL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CALLOC_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CANONICALIZE_FILE_NAME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FREE_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOADAVG])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSUBOPT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GRANTPT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MALLOC_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBTOWC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDTEMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKOSTEMPS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKSTEMPS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_MEMALIGN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_POSIX_OPENPT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PTSNAME_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PUTENV])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_QSORT_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RANDOM_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOCARRAY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALLOC_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_REALPATH])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RPMATCH])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SECURE_GETENV])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETENV])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOD])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLD])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOLL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOUL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOULL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYSTEM_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLOCKPT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNSETENV])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOMB])
++    dnl Support Microsoft deprecated alias function names by default.
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ECVT], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_FCVT], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GCVT], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKTEMP], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_PUTENV], [1])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_STDLIB_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
+ [
+-  GNULIB__EXIT=0;         AC_SUBST([GNULIB__EXIT])
+-  GNULIB_ALIGNED_ALLOC=0; AC_SUBST([GNULIB_ALIGNED_ALLOC])
+-  GNULIB_ATOLL=0;         AC_SUBST([GNULIB_ATOLL])
+-  GNULIB_CALLOC_POSIX=0;  AC_SUBST([GNULIB_CALLOC_POSIX])
+-  GNULIB_CANONICALIZE_FILE_NAME=0;  AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME])
+-  GNULIB_FREE_POSIX=0;    AC_SUBST([GNULIB_FREE_POSIX])
+-  GNULIB_GETLOADAVG=0;    AC_SUBST([GNULIB_GETLOADAVG])
+-  GNULIB_GETSUBOPT=0;     AC_SUBST([GNULIB_GETSUBOPT])
+-  GNULIB_GRANTPT=0;       AC_SUBST([GNULIB_GRANTPT])
+-  GNULIB_MALLOC_POSIX=0;  AC_SUBST([GNULIB_MALLOC_POSIX])
+-  GNULIB_MBTOWC=0;        AC_SUBST([GNULIB_MBTOWC])
+-  GNULIB_MKDTEMP=0;       AC_SUBST([GNULIB_MKDTEMP])
+-  GNULIB_MKOSTEMP=0;      AC_SUBST([GNULIB_MKOSTEMP])
+-  GNULIB_MKOSTEMPS=0;     AC_SUBST([GNULIB_MKOSTEMPS])
+-  GNULIB_MKSTEMP=0;       AC_SUBST([GNULIB_MKSTEMP])
+-  GNULIB_MKSTEMPS=0;      AC_SUBST([GNULIB_MKSTEMPS])
+-  GNULIB_POSIX_MEMALIGN=0;AC_SUBST([GNULIB_POSIX_MEMALIGN])
+-  GNULIB_POSIX_OPENPT=0;  AC_SUBST([GNULIB_POSIX_OPENPT])
+-  GNULIB_PTSNAME=0;       AC_SUBST([GNULIB_PTSNAME])
+-  GNULIB_PTSNAME_R=0;     AC_SUBST([GNULIB_PTSNAME_R])
+-  GNULIB_PUTENV=0;        AC_SUBST([GNULIB_PUTENV])
+-  GNULIB_QSORT_R=0;       AC_SUBST([GNULIB_QSORT_R])
+-  GNULIB_RANDOM=0;        AC_SUBST([GNULIB_RANDOM])
+-  GNULIB_RANDOM_R=0;      AC_SUBST([GNULIB_RANDOM_R])
+-  GNULIB_REALLOCARRAY=0;  AC_SUBST([GNULIB_REALLOCARRAY])
+-  GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
+-  GNULIB_REALPATH=0;      AC_SUBST([GNULIB_REALPATH])
+-  GNULIB_RPMATCH=0;       AC_SUBST([GNULIB_RPMATCH])
+-  GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV])
+-  GNULIB_SETENV=0;        AC_SUBST([GNULIB_SETENV])
+-  GNULIB_STRTOD=0;        AC_SUBST([GNULIB_STRTOD])
+-  GNULIB_STRTOLD=0;       AC_SUBST([GNULIB_STRTOLD])
+-  GNULIB_STRTOLL=0;       AC_SUBST([GNULIB_STRTOLL])
+-  GNULIB_STRTOULL=0;      AC_SUBST([GNULIB_STRTOULL])
+-  GNULIB_SYSTEM_POSIX=0;  AC_SUBST([GNULIB_SYSTEM_POSIX])
+-  GNULIB_UNLOCKPT=0;      AC_SUBST([GNULIB_UNLOCKPT])
+-  GNULIB_UNSETENV=0;      AC_SUBST([GNULIB_UNSETENV])
+-  GNULIB_WCTOMB=0;        AC_SUBST([GNULIB_WCTOMB])
+-  dnl Support Microsoft deprecated alias function names by default.
+-  GNULIB_MDA_ECVT=1;      AC_SUBST([GNULIB_MDA_ECVT])
+-  GNULIB_MDA_FCVT=1;      AC_SUBST([GNULIB_MDA_FCVT])
+-  GNULIB_MDA_GCVT=1;      AC_SUBST([GNULIB_MDA_GCVT])
+-  GNULIB_MDA_MKTEMP=1;    AC_SUBST([GNULIB_MDA_MKTEMP])
+-  GNULIB_MDA_PUTENV=1;    AC_SUBST([GNULIB_MDA_PUTENV])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE__EXIT=1;              AC_SUBST([HAVE__EXIT])
+   HAVE_ALIGNED_ALLOC=1;      AC_SUBST([HAVE_ALIGNED_ALLOC])
+@@ -137,8 +154,10 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
+   HAVE_SETSTATE=1;           AC_SUBST([HAVE_SETSTATE])
+   HAVE_DECL_SETSTATE=1;      AC_SUBST([HAVE_DECL_SETSTATE])
+   HAVE_STRTOD=1;             AC_SUBST([HAVE_STRTOD])
++  HAVE_STRTOL=1;             AC_SUBST([HAVE_STRTOL])
+   HAVE_STRTOLD=1;            AC_SUBST([HAVE_STRTOLD])
+   HAVE_STRTOLL=1;            AC_SUBST([HAVE_STRTOLL])
++  HAVE_STRTOUL=1;            AC_SUBST([HAVE_STRTOUL])
+   HAVE_STRTOULL=1;           AC_SUBST([HAVE_STRTOULL])
+   HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
+   HAVE_SYS_LOADAVG_H=0;      AC_SUBST([HAVE_SYS_LOADAVG_H])
+@@ -160,11 +179,16 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
+   REPLACE_RANDOM=0;          AC_SUBST([REPLACE_RANDOM])
+   REPLACE_RANDOM_R=0;        AC_SUBST([REPLACE_RANDOM_R])
+   REPLACE_REALLOC=0;         AC_SUBST([REPLACE_REALLOC])
++  REPLACE_REALLOCARRAY=0;    AC_SUBST([REPLACE_REALLOCARRAY])
+   REPLACE_REALPATH=0;        AC_SUBST([REPLACE_REALPATH])
+   REPLACE_SETENV=0;          AC_SUBST([REPLACE_SETENV])
+   REPLACE_SETSTATE=0;        AC_SUBST([REPLACE_SETSTATE])
+   REPLACE_STRTOD=0;          AC_SUBST([REPLACE_STRTOD])
++  REPLACE_STRTOL=0;          AC_SUBST([REPLACE_STRTOL])
+   REPLACE_STRTOLD=0;         AC_SUBST([REPLACE_STRTOLD])
++  REPLACE_STRTOLL=0;         AC_SUBST([REPLACE_STRTOLL])
++  REPLACE_STRTOUL=0;         AC_SUBST([REPLACE_STRTOUL])
++  REPLACE_STRTOULL=0;        AC_SUBST([REPLACE_STRTOULL])
+   REPLACE_UNSETENV=0;        AC_SUBST([REPLACE_UNSETENV])
+   REPLACE_WCTOMB=0;          AC_SUBST([REPLACE_WCTOMB])
+ ])
+--- a/gnulib/m4/stpcpy.m4
++++ b/gnulib/m4/stpcpy.m4
+@@ -1,4 +1,4 @@
+-# stpcpy.m4 serial 8
++# stpcpy.m4 serial 9
+ dnl Copyright (C) 2002, 2007, 2009-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -12,7 +12,7 @@ AC_DEFUN([gl_FUNC_STPCPY],
+   dnl The stpcpy() declaration in lib/string.in.h uses 'restrict'.
+   AC_REQUIRE([AC_C_RESTRICT])
+ 
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_CHECK_FUNCS([stpcpy])
+   if test $ac_cv_func_stpcpy = no; then
+     HAVE_STPCPY=0
+--- a/gnulib/m4/strcase.m4
++++ b/gnulib/m4/strcase.m4
+@@ -1,4 +1,4 @@
+-# strcase.m4 serial 11
++# strcase.m4 serial 12
+ dnl Copyright (C) 2002, 2005-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -12,7 +12,7 @@ AC_DEFUN([gl_STRCASE],
+ 
+ AC_DEFUN([gl_FUNC_STRCASECMP],
+ [
+-  AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
++  AC_REQUIRE([gl_STRINGS_H_DEFAULTS])
+   AC_CHECK_FUNCS([strcasecmp])
+   if test $ac_cv_func_strcasecmp = no; then
+     HAVE_STRCASECMP=0
+@@ -21,7 +21,7 @@ AC_DEFUN([gl_FUNC_STRCASECMP],
+ 
+ AC_DEFUN([gl_FUNC_STRNCASECMP],
+ [
+-  AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
++  AC_REQUIRE([gl_STRINGS_H_DEFAULTS])
+   AC_CHECK_FUNCS([strncasecmp])
+   if test $ac_cv_func_strncasecmp = yes; then
+     HAVE_STRNCASECMP=1
+--- a/gnulib/m4/strcasestr.m4
++++ b/gnulib/m4/strcasestr.m4
+@@ -1,4 +1,4 @@
+-# strcasestr.m4 serial 26
++# strcasestr.m4 serial 27
+ dnl Copyright (C) 2005, 2007-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -7,7 +7,7 @@ dnl with or without modifications, as lo
+ dnl Check that strcasestr is present and works.
+ AC_DEFUN([gl_FUNC_STRCASESTR_SIMPLE],
+ [
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ 
+   dnl Persuade glibc <string.h> to declare strcasestr().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+--- a/gnulib/m4/strdup.m4
++++ b/gnulib/m4/strdup.m4
+@@ -1,4 +1,4 @@
+-# strdup.m4 serial 14
++# strdup.m4 serial 15
+ 
+ dnl Copyright (C) 2002-2021 Free Software Foundation, Inc.
+ 
+@@ -8,7 +8,7 @@ dnl with or without modifications, as lo
+ 
+ AC_DEFUN([gl_FUNC_STRDUP],
+ [
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_CHECK_DECLS_ONCE([strdup])
+   if test $ac_cv_have_decl_strdup = no; then
+     HAVE_DECL_STRDUP=0
+@@ -17,7 +17,7 @@ AC_DEFUN([gl_FUNC_STRDUP],
+ 
+ AC_DEFUN([gl_FUNC_STRDUP_POSIX],
+ [
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+   if test $gl_cv_func_malloc_posix != yes; then
+     REPLACE_STRDUP=1
+--- a/gnulib/m4/strerror.m4
++++ b/gnulib/m4/strerror.m4
+@@ -1,4 +1,4 @@
+-# strerror.m4 serial 21
++# strerror.m4 serial 22
+ dnl Copyright (C) 2002, 2007-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -6,7 +6,7 @@ dnl with or without modifications, as lo
+ 
+ AC_DEFUN([gl_FUNC_STRERROR],
+ [
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_REQUIRE([gl_HEADER_ERRNO_H])
+   AC_REQUIRE([gl_FUNC_STRERROR_0])
+   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+--- a/gnulib/m4/string_h.m4
++++ b/gnulib/m4/string_h.m4
+@@ -5,20 +5,15 @@
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+-# serial 29
++# serial 32
+ 
+ # Written by Paul Eggert.
+ 
+-AC_DEFUN([gl_HEADER_STRING_H],
++AC_DEFUN_ONCE([gl_STRING_H],
+ [
+-  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+-  dnl once only, before all statements that occur in other macros.
+-  AC_REQUIRE([gl_HEADER_STRING_H_BODY])
+-])
+-
+-AC_DEFUN([gl_HEADER_STRING_H_BODY],
+-[
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only, before all statements
++  dnl that occur in other macros.
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   gl_NEXT_HEADERS([string.h])
+ 
+   dnl Check for declarations of anything we want to poison if the
+@@ -33,62 +28,77 @@ AC_DEFUN([gl_HEADER_STRING_H_BODY],
+   AC_REQUIRE([AC_C_RESTRICT])
+ ])
+ 
++# gl_STRING_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_STRING_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_STRING_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
+-AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_STRING_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXPLICIT_BZERO])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFSLL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMCHR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMMEM])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMPCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MEMRCHR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RAWMEMCHR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STPNCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCHRNUL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRDUP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNCAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNDUP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRNLEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPBRK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSEP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSTR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRCASESTR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRTOK_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSLEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNLEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCHR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRCHR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSTR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASECMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNCASECMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPCASECMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCASESTR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSCSPN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSPBRK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSPN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSSEP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSTOK_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERROR_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRERRORNAME_NP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGABBREV_NP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SIGDESCR_NP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRSIGNAL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRVERSCMP])
++    dnl Support Microsoft deprecated alias function names by default.
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MEMCCPY], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_STRDUP], [1])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_STRING_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
++])
++
++AC_DEFUN([gl_STRING_H_DEFAULTS],
+ [
+-  GNULIB_EXPLICIT_BZERO=0;   AC_SUBST([GNULIB_EXPLICIT_BZERO])
+-  GNULIB_FFSL=0;             AC_SUBST([GNULIB_FFSL])
+-  GNULIB_FFSLL=0;            AC_SUBST([GNULIB_FFSLL])
+-  GNULIB_MEMCHR=0;           AC_SUBST([GNULIB_MEMCHR])
+-  GNULIB_MEMMEM=0;           AC_SUBST([GNULIB_MEMMEM])
+-  GNULIB_MEMPCPY=0;          AC_SUBST([GNULIB_MEMPCPY])
+-  GNULIB_MEMRCHR=0;          AC_SUBST([GNULIB_MEMRCHR])
+-  GNULIB_RAWMEMCHR=0;        AC_SUBST([GNULIB_RAWMEMCHR])
+-  GNULIB_STPCPY=0;           AC_SUBST([GNULIB_STPCPY])
+-  GNULIB_STPNCPY=0;          AC_SUBST([GNULIB_STPNCPY])
+-  GNULIB_STRCHRNUL=0;        AC_SUBST([GNULIB_STRCHRNUL])
+-  GNULIB_STRDUP=0;           AC_SUBST([GNULIB_STRDUP])
+-  GNULIB_STRNCAT=0;          AC_SUBST([GNULIB_STRNCAT])
+-  GNULIB_STRNDUP=0;          AC_SUBST([GNULIB_STRNDUP])
+-  GNULIB_STRNLEN=0;          AC_SUBST([GNULIB_STRNLEN])
+-  GNULIB_STRPBRK=0;          AC_SUBST([GNULIB_STRPBRK])
+-  GNULIB_STRSEP=0;           AC_SUBST([GNULIB_STRSEP])
+-  GNULIB_STRSTR=0;           AC_SUBST([GNULIB_STRSTR])
+-  GNULIB_STRCASESTR=0;       AC_SUBST([GNULIB_STRCASESTR])
+-  GNULIB_STRTOK_R=0;         AC_SUBST([GNULIB_STRTOK_R])
+-  GNULIB_MBSLEN=0;           AC_SUBST([GNULIB_MBSLEN])
+-  GNULIB_MBSNLEN=0;          AC_SUBST([GNULIB_MBSNLEN])
+-  GNULIB_MBSCHR=0;           AC_SUBST([GNULIB_MBSCHR])
+-  GNULIB_MBSRCHR=0;          AC_SUBST([GNULIB_MBSRCHR])
+-  GNULIB_MBSSTR=0;           AC_SUBST([GNULIB_MBSSTR])
+-  GNULIB_MBSCASECMP=0;       AC_SUBST([GNULIB_MBSCASECMP])
+-  GNULIB_MBSNCASECMP=0;      AC_SUBST([GNULIB_MBSNCASECMP])
+-  GNULIB_MBSPCASECMP=0;      AC_SUBST([GNULIB_MBSPCASECMP])
+-  GNULIB_MBSCASESTR=0;       AC_SUBST([GNULIB_MBSCASESTR])
+-  GNULIB_MBSCSPN=0;          AC_SUBST([GNULIB_MBSCSPN])
+-  GNULIB_MBSPBRK=0;          AC_SUBST([GNULIB_MBSPBRK])
+-  GNULIB_MBSSPN=0;           AC_SUBST([GNULIB_MBSSPN])
+-  GNULIB_MBSSEP=0;           AC_SUBST([GNULIB_MBSSEP])
+-  GNULIB_MBSTOK_R=0;         AC_SUBST([GNULIB_MBSTOK_R])
+-  GNULIB_STRERROR=0;         AC_SUBST([GNULIB_STRERROR])
+-  GNULIB_STRERROR_R=0;       AC_SUBST([GNULIB_STRERROR_R])
+-  GNULIB_STRERRORNAME_NP=0;  AC_SUBST([GNULIB_STRERRORNAME_NP])
+-  GNULIB_SIGABBREV_NP=0;     AC_SUBST([GNULIB_SIGABBREV_NP])
+-  GNULIB_SIGDESCR_NP=0;      AC_SUBST([GNULIB_SIGDESCR_NP])
+-  GNULIB_STRSIGNAL=0;        AC_SUBST([GNULIB_STRSIGNAL])
+-  GNULIB_STRVERSCMP=0;       AC_SUBST([GNULIB_STRVERSCMP])
+   HAVE_MBSLEN=0;             AC_SUBST([HAVE_MBSLEN])
+-  dnl Support Microsoft deprecated alias function names by default.
+-  GNULIB_MDA_MEMCCPY=1;      AC_SUBST([GNULIB_MDA_MEMCCPY])
+-  GNULIB_MDA_STRDUP=1;       AC_SUBST([GNULIB_MDA_STRDUP])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_EXPLICIT_BZERO=1;        AC_SUBST([HAVE_EXPLICIT_BZERO])
+   HAVE_FFSL=1;                  AC_SUBST([HAVE_FFSL])
+--- a/gnulib/m4/strings_h.m4
++++ b/gnulib/m4/strings_h.m4
+@@ -1,21 +1,16 @@
+ # Configure a replacement for <strings.h>.
+-# serial 6
++# serial 9
+ 
+ # Copyright (C) 2007, 2009-2021 Free Software Foundation, Inc.
+ # 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.
+ 
+-AC_DEFUN([gl_HEADER_STRINGS_H],
++AC_DEFUN_ONCE([gl_STRINGS_H],
+ [
+-  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+-  dnl once only, before all statements that occur in other macros.
+-  AC_REQUIRE([gl_HEADER_STRINGS_H_BODY])
+-])
+-
+-AC_DEFUN([gl_HEADER_STRINGS_H_BODY],
+-[
+-  AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only, before all statements
++  dnl that occur in other macros.
++  AC_REQUIRE([gl_STRINGS_H_DEFAULTS])
+ 
+   gl_CHECK_NEXT_HEADERS([strings.h])
+   if test $ac_cv_header_strings_h = yes; then
+@@ -35,16 +30,31 @@ AC_DEFUN([gl_HEADER_STRINGS_H_BODY],
+     ]], [ffs strcasecmp strncasecmp])
+ ])
+ 
++# gl_STRINGS_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_STRINGS_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_STRINGS_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ ])
+ 
+-AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS],
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_STRINGS_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_STRINGS_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FFS])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_STRINGS_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_STRINGS_H_DEFAULTS])
++])
++
++AC_DEFUN([gl_STRINGS_H_DEFAULTS],
+ [
+-  GNULIB_FFS=0;            AC_SUBST([GNULIB_FFS])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_FFS=1;              AC_SUBST([HAVE_FFS])
+   HAVE_STRCASECMP=1;       AC_SUBST([HAVE_STRCASECMP])
+--- a/gnulib/m4/strndup.m4
++++ b/gnulib/m4/strndup.m4
+@@ -1,4 +1,4 @@
+-# strndup.m4 serial 22
++# strndup.m4 serial 23
+ dnl Copyright (C) 2002-2003, 2005-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -10,7 +10,7 @@ AC_DEFUN([gl_FUNC_STRNDUP],
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ 
+   AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_CHECK_DECLS_ONCE([strndup])
+   AC_CHECK_FUNCS_ONCE([strndup])
+   if test $ac_cv_have_decl_strndup = no; then
+--- a/gnulib/m4/strnlen.m4
++++ b/gnulib/m4/strnlen.m4
+@@ -1,4 +1,4 @@
+-# strnlen.m4 serial 13
++# strnlen.m4 serial 14
+ dnl Copyright (C) 2002-2003, 2005-2007, 2009-2021 Free Software Foundation,
+ dnl Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -7,7 +7,7 @@ dnl with or without modifications, as lo
+ 
+ AC_DEFUN([gl_FUNC_STRNLEN],
+ [
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+ 
+   dnl Persuade glibc <string.h> to declare strnlen().
+   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+--- a/gnulib/m4/strstr.m4
++++ b/gnulib/m4/strstr.m4
+@@ -1,4 +1,4 @@
+-# strstr.m4 serial 22
++# strstr.m4 serial 23
+ dnl Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -7,7 +7,7 @@ dnl with or without modifications, as lo
+ dnl Check that strstr works.
+ AC_DEFUN([gl_FUNC_STRSTR_SIMPLE],
+ [
+-  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
++  AC_REQUIRE([gl_STRING_H_DEFAULTS])
+   AC_REQUIRE([gl_FUNC_MEMCHR])
+   if test $REPLACE_MEMCHR = 1; then
+     REPLACE_STRSTR=1
+--- a/gnulib/m4/sys_socket_h.m4
++++ b/gnulib/m4/sys_socket_h.m4
+@@ -1,4 +1,4 @@
+-# sys_socket_h.m4 serial 25
++# sys_socket_h.m4 serial 28
+ dnl Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -6,7 +6,7 @@ dnl with or without modifications, as lo
+ 
+ dnl From Simon Josefsson.
+ 
+-AC_DEFUN([gl_HEADER_SYS_SOCKET],
++AC_DEFUN_ONCE([gl_SYS_SOCKET_H],
+ [
+   AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
+   AC_REQUIRE([AC_CANONICAL_HOST])
+@@ -156,32 +156,47 @@ AC_DEFUN([gl_PREREQ_SYS_H_WS2TCPIP],
+   AC_SUBST([HAVE_WS2TCPIP_H])
+ ])
+ 
++# gl_SYS_SOCKET_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_SYS_SOCKET_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_SYS_SOCKET_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SOCKET])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CONNECT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BIND])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPEERNAME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKNAME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETSOCKOPT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LISTEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECV])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SEND])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RECVFROM])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SENDTO])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETSOCKOPT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SHUTDOWN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCEPT4])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_SOCKET_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS],
+ [
+-  GNULIB_SOCKET=0;      AC_SUBST([GNULIB_SOCKET])
+-  GNULIB_CONNECT=0;     AC_SUBST([GNULIB_CONNECT])
+-  GNULIB_ACCEPT=0;      AC_SUBST([GNULIB_ACCEPT])
+-  GNULIB_BIND=0;        AC_SUBST([GNULIB_BIND])
+-  GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME])
+-  GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME])
+-  GNULIB_GETSOCKOPT=0;  AC_SUBST([GNULIB_GETSOCKOPT])
+-  GNULIB_LISTEN=0;      AC_SUBST([GNULIB_LISTEN])
+-  GNULIB_RECV=0;        AC_SUBST([GNULIB_RECV])
+-  GNULIB_SEND=0;        AC_SUBST([GNULIB_SEND])
+-  GNULIB_RECVFROM=0;    AC_SUBST([GNULIB_RECVFROM])
+-  GNULIB_SENDTO=0;      AC_SUBST([GNULIB_SENDTO])
+-  GNULIB_SETSOCKOPT=0;  AC_SUBST([GNULIB_SETSOCKOPT])
+-  GNULIB_SHUTDOWN=0;    AC_SUBST([GNULIB_SHUTDOWN])
+-  GNULIB_ACCEPT4=0;     AC_SUBST([GNULIB_ACCEPT4])
+   HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE])
+   HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1;
+                         AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY])
+--- a/gnulib/m4/sys_stat_h.m4
++++ b/gnulib/m4/sys_stat_h.m4
+@@ -1,4 +1,4 @@
+-# sys_stat_h.m4 serial 38   -*- Autoconf -*-
++# sys_stat_h.m4 serial 41   -*- Autoconf -*-
+ dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -7,7 +7,7 @@ dnl with or without modifications, as lo
+ dnl From Eric Blake.
+ dnl Provide a GNU-like <sys/stat.h>.
+ 
+-AC_DEFUN([gl_HEADER_SYS_STAT_H],
++AC_DEFUN_ONCE([gl_SYS_STAT_H],
+ [
+   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ 
+@@ -52,38 +52,53 @@ AC_DEFUN([gl_HEADER_SYS_STAT_H],
+   AC_REQUIRE([AC_C_RESTRICT])
+ ])
+ 
++# gl_SYS_STAT_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_SYS_STAT_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_SYS_STAT_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_UNISTD_H_REQUIRE_DEFAULTS dnl for REPLACE_FCHDIR
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHMODAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSTATAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FUTIMENS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUMASK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHMOD])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSTAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKDIRAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFO])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKFIFOAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNOD])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKNODAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UTIMENSAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_OVERRIDES_STRUCT_STAT])
++    dnl Support Microsoft deprecated alias function names by default.
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHMOD], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_MKDIR], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UMASK], [1])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_STAT_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_SYS_STAT_H_DEFAULTS],
+ [
+-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
+-  GNULIB_FCHMODAT=0;    AC_SUBST([GNULIB_FCHMODAT])
+-  GNULIB_FSTAT=0;       AC_SUBST([GNULIB_FSTAT])
+-  GNULIB_FSTATAT=0;     AC_SUBST([GNULIB_FSTATAT])
+-  GNULIB_FUTIMENS=0;    AC_SUBST([GNULIB_FUTIMENS])
+-  GNULIB_GETUMASK=0;    AC_SUBST([GNULIB_GETUMASK])
+-  GNULIB_LCHMOD=0;      AC_SUBST([GNULIB_LCHMOD])
+-  GNULIB_LSTAT=0;       AC_SUBST([GNULIB_LSTAT])
+-  GNULIB_MKDIR=0;       AC_SUBST([GNULIB_MKDIR])
+-  GNULIB_MKDIRAT=0;     AC_SUBST([GNULIB_MKDIRAT])
+-  GNULIB_MKFIFO=0;      AC_SUBST([GNULIB_MKFIFO])
+-  GNULIB_MKFIFOAT=0;    AC_SUBST([GNULIB_MKFIFOAT])
+-  GNULIB_MKNOD=0;       AC_SUBST([GNULIB_MKNOD])
+-  GNULIB_MKNODAT=0;     AC_SUBST([GNULIB_MKNODAT])
+-  GNULIB_STAT=0;        AC_SUBST([GNULIB_STAT])
+-  GNULIB_UTIMENSAT=0;   AC_SUBST([GNULIB_UTIMENSAT])
+-  GNULIB_OVERRIDES_STRUCT_STAT=0; AC_SUBST([GNULIB_OVERRIDES_STRUCT_STAT])
+-  dnl Support Microsoft deprecated alias function names by default.
+-  GNULIB_MDA_CHMOD=1;   AC_SUBST([GNULIB_MDA_CHMOD])
+-  GNULIB_MDA_MKDIR=1;   AC_SUBST([GNULIB_MDA_MKDIR])
+-  GNULIB_MDA_UMASK=1;   AC_SUBST([GNULIB_MDA_UMASK])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_FCHMODAT=1;      AC_SUBST([HAVE_FCHMODAT])
+   HAVE_FSTATAT=1;       AC_SUBST([HAVE_FSTATAT])
+--- a/gnulib/m4/sys_types_h.m4
++++ b/gnulib/m4/sys_types_h.m4
+@@ -1,4 +1,4 @@
+-# sys_types_h.m4 serial 11
++# sys_types_h.m4 serial 13
+ dnl Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -6,10 +6,11 @@ dnl with or without modifications, as lo
+ 
+ AC_DEFUN_ONCE([gl_SYS_TYPES_H],
+ [
++  AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
++
+   dnl Use sane struct stat types in OpenVMS 8.2 and later.
+   AC_DEFINE([_USE_STD_STAT], 1, [For standard stat data types on VMS.])
+ 
+-  AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
+   gl_NEXT_HEADERS([sys/types.h])
+ 
+   dnl Ensure the type pid_t gets defined.
+@@ -30,6 +31,17 @@ AC_DEFUN_ONCE([gl_SYS_TYPES_H],
+   AC_SUBST([WINDOWS_STAT_INODES])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_SYS_TYPES_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS], [
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_SYS_TYPE_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS],
+ [
+ ])
+--- a/gnulib/m4/time_h.m4
++++ b/gnulib/m4/time_h.m4
+@@ -2,7 +2,7 @@
+ 
+ # Copyright (C) 2000-2001, 2003-2007, 2009-2021 Free Software Foundation, Inc.
+ 
+-# serial 15
++# serial 18
+ 
+ # This file is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+@@ -10,16 +10,11 @@
+ 
+ # Written by Paul Eggert and Jim Meyering.
+ 
+-AC_DEFUN([gl_HEADER_TIME_H],
++AC_DEFUN_ONCE([gl_TIME_H],
+ [
+-  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+-  dnl once only, before all statements that occur in other macros.
+-  AC_REQUIRE([gl_HEADER_TIME_H_BODY])
+-])
+-
+-AC_DEFUN([gl_HEADER_TIME_H_BODY],
+-[
+-  AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only, before all statements
++  dnl that occur in other macros.
++  AC_REQUIRE([gl_TIME_H_DEFAULTS])
+ 
+   gl_NEXT_HEADERS([time.h])
+   AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
+@@ -111,30 +106,45 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC]
+   AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC])
+ ])
+ 
++# gl_TIME_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_TIME_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_TIME_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
+-AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS],
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_TIME_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CTIME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MKTIME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LOCALTIME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_NANOSLEEP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRFTIME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_STRPTIME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMEGM])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIMESPEC_GET])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TIME_RZ])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TZSET])
++    dnl Support Microsoft deprecated alias function names by default.
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_TZSET], [1])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_TIME_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_TIME_H_DEFAULTS])
++])
++
++AC_DEFUN([gl_TIME_H_DEFAULTS],
+ [
+-  GNULIB_CTIME=0;                        AC_SUBST([GNULIB_CTIME])
+-  GNULIB_MKTIME=0;                       AC_SUBST([GNULIB_MKTIME])
+-  GNULIB_LOCALTIME=0;                    AC_SUBST([GNULIB_LOCALTIME])
+-  GNULIB_NANOSLEEP=0;                    AC_SUBST([GNULIB_NANOSLEEP])
+-  GNULIB_STRFTIME=0;                     AC_SUBST([GNULIB_STRFTIME])
+-  GNULIB_STRPTIME=0;                     AC_SUBST([GNULIB_STRPTIME])
+-  GNULIB_TIMEGM=0;                       AC_SUBST([GNULIB_TIMEGM])
+-  GNULIB_TIMESPEC_GET=0;                 AC_SUBST([GNULIB_TIMESPEC_GET])
+-  GNULIB_TIME_R=0;                       AC_SUBST([GNULIB_TIME_R])
+-  GNULIB_TIME_RZ=0;                      AC_SUBST([GNULIB_TIME_RZ])
+-  GNULIB_TZSET=0;                        AC_SUBST([GNULIB_TZSET])
+-  dnl Support Microsoft deprecated alias function names by default.
+-  GNULIB_MDA_TZSET=1;                    AC_SUBST([GNULIB_MDA_TZSET])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_DECL_LOCALTIME_R=1;               AC_SUBST([HAVE_DECL_LOCALTIME_R])
+   HAVE_NANOSLEEP=1;                      AC_SUBST([HAVE_NANOSLEEP])
+--- a/gnulib/m4/unistd_h.m4
++++ b/gnulib/m4/unistd_h.m4
+@@ -1,4 +1,4 @@
+-# unistd_h.m4 serial 85
++# unistd_h.m4 serial 89
+ dnl Copyright (C) 2006-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -6,10 +6,10 @@ dnl with or without modifications, as lo
+ 
+ dnl Written by Simon Josefsson, Bruno Haible.
+ 
+-AC_DEFUN([gl_UNISTD_H],
++AC_DEFUN_ONCE([gl_UNISTD_H],
+ [
+-  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+-  dnl once only, before all statements that occur in other macros.
++  dnl Ensure to expand the default settings once only, before all statements
++  dnl that occur in other macros.
+   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ 
+   gl_CHECK_NEXT_HEADERS([unistd.h])
+@@ -59,100 +59,116 @@ AC_DEFUN([gl_UNISTD_H],
+   fi
+ ])
+ 
++# gl_UNISTD_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_UNISTD_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_UNISTD_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_UNISTD_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ACCESS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHDIR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CHOWN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_CLOSE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_COPY_FILE_RANGE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP2])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_DUP3])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ENVIRON])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EUIDACCESS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECLP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECV])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_EXECVPE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FACCESSAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHDIR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FCHOWNAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FDATASYNC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FSYNC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_FTRUNCATE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETCWD])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDOMAINNAME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETDTABLESIZE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETENTROPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETGROUPS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETHOSTNAME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETLOGIN_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETOPT_POSIX])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPAGESIZE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETPASS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GETUSERSHELL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_GROUP_MEMBER])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISATTY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LCHOWN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LINKAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_LSEEK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PIPE2])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PREAD])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_PWRITE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READ])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_READLINKAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_RMDIR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SETHOSTNAME])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SLEEP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_SYMLINKAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TRUNCATE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TTYNAME_R])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_GETOPT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_NONBLOCKING])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNISTD_H_SIGPIPE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_UNLINKAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_USLEEP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WRITE])
++    dnl Support Microsoft deprecated alias function names by default.
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ACCESS], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CHDIR], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_CLOSE], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_DUP2], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECL], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLE], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECLP], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECV], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVE], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVP], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_EXECVPE], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETCWD], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_GETPID], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_ISATTY], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_LSEEK], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_READ], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_RMDIR], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_SWAB], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_UNLINK], [1])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WRITE], [1])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_UNISTD_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
+ [
+-  GNULIB_ACCESS=0;               AC_SUBST([GNULIB_ACCESS])
+-  GNULIB_CHDIR=0;                AC_SUBST([GNULIB_CHDIR])
+-  GNULIB_CHOWN=0;                AC_SUBST([GNULIB_CHOWN])
+-  GNULIB_CLOSE=0;                AC_SUBST([GNULIB_CLOSE])
+-  GNULIB_COPY_FILE_RANGE=0;      AC_SUBST([GNULIB_COPY_FILE_RANGE])
+-  GNULIB_DUP=0;                  AC_SUBST([GNULIB_DUP])
+-  GNULIB_DUP2=0;                 AC_SUBST([GNULIB_DUP2])
+-  GNULIB_DUP3=0;                 AC_SUBST([GNULIB_DUP3])
+-  GNULIB_ENVIRON=0;              AC_SUBST([GNULIB_ENVIRON])
+-  GNULIB_EUIDACCESS=0;           AC_SUBST([GNULIB_EUIDACCESS])
+-  GNULIB_EXECL=0;                AC_SUBST([GNULIB_EXECL])
+-  GNULIB_EXECLE=0;               AC_SUBST([GNULIB_EXECLE])
+-  GNULIB_EXECLP=0;               AC_SUBST([GNULIB_EXECLP])
+-  GNULIB_EXECV=0;                AC_SUBST([GNULIB_EXECV])
+-  GNULIB_EXECVE=0;               AC_SUBST([GNULIB_EXECVE])
+-  GNULIB_EXECVP=0;               AC_SUBST([GNULIB_EXECVP])
+-  GNULIB_EXECVPE=0;              AC_SUBST([GNULIB_EXECVPE])
+-  GNULIB_FACCESSAT=0;            AC_SUBST([GNULIB_FACCESSAT])
+-  GNULIB_FCHDIR=0;               AC_SUBST([GNULIB_FCHDIR])
+-  GNULIB_FCHOWNAT=0;             AC_SUBST([GNULIB_FCHOWNAT])
+-  GNULIB_FDATASYNC=0;            AC_SUBST([GNULIB_FDATASYNC])
+-  GNULIB_FSYNC=0;                AC_SUBST([GNULIB_FSYNC])
+-  GNULIB_FTRUNCATE=0;            AC_SUBST([GNULIB_FTRUNCATE])
+-  GNULIB_GETCWD=0;               AC_SUBST([GNULIB_GETCWD])
+-  GNULIB_GETDOMAINNAME=0;        AC_SUBST([GNULIB_GETDOMAINNAME])
+-  GNULIB_GETDTABLESIZE=0;        AC_SUBST([GNULIB_GETDTABLESIZE])
+-  GNULIB_GETENTROPY=0;           AC_SUBST([GNULIB_GETENTROPY])
+-  GNULIB_GETGROUPS=0;            AC_SUBST([GNULIB_GETGROUPS])
+-  GNULIB_GETHOSTNAME=0;          AC_SUBST([GNULIB_GETHOSTNAME])
+-  GNULIB_GETLOGIN=0;             AC_SUBST([GNULIB_GETLOGIN])
+-  GNULIB_GETLOGIN_R=0;           AC_SUBST([GNULIB_GETLOGIN_R])
+-  GNULIB_GETOPT_POSIX=0;         AC_SUBST([GNULIB_GETOPT_POSIX])
+-  GNULIB_GETPAGESIZE=0;          AC_SUBST([GNULIB_GETPAGESIZE])
+-  GNULIB_GETPASS=0;              AC_SUBST([GNULIB_GETPASS])
+-  GNULIB_GETUSERSHELL=0;         AC_SUBST([GNULIB_GETUSERSHELL])
+-  GNULIB_GROUP_MEMBER=0;         AC_SUBST([GNULIB_GROUP_MEMBER])
+-  GNULIB_ISATTY=0;               AC_SUBST([GNULIB_ISATTY])
+-  GNULIB_LCHOWN=0;               AC_SUBST([GNULIB_LCHOWN])
+-  GNULIB_LINK=0;                 AC_SUBST([GNULIB_LINK])
+-  GNULIB_LINKAT=0;               AC_SUBST([GNULIB_LINKAT])
+-  GNULIB_LSEEK=0;                AC_SUBST([GNULIB_LSEEK])
+-  GNULIB_PIPE=0;                 AC_SUBST([GNULIB_PIPE])
+-  GNULIB_PIPE2=0;                AC_SUBST([GNULIB_PIPE2])
+-  GNULIB_PREAD=0;                AC_SUBST([GNULIB_PREAD])
+-  GNULIB_PWRITE=0;               AC_SUBST([GNULIB_PWRITE])
+-  GNULIB_READ=0;                 AC_SUBST([GNULIB_READ])
+-  GNULIB_READLINK=0;             AC_SUBST([GNULIB_READLINK])
+-  GNULIB_READLINKAT=0;           AC_SUBST([GNULIB_READLINKAT])
+-  GNULIB_RMDIR=0;                AC_SUBST([GNULIB_RMDIR])
+-  GNULIB_SETHOSTNAME=0;          AC_SUBST([GNULIB_SETHOSTNAME])
+-  GNULIB_SLEEP=0;                AC_SUBST([GNULIB_SLEEP])
+-  GNULIB_SYMLINK=0;              AC_SUBST([GNULIB_SYMLINK])
+-  GNULIB_SYMLINKAT=0;            AC_SUBST([GNULIB_SYMLINKAT])
+-  GNULIB_TRUNCATE=0;             AC_SUBST([GNULIB_TRUNCATE])
+-  GNULIB_TTYNAME_R=0;            AC_SUBST([GNULIB_TTYNAME_R])
+-  GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING])
+-  GNULIB_UNISTD_H_SIGPIPE=0;     AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
+-  GNULIB_UNLINK=0;               AC_SUBST([GNULIB_UNLINK])
+-  GNULIB_UNLINKAT=0;             AC_SUBST([GNULIB_UNLINKAT])
+-  GNULIB_USLEEP=0;               AC_SUBST([GNULIB_USLEEP])
+-  GNULIB_WRITE=0;                AC_SUBST([GNULIB_WRITE])
+-  dnl Support Microsoft deprecated alias function names by default.
+-  GNULIB_MDA_ACCESS=1;           AC_SUBST([GNULIB_MDA_ACCESS])
+-  GNULIB_MDA_CHDIR=1;            AC_SUBST([GNULIB_MDA_CHDIR])
+-  GNULIB_MDA_CLOSE=1;            AC_SUBST([GNULIB_MDA_CLOSE])
+-  GNULIB_MDA_DUP=1;              AC_SUBST([GNULIB_MDA_DUP])
+-  GNULIB_MDA_DUP2=1;             AC_SUBST([GNULIB_MDA_DUP2])
+-  GNULIB_MDA_EXECL=1;            AC_SUBST([GNULIB_MDA_EXECL])
+-  GNULIB_MDA_EXECLE=1;           AC_SUBST([GNULIB_MDA_EXECLE])
+-  GNULIB_MDA_EXECLP=1;           AC_SUBST([GNULIB_MDA_EXECLP])
+-  GNULIB_MDA_EXECV=1;            AC_SUBST([GNULIB_MDA_EXECV])
+-  GNULIB_MDA_EXECVE=1;           AC_SUBST([GNULIB_MDA_EXECVE])
+-  GNULIB_MDA_EXECVP=1;           AC_SUBST([GNULIB_MDA_EXECVP])
+-  GNULIB_MDA_EXECVPE=1;          AC_SUBST([GNULIB_MDA_EXECVPE])
+-  GNULIB_MDA_GETCWD=1;           AC_SUBST([GNULIB_MDA_GETCWD])
+-  GNULIB_MDA_GETPID=1;           AC_SUBST([GNULIB_MDA_GETPID])
+-  GNULIB_MDA_ISATTY=1;           AC_SUBST([GNULIB_MDA_ISATTY])
+-  GNULIB_MDA_LSEEK=1;            AC_SUBST([GNULIB_MDA_LSEEK])
+-  GNULIB_MDA_READ=1;             AC_SUBST([GNULIB_MDA_READ])
+-  GNULIB_MDA_RMDIR=1;            AC_SUBST([GNULIB_MDA_RMDIR])
+-  GNULIB_MDA_SWAB=1;             AC_SUBST([GNULIB_MDA_SWAB])
+-  GNULIB_MDA_UNLINK=1;           AC_SUBST([GNULIB_MDA_UNLINK])
+-  GNULIB_MDA_WRITE=1;            AC_SUBST([GNULIB_MDA_WRITE])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_CHOWN=1;           AC_SUBST([HAVE_CHOWN])
+   HAVE_COPY_FILE_RANGE=1; AC_SUBST([HAVE_COPY_FILE_RANGE])
+--- a/gnulib/m4/visibility.m4
++++ b/gnulib/m4/visibility.m4
+@@ -1,4 +1,4 @@
+-# visibility.m4 serial 7
++# visibility.m4 serial 8
+ dnl Copyright (C) 2005, 2008, 2010-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -59,6 +59,10 @@ AC_DEFUN([gl_VISIBILITY],
+               extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+               extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+               void dummyfunc (void);
++              int hiddenvar;
++              int exportedvar;
++              int hiddenfunc (void) { return 51; }
++              int exportedfunc (void) { return 1225736919; }
+               void dummyfunc (void) {}
+             ]],
+             [[]])],
+--- a/gnulib/m4/wchar_h.m4
++++ b/gnulib/m4/wchar_h.m4
+@@ -7,9 +7,9 @@ dnl with or without modifications, as lo
+ 
+ dnl Written by Eric Blake.
+ 
+-# wchar_h.m4 serial 50
++# wchar_h.m4 serial 53
+ 
+-AC_DEFUN([gl_WCHAR_H],
++AC_DEFUN_ONCE([gl_WCHAR_H],
+ [
+   AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+   AC_REQUIRE([gl_WCHAR_H_INLINE_OK])
+@@ -125,60 +125,75 @@ Configuration aborted.])
+   fi
+ ])
+ 
++# gl_WCHAR_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_WCHAR_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_WCHAR_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_BTOWC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTOB])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSINIT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRTOWC])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBRLEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSRTOWCS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MBSNRTOWCS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCRTOMB])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRTOMBS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNRTOMBS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCWIDTH])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCHR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMMOVE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMPCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WMEMSET])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSLEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNLEN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCPNCPY])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCAT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCASECMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSNCASECMP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCOLL])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSXFRM])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSDUP])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCHR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSRCHR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSCSPN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSPN])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSPBRK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSSTR])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSTOK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSWIDTH])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCSFTIME])
++    dnl Support Microsoft deprecated alias function names by default.
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_MDA_WCSDUP], [1])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_WCHAR_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_WCHAR_H_DEFAULTS],
+ [
+-  GNULIB_BTOWC=0;       AC_SUBST([GNULIB_BTOWC])
+-  GNULIB_WCTOB=0;       AC_SUBST([GNULIB_WCTOB])
+-  GNULIB_MBSINIT=0;     AC_SUBST([GNULIB_MBSINIT])
+-  GNULIB_MBRTOWC=0;     AC_SUBST([GNULIB_MBRTOWC])
+-  GNULIB_MBRLEN=0;      AC_SUBST([GNULIB_MBRLEN])
+-  GNULIB_MBSRTOWCS=0;   AC_SUBST([GNULIB_MBSRTOWCS])
+-  GNULIB_MBSNRTOWCS=0;  AC_SUBST([GNULIB_MBSNRTOWCS])
+-  GNULIB_WCRTOMB=0;     AC_SUBST([GNULIB_WCRTOMB])
+-  GNULIB_WCSRTOMBS=0;   AC_SUBST([GNULIB_WCSRTOMBS])
+-  GNULIB_WCSNRTOMBS=0;  AC_SUBST([GNULIB_WCSNRTOMBS])
+-  GNULIB_WCWIDTH=0;     AC_SUBST([GNULIB_WCWIDTH])
+-  GNULIB_WMEMCHR=0;     AC_SUBST([GNULIB_WMEMCHR])
+-  GNULIB_WMEMCMP=0;     AC_SUBST([GNULIB_WMEMCMP])
+-  GNULIB_WMEMCPY=0;     AC_SUBST([GNULIB_WMEMCPY])
+-  GNULIB_WMEMMOVE=0;    AC_SUBST([GNULIB_WMEMMOVE])
+-  GNULIB_WMEMPCPY=0;    AC_SUBST([GNULIB_WMEMPCPY])
+-  GNULIB_WMEMSET=0;     AC_SUBST([GNULIB_WMEMSET])
+-  GNULIB_WCSLEN=0;      AC_SUBST([GNULIB_WCSLEN])
+-  GNULIB_WCSNLEN=0;     AC_SUBST([GNULIB_WCSNLEN])
+-  GNULIB_WCSCPY=0;      AC_SUBST([GNULIB_WCSCPY])
+-  GNULIB_WCPCPY=0;      AC_SUBST([GNULIB_WCPCPY])
+-  GNULIB_WCSNCPY=0;     AC_SUBST([GNULIB_WCSNCPY])
+-  GNULIB_WCPNCPY=0;     AC_SUBST([GNULIB_WCPNCPY])
+-  GNULIB_WCSCAT=0;      AC_SUBST([GNULIB_WCSCAT])
+-  GNULIB_WCSNCAT=0;     AC_SUBST([GNULIB_WCSNCAT])
+-  GNULIB_WCSCMP=0;      AC_SUBST([GNULIB_WCSCMP])
+-  GNULIB_WCSNCMP=0;     AC_SUBST([GNULIB_WCSNCMP])
+-  GNULIB_WCSCASECMP=0;  AC_SUBST([GNULIB_WCSCASECMP])
+-  GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP])
+-  GNULIB_WCSCOLL=0;     AC_SUBST([GNULIB_WCSCOLL])
+-  GNULIB_WCSXFRM=0;     AC_SUBST([GNULIB_WCSXFRM])
+-  GNULIB_WCSDUP=0;      AC_SUBST([GNULIB_WCSDUP])
+-  GNULIB_WCSCHR=0;      AC_SUBST([GNULIB_WCSCHR])
+-  GNULIB_WCSRCHR=0;     AC_SUBST([GNULIB_WCSRCHR])
+-  GNULIB_WCSCSPN=0;     AC_SUBST([GNULIB_WCSCSPN])
+-  GNULIB_WCSSPN=0;      AC_SUBST([GNULIB_WCSSPN])
+-  GNULIB_WCSPBRK=0;     AC_SUBST([GNULIB_WCSPBRK])
+-  GNULIB_WCSSTR=0;      AC_SUBST([GNULIB_WCSSTR])
+-  GNULIB_WCSTOK=0;      AC_SUBST([GNULIB_WCSTOK])
+-  GNULIB_WCSWIDTH=0;    AC_SUBST([GNULIB_WCSWIDTH])
+-  GNULIB_WCSFTIME=0;    AC_SUBST([GNULIB_WCSFTIME])
+-  dnl Support Microsoft deprecated alias function names by default.
+-  GNULIB_MDA_WCSDUP=1;  AC_SUBST([GNULIB_MDA_WCSDUP])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_BTOWC=1;         AC_SUBST([HAVE_BTOWC])
+   HAVE_MBSINIT=1;       AC_SUBST([HAVE_MBSINIT])
+--- a/gnulib/m4/wctype_h.m4
++++ b/gnulib/m4/wctype_h.m4
+@@ -1,4 +1,4 @@
+-# wctype_h.m4 serial 26
++# wctype_h.m4 serial 30
+ 
+ dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
+ 
+@@ -9,7 +9,7 @@ dnl with or without modifications, as lo
+ 
+ dnl Written by Paul Eggert.
+ 
+-AC_DEFUN([gl_WCTYPE_H],
++AC_DEFUN_ONCE([gl_WCTYPE_H],
+ [
+   AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+   AC_REQUIRE([AC_PROG_CC])
+@@ -62,7 +62,7 @@ AC_DEFUN([gl_WCTYPE_H],
+   fi
+   AC_SUBST([HAVE_WCTYPE_H])
+ 
+-  if test $GNULIB_OVERRIDES_WINT_T = 1; then
++  if test $GNULIBHEADERS_OVERRIDE_WINT_T = 1; then
+     REPLACE_ISWCNTRL=1
+   else
+     case "$gl_cv_func_iswcntrl_works" in
+@@ -157,24 +157,39 @@ AC_DEFUN([gl_WCTYPE_H],
+     ])
+ ])
+ 
++# gl_WCTYPE_MODULE_INDICATOR([modulename])
++# sets the shell variable that indicates the presence of the given module
++# to a C preprocessor expression that will evaluate to 1.
++# This macro invocation must not occur in macros that are AC_REQUIREd.
+ AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR],
+ [
+-  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+-  AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
++  dnl Ensure to expand the default settings once only.
++  gl_WCTYPE_H_REQUIRE_DEFAULTS
+   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+   dnl Define it also as a C macro, for the benefit of the unit tests.
+   gl_MODULE_INDICATOR_FOR_TESTS([$1])
+ ])
+ 
++# Initializes the default values for AC_SUBSTed shell variables.
++# This macro must not be AC_REQUIREd.  It must only be invoked, and only
++# outside of macros or in macros that are not AC_REQUIREd.
++AC_DEFUN([gl_WCTYPE_H_REQUIRE_DEFAULTS],
++[
++  m4_defun(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS], [
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWBLANK])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWDIGIT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWXDIGIT])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTYPE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_ISWCTYPE])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_WCTRANS])
++    gl_MODULE_INDICATOR_INIT_VARIABLE([GNULIB_TOWCTRANS])
++  ])
++  m4_require(GL_MODULE_INDICATOR_PREFIX[_WCTYPE_H_MODULE_INDICATOR_DEFAULTS])
++  AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
++])
++
+ AC_DEFUN([gl_WCTYPE_H_DEFAULTS],
+ [
+-  GNULIB_ISWBLANK=0;    AC_SUBST([GNULIB_ISWBLANK])
+-  GNULIB_ISWDIGIT=0;    AC_SUBST([GNULIB_ISWDIGIT])
+-  GNULIB_ISWXDIGIT=0;   AC_SUBST([GNULIB_ISWXDIGIT])
+-  GNULIB_WCTYPE=0;      AC_SUBST([GNULIB_WCTYPE])
+-  GNULIB_ISWCTYPE=0;    AC_SUBST([GNULIB_ISWCTYPE])
+-  GNULIB_WCTRANS=0;     AC_SUBST([GNULIB_WCTRANS])
+-  GNULIB_TOWCTRANS=0;   AC_SUBST([GNULIB_TOWCTRANS])
+   dnl Assume proper GNU behavior unless another module says otherwise.
+   HAVE_ISWBLANK=1;      AC_SUBST([HAVE_ISWBLANK])
+   HAVE_WCTYPE_T=1;      AC_SUBST([HAVE_WCTYPE_T])
+--- a/gnulib/m4/wint_t.m4
++++ b/gnulib/m4/wint_t.m4
+@@ -1,4 +1,4 @@
+-# wint_t.m4 serial 10
++# wint_t.m4 serial 11
+ dnl Copyright (C) 2003, 2007-2021 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+@@ -34,14 +34,14 @@ AC_DEFUN([gt_TYPE_WINT_T],
+          [gl_cv_type_wint_t_large_enough=yes],
+          [gl_cv_type_wint_t_large_enough=no])])
+     if test $gl_cv_type_wint_t_large_enough = no; then
+-      GNULIB_OVERRIDES_WINT_T=1
++      GNULIBHEADERS_OVERRIDE_WINT_T=1
+     else
+-      GNULIB_OVERRIDES_WINT_T=0
++      GNULIBHEADERS_OVERRIDE_WINT_T=0
+     fi
+   else
+-    GNULIB_OVERRIDES_WINT_T=0
++    GNULIBHEADERS_OVERRIDE_WINT_T=0
+   fi
+-  AC_SUBST([GNULIB_OVERRIDES_WINT_T])
++  AC_SUBST([GNULIBHEADERS_OVERRIDE_WINT_T])
+ ])
+ 
+ dnl Prerequisites of the 'wint_t' override.
+--- /dev/null
++++ b/gnulib/m4/year2038.m4
+@@ -0,0 +1,112 @@
++# year2038.m4 serial 5
++dnl Copyright (C) 2017-2021 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 Attempt to ensure that 'time_t' is a 64-bit type
++dnl and that the functions time(), stat(), etc. return 64-bit times.
++
++AC_DEFUN([gl_YEAR2038_EARLY],
++[
++  AC_REQUIRE([AC_CANONICAL_HOST])
++  case "$host_os" in
++    mingw*)
++      AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
++        [For 64-bit time_t on 32-bit mingw.])
++      ;;
++  esac
++])
++
++# gl_YEAR2038_TEST_INCLUDES
++# -------------------------
++AC_DEFUN([gl_YEAR2038_TEST_INCLUDES],
++[[
++  #include <time.h>
++  /* Check that time_t can represent 2**63 - 1 correctly.
++     We can't simply define LARGE_TIME_T to be 9223372036854775807,
++     since some C++ compilers masquerading as C compilers
++     incorrectly reject 9223372036854775807.  */
++  #define LARGE_TIME_T (((time_t) 1 << 31 << 31) - 1 + ((time_t) 1 << 31 << 31))
++  int verify_time_t_range[(LARGE_TIME_T % 2147483629 == 721
++                           && LARGE_TIME_T % 2147483647 == 1)
++                          ? 1 : -1];
++]])
++
++# gl_YEAR2038_BODY(REQUIRE-64-BIT)
++----------------------------------
++AC_DEFUN([gl_YEAR2038_BODY],
++[
++ AC_ARG_ENABLE([year2038],
++   [  --disable-year2038      omit support for timestamps past the year 2038])
++ AS_IF([test "$enable_year2038" != no],
++ [
++  dnl On many systems, time_t is already a 64-bit type.
++  dnl On those systems where time_t is still 32-bit, it requires kernel
++  dnl and libc support to make it 64-bit. For glibc 2.34 and later on Linux,
++  dnl defining _TIME_BITS=64 and _FILE_OFFSET_BITS=64 is needed on x86 and ARM.
++  dnl
++  dnl On native Windows, the system include files define types __time32_t
++  dnl and __time64_t. By default, time_t is an alias of
++  dnl   - __time32_t on 32-bit mingw,
++  dnl   - __time64_t on 64-bit mingw and on MSVC (since MSVC 8).
++  dnl But when compiling with -D__MINGW_USE_VC2005_COMPAT, time_t is an
++  dnl alias of __time64_t.
++  dnl And when compiling with -D_USE_32BIT_TIME_T, time_t is an alias of
++  dnl __time32_t.
++  AC_CACHE_CHECK([for 64-bit time_t], [gl_cv_type_time_t_64],
++    [AC_COMPILE_IFELSE(
++       [AC_LANG_SOURCE([gl_YEAR2038_TEST_INCLUDES])],
++       [gl_cv_type_time_t_64=yes], [gl_cv_type_time_t_64=no])
++    ])
++  if test "$gl_cv_type_time_t_64" = no; then
++    AC_CACHE_CHECK([for 64-bit time_t with _TIME_BITS=64],
++      [gl_cv_type_time_t_bits_macro],
++      [AC_COMPILE_IFELSE(
++         [AC_LANG_SOURCE([[#define _TIME_BITS 64
++                           #define _FILE_OFFSET_BITS 64
++                           ]gl_YEAR2038_TEST_INCLUDES])],
++         [gl_cv_type_time_t_bits_macro=yes],
++         [gl_cv_type_time_t_bits_macro=no])
++      ])
++    if test "$gl_cv_type_time_t_bits_macro" = yes; then
++      AC_DEFINE([_TIME_BITS], [64],
++        [Number of bits in a timestamp, on hosts where this is settable.])
++      dnl AC_SYS_LARGFILE also defines this; it's OK if we do too.
++      AC_DEFINE([_FILE_OFFSET_BITS], [64],
++        [Number of bits in a file offset, on hosts where this is settable.])
++      gl_cv_type_time_t_64=yes
++    fi
++  fi
++  if test $gl_cv_type_time_t_64 = no; then
++    AC_COMPILE_IFELSE(
++      [AC_LANG_SOURCE(
++         [[#ifdef _USE_32BIT_TIME_T
++             int ok;
++           #else
++             error fail
++           #endif
++         ]])],
++      [AC_MSG_FAILURE([This package requires a 64-bit 'time_t' type. Remove _USE_32BIT_TIME_T from the compiler flags.])],
++      [# If not cross-compiling and $1 says we should check,
++       # and 'touch' works with a large timestamp, then evidently 64-bit time_t
++       # is desired and supported, so fail and ask the builder to fix the
++       # problem.  Otherwise, just warn the builder.
++       m4_ifval([$1],
++         [if test $cross_compiling = no \
++             && TZ=UTC0 touch -t 210602070628.16 conftest.time 2>/dev/null; then
++            rm -f conftest.time
++            AC_MSG_FAILURE([This package requires a 64-bit 'time_t' type, which your system appears to support. You might try configuring with 'CPPFLAGS="-m64" LDFLAGS="-m64"'. To build with a 32-bit time_t anyway (not recommended), configure with '--disable-year2038'.])
++          fi])
++       if test "$gl_warned_about_64_bit_time_t" != yes; then
++         AC_MSG_WARN([This package requires a 64-bit 'time_t' type if there is any way to access timestamps outside the year range 1901-2038 on your platform. Perhaps you should configure with 'CPPFLAGS="-m64" LDFLAGS="-m64"'?])
++         gl_warned_about_64_bit_time_t=yes
++       fi
++      ])
++  fi])
++])
++
++AC_DEFUN([gl_YEAR2038],
++[
++  gl_YEAR2038_BODY([require-64-bit])
++])
diff --git a/poky/meta/recipes-extended/texinfo/texinfo_6.8.bb b/poky/meta/recipes-extended/texinfo/texinfo_6.8.bb
index e5046ff..5a7cbef 100644
--- a/poky/meta/recipes-extended/texinfo/texinfo_6.8.bb
+++ b/poky/meta/recipes-extended/texinfo/texinfo_6.8.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
 
-PROVIDES_append_class-native = " texinfo-replacement-native"
+PROVIDES:append:class-native = " texinfo-replacement-native"
 
 def compress_pkg(d):
     if bb.data.inherits_class('compress_doc', d):
@@ -20,15 +20,16 @@
              return "xz"
     return ""
 
-RDEPENDS_info += "${@compress_pkg(d)}"
+RDEPENDS:info += "${@compress_pkg(d)}"
 
 DEPENDS = "zlib ncurses texinfo-replacement-native"
-DEPENDS_class-native = "zlib-native ncurses-native"
+DEPENDS:class-native = "zlib-native ncurses-native"
 
 TARGET_PATCH = "file://use_host_makedoc.patch"
-TARGET_PATCH_class-native = ""
+TARGET_PATCH:class-native = ""
 
 SRC_URI = "${GNU_MIRROR}/texinfo/${BP}.tar.gz \
+           file://0001-gnulib-Update.patch \
            file://disable-native-tools.patch \
            file://link-zip.patch \
            file://dont-depend-on-help2man.patch \
@@ -45,38 +46,38 @@
 
 EXTRA_AUTORECONF += "-I ${S}/gnulib/m4"
 
-do_configure_prepend () {
+do_configure:prepend () {
 	# autotools_do_configure updates po/Makefile.in.in, we also need
 	# update po_document.
 	cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po_document/
 }
 
-do_compile_prepend() {
+do_compile:prepend() {
 	if [ -d tools ];then
 		oe_runmake -C tools/gnulib/lib
 	fi
 }
 
-do_install_append() {
+do_install:append() {
 	mkdir -p ${D}${datadir}/${tex_texinfo}
 	install -p -m644 ${S}/doc/texinfo.tex ${S}/doc/txi-??.tex ${D}${datadir}/${tex_texinfo}
 	sed -i -e '1s,#!.*perl,#! ${USRBINPATH}/env perl,' ${D}${bindir}/texi2any ${D}${bindir}/pod2texi
 }
 
-do_install_append_class-native() {
+do_install:append:class-native() {
 	install -m 755 info/makedoc ${D}${bindir}
 }
 
 PACKAGES += "info info-doc"
 
-FILES_info = "${bindir}/info ${bindir}/infokey ${bindir}/install-info"
-FILES_info-doc = "${infodir}/info.info* ${infodir}/dir ${infodir}/info-*.info* \
+FILES:info = "${bindir}/info ${bindir}/infokey ${bindir}/install-info"
+FILES:info-doc = "${infodir}/info.info* ${infodir}/dir ${infodir}/info-*.info* \
                   ${mandir}/man1/info.1* ${mandir}/man5/info.5* \
                   ${mandir}/man1/infokey.1* ${mandir}/man1/install-info.1*"
 
-FILES_${PN} = "${bindir}/makeinfo ${bindir}/texi* ${bindir}/pdftexi2dvi ${bindir}/pod2texi ${datadir}/texinfo"
-RDEPENDS_${PN} = "perl"
-FILES_${PN}-doc = "${infodir}/texinfo* \
+FILES:${PN} = "${bindir}/makeinfo ${bindir}/texi* ${bindir}/pdftexi2dvi ${bindir}/pod2texi ${datadir}/texinfo"
+RDEPENDS:${PN} = "perl"
+FILES:${PN}-doc = "${infodir}/texinfo* \
                    ${datadir}/${tex_texinfo} \
                    ${mandir}/man1 ${mandir}/man5"
 
@@ -84,6 +85,6 @@
 # but the code will test for it and if not found use Locale::gettext_pp instead.
 # However, this causes a file dependency on perl(Locale::gettext_xs) to be
 # generated, which must be satisfied.
-RPROVIDES_${PN} += "perl(Locale::gettext_xs)"
+RPROVIDES:${PN} += "perl(Locale::gettext_xs)"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/time/time_1.9.bb b/poky/meta/recipes-extended/time/time_1.9.bb
index e2b084c..abd00f0 100644
--- a/poky/meta/recipes-extended/time/time_1.9.bb
+++ b/poky/meta/recipes-extended/time/time_1.9.bb
@@ -8,7 +8,7 @@
 
 inherit texinfo update-alternatives
 
-ALTERNATIVE_${PN} = "time"
+ALTERNATIVE:${PN} = "time"
 ALTERNATIVE_PRIORITY = "100"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/timezone/tzdata.bb b/poky/meta/recipes-extended/timezone/tzdata.bb
index 09145e1..c2b0199 100644
--- a/poky/meta/recipes-extended/timezone/tzdata.bb
+++ b/poky/meta/recipes-extended/timezone/tzdata.bb
@@ -4,7 +4,7 @@
 
 inherit allarch
 
-RCONFLICTS_${PN} = "timezones timezone-africa timezone-america timezone-antarctica \
+RCONFLICTS:${PN} = "timezones timezone-africa timezone-america timezone-antarctica \
              timezone-arctic timezone-asia timezone-atlantic \
              timezone-australia timezone-europe timezone-indian \
              timezone-iso3166.tab timezone-pacific timezone-zone.tab"
@@ -59,7 +59,7 @@
         chown -R root:root ${D}
 }
 
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
 	etc_lt="$D${sysconfdir}/localtime"
 	src="$D${sysconfdir}/timezone"
 
@@ -88,47 +88,47 @@
     tzdata-atlantic tzdata-australia tzdata-europe tzdata-pacific"
 PACKAGES = "${TZ_PACKAGES} ${PN}"
 
-FILES_tzdata-africa += "${datadir}/zoneinfo/Africa/*"
-RPROVIDES_tzdata-africa = "tzdata-africa"
+FILES:tzdata-africa += "${datadir}/zoneinfo/Africa/*"
+RPROVIDES:tzdata-africa = "tzdata-africa"
 
-FILES_tzdata-americas += "${datadir}/zoneinfo/America/*  \
+FILES:tzdata-americas += "${datadir}/zoneinfo/America/*  \
                 ${datadir}/zoneinfo/US/*                \
                 ${datadir}/zoneinfo/Brazil/*            \
                 ${datadir}/zoneinfo/Canada/*            \
                 ${datadir}/zoneinfo/Mexico/*            \
                 ${datadir}/zoneinfo/Chile/*"
-RPROVIDES_tzdata-americas = "tzdata-americas"
+RPROVIDES:tzdata-americas = "tzdata-americas"
 
-FILES_tzdata-antarctica += "${datadir}/zoneinfo/Antarctica/*"
-RPROVIDES_tzdata-antarctica = "tzdata-antarctica"
+FILES:tzdata-antarctica += "${datadir}/zoneinfo/Antarctica/*"
+RPROVIDES:tzdata-antarctica = "tzdata-antarctica"
 
-FILES_tzdata-arctic += "${datadir}/zoneinfo/Arctic/*"
-RPROVIDES_tzdata-arctic = "tzdata-arctic"
+FILES:tzdata-arctic += "${datadir}/zoneinfo/Arctic/*"
+RPROVIDES:tzdata-arctic = "tzdata-arctic"
 
-FILES_tzdata-asia += "${datadir}/zoneinfo/Asia/*        \
+FILES:tzdata-asia += "${datadir}/zoneinfo/Asia/*        \
                 ${datadir}/zoneinfo/Indian/*            \
                 ${datadir}/zoneinfo/Mideast/*"
-RPROVIDES_tzdata-asia = "tzdata-asia"
+RPROVIDES:tzdata-asia = "tzdata-asia"
 
-FILES_tzdata-atlantic += "${datadir}/zoneinfo/Atlantic/*"
-RPROVIDES_tzdata-atlantic = "tzdata-atlantic"
+FILES:tzdata-atlantic += "${datadir}/zoneinfo/Atlantic/*"
+RPROVIDES:tzdata-atlantic = "tzdata-atlantic"
 
-FILES_tzdata-australia += "${datadir}/zoneinfo/Australia/*"
-RPROVIDES_tzdata-australia = "tzdata-australia"
+FILES:tzdata-australia += "${datadir}/zoneinfo/Australia/*"
+RPROVIDES:tzdata-australia = "tzdata-australia"
 
-FILES_tzdata-europe += "${datadir}/zoneinfo/Europe/*"
-RPROVIDES_tzdata-europe = "tzdata-europe"
+FILES:tzdata-europe += "${datadir}/zoneinfo/Europe/*"
+RPROVIDES:tzdata-europe = "tzdata-europe"
 
-FILES_tzdata-pacific += "${datadir}/zoneinfo/Pacific/*"
-RPROVIDES_tzdata-pacific = "tzdata-pacific"
+FILES:tzdata-pacific += "${datadir}/zoneinfo/Pacific/*"
+RPROVIDES:tzdata-pacific = "tzdata-pacific"
 
-FILES_tzdata-posix += "${datadir}/zoneinfo/posix/*"
-RPROVIDES_tzdata-posix = "tzdata-posix"
+FILES:tzdata-posix += "${datadir}/zoneinfo/posix/*"
+RPROVIDES:tzdata-posix = "tzdata-posix"
 
-FILES_tzdata-right += "${datadir}/zoneinfo/right/*"
-RPROVIDES_tzdata-right = "tzdata-right"
+FILES:tzdata-right += "${datadir}/zoneinfo/right/*"
+RPROVIDES:tzdata-right = "tzdata-right"
 
-FILES_tzdata-misc += "${datadir}/zoneinfo/Cuba           \
+FILES:tzdata-misc += "${datadir}/zoneinfo/Cuba           \
                 ${datadir}/zoneinfo/Egypt                \
                 ${datadir}/zoneinfo/Eire                 \
                 ${datadir}/zoneinfo/Factory              \
@@ -146,9 +146,9 @@
                 ${datadir}/zoneinfo/Portugal             \
                 ${datadir}/zoneinfo/Singapore            \
                 ${datadir}/zoneinfo/Turkey"
-RPROVIDES_tzdata-misc = "tzdata-misc"
+RPROVIDES:tzdata-misc = "tzdata-misc"
 
-FILES_tzdata-core += " \
+FILES:tzdata-core += " \
                 ${sysconfdir}/localtime                  \
                 ${sysconfdir}/timezone                   \
                 ${datadir}/zoneinfo/leapseconds          \
@@ -208,7 +208,7 @@
                 ${datadir}/zoneinfo/iso3166.tab          \
                 ${datadir}/zoneinfo/Etc/*"
 
-CONFFILES_tzdata-core = "${sysconfdir}/localtime ${sysconfdir}/timezone"
+CONFFILES:tzdata-core = "${sysconfdir}/localtime ${sysconfdir}/timezone"
 
-ALLOW_EMPTY_${PN} = "1"
-RDEPENDS_${PN} = "${TZ_PACKAGES}"
+ALLOW_EMPTY:${PN} = "1"
+RDEPENDS:${PN} = "${TZ_PACKAGES}"
diff --git a/poky/meta/recipes-extended/unzip/unzip_6.0.bb b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
index 40f0346..0bc6abc 100644
--- a/poky/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/poky/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -49,7 +49,7 @@
                 'CF_NOOPT=-I. -Ibzip2 -DUNIX ${CFLAGS}'"
 
 export LD = "${CC}"
-LD_class-native = "${CC}"
+LD:class-native = "${CC}"
 
 do_compile() {
         oe_runmake -f unix/Makefile generic
@@ -66,7 +66,7 @@
 
 ALTERNATIVE_PRIORITY = "100"
 
-ALTERNATIVE_${PN} = "unzip"
+ALTERNATIVE:${PN} = "unzip"
 ALTERNATIVE_LINK_NAME[unzip] = "${bindir}/unzip"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb b/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
index 19e9475..66373c9 100644
--- a/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
+++ b/poky/meta/recipes-extended/watchdog/watchdog_5.16.bb
@@ -36,20 +36,20 @@
 
 INITSCRIPT_PACKAGES = "${PN} ${PN}-keepalive"
 
-INITSCRIPT_NAME_${PN} = "watchdog"
-INITSCRIPT_PARAMS_${PN} = "start 25 1 2 3 4 5 . stop 85 0 6 ."
+INITSCRIPT_NAME:${PN} = "watchdog"
+INITSCRIPT_PARAMS:${PN} = "start 25 1 2 3 4 5 . stop 85 0 6 ."
 
-INITSCRIPT_NAME_${PN}-keepalive = "wd_keepalive"
-INITSCRIPT_PARAMS_${PN}-keepalive = "start 25 1 2 3 4 5 . stop 85 0 6 ."
+INITSCRIPT_NAME:${PN}-keepalive = "wd_keepalive"
+INITSCRIPT_PARAMS:${PN}-keepalive = "start 25 1 2 3 4 5 . stop 85 0 6 ."
 
 SYSTEMD_PACKAGES = "${PN} ${PN}-keepalive"
-SYSTEMD_SERVICE_${PN} = "watchdog.service"
-SYSTEMD_SERVICE_${PN}-keepalive = "wd_keepalive.service"
+SYSTEMD_SERVICE:${PN} = "watchdog.service"
+SYSTEMD_SERVICE:${PN}-keepalive = "wd_keepalive.service"
 # When using systemd, consider making use of internal watchdog support of systemd.
 # See RuntimeWatchdogSec in /etc/systemd/system.conf.
 SYSTEMD_AUTO_ENABLE = "disable"
 
-do_install_append() {
+do_install:append() {
 	install -d ${D}${systemd_system_unitdir}
 	install -m 0644 ${S}/debian/watchdog.service ${D}${systemd_system_unitdir}
 	install -m 0644 ${S}/debian/wd_keepalive.service ${D}${systemd_system_unitdir}
@@ -63,15 +63,15 @@
 
 PACKAGES =+ "${PN}-keepalive"
 
-FILES_${PN}-keepalive = " \
+FILES:${PN}-keepalive = " \
     ${sysconfdir}/init.d/wd_keepalive \
     ${systemd_system_unitdir}/wd_keepalive.service \
     ${sbindir}/wd_keepalive \
 "
 
-RDEPENDS_${PN} += "${PN}-config"
-RRECOMMENDS_${PN} += "kernel-module-softdog"
+RDEPENDS:${PN} += "${PN}-config"
+RRECOMMENDS:${PN} += "kernel-module-softdog"
 
-RDEPENDS_${PN}-keepalive += "${PN}-config"
-RCONFLICTS_${PN}-keepalive += "${PN}"
-RRECOMMENDS_${PN}-keepalive += "kernel-module-softdog"
+RDEPENDS:${PN}-keepalive += "${PN}-config"
+RCONFLICTS:${PN}-keepalive += "${PN}"
+RRECOMMENDS:${PN}-keepalive += "kernel-module-softdog"
diff --git a/poky/meta/recipes-extended/wget/wget.inc b/poky/meta/recipes-extended/wget/wget.inc
index 2338328..cd7290b 100644
--- a/poky/meta/recipes-extended/wget/wget.inc
+++ b/poky/meta/recipes-extended/wget/wget.inc
@@ -17,11 +17,11 @@
 EXTRA_OEMAKE += 'TOOLCHAIN_OPTIONS="${TOOLCHAIN_OPTIONS}" \
                  DEBUG_PREFIX_MAP="${DEBUG_PREFIX_MAP}"'
 
-ALTERNATIVE_${PN} = "wget"
-ALTERNATIVE_${PN}_class-nativesdk = ""
+ALTERNATIVE:${PN} = "wget"
+ALTERNATIVE:${PN}:class-nativesdk = ""
 ALTERNATIVE_PRIORITY = "100"
 
-RRECOMMENDS_${PN} += "ca-certificates"
+RRECOMMENDS:${PN} += "ca-certificates"
 
 BBCLASSEXTEND = "nativesdk"
 
diff --git a/poky/meta/recipes-extended/which/which_2.21.bb b/poky/meta/recipes-extended/which/which_2.21.bb
index 1da69c5..d3c3f69 100644
--- a/poky/meta/recipes-extended/which/which_2.21.bb
+++ b/poky/meta/recipes-extended/which/which_2.21.bb
@@ -24,14 +24,14 @@
 SRC_URI[md5sum] = "097ff1a324ae02e0a3b0369f07a7544a"
 SRC_URI[sha256sum] = "f4a245b94124b377d8b49646bf421f9155d36aa7614b6ebf83705d3ffc76eaad"
 
-do_configure_prepend() {
+do_configure:prepend() {
 	sed -i -e 's%@ACLOCAL_CWFLAGS@%-I ${STAGING_DIR_NATIVE}/usr/share/cwautomacros/m4%g' ${S}/Makefile.am ${S}/tilde/Makefile.am
 }
 
-ALTERNATIVE_${PN} = "which"
+ALTERNATIVE:${PN} = "which"
 ALTERNATIVE_PRIORITY = "100"
 
-ALTERNATIVE_${PN}-doc = "which.1"
+ALTERNATIVE:${PN}-doc = "which.1"
 ALTERNATIVE_LINK_NAME[which.1] = "${mandir}/man1/which.1"
 
 BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb b/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
index d371c5c..108e7b8 100644
--- a/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
+++ b/poky/meta/recipes-extended/xdg-utils/xdg-utils_1.1.3.bb
@@ -34,4 +34,4 @@
 REQUIRED_DISTRO_FEATURES = "x11"
 
 DEPENDS = "xmlto-native libxslt-native"
-RDEPENDS_${PN} += "xprop"
+RDEPENDS:${PN} += "xprop"
diff --git a/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb b/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
index 69d5b2f..e6ef5cf 100644
--- a/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
+++ b/poky/meta/recipes-extended/xinetd/xinetd_2.3.15.4.bb
@@ -24,7 +24,7 @@
 
 inherit autotools update-rc.d systemd pkgconfig
 
-SYSTEMD_SERVICE_${PN} = "xinetd.service"
+SYSTEMD_SERVICE:${PN} = "xinetd.service"
 
 INITSCRIPT_NAME = "xinetd"
 INITSCRIPT_PARAMS = "defaults"
@@ -32,9 +32,9 @@
 PACKAGECONFIG ??= "tcp-wrappers"
 PACKAGECONFIG[tcp-wrappers] = "--with-libwrap,,tcp-wrappers"
 
-CONFFILES_${PN} = "${sysconfdir}/xinetd.conf"
+CONFFILES:${PN} = "${sysconfdir}/xinetd.conf"
 
-do_install_append() {
+do_install:append() {
        install -d "${D}${sysconfdir}/init.d"
        install -d "${D}${sysconfdir}/default"
        install -m 755 "${WORKDIR}/xinetd.init" "${D}${sysconfdir}/init.d/xinetd"
@@ -48,4 +48,4 @@
               ${D}${systemd_unitdir}/system/xinetd.service
 }
 
-RDEPENDS_${PN} += "perl"
+RDEPENDS:${PN} += "perl"
diff --git a/poky/meta/recipes-extended/xz/xz_5.2.5.bb b/poky/meta/recipes-extended/xz/xz_5.2.5.bb
index f5f5c31..8021ebd 100644
--- a/poky/meta/recipes-extended/xz/xz_5.2.5.bb
+++ b/poky/meta/recipes-extended/xz/xz_5.2.5.bb
@@ -8,13 +8,13 @@
 # and the LGPL bits are under lib/, which appears to be used for libgnu, which
 # appears to be used for DOS builds. So we're left with GPLv2+ and PD.
 LICENSE = "GPLv2+ & GPL-3.0-with-autoconf-exception & LGPLv2.1+ & PD"
-LICENSE_${PN} = "GPLv2+"
-LICENSE_${PN}-dev = "GPLv2+"
-LICENSE_${PN}-staticdev = "GPLv2+"
-LICENSE_${PN}-doc = "GPLv2+"
-LICENSE_${PN}-dbg = "GPLv2+"
-LICENSE_${PN}-locale = "GPLv2+"
-LICENSE_liblzma = "PD"
+LICENSE:${PN} = "GPLv2+"
+LICENSE:${PN}-dev = "GPLv2+"
+LICENSE:${PN}-staticdev = "GPLv2+"
+LICENSE:${PN}-doc = "GPLv2+"
+LICENSE:${PN}-dbg = "GPLv2+"
+LICENSE:${PN}-locale = "GPLv2+"
+LICENSE:liblzma = "PD"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=97d554a32881fee0aa283d96e47cb24a \
                     file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
@@ -34,11 +34,11 @@
 
 PACKAGES =+ "liblzma"
 
-FILES_liblzma = "${libdir}/liblzma*${SOLIBS}"
+FILES:liblzma = "${libdir}/liblzma*${SOLIBS}"
 
 inherit update-alternatives
 ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "xz xzcat unxz \
+ALTERNATIVE:${PN} = "xz xzcat unxz \
                      lzma lzcat unlzma"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb b/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
index 3786058..978812f 100644
--- a/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
+++ b/poky/meta/recipes-extended/zstd/zstd_1.5.0.bb
@@ -17,6 +17,8 @@
 SRCREV = "a488ba114ec17ea1054b9057c26a046fc122b3b6"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
 
+CVE_PRODUCT = "zstandard"
+
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ??= ""