├── .editorconfig ├── .github ├── copilot-instructions.md ├── dependabot.yml └── workflows │ ├── ci-auto-rerun-failed-jobs-action.yml │ ├── ci-check-new-releases.yml │ ├── ci-checks.yml │ ├── ci-docker-build.yml │ ├── ci-docker-test.yml │ ├── ci-main-reusable-caller.yml │ ├── ci-mcm-build.yml │ └── ci-mcm-release.yml ├── .gitignore ├── COPYRIGHT ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── config.mak ├── config.mak.dist ├── cowpatch.sh ├── hashes ├── binutils-2.25.1.tar.bz2.sha1 ├── binutils-2.27.tar.bz2.sha1 ├── binutils-2.32.tar.xz.sha1 ├── binutils-2.33.1.tar.xz.sha1 ├── binutils-2.40.tar.xz.sha1 ├── binutils-2.41.tar.xz.sha1 ├── binutils-2.42.tar.xz.sha1 ├── binutils-2.43.tar.xz.sha1 ├── binutils-2.44.tar.xz.sha1 ├── binutils-397a64b3.tar.bz2.sha1 ├── config.sub.00b15927.sha1 ├── config.sub.28ea239c.sha1 ├── config.sub.3d5db9ebe860.sha1 ├── config.sub.63acb96f.sha1 ├── config.sub.948ae97c.sha1 ├── config.sub.sha1 ├── gcc-10.3.0.tar.xz.sha1 ├── gcc-11.2.0.tar.xz.sha1 ├── gcc-11.5.0.tar.xz.sha1 ├── gcc-12.2.0.tar.xz.sha1 ├── gcc-12.4.0.tar.xz.sha1 ├── gcc-13.1.0.tar.xz.sha1 ├── gcc-13.2.0.tar.xz.sha1 ├── gcc-13.3.0.tar.xz.sha1 ├── gcc-14.1.0.tar.xz.sha1 ├── gcc-14.2.0.tar.xz.sha1 ├── gcc-15.1.0.tar.xz.sha1 ├── gcc-4.2.1.tar.bz2.sha1 ├── gcc-4.7.4.tar.bz2.sha1 ├── gcc-5.3.0.tar.bz2.sha1 ├── gcc-6.5.0.tar.xz.sha1 ├── gcc-7.5.0.tar.xz.sha1 ├── gcc-8.5.0.tar.xz.sha1 ├── gcc-9.2.0.tar.xz.sha1 ├── gcc-9.4.0.tar.xz.sha1 ├── gmp-6.1.0.tar.bz2.sha1 ├── gmp-6.1.1.tar.bz2.sha1 ├── gmp-6.1.2.tar.bz2.sha1 ├── gmp-6.2.1.tar.xz.sha1 ├── gmp-6.3.0.tar.xz.sha1 ├── isl-0.14.1.tar.bz2.sha1 ├── isl-0.15.tar.bz2.sha1 ├── isl-0.21.tar.bz2.sha1 ├── isl-0.25.tar.xz.sha1 ├── isl-0.26.tar.xz.sha1 ├── isl-0.27.tar.xz.sha1 ├── linux-4.19.90.tar.xz.sha1 ├── linux-5.8.5.tar.xz.sha1 ├── linux-6.10.1.tar.xz.sha1 ├── linux-6.10.10.tar.xz.sha1 ├── linux-6.10.2.tar.xz.sha1 ├── linux-6.10.3.tar.xz.sha1 ├── linux-6.10.4.tar.xz.sha1 ├── linux-6.10.5.tar.xz.sha1 ├── linux-6.10.6.tar.xz.sha1 ├── linux-6.10.7.tar.xz.sha1 ├── linux-6.10.8.tar.xz.sha1 ├── linux-6.10.9.tar.xz.sha1 ├── linux-6.10.tar.xz.sha1 ├── linux-6.11.1.tar.xz.sha1 ├── linux-6.11.2.tar.xz.sha1 ├── linux-6.11.3.tar.xz.sha1 ├── linux-6.11.4.tar.xz.sha1 ├── linux-6.11.5.tar.xz.sha1 ├── linux-6.11.6.tar.xz.sha1 ├── linux-6.11.7.tar.xz.sha1 ├── linux-6.11.8.tar.xz.sha1 ├── linux-6.11.9.tar.xz.sha1 ├── linux-6.11.tar.xz.sha1 ├── linux-6.12.1.tar.xz.sha1 ├── linux-6.12.2.tar.xz.sha1 ├── linux-6.12.3.tar.xz.sha1 ├── linux-6.12.4.tar.xz.sha1 ├── linux-6.12.5.tar.xz.sha1 ├── linux-6.12.6.tar.xz.sha1 ├── linux-6.12.7.tar.xz.sha1 ├── linux-6.12.8.tar.xz.sha1 ├── linux-6.12.tar.xz.sha1 ├── linux-6.13.1.tar.xz.sha1 ├── linux-6.13.2.tar.xz.sha1 ├── linux-6.13.3.tar.xz.sha1 ├── linux-6.13.4.tar.xz.sha1 ├── linux-6.13.5.tar.xz.sha1 ├── linux-6.13.6.tar.xz.sha1 ├── linux-6.13.7.tar.xz.sha1 ├── linux-6.13.8.tar.xz.sha1 ├── linux-6.13.tar.xz.sha1 ├── linux-6.14.1.tar.xz.sha1 ├── linux-6.14.2.tar.xz.sha1 ├── linux-6.14.3.tar.xz.sha1 ├── linux-6.14.4.tar.xz.sha1 ├── linux-6.14.5.tar.xz.sha1 ├── linux-6.14.6.tar.xz.sha1 ├── linux-6.14.7.tar.xz.sha1 ├── linux-6.14.8.tar.xz.sha1 ├── linux-6.14.tar.xz.sha1 ├── linux-6.15.1.tar.xz.sha1 ├── linux-6.15.tar.xz.sha1 ├── linux-6.2.8.tar.xz.sha1 ├── linux-6.3.1.tar.xz.sha1 ├── linux-6.4.1.tar.xz.sha1 ├── linux-6.4.3.tar.xz.sha1 ├── linux-6.5.4.tar.xz.sha1 ├── linux-6.5.5.tar.xz.sha1 ├── linux-6.5.6.tar.xz.sha1 ├── linux-6.5.7.tar.xz.sha1 ├── linux-6.5.8.tar.xz.sha1 ├── linux-6.5.9.tar.xz.sha1 ├── linux-6.5.tar.xz.sha1 ├── linux-6.6.1.tar.xz.sha1 ├── linux-6.6.10.tar.xz.sha1 ├── linux-6.6.2.tar.xz.sha1 ├── linux-6.6.3.tar.xz.sha1 ├── linux-6.6.4.tar.xz.sha1 ├── linux-6.6.5.tar.xz.sha1 ├── linux-6.6.6.tar.xz.sha1 ├── linux-6.6.7.tar.xz.sha1 ├── linux-6.6.8.tar.xz.sha1 ├── linux-6.6.9.tar.xz.sha1 ├── linux-6.6.tar.xz.sha1 ├── linux-6.7.1.tar.xz.sha1 ├── linux-6.7.2.tar.xz.sha1 ├── linux-6.7.3.tar.xz.sha1 ├── linux-6.7.4.tar.xz.sha1 ├── linux-6.7.5.tar.xz.sha1 ├── linux-6.7.6.tar.xz.sha1 ├── linux-6.7.7.tar.xz.sha1 ├── linux-6.7.8.tar.xz.sha1 ├── linux-6.7.9.tar.xz.sha1 ├── linux-6.7.tar.xz.sha1 ├── linux-6.8.1.tar.xz.sha1 ├── linux-6.8.2.tar.xz.sha1 ├── linux-6.8.3.tar.xz.sha1 ├── linux-6.8.4.tar.xz.sha1 ├── linux-6.8.5.tar.xz.sha1 ├── linux-6.8.6.tar.xz.sha1 ├── linux-6.8.7.tar.xz.sha1 ├── linux-6.8.8.tar.xz.sha1 ├── linux-6.8.9.tar.xz.sha1 ├── linux-6.8.tar.xz.sha1 ├── linux-6.9.1.tar.xz.sha1 ├── linux-6.9.2.tar.xz.sha1 ├── linux-6.9.3.tar.xz.sha1 ├── linux-6.9.4.tar.xz.sha1 ├── linux-6.9.5.tar.xz.sha1 ├── linux-6.9.6.tar.xz.sha1 ├── linux-6.9.7.tar.xz.sha1 ├── linux-6.9.8.tar.xz.sha1 ├── linux-6.9.9.tar.xz.sha1 ├── linux-6.9.tar.xz.sha1 ├── linux-headers-4.19.88-1.tar.xz.sha1 ├── linux-headers-4.19.88-2.tar.xz.sha1 ├── linux-headers-4.19.88.tar.xz.sha1 ├── mpc-1.0.3.tar.gz.sha1 ├── mpc-1.1.0.tar.gz.sha1 ├── mpc-1.3.1.tar.gz.sha1 ├── mpfr-3.1.4.tar.bz2.sha1 ├── mpfr-4.0.2.tar.bz2.sha1 ├── mpfr-4.2.0.tar.xz.sha1 ├── mpfr-4.2.1.tar.xz.sha1 ├── mpfr-4.2.2.tar.xz.sha1 ├── musl-1.1.14.tar.gz.sha1 ├── musl-1.1.15.tar.gz.sha1 ├── musl-1.1.16.tar.gz.sha1 ├── musl-1.1.17.tar.gz.sha1 ├── musl-1.1.18.tar.gz.sha1 ├── musl-1.1.19.tar.gz.sha1 ├── musl-1.1.20.tar.gz.sha1 ├── musl-1.1.21.tar.gz.sha1 ├── musl-1.1.22.tar.gz.sha1 ├── musl-1.1.23.tar.gz.sha1 ├── musl-1.1.24.tar.gz.sha1 ├── musl-1.2.0.tar.gz.sha1 ├── musl-1.2.1.tar.gz.sha1 ├── musl-1.2.2.tar.gz.sha1 ├── musl-1.2.3.tar.gz.sha1 ├── musl-1.2.4.tar.gz.sha1 ├── musl-1.2.5.tar.gz.sha1 └── zlib-1.2.13.tar.xz.sha1 ├── litecross └── Makefile ├── patches ├── binutils-2.25.1 │ ├── 0001-staticpie.diff │ ├── 0002-cas.diff │ ├── 0003-shemuls.diff │ ├── 0004-shfdpicflag.diff │ ├── 0005-shfdpicgot.diff │ ├── 0006-mbbadsymindx.diff │ ├── 0007-tcarm.diff │ ├── 0008-mips-pie-tls.diff │ ├── 0009-arm-pie-tls.diff │ ├── 0010-arm-tlsdesc-64bithost.diff │ └── 0011-sh-fdpic-pr31619.diff ├── binutils-2.27 │ ├── 0001-j2.diff │ ├── 0002-pr17739-sh-gc-sections-bug.diff │ ├── 0003-microblaze-pr21017.diff │ ├── 0004-mips-pie-tls.diff │ ├── 0005-mips-reproducible.patch │ ├── 0006-arm-pie-tls.diff │ ├── 0007-arm-tlsdesc-64bithost.diff │ └── 0008-sh-fdpic-pr31619.diff ├── binutils-2.32 │ ├── 0001-j2.diff │ ├── 0002-arm-pie-tls.diff │ ├── 0003-arm-tlsdesc-64bithost.diff │ ├── 0004-arm-pr22269.diff │ └── 0005-sh-fdpic-pr31619.diff ├── binutils-2.33.1 │ ├── 0001-j2.diff │ ├── 0002-or1k-32bithost-1.diff │ ├── 0003-or1k-32bithost-2.diff │ ├── 0004-arm-pr22269.diff │ └── 0005-sh-fdpic-pr31619.diff ├── binutils-397a64b3 │ ├── 0001-staticpie.diff │ ├── 0006-noinfo.diff │ └── 0007-shpcrel.diff ├── gcc-10.3.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-j2.diff │ ├── 0004-static-pie.diff │ ├── 0005-libstdc-futex-time64.diff │ ├── 0006-m68k-sqrt.diff │ ├── 0007-fdpic-unwind.diff │ ├── 0008-fdpic-crtstuff-pr114158.diff │ └── 0009-sh-fdpic-pr114641.diff ├── gcc-11.2.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-j2.diff │ ├── 0004-static-pie.diff │ ├── 0005-m68k-sqrt.diff │ ├── 0006-cow-libstdc++v3.diff │ ├── 0007-fdpic-unwind.diff │ ├── 0008-fdpic-crtstuff-pr114158.diff │ └── 0009-sh-fdpic-pr114641.diff ├── gcc-11.5.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-j2.diff │ ├── 0004-static-pie.diff │ ├── 0005-m68k-sqrt.diff │ ├── 0006-cow-libstdc++v3.diff │ ├── 0007-fdpic-unwind.diff │ ├── 0008-fdpic-crtstuff-pr114158.diff │ └── 0009-sh-fdpic-pr114641.diff ├── gcc-12.4.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-j2.diff │ ├── 0004-static-pie.diff │ ├── 0005-m68k-sqrt.diff │ ├── 0006-cow-libstdc++v3.diff │ ├── 0007-fdpic-unwind.diff │ ├── 0008-fdpic-crtstuff-pr114158.diff │ └── 0009-sh-fdpic-pr114641.diff ├── gcc-13.3.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-j2.diff │ ├── 0004-static-pie.diff │ ├── 0005-m68k-sqrt.diff │ ├── 0006-cow-libstdc++v3.diff │ ├── 0007-fdpic-unwind.diff │ ├── 0008-fdpic-crtstuff-pr114158.diff │ └── 0009-sh-fdpic-pr114641.diff ├── gcc-4.2.1 │ ├── 0001-musl.diff │ ├── 0002-weakbugs.diff │ ├── 0003-shbitrot.diff │ ├── 0005-staticpie.diff │ ├── 0006-defaultpie.diff │ ├── 0008-crossbug.diff │ ├── 0009-shdiv.diff │ ├── 0010-gnuinline.diff │ ├── 0011-inhibitlibc.diff │ └── 0012-shletls.diff ├── gcc-5.3.0 │ ├── 0001-musl.diff │ ├── 0002-pr66609.diff │ ├── 0003-shbitrot.diff │ ├── 0004-j2.diff │ ├── 0005-staticpie.diff │ ├── 0006-defaultpie.diff │ ├── 0007-fdpic.diff │ ├── 0008-shsibcall.diff │ ├── 0009-mipsdw.diff │ ├── 0010-cfns-inline-fix.diff │ ├── 0011-m68k.diff │ ├── 0016-invalid_tls_model.diff │ ├── 0017-fix-gthr-weak-refs-for-libgcc.patch │ ├── 0018-libstdc++-futex-time64.diff │ ├── 0019-m68k-sqrt.diff │ ├── 0020-powerpcspe-musl-ldsoname.diff │ ├── 0021-sh-fdpic-pr114641.diff │ ├── 0022-i386-bool-null.diff │ ├── 0023-cow-libcc1.diff │ └── 0024-gcc-reload-spill-bool.diff ├── gcc-6.5.0 │ ├── 0001-linux_libc_has_function.diff │ ├── 0002-ssp_nonshared.diff │ ├── 0003-mips-unwind.diff │ ├── 0004-posix_memalign.diff │ ├── 0005-cilkrts.diff │ ├── 0006-libatomic-test-fix.diff │ ├── 0007-libgomp-test-fix.diff │ ├── 0008-libitm-test-fix.diff │ ├── 0009-libvtv-test-fix.diff │ ├── 0011-j2.diff │ ├── 0012-s390x-muslldso.diff │ ├── 0013-microblaze-pr65649.diff │ ├── 0014-m68k.diff │ ├── 0016-invalid_tls_model.diff │ ├── 0017-c++-abi-break.diff │ ├── 0018-Revert-PR-driver-81523-Make-static-override-pie.diff │ ├── 0019-Revert-RS6000-linux-startfile-endfile.diff │ ├── 0020-static-pie-support.diff │ ├── 0021-fix-gthr-weak-refs-for-libgcc.patch │ ├── 0022-libstdc++-futex-time64.diff │ ├── 0023-pr93402.diff │ ├── 0024-m68k-sqrt.diff │ ├── 0025-powerpcspe-musl-ldsoname.diff │ ├── 0026-sh-fdpic-pr114641.diff │ └── 0027-i386-bool-null.diff ├── gcc-7.5.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-cilkrts.diff │ ├── 0004-libatomic-test-fix.diff │ ├── 0005-libgomp-test-fix.diff │ ├── 0006-libitm-test-fix.diff │ ├── 0007-libvtv-test-fix.diff │ ├── 0008-Revert-PR-driver-81523-Make-static-override-pie.diff │ ├── 0009-Revert-RS6000-linux-startfile-endfile.diff │ ├── 0010-static-pie-support.diff │ ├── 0011-j2.diff │ ├── 0012-s390x-muslldso.diff │ ├── 0013-microblaze-pr65649.diff │ ├── 0014-ldbl128-config.diff │ ├── 0015-m68k.diff │ ├── 0016-invalid_tls_model.diff │ ├── 0017-fix-gthr-weak-refs-for-libgcc.patch │ ├── 0018-riscv-tls-copy-relocs.diff │ ├── 0019-libstdc++-futex-time64.diff │ ├── 0020-pr93402.diff │ ├── 0021-m68k-sqrt.diff │ ├── 0022-powerpcspe-musl-ldsoname.diff │ ├── 0023-sh-fdpic-pr114641.diff │ └── 0024-i386-bool-null.diff ├── gcc-8.5.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-libatomic-test-fix.diff │ ├── 0004-libgomp-test-fix.diff │ ├── 0005-libitm-test-fix.diff │ ├── 0006-libvtv-test-fix.diff │ ├── 0007-j2.diff │ ├── 0008-s390x-muslldso.diff │ ├── 0009-microblaze-pr65649.diff │ ├── 0010-ldbl128-config.diff │ ├── 0011-m68k.diff │ ├── 0012-static-pie.diff │ ├── 0013-invalid_tls_model.diff │ ├── 0014-fix-gthr-weak-refs-for-libgcc.patch │ ├── 0015-riscv-tls-copy-relocs.diff │ ├── 0016-libstdc++-futex-time64.diff │ ├── 0018-m68k-sqrt.diff │ ├── 0020-powerpcspe.diff │ ├── 0021-powerpcspe-musl-ldsoname.diff │ └── 0022-sh-fdpic-pr114641.diff ├── gcc-9.2.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-libatomic-test-fix.diff │ ├── 0004-libgomp-test-fix.diff │ ├── 0005-libitm-test-fix.diff │ ├── 0006-libvtv-test-fix.diff │ ├── 0007-j2.diff │ ├── 0008-s390x-muslldso.diff │ ├── 0009-microblaze-pr65649.diff │ ├── 0010-ldbl128-config.diff │ ├── 0011-m68k.diff │ ├── 0012-static-pie.diff │ ├── 0013-invalid-tls-model.diff │ ├── 0014-fix-gthr-weak-refs-for-libgcc.patch │ ├── 0015-riscv-tls-copy-relocs.diff │ ├── 0016-libstdc++-futex-time64.diff │ ├── 0017-pr93402.diff │ ├── 0018-m68k-sqrt.diff │ └── 0019-broken-builtin-memcmp.diff ├── gcc-9.4.0 │ ├── 0001-ssp_nonshared.diff │ ├── 0002-posix_memalign.diff │ ├── 0003-libatomic-test-fix.diff │ ├── 0004-libgomp-test-fix.diff │ ├── 0005-libitm-test-fix.diff │ ├── 0006-libvtv-test-fix.diff │ ├── 0007-j2.diff │ ├── 0008-s390x-muslldso.diff │ ├── 0009-microblaze-pr65649.diff │ ├── 0010-ldbl128-config.diff │ ├── 0011-m68k.diff │ ├── 0012-static-pie.diff │ ├── 0013-invalid-tls-model.diff │ ├── 0014-fix-gthr-weak-refs-for-libgcc.patch │ ├── 0015-riscv-tls-copy-relocs.diff │ ├── 0016-libstdc++-futex-time64.diff │ ├── 0018-m68k-sqrt.diff │ ├── 0019-broken-builtin-memcmp.diff │ └── 0020-sh-fdpic-pr114641.diff ├── linux-4.19.90 │ ├── 0001-asound-time64.diff │ └── 0101-archscripts.diff ├── linux-5.8.5 │ └── 0101-archscripts.diff ├── linux-headers-4.19.88-1 │ └── 0001-asound-time64.diff ├── musl-1.1.14 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.15 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.16 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.17 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.18 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.19 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.20 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.21 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.22 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.23 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.1.24 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.2.0 │ ├── 0001-broken_arm_vdso.diff │ ├── 0002-cve-2025-26519-p1.diff │ └── 0003-cve-2025-26519-p2.diff ├── musl-1.2.1 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.2.2 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.2.3 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── musl-1.2.4 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff └── musl-1.2.5 │ ├── 0001-cve-2025-26519-p1.diff │ └── 0002-cve-2025-26519-p2.diff ├── presets ├── j2-fdpic └── j2-pie-gplv2 ├── triples.json ├── versions.json ├── versions.mak └── zizmor.yml /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = tab 5 | tab_width = 4 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | indent_style = space 13 | trim_trailing_whitespace = false 14 | 15 | [*.{json,yml,yaml}] 16 | indent_style = space 17 | indent_size = 2 18 | 19 | [LICENSE.txt] 20 | indent_style = space 21 | indent_size = 0 22 | 23 | [Jamfile] 24 | indent_style = tabs 25 | -------------------------------------------------------------------------------- /.github/copilot-instructions.md: -------------------------------------------------------------------------------- 1 | In a reusable workflow, to use the outputs of a job, it must be included in the needs section of the job trying to use the outputs. Always check a reusable job with outputs has the required needs to prevent null variables. 2 | 3 | Make any workflow code provided by copilot does not use outdated actions. 4 | 5 | gh cli cannot get the id of a workflow it started with gh run workflow. you need to list them after and get the id. 6 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Maintain dependencies for GitHub Actions 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "daily" 8 | -------------------------------------------------------------------------------- /.github/workflows/ci-docker-test.yml: -------------------------------------------------------------------------------- 1 | name: ci - docker-test 2 | 3 | on: 4 | workflow_call: 5 | inputs: 6 | docker_test_matrix: 7 | description: "Json matrix for docker test" 8 | required: true 9 | type: string 10 | 11 | jobs: 12 | docker-test: 13 | runs-on: ${{ matrix.build_host }} 14 | container: ghcr.io/userdocs/qbt-musl-cross-make:${{ matrix.arch_type }} 15 | strategy: 16 | fail-fast: false 17 | matrix: ${{ fromJSON(inputs.docker_test_matrix) }} 18 | 19 | steps: 20 | - name: file gcc 21 | env: 22 | arch_type: ${{ matrix.arch_type }} 23 | run: file /usr/local/bin/${arch_type}-gcc 24 | -------------------------------------------------------------------------------- /.github/workflows/ci-mcm-release.yml: -------------------------------------------------------------------------------- 1 | name: ci - mcm-release 2 | 3 | on: 4 | workflow_call: 5 | 6 | jobs: 7 | mcm-release: 8 | name: mcm release 9 | runs-on: ubuntu-24.04-arm 10 | steps: 11 | - name: Checkout 12 | uses: actions/checkout@v4 13 | with: 14 | ref: ${{ github.event.repository.default_branch }} 15 | persist-credentials: false 16 | 17 | - name: Host - Download artifacts 18 | uses: actions/download-artifact@v4 19 | with: 20 | path: qbt-mcm 21 | pattern: qbt-mcm-* 22 | merge-multiple: true 23 | 24 | - name: set release info from versions.mak 25 | run: cp -f versions.mak release_body.md 26 | 27 | - name: set tag via date 28 | run: echo "github_tag=$(date +"%y%V")" >> $GITHUB_ENV 29 | 30 | - name: Create release - tag - assets 31 | uses: ncipollo/release-action@v1 32 | with: 33 | prerelease: false 34 | artifacts: "qbt-mcm/*.tar.xz,versions.json" 35 | replacesArtifacts: true 36 | tag: "${{ env.github_tag }}" 37 | name: "qbt-musl-cross-make toolchains" 38 | bodyFile: release_body.md 39 | allowUpdates: true 40 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /sources/ 2 | /output/ 3 | /binutils-*/ 4 | /gcc-*/ 5 | /musl-*/ 6 | /gmp-*/ 7 | /mpc-*/ 8 | /mpfr-*/ 9 | /build-*/ 10 | /linux-*/ 11 | /isl-*/ 12 | /build/ 13 | remote_versions.json 14 | -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | # Copyright Notes 2 | 3 | The musl-cross-make build tools and documentation are licensed under 4 | the MIT/Expat license as found in the `LICENSE` file. 5 | 6 | Note that this license does not cover the patches (`patches/`) or 7 | resulting binary artifacts. 8 | 9 | Each patch (`patches/`) is distributed under the terms of the license 10 | of the upstream project to which it is applied. 11 | 12 | Similarly, any resulting binary artifacts produced using this build 13 | tooling retain the original licensing from the upstream projects. The 14 | authors of musl-cross-make do not make any additional copyright claims 15 | to these artifacts. 16 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:edge 2 | 3 | ARG TARGETPLATFORM 4 | ARG ARCH 5 | ARG BASE_URL 6 | 7 | ENV CHOST=${ARCH} 8 | ENV CC=${ARCH}-gcc 9 | ENV CXX=${ARCH}-g++ 10 | ENV AR=${ARCH}-ar 11 | 12 | RUN case "$TARGETPLATFORM" in \ 13 | "linux/amd64") URL_PREFIX="x86_64-" ;; \ 14 | "linux/arm64") URL_PREFIX="aarch64-" ;; \ 15 | *) URL_PREFIX="" ;; \ 16 | esac \ 17 | && apk add -u --no-cache \ 18 | autoconf automake bash cmake coreutils curl \ 19 | file fortify-headers git gpg patch pkgconf \ 20 | libtool make perl linux-headers ttf-freefont \ 21 | graphviz re2c xz ninja-build ninja-is-really-ninja sudo \ 22 | && curl -Lo- "${BASE_URL}/${URL_PREFIX}${ARCH}.tar.xz" | tar xJf - --strip-components=1 -C /usr/local \ 23 | && cd /usr/local/bin \ 24 | && for f in ${ARCH}-*; do ln -s "$f" "${f#${ARCH}-}"; done 25 | 26 | RUN adduser -h /home/username -Ds /bin/bash -u 1000 username \ 27 | && printf '%s' 'username ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/username 28 | 29 | RUN adduser -h /home/gh -Ds /bin/bash -u 1001 gh \ 30 | && printf '%s' 'gh ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/gh 31 | 32 | VOLUME /home/username 33 | VOLUME /home/gh 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015-2020 Rich Felker, et al. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /hashes/binutils-2.25.1.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | 1d597ae063e3947a5f61e23ceda8aebf78405fcd binutils-2.25.1.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/binutils-2.27.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | 6e472ddae565a2b1447e6f2393809bb8799982cf binutils-2.27.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/binutils-2.32.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | cd45a512af1c8a508976c1beb4f5825b3bb89f4d binutils-2.32.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/binutils-2.33.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 06598868f5fa8efc98427dcb790d42c664f1a1a4 binutils-2.33.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/binutils-2.40.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | fee4fbef9d632afc1988dd631d7f75d4394b7f8d binutils-2.40.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/binutils-2.41.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 0e008260a958bbd10182ee3384672ae0a310eece binutils-2.41.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/binutils-2.42.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 44da41792c60419863d7e13fa1deaf6b24dd69b8 binutils-2.42.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/binutils-2.43.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b81792e440b48a4b4b5b7d77dddae1da1f936a2d binutils-2.43.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/binutils-2.44.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | c8c9f5ae46ab9e3722c71821982d2c270e267748 binutils-2.44.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/binutils-397a64b3.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | f74f1ce2e62c516ba832f99a94289930be7869cf binutils-397a64b3.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/config.sub.00b15927.sha1: -------------------------------------------------------------------------------- 1 | 2120cad11c6107ad0f4c427345ca4c37937fd318 config.sub -------------------------------------------------------------------------------- /hashes/config.sub.28ea239c.sha1: -------------------------------------------------------------------------------- 1 | a5d79f0aaa1c5ce20a0b490f33ae0623e258d2ff config.sub -------------------------------------------------------------------------------- /hashes/config.sub.3d5db9ebe860.sha1: -------------------------------------------------------------------------------- 1 | 7d66e32bb3cce017e1cc9bef59fb6f8271fb7fec config.sub 2 | -------------------------------------------------------------------------------- /hashes/config.sub.63acb96f.sha1: -------------------------------------------------------------------------------- 1 | f25913fd1cda3f1d11ea4b6f8ed164d2a7e71bca config.sub -------------------------------------------------------------------------------- /hashes/config.sub.948ae97c.sha1: -------------------------------------------------------------------------------- 1 | 8ee607db0135a40467956ac1ae8cd1b6c5ee480d config.sub -------------------------------------------------------------------------------- /hashes/config.sub.sha1: -------------------------------------------------------------------------------- 1 | ae3a9afa24b014c6be5d148ca9129d4ff0ff49fa config.sub -------------------------------------------------------------------------------- /hashes/gcc-10.3.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | fb51ed1660c065898c75951fb38e1ebad7d49feb gcc-10.3.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-11.2.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | f902ccacecf8949978d6261e9f1d034cff73ffdb gcc-11.2.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-11.5.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | a65b357c583e4ad8f95111d442ae51002c990f29 gcc-11.5.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-12.2.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 5dce6dc0091b8049b530d1587513a07201691760 gcc-12.2.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-12.4.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b373d4ac29bb06ca64d288621906cbf63ab5a1f5 gcc-12.4.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-13.1.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 13366f554858f548282b5701a0add1d19d1325ee gcc-13.1.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-13.2.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 5f95b6d042fb37d45c6cbebfc91decfbc4fb493c gcc-13.2.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-13.3.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 6501872415823c95d48be28853ce3ebd6c1040c4 gcc-13.3.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-14.1.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 0aec8d432b8473559942a45c12459a5db3a04618 gcc-14.1.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-14.2.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | d91ecc3d20ce6298bd95f9b09cc51dc6d3c73ae3 gcc-14.2.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-15.1.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 42017f9c1b53a345ea1214c32012609b29dba5a2 gcc-15.1.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-4.2.1.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | b8a55b13c4e38fae78d5db9a456e2d4ffe003118 gcc-4.2.1.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/gcc-4.7.4.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | f3359a157b3536f289c155363f1736a2c9b414db gcc-4.7.4.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/gcc-5.3.0.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | 0612270b103941da08376df4d0ef4e5662a2e9eb gcc-5.3.0.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/gcc-6.5.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 368b3f5d294b1a8727b372ac0a77703d8b41968a gcc-6.5.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-7.5.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 9153345fa05adfa58b4759ccb9f37d09662dd101 gcc-7.5.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-8.5.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 2e93f85672f57023d45c20fef9572b72f8a3e7f1 gcc-8.5.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-9.2.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 306d27c3465fa36862c206738d06d65fff5c3645 gcc-9.2.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gcc-9.4.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | bf6d6480fb32e5a28dac849449f533a84d4e6547 gcc-9.4.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/gmp-6.1.0.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | db38c7b67f8eea9f2e5b8a48d219165b2fdab11f gmp-6.1.0.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/gmp-6.1.1.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | 757d672e66d8e0afe60ca04735ab11c00d9346e4 gmp-6.1.1.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/gmp-6.1.2.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | 366ded6a44cd108ba6b3f5b9a252eab3f3a95cdf gmp-6.1.2.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/gmp-6.2.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 0578d48607ec0e272177d175fd1807c30b00fdf2 gmp-6.2.1.tar.xz -------------------------------------------------------------------------------- /hashes/gmp-6.3.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b4043dd2964ab1a858109da85c44de224384f352 gmp-6.3.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/isl-0.14.1.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | b653327b20e807d1df3a7e2f546ea924f1e030c0 isl-0.14.1.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/isl-0.15.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | 1e30e09a5fc2c9e1aa4bdb8c9c21fdff20a7cd12 isl-0.15.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/isl-0.21.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | 33e366d59d32330432b5c7f2d0c2fb6664eff224 isl-0.21.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/isl-0.25.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 247eecb538ff310e8fb77badd629ee32a3895a98 isl-0.25.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/isl-0.26.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | de76a774097302f486dd5031ff3eed0dd236c5ae isl-0.26.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/isl-0.27.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 8778bdabc1fbebe392564440c1ebbaaa45cdaf85 isl-0.27.tar.xz -------------------------------------------------------------------------------- /hashes/linux-4.19.90.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 2663224361a984c8a62b9cf9fc8c82c0a75f9f3f linux-4.19.90.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-5.8.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 6faa91e98a8cd36901cbc3c29ca67e519de9e33b linux-5.8.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 8a4d7ab95aa5eccd413118e5eabe7dacc9067221 linux-6.10.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.10.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 86a9682a45d5d45dbc5f0d67b24c38ba1cc53446 linux-6.10.10.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 0820085c36cde19df14ef01dc31a5012e4c59741 linux-6.10.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 27366a4488677c64023255f13f61db19d9b27191 linux-6.10.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b0a7bdfc9b1d2398a011daab1091f88c18df1864 linux-6.10.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 72ae72f5b2ab41c3d1fa6eb0103bf3717373fbf3 linux-6.10.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 5fa72ead40c8b9e2bef784d74fe00a0c542a18f2 linux-6.10.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 66b325a2f0d3cfa337a749d4eec5b06cbc9a9046 linux-6.10.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b407fc2f9635588ab90043916045a5ca37e725e8 linux-6.10.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.9.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 5aa1e0897e13146fd49a1a00c36886ff3a22f169 linux-6.10.9.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.10.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 1e9cb1c45e24c18128f4529cc4b93cf3b36d06be linux-6.10.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | ede12d1456e2aa599abfea96b6ddc1a05f493b13 linux-6.11.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | c5f8c73e84403042268a14c696ad176971b2e1a6 linux-6.11.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 2304979e428c0c3f20b213adf20de6aa5582b02e linux-6.11.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | c0765c658ae2aad756a408d0673b73b88599fab7 linux-6.11.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | f204433e5c32f6d4bdbbdfab3a22de6d079d4279 linux-6.11.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 561108cef477bf2e4cfbb9aeba1f03c1b1920007 linux-6.11.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | a8a2aa4f23bd68103b1aff9112c538b91dcba838 linux-6.11.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 3cd2e601a2bbdaec494fb424c17b4fc88ba50ccd linux-6.11.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.9.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | d0bad19d7fbf2d9eeed994da69e0bf1c8d02c9cd linux-6.11.9.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.11.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 38cca50b7c93363dbc97db1801b7b1182908e1a5 linux-6.11.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 3cb9a1a5d0c53d6a5fc5cd9438a36330151b4e5f linux-6.12.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | aabe933593b6fffd6f7e10a67a5362b88d6e2b35 linux-6.12.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 614c7d549be86d3eec547b069055d44c2ab955e1 linux-6.12.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 27a4ad05477d64339e4603176ae2e3715fd381a7 linux-6.12.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 5c7a794c37df668ae9c40465d2eda17c23abda4d linux-6.12.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 14cc6fe1672fb65e0caf3ef9be3e58bc6737984f linux-6.12.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | cfb5ad9425065d66b22aa7239913783896caae69 linux-6.12.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | bf4076cfdc6cec24bf13c24ff31e3a54197cdeaf linux-6.12.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.12.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 42188f7e49564f5ed4fcf8591c6f7477a063fc54 linux-6.12.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 83869cbd711ef18c91c6125e7ae3e1c7c3e500a0 linux-6.13.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 262bbf9fea97b9dc498209a6ba6999855385b8cc linux-6.13.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 468ae006420453544d8350b5e7aa1375fb7366cb linux-6.13.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 29583f337c9d7bd28f9dd84853ea4d3a53f8dc1c linux-6.13.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 862a547ea9c776fb56f8288491d2519c1b63f271 linux-6.13.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 781fefb2b3af812fed4a2b288723e6633a9ead37 linux-6.13.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 6b1b090213e3e9cb74d3d24e32d3e1d62af9d056 linux-6.13.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 0c3ada6bda87e5f8a54ca60706b467a681e7a1ea linux-6.13.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.13.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | aac8d37ef1a05208d92cc7214932a03cacce6d47 linux-6.13.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 8b8e8b8f775172f332851bce262858e5f9f47785 linux-6.14.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 76ecdf61b3c8761f361a8ad6fa657292a06244e9 linux-6.14.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | e7f3aaefc803ab2ee8557d2af9dc1c8ef1f82724 linux-6.14.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 0a093179b58ac103ed3b7dc51fbd57d7d2033534 linux-6.14.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 85e62998ed40c1197f2ffefb1fe4f2e04a95879f linux-6.14.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | e08c5699b0c403339365cba0e5cacd1f2b204b86 linux-6.14.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 518c905bb5e769a26983f6723fe9597046024213 linux-6.14.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | f0d072bf33666a4fc96bc1a9246d0747371e4c88 linux-6.14.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.14.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | eb12c4d17f6756a33e58373089af85d5cbc03ead linux-6.14.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.15.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 43084a92e6734be9f90d514283a9bdf2c053dfff linux-6.15.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.15.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 75c2ba0a8f542ca379bce5cc446b22701e12b247 linux-6.15.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.2.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 037001e6be4c31d73541c72368d561b5df94d999 linux-6.2.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.3.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 9964c71eebe06b31ff917f0261e6a8a7309894a3 linux-6.3.1.tar.xz -------------------------------------------------------------------------------- /hashes/linux-6.4.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b7965d26f1e78e63984a1d1ff457886286275e42 linux-6.4.1.tar.xz -------------------------------------------------------------------------------- /hashes/linux-6.4.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | a0bbf333fd92b6d0b23e08269f838a797e5682d6 linux-6.4.3.tar.xz -------------------------------------------------------------------------------- /hashes/linux-6.5.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 24ffca128d47b6c8e5c15efaa2b1c9ebe546c13c linux-6.5.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.5.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 8237d2136596ac5766066d1c89793f0f3e6ecc64 linux-6.5.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.5.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 68863a808d8d08e77b8e5a97d6fa97901dd27555 linux-6.5.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.5.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 1ce0960aadcd339267f1eb542920b96927c79d91 linux-6.5.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.5.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | c8daf10bb0707e99b3ad3dede5901dd3b15cd645 linux-6.5.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.5.9.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 053143d472baf8d3462797cd14b1a935e9911f11 linux-6.5.9.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 3d1a90655cd97504fbfcc0472d693151225ffdae linux-6.5.tar.xz -------------------------------------------------------------------------------- /hashes/linux-6.6.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b09d769f60d53ea3e598c1ac8c58a10bf1e63a3f linux-6.6.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.10.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 81d66bd280cf16dedb0bf59ffe67e976ca7d623d linux-6.6.10.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 020d7680272df90ae7a5758ae490fe096fd0c2f2 linux-6.6.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | e9a234353013b8daf0fe2370189d571baad827da linux-6.6.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 697970825a948275ea7d3449c03104ff16334e1b linux-6.6.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 78ea8ec5c65a47a7873ea44247c6051bc5a5a26d linux-6.6.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 32c5846184532a0ac918e6547b15be4d5e771134 linux-6.6.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b5eef81828e7badf44fbb4228b87be471c3f3833 linux-6.6.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b9032f258dbbf59304cfaaf5d472f19b70508140 linux-6.6.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.9.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 347681d85c092708747d9d44017c9bcc5531857e linux-6.6.9.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | c8dbfa8285f1a90596a227690653d84b9eb2debe linux-6.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 5a7a177e46bbe19050e97f2ff83dcc551123d18b linux-6.7.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | dbae8c15da59f79cd07c3cfb7dc51f6d44065698 linux-6.7.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | c9ce97f4061679e3a74b403e9522395fb42791b5 linux-6.7.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 00ab824aaf2ddbdaca8c64a0f8e6fa92baede7e0 linux-6.7.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | e607a3a94e8106148f9a06ceed51066247a1c090 linux-6.7.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 094a201d76d2608dc80c1c9059bf3c1de6f5a79e linux-6.7.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | a942d95792b8728c23528b12d9722e20f70aa3db linux-6.7.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 6f00a02a562f6911c8c467f4b4c368c48e250af2 linux-6.7.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.9.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | f74da6575b74177d70d82a8d397577c39a1c82a7 linux-6.7.9.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 636b7a1dc4bc76ee585db5a71ede515c772cd410 linux-6.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 08b7b8e5cb3c7459b7bb42abbebe5184329bc9b2 linux-6.8.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 11762c15ef5a21ed03d7337fd52882df59214245 linux-6.8.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b3ba24b46ddc20fce2e79236e1f4dc7172374d32 linux-6.8.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 14c75cda4512eb17db5cb7c794971ae5951ac033 linux-6.8.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 5d85b3b6313fef195b825aa6f0c8a53ea6c651be linux-6.8.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 915ad5d50ec25a73c1c1799b441ac01a28dd52a9 linux-6.8.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | fbfc57c776ba143adb8292576b1aaedd734d1ff7 linux-6.8.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | e24e6f84978f54a0f66937b1353ea52ca1ade1b0 linux-6.8.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.9.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 970e0039f44a43bfc230e27d266914716ae96767 linux-6.8.9.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | c9ab5b95c0b8e9e41290d3fc53b4e5cb2e8abb75 linux-6.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 1da7cf188307ab82708626386d72301cd00bc216 linux-6.9.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 5e4616d4fb9074d8786d1b81cc5cd22c570c544a linux-6.9.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.3.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 582efb82ee83ba1e7cce3951dfe24c1ddb1f4028 linux-6.9.3.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.4.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 8e4ef26770b4ce8db7d988fe9c9e721762f30a36 linux-6.9.4.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.5.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 26e829aa59be699ec194e591d4490c167507549a linux-6.9.5.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.6.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | ab7861232679082a0fac3c9529780f83e7b75707 linux-6.9.6.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.7.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 2b7bfde14828e88cdf9cbceb89416f8441a6add4 linux-6.9.7.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.8.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 27189e28cee6af5e37f66bb2195de8b2056c245f linux-6.9.8.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.9.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 414c7d855e9505ec9ee73e147e8abed6309e66c9 linux-6.9.9.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-6.9.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 87af094493aa210847db2962552c30334a315683 linux-6.9.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-headers-4.19.88-1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b35ef708c60381a566f6310a5abcb7a8f149db0d linux-headers-4.19.88-1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-headers-4.19.88-2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 9794861f8ec91398d07694fe8a5651f9a466b967 linux-headers-4.19.88-2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/linux-headers-4.19.88.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | de12b9c8ae2de9e85056a36be9f0fcc0a1e4abe9 linux-headers-4.19.88.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/mpc-1.0.3.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | b8be66396c726fdc36ebb0f692ed8a8cca3bcc66 mpc-1.0.3.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/mpc-1.1.0.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | b019d9e1d27ec5fb99497159d43a3164995de2d0 mpc-1.1.0.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/mpc-1.3.1.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | bac1c1fa79f5602df1e29e4684e103ad55714e02 mpc-1.3.1.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/mpfr-3.1.4.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | e3b0af77f18505184410d621fe0aae179e229dba mpfr-3.1.4.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/mpfr-4.0.2.tar.bz2.sha1: -------------------------------------------------------------------------------- 1 | d6a313a3b1ceb9ff3be71cd18e45468837b7fd53 mpfr-4.0.2.tar.bz2 2 | -------------------------------------------------------------------------------- /hashes/mpfr-4.2.0.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 4f734ca3ebceac28e2f944b131a47133b19e2c5e mpfr-4.2.0.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/mpfr-4.2.1.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | 31ffb4244cb469e2b4937cce1f50150300971dfb mpfr-4.2.1.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/mpfr-4.2.2.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | a63a264b273a652e27518443640e69567da498ce mpfr-4.2.2.tar.xz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.14.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | b71208e87e66ac959d0e413dd444279d28a7bff1 musl-1.1.14.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.15.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 027c3ae2182fa53c2b554ca98a28dc5cfca4b2c3 musl-1.1.15.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.16.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 5c2204b31b1ee08a01d4d3e34c6e46f6256bdac8 musl-1.1.16.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.17.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 0f8ec8cd44c9d3c8a5138e85a867644497f061fc musl-1.1.17.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.18.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | d4e2949afbcdd1d543703bc1728f01bff2f85560 musl-1.1.18.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.19.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 0055c906d2cea2f5f2406f4d922b7d189d406c66 musl-1.1.19.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.20.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 469b3af68a49188c8db4cc94077719152c0d41f1 musl-1.1.20.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.21.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | de45b38c1efcfe9a4847e7224345a8df2275e462 musl-1.1.21.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.22.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 657f359cb054492c56b378c4d8cec5a12bf93061 musl-1.1.22.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.23.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 98f3991d67e0e11dd091eb65890285d8417c7d05 musl-1.1.23.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.1.24.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | b0b5ddf6b65355ac02e2f11c3d262ac5dcf0bab5 musl-1.1.24.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.2.0.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 140038a5376ca3a4e69168ed6c3879d1477b20d1 musl-1.2.0.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.2.1.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 031062cf1a3c3e81e3dbae5ad2edbeff02ca198f musl-1.2.1.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.2.2.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | e7ba5f0a5f89c13843b955e916f1d9a9d4b6ab9a musl-1.2.2.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.2.3.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 3b6b673196c2dc96b24c5d6028c5fa922457dd26 musl-1.2.3.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.2.4.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 78eb982244b857dbacb2ead25cc0f631ce44204d musl-1.2.4.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/musl-1.2.5.tar.gz.sha1: -------------------------------------------------------------------------------- 1 | 36210d3423172a40ddcf83c762207c5f760b60a6 musl-1.2.5.tar.gz 2 | -------------------------------------------------------------------------------- /hashes/zlib-1.2.13.tar.xz.sha1: -------------------------------------------------------------------------------- 1 | b459b42aa533968ae403c0002a255d62d3136954 zlib-1.2.13.tar.xz -------------------------------------------------------------------------------- /patches/binutils-2.25.1/0004-shfdpicflag.diff: -------------------------------------------------------------------------------- 1 | diff -ur binutils-2.25.1.orig/bfd/elf32-sh.c binutils-2.25.1/bfd/elf32-sh.c 2 | --- binutils-2.25.1.orig/bfd/elf32-sh.c 2015-09-03 21:52:17.000000000 +0000 3 | +++ binutils-2.25.1/bfd/elf32-sh.c 2015-09-14 17:08:48.114426847 +0000 4 | @@ -5487,7 +5487,7 @@ 5 | input_bfd, input_section, rel->r_offset, symname); 6 | } 7 | 8 | - elf_elfheader (output_bfd)->e_flags &= ~EF_SH_PIC; 9 | + elf_elfheader (output_bfd)->e_flags |= EF_SH_PIC; 10 | } 11 | 12 | if (r != bfd_reloc_ok) 13 | @@ -6644,7 +6644,7 @@ 14 | elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags; 15 | sh_elf_set_mach_from_flags (obfd); 16 | if (elf_elfheader (obfd)->e_flags & EF_SH_FDPIC) 17 | - elf_elfheader (obfd)->e_flags |= EF_SH_PIC; 18 | + elf_elfheader (obfd)->e_flags &= ~EF_SH_PIC; 19 | } 20 | 21 | if (! sh_merge_bfd_arch (ibfd, obfd)) 22 | -------------------------------------------------------------------------------- /patches/binutils-2.25.1/0005-shfdpicgot.diff: -------------------------------------------------------------------------------- 1 | --- binutils-2.25.1/bfd/elf32-sh.c.orig 2015-10-08 16:33:04.413334344 +0000 2 | +++ binutils-2.25.1/bfd/elf32-sh.c 2015-10-08 16:23:05.709980166 +0000 3 | @@ -3604,7 +3604,7 @@ sh_elf_size_dynamic_sections (bfd *outpu 4 | return FALSE; 5 | } 6 | else if ((elf_elfheader (output_bfd)->e_flags & EF_SH_FDPIC) 7 | - && htab->sgot->size != 0) 8 | + /* && htab->sgot->size != 0 */) 9 | { 10 | if (! add_dynamic_entry (DT_PLTGOT, 0)) 11 | return FALSE; 12 | -------------------------------------------------------------------------------- /patches/binutils-2.25.1/0006-mbbadsymindx.diff: -------------------------------------------------------------------------------- 1 | --- binutils-2.25.1/bfd/elf32-microblaze.c.orig 2016-02-11 23:12:00.301992882 +0000 2 | +++ binutils-2.25.1/bfd/elf32-microblaze.c 2016-02-11 23:28:12.043074209 +0000 3 | @@ -3293,8 +3293,7 @@ 4 | The entry in the global offset table will already have been 5 | initialized in the relocate_section function. */ 6 | if (info->shared 7 | - && (info->symbolic || h->dynindx == -1) 8 | - && h->def_regular) 9 | + && ((info->symbolic && h->def_regular) || h->dynindx == -1)) 10 | { 11 | asection *sec = h->root.u.def.section; 12 | microblaze_elf_output_dynamic_relocation (output_bfd, 13 | -------------------------------------------------------------------------------- /patches/binutils-2.25.1/0007-tcarm.diff: -------------------------------------------------------------------------------- 1 | From d840c081f8082e8b9e63fead5306643975a97bb3 Mon Sep 17 00:00:00 2001 2 | From: Richard Earnshaw 3 | Date: Thu, 20 Nov 2014 17:02:47 +0000 4 | Subject: [PATCH] * config/tc-arm.c (rotate_left): Avoid undefined behaviour 5 | when N = 0. 6 | 7 | --- 8 | 9 | diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c 10 | index 5077f87..9100fb2 100644 11 | --- a/gas/config/tc-arm.c 12 | +++ b/gas/config/tc-arm.c 13 | @@ -7251,7 +7251,7 @@ parse_operands (char *str, const unsigned int *pattern, bfd_boolean thumb) 14 | 15 | /* Functions for operand encoding. ARM, then Thumb. */ 16 | 17 | -#define rotate_left(v, n) (v << n | v >> (32 - n)) 18 | +#define rotate_left(v, n) (v << (n & 31) | v >> ((32 - n) & 31)) 19 | 20 | /* If VAL can be encoded in the immediate field of an ARM instruction, 21 | return the encoded form. Otherwise, return FAIL. */ 22 | -------------------------------------------------------------------------------- /patches/binutils-2.25.1/0008-mips-pie-tls.diff: -------------------------------------------------------------------------------- 1 | diff -ur binutils-2.25.1.orig/bfd/elfxx-mips.c binutils-2.25.1/bfd/elfxx-mips.c 2 | --- binutils-2.25.1.orig/bfd/elfxx-mips.c 2018-01-31 11:26:12.000000000 -0500 3 | +++ binutils-2.25.1/bfd/elfxx-mips.c 2018-01-31 12:16:00.179841734 -0500 4 | @@ -3228,7 +3228,7 @@ 5 | && (!info->shared || !SYMBOL_REFERENCES_LOCAL (info, h))) 6 | indx = h->dynindx; 7 | 8 | - if ((info->shared || indx != 0) 9 | + if ((!info->executable || indx != 0) 10 | && (h == NULL 11 | || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT 12 | || h->root.type != bfd_link_hash_undefweak)) 13 | @@ -3338,7 +3338,7 @@ 14 | if (entry->tls_initialized) 15 | return; 16 | 17 | - if ((info->shared || indx != 0) 18 | + if ((!info->executable || indx != 0) 19 | && (h == NULL 20 | || ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT 21 | || h->root.type != bfd_link_hash_undefweak)) 22 | -------------------------------------------------------------------------------- /patches/binutils-2.25.1/0010-arm-tlsdesc-64bithost.diff: -------------------------------------------------------------------------------- 1 | diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c 2 | index bb53e039e3..d52c046979 100644 3 | --- a/bfd/elf32-arm.c 4 | +++ b/bfd/elf32-arm.c 5 | @@ -12027,9 +12027,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, 6 | unsigned long data, insn; 7 | unsigned thumb; 8 | 9 | - data = bfd_get_32 (input_bfd, hit_data); 10 | + data = bfd_get_signed_32 (input_bfd, hit_data); 11 | thumb = data & 1; 12 | - data &= ~1u; 13 | + data &= ~1ul; 14 | 15 | if (thumb) 16 | { 17 | -------------------------------------------------------------------------------- /patches/binutils-2.25.1/0011-sh-fdpic-pr31619.diff: -------------------------------------------------------------------------------- 1 | --- binutils-2.33.1/bfd/elf32-sh.c.orig 2024-04-04 23:11:28.739136261 +0900 2 | +++ binutils-2.33.1/bfd/elf32-sh.c 2024-04-08 23:14:24.496915074 +0900 3 | @@ -61,7 +61,7 @@ 4 | not. If the symbol is protected, we want the local address, but 5 | its function descriptor must be assigned by the dynamic linker. */ 6 | #define SYMBOL_FUNCDESC_LOCAL(INFO, H) \ 7 | - (SYMBOL_REFERENCES_LOCAL (INFO, H) \ 8 | + (!(H) || (H)->dynindx < 0 || (H)->forced_local \ 9 | || ! elf_hash_table (INFO)->dynamic_sections_created) 10 | 11 | #define SH_PARTIAL32 TRUE 12 | @@ -4405,20 +4405,6 @@ 13 | /* Undefined weak symbol which will not be dynamically 14 | resolved later; leave it at zero. */ 15 | goto funcdesc_leave_zero; 16 | - else if (SYMBOL_CALLS_LOCAL (info, h) 17 | - && ! SYMBOL_FUNCDESC_LOCAL (info, h)) 18 | - { 19 | - /* If the symbol needs a non-local function descriptor 20 | - but binds locally (i.e., its visibility is 21 | - protected), emit a dynamic relocation decayed to 22 | - section+offset. This is an optimization; the dynamic 23 | - linker would resolve our function descriptor request 24 | - to our copy of the function anyway. */ 25 | - dynindx = elf_section_data (h->root.u.def.section 26 | - ->output_section)->dynindx; 27 | - relocation += h->root.u.def.section->output_offset 28 | - + h->root.u.def.value; 29 | - } 30 | else if (! SYMBOL_FUNCDESC_LOCAL (info, h)) 31 | { 32 | /* If the symbol is dynamic and there will be dynamic 33 | 34 | -------------------------------------------------------------------------------- /patches/binutils-2.27/0003-microblaze-pr21017.diff: -------------------------------------------------------------------------------- 1 | --- binutils-2.27/bfd/elf32-microblaze.c.orig 2017-01-02 15:44:42.110115295 -0500 2 | +++ binutils-2.27/bfd/elf32-microblaze.c 2017-01-02 15:43:22.768999626 -0500 3 | @@ -2399,6 +2399,7 @@ 4 | tls_type |= (TLS_TLS | TLS_LD); 5 | dogottls: 6 | sec->has_tls_reloc = 1; 7 | + case R_MICROBLAZE_GOTOFF_64: 8 | case R_MICROBLAZE_GOT_64: 9 | if (htab->sgot == NULL) 10 | { 11 | -------------------------------------------------------------------------------- /patches/binutils-2.27/0004-mips-pie-tls.diff: -------------------------------------------------------------------------------- 1 | diff -ur binutils-2.27.orig/bfd/elfxx-mips.c binutils-2.27/bfd/elfxx-mips.c 2 | --- binutils-2.27.orig/bfd/elfxx-mips.c 2016-08-03 03:36:51.000000000 -0400 3 | +++ binutils-2.27/bfd/elfxx-mips.c 2018-01-31 12:11:22.458824584 -0500 4 | @@ -3242,7 +3242,7 @@ 5 | && (!bfd_link_pic (info) || !SYMBOL_REFERENCES_LOCAL (info, h))) 6 | indx = h->dynindx; 7 | 8 | - if ((bfd_link_pic (info) || indx != 0) 9 | + if ((bfd_link_dll (info) || indx != 0) 10 | && (h == NULL 11 | || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT 12 | || h->root.type != bfd_link_hash_undefweak)) 13 | @@ -3354,7 +3354,7 @@ 14 | if (entry->tls_initialized) 15 | return; 16 | 17 | - if ((bfd_link_pic (info) || indx != 0) 18 | + if ((bfd_link_dll (info) || indx != 0) 19 | && (h == NULL 20 | || ELF_ST_VISIBILITY (h->root.other) == STV_DEFAULT 21 | || h->root.type != bfd_link_hash_undefweak)) 22 | -------------------------------------------------------------------------------- /patches/binutils-2.27/0005-mips-reproducible.patch: -------------------------------------------------------------------------------- 1 | [PATCH] fix deterministic output for mips archiver 2 | 3 | for historical reasons mips uses a slightly different archive format, 4 | and when the --enable-deterministic-archives option was implemented, 5 | it was only done for the generic archive format, but not for the one 6 | used by mips. 7 | 8 | Signed-off-by: John Spencer 9 | 10 | --- binutils-2.24.90.org/bfd/archive64.c 11 | +++ binutils-2.24.90/bfd/archive64.c 12 | @@ -171,7 +171,8 @@ 13 | if (!_bfd_ar_sizepad (hdr.ar_size, sizeof (hdr.ar_size), mapsize)) 14 | return FALSE; 15 | _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld", 16 | - time (NULL)); 17 | + ((arch->flags & BFD_DETERMINISTIC_OUTPUT) == 0 18 | + ? time (NULL) : 0)); 19 | /* This, at least, is what Intel coff sets the values to.: */ 20 | _bfd_ar_spacepad (hdr.ar_uid, sizeof (hdr.ar_uid), "%ld", 0); 21 | _bfd_ar_spacepad (hdr.ar_gid, sizeof (hdr.ar_gid), "%ld", 0); 22 | -------------------------------------------------------------------------------- /patches/binutils-2.27/0007-arm-tlsdesc-64bithost.diff: -------------------------------------------------------------------------------- 1 | diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c 2 | index bb53e039e3..d52c046979 100644 3 | --- a/bfd/elf32-arm.c 4 | +++ b/bfd/elf32-arm.c 5 | @@ -12027,9 +12027,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, 6 | unsigned long data, insn; 7 | unsigned thumb; 8 | 9 | - data = bfd_get_32 (input_bfd, hit_data); 10 | + data = bfd_get_signed_32 (input_bfd, hit_data); 11 | thumb = data & 1; 12 | - data &= ~1u; 13 | + data &= ~1ul; 14 | 15 | if (thumb) 16 | { 17 | -------------------------------------------------------------------------------- /patches/binutils-2.27/0008-sh-fdpic-pr31619.diff: -------------------------------------------------------------------------------- 1 | --- binutils-2.33.1/bfd/elf32-sh.c.orig 2024-04-04 23:11:28.739136261 +0900 2 | +++ binutils-2.33.1/bfd/elf32-sh.c 2024-04-08 23:14:24.496915074 +0900 3 | @@ -61,7 +61,7 @@ 4 | not. If the symbol is protected, we want the local address, but 5 | its function descriptor must be assigned by the dynamic linker. */ 6 | #define SYMBOL_FUNCDESC_LOCAL(INFO, H) \ 7 | - (SYMBOL_REFERENCES_LOCAL (INFO, H) \ 8 | + (!(H) || (H)->dynindx < 0 || (H)->forced_local \ 9 | || ! elf_hash_table (INFO)->dynamic_sections_created) 10 | 11 | #define SH_PARTIAL32 TRUE 12 | @@ -4405,20 +4405,6 @@ 13 | /* Undefined weak symbol which will not be dynamically 14 | resolved later; leave it at zero. */ 15 | goto funcdesc_leave_zero; 16 | - else if (SYMBOL_CALLS_LOCAL (info, h) 17 | - && ! SYMBOL_FUNCDESC_LOCAL (info, h)) 18 | - { 19 | - /* If the symbol needs a non-local function descriptor 20 | - but binds locally (i.e., its visibility is 21 | - protected), emit a dynamic relocation decayed to 22 | - section+offset. This is an optimization; the dynamic 23 | - linker would resolve our function descriptor request 24 | - to our copy of the function anyway. */ 25 | - dynindx = elf_section_data (h->root.u.def.section 26 | - ->output_section)->dynindx; 27 | - relocation += h->root.u.def.section->output_offset 28 | - + h->root.u.def.value; 29 | - } 30 | else if (! SYMBOL_FUNCDESC_LOCAL (info, h)) 31 | { 32 | /* If the symbol is dynamic and there will be dynamic 33 | 34 | -------------------------------------------------------------------------------- /patches/binutils-2.32/0003-arm-tlsdesc-64bithost.diff: -------------------------------------------------------------------------------- 1 | diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c 2 | index bb53e039e3..d52c046979 100644 3 | --- a/bfd/elf32-arm.c 4 | +++ b/bfd/elf32-arm.c 5 | @@ -12027,9 +12027,9 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto, 6 | unsigned long data, insn; 7 | unsigned thumb; 8 | 9 | - data = bfd_get_32 (input_bfd, hit_data); 10 | + data = bfd_get_signed_32 (input_bfd, hit_data); 11 | thumb = data & 1; 12 | - data &= ~1u; 13 | + data &= ~1ul; 14 | 15 | if (thumb) 16 | { 17 | -------------------------------------------------------------------------------- /patches/binutils-2.32/0005-sh-fdpic-pr31619.diff: -------------------------------------------------------------------------------- 1 | --- binutils-2.33.1/bfd/elf32-sh.c.orig 2024-04-04 23:11:28.739136261 +0900 2 | +++ binutils-2.33.1/bfd/elf32-sh.c 2024-04-08 23:14:24.496915074 +0900 3 | @@ -61,7 +61,7 @@ 4 | not. If the symbol is protected, we want the local address, but 5 | its function descriptor must be assigned by the dynamic linker. */ 6 | #define SYMBOL_FUNCDESC_LOCAL(INFO, H) \ 7 | - (SYMBOL_REFERENCES_LOCAL (INFO, H) \ 8 | + (!(H) || (H)->dynindx < 0 || (H)->forced_local \ 9 | || ! elf_hash_table (INFO)->dynamic_sections_created) 10 | 11 | #define SH_PARTIAL32 TRUE 12 | @@ -4405,20 +4405,6 @@ 13 | /* Undefined weak symbol which will not be dynamically 14 | resolved later; leave it at zero. */ 15 | goto funcdesc_leave_zero; 16 | - else if (SYMBOL_CALLS_LOCAL (info, h) 17 | - && ! SYMBOL_FUNCDESC_LOCAL (info, h)) 18 | - { 19 | - /* If the symbol needs a non-local function descriptor 20 | - but binds locally (i.e., its visibility is 21 | - protected), emit a dynamic relocation decayed to 22 | - section+offset. This is an optimization; the dynamic 23 | - linker would resolve our function descriptor request 24 | - to our copy of the function anyway. */ 25 | - dynindx = elf_section_data (h->root.u.def.section 26 | - ->output_section)->dynindx; 27 | - relocation += h->root.u.def.section->output_offset 28 | - + h->root.u.def.value; 29 | - } 30 | else if (! SYMBOL_FUNCDESC_LOCAL (info, h)) 31 | { 32 | /* If the symbol is dynamic and there will be dynamic 33 | 34 | -------------------------------------------------------------------------------- /patches/binutils-2.33.1/0005-sh-fdpic-pr31619.diff: -------------------------------------------------------------------------------- 1 | --- binutils-2.33.1/bfd/elf32-sh.c.orig 2024-04-04 23:11:28.739136261 +0900 2 | +++ binutils-2.33.1/bfd/elf32-sh.c 2024-04-08 23:14:24.496915074 +0900 3 | @@ -61,7 +61,7 @@ 4 | not. If the symbol is protected, we want the local address, but 5 | its function descriptor must be assigned by the dynamic linker. */ 6 | #define SYMBOL_FUNCDESC_LOCAL(INFO, H) \ 7 | - (SYMBOL_REFERENCES_LOCAL (INFO, H) \ 8 | + (!(H) || (H)->dynindx < 0 || (H)->forced_local \ 9 | || ! elf_hash_table (INFO)->dynamic_sections_created) 10 | 11 | #define SH_PARTIAL32 TRUE 12 | @@ -4405,20 +4405,6 @@ 13 | /* Undefined weak symbol which will not be dynamically 14 | resolved later; leave it at zero. */ 15 | goto funcdesc_leave_zero; 16 | - else if (SYMBOL_CALLS_LOCAL (info, h) 17 | - && ! SYMBOL_FUNCDESC_LOCAL (info, h)) 18 | - { 19 | - /* If the symbol needs a non-local function descriptor 20 | - but binds locally (i.e., its visibility is 21 | - protected), emit a dynamic relocation decayed to 22 | - section+offset. This is an optimization; the dynamic 23 | - linker would resolve our function descriptor request 24 | - to our copy of the function anyway. */ 25 | - dynindx = elf_section_data (h->root.u.def.section 26 | - ->output_section)->dynindx; 27 | - relocation += h->root.u.def.section->output_offset 28 | - + h->root.u.def.value; 29 | - } 30 | else if (! SYMBOL_FUNCDESC_LOCAL (info, h)) 31 | { 32 | /* If the symbol is dynamic and there will be dynamic 33 | 34 | -------------------------------------------------------------------------------- /patches/binutils-397a64b3/0006-noinfo.diff: -------------------------------------------------------------------------------- 1 | The binutils build notices that makeinfo is missing, but fails anyway, breaking 2 | the build. Make it stop. 3 | 4 | The "info" file format is obsolete (similar to "gopher"), was never used 5 | by anyone but the FSF, and failed to even replace man pages (which are 6 | now available in HTML). 7 | 8 | --- binutils-2.18/missing 2005-07-13 20:24:56.000000000 -0500 9 | +++ binutils-2.18/missing 2008-08-11 02:05:47.000000000 -0500 10 | @@ -299,7 +299,7 @@ 11 | fi 12 | # If the file does not exist, the user really needs makeinfo; 13 | # let's fail without touching anything. 14 | - test -f $file || exit 1 15 | + test -f $file || exit 0 16 | touch $file 17 | ;; 18 | 19 | -------------------------------------------------------------------------------- /patches/binutils-397a64b3/0007-shpcrel.diff: -------------------------------------------------------------------------------- 1 | --- binutils-397a64b3.orig//gas/config/tc-sh.c 2015-08-11 01:29:26.000000000 +0000 2 | +++ binutils-397a64b3/gas/config/tc-sh.c 2015-11-02 23:17:03.931462591 +0000 3 | @@ -4491,6 +4496,8 @@ sh_parse_name (char const *name, 4 | reloc_type = BFD_RELOC_SH_TLS_LE_32; 5 | else if ((next_end = sh_end_of_match (next + 1, "DTPOFF"))) 6 | reloc_type = BFD_RELOC_SH_TLS_LDO_32; 7 | + else if ((next_end = sh_end_of_match (next + 1, "PCREL"))) 8 | + reloc_type = BFD_RELOC_32_PCREL; 9 | else 10 | goto no_suffix; 11 | 12 | -------------------------------------------------------------------------------- /patches/gcc-10.3.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.c b/gcc/gcc.c 2 | index 9f790db0daf..e6887590ae2 100644 3 | --- a/gcc/gcc.c 4 | +++ b/gcc/gcc.c 5 | @@ -877,7 +877,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-10.3.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index 87344d9383f..ece428df487 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-10.3.0/0005-libstdc-futex-time64.diff: -------------------------------------------------------------------------------- 1 | diff --git a/libstdc++-v3/src/c++11/futex.cc b/libstdc++-v3/src/c++11/futex.cc 2 | index 698737d9b21..230d32574c6 100644 3 | --- a/libstdc++-v3/src/c++11/futex.cc 4 | +++ b/libstdc++-v3/src/c++11/futex.cc 5 | @@ -46,13 +46,23 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION 6 | 7 | namespace 8 | { 9 | +#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex 10 | + typedef struct 11 | + { 12 | + long tv_sec; 13 | + long tv_nsec; 14 | + } sys_timespec; 15 | +#else 16 | + typedef struct timespec sys_timespec; 17 | +#endif 18 | + 19 | // Return the relative duration from (now_s + now_ns) to (abs_s + abs_ns) 20 | // as a timespec. 21 | - struct timespec 22 | + sys_timespec 23 | relative_timespec(chrono::seconds abs_s, chrono::nanoseconds abs_ns, 24 | time_t now_s, long now_ns) 25 | { 26 | - struct timespec rt; 27 | + sys_timespec rt; 28 | 29 | // Did we already time out? 30 | if (now_s > abs_s.count()) 31 | -------------------------------------------------------------------------------- /patches/gcc-10.3.0/0006-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md 2 | index 8e35357ea23..65c8b10b3eb 100644 3 | --- a/gcc/config/m68k/m68k.md 4 | +++ b/gcc/config/m68k/m68k.md 5 | @@ -4174,13 +4174,13 @@ 6 | (define_expand "sqrt2" 7 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 8 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 9 | - "TARGET_HARD_FLOAT" 10 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 11 | "") 12 | 13 | (define_insn "sqrt2_68881" 14 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 15 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 16 | - "TARGET_68881" 17 | + "TARGET_68881 && TARGET_68040" 18 | { 19 | if (FP_REG_P (operands[1])) 20 | return "fsqrt%.x %1,%0"; 21 | -------------------------------------------------------------------------------- /patches/gcc-10.3.0/0007-fdpic-unwind.diff: -------------------------------------------------------------------------------- 1 | --- a/libgcc/unwind-pe.h 2024-03-14 05:59:53.754073149 +0900 2 | +++ b/libgcc/unwind-pe.h 2024-03-14 06:00:41.226074492 +0900 3 | @@ -262,7 +262,7 @@ 4 | 5 | if (result != 0) 6 | { 7 | -#if __FDPIC__ 8 | +#if __FDPIC__ && __arm__ 9 | /* FDPIC relative addresses imply taking the GOT address 10 | into account. */ 11 | if ((encoding & DW_EH_PE_pcrel) && (encoding & DW_EH_PE_indirect)) 12 | -------------------------------------------------------------------------------- /patches/gcc-10.3.0/0009-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-11.2.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.c b/gcc/gcc.c 2 | index 7837553958b..3c81c5798d8 100644 3 | --- a/gcc/gcc.c 4 | +++ b/gcc/gcc.c 5 | @@ -980,7 +980,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-11.2.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index 1b0bfe37852..d7b2b19bb3c 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-11.2.0/0005-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md 2 | index 59a456cd496..dbfddea41bd 100644 3 | --- a/gcc/config/m68k/m68k.md 4 | +++ b/gcc/config/m68k/m68k.md 5 | @@ -4174,13 +4174,13 @@ 6 | (define_expand "sqrt2" 7 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 8 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 9 | - "TARGET_HARD_FLOAT" 10 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 11 | "") 12 | 13 | (define_insn "sqrt2_68881" 14 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 15 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 16 | - "TARGET_68881" 17 | + "TARGET_68881 && TARGET_68040" 18 | { 19 | if (FP_REG_P (operands[1])) 20 | return "fsqrt%.x %1,%0"; 21 | -------------------------------------------------------------------------------- /patches/gcc-11.2.0/0006-cow-libstdc++v3.diff: -------------------------------------------------------------------------------- 1 | --- a/libstdc++-v3/ChangeLog 2024-03-13 18:04:21.050801063 -0400 2 | +++ b/libstdc++-v3/ChangeLog 2024-03-13 18:04:25.665836804 -0400 3 | @@ -4068,4 +4068,4 @@ 4 | 5 | Copying and distribution of this file, with or without modification, 6 | are permitted in any medium without royalty provided the copyright 7 | -notice and this notice are preserved. 8 | +notice and this notice are preserved. 9 | -------------------------------------------------------------------------------- /patches/gcc-11.2.0/0007-fdpic-unwind.diff: -------------------------------------------------------------------------------- 1 | --- a/libgcc/unwind-pe.h 2024-03-14 05:59:53.754073149 +0900 2 | +++ b/libgcc/unwind-pe.h 2024-03-14 06:00:41.226074492 +0900 3 | @@ -262,7 +262,7 @@ 4 | 5 | if (result != 0) 6 | { 7 | -#if __FDPIC__ 8 | +#if __FDPIC__ && __arm__ 9 | /* FDPIC relative addresses imply taking the GOT address 10 | into account. */ 11 | if ((encoding & DW_EH_PE_pcrel) && (encoding & DW_EH_PE_indirect)) 12 | -------------------------------------------------------------------------------- /patches/gcc-11.2.0/0009-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-11.5.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.c b/gcc/gcc.c 2 | index 7837553958b..3c81c5798d8 100644 3 | --- a/gcc/gcc.c 4 | +++ b/gcc/gcc.c 5 | @@ -980,7 +980,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-11.5.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index 1b0bfe37852..d7b2b19bb3c 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-11.5.0/0005-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md 2 | index 59a456cd496..dbfddea41bd 100644 3 | --- a/gcc/config/m68k/m68k.md 4 | +++ b/gcc/config/m68k/m68k.md 5 | @@ -4174,13 +4174,13 @@ 6 | (define_expand "sqrt2" 7 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 8 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 9 | - "TARGET_HARD_FLOAT" 10 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 11 | "") 12 | 13 | (define_insn "sqrt2_68881" 14 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 15 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 16 | - "TARGET_68881" 17 | + "TARGET_68881 && TARGET_68040" 18 | { 19 | if (FP_REG_P (operands[1])) 20 | return "fsqrt%.x %1,%0"; 21 | -------------------------------------------------------------------------------- /patches/gcc-11.5.0/0006-cow-libstdc++v3.diff: -------------------------------------------------------------------------------- 1 | --- a/libstdc++-v3/ChangeLog 2024-03-13 18:04:21.050801063 -0400 2 | +++ b/libstdc++-v3/ChangeLog 2024-03-13 18:04:25.665836804 -0400 3 | @@ -4068,4 +4068,4 @@ 4 | 5 | Copying and distribution of this file, with or without modification, 6 | are permitted in any medium without royalty provided the copyright 7 | -notice and this notice are preserved. 8 | +notice and this notice are preserved. 9 | -------------------------------------------------------------------------------- /patches/gcc-11.5.0/0007-fdpic-unwind.diff: -------------------------------------------------------------------------------- 1 | --- a/libgcc/unwind-pe.h 2024-03-14 05:59:53.754073149 +0900 2 | +++ b/libgcc/unwind-pe.h 2024-03-14 06:00:41.226074492 +0900 3 | @@ -262,7 +262,7 @@ 4 | 5 | if (result != 0) 6 | { 7 | -#if __FDPIC__ 8 | +#if __FDPIC__ && __arm__ 9 | /* FDPIC relative addresses imply taking the GOT address 10 | into account. */ 11 | if ((encoding & DW_EH_PE_pcrel) && (encoding & DW_EH_PE_indirect)) 12 | -------------------------------------------------------------------------------- /patches/gcc-11.5.0/0009-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-12.4.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.cc b/gcc/gcc.cc 2 | index 7837553958b..3c81c5798d8 100644 3 | --- a/gcc/gcc.cc 4 | +++ b/gcc/gcc.cc 5 | @@ -980,7 +980,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-12.4.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index 1b0bfe37852..d7b2b19bb3c 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-12.4.0/0005-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md 2 | index 59a456cd496..dbfddea41bd 100644 3 | --- a/gcc/config/m68k/m68k.md 4 | +++ b/gcc/config/m68k/m68k.md 5 | @@ -4174,13 +4174,13 @@ 6 | (define_expand "sqrt2" 7 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 8 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 9 | - "TARGET_HARD_FLOAT" 10 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 11 | "") 12 | 13 | (define_insn "sqrt2_68881" 14 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 15 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 16 | - "TARGET_68881" 17 | + "TARGET_68881 && TARGET_68040" 18 | { 19 | if (FP_REG_P (operands[1])) 20 | return "fsqrt%.x %1,%0"; 21 | -------------------------------------------------------------------------------- /patches/gcc-12.4.0/0006-cow-libstdc++v3.diff: -------------------------------------------------------------------------------- 1 | --- a/libstdc++-v3/ChangeLog 2024-03-13 18:04:21.050801063 -0400 2 | +++ b/libstdc++-v3/ChangeLog 2024-03-13 18:04:25.665836804 -0400 3 | @@ -4068,4 +4068,4 @@ 4 | 5 | Copying and distribution of this file, with or without modification, 6 | are permitted in any medium without royalty provided the copyright 7 | -notice and this notice are preserved. 8 | +notice and this notice are preserved. 9 | -------------------------------------------------------------------------------- /patches/gcc-12.4.0/0007-fdpic-unwind.diff: -------------------------------------------------------------------------------- 1 | --- a/libgcc/unwind-pe.h 2024-03-14 05:59:53.754073149 +0900 2 | +++ b/libgcc/unwind-pe.h 2024-03-14 06:00:41.226074492 +0900 3 | @@ -262,7 +262,7 @@ 4 | 5 | if (result != 0) 6 | { 7 | -#if __FDPIC__ 8 | +#if __FDPIC__ && __arm__ 9 | /* FDPIC relative addresses imply taking the GOT address 10 | into account. */ 11 | if ((encoding & DW_EH_PE_pcrel) && (encoding & DW_EH_PE_indirect)) 12 | -------------------------------------------------------------------------------- /patches/gcc-12.4.0/0009-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.cc.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.cc 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-13.3.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.cc b/gcc/gcc.cc 2 | index 7837553958b..3c81c5798d8 100644 3 | --- a/gcc/gcc.cc 4 | +++ b/gcc/gcc.cc 5 | @@ -980,7 +980,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-13.3.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index 1b0bfe37852..d7b2b19bb3c 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-13.3.0/0005-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md 2 | index 59a456cd496..dbfddea41bd 100644 3 | --- a/gcc/config/m68k/m68k.md 4 | +++ b/gcc/config/m68k/m68k.md 5 | @@ -4174,13 +4174,13 @@ 6 | (define_expand "sqrt2" 7 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 8 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 9 | - "TARGET_HARD_FLOAT" 10 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 11 | "") 12 | 13 | (define_insn "sqrt2_68881" 14 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 15 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 16 | - "TARGET_68881" 17 | + "TARGET_68881 && TARGET_68040" 18 | { 19 | if (FP_REG_P (operands[1])) 20 | return "fsqrt%.x %1,%0"; 21 | -------------------------------------------------------------------------------- /patches/gcc-13.3.0/0006-cow-libstdc++v3.diff: -------------------------------------------------------------------------------- 1 | --- a/libstdc++-v3/ChangeLog 2024-03-13 18:04:21.050801063 -0400 2 | +++ b/libstdc++-v3/ChangeLog 2024-03-13 18:04:25.665836804 -0400 3 | @@ -4068,4 +4068,4 @@ 4 | 5 | Copying and distribution of this file, with or without modification, 6 | are permitted in any medium without royalty provided the copyright 7 | -notice and this notice are preserved. 8 | +notice and this notice are preserved. 9 | -------------------------------------------------------------------------------- /patches/gcc-13.3.0/0007-fdpic-unwind.diff: -------------------------------------------------------------------------------- 1 | --- a/libgcc/unwind-pe.h 2024-03-14 05:59:53.754073149 +0900 2 | +++ b/libgcc/unwind-pe.h 2024-03-14 06:00:41.226074492 +0900 3 | @@ -262,7 +262,7 @@ 4 | 5 | if (result != 0) 6 | { 7 | -#if __FDPIC__ 8 | +#if __FDPIC__ && __arm__ 9 | /* FDPIC relative addresses imply taking the GOT address 10 | into account. */ 11 | if ((encoding & DW_EH_PE_pcrel) && (encoding & DW_EH_PE_indirect)) 12 | -------------------------------------------------------------------------------- /patches/gcc-13.3.0/0009-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.cc.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.cc 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-4.2.1/0005-staticpie.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/linux.h b/gcc/config/linux.h 2 | index 1967b46..39f8cb4 100644 3 | --- a/gcc/config/linux.h 4 | +++ b/gcc/config/linux.h 5 | @@ -41,8 +41,8 @@ Boston, MA 02110-1301, USA. */ 6 | #undef STARTFILE_SPEC 7 | #if defined HAVE_LD_PIE 8 | #define STARTFILE_SPEC \ 9 | - "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \ 10 | - crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" 11 | + "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:%{static:rcrt1.o%s;:Scrt1.o%s};:crt1.o%s}} \ 12 | + crti.o%s %{shared|pie:crtbeginS.o%s;static:crtbeginT.o%s;:crtbegin.o%s}" 13 | #else 14 | #define STARTFILE_SPEC \ 15 | "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}} \ 16 | diff --git a/gcc/gcc.c b/gcc/gcc.c 17 | index 0b5ee4b..41d17a5 100644 18 | --- a/gcc/gcc.c 19 | +++ b/gcc/gcc.c 20 | @@ -684,7 +684,7 @@ proper position among the other output files. */ 21 | 22 | #ifndef LINK_PIE_SPEC 23 | #ifdef HAVE_LD_PIE 24 | -#define LINK_PIE_SPEC "%{pie:-pie} " 25 | +#define LINK_PIE_SPEC "%{pie:-pie %{static:--no-dynamic-linker}} " 26 | #else 27 | #define LINK_PIE_SPEC "%{pie:} " 28 | #endif 29 | -------------------------------------------------------------------------------- /patches/gcc-4.2.1/0006-defaultpie.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config.gcc b/gcc/config.gcc 2 | index 3779369..a6d95ca 100644 3 | --- a/gcc/config.gcc 4 | +++ b/gcc/config.gcc 5 | @@ -3101,6 +3101,12 @@ case ${target} in 6 | ;; 7 | esac 8 | 9 | +case "x${enable_default_pie}" in 10 | +xyes) 11 | + tm_defines="${tm_defines} ENABLE_DEFAULT_PIE" 12 | + ;; 13 | +esac 14 | + 15 | t= 16 | all_defaults="abi cpu arch tune schedule float mode fpu divide" 17 | for option in $all_defaults 18 | diff --git a/gcc/gcc.c b/gcc/gcc.c 19 | index 41d17a5..b9bbcb6 100644 20 | --- a/gcc/gcc.c 21 | +++ b/gcc/gcc.c 22 | @@ -846,8 +846,16 @@ static const char *const multilib_defaults_raw[] = MULTILIB_DEFAULTS; 23 | #define GOMP_SELF_SPECS "%{fopenmp: -pthread}" 24 | #endif 25 | 26 | +#ifndef PIE_SELF_SPECS 27 | +#ifdef ENABLE_DEFAULT_PIE 28 | +#define PIE_SELF_SPECS "%{shared|pie|r|nostdlib|nopie|no-pie:;:-pie} %{fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE|D__KERNEL__:;:-fPIE}" 29 | +#else 30 | +#define PIE_SELF_SPECS "" 31 | +#endif 32 | +#endif 33 | + 34 | static const char *const driver_self_specs[] = { 35 | - DRIVER_SELF_SPECS, GOMP_SELF_SPECS 36 | + DRIVER_SELF_SPECS, GOMP_SELF_SPECS, PIE_SELF_SPECS 37 | }; 38 | 39 | #ifndef OPTION_DEFAULT_SPECS 40 | -------------------------------------------------------------------------------- /patches/gcc-4.2.1/0008-crossbug.diff: -------------------------------------------------------------------------------- 1 | diff --git a/Makefile.in b/Makefile.in 2 | index 218d8fa..45c1764 100644 3 | --- a/Makefile.in 4 | +++ b/Makefile.in 5 | @@ -208,7 +208,7 @@ BASE_TARGET_EXPORTS = \ 6 | RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ 7 | STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \ 8 | WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ 9 | - $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); 10 | + $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); 11 | 12 | RAW_CXX_TARGET_EXPORTS = \ 13 | $(BASE_TARGET_EXPORTS) \ 14 | -------------------------------------------------------------------------------- /patches/gcc-4.2.1/0009-shdiv.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h 2 | index fc4e1f2..1a4cf00 100644 3 | --- a/gcc/config/sh/sh.h 4 | +++ b/gcc/config/sh/sh.h 5 | @@ -649,10 +649,6 @@ do { \ 6 | /* ??? Should we use the integer SHmedia function instead? */ \ 7 | else if (TARGET_SHCOMPACT && TARGET_FPU_ANY) \ 8 | sh_div_strategy = SH_DIV_CALL_FP; \ 9 | - /* SH1 .. SH3 cores often go into small-footprint systems, so \ 10 | - default to the smallest implementation available. */ \ 11 | - else if (TARGET_SH2) /* ??? EXPERIMENTAL */ \ 12 | - sh_div_strategy = SH_DIV_CALL_TABLE; \ 13 | else \ 14 | sh_div_strategy = SH_DIV_CALL_DIV1; \ 15 | } \ 16 | -------------------------------------------------------------------------------- /patches/gcc-4.2.1/0011-inhibitlibc.diff: -------------------------------------------------------------------------------- 1 | diff -ru gcc-core/gcc/config/sh/linux-unwind.h gcc-core/gcc/config/sh/linux-unwind.h 2 | --- gcc-core/gcc/config/sh/linux-unwind.h 2005-06-28 20:45:37.000000000 -0500 3 | +++ gcc-core/gcc/config/sh/linux-unwind.h 2008-02-06 17:41:12.000000000 -0600 4 | @@ -26,6 +26,8 @@ 5 | the Free Software Foundation, 51 Franklin Street, Fifth Floor, 6 | Boston, MA 02110-1301, USA. */ 7 | 8 | +#ifndef inhibit_libc 9 | + 10 | /* Do code reading to identify a signal frame, and set the frame 11 | state data appropriately. See unwind-dw2.c for the structs. */ 12 | 13 | @@ -249,3 +251,5 @@ 14 | return _URC_NO_REASON; 15 | } 16 | #endif /* defined (__SH5__) */ 17 | + 18 | +#endif 19 | diff -ru gcc-core/gcc/config/alpha/linux-unwind.h gcc-core2/gcc/config/alpha/linux-unwind.h 20 | --- gcc-core/gcc/config/alpha/linux-unwind.h 2005-06-24 20:22:41.000000000 -0500 21 | +++ gcc-core2/gcc/config/alpha/linux-unwind.h 2010-01-10 20:05:56.000000000 -0600 22 | @@ -26,6 +26,8 @@ 23 | the Free Software Foundation, 51 Franklin Street, Fifth Floor, 24 | Boston, MA 02110-1301, USA. */ 25 | 26 | +#ifndef inhibit_libc 27 | + 28 | /* Do code reading to identify a signal frame, and set the frame 29 | state data appropriately. See unwind-dw2.c for the structs. */ 30 | 31 | @@ -80,3 +82,5 @@ 32 | fs->retaddr_column = 64; 33 | return _URC_NO_REASON; 34 | } 35 | + 36 | +#endif 37 | -------------------------------------------------------------------------------- /patches/gcc-4.2.1/0012-shletls.diff: -------------------------------------------------------------------------------- 1 | --- gcc-4.2.1/gcc/config/sh/sh.c.orig 2015-11-06 04:41:52.683021006 +0000 2 | +++ gcc-4.2.1/gcc/config/sh/sh.c 2015-11-06 04:42:00.643020520 +0000 3 | @@ -8343,6 +8343,7 @@ nonpic_symbol_mentioned_p (rtx x) 4 | || XINT (x, 1) == UNSPEC_GOTPLT 5 | || XINT (x, 1) == UNSPEC_GOTTPOFF 6 | || XINT (x, 1) == UNSPEC_DTPOFF 7 | + || XINT (x, 1) == UNSPEC_TPOFF 8 | || XINT (x, 1) == UNSPEC_PLT)) 9 | return 0; 10 | 11 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0003-shbitrot.diff: -------------------------------------------------------------------------------- 1 | --- gcc-5.2.0.orig/gcc/config.gcc 2 | +++ gcc-5.2.0/gcc/config.gcc 3 | @@ -4096,7 +4099,7 @@ 4 | esac 5 | ;; 6 | 7 | - sh[123456ble]-*-* | sh-*-*) 8 | + sh[123456ble]*-*-* | sh-*-*) 9 | supported_defaults="cpu" 10 | case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in 11 | "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu ) 12 | --- gcc-5.2.0.base/gcc/configure.ac 2015-08-11 16:23:36.000000000 +0000 13 | +++ gcc-5.2.0/gcc/configure.ac 2015-09-13 08:17:31.714972082 +0000 14 | @@ -3300,7 +3300,7 @@ 15 | tls_first_minor=14 16 | tls_as_opt="-m64 -Aesame --fatal-warnings" 17 | ;; 18 | - sh-*-* | sh[34]-*-*) 19 | + sh-*-* | sh[123456789lbe]*-*-*) 20 | conftest_s=' 21 | .section ".tdata","awT",@progbits 22 | foo: .long 25 23 | --- gcc-5.2.0.base/gcc/configure 2015-08-11 16:23:35.000000000 +0000 24 | +++ gcc-5.2.0/gcc/configure 2015-09-13 08:17:42.608304751 +0000 25 | @@ -23754,7 +23754,7 @@ 26 | tls_first_minor=14 27 | tls_as_opt="-m64 -Aesame --fatal-warnings" 28 | ;; 29 | - sh-*-* | sh[34]-*-*) 30 | + sh-*-* | sh[123456789lbe]*-*-*) 31 | conftest_s=' 32 | .section ".tdata","awT",@progbits 33 | foo: .long 25 34 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0005-staticpie.diff: -------------------------------------------------------------------------------- 1 | --- gcc-5.2.0.orig/gcc/config/gnu-user.h 2015-01-05 12:33:28.000000000 +0000 2 | +++ gcc-5.2.0/gcc/config/gnu-user.h 2015-08-25 08:15:18.354957759 +0000 3 | @@ -42,8 +42,8 @@ 4 | 5 | #if defined HAVE_LD_PIE 6 | #define GNU_USER_TARGET_STARTFILE_SPEC \ 7 | - "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \ 8 | - crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s} \ 9 | + "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:%{static:rcrt1.o%s;:Scrt1.o%s};:crt1.o%s}} \ 10 | + crti.o%s %{shared|pie:crtbeginS.o%s;static:crtbeginT.o%s;:crtbegin.o%s} \ 11 | %{fvtable-verify=none:%s; \ 12 | fvtable-verify=preinit:vtv_start_preinit.o%s; \ 13 | fvtable-verify=std:vtv_start.o%s}" 14 | --- gcc-5.2.0.orig/gcc/gcc.c 2015-03-10 09:37:41.000000000 +0000 15 | +++ gcc-5.2.0/gcc/gcc.c 2015-09-30 00:25:33.225927941 +0000 16 | @@ -739,7 +739,7 @@ 17 | 18 | #ifndef LINK_PIE_SPEC 19 | #ifdef HAVE_LD_PIE 20 | -#define LINK_PIE_SPEC "%{pie:-pie} " 21 | +#define LINK_PIE_SPEC "%{pie:-pie %{static:--no-dynamic-linker}} " 22 | #else 23 | #define LINK_PIE_SPEC "%{pie:} " 24 | #endif 25 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0006-defaultpie.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config.gcc b/gcc/config.gcc 2 | index 3779369..a6d95ca 100644 3 | --- a/gcc/config.gcc 4 | +++ b/gcc/config.gcc 5 | @@ -3101,6 +3101,12 @@ case ${target} in 6 | ;; 7 | esac 8 | 9 | +case "x${enable_default_pie}" in 10 | +xyes) 11 | + tm_defines="${tm_defines} ENABLE_DEFAULT_PIE=1" 12 | + ;; 13 | +esac 14 | + 15 | t= 16 | all_defaults="abi cpu arch tune schedule float mode fpu divide" 17 | for option in $all_defaults 18 | --- gcc-5.2.0.orig/gcc/gcc.c 2015-03-10 09:37:41.000000000 +0000 19 | +++ gcc-5.2.0/gcc/gcc.c 2015-08-25 07:47:12.895060530 +0000 20 | @@ -1012,10 +1012,19 @@ 21 | #define CILK_SELF_SPECS "%{fcilkplus: -pthread}" 22 | #endif 23 | 24 | +/* Default to PIE */ 25 | +#ifndef PIE_SELF_SPECS 26 | +#ifdef ENABLE_DEFAULT_PIE 27 | +#define PIE_SELF_SPECS "%{shared|pie|r|nostdlib|nopie|no-pie:;:-pie} %{fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE|D__KERNEL__:;:-fPIE}" 28 | +#else 29 | +#define PIE_SELF_SPECS "" 30 | +#endif 31 | +#endif 32 | + 33 | static const char *const driver_self_specs[] = { 34 | "%{fdump-final-insns:-fdump-final-insns=.} % 7 | -#include 8 | +#include 9 | 10 | /* The third parameter to the signal handler points to something with 11 | * this structure defined in asm/ucontext.h, but the name clashes with 12 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0010-cfns-inline-fix.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h 2 | index 1c6665d..69699c4 100644 3 | --- a/gcc/cp/cfns.h 4 | +++ b/gcc/cp/cfns.h 5 | @@ -54,6 +54,7 @@ static unsigned int hash (const char *, unsigned int); 6 | #ifdef __GNUC__ 7 | __inline 8 | #endif 9 | +static 10 | const char * libc_name_p (const char *, unsigned int); 11 | /* maximum key range = 391, duplicates = 0 */ 12 | 13 | @@ -124,10 +125,8 @@ hash (register const char *str, register unsigned int len) 14 | 15 | #ifdef __GNUC__ 16 | __inline 17 | -#ifdef __GNUC_STDC_INLINE__ 18 | -__attribute__ ((__gnu_inline__)) 19 | -#endif 20 | #endif 21 | +static 22 | const char * 23 | libc_name_p (register const char *str, register unsigned int len) 24 | { 25 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0018-libstdc++-futex-time64.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc.orig 2020-01-20 14:55:05.507548334 -0500 2 | +++ gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc 2020-01-20 14:56:52.458268068 -0500 3 | @@ -61,7 +61,15 @@ 4 | struct timeval tv; 5 | gettimeofday (&tv, NULL); 6 | // Convert the absolute timeout value to a relative timeout 7 | +#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex 8 | + struct 9 | + { 10 | + long tv_sec; 11 | + long tv_nsec; 12 | + } rt; 13 | +#else 14 | struct timespec rt; 15 | +#endif 16 | rt.tv_sec = __s.count() - tv.tv_sec; 17 | rt.tv_nsec = __ns.count() - tv.tv_usec * 1000; 18 | if (rt.tv_nsec < 0) 19 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0019-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0.orig/gcc/config/m68k/m68k.md 2019-01-01 07:31:55.000000000 -0500 2 | +++ gcc-9.2.0/gcc/config/m68k/m68k.md 2020-07-01 15:57:20.528408009 -0400 3 | @@ -4126,13 +4126,13 @@ 4 | (define_expand "sqrt2" 5 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 6 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 7 | - "TARGET_HARD_FLOAT" 8 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 9 | "") 10 | 11 | (define_insn "sqrt2_68881" 12 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 13 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 14 | - "TARGET_68881" 15 | + "TARGET_68881 && TARGET_68040" 16 | { 17 | if (FP_REG_P (operands[1])) 18 | return "fsqrt%.x %1,%0"; 19 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0020-powerpcspe-musl-ldsoname.diff: -------------------------------------------------------------------------------- 1 | --- gcc-8.5.0/gcc/config/rs6000/sysv4.h.orig 2021-07-05 12:56:18.398813835 -0400 2 | +++ gcc-8.5.0/gcc/config/rs6000/sysv4.h 2021-06-23 21:49:57.592408186 -0400 3 | @@ -793,7 +793,7 @@ 4 | #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" 5 | #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" 6 | #define MUSL_DYNAMIC_LINKER \ 7 | - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 8 | + "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float|mcpu=854*|mspe:-sf}.so.1" 9 | #if DEFAULT_LIBC == LIBC_UCLIBC 10 | #define CHOOSE_DYNAMIC_LINKER(G, U, M) \ 11 | "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" 12 | --- gcc-8.5.0/gcc/config/rs6000/linux64.h.orig 2021-07-05 12:54:24.704854044 -0400 13 | +++ gcc-8.5.0/gcc/config/rs6000/linux64.h 2021-07-05 12:56:50.010806923 -0400 14 | @@ -426,7 +426,7 @@ 15 | #endif 16 | 17 | #define MUSL_DYNAMIC_LINKER32 \ 18 | - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 19 | + "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float|mcpu=854*|mspe:-sf}.so.1" 20 | #define MUSL_DYNAMIC_LINKER64 \ 21 | "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 22 | 23 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0021-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0022-i386-bool-null.diff: -------------------------------------------------------------------------------- 1 | --- gcc-6.5.0.orig/gcc/config/i386/i386.c 2 | +++ gcc-6.5.0/gcc/config/i386/i386.c 3 | @@ -8747,7 +8747,7 @@ 4 | HOST_WIDE_INT words) 5 | { 6 | int res = 0; 7 | - bool error_p = NULL; 8 | + bool error_p = 0; 9 | 10 | if (TARGET_IAMCU) 11 | { 12 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0023-cow-libcc1.diff: -------------------------------------------------------------------------------- 1 | --- gcc-5.3.0.orig/libcc1/ChangeLog 2 | +++ gcc-5.3.0/libcc1/ChangeLog 3 | @@ -98,3 +98,4 @@ 4 | * plugin.cc: New file. 5 | * rpc.hh: New file. 6 | * status.hh: New file. 7 | + 8 | -------------------------------------------------------------------------------- /patches/gcc-5.3.0/0024-gcc-reload-spill-bool.diff: -------------------------------------------------------------------------------- 1 | --- gcc-5.3.0/gcc/reload.h 2 | +++ gcc-5.3.0.orig/gcc/reload.h 3 | @@ -168,7 +168,7 @@ 4 | value indicates the level of indirect addressing supported, e.g., two 5 | means that (MEM (MEM (REG n))) is also valid if (REG n) does not get 6 | a hard register. */ 7 | - bool x_spill_indirect_levels; 8 | + unsigned char x_spill_indirect_levels; 9 | 10 | /* True if caller-save has been reinitialized. */ 11 | bool x_caller_save_initialized_p; 12 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0001-linux_libc_has_function.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/linux.c b/gcc/config/linux.c 2 | index 250296b..16c3768 100644 3 | --- a/gcc/config/linux.c 4 | +++ b/gcc/config/linux.c 5 | @@ -26,7 +26,7 @@ along with GCC; see the file COPYING3. If not see 6 | bool 7 | linux_libc_has_function (enum function_class fn_class) 8 | { 9 | - if (OPTION_GLIBC) 10 | + if (OPTION_GLIBC || OPTION_MUSL) 11 | return true; 12 | if (OPTION_BIONIC) 13 | if (fn_class == function_c94 14 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0002-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.c b/gcc/gcc.c 2 | index 0f042b0..0576ea7 100644 3 | --- a/gcc/gcc.c 4 | +++ b/gcc/gcc.c 5 | @@ -860,7 +860,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0003-mips-unwind.diff: -------------------------------------------------------------------------------- 1 | diff --git a/libgcc/config/mips/linux-unwind.h b/libgcc/config/mips/linux-unwind.h 2 | index bf12de5..4035c121 100644 3 | --- a/libgcc/config/mips/linux-unwind.h 4 | +++ b/libgcc/config/mips/linux-unwind.h 5 | @@ -27,7 +27,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 6 | state data appropriately. See unwind-dw2.c for the structs. */ 7 | 8 | #include 9 | -#include 10 | +#include 11 | 12 | /* The third parameter to the signal handler points to something with 13 | * this structure defined in asm/ucontext.h, but the name clashes with 14 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0004-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index a9c2be4..2596a90 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0012-s390x-muslldso.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h 2 | index 9b00af7..3aacde6 100644 3 | --- a/gcc/config/s390/linux.h 4 | +++ b/gcc/config/s390/linux.h 5 | @@ -63,6 +63,9 @@ along with GCC; see the file COPYING3. If not see 6 | #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" 7 | #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" 8 | 9 | +#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1" 10 | +#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC \ 14 | "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ 15 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0013-microblaze-pr65649.diff: -------------------------------------------------------------------------------- 1 | --- gcc-6.3.0/gcc/config/microblaze/microblaze.c.orig 2017-01-02 15:07:18.924082703 -0500 2 | +++ gcc-6.3.0/gcc/config/microblaze/microblaze.c 2017-01-02 15:08:06.362438573 -0500 3 | @@ -2364,7 +2364,7 @@ 4 | unsigned long value_long; 5 | REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), 6 | value_long); 7 | - fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); 8 | + fprintf (file, "0x%lx", value_long); 9 | } 10 | else 11 | { 12 | @@ -2423,7 +2423,7 @@ 13 | print_operand_address (file, XEXP (op, 0)); 14 | } 15 | else if (letter == 'm') 16 | - fprintf (file, HOST_WIDE_INT_PRINT_DEC, (1L << INTVAL (op))); 17 | + fprintf (file, "%ld", (1L << INTVAL (op))); 18 | else 19 | output_addr_const (file, op); 20 | } 21 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0022-libstdc++-futex-time64.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc.orig 2020-01-20 14:55:05.507548334 -0500 2 | +++ gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc 2020-01-20 14:56:52.458268068 -0500 3 | @@ -61,7 +61,15 @@ 4 | struct timeval tv; 5 | gettimeofday (&tv, NULL); 6 | // Convert the absolute timeout value to a relative timeout 7 | +#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex 8 | + struct 9 | + { 10 | + long tv_sec; 11 | + long tv_nsec; 12 | + } rt; 13 | +#else 14 | struct timespec rt; 15 | +#endif 16 | rt.tv_sec = __s.count() - tv.tv_sec; 17 | rt.tv_nsec = __ns.count() - tv.tv_usec * 1000; 18 | if (rt.tv_nsec < 0) 19 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0023-pr93402.diff: -------------------------------------------------------------------------------- 1 | 2020-01-23 Jakub Jelinek 2 | 3 | PR rtl-optimization/93402 4 | * postreload.c (reload_combine_recognize_pattern): Don't try to adjust 5 | USE insns. 6 | 7 | * gcc.c-torture/execute/pr93402.c: New test. 8 | 9 | --- a/gcc/postreload.c.jj 2020-01-12 11:54:36.000000000 +0100 10 | +++ b/gcc/postreload.c 2020-01-23 17:23:25.359929516 +0100 11 | @@ -1078,6 +1078,10 @@ reload_combine_recognize_pattern (rtx_in 12 | struct reg_use *use = reg_state[regno].reg_use + i; 13 | if (GET_MODE (*use->usep) != mode) 14 | return false; 15 | + /* Don't try to adjust (use (REGX)). */ 16 | + if (GET_CODE (PATTERN (use->insn)) == USE 17 | + && &XEXP (PATTERN (use->insn), 0) == use->usep) 18 | + return false; 19 | } 20 | 21 | /* Look for (set (REGX) (CONST_INT)) 22 | --- a/gcc/testsuite/gcc.c-torture/execute/pr93402.c.jj 2020-01-23 17:25:46.496803852 +0100 23 | +++ b/gcc/testsuite/gcc.c-torture/execute/pr93402.c 2020-01-23 17:25:05.221425501 +0100 24 | @@ -0,0 +1,21 @@ 25 | +/* PR rtl-optimization/93402 */ 26 | + 27 | +struct S { unsigned int a; unsigned long long b; }; 28 | + 29 | +__attribute__((noipa)) struct S 30 | +foo (unsigned long long x) 31 | +{ 32 | + struct S ret; 33 | + ret.a = 0; 34 | + ret.b = x * 11111111111ULL + 111111111111ULL; 35 | + return ret; 36 | +} 37 | + 38 | +int 39 | +main () 40 | +{ 41 | + struct S a = foo (1); 42 | + if (a.a != 0 || a.b != 122222222222ULL) 43 | + __builtin_abort (); 44 | + return 0; 45 | +} 46 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0024-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0.orig/gcc/config/m68k/m68k.md 2019-01-01 07:31:55.000000000 -0500 2 | +++ gcc-9.2.0/gcc/config/m68k/m68k.md 2020-07-01 15:57:20.528408009 -0400 3 | @@ -4126,13 +4126,13 @@ 4 | (define_expand "sqrt2" 5 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 6 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 7 | - "TARGET_HARD_FLOAT" 8 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 9 | "") 10 | 11 | (define_insn "sqrt2_68881" 12 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 13 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 14 | - "TARGET_68881" 15 | + "TARGET_68881 && TARGET_68040" 16 | { 17 | if (FP_REG_P (operands[1])) 18 | return "fsqrt%.x %1,%0"; 19 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0025-powerpcspe-musl-ldsoname.diff: -------------------------------------------------------------------------------- 1 | --- gcc-8.5.0/gcc/config/rs6000/sysv4.h.orig 2021-07-05 12:56:18.398813835 -0400 2 | +++ gcc-8.5.0/gcc/config/rs6000/sysv4.h 2021-06-23 21:49:57.592408186 -0400 3 | @@ -793,7 +793,7 @@ 4 | #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" 5 | #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" 6 | #define MUSL_DYNAMIC_LINKER \ 7 | - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 8 | + "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float|mcpu=854*|mspe:-sf}.so.1" 9 | #if DEFAULT_LIBC == LIBC_UCLIBC 10 | #define CHOOSE_DYNAMIC_LINKER(G, U, M) \ 11 | "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" 12 | --- gcc-8.5.0/gcc/config/rs6000/linux64.h.orig 2021-07-05 12:54:24.704854044 -0400 13 | +++ gcc-8.5.0/gcc/config/rs6000/linux64.h 2021-07-05 12:56:50.010806923 -0400 14 | @@ -426,7 +426,7 @@ 15 | #endif 16 | 17 | #define MUSL_DYNAMIC_LINKER32 \ 18 | - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 19 | + "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float|mcpu=854*|mspe:-sf}.so.1" 20 | #define MUSL_DYNAMIC_LINKER64 \ 21 | "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 22 | 23 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0026-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-6.5.0/0027-i386-bool-null.diff: -------------------------------------------------------------------------------- 1 | --- gcc-6.5.0.orig/gcc/config/i386/i386.c 2 | +++ gcc-6.5.0/gcc/config/i386/i386.c 3 | @@ -8747,7 +8747,7 @@ 4 | HOST_WIDE_INT words) 5 | { 6 | int res = 0; 7 | - bool error_p = NULL; 8 | + bool error_p = 0; 9 | 10 | if (TARGET_IAMCU) 11 | { 12 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.c b/gcc/gcc.c 2 | index c48178f1aa3..e2fae4ef055 100644 3 | --- a/gcc/gcc.c 4 | +++ b/gcc/gcc.c 5 | @@ -863,7 +863,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index 73d9e887b4b..33f998702fa 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0012-s390x-muslldso.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h 2 | index 739df00f62d..ccd48ee7b84 100644 3 | --- a/gcc/config/s390/linux.h 4 | +++ b/gcc/config/s390/linux.h 5 | @@ -76,6 +76,9 @@ along with GCC; see the file COPYING3. If not see 6 | #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" 7 | #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" 8 | 9 | +#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1" 10 | +#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC \ 14 | "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ 15 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0013-microblaze-pr65649.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 2 | index d0f86fd4607..dc34ab960bf 100644 3 | --- a/gcc/config/microblaze/microblaze.c 4 | +++ b/gcc/config/microblaze/microblaze.c 5 | @@ -2375,7 +2375,7 @@ print_operand (FILE * file, rtx op, int letter) 6 | unsigned long value_long; 7 | REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), 8 | value_long); 9 | - fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); 10 | + fprintf (file, "0x%lx", value_long); 11 | } 12 | else 13 | { 14 | @@ -2434,7 +2434,7 @@ print_operand (FILE * file, rtx op, int letter) 15 | print_operand_address (file, XEXP (op, 0)); 16 | } 17 | else if (letter == 'm') 18 | - fprintf (file, HOST_WIDE_INT_PRINT_DEC, (1L << INTVAL (op))); 19 | + fprintf (file, "%ld", (1L << INTVAL (op))); 20 | else 21 | output_addr_const (file, op); 22 | } 23 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0015-m68k.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h 2 | index c6e005604d4..868c9cc3265 100644 3 | --- a/gcc/config/m68k/linux.h 4 | +++ b/gcc/config/m68k/linux.h 5 | @@ -73,6 +73,9 @@ along with GCC; see the file COPYING3. If not see 6 | 7 | #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" 8 | 9 | +#undef MUSL_DYNAMIC_LINKER 10 | +#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-m68k.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC "-m m68kelf %{shared} \ 14 | %{!shared: \ 15 | diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h 16 | index 9ea39d454aa..ecab17d3ee7 100644 17 | --- a/libgcc/config/m68k/linux-unwind.h 18 | +++ b/libgcc/config/m68k/linux-unwind.h 19 | @@ -37,7 +37,7 @@ struct uw_ucontext { 20 | stack_t uc_stack; 21 | mcontext_t uc_mcontext; 22 | unsigned long uc_filler[80]; 23 | - __sigset_t uc_sigmask; 24 | + sigset_t uc_sigmask; 25 | }; 26 | 27 | #define MD_FALLBACK_FRAME_STATE_FOR m68k_fallback_frame_state 28 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0018-riscv-tls-copy-relocs.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c 2 | index 677728e77ed..444d01e87ec 100644 3 | --- a/gcc/config/riscv/riscv.c 4 | +++ b/gcc/config/riscv/riscv.c 5 | @@ -1209,9 +1209,11 @@ riscv_legitimize_tls_address (rtx loc) 6 | rtx dest, tp, tmp; 7 | enum tls_model model = SYMBOL_REF_TLS_MODEL (loc); 8 | 9 | +#if 0 10 | /* Since we support TLS copy relocs, non-PIC TLS accesses may all use LE. */ 11 | if (!flag_pic) 12 | model = TLS_MODEL_LOCAL_EXEC; 13 | +#endif 14 | 15 | switch (model) 16 | { 17 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0019-libstdc++-futex-time64.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc.orig 2020-01-20 14:55:05.507548334 -0500 2 | +++ gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc 2020-01-20 14:56:52.458268068 -0500 3 | @@ -61,7 +61,15 @@ 4 | struct timeval tv; 5 | gettimeofday (&tv, NULL); 6 | // Convert the absolute timeout value to a relative timeout 7 | +#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex 8 | + struct 9 | + { 10 | + long tv_sec; 11 | + long tv_nsec; 12 | + } rt; 13 | +#else 14 | struct timespec rt; 15 | +#endif 16 | rt.tv_sec = __s.count() - tv.tv_sec; 17 | rt.tv_nsec = __ns.count() - tv.tv_usec * 1000; 18 | if (rt.tv_nsec < 0) 19 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0020-pr93402.diff: -------------------------------------------------------------------------------- 1 | 2020-01-23 Jakub Jelinek 2 | 3 | PR rtl-optimization/93402 4 | * postreload.c (reload_combine_recognize_pattern): Don't try to adjust 5 | USE insns. 6 | 7 | * gcc.c-torture/execute/pr93402.c: New test. 8 | 9 | --- a/gcc/postreload.c.jj 2020-01-12 11:54:36.000000000 +0100 10 | +++ b/gcc/postreload.c 2020-01-23 17:23:25.359929516 +0100 11 | @@ -1078,6 +1078,10 @@ reload_combine_recognize_pattern (rtx_in 12 | struct reg_use *use = reg_state[regno].reg_use + i; 13 | if (GET_MODE (*use->usep) != mode) 14 | return false; 15 | + /* Don't try to adjust (use (REGX)). */ 16 | + if (GET_CODE (PATTERN (use->insn)) == USE 17 | + && &XEXP (PATTERN (use->insn), 0) == use->usep) 18 | + return false; 19 | } 20 | 21 | /* Look for (set (REGX) (CONST_INT)) 22 | --- a/gcc/testsuite/gcc.c-torture/execute/pr93402.c.jj 2020-01-23 17:25:46.496803852 +0100 23 | +++ b/gcc/testsuite/gcc.c-torture/execute/pr93402.c 2020-01-23 17:25:05.221425501 +0100 24 | @@ -0,0 +1,21 @@ 25 | +/* PR rtl-optimization/93402 */ 26 | + 27 | +struct S { unsigned int a; unsigned long long b; }; 28 | + 29 | +__attribute__((noipa)) struct S 30 | +foo (unsigned long long x) 31 | +{ 32 | + struct S ret; 33 | + ret.a = 0; 34 | + ret.b = x * 11111111111ULL + 111111111111ULL; 35 | + return ret; 36 | +} 37 | + 38 | +int 39 | +main () 40 | +{ 41 | + struct S a = foo (1); 42 | + if (a.a != 0 || a.b != 122222222222ULL) 43 | + __builtin_abort (); 44 | + return 0; 45 | +} 46 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0021-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0.orig/gcc/config/m68k/m68k.md 2019-01-01 07:31:55.000000000 -0500 2 | +++ gcc-9.2.0/gcc/config/m68k/m68k.md 2020-07-01 15:57:20.528408009 -0400 3 | @@ -4126,13 +4126,13 @@ 4 | (define_expand "sqrt2" 5 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 6 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 7 | - "TARGET_HARD_FLOAT" 8 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 9 | "") 10 | 11 | (define_insn "sqrt2_68881" 12 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 13 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 14 | - "TARGET_68881" 15 | + "TARGET_68881 && TARGET_68040" 16 | { 17 | if (FP_REG_P (operands[1])) 18 | return "fsqrt%.x %1,%0"; 19 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0022-powerpcspe-musl-ldsoname.diff: -------------------------------------------------------------------------------- 1 | --- gcc-8.5.0/gcc/config/rs6000/sysv4.h.orig 2021-07-05 12:56:18.398813835 -0400 2 | +++ gcc-8.5.0/gcc/config/rs6000/sysv4.h 2021-06-23 21:49:57.592408186 -0400 3 | @@ -793,7 +793,7 @@ 4 | #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" 5 | #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" 6 | #define MUSL_DYNAMIC_LINKER \ 7 | - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 8 | + "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float|mcpu=854*|mspe:-sf}.so.1" 9 | #if DEFAULT_LIBC == LIBC_UCLIBC 10 | #define CHOOSE_DYNAMIC_LINKER(G, U, M) \ 11 | "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" 12 | --- gcc-8.5.0/gcc/config/rs6000/linux64.h.orig 2021-07-05 12:54:24.704854044 -0400 13 | +++ gcc-8.5.0/gcc/config/rs6000/linux64.h 2021-07-05 12:56:50.010806923 -0400 14 | @@ -426,7 +426,7 @@ 15 | #endif 16 | 17 | #define MUSL_DYNAMIC_LINKER32 \ 18 | - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 19 | + "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float|mcpu=854*|mspe:-sf}.so.1" 20 | #define MUSL_DYNAMIC_LINKER64 \ 21 | "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 22 | 23 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0023-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-7.5.0/0024-i386-bool-null.diff: -------------------------------------------------------------------------------- 1 | --- gcc-6.5.0.orig/gcc/config/i386/i386.c 2 | +++ gcc-6.5.0/gcc/config/i386/i386.c 3 | @@ -8747,7 +8747,7 @@ 4 | HOST_WIDE_INT words) 5 | { 6 | int res = 0; 7 | - bool error_p = NULL; 8 | + bool error_p = 0; 9 | 10 | if (TARGET_IAMCU) 11 | { 12 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.c b/gcc/gcc.c 2 | index a716f708259..eb1610ba8b0 100644 3 | --- a/gcc/gcc.c 4 | +++ b/gcc/gcc.c 5 | @@ -870,7 +870,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index ffbb7f82cf5..b0b890d2403 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0008-s390x-muslldso.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h 2 | index 525c17c2c9f..2d4f4a0654e 100644 3 | --- a/gcc/config/s390/linux.h 4 | +++ b/gcc/config/s390/linux.h 5 | @@ -76,6 +76,9 @@ along with GCC; see the file COPYING3. If not see 6 | #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" 7 | #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" 8 | 9 | +#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1" 10 | +#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC \ 14 | "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ 15 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0009-microblaze-pr65649.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 2 | index 9a4a287be23..60aadaf51f7 100644 3 | --- a/gcc/config/microblaze/microblaze.c 4 | +++ b/gcc/config/microblaze/microblaze.c 5 | @@ -2399,7 +2399,7 @@ print_operand (FILE * file, rtx op, int letter) 6 | unsigned long value_long; 7 | REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), 8 | value_long); 9 | - fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); 10 | + fprintf (file, "0x%lx", value_long); 11 | } 12 | else 13 | { 14 | @@ -2458,7 +2458,7 @@ print_operand (FILE * file, rtx op, int letter) 15 | print_operand_address (file, XEXP (op, 0)); 16 | } 17 | else if (letter == 'm') 18 | - fprintf (file, HOST_WIDE_INT_PRINT_DEC, (1L << INTVAL (op))); 19 | + fprintf (file, "%ld", (1L << INTVAL (op))); 20 | else 21 | output_addr_const (file, op); 22 | } 23 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0011-m68k.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h 2 | index f584d19e179..a3c215550fe 100644 3 | --- a/gcc/config/m68k/linux.h 4 | +++ b/gcc/config/m68k/linux.h 5 | @@ -73,6 +73,9 @@ along with GCC; see the file COPYING3. If not see 6 | 7 | #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" 8 | 9 | +#undef MUSL_DYNAMIC_LINKER 10 | +#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-m68k.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC "-m m68kelf %{shared} \ 14 | %{!shared: \ 15 | diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h 16 | index 395e4b3212a..432b757541c 100644 17 | --- a/libgcc/config/m68k/linux-unwind.h 18 | +++ b/libgcc/config/m68k/linux-unwind.h 19 | @@ -37,7 +37,7 @@ struct uw_ucontext { 20 | stack_t uc_stack; 21 | mcontext_t uc_mcontext; 22 | unsigned long uc_filler[80]; 23 | - __sigset_t uc_sigmask; 24 | + sigset_t uc_sigmask; 25 | }; 26 | 27 | #define MD_FALLBACK_FRAME_STATE_FOR m68k_fallback_frame_state 28 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0015-riscv-tls-copy-relocs.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c 2 | index 677728e77ed..444d01e87ec 100644 3 | --- a/gcc/config/riscv/riscv.c 4 | +++ b/gcc/config/riscv/riscv.c 5 | @@ -1209,9 +1209,11 @@ riscv_legitimize_tls_address (rtx loc) 6 | rtx dest, tp, tmp; 7 | enum tls_model model = SYMBOL_REF_TLS_MODEL (loc); 8 | 9 | +#if 0 10 | /* Since we support TLS copy relocs, non-PIC TLS accesses may all use LE. */ 11 | if (!flag_pic) 12 | model = TLS_MODEL_LOCAL_EXEC; 13 | +#endif 14 | 15 | switch (model) 16 | { 17 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0016-libstdc++-futex-time64.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc.orig 2020-01-20 14:55:05.507548334 -0500 2 | +++ gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc 2020-01-20 14:56:52.458268068 -0500 3 | @@ -61,7 +61,15 @@ 4 | struct timeval tv; 5 | gettimeofday (&tv, NULL); 6 | // Convert the absolute timeout value to a relative timeout 7 | +#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex 8 | + struct 9 | + { 10 | + long tv_sec; 11 | + long tv_nsec; 12 | + } rt; 13 | +#else 14 | struct timespec rt; 15 | +#endif 16 | rt.tv_sec = __s.count() - tv.tv_sec; 17 | rt.tv_nsec = __ns.count() - tv.tv_usec * 1000; 18 | if (rt.tv_nsec < 0) 19 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0018-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0.orig/gcc/config/m68k/m68k.md 2019-01-01 07:31:55.000000000 -0500 2 | +++ gcc-9.2.0/gcc/config/m68k/m68k.md 2020-07-01 15:57:20.528408009 -0400 3 | @@ -4126,13 +4126,13 @@ 4 | (define_expand "sqrt2" 5 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 6 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 7 | - "TARGET_HARD_FLOAT" 8 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 9 | "") 10 | 11 | (define_insn "sqrt2_68881" 12 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 13 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 14 | - "TARGET_68881" 15 | + "TARGET_68881 && TARGET_68040" 16 | { 17 | if (FP_REG_P (operands[1])) 18 | return "fsqrt%.x %1,%0"; 19 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0020-powerpcspe.diff: -------------------------------------------------------------------------------- 1 | --- gcc-8.3.0/gcc/config.gcc.orig 2021-06-23 21:46:44.400306941 -0400 2 | +++ gcc-8.3.0/gcc/config.gcc 2021-06-23 21:46:55.459427459 -0400 3 | @@ -2479,7 +2479,7 @@ 4 | extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" 5 | tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" 6 | ;; 7 | -powerpc*-*-linux*spe*) 8 | +powerpc*-*-linux*gnu*spe*) 9 | tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h" 10 | extra_options="${extra_options} powerpcspe/sysv4.opt" 11 | tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm" 12 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0021-powerpcspe-musl-ldsoname.diff: -------------------------------------------------------------------------------- 1 | --- gcc-8.5.0/gcc/config/rs6000/sysv4.h.orig 2021-07-05 12:56:18.398813835 -0400 2 | +++ gcc-8.5.0/gcc/config/rs6000/sysv4.h 2021-06-23 21:49:57.592408186 -0400 3 | @@ -793,7 +793,7 @@ 4 | #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" 5 | #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" 6 | #define MUSL_DYNAMIC_LINKER \ 7 | - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 8 | + "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float|mcpu=854*|mspe:-sf}.so.1" 9 | #if DEFAULT_LIBC == LIBC_UCLIBC 10 | #define CHOOSE_DYNAMIC_LINKER(G, U, M) \ 11 | "%{mglibc:" G ";:%{mmusl:" M ";:" U "}}" 12 | --- gcc-8.5.0/gcc/config/rs6000/linux64.h.orig 2021-07-05 12:54:24.704854044 -0400 13 | +++ gcc-8.5.0/gcc/config/rs6000/linux64.h 2021-07-05 12:56:50.010806923 -0400 14 | @@ -426,7 +426,7 @@ 15 | #endif 16 | 17 | #define MUSL_DYNAMIC_LINKER32 \ 18 | - "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 19 | + "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float|mcpu=854*|mspe:-sf}.so.1" 20 | #define MUSL_DYNAMIC_LINKER64 \ 21 | "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1" 22 | 23 | -------------------------------------------------------------------------------- /patches/gcc-8.5.0/0022-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.c b/gcc/gcc.c 2 | index 4f57765b012..d185c01b257 100644 3 | --- a/gcc/gcc.c 4 | +++ b/gcc/gcc.c 5 | @@ -878,7 +878,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index 09a4d1447cb..fecd9afdb2e 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0008-s390x-muslldso.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h 2 | index f76986acdab..5f6b7041f0f 100644 3 | --- a/gcc/config/s390/linux.h 4 | +++ b/gcc/config/s390/linux.h 5 | @@ -75,6 +75,9 @@ along with GCC; see the file COPYING3. If not see 6 | #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" 7 | #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" 8 | 9 | +#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1" 10 | +#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC \ 14 | "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ 15 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0009-microblaze-pr65649.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 2 | index 55c1becf975..45395ab86f1 100644 3 | --- a/gcc/config/microblaze/microblaze.c 4 | +++ b/gcc/config/microblaze/microblaze.c 5 | @@ -2476,7 +2476,7 @@ print_operand (FILE * file, rtx op, int letter) 6 | unsigned long value_long; 7 | REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), 8 | value_long); 9 | - fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); 10 | + fprintf (file, "0x%lx", value_long); 11 | } 12 | else 13 | { 14 | @@ -2535,7 +2535,7 @@ print_operand (FILE * file, rtx op, int letter) 15 | print_operand_address (file, XEXP (op, 0)); 16 | } 17 | else if (letter == 'm') 18 | - fprintf (file, HOST_WIDE_INT_PRINT_DEC, (1L << INTVAL (op))); 19 | + fprintf (file, "%ld", (1L << INTVAL (op))); 20 | else 21 | output_addr_const (file, op); 22 | } 23 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0011-m68k.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h 2 | index ebdf0281071..beef554b31c 100644 3 | --- a/gcc/config/m68k/linux.h 4 | +++ b/gcc/config/m68k/linux.h 5 | @@ -73,6 +73,9 @@ along with GCC; see the file COPYING3. If not see 6 | 7 | #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" 8 | 9 | +#undef MUSL_DYNAMIC_LINKER 10 | +#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-m68k.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC "-m m68kelf %{shared} \ 14 | %{!shared: \ 15 | diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h 16 | index fbe0d4748ba..57c354ee9b4 100644 17 | --- a/libgcc/config/m68k/linux-unwind.h 18 | +++ b/libgcc/config/m68k/linux-unwind.h 19 | @@ -37,7 +37,7 @@ struct uw_ucontext { 20 | stack_t uc_stack; 21 | mcontext_t uc_mcontext; 22 | unsigned long uc_filler[80]; 23 | - __sigset_t uc_sigmask; 24 | + sigset_t uc_sigmask; 25 | }; 26 | 27 | #define MD_FALLBACK_FRAME_STATE_FOR m68k_fallback_frame_state 28 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0013-invalid-tls-model.diff: -------------------------------------------------------------------------------- 1 | diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt 2 | index b88bf72fe3d..747d0485bf8 100644 3 | --- a/libgomp/configure.tgt 4 | +++ b/libgomp/configure.tgt 5 | @@ -17,6 +17,9 @@ if test $gcc_cv_have_tls = yes ; then 6 | *-*-k*bsd*-gnu*) 7 | ;; 8 | 9 | + *-*-musl*) 10 | + ;; 11 | + 12 | *-*-linux* | *-*-gnu*) 13 | XCFLAGS="${XCFLAGS} -ftls-model=initial-exec -DUSING_INITIAL_EXEC_TLS" 14 | ;; 15 | diff --git a/libitm/configure.tgt b/libitm/configure.tgt 16 | index 4c0b602034b..65e1c83550a 100644 17 | --- a/libitm/configure.tgt 18 | +++ b/libitm/configure.tgt 19 | @@ -31,6 +31,9 @@ 20 | if test "$gcc_cv_have_tls" = yes ; then 21 | case "${target}" in 22 | 23 | + *-*-musl*) 24 | + ;; 25 | + 26 | # For x86, we use slots in the TCB head for most of our TLS. 27 | # The setup of those slots in beginTransaction can afford to 28 | # use the global-dynamic model. 29 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0015-riscv-tls-copy-relocs.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c 2 | index 677728e77ed..444d01e87ec 100644 3 | --- a/gcc/config/riscv/riscv.c 4 | +++ b/gcc/config/riscv/riscv.c 5 | @@ -1209,9 +1209,11 @@ riscv_legitimize_tls_address (rtx loc) 6 | rtx dest, tp, tmp; 7 | enum tls_model model = SYMBOL_REF_TLS_MODEL (loc); 8 | 9 | +#if 0 10 | /* Since we support TLS copy relocs, non-PIC TLS accesses may all use LE. */ 11 | if (!flag_pic) 12 | model = TLS_MODEL_LOCAL_EXEC; 13 | +#endif 14 | 15 | switch (model) 16 | { 17 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0016-libstdc++-futex-time64.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc.orig 2020-01-20 14:55:05.507548334 -0500 2 | +++ gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc 2020-01-20 14:56:52.458268068 -0500 3 | @@ -61,7 +61,15 @@ 4 | struct timeval tv; 5 | gettimeofday (&tv, NULL); 6 | // Convert the absolute timeout value to a relative timeout 7 | +#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex 8 | + struct 9 | + { 10 | + long tv_sec; 11 | + long tv_nsec; 12 | + } rt; 13 | +#else 14 | struct timespec rt; 15 | +#endif 16 | rt.tv_sec = __s.count() - tv.tv_sec; 17 | rt.tv_nsec = __ns.count() - tv.tv_usec * 1000; 18 | if (rt.tv_nsec < 0) 19 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0017-pr93402.diff: -------------------------------------------------------------------------------- 1 | 2020-01-23 Jakub Jelinek 2 | 3 | PR rtl-optimization/93402 4 | * postreload.c (reload_combine_recognize_pattern): Don't try to adjust 5 | USE insns. 6 | 7 | * gcc.c-torture/execute/pr93402.c: New test. 8 | 9 | --- a/gcc/postreload.c.jj 2020-01-12 11:54:36.000000000 +0100 10 | +++ b/gcc/postreload.c 2020-01-23 17:23:25.359929516 +0100 11 | @@ -1078,6 +1078,10 @@ reload_combine_recognize_pattern (rtx_in 12 | struct reg_use *use = reg_state[regno].reg_use + i; 13 | if (GET_MODE (*use->usep) != mode) 14 | return false; 15 | + /* Don't try to adjust (use (REGX)). */ 16 | + if (GET_CODE (PATTERN (use->insn)) == USE 17 | + && &XEXP (PATTERN (use->insn), 0) == use->usep) 18 | + return false; 19 | } 20 | 21 | /* Look for (set (REGX) (CONST_INT)) 22 | --- a/gcc/testsuite/gcc.c-torture/execute/pr93402.c.jj 2020-01-23 17:25:46.496803852 +0100 23 | +++ b/gcc/testsuite/gcc.c-torture/execute/pr93402.c 2020-01-23 17:25:05.221425501 +0100 24 | @@ -0,0 +1,21 @@ 25 | +/* PR rtl-optimization/93402 */ 26 | + 27 | +struct S { unsigned int a; unsigned long long b; }; 28 | + 29 | +__attribute__((noipa)) struct S 30 | +foo (unsigned long long x) 31 | +{ 32 | + struct S ret; 33 | + ret.a = 0; 34 | + ret.b = x * 11111111111ULL + 111111111111ULL; 35 | + return ret; 36 | +} 37 | + 38 | +int 39 | +main () 40 | +{ 41 | + struct S a = foo (1); 42 | + if (a.a != 0 || a.b != 122222222222ULL) 43 | + __builtin_abort (); 44 | + return 0; 45 | +} 46 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0018-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0.orig/gcc/config/m68k/m68k.md 2019-01-01 07:31:55.000000000 -0500 2 | +++ gcc-9.2.0/gcc/config/m68k/m68k.md 2020-07-01 15:57:20.528408009 -0400 3 | @@ -4126,13 +4126,13 @@ 4 | (define_expand "sqrt2" 5 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 6 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 7 | - "TARGET_HARD_FLOAT" 8 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 9 | "") 10 | 11 | (define_insn "sqrt2_68881" 12 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 13 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 14 | - "TARGET_68881" 15 | + "TARGET_68881 && TARGET_68040" 16 | { 17 | if (FP_REG_P (operands[1])) 18 | return "fsqrt%.x %1,%0"; 19 | -------------------------------------------------------------------------------- /patches/gcc-9.2.0/0019-broken-builtin-memcmp.diff: -------------------------------------------------------------------------------- 1 | diff -ur gcc-9.3.0.orig/gcc/builtins.c gcc-9.3.0/gcc/builtins.c 2 | --- gcc-9.3.0.orig/gcc/builtins.c 2020-03-12 11:07:21.000000000 +0000 3 | +++ gcc-9.3.0/gcc/builtins.c 2020-09-23 22:16:54.815251679 +0000 4 | @@ -4658,6 +4658,7 @@ 5 | static rtx 6 | expand_builtin_memcmp (tree exp, rtx target, bool result_eq) 7 | { 8 | + return NULL_RTX; 9 | if (!validate_arglist (exp, 10 | POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE)) 11 | return NULL_RTX; 12 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0001-ssp_nonshared.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/gcc.c b/gcc/gcc.c 2 | index 4f57765b012..d185c01b257 100644 3 | --- a/gcc/gcc.c 4 | +++ b/gcc/gcc.c 5 | @@ -878,7 +878,8 @@ proper position among the other output files. */ 6 | #ifndef LINK_SSP_SPEC 7 | #ifdef TARGET_LIBC_PROVIDES_SSP 8 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 9 | - "|fstack-protector-strong|fstack-protector-explicit:}" 10 | + "|fstack-protector-strong|fstack-protector-explicit" \ 11 | + ":-lssp_nonshared}" 12 | #else 13 | #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ 14 | "|fstack-protector-strong|fstack-protector-explicit" \ 15 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0002-posix_memalign.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h 2 | index 09a4d1447cb..fecd9afdb2e 100644 3 | --- a/gcc/config/i386/pmm_malloc.h 4 | +++ b/gcc/config/i386/pmm_malloc.h 5 | @@ -27,12 +27,13 @@ 6 | #include 7 | 8 | /* We can't depend on since the prototype of posix_memalign 9 | - may not be visible. */ 10 | + may not be visible and we can't pollute the namespace either. */ 11 | #ifndef __cplusplus 12 | -extern int posix_memalign (void **, size_t, size_t); 13 | +extern int _mm_posix_memalign (void **, size_t, size_t) 14 | #else 15 | -extern "C" int posix_memalign (void **, size_t, size_t) throw (); 16 | +extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () 17 | #endif 18 | +__asm__("posix_memalign"); 19 | 20 | static __inline void * 21 | _mm_malloc (size_t __size, size_t __alignment) 22 | @@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) 23 | return malloc (__size); 24 | if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) 25 | __alignment = sizeof (void *); 26 | - if (posix_memalign (&__ptr, __alignment, __size) == 0) 27 | + if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) 28 | return __ptr; 29 | else 30 | return NULL; 31 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0008-s390x-muslldso.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h 2 | index f76986acdab..5f6b7041f0f 100644 3 | --- a/gcc/config/s390/linux.h 4 | +++ b/gcc/config/s390/linux.h 5 | @@ -75,6 +75,9 @@ along with GCC; see the file COPYING3. If not see 6 | #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" 7 | #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" 8 | 9 | +#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1" 10 | +#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC \ 14 | "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ 15 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0009-microblaze-pr65649.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c 2 | index 55c1becf975..45395ab86f1 100644 3 | --- a/gcc/config/microblaze/microblaze.c 4 | +++ b/gcc/config/microblaze/microblaze.c 5 | @@ -2476,7 +2476,7 @@ print_operand (FILE * file, rtx op, int letter) 6 | unsigned long value_long; 7 | REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (op), 8 | value_long); 9 | - fprintf (file, HOST_WIDE_INT_PRINT_HEX, value_long); 10 | + fprintf (file, "0x%lx", value_long); 11 | } 12 | else 13 | { 14 | @@ -2535,7 +2535,7 @@ print_operand (FILE * file, rtx op, int letter) 15 | print_operand_address (file, XEXP (op, 0)); 16 | } 17 | else if (letter == 'm') 18 | - fprintf (file, HOST_WIDE_INT_PRINT_DEC, (1L << INTVAL (op))); 19 | + fprintf (file, "%ld", (1L << INTVAL (op))); 20 | else 21 | output_addr_const (file, op); 22 | } 23 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0011-m68k.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h 2 | index ebdf0281071..beef554b31c 100644 3 | --- a/gcc/config/m68k/linux.h 4 | +++ b/gcc/config/m68k/linux.h 5 | @@ -73,6 +73,9 @@ along with GCC; see the file COPYING3. If not see 6 | 7 | #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1" 8 | 9 | +#undef MUSL_DYNAMIC_LINKER 10 | +#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-m68k.so.1" 11 | + 12 | #undef LINK_SPEC 13 | #define LINK_SPEC "-m m68kelf %{shared} \ 14 | %{!shared: \ 15 | diff --git a/libgcc/config/m68k/linux-unwind.h b/libgcc/config/m68k/linux-unwind.h 16 | index fbe0d4748ba..57c354ee9b4 100644 17 | --- a/libgcc/config/m68k/linux-unwind.h 18 | +++ b/libgcc/config/m68k/linux-unwind.h 19 | @@ -37,7 +37,7 @@ struct uw_ucontext { 20 | stack_t uc_stack; 21 | mcontext_t uc_mcontext; 22 | unsigned long uc_filler[80]; 23 | - __sigset_t uc_sigmask; 24 | + sigset_t uc_sigmask; 25 | }; 26 | 27 | #define MD_FALLBACK_FRAME_STATE_FOR m68k_fallback_frame_state 28 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0013-invalid-tls-model.diff: -------------------------------------------------------------------------------- 1 | diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt 2 | index b88bf72fe3d..747d0485bf8 100644 3 | --- a/libgomp/configure.tgt 4 | +++ b/libgomp/configure.tgt 5 | @@ -17,6 +17,9 @@ if test $gcc_cv_have_tls = yes ; then 6 | *-*-k*bsd*-gnu*) 7 | ;; 8 | 9 | + *-*-musl*) 10 | + ;; 11 | + 12 | *-*-linux* | *-*-gnu*) 13 | XCFLAGS="${XCFLAGS} -ftls-model=initial-exec -DUSING_INITIAL_EXEC_TLS" 14 | ;; 15 | diff --git a/libitm/configure.tgt b/libitm/configure.tgt 16 | index 4c0b602034b..65e1c83550a 100644 17 | --- a/libitm/configure.tgt 18 | +++ b/libitm/configure.tgt 19 | @@ -31,6 +31,9 @@ 20 | if test "$gcc_cv_have_tls" = yes ; then 21 | case "${target}" in 22 | 23 | + *-*-musl*) 24 | + ;; 25 | + 26 | # For x86, we use slots in the TCB head for most of our TLS. 27 | # The setup of those slots in beginTransaction can afford to 28 | # use the global-dynamic model. 29 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0015-riscv-tls-copy-relocs.diff: -------------------------------------------------------------------------------- 1 | diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c 2 | index 677728e77ed..444d01e87ec 100644 3 | --- a/gcc/config/riscv/riscv.c 4 | +++ b/gcc/config/riscv/riscv.c 5 | @@ -1209,9 +1209,11 @@ riscv_legitimize_tls_address (rtx loc) 6 | rtx dest, tp, tmp; 7 | enum tls_model model = SYMBOL_REF_TLS_MODEL (loc); 8 | 9 | +#if 0 10 | /* Since we support TLS copy relocs, non-PIC TLS accesses may all use LE. */ 11 | if (!flag_pic) 12 | model = TLS_MODEL_LOCAL_EXEC; 13 | +#endif 14 | 15 | switch (model) 16 | { 17 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0016-libstdc++-futex-time64.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc.orig 2020-01-20 14:55:05.507548334 -0500 2 | +++ gcc-9.2.0/libstdc++-v3/src/c++11/futex.cc 2020-01-20 14:56:52.458268068 -0500 3 | @@ -61,7 +61,15 @@ 4 | struct timeval tv; 5 | gettimeofday (&tv, NULL); 6 | // Convert the absolute timeout value to a relative timeout 7 | +#if defined(SYS_futex_time64) && SYS_futex_time64 != SYS_futex 8 | + struct 9 | + { 10 | + long tv_sec; 11 | + long tv_nsec; 12 | + } rt; 13 | +#else 14 | struct timespec rt; 15 | +#endif 16 | rt.tv_sec = __s.count() - tv.tv_sec; 17 | rt.tv_nsec = __ns.count() - tv.tv_usec * 1000; 18 | if (rt.tv_nsec < 0) 19 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0018-m68k-sqrt.diff: -------------------------------------------------------------------------------- 1 | --- gcc-9.2.0.orig/gcc/config/m68k/m68k.md 2019-01-01 07:31:55.000000000 -0500 2 | +++ gcc-9.2.0/gcc/config/m68k/m68k.md 2020-07-01 15:57:20.528408009 -0400 3 | @@ -4126,13 +4126,13 @@ 4 | (define_expand "sqrt2" 5 | [(set (match_operand:FP 0 "nonimmediate_operand" "") 6 | (sqrt:FP (match_operand:FP 1 "general_operand" "")))] 7 | - "TARGET_HARD_FLOAT" 8 | + "(TARGET_68881 && TARGET_68040) || TARGET_COLDFIRE_FPU" 9 | "") 10 | 11 | (define_insn "sqrt2_68881" 12 | [(set (match_operand:FP 0 "nonimmediate_operand" "=f") 13 | (sqrt:FP (match_operand:FP 1 "general_operand" "fm")))] 14 | - "TARGET_68881" 15 | + "TARGET_68881 && TARGET_68040" 16 | { 17 | if (FP_REG_P (operands[1])) 18 | return "fsqrt%.x %1,%0"; 19 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0019-broken-builtin-memcmp.diff: -------------------------------------------------------------------------------- 1 | diff -ur gcc-9.3.0.orig/gcc/builtins.c gcc-9.3.0/gcc/builtins.c 2 | --- gcc-9.3.0.orig/gcc/builtins.c 2020-03-12 11:07:21.000000000 +0000 3 | +++ gcc-9.3.0/gcc/builtins.c 2020-09-23 22:16:54.815251679 +0000 4 | @@ -4658,6 +4658,7 @@ 5 | static rtx 6 | expand_builtin_memcmp (tree exp, rtx target, bool result_eq) 7 | { 8 | + return NULL_RTX; 9 | if (!validate_arglist (exp, 10 | POINTER_TYPE, POINTER_TYPE, INTEGER_TYPE, VOID_TYPE)) 11 | return NULL_RTX; 12 | -------------------------------------------------------------------------------- /patches/gcc-9.4.0/0020-sh-fdpic-pr114641.diff: -------------------------------------------------------------------------------- 1 | --- gcc-11.4.0/gcc/config/sh/sh.c.orig 2024-04-04 05:52:42.125373614 +0900 2 | +++ gcc-11.4.0/gcc/config/sh/sh.c 2024-04-04 22:54:01.875106654 +0900 3 | @@ -9147,7 +9147,7 @@ 4 | { 5 | /* Weak functions may be NULL which doesn't work with 6 | GOTOFFFUNCDESC because the runtime offset is not known. */ 7 | - if (SYMBOL_REF_WEAK (orig)) 8 | + if (SYMBOL_REF_WEAK (orig) || (TREE_PUBLIC(SYMBOL_REF_DECL(orig)) && DECL_VISIBILITY (SYMBOL_REF_DECL(orig)) != VISIBILITY_HIDDEN)) 9 | emit_insn (gen_symGOTFUNCDESC2reg (reg, orig)); 10 | else 11 | emit_insn (gen_symGOTOFFFUNCDESC2reg (reg, orig)); 12 | 13 | -------------------------------------------------------------------------------- /patches/linux-4.19.90/0101-archscripts.diff: -------------------------------------------------------------------------------- 1 | --- linux-4.19.90.orig/Makefile 2019-12-17 14:36:04.000000000 -0500 2 | +++ linux-4.19.90/Makefile 2020-01-30 22:06:04.216550425 -0500 3 | @@ -1173,7 +1173,7 @@ 4 | archscripts: 5 | 6 | PHONY += __headers 7 | -__headers: $(version_h) scripts_basic uapi-asm-generic archheaders archscripts 8 | +__headers: $(version_h) scripts_basic uapi-asm-generic archheaders 9 | $(Q)$(MAKE) $(build)=scripts build_unifdef 10 | 11 | PHONY += headers_install_all 12 | -------------------------------------------------------------------------------- /patches/linux-5.8.5/0101-archscripts.diff: -------------------------------------------------------------------------------- 1 | diff -ur linux-5.8.5.orig/Makefile linux-5.8.5.tmp/Makefile 2 | --- linux-5.8.5.orig/Makefile 2020-08-27 03:31:49.000000000 -0400 3 | +++ linux-5.8.5/Makefile 2020-08-28 19:00:50.980172582 -0400 4 | @@ -1253,7 +1253,7 @@ 5 | hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj 6 | 7 | PHONY += headers 8 | -headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts 9 | +headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders 10 | $(if $(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/Kbuild),, \ 11 | $(error Headers not exportable for the $(SRCARCH) architecture)) 12 | $(Q)$(MAKE) $(hdr-inst)=include/uapi 13 | Only in linux-5.8.5.tmp/: Makefile.orig 14 | Only in linux-5.8.5.tmp/: Makefile.rej 15 | -------------------------------------------------------------------------------- /patches/musl-1.1.14/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.14/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.15/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.15/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.16/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.16/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.17/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.17/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.18/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.18/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.19/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.19/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.20/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.20/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.21/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.21/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.22/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.22/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.23/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.23/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.1.24/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.1.24/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.2.0/0001-broken_arm_vdso.diff: -------------------------------------------------------------------------------- 1 | diff --git a/arch/arm/syscall_arch.h b/arch/arm/syscall_arch.h 2 | index 4b08762d..a877b2cf 100644 3 | --- a/arch/arm/syscall_arch.h 4 | +++ b/arch/arm/syscall_arch.h 5 | @@ -98,12 +98,6 @@ static inline long __syscall6(long n, long a, long b, long c, long d, long e, lo 6 | __asm_syscall(R7_OPERAND, "0"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4), "r"(r5)); 7 | } 8 | 9 | -#define VDSO_USEFUL 10 | -#define VDSO_CGT32_SYM "__vdso_clock_gettime" 11 | -#define VDSO_CGT32_VER "LINUX_2.6" 12 | -#define VDSO_CGT_SYM "__vdso_clock_gettime64" 13 | -#define VDSO_CGT_VER "LINUX_2.6" 14 | - 15 | #define SYSCALL_FADVISE_6_ARG 16 | 17 | #define SYSCALL_IPC_BROKEN_MODE 18 | -------------------------------------------------------------------------------- /patches/musl-1.2.0/0002-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.2.0/0003-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.2.1/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.2.1/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.2.2/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.2.2/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.2.3/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.2.3/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.2.4/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.2.4/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /patches/musl-1.2.5/0001-cve-2025-26519-p1.diff: -------------------------------------------------------------------------------- 1 | From e5adcd97b5196e29991b524237381a0202a60659 Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Sun, 9 Feb 2025 10:07:19 -0500 4 | Subject: [PATCH] iconv: fix erroneous input validation in EUC-KR decoder 5 | 6 | as a result of incorrect bounds checking on the lead byte being 7 | decoded, certain invalid inputs which should produce an encoding 8 | error, such as "\xc8\x41", instead produced out-of-bounds loads from 9 | the ksc table. 10 | 11 | in a worst case, the loaded value may not be a valid unicode scalar 12 | value, in which case, if the output encoding was UTF-8, wctomb would 13 | return (size_t)-1, causing an overflow in the output pointer and 14 | remaining buffer size which could clobber memory outside of the output 15 | buffer. 16 | 17 | bug report was submitted in private by Nick Wellnhofer on account of 18 | potential security implications. 19 | --- 20 | src/locale/iconv.c | 2 +- 21 | 1 file changed, 1 insertion(+), 1 deletion(-) 22 | 23 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 24 | index 9605c8e9..008c93f0 100644 25 | --- a/src/locale/iconv.c 26 | +++ b/src/locale/iconv.c 27 | @@ -502,7 +502,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 28 | if (c >= 93 || d >= 94) { 29 | c += (0xa1-0x81); 30 | d += 0xa1; 31 | - if (c >= 93 || c>=0xc6-0x81 && d>0x52) 32 | + if (c > 0xc6-0x81 || c==0xc6-0x81 && d>0x52) 33 | goto ilseq; 34 | if (d-'A'<26) d = d-'A'; 35 | else if (d-'a'<26) d = d-'a'+26; 36 | -- 37 | 2.21.0 38 | 39 | -------------------------------------------------------------------------------- /patches/musl-1.2.5/0002-cve-2025-26519-p2.diff: -------------------------------------------------------------------------------- 1 | From c47ad25ea3b484e10326f933e927c0bc8cded3da Mon Sep 17 00:00:00 2001 2 | From: Rich Felker 3 | Date: Wed, 12 Feb 2025 17:06:30 -0500 4 | Subject: [PATCH] iconv: harden UTF-8 output code path against input decoder 5 | bugs 6 | 7 | the UTF-8 output code was written assuming an invariant that iconv's 8 | decoders only emit valid Unicode Scalar Values which wctomb can encode 9 | successfully, thereby always returning a value between 1 and 4. 10 | 11 | if this invariant is not satisfied, wctomb returns (size_t)-1, and the 12 | subsequent adjustments to the output buffer pointer and remaining 13 | output byte count overflow, moving the output position backwards, 14 | potentially past the beginning of the buffer, without storing any 15 | bytes. 16 | --- 17 | src/locale/iconv.c | 4 ++++ 18 | 1 file changed, 4 insertions(+) 19 | 20 | diff --git a/src/locale/iconv.c b/src/locale/iconv.c 21 | index 008c93f0..52178950 100644 22 | --- a/src/locale/iconv.c 23 | +++ b/src/locale/iconv.c 24 | @@ -545,6 +545,10 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri 25 | if (*outb < k) goto toobig; 26 | memcpy(*out, tmp, k); 27 | } else k = wctomb_utf8(*out, c); 28 | + /* This failure condition should be unreachable, but 29 | + * is included to prevent decoder bugs from translating 30 | + * into advancement outside the output buffer range. */ 31 | + if (k>4) goto ilseq; 32 | *out += k; 33 | *outb -= k; 34 | break; 35 | -- 36 | 2.21.0 37 | 38 | -------------------------------------------------------------------------------- /presets/j2-fdpic: -------------------------------------------------------------------------------- 1 | TARGET = sh2eb-linux-muslfdpic 2 | GCC_CONFIG += --with-cpu=mj2 3 | 4 | # Optional to produce a smaller toolchain: 5 | # COMMON_CONFIG += --disable-nls 6 | # GCC_CONFIG += --disable-libquadmath --disable-decimal-float 7 | -------------------------------------------------------------------------------- /presets/j2-pie-gplv2: -------------------------------------------------------------------------------- 1 | TARGET = sh2eb-linux-musl 2 | GCC_CONFIG += --with-cpu=mj2 3 | GCC_CONFIG += --enable-default-pie 4 | 5 | # This configuration should be compatible with the old GPLv2 tools, 6 | # but it is not regularly tested. Uncomment the following and remove 7 | # the above --with-cpu=mj2 in order to try: 8 | # GCC_VER = 4.2.1 9 | # BINUTILS_VER = 397a64b3 10 | # BINUTILS_SITE = http://landley.net/aboriginal/mirror 11 | 12 | # Optional to produce a smaller toolchain: 13 | # COMMON_CONFIG += --disable-nls 14 | # GCC_CONFIG += --disable-libquadmath --disable-decimal-float 15 | -------------------------------------------------------------------------------- /versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "CONFIG_SUB_REV": "00b15927", 3 | "GCC_VER": "15.1.0", 4 | "BINUTILS_VER": "2.44", 5 | "MUSL_VER": "git-ae3a8c93", 6 | "GMP_VER": "6.3.0", 7 | "MPC_VER": "1.3.1", 8 | "MPFR_VER": "4.2.2", 9 | "LINUX_VER": "6.15.1", 10 | "ISL_VER": "0.27" 11 | } 12 | -------------------------------------------------------------------------------- /versions.mak: -------------------------------------------------------------------------------- 1 | CONFIG_SUB_REV = 00b15927 2 | GCC_VER = 15.1.0 3 | BINUTILS_VER = 2.44 4 | MUSL_VER = git-ae3a8c93 5 | GMP_VER = 6.3.0 6 | MPC_VER = 1.3.1 7 | MPFR_VER = 4.2.2 8 | LINUX_VER = 6.15.1 9 | ISL_VER = 0.27 10 | -------------------------------------------------------------------------------- /zizmor.yml: -------------------------------------------------------------------------------- 1 | rules: 2 | unpinned-uses: 3 | config: 4 | policies: 5 | "*": ref-pin 6 | --------------------------------------------------------------------------------