[openwrt/openwrt] toolchain: gcc: update GCC14 to 14.3

LEDE Commits lede-commits at lists.infradead.org
Sat May 24 12:04:11 PDT 2025


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/ec4afc4c1b55e96767d76ce8fc100aadd3a55136

commit ec4afc4c1b55e96767d76ce8fc100aadd3a55136
Author: Shiji Yang <yangshiji66 at outlook.com>
AuthorDate: Fri May 23 21:09:01 2025 +0800

    toolchain: gcc: update GCC14 to 14.3
    
    Remove upstreamed patches:
    - 020-MIPS-Include-missing-mips16.S-in-libgcc-lib1funcs.S.patch
    - 021-Reuse-scratch-registers-generated-by-LRA.patch
    
    All other patches are automatically refreshed.
    
    Signed-off-by: Shiji Yang <yangshiji66 at outlook.com>
    Link: https://github.com/openwrt/openwrt/pull/18891
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 toolchain/gcc/Config.version                       |   2 +-
 toolchain/gcc/common.mk                            |   4 +-
 toolchain/gcc/patches-14.x/010-documentation.patch |   2 +-
 ...de-missing-mips16.S-in-libgcc-lib1funcs.S.patch |  34 -------
 ...-Reuse-scratch-registers-generated-by-LRA.patch | 107 ---------------------
 toolchain/gcc/patches-14.x/230-musl_libssp.patch   |   2 +-
 toolchain/gcc/patches-14.x/820-libgcc_pic.patch    |   2 +-
 .../gcc/patches-14.x/830-aarch64-libatomic.patch   |   4 +-
 .../patches-14.x/920-specs_nonfatal_getenv.patch   |   2 +-
 9 files changed, 9 insertions(+), 150 deletions(-)

diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version
index 0cfbf615ba..3e808f11a7 100644
--- a/toolchain/gcc/Config.version
+++ b/toolchain/gcc/Config.version
@@ -16,7 +16,7 @@ config GCC_VERSION
 	default "11.3.0"	if GCC_VERSION_11
 	default "12.3.0"	if GCC_VERSION_12
 	default "13.3.0"	if GCC_VERSION_13
-	default "14.2.0"
+	default "14.3.0"
 
 config GCC_USE_DEFAULT_VERSION
 	bool
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index 0ccf55bd31..7df44f1267 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -42,8 +42,8 @@ ifeq ($(PKG_VERSION),13.3.0)
   PKG_HASH:=0845e9621c9543a13f484e94584a49ffc0129970e9914624235fc1d061a0c083
 endif
 
-ifeq ($(PKG_VERSION),14.2.0)
-  PKG_HASH:=a7b39bc69cbf9e25826c5a60ab26477001f7c08d85cec04bc0e29cabed6f3cc9
+ifeq ($(PKG_VERSION),14.3.0)
+  PKG_HASH:=e0dc77297625631ac8e50fa92fffefe899a4eb702592da5c32ef04e2293aca3a
 endif
 
 PATCH_DIR=../patches-$(GCC_MAJOR_VERSION).x
diff --git a/toolchain/gcc/patches-14.x/010-documentation.patch b/toolchain/gcc/patches-14.x/010-documentation.patch
index 7cf59d3a99..df9dff9a4f 100644
--- a/toolchain/gcc/patches-14.x/010-documentation.patch
+++ b/toolchain/gcc/patches-14.x/010-documentation.patch
@@ -12,7 +12,7 @@ Date:   Tue Feb 26 16:16:33 2013 +0000
 
 --- a/gcc/Makefile.in
 +++ b/gcc/Makefile.in
