aboutsummaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/avr-libc/2.1.0/chksum4
-rw-r--r--packages/avr-libc/2.1.0/version.desc (renamed from packages/dtc/1.6.0/version.desc)0
-rw-r--r--packages/binutils-oracle/2.27-44.base.0.400/version.desc2
-rw-r--r--packages/binutils-oracle/2.27/version.desc14
-rw-r--r--packages/binutils-oracle/2.30-113.0.1/version.desc2
-rw-r--r--packages/binutils-oracle/2.30/version.desc2
-rw-r--r--packages/binutils-oracle/git-0b79182e/0001-binutils-gdb-oracle-backport.patch (renamed from packages/binutils-oracle/git-728f1495/0001-binutils-gdb-oracle-backport.patch)0
-rw-r--r--packages/binutils-oracle/git-43eccdca/0000-Fix-a-missing-include-of-string.patch24
-rw-r--r--packages/binutils-oracle/git-43eccdca/0001-revert-rpm-dd-changes.patch940
-rw-r--r--packages/binutils-oracle/git-43eccdca/0002-fix_to_patch_92.patch44
-rw-r--r--packages/binutils-oracle/git-461776a5/0000-Fix-a-missing-include-of-string.patch24
-rw-r--r--packages/binutils-oracle/git-889339ab/0000-Fix-a-missing-include-of-string.patch24
-rw-r--r--packages/binutils-oracle/git-889339ab/0012-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.39/0000-sh-conf.patch32
-rw-r--r--packages/binutils/2.39/0001-check_ldrunpath_length.patch29
-rw-r--r--packages/binutils/2.39/0002-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr.patch21
-rw-r--r--packages/binutils/2.39/0003-Dont-link-to-libfl-as-its-unnecessary.patch110
-rw-r--r--packages/binutils/2.39/0004-Darwin-gold-binary-cc-include-string-not-cstring.patch20
-rw-r--r--packages/binutils/2.39/0005-Fix-darwin-build.patch70
-rw-r--r--packages/binutils/2.39/0006-sysroot.patch45
-rw-r--r--packages/binutils/2.39/0007-poison-system-directories.patch283
-rw-r--r--packages/binutils/2.39/chksum12
-rw-r--r--packages/binutils/2.39/version.desc (renamed from packages/gcc/10.3.0/version.desc)0
-rw-r--r--packages/binutils/package.desc2
-rw-r--r--packages/cloog/0.18.0/chksum4
-rw-r--r--packages/cloog/0.18.0/version.desc3
-rw-r--r--packages/dtc/1.6.0/chksum8
-rw-r--r--packages/dtc/1.6.1/chksum8
-rw-r--r--packages/dtc/1.6.1/version.desc (renamed from packages/gcc/12.1.0/version.desc)0
-rw-r--r--packages/expat/2.4.1/version.desc1
-rw-r--r--packages/expat/2.5.0/chksum17
-rw-r--r--packages/expat/2.5.0/version.desc (renamed from packages/linux/4.14.277/version.desc)0
-rw-r--r--packages/gcc-oracle/4.8.5-44.0.5/version.desc4
-rw-r--r--packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch92
-rw-r--r--packages/gcc/10.3.0/0023-powerpc-Fix-asm-machine-directive-for-some-CPUs.patch59
-rw-r--r--packages/gcc/10.3.0/chksum8
-rw-r--r--packages/gcc/10.4.0/0000-libtool-leave-framework-alone.patch (renamed from packages/gcc/10.3.0/0000-libtool-leave-framework-alone.patch)0
-rw-r--r--packages/gcc/10.4.0/0001-uclibc-conf.patch (renamed from packages/gcc/10.3.0/0001-uclibc-conf.patch)0
-rw-r--r--packages/gcc/10.4.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch (renamed from packages/gcc/10.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch)6
-rw-r--r--packages/gcc/10.4.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch (renamed from packages/gcc/10.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch)0
-rw-r--r--packages/gcc/10.4.0/0004-arm-softfloat-libgcc.patch (renamed from packages/gcc/10.3.0/0004-arm-softfloat-libgcc.patch)0
-rw-r--r--packages/gcc/10.4.0/0005-fix-m68k-uclinux.patch (renamed from packages/gcc/10.3.0/0005-fix-m68k-uclinux.patch)2
-rw-r--r--packages/gcc/10.4.0/0006-libgfortran-missing-include.patch (renamed from packages/gcc/10.3.0/0006-libgfortran-missing-include.patch)0
-rw-r--r--packages/gcc/10.4.0/0007-nios2-bad-multilib-default.patch (renamed from packages/gcc/10.3.0/0007-nios2-bad-multilib-default.patch)0
-rw-r--r--packages/gcc/10.4.0/0008-libgcc-disable-split-stack-nothreads.patch (renamed from packages/gcc/10.3.0/0008-libgcc-disable-split-stack-nothreads.patch)0
-rw-r--r--packages/gcc/10.4.0/0009-bionic-ndk.patch (renamed from packages/gcc/10.3.0/0009-bionic-ndk.patch)0
-rw-r--r--packages/gcc/10.4.0/0010-crystax.patch (renamed from packages/gcc/10.3.0/0010-crystax.patch)4
-rw-r--r--packages/gcc/10.4.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch123
-rw-r--r--packages/gcc/10.4.0/0011-crystax.patch (renamed from packages/gcc/10.3.0/0011-crystax.patch)0
-rw-r--r--packages/gcc/10.4.0/0012-crystax.patch (renamed from packages/gcc/10.3.0/0012-crystax.patch)10
-rw-r--r--packages/gcc/10.4.0/0013-crystax.patch (renamed from packages/gcc/10.3.0/0013-crystax.patch)2
-rw-r--r--packages/gcc/10.4.0/0014-crystax.patch (renamed from packages/gcc/10.3.0/0014-crystax.patch)0
-rw-r--r--packages/gcc/10.4.0/0015-crystax.patch (renamed from packages/gcc/10.3.0/0015-crystax.patch)2
-rw-r--r--packages/gcc/10.4.0/0016-crystax.patch (renamed from packages/gcc/10.3.0/0016-crystax.patch)0
-rw-r--r--packages/gcc/10.4.0/0017-crystax.patch (renamed from packages/gcc/10.3.0/0017-crystax.patch)0
-rw-r--r--packages/gcc/10.4.0/0018-isl-0.20.patch (renamed from packages/gcc/10.3.0/0018-isl-0.20.patch)0
-rw-r--r--packages/gcc/10.4.0/0019-AArch64-Fix-build-issue-with-aarch64-builtins.c-on-M.patch (renamed from packages/gcc/10.3.0/0019-AArch64-Fix-build-issue-with-aarch64-builtins.c-on-M.patch)0
-rw-r--r--packages/gcc/10.4.0/0020-libstdcxx-pure-stdio.patch (renamed from packages/gcc/10.3.0/0020-libstdcxx-pure-stdio.patch)0
-rw-r--r--packages/gcc/10.4.0/0021-Darwin-Arm64-Initial-support-for-the-self-host-drive.patch (renamed from packages/gcc/10.3.0/0021-Darwin-Arm64-Initial-support-for-the-self-host-drive.patch)0
-rw-r--r--packages/gcc/10.4.0/0022-Remove-use-of-include_next-from-c-headers.patch (renamed from packages/gcc/10.3.0/0022-Remove-use-of-include_next-from-c-headers.patch)0
-rw-r--r--packages/gcc/10.4.0/chksum8
-rw-r--r--packages/gcc/10.4.0/version.desc (renamed from packages/linux/4.19.241/version.desc)0
-rw-r--r--packages/gcc/11.3.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch123
-rw-r--r--packages/gcc/11.3.0/0010-libsanitizer-mips64-Set-struct_kernel_stat_sz-to-mat.patch31
-rw-r--r--packages/gcc/12.1.0/chksum8
-rw-r--r--packages/gcc/12.2.0/0000-libtool-leave-framework-alone.patch (renamed from packages/gcc/12.1.0/0000-libtool-leave-framework-alone.patch)0
-rw-r--r--packages/gcc/12.2.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch (renamed from packages/gcc/12.1.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch)0
-rw-r--r--packages/gcc/12.2.0/0002-arm-softfloat-libgcc.patch (renamed from packages/gcc/12.1.0/0002-arm-softfloat-libgcc.patch)0
-rw-r--r--packages/gcc/12.2.0/0003-libgcc-disable-split-stack-nothreads.patch (renamed from packages/gcc/12.1.0/0003-libgcc-disable-split-stack-nothreads.patch)0
-rw-r--r--packages/gcc/12.2.0/0004-Remove-use-of-include_next-from-c-headers.patch (renamed from packages/gcc/12.1.0/0004-Remove-use-of-include_next-from-c-headers.patch)0
-rw-r--r--packages/gcc/12.2.0/chksum8
-rw-r--r--packages/gcc/12.2.0/version.desc (renamed from packages/linux/4.9.312/version.desc)0
-rw-r--r--packages/glibc-oracle/2.17-317.0.3/version.desc2
-rw-r--r--packages/glibc-oracle/2.17/version.desc14
-rw-r--r--packages/glibc-oracle/2.28/version.desc4
-rw-r--r--packages/glibc-oracle/git-ea029c9b/0000-backport-missing-header-file.patch34
-rw-r--r--packages/glibc/2.26/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.27/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.28/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.29/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.30/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.31/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.32/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.33/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.34/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.35/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch105
-rw-r--r--packages/glibc/2.36/0000-typedef-caddr.patch17
-rw-r--r--packages/glibc/2.36/0001-Add-ARC700-support.patch73
-rw-r--r--packages/glibc/2.36/0002-Mimic-kernel-defition-for-BLOCK_SIZE.patch30
-rw-r--r--packages/glibc/2.36/0003-Use-compile_c_snippet-to-check-linux_mount.h.patch32
-rw-r--r--packages/glibc/2.36/0004-Fix_sys_mount.h_usage_with_kernel_headers.patch336
-rw-r--r--packages/glibc/2.36/0005-Fix-enum-fsconfig_command-detection-in-sys_mount.h.patch43
-rw-r--r--packages/glibc/2.36/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch114
-rw-r--r--packages/glibc/2.36/chksum12
-rw-r--r--packages/glibc/2.36/version.desc1
-rw-r--r--packages/glibc/package.desc2
-rw-r--r--packages/gnuprumcu/0.9.0/chksum4
-rw-r--r--packages/gnuprumcu/0.9.0/version.desc (renamed from packages/linux/5.10.113/version.desc)0
-rw-r--r--packages/isl/0.11.1/chksum8
-rw-r--r--packages/isl/0.11.1/version.desc3
-rw-r--r--packages/linux/4.14.277/chksum8
-rw-r--r--packages/linux/4.14.301/chksum8
-rw-r--r--packages/linux/4.14.301/version.desc (renamed from packages/linux/5.15.37/version.desc)0
-rw-r--r--packages/linux/4.19.241/chksum8
-rw-r--r--packages/linux/4.19.268/chksum8
-rw-r--r--packages/linux/4.19.268/version.desc (renamed from packages/linux/5.17.5/version.desc)0
-rw-r--r--packages/linux/4.9.312/chksum8
-rw-r--r--packages/linux/4.9.335/chksum8
-rw-r--r--packages/linux/4.9.335/version.desc (renamed from packages/linux/5.4.191/version.desc)0
-rw-r--r--packages/linux/5.10.113/chksum8
-rw-r--r--packages/linux/5.10.158/chksum8
-rw-r--r--packages/linux/5.10.158/version.desc (renamed from packages/picolibc/1.7.6/version.desc)0
-rw-r--r--packages/linux/5.15.37/chksum8
-rw-r--r--packages/linux/5.15.82/chksum8
-rw-r--r--packages/linux/5.15.82/version.desc0
-rw-r--r--packages/linux/5.17.15/chksum8
-rw-r--r--packages/linux/5.17.15/version.desc0
-rw-r--r--packages/linux/5.17.5/chksum8
-rw-r--r--packages/linux/5.18.15/chksum8
-rw-r--r--packages/linux/5.18.15/version.desc0
-rw-r--r--packages/linux/5.19.16/chksum8
-rw-r--r--packages/linux/5.19.16/version.desc0
-rw-r--r--packages/linux/5.4.191/chksum8
-rw-r--r--packages/linux/5.4.226/chksum8
-rw-r--r--packages/linux/5.4.226/version.desc0
-rw-r--r--packages/linux/6.0.12/chksum8
-rw-r--r--packages/linux/6.0.12/version.desc0
-rw-r--r--packages/linux/6.1/chksum8
-rw-r--r--packages/linux/6.1/version.desc0
-rw-r--r--packages/linux/package.desc2
-rw-r--r--packages/make/4.2.1/version.desc2
-rw-r--r--packages/make/4.3/version.desc1
-rw-r--r--packages/make/4.4/chksum8
-rw-r--r--packages/make/4.4/version.desc0
-rw-r--r--packages/newlib-nano/package.desc2
-rw-r--r--packages/newlib/package.desc2
-rw-r--r--packages/picolibc/1.7.6/chksum4
-rw-r--r--packages/picolibc/1.7.9/chksum4
-rw-r--r--packages/picolibc/1.7.9/version.desc0
-rw-r--r--packages/picolibc/1.8/chksum4
-rw-r--r--packages/picolibc/1.8/version.desc0
-rw-r--r--packages/picolibc/package.desc2
-rw-r--r--packages/strace/5.16/version.desc1
-rw-r--r--packages/strace/6.1/chksum4
-rw-r--r--packages/strace/6.1/version.desc0
-rw-r--r--packages/zlib/1.2.12/version.desc1
-rw-r--r--packages/zlib/1.2.13/0000-mingw-static-only.patch28
-rw-r--r--packages/zlib/1.2.13/0001-crossbuild-macos-libtool.patch34
-rw-r--r--packages/zlib/1.2.13/chksum8
-rw-r--r--packages/zlib/1.2.13/version.desc0
-rw-r--r--packages/zlib/package.desc2
151 files changed, 4064 insertions, 229 deletions
diff --git a/packages/avr-libc/2.1.0/chksum b/packages/avr-libc/2.1.0/chksum
new file mode 100644
index 00000000..cd53d729
--- /dev/null
+++ b/packages/avr-libc/2.1.0/chksum
@@ -0,0 +1,4 @@
+md5 avr-libc-2.1.0.tar.bz2 35fe6d1e2581ea323f127dbac05e5e24
+sha1 avr-libc-2.1.0.tar.bz2 3c5ee4a2b8e308f11f02b57057f53b5fc56fb5be
+sha256 avr-libc-2.1.0.tar.bz2 0b84cee5c08b5d5cba67c36125e5aaa85251bc9accfba5773bfa87bc34b654e8
+sha512 avr-libc-2.1.0.tar.bz2 207b8844353c45172cc819cd5e694bbfe7cd281359cd01cff520f1e70226852d708f1a4fc2e841b2ceb8e3f7d19f2ce45a3f499aee4a25eeb5f6f0aa919611c8
diff --git a/packages/dtc/1.6.0/version.desc b/packages/avr-libc/2.1.0/version.desc
index e69de29b..e69de29b 100644
--- a/packages/dtc/1.6.0/version.desc
+++ b/packages/avr-libc/2.1.0/version.desc
diff --git a/packages/binutils-oracle/2.27-44.base.0.400/version.desc b/packages/binutils-oracle/2.27-44.base.0.400/version.desc
deleted file mode 100644
index 0184dc3e..00000000
--- a/packages/binutils-oracle/2.27-44.base.0.400/version.desc
+++ /dev/null
@@ -1,2 +0,0 @@
-repository_branch='oracle/binutils/ol7-u9-arm'
-version_number='2.27'
diff --git a/packages/binutils-oracle/2.27/version.desc b/packages/binutils-oracle/2.27/version.desc
new file mode 100644
index 00000000..7e228114
--- /dev/null
+++ b/packages/binutils-oracle/2.27/version.desc
@@ -0,0 +1,14 @@
+# Since Oracle provides different branches for binutils
+# depending of the architecture:
+#
+# ARM64: 'oracle/binutils/ol7-u9-aarch64'
+# ARM32: 'oracle/binutils/ol7-u9-arm'
+#
+# branch name is adjusted in:
+# samples/{aarch64,arm}*ol7u9-*
+#
+# using CT_BINUTILS_ORACLE_DEVEL_BRANCH
+#
+# EoS date for this package in OL7: Jul 2024.
+version_number='2.27-44.base.0.400'
+obsolete='yes'
diff --git a/packages/binutils-oracle/2.30-113.0.1/version.desc b/packages/binutils-oracle/2.30-113.0.1/version.desc
deleted file mode 100644
index 49aa6ed2..00000000
--- a/packages/binutils-oracle/2.30-113.0.1/version.desc
+++ /dev/null
@@ -1,2 +0,0 @@
-repository_branch='oracle/binutils/ol8-u6'
-version_number='2.30-113.0.1'
diff --git a/packages/binutils-oracle/2.30/version.desc b/packages/binutils-oracle/2.30/version.desc
new file mode 100644
index 00000000..3f9982b0
--- /dev/null
+++ b/packages/binutils-oracle/2.30/version.desc
@@ -0,0 +1,2 @@
+repository_branch='oracle/binutils/ol8-u7'
+version_number='2.30-117.0.3'
diff --git a/packages/binutils-oracle/git-728f1495/0001-binutils-gdb-oracle-backport.patch b/packages/binutils-oracle/git-0b79182e/0001-binutils-gdb-oracle-backport.patch
index 57c05dd2..57c05dd2 100644
--- a/packages/binutils-oracle/git-728f1495/0001-binutils-gdb-oracle-backport.patch
+++ b/packages/binutils-oracle/git-0b79182e/0001-binutils-gdb-oracle-backport.patch
diff --git a/packages/binutils-oracle/git-43eccdca/0000-Fix-a-missing-include-of-string.patch b/packages/binutils-oracle/git-43eccdca/0000-Fix-a-missing-include-of-string.patch
new file mode 100644
index 00000000..141ddf82
--- /dev/null
+++ b/packages/binutils-oracle/git-43eccdca/0000-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,24 @@
+This patch is a backport from binutils-gdb commit:
+a3972330f4: Fix a missing include of <string>
+
+This code 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 code 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.
+
+diff -Nur binutils-gdb/gold/errors.h binutils-gdb-oracle/gold/errors.h
+--- binutils-gdb/gold/errors.h 2022-06-16 17:49:08.412691685 -0500
++++ binutils-gdb-oracle/gold/errors.h 2022-06-16 18:34:19.463006903 -0500
+@@ -24,6 +24,7 @@
+ #define GOLD_ERRORS_H
+
+ #include <cstdarg>
++#include <string>
+
+ #include "gold-threads.h"
+
diff --git a/packages/binutils-oracle/git-43eccdca/0001-revert-rpm-dd-changes.patch b/packages/binutils-oracle/git-43eccdca/0001-revert-rpm-dd-changes.patch
new file mode 100644
index 00000000..e517637f
--- /dev/null
+++ b/packages/binutils-oracle/git-43eccdca/0001-revert-rpm-dd-changes.patch
@@ -0,0 +1,940 @@
+commit 6220d114b2f28345efbcea55c1befb1f0d40c215
+Author: Cupertino Miranda <cupertino.miranda@oracle.com>
+Date: Mon Dec 5 20:17:30 2022 +0000
+
+ Revert "LAST DIFFERENCES"
+
+ This reverts commit 43eccdca2998f3e04c8a32590345739f3f321372.
+
+diff --git a/bfd/config.bfd b/bfd/config.bfd
+index cf02b010926..4d821d7eefc 100644
+--- a/bfd/config.bfd
++++ b/bfd/config.bfd
+@@ -53,7 +53,7 @@ case $targ in
+ echo "*** Use or1k-*-elf or or1k-*-linux as the target instead" >&2
+ exit 1
+ ;;
+- i[34567]86-*-netbsdelf* | i[34567]86-*-netbsd*-gnu* | i[34567]86-*-knetbsd*-gnu | \
++ i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu | \
+ mips*-*-irix5* | mips*-*-irix6*)
+ # Not obsolete
+ ;;
+@@ -63,24 +63,24 @@ case $targ in
+ arm*-*-coff | \
+ h8300*-*-coff | \
+ h8500*-*-coff | \
+- i[34567]86-*-sco3.2v5*coff | \
+- i[34567]86-*-sysv4* | i[34567]86-*-unixware* | \
+- i[34567]86-*-sco3.2v5* | \
+- i[34567]86-*-dgux* | i[34567]86-*-sysv5* | \
+- i[34567]86-*-chorus* | \
+- i[34567]86-*-sysv* | i[34567]86-*-isc* | i[34567]86-*-sco* | i[34567]86-*-coff | \
+- i[34567]86-*-aix* | \
+- i[34567]86-sequent-bsd* | \
+- i[34567]86-*-freebsdaout* | i[34567]86-*-freebsd[12].* | \
+- i[34567]86-*-freebsd[12] | \
+- i[34567]86-*-netbsdaout* | i[34567]86-*-netbsd* | \
+- i[34567]86-*-openbsd[0-2].* | i[34567]86-*-openbsd3.[0-3] | \
+- i[34567]86-*-netware* | \
+- i[34567]86-*-linux*aout* | \
+- i[34567]86-*-mach* | i[34567]86-*-osf1mk* | \
+- i[34567]86-*-os9k | \
+- i[34567]86-none-* | \
+- i[34567]86-*-aout* | i[34567]86*-*-vsta* | \
++ i[3-7]86-*-sco3.2v5*coff | \
++ i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | \
++ i[3-7]86-*-sco3.2v5* | \
++ i[3-7]86-*-dgux* | i[3-7]86-*-sysv5* | \
++ i[3-7]86-*-chorus* | \
++ i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \
++ i[3-7]86-*-aix* | \
++ i[3-7]86-sequent-bsd* | \
++ i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | \
++ i[3-7]86-*-freebsd[12] | \
++ i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \
++ i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3] | \
++ i[3-7]86-*-netware* | \
++ i[3-7]86-*-linux*aout* | \
++ i[3-7]86-*-mach* | i[3-7]86-*-osf1mk* | \
++ i[3-7]86-*-os9k | \
++ i[3-7]86-none-* | \
++ i[3-7]86-*-aout* | i[3-7]86*-*-vsta* | \
+ i860-*-* | \
+ i960-*-* | \
+ m68*-motorola-sysv* | m68*-hp-bsd* | m68*-*-aout* | \
+@@ -170,7 +170,7 @@ crx*) targ_archs=bfd_crx_arch ;;
+ dlx*) targ_archs=bfd_dlx_arch ;;
+ fido*) targ_archs=bfd_m68k_arch ;;
+ hppa*) targ_archs=bfd_hppa_arch ;;
+-i[34567]86) targ_archs=bfd_i386_arch ;;
++i[3-7]86) targ_archs=bfd_i386_arch ;;
+ i370) targ_archs=bfd_i370_arch ;;
+ ia16) targ_archs=bfd_i386_arch ;;
+ lm32) targ_archs=bfd_lm32_arch ;;
+@@ -627,17 +627,17 @@ case "${targ}" in
+ targ_selvecs="i370_elf32_vec"
+ ;;
+
+- i[34567]86-*-sco3.2v5*coff)
++ i[3-7]86-*-sco3.2v5*coff)
+ targ_defvec=i386_coff_vec
+ targ_selvecs=i386_elf32_vec
+ ;;
+- i[34567]86-*-sysv4* | i[34567]86-*-unixware* | \
+- i[34567]86-*-elf* | i[34567]86-*-sco3.2v5* | \
+- i[34567]86-*-dgux* | i[34567]86-*-sysv5* | i[34567]86-*-rtems*)
++ i[3-7]86-*-sysv4* | i[3-7]86-*-unixware* | \
++ i[3-7]86-*-elf* | i[3-7]86-*-sco3.2v5* | \
++ i[3-7]86-*-dgux* | i[3-7]86-*-sysv5* | i[3-7]86-*-rtems*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_coff_vec"
+ ;;
+- i[34567]86-*-solaris2*)
++ i[3-7]86-*-solaris2*)
+ targ_defvec=i386_elf32_sol2_vec
+ targ_selvecs="iamcu_elf32_vec i386_coff_vec i386_pei_vec"
+ targ64_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec x86_64_pei_vec"
+@@ -650,23 +650,23 @@ case "${targ}" in
+ want64=true
+ ;;
+ #endif
+- i[34567]86-*-kaos*)
++ i[3-7]86-*-kaos*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs=i386_elf32_vec
+ ;;
+- i[34567]86-*-nto*)
++ i[3-7]86-*-nto*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_coff_vec"
+ ;;
+- i[34567]86-*-aros*)
++ i[3-7]86-*-aros*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs=iamcu_elf32_vec
+ ;;
+- i[34567]86-*-chorus*)
++ i[3-7]86-*-chorus*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs=iamcu_elf32_vec
+ ;;
+- i[34567]86-*-dicos*)
++ i[3-7]86-*-dicos*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs=iamcu_elf32_vec
+ targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
+@@ -675,85 +675,85 @@ case "${targ}" in
+ targ_defvec=i386_coff_go32_vec
+ targ_selvecs="i386_coff_go32stubbed_vec i386_aout_vec"
+ ;;
+- i[34567]86-*-sysv* | i[34567]86-*-isc* | i[34567]86-*-sco* | i[34567]86-*-coff | \
+- i[34567]86-*-aix*)
++ i[3-7]86-*-sysv* | i[3-7]86-*-isc* | i[3-7]86-*-sco* | i[3-7]86-*-coff | \
++ i[3-7]86-*-aix*)
+ targ_defvec=i386_coff_vec
+ ;;
+- i[34567]86-*-darwin* | i[34567]86-*-macos10* | i[34567]86-*-rhapsody*)
++ i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
+ targ_defvec=i386_mach_o_vec
+ targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
+ targ64_selvecs=x86_64_mach_o_vec
+ targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
+ ;;
+- i[34567]86-sequent-bsd*)
++ i[3-7]86-sequent-bsd*)
+ targ_defvec=i386_aout_dynix_vec
+ targ_underscore=yes
+ ;;
+- i[34567]86-*-bsd*)
++ i[3-7]86-*-bsd*)
+ targ_defvec=i386_aout_bsd_vec
+ targ_underscore=yes
+ ;;
+- i[34567]86-*-dragonfly*)
++ i[3-7]86-*-dragonfly*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs=iamcu_elf32_vec
+ targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
+ ;;
+- i[34567]86-*-freebsdaout* | i[34567]86-*-freebsd[12].* | \
+- i[34567]86-*-freebsd[12])
++ i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | \
++ i[3-7]86-*-freebsd[12])
+ targ_defvec=i386_aout_fbsd_vec
+ targ_selvecs=i386_aout_bsd_vec
+ targ_underscore=yes
+ ;;
+- i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu)
++ i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
+ targ_defvec=i386_elf32_fbsd_vec
+ targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_pei_vec i386_coff_vec"
+ targ64_selvecs="x86_64_elf64_fbsd_vec x86_64_elf64_vec x86_64_pei_vec l1om_elf64_vec l1om_elf64_fbsd_vec k1om_elf64_vec k1om_elf64_fbsd_vec"
+ # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
+ case "${targ}" in
+- i[34567]86-*-freebsd3* | i[34567]86-*-freebsd4 | i[34567]86-*-freebsd4.0*)
++ i[3-7]86-*-freebsd3* | i[3-7]86-*-freebsd4 | i[3-7]86-*-freebsd4.0*)
+ targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
+ esac
+ ;;
+- i[34567]86-*-netbsdelf* | i[34567]86-*-netbsd*-gnu* | i[34567]86-*-knetbsd*-gnu)
++ i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="i386_aout_nbsd_vec iamcu_elf32_vec"
+ targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
+ ;;
+- i[34567]86-*-netbsdpe*)
++ i[3-7]86-*-netbsdpe*)
+ targ_defvec=i386_pe_vec
+ targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec"
+ ;;
+- i[34567]86-*-netbsdaout* | i[34567]86-*-netbsd* | \
+- i[34567]86-*-openbsd[0-2].* | i[34567]86-*-openbsd3.[0-3])
++ i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \
++ i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3])
+ targ_defvec=i386_aout_nbsd_vec
+ targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_aout_bsd_vec"
+ targ_underscore=yes
+ ;;
+- i[34567]86-*-openbsd*)
++ i[3-7]86-*-openbsd*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_aout_nbsd_vec"
+ ;;
+- i[34567]86-*-netware*)
++ i[3-7]86-*-netware*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_nlm32_vec i386_coff_vec i386_aout_vec"
+ ;;
+- i[34567]86-*-linux*aout*)
++ i[3-7]86-*-linux*aout*)
+ targ_defvec=i386_aout_linux_vec
+ targ_selvecs="i386_elf32_vec iamcu_elf32_vec"
+ targ_underscore=yes
+ ;;
+- i[34567]86-*-linux-*)
++ i[3-7]86-*-linux-*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_aout_linux_vec i386_pei_vec"
+ targ64_selvecs="x86_64_elf64_vec x86_64_elf32_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
+ ;;
+- i[34567]86-*-nacl*)
++ i[3-7]86-*-nacl*)
+ targ_defvec=i386_elf32_nacl_vec
+ targ_selvecs="arm_elf32_nacl_be_vec arm_elf32_nacl_le_vec"
+ targ64_selvecs="x86_64_elf64_nacl_vec x86_64_elf32_nacl_vec"
+ targ_archs="$targ_archs bfd_arm_arch"
+ ;;
+- i[34567]86-*-redox*)
++ i[3-7]86-*-redox*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs=
+ targ64_selvecs=x86_64_elf64_vec
+@@ -821,64 +821,64 @@ case "${targ}" in
+ want64=true
+ ;;
+ #endif
+- i[34567]86-*-lynxos*)
++ i[3-7]86-*-lynxos*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_coff_lynx_vec i386_aout_lynx_vec"
+ ;;
+- i[34567]86-*-gnu*)
++ i[3-7]86-*-gnu*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs=iamcu_elf32_vec
+ ;;
+- i[34567]86-*-mach* | i[34567]86-*-osf1mk*)
++ i[3-7]86-*-mach* | i[3-7]86-*-osf1mk*)
+ targ_defvec=i386_aout_mach3_vec
+ targ_cflags=-DSTAT_FOR_EXEC
+ targ_underscore=yes
+ ;;
+- i[34567]86-*-os9k)
++ i[3-7]86-*-os9k)
+ targ_defvec=i386_aout_os9k_vec
+ ;;
+- i[34567]86-*-msdos*)
++ i[3-7]86-*-msdos*)
+ targ_defvec=i386_aout_vec
+ targ_selvecs=i386_msdos_vec
+ ;;
+- i[34567]86-*-moss*)
++ i[3-7]86-*-moss*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_msdos_vec i386_aout_vec"
+ ;;
+- i[34567]86-*-beospe*)
++ i[3-7]86-*-beospe*)
+ targ_defvec=i386_pe_vec
+ targ_selvecs="i386_pe_vec i386_pei_vec"
+ ;;
+- i[34567]86-*-beoself* | i[34567]86-*-beos*)
++ i[3-7]86-*-beoself* | i[3-7]86-*-beos*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_pe_vec i386_pei_vec"
+ ;;
+- i[34567]86-*-interix*)
++ i[3-7]86-*-interix*)
+ targ_defvec=i386_pei_vec
+ targ_selvecs="i386_pe_vec"
+ # FIXME: This should eventually be checked at runtime.
+ targ_cflags=-DSTRICT_PE_FORMAT
+ ;;
+- i[34567]86-*-rdos*)
++ i[3-7]86-*-rdos*)
+ targ_defvec=i386_elf32_vec
+ targ_selvecs="iamcu_elf32_vec i386_coff_vec"
+ ;;
+- i[34567]86-*-mingw32* | i[34567]86-*-cygwin* | i[34567]86-*-winnt | i[34567]86-*-pe)
++ i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe)
+ targ_defvec=i386_pe_vec
+ targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec"
+ targ_underscore=yes
+ ;;
+- i[34567]86-none-*)
++ i[3-7]86-none-*)
+ targ_defvec=i386_coff_vec
+ ;;
+- i[34567]86-*-aout* | i[34567]86*-*-vsta*)
++ i[3-7]86-*-aout* | i[3-7]86*-*-vsta*)
+ targ_defvec=i386_aout_vec
+ ;;
+- i[34567]86-*-vxworks*)
++ i[3-7]86-*-vxworks*)
+ targ_defvec=i386_elf32_vxworks_vec
+ targ_underscore=yes
+ ;;
+- i[34567]86-*-chaos)
++ i[3-7]86-*-chaos)
+ targ_defvec=i386_elf32_vec
+ targ_selfvecs="iamcu_elf32_vec i386chaos_vec"
+ ;;
+diff --git a/bfd/configure b/bfd/configure
+index adc6cdf1c01..da810fe1c1d 100755
+--- a/bfd/configure
++++ b/bfd/configure
+@@ -11910,7 +11910,7 @@ fi
+
+
+ case "${host}" in
+- sparc-*-solaris*|i[34567]86-*-solaris*)
++ sparc-*-solaris*|i[3-7]86-*-solaris*)
+ # On native 32bit sparc and ia32 solaris, large-file and procfs support
+ # are mutually exclusive; and without procfs support, the bfd/ elf module
+ # cannot provide certain routines such as elfcore_write_prpsinfo
+@@ -14840,45 +14840,45 @@ if test "${target}" = "${host}"; then
+ TRAD_HEADER='"hosts/i370linux.h"'
+ ;;
+
+- i[34567]86-sequent-bsd*)
++ i[3-7]86-sequent-bsd*)
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/symmetry.h"'
+ ;;
+- i[34567]86-sequent-sysv4*) ;;
+- i[34567]86-sequent-sysv*)
++ i[3-7]86-sequent-sysv4*) ;;
++ i[3-7]86-sequent-sysv*)
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/symmetry.h"'
+ ;;
+- i[34567]86-*-bsdi)
++ i[3-7]86-*-bsdi)
+ COREFILE=
+ ;;
+- i[34567]86-*-bsd* | i[34567]86-*-freebsd[123] | i[34567]86-*-freebsd[123]\.* | i[34567]86-*-freebsd4\.[01234] | i[34567]86-*-freebsd4\.[01234]\.* | i[34567]86-*-freebsd*aout*)
++ i[3-7]86-*-bsd* | i[3-7]86-*-freebsd[123] | i[3-7]86-*-freebsd[123]\.* | i[3-7]86-*-freebsd4\.[01234] | i[3-7]86-*-freebsd4\.[01234]\.* | i[3-7]86-*-freebsd*aout*)
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i386bsd.h"'
+ ;;
+- i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-dragonfly*)
++ i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu | i[3-7]86-*-dragonfly*)
+ COREFILE=''
+ TRAD_HEADER='"hosts/i386bsd.h"'
+ ;;
+- i[34567]86-*-netbsd* | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-openbsd*)
++ i[3-7]86-*-netbsd* | i[3-7]86-*-knetbsd*-gnu | i[3-7]86-*-openbsd*)
+ COREFILE=netbsd-core.lo
+ ;;
+- i[34567]86-esix-sysv3*)
++ i[3-7]86-esix-sysv3*)
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/esix.h"'
+ ;;
+- i[34567]86-*-sco3.2v5*)
++ i[3-7]86-*-sco3.2v5*)
+ COREFILE=sco5-core.lo
+ ;;
+- i[34567]86-*-sco* | i[34567]86-*-isc*)
++ i[3-7]86-*-sco* | i[3-7]86-*-isc*)
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i386sco.h"'
+ ;;
+- i[34567]86-*-mach3*)
++ i[3-7]86-*-mach3*)
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i386mach3.h"'
+ ;;
+- i[34567]86-*-linux-*)
++ i[3-7]86-*-linux-*)
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i386linux.h"'
+ case "$enable_targets"-"$want64" in
+@@ -14886,8 +14886,8 @@ if test "${target}" = "${host}"; then
+ CORE_HEADER='"hosts/x86-64linux.h"'
+ esac
+ ;;
+- i[34567]86-*-isc*) COREFILE=trad-core.lo ;;
+- i[34567]86-*-aix*) COREFILE=aix386-core.lo ;;
++ i[3-7]86-*-isc*) COREFILE=trad-core.lo ;;
++ i[3-7]86-*-aix*) COREFILE=aix386-core.lo ;;
+ i860-*-mach3* | i860-*-osf1*)
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i860mach3.h"'
+diff --git a/bfd/configure.ac b/bfd/configure.ac
+index fa2e0ec0133..95daa5a86de 100644
+--- a/bfd/configure.ac
++++ b/bfd/configure.ac
+@@ -884,65 +884,65 @@ if test "${target}" = "${host}"; then
+ ;;
+
+ changequote(,)dnl
+- i[34567]86-sequent-bsd*)
++ i[3-7]86-sequent-bsd*)
+ changequote([,])dnl
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/symmetry.h"'
+ ;;
+ changequote(,)dnl
+- i[34567]86-sequent-sysv4*) ;;
+- i[34567]86-sequent-sysv*)
++ i[3-7]86-sequent-sysv4*) ;;
++ i[3-7]86-sequent-sysv*)
+ changequote([,])dnl
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/symmetry.h"'
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-bsdi)
++ i[3-7]86-*-bsdi)
+ changequote([,])dnl
+ COREFILE=
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-bsd* | i[34567]86-*-freebsd[123] | i[34567]86-*-freebsd[123]\.* | i[34567]86-*-freebsd4\.[01234] | i[34567]86-*-freebsd4\.[01234]\.* | i[34567]86-*-freebsd*aout*)
++ i[3-7]86-*-bsd* | i[3-7]86-*-freebsd[123] | i[3-7]86-*-freebsd[123]\.* | i[3-7]86-*-freebsd4\.[01234] | i[3-7]86-*-freebsd4\.[01234]\.* | i[3-7]86-*-freebsd*aout*)
+ changequote([,])dnl
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i386bsd.h"'
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-dragonfly*)
++ i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu | i[3-7]86-*-dragonfly*)
+ changequote([,])dnl
+ COREFILE=''
+ TRAD_HEADER='"hosts/i386bsd.h"'
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-netbsd* | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-openbsd*)
++ i[3-7]86-*-netbsd* | i[3-7]86-*-knetbsd*-gnu | i[3-7]86-*-openbsd*)
+ changequote([,])dnl
+ COREFILE=netbsd-core.lo
+ ;;
+ changequote(,)dnl
+- i[34567]86-esix-sysv3*)
++ i[3-7]86-esix-sysv3*)
+ changequote([,])dnl
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/esix.h"'
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-sco3.2v5*)
++ i[3-7]86-*-sco3.2v5*)
+ changequote([,])dnl
+ COREFILE=sco5-core.lo
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-sco* | i[34567]86-*-isc*)
++ i[3-7]86-*-sco* | i[3-7]86-*-isc*)
+ changequote([,])dnl
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i386sco.h"'
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-mach3*)
++ i[3-7]86-*-mach3*)
+ changequote([,])dnl
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i386mach3.h"'
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-linux-*)
++ i[3-7]86-*-linux-*)
+ changequote([,])dnl
+ COREFILE=trad-core.lo
+ TRAD_HEADER='"hosts/i386linux.h"'
+@@ -952,8 +952,8 @@ changequote([,])dnl
+ esac
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-isc*) COREFILE=trad-core.lo ;;
+- i[34567]86-*-aix*) COREFILE=aix386-core.lo ;;
++ i[3-7]86-*-isc*) COREFILE=trad-core.lo ;;
++ i[3-7]86-*-aix*) COREFILE=aix386-core.lo ;;
+ changequote([,])dnl
+ i860-*-mach3* | i860-*-osf1*)
+ COREFILE=trad-core.lo
+diff --git a/bfd/configure.host b/bfd/configure.host
+index bfae19a0884..486de7f055f 100644
+--- a/bfd/configure.host
++++ b/bfd/configure.host
+@@ -54,11 +54,11 @@ ia64-*-*) host64=true;;
+
+ # Workaround for limitations on win9x where file contents are
+ # not zero'd out if you seek past the end and then write.
+-i[34567]86-*-mingw32*) HDEFINES=-D__USE_MINGW_FSEEK;;
++i[3-7]86-*-mingw32*) HDEFINES=-D__USE_MINGW_FSEEK;;
+
+-i[34567]86-sequent-bsd*) HDEFINES=-Dshared=genshared ;;
+-i[34567]86-sequent-sysv4*) ;;
+-i[34567]86-sequent-sysv*) HDEFINES=-Dshared=genshared ;;
++i[3-7]86-sequent-bsd*) HDEFINES=-Dshared=genshared ;;
++i[3-7]86-sequent-sysv4*) ;;
++i[3-7]86-sequent-sysv*) HDEFINES=-Dshared=genshared ;;
+
+ mips*-*-netbsd*) ;;
+ mips*-*-openbsd*) ;;
+diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
+index 6d48ff5b074..9d4dbcee009 100644
+--- a/bfd/elf32-ppc.c
++++ b/bfd/elf32-ppc.c
+@@ -10738,7 +10738,7 @@ ppc_elf_finish_dynamic_sections (bfd *output_bfd,
+ #define ELF_MACHINE_CODE EM_PPC
+ #ifdef __QNXTARGET__
+ #define ELF_MAXPAGESIZE 0x1000
+-#define ELF_COMMONPAGESIZE 0x10000
++#define ELF_COMMONPAGESIZE 0x1000
+ #else
+ #define ELF_MAXPAGESIZE 0x10000
+ #define ELF_COMMONPAGESIZE 0x10000
+diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
+index 68dc02335ab..8fa422f3ac7 100644
+--- a/bfd/elfnn-aarch64.c
++++ b/bfd/elfnn-aarch64.c
+@@ -9381,7 +9381,7 @@ const struct elf_size_info elfNN_aarch64_size_info =
+ #define ELF_MACHINE_CODE EM_AARCH64
+ #define ELF_MAXPAGESIZE 0x10000
+ #define ELF_MINPAGESIZE 0x1000
+-#define ELF_COMMONPAGESIZE 0x10000
++#define ELF_COMMONPAGESIZE 0x1000
+
+ #define bfd_elfNN_close_and_cleanup \
+ elfNN_aarch64_close_and_cleanup
+diff --git a/binutils/configure b/binutils/configure
+index df671b95788..7d76ea887bc 100755
+--- a/binutils/configure
++++ b/binutils/configure
+@@ -11706,7 +11706,7 @@ fi
+
+
+ case "${host}" in
+- sparc-*-solaris*|i[34567]86-*-solaris*)
++ sparc-*-solaris*|i[3-7]86-*-solaris*)
+ # On native 32bit sparc and ia32 solaris, large-file and procfs support
+ # are mutually exclusive; and without procfs support, the bfd/ elf module
+ # cannot provide certain routines such as elfcore_write_prpsinfo
+@@ -14479,7 +14479,7 @@ do
+ od_vectors="$od_vectors objdump_private_desc_xcoff"
+ else
+ case $targ in
+- i[34567]86*-*-netware*)
++ i[3-7]86*-*-netware*)
+ BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
+ NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386"
+ ;;
+@@ -14539,7 +14539,7 @@ do
+ BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+ BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
+ ;;
+- i[34567]86-*-pe* | i[34567]86-*-cygwin* | i[34567]86-*-mingw32** | i[34567]86-*-netbsdpe*)
++ i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*)
+ BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+ if test -z "$DLLTOOL_DEFAULT"; then
+ DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
+@@ -14549,7 +14549,7 @@ do
+ BUILD_WINDMC='$(WINDMC_PROG)$(EXEEXT)'
+ BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
+ ;;
+- i[34567]86-*-interix)
++ i[3-7]86-*-interix)
+ BUILD_DLLTOOL='$(DLLTOOL_PROG)'
+ if test -z "$DLLTOOL_DEFAULT"; then
+ DLLTOOL_DEFAULT="-DDLLTOOL_DEFAULT_I386"
+diff --git a/binutils/configure.ac b/binutils/configure.ac
+index 63466c584b6..6d3eaa31fe1 100644
+--- a/binutils/configure.ac
++++ b/binutils/configure.ac
+@@ -264,7 +264,7 @@ do
+ else
+ case $targ in
+ changequote(,)dnl
+- i[34567]86*-*-netware*)
++ i[3-7]86*-*-netware*)
+ changequote([,])dnl
+ BUILD_NLMCONV='$(NLMCONV_PROG)$(EXEEXT)'
+ NLMCONV_DEFS="$NLMCONV_DEFS -DNLMCONV_I386"
+@@ -326,7 +326,7 @@ changequote([,])dnl
+ BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-pe* | i[34567]86-*-cygwin* | i[34567]86-*-mingw32** | i[34567]86-*-netbsdpe*)
++ i[3-7]86-*-pe* | i[3-7]86-*-cygwin* | i[3-7]86-*-mingw32** | i[3-7]86-*-netbsdpe*)
+ changequote([,])dnl
+ BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
+ if test -z "$DLLTOOL_DEFAULT"; then
+@@ -338,7 +338,7 @@ changequote([,])dnl
+ BUILD_DLLWRAP='$(DLLWRAP_PROG)$(EXEEXT)'
+ ;;
+ changequote(,)dnl
+- i[34567]86-*-interix)
++ i[3-7]86-*-interix)
+ changequote([,])dnl
+ BUILD_DLLTOOL='$(DLLTOOL_PROG)'
+ if test -z "$DLLTOOL_DEFAULT"; then
+diff --git a/gas/configure b/gas/configure
+index f4a4b1256d6..2d7f44717e2 100755
+--- a/gas/configure
++++ b/gas/configure
+@@ -11472,7 +11472,7 @@ fi
+
+
+ case "${host}" in
+- sparc-*-solaris*|i[34567]86-*-solaris*)
++ sparc-*-solaris*|i[3-7]86-*-solaris*)
+ # On native 32bit sparc and ia32 solaris, large-file and procfs support
+ # are mutually exclusive; and without procfs support, the bfd/ elf module
+ # cannot provide certain routines such as elfcore_write_prpsinfo
+diff --git a/gas/configure.tgt b/gas/configure.tgt
+index abf7e02e869..afe4e0608cf 100644
+--- a/gas/configure.tgt
++++ b/gas/configure.tgt
+@@ -61,7 +61,7 @@ case ${cpu} in
+ epiphany*) cpu_type=epiphany endian=little ;;
+ fido) cpu_type=m68k ;;
+ hppa*) cpu_type=hppa ;;
+- i[34567]86) cpu_type=i386 arch=i386;;
++ i[3-7]86) cpu_type=i386 arch=i386;;
+ ia16) cpu_type=i386 arch=i386;;
+ ia64) cpu_type=ia64 ;;
+ ip2k) cpu_type=ip2k endian=big ;;
+diff --git a/gold/aarch64.cc b/gold/aarch64.cc
+index 1d11420dee7..f77c4cc3187 100644
+--- a/gold/aarch64.cc
++++ b/gold/aarch64.cc
+@@ -3554,7 +3554,7 @@ const Target::Target_info Target_aarch64<64, false>::aarch64_info =
+ "/lib/ld.so.1", // program interpreter
+ 0x400000, // default_text_segment_address
+ 0x10000, // abi_pagesize (overridable by -z max-page-size)
+- 0x10000, // common_pagesize (overridable by -z common-page-size)
++ 0x1000, // common_pagesize (overridable by -z common-page-size)
+ false, // isolate_execinstr
+ 0, // rosegment_gap
+ elfcpp::SHN_UNDEF, // small_common_shndx
+@@ -3582,7 +3582,7 @@ const Target::Target_info Target_aarch64<32, false>::aarch64_info =
+ "/lib/ld.so.1", // program interpreter
+ 0x400000, // default_text_segment_address
+ 0x10000, // abi_pagesize (overridable by -z max-page-size)
+- 0x10000, // common_pagesize (overridable by -z common-page-size)
++ 0x1000, // common_pagesize (overridable by -z common-page-size)
+ false, // isolate_execinstr
+ 0, // rosegment_gap
+ elfcpp::SHN_UNDEF, // small_common_shndx
+@@ -3610,7 +3610,7 @@ const Target::Target_info Target_aarch64<64, true>::aarch64_info =
+ "/lib/ld.so.1", // program interpreter
+ 0x400000, // default_text_segment_address
+ 0x10000, // abi_pagesize (overridable by -z max-page-size)
+- 0x10000, // common_pagesize (overridable by -z common-page-size)
++ 0x1000, // common_pagesize (overridable by -z common-page-size)
+ false, // isolate_execinstr
+ 0, // rosegment_gap
+ elfcpp::SHN_UNDEF, // small_common_shndx
+@@ -3638,7 +3638,7 @@ const Target::Target_info Target_aarch64<32, true>::aarch64_info =
+ "/lib/ld.so.1", // program interpreter
+ 0x400000, // default_text_segment_address
+ 0x10000, // abi_pagesize (overridable by -z max-page-size)
+- 0x10000, // common_pagesize (overridable by -z common-page-size)
++ 0x1000, // common_pagesize (overridable by -z common-page-size)
+ false, // isolate_execinstr
+ 0, // rosegment_gap
+ elfcpp::SHN_UNDEF, // small_common_shndx
+diff --git a/gold/powerpc.cc b/gold/powerpc.cc
+index 7869d20595b..f6d589c6ea7 100644
+--- a/gold/powerpc.cc
++++ b/gold/powerpc.cc
+@@ -1614,7 +1614,7 @@ Target::Target_info Target_powerpc<32, true>::powerpc_info =
+ "/usr/lib/ld.so.1", // dynamic_linker
+ 0x10000000, // default_text_segment_address
+ 64 * 1024, // abi_pagesize (overridable by -z max-page-size)
+- 64 * 1024, // common_pagesize (overridable by -z common-page-size)
++ 4 * 1024, // common_pagesize (overridable by -z common-page-size)
+ false, // isolate_execinstr
+ 0, // rosegment_gap
+ elfcpp::SHN_UNDEF, // small_common_shndx
+@@ -1642,7 +1642,7 @@ Target::Target_info Target_powerpc<32, false>::powerpc_info =
+ "/usr/lib/ld.so.1", // dynamic_linker
+ 0x10000000, // default_text_segment_address
+ 64 * 1024, // abi_pagesize (overridable by -z max-page-size)
+- 64 * 1024, // common_pagesize (overridable by -z common-page-size)
++ 4 * 1024, // common_pagesize (overridable by -z common-page-size)
+ false, // isolate_execinstr
+ 0, // rosegment_gap
+ elfcpp::SHN_UNDEF, // small_common_shndx
+@@ -1670,7 +1670,7 @@ Target::Target_info Target_powerpc<64, true>::powerpc_info =
+ "/usr/lib/ld.so.1", // dynamic_linker
+ 0x10000000, // default_text_segment_address
+ 64 * 1024, // abi_pagesize (overridable by -z max-page-size)
+- 64 * 1024, // common_pagesize (overridable by -z common-page-size)
++ 4 * 1024, // common_pagesize (overridable by -z common-page-size)
+ false, // isolate_execinstr
+ 0, // rosegment_gap
+ elfcpp::SHN_UNDEF, // small_common_shndx
+@@ -1698,7 +1698,7 @@ Target::Target_info Target_powerpc<64, false>::powerpc_info =
+ "/usr/lib/ld.so.1", // dynamic_linker
+ 0x10000000, // default_text_segment_address
+ 64 * 1024, // abi_pagesize (overridable by -z max-page-size)
+- 64 * 1024, // common_pagesize (overridable by -z common-page-size)
++ 4 * 1024, // common_pagesize (overridable by -z common-page-size)
+ false, // isolate_execinstr
+ 0, // rosegment_gap
+ elfcpp::SHN_UNDEF, // small_common_shndx
+diff --git a/gprof/configure b/gprof/configure
+index bbcd676c610..e0f2bef7776 100755
+--- a/gprof/configure
++++ b/gprof/configure
+@@ -11382,7 +11382,7 @@ fi
+
+
+ case "${host}" in
+- sparc-*-solaris*|i[34567]86-*-solaris*)
++ sparc-*-solaris*|i[3-7]86-*-solaris*)
+ # On native 32bit sparc and ia32 solaris, large-file and procfs support
+ # are mutually exclusive; and without procfs support, the bfd/ elf module
+ # cannot provide certain routines such as elfcore_write_prpsinfo
+diff --git a/ld/configure b/ld/configure
+index 9431f3b6ea2..e43ddd698cf 100755
+--- a/ld/configure
++++ b/ld/configure
+@@ -15221,7 +15221,7 @@ fi
+
+
+ case "${host}" in
+- sparc-*-solaris*|i[34567]86-*-solaris*)
++ sparc-*-solaris*|i[3-7]86-*-solaris*)
+ # On native 32bit sparc and ia32 solaris, large-file and procfs support
+ # are mutually exclusive; and without procfs support, the bfd/ elf module
+ # cannot provide certain routines such as elfcore_write_prpsinfo
+diff --git a/ld/configure.tgt b/ld/configure.tgt
+index 1a70497ae98..6183a85b3d1 100644
+--- a/ld/configure.tgt
++++ b/ld/configure.tgt
+@@ -241,32 +241,32 @@ hppa*-*-openbsd*) targ_emul=hppaobsd
+ ;;
+ i370-*-elf* | i370-*-linux-*) targ_emul=elf32i370
+ ;;
+-i[34567]86-*-nto-qnx*) targ_emul=i386nto ;;
+-i[34567]86-*-vsta) targ_emul=vsta ;;
+-i[34567]86-*-go32) targ_emul=i386go32 ;;
+-i[34567]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
+-i[34567]86-*-aix*) targ_emul=i386coff ;;
+-i[34567]86-*-sco*) targ_emul=i386coff ;;
+-i[34567]86-*-isc*) targ_emul=i386coff ;;
+-i[34567]86-*-lynxos*) targ_emul=i386lynx ;;
+-i[34567]86-*-coff) targ_emul=i386coff ;;
+-i[34567]86-*-aros*) targ_emul=elf_i386
++i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;;
++i[3-7]86-*-vsta) targ_emul=vsta ;;
++i[3-7]86-*-go32) targ_emul=i386go32 ;;
++i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
++i[3-7]86-*-aix*) targ_emul=i386coff ;;
++i[3-7]86-*-sco*) targ_emul=i386coff ;;
++i[3-7]86-*-isc*) targ_emul=i386coff ;;
++i[3-7]86-*-lynxos*) targ_emul=i386lynx ;;
++i[3-7]86-*-coff) targ_emul=i386coff ;;
++i[3-7]86-*-aros*) targ_emul=elf_i386
+ targ_extra_emuls=elf_iamcu ;;
+-i[34567]86-*-rdos*) targ_emul=elf_i386
++i[3-7]86-*-rdos*) targ_emul=elf_i386
+ targ_extra_emuls=elf_iamcu ;;
+ x86_64-*-rdos*) targ_emul=elf64rdos ;;
+ x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi ;;
+-i[34567]86-*-bsd) targ_emul=i386bsd ;;
+-i[34567]86-*-bsd386) targ_emul=i386bsd ;;
+-i[34567]86-*-bsdi*) targ_emul=i386bsd ;;
+-i[34567]86-*-aout) targ_emul=i386aout ;;
+-i[34567]86-*-linux*aout*) targ_emul=i386linux
++i[3-7]86-*-bsd) targ_emul=i386bsd ;;
++i[3-7]86-*-bsd386) targ_emul=i386bsd ;;
++i[3-7]86-*-bsdi*) targ_emul=i386bsd ;;
++i[3-7]86-*-aout) targ_emul=i386aout ;;
++i[3-7]86-*-linux*aout*) targ_emul=i386linux
+ targ_extra_emuls="elf_i386 elf_iamcu"
+ tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/aout//'`
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;;
+-i[34567]86-*-linux*oldld) targ_emul=i386linux
++i[3-7]86-*-linux*oldld) targ_emul=i386linux
+ targ_extra_emuls="elf_i386 elf_iamcu" ;;
+-i[34567]86-*-linux-*) targ_emul=elf_i386
++i[3-7]86-*-linux-*) targ_emul=elf_i386
+ targ_extra_emuls="i386linux elf_iamcu"
+ targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om"
+ targ64_extra_libpath="elf_x86_64 elf32_x86_64"
+@@ -282,13 +282,13 @@ x86_64-*-linux-*) targ_emul=elf_x86_64
+ targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
+ tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
+-i[34567]86-*-redox*) targ_emul=elf_i386
++i[3-7]86-*-redox*) targ_emul=elf_i386
+ targ_extra_emuls=elf_x86_64 ;;
+ x86_64-*-redox*) targ_emul=elf_x86_64
+ targ_extra_emuls=elf_i386 ;;
+-i[34567]86-*-sysv[45]*) targ_emul=elf_i386
++i[3-7]86-*-sysv[45]*) targ_emul=elf_i386
+ targ_extra_emuls=elf_iamcu ;;
+-i[34567]86-*-solaris2*) targ_emul=elf_i386_sol2
++i[3-7]86-*-solaris2*) targ_emul=elf_i386_sol2
+ targ_extra_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64 elf_l1om elf_k1om"
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
+@@ -297,20 +297,20 @@ x86_64-*-solaris2*)
+ targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu elf_l1om elf_k1om"
+ targ_extra_libpath=$targ_extra_emuls
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
+-i[34567]86-*-unixware) targ_emul=elf_i386
++i[3-7]86-*-unixware) targ_emul=elf_i386
+ targ_extra_emuls=elf_iamcu ;;
+-i[34567]86-*-solaris*) targ_emul=elf_i386_ldso
++i[3-7]86-*-solaris*) targ_emul=elf_i386_ldso
+ targ_extra_emuls="elf_i386"
+ targ_extra_libpath=$targ_extra_emuls
+ ;;
+-i[34567]86-*-netbsdelf* | \
+-i[34567]86-*-netbsd*-gnu* | \
+-i[34567]86-*-knetbsd*-gnu)
++i[3-7]86-*-netbsdelf* | \
++i[3-7]86-*-netbsd*-gnu* | \
++i[3-7]86-*-knetbsd*-gnu)
+ targ_emul=elf_i386
+ targ_extra_emuls="elf_iamcu i386nbsd" ;;
+-i[34567]86-*-netbsdpe*) targ_emul=i386pe
++i[3-7]86-*-netbsdpe*) targ_emul=i386pe
+ targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+-i[34567]86-*-netbsd*) targ_emul=i386nbsd
++i[3-7]86-*-netbsd*) targ_emul=i386nbsd
+ targ_extra_emuls=elf_i386 ;;
+ x86_64-*-netbsd*) targ_emul=elf_x86_64
+ targ_extra_emuls="elf_i386 elf_iamcu i386nbsd elf_l1om elf_k1om"
+@@ -328,10 +328,10 @@ x86_64-*-netbsd*) targ_emul=elf_x86_64
+ *) tdir_elf_i386=`echo ${tdir_elf_i386} | \
+ sed -e 's/netbsd/netbsdelf/'`;;
+ esac ;;
+-i[34567]86-*-netware) targ_emul=i386nw ;;
+-i[34567]86-*-elfiamcu) targ_emul=elf_iamcu
++i[3-7]86-*-netware) targ_emul=i386nw ;;
++i[3-7]86-*-elfiamcu) targ_emul=elf_iamcu
+ targ_extra_emuls=elf_i386 ;;
+-i[34567]86-*-elf* | i[34567]86-*-rtems*)
++i[3-7]86-*-elf* | i[3-7]86-*-rtems*)
+ targ_emul=elf_i386
+ targ_extra_emuls=elf_iamcu ;;
+ x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*)
+@@ -340,14 +340,14 @@ x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia*)
+ targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
+ tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
+ ;;
+-i[34567]86-*-kaos*) targ_emul=elf_i386 ;;
+-i[34567]86-*-freebsdaout* | i[34567]86-*-freebsd[12].* | i[34567]86-*-freebsd[12])
++i[3-7]86-*-kaos*) targ_emul=elf_i386 ;;
++i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12])
+ targ_emul=i386bsd ;;
+-i[34567]86-*-dragonfly*) targ_emul=elf_i386
++i[3-7]86-*-dragonfly*) targ_emul=elf_i386
+ targ_extra_emuls="elf_iamcu i386bsd" ;;
+ x86_64-*-dragonfly*) targ_emul=elf_x86_64
+ targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om" ;;
+-i[34567]86-*-freebsd* | i[34567]86-*-kfreebsd*-gnu)
++i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
+ targ_emul=elf_i386_fbsd
+ targ_extra_emuls="elf_i386 elf_iamcu i386bsd" ;;
+ x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
+@@ -360,21 +360,21 @@ x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
+ | sed -e 's/x86_64/i386/'`
+ tdir_elf_i386=`echo ${targ_alias} \
+ | sed -e 's/x86_64/i386/'` ;;
+-i[34567]86-*-sysv*) targ_emul=i386coff ;;
+-i[34567]86-*-ptx*) targ_emul=i386coff ;;
+-i[34567]86-*-mach*) targ_emul=i386mach ;;
+-i[34567]86-*-gnu*) targ_emul=elf_i386
++i[3-7]86-*-sysv*) targ_emul=i386coff ;;
++i[3-7]86-*-ptx*) targ_emul=i386coff ;;
++i[3-7]86-*-mach*) targ_emul=i386mach ;;
++i[3-7]86-*-gnu*) targ_emul=elf_i386
+ targ_extra_emuls=elf_iamcu ;;
+-i[34567]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
+-i[34567]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
+-i[34567]86-*-winnt*) targ_emul=i386pe ;
++i[3-7]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
++i[3-7]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
++i[3-7]86-*-winnt*) targ_emul=i386pe ;
+ targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+-i[34567]86-*-pe) targ_emul=i386pe ;
++i[3-7]86-*-pe) targ_emul=i386pe ;
+ targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+-i[34567]86-*-cygwin*) targ_emul=i386pe ;
++i[3-7]86-*-cygwin*) targ_emul=i386pe ;
+ targ_extra_ofiles="deffilep.o pe-dll.o" ;
+ test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
+-i[34567]86-*-mingw32*) targ_emul=i386pe ;
++i[3-7]86-*-mingw32*) targ_emul=i386pe ;
+ targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+ x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ;
+ targ_extra_emuls=i386pe ;
+@@ -386,14 +386,14 @@ x86_64-*-cygwin) targ_emul=i386pep ;
+ x86_64-*-mingw*) targ_emul=i386pep ;
+ targ_extra_emuls=i386pe
+ targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
+-i[34567]86-*-interix*) targ_emul=i386pe_posix;
++i[3-7]86-*-interix*) targ_emul=i386pe_posix;
+ targ_extra_ofiles="deffilep.o pe-dll.o" ;;
+-i[34567]86-*-beospe*) targ_emul=i386beos ;;
+-i[34567]86-*-beos*) targ_emul=elf_i386_be ;;
+-i[34567]86-*-vxworks*) targ_emul=elf_i386_vxworks ;;
+-i[34567]86-*-chaos) targ_emul=elf_i386_chaos
++i[3-7]86-*-beospe*) targ_emul=i386beos ;;
++i[3-7]86-*-beos*) targ_emul=elf_i386_be ;;
++i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;;
++i[3-7]86-*-chaos) targ_emul=elf_i386_chaos
+ ;;
+-i[34567]86-*-nacl*) targ_emul=elf_i386_nacl
++i[3-7]86-*-nacl*) targ_emul=elf_i386_nacl
+ targ_extra_emuls="armelf_nacl armelfb_nacl"
+ targ_extra_libpath=$targ_extra_emuls
+ targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
+@@ -903,15 +903,15 @@ hppa*64*-*-hpux11*)
+ NATIVE_LIB_DIRS=/usr/lib/pa20_64
+ ;;
+
+-i[34567]86-*-sysv4*)
++i[3-7]86-*-sysv4*)
+ NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
+ ;;
+
+-i[34567]86-*-solaris*)
++i[3-7]86-*-solaris*)
+ NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
+ ;;
+
+-i[34567]86-pc-interix*)
++i[3-7]86-pc-interix*)
+ NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib'
+ ;;
+
diff --git a/packages/binutils-oracle/git-43eccdca/0002-fix_to_patch_92.patch b/packages/binutils-oracle/git-43eccdca/0002-fix_to_patch_92.patch
new file mode 100644
index 00000000..41b3b9f5
--- /dev/null
+++ b/packages/binutils-oracle/git-43eccdca/0002-fix_to_patch_92.patch
@@ -0,0 +1,44 @@
+diff --git a/gold/i386.cc b/gold/i386.cc
+index a65f3a034df..3f1312c8640 100644
+--- a/gold/i386.cc
++++ b/gold/i386.cc
+@@ -1081,7 +1081,7 @@ Target_i386::record_gnu_property(
+ {
+ uint32_t val = 0;
+
+- switch (pr_type)
++ switch ((unsigned int) pr_type)
+ {
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED:
+@@ -1102,7 +1102,7 @@ Target_i386::record_gnu_property(
+ break;
+ }
+
+- switch (pr_type)
++ switch ((unsigned int) pr_type)
+ {
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
+ this->isa_1_used_ |= val;
+diff --git a/gold/x86_64.cc b/gold/x86_64.cc
+index 16bcffc9541..63b551957ef 100644
+--- a/gold/x86_64.cc
++++ b/gold/x86_64.cc
+@@ -1468,7 +1468,7 @@ Target_x86_64<size>::record_gnu_property(
+ {
+ uint32_t val = 0;
+
+- switch (pr_type)
++ switch ((unsigned int) pr_type)
+ {
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_NEEDED:
+@@ -1489,7 +1489,7 @@ Target_x86_64<size>::record_gnu_property(
+ break;
+ }
+
+- switch (pr_type)
++ switch ((unsigned int) pr_type)
+ {
+ case elfcpp::GNU_PROPERTY_X86_ISA_1_USED:
+ this->isa_1_used_ |= val;
diff --git a/packages/binutils-oracle/git-461776a5/0000-Fix-a-missing-include-of-string.patch b/packages/binutils-oracle/git-461776a5/0000-Fix-a-missing-include-of-string.patch
new file mode 100644
index 00000000..141ddf82
--- /dev/null
+++ b/packages/binutils-oracle/git-461776a5/0000-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,24 @@
+This patch is a backport from binutils-gdb commit:
+a3972330f4: Fix a missing include of <string>
+
+This code 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 code 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.
+
+diff -Nur binutils-gdb/gold/errors.h binutils-gdb-oracle/gold/errors.h
+--- binutils-gdb/gold/errors.h 2022-06-16 17:49:08.412691685 -0500
++++ binutils-gdb-oracle/gold/errors.h 2022-06-16 18:34:19.463006903 -0500
+@@ -24,6 +24,7 @@
+ #define GOLD_ERRORS_H
+
+ #include <cstdarg>
++#include <string>
+
+ #include "gold-threads.h"
+
diff --git a/packages/binutils-oracle/git-889339ab/0000-Fix-a-missing-include-of-string.patch b/packages/binutils-oracle/git-889339ab/0000-Fix-a-missing-include-of-string.patch
new file mode 100644
index 00000000..141ddf82
--- /dev/null
+++ b/packages/binutils-oracle/git-889339ab/0000-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,24 @@
+This patch is a backport from binutils-gdb commit:
+a3972330f4: Fix a missing include of <string>
+
+This code 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 code 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.
+
+diff -Nur binutils-gdb/gold/errors.h binutils-gdb-oracle/gold/errors.h
+--- binutils-gdb/gold/errors.h 2022-06-16 17:49:08.412691685 -0500
++++ binutils-gdb-oracle/gold/errors.h 2022-06-16 18:34:19.463006903 -0500
+@@ -24,6 +24,7 @@
+ #define GOLD_ERRORS_H
+
+ #include <cstdarg>
++#include <string>
+
+ #include "gold-threads.h"
+
diff --git a/packages/binutils-oracle/git-889339ab/0012-Fix-a-missing-include-of-string.patch b/packages/binutils-oracle/git-889339ab/0012-Fix-a-missing-include-of-string.patch
deleted file mode 100644
index b04033a7..00000000
--- a/packages/binutils-oracle/git-889339ab/0012-Fix-a-missing-include-of-string.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 23272f9927dc95c0cf6f7c5aabcc0551eca572c5 Mon Sep 17 00:00:00 2001
-From: Martin Liska <mliska@suse.cz>
-Date: Fri, 7 Jun 2019 07:36:52 +0200
-Subject: [PATCH] Fix a missing include of <string>
-
-gold/ChangeLog:
-
-2019-06-07 Martin Liska <mliska@suse.cz>
-
- * errors.h: Include string.
----
- gold/errors.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/gold/errors.h b/gold/errors.h
-index 1e61c8dbb5..805b25fc9c 100644
---- a/gold/errors.h
-+++ b/gold/errors.h
-@@ -24,6 +24,7 @@
- #define GOLD_ERRORS_H
-
- #include <cstdarg>
-+#include <string>
-
- #include "gold-threads.h"
-
diff --git a/packages/binutils/2.39/0000-sh-conf.patch b/packages/binutils/2.39/0000-sh-conf.patch
new file mode 100644
index 00000000..8e975da0
--- /dev/null
+++ b/packages/binutils/2.39/0000-sh-conf.patch
@@ -0,0 +1,32 @@
+From 0d37b5114a1caa2e1cb8e5273b6a674abee37b91 Mon Sep 17 00:00:00 2001
+From: Chris Packham <judge.packham@gmail.com>
+Date: Mon, 8 Aug 2022 20:31:10 +1200
+Subject: [PATCH] sh conf
+
+---
+ configure | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/configure
++++ b/configure
+@@ -3911,7 +3911,7 @@
+ nvptx*-*-*)
+ noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+ ;;
+- sh-*-*)
++ sh*-*-*)
+ case "${target}" in
+ sh*-*-elf)
+ ;;
+--- a/configure.ac
++++ b/configure.ac
+@@ -1189,7 +1189,7 @@
+ nvptx*-*-*)
+ noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+ ;;
+- sh-*-*)
++ sh*-*-*)
+ case "${target}" in
+ sh*-*-elf)
+ ;;
diff --git a/packages/binutils/2.39/0001-check_ldrunpath_length.patch b/packages/binutils/2.39/0001-check_ldrunpath_length.patch
new file mode 100644
index 00000000..d67a67f8
--- /dev/null
+++ b/packages/binutils/2.39/0001-check_ldrunpath_length.patch
@@ -0,0 +1,29 @@
+From 3c0df45053b5988491bbb407f875fee8a0faa25b Mon Sep 17 00:00:00 2001
+From: Chris Packham <judge.packham@gmail.com>
+Date: Mon, 8 Aug 2022 20:36:31 +1200
+Subject: [PATCH] check_ldrunpath_length
+
+---
+ ld/ldelf.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/ld/ldelf.c
++++ b/ld/ldelf.c
+@@ -1127,6 +1127,8 @@
+ && command_line.rpath == NULL)
+ {
+ path = (const char *) getenv ("LD_RUN_PATH");
++ if (path && *path == '\0')
++ path = NULL;
+ if (path
+ && ldelf_search_needed (path, &n, force,
+ is_linux, elfsize))
+@@ -1801,6 +1803,8 @@
+ rpath = command_line.rpath;
+ if (rpath == NULL)
+ rpath = (const char *) getenv ("LD_RUN_PATH");
++ if (rpath && *rpath == '\0')
++ rpath = NULL;
+
+ for (abfd = link_info.input_bfds; abfd; abfd = abfd->link.next)
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
diff --git a/packages/binutils/2.39/0002-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr.patch b/packages/binutils/2.39/0002-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr.patch
new file mode 100644
index 00000000..f02496ca
--- /dev/null
+++ b/packages/binutils/2.39/0002-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr.patch
@@ -0,0 +1,21 @@
+From 4a797d00aac6f4a15fcd17c34da65a316e788f16 Mon Sep 17 00:00:00 2001
+From: Chris Packham <judge.packham@gmail.com>
+Date: Mon, 8 Aug 2022 20:37:03 +1200
+Subject: [PATCH] MinGW w64 winpthreads doesn't have
+ pthread_mutexattr_settype
+
+---
+ gold/gold-threads.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/gold/gold-threads.cc
++++ b/gold/gold-threads.cc
+@@ -101,7 +101,7 @@
+ int err = pthread_mutexattr_init(&attr);
+ if (err != 0)
+ gold_fatal(_("pthead_mutexattr_init failed: %s"), strerror(err));
+-#ifdef PTHREAD_MUTEX_ADAPTIVE_NP
++#if defined(PTHREAD_MUTEX_ADAPTIVE_NP) && !defined(_WIN32)
+ err = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ADAPTIVE_NP);
+ if (err != 0)
+ gold_fatal(_("pthread_mutexattr_settype failed: %s"), strerror(err));
diff --git a/packages/binutils/2.39/0003-Dont-link-to-libfl-as-its-unnecessary.patch b/packages/binutils/2.39/0003-Dont-link-to-libfl-as-its-unnecessary.patch
new file mode 100644
index 00000000..ccaffff7
--- /dev/null
+++ b/packages/binutils/2.39/0003-Dont-link-to-libfl-as-its-unnecessary.patch
@@ -0,0 +1,110 @@
+From 4afcbb7decf230fdf7a02a5fe9dd1b5dfaab5712 Mon Sep 17 00:00:00 2001
+From: Chris Packham <judge.packham@gmail.com>
+Date: Mon, 8 Aug 2022 20:37:24 +1200
+Subject: [PATCH] Don't link to libfl as it's unnecessary
+
+---
+ binutils/configure | 3 +++
+ binutils/configure.ac | 3 +++
+ gas/configure | 3 +++
+ gas/configure.ac | 3 +++
+ ld/configure | 3 +++
+ ld/configure.ac | 3 +++
+ 6 files changed, 18 insertions(+)
+
+--- a/binutils/configure
++++ b/binutils/configure
+@@ -12289,6 +12289,7 @@
+ done
+ test -n "$YACC" || YACC="yacc"
+
++save_LIBS=$LIBS
+ for ac_prog in flex lex
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+@@ -12452,6 +12453,8 @@
+ if test "$LEX" = :; then
+ LEX=${am_missing_run}flex
+ fi
++LIBS=$save_LIBS
++LEXLIB=
+
+ ALL_LINGUAS="bg ca da es fi fr hr id it ja pt ro ru rw sk sr sv tr uk vi zh_CN zh_TW"
+ # If we haven't got the data from the intl directory,
+--- a/binutils/configure.ac
++++ b/binutils/configure.ac
+@@ -137,7 +137,10 @@
+ fi
+
+ AC_PROG_YACC
++save_LIBS=$LIBS
+ AM_PROG_LEX
++LIBS=$save_LIBS
++LEXLIB=
+
+ ALL_LINGUAS="bg ca da es fi fr hr id it ja pt ro ru rw sk sr sv tr uk vi zh_CN zh_TW"
+ ZW_GNU_GETTEXT_SISTER_DIR
+--- a/gas/configure
++++ b/gas/configure
+@@ -12932,6 +12932,7 @@
+ done
+ test -n "$YACC" || YACC="yacc"
+
++save_LIBS=$LIBS
+ for ac_prog in flex lex
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+@@ -13095,6 +13096,8 @@
+ if test "$LEX" = :; then
+ LEX=${am_missing_run}flex
+ fi
++LIBS=$save_LIBS
++LEXLIB=
+
+ ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
+ # If we haven't got the data from the intl directory,
+--- a/gas/configure.ac
++++ b/gas/configure.ac
+@@ -933,7 +933,10 @@
+ AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
+
+ AC_PROG_YACC
++save_LIBS=$LIBS
+ AM_PROG_LEX
++LIBS=$save_LIBS
++LEXLIB=
+
+ ALL_LINGUAS="es fi fr id ja ru rw sv tr uk zh_CN"
+ ZW_GNU_GETTEXT_SISTER_DIR
+--- a/ld/configure
++++ b/ld/configure
+@@ -16448,6 +16448,7 @@
+ done
+ test -n "$YACC" || YACC="yacc"
+
++save_LIBS=$LIBS
+ for ac_prog in flex lex
+ do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+@@ -16611,6 +16612,8 @@
+ if test "$LEX" = :; then
+ LEX=${am_missing_run}flex
+ fi
++LIBS=$save_LIBS
++LEXLIB=
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
+--- a/ld/configure.ac
++++ b/ld/configure.ac
+@@ -346,7 +346,10 @@
+ AC_EXEEXT
+
+ AC_PROG_YACC
++save_LIBS=$LIBS
+ AM_PROG_LEX
++LIBS=$save_LIBS
++LEXLIB=
+
+ AM_MAINTAINER_MODE
+ AM_CONDITIONAL(GENINSRC_NEVER, false)
diff --git a/packages/binutils/2.39/0004-Darwin-gold-binary-cc-include-string-not-cstring.patch b/packages/binutils/2.39/0004-Darwin-gold-binary-cc-include-string-not-cstring.patch
new file mode 100644
index 00000000..a94a9894
--- /dev/null
+++ b/packages/binutils/2.39/0004-Darwin-gold-binary-cc-include-string-not-cstring.patch
@@ -0,0 +1,20 @@
+From 5a41f20a5be6d38fd33beae8a5e0af902acc6e71 Mon Sep 17 00:00:00 2001
+From: Chris Packham <judge.packham@gmail.com>
+Date: Mon, 8 Aug 2022 20:37:47 +1200
+Subject: [PATCH] Darwin gold binary cc include string not cstring
+
+---
+ gold/binary.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/gold/binary.cc
++++ b/gold/binary.cc
+@@ -23,7 +23,7 @@
+ #include "gold.h"
+
+ #include <cerrno>
+-#include <cstring>
++#include <string>
+
+ #include "elfcpp.h"
+ #include "stringpool.h"
diff --git a/packages/binutils/2.39/0005-Fix-darwin-build.patch b/packages/binutils/2.39/0005-Fix-darwin-build.patch
new file mode 100644
index 00000000..be6abe78
--- /dev/null
+++ b/packages/binutils/2.39/0005-Fix-darwin-build.patch
@@ -0,0 +1,70 @@
+From 2b887f9f158c963d0ffb9759c9ff4d89c88b7ed1 Mon Sep 17 00:00:00 2001
+From: Andrew Hsieh <andrewhsieh@google.com>
+Date: Wed, 18 Mar 2015 10:57:24 +0800
+Subject: [PATCH] Fix darwin build
+
+1. In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4
+ doesn't support ended initializer list
+2. wcsncasecmp doesn't exist in MacSDK10.6.x
+
+Change-Id: I69204a72f853f5263dffedc448379d75ed4eca2e
+---
+ bfd/peXXigen.c | 22 ++++++++++++++++++++++
+ gold/gold-threads.cc | 15 ++++++++++++---
+ 2 files changed, 34 insertions(+), 3 deletions(-)
+
+--- a/bfd/peXXigen.c
++++ b/bfd/peXXigen.c
+@@ -3641,6 +3641,28 @@
+ }
+ #endif /* not Cygwin/Mingw */
+
++#if defined __APPLE__ && __DARWIN_C_LEVEL < 200809L
++/* wcsncasecmp isn't always defined in Mac SDK */
++static int
++wcsncasecmp(const wchar_t *s1, const wchar_t *s2, size_t n)
++{
++ wchar_t c1, c2;
++
++ if (n == 0)
++ return (0);
++ for (; *s1; s1++, s2++)
++ {
++ c1 = towlower(*s1);
++ c2 = towlower(*s2);
++ if (c1 != c2)
++ return ((int)c1 - c2);
++ if (--n == 0)
++ return (0);
++ }
++ return (-*s2);
++}
++#endif
++
+ /* Perform a comparison of two entries. */
+ static signed int
+ rsrc_cmp (bool is_name, rsrc_entry * a, rsrc_entry * b)
+--- a/gold/gold-threads.cc
++++ b/gold/gold-threads.cc
+@@ -284,9 +284,18 @@
+ class Once_initialize
+ {
+ public:
+- Once_initialize()
+- : once_(PTHREAD_ONCE_INIT)
+- { }
++ Once_initialize()
++#if !defined(__APPLE__)
++ : once_(PTHREAD_ONCE_INIT)
++ { }
++#else
++// In Drawin PTHREAD_ONCE_INIT is {0x30B1BCBA, {0}} and the GCC < 4.4 doesn't support
++// extended initializer list as above */
++ {
++ pthread_once_t once_2 = PTHREAD_ONCE_INIT;
++ once_ = once_2;
++ }
++#endif
+
+ // Return a pointer to the pthread_once_t variable.
+ pthread_once_t*
diff --git a/packages/binutils/2.39/0006-sysroot.patch b/packages/binutils/2.39/0006-sysroot.patch
new file mode 100644
index 00000000..29dfe2ee
--- /dev/null
+++ b/packages/binutils/2.39/0006-sysroot.patch
@@ -0,0 +1,45 @@
+From 57da8086f8bd7c3184b9e2144083553c46ce4ae4 Mon Sep 17 00:00:00 2001
+From: Sven Rebhan <odinshorse@googlemail.com>
+Date: Mon, 8 Aug 2022 20:46:29 +1200
+Subject: [PATCH] sysroot
+
+Always try to prepend the sysroot prefix to absolute filenames first.
+
+http://bugs.gentoo.org/275666
+http://sourceware.org/bugzilla/show_bug.cgi?id=10340
+
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+---
+ ld/ldfile.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -340,18 +340,25 @@
+ directory first. */
+ if (!entry->flags.maybe_archive)
+ {
+- if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename))
++ /* For absolute pathnames, try to always open the file in the
++ sysroot first. If this fails, try to open the file at the
++ given location. */
++ entry->flags.sysrooted = is_sysrooted_pathname (entry->filename);
++ if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)
++ && ld_sysroot)
+ {
+ char *name = concat (ld_sysroot, entry->filename,
+ (const char *) NULL);
+ if (ldfile_try_open_bfd (name, entry))
+ {
+ entry->filename = name;
++ entry->flags.sysrooted = true;
+ return true;
+ }
+ free (name);
+ }
+- else if (ldfile_try_open_bfd (entry->filename, entry))
++
++ if (ldfile_try_open_bfd (entry->filename, entry))
+ return true;
+
+ if (IS_ABSOLUTE_PATH (entry->filename))
diff --git a/packages/binutils/2.39/0007-poison-system-directories.patch b/packages/binutils/2.39/0007-poison-system-directories.patch
new file mode 100644
index 00000000..9db86425
--- /dev/null
+++ b/packages/binutils/2.39/0007-poison-system-directories.patch
@@ -0,0 +1,283 @@
+From 6d79a3e0fadbc0e619b039db2c73353d68036acc Mon Sep 17 00:00:00 2001
+From: Scott Garman <scott.a.garman@intel.com>
+Date: Mon, 8 Aug 2022 20:48:32 +1200
+Subject: [PATCH] poison system directories
+
+Patch adapted to binutils 2.23.2 and extended to use
+BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
+
+[Gustavo: adapt to binutils 2.25]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+Upstream-Status: Inappropriate [distribution: codesourcery]
+
+Patch originally created by Mark Hatle, forward-ported to
+binutils 2.21 by Scott Garman.
+
+purpose: warn for uses of system directories when cross linking
+
+Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
+
+2008-07-02 Joseph Myers <joseph@codesourcery.com>
+
+ ld/
+ * ld.h (args_type): Add error_poison_system_directories.
+ * ld.texinfo (--error-poison-system-directories): Document.
+ * ldfile.c (ldfile_add_library_path): Check
+ command_line.error_poison_system_directories.
+ * ldmain.c (main): Initialize
+ command_line.error_poison_system_directories.
+ * lexsup.c (enum option_values): Add
+ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
+ (ld_options): Add --error-poison-system-directories.
+ (parse_args): Handle new option.
+
+2007-06-13 Joseph Myers <joseph@codesourcery.com>
+
+ ld/
+ * config.in: Regenerate.
+ * ld.h (args_type): Add poison_system_directories.
+ * ld.texinfo (--no-poison-system-directories): Document.
+ * ldfile.c (ldfile_add_library_path): Check
+ command_line.poison_system_directories.
+ * ldmain.c (main): Initialize
+ command_line.poison_system_directories.
+ * lexsup.c (enum option_values): Add
+ OPTION_NO_POISON_SYSTEM_DIRECTORIES.
+ (ld_options): Add --no-poison-system-directories.
+ (parse_args): Handle new option.
+
+2007-04-20 Joseph Myers <joseph@codesourcery.com>
+
+ Merge from Sourcery G++ binutils 2.17:
+
+ 2007-03-20 Joseph Myers <joseph@codesourcery.com>
+ Based on patch by Mark Hatle <mark.hatle@windriver.com>.
+ ld/
+ * configure.ac (--enable-poison-system-directories): New option.
+ * configure, config.in: Regenerate.
+ * ldfile.c (ldfile_add_library_path): If
+ ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
+ /usr/lib, /usr/local/lib or /usr/X11R6/lib.
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+---
+ ld/config.in | 3 +++
+ ld/configure | 14 ++++++++++++++
+ ld/configure.ac | 10 ++++++++++
+ ld/ld.h | 8 ++++++++
+ ld/ld.texi | 12 ++++++++++++
+ ld/ldfile.c | 17 +++++++++++++++++
+ ld/ldlex.h | 2 ++
+ ld/ldmain.c | 2 ++
+ ld/lexsup.c | 21 +++++++++++++++++++++
+ 9 files changed, 89 insertions(+)
+
+--- a/ld/config.in
++++ b/ld/config.in
+@@ -55,6 +55,9 @@
+ language is requested. */
+ #undef ENABLE_NLS
+
++/* Define to warn for use of native system library directories */
++#undef ENABLE_POISON_SYSTEM_DIRECTORIES
++
+ /* Additional extension a shared object might have. */
+ #undef EXTRA_SHLIB_EXTENSION
+
+--- a/ld/configure
++++ b/ld/configure
+@@ -836,6 +836,7 @@
+ enable_targets
+ enable_64_bit_bfd
+ with_sysroot
++enable_poison_system_directories
+ enable_gold
+ enable_got
+ enable_compressed_debug_sections
+@@ -1514,6 +1515,8 @@
+ --enable-checking enable run-time checks
+ --enable-targets alternative target configurations
+ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
++ --enable-poison-system-directories
++ warn for use of native system library directories
+ --enable-gold[=ARG] build gold [ARG={default,yes,no}]
+ --enable-got=<type> GOT handling scheme (target, single, negative,
+ multigot)
+@@ -15370,7 +15373,18 @@
+ fi
+
+
++# Check whether --enable-poison-system-directories was given.
++if test "${enable_poison_system_directories+set}" = set; then :
++ enableval=$enable_poison_system_directories;
++else
++ enable_poison_system_directories=no
++fi
++
++if test "x${enable_poison_system_directories}" = "xyes"; then
+
++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
++
++fi
+
+ # Check whether --enable-got was given.
+ if test "${enable_got+set}" = set; then :
+--- a/ld/configure.ac
++++ b/ld/configure.ac
+@@ -102,6 +102,16 @@
+ AC_SUBST(TARGET_SYSTEM_ROOT)
+ AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
+
++AC_ARG_ENABLE([poison-system-directories],
++ AS_HELP_STRING([--enable-poison-system-directories],
++ [warn for use of native system library directories]),,
++ [enable_poison_system_directories=no])
++if test "x${enable_poison_system_directories}" = "xyes"; then
++ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
++ [1],
++ [Define to warn for use of native system library directories])
++fi
++
+ dnl Use --enable-gold to decide if this linker should be the default.
+ dnl "install_as_default" is set to false if gold is the default linker.
+ dnl "installed_linker" is the installed BFD linker name.
+--- a/ld/ld.h
++++ b/ld/ld.h
+@@ -157,6 +157,14 @@
+ /* If set, display the target memory usage (per memory region). */
+ bool print_memory_usage;
+
++ /* If TRUE (the default) warn for uses of system directories when
++ cross linking. */
++ bool poison_system_directories;
++
++ /* If TRUE (default FALSE) give an error for uses of system
++ directories when cross linking instead of a warning. */
++ bool error_poison_system_directories;
++
+ /* Should we force section groups to be resolved? Controlled with
+ --force-group-allocation on the command line or FORCE_GROUP_ALLOCATION
+ in the linker script. */
+--- a/ld/ld.texi
++++ b/ld/ld.texi
+@@ -2947,6 +2947,18 @@
+ occurrence of the --package-metdata option.
+ If the linker has been built with libjansson, then the JSON string
+ will be validated.
++
++@kindex --no-poison-system-directories
++@item --no-poison-system-directories
++Do not warn for @option{-L} options using system directories such as
++@file{/usr/lib} when cross linking. This option is intended for use
++in chroot environments when such directories contain the correct
++libraries for the target system rather than the host.
++
++@kindex --error-poison-system-directories
++@item --error-poison-system-directories
++Give an error instead of a warning for @option{-L} options using
++system directories when cross linking.
+ @end table
+
+ @c man end
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -117,6 +117,23 @@
+ new_dirs->name = concat (ld_sysroot, name + strlen ("$SYSROOT"), (const char *) NULL);
+ else
+ new_dirs->name = xstrdup (name);
++
++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
++ if (command_line.poison_system_directories
++ && ((!strncmp (name, "/lib", 4))
++ || (!strncmp (name, "/usr/lib", 8))
++ || (!strncmp (name, "/usr/local/lib", 14))
++ || (!strncmp (name, "/usr/X11R6/lib", 14))))
++ {
++ if (command_line.error_poison_system_directories)
++ einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
++ "cross-compilation\n"), name);
++ else
++ einfo (_("%P: warning: library search path \"%s\" is unsafe for "
++ "cross-compilation\n"), name);
++ }
++#endif
++
+ }
+
+ /* Try to open a BFD for a lang_input_statement. */
+--- a/ld/ldlex.h
++++ b/ld/ldlex.h
+@@ -168,6 +168,8 @@
+ OPTION_NO_WARN_EXECSTACK,
+ OPTION_WARN_RWX_SEGMENTS,
+ OPTION_NO_WARN_RWX_SEGMENTS,
++ OPTION_NO_POISON_SYSTEM_DIRECTORIES,
++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
+ };
+
+ /* The initial parser states. */
+--- a/ld/ldmain.c
++++ b/ld/ldmain.c
+@@ -321,6 +321,8 @@
+ command_line.warn_mismatch = true;
+ command_line.warn_search_mismatch = true;
+ command_line.check_section_addresses = -1;
++ command_line.poison_system_directories = true;
++ command_line.error_poison_system_directories = true;
+
+ /* We initialize DEMANGLING based on the environment variable
+ COLLECT_NO_DEMANGLE. The gcc collect2 program will demangle the
+--- a/ld/lexsup.c
++++ b/ld/lexsup.c
+@@ -608,6 +608,14 @@
+ " <method> is: share-unconflicted (default),\n"
+ " share-duplicated"),
+ TWO_DASHES },
++ { {"no-poison-system-directories", no_argument, NULL,
++ OPTION_NO_POISON_SYSTEM_DIRECTORIES},
++ '\0', NULL, N_("Do not warn for -L options using system directories"),
++ TWO_DASHES },
++ { {"error-poison-system-directories", no_argument, NULL,
++ OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
++ '\0', NULL, N_("Give an error for -L options using system directories"),
++ TWO_DASHES },
+ };
+
+ #define OPTION_COUNT ARRAY_SIZE (ld_options)
+@@ -620,6 +628,7 @@
+ int ingroup = 0;
+ char *default_dirlist = NULL;
+ char *shortopts;
++ char *BR_paranoid_env;
+ struct option *longopts;
+ struct option *really_longopts;
+ int last_optind;
+@@ -1679,6 +1688,14 @@
+ }
+ break;
+
++ case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
++ command_line.poison_system_directories = false;
++ break;
++
++ case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
++ command_line.error_poison_system_directories = true;
++ break;
++
+ case OPTION_PUSH_STATE:
+ input_flags.pushed = xmemdup (&input_flags,
+ sizeof (input_flags),
+@@ -1824,6 +1841,10 @@
+ command_line.soname = NULL;
+ }
+
++ BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
++ if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
++ command_line.error_poison_system_directories = true;
++
+ while (ingroup)
+ {
+ einfo (_("%P: missing --end-group; added as last command line option\n"));
diff --git a/packages/binutils/2.39/chksum b/packages/binutils/2.39/chksum
new file mode 100644
index 00000000..113a2dc9
--- /dev/null
+++ b/packages/binutils/2.39/chksum
@@ -0,0 +1,12 @@
+md5 binutils-2.39.tar.xz f7e986ae9ff06405cafb2e585ee36d27
+sha1 binutils-2.39.tar.xz f17653e7b1d1fa5242a408919845da23e8cc5141
+sha256 binutils-2.39.tar.xz 645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+sha512 binutils-2.39.tar.xz 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3
+md5 binutils-2.39.tar.bz2 ec642a2a02029501f68911b507453b89
+sha1 binutils-2.39.tar.bz2 d9028547385694d61d98fb4e2882a2b9c40ce7e9
+sha256 binutils-2.39.tar.bz2 da24a84fef220102dd24042df06fdea851c2614a5377f86effa28f33b7b16148
+sha512 binutils-2.39.tar.bz2 faa592dd48fc715901ad704ac96dbd34b1792c51e77c7a92a387964b0700703c74be07de45cc4751945c8c0674368c73dc17bbc563d1d2cd235b5ebd8c6e7efb
+md5 binutils-2.39.tar.gz ab6825df57514ec172331e988f55fc10
+sha1 binutils-2.39.tar.gz a1124fb0991b2161947dedb7698637a80e053731
+sha256 binutils-2.39.tar.gz d12ea6f239f1ffe3533ea11ad6e224ffcb89eb5d01bbea589e9158780fa11f10
+sha512 binutils-2.39.tar.gz b446f60e03c88d70e37089240b7ef563da31fbbf5f41a4de4cf576fa33ab1b184714657eac88aa05b5a051524af9fb9ec12a90d0bb33b16d181a4eb4aa388842
diff --git a/packages/gcc/10.3.0/version.desc b/packages/binutils/2.39/version.desc
index e69de29b..e69de29b 100644
--- a/packages/gcc/10.3.0/version.desc
+++ b/packages/binutils/2.39/version.desc
diff --git a/packages/binutils/package.desc b/packages/binutils/package.desc
index 9202960a..259ce6c7 100644
--- a/packages/binutils/package.desc
+++ b/packages/binutils/package.desc
@@ -2,6 +2,6 @@ repository='git git://sourceware.org/git/binutils-gdb.git'
mirrors='$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)'
relevantpattern='*.*|.'
origin='GNU'
-milestones='2.26 2.27 2.30'
+milestones='2.26 2.27 2.30 2.39'
archive_formats='.tar.xz .tar.bz2 .tar.gz'
signature_format='packed/.sig'
diff --git a/packages/cloog/0.18.0/chksum b/packages/cloog/0.18.0/chksum
new file mode 100644
index 00000000..9331f368
--- /dev/null
+++ b/packages/cloog/0.18.0/chksum
@@ -0,0 +1,4 @@
+md5sum cloog-0.18.0.tar.gz be78a47bd82523250eb3e91646db5b3d
+sha1sum cloog-0.18.0.tar.gz 85f620a26aabf6a934c44ca40a9799af0952f863
+sha256sum cloog-0.18.0.tar.gz 1c4aa8dde7886be9cbe0f9069c334843b21028f61d344a2d685f88cb1dcf2228
+sha512sum cloog-0.18.0.tar.gz 34404984c4269dfc19673712271b08f220b6b49e451e7479cefbc5d2f27ab8e780f5d51fbbc7cecb974dab655673d8348f2a1ece3a60feaeeb9413fccf16eb1d
diff --git a/packages/cloog/0.18.0/version.desc b/packages/cloog/0.18.0/version.desc
new file mode 100644
index 00000000..569904cc
--- /dev/null
+++ b/packages/cloog/0.18.0/version.desc
@@ -0,0 +1,3 @@
+# This package is a dependency to build a cross toolchain
+# for OL7u9, for which EoS date is at Jul 2024.
+obsolete='yes'
diff --git a/packages/dtc/1.6.0/chksum b/packages/dtc/1.6.0/chksum
deleted file mode 100644
index 830cab07..00000000
--- a/packages/dtc/1.6.0/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 dtc-1.6.0.tar.xz 1556ba93648bf70d7aa034252e278751
-sha1 dtc-1.6.0.tar.xz 3e6ab5121dcfe5ff9f8b0503becfcf687d5d4434
-sha256 dtc-1.6.0.tar.xz 10503b0217e1b07933e29e8d347a00015b2431bea5f59afe0bed3af30340c82d
-sha512 dtc-1.6.0.tar.xz 15433b24f1d6b7ed1f8066d050bd1bcbf988731aa38147564e3dd04b5f69af8d69e03befdc621a768526c620425a9bdd24aad4f9ff135930d6a1eeb0625f7de3
-md5 dtc-1.6.0.tar.gz b87b7aee4a01535ef1f9c53d5f6cd178
-sha1 dtc-1.6.0.tar.gz ef037f4599b7b1e883c9bb588b24d289dc9cd1f2
-sha256 dtc-1.6.0.tar.gz 9fbe07223a98f2d7088a340b5505d4dfe682d77580e788d08cfcc1b61d8be237
-sha512 dtc-1.6.0.tar.gz 8ca3f9e06a60144d3f476c251d911f2daa16afb82daa101c61050bfab226dbb330f8a75a3715fe0c2b46b2a64f3794eb3ce0816aef434ab64e1feb1ba08be574
diff --git a/packages/dtc/1.6.1/chksum b/packages/dtc/1.6.1/chksum
new file mode 100644
index 00000000..49db302c
--- /dev/null
+++ b/packages/dtc/1.6.1/chksum
@@ -0,0 +1,8 @@
+md5 dtc-1.6.1.tar.xz 709888bac3aad657e6020d0e491fc0ba
+sha1 dtc-1.6.1.tar.xz 6273fa9cdd51e7fd83d0467e21c788e3a5d3cd5d
+sha256 dtc-1.6.1.tar.xz 65cec529893659a49a89740bb362f507a3b94fc8cd791e76a8d6a2b6f3203473
+sha512 dtc-1.6.1.tar.xz 26cd351ddca411ab96b93ac3e763f817f9f8a80ca66a8707e1077f771ed8e7e04c01f321ab8ab27b2f9826d9d438483fe3156401493bfd29cef3cc71a1414568
+md5 dtc-1.6.1.tar.gz 614ca19476dde5905f91b517eb678e01
+sha1 dtc-1.6.1.tar.gz 5fbbb5ff11038cd701c3041e26a442b194637179
+sha256 dtc-1.6.1.tar.gz 38a6257f2c23cb9dfa1781ac4ad122d8358e1a22d33b2da0eb492c190644a376
+sha512 dtc-1.6.1.tar.gz 34b64f356070710fd78f34ed624a06cec02915c98ab53eddbb0843f2a4c62dc95a78aa8583d7f433db60d1233eb1a2babecd85cd8179e74f27fe46ca412cb2b3
diff --git a/packages/gcc/12.1.0/version.desc b/packages/dtc/1.6.1/version.desc
index e69de29b..e69de29b 100644
--- a/packages/gcc/12.1.0/version.desc
+++ b/packages/dtc/1.6.1/version.desc
diff --git a/packages/expat/2.4.1/version.desc b/packages/expat/2.4.1/version.desc
index e69de29b..fcfe3891 100644
--- a/packages/expat/2.4.1/version.desc
+++ b/packages/expat/2.4.1/version.desc
@@ -0,0 +1 @@
+obsolete='yes'
diff --git a/packages/expat/2.5.0/chksum b/packages/expat/2.5.0/chksum
new file mode 100644
index 00000000..e81826d7
--- /dev/null
+++ b/packages/expat/2.5.0/chksum
@@ -0,0 +1,17 @@
+md5 expat-2.5.0.tar.xz ac6677b6d1b95d209ab697ce8b688704
+sha1 expat-2.5.0.tar.xz 5178e13c1e34f4643d5118d5758babfe0e836fe2
+sha256 expat-2.5.0.tar.xz ef2420f0232c087801abf705e89ae65f6257df6b7931d37846a193ef2e8cdcbe
+sha512 expat-2.5.0.tar.xz 2da73b991b7c0c54440485c787e5edeb3567230204e31b3cac1c3a6713ec6f9f1554d3afffc0f8336168dfd5df02db4a69bcf21b4d959723d14162d13ab87516
+md5 expat-2.5.0.tar.lz 4add8675872d4b923d9b7871dc0f24d3
+sha1 expat-2.5.0.tar.lz 9f767155627006b383f54078f2fa0d7df5b9d6e6
+sha256 expat-2.5.0.tar.lz 9a51edebc8c2910d8cc2b5e6b8d98350dea559922208f3e1a6bb5de33b6c2dc6
+sha512 expat-2.5.0.tar.lz 59ec89d471cda38fab853c85ff5ffc0631d6fa2c376e7246a933f8d317f037672e8142cf1408477f5724192a05ace1baa51a533c605a78532863d5f178e37c08
+md5 expat-2.5.0.tar.bz2 5e9974d422dc4b157f300568ad28ebf6
+sha1 expat-2.5.0.tar.bz2 36e29d7192ab8c5ce44d09375318a0a81395aab0
+sha256 expat-2.5.0.tar.bz2 6f0e6e01f7b30025fa05c85fdad1e5d0ec7fd35d9f61b22f34998de11969ff67
+sha512 expat-2.5.0.tar.bz2 22fd904d75aab7506a85c03519b9cf79e44898c8e1ba6abf6cb7f95de71b8e63a7e2d5cf4395e3627d46035ea29342b3e631a8809fef8aad3f59976dc075ad17
+md5 expat-2.5.0.tar.gz 686e9d986f85966c7924dfc041cdc15e
+sha1 expat-2.5.0.tar.gz 061c1232188dff35e44aa7137aec7757d3d90d27
+sha256 expat-2.5.0.tar.gz 6b902ab103843592be5e99504f846ec109c1abb692e85347587f237a4ffa1033
+sha512 expat-2.5.0.tar.gz f1ff7da5fafb47dcd6e0f0d892826aba6de76509c8497bc00382f1109ab8e2a93d396943dbb52216457044993a39d73728048adf650d8e83e28189edc7b78402
+
diff --git a/packages/linux/4.14.277/version.desc b/packages/expat/2.5.0/version.desc
index e69de29b..e69de29b 100644
--- a/packages/linux/4.14.277/version.desc
+++ b/packages/expat/2.5.0/version.desc
diff --git a/packages/gcc-oracle/4.8.5-44.0.5/version.desc b/packages/gcc-oracle/4.8.5-44.0.5/version.desc
new file mode 100644
index 00000000..5040c3de
--- /dev/null
+++ b/packages/gcc-oracle/4.8.5-44.0.5/version.desc
@@ -0,0 +1,4 @@
+# EoS date for this package in OL7: Jul 2024.
+repository_branch='oracle/gcc/ol7-u9'
+version_number='4.8.5'
+obsolete='yes'
diff --git a/packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch b/packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch
new file mode 100644
index 00000000..992630c5
--- /dev/null
+++ b/packages/gcc-oracle/git-dbf713b5/0001-Fix-compiler-error.patch
@@ -0,0 +1,92 @@
+This patch is a backport from gcc
+
+This code 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 code 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.
+
+diff -Nur gcc/gcc/doc/gcc.texi gcc-oracle/gcc/doc/gcc.texi
+--- gcc/gcc/doc/gcc.texi 2022-05-31 22:24:28.784639836 -0500
++++ gcc-oracle/gcc/doc/gcc.texi 2022-05-31 22:25:14.695834317 -0500
+@@ -85,9 +85,9 @@
+ @item GNU Press
+ @tab Website: www.gnupress.org
+ @item a division of the
+-@tab General: @tex press@@gnu.org @end tex
++@tab General: @email{press@@gnu.org}
+ @item Free Software Foundation
+-@tab Orders: @tex sales@@gnu.org @end tex
++@tab Orders: @email{sales@@gnu.org}
+ @item 51 Franklin Street, Fifth Floor
+ @tab Tel 617-542-5942
+ @item Boston, MA 02110-1301 USA
+diff -Nur gcc/gcc/reload.h gcc-oracle/gcc/reload.h
+--- gcc/gcc/reload.h 2022-05-31 22:24:27.924654669 -0500
++++ gcc-oracle/gcc/reload.h 2022-05-31 22:25:14.695834317 -0500
+@@ -166,7 +166,7 @@
+ value indicates the level of indirect addressing supported, e.g., two
+ means that (MEM (MEM (REG n))) is also valid if (REG n) does not get
+ a hard register. */
+- bool x_spill_indirect_levels;
++ unsigned char x_spill_indirect_levels;
+
+ /* True if caller-save has been reinitialized. */
+ bool x_caller_save_initialized_p;
+diff -Nur gcc/libgcc/config/i386/linux-unwind.h gcc-oracle/libgcc/config/i386/linux-unwind.h
+--- gcc/libgcc/config/i386/linux-unwind.h 2022-05-31 22:24:27.100668870 -0500
++++ gcc-oracle/libgcc/config/i386/linux-unwind.h 2022-05-31 22:25:14.695834317 -0500
+@@ -58,7 +58,7 @@
+ if (*(unsigned char *)(pc+0) == 0x48
+ && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL)
+ {
+- struct ucontext *uc_ = context->cfa;
++ struct ucontext_t *uc_ = context->cfa;
+ /* The void * cast is necessary to avoid an aliasing warning.
+ The aliasing warning is correct, but should not be a problem
+ because it does not alias anything. */
+@@ -138,7 +138,7 @@
+ siginfo_t *pinfo;
+ void *puc;
+ siginfo_t info;
+- struct ucontext uc;
++ struct ucontext_t uc;
+ } *rt_ = context->cfa;
+ /* The void * cast is necessary to avoid an aliasing warning.
+ The aliasing warning is correct, but should not be a problem
+diff -Nur gcc/libgcc/unwind-dw2.c gcc-oracle/libgcc/unwind-dw2.c
+--- gcc/libgcc/unwind-dw2.c 2022-05-31 22:24:27.088669076 -0500
++++ gcc-oracle/libgcc/unwind-dw2.c 2022-05-31 22:25:14.695834317 -0500
+@@ -931,6 +931,17 @@
+ return stack[stack_elt];
+ }
+
++#define DWARF_REGNUM_AARCH64_RA_STATE 34
++
++#define MD_POST_EXTRACT_ROOT_ADDR(addr) \
++ ({ void *__addr; asm ("mov x30, %0; hint 7; mov %0, x30" \
++ : "=r" (__addr) : "0" (addr) : "x30", "cc"); __addr; })
++#define MD_POST_EXTRACT_FRAME_ADDR(context, fs, addr) \
++ aarch64_post_extract_frame_addr (context, fs, addr)
++#define MD_POST_FROB_EH_HANDLER_ADDR(current, target, addr) \
++ aarch64_post_frob_eh_handler_addr (current, target, addr)
++#define MD_FROB_UPDATE_CONTEXT(context, fs) \
++ aarch64_frob_update_context (context, fs)
+
+ /* Decode DWARF 2 call frame information. Takes pointers the
+ instruction sequence to decode, current register information and
+diff -Nur gcc/libsanitizer/asan/asan_linux.cc gcc-oracle/libsanitizer/asan/asan_linux.cc
+--- gcc/libsanitizer/asan/asan_linux.cc 2022-05-31 22:24:28.852638665 -0500
++++ gcc-oracle/libsanitizer/asan/asan_linux.cc 2022-05-31 22:25:14.695834317 -0500
+@@ -28,6 +28,7 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <unwind.h>
++#include <signal.h>
+
+ #if !ASAN_ANDROID
+ // FIXME: where to get ucontext on Android?
diff --git a/packages/gcc/10.3.0/0023-powerpc-Fix-asm-machine-directive-for-some-CPUs.patch b/packages/gcc/10.3.0/0023-powerpc-Fix-asm-machine-directive-for-some-CPUs.patch
deleted file mode 100644
index 3ad38f1e..00000000
--- a/packages/gcc/10.3.0/0023-powerpc-Fix-asm-machine-directive-for-some-CPUs.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From d568abb25fc799123168aac840372b28bb81f85d Mon Sep 17 00:00:00 2001
-From: Sebastian Huber <sebastian.huber@embedded-brains.de>
-Date: Tue, 18 Jan 2022 12:44:53 +0100
-Subject: [PATCH] powerpc: Fix asm machine directive for some CPUs
-
-For some CPUs, the assembler machine directive cannot be determined by ISA
-flags.
-
-gcc/
-
- PR target/104090
- * config/rs6000/rs6000.c (rs6000_machine_from_flags): Use also
- rs6000_cpu.
----
- gcc/config/rs6000/rs6000.c | 28 ++++++++++++++++++++++++++++
- 1 file changed, 28 insertions(+)
-
-diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
-index 4b473e00be39..5404fb187556 100644
---- a/gcc/config/rs6000/rs6000.c
-+++ b/gcc/config/rs6000/rs6000.c
-@@ -5547,6 +5547,34 @@ const char *rs6000_machine;
- const char *
- rs6000_machine_from_flags (void)
- {
-+ /* For some CPUs, the machine cannot be determined by ISA flags. We have to
-+ check them first. */
-+ switch (rs6000_cpu)
-+ {
-+ case PROCESSOR_PPC8540:
-+ case PROCESSOR_PPC8548:
-+ return "e500";
-+
-+ case PROCESSOR_PPCE300C2:
-+ case PROCESSOR_PPCE300C3:
-+ return "e300";
-+
-+ case PROCESSOR_PPCE500MC:
-+ return "e500mc";
-+
-+ case PROCESSOR_PPCE500MC64:
-+ return "e500mc64";
-+
-+ case PROCESSOR_PPCE5500:
-+ return "e5500";
-+
-+ case PROCESSOR_PPCE6500:
-+ return "e6500";
-+
-+ default:
-+ break;
-+ }
-+
- HOST_WIDE_INT flags = rs6000_isa_flags;
-
- /* Disable the flags that should never influence the .machine selection. */
---
-2.35.1
-
diff --git a/packages/gcc/10.3.0/chksum b/packages/gcc/10.3.0/chksum
deleted file mode 100644
index 892d0580..00000000
--- a/packages/gcc/10.3.0/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 gcc-10.3.0.tar.xz 443c15b92614a3ce8f22e3b24ca2226a
-sha1 gcc-10.3.0.tar.xz fb51ed1660c065898c75951fb38e1ebad7d49feb
-sha256 gcc-10.3.0.tar.xz 64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344
-sha512 gcc-10.3.0.tar.xz 2b2dd7453d48a398c29eaebd1422b70341001b8c90a62aee51e83344e7fdd8a8e45f82a4a9165bd7edc76dada912c932f4b6632c5636760fec4c5d7e402b3f86
-md5 gcc-10.3.0.tar.gz 87910940d70e845f2bf1a57997b6220c
-sha1 gcc-10.3.0.tar.gz f53af25982d6a270d58e9aff0b91ee2b57cd6709
-sha256 gcc-10.3.0.tar.gz 8fcf994811ad4e5c7ac908e8cf62af2c1982319e5551f62ae72016064dacdf16
-sha512 gcc-10.3.0.tar.gz 759672f1cf740fa39b34904d3e6fb5b506a978711d5c75c2c108c1f11ff8d25adba35daad287a1c9d6721383d85eaa9cd77f569eae442015fdccb621643fbe49
diff --git a/packages/gcc/10.3.0/0000-libtool-leave-framework-alone.patch b/packages/gcc/10.4.0/0000-libtool-leave-framework-alone.patch
index 1a86e415..1a86e415 100644
--- a/packages/gcc/10.3.0/0000-libtool-leave-framework-alone.patch
+++ b/packages/gcc/10.4.0/0000-libtool-leave-framework-alone.patch
diff --git a/packages/gcc/10.3.0/0001-uclibc-conf.patch b/packages/gcc/10.4.0/0001-uclibc-conf.patch
index aef750af..aef750af 100644
--- a/packages/gcc/10.3.0/0001-uclibc-conf.patch
+++ b/packages/gcc/10.4.0/0001-uclibc-conf.patch
diff --git a/packages/gcc/10.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch b/packages/gcc/10.4.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
index ca9b8baf..b797cb86 100644
--- a/packages/gcc/10.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
+++ b/packages/gcc/10.4.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
@@ -53,7 +53,7 @@
if test x"$have_pic_shared" != x"yes" -o x"$ac_cv_search_dlopen" = x"no"; then
--- a/gcc/configure
+++ b/gcc/configure
-@@ -30385,6 +30385,9 @@
+@@ -30610,6 +30610,9 @@
pluginlibs=
plugin_check=yes
@@ -63,7 +63,7 @@
case "${host}" in
*-*-mingw*)
# Since plugin support under MinGW is not as straightforward as on
-@@ -30407,6 +30410,11 @@
+@@ -30632,6 +30635,11 @@
export_sym_check=
fi
;;
@@ -75,7 +75,7 @@
*)
if test x$build = x$host; then
export_sym_check="objdump${exeext} -T"
-@@ -30519,23 +30527,23 @@
+@@ -30744,23 +30752,23 @@
case "${host}" in
*-*-darwin*)
CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
diff --git a/packages/gcc/10.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/10.4.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
index 5f9a07a2..5f9a07a2 100644
--- a/packages/gcc/10.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
+++ b/packages/gcc/10.4.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
diff --git a/packages/gcc/10.3.0/0004-arm-softfloat-libgcc.patch b/packages/gcc/10.4.0/0004-arm-softfloat-libgcc.patch
index d9800365..d9800365 100644
--- a/packages/gcc/10.3.0/0004-arm-softfloat-libgcc.patch
+++ b/packages/gcc/10.4.0/0004-arm-softfloat-libgcc.patch
diff --git a/packages/gcc/10.3.0/0005-fix-m68k-uclinux.patch b/packages/gcc/10.4.0/0005-fix-m68k-uclinux.patch
index 452a4bb2..fed816a1 100644
--- a/packages/gcc/10.3.0/0005-fix-m68k-uclinux.patch
+++ b/packages/gcc/10.4.0/0005-fix-m68k-uclinux.patch
@@ -10,7 +10,7 @@ Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
--- a/libgcc/config.host
+++ b/libgcc/config.host
-@@ -949,7 +949,7 @@
+@@ -959,7 +959,7 @@
m68k*-*-openbsd*)
;;
m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc
diff --git a/packages/gcc/10.3.0/0006-libgfortran-missing-include.patch b/packages/gcc/10.4.0/0006-libgfortran-missing-include.patch
index d4917eed..d4917eed 100644
--- a/packages/gcc/10.3.0/0006-libgfortran-missing-include.patch
+++ b/packages/gcc/10.4.0/0006-libgfortran-missing-include.patch
diff --git a/packages/gcc/10.3.0/0007-nios2-bad-multilib-default.patch b/packages/gcc/10.4.0/0007-nios2-bad-multilib-default.patch
index 4acc4918..4acc4918 100644
--- a/packages/gcc/10.3.0/0007-nios2-bad-multilib-default.patch
+++ b/packages/gcc/10.4.0/0007-nios2-bad-multilib-default.patch
diff --git a/packages/gcc/10.3.0/0008-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/10.4.0/0008-libgcc-disable-split-stack-nothreads.patch
index df91a9ff..df91a9ff 100644
--- a/packages/gcc/10.3.0/0008-libgcc-disable-split-stack-nothreads.patch
+++ b/packages/gcc/10.4.0/0008-libgcc-disable-split-stack-nothreads.patch
diff --git a/packages/gcc/10.3.0/0009-bionic-ndk.patch b/packages/gcc/10.4.0/0009-bionic-ndk.patch
index 474dd8c0..474dd8c0 100644
--- a/packages/gcc/10.3.0/0009-bionic-ndk.patch
+++ b/packages/gcc/10.4.0/0009-bionic-ndk.patch
diff --git a/packages/gcc/10.3.0/0010-crystax.patch b/packages/gcc/10.4.0/0010-crystax.patch
index 5b15ffb8..4b2a3614 100644
--- a/packages/gcc/10.3.0/0010-crystax.patch
+++ b/packages/gcc/10.4.0/0010-crystax.patch
@@ -174,7 +174,7 @@ Date: Wed Jul 29 11:28:29 2015 +0300
: min >= -256 && max < 256 \
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
-@@ -9346,7 +9346,7 @@
+@@ -9356,7 +9356,7 @@
(match_operand:SI 2 "const_int_operand") ; total range
(match_operand:SI 3 "" "") ; table label
(match_operand:SI 4 "" "")] ; Out of range label
@@ -185,7 +185,7 @@ Date: Wed Jul 29 11:28:29 2015 +0300
enum insn_code code;
--- a/gcc/config/arm/arm.opt
+++ b/gcc/config/arm/arm.opt
-@@ -202,6 +202,10 @@
+@@ -208,6 +208,10 @@
Target Report Mask(INTERWORK)
Support calls between Thumb and ARM instruction sets.
diff --git a/packages/gcc/10.4.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch b/packages/gcc/10.4.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch
new file mode 100644
index 00000000..2f8ad877
--- /dev/null
+++ b/packages/gcc/10.4.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch
@@ -0,0 +1,123 @@
+From a6eedb593ca068d0ad8655dbb97fcd6371cba682 Mon Sep 17 00:00:00 2001
+From: Xi Ruoyao <xry111@mengyan1223.wang>
+Date: Mon, 28 Jun 2021 13:54:58 +0800
+Subject: [PATCH] fixinc: don't "fix" machine names in __has_include(...)
+ [PR91085]
+
+fixincludes/
+
+ PR other/91085
+ * fixfixes.c (check_has_inc): New static function.
+ (machine_name_fix): Don't replace header names in
+ __has_include(...).
+ * inclhack.def (machine_name): Adjust test.
+ * tests/base/testing.h: Update.
+
+Upstream: 6bf383c37e6131a8e247e8a0997d55d65c830b6d
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+---
+ fixincludes/fixfixes.c | 45 ++++++++++++++++++++++++++++++--
+ fixincludes/inclhack.def | 3 ++-
+ fixincludes/tests/base/testing.h | 2 +-
+ 3 files changed, 46 insertions(+), 4 deletions(-)
+
+diff --git a/fixincludes/fixfixes.c b/fixincludes/fixfixes.c
+index 034e15d9985..3ff87812036 100644
+--- a/fixincludes/fixfixes.c
++++ b/fixincludes/fixfixes.c
+@@ -477,6 +477,39 @@ FIX_PROC_HEAD( char_macro_def_fix )
+ fputs (text, stdout);
+ }
+
++/* Check if the pattern at pos is actually in a "__has_include(...)"
++ directive. Return the pointer to the ')' of this
++ "__has_include(...)" if it is, NULL otherwise. */
++static const char *
++check_has_inc (const char *begin, const char *pos, const char *end)
++{
++ static const char has_inc[] = "__has_include";
++ const size_t has_inc_len = sizeof (has_inc) - 1;
++ const char *p;
++
++ for (p = memmem (begin, pos - begin, has_inc, has_inc_len);
++ p != NULL;
++ p = memmem (p, pos - p, has_inc, has_inc_len))
++ {
++ p += has_inc_len;
++ while (p < end && ISSPACE (*p))
++ p++;
++
++ /* "__has_include" may appear as "defined(__has_include)",
++ search for the next appearance then. */
++ if (*p != '(')
++ continue;
++
++ /* To avoid too much complexity, just hope there is never a
++ ')' in a header name. */
++ p = memchr (p, ')', end - p);
++ if (p == NULL || p > pos)
++ return p;
++ }
++
++ return NULL;
++}
++
+ /* Fix for machine name #ifdefs that are not in the namespace reserved
+ by the C standard. They won't be defined if compiling with -ansi,
+ and the headers will break. We go to some trouble to only change
+@@ -524,7 +557,7 @@ FIX_PROC_HEAD( machine_name_fix )
+ /* If the 'name_pat' matches in between base and limit, we have
+ a bogon. It is not worth the hassle of excluding comments
+ because comments on #if/#ifdef lines are rare, and strings on
+- such lines are illegal.
++ such lines are only legal in a "__has_include" directive.
+
+ REG_NOTBOL means 'base' is not at the beginning of a line, which
+ shouldn't matter since the name_re has no ^ anchor, but let's
+@@ -544,8 +577,16 @@ FIX_PROC_HEAD( machine_name_fix )
+ break;
+
+ p = base + match[0].rm_so;
+- base += match[0].rm_eo;
+
++ /* Check if the match is in __has_include(...) (PR 91085). */
++ q = check_has_inc (base, p, limit);
++ if (q)
++ {
++ base = q + 1;
++ goto again;
++ }
++
++ base += match[0].rm_eo;
+ /* One more test: if on the same line we have the same string
+ with the appropriate underscores, then leave it alone.
+ We want exactly two leading and trailing underscores. */
+diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
+index f58e7771e1c..71bd717c233 100644
+--- a/fixincludes/inclhack.def
++++ b/fixincludes/inclhack.def
+@@ -3114,7 +3114,8 @@ fix = {
+ c_fix = machine_name;
+
+ test_text = "/* MACH_DIFF: */\n"
+- "#if defined( i386 ) || defined( sparc ) || defined( vax )"
++ "#if defined( i386 ) || defined( sparc ) || defined( vax ) || "
++ "defined( linux ) || __has_include ( <linux.h> )"
+ "\n/* no uniform test, so be careful :-) */";
+ };
+
+diff --git a/fixincludes/tests/base/testing.h b/fixincludes/tests/base/testing.h
+index cf95321fb86..8b3accaf04e 100644
+--- a/fixincludes/tests/base/testing.h
++++ b/fixincludes/tests/base/testing.h
+@@ -64,7 +64,7 @@ BSD43__IOWR('T', 1) /* Some are multi-line */
+
+ #if defined( MACHINE_NAME_CHECK )
+ /* MACH_DIFF: */
+-#if defined( i386 ) || defined( sparc ) || defined( vax )
++#if defined( i386 ) || defined( sparc ) || defined( vax ) || defined( linux ) || __has_include ( <linux.h> )
+ /* no uniform test, so be careful :-) */
+ #endif /* MACHINE_NAME_CHECK */
+
+--
+2.37.3
diff --git a/packages/gcc/10.3.0/0011-crystax.patch b/packages/gcc/10.4.0/0011-crystax.patch
index f1f9eb12..f1f9eb12 100644
--- a/packages/gcc/10.3.0/0011-crystax.patch
+++ b/packages/gcc/10.4.0/0011-crystax.patch
diff --git a/packages/gcc/10.3.0/0012-crystax.patch b/packages/gcc/10.4.0/0012-crystax.patch
index a61ec095..4af4f5ba 100644
--- a/packages/gcc/10.3.0/0012-crystax.patch
+++ b/packages/gcc/10.4.0/0012-crystax.patch
@@ -25,7 +25,7 @@ Date: Mon Apr 14 15:59:47 2014 -0700
--- a/gcc/config.in
+++ b/gcc/config.in
-@@ -2266,6 +2266,12 @@
+@@ -2285,6 +2285,12 @@
#endif
@@ -111,7 +111,7 @@ Date: Mon Apr 14 15:59:47 2014 -0700
--- a/gcc/configure
+++ b/gcc/configure
-@@ -1000,6 +1000,7 @@
+@@ -999,6 +999,7 @@
enable_fix_cortex_a53_843419
with_glibc_version
enable_gnu_unique_object
@@ -119,7 +119,7 @@ Date: Mon Apr 14 15:59:47 2014 -0700
enable_linker_build_id
enable_libssp
enable_default_ssp
-@@ -1754,6 +1755,9 @@
+@@ -1753,6 +1754,9 @@
--enable-gnu-unique-object
enable the use of the @gnu_unique_object ELF
extension on glibc systems
@@ -129,7 +129,7 @@ Date: Mon Apr 14 15:59:47 2014 -0700
--enable-linker-build-id
compiler will always pass --build-id to linker
--enable-libssp enable linking against libssp
-@@ -28843,6 +28847,38 @@
+@@ -28974,6 +28978,38 @@
$as_echo "#define HAVE_LD_EH_FRAME_HDR 1" >>confdefs.h
@@ -170,7 +170,7 @@ Date: Mon Apr 14 15:59:47 2014 -0700
$as_echo "$gcc_cv_ld_eh_frame_hdr" >&6; }
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -5376,6 +5376,35 @@
+@@ -5427,6 +5427,35 @@
if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
[Define if your linker supports .eh_frame_hdr.])
diff --git a/packages/gcc/10.3.0/0013-crystax.patch b/packages/gcc/10.4.0/0013-crystax.patch
index bf1bc1ce..a9ef42a7 100644
--- a/packages/gcc/10.3.0/0013-crystax.patch
+++ b/packages/gcc/10.4.0/0013-crystax.patch
@@ -12,7 +12,7 @@ Date: Thu Aug 20 19:11:07 2015 +0300
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
-@@ -10340,6 +10340,7 @@
+@@ -10353,6 +10353,7 @@
else if (!SYMBOL_REF_FAR_ADDR_P (op0)
&& (SYMBOL_REF_LOCAL_P (op0)
|| (HAVE_LD_PIE_COPYRELOC
diff --git a/packages/gcc/10.3.0/0014-crystax.patch b/packages/gcc/10.4.0/0014-crystax.patch
index 8f2eb438..8f2eb438 100644
--- a/packages/gcc/10.3.0/0014-crystax.patch
+++ b/packages/gcc/10.4.0/0014-crystax.patch
diff --git a/packages/gcc/10.3.0/0015-crystax.patch b/packages/gcc/10.4.0/0015-crystax.patch
index 4f1c28ee..6c558916 100644
--- a/packages/gcc/10.3.0/0015-crystax.patch
+++ b/packages/gcc/10.4.0/0015-crystax.patch
@@ -15,7 +15,7 @@ Date: Mon Apr 14 21:05:51 2014 -0700
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
-@@ -24131,9 +24131,13 @@
+@@ -24179,9 +24179,13 @@
memsize = MEM_SIZE (x);
/* Only certain alignment specifiers are supported by the hardware. */
diff --git a/packages/gcc/10.3.0/0016-crystax.patch b/packages/gcc/10.4.0/0016-crystax.patch
index 8c21a1cc..8c21a1cc 100644
--- a/packages/gcc/10.3.0/0016-crystax.patch
+++ b/packages/gcc/10.4.0/0016-crystax.patch
diff --git a/packages/gcc/10.3.0/0017-crystax.patch b/packages/gcc/10.4.0/0017-crystax.patch
index 28284ff4..28284ff4 100644
--- a/packages/gcc/10.3.0/0017-crystax.patch
+++ b/packages/gcc/10.4.0/0017-crystax.patch
diff --git a/packages/gcc/10.3.0/0018-isl-0.20.patch b/packages/gcc/10.4.0/0018-isl-0.20.patch
index 3e14966d..3e14966d 100644
--- a/packages/gcc/10.3.0/0018-isl-0.20.patch
+++ b/packages/gcc/10.4.0/0018-isl-0.20.patch
diff --git a/packages/gcc/10.3.0/0019-AArch64-Fix-build-issue-with-aarch64-builtins.c-on-M.patch b/packages/gcc/10.4.0/0019-AArch64-Fix-build-issue-with-aarch64-builtins.c-on-M.patch
index 00011692..00011692 100644
--- a/packages/gcc/10.3.0/0019-AArch64-Fix-build-issue-with-aarch64-builtins.c-on-M.patch
+++ b/packages/gcc/10.4.0/0019-AArch64-Fix-build-issue-with-aarch64-builtins.c-on-M.patch
diff --git a/packages/gcc/10.3.0/0020-libstdcxx-pure-stdio.patch b/packages/gcc/10.4.0/0020-libstdcxx-pure-stdio.patch
index 7e3e6e65..7e3e6e65 100644
--- a/packages/gcc/10.3.0/0020-libstdcxx-pure-stdio.patch
+++ b/packages/gcc/10.4.0/0020-libstdcxx-pure-stdio.patch
diff --git a/packages/gcc/10.3.0/0021-Darwin-Arm64-Initial-support-for-the-self-host-drive.patch b/packages/gcc/10.4.0/0021-Darwin-Arm64-Initial-support-for-the-self-host-drive.patch
index dc63fe5d..dc63fe5d 100644
--- a/packages/gcc/10.3.0/0021-Darwin-Arm64-Initial-support-for-the-self-host-drive.patch
+++ b/packages/gcc/10.4.0/0021-Darwin-Arm64-Initial-support-for-the-self-host-drive.patch
diff --git a/packages/gcc/10.3.0/0022-Remove-use-of-include_next-from-c-headers.patch b/packages/gcc/10.4.0/0022-Remove-use-of-include_next-from-c-headers.patch
index b32fe559..b32fe559 100644
--- a/packages/gcc/10.3.0/0022-Remove-use-of-include_next-from-c-headers.patch
+++ b/packages/gcc/10.4.0/0022-Remove-use-of-include_next-from-c-headers.patch
diff --git a/packages/gcc/10.4.0/chksum b/packages/gcc/10.4.0/chksum
new file mode 100644
index 00000000..1f582bce
--- /dev/null
+++ b/packages/gcc/10.4.0/chksum
@@ -0,0 +1,8 @@
+md5 gcc-10.4.0.tar.xz d307b8748a74939359a5843f859a4dec
+sha1 gcc-10.4.0.tar.xz 352ec04a356ce6ab36975f7a4a5a38464ee98004
+sha256 gcc-10.4.0.tar.xz c9297d5bcd7cb43f3dfc2fed5389e948c9312fd962ef6a4ce455cff963ebe4f1
+sha512 gcc-10.4.0.tar.xz 440c08ca746da450d9a1b35e8fd2305cb27e7e6987cd9d0f7d375f3b1fc9e4b0bd7acb3cd7bf795e72fcbead59cdef5b6c152862f5d35cd9fbfe6902101ce648
+md5 gcc-10.4.0.tar.gz 854262f3582222f5dc8f093ca556e910
+sha1 gcc-10.4.0.tar.gz 0dadb589fd3f5ade1c9ad7cf05ae5032715e74e6
+sha256 gcc-10.4.0.tar.gz ab1974017834430de27fd803ade4389602a7d6ca1362496c57bef384b2a4cb07
+sha512 gcc-10.4.0.tar.gz 462c1d022751277e0933ce1f71d7550cd65f6e36e3e2c7e0b19d5ef074f826f5a53746af6aba8e359c8e906128c4973b18be0b4ddf722b276dd87a21ad5761de
diff --git a/packages/linux/4.19.241/version.desc b/packages/gcc/10.4.0/version.desc
index e69de29b..e69de29b 100644
--- a/packages/linux/4.19.241/version.desc
+++ b/packages/gcc/10.4.0/version.desc
diff --git a/packages/gcc/11.3.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch b/packages/gcc/11.3.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch
new file mode 100644
index 00000000..5e657bd2
--- /dev/null
+++ b/packages/gcc/11.3.0/0010-fixinc-don-t-fix-machine-names-in-__has_include-.PR.patch
@@ -0,0 +1,123 @@
+From de3f4ee9a5bd2adcb5ff2e1690db2567fda1473c Mon Sep 17 00:00:00 2001
+From: Xi Ruoyao <xry111@mengyan1223.wang>
+Date: Mon, 28 Jun 2021 13:54:58 +0800
+Subject: [PATCH] fixinc: don't "fix" machine names in __has_include(...)
+ [PR91085]
+
+fixincludes/
+
+ PR other/91085
+ * fixfixes.c (check_has_inc): New static function.
+ (machine_name_fix): Don't replace header names in
+ __has_include(...).
+ * inclhack.def (machine_name): Adjust test.
+ * tests/base/testing.h: Update.
+
+Upstream: 6bf383c37e6131a8e247e8a0997d55d65c830b6d
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+---
+ fixincludes/fixfixes.c | 45 ++++++++++++++++++++++++++++++--
+ fixincludes/inclhack.def | 3 ++-
+ fixincludes/tests/base/testing.h | 2 +-
+ 3 files changed, 46 insertions(+), 4 deletions(-)
+
+diff --git a/fixincludes/fixfixes.c b/fixincludes/fixfixes.c
+index 5b23a8b640d..404b420f302 100644
+--- a/fixincludes/fixfixes.c
++++ b/fixincludes/fixfixes.c
+@@ -477,6 +477,39 @@ FIX_PROC_HEAD( char_macro_def_fix )
+ fputs (text, stdout);
+ }
+
++/* Check if the pattern at pos is actually in a "__has_include(...)"
++ directive. Return the pointer to the ')' of this
++ "__has_include(...)" if it is, NULL otherwise. */
++static const char *
++check_has_inc (const char *begin, const char *pos, const char *end)
++{
++ static const char has_inc[] = "__has_include";
++ const size_t has_inc_len = sizeof (has_inc) - 1;
++ const char *p;
++
++ for (p = memmem (begin, pos - begin, has_inc, has_inc_len);
++ p != NULL;
++ p = memmem (p, pos - p, has_inc, has_inc_len))
++ {
++ p += has_inc_len;
++ while (p < end && ISSPACE (*p))
++ p++;
++
++ /* "__has_include" may appear as "defined(__has_include)",
++ search for the next appearance then. */
++ if (*p != '(')
++ continue;
++
++ /* To avoid too much complexity, just hope there is never a
++ ')' in a header name. */
++ p = memchr (p, ')', end - p);
++ if (p == NULL || p > pos)
++ return p;
++ }
++
++ return NULL;
++}
++
+ /* Fix for machine name #ifdefs that are not in the namespace reserved
+ by the C standard. They won't be defined if compiling with -ansi,
+ and the headers will break. We go to some trouble to only change
+@@ -524,7 +557,7 @@ FIX_PROC_HEAD( machine_name_fix )
+ /* If the 'name_pat' matches in between base and limit, we have
+ a bogon. It is not worth the hassle of excluding comments
+ because comments on #if/#ifdef lines are rare, and strings on
+- such lines are illegal.
++ such lines are only legal in a "__has_include" directive.
+
+ REG_NOTBOL means 'base' is not at the beginning of a line, which
+ shouldn't matter since the name_re has no ^ anchor, but let's
+@@ -544,8 +577,16 @@ FIX_PROC_HEAD( machine_name_fix )
+ break;
+
+ p = base + match[0].rm_so;
+- base += match[0].rm_eo;
+
++ /* Check if the match is in __has_include(...) (PR 91085). */
++ q = check_has_inc (base, p, limit);
++ if (q)
++ {
++ base = q + 1;
++ goto again;
++ }
++
++ base += match[0].rm_eo;
+ /* One more test: if on the same line we have the same string
+ with the appropriate underscores, then leave it alone.
+ We want exactly two leading and trailing underscores. */
+diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
+index 066bef99162..b7ad6982e96 100644
+--- a/fixincludes/inclhack.def
++++ b/fixincludes/inclhack.def
+@@ -3154,7 +3154,8 @@ fix = {
+ c_fix = machine_name;
+
+ test_text = "/* MACH_DIFF: */\n"
+- "#if defined( i386 ) || defined( sparc ) || defined( vax )"
++ "#if defined( i386 ) || defined( sparc ) || defined( vax ) || "
++ "defined( linux ) || __has_include ( <linux.h> )"
+ "\n/* no uniform test, so be careful :-) */";
+ };
+
+diff --git a/fixincludes/tests/base/testing.h b/fixincludes/tests/base/testing.h
+index cf95321fb86..8b3accaf04e 100644
+--- a/fixincludes/tests/base/testing.h
++++ b/fixincludes/tests/base/testing.h
+@@ -64,7 +64,7 @@ BSD43__IOWR('T', 1) /* Some are multi-line */
+
+ #if defined( MACHINE_NAME_CHECK )
+ /* MACH_DIFF: */
+-#if defined( i386 ) || defined( sparc ) || defined( vax )
++#if defined( i386 ) || defined( sparc ) || defined( vax ) || defined( linux ) || __has_include ( <linux.h> )
+ /* no uniform test, so be careful :-) */
+ #endif /* MACHINE_NAME_CHECK */
+
+--
+2.37.3
diff --git a/packages/gcc/11.3.0/0010-libsanitizer-mips64-Set-struct_kernel_stat_sz-to-mat.patch b/packages/gcc/11.3.0/0010-libsanitizer-mips64-Set-struct_kernel_stat_sz-to-mat.patch
deleted file mode 100644
index 8d05ca65..00000000
--- a/packages/gcc/11.3.0/0010-libsanitizer-mips64-Set-struct_kernel_stat_sz-to-mat.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ac6e15a2776e8fffdbd108213e8690c9f30a7380 Mon Sep 17 00:00:00 2001
-From: Chris Packham <chris.packham@alliedtelesis.co.nz>
-Date: Mon, 16 May 2022 20:55:36 +1200
-Subject: [PATCH] libsanitizer: mips64: Set struct_kernel_stat_sz to match the
- kernel
-
-The kernel's struct stat is 104 bytes when compiling for
-_MIPS_SIM_ABI64. Set struct_kernel_stat_sz to match.
-
-Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
-Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105614
----
- libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-index 83861105a509..326419a5d613 100644
---- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-+++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
-@@ -83,7 +83,7 @@ const unsigned struct_kernel_stat64_sz = 104;
- #elif defined(__mips__)
- const unsigned struct_kernel_stat_sz = SANITIZER_ANDROID
- ? FIRST_32_SECOND_64(104, 128)
-- : FIRST_32_SECOND_64(144, 216);
-+ : FIRST_32_SECOND_64(144, 104);
- const unsigned struct_kernel_stat64_sz = 104;
- #elif defined(__s390__) && !defined(__s390x__)
- const unsigned struct_kernel_stat_sz = 64;
---
-2.36.1
-
diff --git a/packages/gcc/12.1.0/chksum b/packages/gcc/12.1.0/chksum
deleted file mode 100644
index 9ceca4ae..00000000
--- a/packages/gcc/12.1.0/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 gcc-12.1.0.tar.xz ed45b55ee859ada4b25a1e76e0c4d966
-sha1 gcc-12.1.0.tar.xz 81614dacd8625a3896a57df375b695dba0c75f36
-sha256 gcc-12.1.0.tar.xz 62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b
-sha512 gcc-12.1.0.tar.xz 2121d295292814a6761edf1fba08c5f633ebe16f52b80e7b73a91050e71e1d2ed98bf17eebad263e191879561c02b48906c53faa4c4670c486a26fc75df23900
-md5 gcc-12.1.0.tar.gz 7854cdccc3a7988aa37fb0d0038b8096
-sha1 gcc-12.1.0.tar.gz 7e79c695a0380ac838fa7c876a121cd28a73a9f5
-sha256 gcc-12.1.0.tar.gz e88a004a14697bbbaba311f38a938c716d9a652fd151aaaa4cf1b5b99b90e2de
-sha512 gcc-12.1.0.tar.gz 32da0e69478b6848e187c3a37579b76d0176b34cdb94726bf3ce7fdda7764965adbb5d2013de5a9b254adad9eb1cfaff90f4ba8da54cfe56e46b9cbfe8882a3b
diff --git a/packages/gcc/12.1.0/0000-libtool-leave-framework-alone.patch b/packages/gcc/12.2.0/0000-libtool-leave-framework-alone.patch
index 1a86e415..1a86e415 100644
--- a/packages/gcc/12.1.0/0000-libtool-leave-framework-alone.patch
+++ b/packages/gcc/12.2.0/0000-libtool-leave-framework-alone.patch
diff --git a/packages/gcc/12.1.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/12.2.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch
index 5f9a07a2..5f9a07a2 100644
--- a/packages/gcc/12.1.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch
+++ b/packages/gcc/12.2.0/0001-gcc-plugin-POSIX-include-sys-select-h.patch
diff --git a/packages/gcc/12.1.0/0002-arm-softfloat-libgcc.patch b/packages/gcc/12.2.0/0002-arm-softfloat-libgcc.patch
index d9800365..d9800365 100644
--- a/packages/gcc/12.1.0/0002-arm-softfloat-libgcc.patch
+++ b/packages/gcc/12.2.0/0002-arm-softfloat-libgcc.patch
diff --git a/packages/gcc/12.1.0/0003-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/12.2.0/0003-libgcc-disable-split-stack-nothreads.patch
index df91a9ff..df91a9ff 100644
--- a/packages/gcc/12.1.0/0003-libgcc-disable-split-stack-nothreads.patch
+++ b/packages/gcc/12.2.0/0003-libgcc-disable-split-stack-nothreads.patch
diff --git a/packages/gcc/12.1.0/0004-Remove-use-of-include_next-from-c-headers.patch b/packages/gcc/12.2.0/0004-Remove-use-of-include_next-from-c-headers.patch
index 920e64da..920e64da 100644
--- a/packages/gcc/12.1.0/0004-Remove-use-of-include_next-from-c-headers.patch
+++ b/packages/gcc/12.2.0/0004-Remove-use-of-include_next-from-c-headers.patch
diff --git a/packages/gcc/12.2.0/chksum b/packages/gcc/12.2.0/chksum
new file mode 100644
index 00000000..52e3b629
--- /dev/null
+++ b/packages/gcc/12.2.0/chksum
@@ -0,0 +1,8 @@
+md5 gcc-12.2.0.tar.xz 73bafd0af874439dcdb9fc063b6fb069
+sha1 gcc-12.2.0.tar.xz 5dce6dc0091b8049b530d1587513a07201691760
+sha256 gcc-12.2.0.tar.xz e549cf9cf3594a00e27b6589d4322d70e0720cdd213f39beb4181e06926230ff
+sha512 gcc-12.2.0.tar.xz e9e857bd81bf7a370307d6848c81b2f5403db8c7b5207f54bce3f3faac3bde63445684092c2bc1a2427cddb6f7746496d9fbbef05fbbd77f2810b2998f1f9173
+md5 gcc-12.2.0.tar.gz d7644b494246450468464ffc2c2b19c3
+sha1 gcc-12.2.0.tar.gz 528e27c3c4a0bb9b13ee2a4c53bb1cf048fc1fe4
+sha256 gcc-12.2.0.tar.gz ac6b317eb4d25444d87cf29c0d141dedc1323a1833ec9995211b13e1a851261c
+sha512 gcc-12.2.0.tar.gz 36ab2267540f205b148037763b3806558e796d564ca7831799c88abcf03393c6dc2cdc9d53e8f094f6dc1245e47a406e1782604eb9d119410d406032f59c1544
diff --git a/packages/linux/4.9.312/version.desc b/packages/gcc/12.2.0/version.desc
index e69de29b..e69de29b 100644
--- a/packages/linux/4.9.312/version.desc
+++ b/packages/gcc/12.2.0/version.desc
diff --git a/packages/glibc-oracle/2.17-317.0.3/version.desc b/packages/glibc-oracle/2.17-317.0.3/version.desc
deleted file mode 100644
index f818679c..00000000
--- a/packages/glibc-oracle/2.17-317.0.3/version.desc
+++ /dev/null
@@ -1,2 +0,0 @@
-repository_branch='oracle/glibc/ol7-u9'
-version_number='2.17'
diff --git a/packages/glibc-oracle/2.17/version.desc b/packages/glibc-oracle/2.17/version.desc
new file mode 100644
index 00000000..23e5c926
--- /dev/null
+++ b/packages/glibc-oracle/2.17/version.desc
@@ -0,0 +1,14 @@
+# Since Oracle provides different branches for binutils
+# depending of the architecture:
+#
+# ARM64: 'oracle/glibc/ol7-u9-aarch64'
+# ARM32: 'oracle/glibc/ol7-u9'
+#
+# branch name is adjusted in:
+# samples/{aarch64,arm}*ol7u9-*
+#
+# using CT_GLIBC_ORACLE_DEVEL_BRANCH
+#
+# EoS date for this package in OL7: Jul 2024.
+version_number='2.17-317.0.3'
+obsolete='yes'
diff --git a/packages/glibc-oracle/2.28/version.desc b/packages/glibc-oracle/2.28/version.desc
index 05402ba2..fd7da0a1 100644
--- a/packages/glibc-oracle/2.28/version.desc
+++ b/packages/glibc-oracle/2.28/version.desc
@@ -1,2 +1,2 @@
-repository_branch='oracle/glibc/ol8-u6'
-version_number='2.28-189.1.0.1'
+repository_branch='oracle/glibc/ol8-u7'
+version_number='2.28-211.0.1'
diff --git a/packages/glibc-oracle/git-ea029c9b/0000-backport-missing-header-file.patch b/packages/glibc-oracle/git-ea029c9b/0000-backport-missing-header-file.patch
new file mode 100644
index 00000000..563c98bb
--- /dev/null
+++ b/packages/glibc-oracle/git-ea029c9b/0000-backport-missing-header-file.patch
@@ -0,0 +1,34 @@
+This patch is a backport from glibc commits:
+0b8dedd38f: Add-sys-auxv.h-wrapper-to-include-sys
+d6bd839b9a: Add-a-way-to-bypass-the-PLT-when-calling-getauxval
+
+This code 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 code 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.
+
+diff -Nur glibc/include/sys/auxv.h glibc-oracle/include/sys/auxv.h
+--- glibc/include/sys/auxv.h 1969-12-31 18:00:00.000000000 -0600
++++ glibc-oracle/include/sys/auxv.h 2022-06-16 12:25:09.112414961 -0500
+@@ -0,0 +1,8 @@
++#include <misc/sys/auxv.h>
++
++#ifndef _ISOMAC
++
++extern __typeof (getauxval) __getauxval;
++libc_hidden_proto (__getauxval)
++
++#endif /* !_ISOMAC */
+diff -Nur glibc/misc/getauxval.c glibc-oracle/misc/getauxval.c
+--- glibc/misc/getauxval.c 2022-06-16 11:52:08.728852269 -0500
++++ glibc-oracle/misc/getauxval.c 2022-06-16 12:25:09.112414961 -0500
+@@ -36,3 +36,4 @@
+ }
+
+ weak_alias (__getauxval, getauxval)
++libc_hidden_def (__getauxval)
diff --git a/packages/glibc/2.26/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.26/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..b8c927d6
--- /dev/null
+++ b/packages/glibc/2.26/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ objdir must be defined by the build-directory Makefile.
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -858,7 +874,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -868,7 +868,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -885,7 +885,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.27/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.27/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..3ff2df01
--- /dev/null
+++ b/packages/glibc/2.27/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ objdir must be defined by the build-directory Makefile.
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -875,7 +891,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -871,7 +871,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -888,7 +888,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.28/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.28/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..9a4cdec5
--- /dev/null
+++ b/packages/glibc/2.28/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ objdir must be defined by the build-directory Makefile.
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -878,7 +894,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -875,7 +875,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -892,7 +892,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.29/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.29/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..33dab461
--- /dev/null
+++ b/packages/glibc/2.29/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ objdir must be defined by the build-directory Makefile.
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -880,7 +896,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -805,7 +805,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -822,7 +822,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.30/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.30/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..e34693eb
--- /dev/null
+++ b/packages/glibc/2.30/0004-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ objdir must be defined by the build-directory Makefile.
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -895,7 +911,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -805,7 +805,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -822,7 +822,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.31/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.31/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..d08583c5
--- /dev/null
+++ b/packages/glibc/2.31/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ objdir must be defined by the build-directory Makefile.
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -892,7 +908,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -805,7 +805,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -822,7 +822,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.32/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.32/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..49dac68c
--- /dev/null
+++ b/packages/glibc/2.32/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ $(error objdir must be defined by the build-directory Makefile)
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -892,7 +908,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -803,7 +803,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -820,7 +820,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.33/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.33/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..90b23f5f
--- /dev/null
+++ b/packages/glibc/2.33/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ $(error objdir must be defined by the build-directory Makefile)
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -895,7 +911,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -803,7 +803,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -820,7 +820,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.34/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.34/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..f1e7edf4
--- /dev/null
+++ b/packages/glibc/2.34/0002-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -42,6 +42,22 @@
+ $(error objdir must be defined by the build-directory Makefile)
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -903,7 +919,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -804,7 +804,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -821,7 +821,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.35/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.35/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..ad482403
--- /dev/null
+++ b/packages/glibc/2.35/0003-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,105 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -43,6 +43,22 @@
+ $(error objdir must be defined by the build-directory Makefile)
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -920,7 +936,7 @@
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+--- a/Makerules
++++ b/Makerules
+@@ -802,7 +802,7 @@
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -819,7 +819,7 @@
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
diff --git a/packages/glibc/2.36/0000-typedef-caddr.patch b/packages/glibc/2.36/0000-typedef-caddr.patch
new file mode 100644
index 00000000..a328da1c
--- /dev/null
+++ b/packages/glibc/2.36/0000-typedef-caddr.patch
@@ -0,0 +1,17 @@
+---
+ posix/sys/types.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/posix/sys/types.h
++++ b/posix/sys/types.h
+@@ -112,7 +112,10 @@
+ #ifdef __USE_MISC
+ # ifndef __daddr_t_defined
+ typedef __daddr_t daddr_t;
++# if ! defined(caddr_t) && ! defined(__caddr_t_defined)
+ typedef __caddr_t caddr_t;
++# define __caddr_t_defined
++# endif
+ # define __daddr_t_defined
+ # endif
+ #endif
diff --git a/packages/glibc/2.36/0001-Add-ARC700-support.patch b/packages/glibc/2.36/0001-Add-ARC700-support.patch
new file mode 100644
index 00000000..ab997dbc
--- /dev/null
+++ b/packages/glibc/2.36/0001-Add-ARC700-support.patch
@@ -0,0 +1,73 @@
+From 6349ae7c3d96c8d00179e290d1ccf8a2d8438cc8 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Sat, 13 Feb 2021 17:08:21 +0300
+Subject: [PATCH] Add ARC700 support
+
+glibc does not officially support ARC700 so this adds the missing
+pieces. I looked at uClibc-ng and a patch by Synopsis for glibc.
+
+[Alexey] Taken from https://github.com/openwrt/openwrt/commit/33646a51abcf15ff5c5363848287e1ed778b7467
+
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+---
+ sysdeps/arc/atomic-machine.h | 4 ++++
+ sysdeps/unix/sysv/linux/arc/syscall.S | 5 +++++
+ sysdeps/unix/sysv/linux/arc/sysdep.h | 8 ++++++++
+ 3 files changed, 17 insertions(+)
+
+--- a/sysdeps/arc/atomic-machine.h
++++ b/sysdeps/arc/atomic-machine.h
+@@ -52,6 +52,10 @@
+ __atomic_val_bysize (__arch_compare_and_exchange_val, int, \
+ mem, new, old, __ATOMIC_ACQUIRE)
+
++#ifdef __ARC700__
++#define atomic_full_barrier() ({ asm volatile ("sync":::"memory"); })
++#else
+ #define atomic_full_barrier() ({ asm volatile ("dmb 3":::"memory"); })
++#endif
+
+ #endif /* _ARC_BITS_ATOMIC_H */
+--- a/sysdeps/unix/sysv/linux/arc/syscall.S
++++ b/sysdeps/unix/sysv/linux/arc/syscall.S
+@@ -24,8 +24,13 @@
+ mov_s r1, r2
+ mov_s r2, r3
+ mov_s r3, r4
++#ifdef __ARC700__
++ mov r4, r5
++ mov r5, r6
++#else
+ mov_s r4, r5
+ mov_s r5, r6
++#endif
+
+ ARC_TRAP_INSN
+ brhi r0, -4096, L (call_syscall_err)
+--- a/sysdeps/unix/sysv/linux/arc/sysdep.h
++++ b/sysdeps/unix/sysv/linux/arc/sysdep.h
+@@ -128,7 +128,11 @@
+ mov r8, __NR_##syscall_name ASM_LINE_SEP \
+ ARC_TRAP_INSN ASM_LINE_SEP
+
++# ifdef __ARC700__
++# define ARC_TRAP_INSN trap0
++# else
+ # define ARC_TRAP_INSN trap_s 0
++# endif
+
+ #else /* !__ASSEMBLER__ */
+
+@@ -137,7 +141,11 @@
+ hidden_proto (__syscall_error)
+ # endif
+
++# ifdef __ARC700__
++# define ARC_TRAP_INSN "trap0 \n\t"
++# else
+ # define ARC_TRAP_INSN "trap_s 0 \n\t"
++#endif
+
+ # undef INTERNAL_SYSCALL_NCS
+ # define INTERNAL_SYSCALL_NCS(number, nr_args, args...) \
diff --git a/packages/glibc/2.36/0002-Mimic-kernel-defition-for-BLOCK_SIZE.patch b/packages/glibc/2.36/0002-Mimic-kernel-defition-for-BLOCK_SIZE.patch
new file mode 100644
index 00000000..bcebfe21
--- /dev/null
+++ b/packages/glibc/2.36/0002-Mimic-kernel-defition-for-BLOCK_SIZE.patch
@@ -0,0 +1,30 @@
+From 4dad97e2a2e510c6b53a0add29a2188714fcf4ab Mon Sep 17 00:00:00 2001
+From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date: Wed, 10 Aug 2022 14:24:45 -0300
+Subject: [PATCH] linux: Mimic kernel defition for BLOCK_SIZE
+
+To avoid possible warnings if the kernel header is included before
+sys/mount.h.
+
+Reviewed-by: Florian Weimer <fweimer@redhat.com>
+(cherry picked from commit c68b6044bc7945716431f1adc091b17c39b80a06)
+---
+ sysdeps/unix/sysv/linux/sys/mount.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
+index f965986ba8..df6b0dbb42 100644
+--- a/sysdeps/unix/sysv/linux/sys/mount.h
++++ b/sysdeps/unix/sysv/linux/sys/mount.h
+@@ -27,8 +27,8 @@
+ #include <stddef.h>
+ #include <sys/ioctl.h>
+
+-#define BLOCK_SIZE 1024
+ #define BLOCK_SIZE_BITS 10
++#define BLOCK_SIZE (1<<BLOCK_SIZE_BITS)
+
+
+ /* These are the fs-independent mount-flags: up to 16 flags are
+--
+2.31.1
diff --git a/packages/glibc/2.36/0003-Use-compile_c_snippet-to-check-linux_mount.h.patch b/packages/glibc/2.36/0003-Use-compile_c_snippet-to-check-linux_mount.h.patch
new file mode 100644
index 00000000..498d176e
--- /dev/null
+++ b/packages/glibc/2.36/0003-Use-compile_c_snippet-to-check-linux_mount.h.patch
@@ -0,0 +1,32 @@
+From d48813227b63a0d92ea357ea0733229ed74e31ab Mon Sep 17 00:00:00 2001
+From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date: Wed, 10 Aug 2022 14:24:46 -0300
+Subject: [PATCH] linux: Use compile_c_snippet to check linux/mount.h
+ availability
+
+Checked on x86_64-linux-gnu.
+
+Reviewed-by: Florian Weimer <fweimer@redhat.com>
+(cherry picked from commit e1226cdc6b209539a92d32d5b620ba53fd35abf3)
+---
+ sysdeps/unix/sysv/linux/tst-mount-consts.py | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sysdeps/unix/sysv/linux/tst-mount-consts.py b/sysdeps/unix/sysv/linux/tst-mount-consts.py
+index a62f803123..be2ef2daf1 100755
+--- a/sysdeps/unix/sysv/linux/tst-mount-consts.py
++++ b/sysdeps/unix/sysv/linux/tst-mount-consts.py
+@@ -33,6 +33,11 @@ def main():
+ help='C compiler (including options) to use')
+ args = parser.parse_args()
+
++ if glibcextract.compile_c_snippet(
++ '#include <linux/mount.h>',
++ args.cc).returncode != 0:
++ sys.exit (77)
++
+ linux_version_headers = glibcsyscalls.linux_kernel_version(args.cc)
+ # Constants in glibc were updated to match Linux v5.16. When glibc
+ # constants are updated this value should be updated to match the
+--
+2.31.1
diff --git a/packages/glibc/2.36/0004-Fix_sys_mount.h_usage_with_kernel_headers.patch b/packages/glibc/2.36/0004-Fix_sys_mount.h_usage_with_kernel_headers.patch
new file mode 100644
index 00000000..a9cdc5b1
--- /dev/null
+++ b/packages/glibc/2.36/0004-Fix_sys_mount.h_usage_with_kernel_headers.patch
@@ -0,0 +1,336 @@
+From bb1e8b0ca99b5cbedfae3e6245528a87d95ff3e2 Mon Sep 17 00:00:00 2001
+From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date: Wed, 10 Aug 2022 14:24:47 -0300
+Subject: [PATCH] linux: Fix sys/mount.h usage with kernel headers
+
+Now that kernel exports linux/mount.h and includes it on linux/fs.h,
+its definitions might clash with glibc exports sys/mount.h. To avoid
+the need to rearrange the Linux header to be always after glibc one,
+the glibc sys/mount.h is changed to:
+
+ 1. Undefine the macros also used as enum constants. This covers prior
+ inclusion of <linux/mount.h> (for instance MS_RDONLY).
+
+ 2. Include <linux/mount.h> based on the usual __has_include check
+ (needs to use __has_include ("linux/mount.h") to paper over GCC
+ bugs.
+
+ 3. Define enum fsconfig_command only if FSOPEN_CLOEXEC is not defined.
+ (FSOPEN_CLOEXEC should be a very close proxy.)
+
+ 4. Define struct mount_attr if MOUNT_ATTR_SIZE_VER0 is not defined.
+ (Added in the same commit on the Linux side.)
+
+This patch also adds some tests to check if including linux/fs.h and
+linux/mount.h after and before sys/mount.h does work.
+
+Checked on x86_64-linux-gnu.
+
+Reviewed-by: Florian Weimer <fweimer@redhat.com>
+(cherry picked from commit 774058d72942249f71d74e7f2b639f77184160a6)
+---
+ sysdeps/unix/sysv/linux/Makefile | 8 +++
+ sysdeps/unix/sysv/linux/sys/mount.h | 71 +++++++++++++++++---
+ sysdeps/unix/sysv/linux/tst-mount-compile.py | 66 ++++++++++++++++++
+ 3 files changed, 137 insertions(+), 8 deletions(-)
+ create mode 100755 sysdeps/unix/sysv/linux/tst-mount-compile.py
+
+diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
+index a139a16532..3ceda9fdbf 100644
+--- a/sysdeps/unix/sysv/linux/Makefile
++++ b/sysdeps/unix/sysv/linux/Makefile
+@@ -265,6 +265,14 @@ $(objpfx)tst-mount-consts.out: ../sysdeps/unix/sysv/linux/tst-mount-consts.py
+ < /dev/null > $@ 2>&1; $(evaluate-test)
+ $(objpfx)tst-mount-consts.out: $(sysdeps-linux-python-deps)
+
++tests-special += $(objpfx)tst-mount-compile.out
++$(objpfx)tst-mount-compile.out: ../sysdeps/unix/sysv/linux/tst-mount-compile.py
++ $(sysdeps-linux-python) \
++ ../sysdeps/unix/sysv/linux/tst-mount-compile.py \
++ $(sysdeps-linux-python-cc) \
++ < /dev/null > $@ 2>&1; $(evaluate-test)
++$(objpfx)tst-mount-compile.out: $(sysdeps-linux-python-deps)
++
+ tst-rseq-disable-ENV = GLIBC_TUNABLES=glibc.pthread.rseq=0
+
+ endif # $(subdir) == misc
+diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
+index df6b0dbb42..2e3fd6a7fe 100644
+--- a/sysdeps/unix/sysv/linux/sys/mount.h
++++ b/sysdeps/unix/sysv/linux/sys/mount.h
+@@ -27,6 +27,13 @@
+ #include <stddef.h>
+ #include <sys/ioctl.h>
+
++#ifdef __has_include
++# if __has_include ("linux/mount.h")
++# include "linux/mount.h"
++# endif
++#endif
++
++
+ #define BLOCK_SIZE_BITS 10
+ #define BLOCK_SIZE (1<<BLOCK_SIZE_BITS)
+
+@@ -35,69 +42,98 @@
+ supported */
+ enum
+ {
++#undef MS_RDONLY
+ MS_RDONLY = 1, /* Mount read-only. */
+ #define MS_RDONLY MS_RDONLY
++#undef MS_NOSUID
+ MS_NOSUID = 2, /* Ignore suid and sgid bits. */
+ #define MS_NOSUID MS_NOSUID
++#undef MS_NODEV
+ MS_NODEV = 4, /* Disallow access to device special files. */
+ #define MS_NODEV MS_NODEV
++#undef MS_NOEXEC
+ MS_NOEXEC = 8, /* Disallow program execution. */
+ #define MS_NOEXEC MS_NOEXEC
++#undef MS_SYNCHRONOUS
+ MS_SYNCHRONOUS = 16, /* Writes are synced at once. */
+ #define MS_SYNCHRONOUS MS_SYNCHRONOUS
++#undef MS_REMOUNT
+ MS_REMOUNT = 32, /* Alter flags of a mounted FS. */
+ #define MS_REMOUNT MS_REMOUNT
++#undef MS_MANDLOCK
+ MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
+ #define MS_MANDLOCK MS_MANDLOCK
++#undef MS_DIRSYNC
+ MS_DIRSYNC = 128, /* Directory modifications are synchronous. */
+ #define MS_DIRSYNC MS_DIRSYNC
++#undef MS_NOSYMFOLLOW
+ MS_NOSYMFOLLOW = 256, /* Do not follow symlinks. */
+ #define MS_NOSYMFOLLOW MS_NOSYMFOLLOW
++#undef MS_NOATIME
+ MS_NOATIME = 1024, /* Do not update access times. */
+ #define MS_NOATIME MS_NOATIME
++#undef MS_NODIRATIME
+ MS_NODIRATIME = 2048, /* Do not update directory access times. */
+ #define MS_NODIRATIME MS_NODIRATIME
++#undef MS_BIND
+ MS_BIND = 4096, /* Bind directory at different place. */
+ #define MS_BIND MS_BIND
++#undef MS_MOVE
+ MS_MOVE = 8192,
+ #define MS_MOVE MS_MOVE
++#undef MS_REC
+ MS_REC = 16384,
+ #define MS_REC MS_REC
++#undef MS_SILENT
+ MS_SILENT = 32768,
+ #define MS_SILENT MS_SILENT
++#undef MS_POSIXACL
+ MS_POSIXACL = 1 << 16, /* VFS does not apply the umask. */
+ #define MS_POSIXACL MS_POSIXACL
++#undef MS_UNBINDABLE
+ MS_UNBINDABLE = 1 << 17, /* Change to unbindable. */
+ #define MS_UNBINDABLE MS_UNBINDABLE
++#undef MS_PRIVATE
+ MS_PRIVATE = 1 << 18, /* Change to private. */
+ #define MS_PRIVATE MS_PRIVATE
++#undef MS_SLAVE
+ MS_SLAVE = 1 << 19, /* Change to slave. */
+ #define MS_SLAVE MS_SLAVE
++#undef MS_SHARED
+ MS_SHARED = 1 << 20, /* Change to shared. */
+ #define MS_SHARED MS_SHARED
++#undef MS_RELATIME
+ MS_RELATIME = 1 << 21, /* Update atime relative to mtime/ctime. */
+ #define MS_RELATIME MS_RELATIME
++#undef MS_KERNMOUNT
+ MS_KERNMOUNT = 1 << 22, /* This is a kern_mount call. */
+ #define MS_KERNMOUNT MS_KERNMOUNT
++#undef MS_I_VERSION
+ MS_I_VERSION = 1 << 23, /* Update inode I_version field. */
+ #define MS_I_VERSION MS_I_VERSION
++#undef MS_STRICTATIME
+ MS_STRICTATIME = 1 << 24, /* Always perform atime updates. */
+ #define MS_STRICTATIME MS_STRICTATIME
++#undef MS_LAZYTIME
+ MS_LAZYTIME = 1 << 25, /* Update the on-disk [acm]times lazily. */
+ #define MS_LAZYTIME MS_LAZYTIME
++#undef MS_ACTIVE
+ MS_ACTIVE = 1 << 30,
+ #define MS_ACTIVE MS_ACTIVE
++#undef MS_NOUSER
+ MS_NOUSER = 1 << 31
+ #define MS_NOUSER MS_NOUSER
+ };
+
+ /* Flags that can be altered by MS_REMOUNT */
++#undef MS_RMT_MASK
+ #define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION \
+ |MS_LAZYTIME)
+
+
+ /* Magic mount flag number. Has to be or-ed to the flag values. */
+
++#undef MS_MGC_VAL
+ #define MS_MGC_VAL 0xc0ed0000 /* Magic flag number to indicate "new" flags */
+ #define MS_MGC_MSK 0xffff0000 /* Magic flag number mask */
+
+@@ -106,20 +142,35 @@ enum
+ is probably as bad and I don't want to create yet another include
+ file. */
+
++#undef BLKROSET
+ #define BLKROSET _IO(0x12, 93) /* Set device read-only (0 = read-write). */
++#undef BLKROGET
+ #define BLKROGET _IO(0x12, 94) /* Get read-only status (0 = read_write). */
++#undef BLKRRPART
+ #define BLKRRPART _IO(0x12, 95) /* Re-read partition table. */
++#undef BLKGETSIZE
+ #define BLKGETSIZE _IO(0x12, 96) /* Return device size. */
++#undef BLKFLSBUF
+ #define BLKFLSBUF _IO(0x12, 97) /* Flush buffer cache. */
++#undef BLKRASET
+ #define BLKRASET _IO(0x12, 98) /* Set read ahead for block device. */
++#undef BLKRAGET
+ #define BLKRAGET _IO(0x12, 99) /* Get current read ahead setting. */
++#undef BLKFRASET
+ #define BLKFRASET _IO(0x12,100) /* Set filesystem read-ahead. */
++#undef BLKFRAGET
+ #define BLKFRAGET _IO(0x12,101) /* Get filesystem read-ahead. */
++#undef BLKSECTSET
+ #define BLKSECTSET _IO(0x12,102) /* Set max sectors per request. */
++#undef BLKSECTGET
+ #define BLKSECTGET _IO(0x12,103) /* Get max sectors per request. */
++#undef BLKSSZGET
+ #define BLKSSZGET _IO(0x12,104) /* Get block device sector size. */
++#undef BLKBSZGET
+ #define BLKBSZGET _IOR(0x12,112,size_t)
++#undef BLKBSZSET
+ #define BLKBSZSET _IOW(0x12,113,size_t)
++#undef BLKGETSIZE64
+ #define BLKGETSIZE64 _IOR(0x12,114,size_t) /* return device size. */
+
+
+@@ -157,6 +208,7 @@ enum
+ #define MOUNT_ATTR_NOSYMFOLLOW 0x00200000 /* Do not follow symlinks. */
+
+
++#ifndef MOUNT_ATTR_SIZE_VER0
+ /* For mount_setattr. */
+ struct mount_attr
+ {
+@@ -165,6 +217,7 @@ struct mount_attr
+ uint64_t propagation;
+ uint64_t userns_fd;
+ };
++#endif
+
+ #define MOUNT_ATTR_SIZE_VER0 32 /* sizeof first published struct */
+
+@@ -185,26 +238,28 @@ struct mount_attr
+ #define FSPICK_EMPTY_PATH 0x00000008
+
+
++#ifndef FSOPEN_CLOEXEC
+ /* The type of fsconfig call made. */
+ enum fsconfig_command
+ {
+ FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
+-#define FSCONFIG_SET_FLAG FSCONFIG_SET_FLAG
++# define FSCONFIG_SET_FLAG FSCONFIG_SET_FLAG
+ FSCONFIG_SET_STRING = 1, /* Set parameter, supplying a string value */
+-#define FSCONFIG_SET_STRING FSCONFIG_SET_STRING
++# define FSCONFIG_SET_STRING FSCONFIG_SET_STRING
+ FSCONFIG_SET_BINARY = 2, /* Set parameter, supplying a binary blob value */
+-#define FSCONFIG_SET_BINARY FSCONFIG_SET_BINARY
++# define FSCONFIG_SET_BINARY FSCONFIG_SET_BINARY
+ FSCONFIG_SET_PATH = 3, /* Set parameter, supplying an object by path */
+-#define FSCONFIG_SET_PATH FSCONFIG_SET_PATH
++# define FSCONFIG_SET_PATH FSCONFIG_SET_PATH
+ FSCONFIG_SET_PATH_EMPTY = 4, /* Set parameter, supplying an object by (empty) path */
+-#define FSCONFIG_SET_PATH_EMPTY FSCONFIG_SET_PATH_EMPTY
++# define FSCONFIG_SET_PATH_EMPTY FSCONFIG_SET_PATH_EMPTY
+ FSCONFIG_SET_FD = 5, /* Set parameter, supplying an object by fd */
+-#define FSCONFIG_SET_FD FSCONFIG_SET_FD
++# define FSCONFIG_SET_FD FSCONFIG_SET_FD
+ FSCONFIG_CMD_CREATE = 6, /* Invoke superblock creation */
+-#define FSCONFIG_CMD_CREATE FSCONFIG_CMD_CREATE
++# define FSCONFIG_CMD_CREATE FSCONFIG_CMD_CREATE
+ FSCONFIG_CMD_RECONFIGURE = 7, /* Invoke superblock reconfiguration */
+-#define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE
++# define FSCONFIG_CMD_RECONFIGURE FSCONFIG_CMD_RECONFIGURE
+ };
++#endif
+
+ /* open_tree flags. */
+ #define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */
+diff --git a/sysdeps/unix/sysv/linux/tst-mount-compile.py b/sysdeps/unix/sysv/linux/tst-mount-compile.py
+new file mode 100755
+index 0000000000..0ec74d4e0b
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/tst-mount-compile.py
+@@ -0,0 +1,66 @@
++#!/usr/bin/python3
++# Check if glibc provided sys/mount.h can be used along related kernel
++# headers.
++# Copyright (C) 2022 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/>.
++
++import argparse
++import sys
++
++import glibcextract
++
++
++def main():
++ """The main entry point."""
++ parser = argparse.ArgumentParser(
++ description='Check if glibc provided sys/mount.h can be '
++ ' used along related kernel headers.')
++ parser.add_argument('--cc', metavar='CC',
++ help='C compiler (including options) to use')
++ args = parser.parse_args()
++
++ if glibcextract.compile_c_snippet(
++ '#include <linux/mount.h>',
++ args.cc).returncode != 0:
++ sys.exit (77)
++
++ def check(testname, snippet):
++ # Add -Werror to catch macro redefinitions and _ISOMAC to avoid
++ # internal glibc definitions.
++ r = glibcextract.compile_c_snippet(snippet, args.cc,
++ '-Werror -D_ISOMAC')
++ if r.returncode != 0:
++ print('error: test {}:\n{}'.format(testname, r.output.decode()))
++ return r.returncode
++
++ status = max(
++ check("sys/mount.h + linux/mount.h",
++ "#include <sys/mount.h>\n"
++ "#include <linux/mount.h>"),
++ check("sys/mount.h + linux/fs.h",
++ "#include <sys/mount.h>\n"
++ "#include <linux/fs.h>"),
++ check("linux/mount.h + sys/mount.h",
++ "#include <linux/mount.h>\n"
++ "#include <sys/mount.h>"),
++ check("linux/fs.h + sys/mount.h",
++ "#include <linux/fs.h>\n"
++ "#include <sys/mount.h>"))
++ sys.exit(status)
++
++if __name__ == '__main__':
++ main()
+--
+2.31.1
diff --git a/packages/glibc/2.36/0005-Fix-enum-fsconfig_command-detection-in-sys_mount.h.patch b/packages/glibc/2.36/0005-Fix-enum-fsconfig_command-detection-in-sys_mount.h.patch
new file mode 100644
index 00000000..da249f36
--- /dev/null
+++ b/packages/glibc/2.36/0005-Fix-enum-fsconfig_command-detection-in-sys_mount.h.patch
@@ -0,0 +1,43 @@
+From 3bd3c612e98a53ce60ed972f5cd2b90628b3cba5 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Tue, 16 Aug 2022 09:25:23 +0200
+Subject: [PATCH] Linux: Fix enum fsconfig_command detection in <sys/mount.h>
+
+The #ifdef FSOPEN_CLOEXEC check did not work because the macro
+was always defined in this header prior to the check, so that
+the <linux/mount.h> contents did not matter.
+
+Fixes commit 774058d72942249f71d74e7f2b639f77184160a6
+("linux: Fix sys/mount.h usage with kernel headers").
+
+(cherry picked from commit 2955ef4b7c9b56fcd7abfeddef7ee83c60abff98)
+---
+ sysdeps/unix/sysv/linux/sys/mount.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h
+index 2e3fd6a7fe..19841d0738 100644
+--- a/sysdeps/unix/sysv/linux/sys/mount.h
++++ b/sysdeps/unix/sysv/linux/sys/mount.h
+@@ -188,9 +188,6 @@ enum
+ };
+
+
+-/* fsopen flags. */
+-#define FSOPEN_CLOEXEC 0x00000001
+-
+ /* fsmount flags. */
+ #define FSMOUNT_CLOEXEC 0x00000001
+
+@@ -261,6 +258,9 @@ enum fsconfig_command
+ };
+ #endif
+
++/* fsopen flags. */
++#define FSOPEN_CLOEXEC 0x00000001
++
+ /* open_tree flags. */
+ #define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */
+ #define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */
+--
+2.31.1
diff --git a/packages/glibc/2.36/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch b/packages/glibc/2.36/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
new file mode 100644
index 00000000..c4475990
--- /dev/null
+++ b/packages/glibc/2.36/0006-Makerules-fix-MAKEFLAGS-assignment-for-upcoming-make.patch
@@ -0,0 +1,114 @@
+From 2d7ed98add14f75041499ac189696c9bd3d757fe Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 13 Sep 2022 13:39:13 -0400
+Subject: [PATCH] Makerules: fix MAKEFLAGS assignment for upcoming make-4.4
+ [BZ# 29564]
+
+make-4.4 will add long flags to MAKEFLAGS variable:
+
+ * WARNING: Backward-incompatibility!
+ Previously only simple (one-letter) options were added to the MAKEFLAGS
+ variable that was visible while parsing makefiles. Now, all options
+ are available in MAKEFLAGS.
+
+This causes locale builds to fail when long options are used:
+
+ $ make --shuffle
+ ...
+ make -C localedata install-locales
+ make: invalid shuffle mode: '1662724426r'
+
+The change fixes it by passing eash option via whitespace and dashes.
+That way option is appended to both single-word form and whitespace
+separated form.
+
+While at it fixed --silent mode detection in $(MAKEFLAGS) by filtering
+out --long-options. Otherwise options like --shuffle flag enable silent
+mode unintentionally. $(silent-make) variable consolidates the checks.
+
+Resolves: BZ# 29564
+
+CC: Paul Smith <psmith@gnu.org>
+CC: Siddhesh Poyarekar <siddhesh@gotplt.org>
+Signed-off-by: Sergei Trofimovich <slyich@gmail.com>
+Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+---
+ Makeconfig | 18 +++++++++++++++++-
+ Makerules | 4 ++--
+ elf/rtld-Rules | 2 +-
+ 3 files changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/Makeconfig b/Makeconfig
+index f8164a0025..842f49eb58 100644
+--- a/Makeconfig
++++ b/Makeconfig
+@@ -43,6 +43,22 @@ else
+ $(error objdir must be defined by the build-directory Makefile)
+ endif
+
++# Did we request 'make -s' run? "yes" or "no".
++# Starting from make-4.4 MAKEFLAGS now contains long
++# options like '--shuffle'. To detect presence of 's'
++# we pick first word with short options. Long options
++# are guaranteed to come after whitespace. We use '-'
++# prefix to always have a word before long options
++# even if no short options were passed.
++# Typical MAKEFLAGS values to watch for:
++# "rs --shuffle=42" (silent)
++# " --shuffle" (not silent)
++ifeq ($(findstring s, $(firstword -$(MAKEFLAGS))),)
++silent-make := no
++else
++silent-make := yes
++endif
++
+ # Root of the sysdeps tree.
+ sysdep_dir := $(..)sysdeps
+ export sysdep_dir := $(sysdep_dir)
+@@ -917,7 +933,7 @@ endif
+ # umpteen zillion filenames along with it (we use `...' instead)
+ # but we don't want this echoing done when the user has said
+ # he doesn't want to see commands echoed by using -s.
+-ifneq "$(findstring s,$(MAKEFLAGS))" "" # if -s
++ifeq ($(silent-make),yes) # if -s
+ +cmdecho := echo >/dev/null
+ else # not -s
+ +cmdecho := echo
+diff --git a/Makerules b/Makerules
+index d1e139d03c..09c0cf8357 100644
+--- a/Makerules
++++ b/Makerules
+@@ -794,7 +794,7 @@ endif
+ # Maximize efficiency by minimizing the number of rules.
+ .SUFFIXES: # Clear the suffix list. We don't use suffix rules.
+ # Don't define any builtin rules.
+-MAKEFLAGS := $(MAKEFLAGS)r
++MAKEFLAGS := $(MAKEFLAGS) -r
+
+ # Generic rule for making directories.
+ %/:
+@@ -811,7 +811,7 @@ MAKEFLAGS := $(MAKEFLAGS)r
+ .PRECIOUS: $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+diff --git a/elf/rtld-Rules b/elf/rtld-Rules
+index ca00dd1fe2..3c5e273f2b 100644
+--- a/elf/rtld-Rules
++++ b/elf/rtld-Rules
+@@ -52,7 +52,7 @@ $(objpfx)rtld-libc.a: $(foreach dir,$(rtld-subdirs),\
+ mv -f $@T $@
+
+ # Use the verbose option of ar and tar when not running silently.
+-ifeq "$(findstring s,$(MAKEFLAGS))" "" # if not -s
++ifeq ($(silent-make),no) # if not -s
+ verbose := v
+ else # -s
+ verbose :=
+--
+2.38.1
+
diff --git a/packages/glibc/2.36/chksum b/packages/glibc/2.36/chksum
new file mode 100644
index 00000000..6fd112b9
--- /dev/null
+++ b/packages/glibc/2.36/chksum
@@ -0,0 +1,12 @@
+md5 glibc-2.36.tar.xz 00e9b89e043340f688bc93ec03239b57
+sha1 glibc-2.36.tar.xz 1477f605f419c439c03ef90e7851c0856ea679ea
+sha256 glibc-2.36.tar.xz 1c959fea240906226062cb4b1e7ebce71a9f0e3c0836c09e7e3423d434fcfe75
+sha512 glibc-2.36.tar.xz 9ea0bbda32f83a85b7da0c34f169607fb8a102f0a11a914e6bf531be47d1bef4f5307128286cffa1e2dc5879f0e6ccaef527dd353486883fa332a0b44bde8b3e
+md5 glibc-2.36.tar.bz2 fa3409fd10d880163231d7a5b060255c
+sha1 glibc-2.36.tar.bz2 f87cf260ed9340f402245dd68867133c1d4b3bfe
+sha256 glibc-2.36.tar.bz2 f78672ec277cc6e5cf2bdd6edec50c5c7b385763a37f03bd7277a907cf7fc862
+sha512 glibc-2.36.tar.bz2 d9a8d8066b7d1593ba9d4c0da17213aac57707d9bd816ba93fdc1cd408efed6d8e18c65f5ba03e82c92f5bd2469164d6c5601847ad979e08a438d55296358848
+md5 glibc-2.36.tar.gz 5467e3d8d526fc02b8e6b5bac2216513
+sha1 glibc-2.36.tar.gz c4ebbcc39d88e0ebfd319710b424eef302b95945
+sha256 glibc-2.36.tar.gz 02efa6ffbbaf3e10e88f16818a862608d04b0ef838c66f6025ae120530792c9c
+sha512 glibc-2.36.tar.gz a898d76fb88a68cda122aba26794d91d1088afbc90aaf93505afbf8b607403e8e92f2dd1acface417b9289cb18056579f49176dd88c88e2815b2552bb355f63e
diff --git a/packages/glibc/2.36/version.desc b/packages/glibc/2.36/version.desc
new file mode 100644
index 00000000..3332e793
--- /dev/null
+++ b/packages/glibc/2.36/version.desc
@@ -0,0 +1 @@
+# Released 1 Aug 2022
diff --git a/packages/glibc/package.desc b/packages/glibc/package.desc
index 56e42a5d..d25f0530 100644
--- a/packages/glibc/package.desc
+++ b/packages/glibc/package.desc
@@ -3,6 +3,6 @@ repository='git git://sourceware.org/git/glibc.git'
mirrors='$(CT_Mirrors GNU glibc)'
# Cannot use MAJOR.MINOR as the relevant part because of 2.12: 2.12.2 was the most recent
# bugfix release, but it didn't have glibc-ports released alongside it.
-milestones='2.14 2.17 2.20 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.34'
+milestones='2.14 2.17 2.20 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.34 2.36'
archive_formats='.tar.xz .tar.bz2 .tar.gz'
signature_format='packed/.sig'
diff --git a/packages/gnuprumcu/0.9.0/chksum b/packages/gnuprumcu/0.9.0/chksum
new file mode 100644
index 00000000..a88d0511
--- /dev/null
+++ b/packages/gnuprumcu/0.9.0/chksum
@@ -0,0 +1,4 @@
+md5 gnuprumcu-0.9.0.tar.gz a730da575f541d1de73583a9c742c437
+sha1 gnuprumcu-0.9.0.tar.gz 6b83a5d087483e10298b96a102dc99353e3705c2
+sha256 gnuprumcu-0.9.0.tar.gz a54a0bd7a4741e22ceef4cea80c3fcc37ea06e25a0170e87eb76b71a7e129df6
+sha512 gnuprumcu-0.9.0.tar.gz 0ca693e0bdfe83f4cc72da2c6ff686de90d03159a7eff5cc577615d6b401a7157e53a7e2c0adf677f8a09b85699990acf4f25d9312c643ca9ca3a0a009f5b1f7
diff --git a/packages/linux/5.10.113/version.desc b/packages/gnuprumcu/0.9.0/version.desc
index e69de29b..e69de29b 100644
--- a/packages/linux/5.10.113/version.desc
+++ b/packages/gnuprumcu/0.9.0/version.desc
diff --git a/packages/isl/0.11.1/chksum b/packages/isl/0.11.1/chksum
new file mode 100644
index 00000000..715d4405
--- /dev/null
+++ b/packages/isl/0.11.1/chksum
@@ -0,0 +1,8 @@
+md5sum isl-0.11.1.tar.bz2 bce1586384d8635a76d2f017fb067cd2
+sha1sum isl-0.11.1.tar.bz2 d7936929c3937e03f09b64c3c54e49422fa8ddb3
+sha256sum isl-0.11.1.tar.bz2 095f4b54c88ca13a80d2b025d9c551f89ea7ba6f6201d701960bfe5c1466a98d
+sha512sum isl-0.11.1.tar.bz2 f021ef6982b30a4834bc459af3520bd74b9c6af3e479b344c2d0e1bb4550b85cd30612e342ac761d85f1d2e2160ab3183e1252696726f438e61fb070a7a7bd22
+md5sum isl-0.11.1.tar.gz d7d27ebedc21a00b292cb7b50f4864f6
+sha1sum isl-0.11.1.tar.gz f44035e0c77c9dbf6a4db7142cae0bb601958b98
+sha256sum isl-0.11.1.tar.gz 55f6c36a119d5fbd90ebc1f7ab07144b41c6f7f038acd18ab58c4c11beefdfc8
+sha512sum isl-0.11.1.tar.gz f7b4a32bd83cf9189c8717ddc2bfe67ed4c93bd437d35e6b7ba97dc3b8a8b85313d79de925f7a87dcadd8e2d248b162ff0d877802d62e68cec9b30aa43c6813f
diff --git a/packages/isl/0.11.1/version.desc b/packages/isl/0.11.1/version.desc
new file mode 100644
index 00000000..569904cc
--- /dev/null
+++ b/packages/isl/0.11.1/version.desc
@@ -0,0 +1,3 @@
+# This package is a dependency to build a cross toolchain
+# for OL7u9, for which EoS date is at Jul 2024.
+obsolete='yes'
diff --git a/packages/linux/4.14.277/chksum b/packages/linux/4.14.277/chksum
deleted file mode 100644
index 95a097f9..00000000
--- a/packages/linux/4.14.277/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-4.14.277.tar.xz ded4bafebfaa44b93aa06b4a77c474a7
-sha1 linux-4.14.277.tar.xz 3a27f4bce582a821535770ce10d3d7754f6b1612
-sha256 linux-4.14.277.tar.xz e3dcacc2459c91586ae94121f54eb54a7cae9c424766fe20498169f682fd1b15
-sha512 linux-4.14.277.tar.xz ea280902dca24105bd9166aa37f0f955f6a853fcbc638c079a8c6d12e37e10a9b0e3830e4277b0937246f5b4d9b7ff246f2ffbc793054e2b41f8ccbe6106a5a1
-md5 linux-4.14.277.tar.gz 7576036f2f025e609bb49e05b0363c9e
-sha1 linux-4.14.277.tar.gz 445f8f652ce7c598dc5a43a3aa8ec568d35d3128
-sha256 linux-4.14.277.tar.gz 06e3f32c2c2badb2924369b99d70d10a395647251a4f02e15608ff15c81ba45d
-sha512 linux-4.14.277.tar.gz 5e0a7164add754d4e6805bec20227354e74649ed0ef218efc1a9c29d64280176c85588e7473ea45e4b1acaf4c2c7ae2dae860bbaa977f67151abeb7810c927cf
diff --git a/packages/linux/4.14.301/chksum b/packages/linux/4.14.301/chksum
new file mode 100644
index 00000000..27679c31
--- /dev/null
+++ b/packages/linux/4.14.301/chksum
@@ -0,0 +1,8 @@
+md5 linux-4.14.301.tar.xz 2faa259fdd1af8460e2533a156832ecf
+sha1 linux-4.14.301.tar.xz 38a4ae8b90cc720c561bcb5406db9ea6c0ab8928
+sha256 linux-4.14.301.tar.xz acd2ee8e03da098fe9f7e52871dd0790850fc32b78657606bdf65bdd94bbf99b
+sha512 linux-4.14.301.tar.xz 70b4ecd95e840bda1d1159802da9e9313b501be4d5472bd3865b141c260aa9d192b5732df8e838d213ff2b0f01f58351c82aa88a9d58a1120d22176c03ed7712
+md5 linux-4.14.301.tar.gz da5adab36d5644bea80c6718a033b533
+sha1 linux-4.14.301.tar.gz 66bad05536c00be04795721cb470fe0f0c0a2120
+sha256 linux-4.14.301.tar.gz 310f2caa138714a3bb40068bbed79e0b328f674d562b01289813844c63bb008c
+sha512 linux-4.14.301.tar.gz db85885413cba1003a66bed152ab3f63ffb9e1faf49cf418c0c368d80d33cad048505f8997a89601bd789872b1fdc8433e778c0eb3e11bfc70b7842cde32abd3
diff --git a/packages/linux/5.15.37/version.desc b/packages/linux/4.14.301/version.desc
index e69de29b..e69de29b 100644
--- a/packages/linux/5.15.37/version.desc
+++ b/packages/linux/4.14.301/version.desc
diff --git a/packages/linux/4.19.241/chksum b/packages/linux/4.19.241/chksum
deleted file mode 100644
index 5768e0e0..00000000
--- a/packages/linux/4.19.241/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-4.19.241.tar.xz 1a256f9d765bc2ec135707340db3375b
-sha1 linux-4.19.241.tar.xz 077063e3b430931a3f97986af0ae87b25fdba69f
-sha256 linux-4.19.241.tar.xz 4c6269d3c14e593151b035a55227110e632642d848032ef6992135c18488fe13
-sha512 linux-4.19.241.tar.xz 8ddf5791febed8de146367fcf96d84da15e859d8b8b5de01899415f0080c22fbe18e5eef1a1db681260eb80a60b9e33cd551515d9ec4c065977cf5d3da9045c4
-md5 linux-4.19.241.tar.gz 34785bb20615a0d66deed8615c9030fb
-sha1 linux-4.19.241.tar.gz d1b9536cea0a9c7f1fec25f29bd52d89cc5b93d3
-sha256 linux-4.19.241.tar.gz cac466d03d16dd810607c32e6ade9cda53764c319a9f6dffae88e40a48aa2ff5
-sha512 linux-4.19.241.tar.gz df51ddf157fedf37c07773bd8e22f510ef24b218bf809bc68571b031fd028ecaa5b7e9cb95f0bbf97edd2682ea67c48fb530d6b1d663af2e2b755fd7d01eecb5
diff --git a/packages/linux/4.19.268/chksum b/packages/linux/4.19.268/chksum
new file mode 100644
index 00000000..7a2b074f
--- /dev/null
+++ b/packages/linux/4.19.268/chksum
@@ -0,0 +1,8 @@
+md5 linux-4.19.268.tar.xz 366755a45798defed2e53ad0cbcc4729
+sha1 linux-4.19.268.tar.xz 76e3763f5dd4026e0fc93538a0b1e2faf8caa502
+sha256 linux-4.19.268.tar.xz 219bce1ac3f542d06fc606ae6bcb10f8ab1940a46c7903113be59afc486c204f
+sha512 linux-4.19.268.tar.xz ffaea6200b7b9f82742a0473fc17b8bbd12c13384ffb8470d288579480f89e0ab264b333dbbcaf2fe97d6c2b7d1e87692820e5ba554d14e314c9749b544aebd2
+md5 linux-4.19.268.tar.gz 816b76f2f3d7cdd70e2d575529b8097a
+sha1 linux-4.19.268.tar.gz 1bc075e4ade7e8893875ed333971e72e6525536e
+sha256 linux-4.19.268.tar.gz 2a0d4053a1fa44e959500ac11265935c54690417e9e004ef8212f5dbaaf17787
+sha512 linux-4.19.268.tar.gz ae6e79137b118bf42ebccd169ec7a779ff4f2ee08399d0dedbd6e8e48f35d7c6a9e32512df585764121d148eac80a320a7fd133eb973b97f71ce861b64210db5
diff --git a/packages/linux/5.17.5/version.desc b/packages/linux/4.19.268/version.desc
index e69de29b..e69de29b 100644
--- a/packages/linux/5.17.5/version.desc
+++ b/packages/linux/4.19.268/version.desc
diff --git a/packages/linux/4.9.312/chksum b/packages/linux/4.9.312/chksum
deleted file mode 100644
index 06ed0faa..00000000
--- a/packages/linux/4.9.312/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-4.9.312.tar.xz 4a1c57907aab8044aa8dbc367abd5480
-sha1 linux-4.9.312.tar.xz f3e9096651b02f79a83b1ac8dbe7c47f8de4b7bf
-sha256 linux-4.9.312.tar.xz fa2fb1fb5ba2e6ed99603063474804bd5fddeb8a5ad769d47786f82109e5c627
-sha512 linux-4.9.312.tar.xz 074cdbe973e5d3aab9cb42ce0fa5f8d08113cfd368e3786466941b004fa06ac97b6430191d278a3ecb822e2b21faef31390c82d74b9d18dffc29ed9b13aebb05
-md5 linux-4.9.312.tar.gz 603566262cf3058ddde9e1eea7fe84f1
-sha1 linux-4.9.312.tar.gz 638b7d2c2ccb7e0f66d2c7f8b2a4dbb86abbb9d0
-sha256 linux-4.9.312.tar.gz 439c9589ec6571a04f2adc226af41654ae4b41c1cd6786b98f7df08f07df9523
-sha512 linux-4.9.312.tar.gz 3fba7e4b4e03984092649072ccf812eda09013f22aaa5c5ccf76975bc3f3d049c6c7102c67333c3f90bb36cf3b7b149505efcce64164867692ebae43eae741a3
diff --git a/packages/linux/4.9.335/chksum b/packages/linux/4.9.335/chksum
new file mode 100644
index 00000000..aaf2bef0
--- /dev/null
+++ b/packages/linux/4.9.335/chksum
@@ -0,0 +1,8 @@
+md5 linux-4.9.335.tar.xz d906ad9d26db2f22d71acdd76b28edf1
+sha1 linux-4.9.335.tar.xz adfef66bfff1a0056424ce64e3886ef88b624ace
+sha256 linux-4.9.335.tar.xz ed4fd861fe9f6cd09f409f00dcccfa691e6d1a61c585723e587575dcb60aeb29
+sha512 linux-4.9.335.tar.xz eca7d63b584f67855182805929c031d1e79ff5c7c79103d827a11c410c37e017792ed9a910de688a996af0209f55db37c71bf7ffb3571d9a4d9c68557bc8a184
+md5 linux-4.9.335.tar.gz 54fcbeaa3cd84a4605e17b41ae5d0df8
+sha1 linux-4.9.335.tar.gz 456dadd9bb2e26914efc276b8b6c563be7cac68e
+sha256 linux-4.9.335.tar.gz 0847729e7eac61f5a74a6333268e2140b60b6ed0139e340e5ef3b47553644feb
+sha512 linux-4.9.335.tar.gz 4744aa286d1ae15dfe17a463bb10d9a747b9db0335fd8e516f11af17795c4fe78bbf55a963e7f1c30db6c7fb6cbf33b7c88d536671151e011fe400505e9514bc
diff --git a/packages/linux/5.4.191/version.desc b/packages/linux/4.9.335/version.desc
index e69de29b..e69de29b 100644
--- a/packages/linux/5.4.191/version.desc
+++ b/packages/linux/4.9.335/version.desc
diff --git a/packages/linux/5.10.113/chksum b/packages/linux/5.10.113/chksum
deleted file mode 100644
index 01246966..00000000
--- a/packages/linux/5.10.113/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-5.10.113.tar.xz e795db1803356a4db19a58fb6e84e15d
-sha1 linux-5.10.113.tar.xz 6c81600197bbf157e9d31067382f86dc340f2880
-sha256 linux-5.10.113.tar.xz 82516a02bb52456f6e8057217dde6e02b78003b1e058117557c2ae9661696dfc
-sha512 linux-5.10.113.tar.xz 7099c83243f707d66ac09bf7215aa3fbc63957c2636fa63f287e526de210952c4106de411201e2ac001aa46c73c05cd4892e633911cfa30b96db7613f832b81f
-md5 linux-5.10.113.tar.gz b108c94cb93fa27998549b2903da9e72
-sha1 linux-5.10.113.tar.gz a576efc7847f08d700be849cacd1714690a1a4d8
-sha256 linux-5.10.113.tar.gz d7296a1a17d72d8037da9d657b59972426b5700028a6b88800ccb4795aff6e22
-sha512 linux-5.10.113.tar.gz 235074b861f7c18826747547ed4a023c559b8d5a0bf9659b0dec51ecf1e0549589ba11059df2f08d6c4e55d93039805cb7063dee118e6707a30b9fc300aa3412
diff --git a/packages/linux/5.10.158/chksum b/packages/linux/5.10.158/chksum
new file mode 100644
index 00000000..79a99214
--- /dev/null
+++ b/packages/linux/5.10.158/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.10.158.tar.xz fcb4928cafdefca55eb36fc88bf09a30
+sha1 linux-5.10.158.tar.xz 4979966cb568c4c4373de74e6ce957e3545c6041
+sha256 linux-5.10.158.tar.xz 1e0a24bb5510caa18b3601b25e12cc2a1ce123948de551f4f2cdbb40aea707e7
+sha512 linux-5.10.158.tar.xz 45bcb3c145500607d6328662776a5bd4e2fabe882677fefb5fcbf0377504ed1ca4ccddf1aff0a0f6b85ab79f6e9f91fb1377c33a7e14c7f352fa02ec40e67f4e
+md5 linux-5.10.158.tar.gz 20356140f96bde79096df62c8518d743
+sha1 linux-5.10.158.tar.gz 4b2a4d31e19cc9bfa4b07df185ad6af2b35265b2
+sha256 linux-5.10.158.tar.gz 71d9dd3a9b0d3ee05bba34881209a7093e64b8793532c352757b63e654feba84
+sha512 linux-5.10.158.tar.gz fcb9e1c1557f3ee6b7e89a4a3a39a4b1f095339ed868df9fc1e74d8b64f36e193c5325d45c5dd019ee2fd928191b950801df98f7f9a794300caa60528ed644d2
diff --git a/packages/picolibc/1.7.6/version.desc b/packages/linux/5.10.158/version.desc
index e69de29b..e69de29b 100644
--- a/packages/picolibc/1.7.6/version.desc
+++ b/packages/linux/5.10.158/version.desc
diff --git a/packages/linux/5.15.37/chksum b/packages/linux/5.15.37/chksum
deleted file mode 100644
index f29453ad..00000000
--- a/packages/linux/5.15.37/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-5.15.37.tar.xz 65937c1dd7bfebbe818c41ded47eb9d6
-sha1 linux-5.15.37.tar.xz a8478598547b6456a704088aabd87e0ba8217d17
-sha256 linux-5.15.37.tar.xz 18bf091a2157faa8d92a1aba2ecb66b5124bb0e033fc7797343984e069a2c026
-sha512 linux-5.15.37.tar.xz afc84a10b96e70b859ec328f8d803d7e270264c8649492899292b92650840586c08e1df3196af41c09185e68f2d400cdc302bd0a474cd4ee86c34979098fae48
-md5 linux-5.15.37.tar.gz 57a9a9bf476462a7c3838bce3314c9a3
-sha1 linux-5.15.37.tar.gz 38ddaad12282f4fce8191a45ba3c6263d91032b4
-sha256 linux-5.15.37.tar.gz 8d6e15823d6be11bc688de55bb1bbb413c0c93d4446204b56ad105a6900b606c
-sha512 linux-5.15.37.tar.gz 47e2cc3269e657992fa741a108891e8bbdfd5fb14dc6fe3f1610484a07da2b3138d42a8be62ff2148aa04c0eaf5b988c47e321859ec4acfab039bdd26ffdbe99
diff --git a/packages/linux/5.15.82/chksum b/packages/linux/5.15.82/chksum
new file mode 100644
index 00000000..056614a0
--- /dev/null
+++ b/packages/linux/5.15.82/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.15.82.tar.xz 39c6d368d79a321ad6b2db4e0f58e206
+sha1 linux-5.15.82.tar.xz 515f5e16dd6e66bfb54fc7be2bc6ae936da76c53
+sha256 linux-5.15.82.tar.xz fceef6bb79bac494663ccde34453521fc616cd94272fd30564752b3742381b65
+sha512 linux-5.15.82.tar.xz b0deb17077d9254e9a6eef853cdbcb7cbdde74cafef214d25961929d02a42fd61d306e3358b17a145999a0df3565c985de6149bd078330c63508ce8ce6fb4938
+md5 linux-5.15.82.tar.gz 76c2a1becb8b45996211476ef79ef419
+sha1 linux-5.15.82.tar.gz 79241dbc98a8f7f847cc4324e6a5beb2c7a837f7
+sha256 linux-5.15.82.tar.gz 2a138780b0d57648a454e09c0321464bd083f9cccd694bdc4e0c5b0f399b2ff1
+sha512 linux-5.15.82.tar.gz 73a42b3b86784a715188d14e41ef518a3efbb28bbc9a0a85b27bd975c77de7f6ca36430c2496b6f5d1714f122f2c563ba6c52537f2a521e0ba9c3896350e31ef
diff --git a/packages/linux/5.15.82/version.desc b/packages/linux/5.15.82/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/linux/5.15.82/version.desc
diff --git a/packages/linux/5.17.15/chksum b/packages/linux/5.17.15/chksum
new file mode 100644
index 00000000..63ffdb1b
--- /dev/null
+++ b/packages/linux/5.17.15/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.17.15.tar.xz 8a134c7c8920abdd7dc3a5ab563ba070
+sha1 linux-5.17.15.tar.xz d353a5e956c0bb39346150045f406c95de2454f0
+sha256 linux-5.17.15.tar.xz 4a1c922a490eeabf5b44d4fde36de9ba5b71711b7352c6258716da41160db628
+sha512 linux-5.17.15.tar.xz 0239fc941bd3dee4969f87d5a3bd90b6a6b5ebaed950a17a33e64ac6a110d3b9f7e287a134098403718c764b8dc78b72ed7979f820a20eeb3136f22d743c3aa1
+md5 linux-5.17.15.tar.gz 84aaa475944ad64dae801e136ca2cd65
+sha1 linux-5.17.15.tar.gz 663781872dba4c15dae4c04a7ce69b6beff12b3e
+sha256 linux-5.17.15.tar.gz 9a46bdf5324f860e4d166e46ced4759905f3579c17ce8399baf52a9820f5f35a
+sha512 linux-5.17.15.tar.gz 4d5c0031d492d9882dec9c45641c1df96e4a594eca5733ef2b076059f33a0abe117feed1ab95707caaad14a563c096833c06521e344c823afa1f64da4a27d14e
diff --git a/packages/linux/5.17.15/version.desc b/packages/linux/5.17.15/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/linux/5.17.15/version.desc
diff --git a/packages/linux/5.17.5/chksum b/packages/linux/5.17.5/chksum
deleted file mode 100644
index 96af5923..00000000
--- a/packages/linux/5.17.5/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-5.17.5.tar.xz 2d9d725a716d27c82ea31d2b4e802158
-sha1 linux-5.17.5.tar.xz 6556795e12798a3fb15a46d2f595607ddd35eb8b
-sha256 linux-5.17.5.tar.xz 9bbcd185b94436f9c8fe977fa0e862f60d34003562327fcebb27c9fa342fe987
-sha512 linux-5.17.5.tar.xz 9a0b97b0179094fa4c3f91ad1f94ac274b4b7946b3c5112995fd5f60b263389772491f1a756186bb638ee868d42ccd7449cb9aa3227f1637949b6b54418c6bab
-md5 linux-5.17.5.tar.gz ab1a19d42870572e410a607930f9dfa4
-sha1 linux-5.17.5.tar.gz 0f6292e6912d0d2149d8c3327583bf66a19db77c
-sha256 linux-5.17.5.tar.gz 40c2b07985ecb56366706fe46967f756b0405e7b91e666b6fa897623664fdbea
-sha512 linux-5.17.5.tar.gz 759309cb530df2057e708e2371ae2b5bf91d7c1eea74f36ef86739055ad617c8c9ba01457a4ef721217f11ebfdd3cad5998b3d8e6f7daa4bf5132a01e559122f
diff --git a/packages/linux/5.18.15/chksum b/packages/linux/5.18.15/chksum
new file mode 100644
index 00000000..d0c8646e
--- /dev/null
+++ b/packages/linux/5.18.15/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.18.15.tar.xz 81b9354a182dd58de132047530228dea
+sha1 linux-5.18.15.tar.xz 73ea219fc4c9560c199712cba45d6134982bb880
+sha256 linux-5.18.15.tar.xz 69804febdc388a69dfb64493b7b58d402853de3a14144ea8db7fd67c30dcbe3c
+sha512 linux-5.18.15.tar.xz 9436831b84727bd751741d1f569dc8bc314c33daf02d2405d4ef612ae6797dc4b3b96e13b46088db65e518052780f1bc30c0d1a4c528373d3509039dc055f835
+md5 linux-5.18.15.tar.gz 174823c2609ec316f3d88de36e3611c8
+sha1 linux-5.18.15.tar.gz 52205e69209a7a528f73a9d216b143431ee6e509
+sha256 linux-5.18.15.tar.gz 6b0549369f0131adec48e61bb450763a0e666493b1e87b4caf6f8b1114db228c
+sha512 linux-5.18.15.tar.gz 58f95d1e8b91a6af9938ae5cadaa8fde0c465e70e16927421d1f8bc68b3905181332104af5b72269b1926f2e70c1c3c89befee16c3d73bad9f98e7cbdffd0ad4
diff --git a/packages/linux/5.18.15/version.desc b/packages/linux/5.18.15/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/linux/5.18.15/version.desc
diff --git a/packages/linux/5.19.16/chksum b/packages/linux/5.19.16/chksum
new file mode 100644
index 00000000..c16d312c
--- /dev/null
+++ b/packages/linux/5.19.16/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.19.16.tar.xz 82402128d59f243efb91a468d8e4513d
+sha1 linux-5.19.16.tar.xz 017325ac51ae393eb644ba173f843dfaae5321ef
+sha256 linux-5.19.16.tar.xz a1ebaf667e1059ae2d72aa6374a4d6e2febc0b8ccda6a124687acc2ea961e08d
+sha512 linux-5.19.16.tar.xz 1ff662424830fbd48ac1d8c1aabd4d11a8eabc284c4fe3fdf803064d4f56d9c1b631a0fb60679bac40a4e05b77d5e6706a8fd52a5e025ef4f1231a6cc84bbbde
+md5 linux-5.19.16.tar.gz 15c43c56b85175aacafaaa4ef1983298
+sha1 linux-5.19.16.tar.gz cd7fb09335a4814a88fedf7ed064e6f10fd1c8db
+sha256 linux-5.19.16.tar.gz 9b835ea04b0210ad0748829367acd84e09357c3dd6d0f48e31737a7f21e990ff
+sha512 linux-5.19.16.tar.gz 9b0330c7257aecba3f6f97566014c03d8012e1b2c5c1ee2c3b5ea1b7a2ca01addf346b5235d772b26e4312b0fc1bb529689390445668606ed96e66174cf93341
diff --git a/packages/linux/5.19.16/version.desc b/packages/linux/5.19.16/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/linux/5.19.16/version.desc
diff --git a/packages/linux/5.4.191/chksum b/packages/linux/5.4.191/chksum
deleted file mode 100644
index a986c6df..00000000
--- a/packages/linux/5.4.191/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-5.4.191.tar.xz 62ebccb3b7967583c5e582294107f5df
-sha1 linux-5.4.191.tar.xz 26407c429db670dd2f889237706850c58eabe5c4
-sha256 linux-5.4.191.tar.xz 288ca85fcdad18e950ccbe3d640594ee36d5aac226321ed935076fadb0cc0a3a
-sha512 linux-5.4.191.tar.xz c94b274c3d49cbf3de085fabe99a0e63ff8fd6a6628eb0f2182db06b0480bc0c67991de9c5786c1d252e020b3cda4ccb29ce93ab599065149b3211786842baa0
-md5 linux-5.4.191.tar.gz e29be380cba82542450e6f271a8cbfa9
-sha1 linux-5.4.191.tar.gz a26e2fa3a0af7134ab578fb7a684f7fa098f0048
-sha256 linux-5.4.191.tar.gz 7a65526ede154152bb83a2e7e2b781172a35571b765f686578b945979164f858
-sha512 linux-5.4.191.tar.gz 2e0ef7165e4d52a2e549d3f8cc3e534ba3c89a36434c1e758bd63aa256a1eaaced8beeceb7896af2d5d16dc2afc8d043d35e9256601fe70038faa5298af7fc86
diff --git a/packages/linux/5.4.226/chksum b/packages/linux/5.4.226/chksum
new file mode 100644
index 00000000..6f998297
--- /dev/null
+++ b/packages/linux/5.4.226/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.4.226.tar.xz 63993a9d57008a1b2c7aad261ab2bba9
+sha1 linux-5.4.226.tar.xz 719a7f8bb1a8a541590b14ae6bf4aa9a777a5d63
+sha256 linux-5.4.226.tar.xz 0c1f552a1d2f63b3ecd4d33189f0003bc91fb8ff79967a7e295d015c280c9a44
+sha512 linux-5.4.226.tar.xz 154c11c58465985e5c68821c4483130c7fe4213fb2dfb4874ffe9d179ccdc9673a04f11d9596116f6105b3dcaa56da9f4305454cdd863b3ded5e24ef6948370d
+md5 linux-5.4.226.tar.gz 7dfc70ed50e729363f11effb837dadc0
+sha1 linux-5.4.226.tar.gz 50680f732ba868200a781a40f35ee42e40ca3275
+sha256 linux-5.4.226.tar.gz d17b08833b299ff821fd461ebd35c7aff90f4277d77a1a8536c810d56c5ca1c9
+sha512 linux-5.4.226.tar.gz 6f1f020ba36f610c843170e1f775828c50fc866bcad717abc75eae0e238761e9916a53e7539b7e1792da0dccd5be30ba5012d9a4064c2cad49af666bcbef3779
diff --git a/packages/linux/5.4.226/version.desc b/packages/linux/5.4.226/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/linux/5.4.226/version.desc
diff --git a/packages/linux/6.0.12/chksum b/packages/linux/6.0.12/chksum
new file mode 100644
index 00000000..c33840e5
--- /dev/null
+++ b/packages/linux/6.0.12/chksum
@@ -0,0 +1,8 @@
+md5 linux-6.0.12.tar.xz 44933812ad926f5000f01ac108d41ee8
+sha1 linux-6.0.12.tar.xz 97f5627bc5d845b09eadf92af513462fd9b3e9c7
+sha256 linux-6.0.12.tar.xz 89b730edf8942b49e02f9894244205886c9a214d629b35b88c4ff06ee9304f01
+sha512 linux-6.0.12.tar.xz 8a3060f85bf21ff6b963d82e1de13a553ab5b44d0602941168b007fc008a4a9fda4048974844c215bfc479359d8eb75bf94f5d21177e28a340b7c0db9e29dcfa
+md5 linux-6.0.12.tar.gz c5329153967c45de2f06aea39f0aae2f
+sha1 linux-6.0.12.tar.gz 3474a9cbf0b6aff988a150f2541c4e253a968c7c
+sha256 linux-6.0.12.tar.gz 1ed4c4f14399ab216253f69de0e18568c8aa4ef9c36c73c9ea2eb936473fd0bf
+sha512 linux-6.0.12.tar.gz 8cc2981d2beb77ec2ddb8962a082da2d2b1f07d1cd6242c1ba8e99bd61c97aca579492988776f0a54a5de6884bd75c95751014bb86ffa42d5e928e271edfa5e1
diff --git a/packages/linux/6.0.12/version.desc b/packages/linux/6.0.12/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/linux/6.0.12/version.desc
diff --git a/packages/linux/6.1/chksum b/packages/linux/6.1/chksum
new file mode 100644
index 00000000..a68f21fb
--- /dev/null
+++ b/packages/linux/6.1/chksum
@@ -0,0 +1,8 @@
+md5 linux-6.1.tar.xz 475320de08f16c9fa486fc4edfe98b30
+sha1 linux-6.1.tar.xz 30996d7c1c59ddbd495bd9eb37c8dfdb1a67c1c3
+sha256 linux-6.1.tar.xz 2ca1f17051a430f6fed1196e4952717507171acfd97d96577212502703b25deb
+sha512 linux-6.1.tar.xz 6ed2a73c2699d0810e54753715635736fc370288ad5ce95c594f2379959b0e418665cd71bc512a0273fe226fe90074d8b10d14c209080a6466498417a4fdda68
+md5 linux-6.1.tar.gz 32445cd604f81b6fd0d023bc009a6a1d
+sha1 linux-6.1.tar.gz e7fdde90c7b6638226e353cbd17c9eae67a40a09
+sha256 linux-6.1.tar.gz de4ee64f1e86da97c0c2974c02a77c01ea81eed0c04b6319fbc719810104de92
+sha512 linux-6.1.tar.gz 9d8a57d9071ffe6bd7e43a52d565e455ac00e64d40137d964c66fe47838b178dddc5c278b18d3486f80966a57a8eac720c45291ea822d64996202dccbeccd4b7
diff --git a/packages/linux/6.1/version.desc b/packages/linux/6.1/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/linux/6.1/version.desc
diff --git a/packages/linux/package.desc b/packages/linux/package.desc
index 9a1b98df..3d29b4f7 100644
--- a/packages/linux/package.desc
+++ b/packages/linux/package.desc
@@ -2,6 +2,6 @@ origin='www.kernel.org'
repository='git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'
mirrors='$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})'
relevantpattern='2.*.*|. *.*|.'
-milestones='3.2 3.7 4.8 5.3 5.5 5.12'
+milestones='3.2 3.7 4.8 5.3 5.5 5.12 5.19'
archive_formats='.tar.xz .tar.gz'
signature_format='unpacked/.sign'
diff --git a/packages/make/4.2.1/version.desc b/packages/make/4.2.1/version.desc
index 30f929c4..f26b5a26 100644
--- a/packages/make/4.2.1/version.desc
+++ b/packages/make/4.2.1/version.desc
@@ -1,2 +1,2 @@
-
+obsolete='yes'
archive_formats='.tar.bz2 .tar.gz'
diff --git a/packages/make/4.3/version.desc b/packages/make/4.3/version.desc
index e69de29b..fcfe3891 100644
--- a/packages/make/4.3/version.desc
+++ b/packages/make/4.3/version.desc
@@ -0,0 +1 @@
+obsolete='yes'
diff --git a/packages/make/4.4/chksum b/packages/make/4.4/chksum
new file mode 100644
index 00000000..7254bea0
--- /dev/null
+++ b/packages/make/4.4/chksum
@@ -0,0 +1,8 @@
+md5 make-4.4.tar.lz 5da8b0fcc500de9c254ca59e58558b27
+sha1 make-4.4.tar.lz bd8e12c82af57e4db7c35b43e09f802f3922696d
+sha256 make-4.4.tar.lz 48d0fc0b2a04bb50f2911c16da65723285f7f4804c74fc5a2124a3df6c5f78c4
+sha512 make-4.4.tar.lz 937945e1de5e370e79f379c867ca37bf7b3559a8b002a9e67c4973071e706f7afc5e419ac5d3348e7a677d5673cdcaa2476120297ec3e5f1c8f28f282cff2579
+md5 make-4.4.tar.gz d7575a26a94ee8427130e9db23cdaa78
+sha1 make-4.4.tar.gz 02910501c2065479c6c7a4855b6ecdf3ac4464d8
+sha256 make-4.4.tar.gz 581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18
+sha512 make-4.4.tar.gz 4be73f494295dcfa10034531b0d920cfdb5438bc20625f863f5c878549c140e1e67195162580c53060c3c11c67a2c739c09051f02cdd283e5aa9ebcd68975a1f
diff --git a/packages/make/4.4/version.desc b/packages/make/4.4/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/make/4.4/version.desc
diff --git a/packages/newlib-nano/package.desc b/packages/newlib-nano/package.desc
index ba18016a..8082c940 100644
--- a/packages/newlib-nano/package.desc
+++ b/packages/newlib-nano/package.desc
@@ -2,7 +2,7 @@ origin='RedHat'
repository='git git://sourceware.org/git/newlib-cygwin.git'
# Do not use "$(CT_Mirrors sourceware newlib)" here: the mirrors (kernel.org
# and gnu.org) only store some older releases of newlib (2.0.0 and before).
-mirrors='ftp://sourceware.org/pub/newlib'
+mirrors='https://sourceware.org/pub/newlib'
relevantpattern='*.*|.*. *.*|.'
archive_filename='newlib-@{version}'
archive_dirname='newlib-@{version}'
diff --git a/packages/newlib/package.desc b/packages/newlib/package.desc
index 27a5fa6e..f3801daf 100644
--- a/packages/newlib/package.desc
+++ b/packages/newlib/package.desc
@@ -2,6 +2,6 @@ origin='RedHat'
repository='git git://sourceware.org/git/newlib-cygwin.git'
# Do not use "$(CT_Mirrors sourceware newlib)" here: the mirrors (kernel.org
# and gnu.org) only store some older releases of newlib (2.0.0 and before).
-mirrors='ftp://sourceware.org/pub/newlib'
+mirrors='https://sourceware.org/pub/newlib'
relevantpattern='*.*|.*. *.*|.'
archive_formats='.tar.gz'
diff --git a/packages/picolibc/1.7.6/chksum b/packages/picolibc/1.7.6/chksum
deleted file mode 100644
index 91af13ce..00000000
--- a/packages/picolibc/1.7.6/chksum
+++ /dev/null
@@ -1,4 +0,0 @@
-md5 picolibc-1.7.6.tar.xz 9e7b678ac097d8be75958620cea90063
-sha1 picolibc-1.7.6.tar.xz 12d8b9cbbed41abe03b85840f75f494b470be054
-sha256 picolibc-1.7.6.tar.xz 7f01f74304298125d760038e6ce9d0ba63845f9ae27d7b28f35677db0ccf2981
-sha512 picolibc-1.7.6.tar.xz 67ce99e866e9b917a5d6be90022d73e994071b8134fc0d6414a3ec8eef2d03c1a73b98c0aa556e009424dd37b75116cc885c06d3bcd10790b612cead03db0fd5
diff --git a/packages/picolibc/1.7.9/chksum b/packages/picolibc/1.7.9/chksum
new file mode 100644
index 00000000..2b39d8b3
--- /dev/null
+++ b/packages/picolibc/1.7.9/chksum
@@ -0,0 +1,4 @@
+md5 picolibc-1.7.9.tar.xz 23c37660dda10c32f1fd1f280ed97913
+sha1 picolibc-1.7.9.tar.xz b082feda14c8fb95b2b1e4beff714eb99bdd9c52
+sha256 picolibc-1.7.9.tar.xz 4b0042344fe7be61adf44ae098f94e21a90ac5179152b3a5ea779451c8e914ab
+sha512 picolibc-1.7.9.tar.xz 71f15f274ff406042ac9f8c074bc4cc003d4d47fca1bef12abe7409e5c439a73d9a34a711d5ca22a40a98a828c9db2553baf5e071176db3c835daf727a18ea78
diff --git a/packages/picolibc/1.7.9/version.desc b/packages/picolibc/1.7.9/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/picolibc/1.7.9/version.desc
diff --git a/packages/picolibc/1.8/chksum b/packages/picolibc/1.8/chksum
new file mode 100644
index 00000000..ea275789
--- /dev/null
+++ b/packages/picolibc/1.8/chksum
@@ -0,0 +1,4 @@
+md5 picolibc-1.8.tar.xz 855bebc94a5b91fa037a64b4c55a7b01
+sha1 picolibc-1.8.tar.xz b999596ecb48f058a9a34fdd6d087b32bbd1c907
+sha256 picolibc-1.8.tar.xz cad52d2b690a22d00aa8486234a1df24136828b469e6b5328c171ebcf610f382
+sha512 picolibc-1.8.tar.xz e468a4c6e18ab2289a78ab496a3b1699db4b39d69c3a3bc8577a0fff42e07afce0cf5fe58cd789c04ea93ed66418cd3a8d59c635d64195116bdf327d5671e56a
diff --git a/packages/picolibc/1.8/version.desc b/packages/picolibc/1.8/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/picolibc/1.8/version.desc
diff --git a/packages/picolibc/package.desc b/packages/picolibc/package.desc
index 15206e66..cdaf198c 100644
--- a/packages/picolibc/package.desc
+++ b/packages/picolibc/package.desc
@@ -1,6 +1,6 @@
origin='keithp.com'
repository='git https://github.com/picolibc/picolibc.git'
-milestones='1.4 1.5 1.6 1.7'
+milestones='1.4 1.5 1.6 1.7 1.8'
relevantpattern='*.*|.*. *.*|.'
archive_formats='.tar.xz'
mirrors='https://github.com/picolibc/picolibc/releases/download/${CT_PICOLIBC_VERSION}'
diff --git a/packages/strace/5.16/version.desc b/packages/strace/5.16/version.desc
index e69de29b..fcfe3891 100644
--- a/packages/strace/5.16/version.desc
+++ b/packages/strace/5.16/version.desc
@@ -0,0 +1 @@
+obsolete='yes'
diff --git a/packages/strace/6.1/chksum b/packages/strace/6.1/chksum
new file mode 100644
index 00000000..e6b94916
--- /dev/null
+++ b/packages/strace/6.1/chksum
@@ -0,0 +1,4 @@
+md5 strace-6.1.tar.xz cbd758b0545b678cd7ac09c683ade002
+sha1 strace-6.1.tar.xz b451b02579bc473e5f0e559ce40be634026e3f2b
+sha256 strace-6.1.tar.xz 2579e9cec37dbb786f6ea0bebd15f40dd561ef2bde2a2a2ecdce5963b01859fd
+sha512 strace-6.1.tar.xz 3f0678d74c5c3e6b30c4dc4ed7ee4cb0829d3b7142dc014fcd887db3a68133bf7fedc623bae381dfe4305bd6cd15d4ca6776c6491009c2a053bb8c6ca1ae8e12
diff --git a/packages/strace/6.1/version.desc b/packages/strace/6.1/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/strace/6.1/version.desc
diff --git a/packages/zlib/1.2.12/version.desc b/packages/zlib/1.2.12/version.desc
index e69de29b..fcfe3891 100644
--- a/packages/zlib/1.2.12/version.desc
+++ b/packages/zlib/1.2.12/version.desc
@@ -0,0 +1 @@
+obsolete='yes'
diff --git a/packages/zlib/1.2.13/0000-mingw-static-only.patch b/packages/zlib/1.2.13/0000-mingw-static-only.patch
new file mode 100644
index 00000000..cab2389c
--- /dev/null
+++ b/packages/zlib/1.2.13/0000-mingw-static-only.patch
@@ -0,0 +1,28 @@
+---
+ win32/Makefile.gcc | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/win32/Makefile.gcc
++++ b/win32/Makefile.gcc
+@@ -66,7 +66,11 @@
+ gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o
+ OBJA =
+
+-all: $(STATICLIB) $(SHAREDLIB) $(IMPLIB) example.exe minigzip.exe example_d.exe minigzip_d.exe
++all: $(STATICLIB) example.exe minigzip.exe
++
++ifeq ($(SHARED_MODE),1)
++all: $(SHAREDLIB) $(IMPLIB) example_d.exe minigzip_d.exe
++endif
+
+ test: example.exe minigzip.exe
+ ./example
+@@ -120,7 +124,7 @@
+ .PHONY: install uninstall clean
+
+ install: zlib.h zconf.h $(STATICLIB) $(IMPLIB)
+- @if test -z "$(DESTDIR)$(INCLUDE_PATH)" -o -z "$(DESTDIR)$(LIBRARY_PATH)" -o -z "$(DESTDIR)$(BINARY_PATH)"; then \
++ @if test -z "$(INCLUDE_PATH)" -o -z "$(LIBRARY_PATH)" -o -z "$(BINARY_PATH)"; then \
+ echo INCLUDE_PATH, LIBRARY_PATH, and BINARY_PATH must be specified; \
+ exit 1; \
+ fi
diff --git a/packages/zlib/1.2.13/0001-crossbuild-macos-libtool.patch b/packages/zlib/1.2.13/0001-crossbuild-macos-libtool.patch
new file mode 100644
index 00000000..daa62448
--- /dev/null
+++ b/packages/zlib/1.2.13/0001-crossbuild-macos-libtool.patch
@@ -0,0 +1,34 @@
+From: Heiko Lewin <heiko.lewin@worldiety.de>
+Date: Fri, 22 May 2020 03:32:33 +0200
+Subject: configure: use LIBTOOL variable for Darwin builds
+
+---
+ configure | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+--- a/configure
++++ b/configure
+@@ -69,6 +69,12 @@
+ else
+ NM=${NM-"nm"}
+ fi
++if "${CROSS_PREFIX}libtool" --version >/dev/null 2>/dev/null || test $? -lt 126; then
++ LIBTOOL=${LIBTOOL-"${CROSS_PREFIX}libtool"}
++ test -n "${CROSS_PREFIX}" && echo Using ${LIBTOOL} | tee -a configure.log
++else
++ LIBTOOL=${LIBTOOL-"libtool"}
++fi
+
+ # set defaults before processing command line options
+ LDCONFIG=${LDCONFIG-"ldconfig"}
+@@ -260,8 +266,8 @@
+ SHAREDLIBV=libz.$VER$shared_ext
+ SHAREDLIBM=libz.$VER1$shared_ext
+ LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"}
+- if libtool -V 2>&1 | grep Apple > /dev/null; then
+- AR="libtool"
++ if ${LIBTOOL} -V 2>&1 | grep Apple > /dev/null; then
++ AR="${LIBTOOL}"
+ else
+ AR="/usr/bin/libtool"
+ fi
diff --git a/packages/zlib/1.2.13/chksum b/packages/zlib/1.2.13/chksum
new file mode 100644
index 00000000..214209bd
--- /dev/null
+++ b/packages/zlib/1.2.13/chksum
@@ -0,0 +1,8 @@
+md5 zlib-1.2.13.tar.xz 7d9fc1d78ae2fa3e84fe98b77d006c63
+sha1 zlib-1.2.13.tar.xz b459b42aa533968ae403c0002a255d62d3136954
+sha256 zlib-1.2.13.tar.xz d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98
+sha512 zlib-1.2.13.tar.xz 9e7ac71a1824855ae526506883e439456b74ac0b811d54e94f6908249ba8719bec4c8d7672903c5280658b26cb6b5e93ecaaafe5cdc2980c760fa196773f0725
+md5 zlib-1.2.13.tar.gz 9b8aa094c4e5765dabf4da391f00d15c
+sha1 zlib-1.2.13.tar.gz 55eaa84906f31ac20d725aa26cd20839196b6ba6
+sha256 zlib-1.2.13.tar.gz b3a24de97a8fdbc835b9833169501030b8977031bcb54b3b3ac13740f846ab30
+sha512 zlib-1.2.13.tar.gz 99f0e843f52290e6950cc328820c0f322a4d934a504f66c7caa76bd0cc17ece4bf0546424fc95135de85a2656fed5115abb835fd8d8a390d60ffaf946c8887ad
diff --git a/packages/zlib/1.2.13/version.desc b/packages/zlib/1.2.13/version.desc
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/packages/zlib/1.2.13/version.desc
diff --git a/packages/zlib/package.desc b/packages/zlib/package.desc
index d85e5656..2a3984f3 100644
--- a/packages/zlib/package.desc
+++ b/packages/zlib/package.desc
@@ -1,4 +1,4 @@
repository='git https://github.com/madler/zlib.git'
-mirrors='http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION} https://www.zlib.net/'
+mirrors='https://github.com/madler/zlib/releases/download/v${CT_ZLIB_VERSION} https://www.zlib.net/'
archive_formats='.tar.xz .tar.gz'
signature_format='packed/.asc'