summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/conf/distro/include/maintainers.inc2
-rw-r--r--meta/conf/distro/include/tcmode-default.inc2
-rw-r--r--meta/recipes-devtools/gcc/gcc-15.1.inc (renamed from meta/recipes-devtools/gcc/gcc-14.2.inc)15
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross-canadian_15.1.bb (renamed from meta/recipes-devtools/gcc/gcc-cross-canadian_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-cross_15.1.bb (renamed from meta/recipes-devtools/gcc/gcc-cross_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-crosssdk_15.1.bb (renamed from meta/recipes-devtools/gcc/gcc-crosssdk_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime_15.1.bb (renamed from meta/recipes-devtools/gcc/gcc-runtime_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-sanitizers_15.1.bb (renamed from meta/recipes-devtools/gcc/gcc-sanitizers_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc-source_15.1.bb (renamed from meta/recipes-devtools/gcc/gcc-source_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch10
-rw-r--r--meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch80
-rw-r--r--meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch12
-rw-r--r--meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch10
-rw-r--r--meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch16
-rw-r--r--meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch10
-rw-r--r--meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch62
-rw-r--r--meta/recipes-devtools/gcc/gcc/0008-libtool.patch6
-rw-r--r--meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch6
-rw-r--r--meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch14
-rw-r--r--meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch20
-rw-r--r--meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch6
-rw-r--r--meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch18
-rw-r--r--meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch6
-rw-r--r--meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch6
-rw-r--r--meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch34
-rw-r--r--meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch8
-rw-r--r--meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch8
-rw-r--r--meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch6
-rw-r--r--meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch8
-rw-r--r--meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch8
-rw-r--r--meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch8
-rw-r--r--meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch6
-rw-r--r--meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch2
-rw-r--r--meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch118
-rw-r--r--meta/recipes-devtools/gcc/gcc/0026-gcc-Fix-c-tweak-for-Wrange-loop-construct.patch114
-rw-r--r--meta/recipes-devtools/gcc/gcc/0027-gcc-backport-patch-to-fix-data-relocation-to-ENDBR-s.patch447
-rw-r--r--meta/recipes-devtools/gcc/gcc/0028-libsanitizer-undef-_TIME_BITS-in-solaris-procmaps.patch62
-rw-r--r--meta/recipes-devtools/gcc/gcc/gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch549
-rw-r--r--meta/recipes-devtools/gcc/gcc_15.1.bb (renamed from meta/recipes-devtools/gcc/gcc_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgcc-initial_15.1.bb (renamed from meta/recipes-devtools/gcc/libgcc-initial_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgcc_15.1.bb (renamed from meta/recipes-devtools/gcc/libgcc_14.2.bb)0
-rw-r--r--meta/recipes-devtools/gcc/libgfortran_15.1.bb (renamed from meta/recipes-devtools/gcc/libgfortran_14.2.bb)0
42 files changed, 238 insertions, 1441 deletions
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 038203e1cf..1932e3d0e8 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -195,7 +195,7 @@ RECIPE_MAINTAINER:pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <r
195RECIPE_MAINTAINER:pn-gcc-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>" 195RECIPE_MAINTAINER:pn-gcc-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>"
196RECIPE_MAINTAINER:pn-gcc-runtime = "Khem Raj <raj.khem@gmail.com>" 196RECIPE_MAINTAINER:pn-gcc-runtime = "Khem Raj <raj.khem@gmail.com>"
197RECIPE_MAINTAINER:pn-gcc-sanitizers = "Khem Raj <raj.khem@gmail.com>" 197RECIPE_MAINTAINER:pn-gcc-sanitizers = "Khem Raj <raj.khem@gmail.com>"
198RECIPE_MAINTAINER:pn-gcc-source-14.2.0 = "Khem Raj <raj.khem@gmail.com>" 198RECIPE_MAINTAINER:pn-gcc-source-15.1.0 = "Khem Raj <raj.khem@gmail.com>"
199RECIPE_MAINTAINER:pn-gconf = "Ross Burton <ross.burton@arm.com>" 199RECIPE_MAINTAINER:pn-gconf = "Ross Burton <ross.burton@arm.com>"
200RECIPE_MAINTAINER:pn-gcr = "Unassigned <unassigned@yoctoproject.org>" 200RECIPE_MAINTAINER:pn-gcr = "Unassigned <unassigned@yoctoproject.org>"
201RECIPE_MAINTAINER:pn-gdb = "Khem Raj <raj.khem@gmail.com>" 201RECIPE_MAINTAINER:pn-gdb = "Khem Raj <raj.khem@gmail.com>"
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index a3b3df2afa..f0443fbdc6 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -9,7 +9,7 @@ PREFERRED_PROVIDER_virtual/nativesdk-cross-binutils ?= "binutils-crosssdk-${SDK_
9# Default libc config 9# Default libc config
10PREFERRED_PROVIDER_virtual/gettext ??= "gettext" 10PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
11 11
12GCCVERSION ?= "14.%" 12GCCVERSION ?= "15.%"
13SDKGCCVERSION ?= "${GCCVERSION}" 13SDKGCCVERSION ?= "${GCCVERSION}"
14GLIBCVERSION ?= "2.41%" 14GLIBCVERSION ?= "2.41%"
15RUSTVERSION ?= "1.85.1%" 15RUSTVERSION ?= "1.85.1%"
diff --git a/meta/recipes-devtools/gcc/gcc-14.2.inc b/meta/recipes-devtools/gcc/gcc-15.1.inc
index ae2f8c0638..864c6091a6 100644
--- a/meta/recipes-devtools/gcc/gcc-14.2.inc
+++ b/meta/recipes-devtools/gcc/gcc-15.1.inc
@@ -2,11 +2,11 @@ require gcc-common.inc
2 2
3# Third digit in PV should be incremented after a minor release 3# Third digit in PV should be incremented after a minor release
4 4
5PV = "14.2.0" 5PV = "15.1.0"
6 6
7# BINV should be incremented to a revision after a minor gcc release 7# BINV should be incremented to a revision after a minor gcc release
8 8
9BINV = "14.2.0" 9BINV = "15.1.0"
10 10
11FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:" 11FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:"
12 12
@@ -31,16 +31,17 @@ LIC_FILES_CHKSUM = "\
31#SRC_URI[sha256sum] = "41bf7be5dc029112a9df625266e7de030ffc36ff3638f270b180ae8c91fe6449" 31#SRC_URI[sha256sum] = "41bf7be5dc029112a9df625266e7de030ffc36ff3638f270b180ae8c91fe6449"
32 32
33# from snapshot 33# from snapshot
34#RELEASE ?= "14-20240504" 34#RELEASE ?= "15-20250420"
35#RELEASE ?= "15.1.0-RC-20250418"
35#BASEURI ?= "https://gcc.gnu.org/pub/gcc/snapshots/${RELEASE}/gcc-${RELEASE}.tar.xz" 36#BASEURI ?= "https://gcc.gnu.org/pub/gcc/snapshots/${RELEASE}/gcc-${RELEASE}.tar.xz"
36#SOURCEDIR ?= "gcc-${RELEASE}" 37#SOURCEDIR ?= "gcc-${RELEASE}"
37#SRC_URI[sha256sum] = "34ac232bbf31e0cd5752fd344c2cf55719aaaad2ca0096593e01c97a3d5e274e" 38#SRC_URI[sha256sum] = "fe18624317c6c662977eea8b5a506ec6c132fc11c7a8d53e2f6d21b139b0af3c"
38 39
39# official release 40# official release
40RELEASE ?= "${PV}" 41RELEASE ?= "${PV}"
41BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz" 42BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz"
42SOURCEDIR ?= "gcc-${PV}" 43SOURCEDIR ?= "gcc-${PV}"
43SRC_URI[sha256sum] = "a7b39bc69cbf9e25826c5a60ab26477001f7c08d85cec04bc0e29cabed6f3cc9" 44SRC_URI[sha256sum] = "e2b09ec21660f01fecffb715e0120265216943f038d0e48a9868713e54f06cea"
44 45
45SRC_URI = "${BASEURI} \ 46SRC_URI = "${BASEURI} \
46 file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \ 47 file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
@@ -68,10 +69,6 @@ SRC_URI = "${BASEURI} \
68 file://0023-Fix-install-path-of-linux64.h.patch \ 69 file://0023-Fix-install-path-of-linux64.h.patch \
69 file://0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch \ 70 file://0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch \
70 file://0025-gcc-testsuite-tweaks-for-mips-OE.patch \ 71 file://0025-gcc-testsuite-tweaks-for-mips-OE.patch \
71 file://0026-gcc-Fix-c-tweak-for-Wrange-loop-construct.patch \
72 file://0027-gcc-backport-patch-to-fix-data-relocation-to-ENDBR-s.patch \
73 file://gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch \
74 file://0028-libsanitizer-undef-_TIME_BITS-in-solaris-procmaps.patch \
75" 72"
76 73
77S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${SOURCEDIR}" 74S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/${SOURCEDIR}"
diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_14.2.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_15.1.bb
index bf53c5cd78..bf53c5cd78 100644
--- a/meta/recipes-devtools/gcc/gcc-cross-canadian_14.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_15.1.bb
diff --git a/meta/recipes-devtools/gcc/gcc-cross_14.2.bb b/meta/recipes-devtools/gcc/gcc-cross_15.1.bb
index b43cca0c52..b43cca0c52 100644
--- a/meta/recipes-devtools/gcc/gcc-cross_14.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-cross_15.1.bb
diff --git a/meta/recipes-devtools/gcc/gcc-crosssdk_14.2.bb b/meta/recipes-devtools/gcc/gcc-crosssdk_15.1.bb
index 40a6c4feff..40a6c4feff 100644
--- a/meta/recipes-devtools/gcc/gcc-crosssdk_14.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-crosssdk_15.1.bb
diff --git a/meta/recipes-devtools/gcc/gcc-runtime_14.2.bb b/meta/recipes-devtools/gcc/gcc-runtime_15.1.bb
index dd430b57eb..dd430b57eb 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime_14.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-runtime_15.1.bb
diff --git a/meta/recipes-devtools/gcc/gcc-sanitizers_14.2.bb b/meta/recipes-devtools/gcc/gcc-sanitizers_15.1.bb
index 8bda2ccad6..8bda2ccad6 100644
--- a/meta/recipes-devtools/gcc/gcc-sanitizers_14.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-sanitizers_15.1.bb
diff --git a/meta/recipes-devtools/gcc/gcc-source_14.2.bb b/meta/recipes-devtools/gcc/gcc-source_15.1.bb
index be11fa2fcc..be11fa2fcc 100644
--- a/meta/recipes-devtools/gcc/gcc-source_14.2.bb
+++ b/meta/recipes-devtools/gcc/gcc-source_15.1.bb
diff --git a/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
index 4693e948e8..e36b7f7b17 100644
--- a/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ b/meta/recipes-devtools/gcc/gcc/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
@@ -1,4 +1,4 @@
1From 5f2881333e6ba6eb055f590982c2a2eb3fcbee2c Mon Sep 17 00:00:00 2001 1From 7e8c2b6bd87d221158f43bc1d770e04ddeed4176 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 08:37:11 +0400 3Date: Fri, 29 Mar 2013 08:37:11 +0400
4Subject: [PATCH] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET 4Subject: [PATCH] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
@@ -12,10 +12,10 @@ Upstream-Status: Inappropriate [embedded specific]
12 2 files changed, 2 insertions(+), 2 deletions(-) 12 2 files changed, 2 insertions(+), 2 deletions(-)
13 13
14diff --git a/configure b/configure 14diff --git a/configure b/configure
15index 3b0abeb8b2e..2590471a021 100755 15index ebc44416b6c..af1d1e24b3d 100755
16--- a/configure 16--- a/configure
17+++ b/configure 17+++ b/configure
18@@ -10467,7 +10467,7 @@ fi 18@@ -11509,7 +11509,7 @@ fi
19 # for target_alias and gcc doesn't manage it consistently. 19 # for target_alias and gcc doesn't manage it consistently.
20 target_configargs="--cache-file=./config.cache ${target_configargs}" 20 target_configargs="--cache-file=./config.cache ${target_configargs}"
21 21
@@ -25,10 +25,10 @@ index 3b0abeb8b2e..2590471a021 100755
25 *" newlib "*) 25 *" newlib "*)
26 case " $target_configargs " in 26 case " $target_configargs " in
27diff --git a/configure.ac b/configure.ac 27diff --git a/configure.ac b/configure.ac
28index 042681c27be..0d9b39c541a 100644 28index 730db3c1402..6de64a4777c 100644
29--- a/configure.ac 29--- a/configure.ac
30+++ b/configure.ac 30+++ b/configure.ac
31@@ -3539,7 +3539,7 @@ fi 31@@ -3736,7 +3736,7 @@ fi
32 # for target_alias and gcc doesn't manage it consistently. 32 # for target_alias and gcc doesn't manage it consistently.
33 target_configargs="--cache-file=./config.cache ${target_configargs}" 33 target_configargs="--cache-file=./config.cache ${target_configargs}"
34 34
diff --git a/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch b/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
index 8523af1281..53d2dc63da 100644
--- a/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
+++ b/meta/recipes-devtools/gcc/gcc/0002-gcc-poison-system-directories.patch
@@ -1,6 +1,6 @@
1From 838daab44918ef738402a2dd069537c6ac519305 Mon Sep 17 00:00:00 2001 1From f7c26bbbf0496d179f5e71107fe6cf1320b25901 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 8 Mar 2021 16:04:20 -0800 3Date: Thu, 23 Jan 2025 17:12:51 -0800
4Subject: [PATCH] gcc: poison-system-directories 4Subject: [PATCH] gcc: poison-system-directories
5 5
6Add /sw/include and /opt/include based on the original 6Add /sw/include and /opt/include based on the original
@@ -13,23 +13,23 @@ wants this to be a failure, they can add "-Werror=poison-system-directories".
13 13
14Upstream-Status: Inappropriate [OE configuration] 14Upstream-Status: Inappropriate [OE configuration]
15Signed-off-by: Mark Hatle <mark.hatle@windriver.com> 15Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Signed-off-by: sunil dora <sunilkumar.dora@windriver.com> 16Signed-off-by: sunil dora <sunilkumar.dora@windriver.com>
17Signed-off-by: Khem Raj <raj.khem@gmail.com>
18--- 18---
19 gcc/common.opt | 4 ++++ 19 gcc/common.opt | 4 ++++
20 gcc/config.in | 10 ++++++++++ 20 gcc/config.in | 10 ++++++++++
21 gcc/configure | 19 +++++++++++++++++++ 21 gcc/configure | 19 +++++++++++++++++++
22 gcc/configure.ac | 16 ++++++++++++++++ 22 gcc/configure.ac | 16 ++++++++++++++++
23 gcc/doc/invoke.texi | 9 +++++++++ 23 gcc/doc/invoke.texi | 9 +++++++++
24 gcc/gcc.cc | 9 +++++++-- 24 gcc/gcc.cc | 12 ++++++++++--
25 gcc/incpath.cc | 25 +++++++++++++++++++++++++ 25 gcc/incpath.cc | 25 +++++++++++++++++++++++++
26 7 files changed, 90 insertions(+), 2 deletions(-) 26 7 files changed, 93 insertions(+), 2 deletions(-)
27 27
28diff --git a/gcc/common.opt b/gcc/common.opt 28diff --git a/gcc/common.opt b/gcc/common.opt
29index ad348844775..df3992b420d 100644 29index e3fa0dacec4..bea1adc0940 100644
30--- a/gcc/common.opt 30--- a/gcc/common.opt
31+++ b/gcc/common.opt 31+++ b/gcc/common.opt
32@@ -715,6 +715,10 @@ Wreturn-local-addr 32@@ -729,6 +729,10 @@ Wreturn-local-addr
33 Common Var(warn_return_local_addr) Init(1) Warning 33 Common Var(warn_return_local_addr) Init(1) Warning
34 Warn about returning a pointer/reference to a local or temporary variable. 34 Warn about returning a pointer/reference to a local or temporary variable.
35 35
@@ -41,7 +41,7 @@ index ad348844775..df3992b420d 100644
41 Common Var(warn_shadow) Warning 41 Common Var(warn_shadow) Warning
42 Warn when one variable shadows another. Same as -Wshadow=global. 42 Warn when one variable shadows another. Same as -Wshadow=global.
43diff --git a/gcc/config.in b/gcc/config.in 43diff --git a/gcc/config.in b/gcc/config.in
44index f3de4ba6776..3ce3113510b 100644 44index a79c51adb2b..8a531ed591c 100644
45--- a/gcc/config.in 45--- a/gcc/config.in
46+++ b/gcc/config.in 46+++ b/gcc/config.in
47@@ -249,6 +249,16 @@ 47@@ -249,6 +249,16 @@
@@ -62,10 +62,10 @@ index f3de4ba6776..3ce3113510b 100644
62 optimizer and back end) to be checked for dynamic type safety at runtime. 62 optimizer and back end) to be checked for dynamic type safety at runtime.
63 This is quite expensive. */ 63 This is quite expensive. */
64diff --git a/gcc/configure b/gcc/configure 64diff --git a/gcc/configure b/gcc/configure
65index abc8bfdc244..d3fa80408f4 100755 65index 16965953f05..0f4a5d52c30 100755
66--- a/gcc/configure 66--- a/gcc/configure
67+++ b/gcc/configure 67+++ b/gcc/configure
68@@ -1050,6 +1050,7 @@ enable_maintainer_mode 68@@ -1051,6 +1051,7 @@ enable_maintainer_mode
69 enable_link_mutex 69 enable_link_mutex
70 enable_link_serialization 70 enable_link_serialization
71 enable_version_specific_runtime_libs 71 enable_version_specific_runtime_libs
@@ -73,7 +73,7 @@ index abc8bfdc244..d3fa80408f4 100755
73 enable_plugin 73 enable_plugin
74 enable_host_shared 74 enable_host_shared
75 enable_host_pie 75 enable_host_pie
76@@ -1823,6 +1824,8 @@ Optional Features: 76@@ -1828,6 +1829,8 @@ Optional Features:
77 --enable-version-specific-runtime-libs 77 --enable-version-specific-runtime-libs
78 specify that runtime libraries should be installed 78 specify that runtime libraries should be installed
79 in a compiler-specific directory 79 in a compiler-specific directory
@@ -82,7 +82,7 @@ index abc8bfdc244..d3fa80408f4 100755
82 --enable-plugin enable plugin support 82 --enable-plugin enable plugin support
83 --enable-host-shared build host code as shared libraries 83 --enable-host-shared build host code as shared libraries
84 --enable-host-pie build host code as PIE 84 --enable-host-pie build host code as PIE
85@@ -34028,6 +34031,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : 85@@ -34027,6 +34030,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
86 fi 86 fi
87 87
88 88
@@ -106,10 +106,10 @@ index abc8bfdc244..d3fa80408f4 100755
106 106
107 107
108diff --git a/gcc/configure.ac b/gcc/configure.ac 108diff --git a/gcc/configure.ac b/gcc/configure.ac
109index 1d2cefa3f6a..2760b6c540c 100644 109index 9f67e62950a..b0e3615e5aa 100644
110--- a/gcc/configure.ac 110--- a/gcc/configure.ac
111+++ b/gcc/configure.ac 111+++ b/gcc/configure.ac
112@@ -7527,6 +7527,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs, 112@@ -7502,6 +7502,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
113 [specify that runtime libraries should be 113 [specify that runtime libraries should be
114 installed in a compiler-specific directory])]) 114 installed in a compiler-specific directory])])
115 115
@@ -133,20 +133,20 @@ index 1d2cefa3f6a..2760b6c540c 100644
133 AC_SUBST(subdirs) 133 AC_SUBST(subdirs)
134 AC_SUBST(srcdir) 134 AC_SUBST(srcdir)
135diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi 135diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
136index f82f7d2817b..1da91813b0e 100644 136index c2e1bf8031b..d33e2042f38 100644
137--- a/gcc/doc/invoke.texi 137--- a/gcc/doc/invoke.texi
138+++ b/gcc/doc/invoke.texi 138+++ b/gcc/doc/invoke.texi
139@@ -391,6 +391,7 @@ Objective-C and Objective-C++ Dialects}. 139@@ -405,6 +405,7 @@ Objective-C and Objective-C++ Dialects}.
140 -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded 140 -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
141 -Wparentheses -Wno-pedantic-ms-format 141 -Wparentheses -Wno-pedantic-ms-format
142 -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast 142 -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
143+-Wno-poison-system-directories 143+-Wno-poison-system-directories
144 -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls 144 -Wno-pragmas -Wno-pragma-once-outside-header -Wno-prio-ctor-dtor
145 -Wrestrict -Wno-return-local-addr -Wreturn-type 145 -Wno-psabi
146 -Wno-scalar-storage-order -Wsequence-point 146 -Wredundant-decls -Wrestrict
147@@ -8861,6 +8862,14 @@ made up of data only and thus requires no special treatment. But, for 147@@ -10727,6 +10728,14 @@ an error. @option{Wint-to-pointer-cast} is enabled by default.
148 most targets, it is made up of code and thus requires the stack to be 148 Suppress warnings from casts from a pointer to an integer type of a
149 made executable in order for the program to work properly. 149 different size.
150 150
151+@opindex Wno-poison-system-directories 151+@opindex Wno-poison-system-directories
152+@item -Wno-poison-system-directories 152+@item -Wno-poison-system-directories
@@ -156,14 +156,14 @@ index f82f7d2817b..1da91813b0e 100644
156+directories contain the correct headers and libraries for the target 156+directories contain the correct headers and libraries for the target
157+system rather than the host. 157+system rather than the host.
158+ 158+
159 @opindex Wfloat-equal 159 @opindex Winvalid-pch
160 @opindex Wno-float-equal 160 @opindex Wno-invalid-pch
161 @item -Wfloat-equal 161 @item -Winvalid-pch
162diff --git a/gcc/gcc.cc b/gcc/gcc.cc 162diff --git a/gcc/gcc.cc b/gcc/gcc.cc
163index 728332b8153..a63f128cb95 100644 163index 4fd87f2c4a1..79d4920a047 100644
164--- a/gcc/gcc.cc 164--- a/gcc/gcc.cc
165+++ b/gcc/gcc.cc 165+++ b/gcc/gcc.cc
166@@ -902,6 +902,12 @@ proper position among the other output files. */ 166@@ -909,6 +909,12 @@ proper position among the other output files. */
167 #define ASM_MAP "" 167 #define ASM_MAP ""
168 #endif 168 #endif
169 169
@@ -176,7 +176,7 @@ index 728332b8153..a63f128cb95 100644
176 /* Assembler options for compressed debug sections. */ 176 /* Assembler options for compressed debug sections. */
177 #if HAVE_LD_COMPRESS_DEBUG == 0 177 #if HAVE_LD_COMPRESS_DEBUG == 0
178 /* Reject if the linker cannot write compressed debug sections. */ 178 /* Reject if the linker cannot write compressed debug sections. */
179@@ -1159,6 +1163,8 @@ proper position among the other output files. */ 179@@ -1166,6 +1172,8 @@ proper position among the other output files. */
180 "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ 180 "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
181 "%X %{o*} %{e*} %{N} %{n} %{r}\ 181 "%X %{o*} %{e*} %{N} %{n} %{r}\
182 %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \ 182 %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
@@ -185,7 +185,7 @@ index 728332b8153..a63f128cb95 100644
185 %{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \ 185 %{static|no-pie|static-pie:} %@{L*} %(link_libgcc) " \
186 VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \ 186 VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
187 %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ 187 %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
188@@ -1261,7 +1267,7 @@ static const char *cpp_options = 188@@ -1268,7 +1276,7 @@ static const char *cpp_options =
189 "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\ 189 "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
190 %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\ 190 %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
191 %{!fno-working-directory:-fworking-directory}}} %{O*}\ 191 %{!fno-working-directory:-fworking-directory}}} %{O*}\
@@ -194,9 +194,9 @@ index 728332b8153..a63f128cb95 100644
194 194
195 /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al. 195 /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
196 196
197@@ -1290,7 +1296,7 @@ static const char *cc1_options = 197@@ -1297,7 +1305,7 @@ static const char *cc1_options =
198 %{coverage:-fprofile-arcs -ftest-coverage}\ 198 %{coverage:-fprofile-arcs -ftest-coverage}\
199 %{fprofile-arcs|fcondition-coverage|fprofile-generate*|coverage:\ 199 %{fprofile-arcs|fcondition-coverage|fpath-coverage|fprofile-generate*|coverage:\
200 %{!fprofile-update=single:\ 200 %{!fprofile-update=single:\
201- %{pthread:-fprofile-update=prefer-atomic}}}"; 201- %{pthread:-fprofile-update=prefer-atomic}}}";
202+ %{pthread:-fprofile-update=prefer-atomic}}}" POISON_IS_ERROR; 202+ %{pthread:-fprofile-update=prefer-atomic}}}" POISON_IS_ERROR;
@@ -204,7 +204,7 @@ index 728332b8153..a63f128cb95 100644
204 static const char *asm_options = 204 static const char *asm_options =
205 "%{-target-help:%:print-asm-header()} " 205 "%{-target-help:%:print-asm-header()} "
206diff --git a/gcc/incpath.cc b/gcc/incpath.cc 206diff --git a/gcc/incpath.cc b/gcc/incpath.cc
207index 64cdd2f4a..89f42900d 100644 207index c1bbfd3872a..2cdbebc4c50 100644
208--- a/gcc/incpath.cc 208--- a/gcc/incpath.cc
209+++ b/gcc/incpath.cc 209+++ b/gcc/incpath.cc
210@@ -26,6 +26,7 @@ 210@@ -26,6 +26,7 @@
@@ -216,19 +216,19 @@ index 64cdd2f4a..89f42900d 100644
216 /* Microsoft Windows does not natively support inodes. 216 /* Microsoft Windows does not natively support inodes.
217 VMS has non-numeric inodes. */ 217 VMS has non-numeric inodes. */
218@@ -273,6 +274,10 @@ remove_duplicates (cpp_reader *pfile, struct cpp_dir *head, 218@@ -273,6 +274,10 @@ remove_duplicates (cpp_reader *pfile, struct cpp_dir *head,
219 cur->name, xstrerror (errno)); 219 cur->name, xstrerror (errno));
220 reason = REASON_NOENT; 220 reason = REASON_NOENT;
221 } 221 }
222+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES 222+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
223+ pcur = &cur->next; 223+ pcur = &cur->next;
224+ continue; 224+ continue;
225+#endif 225+#endif
226 } 226 }
227 else if (!S_ISDIR (st.st_mode)) 227 else if (!S_ISDIR (st.st_mode))
228 cpp_error_with_line (pfile, CPP_DL_WARNING, 0, 0, 228 cpp_error_with_line (pfile, CPP_DL_WARNING, 0, 0,
229@@ -399,6 +404,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) 229@@ -411,6 +416,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
230 fprintf (stderr, _("End of #embed search list.\n"));
230 } 231 }
231 fprintf (stderr, _("End of search list.\n"));
232 } 232 }
233+ 233+
234+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES 234+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
@@ -253,5 +253,3 @@ index 64cdd2f4a..89f42900d 100644
253 } 253 }
254 254
255 /* Use given -I paths for #include "..." but not #include <...>, and 255 /* Use given -I paths for #include "..." but not #include <...>, and
256--
2572.34.1
diff --git a/meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch b/meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch
index 55471b37cd..0c9edf189e 100644
--- a/meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch
+++ b/meta/recipes-devtools/gcc/gcc/0003-64-bit-multilib-hack.patch
@@ -1,4 +1,4 @@
1From 33f9c4e4f0a5c2af8ab12612c28ba218ae491587 Mon Sep 17 00:00:00 2001 1From a4f799209882107726f547a4637659068ae07476 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:10:06 +0400 3Date: Fri, 29 Mar 2013 09:10:06 +0400
4Subject: [PATCH] 64-bit multilib hack 4Subject: [PATCH] 64-bit multilib hack
@@ -38,7 +38,7 @@ Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
38 6 files changed, 15 insertions(+), 42 deletions(-) 38 6 files changed, 15 insertions(+), 42 deletions(-)
39 39
40diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux 40diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
41index 3f7b786ecbb..a6c1c92fc7f 100644 41index 70e36b3299e..4267c32763c 100644
42--- a/gcc/config/aarch64/t-aarch64-linux 42--- a/gcc/config/aarch64/t-aarch64-linux
43+++ b/gcc/config/aarch64/t-aarch64-linux 43+++ b/gcc/config/aarch64/t-aarch64-linux
44@@ -21,8 +21,8 @@ 44@@ -21,8 +21,8 @@
@@ -55,7 +55,7 @@ index 3f7b786ecbb..a6c1c92fc7f 100644
55-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) 55-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
56+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32) 56+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
57diff --git a/gcc/config/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux 57diff --git a/gcc/config/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux
58index 07bc77ba34a..f7e2e3919cf 100644 58index e72687260eb..f701fa9e201 100644
59--- a/gcc/config/arc/t-multilib-linux 59--- a/gcc/config/arc/t-multilib-linux
60+++ b/gcc/config/arc/t-multilib-linux 60+++ b/gcc/config/arc/t-multilib-linux
61@@ -16,9 +16,9 @@ 61@@ -16,9 +16,9 @@
@@ -71,7 +71,7 @@ index 07bc77ba34a..f7e2e3919cf 100644
71 # Aliases: 71 # Aliases:
72 MULTILIB_MATCHES += mcpu?arc700=mA7 72 MULTILIB_MATCHES += mcpu?arc700=mA7
73diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 73diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
74index f9edc289e57..047d8e4aff9 100644 74index 64a4a20e64f..2666e731dd6 100644
75--- a/gcc/config/i386/t-linux64 75--- a/gcc/config/i386/t-linux64
76+++ b/gcc/config/i386/t-linux64 76+++ b/gcc/config/i386/t-linux64
77@@ -32,7 +32,5 @@ 77@@ -32,7 +32,5 @@
@@ -85,7 +85,7 @@ index f9edc289e57..047d8e4aff9 100644
85+MULTILIB_DIRNAMES = . . 85+MULTILIB_DIRNAMES = . .
86+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) 86+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
87diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64 87diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64
88index e4e2f5eaedb..c503974de37 100644 88index 34a84461ebb..431a6b5183f 100644
89--- a/gcc/config/mips/t-linux64 89--- a/gcc/config/mips/t-linux64
90+++ b/gcc/config/mips/t-linux64 90+++ b/gcc/config/mips/t-linux64
91@@ -17,29 +17,5 @@ 91@@ -17,29 +17,5 @@
@@ -134,7 +134,7 @@ index a6f64f88d25..0e21db58f7d 100644
134-MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu) 134-MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu)
135+#MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu) 135+#MULTIARCH_DIRNAME := $(call if_multiarch,$(firstword $(subst -, ,$(target)))-linux-gnu)
136diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64 136diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
137index 248b5891e36..379689561a7 100644 137index f56b47c268e..c408c32d8f4 100644
138--- a/gcc/config/rs6000/t-linux64 138--- a/gcc/config/rs6000/t-linux64
139+++ b/gcc/config/rs6000/t-linux64 139+++ b/gcc/config/rs6000/t-linux64
140@@ -26,10 +26,9 @@ 140@@ -26,10 +26,9 @@
diff --git a/meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch b/meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
index 2dc6b13bfb..03139326c9 100644
--- a/meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
+++ b/meta/recipes-devtools/gcc/gcc/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
@@ -1,4 +1,4 @@
1From 40c537352e085df2157cf907da6d694266ab74fe Mon Sep 17 00:00:00 2001 1From bcc97c2c8558cd5d3879a907a216eb0e2008c976 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Thu, 28 Oct 2021 11:33:40 +0100 3Date: Thu, 28 Oct 2021 11:33:40 +0100
4Subject: [PATCH] Pass CXXFLAGS_FOR_BUILD in a couple of places to avoid these 4Subject: [PATCH] Pass CXXFLAGS_FOR_BUILD in a couple of places to avoid these
@@ -23,7 +23,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
23 2 files changed, 4 insertions(+) 23 2 files changed, 4 insertions(+)
24 24
25diff --git a/Makefile.in b/Makefile.in 25diff --git a/Makefile.in b/Makefile.in
26index db4fa6c6260..dee862be8a5 100644 26index b1ed67d3d4f..4d7f45455a3 100644
27--- a/Makefile.in 27--- a/Makefile.in
28+++ b/Makefile.in 28+++ b/Makefile.in
29@@ -179,6 +179,7 @@ BUILD_EXPORTS = \ 29@@ -179,6 +179,7 @@ BUILD_EXPORTS = \
@@ -34,7 +34,7 @@ index db4fa6c6260..dee862be8a5 100644
34 LDFLAGS="$(LDFLAGS_FOR_BUILD)" 34 LDFLAGS="$(LDFLAGS_FOR_BUILD)"
35 35
36 # This is the list of directories to built for the host system. 36 # This is the list of directories to built for the host system.
37@@ -211,6 +212,7 @@ HOST_EXPORTS = \ 37@@ -212,6 +213,7 @@ HOST_EXPORTS = \
38 CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \ 38 CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
39 CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \ 39 CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
40 CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \ 40 CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
@@ -43,7 +43,7 @@ index db4fa6c6260..dee862be8a5 100644
43 DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \ 43 DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \
44 LD="$(LD)"; export LD; \ 44 LD="$(LD)"; export LD; \
45diff --git a/Makefile.tpl b/Makefile.tpl 45diff --git a/Makefile.tpl b/Makefile.tpl
46index 1d5813cd569..ff0fae53b0c 100644 46index 7dccf91ed8e..7cb61bf63ea 100644
47--- a/Makefile.tpl 47--- a/Makefile.tpl
48+++ b/Makefile.tpl 48+++ b/Makefile.tpl
49@@ -182,6 +182,7 @@ BUILD_EXPORTS = \ 49@@ -182,6 +182,7 @@ BUILD_EXPORTS = \
@@ -54,7 +54,7 @@ index 1d5813cd569..ff0fae53b0c 100644
54 LDFLAGS="$(LDFLAGS_FOR_BUILD)" 54 LDFLAGS="$(LDFLAGS_FOR_BUILD)"
55 55
56 # This is the list of directories to built for the host system. 56 # This is the list of directories to built for the host system.
57@@ -214,6 +215,7 @@ HOST_EXPORTS = \ 57@@ -215,6 +216,7 @@ HOST_EXPORTS = \
58 CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \ 58 CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
59 CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \ 59 CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
60 CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \ 60 CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
diff --git a/meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
index c386b502aa..e8e829d9f5 100644
--- a/meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
+++ b/meta/recipes-devtools/gcc/gcc/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
@@ -1,4 +1,4 @@
1From d145dd6dec6863aa303503643b2d3ed470936dd0 Mon Sep 17 00:00:00 2001 1From fd6aa3c3ff5361a738b31d6127cb05910cd6b8c0 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:17:25 +0400 3Date: Fri, 29 Mar 2013 09:17:25 +0400
4Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B} 4Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}
@@ -26,10 +26,10 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
26 4 files changed, 7 insertions(+), 7 deletions(-) 26 4 files changed, 7 insertions(+), 7 deletions(-)
27 27
28diff --git a/gcc/Makefile.in b/gcc/Makefile.in 28diff --git a/gcc/Makefile.in b/gcc/Makefile.in
29index a74761b7ab3..956437df95b 100644 29index 55b4cd7dbed..5546e259a20 100644
30--- a/gcc/Makefile.in 30--- a/gcc/Makefile.in
31+++ b/gcc/Makefile.in 31+++ b/gcc/Makefile.in
32@@ -590,7 +590,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ 32@@ -596,7 +596,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
33 TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@ 33 TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@
34 34
35 xmake_file=@xmake_file@ 35 xmake_file=@xmake_file@
@@ -39,10 +39,10 @@ index a74761b7ab3..956437df95b 100644
39 TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@ 39 TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
40 TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@ 40 TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
41diff --git a/gcc/configure b/gcc/configure 41diff --git a/gcc/configure b/gcc/configure
42index d3fa80408f4..f2706f94062 100755 42index 0f4a5d52c30..a2a8761055c 100755
43--- a/gcc/configure 43--- a/gcc/configure
44+++ b/gcc/configure 44+++ b/gcc/configure
45@@ -15161,8 +15161,8 @@ for f in $tm_file; do 45@@ -15106,8 +15106,8 @@ for f in $tm_file; do
46 tm_include_list="${tm_include_list} $f" 46 tm_include_list="${tm_include_list} $f"
47 ;; 47 ;;
48 defaults.h ) 48 defaults.h )
@@ -54,10 +54,10 @@ index d3fa80408f4..f2706f94062 100755
54 * ) 54 * )
55 tm_file_list="${tm_file_list} \$(srcdir)/config/$f" 55 tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
56diff --git a/gcc/configure.ac b/gcc/configure.ac 56diff --git a/gcc/configure.ac b/gcc/configure.ac
57index 2760b6c540c..3f972dea24f 100644 57index b0e3615e5aa..58ad9dc01fe 100644
58--- a/gcc/configure.ac 58--- a/gcc/configure.ac
59+++ b/gcc/configure.ac 59+++ b/gcc/configure.ac
60@@ -2390,8 +2390,8 @@ for f in $tm_file; do 60@@ -2426,8 +2426,8 @@ for f in $tm_file; do
61 tm_include_list="${tm_include_list} $f" 61 tm_include_list="${tm_include_list} $f"
62 ;; 62 ;;
63 defaults.h ) 63 defaults.h )
@@ -69,7 +69,7 @@ index 2760b6c540c..3f972dea24f 100644
69 * ) 69 * )
70 tm_file_list="${tm_file_list} \$(srcdir)/config/$f" 70 tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
71diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh 71diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
72index 1b015b70b38..145af56745e 100644 72index e02466b4416..0ea1a0c9ca6 100644
73--- a/gcc/mkconfig.sh 73--- a/gcc/mkconfig.sh
74+++ b/gcc/mkconfig.sh 74+++ b/gcc/mkconfig.sh
75@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then 75@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then
diff --git a/meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch b/meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch
index ca1158ee27..26476de33f 100644
--- a/meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch
+++ b/meta/recipes-devtools/gcc/gcc/0006-cpp-honor-sysroot.patch
@@ -1,4 +1,4 @@
1From 429711e243bbda4d662d687c1a6fea24fcb34827 Mon Sep 17 00:00:00 2001 1From b931ab5282cc11627b6f68a6477b79f41ae80b3a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:22:00 +0400 3Date: Fri, 29 Mar 2013 09:22:00 +0400
4Subject: [PATCH] cpp: honor sysroot. 4Subject: [PATCH] cpp: honor sysroot.
@@ -26,10 +26,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
26 2 files changed, 2 insertions(+), 2 deletions(-) 26 2 files changed, 2 insertions(+), 2 deletions(-)
27 27
28diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h 28diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
29index 7a7f5ff0ab5..fb3d88cdb11 100644 29index a67ce4c22a5..ce07a1c4b1d 100644
30--- a/gcc/cp/lang-specs.h 30--- a/gcc/cp/lang-specs.h
31+++ b/gcc/cp/lang-specs.h 31+++ b/gcc/cp/lang-specs.h
32@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3. If not see 32@@ -122,7 +122,7 @@ along with GCC; see the file COPYING3. If not see
33 {".ii", "@c++-cpp-output", 0, 0, 0}, 33 {".ii", "@c++-cpp-output", 0, 0, 0},
34 {"@c++-cpp-output", 34 {"@c++-cpp-output",
35 "%{!E:%{!M:%{!MM:" 35 "%{!E:%{!M:%{!MM:"
@@ -39,10 +39,10 @@ index 7a7f5ff0ab5..fb3d88cdb11 100644
39 " %{fmodule-only:%{!S:-o %g.s%V}}" 39 " %{fmodule-only:%{!S:-o %g.s%V}}"
40 " %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}" 40 " %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
41diff --git a/gcc/gcc.cc b/gcc/gcc.cc 41diff --git a/gcc/gcc.cc b/gcc/gcc.cc
42index 343e4915097..e3e9374d1cc 100644 42index 79d4920a047..c1488865b8b 100644
43--- a/gcc/gcc.cc 43--- a/gcc/gcc.cc
44+++ b/gcc/gcc.cc 44+++ b/gcc/gcc.cc
45@@ -1487,7 +1487,7 @@ static const struct compiler default_compilers[] = 45@@ -1497,7 +1497,7 @@ static const struct compiler default_compilers[] =
46 %W{o*:--output-pch %w%*}}%{!S:%V}}}}}}}}", 0, 0, 0}, 46 %W{o*:--output-pch %w%*}}%{!S:%V}}}}}}}}", 0, 0, 0},
47 {".i", "@cpp-output", 0, 0, 0}, 47 {".i", "@cpp-output", 0, 0, 0},
48 {"@cpp-output", 48 {"@cpp-output",
diff --git a/meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
index 4ed5501551..2b727b09af 100644
--- a/meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ b/meta/recipes-devtools/gcc/gcc/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
@@ -1,4 +1,4 @@
1From 4067ae345f0ff1fbf37c0348f2af09257513b817 Mon Sep 17 00:00:00 2001 1From d9513f8c3fa3f228358fd4d0716941e84bda413e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:24:50 +0400 3Date: Fri, 29 Mar 2013 09:24:50 +0400
4Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER 4Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
@@ -25,7 +25,6 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
25 gcc/config/loongarch/gnu-user.h | 4 ++-- 25 gcc/config/loongarch/gnu-user.h | 4 ++--
26 gcc/config/microblaze/linux.h | 4 ++-- 26 gcc/config/microblaze/linux.h | 4 ++--
27 gcc/config/mips/linux.h | 18 +++++++++--------- 27 gcc/config/mips/linux.h | 18 +++++++++---------
28 gcc/config/nios2/linux.h | 4 ++--
29 gcc/config/riscv/linux.h | 4 ++-- 28 gcc/config/riscv/linux.h | 4 ++--
30 gcc/config/rs6000/linux64.h | 15 +++++---------- 29 gcc/config/rs6000/linux64.h | 15 +++++----------
31 gcc/config/rs6000/sysv4.h | 4 ++-- 30 gcc/config/rs6000/sysv4.h | 4 ++--
@@ -33,10 +32,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
33 gcc/config/sh/linux.h | 4 ++-- 32 gcc/config/sh/linux.h | 4 ++--
34 gcc/config/sparc/linux.h | 2 +- 33 gcc/config/sparc/linux.h | 2 +-
35 gcc/config/sparc/linux64.h | 4 ++-- 34 gcc/config/sparc/linux64.h | 4 ++--
36 18 files changed, 53 insertions(+), 58 deletions(-) 35 17 files changed, 51 insertions(+), 56 deletions(-)
37 36
38diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h 37diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
39index 8e51c8202cc..732e4f4a477 100644 38index 116bb4e69f3..c0de4900dc2 100644
40--- a/gcc/config/aarch64/aarch64-linux.h 39--- a/gcc/config/aarch64/aarch64-linux.h
41+++ b/gcc/config/aarch64/aarch64-linux.h 40+++ b/gcc/config/aarch64/aarch64-linux.h
42@@ -21,10 +21,10 @@ 41@@ -21,10 +21,10 @@
@@ -53,7 +52,7 @@ index 8e51c8202cc..732e4f4a477 100644
53 #undef ASAN_CC1_SPEC 52 #undef ASAN_CC1_SPEC
54 #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}" 53 #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
55diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h 54diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
56index 40ccf0bd9b4..ab5c59655fc 100644 55index 3fd3b831166..6471fa32b0b 100644
57--- a/gcc/config/alpha/linux-elf.h 56--- a/gcc/config/alpha/linux-elf.h
58+++ b/gcc/config/alpha/linux-elf.h 57+++ b/gcc/config/alpha/linux-elf.h
59@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see 58@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3. If not see
@@ -68,10 +67,10 @@ index 40ccf0bd9b4..ab5c59655fc 100644
68 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}" 67 #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
69 #elif DEFAULT_LIBC == LIBC_GLIBC 68 #elif DEFAULT_LIBC == LIBC_GLIBC
70diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h 69diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
71index eef791f6a02..335cb4c3607 100644 70index 8ef5643b5d6..76893197773 100644
72--- a/gcc/config/arm/linux-eabi.h 71--- a/gcc/config/arm/linux-eabi.h
73+++ b/gcc/config/arm/linux-eabi.h 72+++ b/gcc/config/arm/linux-eabi.h
74@@ -62,8 +62,8 @@ 73@@ -65,8 +65,8 @@
75 GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */ 74 GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI. */
76 75
77 #undef GLIBC_DYNAMIC_LINKER 76 #undef GLIBC_DYNAMIC_LINKER
@@ -82,7 +81,7 @@ index eef791f6a02..335cb4c3607 100644
82 #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT 81 #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
83 82
84 #define GLIBC_DYNAMIC_LINKER \ 83 #define GLIBC_DYNAMIC_LINKER \
85@@ -86,7 +86,7 @@ 84@@ -89,7 +89,7 @@
86 #define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}" 85 #define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
87 #endif 86 #endif
88 #define MUSL_DYNAMIC_LINKER \ 87 #define MUSL_DYNAMIC_LINKER \
@@ -92,7 +91,7 @@ index eef791f6a02..335cb4c3607 100644
92 /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to 91 /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
93 use the GNU/Linux version, not the generic BPABI version. */ 92 use the GNU/Linux version, not the generic BPABI version. */
94diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h 93diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
95index ccae8abf6f6..ea421d03891 100644 94index d4d389e2aa8..6c4b1e13463 100644
96--- a/gcc/config/arm/linux-elf.h 95--- a/gcc/config/arm/linux-elf.h
97+++ b/gcc/config/arm/linux-elf.h 96+++ b/gcc/config/arm/linux-elf.h
98@@ -60,7 +60,7 @@ 97@@ -60,7 +60,7 @@
@@ -105,7 +104,7 @@ index ccae8abf6f6..ea421d03891 100644
105 #define LINUX_TARGET_LINK_SPEC "%{h*} \ 104 #define LINUX_TARGET_LINK_SPEC "%{h*} \
106 %{static:-Bstatic} \ 105 %{static:-Bstatic} \
107diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h 106diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
108index 20a96d56e65..7a7a4f873e4 100644 107index efbd978c610..9ea0261b0fc 100644
109--- a/gcc/config/i386/linux.h 108--- a/gcc/config/i386/linux.h
110+++ b/gcc/config/i386/linux.h 109+++ b/gcc/config/i386/linux.h
111@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see 110@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3. If not see
@@ -119,7 +118,7 @@ index 20a96d56e65..7a7a4f873e4 100644
119-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1" 118-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
120+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1" 119+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
121diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h 120diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
122index 3dd23eef5e5..960cd7c0450 100644 121index 24170ee2845..733e3e4945a 100644
123--- a/gcc/config/i386/linux64.h 122--- a/gcc/config/i386/linux64.h
124+++ b/gcc/config/i386/linux64.h 123+++ b/gcc/config/i386/linux64.h
125@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 124@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -143,7 +142,7 @@ index 3dd23eef5e5..960cd7c0450 100644
143-#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1" 142-#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
144+#define MUSL_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-musl-x32.so.1" 143+#define MUSL_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-musl-x32.so.1"
145diff --git a/gcc/config/linux.h b/gcc/config/linux.h 144diff --git a/gcc/config/linux.h b/gcc/config/linux.h
146index a7248ac90d0..e36f32bf59e 100644 145index d6280a4d4dd..c79d4902f85 100644
147--- a/gcc/config/linux.h 146--- a/gcc/config/linux.h
148+++ b/gcc/config/linux.h 147+++ b/gcc/config/linux.h
149@@ -86,10 +86,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 148@@ -86,10 +86,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -162,7 +161,7 @@ index a7248ac90d0..e36f32bf59e 100644
162 #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker" 161 #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
163 #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64" 162 #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
164diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h 163diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h
165index e5d84e180e3..98cb49c189f 100644 164index fbc75a90ad5..38c239940bd 100644
166--- a/gcc/config/loongarch/gnu-user.h 165--- a/gcc/config/loongarch/gnu-user.h
167+++ b/gcc/config/loongarch/gnu-user.h 166+++ b/gcc/config/loongarch/gnu-user.h
168@@ -31,7 +31,7 @@ along with GCC; see the file COPYING3. If not see 167@@ -31,7 +31,7 @@ along with GCC; see the file COPYING3. If not see
@@ -184,7 +183,7 @@ index e5d84e180e3..98cb49c189f 100644
184 #undef GNU_USER_TARGET_LINK_SPEC 183 #undef GNU_USER_TARGET_LINK_SPEC
185 #define GNU_USER_TARGET_LINK_SPEC \ 184 #define GNU_USER_TARGET_LINK_SPEC \
186diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h 185diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h
187index 5ed8ee518be..299d1a62c81 100644 186index 7b09cde7693..8bfafaf87f7 100644
188--- a/gcc/config/microblaze/linux.h 187--- a/gcc/config/microblaze/linux.h
189+++ b/gcc/config/microblaze/linux.h 188+++ b/gcc/config/microblaze/linux.h
190@@ -28,7 +28,7 @@ 189@@ -28,7 +28,7 @@
@@ -206,7 +205,7 @@ index 5ed8ee518be..299d1a62c81 100644
206 #undef SUBTARGET_EXTRA_SPECS 205 #undef SUBTARGET_EXTRA_SPECS
207 #define SUBTARGET_EXTRA_SPECS \ 206 #define SUBTARGET_EXTRA_SPECS \
208diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h 207diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
209index 8d098dd2f44..1c5ebbd26d5 100644 208index ae15d490108..0281650009d 100644
210--- a/gcc/config/mips/linux.h 209--- a/gcc/config/mips/linux.h
211+++ b/gcc/config/mips/linux.h 210+++ b/gcc/config/mips/linux.h
212@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3. If not see 211@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3. If not see
@@ -248,25 +247,8 @@ index 8d098dd2f44..1c5ebbd26d5 100644
248 247
249 #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32" 248 #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
250 #define GNU_USER_DYNAMIC_LINKERN32 \ 249 #define GNU_USER_DYNAMIC_LINKERN32 \
251diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
252index 06c442e85f4..b21a3c076c9 100644
253--- a/gcc/config/nios2/linux.h
254+++ b/gcc/config/nios2/linux.h
255@@ -29,10 +29,10 @@
256 #undef CPP_SPEC
257 #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
258
259-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
260+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-nios2.so.1"
261
262 #undef MUSL_DYNAMIC_LINKER
263-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-nios2.so.1"
264+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-nios2.so.1"
265
266 #undef LINK_SPEC
267 #define LINK_SPEC LINK_SPEC_ENDIAN \
268diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h 250diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
269index 3c356227134..4d16bae86db 100644 251index 9060c940a44..c7712db194a 100644
270--- a/gcc/config/riscv/linux.h 252--- a/gcc/config/riscv/linux.h
271+++ b/gcc/config/riscv/linux.h 253+++ b/gcc/config/riscv/linux.h
272@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see 254@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3. If not see
@@ -288,7 +270,7 @@ index 3c356227134..4d16bae86db 100644
288 #define ICACHE_FLUSH_FUNC "__riscv_flush_icache" 270 #define ICACHE_FLUSH_FUNC "__riscv_flush_icache"
289 271
290diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h 272diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
291index 655d1054d76..a11ae7643b7 100644 273index 0316d8cb65d..8de5eb8bb49 100644
292--- a/gcc/config/rs6000/linux64.h 274--- a/gcc/config/rs6000/linux64.h
293+++ b/gcc/config/rs6000/linux64.h 275+++ b/gcc/config/rs6000/linux64.h
294@@ -340,24 +340,19 @@ extern int dot_symbols; 276@@ -340,24 +340,19 @@ extern int dot_symbols;
@@ -322,10 +304,10 @@ index 655d1054d76..a11ae7643b7 100644
322 #undef DEFAULT_ASM_ENDIAN 304 #undef DEFAULT_ASM_ENDIAN
323 #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN) 305 #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
324diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h 306diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
325index bcafa9d0cf4..8fda952e69c 100644 307index afb5c6ad867..3eb6c814ced 100644
326--- a/gcc/config/rs6000/sysv4.h 308--- a/gcc/config/rs6000/sysv4.h
327+++ b/gcc/config/rs6000/sysv4.h 309+++ b/gcc/config/rs6000/sysv4.h
328@@ -771,10 +771,10 @@ GNU_USER_TARGET_CC1_SPEC 310@@ -772,10 +772,10 @@ GNU_USER_TARGET_CC1_SPEC
329 311
330 #define MUSL_DYNAMIC_LINKER_E ENDIAN_SELECT("","le","") 312 #define MUSL_DYNAMIC_LINKER_E ENDIAN_SELECT("","le","")
331 313
@@ -339,7 +321,7 @@ index bcafa9d0cf4..8fda952e69c 100644
339 #ifndef GNU_USER_DYNAMIC_LINKER 321 #ifndef GNU_USER_DYNAMIC_LINKER
340 #define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER 322 #define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
341diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h 323diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
342index 83ea2f669a0..bc7cffbad3f 100644 324index 2c3bca5dfcb..1332624abad 100644
343--- a/gcc/config/s390/linux.h 325--- a/gcc/config/s390/linux.h
344+++ b/gcc/config/s390/linux.h 326+++ b/gcc/config/s390/linux.h
345@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3. If not see 327@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3. If not see
@@ -361,7 +343,7 @@ index 83ea2f669a0..bc7cffbad3f 100644
361 #undef LINK_SPEC 343 #undef LINK_SPEC
362 #define LINK_SPEC \ 344 #define LINK_SPEC \
363diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h 345diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
364index 34cbbed633f..14000d3394c 100644 346index 78a7905a919..28493851982 100644
365--- a/gcc/config/sh/linux.h 347--- a/gcc/config/sh/linux.h
366+++ b/gcc/config/sh/linux.h 348+++ b/gcc/config/sh/linux.h
367@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3. If not see 349@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3. If not see
@@ -378,7 +360,7 @@ index 34cbbed633f..14000d3394c 100644
378 #undef SUBTARGET_LINK_EMUL_SUFFIX 360 #undef SUBTARGET_LINK_EMUL_SUFFIX
379 #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}" 361 #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
380diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h 362diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
381index 9646fa9c41e..396fb047fac 100644 363index 6d928846895..cd35dc8fa30 100644
382--- a/gcc/config/sparc/linux.h 364--- a/gcc/config/sparc/linux.h
383+++ b/gcc/config/sparc/linux.h 365+++ b/gcc/config/sparc/linux.h
384@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); 366@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
@@ -391,7 +373,7 @@ index 9646fa9c41e..396fb047fac 100644
391 #undef LINK_SPEC 373 #undef LINK_SPEC
392 #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ 374 #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
393diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h 375diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
394index 83e0d6874d9..9a32d2cfff5 100644 376index 97d5012f43f..65162c7c300 100644
395--- a/gcc/config/sparc/linux64.h 377--- a/gcc/config/sparc/linux64.h
396+++ b/gcc/config/sparc/linux64.h 378+++ b/gcc/config/sparc/linux64.h
397@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3. If not see 379@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3. If not see
diff --git a/meta/recipes-devtools/gcc/gcc/0008-libtool.patch b/meta/recipes-devtools/gcc/gcc/0008-libtool.patch
index b8081d4614..f24bb2acf0 100644
--- a/meta/recipes-devtools/gcc/gcc/0008-libtool.patch
+++ b/meta/recipes-devtools/gcc/gcc/0008-libtool.patch
@@ -1,4 +1,4 @@
1From 462e2111804490fcdbb9fd87a86b1e7ac1805803 Mon Sep 17 00:00:00 2001 1From 7108016f82a3ce9d275b5d0f37dbde422de6ab15 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:29:11 +0400 3Date: Fri, 29 Mar 2013 09:29:11 +0400
4Subject: [PATCH] libtool 4Subject: [PATCH] libtool
@@ -22,10 +22,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
22 1 file changed, 4 insertions(+) 22 1 file changed, 4 insertions(+)
23 23
24diff --git a/ltmain.sh b/ltmain.sh 24diff --git a/ltmain.sh b/ltmain.sh
25index 70990740b6c..ee938056bef 100644 25index 1a710177fb2..e8474602b0b 100644
26--- a/ltmain.sh 26--- a/ltmain.sh
27+++ b/ltmain.sh 27+++ b/ltmain.sh
28@@ -6359,6 +6359,10 @@ func_mode_link () 28@@ -6381,6 +6381,10 @@ func_mode_link ()
29 func_warning "ignoring multiple \`-rpath's for a libtool library" 29 func_warning "ignoring multiple \`-rpath's for a libtool library"
30 30
31 install_libdir="$1" 31 install_libdir="$1"
diff --git a/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
index 015777c35b..215a599cb8 100644
--- a/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ b/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
@@ -1,4 +1,4 @@
1From 702550757997de7013c96047dbc07791e5ff1d32 Mon Sep 17 00:00:00 2001 1From 135523bfabbd37cc6326da1a7ec3cd8bc7387439 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:30:32 +0400 3Date: Fri, 29 Mar 2013 09:30:32 +0400
4Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI. 4Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI.
@@ -18,10 +18,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
18 1 file changed, 5 insertions(+), 1 deletion(-) 18 1 file changed, 5 insertions(+), 1 deletion(-)
19 19
20diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h 20diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
21index 335cb4c3607..1d5235075cb 100644 21index 76893197773..12c334463c6 100644
22--- a/gcc/config/arm/linux-eabi.h 22--- a/gcc/config/arm/linux-eabi.h
23+++ b/gcc/config/arm/linux-eabi.h 23+++ b/gcc/config/arm/linux-eabi.h
24@@ -88,10 +88,14 @@ 24@@ -91,10 +91,14 @@
25 #define MUSL_DYNAMIC_LINKER \ 25 #define MUSL_DYNAMIC_LINKER \
26 SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1" 26 SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
27 27
diff --git a/meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
index 9920e61a7f..c3c4212115 100644
--- a/meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+++ b/meta/recipes-devtools/gcc/gcc/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
@@ -1,4 +1,4 @@
1From 818edee70eb8c5471a9d2924dd50f7cdd9774c12 Mon Sep 17 00:00:00 2001 1From 2ede6edb029ef3d98f3ead90f7be54b71cb42ae2 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 29 Mar 2013 09:33:04 +0400 3Date: Fri, 29 Mar 2013 09:33:04 +0400
4Subject: [PATCH] Use the multilib config files from ${B} instead of using the 4Subject: [PATCH] Use the multilib config files from ${B} instead of using the
@@ -18,10 +18,10 @@ Upstream-Status: Inappropriate [configuration]
18 2 files changed, 36 insertions(+), 8 deletions(-) 18 2 files changed, 36 insertions(+), 8 deletions(-)
19 19
20diff --git a/gcc/configure b/gcc/configure 20diff --git a/gcc/configure b/gcc/configure
21index f2706f94062..135c557b595 100755 21index a2a8761055c..a5a028f39c3 100755
22--- a/gcc/configure 22--- a/gcc/configure
23+++ b/gcc/configure 23+++ b/gcc/configure
24@@ -15141,10 +15141,20 @@ done 24@@ -15086,10 +15086,20 @@ done
25 tmake_file_= 25 tmake_file_=
26 for f in ${tmake_file} 26 for f in ${tmake_file}
27 do 27 do
@@ -46,7 +46,7 @@ index f2706f94062..135c557b595 100755
46 done 46 done
47 tmake_file="${tmake_file_}${omp_device_property_tmake_file}" 47 tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
48 48
49@@ -15155,6 +15165,10 @@ tm_file_list="options.h" 49@@ -15100,6 +15110,10 @@ tm_file_list="options.h"
50 tm_include_list="options.h insn-constants.h" 50 tm_include_list="options.h insn-constants.h"
51 for f in $tm_file; do 51 for f in $tm_file; do
52 case $f in 52 case $f in
@@ -58,10 +58,10 @@ index f2706f94062..135c557b595 100755
58 f=`echo $f | sed 's/^..//'` 58 f=`echo $f | sed 's/^..//'`
59 tm_file_list="${tm_file_list} $f" 59 tm_file_list="${tm_file_list} $f"
60diff --git a/gcc/configure.ac b/gcc/configure.ac 60diff --git a/gcc/configure.ac b/gcc/configure.ac
61index 3f972dea24f..cbf8fea3ca1 100644 61index 58ad9dc01fe..36ed7153398 100644
62--- a/gcc/configure.ac 62--- a/gcc/configure.ac
63+++ b/gcc/configure.ac 63+++ b/gcc/configure.ac
64@@ -2370,10 +2370,20 @@ done 64@@ -2406,10 +2406,20 @@ done
65 tmake_file_= 65 tmake_file_=
66 for f in ${tmake_file} 66 for f in ${tmake_file}
67 do 67 do
@@ -86,7 +86,7 @@ index 3f972dea24f..cbf8fea3ca1 100644
86 done 86 done
87 tmake_file="${tmake_file_}${omp_device_property_tmake_file}" 87 tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
88 88
89@@ -2384,6 +2394,10 @@ tm_file_list="options.h" 89@@ -2420,6 +2430,10 @@ tm_file_list="options.h"
90 tm_include_list="options.h insn-constants.h" 90 tm_include_list="options.h insn-constants.h"
91 for f in $tm_file; do 91 for f in $tm_file; do
92 case $f in 92 case $f in
diff --git a/meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch b/meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch
index 0b19de57c0..9e05277515 100644
--- a/meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch
+++ b/meta/recipes-devtools/gcc/gcc/0011-aarch64-Fix-include-paths-when-S-B.patch
@@ -1,4 +1,4 @@
1From 875975598d5a1000b8c8ad7596178d0a64f9e0cb Mon Sep 17 00:00:00 2001 1From a60798dd091f46dbb5f2fa9cf7655b41e9431a73 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 31 Jan 2023 22:03:38 -0800 3Date: Tue, 31 Jan 2023 22:03:38 -0800
4Subject: [PATCH] aarch64: Fix include paths when S != B 4Subject: [PATCH] aarch64: Fix include paths when S != B
@@ -28,10 +28,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
28 1 file changed, 7 insertions(+), 7 deletions(-) 28 1 file changed, 7 insertions(+), 7 deletions(-)
29 29
30diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h 30diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
31index 4fa1dfc7906..63c9a832d1c 100644 31index e8bd8c73c12..6ea05b64601 100644
32--- a/gcc/config/aarch64/aarch64.h 32--- a/gcc/config/aarch64/aarch64.h
33+++ b/gcc/config/aarch64/aarch64.h 33+++ b/gcc/config/aarch64/aarch64.h
34@@ -170,9 +170,9 @@ enum class aarch64_feature : unsigned char { 34@@ -163,9 +163,9 @@ enum class aarch64_feature : unsigned char {
35 #define DEF_AARCH64_ISA_MODE(IDENT) IDENT, 35 #define DEF_AARCH64_ISA_MODE(IDENT) IDENT,
36 #define AARCH64_OPT_EXTENSION(A, IDENT, C, D, E, F) IDENT, 36 #define AARCH64_OPT_EXTENSION(A, IDENT, C, D, E, F) IDENT,
37 #define AARCH64_ARCH(A, B, IDENT, D, E) IDENT, 37 #define AARCH64_ARCH(A, B, IDENT, D, E) IDENT,
@@ -44,7 +44,7 @@ index 4fa1dfc7906..63c9a832d1c 100644
44 }; 44 };
45 45
46 /* Define unique flags for each of the above. */ 46 /* Define unique flags for each of the above. */
47@@ -182,16 +182,16 @@ enum class aarch64_feature : unsigned char { 47@@ -175,16 +175,16 @@ enum class aarch64_feature : unsigned char {
48 #define DEF_AARCH64_ISA_MODE(IDENT) HANDLE (IDENT) 48 #define DEF_AARCH64_ISA_MODE(IDENT) HANDLE (IDENT)
49 #define AARCH64_OPT_EXTENSION(A, IDENT, C, D, E, F) HANDLE (IDENT) 49 #define AARCH64_OPT_EXTENSION(A, IDENT, C, D, E, F) HANDLE (IDENT)
50 #define AARCH64_ARCH(A, B, IDENT, D, E) HANDLE (IDENT) 50 #define AARCH64_ARCH(A, B, IDENT, D, E) HANDLE (IDENT)
@@ -56,12 +56,12 @@ index 4fa1dfc7906..63c9a832d1c 100644
56+#include "config/aarch64/aarch64-arches.def" 56+#include "config/aarch64/aarch64-arches.def"
57 #undef HANDLE 57 #undef HANDLE
58 58
59 constexpr auto AARCH64_FL_SM_STATE = AARCH64_FL_SM_ON | AARCH64_FL_SM_OFF; 59 /* Define aarch64_isa_mode masks. */
60 60 #define DEF_AARCH64_ISA_MODE(IDENT) \
61 constexpr unsigned int AARCH64_NUM_ISA_MODES = (0 61 constexpr auto AARCH64_ISA_MODE_##IDENT ATTRIBUTE_UNUSED \
62 #define DEF_AARCH64_ISA_MODE(IDENT) + 1 62 = aarch64_isa_mode (1) << int (aarch64_feature::IDENT);
63-#include "aarch64-isa-modes.def" 63-#include "aarch64-isa-modes.def"
64+#include "config/aarch64/aarch64-isa-modes.def" 64+#include "config/aarch64/aarch64-isa-modes.def"
65 ); 65 #undef HANDLE
66 66
67 /* The mask of all ISA modes. */ 67 constexpr auto AARCH64_FL_SM_STATE ATTRIBUTE_UNUSED
diff --git a/meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
index 6eb5bceebd..8d0c39f9ce 100644
--- a/meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
+++ b/meta/recipes-devtools/gcc/gcc/0012-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
@@ -1,4 +1,4 @@
1From b38add903c7f701e5b79dd7d93fb7dc61d8252c7 Mon Sep 17 00:00:00 2001 1From 3745be5dece41bc2c633e1702980965e28888f62 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 20 Feb 2015 09:39:38 +0000 3Date: Fri, 20 Feb 2015 09:39:38 +0000
4Subject: [PATCH] Avoid using libdir from .la which usually points to a host 4Subject: [PATCH] Avoid using libdir from .la which usually points to a host
@@ -13,10 +13,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
13 1 file changed, 3 insertions(+) 13 1 file changed, 3 insertions(+)
14 14
15diff --git a/ltmain.sh b/ltmain.sh 15diff --git a/ltmain.sh b/ltmain.sh
16index ee938056bef..9ebc7e3d1e0 100644 16index e8474602b0b..ef93f977a52 100644
17--- a/ltmain.sh 17--- a/ltmain.sh
18+++ b/ltmain.sh 18+++ b/ltmain.sh
19@@ -5628,6 +5628,9 @@ func_mode_link () 19@@ -5650,6 +5650,9 @@ func_mode_link ()
20 absdir="$abs_ladir" 20 absdir="$abs_ladir"
21 libdir="$abs_ladir" 21 libdir="$abs_ladir"
22 else 22 else
diff --git a/meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch b/meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch
index 32a126ac8a..906ef3f74b 100644
--- a/meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch
+++ b/meta/recipes-devtools/gcc/gcc/0013-Ensure-target-gcc-headers-can-be-included.patch
@@ -1,4 +1,4 @@
1From 304299aef8b1ae1f89a0fabbceed0d48091b569b Mon Sep 17 00:00:00 2001 1From 860aae0d1f5dce7a879690d53a6ab54c6a32107e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 20 Feb 2015 10:25:11 +0000 3Date: Fri, 20 Feb 2015 10:25:11 +0000
4Subject: [PATCH] Ensure target gcc headers can be included 4Subject: [PATCH] Ensure target gcc headers can be included
@@ -25,10 +25,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
25 4 files changed, 22 insertions(+) 25 4 files changed, 22 insertions(+)
26 26
27diff --git a/gcc/Makefile.in b/gcc/Makefile.in 27diff --git a/gcc/Makefile.in b/gcc/Makefile.in
28index 956437df95b..6a009c696e9 100644 28index 5546e259a20..944d0a6680a 100644
29--- a/gcc/Makefile.in 29--- a/gcc/Makefile.in
30+++ b/gcc/Makefile.in 30+++ b/gcc/Makefile.in
31@@ -671,6 +671,7 @@ libexecdir = @libexecdir@ 31@@ -680,6 +680,7 @@ libexecdir = @libexecdir@
32 32
33 # Directory in which the compiler finds libraries etc. 33 # Directory in which the compiler finds libraries etc.
34 libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) 34 libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
@@ -36,7 +36,7 @@ index 956437df95b..6a009c696e9 100644
36 # Directory in which the compiler finds executables 36 # Directory in which the compiler finds executables
37 libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) 37 libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
38 # Directory in which all plugin resources are installed 38 # Directory in which all plugin resources are installed
39@@ -3199,6 +3200,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\" 39@@ -3397,6 +3398,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
40 40
41 PREPROCESSOR_DEFINES = \ 41 PREPROCESSOR_DEFINES = \
42 -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \ 42 -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
@@ -45,7 +45,7 @@ index 956437df95b..6a009c696e9 100644
45 -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ 45 -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
46 -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \ 46 -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
47diff --git a/gcc/config/linux.h b/gcc/config/linux.h 47diff --git a/gcc/config/linux.h b/gcc/config/linux.h
48index e36f32bf59e..c6aada42eb7 100644 48index c79d4902f85..640def63c27 100644
49--- a/gcc/config/linux.h 49--- a/gcc/config/linux.h
50+++ b/gcc/config/linux.h 50+++ b/gcc/config/linux.h
51@@ -157,6 +157,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 51@@ -157,6 +157,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -71,10 +71,10 @@ index e36f32bf59e..c6aada42eb7 100644
71 { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ 71 { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \
72 { 0, 0, 0, 0, 0, 0 } \ 72 { 0, 0, 0, 0, 0, 0 } \
73diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h 73diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
74index 8fda952e69c..247acec9d8e 100644 74index 3eb6c814ced..d534b9d2295 100644
75--- a/gcc/config/rs6000/sysv4.h 75--- a/gcc/config/rs6000/sysv4.h
76+++ b/gcc/config/rs6000/sysv4.h 76+++ b/gcc/config/rs6000/sysv4.h
77@@ -986,6 +986,13 @@ ncrtn.o%s" 77@@ -987,6 +987,13 @@ ncrtn.o%s"
78 #define INCLUDE_DEFAULTS_MUSL_TOOL 78 #define INCLUDE_DEFAULTS_MUSL_TOOL
79 #endif 79 #endif
80 80
@@ -88,7 +88,7 @@ index 8fda952e69c..247acec9d8e 100644
88 #ifdef NATIVE_SYSTEM_HEADER_DIR 88 #ifdef NATIVE_SYSTEM_HEADER_DIR
89 #define INCLUDE_DEFAULTS_MUSL_NATIVE \ 89 #define INCLUDE_DEFAULTS_MUSL_NATIVE \
90 { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \ 90 { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 }, \
91@@ -1012,6 +1019,7 @@ ncrtn.o%s" 91@@ -1013,6 +1020,7 @@ ncrtn.o%s"
92 INCLUDE_DEFAULTS_MUSL_PREFIX \ 92 INCLUDE_DEFAULTS_MUSL_PREFIX \
93 INCLUDE_DEFAULTS_MUSL_CROSS \ 93 INCLUDE_DEFAULTS_MUSL_CROSS \
94 INCLUDE_DEFAULTS_MUSL_TOOL \ 94 INCLUDE_DEFAULTS_MUSL_TOOL \
@@ -97,7 +97,7 @@ index 8fda952e69c..247acec9d8e 100644
97 { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \ 97 { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 }, \
98 { 0, 0, 0, 0, 0, 0 } \ 98 { 0, 0, 0, 0, 0, 0 } \
99diff --git a/gcc/cppdefault.cc b/gcc/cppdefault.cc 99diff --git a/gcc/cppdefault.cc b/gcc/cppdefault.cc
100index f82b4badad7..98bd66f95c6 100644 100index f98c39c53ec..db1e517fadc 100644
101--- a/gcc/cppdefault.cc 101--- a/gcc/cppdefault.cc
102+++ b/gcc/cppdefault.cc 102+++ b/gcc/cppdefault.cc
103@@ -64,6 +64,10 @@ const struct default_include cpp_include_defaults[] 103@@ -64,6 +64,10 @@ const struct default_include cpp_include_defaults[]
diff --git a/meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
index 5f48dccc0a..c7bf8d1c8e 100644
--- a/meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
+++ b/meta/recipes-devtools/gcc/gcc/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
@@ -1,4 +1,4 @@
1From a32cbf0d1c036e6435469898829f96a02c5993a8 Mon Sep 17 00:00:00 2001 1From f28f581fbafa76a48cc7e88ab9c6eb63db6342c4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 3 Mar 2015 08:21:19 +0000 3Date: Tue, 3 Mar 2015 08:21:19 +0000
4Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix 4Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 3 insertions(+), 2 deletions(-) 14 1 file changed, 3 insertions(+), 2 deletions(-)
15 15
16diff --git a/ltmain.sh b/ltmain.sh 16diff --git a/ltmain.sh b/ltmain.sh
17index 9ebc7e3d1e0..7ea79fa8be6 100644 17index ef93f977a52..2ae16bf5d63 100644
18--- a/ltmain.sh 18--- a/ltmain.sh
19+++ b/ltmain.sh 19+++ b/ltmain.sh
20@@ -6004,12 +6004,13 @@ func_mode_link () 20@@ -6026,12 +6026,13 @@ func_mode_link ()
21 fi 21 fi
22 else 22 else
23 # We cannot seem to hardcode it, guess we'll fake it. 23 # We cannot seem to hardcode it, guess we'll fake it.
diff --git a/meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
index e34e65e479..9abf72b8e8 100644
--- a/meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
+++ b/meta/recipes-devtools/gcc/gcc/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
@@ -1,4 +1,4 @@
1From 6721497a3b4b575e5f9eae785dd4eca0f87b4a5b Mon Sep 17 00:00:00 2001 1From b54d51c58012f9eac31cf83a8e02c7069bf80a74 Mon Sep 17 00:00:00 2001
2From: Robert Yang <liezhi.yang@windriver.com> 2From: Robert Yang <liezhi.yang@windriver.com>
3Date: Sun, 5 Jul 2015 20:25:18 -0700 3Date: Sun, 5 Jul 2015 20:25:18 -0700
4Subject: [PATCH] libcc1: fix libcc1's install path and rpath 4Subject: [PATCH] libcc1: fix libcc1's install path and rpath
@@ -20,7 +20,7 @@ Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
20 2 files changed, 4 insertions(+), 4 deletions(-) 20 2 files changed, 4 insertions(+), 4 deletions(-)
21 21
22diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am 22diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am
23index b592bc8645f..97e2b615fb7 100644 23index f79e48a9aa2..bd8390946a2 100644
24--- a/libcc1/Makefile.am 24--- a/libcc1/Makefile.am
25+++ b/libcc1/Makefile.am 25+++ b/libcc1/Makefile.am
26@@ -40,8 +40,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ 26@@ -40,8 +40,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
@@ -35,7 +35,7 @@ index b592bc8645f..97e2b615fb7 100644
35 if ENABLE_PLUGIN 35 if ENABLE_PLUGIN
36 plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la 36 plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la
37diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in 37diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in
38index f8f590d71e9..56462492045 100644 38index 9d56a8323b0..4deb08d8b34 100644
39--- a/libcc1/Makefile.in 39--- a/libcc1/Makefile.in
40+++ b/libcc1/Makefile.in 40+++ b/libcc1/Makefile.in
41@@ -396,8 +396,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \ 41@@ -396,8 +396,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
diff --git a/meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch b/meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch
index edd100ee46..682317fee8 100644
--- a/meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch
+++ b/meta/recipes-devtools/gcc/gcc/0016-handle-sysroot-support-for-nativesdk-gcc.patch
@@ -1,4 +1,4 @@
1From 3f5ac862051e1c77dcca3e63a912f43d66ccdb6f Mon Sep 17 00:00:00 2001 1From ccfe6d014e8cc04b0d3420f82dca8920fb659a07 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 7 Dec 2015 23:39:54 +0000 3Date: Mon, 7 Dec 2015 23:39:54 +0000
4Subject: [PATCH] handle sysroot support for nativesdk-gcc 4Subject: [PATCH] handle sysroot support for nativesdk-gcc
@@ -46,10 +46,10 @@ Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
46 8 files changed, 95 insertions(+), 73 deletions(-) 46 8 files changed, 95 insertions(+), 73 deletions(-)
47 47
48diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc 48diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc
49index f4dced8d826..911aeb68d2d 100644 49index d43b3aef102..b157ad37483 100644
50--- a/gcc/c-family/c-opts.cc 50--- a/gcc/c-family/c-opts.cc
51+++ b/gcc/c-family/c-opts.cc 51+++ b/gcc/c-family/c-opts.cc
52@@ -1542,8 +1542,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain) 52@@ -1610,8 +1610,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain)
53 size_t prefix_len, suffix_len; 53 size_t prefix_len, suffix_len;
54 54
55 suffix_len = strlen (suffix); 55 suffix_len = strlen (suffix);
@@ -61,7 +61,7 @@ index f4dced8d826..911aeb68d2d 100644
61 path = (char *) xmalloc (prefix_len + suffix_len + 1); 61 path = (char *) xmalloc (prefix_len + suffix_len + 1);
62 memcpy (path, prefix, prefix_len); 62 memcpy (path, prefix, prefix_len);
63diff --git a/gcc/config/linux.h b/gcc/config/linux.h 63diff --git a/gcc/config/linux.h b/gcc/config/linux.h
64index c6aada42eb7..79ff13184d3 100644 64index 640def63c27..0f937abe729 100644
65--- a/gcc/config/linux.h 65--- a/gcc/config/linux.h
66+++ b/gcc/config/linux.h 66+++ b/gcc/config/linux.h
67@@ -121,53 +121,53 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 67@@ -121,53 +121,53 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -139,10 +139,10 @@ index c6aada42eb7..79ff13184d3 100644
139 } 139 }
140 #endif 140 #endif
141diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h 141diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
142index 247acec9d8e..5526bf050b8 100644 142index d534b9d2295..c5257425705 100644
143--- a/gcc/config/rs6000/sysv4.h 143--- a/gcc/config/rs6000/sysv4.h
144+++ b/gcc/config/rs6000/sysv4.h 144+++ b/gcc/config/rs6000/sysv4.h
145@@ -950,53 +950,53 @@ ncrtn.o%s" 145@@ -951,53 +951,53 @@ ncrtn.o%s"
146 /* Include order changes for musl, same as in generic linux.h. */ 146 /* Include order changes for musl, same as in generic linux.h. */
147 #if DEFAULT_LIBC == LIBC_MUSL 147 #if DEFAULT_LIBC == LIBC_MUSL
148 #define INCLUDE_DEFAULTS_MUSL_GPP \ 148 #define INCLUDE_DEFAULTS_MUSL_GPP \
@@ -207,7 +207,7 @@ index 247acec9d8e..5526bf050b8 100644
207 #else 207 #else
208 #define INCLUDE_DEFAULTS_MUSL_NATIVE 208 #define INCLUDE_DEFAULTS_MUSL_NATIVE
209 #endif 209 #endif
210@@ -1021,7 +1021,7 @@ ncrtn.o%s" 210@@ -1022,7 +1022,7 @@ ncrtn.o%s"
211 INCLUDE_DEFAULTS_MUSL_TOOL \ 211 INCLUDE_DEFAULTS_MUSL_TOOL \
212 INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET \ 212 INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET \
213 INCLUDE_DEFAULTS_MUSL_NATIVE \ 213 INCLUDE_DEFAULTS_MUSL_NATIVE \
@@ -217,7 +217,7 @@ index 247acec9d8e..5526bf050b8 100644
217 } 217 }
218 #endif 218 #endif
219diff --git a/gcc/cppdefault.cc b/gcc/cppdefault.cc 219diff --git a/gcc/cppdefault.cc b/gcc/cppdefault.cc
220index 98bd66f95c6..742a4e56d5b 100644 220index db1e517fadc..8867e8bb341 100644
221--- a/gcc/cppdefault.cc 221--- a/gcc/cppdefault.cc
222+++ b/gcc/cppdefault.cc 222+++ b/gcc/cppdefault.cc
223@@ -35,6 +35,30 @@ 223@@ -35,6 +35,30 @@
@@ -347,7 +347,7 @@ index 98bd66f95c6..742a4e56d5b 100644
347 /* This value is set by cpp_relocated at runtime */ 347 /* This value is set by cpp_relocated at runtime */
348 const char *gcc_exec_prefix; 348 const char *gcc_exec_prefix;
349diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h 349diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
350index e9b9264caff..168144b84b8 100644 350index e033af78280..0af197df7b2 100644
351--- a/gcc/cppdefault.h 351--- a/gcc/cppdefault.h
352+++ b/gcc/cppdefault.h 352+++ b/gcc/cppdefault.h
353@@ -33,7 +33,8 @@ 353@@ -33,7 +33,8 @@
@@ -382,10 +382,10 @@ index e9b9264caff..168144b84b8 100644
382 subdirectory of the actual installation. */ 382 subdirectory of the actual installation. */
383 extern const char *gcc_exec_prefix; 383 extern const char *gcc_exec_prefix;
384diff --git a/gcc/gcc.cc b/gcc/gcc.cc 384diff --git a/gcc/gcc.cc b/gcc/gcc.cc
385index e3e9374d1cc..b080609341b 100644 385index c1488865b8b..007c91780f6 100644
386--- a/gcc/gcc.cc 386--- a/gcc/gcc.cc
387+++ b/gcc/gcc.cc 387+++ b/gcc/gcc.cc
388@@ -259,6 +259,8 @@ FILE *report_times_to_file = NULL; 388@@ -265,6 +265,8 @@ FILE *report_times_to_file = NULL;
389 #endif 389 #endif
390 static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT; 390 static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT;
391 391
@@ -394,7 +394,7 @@ index e3e9374d1cc..b080609341b 100644
394 /* Nonzero means pass the updated target_system_root to the compiler. */ 394 /* Nonzero means pass the updated target_system_root to the compiler. */
395 395
396 static int target_system_root_changed; 396 static int target_system_root_changed;
397@@ -591,6 +593,7 @@ or with constant text in a single argument. 397@@ -598,6 +600,7 @@ or with constant text in a single argument.
398 %G process LIBGCC_SPEC as a spec. 398 %G process LIBGCC_SPEC as a spec.
399 %R Output the concatenation of target_system_root and 399 %R Output the concatenation of target_system_root and
400 target_sysroot_suffix. 400 target_sysroot_suffix.
@@ -402,7 +402,7 @@ index e3e9374d1cc..b080609341b 100644
402 %S process STARTFILE_SPEC as a spec. A capital S is actually used here. 402 %S process STARTFILE_SPEC as a spec. A capital S is actually used here.
403 %E process ENDFILE_SPEC as a spec. A capital E is actually used here. 403 %E process ENDFILE_SPEC as a spec. A capital E is actually used here.
404 %C process CPP_SPEC as a spec. 404 %C process CPP_SPEC as a spec.
405@@ -1638,10 +1641,10 @@ static const char *gcc_libexec_prefix; 405@@ -1648,10 +1651,10 @@ static const char *gcc_libexec_prefix;
406 gcc_exec_prefix is set because, in that case, we know where the 406 gcc_exec_prefix is set because, in that case, we know where the
407 compiler has been installed, and use paths relative to that 407 compiler has been installed, and use paths relative to that
408 location instead. */ 408 location instead. */
@@ -417,7 +417,7 @@ index e3e9374d1cc..b080609341b 100644
417 417
418 /* For native compilers, these are well-known paths containing 418 /* For native compilers, these are well-known paths containing
419 components that may be provided by the system. For cross 419 components that may be provided by the system. For cross
420@@ -1649,9 +1652,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX; 420@@ -1659,9 +1662,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
421 static const char *md_exec_prefix = MD_EXEC_PREFIX; 421 static const char *md_exec_prefix = MD_EXEC_PREFIX;
422 static const char *md_startfile_prefix = MD_STARTFILE_PREFIX; 422 static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
423 static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1; 423 static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
@@ -429,7 +429,7 @@ index e3e9374d1cc..b080609341b 100644
429 = STANDARD_STARTFILE_PREFIX_2; 429 = STANDARD_STARTFILE_PREFIX_2;
430 430
431 /* A relative path to be used in finding the location of tools 431 /* A relative path to be used in finding the location of tools
432@@ -6796,6 +6799,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part) 432@@ -6837,6 +6840,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
433 } 433 }
434 break; 434 break;
435 435
@@ -442,7 +442,7 @@ index e3e9374d1cc..b080609341b 100644
442 value = do_spec_1 (startfile_spec, 0, NULL); 442 value = do_spec_1 (startfile_spec, 0, NULL);
443 if (value != 0) 443 if (value != 0)
444diff --git a/gcc/incpath.cc b/gcc/incpath.cc 444diff --git a/gcc/incpath.cc b/gcc/incpath.cc
445index e572d98ab17..2cb2b586e4a 100644 445index 2cdbebc4c50..b61a9d1b2fc 100644
446--- a/gcc/incpath.cc 446--- a/gcc/incpath.cc
447+++ b/gcc/incpath.cc 447+++ b/gcc/incpath.cc
448@@ -135,7 +135,7 @@ add_standard_paths (const char *sysroot, const char *iprefix, 448@@ -135,7 +135,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
@@ -489,7 +489,7 @@ index e572d98ab17..2cb2b586e4a 100644
489 str = update_path (ostr, p->component); 489 str = update_path (ostr, p->component);
490 free (ostr); 490 free (ostr);
491diff --git a/gcc/prefix.cc b/gcc/prefix.cc 491diff --git a/gcc/prefix.cc b/gcc/prefix.cc
492index 6a98e856855..c403b2da7a3 100644 492index 0c79d60a6c8..27c79f09be4 100644
493--- a/gcc/prefix.cc 493--- a/gcc/prefix.cc
494+++ b/gcc/prefix.cc 494+++ b/gcc/prefix.cc
495@@ -73,7 +73,9 @@ License along with GCC; see the file COPYING3. If not see 495@@ -73,7 +73,9 @@ License along with GCC; see the file COPYING3. If not see
diff --git a/meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
index 39c3bab9cc..b3ab4996c3 100644
--- a/meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
+++ b/meta/recipes-devtools/gcc/gcc/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
@@ -1,4 +1,4 @@
1From b2d95de58356c242abfe35467c2366d4e4b842ce Mon Sep 17 00:00:00 2001 1From 1756ca43dc85ee9d367350d68b908e6681ddd986 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 7 Dec 2015 23:41:45 +0000 3Date: Mon, 7 Dec 2015 23:41:45 +0000
4Subject: [PATCH] Search target sysroot gcc version specific dirs with 4Subject: [PATCH] Search target sysroot gcc version specific dirs with
@@ -52,10 +52,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
52 1 file changed, 28 insertions(+), 1 deletion(-) 52 1 file changed, 28 insertions(+), 1 deletion(-)
53 53
54diff --git a/gcc/gcc.cc b/gcc/gcc.cc 54diff --git a/gcc/gcc.cc b/gcc/gcc.cc
55index b080609341b..1a1ca05064e 100644 55index 007c91780f6..22eb17bc099 100644
56--- a/gcc/gcc.cc 56--- a/gcc/gcc.cc
57+++ b/gcc/gcc.cc 57+++ b/gcc/gcc.cc
58@@ -2823,7 +2823,7 @@ for_each_path (const struct path_prefix *paths, 58@@ -2837,7 +2837,7 @@ for_each_path (const struct path_prefix *paths,
59 if (path == NULL) 59 if (path == NULL)
60 { 60 {
61 len = paths->max_len + extra_space + 1; 61 len = paths->max_len + extra_space + 1;
@@ -64,7 +64,7 @@ index b080609341b..1a1ca05064e 100644
64 path = XNEWVEC (char, len); 64 path = XNEWVEC (char, len);
65 } 65 }
66 66
67@@ -2835,6 +2835,33 @@ for_each_path (const struct path_prefix *paths, 67@@ -2849,6 +2849,33 @@ for_each_path (const struct path_prefix *paths,
68 /* Look first in MACHINE/VERSION subdirectory. */ 68 /* Look first in MACHINE/VERSION subdirectory. */
69 if (!skip_multi_dir) 69 if (!skip_multi_dir)
70 { 70 {
diff --git a/meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
index 76da0f79bf..1b2da32a42 100644
--- a/meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
+++ b/meta/recipes-devtools/gcc/gcc/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
@@ -1,4 +1,4 @@
1From e420858f23a1fe58e840bd5ae21cb5a964b27f0b Mon Sep 17 00:00:00 2001 1From 777963807e14a091c263d603cebfd7bb02f63b24 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 27 Jun 2017 18:10:54 -0700 3Date: Tue, 27 Jun 2017 18:10:54 -0700
4Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets 4Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets
@@ -23,7 +23,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
23 3 files changed, 27 insertions(+) 23 3 files changed, 27 insertions(+)
24 24
25diff --git a/gcc/config/linux.h b/gcc/config/linux.h 25diff --git a/gcc/config/linux.h b/gcc/config/linux.h
26index 79ff13184d3..19f552e8c7d 100644 26index 0f937abe729..88e59d1f78c 100644
27--- a/gcc/config/linux.h 27--- a/gcc/config/linux.h
28+++ b/gcc/config/linux.h 28+++ b/gcc/config/linux.h
29@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 29@@ -195,6 +195,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -41,7 +41,7 @@ index 79ff13184d3..19f552e8c7d 100644
41 41
42 #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */ 42 #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
43diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h 43diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
44index 5f6cede558a..900993b6da4 100644 44index 6c4480b70c4..89ae8267482 100644
45--- a/gcc/config/rs6000/linux.h 45--- a/gcc/config/rs6000/linux.h
46+++ b/gcc/config/rs6000/linux.h 46+++ b/gcc/config/rs6000/linux.h
47@@ -102,6 +102,16 @@ 47@@ -102,6 +102,16 @@
@@ -62,7 +62,7 @@ index 5f6cede558a..900993b6da4 100644
62 #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \ 62 #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \
63 %{!static-pie: \ 63 %{!static-pie: \
64diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h 64diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
65index a11ae7643b7..2abde270813 100644 65index 8de5eb8bb49..4eb5cc2c7cf 100644
66--- a/gcc/config/rs6000/linux64.h 66--- a/gcc/config/rs6000/linux64.h
67+++ b/gcc/config/rs6000/linux64.h 67+++ b/gcc/config/rs6000/linux64.h
68@@ -373,6 +373,16 @@ extern int dot_symbols; 68@@ -373,6 +373,16 @@ extern int dot_symbols;
diff --git a/meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch b/meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch
index 05f2e96947..f23876b10a 100644
--- a/meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch
+++ b/meta/recipes-devtools/gcc/gcc/0019-Re-introduce-spe-commandline-options.patch
@@ -1,4 +1,4 @@
1From edc8f1cee2c9c4a441032fa22d0272b41b829dc6 Mon Sep 17 00:00:00 2001 1From f2649410d2eb1c3983054020c9238887bd31273f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 6 Jun 2018 12:10:22 -0700 3Date: Wed, 6 Jun 2018 12:10:22 -0700
4Subject: [PATCH] Re-introduce spe commandline options 4Subject: [PATCH] Re-introduce spe commandline options
@@ -14,10 +14,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 1 file changed, 13 insertions(+) 14 1 file changed, 13 insertions(+)
15 15
16diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt 16diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
17index e8ca70340df..5c8545d4f1b 100644 17index 88cf16ca581..fc283ccc934 100644
18--- a/gcc/config/rs6000/rs6000.opt 18--- a/gcc/config/rs6000/rs6000.opt
19+++ b/gcc/config/rs6000/rs6000.opt 19+++ b/gcc/config/rs6000/rs6000.opt
20@@ -344,6 +344,19 @@ mdebug= 20@@ -348,6 +348,19 @@ mdebug=
21 Target RejectNegative Joined 21 Target RejectNegative Joined
22 -mdebug= Enable debug output. 22 -mdebug= Enable debug output.
23 23
diff --git a/meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
index 3086841021..cd22dba878 100644
--- a/meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
+++ b/meta/recipes-devtools/gcc/gcc/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
@@ -1,4 +1,4 @@
1From 83a61604293c6f7a131bccaf7454e69eeed301fd Mon Sep 17 00:00:00 2001 1From be81ee850cdf720f87733046cfa8f3fa43704a7d Mon Sep 17 00:00:00 2001
2From: Szabolcs Nagy <nsz@port70.net> 2From: Szabolcs Nagy <nsz@port70.net>
3Date: Sat, 24 Oct 2015 20:09:53 +0000 3Date: Sat, 24 Oct 2015 20:09:53 +0000
4Subject: [PATCH] libgcc_s: Use alias for __cpu_indicator_init instead of 4Subject: [PATCH] libgcc_s: Use alias for __cpu_indicator_init instead of
@@ -39,10 +39,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
39 3 files changed, 6 insertions(+), 6 deletions(-) 39 3 files changed, 6 insertions(+), 6 deletions(-)
40 40
41diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc 41diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
42index 51efe6fdd7d..a8ee883a74d 100644 42index cdfd94d3c73..de6fa7cc5ce 100644
43--- a/gcc/config/i386/i386-expand.cc 43--- a/gcc/config/i386/i386-expand.cc
44+++ b/gcc/config/i386/i386-expand.cc 44+++ b/gcc/config/i386/i386-expand.cc
45@@ -13087,10 +13087,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, 45@@ -13643,10 +13643,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
46 { 46 {
47 case IX86_BUILTIN_CPU_INIT: 47 case IX86_BUILTIN_CPU_INIT:
48 { 48 {
@@ -56,7 +56,7 @@ index 51efe6fdd7d..a8ee883a74d 100644
56 return expand_expr (call_expr, target, mode, EXPAND_NORMAL); 56 return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
57 } 57 }
58diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c 58diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
59index 0bd6dffe17e..ef4acb175a4 100644 59index 2484dc839bf..e980030ef23 100644
60--- a/libgcc/config/i386/cpuinfo.c 60--- a/libgcc/config/i386/cpuinfo.c
61+++ b/libgcc/config/i386/cpuinfo.c 61+++ b/libgcc/config/i386/cpuinfo.c
62@@ -63,7 +63,7 @@ __cpu_indicator_init (void) 62@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
diff --git a/meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
index f459a542da..5b67c194df 100644
--- a/meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
+++ b/meta/recipes-devtools/gcc/gcc/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
@@ -1,4 +1,4 @@
1From 33eb17881ca90cff733070c5b630501fb0a8bd58 Mon Sep 17 00:00:00 2001 1From 734760138d07236289c5e548efc6083ddcfda650 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Tue, 10 Mar 2020 08:26:53 -0700 3Date: Tue, 10 Mar 2020 08:26:53 -0700
4Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining 4Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining
@@ -17,7 +17,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 2 files changed, 19 insertions(+), 19 deletions(-) 17 2 files changed, 19 insertions(+), 19 deletions(-)
18 18
19diff --git a/gcc/gengtype.cc b/gcc/gengtype.cc 19diff --git a/gcc/gengtype.cc b/gcc/gengtype.cc
20index c0ecbe8558b..9f8ab7146c0 100644 20index 6a3621c96cd..3f6c36dcff5 100644
21--- a/gcc/gengtype.cc 21--- a/gcc/gengtype.cc
22+++ b/gcc/gengtype.cc 22+++ b/gcc/gengtype.cc
23@@ -1005,7 +1005,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt, 23@@ -1005,7 +1005,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt,
@@ -38,7 +38,7 @@ index c0ecbe8558b..9f8ab7146c0 100644
38 38
39 /* Reverse a linked list of 'struct pair's in place. */ 39 /* Reverse a linked list of 'struct pair's in place. */
40 pair_p 40 pair_p
41@@ -5232,7 +5232,7 @@ main (int argc, char **argv) 41@@ -5238,7 +5238,7 @@ main (int argc, char **argv)
42 /* These types are set up with #define or else outside of where 42 /* These types are set up with #define or else outside of where
43 we can see them. We should initialize them before calling 43 we can see them. We should initialize them before calling
44 read_input_list. */ 44 read_input_list. */
@@ -48,7 +48,7 @@ index c0ecbe8558b..9f8ab7146c0 100644
48 POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos)); 48 POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos));
49 POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos)); 49 POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos));
50diff --git a/gcc/genmodes.cc b/gcc/genmodes.cc 50diff --git a/gcc/genmodes.cc b/gcc/genmodes.cc
51index eb3f9e2f0c1..5425635cb22 100644 51index 7af79720189..3bdb82ef8bf 100644
52--- a/gcc/genmodes.cc 52--- a/gcc/genmodes.cc
53+++ b/gcc/genmodes.cc 53+++ b/gcc/genmodes.cc
54@@ -441,7 +441,7 @@ complete_all_modes (void) 54@@ -441,7 +441,7 @@ complete_all_modes (void)
diff --git a/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch b/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch
index 169db188df..9292767037 100644
--- a/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch
+++ b/meta/recipes-devtools/gcc/gcc/0022-libatomic-Do-not-enforce-march-on-aarch64.patch
@@ -1,4 +1,4 @@
1From 6ebeb70ce2e78a84295f4e392602ae3c4026783a Mon Sep 17 00:00:00 2001 1From 95ee2cf97c5c2a4bd66c54d078b960a1d541d35e Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 13 May 2020 15:10:38 -0700 3Date: Wed, 13 May 2020 15:10:38 -0700
4Subject: [PATCH] libatomic: Do not enforce march on aarch64 4Subject: [PATCH] libatomic: Do not enforce march on aarch64
@@ -17,10 +17,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 2 files changed, 2 deletions(-) 17 2 files changed, 2 deletions(-)
18 18
19diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am 19diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
20index 980677f3533..26188917946 100644 20index 0f1a7156084..255fe448e63 100644
21--- a/libatomic/Makefile.am 21--- a/libatomic/Makefile.am
22+++ b/libatomic/Makefile.am 22+++ b/libatomic/Makefile.am
23@@ -130,7 +130,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS))) 23@@ -128,7 +128,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS)))
24 ## On a target-specific basis, include alternates to be selected by IFUNC. 24 ## On a target-specific basis, include alternates to be selected by IFUNC.
25 if HAVE_IFUNC 25 if HAVE_IFUNC
26 if ARCH_AARCH64_LINUX 26 if ARCH_AARCH64_LINUX
@@ -29,7 +29,7 @@ index 980677f3533..26188917946 100644
29 29
30 endif 30 endif
31diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in 31diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
32index d9d529bc502..47dacef9e01 100644 32index 9798e7c09e9..3b3027eb77d 100644
33--- a/libatomic/Makefile.in 33--- a/libatomic/Makefile.in
34+++ b/libatomic/Makefile.in 34+++ b/libatomic/Makefile.in
35@@ -452,7 +452,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files))) 35@@ -452,7 +452,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files)))
diff --git a/meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch b/meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch
index 300ad393e3..da91d85eb9 100644
--- a/meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch
+++ b/meta/recipes-devtools/gcc/gcc/0023-Fix-install-path-of-linux64.h.patch
@@ -1,4 +1,4 @@
1From aecde58d433123e8fb76ca2c56a0632d7b104b83 Mon Sep 17 00:00:00 2001 1From cd7353f45bc2af9a9ea9694544d40ea03a1310d1 Mon Sep 17 00:00:00 2001
2From: Andrei Gherzan <andrei.gherzan@huawei.com> 2From: Andrei Gherzan <andrei.gherzan@huawei.com>
3Date: Wed, 22 Dec 2021 12:49:25 +0100 3Date: Wed, 22 Dec 2021 12:49:25 +0100
4Subject: [PATCH] Fix install path of linux64.h 4Subject: [PATCH] Fix install path of linux64.h
@@ -17,10 +17,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
17 1 file changed, 2 insertions(+) 17 1 file changed, 2 insertions(+)
18 18
19diff --git a/gcc/Makefile.in b/gcc/Makefile.in 19diff --git a/gcc/Makefile.in b/gcc/Makefile.in
20index 6a009c696e9..da54dd42adf 100644 20index 944d0a6680a..4cea9b20af5 100644
21--- a/gcc/Makefile.in 21--- a/gcc/Makefile.in
22+++ b/gcc/Makefile.in 22+++ b/gcc/Makefile.in
23@@ -3900,6 +3900,8 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype 23@@ -4115,6 +4115,8 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
24 | "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \ 24 | "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
25 | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \ 25 | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
26 base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \ 26 base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
diff --git a/meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch b/meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch
index 4f3b722bcf..b7edeef6eb 100644
--- a/meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch
+++ b/meta/recipes-devtools/gcc/gcc/0024-Avoid-hardcoded-build-paths-into-ppc-libgcc.patch
@@ -1,4 +1,4 @@
1From 483baf290597eed2ac01c7974f1b567c95503da5 Mon Sep 17 00:00:00 2001 1From 159545123cfe05136037e302409cf82ec5c0263c Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Sat, 20 Aug 2022 09:04:14 -0700 3Date: Sat, 20 Aug 2022 09:04:14 -0700
4Subject: [PATCH] Avoid hardcoded build paths into ppc libgcc 4Subject: [PATCH] Avoid hardcoded build paths into ppc libgcc
diff --git a/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch b/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch
index 09d6c7fffd..0a61862332 100644
--- a/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch
+++ b/meta/recipes-devtools/gcc/gcc/0025-gcc-testsuite-tweaks-for-mips-OE.patch
@@ -1,4 +1,4 @@
1From 46987c9092d52ee47071be563f48ee80a3c4f71f Mon Sep 17 00:00:00 2001 1From 62e25edd60d45eaec331a3273880f6ff3248ef62 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org> 2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Thu, 17 Aug 2023 09:01:40 -0700 3Date: Thu, 17 Aug 2023 09:01:40 -0700
4Subject: [PATCH] gcc testsuite tweaks for mips/OE 4Subject: [PATCH] gcc testsuite tweaks for mips/OE
@@ -33,13 +33,13 @@ discussion. Need to investigate why qemu-user passes the 'bad' instructions']
33Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> 33Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
34Signed-off-by: Khem Raj <raj.khem@gmail.com> 34Signed-off-by: Khem Raj <raj.khem@gmail.com>
35--- 35---
36 gcc/testsuite/gcc.target/mips/mips.exp | 16 +++++++++ 36 gcc/testsuite/gcc.target/mips/mips.exp | 16 ++++++++++
37 gcc/testsuite/lib/gcc-dg.exp | 11 +++++++ 37 gcc/testsuite/lib/gcc-dg.exp | 11 +++++++
38 gcc/testsuite/lib/target-supports.exp | 45 ++++++++------------------ 38 gcc/testsuite/lib/target-supports.exp | 44 ++++++++------------------
39 3 files changed, 41 insertions(+), 31 deletions(-) 39 3 files changed, 40 insertions(+), 31 deletions(-)
40 40
41diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp 41diff --git a/gcc/testsuite/gcc.target/mips/mips.exp b/gcc/testsuite/gcc.target/mips/mips.exp
42index e028bc93b40..b54a40d6509 100644 42index 82d418a7cd4..46f7bf4ef92 100644
43--- a/gcc/testsuite/gcc.target/mips/mips.exp 43--- a/gcc/testsuite/gcc.target/mips/mips.exp
44+++ b/gcc/testsuite/gcc.target/mips/mips.exp 44+++ b/gcc/testsuite/gcc.target/mips/mips.exp
45@@ -711,7 +711,23 @@ proc mips_first_unsupported_option { upstatus } { 45@@ -711,7 +711,23 @@ proc mips_first_unsupported_option { upstatus } {
@@ -67,10 +67,10 @@ index e028bc93b40..b54a40d6509 100644
67 regsub -all "\n" $code "\\n\\\n" asm 67 regsub -all "\n" $code "\\n\\\n" asm
68 # Use check_runtime from target-supports.exp, which caches 68 # Use check_runtime from target-supports.exp, which caches
69diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp 69diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
70index 228c21d1207..d3b88e0419e 100644 70index 6dd8fa3fce9..95672008219 100644
71--- a/gcc/testsuite/lib/gcc-dg.exp 71--- a/gcc/testsuite/lib/gcc-dg.exp
72+++ b/gcc/testsuite/lib/gcc-dg.exp 72+++ b/gcc/testsuite/lib/gcc-dg.exp
73@@ -232,9 +232,20 @@ proc schedule-cleanups { opts } { 73@@ -233,9 +233,20 @@ proc schedule-cleanups { opts } {
74 74
75 proc gcc-dg-test-1 { target_compile prog do_what extra_tool_flags } { 75 proc gcc-dg-test-1 { target_compile prog do_what extra_tool_flags } {
76 # Set up the compiler flags, based on what we're going to do. 76 # Set up the compiler flags, based on what we're going to do.
@@ -92,10 +92,10 @@ index 228c21d1207..d3b88e0419e 100644
92 "preprocess" { 92 "preprocess" {
93 set compile_type "preprocess" 93 set compile_type "preprocess"
94diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp 94diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
95index d8b5a06a422..f66f5fea58e 100644 95index a62f459ad7e..6886cfeee49 100644
96--- a/gcc/testsuite/lib/target-supports.exp 96--- a/gcc/testsuite/lib/target-supports.exp
97+++ b/gcc/testsuite/lib/target-supports.exp 97+++ b/gcc/testsuite/lib/target-supports.exp
98@@ -2483,14 +2483,7 @@ proc check_mips_loongson_mmi_hw_available { } { 98@@ -2949,14 +2949,7 @@ proc check_mips_loongson_mmi_hw_available { } {
99 if { !([istarget mips*-*-*]) } { 99 if { !([istarget mips*-*-*]) } {
100 expr 0 100 expr 0
101 } else { 101 } else {
@@ -111,7 +111,7 @@ index d8b5a06a422..f66f5fea58e 100644
111 } 111 }
112 }] 112 }]
113 } 113 }
114@@ -2504,29 +2497,7 @@ proc check_mips_msa_hw_available { } { 114@@ -2970,29 +2963,7 @@ proc check_mips_msa_hw_available { } {
115 if { !([istarget mips*-*-*]) } { 115 if { !([istarget mips*-*-*]) } {
116 expr 0 116 expr 0
117 } else { 117 } else {
@@ -142,7 +142,7 @@ index d8b5a06a422..f66f5fea58e 100644
142 } 142 }
143 }] 143 }]
144 } 144 }
145@@ -9900,6 +9871,7 @@ proc is-effective-target-keyword { arg } { 145@@ -10354,6 +10325,7 @@ proc is-effective-target-keyword { arg } {
146 146
147 proc et-dg-runtest { runtest testcases flags default-extra-flags } { 147 proc et-dg-runtest { runtest testcases flags default-extra-flags } {
148 global dg-do-what-default 148 global dg-do-what-default
@@ -150,7 +150,7 @@ index d8b5a06a422..f66f5fea58e 100644
150 global EFFECTIVE_TARGETS 150 global EFFECTIVE_TARGETS
151 global et_index 151 global et_index
152 152
153@@ -9907,6 +9879,7 @@ proc et-dg-runtest { runtest testcases flags default-extra-flags } { 153@@ -10361,6 +10333,7 @@ proc et-dg-runtest { runtest testcases flags default-extra-flags } {
154 foreach target $EFFECTIVE_TARGETS { 154 foreach target $EFFECTIVE_TARGETS {
155 set target_flags $flags 155 set target_flags $flags
156 set dg-do-what-default compile 156 set dg-do-what-default compile
@@ -158,7 +158,7 @@ index d8b5a06a422..f66f5fea58e 100644
158 set et_index [lsearch -exact $EFFECTIVE_TARGETS $target] 158 set et_index [lsearch -exact $EFFECTIVE_TARGETS $target]
159 if { [info procs add_options_for_${target}] != [list] } { 159 if { [info procs add_options_for_${target}] != [list] } {
160 set target_flags [add_options_for_${target} "$flags"] 160 set target_flags [add_options_for_${target} "$flags"]
161@@ -9914,8 +9887,10 @@ proc et-dg-runtest { runtest testcases flags default-extra-flags } { 161@@ -10368,8 +10341,10 @@ proc et-dg-runtest { runtest testcases flags default-extra-flags } {
162 if { [info procs check_effective_target_${target}_runtime] 162 if { [info procs check_effective_target_${target}_runtime]
163 != [list] && [check_effective_target_${target}_runtime] } { 163 != [list] && [check_effective_target_${target}_runtime] } {
164 set dg-do-what-default run 164 set dg-do-what-default run
@@ -169,67 +169,59 @@ index d8b5a06a422..f66f5fea58e 100644
169 } 169 }
170 } else { 170 } else {
171 set et_index 0 171 set et_index 0
172@@ -11620,6 +11595,7 @@ proc check_effective_target_sigsetjmp {} { 172@@ -12155,6 +12130,7 @@ proc check_effective_target_sigsetjmp {} {
173 proc check_vect_support_and_set_flags { } { 173 proc check_vect_support_and_set_flags { } {
174 global DEFAULT_VECTCFLAGS 174 global DEFAULT_VECTCFLAGS
175 global dg-do-what-default 175 global dg-do-what-default
176+ global do-what-limit 176+ global do-what-limit
177 global EFFECTIVE_TARGETS 177 global EFFECTIVE_TARGETS
178 178
179 if [istarget powerpc-*paired*] { 179 if [istarget powerpc*-*-*] {
180@@ -11628,6 +11604,7 @@ proc check_vect_support_and_set_flags { } { 180@@ -12186,6 +12162,7 @@ proc check_vect_support_and_set_flags { } {
181 set dg-do-what-default run
182 } else {
183 set dg-do-what-default compile
184+ set do-what-limit link
185 }
186 } elseif [istarget powerpc*-*-*] {
187 # Skip targets not supporting -maltivec.
188@@ -11658,6 +11635,7 @@ proc check_vect_support_and_set_flags { } {
189 set DEFAULT_VECTCFLAGS [linsert $DEFAULT_VECTCFLAGS 0 "-mcpu=970"] 181 set DEFAULT_VECTCFLAGS [linsert $DEFAULT_VECTCFLAGS 0 "-mcpu=970"]
190 } 182 }
191 set dg-do-what-default compile 183 set dg-do-what-default compile
192+ set do-what-limit link 184+ set do-what-limit link
193 } 185 }
194 } elseif { [istarget i?86-*-*] || [istarget x86_64-*-*] } { 186 } elseif { [check_effective_target_x86] } {
195 lappend DEFAULT_VECTCFLAGS "-msse2" 187 lappend DEFAULT_VECTCFLAGS "-msse2"
196@@ -11665,6 +11643,7 @@ proc check_vect_support_and_set_flags { } { 188@@ -12193,6 +12170,7 @@ proc check_vect_support_and_set_flags { } {
197 set dg-do-what-default run 189 set dg-do-what-default run
198 } else { 190 } else {
199 set dg-do-what-default compile 191 set dg-do-what-default compile
200+ set do-what-limit link 192+ set do-what-limit link
201 } 193 }
202 } elseif { [istarget mips*-*-*] 194 } elseif { [istarget mips*-*-*]
203 && [check_effective_target_nomips16] } { 195 && [check_effective_target_nomips16] } {
204@@ -11684,6 +11663,7 @@ proc check_vect_support_and_set_flags { } { 196@@ -12212,6 +12190,7 @@ proc check_vect_support_and_set_flags { } {
205 set dg-do-what-default run 197 set dg-do-what-default run
206 } else { 198 } else {
207 set dg-do-what-default compile 199 set dg-do-what-default compile
208+ set do-what-limit link 200+ set do-what-limit link
209 } 201 }
210 } elseif [istarget alpha*-*-*] { 202 } elseif [istarget alpha*-*-*] {
211 # Alpha's vectorization capabilities are extremely limited. 203 # Alpha's vectorization capabilities are extremely limited.
212@@ -11697,6 +11677,7 @@ proc check_vect_support_and_set_flags { } { 204@@ -12225,6 +12204,7 @@ proc check_vect_support_and_set_flags { } {
213 set dg-do-what-default run 205 set dg-do-what-default run
214 } else { 206 } else {
215 set dg-do-what-default compile 207 set dg-do-what-default compile
216+ set do-what-limit link 208+ set do-what-limit link
217 } 209 }
218 } elseif [istarget ia64-*-*] { 210 } elseif [istarget ia64-*-*] {
219 set dg-do-what-default run 211 set dg-do-what-default run
220@@ -11710,6 +11691,7 @@ proc check_vect_support_and_set_flags { } { 212@@ -12238,6 +12218,7 @@ proc check_vect_support_and_set_flags { } {
221 set dg-do-what-default run 213 set dg-do-what-default run
222 } else { 214 } else {
223 set dg-do-what-default compile 215 set dg-do-what-default compile
224+ set do-what-limit link 216+ set do-what-limit link
225 } 217 }
226 } elseif [istarget aarch64*-*-*] { 218 } elseif [istarget aarch64*-*-*] {
227 set dg-do-what-default run 219 set dg-do-what-default run
228@@ -11734,6 +11716,7 @@ proc check_vect_support_and_set_flags { } { 220@@ -12262,6 +12243,7 @@ proc check_vect_support_and_set_flags { } {
229 } else { 221 } else {
230 lappend DEFAULT_VECTCFLAGS "-march=z14" "-mzarch" 222 lappend DEFAULT_VECTCFLAGS "-march=z14" "-mzarch"
231 set dg-do-what-default compile 223 set dg-do-what-default compile
232+ set do-what-limit link 224+ set do-what-limit link
233 } 225 }
234 } elseif [istarget amdgcn-*-*] { 226 } elseif [istarget amdgcn-*-*] {
235 set dg-do-what-default run 227 set dg-do-what-default run
diff --git a/meta/recipes-devtools/gcc/gcc/0026-gcc-Fix-c-tweak-for-Wrange-loop-construct.patch b/meta/recipes-devtools/gcc/gcc/0026-gcc-Fix-c-tweak-for-Wrange-loop-construct.patch
deleted file mode 100644
index c9bc863eea..0000000000
--- a/meta/recipes-devtools/gcc/gcc/0026-gcc-Fix-c-tweak-for-Wrange-loop-construct.patch
+++ /dev/null
@@ -1,114 +0,0 @@
1From 05106fea707f010779369c5d6e89787953d2976f Mon Sep 17 00:00:00 2001
2From: Sunil Dora <sunilkumar.dora@windriver.com>
3Date: Wed, 11 Dec 2024 10:04:56 -0800
4Subject: [PATCH] gcc: Fix c++: tweak for Wrange-loop-construct
5
6This commit updates the warning to use a check for "trivially constructible" instead of
7"trivially copyable." The original check was incorrect, as "trivially copyable" only applies
8to types that can be copied trivially, whereas "trivially constructible" is the correct check
9for types that can be trivially default-constructed.
10
11This change ensures the warning is more accurate and aligns with the proper type traits.
12
13LLVM accepted a similar fix:
14https://github.com/llvm/llvm-project/issues/47355
15
16PR c++/116731 [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116731]
17
18Upstream-Status: Backport [https://gcc.gnu.org/g:6ac4e2f4b2ca9980670e7d3815a9140730df1005]
19
20Signed-off-by: Marek Polacek <polacek@redhat.com>
21Signed-off-by: Sunil Dora <sunilkumar.dora@windriver.com>
22---
23 gcc/cp/parser.cc | 8 ++-
24 .../g++.dg/warn/Wrange-loop-construct3.C | 57 +++++++++++++++++++
25 2 files changed, 62 insertions(+), 3 deletions(-)
26 create mode 100644 gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C
27
28diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
29index 7e81c1010..8206489a2 100644
30--- a/gcc/cp/parser.cc
31+++ b/gcc/cp/parser.cc
32@@ -14301,11 +14301,13 @@ warn_for_range_copy (tree decl, tree expr)
33 else if (!CP_TYPE_CONST_P (type))
34 return;
35
36- /* Since small trivially copyable types are cheap to copy, we suppress the
37- warning for them. 64B is a common size of a cache line. */
38+ /* Since small trivially constructible types are cheap to construct, we
39+ suppress the warning for them. 64B is a common size of a cache line. */
40+ tree vec = make_tree_vec (1);
41+ TREE_VEC_ELT (vec, 0) = TREE_TYPE (expr);
42 if (TREE_CODE (TYPE_SIZE_UNIT (type)) != INTEGER_CST
43 || (tree_to_uhwi (TYPE_SIZE_UNIT (type)) <= 64
44- && trivially_copyable_p (type)))
45+ && is_trivially_xible (INIT_EXPR, type, vec)))
46 return;
47
48 /* If we can initialize a reference directly, suggest that to avoid the
49diff --git a/gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C b/gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C
50new file mode 100644
51index 000000000..3d9d0c908
52--- /dev/null
53+++ b/gcc/testsuite/g++.dg/warn/Wrange-loop-construct3.C
54@@ -0,0 +1,57 @@
55+// PR c++/116731
56+// { dg-do compile { target c++11 } }
57+// { dg-options "-Wrange-loop-construct" }
58+
59+void
60+f0 ()
61+{
62+ struct S {
63+ char a[64];
64+ S& operator=(const S&) { return *this; };
65+ };
66+
67+ S arr[8];
68+ for (const auto r : arr)
69+ (void) r;
70+}
71+
72+void
73+f1 ()
74+{
75+ struct S {
76+ char a[65];
77+ S& operator=(const S&) { return *this; };
78+ };
79+
80+ S arr[8];
81+ for (const auto r : arr) // { dg-warning "creates a copy" }
82+ (void) r;
83+}
84+
85+void
86+f2 ()
87+{
88+ struct S {
89+ char a[64];
90+ S& operator=(const S&) { return *this; };
91+ ~S() { }
92+ };
93+
94+ S arr[8];
95+ for (const auto r : arr) // { dg-warning "creates a copy" }
96+ (void) r;
97+}
98+
99+void
100+f3 ()
101+{
102+ struct S {
103+ char a[65];
104+ S& operator=(const S&) { return *this; };
105+ ~S() { }
106+ };
107+
108+ S arr[8];
109+ for (const auto r : arr) // { dg-warning "creates a copy" }
110+ (void) r;
111+}
112--
1132.43.0
114
diff --git a/meta/recipes-devtools/gcc/gcc/0027-gcc-backport-patch-to-fix-data-relocation-to-ENDBR-s.patch b/meta/recipes-devtools/gcc/gcc/0027-gcc-backport-patch-to-fix-data-relocation-to-ENDBR-s.patch
deleted file mode 100644
index 5bede60816..0000000000
--- a/meta/recipes-devtools/gcc/gcc/0027-gcc-backport-patch-to-fix-data-relocation-to-ENDBR-s.patch
+++ /dev/null
@@ -1,447 +0,0 @@
1From 4e7735a8d87559bbddfe3a985786996e22241f8d Mon Sep 17 00:00:00 2001
2From: liuhongt <hongtao.liu@intel.com>
3Date: Mon, 12 Aug 2024 14:35:31 +0800
4Subject: [PATCH] Move ix86_align_loops into a separate pass and insert the
5 pass after pass_endbr_and_patchable_area.
6
7gcc/ChangeLog:
8
9 PR target/116174
10 * config/i386/i386.cc (ix86_align_loops): Move this to ..
11 * config/i386/i386-features.cc (ix86_align_loops): .. here.
12 (class pass_align_tight_loops): New class.
13 (make_pass_align_tight_loops): New function.
14 * config/i386/i386-passes.def: Insert pass_align_tight_loops
15 after pass_insert_endbr_and_patchable_area.
16 * config/i386/i386-protos.h (make_pass_align_tight_loops): New
17 declare.
18
19gcc/testsuite/ChangeLog:
20
21 * gcc.target/i386/pr116174.c: New test.
22
23(cherry picked from commit c3c83d22d212a35cb1bfb8727477819463f0dcd8)
24
25Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=patch;h=4e7735a8d87559bbddfe3a985786996e22241f8d]
26
27Signed-off-by: Bin Lan <bin.lan.cn@windriver.com>
28---
29 gcc/config/i386/i386-features.cc | 191 +++++++++++++++++++++++
30 gcc/config/i386/i386-passes.def | 3 +
31 gcc/config/i386/i386-protos.h | 1 +
32 gcc/config/i386/i386.cc | 146 -----------------
33 gcc/testsuite/gcc.target/i386/pr116174.c | 12 ++
34 5 files changed, 207 insertions(+), 146 deletions(-)
35 create mode 100644 gcc/testsuite/gcc.target/i386/pr116174.c
36
37diff --git a/gcc/config/i386/i386-features.cc b/gcc/config/i386/i386-features.cc
38index e3e004d55267..7de19d423637 100644
39--- a/gcc/config/i386/i386-features.cc
40+++ b/gcc/config/i386/i386-features.cc
41@@ -3253,6 +3253,197 @@ make_pass_remove_partial_avx_dependency (gcc::context *ctxt)
42 return new pass_remove_partial_avx_dependency (ctxt);
43 }
44
45+/* When a hot loop can be fit into one cacheline,
46+ force align the loop without considering the max skip. */
47+static void
48+ix86_align_loops ()
49+{
50+ basic_block bb;
51+
52+ /* Don't do this when we don't know cache line size. */
53+ if (ix86_cost->prefetch_block == 0)
54+ return;
55+
56+ loop_optimizer_init (AVOID_CFG_MODIFICATIONS);
57+ profile_count count_threshold = cfun->cfg->count_max / param_align_threshold;
58+ FOR_EACH_BB_FN (bb, cfun)
59+ {
60+ rtx_insn *label = BB_HEAD (bb);
61+ bool has_fallthru = 0;
62+ edge e;
63+ edge_iterator ei;
64+
65+ if (!LABEL_P (label))
66+ continue;
67+
68+ profile_count fallthru_count = profile_count::zero ();
69+ profile_count branch_count = profile_count::zero ();
70+
71+ FOR_EACH_EDGE (e, ei, bb->preds)
72+ {
73+ if (e->flags & EDGE_FALLTHRU)
74+ has_fallthru = 1, fallthru_count += e->count ();
75+ else
76+ branch_count += e->count ();
77+ }
78+
79+ if (!fallthru_count.initialized_p () || !branch_count.initialized_p ())
80+ continue;
81+
82+ if (bb->loop_father
83+ && bb->loop_father->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)
84+ && (has_fallthru
85+ ? (!(single_succ_p (bb)
86+ && single_succ (bb) == EXIT_BLOCK_PTR_FOR_FN (cfun))
87+ && optimize_bb_for_speed_p (bb)
88+ && branch_count + fallthru_count > count_threshold
89+ && (branch_count > fallthru_count * param_align_loop_iterations))
90+ /* In case there'no fallthru for the loop.
91+ Nops inserted won't be executed. */
92+ : (branch_count > count_threshold
93+ || (bb->count > bb->prev_bb->count * 10
94+ && (bb->prev_bb->count
95+ <= ENTRY_BLOCK_PTR_FOR_FN (cfun)->count / 2)))))
96+ {
97+ rtx_insn* insn, *end_insn;
98+ HOST_WIDE_INT size = 0;
99+ bool padding_p = true;
100+ basic_block tbb = bb;
101+ unsigned cond_branch_num = 0;
102+ bool detect_tight_loop_p = false;
103+
104+ for (unsigned int i = 0; i != bb->loop_father->num_nodes;
105+ i++, tbb = tbb->next_bb)
106+ {
107+ /* Only handle continuous cfg layout. */
108+ if (bb->loop_father != tbb->loop_father)
109+ {
110+ padding_p = false;
111+ break;
112+ }
113+
114+ FOR_BB_INSNS (tbb, insn)
115+ {
116+ if (!NONDEBUG_INSN_P (insn))
117+ continue;
118+ size += ix86_min_insn_size (insn);
119+
120+ /* We don't know size of inline asm.
121+ Don't align loop for call. */
122+ if (asm_noperands (PATTERN (insn)) >= 0
123+ || CALL_P (insn))
124+ {
125+ size = -1;
126+ break;
127+ }
128+ }
129+
130+ if (size == -1 || size > ix86_cost->prefetch_block)
131+ {
132+ padding_p = false;
133+ break;
134+ }
135+
136+ FOR_EACH_EDGE (e, ei, tbb->succs)
137+ {
138+ /* It could be part of the loop. */
139+ if (e->dest == bb)
140+ {
141+ detect_tight_loop_p = true;
142+ break;
143+ }
144+ }
145+
146+ if (detect_tight_loop_p)
147+ break;
148+
149+ end_insn = BB_END (tbb);
150+ if (JUMP_P (end_insn))
151+ {
152+ /* For decoded icache:
153+ 1. Up to two branches are allowed per Way.
154+ 2. A non-conditional branch is the last micro-op in a Way.
155+ */
156+ if (onlyjump_p (end_insn)
157+ && (any_uncondjump_p (end_insn)
158+ || single_succ_p (tbb)))
159+ {
160+ padding_p = false;
161+ break;
162+ }
163+ else if (++cond_branch_num >= 2)
164+ {
165+ padding_p = false;
166+ break;
167+ }
168+ }
169+
170+ }
171+
172+ if (padding_p && detect_tight_loop_p)
173+ {
174+ emit_insn_before (gen_max_skip_align (GEN_INT (ceil_log2 (size)),
175+ GEN_INT (0)), label);
176+ /* End of function. */
177+ if (!tbb || tbb == EXIT_BLOCK_PTR_FOR_FN (cfun))
178+ break;
179+ /* Skip bb which already fits into one cacheline. */
180+ bb = tbb;
181+ }
182+ }
183+ }
184+
185+ loop_optimizer_finalize ();
186+ free_dominance_info (CDI_DOMINATORS);
187+}
188+
189+namespace {
190+
191+const pass_data pass_data_align_tight_loops =
192+{
193+ RTL_PASS, /* type */
194+ "align_tight_loops", /* name */
195+ OPTGROUP_NONE, /* optinfo_flags */
196+ TV_MACH_DEP, /* tv_id */
197+ 0, /* properties_required */
198+ 0, /* properties_provided */
199+ 0, /* properties_destroyed */
200+ 0, /* todo_flags_start */
201+ 0, /* todo_flags_finish */
202+};
203+
204+class pass_align_tight_loops : public rtl_opt_pass
205+{
206+public:
207+ pass_align_tight_loops (gcc::context *ctxt)
208+ : rtl_opt_pass (pass_data_align_tight_loops, ctxt)
209+ {}
210+
211+ /* opt_pass methods: */
212+ bool gate (function *) final override
213+ {
214+ return optimize && optimize_function_for_speed_p (cfun);
215+ }
216+
217+ unsigned int execute (function *) final override
218+ {
219+ timevar_push (TV_MACH_DEP);
220+#ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
221+ ix86_align_loops ();
222+#endif
223+ timevar_pop (TV_MACH_DEP);
224+ return 0;
225+ }
226+}; // class pass_align_tight_loops
227+
228+} // anon namespace
229+
230+rtl_opt_pass *
231+make_pass_align_tight_loops (gcc::context *ctxt)
232+{
233+ return new pass_align_tight_loops (ctxt);
234+}
235+
236 /* This compares the priority of target features in function DECL1
237 and DECL2. It returns positive value if DECL1 is higher priority,
238 negative value if DECL2 is higher priority and 0 if they are the
239diff --git a/gcc/config/i386/i386-passes.def b/gcc/config/i386/i386-passes.def
240index 7d96766f7b96..e500f15c9971 100644
241--- a/gcc/config/i386/i386-passes.def
242+++ b/gcc/config/i386/i386-passes.def
243@@ -31,5 +31,8 @@ along with GCC; see the file COPYING3. If not see
244 INSERT_PASS_BEFORE (pass_cse2, 1, pass_stv, true /* timode_p */);
245
246 INSERT_PASS_BEFORE (pass_shorten_branches, 1, pass_insert_endbr_and_patchable_area);
247+ /* pass_align_tight_loops must be after pass_insert_endbr_and_patchable_area.
248+ PR116174. */
249+ INSERT_PASS_BEFORE (pass_shorten_branches, 1, pass_align_tight_loops);
250
251 INSERT_PASS_AFTER (pass_combine, 1, pass_remove_partial_avx_dependency);
252diff --git a/gcc/config/i386/i386-protos.h b/gcc/config/i386/i386-protos.h
253index 46214a63974d..36c7b1aed42b 100644
254--- a/gcc/config/i386/i386-protos.h
255+++ b/gcc/config/i386/i386-protos.h
256@@ -419,6 +419,7 @@ extern rtl_opt_pass *make_pass_insert_endbr_and_patchable_area
257 (gcc::context *);
258 extern rtl_opt_pass *make_pass_remove_partial_avx_dependency
259 (gcc::context *);
260+extern rtl_opt_pass *make_pass_align_tight_loops (gcc::context *);
261
262 extern bool ix86_has_no_direct_extern_access;
263
264diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
265index 6f89891d3cb5..288c69467d62 100644
266--- a/gcc/config/i386/i386.cc
267+++ b/gcc/config/i386/i386.cc
268@@ -23444,150 +23444,6 @@ ix86_split_stlf_stall_load ()
269 }
270 }
271
272-/* When a hot loop can be fit into one cacheline,
273- force align the loop without considering the max skip. */
274-static void
275-ix86_align_loops ()
276-{
277- basic_block bb;
278-
279- /* Don't do this when we don't know cache line size. */
280- if (ix86_cost->prefetch_block == 0)
281- return;
282-
283- loop_optimizer_init (AVOID_CFG_MODIFICATIONS);
284- profile_count count_threshold = cfun->cfg->count_max / param_align_threshold;
285- FOR_EACH_BB_FN (bb, cfun)
286- {
287- rtx_insn *label = BB_HEAD (bb);
288- bool has_fallthru = 0;
289- edge e;
290- edge_iterator ei;
291-
292- if (!LABEL_P (label))
293- continue;
294-
295- profile_count fallthru_count = profile_count::zero ();
296- profile_count branch_count = profile_count::zero ();
297-
298- FOR_EACH_EDGE (e, ei, bb->preds)
299- {
300- if (e->flags & EDGE_FALLTHRU)
301- has_fallthru = 1, fallthru_count += e->count ();
302- else
303- branch_count += e->count ();
304- }
305-
306- if (!fallthru_count.initialized_p () || !branch_count.initialized_p ())
307- continue;
308-
309- if (bb->loop_father
310- && bb->loop_father->latch != EXIT_BLOCK_PTR_FOR_FN (cfun)
311- && (has_fallthru
312- ? (!(single_succ_p (bb)
313- && single_succ (bb) == EXIT_BLOCK_PTR_FOR_FN (cfun))
314- && optimize_bb_for_speed_p (bb)
315- && branch_count + fallthru_count > count_threshold
316- && (branch_count > fallthru_count * param_align_loop_iterations))
317- /* In case there'no fallthru for the loop.
318- Nops inserted won't be executed. */
319- : (branch_count > count_threshold
320- || (bb->count > bb->prev_bb->count * 10
321- && (bb->prev_bb->count
322- <= ENTRY_BLOCK_PTR_FOR_FN (cfun)->count / 2)))))
323- {
324- rtx_insn* insn, *end_insn;
325- HOST_WIDE_INT size = 0;
326- bool padding_p = true;
327- basic_block tbb = bb;
328- unsigned cond_branch_num = 0;
329- bool detect_tight_loop_p = false;
330-
331- for (unsigned int i = 0; i != bb->loop_father->num_nodes;
332- i++, tbb = tbb->next_bb)
333- {
334- /* Only handle continuous cfg layout. */
335- if (bb->loop_father != tbb->loop_father)
336- {
337- padding_p = false;
338- break;
339- }
340-
341- FOR_BB_INSNS (tbb, insn)
342- {
343- if (!NONDEBUG_INSN_P (insn))
344- continue;
345- size += ix86_min_insn_size (insn);
346-
347- /* We don't know size of inline asm.
348- Don't align loop for call. */
349- if (asm_noperands (PATTERN (insn)) >= 0
350- || CALL_P (insn))
351- {
352- size = -1;
353- break;
354- }
355- }
356-
357- if (size == -1 || size > ix86_cost->prefetch_block)
358- {
359- padding_p = false;
360- break;
361- }
362-
363- FOR_EACH_EDGE (e, ei, tbb->succs)
364- {
365- /* It could be part of the loop. */
366- if (e->dest == bb)
367- {
368- detect_tight_loop_p = true;
369- break;
370- }
371- }
372-
373- if (detect_tight_loop_p)
374- break;
375-
376- end_insn = BB_END (tbb);
377- if (JUMP_P (end_insn))
378- {
379- /* For decoded icache:
380- 1. Up to two branches are allowed per Way.
381- 2. A non-conditional branch is the last micro-op in a Way.
382- */
383- if (onlyjump_p (end_insn)
384- && (any_uncondjump_p (end_insn)
385- || single_succ_p (tbb)))
386- {
387- padding_p = false;
388- break;
389- }
390- else if (++cond_branch_num >= 2)
391- {
392- padding_p = false;
393- break;
394- }
395- }
396-
397- }
398-
399- if (padding_p && detect_tight_loop_p)
400- {
401- emit_insn_before (gen_max_skip_align (GEN_INT (ceil_log2 (size)),
402- GEN_INT (0)), label);
403- /* End of function. */
404- if (!tbb || tbb == EXIT_BLOCK_PTR_FOR_FN (cfun))
405- break;
406- /* Skip bb which already fits into one cacheline. */
407- bb = tbb;
408- }
409- }
410- }
411-
412- loop_optimizer_finalize ();
413- free_dominance_info (CDI_DOMINATORS);
414-}
415-
416 /* Implement machine specific optimizations. We implement padding of returns
417 for K8 CPUs and pass to avoid 4 jumps in the single 16 byte window. */
418 static void
419@@ -23611,8 +23467,6 @@ ix86_reorg (void)
420 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN
421 if (TARGET_FOUR_JUMP_LIMIT)
422 ix86_avoid_jump_mispredicts ();
423-
424- ix86_align_loops ();
425 #endif
426 }
427 }
428diff --git a/gcc/testsuite/gcc.target/i386/pr116174.c b/gcc/testsuite/gcc.target/i386/pr116174.c
429new file mode 100644
430index 000000000000..8877d0b51af1
431--- /dev/null
432+++ b/gcc/testsuite/gcc.target/i386/pr116174.c
433@@ -0,0 +1,12 @@
434+/* { dg-do compile { target *-*-linux* } } */
435+/* { dg-options "-O2 -fcf-protection=branch" } */
436+
437+char *
438+foo (char *dest, const char *src)
439+{
440+ while ((*dest++ = *src++) != '\0')
441+ /* nothing */;
442+ return --dest;
443+}
444+
445+/* { dg-final { scan-assembler "\t\.cfi_startproc\n\tendbr(32|64)\n" } } */
446--
4472.43.5
diff --git a/meta/recipes-devtools/gcc/gcc/0028-libsanitizer-undef-_TIME_BITS-in-solaris-procmaps.patch b/meta/recipes-devtools/gcc/gcc/0028-libsanitizer-undef-_TIME_BITS-in-solaris-procmaps.patch
deleted file mode 100644
index 9426f5d221..0000000000
--- a/meta/recipes-devtools/gcc/gcc/0028-libsanitizer-undef-_TIME_BITS-in-solaris-procmaps.patch
+++ /dev/null
@@ -1,62 +0,0 @@
1From 883d5549dc959b736e3cb61b989272a9e6a42565 Mon Sep 17 00:00:00 2001
2From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
3Date: Thu, 3 Apr 2025 17:09:22 +0800
4Subject: [PATCH] libsanitizer: also undef _TIME_BITS in sanitizer_procmaps_solaris.cpp
5
6Upstream commit
7https://github.com/llvm/llvm-project/commit/26800a2c7e7996dc773b4e990dd5cca41c45e1a9
8of LLVM added a #undef _TIME_BITS in
9libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp to
10fix the build on 32-bit Linux platforms that have enabled 64-bit
11time_t using _TIME_BITS=64.
12
13Indeed, _TIME_BITS=64 can only be used when _FILE_OFFSET_BITS=64, but
14sanitizer_platform_limits_posix.cpp undefines _FILE_OFFSET_BITS before
15including any header file. To fix this, the upstream fix was to also
16undef _TIME_BITS.
17
18This commit simply does the same in sanitizer_procmaps_solaris.cpp,
19which also gets compiled under Linux (despite what the file name
20says). In practice on Linux hosts (where _TIME_BITS=64 matters),
21sanitizer_procmaps_solaris.cpp will expand to nothing, as pretty much
22the rest of the file is inside a #ifdef SANITIZER_SOLARIS...#endif. So
23the #undef _FILE_OFFSET_BITS and #undef _TIME_BITS are only here
24before including sanitizer_platform.h, which will set the
25SANITIZER_LINUX/SANITIZER_SOLARIS define depending on the platform.
26
27Fixes
28
29```
30/usr/include/features-time64.h:26:5: error: "_TIME_BITS=64 is allowed
31 only with _FILE_OFFSET_BITS=64"
32| # error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
33| ^
34| 1 error generated.
35```
36Upstream-Status: Backport [https://github.com/gcc-mirror/gcc/commit/fa321004f3f6288d3ee2eefa6b02177131882dca]
37
38Signed-off-by: Jiaying Song <jiaying.song.cn@windriver.com>
39---
40 libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp | 5 +++++
41 1 file changed, 5 insertions(+)
42
43diff --git a/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp b/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
44index eeb49e2af..f78558bed 100644
45--- a/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
46+++ b/libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cpp
47@@ -10,7 +10,12 @@
48 //===----------------------------------------------------------------------===//
49
50 // Before Solaris 11.4, <procfs.h> doesn't work in a largefile environment.
51+
52 #undef _FILE_OFFSET_BITS
53+
54+// Avoid conflict between `_TIME_BITS` defined vs. `_FILE_OFFSET_BITS`
55+// undefined in some Linux configurations.
56+#undef _TIME_BITS
57 #include "sanitizer_platform.h"
58 #if SANITIZER_SOLARIS
59 # include <fcntl.h>
60--
612.34.1
62
diff --git a/meta/recipes-devtools/gcc/gcc/gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch b/meta/recipes-devtools/gcc/gcc/gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch
deleted file mode 100644
index e5abdcc703..0000000000
--- a/meta/recipes-devtools/gcc/gcc/gcc.git-ab884fffe3fc82a710bea66ad651720d71c938b8.patch
+++ /dev/null
@@ -1,549 +0,0 @@
1From ab884fffe3fc82a710bea66ad651720d71c938b8 Mon Sep 17 00:00:00 2001
2From: Jonathan Wakely <jwakely@redhat.com>
3Date: Tue, 30 Apr 2024 09:52:13 +0100
4Subject: [PATCH] libstdc++: Fix std::chrono::tzdb to work with vanguard format
5
6I found some issues in the std::chrono::tzdb parser by testing the
7tzdata "vanguard" format, which uses new features that aren't enabled in
8the "main" and "rearguard" data formats.
9
10Since 2024a the keyword "minimum" is no longer valid for the FROM and TO
11fields in a Rule line, which means that "m" is now a valid abbreviation
12for "maximum". Previously we expected either "mi" or "ma". For backwards
13compatibility, a FROM field beginning with "mi" is still supported and
14is treated as 1900. The "maximum" keyword is only allowed in TO now,
15because it makes no sense in FROM. To support these changes the
16minmax_year and minmax_year2 classes for parsing FROM and TO are
17replaced with a single years_from_to class that reads both fields.
18
19The vanguard format makes use of %z in Zone FORMAT fields, which caused
20an exception to be thrown from ZoneInfo::set_abbrev because no % or /
21characters were expected when a Zone doesn't use a named Rule. The
22ZoneInfo::to(sys_info&) function now uses format_abbrev_str to replace
23any %z with the current offset. Although format_abbrev_str also checks
24for %s and STD/DST formats, those only make sense when a named Rule is
25in effect, so won't occur when ZoneInfo::to(sys_info&) is used.
26
27Since making this change on trunk, the tzdata-2024b release started
28using %z in the main format, not just vanguard. This makes a backport to
29release branches necessary (see PR 116657).
30
31This change also implements a feature that has always been missing from
32time_zone::_M_get_sys_info: finding the Rule that is active before the
33specified time point, so that we can correctly handle %s in the FORMAT
34for the first new sys_info that gets created. This requires implementing
35a poorly documented feature of zic, to get the LETTERS field from a
36later transition, as described at
37https://mm.icann.org/pipermail/tz/2024-April/058891.html
38In order for this to work we need to be able to distinguish an empty
39letters field (as used by CE%sT where the variable part is either empty
40or "S") from "the letters field is not known for this transition". The
41tzdata file uses "-" for an empty letters field, which libstdc++ was
42previously replacing with "" when the Rule was parsed. Instead, we now
43preserve the "-" in the Rule object, so that "" can be used for the case
44where we don't know the letters (and so need to decide it).
45
46(cherry picked from commit 0ca8d56f2085715f27ee536c6c344bc47af49cdd)
47
48Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=5ceea2ac106d6dd1aa8175670b15a801316cf1c9]
49
50Signed-off-by: Markus Volk <f_l_k@t-online.de>
51---
52 libstdc++-v3/src/c++20/tzdb.cc | 265 +++++++++++-------
53 .../std/time/time_zone/sys_info_abbrev.cc | 106 +++++++
54 libstdc++-v3/testsuite/std/time/tzdb/1.cc | 6 +-
55 3 files changed, 274 insertions(+), 103 deletions(-)
56 create mode 100644 libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
57
58diff --git a/libstdc++-v3/src/c++20/tzdb.cc b/libstdc++-v3/src/c++20/tzdb.cc
59index c7c7cc9deee6..7e8cce7ce8cf 100644
60--- a/libstdc++-v3/src/c++20/tzdb.cc
61+++ b/libstdc++-v3/src/c++20/tzdb.cc
62@@ -342,51 +342,103 @@ namespace std::chrono
63 friend istream& operator>>(istream&, on_day&);
64 };
65
66- // Wrapper for chrono::year that reads a year, or one of the keywords
67- // "minimum" or "maximum", or an unambiguous prefix of a keyword.
68- struct minmax_year
69+ // Wrapper for two chrono::year values, which reads the FROM and TO
70+ // fields of a Rule line. The FROM field is a year and TO is a year or
71+ // one of the keywords "maximum" or "only" (or an abbreviation of those).
72+ // For backwards compatibility, the keyword "minimum" is recognized
73+ // for FROM and interpreted as 1900.
74+ struct years_from_to
75 {
76- year& y;
77+ year& from;
78+ year& to;
79
80- friend istream& operator>>(istream& in, minmax_year&& y)
81+ friend istream& operator>>(istream& in, years_from_to&& yy)
82 {
83- if (ws(in).peek() == 'm') // keywords "minimum" or "maximum"
84+ string s;
85+ auto c = ws(in).peek();
86+ if (c == 'm') [[unlikely]] // keyword "minimum"
87 {
88- string s;
89- in >> s; // extract the rest of the word, but only look at s[1]
90- if (s[1] == 'a')
91- y.y = year::max();
92- else if (s[1] == 'i')
93- y.y = year::min();
94- else
95- in.setstate(ios::failbit);
96+ in >> s; // extract the rest of the word
97+ yy.from = year(1900);
98+ }
99+ else if (int num = 0; in >> num) [[likely]]
100+ yy.from = year{num};
101+
102+ c = ws(in).peek();
103+ if (c == 'm') // keyword "maximum"
104+ {
105+ in >> s; // extract the rest of the word
106+ yy.to = year::max();
107+ }
108+ else if (c == 'o') // keyword "only"
109+ {
110+ in >> s; // extract the rest of the word
111+ yy.to = yy.from;
112 }
113 else if (int num = 0; in >> num)
114- y.y = year{num};
115+ yy.to = year{num};
116+
117 return in;
118 }
119 };
120
121- // As above for minmax_year, but also supports the keyword "only",
122- // meaning that the TO year is the same as the FROM year.
123- struct minmax_year2
124+ bool
125+ select_std_or_dst_abbrev(string& abbrev, minutes save)
126 {
127- minmax_year to;
128- year from;
129+ if (size_t pos = abbrev.find('/'); pos != string::npos)
130+ {
131+ // Select one of "STD/DST" for standard or daylight.
132+ if (save == 0min)
133+ abbrev.erase(pos);
134+ else
135+ abbrev.erase(0, pos + 1);
136+ return true;
137+ }
138+ return false;
139+ }
140
141- friend istream& operator>>(istream& in, minmax_year2&& y)
142- {
143- if (ws(in).peek() == 'o') // keyword "only"
144- {
145- string s;
146- in >> s; // extract the whole keyword
147- y.to.y = y.from;
148- }
149- else
150- in >> std::move(y.to);
151- return in;
152- }
153- };
154+ // Set the sys_info::abbrev string by expanding any placeholders.
155+ void
156+ format_abbrev_str(sys_info& info, string_view letters = {})
157+ {
158+ if (size_t pos = info.abbrev.find('%'); pos != string::npos)
159+ {
160+ if (info.abbrev[pos + 1] == 's')
161+ {
162+ // Expand "%s" to the variable part, given by Rule::letters.
163+ if (letters == "-")
164+ info.abbrev.erase(pos, 2);
165+ else
166+ info.abbrev.replace(pos, 2, letters);
167+ }
168+ else if (info.abbrev[pos + 1] == 'z')
169+ {
170+ // Expand "%z" to the UT offset as +/-hh, +/-hhmm, or +/-hhmmss.
171+ hh_mm_ss<seconds> t(info.offset);
172+ string z(1, "+-"[t.is_negative()]);
173+ long val = t.hours().count();
174+ int digits = 2;
175+ if (int m = t.minutes().count())
176+ {
177+ digits = 4;
178+ val *= 100;
179+ val += m;
180+ if (int s = t.seconds().count())
181+ {
182+ digits = 6;
183+ val *= 100;
184+ val += s;
185+ }
186+ }
187+ auto sval = std::to_string(val);
188+ z += string(digits - sval.size(), '0');
189+ z += sval;
190+ info.abbrev.replace(pos, 2, z);
191+ }
192+ }
193+ else
194+ select_std_or_dst_abbrev(info.abbrev, info.save);
195+ }
196
197 // A time zone information record.
198 // Zone NAME STDOFF RULES FORMAT [UNTIL]
199@@ -462,6 +514,7 @@ namespace std::chrono
200 info.offset = offset();
201 info.save = minutes(m_save);
202 info.abbrev = format();
203+ format_abbrev_str(info); // expand %z
204 return true;
205 }
206
207@@ -469,12 +522,9 @@ namespace std::chrono
208 friend class time_zone;
209
210 void
211- set_abbrev(const string& abbrev)
212+ set_abbrev(string abbrev)
213 {
214- // In practice, the FORMAT field never needs expanding here.
215- if (abbrev.find_first_of("/%") != abbrev.npos)
216- __throw_runtime_error("std::chrono::time_zone: invalid data");
217- m_buf = abbrev;
218+ m_buf = std::move(abbrev);
219 m_pos = 0;
220 m_expanded = true;
221 }
222@@ -544,9 +594,7 @@ namespace std::chrono
223
224 // Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
225
226- in >> quoted(rule.name)
227- >> minmax_year{rule.from}
228- >> minmax_year2{rule.to, rule.from};
229+ in >> quoted(rule.name) >> years_from_to{rule.from, rule.to};
230
231 if (char type; in >> type && type != '-')
232 in.setstate(ios::failbit);
233@@ -557,7 +605,7 @@ namespace std::chrono
234 if (save_time.indicator != at_time::Wall)
235 {
236 // We don't actually store the save_time.indicator, because we
237- // assume that it's always deducable from the actual offset value.
238+ // assume that it's always deducible from the offset value.
239 auto expected = save_time.time == 0s
240 ? at_time::Standard
241 : at_time::Daylight;
242@@ -567,8 +615,6 @@ namespace std::chrono
243 rule.save = save_time.time;
244
245 in >> rule.letters;
246- if (rule.letters == "-")
247- rule.letters.clear();
248 return in;
249 }
250
251@@ -719,58 +765,6 @@ namespace std::chrono
252 #endif // TZDB_DISABLED
253 };
254
255-#ifndef TZDB_DISABLED
256- namespace
257- {
258- bool
259- select_std_or_dst_abbrev(string& abbrev, minutes save)
260- {
261- if (size_t pos = abbrev.find('/'); pos != string::npos)
262- {
263- // Select one of "STD/DST" for standard or daylight.
264- if (save == 0min)
265- abbrev.erase(pos);
266- else
267- abbrev.erase(0, pos + 1);
268- return true;
269- }
270- return false;
271- }
272-
273- // Set the sys_info::abbrev string by expanding any placeholders.
274- void
275- format_abbrev_str(sys_info& info, string_view letters = {})
276- {
277- if (size_t pos = info.abbrev.find("%s"); pos != string::npos)
278- {
279- // Expand "%s" to the variable part, given by Rule::letters.
280- info.abbrev.replace(pos, 2, letters);
281- }
282- else if (size_t pos = info.abbrev.find("%z"); pos != string::npos)
283- {
284- // Expand "%z" to the UT offset as +/-hh, +/-hhmm, or +/-hhmmss.
285- hh_mm_ss<seconds> t(info.offset);
286- string z(1, "+-"[t.is_negative()]);
287- long val = t.hours().count();
288- if (minutes m = t.minutes(); m != m.zero())
289- {
290- val *= 100;
291- val += m.count();
292- if (seconds s = t.seconds(); s != s.zero())
293- {
294- val *= 100;
295- val += s.count();
296- }
297- }
298- z += std::to_string(val);
299- info.abbrev.replace(pos, 2, z);
300- }
301- else
302- select_std_or_dst_abbrev(info.abbrev, info.save);
303- }
304- }
305-#endif // TZDB_DISABLED
306-
307 // Implementation of std::chrono::time_zone::get_info(const sys_time<D>&)
308 sys_info
309 time_zone::_M_get_sys_info(sys_seconds tp) const
310@@ -839,12 +833,72 @@ namespace std::chrono
311 info.abbrev = ri.format();
312
313 string_view letters;
314- if (i != infos.begin())
315+ if (i != infos.begin() && i[-1].expanded())
316+ letters = i[-1].next_letters();
317+
318+ if (letters.empty())
319 {
320- if (i[-1].expanded())
321- letters = i[-1].next_letters();
322- // XXX else need to find Rule active before this time and use it
323- // to know the initial offset, save, and letters.
324+ sys_seconds t = info.begin - seconds(1);
325+ const year_month_day date(chrono::floor<days>(t));
326+
327+ // Try to find a Rule active before this time, to get initial
328+ // SAVE and LETTERS values. There may not be a Rule for the period
329+ // before the first DST transition, so find the earliest DST->STD
330+ // transition and use the LETTERS from that.
331+ const Rule* active_rule = nullptr;
332+ sys_seconds active_rule_start = sys_seconds::min();
333+ const Rule* first_std = nullptr;
334+ for (const auto& rule : rules)
335+ {
336+ if (rule.save == minutes(0))
337+ {
338+ if (!first_std)
339+ first_std = &rule;
340+ else if (rule.from < first_std->from)
341+ first_std = &rule;
342+ else if (rule.from == first_std->from)
343+ {
344+ if (rule.start_time(rule.from, {})
345+ < first_std->start_time(first_std->from, {}))
346+ first_std = &rule;
347+ }
348+ }
349+
350+ year y = date.year();
351+
352+ if (y > rule.to) // rule no longer applies at time t
353+ continue;
354+ if (y < rule.from) // rule doesn't apply yet at time t
355+ continue;
356+
357+ sys_seconds rule_start;
358+
359+ seconds offset{}; // appropriate for at_time::Universal
360+ if (rule.when.indicator == at_time::Wall)
361+ offset = info.offset;
362+ else if (rule.when.indicator == at_time::Standard)
363+ offset = ri.offset();
364+
365+ // Time the rule takes effect this year:
366+ rule_start = rule.start_time(y, offset);
367+
368+ if (rule_start >= t && rule.from < y)
369+ {
370+ // Try this rule in the previous year.
371+ rule_start = rule.start_time(--y, offset);
372+ }
373+
374+ if (active_rule_start < rule_start && rule_start < t)
375+ {
376+ active_rule_start = rule_start;
377+ active_rule = &rule;
378+ }
379+ }
380+
381+ if (active_rule)
382+ letters = active_rule->letters;
383+ else if (first_std)
384+ letters = first_std->letters;
385 }
386
387 const Rule* curr_rule = nullptr;
388@@ -2069,9 +2123,11 @@ namespace std::chrono
389 istringstream in2(std::move(rules));
390 in2 >> rules_time;
391 inf.m_save = duration_cast<minutes>(rules_time.time);
392+ // If the FORMAT is "STD/DST" then we can choose the right one
393+ // now, so that we store a shorter string.
394 select_std_or_dst_abbrev(fmt, inf.m_save);
395 }
396- inf.set_abbrev(fmt);
397+ inf.set_abbrev(std::move(fmt));
398 }
399
400 // YEAR [MONTH [DAY [TIME]]]
401@@ -2082,7 +2138,12 @@ namespace std::chrono
402 abbrev_month m{January};
403 int d = 1;
404 at_time t{};
405+ // XXX DAY should support ON format, e.g. lastSun or Sun>=8
406 in >> m >> d >> t;
407+ // XXX UNTIL field should be interpreted
408+ // "using the rules in effect just before the transition"
409+ // so might need to store as year_month_day and hh_mm_ss and only
410+ // convert to a sys_time once we know the offset in effect.
411 inf.m_until = sys_days(year(y)/m.m/day(d)) + seconds(t.time);
412 }
413 else
414diff --git a/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
415new file mode 100644
416index 000000000000..f1a8fff02f58
417--- /dev/null
418+++ b/libstdc++-v3/testsuite/std/time/time_zone/sys_info_abbrev.cc
419@@ -0,0 +1,106 @@
420+// { dg-do run { target c++20 } }
421+// { dg-require-effective-target tzdb }
422+// { dg-require-effective-target cxx11_abi }
423+// { dg-xfail-run-if "no weak override on AIX" { powerpc-ibm-aix* } }
424+
425+#include <chrono>
426+#include <fstream>
427+#include <testsuite_hooks.h>
428+
429+static bool override_used = false;
430+
431+namespace __gnu_cxx
432+{
433+ const char* zoneinfo_dir_override() {
434+ override_used = true;
435+ return "./";
436+ }
437+}
438+
439+using namespace std::chrono;
440+
441+void
442+test_format()
443+{
444+ std::ofstream("tzdata.zi") << R"(# version test_1
445+Zone Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u
446+ -1 - %z 1975
447+ 0 - GMT
448+Zon Some/Zone 1:2:3 - %z 1900
449+ 1:23:45 - %z 1950
450+Zo Another/Zone 1:2:3 - AZ0 1901
451+ 1 Roolz A%sZ 2000
452+ 1 Roolz SAZ/DAZ 2005
453+ 1 Roolz %z
454+Rule Roolz 1950 max - April 1 2 1 D
455+Rul Roolz 1950 max - Oct 1 1 0 S
456+Z Strange/Zone 1 - X%sX 1980
457+ 1 - FOO/BAR 1990
458+ 2:00 - %zzz 1995
459+ 0:9 - %zzz 1996
460+ 0:8:7 - %zzz 1997
461+ 0:6:5.5 - %zzz 1998
462+)";
463+
464+ const auto& db = reload_tzdb();
465+ VERIFY( override_used ); // If this fails then XFAIL for the target.
466+ VERIFY( db.version == "test_1" );
467+
468+ // Test formatting %z as
469+ auto tz = locate_zone("Africa/Bissau");
470+ auto inf = tz->get_info(sys_days(1974y/1/1));
471+ VERIFY( inf.abbrev == "-01" );
472+
473+ tz = locate_zone("Some/Zone");
474+ inf = tz->get_info(sys_days(1899y/1/1));
475+ VERIFY( inf.abbrev == "+010203" );
476+ inf = tz->get_info(sys_days(1955y/1/1));
477+ VERIFY( inf.abbrev == "+012345" );
478+
479+ tz = locate_zone("Another/Zone");
480+ // Test formatting %s as the LETTER/S field from the active Rule.
481+ inf = tz->get_info(sys_days(1910y/January/1));
482+ VERIFY( inf.abbrev == "ASZ" );
483+ inf = tz->get_info(sys_days(1950y/January/1));
484+ VERIFY( inf.abbrev == "ASZ" );
485+ inf = tz->get_info(sys_days(1950y/June/1));
486+ VERIFY( inf.abbrev == "ADZ" );
487+ inf = tz->get_info(sys_days(1999y/January/1));
488+ VERIFY( inf.abbrev == "ASZ" );
489+ inf = tz->get_info(sys_days(1999y/July/1));
490+ VERIFY( inf.abbrev == "ADZ" );
491+ // Test formatting STD/DST according to the active Rule.
492+ inf = tz->get_info(sys_days(2000y/January/2));
493+ VERIFY( inf.abbrev == "SAZ" );
494+ inf = tz->get_info(sys_days(2001y/January/1));
495+ VERIFY( inf.abbrev == "SAZ" );
496+ inf = tz->get_info(sys_days(2001y/July/1));
497+ VERIFY( inf.abbrev == "DAZ" );
498+ // Test formatting %z as the offset determined by the active Rule.
499+ inf = tz->get_info(sys_days(2005y/January/2));
500+ VERIFY( inf.abbrev == "+01" );
501+ inf = tz->get_info(sys_days(2006y/January/1));
502+ VERIFY( inf.abbrev == "+01" );
503+ inf = tz->get_info(sys_days(2006y/July/1));
504+ VERIFY( inf.abbrev == "+02" );
505+
506+ // Test formatting %z, %s and S/D for a Zone with no associated Rules.
507+ tz = locate_zone("Strange/Zone");
508+ inf = tz->get_info(sys_days(1979y/January/1));
509+ VERIFY( inf.abbrev == "XX" ); // No Rule means nothing to use for %s.
510+ inf = tz->get_info(sys_days(1981y/July/1));
511+ VERIFY( inf.abbrev == "FOO" ); // Always standard time means first string.
512+ inf = tz->get_info(sys_days(1994y/July/1));
513+ VERIFY( inf.abbrev == "+02zz" );
514+ inf = tz->get_info(sys_days(1995y/July/1));
515+ VERIFY( inf.abbrev == "+0009zz" );
516+ inf = tz->get_info(sys_days(1996y/July/1));
517+ VERIFY( inf.abbrev == "+000807zz" );
518+ inf = tz->get_info(sys_days(1997y/July/1));
519+ VERIFY( inf.abbrev == "+000606zz" );
520+}
521+
522+int main()
523+{
524+ test_format();
525+}
526diff --git a/libstdc++-v3/testsuite/std/time/tzdb/1.cc b/libstdc++-v3/testsuite/std/time/tzdb/1.cc
527index 796f3a8b4256..7a31c1c20ba7 100644
528--- a/libstdc++-v3/testsuite/std/time/tzdb/1.cc
529+++ b/libstdc++-v3/testsuite/std/time/tzdb/1.cc
530@@ -39,11 +39,15 @@ test_locate()
531 const tzdb& db = get_tzdb();
532 const time_zone* tz = db.locate_zone("GMT");
533 VERIFY( tz != nullptr );
534- VERIFY( tz->name() == "Etc/GMT" );
535 VERIFY( tz == std::chrono::locate_zone("GMT") );
536 VERIFY( tz == db.locate_zone("Etc/GMT") );
537 VERIFY( tz == db.locate_zone("Etc/GMT+0") );
538
539+ // Since 2022f GMT is now a Zone and Etc/GMT a link instead of vice versa,
540+ // but only when using the vanguard format. As of 2024a, the main and
541+ // rearguard formats still have Etc/GMT as a Zone and GMT as a link.
542+ VERIFY( tz->name() == "GMT" || tz->name() == "Etc/GMT" );
543+
544 VERIFY( db.locate_zone(db.current_zone()->name()) == db.current_zone() );
545 }
546
547--
5482.43.5
549
diff --git a/meta/recipes-devtools/gcc/gcc_14.2.bb b/meta/recipes-devtools/gcc/gcc_15.1.bb
index 255fe552bd..255fe552bd 100644
--- a/meta/recipes-devtools/gcc/gcc_14.2.bb
+++ b/meta/recipes-devtools/gcc/gcc_15.1.bb
diff --git a/meta/recipes-devtools/gcc/libgcc-initial_14.2.bb b/meta/recipes-devtools/gcc/libgcc-initial_15.1.bb
index a259082b47..a259082b47 100644
--- a/meta/recipes-devtools/gcc/libgcc-initial_14.2.bb
+++ b/meta/recipes-devtools/gcc/libgcc-initial_15.1.bb
diff --git a/meta/recipes-devtools/gcc/libgcc_14.2.bb b/meta/recipes-devtools/gcc/libgcc_15.1.bb
index fdcd6cc0da..fdcd6cc0da 100644
--- a/meta/recipes-devtools/gcc/libgcc_14.2.bb
+++ b/meta/recipes-devtools/gcc/libgcc_15.1.bb
diff --git a/meta/recipes-devtools/gcc/libgfortran_14.2.bb b/meta/recipes-devtools/gcc/libgfortran_15.1.bb
index 71dd8b4bdc..71dd8b4bdc 100644
--- a/meta/recipes-devtools/gcc/libgfortran_14.2.bb
+++ b/meta/recipes-devtools/gcc/libgfortran_15.1.bb