diff --git a/package/network/config/firewall4/Makefile b/package/network/config/firewall4/Makefile index e9a4cbdc2c..ee78d72070 100644 --- a/package/network/config/firewall4/Makefile +++ b/package/network/config/firewall4/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall4.git -PKG_SOURCE_DATE:=2022-05-20 -PKG_SOURCE_VERSION:=c22eeeff1ef0884fd3c76f4ff2c72caa9de82fd5 -PKG_MIRROR_HASH:=ccaf776e3b762a2c684aac3adeb2e3a6a651b58253ea03643cc4964172030178 +PKG_SOURCE_DATE:=2022-05-31 +PKG_SOURCE_VERSION:=210991df51587bdb736b4fc74b1200ec6cf6ecc7 +PKG_MIRROR_HASH:=486c3fdf7201db8ae51dee7ffac1e80e7b652b27eca9a8174e0fc6f286a457fa PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile index c0a053cd4f..9de4cb1df8 100644 --- a/package/network/config/netifd/Makefile +++ b/package/network/config/netifd/Makefile @@ -5,9 +5,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/netifd.git -PKG_SOURCE_DATE:=2022-05-19 -PKG_SOURCE_VERSION:=507c0513d1766757d969530c51fe7d368354538d -PKG_MIRROR_HASH:=706ede2ffd787a1f5388f2e80300e8f559a704dda21ebc05356074765593539c +PKG_SOURCE_DATE:=2022-06-01 +PKG_SOURCE_VERSION:=39ef9fe1388029c476db62889ef2ef5661613321 +PKG_MIRROR_HASH:=a17353a33ae4ee0aec790169715e91e634660e15eb33900ec4a23c698425de8a PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=GPL-2.0 diff --git a/package/network/services/uhttpd/Makefile b/package/network/services/uhttpd/Makefile index 616f92a0cb..860b41f1a4 100644 --- a/package/network/services/uhttpd/Makefile +++ b/package/network/services/uhttpd/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git -PKG_SOURCE_DATE:=2022-02-07 -PKG_SOURCE_VERSION:=2f8b1360df25bab375ec60bbba2dce8dd796161c -PKG_MIRROR_HASH:=fe9c57492e4da493e9955994d1af6cf0086305633fa8febef7ab6df10c4798fa +PKG_SOURCE_DATE:=2022-06-01 +PKG_SOURCE_VERSION:=d59d732a10a4a2b9f18af6dfc3facf696108f31e +PKG_MIRROR_HASH:=31caa46ca025a1a7657bd5252d59d4a67d0f1c4b87c15a1bc94663ba3cc899ee PKG_MAINTAINER:=Felix Fietkau PKG_LICENSE:=ISC diff --git a/package/system/fstools/Makefile b/package/system/fstools/Makefile index 3b10ee7f1f..709a825227 100644 --- a/package/system/fstools/Makefile +++ b/package/system/fstools/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/fstools.git -PKG_MIRROR_HASH:=c6239a75f6a3b5b010a48d195006550b0e2154f5b22611484c4979f552c0da7d -PKG_SOURCE_DATE:=2022-05-03 -PKG_SOURCE_VERSION:=9e11b3723ce30b9b8c94ad7d15072a10cf13c0b4 +PKG_MIRROR_HASH:=1b16e5ef533c7b30b3ccc4b7001c18b23c44890021aa4ae54850dbec56e7dc7c +PKG_SOURCE_DATE:=2022-06-02 +PKG_SOURCE_VERSION:=93369be040612c906bcbb1631f44a92fa4122d24 CMAKE_INSTALL:=1 PKG_LICENSE:=GPL-2.0 diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile index 5a355ce377..2c345e7b8f 100644 --- a/package/system/procd/Makefile +++ b/package/system/procd/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git -PKG_MIRROR_HASH:=26c4dd6cfb27ef8f5ef55f7c8d4622ff91e3490917e4fb03f54b138737113251 -PKG_SOURCE_DATE:=2022-05-03 -PKG_SOURCE_VERSION:=652e6df06f8413f19a4786a275862cfe76628093 +PKG_MIRROR_HASH:=0d9b82919492e1ec0df4011b932a210b6256774d0cb1f1e3de24b6dbf36c6a77 +PKG_SOURCE_DATE:=2022-06-01 +PKG_SOURCE_VERSION:=7a0096853594874d4c60266ec338ac23728017df CMAKE_INSTALL:=1 PKG_LICENSE:=GPL-2.0 diff --git a/package/system/rpcd/Makefile b/package/system/rpcd/Makefile index c6ec0c5431..1cf3724542 100644 --- a/package/system/rpcd/Makefile +++ b/package/system/rpcd/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/rpcd.git -PKG_MIRROR_HASH:=186a7246c610fecc282b0966213350ff4508b0db88739345e7c79792db0423ce -PKG_SOURCE_DATE:=2022-02-07 -PKG_SOURCE_VERSION:=909f2a04763dbc745488384b24281eca180452d6 +PKG_MIRROR_HASH:=f5a8f4342ef581fb8750fc41c4e7dfee808a97b3e2a53dbf9d7f51e48b35bae6 +PKG_SOURCE_DATE:=2022-05-31 +PKG_SOURCE_VERSION:=1c4825739b3cf19fe429c19eafa82a7f27aa99b3 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC diff --git a/package/system/ubus/Makefile b/package/system/ubus/Makefile index 7477615c5d..c70defcafa 100644 --- a/package/system/ubus/Makefile +++ b/package/system/ubus/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ubus -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubus.git -PKG_SOURCE_DATE:=2022-02-28 -PKG_SOURCE_VERSION:=584f56a2331471459604ad054b3a7bcc366e0f07 -PKG_MIRROR_HASH:=9bb7025fa5513530e6f407e0514014a8116babe9287d4217d0b8f9315b1f2181 +PKG_SOURCE_DATE:=2022-06-01 +PKG_SOURCE_VERSION:=2bebf93cd3343fe49f22a05ef935e460d2d44f67 +PKG_MIRROR_HASH:=4efd873928089c086bbac02f3ca5bae55904500b6e6f1c4c377181a00b67147f PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE)) CMAKE_INSTALL:=1 diff --git a/package/utils/ucode/Makefile b/package/utils/ucode/Makefile index 5af2109353..e69aed5235 100644 --- a/package/utils/ucode/Makefile +++ b/package/utils/ucode/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/jow-/ucode.git -PKG_SOURCE_DATE:=2022-05-20 -PKG_SOURCE_VERSION:=081871e18db544e2c834a516950e1c16c9bc4d2c -PKG_MIRROR_HASH:=5ff1ee6d5549e83ac7bc5f5877d303c82cdb8e640305de5d95cbd3ce66ced133 +PKG_SOURCE_DATE:=2022-06-01 +PKG_SOURCE_VERSION:=b211ca0e420d8086d3fa0358413a6f8b44df1115 +PKG_MIRROR_HASH:=9d0a8583d9ed10a634866b54a30162f47f6a1700e10287aba94bffbc60e9cbf2 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC diff --git a/target/linux/generic/config-5.10 b/target/linux/generic/config-5.10 index d9117a25a6..0e9eba8175 100644 --- a/target/linux/generic/config-5.10 +++ b/target/linux/generic/config-5.10 @@ -2575,6 +2575,8 @@ CONFIG_INET=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +# CONFIG_INIT_STACK_ALL_PATTERN is not set +# CONFIG_INIT_STACK_ALL_ZERO is not set CONFIG_INIT_STACK_NONE=y CONFIG_INOTIFY_USER=y # CONFIG_INPUT is not set diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15 index 3ae28b3b95..61c7706a48 100644 --- a/target/linux/generic/config-5.15 +++ b/target/linux/generic/config-5.15 @@ -2665,6 +2665,8 @@ CONFIG_INET=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +# CONFIG_INIT_STACK_ALL_PATTERN is not set +# CONFIG_INIT_STACK_ALL_ZERO is not set CONFIG_INIT_STACK_NONE=y CONFIG_INOTIFY_USER=y # CONFIG_INPUT is not set diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index 357589e172..f725ad5785 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -14,6 +14,9 @@ choice config GCC_USE_VERSION_11 bool "gcc 11.x" + + config GCC_USE_VERSION_12 + bool "gcc 12.x" endchoice config GCC_USE_GRAPHITE diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version index 61506b670b..1caa51a291 100644 --- a/toolchain/gcc/Config.version +++ b/toolchain/gcc/Config.version @@ -6,8 +6,13 @@ config GCC_VERSION_10 default y if GCC_USE_VERSION_10 bool +config GCC_VERSION_12 + default y if GCC_USE_VERSION_12 + bool + config GCC_VERSION string default "8.4.0" if GCC_VERSION_8 default "10.3.0" if GCC_VERSION_10 - default "11.2.0" + default "12.1.0" if GCC_VERSION_12 + default "11.3.0" diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk index bef4fa37f8..8fa9459f50 100644 --- a/toolchain/gcc/common.mk +++ b/toolchain/gcc/common.mk @@ -36,8 +36,12 @@ ifeq ($(PKG_VERSION),10.3.0) PKG_HASH:=64f404c1a650f27fc33da242e1f2df54952e3963a49e06e73f6940f3223ac344 endif -ifeq ($(PKG_VERSION),11.2.0) - PKG_HASH:=d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b +ifeq ($(PKG_VERSION),11.3.0) + PKG_HASH:=b47cf2818691f5b1e21df2bb38c795fac2cfbd640ede2d0a5e1c89e338a3ac39 +endif + +ifeq ($(PKG_VERSION),12.1.0) + PKG_HASH:=62fd634889f31c02b64af2c468f064b47ad1ca78411c45abe6ac4b5f8dd19c7b endif PATCH_DIR=../patches/$(GCC_VERSION) @@ -180,6 +184,13 @@ define Host/SetToolchainInfo $(SED) 's,GCC_VERSION=.*,GCC_VERSION=$(GCC_VERSION),' $(TOOLCHAIN_DIR)/info.mk endef + +ifdef CONFIG_GCC_USE_VERSION_12 + GCC_VERSION_FILE:=gcc/genversion.cc +else + GCC_VERSION_FILE:=gcc/version.c +endif + ifneq ($(GCC_PREPARE),) define Host/Prepare $(call Host/SetToolchainInfo) @@ -188,8 +199,7 @@ ifneq ($(GCC_PREPARE),) $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_SOURCE_DIR)/ $(SED) 's,^MULTILIB_OSDIRNAMES,# MULTILIB_OSDIRNAMES,' $(HOST_SOURCE_DIR)/gcc/config/*/t-* $(SED) 'd' $(HOST_SOURCE_DIR)/gcc/DEV-PHASE - $(SED) 's, DATESTAMP,,' $(HOST_SOURCE_DIR)/gcc/version.c - #(cd $(HOST_SOURCE_DIR)/libstdc++-v3; autoconf;); + $(SED) 's, DATESTAMP,,' $(HOST_SOURCE_DIR)/$(GCC_VERSION_FILE) $(SED) 's,gcc_no_link=yes,gcc_no_link=no,' $(HOST_SOURCE_DIR)/libstdc++-v3/configure mkdir -p $(GCC_BUILD_DIR) endef diff --git a/toolchain/gcc/patches/11.2.0/001-v11.3.0-ranger-Fix-up-fold_using_range-range_of_address-PR10.patch b/toolchain/gcc/patches/11.2.0/001-v11.3.0-ranger-Fix-up-fold_using_range-range_of_address-PR10.patch deleted file mode 100644 index 71bbfe5a1d..0000000000 --- a/toolchain/gcc/patches/11.2.0/001-v11.3.0-ranger-Fix-up-fold_using_range-range_of_address-PR10.patch +++ /dev/null @@ -1,114 +0,0 @@ -From a6219e8e0719b14f474b0dcaa7bde2f4e57474f9 Mon Sep 17 00:00:00 2001 -From: Jakub Jelinek -Date: Wed, 17 Nov 2021 13:45:53 +0100 -Subject: [PATCH] ranger: Fix up fold_using_range::range_of_address [PR103255] - -If on &base->member the offset isn't constant or isn't zero and --fdelete-null-pointer-checks and not -fwrapv-pointer and base has a range -that doesn't include NULL, we return the range of the base. -Usually it isn't a big deal, because for most pointers we just use -varying, range_zero and range_nonzero ranges and nothing beyond that, -but if a pointer is initialized from a constant, we actually track the -exact range and in that case this causes miscompilation. -As discussed on IRC, I think doing something like: - offset_int off2; - if (off_cst && off.is_constant (&off2)) - { - tree cst = wide_int_to_tree (sizetype, off2 / BITS_PER_UNIT); - // adjust range r with POINTER_PLUS_EXPR cst - if (!range_includes_zero_p (&r)) - return true; - } - // Fallback - r = range_nonzero (TREE_TYPE (gimple_assign_rhs1 (stmt))); - return true; -could work, given that most of the pointer ranges are just the simple ones -perhaps it is too much for little benefit. - -2021-11-17 Jakub Jelinek - - PR tree-optimization/103255 - * gimple-range.cc (fold_using_range::range_of_address): Return - range_nonzero rather than unadjusted base's range. Formatting fixes. - - * gcc.c-torture/execute/pr103255.c: New test. - -(cherry picked from commit c39cb6bf835ca12e590eaa6f90222e51be207c50) ---- - gcc/gimple-range.cc | 16 +++++--- - .../gcc.c-torture/execute/pr103255.c | 41 +++++++++++++++++++ - 2 files changed, 52 insertions(+), 5 deletions(-) - create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr103255.c - ---- a/gcc/gimple-range.cc -+++ b/gcc/gimple-range.cc -@@ -491,14 +491,20 @@ gimple_ranger::range_of_address (irange - } - /* If &X->a is equal to X, the range of X is the result. */ - if (off_cst && known_eq (off, 0)) -- return true; -+ return true; - else if (flag_delete_null_pointer_checks - && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (expr))) - { -- /* For -fdelete-null-pointer-checks -fno-wrapv-pointer we don't -- allow going from non-NULL pointer to NULL. */ -- if(!range_includes_zero_p (&r)) -- return true; -+ /* For -fdelete-null-pointer-checks -fno-wrapv-pointer we don't -+ allow going from non-NULL pointer to NULL. */ -+ if (!range_includes_zero_p (&r)) -+ { -+ /* We could here instead adjust r by off >> LOG2_BITS_PER_UNIT -+ using POINTER_PLUS_EXPR if off_cst and just fall back to -+ this. */ -+ r = range_nonzero (TREE_TYPE (gimple_assign_rhs1 (stmt))); -+ return true; -+ } - } - /* If MEM_REF has a "positive" offset, consider it non-NULL - always, for -fdelete-null-pointer-checks also "negative" ---- /dev/null -+++ b/gcc/testsuite/gcc.c-torture/execute/pr103255.c -@@ -0,0 +1,41 @@ -+/* PR tree-optimization/103255 */ -+ -+struct H -+{ -+ unsigned a; -+ unsigned b; -+ unsigned c; -+}; -+ -+#if __SIZEOF_POINTER__ >= 4 -+#define ADDR 0x400000 -+#else -+#define ADDR 0x4000 -+#endif -+#define OFF 0x20 -+ -+int -+main () -+{ -+ struct H *h = 0; -+ unsigned long o; -+ volatile int t = 1; -+ -+ for (o = OFF; o <= OFF; o += 0x1000) -+ { -+ struct H *u; -+ u = (struct H *) (ADDR + o); -+ if (t) -+ { -+ h = u; -+ break; -+ } -+ } -+ -+ if (h == 0) -+ return 0; -+ unsigned *tt = &h->b; -+ if ((__SIZE_TYPE__) tt != (ADDR + OFF + __builtin_offsetof (struct H, b))) -+ __builtin_abort (); -+ return 0; -+} diff --git a/toolchain/gcc/patches/11.2.0/002-case_insensitive.patch b/toolchain/gcc/patches/11.3.0/002-case_insensitive.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/002-case_insensitive.patch rename to toolchain/gcc/patches/11.3.0/002-case_insensitive.patch diff --git a/toolchain/gcc/patches/11.2.0/010-documentation.patch b/toolchain/gcc/patches/11.3.0/010-documentation.patch similarity index 94% rename from toolchain/gcc/patches/11.2.0/010-documentation.patch rename to toolchain/gcc/patches/11.3.0/010-documentation.patch index 885bd0301d..25a5e1e99c 100644 --- a/toolchain/gcc/patches/11.2.0/010-documentation.patch +++ b/toolchain/gcc/patches/11.3.0/010-documentation.patch @@ -12,7 +12,7 @@ Date: Tue Feb 26 16:16:33 2013 +0000 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in -@@ -3355,18 +3355,10 @@ doc/gcc.info: $(TEXI_GCC_FILES) +@@ -3348,18 +3348,10 @@ doc/gcc.info: $(TEXI_GCC_FILES) doc/gccint.info: $(TEXI_GCCINT_FILES) doc/cppinternals.info: $(TEXI_CPPINT_FILES) diff --git a/toolchain/gcc/patches/11.2.0/011-v12-configure-define-TARGET_LIBC_GNUSTACK-on-musl.patch b/toolchain/gcc/patches/11.3.0/011-v12-configure-define-TARGET_LIBC_GNUSTACK-on-musl.patch similarity index 96% rename from toolchain/gcc/patches/11.2.0/011-v12-configure-define-TARGET_LIBC_GNUSTACK-on-musl.patch rename to toolchain/gcc/patches/11.3.0/011-v12-configure-define-TARGET_LIBC_GNUSTACK-on-musl.patch index 94105bdf9f..423def6000 100644 --- a/toolchain/gcc/patches/11.2.0/011-v12-configure-define-TARGET_LIBC_GNUSTACK-on-musl.patch +++ b/toolchain/gcc/patches/11.3.0/011-v12-configure-define-TARGET_LIBC_GNUSTACK-on-musl.patch @@ -22,7 +22,7 @@ Signed-off-by: Ilya Lipnitskiy --- a/gcc/configure +++ b/gcc/configure -@@ -30954,6 +30954,9 @@ fi +@@ -31533,6 +31533,9 @@ fi # Check if the target LIBC handles PT_GNU_STACK. gcc_cv_libc_gnustack=unknown case "$target" in @@ -34,7 +34,7 @@ Signed-off-by: Ilya Lipnitskiy if test $glibc_version_major -gt 2 \ --- a/gcc/configure.ac +++ b/gcc/configure.ac -@@ -6788,6 +6788,9 @@ fi +@@ -7023,6 +7023,9 @@ fi # Check if the target LIBC handles PT_GNU_STACK. gcc_cv_libc_gnustack=unknown case "$target" in diff --git a/toolchain/gcc/patches/11.2.0/110-Fix-MIPS-PR-84790.patch b/toolchain/gcc/patches/11.3.0/110-Fix-MIPS-PR-84790.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/110-Fix-MIPS-PR-84790.patch rename to toolchain/gcc/patches/11.3.0/110-Fix-MIPS-PR-84790.patch diff --git a/toolchain/gcc/patches/11.2.0/230-musl_libssp.patch b/toolchain/gcc/patches/11.3.0/230-musl_libssp.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/230-musl_libssp.patch rename to toolchain/gcc/patches/11.3.0/230-musl_libssp.patch diff --git a/toolchain/gcc/patches/11.2.0/300-mips_Os_cpu_rtx_cost_model.patch b/toolchain/gcc/patches/11.3.0/300-mips_Os_cpu_rtx_cost_model.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/300-mips_Os_cpu_rtx_cost_model.patch rename to toolchain/gcc/patches/11.3.0/300-mips_Os_cpu_rtx_cost_model.patch diff --git a/toolchain/gcc/patches/11.2.0/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches/11.3.0/810-arm-softfloat-libgcc.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/810-arm-softfloat-libgcc.patch rename to toolchain/gcc/patches/11.3.0/810-arm-softfloat-libgcc.patch diff --git a/toolchain/gcc/patches/11.2.0/820-libgcc_pic.patch b/toolchain/gcc/patches/11.3.0/820-libgcc_pic.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/820-libgcc_pic.patch rename to toolchain/gcc/patches/11.3.0/820-libgcc_pic.patch diff --git a/toolchain/gcc/patches/11.2.0/840-armv4_pass_fix-v4bx_to_ld.patch b/toolchain/gcc/patches/11.3.0/840-armv4_pass_fix-v4bx_to_ld.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/840-armv4_pass_fix-v4bx_to_ld.patch rename to toolchain/gcc/patches/11.3.0/840-armv4_pass_fix-v4bx_to_ld.patch diff --git a/toolchain/gcc/patches/11.2.0/850-use_shared_libgcc.patch b/toolchain/gcc/patches/11.3.0/850-use_shared_libgcc.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/850-use_shared_libgcc.patch rename to toolchain/gcc/patches/11.3.0/850-use_shared_libgcc.patch diff --git a/toolchain/gcc/patches/11.2.0/851-libgcc_no_compat.patch b/toolchain/gcc/patches/11.3.0/851-libgcc_no_compat.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/851-libgcc_no_compat.patch rename to toolchain/gcc/patches/11.3.0/851-libgcc_no_compat.patch diff --git a/toolchain/gcc/patches/11.2.0/870-ppc_no_crtsavres.patch b/toolchain/gcc/patches/11.3.0/870-ppc_no_crtsavres.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/870-ppc_no_crtsavres.patch rename to toolchain/gcc/patches/11.3.0/870-ppc_no_crtsavres.patch diff --git a/toolchain/gcc/patches/11.2.0/881-no_tm_section.patch b/toolchain/gcc/patches/11.3.0/881-no_tm_section.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/881-no_tm_section.patch rename to toolchain/gcc/patches/11.3.0/881-no_tm_section.patch diff --git a/toolchain/gcc/patches/11.2.0/900-bad-mips16-crt.patch b/toolchain/gcc/patches/11.3.0/900-bad-mips16-crt.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/900-bad-mips16-crt.patch rename to toolchain/gcc/patches/11.3.0/900-bad-mips16-crt.patch diff --git a/toolchain/gcc/patches/11.2.0/910-mbsd_multi.patch b/toolchain/gcc/patches/11.3.0/910-mbsd_multi.patch similarity index 97% rename from toolchain/gcc/patches/11.2.0/910-mbsd_multi.patch rename to toolchain/gcc/patches/11.3.0/910-mbsd_multi.patch index 9f9d3226e8..21f532043e 100644 --- a/toolchain/gcc/patches/11.2.0/910-mbsd_multi.patch +++ b/toolchain/gcc/patches/11.3.0/910-mbsd_multi.patch @@ -40,7 +40,7 @@ Date: Tue Jul 31 00:52:27 2007 +0000 case OPT_fconstant_string_class_: constant_string_class_name = arg; break; -@@ -1196,6 +1205,47 @@ c_common_init (void) +@@ -1198,6 +1207,47 @@ c_common_init (void) return false; } @@ -114,7 +114,7 @@ Date: Tue Jul 31 00:52:27 2007 +0000 ; On SVR4 targets, it also controls whether or not to emit a --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi -@@ -9055,6 +9055,17 @@ This option is only supported for C and +@@ -9058,6 +9058,17 @@ This option is only supported for C and @option{-Wall} and by @option{-Wpedantic}, which can be disabled with @option{-Wno-pointer-sign}. diff --git a/toolchain/gcc/patches/11.2.0/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/11.3.0/920-specs_nonfatal_getenv.patch similarity index 90% rename from toolchain/gcc/patches/11.2.0/920-specs_nonfatal_getenv.patch rename to toolchain/gcc/patches/11.3.0/920-specs_nonfatal_getenv.patch index dda33c0202..83bcb25a80 100644 --- a/toolchain/gcc/patches/11.2.0/920-specs_nonfatal_getenv.patch +++ b/toolchain/gcc/patches/11.3.0/920-specs_nonfatal_getenv.patch @@ -7,7 +7,7 @@ Date: Sat Apr 21 03:02:39 2012 +0000 --- a/gcc/gcc.c +++ b/gcc/gcc.c -@@ -10100,8 +10100,10 @@ getenv_spec_function (int argc, const ch +@@ -10106,8 +10106,10 @@ getenv_spec_function (int argc, const ch } if (!value) diff --git a/toolchain/gcc/patches/11.2.0/931-libffi-fix-MIPS-softfloat-build-issue.patch b/toolchain/gcc/patches/11.3.0/931-libffi-fix-MIPS-softfloat-build-issue.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/931-libffi-fix-MIPS-softfloat-build-issue.patch rename to toolchain/gcc/patches/11.3.0/931-libffi-fix-MIPS-softfloat-build-issue.patch diff --git a/toolchain/gcc/patches/11.2.0/960-gotools-fix-compilation-when-making-cross-compiler.patch b/toolchain/gcc/patches/11.3.0/960-gotools-fix-compilation-when-making-cross-compiler.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/960-gotools-fix-compilation-when-making-cross-compiler.patch rename to toolchain/gcc/patches/11.3.0/960-gotools-fix-compilation-when-making-cross-compiler.patch diff --git a/toolchain/gcc/patches/11.2.0/970-macos_arm64-building-fix.patch b/toolchain/gcc/patches/11.3.0/970-macos_arm64-building-fix.patch similarity index 100% rename from toolchain/gcc/patches/11.2.0/970-macos_arm64-building-fix.patch rename to toolchain/gcc/patches/11.3.0/970-macos_arm64-building-fix.patch diff --git a/toolchain/gcc/patches/12.1.0/002-case_insensitive.patch b/toolchain/gcc/patches/12.1.0/002-case_insensitive.patch new file mode 100644 index 0000000000..409497e5a3 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/002-case_insensitive.patch @@ -0,0 +1,24 @@ +commit 81cc26c706b2bc8c8c1eb1a322e5c5157900836e +Author: Felix Fietkau +Date: Sun Oct 19 21:45:51 2014 +0000 + + gcc: do not assume that the Mac OS X filesystem is case insensitive + + Signed-off-by: Felix Fietkau + + SVN-Revision: 42973 + +--- a/include/filenames.h ++++ b/include/filenames.h +@@ -44,11 +44,6 @@ extern "C" { + # define IS_DIR_SEPARATOR(c) IS_DOS_DIR_SEPARATOR (c) + # define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f) + #else /* not DOSish */ +-# if defined(__APPLE__) +-# ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM +-# define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1 +-# endif +-# endif /* __APPLE__ */ + # define HAS_DRIVE_SPEC(f) (0) + # define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c) + # define IS_ABSOLUTE_PATH(f) IS_UNIX_ABSOLUTE_PATH (f) diff --git a/toolchain/gcc/patches/12.1.0/010-documentation.patch b/toolchain/gcc/patches/12.1.0/010-documentation.patch new file mode 100644 index 0000000000..39ee48ed67 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/010-documentation.patch @@ -0,0 +1,35 @@ +commit 098bd91f5eae625c7d2ee621e10930fc4434e5e2 +Author: Luka Perkov +Date: Tue Feb 26 16:16:33 2013 +0000 + + gcc: don't build documentation + + This closes #13039. + + Signed-off-by: Luka Perkov + + SVN-Revision: 35807 + +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -3366,18 +3366,10 @@ doc/gcc.info: $(TEXI_GCC_FILES) + doc/gccint.info: $(TEXI_GCCINT_FILES) + doc/cppinternals.info: $(TEXI_CPPINT_FILES) + +-doc/%.info: %.texi +- if [ x$(BUILD_INFO) = xinfo ]; then \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \ +- -I $(gcc_docdir)/include -o $@ $<; \ +- fi ++doc/%.info: + + # Duplicate entry to handle renaming of gccinstall.info +-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES) +- if [ x$(BUILD_INFO) = xinfo ]; then \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \ +- -I $(gcc_docdir)/include -o $@ $<; \ +- fi ++doc/gccinstall.info: + + doc/cpp.dvi: $(TEXI_CPP_FILES) + doc/gcc.dvi: $(TEXI_GCC_FILES) diff --git a/toolchain/gcc/patches/12.1.0/110-Fix-MIPS-PR-84790.patch b/toolchain/gcc/patches/12.1.0/110-Fix-MIPS-PR-84790.patch new file mode 100644 index 0000000000..856fd6a46c --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/110-Fix-MIPS-PR-84790.patch @@ -0,0 +1,20 @@ +Fix https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84790. +MIPS16 functions have a static assembler prologue which clobbers +registers v0 and v1. Add these register clobbers to function call +instructions. + +--- a/gcc/config/mips/mips.cc ++++ b/gcc/config/mips/mips.cc +@@ -3134,6 +3134,12 @@ mips_emit_call_insn (rtx pattern, rtx or + emit_insn (gen_update_got_version ()); + } + ++ if (TARGET_MIPS16 && TARGET_USE_GOT) ++ { ++ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS16_PIC_TEMP); ++ clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS_PROLOGUE_TEMP (word_mode)); ++ } ++ + if (TARGET_MIPS16 + && TARGET_EXPLICIT_RELOCS + && TARGET_CALL_CLOBBERED_GP) diff --git a/toolchain/gcc/patches/12.1.0/230-musl_libssp.patch b/toolchain/gcc/patches/12.1.0/230-musl_libssp.patch new file mode 100644 index 0000000000..3ce5e49587 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/230-musl_libssp.patch @@ -0,0 +1,13 @@ +--- a/gcc/gcc.cc ++++ b/gcc/gcc.cc +@@ -985,7 +985,9 @@ proper position among the other output f + #endif + + #ifndef LINK_SSP_SPEC +-#ifdef TARGET_LIBC_PROVIDES_SSP ++#if DEFAULT_LIBC == LIBC_MUSL ++#define LINK_SSP_SPEC "-lssp_nonshared" ++#elif defined(TARGET_LIBC_PROVIDES_SSP) + #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ + "|fstack-protector-strong|fstack-protector-explicit:}" + #else diff --git a/toolchain/gcc/patches/12.1.0/300-mips_Os_cpu_rtx_cost_model.patch b/toolchain/gcc/patches/12.1.0/300-mips_Os_cpu_rtx_cost_model.patch new file mode 100644 index 0000000000..1d223f2a0f --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/300-mips_Os_cpu_rtx_cost_model.patch @@ -0,0 +1,21 @@ +commit ecf7671b769fe96f7b5134be442089f8bdba55d2 +Author: Felix Fietkau +Date: Thu Aug 4 20:29:45 2016 +0200 + +gcc: add a patch to generate better code with Os on mips + +Also happens to reduce compressed code size a bit + +Signed-off-by: Felix Fietkau + +--- a/gcc/config/mips/mips.cc ++++ b/gcc/config/mips/mips.cc +@@ -20216,7 +20216,7 @@ mips_option_override (void) + flag_pcc_struct_return = 0; + + /* Decide which rtx_costs structure to use. */ +- if (optimize_size) ++ if (0 && optimize_size) + mips_cost = &mips_rtx_cost_optimize_size; + else + mips_cost = &mips_rtx_cost_data[mips_tune]; diff --git a/toolchain/gcc/patches/12.1.0/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches/12.1.0/810-arm-softfloat-libgcc.patch new file mode 100644 index 0000000000..5c9d86aead --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/810-arm-softfloat-libgcc.patch @@ -0,0 +1,33 @@ +commit 8570c4be394cff7282f332f97da2ff569a927ddb +Author: Imre Kaloz +Date: Wed Feb 2 20:06:12 2011 +0000 + + fixup arm soft-float symbols + + SVN-Revision: 25325 + +--- a/libgcc/config/arm/t-linux ++++ b/libgcc/config/arm/t-linux +@@ -1,6 +1,10 @@ + LIB1ASMSRC = arm/lib1funcs.S + LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ +- _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 ++ _ctzsi2 _arm_addsubdf3 _arm_addsubsf3 \ ++ _arm_negdf2 _arm_muldivdf3 _arm_cmpdf2 _arm_unorddf2 \ ++ _arm_fixdfsi _arm_fixunsdfsi _arm_truncdfsf2 \ ++ _arm_negsf2 _arm_muldivsf3 _arm_cmpsf2 _arm_unordsf2 \ ++ _arm_fixsfsi _arm_fixunssfsi + + # Just for these, we omit the frame pointer since it makes such a big + # difference. +--- a/gcc/config/arm/linux-elf.h ++++ b/gcc/config/arm/linux-elf.h +@@ -58,8 +58,6 @@ + %{shared:-lc} \ + %{!shared:%{profile:-lc_p}%{!profile:-lc}}" + +-#define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc" +- + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ diff --git a/toolchain/gcc/patches/12.1.0/820-libgcc_pic.patch b/toolchain/gcc/patches/12.1.0/820-libgcc_pic.patch new file mode 100644 index 0000000000..525a95b565 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/820-libgcc_pic.patch @@ -0,0 +1,44 @@ +commit c96312958c0621e72c9b32da5bc224ffe2161384 +Author: Felix Fietkau +Date: Mon Oct 19 23:26:09 2009 +0000 + + gcc: create a proper libgcc_pic.a static library for relinking (4.3.3+ for now, backport will follow) + + SVN-Revision: 18086 + +--- a/libgcc/Makefile.in ++++ b/libgcc/Makefile.in +@@ -930,11 +930,12 @@ $(libgcov-driver-objects): %$(objext): $ + + # Static libraries. + libgcc.a: $(libgcc-objects) ++libgcc_pic.a: $(libgcc-s-objects) + libgcov.a: $(libgcov-objects) + libunwind.a: $(libunwind-objects) + libgcc_eh.a: $(libgcc-eh-objects) + +-libgcc.a libgcov.a libunwind.a libgcc_eh.a: ++libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a: + -rm -f $@ + + objects="$(objects)"; \ +@@ -958,7 +959,7 @@ all: libunwind.a + endif + + ifeq ($(enable_shared),yes) +-all: libgcc_eh.a libgcc_s$(SHLIB_EXT) ++all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT) + ifneq ($(LIBUNWIND),) + all: libunwind$(SHLIB_EXT) + libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT) +@@ -1164,6 +1165,10 @@ install-shared: + chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a + $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a + ++ $(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/ ++ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a ++ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a ++ + $(subst @multilib_dir@,$(MULTIDIR),$(subst \ + @shlib_base_name@,libgcc_s,$(subst \ + @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL)))) diff --git a/toolchain/gcc/patches/12.1.0/840-armv4_pass_fix-v4bx_to_ld.patch b/toolchain/gcc/patches/12.1.0/840-armv4_pass_fix-v4bx_to_ld.patch new file mode 100644 index 0000000000..e3cb616c4e --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/840-armv4_pass_fix-v4bx_to_ld.patch @@ -0,0 +1,28 @@ +commit 7edc8ca5456d9743dd0075eb3cc5b04f4f24c8cc +Author: Imre Kaloz +Date: Wed Feb 2 19:34:36 2011 +0000 + + add armv4 fixup patches + + SVN-Revision: 25322 + + +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -91,10 +91,15 @@ + #define MUSL_DYNAMIC_LINKER \ + "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1" + ++/* For armv4 we pass --fix-v4bx to linker to support EABI */ ++#undef TARGET_FIX_V4BX_SPEC ++#define TARGET_FIX_V4BX_SPEC " %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*"\ ++ "|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx}" ++ + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ + #undef LINK_SPEC +-#define LINK_SPEC EABI_LINK_SPEC \ ++#define LINK_SPEC EABI_LINK_SPEC TARGET_FIX_V4BX_SPEC \ + LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \ + LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC) + diff --git a/toolchain/gcc/patches/12.1.0/850-use_shared_libgcc.patch b/toolchain/gcc/patches/12.1.0/850-use_shared_libgcc.patch new file mode 100644 index 0000000000..7be30f3283 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/850-use_shared_libgcc.patch @@ -0,0 +1,54 @@ +commit dcfc40358b5a3cae7320c17f8d1cebd5ad5540cd +Author: Felix Fietkau +Date: Sun Feb 12 20:25:47 2012 +0000 + + gcc 4.6: port over the missing patch 850-use_shared_libgcc.patch to prevent libgcc crap from leaking into every single binary + + SVN-Revision: 30486 +--- a/gcc/config/arm/linux-eabi.h ++++ b/gcc/config/arm/linux-eabi.h +@@ -132,10 +132,6 @@ + "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \ + LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC) + +-/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we +- do not use -lfloat. */ +-#undef LIBGCC_SPEC +- + /* Clear the instruction cache from `beg' to `end'. This is + implemented in lib1funcs.S, so ensure an error if this definition + is used. */ +--- a/gcc/config/linux.h ++++ b/gcc/config/linux.h +@@ -71,6 +71,10 @@ see the files COPYING3 and COPYING.RUNTI + builtin_version ("CRuntime_Musl"); \ + } while (0) + ++#ifndef LIBGCC_SPEC ++#define LIBGCC_SPEC "%{static|static-libgcc:-lgcc}%{!static:%{!static-libgcc:-lgcc_s}}" ++#endif ++ + /* Determine which dynamic linker to use depending on whether GLIBC or + uClibc or Bionic or musl is the default C library and whether + -muclibc or -mglibc or -mbionic or -mmusl has been passed to change +--- a/libgcc/mkmap-symver.awk ++++ b/libgcc/mkmap-symver.awk +@@ -136,5 +136,5 @@ function output(lib) { + else if (inherit[lib]) + printf("} %s;\n", inherit[lib]); + else +- printf ("\n local:\n\t*;\n};\n"); ++ printf ("\n\t*;\n};\n"); + } +--- a/gcc/config/rs6000/linux.h ++++ b/gcc/config/rs6000/linux.h +@@ -67,6 +67,9 @@ + #undef CPP_OS_DEFAULT_SPEC + #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)" + ++#undef LIBGCC_SPEC ++#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc" ++ + #undef LINK_SHLIB_SPEC + #define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}} \ + %{static-pie:-static -pie --no-dynamic-linker -z text}" diff --git a/toolchain/gcc/patches/12.1.0/851-libgcc_no_compat.patch b/toolchain/gcc/patches/12.1.0/851-libgcc_no_compat.patch new file mode 100644 index 0000000000..d710e40717 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/851-libgcc_no_compat.patch @@ -0,0 +1,22 @@ +commit 64661de100da1ec1061ef3e5e400285dce115e6b +Author: Felix Fietkau +Date: Sun May 10 13:16:35 2015 +0000 + + gcc: add some size optimization patches + + Signed-off-by: Felix Fietkau + + SVN-Revision: 45664 + +--- a/libgcc/config/t-libunwind ++++ b/libgcc/config/t-libunwind +@@ -2,8 +2,7 @@ + + HOST_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER + +-LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ +- $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c ++LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c + LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c + + # Override the default value from t-slibgcc-elf-ver and mention -lunwind diff --git a/toolchain/gcc/patches/12.1.0/870-ppc_no_crtsavres.patch b/toolchain/gcc/patches/12.1.0/870-ppc_no_crtsavres.patch new file mode 100644 index 0000000000..e51079dc13 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/870-ppc_no_crtsavres.patch @@ -0,0 +1,11 @@ +--- a/gcc/config/rs6000/rs6000-logue.cc ++++ b/gcc/config/rs6000/rs6000-logue.cc +@@ -348,7 +348,7 @@ rs6000_savres_strategy (rs6000_stack_t * + /* Define cutoff for using out-of-line functions to save registers. */ + if (DEFAULT_ABI == ABI_V4 || TARGET_ELF) + { +- if (!optimize_size) ++ if (1) + { + strategy |= SAVE_INLINE_FPRS | REST_INLINE_FPRS; + strategy |= SAVE_INLINE_GPRS | REST_INLINE_GPRS; diff --git a/toolchain/gcc/patches/12.1.0/881-no_tm_section.patch b/toolchain/gcc/patches/12.1.0/881-no_tm_section.patch new file mode 100644 index 0000000000..2029910fd0 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/881-no_tm_section.patch @@ -0,0 +1,11 @@ +--- a/libgcc/crtstuff.c ++++ b/libgcc/crtstuff.c +@@ -152,7 +152,7 @@ call_ ## FUNC (void) \ + #endif + + #if !defined(USE_TM_CLONE_REGISTRY) && defined(OBJECT_FORMAT_ELF) +-# define USE_TM_CLONE_REGISTRY 1 ++# define USE_TM_CLONE_REGISTRY 0 + #elif !defined(USE_TM_CLONE_REGISTRY) + # define USE_TM_CLONE_REGISTRY 0 + #endif diff --git a/toolchain/gcc/patches/12.1.0/900-bad-mips16-crt.patch b/toolchain/gcc/patches/12.1.0/900-bad-mips16-crt.patch new file mode 100644 index 0000000000..dd6e9dc889 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/900-bad-mips16-crt.patch @@ -0,0 +1,9 @@ +--- a/libgcc/config/mips/t-mips16 ++++ b/libgcc/config/mips/t-mips16 +@@ -43,3 +43,6 @@ SYNC_CFLAGS = -mno-mips16 + + # Version these symbols if building libgcc.so. + SHLIB_MAPFILES += $(srcdir)/config/mips/libgcc-mips16.ver ++ ++CRTSTUFF_T_CFLAGS += -mno-mips16 ++CRTSTUFF_T_CFLAGS_S += -mno-mips16 diff --git a/toolchain/gcc/patches/12.1.0/910-mbsd_multi.patch b/toolchain/gcc/patches/12.1.0/910-mbsd_multi.patch new file mode 100644 index 0000000000..37aba93b94 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/910-mbsd_multi.patch @@ -0,0 +1,146 @@ +commit 99368862e44740ff4fd33760893f04e14f9dbdf1 +Author: Felix Fietkau +Date: Tue Jul 31 00:52:27 2007 +0000 + + Port the mbsd_multi patch from freewrt, which adds -fhonour-copts. This will emit warnings in packages that don't use our target cflags properly + + SVN-Revision: 8256 + + This patch brings over a feature from MirBSD: + * -fhonour-copts + If this option is not given, it's warned (depending + on environment variables). This is to catch errors + of misbuilt packages which override CFLAGS themselves. + + This patch was authored by Thorsten Glaser + with copyright assignment to the FSF in effect. + +--- a/gcc/c-family/c-opts.cc ++++ b/gcc/c-family/c-opts.cc +@@ -107,6 +107,9 @@ static dump_flags_t original_dump_flags; + /* Whether any standard preincluded header has been preincluded. */ + static bool done_preinclude; + ++/* Check if a port honours COPTS. */ ++static int honour_copts = 0; ++ + static void handle_OPT_d (const char *); + static void set_std_cxx98 (int); + static void set_std_cxx11 (int); +@@ -478,6 +481,12 @@ c_common_handle_option (size_t scode, co + flag_no_builtin = !value; + break; + ++ case OPT_fhonour_copts: ++ if (c_language == clk_c) { ++ honour_copts++; ++ } ++ break; ++ + case OPT_fconstant_string_class_: + constant_string_class_name = arg; + break; +@@ -1218,6 +1227,47 @@ c_common_init (void) + return false; + } + ++ if (c_language == clk_c) { ++ char *ev = getenv ("GCC_HONOUR_COPTS"); ++ int evv; ++ if (ev == NULL) ++ evv = -1; ++ else if ((*ev == '0') || (*ev == '\0')) ++ evv = 0; ++ else if (*ev == '1') ++ evv = 1; ++ else if (*ev == '2') ++ evv = 2; ++ else if (*ev == 's') ++ evv = -1; ++ else { ++ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1"); ++ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */ ++ } ++ if (evv == 1) { ++ if (honour_copts == 0) { ++ error ("someone does not honour COPTS at all in lenient mode"); ++ return false; ++ } else if (honour_copts != 1) { ++ warning (0, "someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ } ++ } else if (evv == 2) { ++ if (honour_copts == 0) { ++ error ("someone does not honour COPTS at all in strict mode"); ++ return false; ++ } else if (honour_copts != 1) { ++ error ("someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ return false; ++ } ++ } else if (evv == 0) { ++ if (honour_copts != 1) ++ inform (UNKNOWN_LOCATION, "someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ } ++ } ++ + return true; + } + +--- a/gcc/c-family/c.opt ++++ b/gcc/c-family/c.opt +@@ -1755,6 +1755,9 @@ C++ ObjC++ Optimization Alias(fexception + fhonor-std + C++ ObjC++ WarnRemoved + ++fhonour-copts ++C ObjC C++ ObjC++ RejectNegative ++ + fhosted + C ObjC + Assume normal C execution environment. +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -1770,6 +1770,9 @@ fharden-conditional-branches + Common Var(flag_harden_conditional_branches) Optimization + Harden conditional branches by checking reversed conditions. + ++fhonour-copts ++Common RejectNegative ++ + ; Nonzero means ignore `#ident' directives. 0 means handle them. + ; Generate position-independent code for executables if possible + ; On SVR4 targets, it also controls whether or not to emit a +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -9596,6 +9596,17 @@ This option is only supported for C and + @option{-Wall} and by @option{-Wpedantic}, which can be disabled with + @option{-Wno-pointer-sign}. + ++@item -fhonour-copts ++@opindex fhonour-copts ++If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not ++given at least once, and warn if it is given more than once. ++If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not ++given exactly once. ++If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option ++is not given exactly once. ++The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}. ++This flag and environment variable only affect the C language. ++ + @item -Wstack-protector + @opindex Wstack-protector + @opindex Wno-stack-protector +--- a/gcc/opts.cc ++++ b/gcc/opts.cc +@@ -2658,6 +2658,9 @@ common_handle_option (struct gcc_options + add_comma_separated_to_vector (&opts->x_flag_ignored_attributes, arg); + break; + ++ case OPT_fhonour_copts: ++ break; ++ + case OPT_Werror: + dc->warning_as_error_requested = value; + break; diff --git a/toolchain/gcc/patches/12.1.0/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/12.1.0/920-specs_nonfatal_getenv.patch new file mode 100644 index 0000000000..0f7d40b244 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/920-specs_nonfatal_getenv.patch @@ -0,0 +1,22 @@ +Author: Jo-Philipp Wich +Date: Sat Apr 21 03:02:39 2012 +0000 + + gcc: add patch to make the getenv() spec function nonfatal if requested environment variable is unset + + SVN-Revision: 31390 + +--- a/gcc/gcc.cc ++++ b/gcc/gcc.cc +@@ -10213,8 +10213,10 @@ getenv_spec_function (int argc, const ch + } + + if (!value) +- fatal_error (input_location, +- "environment variable %qs not defined", varname); ++ { ++ warning (input_location, "environment variable %qs not defined", varname); ++ value = ""; ++ } + + /* We have to escape every character of the environment variable so + they are not interpreted as active spec characters. A diff --git a/toolchain/gcc/patches/12.1.0/960-gotools-fix-compilation-when-making-cross-compiler.patch b/toolchain/gcc/patches/12.1.0/960-gotools-fix-compilation-when-making-cross-compiler.patch new file mode 100644 index 0000000000..b1d7576328 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/960-gotools-fix-compilation-when-making-cross-compiler.patch @@ -0,0 +1,67 @@ +From dda6b050cd74a352670787a294596a9c56c21327 Mon Sep 17 00:00:00 2001 +From: Yousong Zhou +Date: Fri, 4 May 2018 18:20:53 +0800 +Subject: [PATCH] gotools: fix compilation when making cross compiler + +libgo is "the runtime support library for the Go programming language. +This library is intended for use with the Go frontend." + +gccgo will link target files with libgo.so which depends on libgcc_s.so.1, but +the linker will complain that it cannot find it. That's because shared libgcc +is not present in the install directory yet. libgo.so was made without problem +because gcc will emit -lgcc_s when compiled with -shared option. When gotools +were being made, it was supplied with -static-libgcc thus no link option was +provided. Check LIBGO in gcc/go/gcc-spec.c for how gccgo make a builtin spec +for linking with libgo.so + +- GccgoCrossCompilation, https://github.com/golang/go/wiki/GccgoCrossCompilation +- Cross-building instructions, http://www.eglibc.org/archives/patches/msg00078.html + +When 3-pass GCC compilation is used, shared libgcc runtime libraries will be +available after gcc pass2 completed and will meet the gotools link requirement +at gcc pass3 +--- + gotools/Makefile.am | 4 +++- + gotools/Makefile.in | 4 +++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +--- a/gotools/Makefile.am ++++ b/gotools/Makefile.am +@@ -26,6 +26,7 @@ PWD_COMMAND = $${PWDCMD-pwd} + STAMP = echo timestamp > + + libgodir = ../$(target_noncanonical)/libgo ++libgccdir = ../$(target_noncanonical)/libgcc + LIBGODEP = $(libgodir)/libgo.la + + LIBGOTOOL = $(libgodir)/libgotool.a +@@ -41,7 +42,8 @@ GOCFLAGS = $(CFLAGS_FOR_TARGET) + GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) + + AM_GOCFLAGS = -I $(libgodir) +-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs ++AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \ ++ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s + GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ + + libgosrcdir = $(srcdir)/../libgo/go +--- a/gotools/Makefile.in ++++ b/gotools/Makefile.in +@@ -337,6 +337,7 @@ mkinstalldirs = $(SHELL) $(toplevel_srcd + PWD_COMMAND = $${PWDCMD-pwd} + STAMP = echo timestamp > + libgodir = ../$(target_noncanonical)/libgo ++libgccdir = ../$(target_noncanonical)/libgcc + LIBGODEP = $(libgodir)/libgo.la + LIBGOTOOL = $(libgodir)/libgotool.a + @NATIVE_FALSE@GOCOMPILER = $(GOC) +@@ -346,7 +347,8 @@ LIBGOTOOL = $(libgodir)/libgotool.a + GOCFLAGS = $(CFLAGS_FOR_TARGET) + GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS) + AM_GOCFLAGS = -I $(libgodir) +-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs ++AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs \ ++ -L $(libgccdir) -L $(libgccdir)/.libs -lgcc_s + GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@ + libgosrcdir = $(srcdir)/../libgo/go + cmdsrcdir = $(libgosrcdir)/cmd diff --git a/toolchain/gcc/patches/12.1.0/970-macos_arm64-building-fix.patch b/toolchain/gcc/patches/12.1.0/970-macos_arm64-building-fix.patch new file mode 100644 index 0000000000..d164d70e88 --- /dev/null +++ b/toolchain/gcc/patches/12.1.0/970-macos_arm64-building-fix.patch @@ -0,0 +1,45 @@ +commit 9c6e71079b46ad5433165feaa2001450f2017b56 +Author: Przemysław Buczkowski +Date: Mon Aug 16 13:16:21 2021 +0100 + + GCC: Patch for Apple Silicon compatibility + + This patch fixes a linker error occuring when compiling + the cross-compiler on macOS and ARM64 architecture. + + Adapted from: + https://github.com/richfelker/musl-cross-make/issues/116#issuecomment-823612404 + + Change-Id: Ia3ee98a163bbb62689f42e2da83a5ef36beb0913 + Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4329 + Reviewed-by: John Scipione + Reviewed-by: Adrien Destugues + +--- a/gcc/config/aarch64/aarch64.h ++++ b/gcc/config/aarch64/aarch64.h +@@ -1236,7 +1236,7 @@ extern const char *aarch64_rewrite_mcpu + #define MCPU_TO_MARCH_SPEC_FUNCTIONS \ + { "rewrite_mcpu", aarch64_rewrite_mcpu }, + +-#if defined(__aarch64__) ++#if defined(__aarch64__) && ! defined(__APPLE__) + extern const char *host_detect_local_cpu (int argc, const char **argv); + #define HAVE_LOCAL_CPU_DETECT + # define EXTRA_SPEC_FUNCTIONS \ +--- a/gcc/config/host-darwin.cc ++++ b/gcc/config/host-darwin.cc +@@ -22,6 +22,8 @@ + #include "coretypes.h" + #include "diagnostic-core.h" + #include "config/host-darwin.h" ++#include "hosthooks.h" ++#include "hosthooks-def.h" + #include + + /* For Darwin (macOS only) platforms, without ASLR (PIE) enabled on the +@@ -79,3 +81,5 @@ darwin_gt_pch_use_address (void *addr, s + + return ret; + } ++ ++const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;