summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/continuous-integration-workflow.yml86
-rw-r--r--README.md3
-rwxr-xr-xbootstrap10
-rw-r--r--config/configure.in.in6
-rw-r--r--config/global/extract.in6
-rw-r--r--config/libc/glibc.in5
-rw-r--r--config/libc/picolibc.in124
-rw-r--r--configure.ac10
-rw-r--r--packages/binutils/2.23.2/0016-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.24/0025-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.25.1/0023-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.26.1/0013-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.27/0012-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.28.1/0009-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.29.1/0009-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.30/0009-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.31.1/0012-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.32/0009-Fix-a-missing-include-of-string.patch26
-rw-r--r--packages/binutils/2.35.1/0000-sh-conf.patch34
-rw-r--r--packages/binutils/2.35.1/0001-ld_makefile_patch.patch27
-rw-r--r--packages/binutils/2.35.1/0002-check_ldrunpath_length.patch24
-rw-r--r--packages/binutils/2.35.1/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch15
-rw-r--r--packages/binutils/2.35.1/0004-Dont-link-to-libfl-as-its-unnecessary.patch105
-rw-r--r--packages/binutils/2.35.1/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch15
-rw-r--r--packages/binutils/2.35.1/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch70
-rw-r--r--packages/binutils/2.35.1/0007-sysroot.patch41
-rw-r--r--packages/binutils/2.35.1/0008-poison-system-directories.patch279
-rw-r--r--packages/binutils/2.35.1/0009-Import-patch-from-mainline-to-fix-decoding-DWARF-inf.patch36
-rw-r--r--packages/binutils/2.35.1/0010-arm-Fix-the-wrong-error-message-string-for-mve-vldr-.patch926
-rw-r--r--packages/binutils/2.35.1/chksum12
-rw-r--r--packages/binutils/2.35.1/version.desc (renamed from packages/linux/5.5.5/version.desc)0
-rw-r--r--packages/expat/package.desc2
-rw-r--r--packages/gcc/10.2.0/0000-libtool-leave-framework-alone.patch (renamed from packages/gcc/9.2.0/0000-libtool-leave-framework-alone.patch)0
-rw-r--r--packages/gcc/10.2.0/0001-uclibc-conf.patch (renamed from packages/gcc/9.2.0/0001-uclibc-conf.patch)0
-rw-r--r--packages/gcc/10.2.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch163
-rw-r--r--packages/gcc/10.2.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch (renamed from packages/gcc/9.2.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch)0
-rw-r--r--packages/gcc/10.2.0/0004-arm-softfloat-libgcc.patch (renamed from packages/gcc/9.2.0/0004-arm-softfloat-libgcc.patch)0
-rw-r--r--packages/gcc/10.2.0/0005-fix-m68k-uclinux.patch21
-rw-r--r--packages/gcc/10.2.0/0006-libgfortran-missing-include.patch14
-rw-r--r--packages/gcc/10.2.0/0007-nios2-bad-multilib-default.patch (renamed from packages/gcc/9.2.0/0007-nios2-bad-multilib-default.patch)0
-rw-r--r--packages/gcc/10.2.0/0008-libgcc-disable-split-stack-nothreads.patch (renamed from packages/gcc/9.2.0/0008-libgcc-disable-split-stack-nothreads.patch)0
-rw-r--r--packages/gcc/10.2.0/0009-bionic-ndk.patch (renamed from packages/gcc/9.2.0/0009-bionic-ndk.patch)0
-rw-r--r--packages/gcc/10.2.0/0010-crystax.patch529
-rw-r--r--packages/gcc/10.2.0/0011-crystax.patch (renamed from packages/gcc/9.2.0/0011-crystax.patch)0
-rw-r--r--packages/gcc/10.2.0/0012-crystax.patch278
-rw-r--r--packages/gcc/10.2.0/0013-crystax.patch (renamed from packages/gcc/9.2.0/0013-crystax.patch)2
-rw-r--r--packages/gcc/10.2.0/0014-crystax.patch (renamed from packages/gcc/9.2.0/0014-crystax.patch)0
-rw-r--r--packages/gcc/10.2.0/0015-crystax.patch (renamed from packages/gcc/9.2.0/0015-crystax.patch)2
-rw-r--r--packages/gcc/10.2.0/0016-crystax.patch (renamed from packages/gcc/9.2.0/0016-crystax.patch)0
-rw-r--r--packages/gcc/10.2.0/0017-crystax.patch (renamed from packages/gcc/9.2.0/0017-crystax.patch)0
-rw-r--r--packages/gcc/10.2.0/0018-isl-0.20.patch (renamed from packages/gcc/9.2.0/0018-isl-0.20.patch)0
-rw-r--r--packages/gcc/10.2.0/chksum8
-rw-r--r--packages/gcc/10.2.0/version.desc (renamed from packages/linux/5.4.21/version.desc)0
-rw-r--r--packages/gcc/8.3.0/chksum8
-rw-r--r--packages/gcc/8.4.0/0000-libtool-leave-framework-alone.patch (renamed from packages/gcc/8.3.0/0000-libtool-leave-framework-alone.patch)0
-rw-r--r--packages/gcc/8.4.0/0001-uclibc-conf.patch (renamed from packages/gcc/8.3.0/0001-uclibc-conf.patch)0
-rw-r--r--packages/gcc/8.4.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch (renamed from packages/gcc/8.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch)0
-rw-r--r--packages/gcc/8.4.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch (renamed from packages/gcc/8.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch)0
-rw-r--r--packages/gcc/8.4.0/0004-arm-softfloat-libgcc.patch (renamed from packages/gcc/8.3.0/0004-arm-softfloat-libgcc.patch)0
-rw-r--r--packages/gcc/8.4.0/0005-fix-m68k-uclinux.patch (renamed from packages/gcc/8.3.0/0005-fix-m68k-uclinux.patch)0
-rw-r--r--packages/gcc/8.4.0/0006-libgfortran-missing-include.patch (renamed from packages/gcc/8.3.0/0006-libgfortran-missing-include.patch)0
-rw-r--r--packages/gcc/8.4.0/0007-nios2-bad-multilib-default.patch (renamed from packages/gcc/8.3.0/0007-nios2-bad-multilib-default.patch)0
-rw-r--r--packages/gcc/8.4.0/0008-libgcc-disable-split-stack-nothreads.patch (renamed from packages/gcc/8.3.0/0008-libgcc-disable-split-stack-nothreads.patch)0
-rw-r--r--packages/gcc/8.4.0/0009-bionic-ndk.patch (renamed from packages/gcc/8.3.0/0009-bionic-ndk.patch)0
-rw-r--r--packages/gcc/8.4.0/0010-crystax.patch (renamed from packages/gcc/8.3.0/0010-crystax.patch)0
-rw-r--r--packages/gcc/8.4.0/0011-crystax.patch (renamed from packages/gcc/8.3.0/0011-crystax.patch)0
-rw-r--r--packages/gcc/8.4.0/0012-crystax.patch (renamed from packages/gcc/8.3.0/0012-crystax.patch)0
-rw-r--r--packages/gcc/8.4.0/0013-crystax.patch (renamed from packages/gcc/8.3.0/0013-crystax.patch)0
-rw-r--r--packages/gcc/8.4.0/0014-crystax.patch (renamed from packages/gcc/8.3.0/0014-crystax.patch)0
-rw-r--r--packages/gcc/8.4.0/0015-crystax.patch (renamed from packages/gcc/8.3.0/0015-crystax.patch)0
-rw-r--r--packages/gcc/8.4.0/0016-crystax.patch (renamed from packages/gcc/8.3.0/0016-crystax.patch)0
-rw-r--r--packages/gcc/8.4.0/0017-crystax.patch (renamed from packages/gcc/8.3.0/0017-crystax.patch)0
-rw-r--r--packages/gcc/8.4.0/0018-ARC-Add-multilib-support-for-linux-targets.patch (renamed from packages/gcc/8.3.0/0018-ARC-Add-multilib-support-for-linux-targets.patch)0
-rw-r--r--packages/gcc/8.4.0/0019-isl-0.20.patch (renamed from packages/gcc/8.3.0/0019-isl-0.20.patch)0
-rw-r--r--packages/gcc/8.4.0/0020-ARM-fix-cmse.patch (renamed from packages/gcc/8.3.0/0020-ARM-fix-cmse.patch)0
-rw-r--r--packages/gcc/8.4.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch (renamed from packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch)0
-rw-r--r--packages/gcc/8.4.0/0022-ARC-Update-fma-expansions.patch (renamed from packages/gcc/8.3.0/0022-ARC-Update-fma-expansions.patch)0
-rw-r--r--packages/gcc/8.4.0/chksum8
-rw-r--r--packages/gcc/8.4.0/version.desc (renamed from packages/linux/4.9.214/version.desc)0
-rw-r--r--packages/gcc/9.2.0/chksum8
-rw-r--r--packages/gcc/9.3.0/0000-libtool-leave-framework-alone.patch18
-rw-r--r--packages/gcc/9.3.0/0001-uclibc-conf.patch17
-rw-r--r--packages/gcc/9.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch (renamed from packages/gcc/9.2.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch)6
-rw-r--r--packages/gcc/9.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch14
-rw-r--r--packages/gcc/9.3.0/0004-arm-softfloat-libgcc.patch31
-rw-r--r--packages/gcc/9.3.0/0005-fix-m68k-uclinux.patch (renamed from packages/gcc/9.2.0/0005-fix-m68k-uclinux.patch)0
-rw-r--r--packages/gcc/9.3.0/0006-libgfortran-missing-include.patch (renamed from packages/gcc/9.2.0/0006-libgfortran-missing-include.patch)0
-rw-r--r--packages/gcc/9.3.0/0007-nios2-bad-multilib-default.patch31
-rw-r--r--packages/gcc/9.3.0/0008-libgcc-disable-split-stack-nothreads.patch17
-rw-r--r--packages/gcc/9.3.0/0009-bionic-ndk.patch60
-rw-r--r--packages/gcc/9.3.0/0010-crystax.patch (renamed from packages/gcc/9.2.0/0010-crystax.patch)16
-rw-r--r--packages/gcc/9.3.0/0011-crystax.patch27
-rw-r--r--packages/gcc/9.3.0/0012-crystax.patch (renamed from packages/gcc/9.2.0/0012-crystax.patch)6
-rw-r--r--packages/gcc/9.3.0/0013-crystax.patch22
-rw-r--r--packages/gcc/9.3.0/0014-crystax.patch26
-rw-r--r--packages/gcc/9.3.0/0015-crystax.patch33
-rw-r--r--packages/gcc/9.3.0/0016-crystax.patch23
-rw-r--r--packages/gcc/9.3.0/0017-crystax.patch34
-rw-r--r--packages/gcc/9.3.0/0018-isl-0.20.patch26
-rw-r--r--packages/gcc/9.3.0/chksum8
-rw-r--r--packages/gcc/9.3.0/version.desc (renamed from packages/linux/4.19.105/version.desc)0
-rw-r--r--packages/gdb/8.2.1/0005-musl-aarch64-sigcontext.patch17
-rw-r--r--packages/gdb/9.1/chksum8
-rw-r--r--packages/gdb/9.2/0000-musl_fix.patch (renamed from packages/gdb/9.1/0000-musl_fix.patch)0
-rw-r--r--packages/gdb/9.2/0001-uclibc-no-gettimeofday-clobber.patch (renamed from packages/gdb/9.1/0001-uclibc-no-gettimeofday-clobber.patch)0
-rw-r--r--packages/gdb/9.2/0002-xtensa-make-sure-ar_base-is-initialized.patch (renamed from packages/gdb/9.1/0002-xtensa-make-sure-ar_base-is-initialized.patch)0
-rw-r--r--packages/gdb/9.2/0003-WIP-end-of-prologue-detection-hack.patch (renamed from packages/gdb/9.1/0003-WIP-end-of-prologue-detection-hack.patch)0
-rw-r--r--packages/gdb/9.2/0004-allow-android.patch (renamed from packages/gdb/9.1/0004-allow-android.patch)0
-rw-r--r--packages/gdb/9.2/chksum8
-rw-r--r--packages/gdb/9.2/version.desc (renamed from packages/linux/4.14.171/version.desc)0
-rw-r--r--packages/glibc/2.12.1/0044-new-tools.patch4
-rw-r--r--packages/glibc/2.12.2/0007-new-tools.patch4
-rw-r--r--packages/glibc/2.13/0043-new-tools.patch4
-rw-r--r--packages/glibc/2.14.1/0043-new-tools.patch4
-rw-r--r--packages/glibc/2.15/0044-new-tools.patch4
-rw-r--r--packages/glibc/2.16.0/0042-fix-GCC-10-detection.patch25
-rw-r--r--packages/glibc/2.17/0018-fix-GCC-10-detection.patch25
-rw-r--r--packages/glibc/2.18/0019-fix-GCC-10-detection.patch25
-rw-r--r--packages/glibc/2.19/0017-Fix-cmpli-usage-in-power6-memset.patch49
-rw-r--r--packages/glibc/2.19/0017-fix-GCC-10-detection.patch25
-rw-r--r--packages/glibc/2.20/0017-Fix-cmpli-usage-in-power6-memset.patch49
-rw-r--r--packages/glibc/2.20/0017-fix-GCC-10-detection.patch25
-rw-r--r--packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch49
-rw-r--r--packages/glibc/2.22/0017-Fix-cmpli-usage-in-power6-memset.patch49
-rw-r--r--packages/glibc/2.23/0013-Fix-cmpli-usage-in-power6-memset.patch49
-rw-r--r--packages/glibc/2.27/0001-Fix-build-with-GCC-10-when-long-double-double.patch166
-rw-r--r--packages/glibc/2.28/0002-Fix-build-with-GCC-10-when-long-double-double.patch166
-rw-r--r--packages/glibc/2.29/0003-Fix-build-with-GCC-10-when-long-double-double.patch166
-rw-r--r--packages/glibc/2.30/0003-Fix-build-with-GCC-10-when-long-double-double.patch166
-rw-r--r--packages/glibc/2.31/0002-Fix-build-with-GCC-10-when-long-double-double.patch166
-rw-r--r--packages/glibc/2.32/0000-typedef-caddr.patch17
-rw-r--r--packages/glibc/2.32/0001-Set-version.h-RELEASE-to-stable-Bug-26700.patch26
-rw-r--r--packages/glibc/2.32/chksum12
-rw-r--r--packages/glibc/2.32/version.desc1
-rw-r--r--packages/glibc/package.desc4
-rw-r--r--packages/libelf/package.desc2
-rw-r--r--packages/linux/4.14.171/chksum8
-rw-r--r--packages/linux/4.14.198/chksum8
-rw-r--r--packages/linux/4.14.198/version.desc (renamed from packages/gdb/9.1/version.desc)0
-rw-r--r--packages/linux/4.19.105/chksum8
-rw-r--r--packages/linux/4.19.145/chksum8
-rw-r--r--packages/linux/4.19.145/version.desc (renamed from packages/gcc/9.2.0/version.desc)0
-rw-r--r--packages/linux/4.4.214/chksum8
-rw-r--r--packages/linux/4.4.214/version.desc1
-rw-r--r--packages/linux/4.4.236/chksum8
-rw-r--r--packages/linux/4.4.236/version.desc (renamed from packages/gcc/8.3.0/version.desc)0
-rw-r--r--packages/linux/4.9.214/chksum8
-rw-r--r--packages/linux/4.9.236/chksum8
-rw-r--r--packages/linux/4.9.236/version.desc0
-rw-r--r--packages/linux/5.4.21/chksum8
-rw-r--r--packages/linux/5.4.65/chksum8
-rw-r--r--packages/linux/5.4.65/version.desc0
-rw-r--r--packages/linux/5.5.19/version.desc1
-rw-r--r--packages/linux/5.5.5/chksum8
-rw-r--r--packages/linux/5.7.19/chksum8
-rw-r--r--packages/linux/5.7.19/version.desc0
-rw-r--r--packages/linux/5.8.9/chksum8
-rw-r--r--packages/linux/5.8.9/version.desc0
-rw-r--r--packages/mpc/1.2.0/chksum4
-rw-r--r--packages/mpc/1.2.0/version.desc0
-rw-r--r--packages/mpfr/4.1.0/chksum16
-rw-r--r--packages/mpfr/4.1.0/version.desc0
-rw-r--r--packages/musl/1.2.1/chksum4
-rw-r--r--packages/musl/1.2.1/version.desc0
-rw-r--r--packages/picolibc/1.4.7/chksum4
-rw-r--r--packages/picolibc/1.4.7/version.desc0
-rw-r--r--packages/picolibc/package.desc7
-rw-r--r--packages/strace/5.6/chksum4
-rw-r--r--packages/strace/5.6/version.desc0
-rw-r--r--packages/strace/5.7/chksum4
-rw-r--r--packages/strace/5.7/version.desc0
-rw-r--r--packages/strace/5.8/chksum4
-rw-r--r--packages/strace/5.8/version.desc0
-rw-r--r--packages/uClibc-ng/1.0.36/chksum16
-rw-r--r--packages/uClibc-ng/1.0.36/version.desc0
-rw-r--r--packages/zlib/1.2.11/0003-crossbuild-macos-libtool.patch34
-rw-r--r--samples/arm-picolibc-eabi/crosstool.config12
-rw-r--r--samples/arm-picolibc-eabi/reported.by3
-rw-r--r--samples/mips64-unknown-linux-gnu/crosstool.config7
-rw-r--r--samples/mips64-unknown-linux-gnu/reported.by3
-rw-r--r--samples/s390-ibm-linux-gnu/crosstool.config1
-rw-r--r--samples/s390-unknown-linux-gnu/crosstool.config6
-rw-r--r--samples/s390-unknown-linux-gnu/reported.by3
-rw-r--r--samples/s390x-ibm-linux-gnu/crosstool.config1
-rw-r--r--samples/s390x-unknown-linux-gnu/crosstool.config6
-rw-r--r--samples/s390x-unknown-linux-gnu/reported.by3
-rw-r--r--scripts/build/arch/arm.sh1
-rw-r--r--scripts/build/arch/powerpc.sh4
-rw-r--r--scripts/build/binutils/binutils.sh4
-rw-r--r--scripts/build/companion_tools/100-m4.sh8
-rw-r--r--scripts/build/debug/300-gdb.sh5
-rw-r--r--scripts/build/libc/glibc.sh2
-rw-r--r--scripts/build/libc/picolibc.sh111
-rw-r--r--scripts/build/libc/uClibc.sh1
-rwxr-xr-xscripts/config.guess2
-rwxr-xr-xscripts/config.sub9
-rw-r--r--scripts/crosstool-NG.sh2
-rw-r--r--scripts/functions10
-rw-r--r--testing/docker/alpine3.8/Dockerfile2
-rw-r--r--testing/docker/archlinux/Dockerfile2
-rw-r--r--testing/docker/centos6/Dockerfile2
-rw-r--r--testing/docker/centos7/Dockerfile2
-rw-r--r--testing/docker/fedora29/Dockerfile2
-rw-r--r--testing/docker/mint19-amd64/Dockerfile2
-rw-r--r--testing/docker/ubuntu16.04/Dockerfile2
-rw-r--r--testing/docker/ubuntu18.04/Dockerfile2
206 files changed, 5153 insertions, 137 deletions
diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
new file mode 100644
index 0000000..bc146f8
--- /dev/null
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -0,0 +1,86 @@
+name: CI
+
+on:
+ push:
+ pull_request:
+
+jobs:
+ crosstool:
+ runs-on: ubuntu-latest
+ steps:
+ - name: "clone"
+ uses: actions/checkout@v2
+ - name: "prereq"
+ run: |
+ sudo apt-get install -y gperf help2man libtool-bin
+ - name: "build ct-ng"
+ run: |
+ ./bootstrap
+ ./configure --prefix=$PWD/.local/
+ make
+ make install
+ tar -cf ct-ng.tar .local/
+ - name: "upload ct-ng"
+ uses: actions/upload-artifact@v2
+ with:
+ name: crosstool
+ path: ct-ng.tar
+ - name: "upload config.log"
+ uses: actions/upload-artifact@v2
+ with:
+ name: config.log
+ path: config.log
+ if: ${{ always() }}
+
+ toolchains:
+ needs: crosstool
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ sample: [
+ "aarch64-unknown-linux-gnu",
+ "arc-multilib-linux-uclibc",
+ "arm-picolibc-eabi",
+ "arm-unknown-linux-gnueabi",
+ "armv6-nommu-linux-uclibcgnueabi",
+ "mips-unknown-elf",
+ "mips64-unknown-linux-gnu",
+ "powerpc-unknown-linux-gnu",
+ "powerpc64-unknown-linux-gnu",
+ "riscv32-unknown-elf",
+ "riscv64-unknown-elf",
+ "s390-unknown-linux-gnu",
+ "sh-multilib-linux-gnu",
+ "sparc-unknown-linux-gnu",
+ "x86_64-unknown-linux-gnu",
+ "x86_64-multilib-linux-uclibc",
+ "xtensa-fsf-linux-uclibc"
+ ]
+ steps:
+ - name: "download ct-ng"
+ uses: actions/download-artifact@v2
+ with:
+ name: crosstool
+ - name: "extract ct-ng"
+ run: |
+ tar -xf ct-ng.tar
+ - name: "prereq"
+ run: |
+ sudo apt-get install -y gperf help2man libtool-bin
+ echo "::add-path::$GITHUB_WORKSPACE/.local/bin"
+ - name: "build ${{ matrix.sample }}"
+ run: |
+ mkdir -p src
+ ct-ng ${{ matrix.sample }}
+ sed -i -e '/CT_LOG_PROGRESS_BAR/s/y$/n/' .config
+ sed -i -e '/CT_LOCAL_TARBALLS_DIR/s/HOME/CT_TOP_DIR/' .config
+ sed -i -e '/CT_PREFIX_DIR/s/HOME/CT_TOP_DIR/' .config
+ ct-ng build
+ - name: "upload log"
+ uses: actions/upload-artifact@v2
+ with:
+ name: "${{ matrix.sample }}.log"
+ path: |
+ build.log
+ .config
+ if: ${{ always() }}
diff --git a/README.md b/README.md
index f662125..52616f6 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,9 @@ To clone the crosstool-NG repository:
git clone https://github.com/crosstool-ng/crosstool-ng
```
+## Build Status
+- ![CI](https://github.com/crosstool-ng/crosstool-ng/workflows/CI/badge.svg)
+
#### Old repositories
These are the old Mercurial repositories. They are now read-only: [http://crosstool-ng.org/hg/](http://crosstool-ng.org/hg/)
diff --git a/bootstrap b/bootstrap
index 6c3d6ae..c014abf 100755
--- a/bootstrap
+++ b/bootstrap
@@ -6,6 +6,9 @@ if [ "${BASH_VERSINFO[0]}" -lt 4 ]; then
exit 1
fi
+# see #849
+unset CDPATH
+
########################################
# Common meta-language implementation. Syntax:
#
@@ -399,7 +402,7 @@ cmp_versions()
{
local v1="${1}"
local v2="${2}"
- local e1=0 e2=0 u1 u2 d1=0 d2=0
+ local e1=0 e2=0 d1=0 d2=0
# Case-insensitive comparison
v1="${v1^^}"
@@ -640,7 +643,6 @@ enter_version()
enter_milestone()
{
local ms="${1}"
- local cmp
info[ms]=${ms}
if [ -n "${info[ver]}" ]; then
@@ -801,7 +803,7 @@ msg "*** Gathering the list of data files to install"
scripts/compile | scripts/missing | scripts/depcomp | scripts/ltmain.sh | scripts/install-sh)
continue
;;
- #
+ #
# will produce. FIXME: create this file at the time of 'ct-ng build'.
config/configure.in.in | config/configure.in)
continue
@@ -818,6 +820,6 @@ msg "*** Gathering the list of data files to install"
} > verbatim-data.mk
msg "*** Running autoreconf"
-autoreconf -Wall --force
+autoreconf -Wall --force -I m4
msg "*** Done!"
diff --git a/config/configure.in.in b/config/configure.in.in
index e042019..526064b 100644
--- a/config/configure.in.in
+++ b/config/configure.in.in
@@ -15,6 +15,12 @@ config CONFIGURE_has_wget
config CONFIGURE_has_curl
@KCONFIG_curl@
+config CONFIGURE_has_meson
+ @KCONFIG_meson@
+
+config CONFIGURE_has_ninja
+ @KCONFIG_ninja@
+
config CONFIGURE_has_make_3_81_or_newer
@KCONFIG_make_3_81_or_newer@
diff --git a/config/global/extract.in b/config/global/extract.in
index ba7f5f4..4e62480 100644
--- a/config/global/extract.in
+++ b/config/global/extract.in
@@ -107,5 +107,7 @@ config LOCAL_PATCH_DIR
help
Enter the custom patch directory here.
- Note that you must ensure that the directory containing your custom
- patches is arranged the same way the official directory is.
+ Note that you must ensure that tree layout of the directory containing
+ your custom patches match the bundled patches one. For example, if you
+ have custom GCC patches for <gcc-version>, place them under
+ $LOCAL_PATCH_DIR/gcc/<gcc-version>.
diff --git a/config/libc/glibc.in b/config/libc/glibc.in
index f891392..8174dc4 100644
--- a/config/libc/glibc.in
+++ b/config/libc/glibc.in
@@ -145,9 +145,10 @@ config GLIBC_NO_SPARC_V8
# in 2.16, adding an option to enable that code. Crosstool-NG backports that code
# to 2.14/2.15, but there is no harm in throwing this option even if that patch
# is not applied.
+# The option and the code has finally been removed in 2.32
config GLIBC_HAS_OBSOLETE_RPC
def_bool y
- depends on GLIBC_2_14_or_later
+ depends on GLIBC_2_14_or_later && !CT_GLIBC_2_32_or_later
config GLIBC_EXTRA_CONFIG_ARRAY
string
@@ -400,6 +401,8 @@ config GLIBC_SSP
# GCC8-related fixes were only available in glibc 2.27.
config GLIBC_ENABLE_WERROR
bool "Enable -Werror during the build"
+ depends on !(ARCH_POWERPC && ARCH_64 && GLIBC_V_2_32)
+ depends on !(ARCH_SPARC && GLIBC_V_2_32)
default y if GCC_7_or_older
default y if GCC_8_or_later && GLIBC_2_27_or_later
help
diff --git a/config/libc/picolibc.in b/config/libc/picolibc.in
new file mode 100644
index 0000000..cc1d4d1
--- /dev/null
+++ b/config/libc/picolibc.in
@@ -0,0 +1,124 @@
+# picolibc options
+
+## depends on BARE_METAL && CONFIGURE_has_meson && CONFIGURE_has_ninja
+## select LIBC_SUPPORT_THREADS_NATIVE
+
+## select CC_CORE_PASSES_NEEDED if CANADIAN
+## select CC_CORE_PASS_2_NEEDED if ! CANADIAN
+
+## help Picolibc is a C library intended for use on embedded systems. It is a
+## help conglomeration of several library parts, all under BSD-compatible software
+## help licenses that make them easily usable on embedded products. Picolibc
+## help is only available in source form. It can be compiled for a wide
+## help array of processors, and will usually work on any architecture with
+## help the addition of a few low-level routines.
+
+config PICOLIBC_CXA_ATEXIT
+ def_bool y
+ select LIBC_PROVIDES_CXA_ATEXIT
+
+config LIBC_PICOLIBC_TARGET_CFLAGS
+ string
+ prompt "Target CFLAGS for picolibc"
+ default ""
+ help
+ Used to add specific options when compiling the target libraries
+ (eg. -ffunction-sections -fdata-sections), which can't be defined
+ in global TARGET_CFLAGS, because they shall be not used for the
+ gcc target libraries.
+ Note: Both TARGET_CFLAGS and LIBC_PICOLIBC_TARGET_CFLAGS are used
+ to compile the libraries.
+
+ Leave blank if you don't know better.
+
+config LIBC_PICOLIBC_IO_C99FMT
+ bool
+ prompt "Enable IOs on C99 formats"
+ default y
+ help
+ Enable support for IOs on C99 formats.
+
+config LIBC_PICOLIBC_REGISTER_FINI
+ bool
+ prompt "Enable finalization function registration using atexit"
+ help
+ Enable finalization function registration using atexit.
+
+config LIBC_PICOLIBC_ATEXIT_DYNAMIC_ALLOC
+ bool
+ prompt "Enable dynamic allocation of atexit entries"
+ help
+ Enable dynamic allocation of atexit entries.
+
+config LIBC_PICOLIBC_GLOBAL_ATEXIT
+ bool
+ prompt "Enable atexit data structure as global variable"
+ help
+ Enable atexit data structure as global variable, instead
+ of being thread-local.
+
+config LIBC_PICOLIBC_LITE_EXIT
+ bool
+ prompt "Enable lite exit"
+ default y
+ help
+ Enable lite exit, a size-reduced implementation of exit that doesn't
+ invoke clean-up functions such as _fini or global destructors.
+
+config LIBC_PICOLIBC_MULTITHREAD
+ bool
+ prompt "Enable support for multiple threads"
+ default y
+ help
+ Enable support for multiple threads.
+
+config LIBC_PICOLIBC_RETARGETABLE_LOCKING
+ bool
+ prompt "Enable retargetable locking"
+ help
+ Enable retargetable locking to allow the operating system to override
+ the dummy lock functions defined within picolibc.
+
+config LIBC_PICOLIBC_EXTRA_SECTIONS
+ bool
+ prompt "Place each function & data element in their own section"
+ help
+ Place each function & data symbol in their own section. This allows
+ the linker to garbage collect unused symbols at link time.
+
+config LIBC_PICOLIBC_ENABLE_TARGET_OPTSPACE
+ bool
+ prompt "Optimize picolibc for size"
+ default y
+ help
+ Pass --enable-target-optspace to picolibc configure.
+
+ This will compile picolibc with -Os.
+
+config LIBC_PICOLIBC_LTO
+ bool
+ prompt "Enable Link Time Optimization"
+ depends on CC_GCC_USE_LTO
+ help
+ Builds the libraries with -flto to enable more aggressive link time
+ optimization. You will need to add -flto-partition=one to your
+ application's link line to keep the RETURN assembler macro together
+ with it's consumers.
+
+config LIBC_PICOLIBC_NANO_MALLOC
+ bool
+ prompt "Enable Nano Malloc"
+ default y
+ help
+ PICOLIBC has two implementations of malloc family's functions, one in
+ `mallocr.c' and the other one in `nano-mallocr.c'. This options
+ enables the nano-malloc implementation, which is for small systems
+ with very limited memory. Note that this implementation does not
+ support `--enable-malloc-debugging' any more.
+
+config LIBC_PICOLIBC_EXTRA_CONFIG_ARRAY
+ string
+ prompt "Extra config for picolibc"
+ default ""
+ help
+ Extra flags to pass to meson when configuring picolibc.
diff --git a/configure.ac b/configure.ac
index ae4a027..8151737 100644
--- a/configure.ac
+++ b/configure.ac
@@ -152,6 +152,14 @@ AC_CHECK_PROGS([curl], [curl])
CTNG_SET_KCONFIG_OPTION([curl])
AC_SUBST([curl])
+AC_CHECK_PROGS([meson], [meson])
+CTNG_SET_KCONFIG_OPTION([meson])
+AC_SUBST([meson])
+
+AC_CHECK_PROGS([ninja], [ninja])
+CTNG_SET_KCONFIG_OPTION([ninja])
+AC_SUBST([ninja])
+
CTNG_CPU_COUNT
CTNG_PATH_TOOL_REQ([PATCH], [gpatch patch], [patch])
@@ -287,7 +295,7 @@ AC_FUNC_REALLOC
AC_FUNC_ALLOCA
AM_GNU_GETTEXT([external])
-AM_GNU_GETTEXT_VERSION([0.19.8])
+AM_GNU_GETTEXT_VERSION([0.19.7])
# For now, curses are needed to build kconfig. We may support a command-line
# only configuration without curses later. For now, fail in configure but
diff --git a/packages/binutils/2.23.2/0016-Fix-a-missing-include-of-string.patch b/packages/binutils/2.23.2/0016-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.23.2/0016-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.24/0025-Fix-a-missing-include-of-string.patch b/packages/binutils/2.24/0025-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.24/0025-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.25.1/0023-Fix-a-missing-include-of-string.patch b/packages/binutils/2.25.1/0023-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.25.1/0023-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.26.1/0013-Fix-a-missing-include-of-string.patch b/packages/binutils/2.26.1/0013-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.26.1/0013-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.27/0012-Fix-a-missing-include-of-string.patch b/packages/binutils/2.27/0012-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.27/0012-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.28.1/0009-Fix-a-missing-include-of-string.patch b/packages/binutils/2.28.1/0009-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.28.1/0009-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.29.1/0009-Fix-a-missing-include-of-string.patch b/packages/binutils/2.29.1/0009-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.29.1/0009-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.30/0009-Fix-a-missing-include-of-string.patch b/packages/binutils/2.30/0009-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.30/0009-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.31.1/0012-Fix-a-missing-include-of-string.patch b/packages/binutils/2.31.1/0012-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.31.1/0012-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.32/0009-Fix-a-missing-include-of-string.patch b/packages/binutils/2.32/0009-Fix-a-missing-include-of-string.patch
new file mode 100644
index 0000000..b04033a
--- /dev/null
+++ b/packages/binutils/2.32/0009-Fix-a-missing-include-of-string.patch
@@ -0,0 +1,26 @@
+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.35.1/0000-sh-conf.patch b/packages/binutils/2.35.1/0000-sh-conf.patch
new file mode 100644
index 0000000..06693ef
--- /dev/null
+++ b/packages/binutils/2.35.1/0000-sh-conf.patch
@@ -0,0 +1,34 @@
+r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
+
+Likewise, binutils has no idea about any of these new targets either, so we
+fix that up too.. now we're able to actually build a real toolchain for
+sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more
+inept targets than that one, really. Go look, I promise).
+
+---
+ configure | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/configure
++++ b/configure
+@@ -3937,7 +3937,7 @@ case "${target}" in
+ nvptx*-*-*)
+ noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+ ;;
+- sh-*-*)
++ sh*-*-*)
+ case "${target}" in
+ sh*-*-elf)
+ ;;
+--- a/configure.ac
++++ b/configure.ac
+@@ -1178,7 +1178,7 @@ case "${target}" in
+ nvptx*-*-*)
+ noconfigdirs="$noconfigdirs target-libssp target-libstdc++-v3 target-libobjc"
+ ;;
+- sh-*-*)
++ sh*-*-*)
+ case "${target}" in
+ sh*-*-elf)
+ ;;
diff --git a/packages/binutils/2.35.1/0001-ld_makefile_patch.patch b/packages/binutils/2.35.1/0001-ld_makefile_patch.patch
new file mode 100644
index 0000000..0eb9496
--- /dev/null
+++ b/packages/binutils/2.35.1/0001-ld_makefile_patch.patch
@@ -0,0 +1,27 @@
+---
+ ld/Makefile.am | 2 +-
+ ld/Makefile.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/ld/Makefile.am
++++ b/ld/Makefile.am
+@@ -50,7 +50,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+--- a/ld/Makefile.in
++++ b/ld/Makefile.in
+@@ -555,7 +555,7 @@ AM_CFLAGS = $(WARN_CFLAGS) $(ELF_CLFAGS)
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/packages/binutils/2.35.1/0002-check_ldrunpath_length.patch b/packages/binutils/2.35.1/0002-check_ldrunpath_length.patch
new file mode 100644
index 0000000..0edd2fe
--- /dev/null
+++ b/packages/binutils/2.35.1/0002-check_ldrunpath_length.patch
@@ -0,0 +1,24 @@
+---
+ ld/ldelf.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/ld/ldelf.c
++++ b/ld/ldelf.c
+@@ -1247,6 +1247,8 @@ ldelf_after_open (int use_libpath, int n
+ && 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))
+@@ -1605,6 +1607,8 @@ ldelf_before_allocation (char *audit, ch
+ 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.35.1/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch b/packages/binutils/2.35.1/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch
new file mode 100644
index 0000000..c712df5
--- /dev/null
+++ b/packages/binutils/2.35.1/0003-MinGW-w64-winpthreads-doesnt-have-pthread_mutexattr_settype.patch
@@ -0,0 +1,15 @@
+---
+ 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 @@ Lock_impl_threads::Lock_impl_threads()
+ 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.35.1/0004-Dont-link-to-libfl-as-its-unnecessary.patch b/packages/binutils/2.35.1/0004-Dont-link-to-libfl-as-its-unnecessary.patch
new file mode 100644
index 0000000..02efa21
--- /dev/null
+++ b/packages/binutils/2.35.1/0004-Dont-link-to-libfl-as-its-unnecessary.patch
@@ -0,0 +1,105 @@
+---
+ 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
+@@ -12570,6 +12570,7 @@ fi
+ 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.
+@@ -12733,6 +12734,8 @@ esac
+ 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
+@@ -95,7 +95,10 @@ if test -z "$host" ; then
+ 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
+@@ -13519,6 +13519,7 @@ fi
+ 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.
+@@ -13682,6 +13683,8 @@ esac
+ 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
+@@ -924,7 +924,10 @@ AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${tar
+ 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
+@@ -16584,6 +16584,7 @@ fi
+ 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.
+@@ -16747,6 +16748,8 @@ esac
+ 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
+@@ -258,7 +258,10 @@ AM_PO_SUBDIRS
+ 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.35.1/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch b/packages/binutils/2.35.1/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch
new file mode 100644
index 0000000..fbc4041
--- /dev/null
+++ b/packages/binutils/2.35.1/0005-Darwin-gold-binary-cc-include-string-not-cstring.patch
@@ -0,0 +1,15 @@
+---
+ 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.35.1/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch b/packages/binutils/2.35.1/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch
new file mode 100644
index 0000000..631d013
--- /dev/null
+++ b/packages/binutils/2.35.1/0006-Darwin-Two-fixes-from-Android-NDK-PTHREAD_ONCE_INIT-wcsncasecmp.patch
@@ -0,0 +1,70 @@
+From c39479f4ab4d372b518957871e1f205a03e7c3d6 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
+@@ -3696,6 +3696,28 @@ u16_mbtouc (wchar_t * puc, const unsigne
+ }
+ #endif /* HAVE_WCHAR_H and 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 (bfd_boolean is_name, rsrc_entry * a, rsrc_entry * b)
+--- a/gold/gold-threads.cc
++++ b/gold/gold-threads.cc
+@@ -284,9 +284,18 @@ Condvar::~Condvar()
+ 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.35.1/0007-sysroot.patch b/packages/binutils/2.35.1/0007-sysroot.patch
new file mode 100644
index 0000000..c98f147
--- /dev/null
+++ b/packages/binutils/2.35.1/0007-sysroot.patch
@@ -0,0 +1,41 @@
+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
+
+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
+
+---
+ ld/ldfile.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+--- a/ld/ldfile.c
++++ b/ld/ldfile.c
+@@ -340,18 +340,25 @@ ldfile_open_file_search (const char *arc
+ 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.35.1/0008-poison-system-directories.patch b/packages/binutils/2.35.1/0008-poison-system-directories.patch
new file mode 100644
index 0000000..d836f8a
--- /dev/null
+++ b/packages/binutils/2.35.1/0008-poison-system-directories.patch
@@ -0,0 +1,279 @@
+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
+@@ -40,6 +40,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
+@@ -826,6 +826,7 @@ with_lib_path
+ enable_targets
+ enable_64_bit_bfd
+ with_sysroot
++enable_poison_system_directories
+ enable_gold
+ enable_got
+ enable_compressed_debug_sections
+@@ -1493,6 +1494,8 @@ Optional Features:
+ --disable-largefile omit support for large files
+ --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)
+@@ -15814,7 +15817,18 @@ else
+ 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
+@@ -94,6 +94,16 @@ AC_SUBST(use_sysroot)
+ 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
+@@ -161,6 +161,14 @@ typedef struct
+ /* If set, display the target memory usage (per memory region). */
+ bfd_boolean print_memory_usage;
+
++ /* If TRUE (the default) warn for uses of system directories when
++ cross linking. */
++ bfd_boolean poison_system_directories;
++
++ /* If TRUE (default FALSE) give an error for uses of system
++ directories when cross linking instead of a warning. */
++ bfd_boolean 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
+@@ -2655,6 +2655,18 @@ string identifying the original linked f
+
+ Passing @code{none} for @var{style} disables the setting from any
+ @code{--build-id} options earlier on the command line.
++
++@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 @@ ldfile_add_library_path (const char *nam
+ 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
+@@ -155,6 +155,8 @@ enum option_values
+ OPTION_NON_CONTIGUOUS_REGIONS,
+ OPTION_NON_CONTIGUOUS_REGIONS_WARNINGS,
+ OPTION_DEPENDENCY_FILE,
++ 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 @@ main (int argc, char **argv)
+ 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 = FALSE;
+
+ /* 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
+@@ -572,6 +572,14 @@ static const struct ld_option ld_options
+ { {"no-print-map-discarded", no_argument, NULL, OPTION_NO_PRINT_MAP_DISCARDED},
+ '\0', NULL, N_("Do not show discarded sections in map file output"),
+ 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)
+@@ -584,6 +592,7 @@ parse_args (unsigned argc, char **argv)
+ int ingroup = 0;
+ char *default_dirlist = NULL;
+ char *shortopts;
++ char *BR_paranoid_env;
+ struct option *longopts;
+ struct option *really_longopts;
+ int last_optind;
+@@ -1591,6 +1600,14 @@ parse_args (unsigned argc, char **argv)
+ }
+ 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),
+@@ -1681,6 +1698,10 @@ parse_args (unsigned argc, char **argv)
+ 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.35.1/0009-Import-patch-from-mainline-to-fix-decoding-DWARF-inf.patch b/packages/binutils/2.35.1/0009-Import-patch-from-mainline-to-fix-decoding-DWARF-inf.patch
new file mode 100644
index 0000000..b6b4496
--- /dev/null
+++ b/packages/binutils/2.35.1/0009-Import-patch-from-mainline-to-fix-decoding-DWARF-inf.patch
@@ -0,0 +1,36 @@
+From 269d40a2ef3b020b5beb3f3de5b8e909c43ab53b Mon Sep 17 00:00:00 2001
+From: Nick Clifton <nickc@redhat.com>
+Date: Thu, 24 Sep 2020 13:42:04 +0100
+Subject: [PATCH] Import patch from mainline to fix decoding DWARF information
+ in the BFD library.
+
+ PR 26520
+ * dwarf2.c (scan_unit_for_symbols): Add member entries to the
+ variable table.
+---
+diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
+index b8f0008a10d..977bf43a6a1 100644
+--- a/bfd/dwarf2.c
++++ b/bfd/dwarf2.c
+@@ -3404,7 +3404,8 @@ scan_unit_for_symbols (struct comp_unit *unit)
+ else
+ {
+ func = NULL;
+- if (abbrev->tag == DW_TAG_variable)
++ if (abbrev->tag == DW_TAG_variable
++ || abbrev->tag == DW_TAG_member)
+ {
+ size_t amt = sizeof (struct varinfo);
+ var = (struct varinfo *) bfd_zalloc (abfd, amt);
+@@ -3516,7 +3517,7 @@ scan_unit_for_symbols (struct comp_unit *unit)
+ spec_var = lookup_var_by_offset (attr.u.val,
+ unit->variable_table);
+ if (spec_var == NULL)
+- {
++ {
+ _bfd_error_handler (_("DWARF error: could not find "
+ "variable specification "
+ "at offset %lx"),
+--
+2.25.4
+
diff --git a/packages/binutils/2.35.1/0010-arm-Fix-the-wrong-error-message-string-for-mve-vldr-.patch b/packages/binutils/2.35.1/0010-arm-Fix-the-wrong-error-message-string-for-mve-vldr-.patch
new file mode 100644
index 0000000..9ea369a
--- /dev/null
+++ b/packages/binutils/2.35.1/0010-arm-Fix-the-wrong-error-message-string-for-mve-vldr-.patch
@@ -0,0 +1,926 @@
+From 83b4a887fce217923a92b5a3c2b939c1629ff7a8 Mon Sep 17 00:00:00 2001
+From: Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+Date: Thu, 22 Oct 2020 13:42:01 +0100
+Subject: [PATCH] arm: Fix the wrong error message string for mve vldr/vstr
+ (PR26763).
+
+For mve vldr/vstr instructions assembler is throwing wrong error message.
+Instead of 'Error: syntax error' assembler fails with 'Error: lo register required'.
+This patch fixes the issue.
+
+eg:
+$ cat x.s
+.syntax unified
+.thumb
+
+vldrb.s16 q0, r0
+
+Before this patch:
+$ arm-none-eabi-as x.s -march=armv8.1-m.main+mve -mfloat-abi=hard
+x.s: Assembler messages:
+x.s:4: Error: lo register required -- `vldrb.s16 q0,r0'
+
+After this patch:
+$ arm-none-eabi-as x.s -march=armv8.1-m.main+mve -mfloat-abi=hard
+x.s: Assembler messages:
+x.s:4: Error: syntax error -- `vldrb.s16 q0,r0'
+
+gas/ChangeLog:
+
+2020-10-21 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
+
+ PR target/26763
+ * config/tc-arm.c (parse_address_main): Add new MVE addressing mode
+ check.
+ * testsuite/gas/arm/mve-vldr-vstr-bad.d: New test.
+ * testsuite/gas/arm/mve-vldr-vstr-bad.l: Likewise.
+ * testsuite/gas/arm/mve-vldr-vstr-bad.s: Likewise.
+---
+diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
+index a9aaffa3bdd..64475d66729 100644
+--- a/gas/config/tc-arm.c
++++ b/gas/config/tc-arm.c
+@@ -5936,7 +5936,15 @@ parse_address_main (char **str, int i, int group_relocations,
+
+ if (skip_past_char (&p, '[') == FAIL)
+ {
+- if (skip_past_char (&p, '=') == FAIL)
++ if (group_type == GROUP_MVE
++ && (reg = arm_reg_parse (&p, REG_TYPE_RN)) != FAIL)
++ {
++ /* [r0-r15] expected as argument but receiving r0-r15 without
++ [] brackets. */
++ inst.error = BAD_SYNTAX;
++ return PARSE_OPERAND_FAIL;
++ }
++ else if (skip_past_char (&p, '=') == FAIL)
+ {
+ /* Bare address - translate to PC-relative offset. */
+ inst.relocs[0].pc_rel = 1;
+diff --git a/gas/testsuite/gas/arm/mve-vldr-vstr-bad.d b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.d
+new file mode 100644
+index 00000000000..8989688f0f3
+--- /dev/null
++++ b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.d
+@@ -0,0 +1,5 @@
++#name: bad MVE VLDR VSTR wrong error message for addressing mode without [].
++#as: -march=armv8.1-m.main+mve.fp -mthumb -mfloat-abi=hard
++#error_output: mve-vldr-vstr-bad.l
++
++.*: +file format .*arm.*
+diff --git a/gas/testsuite/gas/arm/mve-vldr-vstr-bad.l b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.l
+new file mode 100644
+index 00000000000..2df3a37ac02
+--- /dev/null
++++ b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.l
+@@ -0,0 +1,811 @@
++[^:]*: Assembler messages:
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r0'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r1'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r2'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r4'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r7'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r8'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r10'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r12'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q0,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q0,r14'
++[^:]*:12: Error: syntax error -- `vstrb.8 q0,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r0'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r1'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r2'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r4'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r7'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r8'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r10'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r12'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q1,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q1,r14'
++[^:]*:12: Error: syntax error -- `vstrb.8 q1,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r0'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r1'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r2'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r4'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r7'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r8'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r10'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r12'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q2,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q2,r14'
++[^:]*:12: Error: syntax error -- `vstrb.8 q2,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r0'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r1'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r2'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r4'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r7'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r8'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r10'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r12'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q4,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q4,r14'
++[^:]*:12: Error: syntax error -- `vstrb.8 q4,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r0'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r1'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r2'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r4'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r7'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r8'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r10'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r12'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s8 q7,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u8 q7,r14'
++[^:]*:12: Error: syntax error -- `vstrb.8 q7,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r0'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r1'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r2'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r4'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r7'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r8'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r10'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r12'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q0,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q0,r14'
++[^:]*:12: Error: syntax error -- `vstrb.16 q0,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r0'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r1'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r2'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r4'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r7'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r8'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r10'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r12'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q1,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q1,r14'
++[^:]*:12: Error: syntax error -- `vstrb.16 q1,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r0'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r1'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r2'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r4'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r7'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r8'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r10'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r12'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q2,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q2,r14'
++[^:]*:12: Error: syntax error -- `vstrb.16 q2,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r0'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r1'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r2'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r4'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r7'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r8'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r10'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r12'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q4,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q4,r14'
++[^:]*:12: Error: syntax error -- `vstrb.16 q4,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r0'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r1'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r2'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r4'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r7'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r8'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r10'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r12'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s16 q7,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u16 q7,r14'
++[^:]*:12: Error: syntax error -- `vstrb.16 q7,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r0'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r1'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r2'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r4'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r7'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r8'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r10'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r12'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q0,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q0,r14'
++[^:]*:12: Error: syntax error -- `vstrb.32 q0,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r0'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r1'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r2'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r4'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r7'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r8'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r10'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r12'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q1,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q1,r14'
++[^:]*:12: Error: syntax error -- `vstrb.32 q1,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r0'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r1'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r2'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r4'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r7'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r8'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r10'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r12'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q2,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q2,r14'
++[^:]*:12: Error: syntax error -- `vstrb.32 q2,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r0'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r1'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r2'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r4'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r7'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r8'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r10'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r12'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q4,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q4,r14'
++[^:]*:12: Error: syntax error -- `vstrb.32 q4,r14'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r0'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r0'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r0'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r1'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r1'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r1'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r2'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r2'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r2'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r4'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r4'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r4'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r7'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r7'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r7'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r8'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r8'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r8'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r10'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r10'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r10'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r12'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r12'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r12'
++[^:]*:12: Error: syntax error -- `vldrb.s32 q7,r14'
++[^:]*:12: Error: syntax error -- `vldrb.u32 q7,r14'
++[^:]*:12: Error: syntax error -- `vstrb.32 q7,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r0'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r1'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r2'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r4'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r7'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r8'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r10'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r12'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q0,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q0,r14'
++[^:]*:22: Error: syntax error -- `vstrh.16 q0,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r0'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r1'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r2'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r4'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r7'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r8'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r10'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r12'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q1,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q1,r14'
++[^:]*:22: Error: syntax error -- `vstrh.16 q1,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r0'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r1'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r2'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r4'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r7'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r8'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r10'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r12'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q2,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q2,r14'
++[^:]*:22: Error: syntax error -- `vstrh.16 q2,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r0'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r1'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r2'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r4'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r7'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r8'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r10'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r12'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q4,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q4,r14'
++[^:]*:22: Error: syntax error -- `vstrh.16 q4,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r0'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r1'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r2'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r4'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r7'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r8'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r10'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r12'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s16 q7,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u16 q7,r14'
++[^:]*:22: Error: syntax error -- `vstrh.16 q7,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r0'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r1'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r2'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r4'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r7'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r8'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r10'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r12'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q0,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q0,r14'
++[^:]*:22: Error: syntax error -- `vstrh.32 q0,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r0'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r1'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r2'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r4'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r7'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r8'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r10'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r12'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q1,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q1,r14'
++[^:]*:22: Error: syntax error -- `vstrh.32 q1,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r0'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r1'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r2'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r4'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r7'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r8'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r10'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r12'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q2,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q2,r14'
++[^:]*:22: Error: syntax error -- `vstrh.32 q2,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r0'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r1'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r2'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r4'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r7'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r8'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r10'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r12'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q4,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q4,r14'
++[^:]*:22: Error: syntax error -- `vstrh.32 q4,r14'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r0'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r0'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r0'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r1'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r1'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r1'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r2'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r2'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r2'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r4'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r4'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r4'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r7'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r7'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r7'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r8'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r8'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r8'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r10'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r10'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r10'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r12'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r12'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r12'
++[^:]*:22: Error: syntax error -- `vldrh.s32 q7,r14'
++[^:]*:22: Error: syntax error -- `vldrh.u32 q7,r14'
++[^:]*:22: Error: syntax error -- `vstrh.32 q7,r14'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r0'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r0'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r0'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r1'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r1'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r1'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r2'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r2'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r2'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r4'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r4'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r4'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r7'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r7'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r7'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r8'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r8'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r8'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r10'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r10'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r10'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r12'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r12'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r12'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q0,r14'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q0,r14'
++[^:]*:30: Error: syntax error -- `vstrw.32 q0,r14'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r0'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r0'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r0'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r1'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r1'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r1'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r2'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r2'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r2'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r4'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r4'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r4'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r7'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r7'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r7'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r8'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r8'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r8'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r10'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r10'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r10'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r12'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r12'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r12'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q1,r14'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q1,r14'
++[^:]*:30: Error: syntax error -- `vstrw.32 q1,r14'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r0'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r0'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r0'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r1'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r1'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r1'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r2'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r2'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r2'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r4'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r4'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r4'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r7'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r7'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r7'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r8'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r8'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r8'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r10'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r10'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r10'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r12'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r12'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r12'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q2,r14'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q2,r14'
++[^:]*:30: Error: syntax error -- `vstrw.32 q2,r14'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r0'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r0'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r0'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r1'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r1'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r1'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r2'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r2'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r2'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r4'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r4'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r4'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r7'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r7'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r7'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r8'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r8'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r8'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r10'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r10'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r10'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r12'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r12'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r12'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q4,r14'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q4,r14'
++[^:]*:30: Error: syntax error -- `vstrw.32 q4,r14'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r0'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r0'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r0'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r1'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r1'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r1'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r2'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r2'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r2'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r4'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r4'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r4'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r7'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r7'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r7'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r8'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r8'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r8'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r10'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r10'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r10'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r12'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r12'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r12'
++[^:]*:30: Error: syntax error -- `vldrw.s32 q7,r14'
++[^:]*:30: Error: syntax error -- `vldrw.u32 q7,r14'
++[^:]*:30: Error: syntax error -- `vstrw.32 q7,r14'
+diff --git a/gas/testsuite/gas/arm/mve-vldr-vstr-bad.s b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.s
+new file mode 100644
+index 00000000000..c72c1296d2f
+--- /dev/null
++++ b/gas/testsuite/gas/arm/mve-vldr-vstr-bad.s
+@@ -0,0 +1,30 @@
++.syntax unified
++.thumb
++
++.irp op1, 8, 16, 32
++.irp op2, q0, q1, q2, q4, q7
++.irp op3, r0, r1, r2, r4, r7, r8, r10, r12, r14
++vldrb.s\op1 \op2, \op3
++vldrb.u\op1 \op2, \op3
++vstrb.\op1 \op2, \op3
++.endr
++.endr
++.endr
++
++.irp op1, 16, 32
++.irp op2, q0, q1, q2, q4, q7
++.irp op3, r0, r1, r2, r4, r7, r8, r10, r12, r14
++vldrh.s\op1 \op2, \op3
++vldrh.u\op1 \op2, \op3
++vstrh.\op1 \op2, \op3
++.endr
++.endr
++.endr
++
++.irp op2, q0, q1, q2, q4, q7
++.irp op3, r0, r1, r2, r4, r7, r8, r10, r12, r14
++vldrw.s32 \op2, \op3
++vldrw.u32 \op2, \op3
++vstrw.32 \op2, \op3
++.endr
++.endr
+--
+2.25.4
+
diff --git a/packages/binutils/2.35.1/chksum b/packages/binutils/2.35.1/chksum
new file mode 100644
index 0000000..529d3b5
--- /dev/null
+++ b/packages/binutils/2.35.1/chksum
@@ -0,0 +1,12 @@
+md5 binutils-2.35.1.tar.bz2 9203e5ca6243c8501f679dd6407df820
+sha1 binutils-2.35.1.tar.bz2 df4eb943bf65df4bbbd0a001efcc98113423c5dd
+sha256 binutils-2.35.1.tar.bz2 320e7a1d0f46fcd9f413f1046e216cbe23bb2bce6deb6c6a63304425e48b1942
+sha512 binutils-2.35.1.tar.bz2 2828cca9664ae172d6be5f1869f4c7cd39b63a4340c9a5d7c18f30fa06d4ff391394704720872f32f786053f14b27dcafd63c46db7984a8f6ec822f266bb2541
+md5 binutils-2.35.1.tar.gz bca600eea3b8fc33ad3265c9c1eee8d4
+sha1 binutils-2.35.1.tar.gz 4f217d0e8f59a49817855260a3edf8202d307514
+sha256 binutils-2.35.1.tar.gz a8dfaae8cbbbc260fc1737a326adca97b5d4f3c95a82f0af1f7455ed1da5e77b
+sha512 binutils-2.35.1.tar.gz ef5d84b8d9568615aed00ac661267c5eccfcb805a3643f94a2f8220d0c4dd1c6001c8d95a3507599b8cd0e87b15b1e320500ca34580927fb813209ad98a34b16
+md5 binutils-2.35.1.tar.xz 7126f370ffbd46c08fcc5ce7aee2805d
+sha1 binutils-2.35.1.tar.xz 45f7a96a2580a422f44b78317f0abf13935fecb6
+sha256 binutils-2.35.1.tar.xz 3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
+sha512 binutils-2.35.1.tar.xz 94ff72708403413b70b247f3af4099ebaa882b6659249869f1ed9941a0f1912e313f08357d470f9fd2359e7f5e5b0eb86285e5eaf883fa8187789d6b1bd304eb
diff --git a/packages/linux/5.5.5/version.desc b/packages/binutils/2.35.1/version.desc
index e69de29..e69de29 100644
--- a/packages/linux/5.5.5/version.desc
+++ b/packages/binutils/2.35.1/version.desc
diff --git a/packages/expat/package.desc b/packages/expat/package.desc
index 14c197d..84dba8f 100644
--- a/packages/expat/package.desc
+++ b/packages/expat/package.desc
@@ -1,6 +1,6 @@
repository='git https://github.com/libexpat/libexpat.git'
repository_subdir='expat'
bootstrap='./buildconf.sh && make -C doc all'
-mirrors='http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION}'
+mirrors='http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION} https://github.com/libexpat/libexpat/releases/download/R_${CT_EXPAT_VERSION//./_}'
archive_formats='.tar.xz .tar.lz .tar.bz2 .tar.gz'
relevantpattern='*.*|.'
diff --git a/packages/gcc/9.2.0/0000-libtool-leave-framework-alone.patch b/packages/gcc/10.2.0/0000-libtool-leave-framework-alone.patch
index b5804ea..b5804ea 100644
--- a/packages/gcc/9.2.0/0000-libtool-leave-framework-alone.patch
+++ b/packages/gcc/10.2.0/0000-libtool-leave-framework-alone.patch
diff --git a/packages/gcc/9.2.0/0001-uclibc-conf.patch b/packages/gcc/10.2.0/0001-uclibc-conf.patch
index a9ae872..a9ae872 100644
--- a/packages/gcc/9.2.0/0001-uclibc-conf.patch
+++ b/packages/gcc/10.2.0/0001-uclibc-conf.patch
diff --git a/packages/gcc/10.2.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch b/packages/gcc/10.2.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
new file mode 100644
index 0000000..394dd49
--- /dev/null
+++ b/packages/gcc/10.2.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
@@ -0,0 +1,163 @@
+---
+ config/gcc-plugin.m4 | 18 +++++++++++++-----
+ gcc/configure | 22 +++++++++++++++-------
+ libcc1/configure | 22 +++++++++++++++-------
+ 3 files changed, 43 insertions(+), 19 deletions(-)
+
+--- a/config/gcc-plugin.m4
++++ b/config/gcc-plugin.m4
+@@ -21,6 +21,9 @@ AC_DEFUN([GCC_ENABLE_PLUGINS],
+ pluginlibs=
+ plugin_check=yes
+
++ PICFLAG="-fPIC"
++ UNDEFINEDPREAMBLE="extern int X;"
++ UNDEFINEDCODE="return X == 0;"
+ case "${host}" in
+ *-*-mingw*)
+ # Since plugin support under MinGW is not as straightforward as on
+@@ -43,6 +46,11 @@ AC_DEFUN([GCC_ENABLE_PLUGINS],
+ export_sym_check=
+ fi
+ ;;
++ *-*-mingw*|*-*-cygwin*|*-*-msys*)
++ PICFLAG=""
++ UNDEFINEDPREAMBLE=""
++ UNDEFINEDCODE=""
++ ;;
+ *)
+ if test x$build = x$host; then
+ export_sym_check="objdump${exeext} -T"
+@@ -94,17 +102,17 @@ AC_DEFUN([GCC_ENABLE_PLUGINS],
+ case "${host}" in
+ *-*-darwin*)
+ CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
+- CFLAGS="$CFLAGS -fPIC"
++ CFLAGS="$CFLAGS ${PICFLAG}"
+ LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
+ ;;
+ *)
+- CFLAGS="$CFLAGS -fPIC"
+- LDFLAGS="$LDFLAGS -fPIC -shared"
++ CFLAGS="$CFLAGS ${PICFLAG}"
++ LDFLAGS="$LDFLAGS ${PICFLAG} -shared"
+ ;;
+ esac
+- AC_MSG_CHECKING([for -fPIC -shared])
++ AC_MSG_CHECKING([for ${PICFLAG} -shared])
+ AC_TRY_LINK(
+- [extern int X;],[return X == 0;],
++ [${UNDEFINEDPREAMBLE}],[${UNDEFINEDCODE}],
+ [AC_MSG_RESULT([yes]); have_pic_shared=yes],
+ [AC_MSG_RESULT([no]); have_pic_shared=no])
+ if test x"$have_pic_shared" != x"yes" -o x"$ac_cv_search_dlopen" = x"no"; then
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -30375,6 +30375,9 @@ fi
+ pluginlibs=
+ plugin_check=yes
+
++ PICFLAG="-fPIC"
++ UNDEFINEDPREAMBLE="extern int X;"
++ UNDEFINEDCODE="return X == 0;"
+ case "${host}" in
+ *-*-mingw*)
+ # Since plugin support under MinGW is not as straightforward as on
+@@ -30397,6 +30400,11 @@ fi
+ export_sym_check=
+ fi
+ ;;
++ *-*-mingw*|*-*-cygwin*|*-*-msys*)
++ PICFLAG=""
++ UNDEFINEDPREAMBLE=""
++ UNDEFINEDCODE=""
++ ;;
+ *)
+ if test x$build = x$host; then
+ export_sym_check="objdump${exeext} -T"
+@@ -30509,23 +30517,23 @@ fi
+ case "${host}" in
+ *-*-darwin*)
+ CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
+- CFLAGS="$CFLAGS -fPIC"
++ CFLAGS="$CFLAGS ${PICFLAG}"
+ LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
+ ;;
+ *)
+- CFLAGS="$CFLAGS -fPIC"
+- LDFLAGS="$LDFLAGS -fPIC -shared"
++ CFLAGS="$CFLAGS ${PICFLAG}"
++ LDFLAGS="$LDFLAGS ${PICFLAG} -shared"
+ ;;
+ esac
+- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fPIC -shared" >&5
+-$as_echo_n "checking for -fPIC -shared... " >&6; }
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${PICFLAG} -shared" >&5
++$as_echo_n "checking for ${PICFLAG} -shared... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-extern int X;
++${UNDEFINEDPREAMBLE}
+ int
+ main ()
+ {
+-return X == 0;
++${UNDEFINEDCODE}
+ ;
+ return 0;
+ }
+--- a/libcc1/configure
++++ b/libcc1/configure
+@@ -14795,6 +14795,9 @@ fi
+ pluginlibs=
+ plugin_check=yes
+
++ PICFLAG="-fPIC"
++ UNDEFINEDPREAMBLE="extern int X;"
++ UNDEFINEDCODE="return X == 0;"
+ case "${host}" in
+ *-*-mingw*)
+ # Since plugin support under MinGW is not as straightforward as on
+@@ -14817,6 +14820,11 @@ fi
+ export_sym_check=
+ fi
+ ;;
++ *-*-mingw*|*-*-cygwin*|*-*-msys*)
++ PICFLAG=""
++ UNDEFINEDPREAMBLE=""
++ UNDEFINEDCODE=""
++ ;;
+ *)
+ if test x$build = x$host; then
+ export_sym_check="objdump${exeext} -T"
+@@ -14929,23 +14937,23 @@ fi
+ case "${host}" in
+ *-*-darwin*)
+ CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
+- CFLAGS="$CFLAGS -fPIC"
++ CFLAGS="$CFLAGS ${PICFLAG}"
+ LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
+ ;;
+ *)
+- CFLAGS="$CFLAGS -fPIC"
+- LDFLAGS="$LDFLAGS -fPIC -shared"
++ CFLAGS="$CFLAGS ${PICFLAG}"
++ LDFLAGS="$LDFLAGS ${PICFLAG} -shared"
+ ;;
+ esac
+- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fPIC -shared" >&5
+-$as_echo_n "checking for -fPIC -shared... " >&6; }
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${PICFLAG} -shared" >&5
++$as_echo_n "checking for ${PICFLAG} -shared... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-extern int X;
++${UNDEFINEDPREAMBLE}
+ int
+ main ()
+ {
+-return X == 0;
++${UNDEFINEDCODE}
+ ;
+ return 0;
+ }
diff --git a/packages/gcc/9.2.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/10.2.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
index 3040e23..3040e23 100644
--- a/packages/gcc/9.2.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
+++ b/packages/gcc/10.2.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
diff --git a/packages/gcc/9.2.0/0004-arm-softfloat-libgcc.patch b/packages/gcc/10.2.0/0004-arm-softfloat-libgcc.patch
index d980036..d980036 100644
--- a/packages/gcc/9.2.0/0004-arm-softfloat-libgcc.patch
+++ b/packages/gcc/10.2.0/0004-arm-softfloat-libgcc.patch
diff --git a/packages/gcc/10.2.0/0005-fix-m68k-uclinux.patch b/packages/gcc/10.2.0/0005-fix-m68k-uclinux.patch
new file mode 100644
index 0000000..9d176d3
--- /dev/null
+++ b/packages/gcc/10.2.0/0005-fix-m68k-uclinux.patch
@@ -0,0 +1,21 @@
+avoids internal compiler error while compiling linux-atomic.c
+See here:
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53833
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+---
+ libgcc/config.host | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/libgcc/config.host
++++ b/libgcc/config.host
+@@ -949,7 +949,7 @@ m68k*-*-netbsdelf*)
+ m68k*-*-openbsd*)
+ ;;
+ m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc
+- tmake_file="$tmake_file m68k/t-floatlib m68k/t-linux"
++ tmake_file="$tmake_file m68k/t-floatlib"
+ md_unwind_header=m68k/linux-unwind.h
+ ;;
+ m68k-*-linux*) # Motorola m68k's running GNU/Linux
diff --git a/packages/gcc/10.2.0/0006-libgfortran-missing-include.patch b/packages/gcc/10.2.0/0006-libgfortran-missing-include.patch
new file mode 100644
index 0000000..866d2cc
--- /dev/null
+++ b/packages/gcc/10.2.0/0006-libgfortran-missing-include.patch
@@ -0,0 +1,14 @@
+---
+ libgfortran/io/close.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/libgfortran/io/close.c
++++ b/libgfortran/io/close.c
+@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
+ #if !HAVE_UNLINK_OPEN_FILE
+ #include <string.h>
+ #endif
++#include <stdlib.h>
+
+ typedef enum
+ { CLOSE_INVALID = - 1, CLOSE_DELETE, CLOSE_KEEP, CLOSE_UNSPECIFIED }
diff --git a/packages/gcc/9.2.0/0007-nios2-bad-multilib-default.patch b/packages/gcc/10.2.0/0007-nios2-bad-multilib-default.patch
index 4acc491..4acc491 100644
--- a/packages/gcc/9.2.0/0007-nios2-bad-multilib-default.patch
+++ b/packages/gcc/10.2.0/0007-nios2-bad-multilib-default.patch
diff --git a/packages/gcc/9.2.0/0008-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/10.2.0/0008-libgcc-disable-split-stack-nothreads.patch
index df91a9f..df91a9f 100644
--- a/packages/gcc/9.2.0/0008-libgcc-disable-split-stack-nothreads.patch
+++ b/packages/gcc/10.2.0/0008-libgcc-disable-split-stack-nothreads.patch
diff --git a/packages/gcc/9.2.0/0009-bionic-ndk.patch b/packages/gcc/10.2.0/0009-bionic-ndk.patch
index 090172d..090172d 100644
--- a/packages/gcc/9.2.0/0009-bionic-ndk.patch
+++ b/packages/gcc/10.2.0/0009-bionic-ndk.patch
diff --git a/packages/gcc/10.2.0/0010-crystax.patch b/packages/gcc/10.2.0/0010-crystax.patch
new file mode 100644
index 0000000..98bd2fe
--- /dev/null
+++ b/packages/gcc/10.2.0/0010-crystax.patch
@@ -0,0 +1,529 @@
+commit 080803512c8f6f87c2f1f711170d54033144d628
+Author: Dmitry Moskalchuk <dm@crystax.net>
+Date: Wed Jul 29 11:28:29 2015 +0300
+
+ [android] Apply Android-related modifications
+
+ Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
+
+[Edited: keep libstdc++, drop libcrystax-related modifications]
+---
+ gcc/config.gcc | 17 +++++++-
+ gcc/config/aarch64/aarch64-linux-android.h | 59 +++++++++++++++++++++++++++++
+ gcc/config/aarch64/aarch64-linux.h | 9 +++-
+ gcc/config/arm/arm.h | 3 -
+ gcc/config/arm/arm.md | 2
+ gcc/config/arm/arm.opt | 4 +
+ gcc/config/arm/elf.h | 9 ++--
+ gcc/config/arm/linux-eabi.h | 7 ++-
+ gcc/config/i386/gnu-user.h | 7 ++-
+ gcc/config/i386/gnu-user64.h | 5 ++
+ gcc/config/i386/linux-common.h | 8 +++
+ gcc/config/linux-android.h | 13 +++---
+ gcc/config/mips/android.h | 49 ++++++++++++++++++++++++
+ gcc/config/mips/gnu-user.h | 6 +-
+ gcc/config/mips/linux-common.h | 2
+ gcc/config/mips/t-linux-android | 3 +
+ gcc/config/mips/t-linux-android64 | 4 +
+ libgcc/gthr-posix.h | 13 ++++++
+ libstdc++-v3/configure | 12 +++++
+ libstdc++-v3/include/bits/locale_facets.h | 18 +++++++-
+ libstdc++-v3/libsupc++/guard.cc | 5 ++
+ 21 files changed, 235 insertions(+), 20 deletions(-)
+ create mode 100644 gcc/config/aarch64/aarch64-linux-android.h
+ create mode 100644 gcc/config/mips/android.h
+ create mode 100644 gcc/config/mips/t-linux-android
+ create mode 100644 gcc/config/mips/t-linux-android64
+
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -1083,14 +1083,18 @@ aarch64*-*-netbsd*)
+ extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
+ ;;
+ aarch64*-*-linux*)
+- tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
++ tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h"
+ tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
++ extra_options="${extra_options} linux-android.opt"
+ tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
+ tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
+ case $target in
+ aarch64_be-*)
+ tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
+ ;;
++ aarch64*-*-linux-android*)
++ tm_file="${tm_file} aarch64/aarch64-linux-android.h"
++ ;;
+ esac
+ aarch64_multilibs="${with_multilib_list}"
+ if test "$aarch64_multilibs" = "default"; then
+@@ -2501,6 +2505,17 @@ mips*-*-linux*) # Linux MIPS, either
+ tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
+ extra_options="${extra_options} linux-android.opt"
+ case ${target} in
++ mips64*android*)
++ default_mips_arch=mips64r6
++ default_mips_abi=64
++ tm_file="${tm_file} mips/android.h"
++ tmake_file="${tmake_file} mips/t-linux-android64"
++ ;;
++ mips*android*)
++ default_mips_arch=mips32
++ tm_file="${tm_file} mips/android.h"
++ tmake_file="$tmake_file mips/t-linux-android"
++ ;;
+ mipsisa32r6*)
+ default_mips_arch=mips32r6
+ ;;
+--- /dev/null
++++ b/gcc/config/aarch64/aarch64-linux-android.h
+@@ -0,0 +1,59 @@
++/* Machine description for AArch64 architecture.
++ Copyright (C) 2014 Free Software Foundation, Inc.
++
++ This file is part of GCC.
++
++ GCC 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.
++
++ GCC 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.
++
++ You should have received a copy of the GNU General Public License
++ along with GCC; see the file COPYING3. If not see
++ <http://www.gnu.org/licenses/>. */
++
++#ifndef GCC_AARCH64_LINUX_ANDROID_H
++#define GCC_AARCH64_LINUX_ANDROID_H
++
++
++#undef TARGET_OS_CPP_BUILTINS
++#define TARGET_OS_CPP_BUILTINS() \
++ do \
++ { \
++ GNU_USER_TARGET_OS_CPP_BUILTINS(); \
++ ANDROID_TARGET_OS_CPP_BUILTINS(); \
++ } \
++ while (0)
++
++#undef LINK_SPEC
++#define LINK_SPEC \
++ LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
++ LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
++
++#undef CC1_SPEC
++#define CC1_SPEC \
++ LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC, \
++ GNU_USER_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC("-fpic"))
++
++#define CC1PLUS_SPEC \
++ LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
++
++#undef LIB_SPEC
++#define LIB_SPEC \
++ LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LIB_SPEC, \
++ GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC " " ANDROID_LIB_SPEC)
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC \
++ LINUX_OR_ANDROID_LD (GNU_USER_TARGET_STARTFILE_SPEC, ANDROID_STARTFILE_SPEC)
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
++
++#endif /* GCC_AARCH64_LINUX_ANDROID_H */
+--- a/gcc/config/aarch64/aarch64-linux.h
++++ b/gcc/config/aarch64/aarch64-linux.h
+@@ -21,7 +21,14 @@
+ #ifndef GCC_AARCH64_LINUX_H
+ #define GCC_AARCH64_LINUX_H
+
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
++#ifndef RUNTIME_ROOT_PREFIX
++#define RUNTIME_ROOT_PREFIX ""
++#endif
++#define GLIBC_DYNAMIC_LINKER RUNTIME_ROOT_PREFIX "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
++#ifdef BIONIC_DYNAMIC_LINKER
++#undef BIONIC_DYNAMIC_LINKER
++#endif
++#define BIONIC_DYNAMIC_LINKER RUNTIME_ROOT_PREFIX "/system/bin/linker64"
+
+ #undef MUSL_DYNAMIC_LINKER
+ #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
+--- a/gcc/config/arm/arm.h
++++ b/gcc/config/arm/arm.h
+@@ -1974,12 +1974,13 @@ enum arm_auto_incmodes
+
+ #define CASE_VECTOR_PC_RELATIVE ((TARGET_THUMB2 \
+ || (TARGET_THUMB1 \
++ && !inline_thumb1_jump_table \
+ && (optimize_size || flag_pic))) \
+ && (!target_pure_code))
+
+
+ #define CASE_VECTOR_SHORTEN_MODE(min, max, body) \
+- (TARGET_THUMB1 \
++ (TARGET_THUMB1 && !inline_thumb1_jump_table \
+ ? (min >= 0 && max < 512 \
+ ? (ADDR_DIFF_VEC_FLAGS (body).offset_unsigned = 1, QImode) \
+ : min >= -256 && max < 256 \
+--- a/gcc/config/arm/arm.md
++++ b/gcc/config/arm/arm.md
+@@ -9342,7 +9342,7 @@
+ (match_operand:SI 2 "const_int_operand") ; total range
+ (match_operand:SI 3 "" "") ; table label
+ (match_operand:SI 4 "" "")] ; Out of range label
+- "(TARGET_32BIT || optimize_size || flag_pic) && !target_pure_code"
++ "(TARGET_32BIT || ((optimize_size || flag_pic) && !inline_thumb1_jump_table)) && !target_pure_code"
+ "
+ {
+ enum insn_code code;
+--- a/gcc/config/arm/arm.opt
++++ b/gcc/config/arm/arm.opt
+@@ -202,6 +202,10 @@ mthumb-interwork
+ Target Report Mask(INTERWORK)
+ Support calls between Thumb and ARM instruction sets.
+
++minline-thumb1-jumptable
++Target Report Var(inline_thumb1_jump_table)
++Inline Thumb1 Jump table code
++
+ mtls-dialect=
+ Target RejectNegative Joined Enum(tls_type) Var(target_tls_dialect) Init(TLS_GNU)
+ Specify thread local storage scheme.
+--- a/gcc/config/arm/elf.h
++++ b/gcc/config/arm/elf.h
+@@ -56,8 +56,7 @@
+ #undef SUBSUBTARGET_EXTRA_SPECS
+ #define SUBSUBTARGET_EXTRA_SPECS
+
+-#ifndef ASM_SPEC
+-#define ASM_SPEC "\
++#define DEFAULT_ASM_SPEC "\
+ %{mbig-endian:-EB} \
+ %{mlittle-endian:-EL} \
+ %(asm_cpu_spec) \
+@@ -66,6 +65,9 @@
+ %{mthumb-interwork:-mthumb-interwork} \
+ %{mfloat-abi=*} %{!mfpu=auto: %{mfpu=*}} \
+ %(subtarget_extra_asm_spec)"
++
++#ifndef ASM_SPEC
++#define ASM_SPEC DEFAULT_ASM_SPEC
+ #endif
+
+ /* The ARM uses @ are a comment character so we need to redefine
+@@ -95,7 +97,8 @@
+ the code more efficient, but for Thumb-1 it's better to put them out of
+ band unless we are generating compressed tables. */
+ #define JUMP_TABLES_IN_TEXT_SECTION \
+- ((TARGET_32BIT || (TARGET_THUMB && (optimize_size || flag_pic))) \
++ ((TARGET_32BIT || (TARGET_THUMB && !inline_thumb1_jump_table \
++ && (optimize_size || flag_pic))) \
+ && !target_pure_code)
+
+ #ifndef LINK_SPEC
+--- a/gcc/config/arm/linux-eabi.h
++++ b/gcc/config/arm/linux-eabi.h
+@@ -108,11 +108,16 @@
+ LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC " " ASAN_CC1_SPEC " " \
+ FDPIC_CC1_SPEC, \
+ GNU_USER_TARGET_CC1_SPEC " " ASAN_CC1_SPEC " " \
+- ANDROID_CC1_SPEC)
++ ANDROID_CC1_SPEC("-fpic"))
+
+ #define CC1PLUS_SPEC \
+ LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
+
++#undef ASM_SPEC
++#define ASM_SPEC \
++ LINUX_OR_ANDROID_CC (DEFAULT_ASM_SPEC, \
++ DEFAULT_ASM_SPEC " " ANDROID_ASM_SPEC)
++
+ #undef LIB_SPEC
+ #define LIB_SPEC \
+ LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LIB_SPEC, \
+--- a/gcc/config/i386/gnu-user.h
++++ b/gcc/config/i386/gnu-user.h
+@@ -65,9 +65,14 @@ along with GCC; see the file COPYING3.
+ When the -shared link option is used a final link is not being
+ done. */
+
++#undef ANDROID_TARGET_CC1_SPEC
++#define ANDROID_TARGET_CC1_SPEC \
++ " -mssse3 -fno-short-enums " \
++
+ #undef ASM_SPEC
+ #define ASM_SPEC \
+- "--32 %{msse2avx:%{!mavx:-msse2avx}}"
++ "--32 %{msse2avx:%{!mavx:-msse2avx}} " \
++ LINUX_OR_ANDROID_CC ("", ANDROID_ASM_SPEC)
+
+ #undef SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS \
+--- a/gcc/config/i386/gnu-user64.h
++++ b/gcc/config/i386/gnu-user64.h
+@@ -46,6 +46,11 @@ see the files COPYING3 and COPYING.RUNTI
+ #define SPEC_X32 "mx32"
+ #endif
+
++#undef ANDROID_TARGET_CC1_SPEC
++#define ANDROID_TARGET_CC1_SPEC \
++ "%{m32:-mssse3 -fno-short-enums}" \
++ "%{!m32:-msse4.2 -mpopcnt}"
++
+ #undef ASM_SPEC
+ #define ASM_SPEC "%{" SPEC_32 ":--32} \
+ %{" SPEC_64 ":--64} \
+--- a/gcc/config/i386/linux-common.h
++++ b/gcc/config/i386/linux-common.h
+@@ -36,7 +36,13 @@ along with GCC; see the file COPYING3.
+ #undef CC1_SPEC
+ #define CC1_SPEC \
+ LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC, \
+- GNU_USER_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
++ GNU_USER_TARGET_CC1_SPEC \
++ ANDROID_TARGET_CC1_SPEC \
++ " " \
++ ANDROID_CC1_SPEC("-fPIC"))
++
++#define CC1PLUS_SPEC \
++ LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
+
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+--- a/gcc/config/linux-android.h
++++ b/gcc/config/linux-android.h
+@@ -44,15 +44,18 @@
+ "%{" NOANDROID "|tno-android-ld:" LINUX_SPEC ";:" ANDROID_SPEC "}"
+
+ #define ANDROID_LINK_SPEC \
+- "%{shared: -Bsymbolic}"
++ "%{shared: -Bsymbolic} -z noexecstack -z relro -z now"
+
+-#define ANDROID_CC1_SPEC \
++#define ANDROID_CC1_SPEC(ANDROID_PIC_DEFAULT) \
+ "%{!mglibc:%{!muclibc:%{!mbionic: -mbionic}}} " \
+- "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: -fPIC}}}}"
++ "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC: " ANDROID_PIC_DEFAULT "}}}}"
+
+ #define ANDROID_CC1PLUS_SPEC \
+- "%{!fexceptions:%{!fno-exceptions: -fno-exceptions}} " \
+- "%{!frtti:%{!fno-rtti: -fno-rtti}}"
++ "%{!fexceptions:%{!fno-exceptions: -fexceptions}} " \
++ "%{!frtti:%{!fno-rtti: -frtti}}"
++
++#define ANDROID_ASM_SPEC \
++ "--noexecstack"
+
+ #define ANDROID_LIB_SPEC \
+ "%{!static: -ldl}"
+--- /dev/null
++++ b/gcc/config/mips/android.h
+@@ -0,0 +1,49 @@
++/* Target macros for mips*-*android* targets.
++ Copyright (C) 2014 Free Software Foundation, Inc.
++
++This file is part of GCC.
++
++GCC 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.
++
++GCC 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.
++
++You should have received a copy of the GNU General Public License
++along with GCC; see the file COPYING3. If not see
++<http://www.gnu.org/licenses/>. */
++
++#undef DRIVER_SELF_SPECS
++#define DRIVER_SELF_SPECS \
++ /* Make sure a -mips option is present. This helps us to pick \
++ the right multilib, and also makes the later specs easier \
++ to write. */ \
++ MIPS_ISA_LEVEL_SPEC, \
++ \
++ /* Infer the default float setting from -march. */ \
++ MIPS_ARCH_FLOAT_SPEC, \
++ \
++ /* Infer the -msynci setting from -march if not explicitly set. */ \
++ MIPS_ISA_SYNCI_SPEC, \
++ \
++ /* If no ABI option is specified, infer one from the ISA level \
++ or -mgp setting. */ \
++ "%{!mabi=*: %{" MIPS_32BIT_OPTION_SPEC ": -mabi=32;: -mabi=64}}", \
++ \
++ /* If no FP ABI option is specified, infer one from the \
++ ABI/ISA level unless there is a conflicting option. */ \
++ "%{!msoft-float: %{!msingle-float: %{!mfp*: %{!mmsa: %{mabi=32: %{" \
++ MIPS_FPXX_OPTION_SPEC ": -mfpxx}}}}}}", \
++ \
++ /* If no odd-spreg option is specified, infer one from the ISA. */ \
++ "%{!modd-spreg: %{mabi=32: %{mips32r6: -mno-odd-spreg}}}", \
++ \
++ /* Base SPECs. */ \
++ BASE_DRIVER_SELF_SPECS, \
++ \
++ /* Use the standard linux specs for everything else. */ \
++ LINUX_DRIVER_SELF_SPECS
+--- a/gcc/config/mips/gnu-user.h
++++ b/gcc/config/mips/gnu-user.h
+@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3.
+ /* The GNU C++ standard library requires this. */ \
+ if (c_dialect_cxx ()) \
+ builtin_define ("_GNU_SOURCE"); \
++ ANDROID_TARGET_OS_CPP_BUILTINS(); \
+ } while (0)
+
+ #undef SUBTARGET_CPP_SPEC
+@@ -71,7 +72,8 @@ along with GCC; see the file COPYING3.
+
+ #undef SUBTARGET_ASM_SPEC
+ #define SUBTARGET_ASM_SPEC \
+- "%{!mno-abicalls:%{mplt:-call_nonpic;:-KPIC}}"
++ "%{!mno-abicalls:%{mplt:-call_nonpic;:-KPIC}} " \
++ LINUX_OR_ANDROID_CC ("", ANDROID_ASM_SPEC)
+
+ /* The MIPS assembler has different syntax for .set. We set it to
+ .dummy to trap any errors. */
+@@ -120,7 +122,7 @@ extern const char *host_detect_local_cpu
+ #endif
+
+ #define LINUX_DRIVER_SELF_SPECS \
+- NO_SHARED_SPECS \
++ LINUX_OR_ANDROID_CC(NO_SHARED_SPECS, "") \
+ MARCH_MTUNE_NATIVE_SPECS, \
+ /* -mplt has no effect without -mno-shared. Simplify later \
+ specs handling by removing a redundant option. */ \
+--- a/gcc/config/mips/linux-common.h
++++ b/gcc/config/mips/linux-common.h
+@@ -38,7 +38,7 @@ along with GCC; see the file COPYING3.
+ #undef SUBTARGET_CC1_SPEC
+ #define SUBTARGET_CC1_SPEC \
+ LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC, \
+- GNU_USER_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
++ GNU_USER_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC("-fpic"))
+
+ #undef CC1PLUS_SPEC
+ #define CC1PLUS_SPEC \
+--- /dev/null
++++ b/gcc/config/mips/t-linux-android
+@@ -0,0 +1,3 @@
++MULTILIB_OPTIONS = mips32r2/mips32r6
++MULTILIB_DIRNAMES = mips-r2 mips-r6
++MULTILIB_OSDIRNAMES = ../libr2 ../libr6
+--- /dev/null
++++ b/gcc/config/mips/t-linux-android64
+@@ -0,0 +1,4 @@
++MULTILIB_OPTIONS = mabi=32 mips32/mips32r2/mips32r6/mips64r2/mips64r6
++MULTILIB_DIRNAMES = 32 mips-r1 mips-r2 mips-r6 mips64-r2 mips64-r6
++MULTILIB_OSDIRNAMES = ../lib ../lib ../libr2 ../libr6 ../lib64r2 ../lib64
++MULTILIB_REQUIRED = mabi=32/mips32 mabi=32/mips32r2 mabi=32/mips32r6 mips64r2 mips64r6
+--- a/libgcc/gthr-posix.h
++++ b/libgcc/gthr-posix.h
+@@ -32,6 +32,19 @@ see the files COPYING3 and COPYING.RUNTI
+ #define __GTHREADS 1
+ #define __GTHREADS_CXX0X 1
+
++/* The following should normally be in a different header file,
++ * but I couldn't find the right location. The point of the macro
++ * definition below is to prevent libsupc++ and libstdc++ to reference
++ * weak symbols in their static C++ constructors. Such code crashes
++ * when a shared object linked statically to these libraries is
++ * loaded on Android 2.1 (Eclair) and older platform releases, due
++ * to a dynamic linker bug.
++ */
++#ifdef __ANDROID__
++#undef GTHREAD_USE_WEAK
++#define GTHREAD_USE_WEAK 0
++#endif
++
+ #include <pthread.h>
+
+ #if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \
+--- a/libstdc++-v3/configure
++++ b/libstdc++-v3/configure
+@@ -74306,6 +74306,18 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
+ #include <sys/syscall.h>
+ #include <unistd.h>
+ int lk;
++#if !defined(SYS_gettid)
++#define SYS_gettid __NR_gettid
++#endif
++#if !defined(SYS_futex)
++#define SYS_futex __NR_futex
++#endif
++#if !defined(SYS_gettid)
++#define SYS_gettid __NR_gettid
++#endif
++#if !defined(SYS_futex)
++#define SYS_futex __NR_futex
++#endif
+ int
+ main ()
+ {
+--- a/libstdc++-v3/include/bits/locale_facets.h
++++ b/libstdc++-v3/include/bits/locale_facets.h
+@@ -47,6 +47,20 @@
+ #include <ext/numeric_traits.h>
+ #include <bits/streambuf_iterator.h>
+
++#if !__clang__ && __GNUC__ == 4 && __GNUC_MINOR__ == 9 && __i386__
++// CrystaX: for some reason, x86 gcc-4.9 makes ctype<char>::do_widen() and
++// ctype<char>::_M_widen_init() methods working wrong if optimization enabled.
++// For ctype<char>::do_widen(), values of passed arguments (__lo, __hi and __to)
++// are completely messed up and don't correspond to passed values. In case if
++// we disable optimization for those methods, things become correct so we apply
++// this workaround here for a time.
++// TODO: figure out what exactly wrong here - is it bug in GCC optimization
++// algorithm or smth else?
++#define __CRYSTAX_X86_DONT_OPTIMIZE __attribute__((optimize(0)))
++#else
++#define __CRYSTAX_X86_DONT_OPTIMIZE
++#endif
++
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+@@ -1104,7 +1118,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ * @return @a __hi.
+ */
+ virtual const char*
+- do_widen(const char* __lo, const char* __hi, char_type* __to) const
++ do_widen(const char* __lo, const char* __hi, char_type* __to) const __CRYSTAX_X86_DONT_OPTIMIZE
+ {
+ if (__builtin_expect(__hi != __lo, true))
+ __builtin_memcpy(__to, __lo, __hi - __lo);
+@@ -1167,7 +1181,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+ private:
+ void _M_narrow_init() const;
+- void _M_widen_init() const;
++ void _M_widen_init() const __CRYSTAX_X86_DONT_OPTIMIZE;
+ };
+
+ #ifdef _GLIBCXX_USE_WCHAR_T
+--- a/libstdc++-v3/libsupc++/guard.cc
++++ b/libstdc++-v3/libsupc++/guard.cc
+@@ -34,7 +34,12 @@
+ #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
+ && (ATOMIC_INT_LOCK_FREE > 1) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
+ # include <climits>
++#if defined(__ANDROID__)
++# include <sys/syscall.h>
++# define SYS_futex __NR_futex
++#else
+ # include <syscall.h>
++#endif
+ # include <unistd.h>
+ # define _GLIBCXX_USE_FUTEX
+ # define _GLIBCXX_FUTEX_WAIT 0
diff --git a/packages/gcc/9.2.0/0011-crystax.patch b/packages/gcc/10.2.0/0011-crystax.patch
index f1f9eb1..f1f9eb1 100644
--- a/packages/gcc/9.2.0/0011-crystax.patch
+++ b/packages/gcc/10.2.0/0011-crystax.patch
diff --git a/packages/gcc/10.2.0/0012-crystax.patch b/packages/gcc/10.2.0/0012-crystax.patch
new file mode 100644
index 0000000..e7476ba
--- /dev/null
+++ b/packages/gcc/10.2.0/0012-crystax.patch
@@ -0,0 +1,278 @@
+commit 44a81ebb7698dac41ffa7acd5e0cc1578e5ab1fd
+Author: H.J. Lu <hongjiu.lu@intel.com>
+Date: Mon Apr 14 15:59:47 2014 -0700
+
+ [android] Always enable --eh-frame-hdr for static executable
+
+ See 5e6cdf76af295c9a39b695ca228cff675e8ff4ae and
+ 23e3137ee2897464b051599b85a09f130d3ad05d
+
+ Change-Id: Ibda473188e5a10f2a0592f2494ad00ad1f91e04b
+ Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
+
+---
+ gcc/config.in | 6 +++++
+ gcc/config/alpha/elf.h | 4 +++
+ gcc/config/freebsd.h | 4 +++
+ gcc/config/gnu-user.h | 4 +++
+ gcc/config/openbsd.h | 4 +++
+ gcc/config/rs6000/sysv4.h | 6 ++++-
+ gcc/config/sol2.h | 4 +++
+ gcc/configure | 36 +++++++++++++++++++++++++++++++++
+ gcc/configure.ac | 29 ++++++++++++++++++++++++++
+ gcc/testsuite/g++.dg/eh/spec3-static.C | 25 ++++++++++++++++++++++
+ libgcc/crtstuff.c | 11 ++++++----
+ 11 files changed, 128 insertions(+), 5 deletions(-)
+
+--- a/gcc/config.in
++++ b/gcc/config.in
+@@ -2266,6 +2266,12 @@
+ #endif
+
+
++/* Define if your system supports PT_GNU_EH_FRAME for static executable. */
++#ifndef USED_FOR_TARGET
++#undef USE_EH_FRAME_HDR_FOR_STATIC
++#endif
++
++
+ /* Define to 1 if the 'long long' type is wider than 'long' but still
+ efficiently supported by the host hardware. */
+ #ifndef USED_FOR_TARGET
+--- a/gcc/config/alpha/elf.h
++++ b/gcc/config/alpha/elf.h
+@@ -142,5 +142,9 @@ extern int alpha_this_gpdisp_sequence_nu
+ I imagine that other systems will catch up. In the meantime, it
+ doesn't harm to make sure that the data exists to be used later. */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
++#ifdef USE_EH_FRAME_HDR_FOR_STATIC
++#define LINK_EH_SPEC "--eh-frame-hdr "
++#else
+ #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+ #endif
++#endif
+--- a/gcc/config/freebsd.h
++++ b/gcc/config/freebsd.h
+@@ -45,8 +45,12 @@ along with GCC; see the file COPYING3.
+ #define LIB_SPEC FBSD_LIB_SPEC
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
++#ifdef USE_EH_FRAME_HDR_FOR_STATIC
++#define LINK_EH_SPEC "--eh-frame-hdr "
++#else
+ #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+ #endif
++#endif
+
+ #ifdef TARGET_LIBC_PROVIDES_SSP
+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
+--- a/gcc/config/gnu-user.h
++++ b/gcc/config/gnu-user.h
+@@ -106,8 +106,12 @@ see the files COPYING3 and COPYING.RUNTI
+ #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
++#ifdef USE_EH_FRAME_HDR_FOR_STATIC
++#define LINK_EH_SPEC "--eh-frame-hdr "
++#else
+ #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+ #endif
++#endif
+
+ #define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static|static-pie:--start-group} %G %{!nolibc:%L} \
+--- a/gcc/config/openbsd.h
++++ b/gcc/config/openbsd.h
+@@ -136,8 +136,12 @@ while (0)
+ #define LIB_SPEC OBSD_LIB_SPEC
+
+ #if defined(HAVE_LD_EH_FRAME_HDR)
++#ifdef USE_EH_FRAME_HDR_FOR_STATIC
++#define LINK_EH_SPEC "--eh-frame-hdr "
++#else
+ #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
+ #endif
++#endif
+
+ #undef LIB_SPEC
+ #define LIB_SPEC OBSD_LIB_SPEC
+--- a/gcc/config/sol2.h
++++ b/gcc/config/sol2.h
+@@ -434,7 +434,11 @@ along with GCC; see the file COPYING3.
+ /* Solaris 11 build 135+ implements dl_iterate_phdr. GNU ld needs
+ --eh-frame-hdr to create the required .eh_frame_hdr sections. */
+ #if defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR)
++#ifdef USE_EH_FRAME_HDR_FOR_STATIC
++#define LINK_EH_SPEC "--eh-frame-hdr "
++#else
+ #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} "
++#endif
+ #endif /* HAVE_LD_EH_FRAME && TARGET_DL_ITERATE_PHDR */
+ #endif
+
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -1000,6 +1000,7 @@ enable_fix_cortex_a53_835769
+ enable_fix_cortex_a53_843419
+ with_glibc_version
+ enable_gnu_unique_object
++enable_eh_frame_hdr_for_static
+ enable_linker_build_id
+ enable_libssp
+ enable_default_ssp
+@@ -1754,6 +1755,9 @@ Optional Features:
+ --enable-gnu-unique-object
+ enable the use of the @gnu_unique_object ELF
+ extension on glibc systems
++ --enable-eh-frame-hdr-for-static
++ enable linker PT_GNU_EH_FRAME support for static
++ executable
+ --enable-linker-build-id
+ compiler will always pass --build-id to linker
+ --enable-libssp enable linking against libssp
+@@ -28836,6 +28840,38 @@ if test x"$gcc_cv_ld_eh_frame_hdr" = xye
+
+ $as_echo "#define HAVE_LD_EH_FRAME_HDR 1" >>confdefs.h
+
++ # Check whether --enable-eh-frame-hdr-for-static was given.
++if test "${enable_eh_frame_hdr_for_static+set}" = set; then :
++ enableval=$enable_eh_frame_hdr_for_static; case $enable_eh_frame_hdr_for_static in
++ yes | no) ;;
++ *) as_fn_error "'$enable_eh_frame_hdr_for_static' is an invalid
++value for --enable-eh-frame-hdr-for-static.
++Valid choices are 'yes' and 'no'." "$LINENO" 5 ;;
++ esac
++else
++ # Only support for glibc 2.3.0 or higher with AT_PHDR/AT_PHNUM from
++# Linux kernel.
++ if test x$host = x$build -a x$host = x$target &&
++ ldd --version 2>&1 >/dev/null &&
++ glibcver=`ldd --version 2>/dev/null | sed 's/.* //;q'`; then
++ glibcmajor=`expr "$glibcver" : "\([0-9]*\)"`
++ glibcminor=`expr "$glibcver" : "[2-9]*\.\([0-9]*\)"`
++ glibcnum=`expr $glibcmajor \* 1000 + $glibcminor`
++ if test "$glibcnum" -ge 2003 ; then
++ auvx=`LD_SHOW_AUXV=1 ldd 2>/dev/null`
++ if echo "$auvx" | grep AT_PHDR > /dev/null &&
++ echo "$auvx" | grep AT_PHNUM > /dev/null; then
++ enable_eh_frame_hdr_for_static=yes
++ fi
++ fi
++ fi
++fi
++
++ if test x$enable_eh_frame_hdr_for_static = xyes; then
++
++$as_echo "#define USE_EH_FRAME_HDR_FOR_STATIC 1" >>confdefs.h
++
++ fi
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_eh_frame_hdr" >&5
+ $as_echo "$gcc_cv_ld_eh_frame_hdr" >&6; }
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -5371,6 +5371,35 @@ GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HD
+ 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.])
++ AC_ARG_ENABLE(eh-frame-hdr-for-static,
++ [AS_HELP_STRING([--enable-eh-frame-hdr-for-static],
++ [enable linker PT_GNU_EH_FRAME support for static executable])],
++ [case $enable_eh_frame_hdr_for_static in
++ yes | no) ;;
++ *) AC_MSG_ERROR(['$enable_eh_frame_hdr_for_static' is an invalid
++value for --enable-eh-frame-hdr-for-static.
++Valid choices are 'yes' and 'no'.]) ;;
++ esac],
++# Only support for glibc 2.3.0 or higher with AT_PHDR/AT_PHNUM from
++# Linux kernel.
++ [[if test x$host = x$build -a x$host = x$target &&
++ ldd --version 2>&1 >/dev/null &&
++ glibcver=`ldd --version 2>/dev/null | sed 's/.* //;q'`; then
++ glibcmajor=`expr "$glibcver" : "\([0-9]*\)"`
++ glibcminor=`expr "$glibcver" : "[2-9]*\.\([0-9]*\)"`
++ glibcnum=`expr $glibcmajor \* 1000 + $glibcminor`
++ if test "$glibcnum" -ge 2003 ; then
++ auvx=`LD_SHOW_AUXV=1 ldd 2>/dev/null`
++ if echo "$auvx" | grep AT_PHDR > /dev/null &&
++ echo "$auvx" | grep AT_PHNUM > /dev/null; then
++ enable_eh_frame_hdr_for_static=yes
++ fi
++ fi
++ fi]])
++ if test x$enable_eh_frame_hdr_for_static = xyes; then
++ AC_DEFINE(USE_EH_FRAME_HDR_FOR_STATIC, 1,
++[Define if your system supports PT_GNU_EH_FRAME for static executable.])
++ fi
+ fi
+ AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
+
+--- /dev/null
++++ b/gcc/testsuite/g++.dg/eh/spec3-static.C
+@@ -0,0 +1,25 @@
++// PR c++/4381
++// Test that exception-specs work properly for classes with virtual bases.
++
++// { dg-do run }
++// { dg-options "-static" }
++
++class Base {};
++
++struct A : virtual public Base
++{
++ A() {}
++};
++
++struct B {};
++
++void func() throw (B,A)
++{
++ throw A();
++}
++
++int main(void)
++{
++ try { func(); }
++ catch (A& a) { }
++}
+--- a/libgcc/crtstuff.c
++++ b/libgcc/crtstuff.c
+@@ -88,7 +88,8 @@ call_ ## FUNC (void) \
+ #if defined(OBJECT_FORMAT_ELF) \
+ && !defined(OBJECT_FORMAT_FLAT) \
+ && defined(HAVE_LD_EH_FRAME_HDR) \
+- && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
++ && !defined(inhibit_libc) \
++ && (defined(USE_EH_FRAME_HDR_FOR_STATIC) || !defined(CRTSTUFFT_O)) \
+ && defined(BSD_DL_ITERATE_PHDR_AVAILABLE)
+ #include <link.h>
+ # define USE_PT_GNU_EH_FRAME
+@@ -97,7 +98,8 @@ call_ ## FUNC (void) \
+ #if defined(OBJECT_FORMAT_ELF) \
+ && !defined(OBJECT_FORMAT_FLAT) \
+ && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR) \
+- && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
++ && !defined(inhibit_libc) \
++ && (defined(USE_EH_FRAME_HDR_FOR_STATIC) || !defined(CRTSTUFFT_O)) \
+ && defined(__sun__) && defined(__svr4__)
+ #include <link.h>
+ # define USE_PT_GNU_EH_FRAME
+@@ -106,7 +108,8 @@ call_ ## FUNC (void) \
+ #if defined(OBJECT_FORMAT_ELF) \
+ && !defined(OBJECT_FORMAT_FLAT) \
+ && defined(HAVE_LD_EH_FRAME_HDR) \
+- && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
++ && !defined(inhibit_libc) \
++ && (defined(USE_EH_FRAME_HDR_FOR_STATIC) || !defined(CRTSTUFFT_O)) \
+ && defined(__GLIBC__) && __GLIBC__ >= 2
+ #include <link.h>
+ /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
+@@ -121,7 +124,7 @@ call_ ## FUNC (void) \
+ #if defined(OBJECT_FORMAT_ELF) \
+ && !defined(OBJECT_FORMAT_FLAT) \
+ && defined(HAVE_LD_EH_FRAME_HDR) \
+- && !defined(CRTSTUFFT_O) \
++ && (defined(USE_EH_FRAME_HDR_FOR_STATIC) || !defined(CRTSTUFFT_O)) \
+ && defined(inhibit_libc) \
+ && (defined(__GLIBC__) || defined(__gnu_linux__) || defined(__GNU__))
+ /* On systems using glibc, an inhibit_libc build of libgcc is only
diff --git a/packages/gcc/9.2.0/0013-crystax.patch b/packages/gcc/10.2.0/0013-crystax.patch
index ec5f5bd..4414940 100644
--- a/packages/gcc/9.2.0/0013-crystax.patch
+++ b/packages/gcc/10.2.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
-@@ -15618,6 +15618,7 @@ legitimate_pic_address_disp_p (rtx disp)
+@@ -10344,6 +10344,7 @@ legitimate_pic_address_disp_p (rtx disp)
else if (!SYMBOL_REF_FAR_ADDR_P (op0)
&& (SYMBOL_REF_LOCAL_P (op0)
|| (HAVE_LD_PIE_COPYRELOC
diff --git a/packages/gcc/9.2.0/0014-crystax.patch b/packages/gcc/10.2.0/0014-crystax.patch
index 5acc6b9..5acc6b9 100644
--- a/packages/gcc/9.2.0/0014-crystax.patch
+++ b/packages/gcc/10.2.0/0014-crystax.patch
diff --git a/packages/gcc/9.2.0/0015-crystax.patch b/packages/gcc/10.2.0/0015-crystax.patch
index 2b51260..1a4f6b3 100644
--- a/packages/gcc/9.2.0/0015-crystax.patch
+++ b/packages/gcc/10.2.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
-@@ -22781,9 +22781,13 @@ arm_print_operand (FILE *stream, rtx x,
+@@ -24077,9 +24077,13 @@ arm_print_operand (FILE *stream, rtx x,
memsize = MEM_SIZE (x);
/* Only certain alignment specifiers are supported by the hardware. */
diff --git a/packages/gcc/9.2.0/0016-crystax.patch b/packages/gcc/10.2.0/0016-crystax.patch
index 8c21a1c..8c21a1c 100644
--- a/packages/gcc/9.2.0/0016-crystax.patch
+++ b/packages/gcc/10.2.0/0016-crystax.patch
diff --git a/packages/gcc/9.2.0/0017-crystax.patch b/packages/gcc/10.2.0/0017-crystax.patch
index 1a46aed..1a46aed 100644
--- a/packages/gcc/9.2.0/0017-crystax.patch
+++ b/packages/gcc/10.2.0/0017-crystax.patch
diff --git a/packages/gcc/9.2.0/0018-isl-0.20.patch b/packages/gcc/10.2.0/0018-isl-0.20.patch
index de188b1..de188b1 100644
--- a/packages/gcc/9.2.0/0018-isl-0.20.patch
+++ b/packages/gcc/10.2.0/0018-isl-0.20.patch
diff --git a/packages/gcc/10.2.0/chksum b/packages/gcc/10.2.0/chksum
new file mode 100644
index 0000000..d79063b
--- /dev/null
+++ b/packages/gcc/10.2.0/chksum
@@ -0,0 +1,8 @@
+md5 gcc-10.2.0.tar.xz e9fd9b1789155ad09bcf3ae747596b50
+sha1 gcc-10.2.0.tar.xz 8de0aecd3a52bb92b43082df8a9256356d1f03be
+sha256 gcc-10.2.0.tar.xz b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c
+sha512 gcc-10.2.0.tar.xz 42ae38928bd2e8183af445da34220964eb690b675b1892bbeb7cd5bb62be499011ec9a93397dba5e2fb681afadfc6f2767d03b9035b44ba9be807187ae6dc65e
+md5 gcc-10.2.0.tar.gz 941a8674ea2eeb33f5c30ecf08124874
+sha1 gcc-10.2.0.tar.gz 4475b004e10cef904d7d605edd42af6ffffe4713
+sha256 gcc-10.2.0.tar.gz 27e879dccc639cd7b0cc08ed575c1669492579529b53c9ff27b0b96265fa867d
+sha512 gcc-10.2.0.tar.gz 5118865a85e70ba58702bb3615d3d9e44dcdbc725fdb71124da78dd412388c5fc367378771bf82fed4d6e2c62fde4c7c362ec1f8ddcae762a2af957f2d605520
diff --git a/packages/linux/5.4.21/version.desc b/packages/gcc/10.2.0/version.desc
index e69de29..e69de29 100644
--- a/packages/linux/5.4.21/version.desc
+++ b/packages/gcc/10.2.0/version.desc
diff --git a/packages/gcc/8.3.0/chksum b/packages/gcc/8.3.0/chksum
deleted file mode 100644
index bf662ee..0000000
--- a/packages/gcc/8.3.0/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 gcc-8.3.0.tar.xz 65b210b4bfe7e060051f799e0f994896
-sha1 gcc-8.3.0.tar.xz c27f4499dd263fe4fb01bcc5565917f3698583b2
-sha256 gcc-8.3.0.tar.xz 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
-sha512 gcc-8.3.0.tar.xz 1811337ae3add9680cec64968a2509d085b6dc5b6783fc1e8c295e3e47416196fd1a3ad8dfe7e10be2276b4f62c357659ce2902f239f60a8648548231b4b5802
-md5 gcc-8.3.0.tar.gz 9972f8c24c02ebcb5a342c1b30de69ff
-sha1 gcc-8.3.0.tar.gz f9e58b8aedd77eacc39d45a97ef7692cd59372bf
-sha256 gcc-8.3.0.tar.gz ea71adc1c3d86330874b8df19611424b143308f0d6612d542472600532c96d2d
-sha512 gcc-8.3.0.tar.gz c0e6c3b6de8e40f1f078583bec0d9c0237fbcfd5c73cebe3c188aee1fd702cabc5f2bd2a3b05b4dfd8336cc214d6158c8ad885fe412fc193a7cca4e519ba7ab3
diff --git a/packages/gcc/8.3.0/0000-libtool-leave-framework-alone.patch b/packages/gcc/8.4.0/0000-libtool-leave-framework-alone.patch
index 1a86e41..1a86e41 100644
--- a/packages/gcc/8.3.0/0000-libtool-leave-framework-alone.patch
+++ b/packages/gcc/8.4.0/0000-libtool-leave-framework-alone.patch
diff --git a/packages/gcc/8.3.0/0001-uclibc-conf.patch b/packages/gcc/8.4.0/0001-uclibc-conf.patch
index aef750a..aef750a 100644
--- a/packages/gcc/8.3.0/0001-uclibc-conf.patch
+++ b/packages/gcc/8.4.0/0001-uclibc-conf.patch
diff --git a/packages/gcc/8.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch b/packages/gcc/8.4.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
index 20a88df..20a88df 100644
--- a/packages/gcc/8.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
+++ b/packages/gcc/8.4.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
diff --git a/packages/gcc/8.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/8.4.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
index 5f9a07a..5f9a07a 100644
--- a/packages/gcc/8.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
+++ b/packages/gcc/8.4.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
diff --git a/packages/gcc/8.3.0/0004-arm-softfloat-libgcc.patch b/packages/gcc/8.4.0/0004-arm-softfloat-libgcc.patch
index d980036..d980036 100644
--- a/packages/gcc/8.3.0/0004-arm-softfloat-libgcc.patch
+++ b/packages/gcc/8.4.0/0004-arm-softfloat-libgcc.patch
diff --git a/packages/gcc/8.3.0/0005-fix-m68k-uclinux.patch b/packages/gcc/8.4.0/0005-fix-m68k-uclinux.patch
index 02b53bd..02b53bd 100644
--- a/packages/gcc/8.3.0/0005-fix-m68k-uclinux.patch
+++ b/packages/gcc/8.4.0/0005-fix-m68k-uclinux.patch
diff --git a/packages/gcc/8.3.0/0006-libgfortran-missing-include.patch b/packages/gcc/8.4.0/0006-libgfortran-missing-include.patch
index 6e2e4e4..6e2e4e4 100644
--- a/packages/gcc/8.3.0/0006-libgfortran-missing-include.patch
+++ b/packages/gcc/8.4.0/0006-libgfortran-missing-include.patch
diff --git a/packages/gcc/8.3.0/0007-nios2-bad-multilib-default.patch b/packages/gcc/8.4.0/0007-nios2-bad-multilib-default.patch
index 4acc491..4acc491 100644
--- a/packages/gcc/8.3.0/0007-nios2-bad-multilib-default.patch
+++ b/packages/gcc/8.4.0/0007-nios2-bad-multilib-default.patch
diff --git a/packages/gcc/8.3.0/0008-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/8.4.0/0008-libgcc-disable-split-stack-nothreads.patch
index df91a9f..df91a9f 100644
--- a/packages/gcc/8.3.0/0008-libgcc-disable-split-stack-nothreads.patch
+++ b/packages/gcc/8.4.0/0008-libgcc-disable-split-stack-nothreads.patch
diff --git a/packages/gcc/8.3.0/0009-bionic-ndk.patch b/packages/gcc/8.4.0/0009-bionic-ndk.patch
index 474dd8c..474dd8c 100644
--- a/packages/gcc/8.3.0/0009-bionic-ndk.patch
+++ b/packages/gcc/8.4.0/0009-bionic-ndk.patch
diff --git a/packages/gcc/8.3.0/0010-crystax.patch b/packages/gcc/8.4.0/0010-crystax.patch
index 0e3e95c..0e3e95c 100644
--- a/packages/gcc/8.3.0/0010-crystax.patch
+++ b/packages/gcc/8.4.0/0010-crystax.patch
diff --git a/packages/gcc/8.3.0/0011-crystax.patch b/packages/gcc/8.4.0/0011-crystax.patch
index f1f9eb1..f1f9eb1 100644
--- a/packages/gcc/8.3.0/0011-crystax.patch
+++ b/packages/gcc/8.4.0/0011-crystax.patch
diff --git a/packages/gcc/8.3.0/0012-crystax.patch b/packages/gcc/8.4.0/0012-crystax.patch
index 2bf6cc7..2bf6cc7 100644
--- a/packages/gcc/8.3.0/0012-crystax.patch
+++ b/packages/gcc/8.4.0/0012-crystax.patch
diff --git a/packages/gcc/8.3.0/0013-crystax.patch b/packages/gcc/8.4.0/0013-crystax.patch
index 3454df0..3454df0 100644
--- a/packages/gcc/8.3.0/0013-crystax.patch
+++ b/packages/gcc/8.4.0/0013-crystax.patch
diff --git a/packages/gcc/8.3.0/0014-crystax.patch b/packages/gcc/8.4.0/0014-crystax.patch
index 8f2eb43..8f2eb43 100644
--- a/packages/gcc/8.3.0/0014-crystax.patch
+++ b/packages/gcc/8.4.0/0014-crystax.patch
diff --git a/packages/gcc/8.3.0/0015-crystax.patch b/packages/gcc/8.4.0/0015-crystax.patch
index 2424d2b..2424d2b 100644
--- a/packages/gcc/8.3.0/0015-crystax.patch
+++ b/packages/gcc/8.4.0/0015-crystax.patch
diff --git a/packages/gcc/8.3.0/0016-crystax.patch b/packages/gcc/8.4.0/0016-crystax.patch
index 8c21a1c..8c21a1c 100644
--- a/packages/gcc/8.3.0/0016-crystax.patch
+++ b/packages/gcc/8.4.0/0016-crystax.patch
diff --git a/packages/gcc/8.3.0/0017-crystax.patch b/packages/gcc/8.4.0/0017-crystax.patch
index ccb81fd..ccb81fd 100644
--- a/packages/gcc/8.3.0/0017-crystax.patch
+++ b/packages/gcc/8.4.0/0017-crystax.patch
diff --git a/packages/gcc/8.3.0/0018-ARC-Add-multilib-support-for-linux-targets.patch b/packages/gcc/8.4.0/0018-ARC-Add-multilib-support-for-linux-targets.patch
index 6c0ff27..6c0ff27 100644
--- a/packages/gcc/8.3.0/0018-ARC-Add-multilib-support-for-linux-targets.patch
+++ b/packages/gcc/8.4.0/0018-ARC-Add-multilib-support-for-linux-targets.patch
diff --git a/packages/gcc/8.3.0/0019-isl-0.20.patch b/packages/gcc/8.4.0/0019-isl-0.20.patch
index 3e14966..3e14966 100644
--- a/packages/gcc/8.3.0/0019-isl-0.20.patch
+++ b/packages/gcc/8.4.0/0019-isl-0.20.patch
diff --git a/packages/gcc/8.3.0/0020-ARM-fix-cmse.patch b/packages/gcc/8.4.0/0020-ARM-fix-cmse.patch
index cf2d243..cf2d243 100644
--- a/packages/gcc/8.3.0/0020-ARM-fix-cmse.patch
+++ b/packages/gcc/8.4.0/0020-ARM-fix-cmse.patch
diff --git a/packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch b/packages/gcc/8.4.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch
index afdc1a5..afdc1a5 100644
--- a/packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch
+++ b/packages/gcc/8.4.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch
diff --git a/packages/gcc/8.3.0/0022-ARC-Update-fma-expansions.patch b/packages/gcc/8.4.0/0022-ARC-Update-fma-expansions.patch
index c2680d5..c2680d5 100644
--- a/packages/gcc/8.3.0/0022-ARC-Update-fma-expansions.patch
+++ b/packages/gcc/8.4.0/0022-ARC-Update-fma-expansions.patch
diff --git a/packages/gcc/8.4.0/chksum b/packages/gcc/8.4.0/chksum
new file mode 100644
index 0000000..566ffd7
--- /dev/null
+++ b/packages/gcc/8.4.0/chksum
@@ -0,0 +1,8 @@
+md5 gcc-8.4.0.tar.xz bb815a8e3b7be43c4a26fa89dbbd9795
+sha1 gcc-8.4.0.tar.xz 00ddb177b04caffd40f7af0175d5b3c8e5442545
+sha256 gcc-8.4.0.tar.xz e30a6e52d10e1f27ed55104ad233c30bd1e99cfb5ff98ab022dc941edd1b2dd4
+sha512 gcc-8.4.0.tar.xz 6de904f552a02de33b11ef52312bb664396efd7e1ce3bbe37bfad5ef617f133095b3767b4804bc7fe78df335cb53bc83f1ac055baed40979ce4c2c3e46b70280
+md5 gcc-8.4.0.tar.gz 732a4fd69c36c0a12ee2b43368ccf3c9
+sha1 gcc-8.4.0.tar.gz 4151dfa99d390594c21a68ead04aabc259515517
+sha256 gcc-8.4.0.tar.gz 41e8b145832fc0b2b34c798ed25fb54a881b0cee4cd581b77c7dc92722c116a8
+sha512 gcc-8.4.0.tar.gz a0340bb83fb0ac0d3f7e0bcd06f6d5aa21e464ef319ab057cfacff036aa1f0d53e73a8b0ec2a00fd5eb1ea897401ffb510f7ac315bb5f5c88a6ae60497d921c0
diff --git a/packages/linux/4.9.214/version.desc b/packages/gcc/8.4.0/version.desc
index e69de29..e69de29 100644
--- a/packages/linux/4.9.214/version.desc
+++ b/packages/gcc/8.4.0/version.desc
diff --git a/packages/gcc/9.2.0/chksum b/packages/gcc/9.2.0/chksum
deleted file mode 100644
index 2ece552..0000000
--- a/packages/gcc/9.2.0/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 gcc-9.2.0.tar.xz 3818ad8600447f05349098232c2ddc78
-sha1 gcc-9.2.0.tar.xz 306d27c3465fa36862c206738d06d65fff5c3645
-sha256 gcc-9.2.0.tar.xz ea6ef08f121239da5695f76c9b33637a118dcf63e24164422231917fa61fb206
-sha512 gcc-9.2.0.tar.xz a12dff52af876aee0fd89a8d09cdc455f35ec46845e154023202392adc164848faf8ee881b59b681b696e27c69fd143a214014db4214db62f9891a1c8365c040
-md5 gcc-9.2.0.tar.gz e03739b042a14376d727ddcfd05a9bc3
-sha1 gcc-9.2.0.tar.gz 256be3760f6aca3eaa45083e25828ce0802e2010
-sha256 gcc-9.2.0.tar.gz a931a750d6feadacbeecb321d73925cd5ebb6dfa7eff0802984af3aef63759f4
-sha512 gcc-9.2.0.tar.gz 55fead9cac2374b18134c17a143fc9317f67be834589303d31a7c3a6878e6bef22a0590fda902a07cb60f802df035e67975a8ab6a641048e0baa89af439a46ca
diff --git a/packages/gcc/9.3.0/0000-libtool-leave-framework-alone.patch b/packages/gcc/9.3.0/0000-libtool-leave-framework-alone.patch
new file mode 100644
index 0000000..b5804ea
--- /dev/null
+++ b/packages/gcc/9.3.0/0000-libtool-leave-framework-alone.patch
@@ -0,0 +1,18 @@
+---
+ libtool-ldflags | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/libtool-ldflags
++++ b/libtool-ldflags
+@@ -36,6 +36,11 @@ prev_arg=
+ for arg
+ do
+ case $arg in
++ -framework)
++ # libtool handles this option. It should not be prefixed with
++ # -Xcompiler, as that would split it from the argument that
++ # follows.
++ ;;
+ -f*|--*|-static-lib*|-shared-lib*|-B*)
+ # Libtool does not ascribe any special meaning options
+ # that begin with -f or with a double-dash. So, it will
diff --git a/packages/gcc/9.3.0/0001-uclibc-conf.patch b/packages/gcc/9.3.0/0001-uclibc-conf.patch
new file mode 100644
index 0000000..a9ae872
--- /dev/null
+++ b/packages/gcc/9.3.0/0001-uclibc-conf.patch
@@ -0,0 +1,17 @@
+---
+ contrib/regression/objs-gcc.sh | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/contrib/regression/objs-gcc.sh
++++ b/contrib/regression/objs-gcc.sh
+@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H
+ then
+ make all-gdb all-dejagnu all-ld || exit 1
+ make install-gdb install-dejagnu install-ld || exit 1
++elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
++ then
++ make all-gdb all-dejagnu all-ld || exit 1
++ make install-gdb install-dejagnu install-ld || exit 1
+ elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
+ make bootstrap || exit 1
+ make install || exit 1
diff --git a/packages/gcc/9.2.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch b/packages/gcc/9.3.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
index e755998..18fe931 100644
--- a/packages/gcc/9.2.0/0002-gcc-plugin-Win-Dont-need-undefined-extern-var-refs-nor-fpic.patch
+++ b/packages/gcc/9.3.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
-@@ -29858,6 +29858,9 @@ fi
+@@ -29862,6 +29862,9 @@ fi
pluginlibs=
plugin_check=yes
@@ -63,7 +63,7 @@
case "${host}" in
*-*-mingw*)
# Since plugin support under MinGW is not as straightforward as on
-@@ -29880,6 +29883,11 @@ fi
+@@ -29884,6 +29887,11 @@ fi
export_sym_check=
fi
;;
@@ -75,7 +75,7 @@
*)
if test x$build = x$host; then
export_sym_check="objdump${exeext} -T"
-@@ -29992,23 +30000,23 @@ fi
+@@ -29996,23 +30004,23 @@ fi
case "${host}" in
*-*-darwin*)
CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
diff --git a/packages/gcc/9.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch b/packages/gcc/9.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
new file mode 100644
index 0000000..3040e23
--- /dev/null
+++ b/packages/gcc/9.3.0/0003-gcc-plugin-POSIX-include-sys-select-h.patch
@@ -0,0 +1,14 @@
+---
+ libcc1/connection.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/libcc1/connection.cc
++++ b/libcc1/connection.cc
+@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3.
+ #include <string>
+ #include <unistd.h>
+ #include <sys/types.h>
++#include <sys/select.h>
+ #include <string.h>
+ #include <errno.h>
+ #include "marshall.hh"
diff --git a/packages/gcc/9.3.0/0004-arm-softfloat-libgcc.patch b/packages/gcc/9.3.0/0004-arm-softfloat-libgcc.patch
new file mode 100644
index 0000000..d980036
--- /dev/null
+++ b/packages/gcc/9.3.0/0004-arm-softfloat-libgcc.patch
@@ -0,0 +1,31 @@
+---
+ gcc/config/arm/linux-elf.h | 2 +-
+ libgcc/config/arm/t-linux | 7 ++++++-
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+--- a/gcc/config/arm/linux-elf.h
++++ b/gcc/config/arm/linux-elf.h
+@@ -58,7 +58,7 @@
+ %{shared:-lc} \
+ %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
+
+-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
++#define LIBGCC_SPEC "-lgcc"
+
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
+
+--- a/libgcc/config/arm/t-linux
++++ b/libgcc/config/arm/t-linux
+@@ -1,6 +1,11 @@
+ LIB1ASMSRC = arm/lib1funcs.S
+ LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \
+- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3
++ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \
++ _arm_addsubdf3 _arm_addsubsf3 \
++ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \
++ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \
++ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \
++ _arm_fixsfsi _arm_fixunssfsi
+
+ # Just for these, we omit the frame pointer since it makes such a big
+ # difference.
diff --git a/packages/gcc/9.2.0/0005-fix-m68k-uclinux.patch b/packages/gcc/9.3.0/0005-fix-m68k-uclinux.patch
index 62bea0e..62bea0e 100644
--- a/packages/gcc/9.2.0/0005-fix-m68k-uclinux.patch
+++ b/packages/gcc/9.3.0/0005-fix-m68k-uclinux.patch
diff --git a/packages/gcc/9.2.0/0006-libgfortran-missing-include.patch b/packages/gcc/9.3.0/0006-libgfortran-missing-include.patch
index f93524b..f93524b 100644
--- a/packages/gcc/9.2.0/0006-libgfortran-missing-include.patch
+++ b/packages/gcc/9.3.0/0006-libgfortran-missing-include.patch
diff --git a/packages/gcc/9.3.0/0007-nios2-bad-multilib-default.patch b/packages/gcc/9.3.0/0007-nios2-bad-multilib-default.patch
new file mode 100644
index 0000000..4acc491
--- /dev/null
+++ b/packages/gcc/9.3.0/0007-nios2-bad-multilib-default.patch
@@ -0,0 +1,31 @@
+---
+ gcc/config/nios2/nios2.h | 4 ++--
+ gcc/config/nios2/t-nios2 | 3 +--
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+--- a/gcc/config/nios2/nios2.h
++++ b/gcc/config/nios2/nios2.h
+@@ -63,11 +63,11 @@
+ #if TARGET_ENDIAN_DEFAULT == 0
+ # define ASM_SPEC "%{!meb:-EL} %{meb:-EB} %{march=*:-march=%*}"
+ # define LINK_SPEC_ENDIAN "%{!meb:-EL} %{meb:-EB}"
+-# define MULTILIB_DEFAULTS { "EL" }
++# define MULTILIB_DEFAULTS { "mel" }
+ #else
+ # define ASM_SPEC "%{!mel:-EB} %{mel:-EL} %{march=*:-march=%*}"
+ # define LINK_SPEC_ENDIAN "%{!mel:-EB} %{mel:-EL}"
+-# define MULTILIB_DEFAULTS { "EB" }
++# define MULTILIB_DEFAULTS { "meb" }
+ #endif
+
+ #define LINK_SPEC LINK_SPEC_ENDIAN \
+--- a/gcc/config/nios2/t-nios2
++++ b/gcc/config/nios2/t-nios2
+@@ -22,6 +22,5 @@
+ # MULTILIB_DIRNAMES = nomul mulx fpu-60-1 fpu-60-2
+ # MULTILIB_EXCEPTIONS =
+
+-# MULTILIB_OPTIONS += EL/EB
++# MULTILIB_OPTIONS += mel/meb
+ # MULTILIB_DIRNAMES += le be
+-# MULTILIB_MATCHES += EL=mel EB=meb
diff --git a/packages/gcc/9.3.0/0008-libgcc-disable-split-stack-nothreads.patch b/packages/gcc/9.3.0/0008-libgcc-disable-split-stack-nothreads.patch
new file mode 100644
index 0000000..df91a9f
--- /dev/null
+++ b/packages/gcc/9.3.0/0008-libgcc-disable-split-stack-nothreads.patch
@@ -0,0 +1,17 @@
+disable split-stack for non-thread builds
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+---
+ libgcc/config/t-stack | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/libgcc/config/t-stack
++++ b/libgcc/config/t-stack
+@@ -1,4 +1,6 @@
+ # Makefile fragment to provide generic support for -fsplit-stack.
+ # This should be used in config.host for any host which supports
+ # -fsplit-stack.
++ifeq ($(enable_threads),yes)
+ LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c
++endif
diff --git a/packages/gcc/9.3.0/0009-bionic-ndk.patch b/packages/gcc/9.3.0/0009-bionic-ndk.patch
new file mode 100644
index 0000000..090172d
--- /dev/null
+++ b/packages/gcc/9.3.0/0009-bionic-ndk.patch
@@ -0,0 +1,60 @@
+commit d38d37bdfe24b7ce1bdcb55642fb6b904718e68f
+Author: Howard Chu <hyc@symas.com>
+Date: Tue Apr 25 19:02:18 2017 -0700
+
+ Fix ctype for newer NDK headers
+
+---
+ libstdc++-v3/config/os/bionic/ctype_base.h | 34 +++++++++++++++++++----------
+ 1 file changed, 23 insertions(+), 11 deletions(-)
+
+--- a/libstdc++-v3/config/os/bionic/ctype_base.h
++++ b/libstdc++-v3/config/os/bionic/ctype_base.h
+@@ -28,6 +28,18 @@
+
+ // Information as gleaned from /usr/include/ctype.h
+
++// _CTYPE prefix was added in NDK r14 unified headers
++#ifndef _CTYPE_U
++#define _CTYPE_U _U
++#define _CTYPE_L _L
++#define _CTYPE_D _N
++#define _CTYPE_S _S
++#define _CTYPE_P _P
++#define _CTYPE_C _C
++#define _CTYPE_X _X
++#define _CTYPE_B _B
++#endif
++
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+@@ -41,17 +53,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ // NB: Offsets into ctype<char>::_M_table force a particular size
+ // on the mask type. Because of this, we don't use an enum.
+ typedef char mask;
+- static const mask upper = _U;
+- static const mask lower = _L;
+- static const mask alpha = _U | _L;
+- static const mask digit = _N;
+- static const mask xdigit = _X | _N;
+- static const mask space = _S;
+- static const mask print = _P | _U | _L | _N | _B;
+- static const mask graph = _P | _U | _L | _N;
+- static const mask cntrl = _C;
+- static const mask punct = _P;
+- static const mask alnum = _U | _L | _N;
++ static const mask upper = _CTYPE_U;
++ static const mask lower = _CTYPE_L;
++ static const mask alpha = _CTYPE_U | _CTYPE_L;
++ static const mask digit = _CTYPE_D;
++ static const mask xdigit = _CTYPE_X | _CTYPE_D;
++ static const mask space = _CTYPE_S;
++ static const mask print = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_D | _CTYPE_B;
++ static const mask graph = _CTYPE_P | _CTYPE_U | _CTYPE_L | _CTYPE_D;
++ static const mask cntrl = _CTYPE_C;
++ static const mask punct = _CTYPE_P;
++ static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_D;
+ #if __cplusplus >= 201103L
+ static const mask blank = space;
+ #endif
diff --git a/packages/gcc/9.2.0/0010-crystax.patch b/packages/gcc/9.3.0/0010-crystax.patch
index 9d66c74..8ac327a 100644
--- a/packages/gcc/9.2.0/0010-crystax.patch
+++ b/packages/gcc/9.3.0/0010-crystax.patch
@@ -157,12 +157,14 @@ Date: Wed Jul 29 11:28:29 2015 +0300
#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
-@@ -1856,10 +1856,11 @@ enum arm_auto_incmodes
+@@ -1856,12 +1856,13 @@ enum arm_auto_incmodes
+
+ #define CASE_VECTOR_PC_RELATIVE ((TARGET_THUMB2 \
+ || (TARGET_THUMB1 \
++ && !inline_thumb1_jump_table \
+ && (optimize_size || flag_pic))) \
+ && (!target_pure_code))
- #define CASE_VECTOR_PC_RELATIVE (TARGET_THUMB2 \
- || (TARGET_THUMB1 \
-+ && !inline_thumb1_jump_table \
- && (optimize_size || flag_pic)))
#define CASE_VECTOR_SHORTEN_MODE(min, max, body) \
- (TARGET_THUMB1 \
@@ -172,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
-@@ -8894,7 +8894,7 @@
+@@ -8920,7 +8920,7 @@
(match_operand:SI 2 "const_int_operand" "") ; total range
(match_operand:SI 3 "" "") ; table label
(match_operand:SI 4 "" "")] ; Out of range label
@@ -450,7 +452,7 @@ Date: Wed Jul 29 11:28:29 2015 +0300
#if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
-@@ -78742,6 +78742,18 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
+@@ -78982,6 +78982,18 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
/* end confdefs.h. */
#include <sys/syscall.h>
int lk;
diff --git a/packages/gcc/9.3.0/0011-crystax.patch b/packages/gcc/9.3.0/0011-crystax.patch
new file mode 100644
index 0000000..f1f9eb1
--- /dev/null
+++ b/packages/gcc/9.3.0/0011-crystax.patch
@@ -0,0 +1,27 @@
+commit 9f057b62caafe08c968103d39b5df82486a175c2
+Author: Dmitry Moskalchuk <dm@crystax.net>
+Date: Thu Aug 13 16:11:54 2015 +0300
+
+ [android] Add additional multilib option: mfloat-abi=hard
+
+ Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
+
+---
+ gcc/config/arm/t-linux-androideabi | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/gcc/config/arm/t-linux-androideabi
++++ b/gcc/config/arm/t-linux-androideabi
+@@ -1,8 +1,9 @@
+-MULTILIB_OPTIONS = march=armv7-a mthumb
+-MULTILIB_DIRNAMES = armv7-a thumb
+-MULTILIB_EXCEPTIONS =
++MULTILIB_OPTIONS = march=armv7-a mthumb mfloat-abi=hard
++MULTILIB_DIRNAMES = armv7-a thumb hard
++MULTILIB_EXCEPTIONS = mfloat-abi=hard* mthumb/mfloat-abi=hard*
+ MULTILIB_MATCHES =
+ MULTILIB_OSDIRNAMES =
++MULTILIB_EXTRA_OPTS = Wl,--no-warn-mismatch
+
+ # The "special" multilib can be used to build native applications for Android,
+ # as opposed to native shared libraries that are then called via JNI.
diff --git a/packages/gcc/9.2.0/0012-crystax.patch b/packages/gcc/9.3.0/0012-crystax.patch
index 7edf128..1363d29 100644
--- a/packages/gcc/9.2.0/0012-crystax.patch
+++ b/packages/gcc/9.3.0/0012-crystax.patch
@@ -112,7 +112,7 @@ Date: Mon Apr 14 15:59:47 2014 -0700
--- a/gcc/configure
+++ b/gcc/configure
-@@ -985,6 +985,7 @@ enable_fix_cortex_a53_835769
+@@ -986,6 +986,7 @@ enable_fix_cortex_a53_835769
enable_fix_cortex_a53_843419
with_glibc_version
enable_gnu_unique_object
@@ -120,7 +120,7 @@ Date: Mon Apr 14 15:59:47 2014 -0700
enable_linker_build_id
enable_libssp
enable_default_ssp
-@@ -1736,6 +1737,9 @@ Optional Features:
+@@ -1737,6 +1738,9 @@ Optional Features:
--enable-gnu-unique-object
enable the use of the @gnu_unique_object ELF
extension on glibc systems
@@ -130,7 +130,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
-@@ -28348,6 +28352,38 @@ if test x"$gcc_cv_ld_eh_frame_hdr" = xye
+@@ -28349,6 +28353,38 @@ if test x"$gcc_cv_ld_eh_frame_hdr" = xye
$as_echo "#define HAVE_LD_EH_FRAME_HDR 1" >>confdefs.h
diff --git a/packages/gcc/9.3.0/0013-crystax.patch b/packages/gcc/9.3.0/0013-crystax.patch
new file mode 100644
index 0000000..e7fdd6e
--- /dev/null
+++ b/packages/gcc/9.3.0/0013-crystax.patch
@@ -0,0 +1,22 @@
+commit 778a9ef107f51544d583f110e92b75f4d9d79117
+Author: Dmitry Moskalchuk <dm@crystax.net>
+Date: Thu Aug 20 19:11:07 2015 +0300
+
+ [android] Don't use PIE copyrelocs for x86/x86_64
+
+ Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
+
+---
+ gcc/config/i386/i386.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/gcc/config/i386/i386.c
++++ b/gcc/config/i386/i386.c
+@@ -15635,6 +15635,7 @@ legitimate_pic_address_disp_p (rtx disp)
+ else if (!SYMBOL_REF_FAR_ADDR_P (op0)
+ && (SYMBOL_REF_LOCAL_P (op0)
+ || (HAVE_LD_PIE_COPYRELOC
++ && !TARGET_HAS_BIONIC
+ && flag_pie
+ && !SYMBOL_REF_WEAK (op0)
+ && !SYMBOL_REF_FUNCTION_P (op0)))
diff --git a/packages/gcc/9.3.0/0014-crystax.patch b/packages/gcc/9.3.0/0014-crystax.patch
new file mode 100644
index 0000000..5acc6b9
--- /dev/null
+++ b/packages/gcc/9.3.0/0014-crystax.patch
@@ -0,0 +1,26 @@
+commit dbeae1190cabad83999f2540523f045acc1bb4ec
+Author: Dmitry Moskalchuk <dm@crystax.net>
+Date: Fri Aug 21 17:41:59 2015 +0300
+
+ [android] Always use gthr-posix.h instead of gthr-default.h
+
+ Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
+
+---
+ libgcc/gthr.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/libgcc/gthr.h
++++ b/libgcc/gthr.h
+@@ -145,7 +145,11 @@ see the files COPYING3 and COPYING.RUNTI
+ #define GTHREAD_USE_WEAK 1
+ #endif
+ #endif
++#if __ANDROID__
++#include "gthr-posix.h"
++#else
+ #include "gthr-default.h"
++#endif
+
+ #ifndef HIDE_EXPORTS
+ #pragma GCC visibility pop
diff --git a/packages/gcc/9.3.0/0015-crystax.patch b/packages/gcc/9.3.0/0015-crystax.patch
new file mode 100644
index 0000000..a0bad24
--- /dev/null
+++ b/packages/gcc/9.3.0/0015-crystax.patch
@@ -0,0 +1,33 @@
+commit 8a66d422721ae5999737d7825701ff22097d287b
+Author: Andrew Hsieh <andrewhsieh@google.com>
+Date: Mon Apr 14 21:05:51 2014 -0700
+
+ [android] Fix ARM generates insufficient alignment for NEON vst/vld
+
+ See d909af3e2469aad87d5c3e79b93c778fd26c03a9
+
+ Change-Id: Ie1de9f946f397196bb6f1623f5add86933739484
+ Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
+
+---
+ gcc/config/arm/arm.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/gcc/config/arm/arm.c
++++ b/gcc/config/arm/arm.c
+@@ -22862,9 +22862,13 @@ arm_print_operand (FILE *stream, rtx x,
+ memsize = MEM_SIZE (x);
+
+ /* Only certain alignment specifiers are supported by the hardware. */
+- if (memsize == 32 && (align % 32) == 0)
++ /* Note that ARM EABI only guarentees 8-byte stack alignment. While GCC
++ honors stricter alignment of composite type in user code, it doesn't
++ observe the alignment of memory passed as an extra argument for function
++ returning large composite type. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57271 */
++ if (memsize == 32 && (align % 32) == 0 && !TARGET_AAPCS_BASED)
+ align_bits = 256;
+- else if ((memsize == 16 || memsize == 32) && (align % 16) == 0)
++ else if ((memsize == 16 || memsize == 32) && (align % 16) == 0 && !TARGET_AAPCS_BASED)
+ align_bits = 128;
+ else if (memsize >= 8 && (align % 8) == 0)
+ align_bits = 64;
diff --git a/packages/gcc/9.3.0/0016-crystax.patch b/packages/gcc/9.3.0/0016-crystax.patch
new file mode 100644
index 0000000..8c21a1c
--- /dev/null
+++ b/packages/gcc/9.3.0/0016-crystax.patch
@@ -0,0 +1,23 @@
+commit 89d27bc45ee7325dcfff6748da0f8b9c1dc1f234
+Author: Dmitry Moskalchuk <dm@crystax.net>
+Date: Sat Aug 22 09:55:55 2015 +0300
+
+ [android][i386] Remove throw() declaration from posix_memalign() proto
+
+ Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
+
+---
+ gcc/config/i386/pmm_malloc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/gcc/config/i386/pmm_malloc.h
++++ b/gcc/config/i386/pmm_malloc.h
+@@ -31,7 +31,7 @@
+ #ifndef __cplusplus
+ extern int posix_memalign (void **, size_t, size_t);
+ #else
+-extern "C" int posix_memalign (void **, size_t, size_t) throw ();
++extern "C" int posix_memalign (void **, size_t, size_t);
+ #endif
+
+ static __inline void *
diff --git a/packages/gcc/9.3.0/0017-crystax.patch b/packages/gcc/9.3.0/0017-crystax.patch
new file mode 100644
index 0000000..1a46aed
--- /dev/null
+++ b/packages/gcc/9.3.0/0017-crystax.patch
@@ -0,0 +1,34 @@
+commit 9ae82f7cfc1073820092dd9f957559667e77db0d
+Author: Dmitry Moskalchuk <dm@crystax.net>
+Date: Tue Aug 25 09:36:42 2015 +0300
+
+ [android] Explicitly make _Unwind_Resume visible for arm64/mips64
+
+ Signed-off-by: Dmitry Moskalchuk <dm@crystax.net>
+
+---
+ gcc/config/aarch64/aarch64-linux-android.h | 4 ++++
+ gcc/config/mips/linux-common.h | 4 ++++
+ 2 files changed, 8 insertions(+)
+
+--- a/gcc/config/aarch64/aarch64-linux-android.h
++++ b/gcc/config/aarch64/aarch64-linux-android.h
+@@ -56,4 +56,8 @@
+ #define ENDFILE_SPEC \
+ LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
+
++#ifdef IN_LIBGCC2
++#define LIBGCC2_UNWIND_ATTRIBUTE __attribute__((visibility("default")))
++#endif
++
+ #endif /* GCC_AARCH64_LINUX_ANDROID_H */
+--- a/gcc/config/mips/linux-common.h
++++ b/gcc/config/mips/linux-common.h
+@@ -65,3 +65,7 @@ along with GCC; see the file COPYING3.
+
+ /* The default value isn't sufficient in 64-bit mode. */
+ #define STACK_CHECK_PROTECT (TARGET_64BIT ? 16 * 1024 : 12 * 1024)
++
++#ifdef IN_LIBGCC2
++#define LIBGCC2_UNWIND_ATTRIBUTE __attribute__((visibility("default")))
++#endif
diff --git a/packages/gcc/9.3.0/0018-isl-0.20.patch b/packages/gcc/9.3.0/0018-isl-0.20.patch
new file mode 100644
index 0000000..de188b1
--- /dev/null
+++ b/packages/gcc/9.3.0/0018-isl-0.20.patch
@@ -0,0 +1,26 @@
+commit 9fabe086c9f5c3896297f7f35491d785ba6f49a0
+Author: Alexey Neyman <stilor@att.net>
+Date: Mon Sep 24 22:50:11 2018 -0700
+
+ Fix build with ISL 0.20
+
+ * gcc/graphite.h: Include <isl/id.h> and <isl/space.h>; these
+ headers are no longer pulled in by <isl/val.h>.
+
+ Signed-off-by: Alexey Neyman <stilor@att.net>
+
+---
+ gcc/graphite.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/gcc/graphite.h
++++ b/gcc/graphite.h
+@@ -26,6 +26,8 @@ along with GCC; see the file COPYING3.
+ #include <isl/options.h>
+ #include <isl/ctx.h>
+ #include <isl/val.h>
++#include <isl/id.h>
++#include <isl/space.h>
+ #include <isl/set.h>
+ #include <isl/union_set.h>
+ #include <isl/map.h>
diff --git a/packages/gcc/9.3.0/chksum b/packages/gcc/9.3.0/chksum
new file mode 100644
index 0000000..a573c29
--- /dev/null
+++ b/packages/gcc/9.3.0/chksum
@@ -0,0 +1,8 @@
+md5 gcc-9.3.0.tar.xz d00a144b771ddeb021b61aa205b7e345
+sha1 gcc-9.3.0.tar.xz b746688bf045a316fc92c3528138ad10d0822b6b
+sha256 gcc-9.3.0.tar.xz 71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1
+sha512 gcc-9.3.0.tar.xz 4b9e3639eef6e623747a22c37a904b4750c93b6da77cf3958d5047e9b5ebddb7eebe091cc16ca0a227c0ecbd2bf3b984b221130f269a97ee4cc18f9cf6c444de
+md5 gcc-9.3.0.tar.gz 9b7e8f6cfad96114e726c752935af58a
+sha1 gcc-9.3.0.tar.gz d93d8950229b23d7e7c5cd0037fb4a51e3ce3a19
+sha256 gcc-9.3.0.tar.gz 5258a9b6afe9463c2e56b9e8355b1a4bee125ca828b8078f910303bc2ef91fa6
+sha512 gcc-9.3.0.tar.gz 3e9b865354a4306b33b1dd90b58c230120d668b3e26bd4369967e84ff00adbbfb822a0ade340fdd248dbd07bcf326b262060873339bfc5b4c3773ad1be88ab33
diff --git a/packages/linux/4.19.105/version.desc b/packages/gcc/9.3.0/version.desc
index e69de29..e69de29 100644
--- a/packages/linux/4.19.105/version.desc
+++ b/packages/gcc/9.3.0/version.desc
diff --git a/packages/gdb/8.2.1/0005-musl-aarch64-sigcontext.patch b/packages/gdb/8.2.1/0005-musl-aarch64-sigcontext.patch
new file mode 100644
index 0000000..9456dbb
--- /dev/null
+++ b/packages/gdb/8.2.1/0005-musl-aarch64-sigcontext.patch
@@ -0,0 +1,17 @@
+---
+ gdb/nat/aarch64-sve-linux-ptrace.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gdb/nat/aarch64-sve-linux-ptrace.h b/gdb/nat/aarch64-sve-linux-ptrace.h
+index 029e753ffe..172ae39432 100644
+--- a/gdb/nat/aarch64-sve-linux-ptrace.h
++++ b/gdb/nat/aarch64-sve-linux-ptrace.h
+@@ -20,7 +20,7 @@
+ #ifndef AARCH64_SVE_LINUX_PTRACE_H
+ #define AARCH64_SVE_LINUX_PTRACE_H
+
+-#include <asm/sigcontext.h>
++#include <signal.h>
+ #include <sys/utsname.h>
+ #include <sys/ptrace.h>
+ #include <asm/ptrace.h>
diff --git a/packages/gdb/9.1/chksum b/packages/gdb/9.1/chksum
deleted file mode 100644
index f0361e0..0000000
--- a/packages/gdb/9.1/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 gdb-9.1.tar.xz f7e9f6236c425097d9e5f18a6ac40655
-sha1 gdb-9.1.tar.xz a50e13e1eecea468ea28c4a23d8c5a84f4db25be
-sha256 gdb-9.1.tar.xz 699e0ec832fdd2f21c8266171ea5bf44024bd05164fdf064e4d10cc4cf0d1737
-sha512 gdb-9.1.tar.xz 84cdd408d80a3fc5779de459c5b26154d31b329ebde7e3aa78799fb1eb245d8b64b8c8ee7242382a1dbd95b4e6f9d84fef41d12a0646aa75d3dee4709ea1f6e7
-md5 gdb-9.1.tar.gz b6f0807334c273c78fd17df0f9b1c13a
-sha1 gdb-9.1.tar.gz c50a84d303afc9bea77cd5f129e83b4a4147a701
-sha256 gdb-9.1.tar.gz fcda54d4f35bc53fb24b50009a71ca98410d71ff2620942e3c829a7f5d614252
-sha512 gdb-9.1.tar.gz a51b1023e595b86db3d75edcd845739304b441eff4754a400241c6b45f2c38913a489776e67c5fa20e8d90a9e72e94f2f6b8495363d93c2350ddbade4839bcc3
diff --git a/packages/gdb/9.1/0000-musl_fix.patch b/packages/gdb/9.2/0000-musl_fix.patch
index 85c09de..85c09de 100644
--- a/packages/gdb/9.1/0000-musl_fix.patch
+++ b/packages/gdb/9.2/0000-musl_fix.patch
diff --git a/packages/gdb/9.1/0001-uclibc-no-gettimeofday-clobber.patch b/packages/gdb/9.2/0001-uclibc-no-gettimeofday-clobber.patch
index 2a549dd..2a549dd 100644
--- a/packages/gdb/9.1/0001-uclibc-no-gettimeofday-clobber.patch
+++ b/packages/gdb/9.2/0001-uclibc-no-gettimeofday-clobber.patch
diff --git a/packages/gdb/9.1/0002-xtensa-make-sure-ar_base-is-initialized.patch b/packages/gdb/9.2/0002-xtensa-make-sure-ar_base-is-initialized.patch
index c0f364c..c0f364c 100644
--- a/packages/gdb/9.1/0002-xtensa-make-sure-ar_base-is-initialized.patch
+++ b/packages/gdb/9.2/0002-xtensa-make-sure-ar_base-is-initialized.patch
diff --git a/packages/gdb/9.1/0003-WIP-end-of-prologue-detection-hack.patch b/packages/gdb/9.2/0003-WIP-end-of-prologue-detection-hack.patch
index 9622ae9..9622ae9 100644
--- a/packages/gdb/9.1/0003-WIP-end-of-prologue-detection-hack.patch
+++ b/packages/gdb/9.2/0003-WIP-end-of-prologue-detection-hack.patch
diff --git a/packages/gdb/9.1/0004-allow-android.patch b/packages/gdb/9.2/0004-allow-android.patch
index 97f7a9f..97f7a9f 100644
--- a/packages/gdb/9.1/0004-allow-android.patch
+++ b/packages/gdb/9.2/0004-allow-android.patch
diff --git a/packages/gdb/9.2/chksum b/packages/gdb/9.2/chksum
new file mode 100644
index 0000000..1e70a64
--- /dev/null
+++ b/packages/gdb/9.2/chksum
@@ -0,0 +1,8 @@
+md5 gdb-9.2.tar.xz db95524e554870209ab7d9f8fd8dc557
+sha1 gdb-9.2.tar.xz 356ee474a24bfb2f133894730916557dfea9da2e
+sha256 gdb-9.2.tar.xz 360cd7ae79b776988e89d8f9a01c985d0b1fa21c767a4295e5f88cb49175c555
+sha512 gdb-9.2.tar.xz 73635f00f343117aa5e2436f1e1597099e2bfb31ef7bb162b273fa1ea282c3fa9b0f52762e70bfc7ad0334addb8d159e9ac7cbe5998ca4f755ea8cf90714d274
+md5 gdb-9.2.tar.gz 3899ef01c672b19ec63ced445b8abc42
+sha1 gdb-9.2.tar.gz 0df8ea589070310306290ec093df8d60755ee737
+sha256 gdb-9.2.tar.gz 38ef247d41ba7cc3f6f93a612a78bab9484de9accecbe3b0150a3c0391a3faf0
+sha512 gdb-9.2.tar.gz 0ccd3a2a24963c848976848ba890f99a458569ff10da4d2bb6dd4782852662ab2df7fb9b3525dd4fd04f95070cea07e1bae6dbe2969e321cbb4004a033845d1c
diff --git a/packages/linux/4.14.171/version.desc b/packages/gdb/9.2/version.desc
index e69de29..e69de29 100644
--- a/packages/linux/4.14.171/version.desc
+++ b/packages/gdb/9.2/version.desc
diff --git a/packages/glibc/2.12.1/0044-new-tools.patch b/packages/glibc/2.12.1/0044-new-tools.patch
index 2ff427e..cfa03b0 100644
--- a/packages/glibc/2.12.1/0044-new-tools.patch
+++ b/packages/glibc/2.12.1/0044-new-tools.patch
@@ -10,7 +10,7 @@
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 3.4* | 4.[0-9]* )
-+ 3.4* | [4-9].* )
++ 3.4* | [4-9].* | [1-9][0-9]* )
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -48,7 +48,7 @@
AC_CHECK_TOOL_PREFIX
AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
- [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
-+ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* ],
++ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* | [1-9][0-9].* ],
critic_missing="$critic_missing gcc")
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
diff --git a/packages/glibc/2.12.2/0007-new-tools.patch b/packages/glibc/2.12.2/0007-new-tools.patch
index 816a01c..693c9a1 100644
--- a/packages/glibc/2.12.2/0007-new-tools.patch
+++ b/packages/glibc/2.12.2/0007-new-tools.patch
@@ -10,7 +10,7 @@
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 3.4* | 4.[0-9]* )
-+ 3.4* | [4-9].* )
++ 3.4* | [4-9].* | [1-9][0-9]* )
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -48,7 +48,7 @@
AC_CHECK_TOOL_PREFIX
AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
- [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
-+ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* ],
++ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* | [1-9][0-9].* ],
critic_missing="$critic_missing gcc")
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
diff --git a/packages/glibc/2.13/0043-new-tools.patch b/packages/glibc/2.13/0043-new-tools.patch
index 4408ffe..9f71001 100644
--- a/packages/glibc/2.13/0043-new-tools.patch
+++ b/packages/glibc/2.13/0043-new-tools.patch
@@ -10,7 +10,7 @@
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 3.4* | 4.[0-9]* )
-+ 3.4* | [4-9].* )
++ 3.4* | [4-9].* | [1-9][0-9]* )
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -48,7 +48,7 @@
AC_CHECK_TOOL_PREFIX
AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
- [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
-+ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* ],
++ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* | [1-9][0-9].* ],
critic_missing="$critic_missing gcc")
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
diff --git a/packages/glibc/2.14.1/0043-new-tools.patch b/packages/glibc/2.14.1/0043-new-tools.patch
index 2d89a0f..38dcdc8 100644
--- a/packages/glibc/2.14.1/0043-new-tools.patch
+++ b/packages/glibc/2.14.1/0043-new-tools.patch
@@ -10,7 +10,7 @@
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 3.4* | 4.[0-9]* )
-+ 3.4* | [4-9].* )
++ 3.4* | [4-9].* | [1-9][0-9]* )
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -48,7 +48,7 @@
AC_CHECK_TOOL_PREFIX
AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
- [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
-+ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* ],
++ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* | [1-9][0-9].* ],
critic_missing="$critic_missing gcc")
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
diff --git a/packages/glibc/2.15/0044-new-tools.patch b/packages/glibc/2.15/0044-new-tools.patch
index 5cd3398..d08d873 100644
--- a/packages/glibc/2.15/0044-new-tools.patch
+++ b/packages/glibc/2.15/0044-new-tools.patch
@@ -10,7 +10,7 @@
case $ac_prog_version in
'') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 3.4* | 4.[0-9]* )
-+ 3.4* | [4-9].* )
++ 3.4* | [4-9].* | [1-9][0-9]* )
ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
*) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
@@ -48,7 +48,7 @@
AC_CHECK_TOOL_PREFIX
AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
- [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | 4.[0-9]* ],
-+ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* ],
++ [version \([egcygnustpi-]*[0-9.]*\)], [3.4* | [4-9].* | [1-9][0-9].* ],
critic_missing="$critic_missing gcc")
AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
[GNU Make[^0-9]*\([0-9][0-9.]*\)],
diff --git a/packages/glibc/2.16.0/0042-fix-GCC-10-detection.patch b/packages/glibc/2.16.0/0042-fix-GCC-10-detection.patch
new file mode 100644
index 0000000..4d55ff3
--- /dev/null
+++ b/packages/glibc/2.16.0/0042-fix-GCC-10-detection.patch
@@ -0,0 +1,25 @@
+From 01e89232ac76b66e2bba2ec84d7f86e86f04ae64 Mon Sep 17 00:00:00 2001
+From: Jakub Labenski <kuba@parasoft.com>
+Date: Fri, 5 Jun 2020 09:11:40 +0200
+Subject: [PATCH] Fix GCC 10+ detection
+
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index aa7869ff17..2a513eae65 100755
+--- a/configure
++++ b/configure
+@@ -4782,7 +4782,7 @@ $as_echo_n "checking version of $CC... " >&6; }
+ ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 4.[3-9].* | 4.[1-9][0-9].* | [5-9].* )
++ 4.[3-9].* | 4.[1-9][0-9].* | [5-9].* | [1-9][0-9].* )
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+--
+2.25.1
+
diff --git a/packages/glibc/2.17/0018-fix-GCC-10-detection.patch b/packages/glibc/2.17/0018-fix-GCC-10-detection.patch
new file mode 100644
index 0000000..b522ae7
--- /dev/null
+++ b/packages/glibc/2.17/0018-fix-GCC-10-detection.patch
@@ -0,0 +1,25 @@
+From 760445cabb52d131b88fd81a1c1385f6b6eb1bec Mon Sep 17 00:00:00 2001
+From: Jakub Labenski <kuba@parasoft.com>
+Date: Fri, 5 Jun 2020 09:11:40 +0200
+Subject: [PATCH] Fix GCC 10+ detection
+
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 8799b7de78..0f99f04bfc 100755
+--- a/configure
++++ b/configure
+@@ -4909,7 +4909,7 @@ $as_echo_n "checking version of $CC... " >&6; }
+ ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 4.[3-9].* | 4.[1-9][0-9].* | [5-9].* )
++ 4.[3-9].* | 4.[1-9][0-9].* | [5-9].* | [1-9][0-9].* )
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+--
+2.25.1
+
diff --git a/packages/glibc/2.18/0019-fix-GCC-10-detection.patch b/packages/glibc/2.18/0019-fix-GCC-10-detection.patch
new file mode 100644
index 0000000..32f4a17
--- /dev/null
+++ b/packages/glibc/2.18/0019-fix-GCC-10-detection.patch
@@ -0,0 +1,25 @@
+From 3b16131609b2edbf29194532c089079a8d2664b1 Mon Sep 17 00:00:00 2001
+From: Jakub Labenski <kuba@parasoft.com>
+Date: Fri, 5 Jun 2020 09:11:40 +0200
+Subject: [PATCH] Fix GCC 10+ detection
+
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 1ee4c42003..4e1d1fa8a0 100755
+--- a/configure
++++ b/configure
+@@ -4709,7 +4709,7 @@ $as_echo_n "checking version of $CC... " >&6; }
+ ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* )
++ 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* | [1-9][0-9].* )
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+--
+2.25.1
+
diff --git a/packages/glibc/2.19/0017-Fix-cmpli-usage-in-power6-memset.patch b/packages/glibc/2.19/0017-Fix-cmpli-usage-in-power6-memset.patch
new file mode 100644
index 0000000..5213378
--- /dev/null
+++ b/packages/glibc/2.19/0017-Fix-cmpli-usage-in-power6-memset.patch
@@ -0,0 +1,49 @@
+Author: Joseph Myers <joseph@codesourcery.com>
+Date: 2016-10-24
+
+Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
+with multi-arch enabled, I get the error:
+
+../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand
+
+Indeed, cmpli is documented as a four-operand instruction, and looking
+at nearby code it seems likely cmpldi was intended. This patch fixes
+this powerpc64 code accordingly, and makes a corresponding change to
+the powerpc32 code.
+
+Note: this patch is not tested beyond verifying that the powerpc64
+code builds where it failed to build before the patch. In particular,
+I have not done execution testing (the systems I usually use for
+testing powerpc are pre-power6 so wouldn't use this code) or tested
+the powerpc32 change.
+
+---
+ sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi instead of cmpli.
+ sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi instead of cmpli.
+
+--- a/sysdeps/powerpc/powerpc32/power6/memset.S
++++ b/sysdeps/powerpc/powerpc32/power6/memset.S
+@@ -394,7 +394,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmplwi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
+
+--- a/sysdeps/powerpc/powerpc64/power6/memset.S
++++ b/sysdeps/powerpc/powerpc64/power6/memset.S
+@@ -251,7 +251,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmpldi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
diff --git a/packages/glibc/2.19/0017-fix-GCC-10-detection.patch b/packages/glibc/2.19/0017-fix-GCC-10-detection.patch
new file mode 100644
index 0000000..1fe4ee8
--- /dev/null
+++ b/packages/glibc/2.19/0017-fix-GCC-10-detection.patch
@@ -0,0 +1,25 @@
+From 0db03b80d05d059c2f98cc9fc28cce90095d0876 Mon Sep 17 00:00:00 2001
+From: Jakub Labenski <kuba@parasoft.com>
+Date: Fri, 5 Jun 2020 09:11:40 +0200
+Subject: [PATCH] Fix GCC 10+ detection
+
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index fc023d0c70..b201f71b4b 100755
+--- a/configure
++++ b/configure
+@@ -4710,7 +4710,7 @@ $as_echo_n "checking version of $CC... " >&6; }
+ ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* )
++ 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* | [1-9][0-9].* )
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+--
+2.25.1
+
diff --git a/packages/glibc/2.20/0017-Fix-cmpli-usage-in-power6-memset.patch b/packages/glibc/2.20/0017-Fix-cmpli-usage-in-power6-memset.patch
new file mode 100644
index 0000000..5213378
--- /dev/null
+++ b/packages/glibc/2.20/0017-Fix-cmpli-usage-in-power6-memset.patch
@@ -0,0 +1,49 @@
+Author: Joseph Myers <joseph@codesourcery.com>
+Date: 2016-10-24
+
+Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
+with multi-arch enabled, I get the error:
+
+../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand
+
+Indeed, cmpli is documented as a four-operand instruction, and looking
+at nearby code it seems likely cmpldi was intended. This patch fixes
+this powerpc64 code accordingly, and makes a corresponding change to
+the powerpc32 code.
+
+Note: this patch is not tested beyond verifying that the powerpc64
+code builds where it failed to build before the patch. In particular,
+I have not done execution testing (the systems I usually use for
+testing powerpc are pre-power6 so wouldn't use this code) or tested
+the powerpc32 change.
+
+---
+ sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi instead of cmpli.
+ sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi instead of cmpli.
+
+--- a/sysdeps/powerpc/powerpc32/power6/memset.S
++++ b/sysdeps/powerpc/powerpc32/power6/memset.S
+@@ -394,7 +394,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmplwi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
+
+--- a/sysdeps/powerpc/powerpc64/power6/memset.S
++++ b/sysdeps/powerpc/powerpc64/power6/memset.S
+@@ -251,7 +251,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmpldi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
diff --git a/packages/glibc/2.20/0017-fix-GCC-10-detection.patch b/packages/glibc/2.20/0017-fix-GCC-10-detection.patch
new file mode 100644
index 0000000..c2afc77
--- /dev/null
+++ b/packages/glibc/2.20/0017-fix-GCC-10-detection.patch
@@ -0,0 +1,25 @@
+From 0991846fc6d5d0ef3800391bd29f2759780a3041 Mon Sep 17 00:00:00 2001
+From: Jakub Labenski <kuba@parasoft.com>
+Date: Fri, 5 Jun 2020 09:11:40 +0200
+Subject: [PATCH] Fix GCC 10+ detection
+
+---
+ configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index 86ba30774b..b22ad9cb07 100755
+--- a/configure
++++ b/configure
+@@ -4661,7 +4661,7 @@ $as_echo_n "checking version of $CC... " >&6; }
+ ac_prog_version=`$CC -v 2>&1 | sed -n 's/^.*version \([egcygnustpi-]*[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+- 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* )
++ 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* | [1-9][0-9].* )
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+--
+2.25.1
+
diff --git a/packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch b/packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch
new file mode 100644
index 0000000..5213378
--- /dev/null
+++ b/packages/glibc/2.21/0017-Fix-cmpli-usage-in-power6-memset.patch
@@ -0,0 +1,49 @@
+Author: Joseph Myers <joseph@codesourcery.com>
+Date: 2016-10-24
+
+Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
+with multi-arch enabled, I get the error:
+
+../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand
+
+Indeed, cmpli is documented as a four-operand instruction, and looking
+at nearby code it seems likely cmpldi was intended. This patch fixes
+this powerpc64 code accordingly, and makes a corresponding change to
+the powerpc32 code.
+
+Note: this patch is not tested beyond verifying that the powerpc64
+code builds where it failed to build before the patch. In particular,
+I have not done execution testing (the systems I usually use for
+testing powerpc are pre-power6 so wouldn't use this code) or tested
+the powerpc32 change.
+
+---
+ sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi instead of cmpli.
+ sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi instead of cmpli.
+
+--- a/sysdeps/powerpc/powerpc32/power6/memset.S
++++ b/sysdeps/powerpc/powerpc32/power6/memset.S
+@@ -394,7 +394,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmplwi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
+
+--- a/sysdeps/powerpc/powerpc64/power6/memset.S
++++ b/sysdeps/powerpc/powerpc64/power6/memset.S
+@@ -251,7 +251,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmpldi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
diff --git a/packages/glibc/2.22/0017-Fix-cmpli-usage-in-power6-memset.patch b/packages/glibc/2.22/0017-Fix-cmpli-usage-in-power6-memset.patch
new file mode 100644
index 0000000..5213378
--- /dev/null
+++ b/packages/glibc/2.22/0017-Fix-cmpli-usage-in-power6-memset.patch
@@ -0,0 +1,49 @@
+Author: Joseph Myers <joseph@codesourcery.com>
+Date: 2016-10-24
+
+Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
+with multi-arch enabled, I get the error:
+
+../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand
+
+Indeed, cmpli is documented as a four-operand instruction, and looking
+at nearby code it seems likely cmpldi was intended. This patch fixes
+this powerpc64 code accordingly, and makes a corresponding change to
+the powerpc32 code.
+
+Note: this patch is not tested beyond verifying that the powerpc64
+code builds where it failed to build before the patch. In particular,
+I have not done execution testing (the systems I usually use for
+testing powerpc are pre-power6 so wouldn't use this code) or tested
+the powerpc32 change.
+
+---
+ sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi instead of cmpli.
+ sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi instead of cmpli.
+
+--- a/sysdeps/powerpc/powerpc32/power6/memset.S
++++ b/sysdeps/powerpc/powerpc32/power6/memset.S
+@@ -394,7 +394,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmplwi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
+
+--- a/sysdeps/powerpc/powerpc64/power6/memset.S
++++ b/sysdeps/powerpc/powerpc64/power6/memset.S
+@@ -251,7 +251,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmpldi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
diff --git a/packages/glibc/2.23/0013-Fix-cmpli-usage-in-power6-memset.patch b/packages/glibc/2.23/0013-Fix-cmpli-usage-in-power6-memset.patch
new file mode 100644
index 0000000..5213378
--- /dev/null
+++ b/packages/glibc/2.23/0013-Fix-cmpli-usage-in-power6-memset.patch
@@ -0,0 +1,49 @@
+Author: Joseph Myers <joseph@codesourcery.com>
+Date: 2016-10-24
+
+Building glibc for powerpc64 with recent (2.27.51.20161012) binutils,
+with multi-arch enabled, I get the error:
+
+../sysdeps/powerpc/powerpc64/power6/memset.S: Assembler messages:
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (5 is not between 0 and 1)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: operand out of range (128 is not between 0 and 31)
+../sysdeps/powerpc/powerpc64/power6/memset.S:254: Error: missing operand
+
+Indeed, cmpli is documented as a four-operand instruction, and looking
+at nearby code it seems likely cmpldi was intended. This patch fixes
+this powerpc64 code accordingly, and makes a corresponding change to
+the powerpc32 code.
+
+Note: this patch is not tested beyond verifying that the powerpc64
+code builds where it failed to build before the patch. In particular,
+I have not done execution testing (the systems I usually use for
+testing powerpc are pre-power6 so wouldn't use this code) or tested
+the powerpc32 change.
+
+---
+ sysdeps/powerpc/powerpc32/power6/memset.S (memset): Use cmplwi instead of cmpli.
+ sysdeps/powerpc/powerpc64/power6/memset.S (memset): Use cmpldi instead of cmpli.
+
+--- a/sysdeps/powerpc/powerpc32/power6/memset.S
++++ b/sysdeps/powerpc/powerpc32/power6/memset.S
+@@ -394,7 +394,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmplwi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
+
+--- a/sysdeps/powerpc/powerpc64/power6/memset.S
++++ b/sysdeps/powerpc/powerpc64/power6/memset.S
+@@ -251,7 +251,7 @@ L(cacheAlignedx):
+ /* A simple loop for the longer (>640 bytes) lengths. This form limits
+ the branch miss-predicted to exactly 1 at loop exit.*/
+ L(cacheAligned512):
+- cmpli cr1,rLEN,128
++ cmpldi cr1,rLEN,128
+ blt cr1,L(cacheAligned1)
+ dcbz 0,rMEMP
+ addi rLEN,rLEN,-128
diff --git a/packages/glibc/2.27/0001-Fix-build-with-GCC-10-when-long-double-double.patch b/packages/glibc/2.27/0001-Fix-build-with-GCC-10-when-long-double-double.patch
new file mode 100644
index 0000000..ca0d8a7
--- /dev/null
+++ b/packages/glibc/2.27/0001-Fix-build-with-GCC-10-when-long-double-double.patch
@@ -0,0 +1,166 @@
+From 49348beafe9ba150c9bd48595b3f372299bddbb0 Mon Sep 17 00:00:00 2001
+From: Joseph Myers <joseph@codesourcery.com>
+Date: Tue, 17 Mar 2020 22:57:42 +0000
+Subject: [PATCH] Fix build with GCC 10 when long double = double.
+
+On platforms where long double has the same ABI as double, glibc
+defines long double functions as aliases for the corresponding double
+functions. The declarations of those functions in <math.h> are
+disabled to avoid problems with aliases having incompatible types, but
+GCC 10 now gives errors for incompatible types when the long double
+function is known to GCC as a built-in function, not just when there
+is an incompatible header declaration.
+
+This patch fixes those errors by using appropriate
+-fno-builtin-<function> options to compile the double functions. The
+list of CFLAGS-* settings is an appropriately adapted version of that
+in sysdeps/ieee754/ldbl-opt/Makefile used there for building nldbl-*.c
+files; in particular, the options are used even if GCC does not
+currently have a built-in function of a given function, so that adding
+such a built-in function in future will not break the glibc build.
+Thus, various of the CFLAGS-* settings are only for future-proofing
+and may not currently be needed (and it's possible some could be
+irrelevant for other reasons).
+
+Tested with build-many-glibcs.py for arm-linux-gnueabi (compilers and
+glibcs builds), where it fixes the build that previously failed.
+---
+ math/Makefile | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 122 insertions(+)
+
+diff --git a/math/Makefile b/math/Makefile
+index 84a8b94c74..0a5a40430e 100644
+--- a/math/Makefile
++++ b/math/Makefile
+@@ -650,6 +650,128 @@ ifneq ($(long-double-fcts),yes)
+ # We won't compile the `long double' code at all. Tell the `double' code
+ # to define aliases for the `FUNCl' names.
+ math-CPPFLAGS += -DNO_LONG_DOUBLE
++# GCC 10 diagnoses aliases with types conflicting with built-in
++# functions.
++CFLAGS-w_acos.c += -fno-builtin-acosl
++CFLAGS-w_acosh.c += -fno-builtin-acoshl
++CFLAGS-w_asin.c += -fno-builtin-asinl
++CFLAGS-s_asinh.c += -fno-builtin-asinhl
++CFLAGS-s_atan.c += -fno-builtin-atanl
++CFLAGS-w_atan2.c += -fno-builtin-atan2l
++CFLAGS-w_atanh.c += -fno-builtin-atanhl
++CFLAGS-s_cabs.c += -fno-builtin-cabsl
++CFLAGS-s_cacos.c += -fno-builtin-cacosl
++CFLAGS-s_cacosh.c += -fno-builtin-cacoshl
++CFLAGS-s_canonicalize.c += -fno-builtin-canonicalizel
++CFLAGS-s_carg.c += -fno-builtin-cargl
++CFLAGS-s_casin.c += -fno-builtin-casinl
++CFLAGS-s_casinh.c += -fno-builtin-casinhl
++CFLAGS-s_catan.c += -fno-builtin-catanl
++CFLAGS-s_catanh.c += -fno-builtin-catanhl
++CFLAGS-s_cbrt.c += -fno-builtin-cbrtl
++CFLAGS-s_ccos.c += -fno-builtin-ccosl
++CFLAGS-s_ccosh.c += -fno-builtin-ccoshl
++CFLAGS-s_ceil.c += -fno-builtin-ceill
++CFLAGS-s_cexp.c += -fno-builtin-cexpl
++CFLAGS-s_cimag.c += -fno-builtin-cimagl
++CFLAGS-s_clog.c += -fno-builtin-clogl
++CFLAGS-s_clog10.c += -fno-builtin-clog10l
++CFLAGS-s_conj.c += -fno-builtin-conjl
++CFLAGS-s_copysign.c += -fno-builtin-copysignl
++CFLAGS-s_cos.c += -fno-builtin-cosl
++CFLAGS-w_cosh.c += -fno-builtin-coshl
++CFLAGS-s_cpow.c += -fno-builtin-cpowl
++CFLAGS-s_cproj.c += -fno-builtin-cprojl
++CFLAGS-s_creal.c += -fno-builtin-creall
++CFLAGS-s_csin.c += -fno-builtin-csinl
++CFLAGS-s_csinh.c += -fno-builtin-csinhl
++CFLAGS-s_csqrt.c += -fno-builtin-csqrtl
++CFLAGS-s_ctan.c += -fno-builtin-ctanl
++CFLAGS-s_ctanh.c += -fno-builtin-ctanhl
++CFLAGS-s_dadd.c += -fno-builtin-daddl
++CFLAGS-s_ddiv.c += -fno-builtin-ddivl
++CFLAGS-s_dmul.c += -fno-builtin-dmull
++CFLAGS-s_dsub.c += -fno-builtin-dsubl
++CFLAGS-s_erf.c += -fno-builtin-erfl
++CFLAGS-s_erfc.c += -fno-builtin-erfcl
++CFLAGS-e_exp.c += -fno-builtin-expl
++CFLAGS-w_exp10.c += -fno-builtin-exp10l
++CFLAGS-e_exp2.c += -fno-builtin-exp2l
++CFLAGS-s_expm1.c += -fno-builtin-expm1l
++CFLAGS-s_fabs.c += -fno-builtin-fabsl
++CFLAGS-s_fadd.c += -fno-builtin-faddl
++CFLAGS-s_fdim.c += -fno-builtin-fdiml
++CFLAGS-s_fdiv.c += -fno-builtin-fdivl
++CFLAGS-s_finite.c += -fno-builtin-finitel
++CFLAGS-s_floor.c += -fno-builtin-floorl
++CFLAGS-s_fma.c += -fno-builtin-fmal
++CFLAGS-s_fmax.c += -fno-builtin-fmaxl
++CFLAGS-s_fmaxmag.c += -fno-builtin-fmaxmagl
++CFLAGS-s_fmin.c += -fno-builtin-fminl
++CFLAGS-s_fminmag.c += -fno-builtin-fminmagl
++CFLAGS-w_fmod.c += -fno-builtin-fmodl
++CFLAGS-s_fmul.c += -fno-builtin-fmull
++CFLAGS-s_frexp.c += -fno-builtin-frexpl
++CFLAGS-s_fromfp.c += -fno-builtin-fromfpl
++CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxl
++CFLAGS-s_fsub.c += -fno-builtin-fsubl
++CFLAGS-s_gamma.c += -fno-builtin-gammal
++CFLAGS-s_getpayload.c += -fno-builtin-getpayloadl
++CFLAGS-w_hypot.c += -fno-builtin-hypotl
++CFLAGS-w_ilogb.c += -fno-builtin-ilogbl
++CFLAGS-s_isinf.c += -fno-builtin-isinfl
++CFLAGS-s_isnan.c += -fno-builtin-isnanl
++CFLAGS-w_j0.c += -fno-builtin-j0l
++CFLAGS-w_j1.c += -fno-builtin-j1l
++CFLAGS-w_jn.c += -fno-builtin-jnl
++CFLAGS-s_ldexp.c += -fno-builtin-ldexpl
++CFLAGS-w_lgamma.c += -fno-builtin-lgammal
++CFLAGS-w_lgamma_r.c += -fno-builtin-lgammal_r
++CFLAGS-w_llogb.c += -fno-builtin-llogbl
++CFLAGS-s_llrint.c += -fno-builtin-llrintl
++CFLAGS-s_llround.c += -fno-builtin-llroundl
++CFLAGS-e_log.c += -fno-builtin-logl
++CFLAGS-w_log10.c += -fno-builtin-log10l
++CFLAGS-w_log1p.c += -fno-builtin-log1pl
++CFLAGS-e_log2.c += -fno-builtin-log2l
++CFLAGS-s_logb.c += -fno-builtin-logbl
++CFLAGS-s_lrint.c += -fno-builtin-lrintl
++CFLAGS-s_lround.c += -fno-builtin-lroundl
++CFLAGS-s_modf.c += -fno-builtin-modfl
++CFLAGS-s_nan.c += -fno-builtin-nanl
++CFLAGS-s_nearbyint.c += -fno-builtin-nearbyintl
++CFLAGS-s_nextafter.c += -fno-builtin-nextafterl
++CFLAGS-s_nextdown.c += -fno-builtin-nextdownl
++CFLAGS-s_nexttoward.c += -fno-builtin-nexttoward -fno-builtin-nexttowardl
++CFLAGS-s_nexttowardf.c += -fno-builtin-nexttowardf
++CFLAGS-s_nextup.c += -fno-builtin-nextupl
++CFLAGS-e_pow.c += -fno-builtin-powl
++CFLAGS-w_remainder.c += -fno-builtin-remainderl -fno-builtin-dreml
++CFLAGS-s_remquo.c += -fno-builtin-remquol
++CFLAGS-s_rint.c += -fno-builtin-rintl
++CFLAGS-s_round.c += -fno-builtin-roundl
++CFLAGS-s_roundeven.c += -fno-builtin-roundevenl
++CFLAGS-w_scalb.c += -fno-builtin-scalbl
++CFLAGS-w_scalbln.c += -fno-builtin-scalblnl
++CFLAGS-s_scalbn.c += -fno-builtin-scalbnl
++CFLAGS-s_setpayload.c += -fno-builtin-setpayloadl
++CFLAGS-s_setpayloadsig.c += -fno-builtin-setpayloadsigl
++CFLAGS-s_significand.c += -fno-builtin-significandl
++CFLAGS-s_sin.c += -fno-builtin-sinl
++CFLAGS-s_sincos.c += -fno-builtin-sincosl
++CFLAGS-w_sinh.c += -fno-builtin-sinhl
++CFLAGS-w_sqrt.c += -fno-builtin-sqrtl
++CFLAGS-s_tan.c += -fno-builtin-tanl
++CFLAGS-s_tanh.c += -fno-builtin-tanhl
++CFLAGS-w_tgamma.c += -fno-builtin-tgammal
++CFLAGS-s_totalorder.c += -fno-builtin-totalorderl
++CFLAGS-s_totalordermag.c += -fno-builtin-totalordermagl
++CFLAGS-s_trunc.c += -fno-builtin-truncl
++CFLAGS-s_ufromfp.c += -fno-builtin-ufromfpl
++CFLAGS-s_ufromfpx.c += -fno-builtin-ufromfpxl
++CFLAGS-s_y0.c += -fno-builtin-y0l
++CFLAGS-s_y1.c += -fno-builtin-y1l
++CFLAGS-s_yn.c += -fno-builtin-ynl
+ endif
+
+ # These files quiet sNaNs in a way that is optimized away without
+--
+2.25.1
+
diff --git a/packages/glibc/2.28/0002-Fix-build-with-GCC-10-when-long-double-double.patch b/packages/glibc/2.28/0002-Fix-build-with-GCC-10-when-long-double-double.patch
new file mode 100644
index 0000000..ca0d8a7
--- /dev/null
+++ b/packages/glibc/2.28/0002-Fix-build-with-GCC-10-when-long-double-double.patch
@@ -0,0 +1,166 @@
+From 49348beafe9ba150c9bd48595b3f372299bddbb0 Mon Sep 17 00:00:00 2001
+From: Joseph Myers <joseph@codesourcery.com>
+Date: Tue, 17 Mar 2020 22:57:42 +0000
+Subject: [PATCH] Fix build with GCC 10 when long double = double.
+
+On platforms where long double has the same ABI as double, glibc
+defines long double functions as aliases for the corresponding double
+functions. The declarations of those functions in <math.h> are
+disabled to avoid problems with aliases having incompatible types, but
+GCC 10 now gives errors for incompatible types when the long double
+function is known to GCC as a built-in function, not just when there
+is an incompatible header declaration.
+
+This patch fixes those errors by using appropriate
+-fno-builtin-<function> options to compile the double functions. The
+list of CFLAGS-* settings is an appropriately adapted version of that
+in sysdeps/ieee754/ldbl-opt/Makefile used there for building nldbl-*.c
+files; in particular, the options are used even if GCC does not
+currently have a built-in function of a given function, so that adding
+such a built-in function in future will not break the glibc build.
+Thus, various of the CFLAGS-* settings are only for future-proofing
+and may not currently be needed (and it's possible some could be
+irrelevant for other reasons).
+
+Tested with build-many-glibcs.py for arm-linux-gnueabi (compilers and
+glibcs builds), where it fixes the build that previously failed.
+---
+ math/Makefile | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 122 insertions(+)
+
+diff --git a/math/Makefile b/math/Makefile
+index 84a8b94c74..0a5a40430e 100644
+--- a/math/Makefile
++++ b/math/Makefile
+@@ -650,6 +650,128 @@ ifneq ($(long-double-fcts),yes)
+ # We won't compile the `long double' code at all. Tell the `double' code
+ # to define aliases for the `FUNCl' names.
+ math-CPPFLAGS += -DNO_LONG_DOUBLE
++# GCC 10 diagnoses aliases with types conflicting with built-in
++# functions.
++CFLAGS-w_acos.c += -fno-builtin-acosl
++CFLAGS-w_acosh.c += -fno-builtin-acoshl
++CFLAGS-w_asin.c += -fno-builtin-asinl
++CFLAGS-s_asinh.c += -fno-builtin-asinhl
++CFLAGS-s_atan.c += -fno-builtin-atanl
++CFLAGS-w_atan2.c += -fno-builtin-atan2l
++CFLAGS-w_atanh.c += -fno-builtin-atanhl
++CFLAGS-s_cabs.c += -fno-builtin-cabsl
++CFLAGS-s_cacos.c += -fno-builtin-cacosl
++CFLAGS-s_cacosh.c += -fno-builtin-cacoshl
++CFLAGS-s_canonicalize.c += -fno-builtin-canonicalizel
++CFLAGS-s_carg.c += -fno-builtin-cargl
++CFLAGS-s_casin.c += -fno-builtin-casinl
++CFLAGS-s_casinh.c += -fno-builtin-casinhl
++CFLAGS-s_catan.c += -fno-builtin-catanl
++CFLAGS-s_catanh.c += -fno-builtin-catanhl
++CFLAGS-s_cbrt.c += -fno-builtin-cbrtl
++CFLAGS-s_ccos.c += -fno-builtin-ccosl
++CFLAGS-s_ccosh.c += -fno-builtin-ccoshl
++CFLAGS-s_ceil.c += -fno-builtin-ceill
++CFLAGS-s_cexp.c += -fno-builtin-cexpl
++CFLAGS-s_cimag.c += -fno-builtin-cimagl
++CFLAGS-s_clog.c += -fno-builtin-clogl
++CFLAGS-s_clog10.c += -fno-builtin-clog10l
++CFLAGS-s_conj.c += -fno-builtin-conjl
++CFLAGS-s_copysign.c += -fno-builtin-copysignl
++CFLAGS-s_cos.c += -fno-builtin-cosl
++CFLAGS-w_cosh.c += -fno-builtin-coshl
++CFLAGS-s_cpow.c += -fno-builtin-cpowl
++CFLAGS-s_cproj.c += -fno-builtin-cprojl
++CFLAGS-s_creal.c += -fno-builtin-creall
++CFLAGS-s_csin.c += -fno-builtin-csinl
++CFLAGS-s_csinh.c += -fno-builtin-csinhl
++CFLAGS-s_csqrt.c += -fno-builtin-csqrtl
++CFLAGS-s_ctan.c += -fno-builtin-ctanl
++CFLAGS-s_ctanh.c += -fno-builtin-ctanhl
++CFLAGS-s_dadd.c += -fno-builtin-daddl
++CFLAGS-s_ddiv.c += -fno-builtin-ddivl
++CFLAGS-s_dmul.c += -fno-builtin-dmull
++CFLAGS-s_dsub.c += -fno-builtin-dsubl
++CFLAGS-s_erf.c += -fno-builtin-erfl
++CFLAGS-s_erfc.c += -fno-builtin-erfcl
++CFLAGS-e_exp.c += -fno-builtin-expl
++CFLAGS-w_exp10.c += -fno-builtin-exp10l
++CFLAGS-e_exp2.c += -fno-builtin-exp2l
++CFLAGS-s_expm1.c += -fno-builtin-expm1l
++CFLAGS-s_fabs.c += -fno-builtin-fabsl
++CFLAGS-s_fadd.c += -fno-builtin-faddl
++CFLAGS-s_fdim.c += -fno-builtin-fdiml
++CFLAGS-s_fdiv.c += -fno-builtin-fdivl
++CFLAGS-s_finite.c += -fno-builtin-finitel
++CFLAGS-s_floor.c += -fno-builtin-floorl
++CFLAGS-s_fma.c += -fno-builtin-fmal
++CFLAGS-s_fmax.c += -fno-builtin-fmaxl
++CFLAGS-s_fmaxmag.c += -fno-builtin-fmaxmagl
++CFLAGS-s_fmin.c += -fno-builtin-fminl
++CFLAGS-s_fminmag.c += -fno-builtin-fminmagl
++CFLAGS-w_fmod.c += -fno-builtin-fmodl
++CFLAGS-s_fmul.c += -fno-builtin-fmull
++CFLAGS-s_frexp.c += -fno-builtin-frexpl
++CFLAGS-s_fromfp.c += -fno-builtin-fromfpl
++CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxl
++CFLAGS-s_fsub.c += -fno-builtin-fsubl
++CFLAGS-s_gamma.c += -fno-builtin-gammal
++CFLAGS-s_getpayload.c += -fno-builtin-getpayloadl
++CFLAGS-w_hypot.c += -fno-builtin-hypotl
++CFLAGS-w_ilogb.c += -fno-builtin-ilogbl
++CFLAGS-s_isinf.c += -fno-builtin-isinfl
++CFLAGS-s_isnan.c += -fno-builtin-isnanl
++CFLAGS-w_j0.c += -fno-builtin-j0l
++CFLAGS-w_j1.c += -fno-builtin-j1l
++CFLAGS-w_jn.c += -fno-builtin-jnl
++CFLAGS-s_ldexp.c += -fno-builtin-ldexpl
++CFLAGS-w_lgamma.c += -fno-builtin-lgammal
++CFLAGS-w_lgamma_r.c += -fno-builtin-lgammal_r
++CFLAGS-w_llogb.c += -fno-builtin-llogbl
++CFLAGS-s_llrint.c += -fno-builtin-llrintl
++CFLAGS-s_llround.c += -fno-builtin-llroundl
++CFLAGS-e_log.c += -fno-builtin-logl
++CFLAGS-w_log10.c += -fno-builtin-log10l
++CFLAGS-w_log1p.c += -fno-builtin-log1pl
++CFLAGS-e_log2.c += -fno-builtin-log2l
++CFLAGS-s_logb.c += -fno-builtin-logbl
++CFLAGS-s_lrint.c += -fno-builtin-lrintl
++CFLAGS-s_lround.c += -fno-builtin-lroundl
++CFLAGS-s_modf.c += -fno-builtin-modfl
++CFLAGS-s_nan.c += -fno-builtin-nanl
++CFLAGS-s_nearbyint.c += -fno-builtin-nearbyintl
++CFLAGS-s_nextafter.c += -fno-builtin-nextafterl
++CFLAGS-s_nextdown.c += -fno-builtin-nextdownl
++CFLAGS-s_nexttoward.c += -fno-builtin-nexttoward -fno-builtin-nexttowardl
++CFLAGS-s_nexttowardf.c += -fno-builtin-nexttowardf
++CFLAGS-s_nextup.c += -fno-builtin-nextupl
++CFLAGS-e_pow.c += -fno-builtin-powl
++CFLAGS-w_remainder.c += -fno-builtin-remainderl -fno-builtin-dreml
++CFLAGS-s_remquo.c += -fno-builtin-remquol
++CFLAGS-s_rint.c += -fno-builtin-rintl
++CFLAGS-s_round.c += -fno-builtin-roundl
++CFLAGS-s_roundeven.c += -fno-builtin-roundevenl
++CFLAGS-w_scalb.c += -fno-builtin-scalbl
++CFLAGS-w_scalbln.c += -fno-builtin-scalblnl
++CFLAGS-s_scalbn.c += -fno-builtin-scalbnl
++CFLAGS-s_setpayload.c += -fno-builtin-setpayloadl
++CFLAGS-s_setpayloadsig.c += -fno-builtin-setpayloadsigl
++CFLAGS-s_significand.c += -fno-builtin-significandl
++CFLAGS-s_sin.c += -fno-builtin-sinl
++CFLAGS-s_sincos.c += -fno-builtin-sincosl
++CFLAGS-w_sinh.c += -fno-builtin-sinhl
++CFLAGS-w_sqrt.c += -fno-builtin-sqrtl
++CFLAGS-s_tan.c += -fno-builtin-tanl
++CFLAGS-s_tanh.c += -fno-builtin-tanhl
++CFLAGS-w_tgamma.c += -fno-builtin-tgammal
++CFLAGS-s_totalorder.c += -fno-builtin-totalorderl
++CFLAGS-s_totalordermag.c += -fno-builtin-totalordermagl
++CFLAGS-s_trunc.c += -fno-builtin-truncl
++CFLAGS-s_ufromfp.c += -fno-builtin-ufromfpl
++CFLAGS-s_ufromfpx.c += -fno-builtin-ufromfpxl
++CFLAGS-s_y0.c += -fno-builtin-y0l
++CFLAGS-s_y1.c += -fno-builtin-y1l
++CFLAGS-s_yn.c += -fno-builtin-ynl
+ endif
+
+ # These files quiet sNaNs in a way that is optimized away without
+--
+2.25.1
+
diff --git a/packages/glibc/2.29/0003-Fix-build-with-GCC-10-when-long-double-double.patch b/packages/glibc/2.29/0003-Fix-build-with-GCC-10-when-long-double-double.patch
new file mode 100644
index 0000000..ca0d8a7
--- /dev/null
+++ b/packages/glibc/2.29/0003-Fix-build-with-GCC-10-when-long-double-double.patch
@@ -0,0 +1,166 @@
+From 49348beafe9ba150c9bd48595b3f372299bddbb0 Mon Sep 17 00:00:00 2001
+From: Joseph Myers <joseph@codesourcery.com>
+Date: Tue, 17 Mar 2020 22:57:42 +0000
+Subject: [PATCH] Fix build with GCC 10 when long double = double.
+
+On platforms where long double has the same ABI as double, glibc
+defines long double functions as aliases for the corresponding double
+functions. The declarations of those functions in <math.h> are
+disabled to avoid problems with aliases having incompatible types, but
+GCC 10 now gives errors for incompatible types when the long double
+function is known to GCC as a built-in function, not just when there
+is an incompatible header declaration.
+
+This patch fixes those errors by using appropriate
+-fno-builtin-<function> options to compile the double functions. The
+list of CFLAGS-* settings is an appropriately adapted version of that
+in sysdeps/ieee754/ldbl-opt/Makefile used there for building nldbl-*.c
+files; in particular, the options are used even if GCC does not
+currently have a built-in function of a given function, so that adding
+such a built-in function in future will not break the glibc build.
+Thus, various of the CFLAGS-* settings are only for future-proofing
+and may not currently be needed (and it's possible some could be
+irrelevant for other reasons).
+
+Tested with build-many-glibcs.py for arm-linux-gnueabi (compilers and
+glibcs builds), where it fixes the build that previously failed.
+---
+ math/Makefile | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 122 insertions(+)
+
+diff --git a/math/Makefile b/math/Makefile
+index 84a8b94c74..0a5a40430e 100644
+--- a/math/Makefile
++++ b/math/Makefile
+@@ -650,6 +650,128 @@ ifneq ($(long-double-fcts),yes)
+ # We won't compile the `long double' code at all. Tell the `double' code
+ # to define aliases for the `FUNCl' names.
+ math-CPPFLAGS += -DNO_LONG_DOUBLE
++# GCC 10 diagnoses aliases with types conflicting with built-in
++# functions.
++CFLAGS-w_acos.c += -fno-builtin-acosl
++CFLAGS-w_acosh.c += -fno-builtin-acoshl
++CFLAGS-w_asin.c += -fno-builtin-asinl
++CFLAGS-s_asinh.c += -fno-builtin-asinhl
++CFLAGS-s_atan.c += -fno-builtin-atanl
++CFLAGS-w_atan2.c += -fno-builtin-atan2l
++CFLAGS-w_atanh.c += -fno-builtin-atanhl
++CFLAGS-s_cabs.c += -fno-builtin-cabsl
++CFLAGS-s_cacos.c += -fno-builtin-cacosl
++CFLAGS-s_cacosh.c += -fno-builtin-cacoshl
++CFLAGS-s_canonicalize.c += -fno-builtin-canonicalizel
++CFLAGS-s_carg.c += -fno-builtin-cargl
++CFLAGS-s_casin.c += -fno-builtin-casinl
++CFLAGS-s_casinh.c += -fno-builtin-casinhl
++CFLAGS-s_catan.c += -fno-builtin-catanl
++CFLAGS-s_catanh.c += -fno-builtin-catanhl
++CFLAGS-s_cbrt.c += -fno-builtin-cbrtl
++CFLAGS-s_ccos.c += -fno-builtin-ccosl
++CFLAGS-s_ccosh.c += -fno-builtin-ccoshl
++CFLAGS-s_ceil.c += -fno-builtin-ceill
++CFLAGS-s_cexp.c += -fno-builtin-cexpl
++CFLAGS-s_cimag.c += -fno-builtin-cimagl
++CFLAGS-s_clog.c += -fno-builtin-clogl
++CFLAGS-s_clog10.c += -fno-builtin-clog10l
++CFLAGS-s_conj.c += -fno-builtin-conjl
++CFLAGS-s_copysign.c += -fno-builtin-copysignl
++CFLAGS-s_cos.c += -fno-builtin-cosl
++CFLAGS-w_cosh.c += -fno-builtin-coshl
++CFLAGS-s_cpow.c += -fno-builtin-cpowl
++CFLAGS-s_cproj.c += -fno-builtin-cprojl
++CFLAGS-s_creal.c += -fno-builtin-creall
++CFLAGS-s_csin.c += -fno-builtin-csinl
++CFLAGS-s_csinh.c += -fno-builtin-csinhl
++CFLAGS-s_csqrt.c += -fno-builtin-csqrtl
++CFLAGS-s_ctan.c += -fno-builtin-ctanl
++CFLAGS-s_ctanh.c += -fno-builtin-ctanhl
++CFLAGS-s_dadd.c += -fno-builtin-daddl
++CFLAGS-s_ddiv.c += -fno-builtin-ddivl
++CFLAGS-s_dmul.c += -fno-builtin-dmull
++CFLAGS-s_dsub.c += -fno-builtin-dsubl
++CFLAGS-s_erf.c += -fno-builtin-erfl
++CFLAGS-s_erfc.c += -fno-builtin-erfcl
++CFLAGS-e_exp.c += -fno-builtin-expl
++CFLAGS-w_exp10.c += -fno-builtin-exp10l
++CFLAGS-e_exp2.c += -fno-builtin-exp2l
++CFLAGS-s_expm1.c += -fno-builtin-expm1l
++CFLAGS-s_fabs.c += -fno-builtin-fabsl
++CFLAGS-s_fadd.c += -fno-builtin-faddl
++CFLAGS-s_fdim.c += -fno-builtin-fdiml
++CFLAGS-s_fdiv.c += -fno-builtin-fdivl
++CFLAGS-s_finite.c += -fno-builtin-finitel
++CFLAGS-s_floor.c += -fno-builtin-floorl
++CFLAGS-s_fma.c += -fno-builtin-fmal
++CFLAGS-s_fmax.c += -fno-builtin-fmaxl
++CFLAGS-s_fmaxmag.c += -fno-builtin-fmaxmagl
++CFLAGS-s_fmin.c += -fno-builtin-fminl
++CFLAGS-s_fminmag.c += -fno-builtin-fminmagl
++CFLAGS-w_fmod.c += -fno-builtin-fmodl
++CFLAGS-s_fmul.c += -fno-builtin-fmull
++CFLAGS-s_frexp.c += -fno-builtin-frexpl
++CFLAGS-s_fromfp.c += -fno-builtin-fromfpl
++CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxl
++CFLAGS-s_fsub.c += -fno-builtin-fsubl
++CFLAGS-s_gamma.c += -fno-builtin-gammal
++CFLAGS-s_getpayload.c += -fno-builtin-getpayloadl
++CFLAGS-w_hypot.c += -fno-builtin-hypotl
++CFLAGS-w_ilogb.c += -fno-builtin-ilogbl
++CFLAGS-s_isinf.c += -fno-builtin-isinfl
++CFLAGS-s_isnan.c += -fno-builtin-isnanl
++CFLAGS-w_j0.c += -fno-builtin-j0l
++CFLAGS-w_j1.c += -fno-builtin-j1l
++CFLAGS-w_jn.c += -fno-builtin-jnl
++CFLAGS-s_ldexp.c += -fno-builtin-ldexpl
++CFLAGS-w_lgamma.c += -fno-builtin-lgammal
++CFLAGS-w_lgamma_r.c += -fno-builtin-lgammal_r
++CFLAGS-w_llogb.c += -fno-builtin-llogbl
++CFLAGS-s_llrint.c += -fno-builtin-llrintl
++CFLAGS-s_llround.c += -fno-builtin-llroundl
++CFLAGS-e_log.c += -fno-builtin-logl
++CFLAGS-w_log10.c += -fno-builtin-log10l
++CFLAGS-w_log1p.c += -fno-builtin-log1pl
++CFLAGS-e_log2.c += -fno-builtin-log2l
++CFLAGS-s_logb.c += -fno-builtin-logbl
++CFLAGS-s_lrint.c += -fno-builtin-lrintl
++CFLAGS-s_lround.c += -fno-builtin-lroundl
++CFLAGS-s_modf.c += -fno-builtin-modfl
++CFLAGS-s_nan.c += -fno-builtin-nanl
++CFLAGS-s_nearbyint.c += -fno-builtin-nearbyintl
++CFLAGS-s_nextafter.c += -fno-builtin-nextafterl
++CFLAGS-s_nextdown.c += -fno-builtin-nextdownl
++CFLAGS-s_nexttoward.c += -fno-builtin-nexttoward -fno-builtin-nexttowardl
++CFLAGS-s_nexttowardf.c += -fno-builtin-nexttowardf
++CFLAGS-s_nextup.c += -fno-builtin-nextupl
++CFLAGS-e_pow.c += -fno-builtin-powl
++CFLAGS-w_remainder.c += -fno-builtin-remainderl -fno-builtin-dreml
++CFLAGS-s_remquo.c += -fno-builtin-remquol
++CFLAGS-s_rint.c += -fno-builtin-rintl
++CFLAGS-s_round.c += -fno-builtin-roundl
++CFLAGS-s_roundeven.c += -fno-builtin-roundevenl
++CFLAGS-w_scalb.c += -fno-builtin-scalbl
++CFLAGS-w_scalbln.c += -fno-builtin-scalblnl
++CFLAGS-s_scalbn.c += -fno-builtin-scalbnl
++CFLAGS-s_setpayload.c += -fno-builtin-setpayloadl
++CFLAGS-s_setpayloadsig.c += -fno-builtin-setpayloadsigl
++CFLAGS-s_significand.c += -fno-builtin-significandl
++CFLAGS-s_sin.c += -fno-builtin-sinl
++CFLAGS-s_sincos.c += -fno-builtin-sincosl
++CFLAGS-w_sinh.c += -fno-builtin-sinhl
++CFLAGS-w_sqrt.c += -fno-builtin-sqrtl
++CFLAGS-s_tan.c += -fno-builtin-tanl
++CFLAGS-s_tanh.c += -fno-builtin-tanhl
++CFLAGS-w_tgamma.c += -fno-builtin-tgammal
++CFLAGS-s_totalorder.c += -fno-builtin-totalorderl
++CFLAGS-s_totalordermag.c += -fno-builtin-totalordermagl
++CFLAGS-s_trunc.c += -fno-builtin-truncl
++CFLAGS-s_ufromfp.c += -fno-builtin-ufromfpl
++CFLAGS-s_ufromfpx.c += -fno-builtin-ufromfpxl
++CFLAGS-s_y0.c += -fno-builtin-y0l
++CFLAGS-s_y1.c += -fno-builtin-y1l
++CFLAGS-s_yn.c += -fno-builtin-ynl
+ endif
+
+ # These files quiet sNaNs in a way that is optimized away without
+--
+2.25.1
+
diff --git a/packages/glibc/2.30/0003-Fix-build-with-GCC-10-when-long-double-double.patch b/packages/glibc/2.30/0003-Fix-build-with-GCC-10-when-long-double-double.patch
new file mode 100644
index 0000000..ca0d8a7
--- /dev/null
+++ b/packages/glibc/2.30/0003-Fix-build-with-GCC-10-when-long-double-double.patch
@@ -0,0 +1,166 @@
+From 49348beafe9ba150c9bd48595b3f372299bddbb0 Mon Sep 17 00:00:00 2001
+From: Joseph Myers <joseph@codesourcery.com>
+Date: Tue, 17 Mar 2020 22:57:42 +0000
+Subject: [PATCH] Fix build with GCC 10 when long double = double.
+
+On platforms where long double has the same ABI as double, glibc
+defines long double functions as aliases for the corresponding double
+functions. The declarations of those functions in <math.h> are
+disabled to avoid problems with aliases having incompatible types, but
+GCC 10 now gives errors for incompatible types when the long double
+function is known to GCC as a built-in function, not just when there
+is an incompatible header declaration.
+
+This patch fixes those errors by using appropriate
+-fno-builtin-<function> options to compile the double functions. The
+list of CFLAGS-* settings is an appropriately adapted version of that
+in sysdeps/ieee754/ldbl-opt/Makefile used there for building nldbl-*.c
+files; in particular, the options are used even if GCC does not
+currently have a built-in function of a given function, so that adding
+such a built-in function in future will not break the glibc build.
+Thus, various of the CFLAGS-* settings are only for future-proofing
+and may not currently be needed (and it's possible some could be
+irrelevant for other reasons).
+
+Tested with build-many-glibcs.py for arm-linux-gnueabi (compilers and
+glibcs builds), where it fixes the build that previously failed.
+---
+ math/Makefile | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 122 insertions(+)
+
+diff --git a/math/Makefile b/math/Makefile
+index 84a8b94c74..0a5a40430e 100644
+--- a/math/Makefile
++++ b/math/Makefile
+@@ -650,6 +650,128 @@ ifneq ($(long-double-fcts),yes)
+ # We won't compile the `long double' code at all. Tell the `double' code
+ # to define aliases for the `FUNCl' names.
+ math-CPPFLAGS += -DNO_LONG_DOUBLE
++# GCC 10 diagnoses aliases with types conflicting with built-in
++# functions.
++CFLAGS-w_acos.c += -fno-builtin-acosl
++CFLAGS-w_acosh.c += -fno-builtin-acoshl
++CFLAGS-w_asin.c += -fno-builtin-asinl
++CFLAGS-s_asinh.c += -fno-builtin-asinhl
++CFLAGS-s_atan.c += -fno-builtin-atanl
++CFLAGS-w_atan2.c += -fno-builtin-atan2l
++CFLAGS-w_atanh.c += -fno-builtin-atanhl
++CFLAGS-s_cabs.c += -fno-builtin-cabsl
++CFLAGS-s_cacos.c += -fno-builtin-cacosl
++CFLAGS-s_cacosh.c += -fno-builtin-cacoshl
++CFLAGS-s_canonicalize.c += -fno-builtin-canonicalizel
++CFLAGS-s_carg.c += -fno-builtin-cargl
++CFLAGS-s_casin.c += -fno-builtin-casinl
++CFLAGS-s_casinh.c += -fno-builtin-casinhl
++CFLAGS-s_catan.c += -fno-builtin-catanl
++CFLAGS-s_catanh.c += -fno-builtin-catanhl
++CFLAGS-s_cbrt.c += -fno-builtin-cbrtl
++CFLAGS-s_ccos.c += -fno-builtin-ccosl
++CFLAGS-s_ccosh.c += -fno-builtin-ccoshl
++CFLAGS-s_ceil.c += -fno-builtin-ceill
++CFLAGS-s_cexp.c += -fno-builtin-cexpl
++CFLAGS-s_cimag.c += -fno-builtin-cimagl
++CFLAGS-s_clog.c += -fno-builtin-clogl
++CFLAGS-s_clog10.c += -fno-builtin-clog10l
++CFLAGS-s_conj.c += -fno-builtin-conjl
++CFLAGS-s_copysign.c += -fno-builtin-copysignl
++CFLAGS-s_cos.c += -fno-builtin-cosl
++CFLAGS-w_cosh.c += -fno-builtin-coshl
++CFLAGS-s_cpow.c += -fno-builtin-cpowl
++CFLAGS-s_cproj.c += -fno-builtin-cprojl
++CFLAGS-s_creal.c += -fno-builtin-creall
++CFLAGS-s_csin.c += -fno-builtin-csinl
++CFLAGS-s_csinh.c += -fno-builtin-csinhl
++CFLAGS-s_csqrt.c += -fno-builtin-csqrtl
++CFLAGS-s_ctan.c += -fno-builtin-ctanl
++CFLAGS-s_ctanh.c += -fno-builtin-ctanhl
++CFLAGS-s_dadd.c += -fno-builtin-daddl
++CFLAGS-s_ddiv.c += -fno-builtin-ddivl
++CFLAGS-s_dmul.c += -fno-builtin-dmull
++CFLAGS-s_dsub.c += -fno-builtin-dsubl
++CFLAGS-s_erf.c += -fno-builtin-erfl
++CFLAGS-s_erfc.c += -fno-builtin-erfcl
++CFLAGS-e_exp.c += -fno-builtin-expl
++CFLAGS-w_exp10.c += -fno-builtin-exp10l
++CFLAGS-e_exp2.c += -fno-builtin-exp2l
++CFLAGS-s_expm1.c += -fno-builtin-expm1l
++CFLAGS-s_fabs.c += -fno-builtin-fabsl
++CFLAGS-s_fadd.c += -fno-builtin-faddl
++CFLAGS-s_fdim.c += -fno-builtin-fdiml
++CFLAGS-s_fdiv.c += -fno-builtin-fdivl
++CFLAGS-s_finite.c += -fno-builtin-finitel
++CFLAGS-s_floor.c += -fno-builtin-floorl
++CFLAGS-s_fma.c += -fno-builtin-fmal
++CFLAGS-s_fmax.c += -fno-builtin-fmaxl
++CFLAGS-s_fmaxmag.c += -fno-builtin-fmaxmagl
++CFLAGS-s_fmin.c += -fno-builtin-fminl
++CFLAGS-s_fminmag.c += -fno-builtin-fminmagl
++CFLAGS-w_fmod.c += -fno-builtin-fmodl
++CFLAGS-s_fmul.c += -fno-builtin-fmull
++CFLAGS-s_frexp.c += -fno-builtin-frexpl
++CFLAGS-s_fromfp.c += -fno-builtin-fromfpl
++CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxl
++CFLAGS-s_fsub.c += -fno-builtin-fsubl
++CFLAGS-s_gamma.c += -fno-builtin-gammal
++CFLAGS-s_getpayload.c += -fno-builtin-getpayloadl
++CFLAGS-w_hypot.c += -fno-builtin-hypotl
++CFLAGS-w_ilogb.c += -fno-builtin-ilogbl
++CFLAGS-s_isinf.c += -fno-builtin-isinfl
++CFLAGS-s_isnan.c += -fno-builtin-isnanl
++CFLAGS-w_j0.c += -fno-builtin-j0l
++CFLAGS-w_j1.c += -fno-builtin-j1l
++CFLAGS-w_jn.c += -fno-builtin-jnl
++CFLAGS-s_ldexp.c += -fno-builtin-ldexpl
++CFLAGS-w_lgamma.c += -fno-builtin-lgammal
++CFLAGS-w_lgamma_r.c += -fno-builtin-lgammal_r
++CFLAGS-w_llogb.c += -fno-builtin-llogbl
++CFLAGS-s_llrint.c += -fno-builtin-llrintl
++CFLAGS-s_llround.c += -fno-builtin-llroundl
++CFLAGS-e_log.c += -fno-builtin-logl
++CFLAGS-w_log10.c += -fno-builtin-log10l
++CFLAGS-w_log1p.c += -fno-builtin-log1pl
++CFLAGS-e_log2.c += -fno-builtin-log2l
++CFLAGS-s_logb.c += -fno-builtin-logbl
++CFLAGS-s_lrint.c += -fno-builtin-lrintl
++CFLAGS-s_lround.c += -fno-builtin-lroundl
++CFLAGS-s_modf.c += -fno-builtin-modfl
++CFLAGS-s_nan.c += -fno-builtin-nanl
++CFLAGS-s_nearbyint.c += -fno-builtin-nearbyintl
++CFLAGS-s_nextafter.c += -fno-builtin-nextafterl
++CFLAGS-s_nextdown.c += -fno-builtin-nextdownl
++CFLAGS-s_nexttoward.c += -fno-builtin-nexttoward -fno-builtin-nexttowardl
++CFLAGS-s_nexttowardf.c += -fno-builtin-nexttowardf
++CFLAGS-s_nextup.c += -fno-builtin-nextupl
++CFLAGS-e_pow.c += -fno-builtin-powl
++CFLAGS-w_remainder.c += -fno-builtin-remainderl -fno-builtin-dreml
++CFLAGS-s_remquo.c += -fno-builtin-remquol
++CFLAGS-s_rint.c += -fno-builtin-rintl
++CFLAGS-s_round.c += -fno-builtin-roundl
++CFLAGS-s_roundeven.c += -fno-builtin-roundevenl
++CFLAGS-w_scalb.c += -fno-builtin-scalbl
++CFLAGS-w_scalbln.c += -fno-builtin-scalblnl
++CFLAGS-s_scalbn.c += -fno-builtin-scalbnl
++CFLAGS-s_setpayload.c += -fno-builtin-setpayloadl
++CFLAGS-s_setpayloadsig.c += -fno-builtin-setpayloadsigl
++CFLAGS-s_significand.c += -fno-builtin-significandl
++CFLAGS-s_sin.c += -fno-builtin-sinl
++CFLAGS-s_sincos.c += -fno-builtin-sincosl
++CFLAGS-w_sinh.c += -fno-builtin-sinhl
++CFLAGS-w_sqrt.c += -fno-builtin-sqrtl
++CFLAGS-s_tan.c += -fno-builtin-tanl
++CFLAGS-s_tanh.c += -fno-builtin-tanhl
++CFLAGS-w_tgamma.c += -fno-builtin-tgammal
++CFLAGS-s_totalorder.c += -fno-builtin-totalorderl
++CFLAGS-s_totalordermag.c += -fno-builtin-totalordermagl
++CFLAGS-s_trunc.c += -fno-builtin-truncl
++CFLAGS-s_ufromfp.c += -fno-builtin-ufromfpl
++CFLAGS-s_ufromfpx.c += -fno-builtin-ufromfpxl
++CFLAGS-s_y0.c += -fno-builtin-y0l
++CFLAGS-s_y1.c += -fno-builtin-y1l
++CFLAGS-s_yn.c += -fno-builtin-ynl
+ endif
+
+ # These files quiet sNaNs in a way that is optimized away without
+--
+2.25.1
+
diff --git a/packages/glibc/2.31/0002-Fix-build-with-GCC-10-when-long-double-double.patch b/packages/glibc/2.31/0002-Fix-build-with-GCC-10-when-long-double-double.patch
new file mode 100644
index 0000000..ca0d8a7
--- /dev/null
+++ b/packages/glibc/2.31/0002-Fix-build-with-GCC-10-when-long-double-double.patch
@@ -0,0 +1,166 @@
+From 49348beafe9ba150c9bd48595b3f372299bddbb0 Mon Sep 17 00:00:00 2001
+From: Joseph Myers <joseph@codesourcery.com>
+Date: Tue, 17 Mar 2020 22:57:42 +0000
+Subject: [PATCH] Fix build with GCC 10 when long double = double.
+
+On platforms where long double has the same ABI as double, glibc
+defines long double functions as aliases for the corresponding double
+functions. The declarations of those functions in <math.h> are
+disabled to avoid problems with aliases having incompatible types, but
+GCC 10 now gives errors for incompatible types when the long double
+function is known to GCC as a built-in function, not just when there
+is an incompatible header declaration.
+
+This patch fixes those errors by using appropriate
+-fno-builtin-<function> options to compile the double functions. The
+list of CFLAGS-* settings is an appropriately adapted version of that
+in sysdeps/ieee754/ldbl-opt/Makefile used there for building nldbl-*.c
+files; in particular, the options are used even if GCC does not
+currently have a built-in function of a given function, so that adding
+such a built-in function in future will not break the glibc build.
+Thus, various of the CFLAGS-* settings are only for future-proofing
+and may not currently be needed (and it's possible some could be
+irrelevant for other reasons).
+
+Tested with build-many-glibcs.py for arm-linux-gnueabi (compilers and
+glibcs builds), where it fixes the build that previously failed.
+---
+ math/Makefile | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 122 insertions(+)
+
+diff --git a/math/Makefile b/math/Makefile
+index 84a8b94c74..0a5a40430e 100644
+--- a/math/Makefile
++++ b/math/Makefile
+@@ -650,6 +650,128 @@ ifneq ($(long-double-fcts),yes)
+ # We won't compile the `long double' code at all. Tell the `double' code
+ # to define aliases for the `FUNCl' names.
+ math-CPPFLAGS += -DNO_LONG_DOUBLE
++# GCC 10 diagnoses aliases with types conflicting with built-in
++# functions.
++CFLAGS-w_acos.c += -fno-builtin-acosl
++CFLAGS-w_acosh.c += -fno-builtin-acoshl
++CFLAGS-w_asin.c += -fno-builtin-asinl
++CFLAGS-s_asinh.c += -fno-builtin-asinhl
++CFLAGS-s_atan.c += -fno-builtin-atanl
++CFLAGS-w_atan2.c += -fno-builtin-atan2l
++CFLAGS-w_atanh.c += -fno-builtin-atanhl
++CFLAGS-s_cabs.c += -fno-builtin-cabsl
++CFLAGS-s_cacos.c += -fno-builtin-cacosl
++CFLAGS-s_cacosh.c += -fno-builtin-cacoshl
++CFLAGS-s_canonicalize.c += -fno-builtin-canonicalizel
++CFLAGS-s_carg.c += -fno-builtin-cargl
++CFLAGS-s_casin.c += -fno-builtin-casinl
++CFLAGS-s_casinh.c += -fno-builtin-casinhl
++CFLAGS-s_catan.c += -fno-builtin-catanl
++CFLAGS-s_catanh.c += -fno-builtin-catanhl
++CFLAGS-s_cbrt.c += -fno-builtin-cbrtl
++CFLAGS-s_ccos.c += -fno-builtin-ccosl
++CFLAGS-s_ccosh.c += -fno-builtin-ccoshl
++CFLAGS-s_ceil.c += -fno-builtin-ceill
++CFLAGS-s_cexp.c += -fno-builtin-cexpl
++CFLAGS-s_cimag.c += -fno-builtin-cimagl
++CFLAGS-s_clog.c += -fno-builtin-clogl
++CFLAGS-s_clog10.c += -fno-builtin-clog10l
++CFLAGS-s_conj.c += -fno-builtin-conjl
++CFLAGS-s_copysign.c += -fno-builtin-copysignl
++CFLAGS-s_cos.c += -fno-builtin-cosl
++CFLAGS-w_cosh.c += -fno-builtin-coshl
++CFLAGS-s_cpow.c += -fno-builtin-cpowl
++CFLAGS-s_cproj.c += -fno-builtin-cprojl
++CFLAGS-s_creal.c += -fno-builtin-creall
++CFLAGS-s_csin.c += -fno-builtin-csinl
++CFLAGS-s_csinh.c += -fno-builtin-csinhl
++CFLAGS-s_csqrt.c += -fno-builtin-csqrtl
++CFLAGS-s_ctan.c += -fno-builtin-ctanl
++CFLAGS-s_ctanh.c += -fno-builtin-ctanhl
++CFLAGS-s_dadd.c += -fno-builtin-daddl
++CFLAGS-s_ddiv.c += -fno-builtin-ddivl
++CFLAGS-s_dmul.c += -fno-builtin-dmull
++CFLAGS-s_dsub.c += -fno-builtin-dsubl
++CFLAGS-s_erf.c += -fno-builtin-erfl
++CFLAGS-s_erfc.c += -fno-builtin-erfcl
++CFLAGS-e_exp.c += -fno-builtin-expl
++CFLAGS-w_exp10.c += -fno-builtin-exp10l
++CFLAGS-e_exp2.c += -fno-builtin-exp2l
++CFLAGS-s_expm1.c += -fno-builtin-expm1l
++CFLAGS-s_fabs.c += -fno-builtin-fabsl
++CFLAGS-s_fadd.c += -fno-builtin-faddl
++CFLAGS-s_fdim.c += -fno-builtin-fdiml
++CFLAGS-s_fdiv.c += -fno-builtin-fdivl
++CFLAGS-s_finite.c += -fno-builtin-finitel
++CFLAGS-s_floor.c += -fno-builtin-floorl
++CFLAGS-s_fma.c += -fno-builtin-fmal
++CFLAGS-s_fmax.c += -fno-builtin-fmaxl
++CFLAGS-s_fmaxmag.c += -fno-builtin-fmaxmagl
++CFLAGS-s_fmin.c += -fno-builtin-fminl
++CFLAGS-s_fminmag.c += -fno-builtin-fminmagl
++CFLAGS-w_fmod.c += -fno-builtin-fmodl
++CFLAGS-s_fmul.c += -fno-builtin-fmull
++CFLAGS-s_frexp.c += -fno-builtin-frexpl
++CFLAGS-s_fromfp.c += -fno-builtin-fromfpl
++CFLAGS-s_fromfpx.c += -fno-builtin-fromfpxl
++CFLAGS-s_fsub.c += -fno-builtin-fsubl
++CFLAGS-s_gamma.c += -fno-builtin-gammal
++CFLAGS-s_getpayload.c += -fno-builtin-getpayloadl
++CFLAGS-w_hypot.c += -fno-builtin-hypotl
++CFLAGS-w_ilogb.c += -fno-builtin-ilogbl
++CFLAGS-s_isinf.c += -fno-builtin-isinfl
++CFLAGS-s_isnan.c += -fno-builtin-isnanl
++CFLAGS-w_j0.c += -fno-builtin-j0l
++CFLAGS-w_j1.c += -fno-builtin-j1l
++CFLAGS-w_jn.c += -fno-builtin-jnl
++CFLAGS-s_ldexp.c += -fno-builtin-ldexpl
++CFLAGS-w_lgamma.c += -fno-builtin-lgammal
++CFLAGS-w_lgamma_r.c += -fno-builtin-lgammal_r
++CFLAGS-w_llogb.c += -fno-builtin-llogbl
++CFLAGS-s_llrint.c += -fno-builtin-llrintl
++CFLAGS-s_llround.c += -fno-builtin-llroundl
++CFLAGS-e_log.c += -fno-builtin-logl
++CFLAGS-w_log10.c += -fno-builtin-log10l
++CFLAGS-w_log1p.c += -fno-builtin-log1pl
++CFLAGS-e_log2.c += -fno-builtin-log2l
++CFLAGS-s_logb.c += -fno-builtin-logbl
++CFLAGS-s_lrint.c += -fno-builtin-lrintl
++CFLAGS-s_lround.c += -fno-builtin-lroundl
++CFLAGS-s_modf.c += -fno-builtin-modfl
++CFLAGS-s_nan.c += -fno-builtin-nanl
++CFLAGS-s_nearbyint.c += -fno-builtin-nearbyintl
++CFLAGS-s_nextafter.c += -fno-builtin-nextafterl
++CFLAGS-s_nextdown.c += -fno-builtin-nextdownl
++CFLAGS-s_nexttoward.c += -fno-builtin-nexttoward -fno-builtin-nexttowardl
++CFLAGS-s_nexttowardf.c += -fno-builtin-nexttowardf
++CFLAGS-s_nextup.c += -fno-builtin-nextupl
++CFLAGS-e_pow.c += -fno-builtin-powl
++CFLAGS-w_remainder.c += -fno-builtin-remainderl -fno-builtin-dreml
++CFLAGS-s_remquo.c += -fno-builtin-remquol
++CFLAGS-s_rint.c += -fno-builtin-rintl
++CFLAGS-s_round.c += -fno-builtin-roundl
++CFLAGS-s_roundeven.c += -fno-builtin-roundevenl
++CFLAGS-w_scalb.c += -fno-builtin-scalbl
++CFLAGS-w_scalbln.c += -fno-builtin-scalblnl
++CFLAGS-s_scalbn.c += -fno-builtin-scalbnl
++CFLAGS-s_setpayload.c += -fno-builtin-setpayloadl
++CFLAGS-s_setpayloadsig.c += -fno-builtin-setpayloadsigl
++CFLAGS-s_significand.c += -fno-builtin-significandl
++CFLAGS-s_sin.c += -fno-builtin-sinl
++CFLAGS-s_sincos.c += -fno-builtin-sincosl
++CFLAGS-w_sinh.c += -fno-builtin-sinhl
++CFLAGS-w_sqrt.c += -fno-builtin-sqrtl
++CFLAGS-s_tan.c += -fno-builtin-tanl
++CFLAGS-s_tanh.c += -fno-builtin-tanhl
++CFLAGS-w_tgamma.c += -fno-builtin-tgammal
++CFLAGS-s_totalorder.c += -fno-builtin-totalorderl
++CFLAGS-s_totalordermag.c += -fno-builtin-totalordermagl
++CFLAGS-s_trunc.c += -fno-builtin-truncl
++CFLAGS-s_ufromfp.c += -fno-builtin-ufromfpl
++CFLAGS-s_ufromfpx.c += -fno-builtin-ufromfpxl
++CFLAGS-s_y0.c += -fno-builtin-y0l
++CFLAGS-s_y1.c += -fno-builtin-y1l
++CFLAGS-s_yn.c += -fno-builtin-ynl
+ endif
+
+ # These files quiet sNaNs in a way that is optimized away without
+--
+2.25.1
+
diff --git a/packages/glibc/2.32/0000-typedef-caddr.patch b/packages/glibc/2.32/0000-typedef-caddr.patch
new file mode 100644
index 0000000..451884c
--- /dev/null
+++ b/packages/glibc/2.32/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 @@ typedef __ssize_t ssize_t;
+ #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.32/0001-Set-version.h-RELEASE-to-stable-Bug-26700.patch b/packages/glibc/2.32/0001-Set-version.h-RELEASE-to-stable-Bug-26700.patch
new file mode 100644
index 0000000..e02e69b
--- /dev/null
+++ b/packages/glibc/2.32/0001-Set-version.h-RELEASE-to-stable-Bug-26700.patch
@@ -0,0 +1,26 @@
+From 23482f788665df83edc8b542698f45fed45a2711 Mon Sep 17 00:00:00 2001
+From: Carlos O'Donell <carlos@redhat.com>
+Date: Fri, 2 Oct 2020 09:23:35 -0400
+Subject: [PATCH] Set version.h RELEASE to "stable" (Bug 26700)
+
+The RELEASE macro was accidentaly set to "release" instead of
+the expected "stable" by the release manager. This is a mistake
+that leads to the build using "-g -O1" instead of "-g -O2" if
+configure was executed with "CFLAGS=" (CFLAGS set but empty).
+---
+ version.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/version.h b/version.h
+index 83cd196798..e6ca7a8857 100644
+--- a/version.h
++++ b/version.h
+@@ -1,4 +1,4 @@
+ /* This file just defines the current version number of libc. */
+
+-#define RELEASE "release"
++#define RELEASE "stable"
+ #define VERSION "2.32"
+--
+2.25.1
+
diff --git a/packages/glibc/2.32/chksum b/packages/glibc/2.32/chksum
new file mode 100644
index 0000000..4774217
--- /dev/null
+++ b/packages/glibc/2.32/chksum
@@ -0,0 +1,12 @@
+md5 glibc-2.32.tar.xz 720c7992861c57cf97d66a2f36d8d1fa
+sha1 glibc-2.32.tar.xz 71ff0af28bdf4525d7b91ec5d82d1fc002000e91
+sha256 glibc-2.32.tar.xz 1627ea54f5a1a8467032563393e0901077626dc66f37f10ee6363bb722222836
+sha512 glibc-2.32.tar.xz 8460c155b7003e04f18dabece4ed9ad77445fa2288a7dc08e80a8fc4c418828af29e0649951bd71a54ea2ad2d4da7570aafd9bdfe4a37e9951b772b442afe50b
+md5 glibc-2.32.tar.bz2 873e0341fd3228fe1d49e5a61c25e083
+sha1 glibc-2.32.tar.bz2 c0001ce9f91d1c0fee9f1b745764e1d3dc11a716
+sha256 glibc-2.32.tar.bz2 6d34d8ba95e714dbede304dad8bf8931bf3950293f8c14ab57167ae141aad68a
+sha512 glibc-2.32.tar.bz2 d7521870f1c6a9b7dc8c08541c0e4c191259a9736cfe8c45ba3453aea25c5a96cd7b9a193814293b0c5f7b9ea4d16e78b29b67b254331b1806cac38380699d52
+md5 glibc-2.32.tar.gz 9ccf64ce8976baa21d85dc550ee9f145
+sha1 glibc-2.32.tar.gz 723e781c1edb6d5bf4dd6d9c07f7d2e92ecce1c1
+sha256 glibc-2.32.tar.gz f52e5bdc6607cb692c0f7134b75b3ba34b5121628a1750c03e3c9aa0b9d9e65a
+sha512 glibc-2.32.tar.gz 769e33f505378a9c91852c4316afb005792a0c5e26650e8b43dfad6d0d1cb5d3568b1c926ff1227a398c7f0a251d8065e5ea3eb851ab055d176c2443a64da507
diff --git a/packages/glibc/2.32/version.desc b/packages/glibc/2.32/version.desc
new file mode 100644
index 0000000..4406df2
--- /dev/null
+++ b/packages/glibc/2.32/version.desc
@@ -0,0 +1 @@
+# Released 6 August 2020
diff --git a/packages/glibc/package.desc b/packages/glibc/package.desc
index 6b722a7..7a74988 100644
--- a/packages/glibc/package.desc
+++ b/packages/glibc/package.desc
@@ -1,8 +1,8 @@
origin='GNU'
repository='git git://sourceware.org/git/glibc.git'
mirrors='$(CT_Mirrors GNU glibc)'
-# Cannot use MAJOR.MINOR as the releant part because of 2.12: 2.12.2 was the most recent
+# 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'
+milestones='2.14 2.17 2.20 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.32'
archive_formats='.tar.xz .tar.bz2 .tar.gz'
signature_format='packed/.sig'
diff --git a/packages/libelf/package.desc b/packages/libelf/package.desc
index 52e514f..f7648d9 100644
--- a/packages/libelf/package.desc
+++ b/packages/libelf/package.desc
@@ -1,5 +1,5 @@
# FIXME No public repository and no new releases.
# Consider switching to/adding project elftoolchain?
-mirrors='http://www.mr511.de/software https://fossies.org/linux/misc/old'
+mirrors='https://fossies.org/linux/misc/old'
relevantpattern='*.*|.'
archive_formats='.tar.gz'
diff --git a/packages/linux/4.14.171/chksum b/packages/linux/4.14.171/chksum
deleted file mode 100644
index 9d49d9e..0000000
--- a/packages/linux/4.14.171/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-4.14.171.tar.xz b9b2c64eb3ae7fa6023d2b8c981b5ac4
-sha1 linux-4.14.171.tar.xz 6ef4629c9ab5be9078f8206f3fd1539b7bbadfe2
-sha256 linux-4.14.171.tar.xz 4fe02489e4b4a187eccf0ef87df6100534c9d485e76d876b1fa247c7635332a0
-sha512 linux-4.14.171.tar.xz 681a39674609317c7571dbedeadffee6e1b7ac11be25cc887012b507925306eae04aa93b4fb5b6e3207cfffce0972c0b772068a2ab72393d771446dc981dccac
-md5 linux-4.14.171.tar.gz b1508924bc661ccf3367e76e131ba8f5
-sha1 linux-4.14.171.tar.gz 3ec3922b43e23cdc31a39ed3a5602baaec4ecd6c
-sha256 linux-4.14.171.tar.gz 8c46e833b4ff2bd2d4f35472e55f82c677d84d2373dbbfa6400825e7ced60663
-sha512 linux-4.14.171.tar.gz cb55c4e76543189ee0a9c98eeeca4b46cf3f6ec168dcb5f4d34298b77049fa60efa5517e30a2841c9b75f87461ecba69cac69ec2371a3d47b8e8fb89a9d79369
diff --git a/packages/linux/4.14.198/chksum b/packages/linux/4.14.198/chksum
new file mode 100644
index 0000000..a6c29a4
--- /dev/null
+++ b/packages/linux/4.14.198/chksum
@@ -0,0 +1,8 @@
+md5 linux-4.14.198.tar.xz 9bf8f170f93283549cba55df5247b7b8
+sha1 linux-4.14.198.tar.xz 294e30436219ea4ce888ca4853a4c06462d0278d
+sha256 linux-4.14.198.tar.xz 1efaba581860a36666c3ae5001a9f291d3d6929d9d5e78800ebd6242858cb503
+sha512 linux-4.14.198.tar.xz d020e2b78bea4d6fe5ff5d61fc3fb4ef019ecc7b841dcd803d8c9d533204fddce8181138096709e2e5ddd2fae45c7efd9000c7b29b52979e43ededea586e7ebc
+md5 linux-4.14.198.tar.gz ff830a58a3d8a0ac3745fc036cf78d68
+sha1 linux-4.14.198.tar.gz f4c3a74717fdbe948d56108c71d78f45e0e4a036
+sha256 linux-4.14.198.tar.gz 6e99ca1065d2ea74690de4432e59a125d60e72101f5420aae90446efa36dbc53
+sha512 linux-4.14.198.tar.gz 4493342e01ef556772feac28080852dc7aa8cf81985ef75cc1c23b4dc396b7e41018044966c9a2419af8205ee6d1a02086e72c7b333a4c0928e249501b91c982
diff --git a/packages/gdb/9.1/version.desc b/packages/linux/4.14.198/version.desc
index e69de29..e69de29 100644
--- a/packages/gdb/9.1/version.desc
+++ b/packages/linux/4.14.198/version.desc
diff --git a/packages/linux/4.19.105/chksum b/packages/linux/4.19.105/chksum
deleted file mode 100644
index b4ef666..0000000
--- a/packages/linux/4.19.105/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-4.19.105.tar.xz 960073de540e54312c81750f74231983
-sha1 linux-4.19.105.tar.xz 5b60fff574de613876165cbb10da41efe3381308
-sha256 linux-4.19.105.tar.xz f82c778ab404feb3dce6c08bff089fe2e1d86b62fc40cf2950112ea7aa22bf12
-sha512 linux-4.19.105.tar.xz 32dc4eb8b535af3a3998a8d4fca4d1b47d1a09fdb324d18e70b4098d7431d836d3c6449cbf07d4b5188ba07bfafa0c2f91ec875b369676f208a25f45d40f64c1
-md5 linux-4.19.105.tar.gz 17ed120e3d0c61fb7cc828b7d9203cd8
-sha1 linux-4.19.105.tar.gz aa445ccbe1c12626cb8a1160572c0dabd596048a
-sha256 linux-4.19.105.tar.gz 2253ee8fd3c2b587b6af0410875160f48472be21aa0f76c9e4caa329cbe4e09d
-sha512 linux-4.19.105.tar.gz 24f05ffbacac2d43f4cc5068e98cd8621218d327c81872dd7c3f3c91503b7534b2a6a33be0b35fd9fa054511d3d96f8962b8926199b993aa29fc28b776b92574
diff --git a/packages/linux/4.19.145/chksum b/packages/linux/4.19.145/chksum
new file mode 100644
index 0000000..6bd956f
--- /dev/null
+++ b/packages/linux/4.19.145/chksum
@@ -0,0 +1,8 @@
+md5 linux-4.19.145.tar.xz c835dd35194d950da9518c275768bb4a
+sha1 linux-4.19.145.tar.xz b8fb594a0c3a771551ba192d2ef97d070d9f9c9c
+sha256 linux-4.19.145.tar.xz 17bc834ff8f15aee45b7ca7c8b9d43b6b03111a43eb7de75c808a04f4b3ff6b7
+sha512 linux-4.19.145.tar.xz 7ff580607a343c1c4b112baa75aa6812c100ea85a338290a358f82df034783d1fa093078257b85f7a8c78faecafbe6fc1c1d8ac63a1437a23df8e1631a73e171
+md5 linux-4.19.145.tar.gz a52f317af8dcbd959492b3f08baa473b
+sha1 linux-4.19.145.tar.gz 1bc6fa5eeaf608a15a84da2f8f1512c3866214f3
+sha256 linux-4.19.145.tar.gz e69e96d058507b1812fb33cf831f79bce3053f57f83c2939a41a989d06bd1664
+sha512 linux-4.19.145.tar.gz b64b5750a5c019424554e89e57cc3e44e08cbd67df0737f25dec62371afac90ea6c89774c8b80468cea2cea24853405b315b2644d785747b0f4be4274c913b5a
diff --git a/packages/gcc/9.2.0/version.desc b/packages/linux/4.19.145/version.desc
index e69de29..e69de29 100644
--- a/packages/gcc/9.2.0/version.desc
+++ b/packages/linux/4.19.145/version.desc
diff --git a/packages/linux/4.4.214/chksum b/packages/linux/4.4.214/chksum
deleted file mode 100644
index 0422eec..0000000
--- a/packages/linux/4.4.214/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-4.4.214.tar.xz 2554c06f3c522bea41251b18884d62e8
-sha1 linux-4.4.214.tar.xz a859fe318e245aa2f723c26835f4e655fd16f847
-sha256 linux-4.4.214.tar.xz b6aa65ee2c0767864175e3a9cf7b0b3751263b04a7c8a6e760e9b982282fa76c
-sha512 linux-4.4.214.tar.xz 959112fe5f8ab8e6fe8c0e84ca47e5134967dc3f2cd64fbc940cdfcf4ccbfed3acf7aef60a9dd8eac1407ac3e87020630ad71efceced1d0bac1c1b75a62c49f2
-md5 linux-4.4.214.tar.gz 32bd03b0527dcfbaac2794a7a2461206
-sha1 linux-4.4.214.tar.gz d82f3b9777e0322c0413b1fe2028539eca9501e0
-sha256 linux-4.4.214.tar.gz dde034590830f8ba0d78e837379be801c387200beebc646f5f5008c5315adc0e
-sha512 linux-4.4.214.tar.gz de89a3b0fabf2e702625d8a786cd9cd086050f9057358b704078e9cb3876d5ce66cb86c94df55fc3344c3efa0a4b74498c9c5cff7c7be61729010ac693e5fd47
diff --git a/packages/linux/4.4.214/version.desc b/packages/linux/4.4.214/version.desc
deleted file mode 100644
index 7d5188f..0000000
--- a/packages/linux/4.4.214/version.desc
+++ /dev/null
@@ -1 +0,0 @@
-# Not obsolete: used by Ubuntu16.04, EOL 04/2021
diff --git a/packages/linux/4.4.236/chksum b/packages/linux/4.4.236/chksum
new file mode 100644
index 0000000..195a434
--- /dev/null
+++ b/packages/linux/4.4.236/chksum
@@ -0,0 +1,8 @@
+md5 linux-4.4.236.tar.xz 13da2c9272b0f388f4a5674173cb476c
+sha1 linux-4.4.236.tar.xz f7a59d5d413844f10b93fc982c44a969acfb6d96
+sha256 linux-4.4.236.tar.xz 0045d30d2c2776580593cf9876f9b109610a08870bf47889eb36b3d04de835ec
+sha512 linux-4.4.236.tar.xz 0a0bed3cf2dc0e269daabb5f51a6bd2a52e516aaea739da43fa1534a4683c4ff30d94e452b60b0d9db001626e25b45cdf22325873a8655d322c508d8e7655cc0
+md5 linux-4.4.236.tar.gz 32a6ccfeeccbe1838b99e7fd8ccaecb7
+sha1 linux-4.4.236.tar.gz ffe19b519a46fe4b9e2c096d205761508acf96c4
+sha256 linux-4.4.236.tar.gz 86ba4626decd4223f7e8840eb7998fcb1788ed75cf840ae0a4c76bd3f5c70814
+sha512 linux-4.4.236.tar.gz 35c0474950711f2e3de4821b490f412e77a5b27289a30af431392161aea302a74caed8d84738678d502b313d0c66a842cb26b89da7779191cada647a6f8df9e0
diff --git a/packages/gcc/8.3.0/version.desc b/packages/linux/4.4.236/version.desc
index e69de29..e69de29 100644
--- a/packages/gcc/8.3.0/version.desc
+++ b/packages/linux/4.4.236/version.desc
diff --git a/packages/linux/4.9.214/chksum b/packages/linux/4.9.214/chksum
deleted file mode 100644
index ad81509..0000000
--- a/packages/linux/4.9.214/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-4.9.214.tar.xz d0918e3ea80d03457a536b9b382df7f1
-sha1 linux-4.9.214.tar.xz 40fbbe2606f486223fd5cad15b9e7fd6d9845bac
-sha256 linux-4.9.214.tar.xz b47f093dac7034c7c4722e80042c05e4ef53c14a4f28aa992117a127d2b1e483
-sha512 linux-4.9.214.tar.xz bc11a45a0235e29647087c848ea660e0367f0ca6b6f360621a65f59d411aedfee14372116a7f3f105a9d12d057cea2bbda412d1df2afc17d28be0399057a2850
-md5 linux-4.9.214.tar.gz 5aa2edd29658d98b63a6d94797d24db2
-sha1 linux-4.9.214.tar.gz 21d7791562a919ba3a2b6d28b9d5fd267239b1b5
-sha256 linux-4.9.214.tar.gz b76e7d02ee1251cfc7b1577738f038f2d99813b02c8eca27f0671cdc6837f7be
-sha512 linux-4.9.214.tar.gz c54da65d1b6ccad76e9d4d42a18687ac29eee0be1febd5f1885c42666300b924f6751c9d98f8415c9c6e656bb836a436aa36562efe3c9ec719594484228521b8
diff --git a/packages/linux/4.9.236/chksum b/packages/linux/4.9.236/chksum
new file mode 100644
index 0000000..6f801ca
--- /dev/null
+++ b/packages/linux/4.9.236/chksum
@@ -0,0 +1,8 @@
+md5 linux-4.9.236.tar.xz bcf343abc0cee49a9cd8df0884be5bdf
+sha1 linux-4.9.236.tar.xz 58d3d987f9586a801bbc49e38d63173f9e1731c4
+sha256 linux-4.9.236.tar.xz e7e26082c17a2a9ca5cfcc4c69c9a1966e0e1c12aaef117ff798f8b52df842d5
+sha512 linux-4.9.236.tar.xz ecb1da8505600ef6ee83b12a995ae154b28f6e45cd25f820264f8bd37dff7ee2fc8debe36194931f445ed23266f55ee00f5e29ee71ff96a18591afa02c71bb18
+md5 linux-4.9.236.tar.gz 672f0f6cd9ea0bb2f9708928020e41d4
+sha1 linux-4.9.236.tar.gz 2ffed3924dfd634bd3cd5c1283f9ddc62c8372ee
+sha256 linux-4.9.236.tar.gz 5d440633e65a66e38e5278ef4a9a1992a80d112be52ab312e4a8e3117e51220c
+sha512 linux-4.9.236.tar.gz 1c3ace1cf5504776d8b2cb2530a0e8e30cc73a7f153f9beed5ebc61c6fd8edf8715fc8d25d8e9c0ce46d476b373aa854da0998eb2bc127b969311879387f4ed3
diff --git a/packages/linux/4.9.236/version.desc b/packages/linux/4.9.236/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/linux/4.9.236/version.desc
diff --git a/packages/linux/5.4.21/chksum b/packages/linux/5.4.21/chksum
deleted file mode 100644
index af8d65e..0000000
--- a/packages/linux/5.4.21/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-5.4.21.tar.xz 0c458def17ddd8e26795c343e15a3023
-sha1 linux-5.4.21.tar.xz 5bf514cbdb4a53279d65e4d5520be66800fe3323
-sha256 linux-5.4.21.tar.xz 6d23724e92c6a012a5cbb0deafdff81bdc03f6f9295e36259164cd431e465bfa
-sha512 linux-5.4.21.tar.xz 816e0acc3be5ab5614f573fea6749fb3e2bd260753f97129882455875b60faf2cf1bee949e5920e11a05052e8ea845a94a922ea6ab4e9097594b2f468bd8d75a
-md5 linux-5.4.21.tar.gz e404d1446058aa271f717f07d3fb9d90
-sha1 linux-5.4.21.tar.gz 340b5ab0f03673351c84d3f0813e815f8d50f6d9
-sha256 linux-5.4.21.tar.gz 04c762ba97963545cb459bb90bdc0fa42c65ef147d9182575c2c90bc671e31bf
-sha512 linux-5.4.21.tar.gz 681d3b68543778326d836194963b7dea55b525175f2ee74825e6e050c9bb7fb345cdb894f2ac226d7330d8cdb375d7f8d2184b3bccd5e09591f3c30372383d51
diff --git a/packages/linux/5.4.65/chksum b/packages/linux/5.4.65/chksum
new file mode 100644
index 0000000..cef75fa
--- /dev/null
+++ b/packages/linux/5.4.65/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.4.65.tar.xz 1e3727bd3201b68ad1c52e776b35a070
+sha1 linux-5.4.65.tar.xz 7a0125aed47c0d713771d9f3326866283668a770
+sha256 linux-5.4.65.tar.xz f514834417d09de1667836e443e085bf37952603f23572b69ef0fcfda16cac69
+sha512 linux-5.4.65.tar.xz f457e7cf3f1a241a187ab8251238e0fad5308ca0f30623908ddaead32041797db02438a4a926c73b504774516db400e9c95427f4f24f60efbde65bb9e7926f0f
+md5 linux-5.4.65.tar.gz a3672b041891795582f646f541b04aca
+sha1 linux-5.4.65.tar.gz 24aefcb353c08bd62efd9876beba4c48eee2b6f6
+sha256 linux-5.4.65.tar.gz d0297df61fce7ef03878c37755c82b9796e338e7dc57326aef430f4e3bba2a91
+sha512 linux-5.4.65.tar.gz 24d5e44743963cc5296c82c90a4b108d30516cf6cf49cc2df63157d73f17b482a334b9f12a294c0dd8d93e871f3e12b2402a1bd92ca6f5738d941dff5436679a
diff --git a/packages/linux/5.4.65/version.desc b/packages/linux/5.4.65/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/linux/5.4.65/version.desc
diff --git a/packages/linux/5.5.19/version.desc b/packages/linux/5.5.19/version.desc
new file mode 100644
index 0000000..fcfe389
--- /dev/null
+++ b/packages/linux/5.5.19/version.desc
@@ -0,0 +1 @@
+obsolete='yes'
diff --git a/packages/linux/5.5.5/chksum b/packages/linux/5.5.5/chksum
deleted file mode 100644
index 31285ac..0000000
--- a/packages/linux/5.5.5/chksum
+++ /dev/null
@@ -1,8 +0,0 @@
-md5 linux-5.5.5.tar.xz 3901498f9d38e355bc2670eb3f05a160
-sha1 linux-5.5.5.tar.xz 3dd7fe170c84a342ad1db8ae6742276e2eb88303
-sha256 linux-5.5.5.tar.xz 7ac07bc03f2d159f924d25a79df07d1a115a13f44f67455511d3c84c15ac5087
-sha512 linux-5.5.5.tar.xz 2d0ed596509546169d0e0d46c23e10920e6b565178e044fe57b68b7ff0ec5c613bb090105affc74e5bcacda36f8c8a49c269017e90dd7145f58e9359707f35d1
-md5 linux-5.5.5.tar.gz f464a9459ab811ede1e4eded51e5b53d
-sha1 linux-5.5.5.tar.gz 38903c3b13e79f5ef07330f1e87b0e67434fdfa7
-sha256 linux-5.5.5.tar.gz 2c5de9dc0ae49d6d5550e4007ffc6c3aec193666c1299fce2b05659f5a109eac
-sha512 linux-5.5.5.tar.gz 023c5ddd1e23961eb430a31470b75c0cb64ab8f0c8e845d76f7e4cfee40d0925e8122c243d3f2a5d7696b74a07f6dba36d9ffea57c9471d066adb11fb5a046e4
diff --git a/packages/linux/5.7.19/chksum b/packages/linux/5.7.19/chksum
new file mode 100644
index 0000000..dd81db8
--- /dev/null
+++ b/packages/linux/5.7.19/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.7.19.tar.xz 26f64bad4296bb070e46bae24f2e8713
+sha1 linux-5.7.19.tar.xz a972ee68c001375964bf65a35902bc5bc3a9e366
+sha256 linux-5.7.19.tar.xz 419c6248b9ae4dfead4599787aecbfd202e88bc4124523adfa6dd2d642b99fe7
+sha512 linux-5.7.19.tar.xz c64aacd11f90dd1fb4f163ba3757ba52543c8a3c3932b9600109ad2b8ac97c8819d430067266e1e347998b5e9df92f7c0f1945a73142442ba5bccd41439a4988
+md5 linux-5.7.19.tar.gz 8bc4d451a97ae85dcaa7e683f548dcae
+sha1 linux-5.7.19.tar.gz e7eac82a45cdfa58d65ae7a39849e0a1bcec5051
+sha256 linux-5.7.19.tar.gz 9a139aef7e45e3688b3e903ff4182d6932b23ac8432cd84e73c617f303ed7693
+sha512 linux-5.7.19.tar.gz e02fb17833894cf0fee96631c56ebb177e260b36dffe763cb9c908b560f7ff1fb657c1e6a5efdbd999f0061002f4a78d68069fa58d19ee877806b32cf828e573
diff --git a/packages/linux/5.7.19/version.desc b/packages/linux/5.7.19/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/linux/5.7.19/version.desc
diff --git a/packages/linux/5.8.9/chksum b/packages/linux/5.8.9/chksum
new file mode 100644
index 0000000..420c9a4
--- /dev/null
+++ b/packages/linux/5.8.9/chksum
@@ -0,0 +1,8 @@
+md5 linux-5.8.9.tar.xz 4d8b8af44c9d342624c036428da09ab6
+sha1 linux-5.8.9.tar.xz ff381e456d4aef6fafb8fbd82d5b00fbd4f0af0e
+sha256 linux-5.8.9.tar.xz 99d8bc1b82f17d7d79f9af4a94af4c0e3772159e9e6e278761bde8569f93e15f
+sha512 linux-5.8.9.tar.xz d3a3a494a5ddc258d6e8eaf92eeb8957ca94ecc8657157c0647369772630848d3fb3633133fd184cc020a148b659d95a6e3d850d435c64ffa55e2f5156687220
+md5 linux-5.8.9.tar.gz 7ee53df4428f7cb7fbac6fe3170cbfd8
+sha1 linux-5.8.9.tar.gz d02642a438ae7ec9285fd8b8c6e0df4938c9c2ef
+sha256 linux-5.8.9.tar.gz 3d827ae02d2e8dae7b04bd901a888479a3807ac00ea827d1896c7a2e0672dc31
+sha512 linux-5.8.9.tar.gz 0f786eeca9f6510d84244c2f78113dd7b90ed3ee9e5d440efc3ec6944afc6e46d37f7687f3ba26767680e9198406d2abe468645d86e64578d6a9cbe036f43dd7
diff --git a/packages/linux/5.8.9/version.desc b/packages/linux/5.8.9/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/linux/5.8.9/version.desc
diff --git a/packages/mpc/1.2.0/chksum b/packages/mpc/1.2.0/chksum
new file mode 100644
index 0000000..a1a5a71
--- /dev/null
+++ b/packages/mpc/1.2.0/chksum
@@ -0,0 +1,4 @@
+md5 mpc-1.2.0.tar.gz 2f1ce56ac775f2be090863f364931a03
+sha1 mpc-1.2.0.tar.gz 0abdc94acab0c9bfdaa391347cdfd7bbdb1cf017
+sha256 mpc-1.2.0.tar.gz e90f2d99553a9c19911abdb4305bf8217106a957e3994436428572c8dfe8fda6
+sha512 mpc-1.2.0.tar.gz 84fa3338f51d369111456a63ad040256a1beb70699e21e2a932c779aa1c3bd08b201412c1659ecbb58403ea0548faacc35996d94f88f0639549269b7563c61b7
diff --git a/packages/mpc/1.2.0/version.desc b/packages/mpc/1.2.0/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/mpc/1.2.0/version.desc
diff --git a/packages/mpfr/4.1.0/chksum b/packages/mpfr/4.1.0/chksum
new file mode 100644
index 0000000..dce9309
--- /dev/null
+++ b/packages/mpfr/4.1.0/chksum
@@ -0,0 +1,16 @@
+md5 mpfr-4.1.0.tar.xz bdd3d5efba9c17da8d83a35ec552baef
+sha1 mpfr-4.1.0.tar.xz 159c3a58705662bfde4dc93f2617f3660855ead6
+sha256 mpfr-4.1.0.tar.xz 0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f
+sha512 mpfr-4.1.0.tar.xz 1bd1c349741a6529dfa53af4f0da8d49254b164ece8a46928cdb13a99460285622d57fe6f68cef19c6727b3f9daa25ddb3d7d65c201c8f387e421c7f7bee6273
+md5 mpfr-4.1.0.tar.bz2 44b892bc5a45bafb4294d134e13aad1d
+sha1 mpfr-4.1.0.tar.bz2 877d35a8a81a4d2d9446252e9b4ae944754d8ceb
+sha256 mpfr-4.1.0.tar.bz2 feced2d430dd5a97805fa289fed3fc8ff2b094c02d05287fd6133e7f1f0ec926
+sha512 mpfr-4.1.0.tar.bz2 410208ee0d48474c1c10d3d4a59decd2dfa187064183b09358ec4c4666e34d74383128436b404123b831e585d81a9176b24c7ced9d913967c5fce35d4040a0b4
+md5 mpfr-4.1.0.tar.gz 81a97a9ba03590f83a30d26d4400ce39
+sha1 mpfr-4.1.0.tar.gz 154a34083cb3a114ed9e687afafea38aa38c8737
+sha256 mpfr-4.1.0.tar.gz 3127fe813218f3a1f0adf4e8899de23df33b4cf4b4b3831a5314f78e65ffa2d6
+sha512 mpfr-4.1.0.tar.gz 52406bf2429864daf1a2f644bdee2eb4556653070cbea63a6f5e58793e55c3a6a12b2fe3878f21ad3866bb7ce051a1a88b684619b7299db1e5e380be1f977fcb
+md5 mpfr-4.1.0.zip 0f5090db1145afbcb0615ee4a6c987cc
+sha1 mpfr-4.1.0.zip a48d9e5866a1549ee29835ffff7cac7e488ff0dc
+sha256 mpfr-4.1.0.zip 7cc03bcb6db6e7b0f1f8aa5c9c704155b74ba69af139e9b1e859b905618cf88b
+sha512 mpfr-4.1.0.zip eb685b6c13438dfd892eee303df416df2800fdbd49e2a57c6c499129e4d1a8c131f6afc9bd872d7a00244ef211c4419b5057bef6b0521eb956f92d520ace9c1c
diff --git a/packages/mpfr/4.1.0/version.desc b/packages/mpfr/4.1.0/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/mpfr/4.1.0/version.desc
diff --git a/packages/musl/1.2.1/chksum b/packages/musl/1.2.1/chksum
new file mode 100644
index 0000000..1861bde
--- /dev/null
+++ b/packages/musl/1.2.1/chksum
@@ -0,0 +1,4 @@
+md5 musl-1.2.1.tar.gz 2720bdbed739e94c4d7acdc91c0cd9d6
+sha1 musl-1.2.1.tar.gz 031062cf1a3c3e81e3dbae5ad2edbeff02ca198f
+sha256 musl-1.2.1.tar.gz 68af6e18539f646f9c41a3a2bb25be4a5cfa5a8f65f0bb647fd2bbfdf877e84b
+sha512 musl-1.2.1.tar.gz 455464ef47108a78457291bda2b1ea574987a1787f6001e9376956f20521593a4816bc215dab41c1a80292ae7ebd315accb4d4fa6a1210ff77d9a4d68239e960 \ No newline at end of file
diff --git a/packages/musl/1.2.1/version.desc b/packages/musl/1.2.1/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/musl/1.2.1/version.desc
diff --git a/packages/picolibc/1.4.7/chksum b/packages/picolibc/1.4.7/chksum
new file mode 100644
index 0000000..9dc793d
--- /dev/null
+++ b/packages/picolibc/1.4.7/chksum
@@ -0,0 +1,4 @@
+md5 1.4.7.tar.gz a70f6b9690ca5e8ea4af4ed5c10e73c2
+sha1 1.4.7.tar.gz 9bff47dce0a1f01ff7f1a16669dc0851bcc76d11
+sha256 1.4.7.tar.gz c46d37bbdea6eb1eb658f67d05c8c37f2b7e768e54f4d0b4312da9326c0cd92e
+sha512 1.4.7.tar.gz 882e1ce682b084044efa5d2775498168fb0aa49bf5d5a76bc4b47a29ffcc03371e2602ed892e80e8801c2a6a4de340c1ddf0bc963f7b5c53d8c4c4e4a477d9c7
diff --git a/packages/picolibc/1.4.7/version.desc b/packages/picolibc/1.4.7/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/picolibc/1.4.7/version.desc
diff --git a/packages/picolibc/package.desc b/packages/picolibc/package.desc
new file mode 100644
index 0000000..6b3ec29
--- /dev/null
+++ b/packages/picolibc/package.desc
@@ -0,0 +1,7 @@
+origin='keithp.com'
+repository='git https://github.com/keith-packard/picolibc.git'
+milestones='1.4.7'
+archive_filename='@{version}'
+relevantpattern='*.*|.*. *.*|.'
+archive_formats='.tar.gz'
+mirrors='https://github.com/keith-packard/picolibc/archive'
diff --git a/packages/strace/5.6/chksum b/packages/strace/5.6/chksum
new file mode 100644
index 0000000..b901d63
--- /dev/null
+++ b/packages/strace/5.6/chksum
@@ -0,0 +1,4 @@
+md5 strace-5.6.tar.xz f8e0394d4e537b3faadf0a72f5d1d17e
+sha1 strace-5.6.tar.xz 03e0de09e76964c366c85d2af1b6955f626b477d
+sha256 strace-5.6.tar.xz 189968eeae06ed9e20166ec55a830943c84374676a457c9fe010edc7541f1b01
+sha512 strace-5.6.tar.xz 58c8a250e55a018206bee9468ea057c087d5d5bb523339ea3c01e0a19d8f84c95bd1398d66a6dca6ada45c6535aa44b776713a2bb080eebaa734ffb926ac5b38
diff --git a/packages/strace/5.6/version.desc b/packages/strace/5.6/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/strace/5.6/version.desc
diff --git a/packages/strace/5.7/chksum b/packages/strace/5.7/chksum
new file mode 100644
index 0000000..9af689a
--- /dev/null
+++ b/packages/strace/5.7/chksum
@@ -0,0 +1,4 @@
+md5 strace-5.7.tar.xz 8c35b8ebf187b2ec18209bd7bbd16e7a
+sha1 strace-5.7.tar.xz 95c9d5aa664982d53ce1e5ab058d8fb73e200f0c
+sha256 strace-5.7.tar.xz b284b59f9bcd95b9728cea5bd5c0edc5ebe360af73dc76fbf6334f11c777ccd8
+sha512 strace-5.7.tar.xz aef481238196204495cf9507cd48ce30af799f79904478e6be57a267311a999c868f18540cc1e025f5e486730cfe9ccb256f528f6f796d204a7347ebdf2042f1
diff --git a/packages/strace/5.7/version.desc b/packages/strace/5.7/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/strace/5.7/version.desc
diff --git a/packages/strace/5.8/chksum b/packages/strace/5.8/chksum
new file mode 100644
index 0000000..1189a84
--- /dev/null
+++ b/packages/strace/5.8/chksum
@@ -0,0 +1,4 @@
+md5 strace-5.8.tar.xz 1a808c5917f0d91169e377c90faee6dd
+sha1 strace-5.8.tar.xz 0e60844b68a6097d46053488facbd3c40484af27
+sha256 strace-5.8.tar.xz df4a669f7fff9cc302784085bd4b72fab216a426a3f72c892b28a537b71e7aa9
+sha512 strace-5.8.tar.xz 633c3daa2dd3d273839cbb8ebd7f6512a38b39af0d0d89f4676c2067e199f346615406d85e3e13f9e4da8dbeb62095185895ffae986eb99b64775a4287e38f4c
diff --git a/packages/strace/5.8/version.desc b/packages/strace/5.8/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/strace/5.8/version.desc
diff --git a/packages/uClibc-ng/1.0.36/chksum b/packages/uClibc-ng/1.0.36/chksum
new file mode 100644
index 0000000..b288c0f
--- /dev/null
+++ b/packages/uClibc-ng/1.0.36/chksum
@@ -0,0 +1,16 @@
+md5 uClibc-ng-1.0.36.tar.xz 55dff1819802be0c904859b236ede788
+sha1 uClibc-ng-1.0.36.tar.xz f10b42de12b7580365ca838648a3157b0688df0e
+sha256 uClibc-ng-1.0.36.tar.xz 010f40841669809422e01b47e7169d49c61bf3382f493c2571a8a96634ed300c
+sha512 uClibc-ng-1.0.36.tar.xz 146d4f7c5c6e1fe6c238d24c2976e0823cd6f92b23275f4ab8fb6e576604c1fbdd776abf94e95dd7bad6faccd1b28a5a7db4d47c3ccacc09d9ff47bc68924bf1
+md5 uClibc-ng-1.0.36.tar.lz 2c33e546cd89f024563c360656c736b2
+sha1 uClibc-ng-1.0.36.tar.lz 8bb38e98d4c117e80d5cd5e0772299cacdcc643b
+sha256 uClibc-ng-1.0.36.tar.lz 829ddda2b0ee13fb6215a5e6e692c351863914c5c76d78ae6c774c5d752588f4
+sha512 uClibc-ng-1.0.36.tar.lz 45bcb2063c1eeffaa8696a5f0ca5fa5c1027c12788bc8c392ba2fc2062a6bf1cdf2ccd11fd442c3e972b3ea8970fc9092f674f85e54af79c9206daf7f275373a
+md5 uClibc-ng-1.0.36.tar.bz2 f80f5b55bd54f940b92cbb348d814b7e
+sha1 uClibc-ng-1.0.36.tar.bz2 8c376baa70cd21c14b3d1de4cfc80dea4cc5ebaa
+sha256 uClibc-ng-1.0.36.tar.bz2 51773da15df29a4e01d38434efaa43c7d88ad4a6de8255e1f74d7d934b766857
+sha512 uClibc-ng-1.0.36.tar.bz2 45238e58d596c56c3a5a3fe4ce775cd1ba3104dc28ba72c485495dc6a3f8af4ae78ee1925b4a704f464700713583ce3222cb1bcd26b678e8980b45a7d4019a57
+md5 uClibc-ng-1.0.36.tar.gz 9ec464c6ea426926fff08bf6c8d73b6f
+sha1 uClibc-ng-1.0.36.tar.gz 094b6164e2637df370f3f7b621013c86261876a4
+sha256 uClibc-ng-1.0.36.tar.gz 507ce61cc44698f607daa10b7d6bf7f7ea1a97047289194349de6f8d4bf8e1bc
+sha512 uClibc-ng-1.0.36.tar.gz 43163b0455c2fafbd508197b94c2d15ad72da78544742925f7b308c7da72a100bfab27c6dc0d074736289725a63f1f95b9bc6cacf2879ba73e8505cfed859873
diff --git a/packages/uClibc-ng/1.0.36/version.desc b/packages/uClibc-ng/1.0.36/version.desc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/packages/uClibc-ng/1.0.36/version.desc
diff --git a/packages/zlib/1.2.11/0003-crossbuild-macos-libtool.patch b/packages/zlib/1.2.11/0003-crossbuild-macos-libtool.patch
new file mode 100644
index 0000000..e04f65d
--- /dev/null
+++ b/packages/zlib/1.2.11/0003-crossbuild-macos-libtool.patch
@@ -0,0 +1,34 @@
+commit 1f6bc557ec5c90eced96ae81ff1d443ee5770993
+Author: Heiko Lewin <heiko.lewin@worldiety.de>
+Date: Fri May 22 03:32:33 2020 +0200
+
+ configure: use LIBTOOL variable for Darwin builds
+
+diff --git a/configure b/configure
+index e974d1f..0c88bf9 100755
+--- a/configure
++++ b/configure
+@@ -66,6 +66,12 @@ if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+ 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"}
+@@ -241,8 +247,8 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
+ 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/samples/arm-picolibc-eabi/crosstool.config b/samples/arm-picolibc-eabi/crosstool.config
new file mode 100644
index 0000000..7f7d42a
--- /dev/null
+++ b/samples/arm-picolibc-eabi/crosstool.config
@@ -0,0 +1,12 @@
+CT_CONFIG_VERSION="3"
+CT_ARCH_ARM=y
+CT_MULTILIB=y
+CT_ARCH_FLOAT_SW=y
+CT_TARGET_VENDOR="picolibc"
+CT_CC_LANG_CXX=n
+CT_LIBC="picolibc"
+CT_LIBC_NEWLIB=n
+CT_LIBC_PICOLIBC=y
+CT_CC_GCC_CONFIG_TLS=y
+CT_TARGET_CFLAGS="-ftls-model=local-exec"
+CT_CC_GCC_MULTILIB_LIST="rmprofile"
diff --git a/samples/arm-picolibc-eabi/reported.by b/samples/arm-picolibc-eabi/reported.by
new file mode 100644
index 0000000..b3bfb49
--- /dev/null
+++ b/samples/arm-picolibc-eabi/reported.by
@@ -0,0 +1,3 @@
+reporter_name="Keith Packard"
+reporter_url="http://keithp.com/"
+reporter_comment="Based on arm-unknown-eabi"
diff --git a/samples/mips64-unknown-linux-gnu/crosstool.config b/samples/mips64-unknown-linux-gnu/crosstool.config
new file mode 100644
index 0000000..a33fd90
--- /dev/null
+++ b/samples/mips64-unknown-linux-gnu/crosstool.config
@@ -0,0 +1,7 @@
+CT_CONFIG_VERSION="3"
+CT_ARCH_MIPS=y
+CT_ARCH_mips_n64=y
+CT_ARCH_64=y
+CT_ARCH_FLOAT_HW=y
+CT_KERNEL_LINUX=y
+CT_CC_LANG_CXX=y
diff --git a/samples/mips64-unknown-linux-gnu/reported.by b/samples/mips64-unknown-linux-gnu/reported.by
new file mode 100644
index 0000000..41eaaff
--- /dev/null
+++ b/samples/mips64-unknown-linux-gnu/reported.by
@@ -0,0 +1,3 @@
+reporter_name="Chris Packham"
+reporter_url=""
+reporter_comment="Big-endian configuration for MIPS/glibc."
diff --git a/samples/s390-ibm-linux-gnu/crosstool.config b/samples/s390-ibm-linux-gnu/crosstool.config
index bf6fbe0..06fb9f6 100644
--- a/samples/s390-ibm-linux-gnu/crosstool.config
+++ b/samples/s390-ibm-linux-gnu/crosstool.config
@@ -1,6 +1,7 @@
CT_CONFIG_VERSION="3"
CT_EXPERIMENTAL=y
CT_ARCH_S390=y
+CT_TARGET_VENDOR="ibm"
CT_KERNEL_LINUX=y
CT_BINUTILS_PLUGINS=y
CT_CC_LANG_CXX=y
diff --git a/samples/s390-unknown-linux-gnu/crosstool.config b/samples/s390-unknown-linux-gnu/crosstool.config
new file mode 100644
index 0000000..bf6fbe0
--- /dev/null
+++ b/samples/s390-unknown-linux-gnu/crosstool.config
@@ -0,0 +1,6 @@
+CT_CONFIG_VERSION="3"
+CT_EXPERIMENTAL=y
+CT_ARCH_S390=y
+CT_KERNEL_LINUX=y
+CT_BINUTILS_PLUGINS=y
+CT_CC_LANG_CXX=y
diff --git a/samples/s390-unknown-linux-gnu/reported.by b/samples/s390-unknown-linux-gnu/reported.by
new file mode 100644
index 0000000..6fb7272
--- /dev/null
+++ b/samples/s390-unknown-linux-gnu/reported.by
@@ -0,0 +1,3 @@
+reporter_name="Pradipta Ghosh"
+reporter_url="https://github.com/pradghos/crosstool-ng"
+reporter_comment="reference samples s390-ibm-linux-gnu"
diff --git a/samples/s390x-ibm-linux-gnu/crosstool.config b/samples/s390x-ibm-linux-gnu/crosstool.config
index 55b1622..8b4bb08 100644
--- a/samples/s390x-ibm-linux-gnu/crosstool.config
+++ b/samples/s390x-ibm-linux-gnu/crosstool.config
@@ -1,6 +1,7 @@
CT_CONFIG_VERSION="3"
CT_ARCH_S390=y
CT_ARCH_64=y
+CT_TARGET_VENDOR="ibm"
CT_KERNEL_LINUX=y
CT_BINUTILS_PLUGINS=y
CT_CC_LANG_CXX=y
diff --git a/samples/s390x-unknown-linux-gnu/crosstool.config b/samples/s390x-unknown-linux-gnu/crosstool.config
new file mode 100644
index 0000000..55b1622
--- /dev/null
+++ b/samples/s390x-unknown-linux-gnu/crosstool.config
@@ -0,0 +1,6 @@
+CT_CONFIG_VERSION="3"
+CT_ARCH_S390=y
+CT_ARCH_64=y
+CT_KERNEL_LINUX=y
+CT_BINUTILS_PLUGINS=y
+CT_CC_LANG_CXX=y
diff --git a/samples/s390x-unknown-linux-gnu/reported.by b/samples/s390x-unknown-linux-gnu/reported.by
new file mode 100644
index 0000000..7ac1e07
--- /dev/null
+++ b/samples/s390x-unknown-linux-gnu/reported.by
@@ -0,0 +1,3 @@
+reporter_name="Pradipta Ghosh"
+reporter_url="https://github.com/pradghos/crosstool-ng"
+reporter_comment="reference samples s390x-ibm-linux-gnu"
diff --git a/scripts/build/arch/arm.sh b/scripts/build/arch/arm.sh
index 4873df1..9a53bc4 100644
--- a/scripts/build/arch/arm.sh
+++ b/scripts/build/arch/arm.sh
@@ -70,6 +70,7 @@ CT_DoArchUClibcConfig() {
;;
thumb)
CT_KconfigEnableOption "COMPILE_IN_THUMB_MODE" "${cfg}"
+ CT_KconfigDisableOption "UCLIBC_HAS_CONTEXT_FUNCS" "${cfg}"
;;
esac
# FIXME: CONFIG_ARM_OABI does not exist in neither uClibc/uClibc-ng
diff --git a/scripts/build/arch/powerpc.sh b/scripts/build/arch/powerpc.sh
index 36a727a..85c64d1 100644
--- a/scripts/build/arch/powerpc.sh
+++ b/scripts/build/arch/powerpc.sh
@@ -7,12 +7,12 @@ CT_DoArchTupleValues () {
# Only override values when ABI is not the default
case "${CT_ARCH_powerpc_ABI}" in
eabi)
- # EABI is only for bare-metal, so libc ∈ [none,newlib]
+ # EABI is only for bare-metal, so libc ∈ [none,newlib,picolibc]
CT_TARGET_SYS="eabi"
;;
spe)
case "${CT_LIBC}" in
- none|newlib) CT_TARGET_SYS="elfspe";;
+ none|newlib|picolibc) CT_TARGET_SYS="elfspe";;
*glibc) CT_TARGET_SYS="gnuspe";;
uClibc) CT_TARGET_SYS="uclibcgnuspe";;
esac
diff --git a/scripts/build/binutils/binutils.sh b/scripts/build/binutils/binutils.sh
index a79bb7e..428a341 100644
--- a/scripts/build/binutils/binutils.sh
+++ b/scripts/build/binutils/binutils.sh
@@ -177,6 +177,10 @@ do_binutils_backend() {
[ "${CT_TOOLCHAIN_ENABLE_NLS}" != "y" ] && extra_config+=("--disable-nls")
+ # Disable usage of glob for higher compatibility.
+ # Not strictly needed for anything but GDB anyways.
+ export ac_cv_func_glob=no
+
CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
CT_DoExecLog CFG \
diff --git a/scripts/build/companion_tools/100-m4.sh b/scripts/build/companion_tools/100-m4.sh
index 4bbe8d3..7d9044f 100644
--- a/scripts/build/companion_tools/100-m4.sh
+++ b/scripts/build/companion_tools/100-m4.sh
@@ -42,6 +42,7 @@ do_m4_backend()
local prefix
local cflags
local ldflags
+ local libs
for arg in "$@"; do
eval "${arg// /\\ }"
@@ -54,12 +55,19 @@ do_m4_backend()
# it includes system <spawn.h> but expects a locally-built
# posix_spawn().
ldflags="${ldflags} -lrt"
+ ;;
+ *-mingw32)
+ # m4 is built with stack smashing protection enabled which
+ # is not part of mingw-w64 c library in v7.0.0 and later.
+ libs="${libs} -lssp"
+ ;;
esac
CT_DoLog EXTRA "Configuring m4"
CT_DoExecLog CFG \
CFLAGS="${cflags}" \
LDFLAGS="${ldflags}" \
+ LIBS="${libs}" \
${CONFIG_SHELL} \
"${CT_SRC_DIR}/m4/configure" \
--host="${host}" \
diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh
index 9139331..b0ea29b 100644
--- a/scripts/build/debug/300-gdb.sh
+++ b/scripts/build/debug/300-gdb.sh
@@ -146,7 +146,7 @@ do_debug_gdb_build()
cflags="${CT_ALL_TARGET_CFLAGS}" \
ldflags="${CT_ALL_TARGET_LDFLAGS}" \
static="${CT_GDB_NATIVE_STATIC}" \
- static_libstdc="${CT_GDB_NATIVE_STATIC_LIBSTDC}" \
+ static_libstdcxx="${CT_GDB_NATIVE_STATIC_LIBSTDCXX}" \
prefix=/usr \
destdir="${CT_DEBUGROOT_DIR}" \
"${native_extra_config[@]}"
@@ -236,7 +236,8 @@ do_gdb_backend()
cflags+=" -static"
ldflags+=" -static"
fi
- if [ "${static_libstdc}" = "y" ]; then
+ if [ "${static_libstdcxx}" = "y" ]; then
+ ldflags+=" -static-libgcc"
ldflags+=" -static-libstdc++"
fi
diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh
index 31fa067..ba6e548 100644
--- a/scripts/build/libc/glibc.sh
+++ b/scripts/build/libc/glibc.sh
@@ -314,6 +314,8 @@ glibc_backend_once()
;;
esac
+ # Make sure glibc build system respects our provided CFLAGS.
+ extra_make_args+=( default_cflags= )
extra_make_args+=( "BUILD_CFLAGS=${build_cflags}" )
extra_make_args+=( "BUILD_CPPFLAGS=${build_cppflags}" )
extra_make_args+=( "BUILD_LDFLAGS=${build_ldflags}" )
diff --git a/scripts/build/libc/picolibc.sh b/scripts/build/libc/picolibc.sh
new file mode 100644
index 0000000..152125c
--- /dev/null
+++ b/scripts/build/libc/picolibc.sh
@@ -0,0 +1,111 @@
+# This file adds functions to build the Picolibc library
+# Copyright © 2020 Keith Packard
+# Licensed under the GPL v2 or later. See COPYING in the root of this package
+#
+# Edited by Keith Packard <keithp@keithp.com>
+#
+
+picolibc_start_files()
+{
+ CT_DoStep INFO "Installing C library headers & start files"
+ CT_DoExecLog ALL cp -a "${CT_SRC_DIR}/picolibc/newlib/libc/include/." \
+ "${CT_HEADERS_DIR}"
+ CT_EndStep
+}
+
+picolibc_main()
+{
+ local -a picolibc_opts
+ local cflags_for_target
+
+ CT_DoStep INFO "Installing C library"
+
+ CT_mkdir_pushd "${CT_BUILD_DIR}/build-libc"
+
+ CT_DoLog EXTRA "Configuring Picolibc library"
+
+ # Multilib is the default, so if it is not enabled, disable it.
+ if [ "${CT_MULTILIB}" != "y" ]; then
+ picolibc_opts+=("-Dmultilib=false")
+ fi
+
+ yn_args="IO_C99FMT:io-c99-formats
+IO_LL:io-long-long
+REGISTER_FINI:newlib-register-fini
+NANO_MALLOC:newlib-nano-malloc
+ATEXIT_DYNAMIC_ALLOC:newlib-atexit-dynamic-alloc
+GLOBAL_ATEXIT:newlib-global-atexit
+LITE_EXIT:lite-exit
+MULTITHREAD:newlib-multithread
+RETARGETABLE_LOCKING:newlib-retargetable-locking
+ "
+
+ for ynarg in $yn_args; do
+ var="CT_LIBC_PICOLIBC_${ynarg%:*}"
+ eval var=\$${var}
+ argument=${ynarg#*:}
+
+
+ if [ "${var}" = "y" ]; then
+ picolibc_opts+=( "-D$argument=true" )
+ else
+ picolibc_opts+=( "-D$argument=false" )
+ fi
+ done
+
+ [ "${CT_USE_SYSROOT}" = "y" ] && \
+ picolibc_opts+=( "-Dsysroot-install=true" )
+
+ [ "${CT_LIBC_PICOLIBC_EXTRA_SECTIONS}" = "y" ] && \
+ CT_LIBC_PICOLIBC_TARGET_CFLAGS="${CT_LIBC_PICOLIBC_TARGET_CFLAGS} -ffunction-sections -fdata-sections"
+
+ [ "${CT_LIBC_PICOLIBC_LTO}" = "y" ] && \
+ CT_LIBC_PICOLIBC_TARGET_CFLAGS="${CT_LIBC_PICOLIBC_TARGET_CFLAGS} -flto"
+
+ cflags_for_target="${CT_ALL_TARGET_CFLAGS} ${CT_LIBC_PICOLIBC_TARGET_CFLAGS}"
+
+ # Note: picolibc handles the build/host/target a little bit differently
+ # than one would expect:
+ # build : not used
+ # host : the machine building picolibc
+ # target : the machine picolibc runs on
+ meson_cflags=""
+ for cflag in ${cflags_for_target}; do
+ meson_cflags="${meson_cflags} '${cflag}',"
+ done
+ cat << EOF > picolibc-cross.txt
+[binaries]
+c = '${CT_TARGET}-gcc'
+ar = '${CT_TARGET}-ar'
+as = '${CT_TARGET}-as'
+strip = '${CT_TARGET}-strip'
+
+[host_machine]
+system = '${CT_TARGET_VENDOR}'
+cpu_family = '${CT_TARGET_ARCH}'
+cpu = '${CT_TARGET_ARCH}'
+endian = '${CT_ARCH_ENDIAN}'
+
+[properties]
+c_args = [ ${meson_cflags} '-nostdlib', '-fno-common', '-ftls-model=local-exec' ]
+needs_exe_wrapper = true
+skip_sanity_check = true
+EOF
+ CT_DoExecLog CFG \
+ meson \
+ --cross-file picolibc-cross.txt \
+ --prefix=${CT_SYSROOT_DIR} \
+ -Dspecsdir=${CT_SYSROOT_DIR}/lib \
+ "${CT_SRC_DIR}/picolibc" \
+ "${picolibc_opts[@]}" \
+ "${CT_LIBC_PICOLIBC_EXTRA_CONFIG_ARRAY[@]}"
+
+ CT_DoLog EXTRA "Building C library"
+ CT_DoExecLog ALL ninja
+
+ CT_DoLog EXTRA "Installing C library"
+ CT_DoExecLog ALL ninja install
+
+ CT_Popd
+ CT_EndStep
+}
diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh
index 5c04b32..4328542 100644
--- a/scripts/build/libc/uClibc.sh
+++ b/scripts/build/libc/uClibc.sh
@@ -303,7 +303,6 @@ manage_uClibc_config()
CT_KconfigEnableOption "UCLIBC_HAS_LOCALE" "${dst}"
CT_KconfigDeleteOption "UCLIBC_PREGENERATED_LOCALE_DATA" "${dst}"
CT_KconfigDeleteOption "UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA" "${dst}"
- CT_KconfigDeleteOption "UCLIBC_HAS_XLOCALE" "${dst}"
fi
# WCHAR support
diff --git a/scripts/config.guess b/scripts/config.guess
index a81aa50..183eb2a 100755
--- a/scripts/config.guess
+++ b/scripts/config.guess
@@ -1041,7 +1041,7 @@ EOF
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
exit ;;
sh64*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
diff --git a/scripts/config.sub b/scripts/config.sub
index 3b4c762..36df2c8 100755
--- a/scripts/config.sub
+++ b/scripts/config.sub
@@ -1139,14 +1139,6 @@ case $cpu-$vendor in
cpu=nsx
vendor=tandem
;;
- s390-*)
- cpu=s390
- vendor=ibm
- ;;
- s390x-*)
- cpu=s390x
- vendor=ibm
- ;;
tile*-*)
os=${os:-linux-gnu}
;;
@@ -1238,6 +1230,7 @@ case $cpu-$vendor in
| sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
| spu \
+ | s390 | s390x \
| tahoe \
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
| tron \
diff --git a/scripts/crosstool-NG.sh b/scripts/crosstool-NG.sh
index 14be5ed..f09ae0c 100644
--- a/scripts/crosstool-NG.sh
+++ b/scripts/crosstool-NG.sh
@@ -437,7 +437,7 @@ if [ -z "${CT_RESTART}" ]; then
t="${!r}-"
fi
- for tool in ar as dlltool gcc g++ gcj gnatbind gnatmake ld nm objcopy objdump ranlib strip windres; do
+ for tool in ar as dlltool gcc g++ gcj gnatbind gnatmake ld libtool nm objcopy objdump ranlib strip windres; do
# First try with prefix + suffix
# Then try with prefix only
# Then try with suffix only, but only for BUILD, and HOST iff REAL_BUILD == REAL_HOST
diff --git a/scripts/functions b/scripts/functions
index 2227de7..4ea3c5a 100644
--- a/scripts/functions
+++ b/scripts/functions
@@ -1135,7 +1135,7 @@ CT_DoBuildTargetTuple()
uClibc) CT_TARGET_SYS=uclibc;;
musl) CT_TARGET_SYS=musl;;
bionic) CT_TARGET_SYS=android;;
- none|newlib) CT_TARGET_SYS=elf;;
+ none|newlib|picolibc) CT_TARGET_SYS=elf;;
*)
# Keep empty for the libraries like mingw or avr-libc
CT_TARGET_SYS=
@@ -2233,6 +2233,7 @@ CT_DoExtractPatch()
local archive ext
local -a patch_dirs
local bundled_patch_dir
+ local bundled_common_patch_dir
local local_patch_dir
local overlay
@@ -2307,13 +2308,14 @@ CT_DoExtractPatch()
CT_DoExecLog ALL touch "${src_dir}/.${basename}.patching"
bundled_patch_dir="${CT_LIB_DIR}/packages/${pkg_dir}"
+ bundled_common_patch_dir="${CT_LIB_DIR}/packages/${pkg_name}"
local_patch_dir="${CT_LOCAL_PATCH_DIR}/${pkg_dir}"
case "${patch_order}" in
- bundled) patch_dirs=("${bundled_patch_dir}");;
+ bundled) patch_dirs=("${bundled_patch_dir}" "${bundled_common_patch_dir}");;
local) patch_dirs=("${local_patch_dir}");;
- bundled,local) patch_dirs=("${bundled_patch_dir}" "${local_patch_dir}");;
- local,bundled) patch_dirs=("${local_patch_dir}" "${bundled_patch_dir}");;
+ bundled,local) patch_dirs=("${bundled_patch_dir}" "${bundled_common_patch_dir}" "${local_patch_dir}");;
+ local,bundled) patch_dirs=("${local_patch_dir}" "${bundled_patch_dir}" "${bundled_common_patch_dir}");;
none) patch_dirs=;;
esac
diff --git a/testing/docker/alpine3.8/Dockerfile b/testing/docker/alpine3.8/Dockerfile
index 43da7ac..6119f36 100644
--- a/testing/docker/alpine3.8/Dockerfile
+++ b/testing/docker/alpine3.8/Dockerfile
@@ -7,7 +7,7 @@ RUN adduser -D -h /home/ctng -G ctng -u $CTNG_UID -s /bin/bash ctng
RUN echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories
RUN echo http://dl-cdn.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories
RUN apk update
-RUN apk add alpine-sdk wget xz git bash autoconf automake bison flex texinfo help2man gawk libtool ncurses-dev gettext-dev python-dev
+RUN apk add alpine-sdk wget xz git bash autoconf automake bison flex texinfo help2man gawk libtool ncurses-dev gettext-dev python-dev rsync
RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64
RUN chmod a+x /sbin/dumb-init
RUN echo 'export PATH=/opt/ctng/bin:$PATH' >> /etc/profile
diff --git a/testing/docker/archlinux/Dockerfile b/testing/docker/archlinux/Dockerfile
index 1a6a148..d874d62 100644
--- a/testing/docker/archlinux/Dockerfile
+++ b/testing/docker/archlinux/Dockerfile
@@ -3,7 +3,7 @@ ARG CTNG_UID=1000
ARG CTNG_GID=1000
RUN pacman -Sy --noconfirm archlinux-keyring
RUN pacman -Syu --noconfirm
-RUN pacman -S --noconfirm base-devel git help2man python unzip wget audit
+RUN pacman -S --noconfirm base-devel git help2man python unzip wget audit rsync
RUN groupadd -g $CTNG_GID ctng
RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng
RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64
diff --git a/testing/docker/centos6/Dockerfile b/testing/docker/centos6/Dockerfile
index 7f11fe1..736557b 100644
--- a/testing/docker/centos6/Dockerfile
+++ b/testing/docker/centos6/Dockerfile
@@ -5,7 +5,7 @@ RUN groupadd -g $CTNG_GID ctng
RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng
RUN yum install -y epel-release
RUN yum install -y autoconf gperf bison flex texinfo help2man gcc-c++ libtool libtool-bin patch \
- ncurses-devel python34-devel perl-Thread-Queue bzip2 git wget xz unzip
+ ncurses-devel python34-devel perl-Thread-Queue bzip2 git wget xz unzip rsync
RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64
RUN chmod a+x /sbin/dumb-init
RUN echo 'export PATH=/opt/ctng/bin:$PATH' >> /etc/profile
diff --git a/testing/docker/centos7/Dockerfile b/testing/docker/centos7/Dockerfile
index e7b812a..7dfe173 100644
--- a/testing/docker/centos7/Dockerfile
+++ b/testing/docker/centos7/Dockerfile
@@ -5,7 +5,7 @@ RUN groupadd -g $CTNG_GID ctng
RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng
RUN yum install -y epel-release
RUN yum install -y autoconf gperf bison file flex texinfo help2man gcc-c++ libtool make patch \
- ncurses-devel python36-devel perl-Thread-Queue bzip2 git wget which xz unzip
+ ncurses-devel python36-devel perl-Thread-Queue bzip2 git wget which xz unzip rsync
RUN ln -sf python36 /usr/bin/python3
RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64
RUN chmod a+x /sbin/dumb-init
diff --git a/testing/docker/fedora29/Dockerfile b/testing/docker/fedora29/Dockerfile
index 15dfb34..9d7293f 100644
--- a/testing/docker/fedora29/Dockerfile
+++ b/testing/docker/fedora29/Dockerfile
@@ -4,7 +4,7 @@ ARG CTNG_GID=1000
RUN groupadd -g $CTNG_GID ctng
RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng
RUN yum install -y autoconf gperf bison file flex texinfo help2man gcc-c++ libtool make patch \
- ncurses-devel python3-devel perl-Thread-Queue bzip2 git wget which xz unzip
+ ncurses-devel python3-devel perl-Thread-Queue bzip2 git wget which xz unzip rsync
RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64
RUN chmod a+x /sbin/dumb-init
RUN echo 'export PATH=/opt/ctng/bin:$PATH' >> /etc/profile
diff --git a/testing/docker/mint19-amd64/Dockerfile b/testing/docker/mint19-amd64/Dockerfile
index cfc05e3..61f0562 100644
--- a/testing/docker/mint19-amd64/Dockerfile
+++ b/testing/docker/mint19-amd64/Dockerfile
@@ -5,7 +5,7 @@ RUN groupadd -g $CTNG_GID ctng
RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng
RUN apt-get update
RUN apt-get install -y gcc gperf bison flex texinfo help2man make libncurses5-dev \
- python3-dev autoconf automake libtool libtool-bin gawk wget
+ python3-dev autoconf automake libtool libtool-bin gawk wget rsync
RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64
RUN chmod a+x /sbin/dumb-init
RUN echo 'export PATH=/opt/ctng/bin:$PATH' >> /etc/profile
diff --git a/testing/docker/ubuntu16.04/Dockerfile b/testing/docker/ubuntu16.04/Dockerfile
index a0b68ae..4190fc5 100644
--- a/testing/docker/ubuntu16.04/Dockerfile
+++ b/testing/docker/ubuntu16.04/Dockerfile
@@ -6,7 +6,7 @@ RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng
RUN apt-get update
RUN apt-get install -y gcc g++ gperf bison flex texinfo help2man make libncurses5-dev \
python3-dev autoconf automake libtool libtool-bin gawk wget bzip2 xz-utils unzip \
- patch libstdc++6
+ patch libstdc++6 rsync
RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64
RUN chmod a+x /sbin/dumb-init
RUN echo 'export PATH=/opt/ctng/bin:$PATH' >> /etc/profile
diff --git a/testing/docker/ubuntu18.04/Dockerfile b/testing/docker/ubuntu18.04/Dockerfile
index 918dd93..f5156d2 100644
--- a/testing/docker/ubuntu18.04/Dockerfile
+++ b/testing/docker/ubuntu18.04/Dockerfile
@@ -6,7 +6,7 @@ RUN useradd -d /home/ctng -m -g $CTNG_GID -u $CTNG_UID -s /bin/bash ctng
RUN apt-get update
RUN apt-get install -y gcc g++ gperf bison flex texinfo help2man make libncurses5-dev \
python3-dev autoconf automake libtool libtool-bin gawk wget bzip2 xz-utils unzip \
- patch libstdc++6
+ patch libstdc++6 rsync
RUN wget -O /sbin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.2.1/dumb-init_1.2.1_amd64
RUN chmod a+x /sbin/dumb-init
RUN echo 'export PATH=/opt/ctng/bin:$PATH' >> /etc/profile