-@@ -3549,18 +3549,10 @@ doc/gcc.info: $(TEXI_GCC_FILES)
+@@ -3550,18 +3550,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-14.x/020-MIPS-Include-missing-mips16.S-in-libgcc-lib1funcs.S.patch b/toolchain/gcc/patches-14.x/020-MIPS-Include-missing-mips16.S-in-libgcc-lib1funcs.S.patch
deleted file mode 100644
index 00a4bf8327..0000000000
--- a/toolchain/gcc/patches-14.x/020-MIPS-Include-missing-mips16.S-in-libgcc-lib1funcs.S.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 75892d97979f397a66730b97e8279941169e0316 Mon Sep 17 00:00:00 2001
-From: YunQiang Su <syq at gcc.gnu.org>
-Date: Fri, 23 Aug 2024 23:46:16 +0800
-Subject: MIPS: Include missing mips16.S in libgcc/lib1funcs.S
-
-mips16.S was missing since
-commit 29b74545531f6afbee9fc38c267524326dbfbedf
-Date:   Thu Jun 1 10:14:24 2023 +0800
-
-    MIPS: Add speculation_barrier support
-
-Without mips16.S included, some symbols will miss for mips16, and
-so some software will fail to build.
-
-libgcc/ChangeLog:
-
-	* config/mips/lib1funcs.S: Includes mips16.S.
-
-(cherry picked from commit 9522fc8bb7812f2ad50eb038e0938bfd958e730f)
----
- libgcc/config/mips/lib1funcs.S | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/libgcc/config/mips/lib1funcs.S
-+++ b/libgcc/config/mips/lib1funcs.S
-@@ -19,7 +19,7 @@ a copy of the GCC Runtime Library Except
- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- <http://www.gnu.org/licenses/>.  */
- 
--//#include "mips16.S"
-+#include "mips16.S"
- 
- #ifdef L_speculation_barrier
- 
diff --git a/toolchain/gcc/patches-14.x/021-Reuse-scratch-registers-generated-by-LRA.patch b/toolchain/gcc/patches-14.x/021-Reuse-scratch-registers-generated-by-LRA.patch
deleted file mode 100644
index 87480716c7..0000000000
--- a/toolchain/gcc/patches-14.x/021-Reuse-scratch-registers-generated-by-LRA.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 840e53f15468b1e808386c6190d7f59227b85495 Mon Sep 17 00:00:00 2001
-Message-ID: <840e53f15468b1e808386c6190d7f59227b85495.1747165068.git.mschiffer at universe-factory.net>
-From: Denis Chertykov <chertykov at gmail.com>
-Date: Thu, 17 Oct 2024 11:12:38 +0400
-Subject: [PATCH] Reuse scratch registers generated by LRA
-
-Test file: udivmoddi.c
-problem insn: 484
-
-Before LRA pass we have:
-(insn 484 483 485 72 (parallel [
-            (set (reg/v:SI 143 [ __q1 ])
-                (plus:SI (reg/v:SI 143 [ __q1 ])
-                    (const_int -2 [0xfffffffffffffffe])))
-            (clobber (scratch:QI))
-        ]) "udivmoddi.c":163:405 discrim 5 186 {addsi3}
-     (nil))
-
-LRA substitute all scratches with new pseudos, so we have:
-(insn 484 483 485 72 (parallel [
-            (set (reg/v:SI 143 [ __q1 ])
-                (plus:SI (reg/v:SI 143 [ __q1 ])
-                    (const_int -2 [0xfffffffffffffffe])))
-            (clobber (reg:QI 619))
-        ]) "/mnt/d/avr-lra/udivmoddi.c":163:405 discrim 5 186 {addsi3}
-     (expr_list:REG_UNUSED (reg:QI 619)
-        (nil)))
-
-Pseudo 619 is a special scratch register generated by LRA which is marked in `scratch_bitmap' and can be tested by call `ira_former_scratch_p(regno)'.
-
-In dump file (udivmoddi.c.317r.reload) we have:
-      Creating newreg=619
-Removing SCRATCH to p619 in insn #484 (nop 3)
-rescanning insn with uid = 484.
-
-After that LRA tries to spill (reg:QI 619)
-It's a bug because (reg:QI 619) is an output scratch register which is already something like spill register.
-
-Fragment from udivmoddi.c.317r.reload:
-      Choosing alt 2 in insn 484:  (0) r  (1) 0  (2) nYnn  (3) &d {addsi3}
-      Creating newreg=728 from oldreg=619, assigning class LD_REGS to r728
-
-IMHO: the bug is in lra-constraints.cc in function `get_reload_reg'
-fragment of `get_reload_reg':
-  if (type == OP_OUT)
-    {
-      /* Output reload registers tend to start out with a conservative
-	 choice of register class.  Usually this is ALL_REGS, although
-	 a target might narrow it (for performance reasons) through
-	 targetm.preferred_reload_class.  It's therefore quite common
-	 for a reload instruction to require a more restrictive class
-	 than the class that was originally assigned to the reload register.
-
-	 In these situations, it's more efficient to refine the choice
-	 of register class rather than create a second reload register.
-	 This also helps to avoid cycling for registers that are only
-	 used by reload instructions.  */
-      if (REG_P (original)
-	  && (int) REGNO (original) >= new_regno_start
-	  && INSN_UID (curr_insn) >= new_insn_uid_start
-__________________________________^^
-	  && in_class_p (original, rclass, &new_class, true))
-	{
-	  unsigned int regno = REGNO (original);
-	  if (lra_dump_file != NULL)
-	    {
-	      fprintf (lra_dump_file, "	 Reuse r%d for output ", regno);
-	      dump_value_slim (lra_dump_file, original, 1);
-	    }
-
-This condition incorrectly limits register reuse to ONLY newly generated instructions.
-i.e. LRA can reuse registers only from insns generated by himself.
-
-IMHO:It's wrong.
-Scratch registers generated by LRA also have to be reused.
-
-The patch is very simple.
-On x86_64, it bootstraps+regtests fine.
-
-gcc/
-	PR target/116550
-	PR target/119340
-	* lra-constraints.cc (get_reload_reg): Reuse scratch registers
-	generated by LRA.
-
-(cherry picked from commit e7393cbb5f2cae50b42713e71984064073aa378a)
----
- gcc/lra-constraints.cc | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/gcc/lra-constraints.cc b/gcc/lra-constraints.cc
-index 10e3d4e4097..d44c73e59c8 100644
---- a/gcc/lra-constraints.cc
-+++ b/gcc/lra-constraints.cc
-@@ -676,7 +676,8 @@ get_reload_reg (enum op_type type, machine_mode mode, rtx original,
- 	 used by reload instructions.  */
-       if (REG_P (original)
- 	  && (int) REGNO (original) >= new_regno_start
--	  && INSN_UID (curr_insn) >= new_insn_uid_start
-+	  && (INSN_UID (curr_insn) >= new_insn_uid_start
-+	      || ira_former_scratch_p (REGNO (original)))
- 	  && in_class_p (original, rclass, &new_class, true))
- 	{
- 	  unsigned int regno = REGNO (original);
--- 
-2.49.0
-
diff --git a/toolchain/gcc/patches-14.x/230-musl_libssp.patch b/toolchain/gcc/patches-14.x/230-musl_libssp.patch
index 3ce5e49587..f8dc9448a0 100644
--- a/toolchain/gcc/patches-14.x/230-musl_libssp.patch
+++ b/toolchain/gcc/patches-14.x/230-musl_libssp.patch
@@ -1,6 +1,6 @@
 --- a/gcc/gcc.cc
 +++ b/gcc/gcc.cc
-@@ -985,7 +985,9 @@ proper position among the other output f
+@@ -989,7 +989,9 @@ proper position among the other output f
  #endif
  
  #ifndef LINK_SSP_SPEC
diff --git a/toolchain/gcc/patches-14.x/820-libgcc_pic.patch b/toolchain/gcc/patches-14.x/820-libgcc_pic.patch
index 3ab73f4857..85b148bfa3 100644
--- a/toolchain/gcc/patches-14.x/820-libgcc_pic.patch
+++ b/toolchain/gcc/patches-14.x/820-libgcc_pic.patch
@@ -31,7 +31,7 @@ Date:   Mon Oct 19 23:26:09 2009 +0000
  ifneq ($(LIBUNWIND),)
  all: libunwind$(SHLIB_EXT)
  libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
-@@ -1174,6 +1175,10 @@ install-shared:
+@@ -1177,6 +1178,10 @@ install-shared:
  	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a
  
diff --git a/toolchain/gcc/patches-14.x/830-aarch64-libatomic.patch b/toolchain/gcc/patches-14.x/830-aarch64-libatomic.patch
index e43596a253..80d9b5438c 100644
--- a/toolchain/gcc/patches-14.x/830-aarch64-libatomic.patch
+++ b/toolchain/gcc/patches-14.x/830-aarch64-libatomic.patch
@@ -12,7 +12,7 @@ Signed-off-by: Konstantin Demin <rockdrilla at gmail.com>
 
 --- a/libatomic/Makefile.am
 +++ b/libatomic/Makefile.am
-@@ -130,7 +130,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS)))
+@@ -130,7 +130,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZE
  ## On a target-specific basis, include alternates to be selected by IFUNC.
  if HAVE_IFUNC
  if ARCH_AARCH64_LINUX
@@ -22,7 +22,7 @@ Signed-off-by: Konstantin Demin <rockdrilla at gmail.com>
  endif
 --- a/libatomic/Makefile.in
 +++ b/libatomic/Makefile.in
-@@ -452,7 +452,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files)))
+@@ -452,7 +452,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE)
  libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
  	_$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
  	$(am__append_3) $(am__append_4)
diff --git a/toolchain/gcc/patches-14.x/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches-14.x/920-specs_nonfatal_getenv.patch
index 121b684a2c..a1b34f40fc 100644
--- a/toolchain/gcc/patches-14.x/920-specs_nonfatal_getenv.patch
+++ b/toolchain/gcc/patches-14.x/920-specs_nonfatal_getenv.patch
@@ -7,7 +7,7 @@ Date:   Sat Apr 21 03:02:39 2012 +0000
 
 --- a/gcc/gcc.cc
 +++ b/gcc/gcc.cc
-@@ -10319,8 +10319,10 @@ getenv_spec_function (int argc, const ch
+@@ -10337,8 +10337,10 @@ getenv_spec_function (int argc, const ch
      }
  
    if (!value)




More information about the lede-commits mailing list