diff mbox series

arm-toolchain/gcc-arm-12.2: remove

Message ID 20230612160513.938778-1-ross.burton@arm.com
State New
Headers show
Series arm-toolchain/gcc-arm-12.2: remove | expand

Commit Message

Ross Burton June 12, 2023, 4:05 p.m. UTC
From: Ross Burton <ross.burton@arm.com>

This recipe is a rebuild from source of the Arm GCC release, with
patches from oe-core added to make it work well in our environment.

Most people are happy with the GCC in oe-core, and this release is often
behind: at the time of writing oe-core has mainline GCC 13.1, but Arm
GCC is 12.2.  Users who actually want the improvements in Arm GCC will
likely want to use the binary toolchain so that they can have support
from Arm, and they're welcome to do so via the "external-arm" binary
toolchain.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 .gitlab-ci.yml                                |   5 +-
 ci/armgcc.yml                                 |   6 -
 meta-arm-toolchain/README.md                  |  17 +-
 .../recipes-devtools/gcc/gcc-arm-12.2.inc     | 112 ----
 ...0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch |  39 --
 .../0002-gcc-poison-system-directories.patch  | 239 --------
 .../0003-64-bit-multilib-hack.patch           | 134 -----
 ...R_BUILD-in-a-couple-of-places-to-avo.patch |  64 ---
 ...ts.h-in-B-instead-of-S-and-t-oe-in-B.patch |  92 ----
 .../gcc-arm-12.2/0006-cpp-honor-sysroot.patch |  53 --
 ...AMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 403 --------------
 .../gcc/gcc-arm-12.2/0008-libtool.patch       |  39 --
 ...s-fix-v4bx-to-linker-to-support-EABI.patch |  40 --
 ...-config-files-from-B-instead-of-usin.patch |  99 ----
 ...ir-from-.la-which-usually-points-to-.patch |  28 -
 ...e-target-gcc-headers-can-be-included.patch | 113 ----
 ...t-directory-during-relink-if-inst_pr.patch |  35 --
 ...-fix-libcc1-s-install-path-and-rpath.patch |  51 --
 ...le-sysroot-support-for-nativesdk-gcc.patch | 510 ------------------
 ...sroot-gcc-version-specific-dirs-with.patch |  99 ----
 ...d-to-link-commandline-for-musl-targe.patch |  84 ---
 ...Re-introduce-spe-commandline-options.patch |  39 --
 ...as-for-__cpu_indicator_init-instead-.patch |  83 ---
 ...s-Do-not-use-__LINE__-for-maintainin.patch | 182 -------
 ...omic-Do-not-enforce-march-on-aarch64.patch |  42 --
 .../0024-Fix-install-path-of-linux64.h.patch  |  31 --
 .../0026-rust-recursion-limit.patch           |  93 ----
 .../gcc/gcc-arm-12.2/hardcoded-paths.patch    |  19 -
 .../gcc-arm-12.2/prefix-map-realpath.patch    |  63 ---
 .../recipes-devtools/gcc/gcc-arm-common.inc   |  27 -
 .../gcc/gcc-cross-canadian_arm-12.2.bb        |   2 -
 .../gcc/gcc-cross_arm-12.2.bb                 |   3 -
 .../gcc/gcc-crosssdk_arm-12.2.bb              |   2 -
 .../gcc/gcc-runtime_arm-12.2.bb               |   2 -
 .../gcc/gcc-sanitizers_arm-12.2.bb            |   7 -
 .../gcc/gcc-source_arm-12.2.bb                |   4 -
 .../recipes-devtools/gcc/gcc_arm-12.2.bb      |  15 -
 .../gcc/libgcc-initial_arm-12.2.bb            |   5 -
 .../recipes-devtools/gcc/libgcc_arm-12.2.bb   |   5 -
 .../gcc/libgfortran_arm-12.2.bb               |   2 -
 40 files changed, 3 insertions(+), 2885 deletions(-)
 delete mode 100644 ci/armgcc.yml
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2.inc
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0002-gcc-poison-system-directories.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0003-64-bit-multilib-hack.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0006-cpp-honor-sysroot.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0008-libtool.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0013-Ensure-target-gcc-headers-can-be-included.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0016-handle-sysroot-support-for-nativesdk-gcc.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0019-Re-introduce-spe-commandline-options.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0023-libatomic-Do-not-enforce-march-on-aarch64.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0024-Fix-install-path-of-linux64.h.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0026-rust-recursion-limit.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/hardcoded-paths.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/prefix-map-realpath.patch
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-cross-canadian_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-cross_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-crosssdk_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-runtime_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-sanitizers_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-source_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/libgcc-initial_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/libgcc_arm-12.2.bb
 delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/libgfortran_arm-12.2.bb

Comments

Sumit Garg June 13, 2023, 5:13 a.m. UTC | #1
On Mon, 12 Jun 2023 at 21:35, Ross Burton <ross.burton@arm.com> wrote:
>
> From: Ross Burton <ross.burton@arm.com>
>
> This recipe is a rebuild from source of the Arm GCC release, with
> patches from oe-core added to make it work well in our environment.
>
> Most people are happy with the GCC in oe-core, and this release is often
> behind: at the time of writing oe-core has mainline GCC 13.1, but Arm
> GCC is 12.2.  Users who actually want the improvements in Arm GCC will
> likely want to use the binary toolchain so that they can have support
> from Arm, and they're welcome to do so via the "external-arm" binary
> toolchain.
>
> Signed-off-by: Ross Burton <ross.burton@arm.com>

Acked-by: Sumit Garg <sumit.garg@linaro.org>

-Sumit

> ---
>  .gitlab-ci.yml                                |   5 +-
>  ci/armgcc.yml                                 |   6 -
>  meta-arm-toolchain/README.md                  |  17 +-
>  .../recipes-devtools/gcc/gcc-arm-12.2.inc     | 112 ----
>  ...0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch |  39 --
>  .../0002-gcc-poison-system-directories.patch  | 239 --------
>  .../0003-64-bit-multilib-hack.patch           | 134 -----
>  ...R_BUILD-in-a-couple-of-places-to-avo.patch |  64 ---
>  ...ts.h-in-B-instead-of-S-and-t-oe-in-B.patch |  92 ----
>  .../gcc-arm-12.2/0006-cpp-honor-sysroot.patch |  53 --
>  ...AMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 403 --------------
>  .../gcc/gcc-arm-12.2/0008-libtool.patch       |  39 --
>  ...s-fix-v4bx-to-linker-to-support-EABI.patch |  40 --
>  ...-config-files-from-B-instead-of-usin.patch |  99 ----
>  ...ir-from-.la-which-usually-points-to-.patch |  28 -
>  ...e-target-gcc-headers-can-be-included.patch | 113 ----
>  ...t-directory-during-relink-if-inst_pr.patch |  35 --
>  ...-fix-libcc1-s-install-path-and-rpath.patch |  51 --
>  ...le-sysroot-support-for-nativesdk-gcc.patch | 510 ------------------
>  ...sroot-gcc-version-specific-dirs-with.patch |  99 ----
>  ...d-to-link-commandline-for-musl-targe.patch |  84 ---
>  ...Re-introduce-spe-commandline-options.patch |  39 --
>  ...as-for-__cpu_indicator_init-instead-.patch |  83 ---
>  ...s-Do-not-use-__LINE__-for-maintainin.patch | 182 -------
>  ...omic-Do-not-enforce-march-on-aarch64.patch |  42 --
>  .../0024-Fix-install-path-of-linux64.h.patch  |  31 --
>  .../0026-rust-recursion-limit.patch           |  93 ----
>  .../gcc/gcc-arm-12.2/hardcoded-paths.patch    |  19 -
>  .../gcc-arm-12.2/prefix-map-realpath.patch    |  63 ---
>  .../recipes-devtools/gcc/gcc-arm-common.inc   |  27 -
>  .../gcc/gcc-cross-canadian_arm-12.2.bb        |   2 -
>  .../gcc/gcc-cross_arm-12.2.bb                 |   3 -
>  .../gcc/gcc-crosssdk_arm-12.2.bb              |   2 -
>  .../gcc/gcc-runtime_arm-12.2.bb               |   2 -
>  .../gcc/gcc-sanitizers_arm-12.2.bb            |   7 -
>  .../gcc/gcc-source_arm-12.2.bb                |   4 -
>  .../recipes-devtools/gcc/gcc_arm-12.2.bb      |  15 -
>  .../gcc/libgcc-initial_arm-12.2.bb            |   5 -
>  .../recipes-devtools/gcc/libgcc_arm-12.2.bb   |   5 -
>  .../gcc/libgfortran_arm-12.2.bb               |   2 -
>  40 files changed, 3 insertions(+), 2885 deletions(-)
>  delete mode 100644 ci/armgcc.yml
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2.inc
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0002-gcc-poison-system-directories.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0003-64-bit-multilib-hack.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0006-cpp-honor-sysroot.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0008-libtool.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0013-Ensure-target-gcc-headers-can-be-included.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0016-handle-sysroot-support-for-nativesdk-gcc.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0019-Re-introduce-spe-commandline-options.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0023-libatomic-Do-not-enforce-march-on-aarch64.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0024-Fix-install-path-of-linux64.h.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0026-rust-recursion-limit.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/hardcoded-paths.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/prefix-map-realpath.patch
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-cross-canadian_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-cross_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-crosssdk_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-runtime_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-sanitizers_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc-source_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/gcc_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/libgcc-initial_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/libgcc_arm-12.2.bb
>  delete mode 100644 meta-arm-toolchain/recipes-devtools/gcc/libgfortran_arm-12.2.bb
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 0ae5c995..74105e65 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -85,7 +85,7 @@ update-repos:
>  # Available options for building are
>  #  DISTRO: [poky, poky-tiny]
>  #  KERNEL: [linux-yocto, linux-yocto-dev, linux-yocto-rt]
> -#  TOOLCHAINS: [gcc, clang, armgcc, external-gccarm]
> +#  TOOLCHAINS: [gcc, clang, external-gccarm]
>  #  TCLIBC: [glibc, musl]
>  #  FIRMWARE: [u-boot, edk2]
>  #  TS: [none, trusted-services]
> @@ -149,8 +149,7 @@ n1sdp:
>    extends: .build
>    parallel:
>      matrix:
> -      - TOOLCHAINS: [gcc, armgcc]
> -        TS: [none, n1sdp-ts]
> +      - TS: [none, n1sdp-ts]
>
>  qemu-generic-arm64:
>    extends: .build
> diff --git a/ci/armgcc.yml b/ci/armgcc.yml
> deleted file mode 100644
> index 9fb38cf2..00000000
> --- a/ci/armgcc.yml
> +++ /dev/null
> @@ -1,6 +0,0 @@
> -header:
> -  version: 11
> -
> -local_conf_header:
> -  cc: |
> -    GCCVERSION = "arm-12.2"
> diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
> index 9ee05ed0..9830b95a 100644
> --- a/meta-arm-toolchain/README.md
> +++ b/meta-arm-toolchain/README.md
> @@ -1,26 +1,11 @@
>  meta-arm-toolchain Yocto Layer
>  ==============================
>
> -This layer contains recipes for GNU Arm toolchains which could either be built
> -from source or pre-built toolchain binaries.
> +This layer contains recipes for the prebuilt GNU Arm toolchains.
>
>  Information regarding contributing, reporting bugs, etc can be found in the
>  top-level meta-arm readme file.
>
> -Source Arm toolchain for Linux development
> -------------------------------------------
> -
> -Recipes for GNU Arm toolchain built from source are provided under
> -``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
> -toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
> -conf file.
> -
> --  Eg. to use GNU Arm toolchain version ``9.2``
> -   GCCVERSION = "arm-9.2"
> -
> -Pre-built Arm toolchain for Linux development
> ----------------------------------------------
> -
>  Recipes for pre-built GNU Arm toolchain for Linux development are provided under
>  ``recipes-devtools/external-arm-toolchain/``.
>
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2.inc
> deleted file mode 100644
> index 06bd8fa6..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2.inc
> +++ /dev/null
> @@ -1,112 +0,0 @@
> -require recipes-devtools/gcc/gcc-common.inc
> -
> -# Third digit in PV should be incremented after a minor release
> -ARM_GCC_VERSION = "12.2"
> -ARM_GCC_SUB_VERSION = "rel1"
> -PV = "arm-${ARM_GCC_VERSION}"
> -CVE_VERSION = "12.2"
> -
> -# BINV should be incremented to a revision after a minor gcc release
> -
> -BINV = "12.2.1"
> -
> -MMYY = "22.12"
> -RELEASE = "20${MMYY}"
> -PR = "r${RELEASE}"
> -
> -FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-arm-${ARM_GCC_VERSION}:${FILE_DIRNAME}/gcc-arm-${ARM_GCC_VERSION}/backport:"
> -
> -DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
> -NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
> -
> -LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"
> -
> -LIC_FILES_CHKSUM = "\
> -    file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
> -    file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
> -    file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
> -    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
> -    file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
> -"
> -
> -BASEURI ?= "https://developer.arm.com/-/media/Files/downloads/gnu/${ARM_GCC_VERSION}.${ARM_GCC_SUB_VERSION}/srcrel/arm-gnu-toolchain-src-snapshot-${ARM_GCC_VERSION}.${ARM_GCC_SUB_VERSION}.tar.xz"
> -SRC_URI = "${BASEURI} \
> -           file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
> -           file://0002-gcc-poison-system-directories.patch \
> -           file://0003-64-bit-multilib-hack.patch \
> -           file://0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch \
> -           file://0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
> -           file://0006-cpp-honor-sysroot.patch \
> -           file://0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
> -           file://0008-libtool.patch \
> -           file://0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
> -           file://0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
> -           file://0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
> -           file://0013-Ensure-target-gcc-headers-can-be-included.patch \
> -           file://0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
> -           file://0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
> -           file://0016-handle-sysroot-support-for-nativesdk-gcc.patch \
> -           file://0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
> -           file://0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
> -           file://0019-Re-introduce-spe-commandline-options.patch \
> -           file://0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
> -           file://0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \
> -           file://0023-libatomic-Do-not-enforce-march-on-aarch64.patch \
> -           file://0024-Fix-install-path-of-linux64.h.patch \
> -           file://0026-rust-recursion-limit.patch \
> -           file://prefix-map-realpath.patch \
> -           file://hardcoded-paths.patch \
> -"
> -SRC_URI[sha256sum] = "108b5e0786b988c7ce24b82187d8cf643fefbd8e3db24fa5f67e530e727d0c70"
> -
> -S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/arm-gnu-toolchain-src-snapshot-${ARM_GCC_VERSION}.${ARM_GCC_SUB_VERSION}"
> -
> -# For dev release snapshotting
> -#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${RELEASE}"
> -#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
> -
> -# Language Overrides
> -FORTRAN = ""
> -JAVA = ""
> -
> -SSP ?= "--disable-libssp"
> -SSP:mingw32 = "--enable-libssp"
> -
> -EXTRA_OECONF_BASE = "\
> -    ${SSP} \
> -    --enable-libitm \
> -    --enable-lto \
> -    --disable-bootstrap \
> -    --with-system-zlib \
> -    ${@'--with-linker-hash-style=${LINKER_HASH_STYLE}' if '${LINKER_HASH_STYLE}' else ''} \
> -    --enable-linker-build-id \
> -    --with-ppl=no \
> -    --with-cloog=no \
> -    --enable-checking=release \
> -    --enable-cheaders=c_global \
> -    --without-isl \
> -"
> -
> -EXTRA_OECONF_INITIAL = "\
> -    --disable-libgomp \
> -    --disable-libitm \
> -    --disable-libquadmath \
> -    --with-system-zlib \
> -    --disable-lto \
> -    --disable-plugin \
> -    --enable-linker-build-id \
> -    --enable-decimal-float=no \
> -    --without-isl \
> -    --disable-libssp \
> -"
> -
> -EXTRA_OECONF:append_aarchilp32 = " --with-abi=ilp32"
> -
> -EXTRA_OECONF_PATHS = "\
> -    --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
> -    --with-sysroot=/not/exist \
> -    --with-build-sysroot=${STAGING_DIR_TARGET} \
> -"
> -
> -# Is a binutils 2.26 issue, not gcc
> -CVE_CHECK_IGNORE += "CVE-2021-37322"
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
> deleted file mode 100644
> index 66e582ca..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -From 31f94ef5b43a984a98f0eebd2dcf1b53aa1d7bce Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 29 Mar 2013 08:37:11 +0400
> -Subject: [PATCH] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> -Upstream-Status: Inappropriate [embedded specific]
> ----
> - configure    | 2 +-
> - configure.ac | 2 +-
> - 2 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/configure b/configure
> -index 5dcaab14ae9..f76310a36bb 100755
> ---- a/configure
> -+++ b/configure
> -@@ -10165,7 +10165,7 @@ fi
> - # for target_alias and gcc doesn't manage it consistently.
> - target_configargs="--cache-file=./config.cache ${target_configargs}"
> -
> --FLAGS_FOR_TARGET=
> -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
> - case " $target_configdirs " in
> -  *" newlib "*)
> -   case " $target_configargs " in
> -diff --git a/configure.ac b/configure.ac
> -index 85977482aee..8b9097c7a45 100644
> ---- a/configure.ac
> -+++ b/configure.ac
> -@@ -3346,7 +3346,7 @@ fi
> - # for target_alias and gcc doesn't manage it consistently.
> - target_configargs="--cache-file=./config.cache ${target_configargs}"
> -
> --FLAGS_FOR_TARGET=
> -+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
> - case " $target_configdirs " in
> -  *" newlib "*)
> -   case " $target_configargs " in
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0002-gcc-poison-system-directories.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0002-gcc-poison-system-directories.patch
> deleted file mode 100644
> index 5aa635b3..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0002-gcc-poison-system-directories.patch
> +++ /dev/null
> @@ -1,239 +0,0 @@
> -From 99f1e61b2957226254a116fde7fd73bf07034012 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Mon, 8 Mar 2021 16:04:20 -0800
> -Subject: [PATCH] gcc: poison-system-directories
> -
> -Add /sw/include and /opt/include based on the original
> -zecke-no-host-includes.patch patch.  The original patch checked for
> -/usr/include, /sw/include and /opt/include and then triggered a failure and
> -aborted.
> -
> -Instead, we add the two missing items to the current scan.  If the user
> -wants this to be a failure, they can add "-Werror=poison-system-directories".
> -
> -Upstream-Status: Pending
> -Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/common.opt      |  4 ++++
> - gcc/config.in       | 10 ++++++++++
> - gcc/configure       | 19 +++++++++++++++++++
> - gcc/configure.ac    | 16 ++++++++++++++++
> - gcc/doc/invoke.texi |  9 +++++++++
> - gcc/gcc.cc          | 15 ++++++++++++---
> - gcc/incpath.cc      | 21 +++++++++++++++++++++
> - 7 files changed, 91 insertions(+), 3 deletions(-)
> -
> -diff --git a/gcc/common.opt b/gcc/common.opt
> -index 8a0dafc52..0357868e2 100644
> ---- a/gcc/common.opt
> -+++ b/gcc/common.opt
> -@@ -710,6 +710,10 @@ Wreturn-local-addr
> - Common Var(warn_return_local_addr) Init(1) Warning
> - Warn about returning a pointer/reference to a local or temporary variable.
> -
> -+Wpoison-system-directories
> -+Common Var(flag_poison_system_directories) Init(1) Warning
> -+Warn for -I and -L options using system directories if cross compiling
> -+
> - Wshadow
> - Common Var(warn_shadow) Warning
> - Warn when one variable shadows another.  Same as -Wshadow=global.
> -diff --git a/gcc/config.in b/gcc/config.in
> -index 64c27c9cf..a693cb8a8 100644
> ---- a/gcc/config.in
> -+++ b/gcc/config.in
> -@@ -230,6 +230,16 @@
> - #endif
> -
> -
> -+/* Define to warn for use of native system header directories */
> -+#ifndef USED_FOR_TARGET
> -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
> -+#endif
> -+/* Define to warn for use of native system header directories */
> -+#ifndef USED_FOR_TARGET
> -+#undef POISON_BY_DEFAULT
> -+#endif
> -+
> -+
> - /* Define if you want all operations on RTL (the basic data structure of the
> -    optimizer and back end) to be checked for dynamic type safety at runtime.
> -    This is quite expensive. */
> -diff --git a/gcc/configure b/gcc/configure
> -index 2b83acfb0..8bb97578c 100755
> ---- a/gcc/configure
> -+++ b/gcc/configure
> -@@ -1023,6 +1023,7 @@ enable_maintainer_mode
> - enable_link_mutex
> - enable_link_serialization
> - enable_version_specific_runtime_libs
> -+enable_poison_system_directories
> - enable_plugin
> - enable_host_shared
> - enable_libquadmath_support
> -@@ -1785,6 +1786,8 @@ Optional Features:
> -   --enable-version-specific-runtime-libs
> -                           specify that runtime libraries should be installed
> -                           in a compiler-specific directory
> -+  --enable-poison-system-directories
> -+                          warn for use of native system header directories
> -   --enable-plugin         enable plugin support
> -   --enable-host-shared    build host code as shared libraries
> -   --disable-libquadmath-support
> -@@ -31996,6 +31999,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
> - fi
> -
> -
> -+# Check whether --enable-poison-system-directories was given.
> -+if test "${enable_poison_system_directories+set}" = set; then :
> -+  enableval=$enable_poison_system_directories;
> -+else
> -+  enable_poison_system_directories=no
> -+fi
> -+
> -+if test "x${enable_poison_system_directories}" != "xno"; then
> -+
> -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
> -+if test "$enable_poison_system_directories" = "error"; then
> -+$as_echo "#define POISON_BY_DEFAULT 1" >>confdefs.h
> -+fi
> -+
> -+fi
> -+
> - # Substitute configuration variables
> -
> -
> -diff --git a/gcc/configure.ac b/gcc/configure.ac
> -index daf2a708c..6155b83a7 100644
> ---- a/gcc/configure.ac
> -+++ b/gcc/configure.ac
> -@@ -7435,6 +7435,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
> -                 [specify that runtime libraries should be
> -                  installed in a compiler-specific directory])])
> -
> -+AC_ARG_ENABLE([poison-system-directories],
> -+             AS_HELP_STRING([--enable-poison-system-directories],
> -+                            [warn for use of native system header directories (no/yes/error)]),,
> -+             [enable_poison_system_directories=no])
> -+AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories])
> -+if test "x${enable_poison_system_directories}" != "xno"; then
> -+  AC_MSG_NOTICE([poisoned directories enabled])
> -+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
> -+           [1],
> -+           [Define to warn for use of native system header directories])
> -+  if test $enable_poison_system_directories = "error"; then
> -+   AC_MSG_NOTICE([poisoned directories are fatal])
> -+   AC_DEFINE([POISON_BY_DEFAULT], [1], [Define to make poison warnings errors])
> -+  fi
> -+fi
> -+
> - # Substitute configuration variables
> - AC_SUBST(subdirs)
> - AC_SUBST(srcdir)
> -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> -index ff6c338be..a8ebfa59a 100644
> ---- a/gcc/doc/invoke.texi
> -+++ b/gcc/doc/invoke.texi
> -@@ -379,6 +379,7 @@ Objective-C and Objective-C++ Dialects}.
> - -Wpacked  -Wno-packed-bitfield-compat  -Wpacked-not-aligned  -Wpadded @gol
> - -Wparentheses  -Wno-pedantic-ms-format @gol
> - -Wpointer-arith  -Wno-pointer-compare  -Wno-pointer-to-int-cast @gol
> -+-Wno-poison-system-directories @gol
> - -Wno-pragmas  -Wno-prio-ctor-dtor  -Wredundant-decls @gol
> - -Wrestrict  -Wno-return-local-addr  -Wreturn-type @gol
> - -Wno-scalar-storage-order  -Wsequence-point @gol
> -@@ -8029,6 +8030,14 @@ made up of data only and thus requires no special treatment.  But, for
> - most targets, it is made up of code and thus requires the stack to be
> - made executable in order for the program to work properly.
> -
> -+@item -Wno-poison-system-directories
> -+@opindex Wno-poison-system-directories
> -+Do not warn for @option{-I} or @option{-L} options using system
> -+directories such as @file{/usr/include} when cross compiling.  This
> -+option is intended for use in chroot environments when such
> -+directories contain the correct headers and libraries for the target
> -+system rather than the host.
> -+
> - @item -Wfloat-equal
> - @opindex Wfloat-equal
> - @opindex Wno-float-equal
> -diff --git a/gcc/gcc.cc b/gcc/gcc.cc
> -index beefde7f6..4e6557b3c 100644
> ---- a/gcc/gcc.cc
> -+++ b/gcc/gcc.cc
> -@@ -1162,6 +1162,8 @@ proper position among the other output files.  */
> -    "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
> -    "%X %{o*} %{e*} %{N} %{n} %{r}\
> -     %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
> -+    %{Wno-poison-system-directories:--no-poison-system-directories} \
> -+    %{Werror=poison-system-directories:--error-poison-system-directories} \
> -     %{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \
> -     VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
> -     %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
> -@@ -1257,8 +1259,11 @@ static const char *cpp_unique_options =
> - static const char *cpp_options =
> - "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
> -  %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
> -- %{!fno-working-directory:-fworking-directory}}} %{O*}\
> -- %{undef} %{save-temps*:-fpch-preprocess}";
> -+ %{!fno-working-directory:-fworking-directory}}} %{O*}"
> -+#ifdef POISON_BY_DEFAULT
> -+ " %{!Wno-error=poison-system-directories:-Werror=poison-system-directories}"
> -+#endif
> -+ " %{undef} %{save-temps*:-fpch-preprocess}";
> -
> - /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
> -
> -@@ -1287,7 +1292,11 @@ static const char *cc1_options =
> -  %{coverage:-fprofile-arcs -ftest-coverage}\
> -  %{fprofile-arcs|fprofile-generate*|coverage:\
> -    %{!fprofile-update=single:\
> --     %{pthread:-fprofile-update=prefer-atomic}}}";
> -+     %{pthread:-fprofile-update=prefer-atomic}}}"
> -+#ifdef POISON_BY_DEFAULT
> -+ " %{!Wno-error=poison-system-directories:-Werror=poison-system-directories}"
> -+#endif
> -+  ;
> -
> - static const char *asm_options =
> - "%{-target-help:%:print-asm-header()} "
> -diff --git a/gcc/incpath.cc b/gcc/incpath.cc
> -index 622204a38..5ac03c086 100644
> ---- a/gcc/incpath.cc
> -+++ b/gcc/incpath.cc
> -@@ -26,6 +26,7 @@
> - #include "intl.h"
> - #include "incpath.h"
> - #include "cppdefault.h"
> -+#include "diagnostic-core.h"
> -
> - /* Microsoft Windows does not natively support inodes.
> -    VMS has non-numeric inodes.  */
> -@@ -399,6 +400,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
> -       }
> -       fprintf (stderr, _("End of search list.\n"));
> -     }
> -+
> -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
> -+  if (flag_poison_system_directories)
> -+    {
> -+       struct cpp_dir *p;
> -+
> -+       for (p = heads[INC_QUOTE]; p; p = p->next)
> -+         {
> -+          if ((!strncmp (p->name, "/usr/include", 12))
> -+              || (!strncmp (p->name, "/usr/local/include", 18))
> -+              || (!strncmp (p->name, "/usr/X11R6/include", 18))
> -+              || (!strncmp (p->name, "/sw/include", 11))
> -+              || (!strncmp (p->name, "/opt/include", 12)))
> -+            warning (OPT_Wpoison_system_directories,
> -+                     "include location \"%s\" is unsafe for "
> -+                     "cross-compilation",
> -+                     p->name);
> -+         }
> -+    }
> -+#endif
> - }
> -
> - /* Use given -I paths for #include "..." but not #include <...>, and
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0003-64-bit-multilib-hack.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0003-64-bit-multilib-hack.patch
> deleted file mode 100644
> index e83f05b8..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0003-64-bit-multilib-hack.patch
> +++ /dev/null
> @@ -1,134 +0,0 @@
> -From 34b861e7a4cfd7b1f0d2c0f8cf9bb0b0b81eb61a Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 29 Mar 2013 09:10:06 +0400
> -Subject: [PATCH] 64-bit multilib hack.
> -
> -GCC has internal multilib handling code but it assumes a very specific rigid directory
> -layout. The build system implementation of multilib layout is very generic and allows
> -complete customisation of the library directories.
> -
> -This patch is a partial solution to allow any custom directories to be passed into gcc
> -and handled correctly. It forces gcc to use the base_libdir (which is the current
> -directory, "."). We need to do this for each multilib that is configured as we don't
> -know which compiler options may be being passed into the compiler. Since we have a compiler
> -per mulitlib at this point that isn't an issue.
> -
> -The one problem is the target compiler is only going to work for the default multlilib at
> -this point. Ideally we'd figure out which multilibs were being enabled with which paths
> -and be able to patch these entries with a complete set of correct paths but this we
> -don't have such code at this point. This is something the target gcc recipe should do
> -and override these platform defaults in its build config.
> -
> -Do same for riscv64, aarch64 & arc
> -
> -RP 15/8/11
> -
> -Upstream-Status: Inappropriate [OE-Specific]
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
> -Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/config/aarch64/t-aarch64-linux |  8 ++++----
> - gcc/config/arc/t-multilib-linux    |  4 ++--
> - gcc/config/i386/t-linux64          |  6 ++----
> - gcc/config/mips/t-linux64          | 10 +++-------
> - gcc/config/riscv/t-linux           |  6 ++++--
> - gcc/config/rs6000/t-linux64        |  5 ++---
> - 6 files changed, 17 insertions(+), 22 deletions(-)
> -
> -diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
> -index d0cd546002a..f4056d68372 100644
> ---- a/gcc/config/aarch64/t-aarch64-linux
> -+++ b/gcc/config/aarch64/t-aarch64-linux
> -@@ -21,8 +21,8 @@
> - LIB1ASMSRC   = aarch64/lib1funcs.asm
> - LIB1ASMFUNCS = _aarch64_sync_cache_range
> -
> --AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
> --MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
> --MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
> -+#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
> -+#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
> -+#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
> -
> --MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
> -+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
> -diff --git a/gcc/config/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux
> -index ecb9ae6859f..12a164028d4 100644
> ---- a/gcc/config/arc/t-multilib-linux
> -+++ b/gcc/config/arc/t-multilib-linux
> -@@ -16,9 +16,9 @@
> - # along with GCC; see the file COPYING3.  If not see
> - # <http://www.gnu.org/licenses/>.
> -
> --MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
> -+#MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
> -
> --MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
> -+#MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
> -
> - # Aliases:
> - MULTILIB_MATCHES += mcpu?arc700=mA7
> -diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
> -index 5526ad0e6cc..fa51c88912b 100644
> ---- a/gcc/config/i386/t-linux64
> -+++ b/gcc/config/i386/t-linux64
> -@@ -32,7 +32,5 @@
> - #
> - comma=,
> - MULTILIB_OPTIONS    = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
> --MULTILIB_DIRNAMES   = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
> --MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
> --MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
> --MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
> -+MULTILIB_DIRNAMES = . .
> -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
> -diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64
> -index 2fdd8e00407..04f2099250f 100644
> ---- a/gcc/config/mips/t-linux64
> -+++ b/gcc/config/mips/t-linux64
> -@@ -17,10 +17,6 @@
> - # <http://www.gnu.org/licenses/>.
> -
> - MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
> --MULTILIB_DIRNAMES = n32 32 64
> --MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el)
> --MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft)
> --MULTILIB_OSDIRNAMES = \
> --      ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
> --      ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
> --      ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
> -+MULTILIB_DIRNAMES = . . .
> -+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
> -+
> -diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
> -index 216d2776a18..e4d817621fc 100644
> ---- a/gcc/config/riscv/t-linux
> -+++ b/gcc/config/riscv/t-linux
> -@@ -1,3 +1,5 @@
> - # Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/
> --MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
> --MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
> -+#MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
> -+MULTILIB_DIRNAMES := . .
> -+#MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
> -+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
> -diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
> -index 47e0efd5764..05f5a3f188e 100644
> ---- a/gcc/config/rs6000/t-linux64
> -+++ b/gcc/config/rs6000/t-linux64
> -@@ -26,10 +26,9 @@
> - # MULTILIB_OSDIRNAMES according to what is found on the target.
> -
> - MULTILIB_OPTIONS    := m64/m32
> --MULTILIB_DIRNAMES   := 64 32
> -+MULTILIB_DIRNAMES   := . .
> - MULTILIB_EXTRA_OPTS :=
> --MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
> --MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
> -+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
> -
> - rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.cc
> -       $(COMPILE) $<
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
> deleted file mode 100644
> index e8f21634..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -From 7f40f8321fb999e9b34d948724517d3fb0d26820 Mon Sep 17 00:00:00 2001
> -From: Richard Purdie <richard.purdie@linuxfoundation.org>
> -Date: Thu, 28 Oct 2021 11:33:40 +0100
> -Subject: [PATCH] Pass CXXFLAGS_FOR_BUILD in a couple of places to avoid these
> - errors.
> -
> -If CXXFLAGS contains something unsupported by the build CXX, we see build failures (e.g. using -fmacro-prefix-map for the target).
> -
> -2021-10-28 Richard Purdie <richard.purdie@linuxfoundation.org>
> -
> -ChangeLog:
> -
> -    * Makefile.in: Regenerate.
> -    * Makefile.tpl: Add missing CXXFLAGS_FOR_BUILD overrides
> -
> -Upstream-Status: Pending [should be submittable]
> -
> -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - Makefile.in  | 2 ++
> - Makefile.tpl | 2 ++
> - 2 files changed, 4 insertions(+)
> -
> -diff --git a/Makefile.in b/Makefile.in
> -index 593495e1650..1d9c83cc566 100644
> ---- a/Makefile.in
> -+++ b/Makefile.in
> -@@ -176,6 +176,7 @@ BUILD_EXPORTS = \
> - # built for the build system to override those in BASE_FLAGS_TO_PASS.
> - EXTRA_BUILD_FLAGS = \
> -       CFLAGS="$(CFLAGS_FOR_BUILD)" \
> -+      CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
> -       LDFLAGS="$(LDFLAGS_FOR_BUILD)"
> -
> - # This is the list of directories to built for the host system.
> -@@ -207,6 +208,7 @@ HOST_EXPORTS = \
> -       CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
> -       CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
> -       CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
> -+      CXXFLAGS_FOR_BUILD="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS_FOR_BUILD; \
> -       DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
> -       DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \
> -       LD="$(LD)"; export LD; \
> -diff --git a/Makefile.tpl b/Makefile.tpl
> -index ef58fac2b9a..bab04f335c2 100644
> ---- a/Makefile.tpl
> -+++ b/Makefile.tpl
> -@@ -179,6 +179,7 @@ BUILD_EXPORTS = \
> - # built for the build system to override those in BASE_FLAGS_TO_PASS.
> - EXTRA_BUILD_FLAGS = \
> -       CFLAGS="$(CFLAGS_FOR_BUILD)" \
> -+      CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
> -       LDFLAGS="$(LDFLAGS_FOR_BUILD)"
> -
> - # This is the list of directories to built for the host system.
> -@@ -210,6 +211,7 @@ HOST_EXPORTS = \
> -       CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
> -       CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
> -       CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
> -+      CXXFLAGS_FOR_BUILD="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS_FOR_BUILD; \
> -       DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
> -       DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \
> -       LD="$(LD)"; export LD; \
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
> deleted file mode 100644
> index e34eb2cf..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
> +++ /dev/null
> @@ -1,92 +0,0 @@
> -From 5455fc1de74897a27c1199dc5611ec02243e24af Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 29 Mar 2013 09:17:25 +0400
> -Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}
> -
> -Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that
> -the source can be shared between gcc-cross-initial,
> -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> -Upstream-Status: Pending
> -
> -While compiling gcc-crosssdk-initial-x86_64 on some host, there is
> -occasionally failure that test the existance of default.h doesn't
> -work, the reason is tm_include_list='** defaults.h' rather than
> -tm_include_list='** ./defaults.h'
> -
> -So we add the test condition for this situation.
> -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
> ----
> - gcc/Makefile.in  | 2 +-
> - gcc/configure    | 4 ++--
> - gcc/configure.ac | 4 ++--
> - gcc/mkconfig.sh  | 4 ++--
> - 4 files changed, 7 insertions(+), 7 deletions(-)
> -
> -diff --git a/gcc/Makefile.in b/gcc/Makefile.in
> -index 31ff95500c9..a8277254696 100644
> ---- a/gcc/Makefile.in
> -+++ b/gcc/Makefile.in
> -@@ -553,7 +553,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
> - TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@
> -
> - xmake_file=@xmake_file@
> --tmake_file=@tmake_file@
> -+tmake_file=@tmake_file@ ./t-oe
> - TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@
> - TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
> - TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
> -diff --git a/gcc/configure b/gcc/configure
> -index dc2d59701ad..3fc0e2f5813 100755
> ---- a/gcc/configure
> -+++ b/gcc/configure
> -@@ -13381,8 +13381,8 @@ for f in $tm_file; do
> -        tm_include_list="${tm_include_list} $f"
> -        ;;
> -     defaults.h )
> --       tm_file_list="${tm_file_list} \$(srcdir)/$f"
> --       tm_include_list="${tm_include_list} $f"
> -+       tm_file_list="${tm_file_list} ./$f"
> -+       tm_include_list="${tm_include_list} ./$f"
> -        ;;
> -     * )
> -        tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
> -diff --git a/gcc/configure.ac b/gcc/configure.ac
> -index 36ce78924de..46de496b256 100644
> ---- a/gcc/configure.ac
> -+++ b/gcc/configure.ac
> -@@ -2332,8 +2332,8 @@ for f in $tm_file; do
> -        tm_include_list="${tm_include_list} $f"
> -        ;;
> -     defaults.h )
> --       tm_file_list="${tm_file_list} \$(srcdir)/$f"
> --       tm_include_list="${tm_include_list} $f"
> -+       tm_file_list="${tm_file_list} ./$f"
> -+       tm_include_list="${tm_include_list} ./$f"
> -        ;;
> -     * )
> -        tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
> -diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
> -index 91cc43f69ff..8de33713cd8 100644
> ---- a/gcc/mkconfig.sh
> -+++ b/gcc/mkconfig.sh
> -@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then
> -     if [ $# -ge 1 ]; then
> -       echo '#ifdef IN_GCC' >> ${output}T
> -       for file in "$@"; do
> --          if test x"$file" = x"defaults.h"; then
> -+          if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then
> -               postpone_defaults_h="yes"
> -           else
> -               echo "# include \"$file\"" >> ${output}T
> -@@ -106,7 +106,7 @@ esac
> -
> - # If we postponed including defaults.h, add the #include now.
> - if test x"$postpone_defaults_h" = x"yes"; then
> --    echo "# include \"defaults.h\"" >> ${output}T
> -+    echo "# include \"./defaults.h\"" >> ${output}T
> - fi
> -
> - # Add multiple inclusion protection guard, part two.
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0006-cpp-honor-sysroot.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0006-cpp-honor-sysroot.patch
> deleted file mode 100644
> index b08aecc7..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0006-cpp-honor-sysroot.patch
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -From abc3b82ab24169277f2090e9df1ceac3573142be Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 29 Mar 2013 09:22:00 +0400
> -Subject: [PATCH] cpp: honor sysroot.
> -
> -Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile
> -preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location
> -rather than the --sysroot option specified on the commandline. If access to that directory is
> -permission denied (unreadable), gcc will error.
> -
> -This happens when ccache is in use due to the fact it uses preprocessed source files.
> -
> -The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix,
> --isystem, -isysroot happen and the correct sysroot is used.
> -
> -[YOCTO #2074]
> -
> -RP 2012/04/13
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> -Upstream-Status: Pending
> ----
> - gcc/cp/lang-specs.h | 2 +-
> - gcc/gcc.cc          | 2 +-
> - 2 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
> -index f35c9fab76b..19ddc98ce7f 100644
> ---- a/gcc/cp/lang-specs.h
> -+++ b/gcc/cp/lang-specs.h
> -@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3.  If not see
> -   {".ii", "@c++-cpp-output", 0, 0, 0},
> -   {"@c++-cpp-output",
> -       "%{!E:%{!M:%{!MM:"
> --      "  cc1plus -fpreprocessed %i %(cc1_options) %2"
> -+      "  cc1plus -fpreprocessed %i %I %(cc1_options) %2"
> -       "  %{!fsyntax-only:"
> -       "    %{fmodule-only:%{!S:-o %g.s%V}}"
> -       "    %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
> -diff --git a/gcc/gcc.cc b/gcc/gcc.cc
> -index ce161d3c853..aa4cf92fb78 100644
> ---- a/gcc/gcc.cc
> -+++ b/gcc/gcc.cc
> -@@ -1476,7 +1476,7 @@ static const struct compiler default_compilers[] =
> -                                          %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0},
> -   {".i", "@cpp-output", 0, 0, 0},
> -   {"@cpp-output",
> --   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
> -+   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
> -   {".s", "@assembler", 0, 0, 0},
> -   {"@assembler",
> -    "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
> deleted file mode 100644
> index b59eed57..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
> +++ /dev/null
> @@ -1,403 +0,0 @@
> -From 4de00af67b57b5440bdf61ab364ad959ad0aeee7 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 29 Mar 2013 09:24:50 +0400
> -Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
> - relative to SYSTEMLIBS_DIR
> -
> -This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
> -relative to SYSTEMLIBS_DIR which can be set in generated headers
> -This breaks the assumption of hardcoded multilib in gcc
> -Change is only for the supported architectures in OE including
> -SH, sparc, alpha for possible future support (if any)
> -
> -Removes the do_headerfix task in metadata
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> -Upstream-Status: Inappropriate [OE configuration]
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/config/aarch64/aarch64-linux.h |  4 ++--
> - gcc/config/alpha/linux-elf.h       |  4 ++--
> - gcc/config/arm/linux-eabi.h        |  6 +++---
> - gcc/config/arm/linux-elf.h         |  2 +-
> - gcc/config/i386/linux.h            |  4 ++--
> - gcc/config/i386/linux64.h          | 12 ++++++------
> - gcc/config/linux.h                 |  8 ++++----
> - gcc/config/loongarch/gnu-user.h    |  4 ++--
> - gcc/config/microblaze/linux.h      |  4 ++--
> - gcc/config/mips/linux.h            | 18 +++++++++---------
> - gcc/config/nios2/linux.h           |  4 ++--
> - gcc/config/riscv/linux.h           |  4 ++--
> - gcc/config/rs6000/linux64.h        | 15 +++++----------
> - gcc/config/rs6000/sysv4.h          |  4 ++--
> - gcc/config/s390/linux.h            |  8 ++++----
> - gcc/config/sh/linux.h              |  4 ++--
> - gcc/config/sparc/linux.h           |  2 +-
> - gcc/config/sparc/linux64.h         |  4 ++--
> - 18 files changed, 53 insertions(+), 58 deletions(-)
> -
> -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
> -index 5e4553d79f5..877e8841eb2 100644
> ---- a/gcc/config/aarch64/aarch64-linux.h
> -+++ b/gcc/config/aarch64/aarch64-linux.h
> -@@ -21,10 +21,10 @@
> - #ifndef GCC_AARCH64_LINUX_H
> - #define GCC_AARCH64_LINUX_H
> -
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
> -+#define GLIBC_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
> -
> - #undef MUSL_DYNAMIC_LINKER
> --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
> -+#define MUSL_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
> -
> - #undef  ASAN_CC1_SPEC
> - #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
> -diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
> -index 17f16a55910..0a7be38fa63 100644
> ---- a/gcc/config/alpha/linux-elf.h
> -+++ b/gcc/config/alpha/linux-elf.h
> -@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3.  If not see
> - #define EXTRA_SPECS \
> - { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
> -
> --#define GLIBC_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
> --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
> -+#define GLIBC_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-linux.so.2"
> -+#define UCLIBC_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-uClibc.so.0"
> - #if DEFAULT_LIBC == LIBC_UCLIBC
> - #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
> - #elif DEFAULT_LIBC == LIBC_GLIBC
> -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
> -index 50cc0bc6d08..17c18b27145 100644
> ---- a/gcc/config/arm/linux-eabi.h
> -+++ b/gcc/config/arm/linux-eabi.h
> -@@ -65,8 +65,8 @@
> -    GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
> -
> - #undef  GLIBC_DYNAMIC_LINKER
> --#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
> --#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
> -+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
> -+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"
> - #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
> -
> - #define GLIBC_DYNAMIC_LINKER \
> -@@ -89,7 +89,7 @@
> - #define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
> - #endif
> - #define MUSL_DYNAMIC_LINKER \
> --  "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
> -+  SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
> -
> - /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
> -    use the GNU/Linux version, not the generic BPABI version.  */
> -diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
> -index df3da67c4f0..37456e9d5a4 100644
> ---- a/gcc/config/arm/linux-elf.h
> -+++ b/gcc/config/arm/linux-elf.h
> -@@ -60,7 +60,7 @@
> -
> - #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
> -
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
> -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
> -
> - #define LINUX_TARGET_LINK_SPEC  "%{h*} \
> -    %{static:-Bstatic} \
> -diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
> -index 5d99ee56d5b..a76022c9ccc 100644
> ---- a/gcc/config/i386/linux.h
> -+++ b/gcc/config/i386/linux.h
> -@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3.  If not see
> - <http://www.gnu.org/licenses/>.  */
> -
> - #define GNU_USER_LINK_EMULATION "elf_i386"
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
> -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
> -
> - #undef MUSL_DYNAMIC_LINKER
> --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
> -+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
> -diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
> -index 8681e36f10d..ddce49b6b60 100644
> ---- a/gcc/config/i386/linux64.h
> -+++ b/gcc/config/i386/linux64.h
> -@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> - #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
> - #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
> -
> --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
> --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
> --#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
> -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
> -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
> -+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
> -
> - #undef MUSL_DYNAMIC_LINKER32
> --#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
> -+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-i386.so.1"
> - #undef MUSL_DYNAMIC_LINKER64
> --#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
> -+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-x86_64.so.1"
> - #undef MUSL_DYNAMIC_LINKERX32
> --#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
> -+#define MUSL_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-musl-x32.so.1"
> -diff --git a/gcc/config/linux.h b/gcc/config/linux.h
> -index 74f70793d90..4ce173384ef 100644
> ---- a/gcc/config/linux.h
> -+++ b/gcc/config/linux.h
> -@@ -99,10 +99,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> -    GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
> -    GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
> -    supporting both 32-bit and 64-bit compilation.  */
> --#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
> --#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
> --#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
> --#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
> -+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
> -+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
> -+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
> -+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0"
> - #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
> - #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
> - #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
> -diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h
> -index 664dc9206ad..082bd7cfc6f 100644
> ---- a/gcc/config/loongarch/gnu-user.h
> -+++ b/gcc/config/loongarch/gnu-user.h
> -@@ -31,11 +31,11 @@ along with GCC; see the file COPYING3.  If not see
> -
> - #undef GLIBC_DYNAMIC_LINKER
> - #define GLIBC_DYNAMIC_LINKER \
> --  "/lib" ABI_GRLEN_SPEC "/ld-linux-loongarch-" ABI_SPEC ".so.1"
> -+  SYSTEMLIBS_DIR "ld-linux-loongarch-" ABI_SPEC ".so.1"
> -
> - #undef MUSL_DYNAMIC_LINKER
> - #define MUSL_DYNAMIC_LINKER \
> --  "/lib" ABI_GRLEN_SPEC "/ld-musl-loongarch-" ABI_SPEC ".so.1"
> -+  SYSTEMLIBS_DIR "ld-musl-loongarch-" ABI_SPEC ".so.1"
> -
> - #undef GNU_USER_TARGET_LINK_SPEC
> - #define GNU_USER_TARGET_LINK_SPEC \
> -diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h
> -index 5b1a365eda4..2e63df1ae9c 100644
> ---- a/gcc/config/microblaze/linux.h
> -+++ b/gcc/config/microblaze/linux.h
> -@@ -28,7 +28,7 @@
> - #undef TLS_NEEDS_GOT
> - #define TLS_NEEDS_GOT 1
> -
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
> -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "/ld.so.1"
> - #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
> -
> - #if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */
> -@@ -38,7 +38,7 @@
> - #endif
> -
> - #undef MUSL_DYNAMIC_LINKER
> --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
> -+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
> -
> - #undef  SUBTARGET_EXTRA_SPECS
> - #define SUBTARGET_EXTRA_SPECS \
> -diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
> -index 230b7789bb8..d96d134bfcf 100644
> ---- a/gcc/config/mips/linux.h
> -+++ b/gcc/config/mips/linux.h
> -@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3.  If not see
> - #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
> -
> - #define GLIBC_DYNAMIC_LINKER32 \
> --  "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
> -+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
> - #define GLIBC_DYNAMIC_LINKER64 \
> --  "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
> -+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
> - #define GLIBC_DYNAMIC_LINKERN32 \
> --  "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
> -+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
> -
> - #undef UCLIBC_DYNAMIC_LINKER32
> - #define UCLIBC_DYNAMIC_LINKER32 \
> --  "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
> -+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
> - #undef UCLIBC_DYNAMIC_LINKER64
> - #define UCLIBC_DYNAMIC_LINKER64 \
> --  "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
> -+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}"
> - #define UCLIBC_DYNAMIC_LINKERN32 \
> --  "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
> -+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
> -
> - #undef MUSL_DYNAMIC_LINKER32
> - #define MUSL_DYNAMIC_LINKER32 \
> --  "/lib/ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
> -+  SYSTEMLIBS_DIR "ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
> - #undef MUSL_DYNAMIC_LINKER64
> - #define MUSL_DYNAMIC_LINKER64 \
> --  "/lib/ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
> -+  SYSTEMLIBS_DIR "ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
> - #define MUSL_DYNAMIC_LINKERN32 \
> --  "/lib/ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
> -+  SYSTEMLIBS_DIR "ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
> -
> - #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
> - #define GNU_USER_DYNAMIC_LINKERN32 \
> -diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
> -index f5dd813acad..7a13e1c9799 100644
> ---- a/gcc/config/nios2/linux.h
> -+++ b/gcc/config/nios2/linux.h
> -@@ -29,8 +29,8 @@
> - #undef CPP_SPEC
> - #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
> -
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
> --#define MUSL_DYNAMIC_LINKER  "/lib/ld-musl-nios2.so.1"
> -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-nios2.so.1"
> -+#define MUSL_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-musl-nios2.so.1"
> -
> - #undef LINK_SPEC
> - #define LINK_SPEC LINK_SPEC_ENDIAN \
> -diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
> -index 38803723ba9..d5ef8a96a19 100644
> ---- a/gcc/config/riscv/linux.h
> -+++ b/gcc/config/riscv/linux.h
> -@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.  If not see
> -     GNU_USER_TARGET_OS_CPP_BUILTINS();                                \
> -   } while (0)
> -
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
> -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
> -
> - #define MUSL_ABI_SUFFIX \
> -   "%{mabi=ilp32:-sf}" \
> -@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.  If not see
> -   "%{mabi=lp64d:}"
> -
> - #undef MUSL_DYNAMIC_LINKER
> --#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
> -+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
> -
> - /* Because RISC-V only has word-sized atomics, it requries libatomic where
> -    others do not.  So link libatomic by default, as needed.  */
> -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
> -index b2a7afabc73..364c1a5b155 100644
> ---- a/gcc/config/rs6000/linux64.h
> -+++ b/gcc/config/rs6000/linux64.h
> -@@ -339,24 +339,19 @@ extern int dot_symbols;
> - #undef        LINK_OS_DEFAULT_SPEC
> - #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
> -
> --#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1"
> --
> -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
> - #ifdef LINUX64_DEFAULT_ABI_ELFv2
> --#define GLIBC_DYNAMIC_LINKER64 \
> --"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \
> --":%(dynamic_linker_prefix)/lib64/ld64.so.2}"
> -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}"
> - #else
> --#define GLIBC_DYNAMIC_LINKER64 \
> --"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \
> --":%(dynamic_linker_prefix)/lib64/ld64.so.1}"
> -+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}"
> - #endif
> -
> - #undef MUSL_DYNAMIC_LINKER32
> - #define MUSL_DYNAMIC_LINKER32 \
> --  "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
> -+  SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
> - #undef MUSL_DYNAMIC_LINKER64
> - #define MUSL_DYNAMIC_LINKER64 \
> --  "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
> -+  SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
> -
> - #undef  DEFAULT_ASM_ENDIAN
> - #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
> -diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
> -index 7e2519de5d4..a73954d9de5 100644
> ---- a/gcc/config/rs6000/sysv4.h
> -+++ b/gcc/config/rs6000/sysv4.h
> -@@ -779,10 +779,10 @@ GNU_USER_TARGET_CC1_SPEC
> -
> - #define MUSL_DYNAMIC_LINKER_E ENDIAN_SELECT("","le","")
> -
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
> -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld.so.1"
> - #undef MUSL_DYNAMIC_LINKER
> - #define MUSL_DYNAMIC_LINKER \
> --  "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
> -+  SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
> -
> - #ifndef GNU_USER_DYNAMIC_LINKER
> - #define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
> -diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
> -index d7b7e7a7b02..0139b4d06ca 100644
> ---- a/gcc/config/s390/linux.h
> -+++ b/gcc/config/s390/linux.h
> -@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3.  If not see
> - #define MULTILIB_DEFAULTS { "m31" }
> - #endif
> -
> --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
> --#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
> -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
> -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64.so.1"
> -
> - #undef MUSL_DYNAMIC_LINKER32
> --#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1"
> -+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-s390.so.1"
> - #undef MUSL_DYNAMIC_LINKER64
> --#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1"
> -+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-s390x.so.1"
> -
> - #undef  LINK_SPEC
> - #define LINK_SPEC \
> -diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
> -index d96d077c99e..7d27f9893ee 100644
> ---- a/gcc/config/sh/linux.h
> -+++ b/gcc/config/sh/linux.h
> -@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3.  If not see
> -
> - #undef MUSL_DYNAMIC_LINKER
> - #define MUSL_DYNAMIC_LINKER \
> --  "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
> -+  SYSTEMLIBS_DIR "ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
> -   "%{mfdpic:-fdpic}.so.1"
> -
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
> -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
> -
> - #undef SUBTARGET_LINK_EMUL_SUFFIX
> - #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
> -diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
> -index 6a809e9092d..60603765ad6 100644
> ---- a/gcc/config/sparc/linux.h
> -+++ b/gcc/config/sparc/linux.h
> -@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
> -    When the -shared link option is used a final link is not being
> -    done.  */
> -
> --#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
> -+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
> -
> - #undef  LINK_SPEC
> - #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
> -diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
> -index d08a2ef96fe..e6955da0a5b 100644
> ---- a/gcc/config/sparc/linux64.h
> -+++ b/gcc/config/sparc/linux64.h
> -@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3.  If not see
> -    When the -shared link option is used a final link is not being
> -    done.  */
> -
> --#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
> --#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
> -+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
> -+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2"
> -
> - #ifdef SPARC_BI_ARCH
> -
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0008-libtool.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0008-libtool.patch
> deleted file mode 100644
> index c9bc38cc..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0008-libtool.patch
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -From 5117519c1897a49b09fe7fff213b9c2ea15d37f5 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 29 Mar 2013 09:29:11 +0400
> -Subject: [PATCH] libtool
> -
> -libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64
> -when running on am x86_64 build host.
> -
> -This patch stops this speading to libdir in the libstdc++.la file within libtool.
> -Arguably, it shouldn't be passing this into libtool in the first place but
> -for now this resolves the nastiest problems this causes.
> -
> -func_normal_abspath would resolve an empty path to `pwd` so we need
> -to filter the zero case.
> -
> -RP 2012/8/24
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> -Upstream-Status: Pending
> ----
> - ltmain.sh | 4 ++++
> - 1 file changed, 4 insertions(+)
> -
> -diff --git a/ltmain.sh b/ltmain.sh
> -index 70990740b6c..ee938056bef 100644
> ---- a/ltmain.sh
> -+++ b/ltmain.sh
> -@@ -6359,6 +6359,10 @@ func_mode_link ()
> -       func_warning "ignoring multiple \`-rpath's for a libtool library"
> -
> -       install_libdir="$1"
> -+      if test -n "$install_libdir"; then
> -+      func_normal_abspath "$install_libdir"
> -+      install_libdir=$func_normal_abspath_result
> -+      fi
> -
> -       oldlibs=
> -       if test -z "$rpath"; then
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
> deleted file mode 100644
> index dd67b115..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
> +++ /dev/null
> @@ -1,40 +0,0 @@
> -From 32129f9682d0d27fc67af10f077ad2768935cbe6 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 29 Mar 2013 09:30:32 +0400
> -Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI.
> -
> -The LINK_SPEC for linux gets overwritten by linux-eabi.h which
> -means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result
> -the option is not passed to linker when chosing march=armv4
> -This patch redefines this in linux-eabi.h and reinserts it
> -for eabi defaulting toolchains.
> -
> -We might want to send it upstream.
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> -Upstream-Status: Pending
> ----
> - gcc/config/arm/linux-eabi.h | 6 +++++-
> - 1 file changed, 5 insertions(+), 1 deletion(-)
> -
> -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
> -index 17c18b27145..8eacb099317 100644
> ---- a/gcc/config/arm/linux-eabi.h
> -+++ b/gcc/config/arm/linux-eabi.h
> -@@ -91,10 +91,14 @@
> - #define MUSL_DYNAMIC_LINKER \
> -   SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
> -
> -+/* For armv4 we pass --fix-v4bx to linker to support EABI */
> -+#undef TARGET_FIX_V4BX_SPEC
> -+#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}"
> -+
> - /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
> -    use the GNU/Linux version, not the generic BPABI version.  */
> - #undef  LINK_SPEC
> --#define LINK_SPEC EABI_LINK_SPEC                                      \
> -+#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC                 \
> -   LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC,                                \
> -                      LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
> -
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
> deleted file mode 100644
> index 45edc62e..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
> +++ /dev/null
> @@ -1,99 +0,0 @@
> -From bf85b8bbcb4b77725d4c22c1bb25a29f6ff21038 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 29 Mar 2013 09:33:04 +0400
> -Subject: [PATCH] Use the multilib config files from ${B} instead of using the
> - ones from ${S}
> -
> -Use the multilib config files from ${B} instead of using the ones from ${S}
> -so that the source can be shared between gcc-cross-initial,
> -gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
> -
> -Upstream-Status: Inappropriate [configuration]
> ----
> - gcc/configure    | 22 ++++++++++++++++++----
> - gcc/configure.ac | 22 ++++++++++++++++++----
> - 2 files changed, 36 insertions(+), 8 deletions(-)
> -
> -diff --git a/gcc/configure b/gcc/configure
> -index 3fc0e2f5813..2f0f0e057a9 100755
> ---- a/gcc/configure
> -+++ b/gcc/configure
> -@@ -13361,10 +13361,20 @@ done
> - tmake_file_=
> - for f in ${tmake_file}
> - do
> --      if test -f ${srcdir}/config/$f
> --      then
> --              tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
> --      fi
> -+  case $f in
> -+    */t-linux64 )
> -+       if test -f ./config/$f
> -+       then
> -+         tmake_file_="${tmake_file_} ./config/$f"
> -+       fi
> -+       ;;
> -+    * )
> -+       if test -f ${srcdir}/config/$f
> -+       then
> -+         tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
> -+       fi
> -+       ;;
> -+  esac
> - done
> - tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
> -
> -@@ -13375,6 +13385,10 @@ tm_file_list="options.h"
> - tm_include_list="options.h insn-constants.h"
> - for f in $tm_file; do
> -   case $f in
> -+    */linux64.h )
> -+       tm_file_list="${tm_file_list} ./config/$f"
> -+       tm_include_list="${tm_include_list} ./config/$f"
> -+       ;;
> -     ./* )
> -        f=`echo $f | sed 's/^..//'`
> -        tm_file_list="${tm_file_list} $f"
> -diff --git a/gcc/configure.ac b/gcc/configure.ac
> -index 46de496b256..6155b83a732 100644
> ---- a/gcc/configure.ac
> -+++ b/gcc/configure.ac
> -@@ -2312,10 +2312,20 @@ done
> - tmake_file_=
> - for f in ${tmake_file}
> - do
> --      if test -f ${srcdir}/config/$f
> --      then
> --              tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
> --      fi
> -+  case $f in
> -+    */t-linux64 )
> -+       if test -f ./config/$f
> -+       then
> -+         tmake_file_="${tmake_file_} ./config/$f"
> -+       fi
> -+       ;;
> -+    * )
> -+       if test -f ${srcdir}/config/$f
> -+       then
> -+         tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
> -+       fi
> -+       ;;
> -+  esac
> - done
> - tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
> -
> -@@ -2326,6 +2336,10 @@ tm_file_list="options.h"
> - tm_include_list="options.h insn-constants.h"
> - for f in $tm_file; do
> -   case $f in
> -+    */linux64.h )
> -+       tm_file_list="${tm_file_list} ./config/$f"
> -+       tm_include_list="${tm_include_list} ./config/$f"
> -+       ;;
> -     ./* )
> -        f=`echo $f | sed 's/^..//'`
> -        tm_file_list="${tm_file_list} $f"
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
> deleted file mode 100644
> index 352c6eec..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -From e5463727ff028cee5e452da38f5b4c44d52e412e Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 20 Feb 2015 09:39:38 +0000
> -Subject: [PATCH] Avoid using libdir from .la which usually points to a host
> - path
> -
> -Upstream-Status: Inappropriate [embedded specific]
> -
> -Signed-off-by: Jonathan Liu <net147@gmail.com>
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - ltmain.sh | 3 +++
> - 1 file changed, 3 insertions(+)
> -
> -diff --git a/ltmain.sh b/ltmain.sh
> -index ee938056bef..9ebc7e3d1e0 100644
> ---- a/ltmain.sh
> -+++ b/ltmain.sh
> -@@ -5628,6 +5628,9 @@ func_mode_link ()
> -           absdir="$abs_ladir"
> -           libdir="$abs_ladir"
> -         else
> -+          # Instead of using libdir from .la which usually points to a host path,
> -+          # use the path the .la is contained in.
> -+          libdir="$abs_ladir"
> -           dir="$libdir"
> -           absdir="$libdir"
> -         fi
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0013-Ensure-target-gcc-headers-can-be-included.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0013-Ensure-target-gcc-headers-can-be-included.patch
> deleted file mode 100644
> index 61e61ecc..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0013-Ensure-target-gcc-headers-can-be-included.patch
> +++ /dev/null
> @@ -1,113 +0,0 @@
> -From 612801d426e75ff997cfabda380dbe52c2cbc532 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Fri, 20 Feb 2015 10:25:11 +0000
> -Subject: [PATCH] Ensure target gcc headers can be included
> -
> -There are a few headers installed as part of the OpenEmbedded
> -gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe
> -built for the target architecture, these are within the target
> -sysroot and not cross/nativesdk; thus they weren't able to be
> -found by gcc with the existing search paths. Add support for
> -picking up these headers under the sysroot supplied on the gcc
> -command line in order to resolve this.
> -
> -Extend target gcc headers search to musl too
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/Makefile.in           | 2 ++
> - gcc/config/linux.h        | 8 ++++++++
> - gcc/config/rs6000/sysv4.h | 8 ++++++++
> - gcc/cppdefault.cc         | 4 ++++
> - 4 files changed, 22 insertions(+)
> -
> -diff --git a/gcc/Makefile.in b/gcc/Makefile.in
> -index a8277254696..07fa63b6640 100644
> ---- a/gcc/Makefile.in
> -+++ b/gcc/Makefile.in
> -@@ -632,6 +632,7 @@ libexecdir = @libexecdir@
> -
> - # Directory in which the compiler finds libraries etc.
> - libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
> -+libsubdir_target = $(target_noncanonical)/$(version)
> - # Directory in which the compiler finds executables
> - libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
> - # Directory in which all plugin resources are installed
> -@@ -3024,6 +3025,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
> -
> - PREPROCESSOR_DEFINES = \
> -   -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
> -+  -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \
> -   -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \
> -   -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
> -   -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
> -diff --git a/gcc/config/linux.h b/gcc/config/linux.h
> -index 4ce173384ef..8a3cd4f2d34 100644
> ---- a/gcc/config/linux.h
> -+++ b/gcc/config/linux.h
> -@@ -170,6 +170,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> - #define INCLUDE_DEFAULTS_MUSL_TOOL
> - #endif
> -
> -+#ifdef GCC_INCLUDE_SUBDIR_TARGET
> -+#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET           \
> -+    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
> -+#else
> -+#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
> -+#endif
> -+
> - #ifdef NATIVE_SYSTEM_HEADER_DIR
> - #define INCLUDE_DEFAULTS_MUSL_NATIVE                  \
> -     { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },      \
> -@@ -196,6 +203,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> -     INCLUDE_DEFAULTS_MUSL_PREFIX                      \
> -     INCLUDE_DEFAULTS_MUSL_CROSS                               \
> -     INCLUDE_DEFAULTS_MUSL_TOOL                                \
> -+    INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET                       \
> -     INCLUDE_DEFAULTS_MUSL_NATIVE                      \
> -     { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },           \
> -     { 0, 0, 0, 0, 0, 0 }                              \
> -diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
> -index a73954d9de5..e5dd6538358 100644
> ---- a/gcc/config/rs6000/sysv4.h
> -+++ b/gcc/config/rs6000/sysv4.h
> -@@ -994,6 +994,13 @@ ncrtn.o%s"
> - #define INCLUDE_DEFAULTS_MUSL_TOOL
> - #endif
> -
> -+#ifdef GCC_INCLUDE_SUBDIR_TARGET
> -+#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET            \
> -+    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
> -+#else
> -+#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
> -+#endif
> -+
> - #ifdef NATIVE_SYSTEM_HEADER_DIR
> - #define INCLUDE_DEFAULTS_MUSL_NATIVE                  \
> -     { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },      \
> -@@ -1020,6 +1027,7 @@ ncrtn.o%s"
> -     INCLUDE_DEFAULTS_MUSL_PREFIX                      \
> -     INCLUDE_DEFAULTS_MUSL_CROSS                               \
> -     INCLUDE_DEFAULTS_MUSL_TOOL                                \
> -+    INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET                       \
> -     INCLUDE_DEFAULTS_MUSL_NATIVE                      \
> -     { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },           \
> -     { 0, 0, 0, 0, 0, 0 }                              \
> -diff --git a/gcc/cppdefault.cc b/gcc/cppdefault.cc
> -index 7888300f277..52cf14e92f8 100644
> ---- a/gcc/cppdefault.cc
> -+++ b/gcc/cppdefault.cc
> -@@ -64,6 +64,10 @@ const struct default_include cpp_include_defaults[]
> -     /* This is the dir for gcc's private headers.  */
> -     { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
> - #endif
> -+#ifdef GCC_INCLUDE_SUBDIR_TARGET
> -+    /* This is the dir for gcc's private headers under the specified sysroot.  */
> -+    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 },
> -+#endif
> - #ifdef LOCAL_INCLUDE_DIR
> -     /* /usr/local/include comes before the fixincluded header files.  */
> -     { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
> deleted file mode 100644
> index 94308b2a..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -From 9ae49e7b88c208ab79ec9c2fc4a2fa8a3f1e85bb Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Tue, 3 Mar 2015 08:21:19 +0000
> -Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix
> - is provided
> -
> -http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html
> -
> -Upstream-Status: Submitted
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - ltmain.sh | 5 +++--
> - 1 file changed, 3 insertions(+), 2 deletions(-)
> -
> -diff --git a/ltmain.sh b/ltmain.sh
> -index 9ebc7e3d1e0..7ea79fa8be6 100644
> ---- a/ltmain.sh
> -+++ b/ltmain.sh
> -@@ -6004,12 +6004,13 @@ func_mode_link ()
> -             fi
> -           else
> -             # We cannot seem to hardcode it, guess we'll fake it.
> -+            # Default if $libdir is not relative to the prefix:
> -             add_dir="-L$libdir"
> --            # Try looking first in the location we're being installed to.
> -+
> -             if test -n "$inst_prefix_dir"; then
> -               case $libdir in
> -                 [\\/]*)
> --                  add_dir="$add_dir -L$inst_prefix_dir$libdir"
> -+                  add_dir="-L$inst_prefix_dir$libdir"
> -                   ;;
> -               esac
> -             fi
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
> deleted file mode 100644
> index ce9635ce..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -From bf918db7117f41d3c04162095641165ca241707d Mon Sep 17 00:00:00 2001
> -From: Robert Yang <liezhi.yang@windriver.com>
> -Date: Sun, 5 Jul 2015 20:25:18 -0700
> -Subject: [PATCH] libcc1: fix libcc1's install path and rpath
> -
> -* Install libcc1.so and libcc1plugin.so into
> -  $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we
> -  had done to lto-plugin.
> -* Fix bad RPATH iussue:
> -  gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file
> - /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0
> - [rpaths]
> -
> -Upstream-Status: Inappropriate [OE configuration]
> -
> -Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ----
> - libcc1/Makefile.am | 4 ++--
> - libcc1/Makefile.in | 4 ++--
> - 2 files changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am
> -index 6e3a34ff7e2..3f3f6391aba 100644
> ---- a/libcc1/Makefile.am
> -+++ b/libcc1/Makefile.am
> -@@ -40,8 +40,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
> -           $(Wc)$(libiberty_normal)))
> - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
> -
> --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin
> --cc1libdir = $(libdir)/$(libsuffix)
> -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
> -+plugindir = $(cc1libdir)
> -
> - if ENABLE_PLUGIN
> - plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la
> -diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in
> -index f8f590d71e9..56462492045 100644
> ---- a/libcc1/Makefile.in
> -+++ b/libcc1/Makefile.in
> -@@ -396,8 +396,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
> -           $(Wc)$(libiberty_normal)))
> -
> - libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
> --plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin
> --cc1libdir = $(libdir)/$(libsuffix)
> -+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
> -+plugindir = $(cc1libdir)
> - @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la
> - @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la
> - shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0016-handle-sysroot-support-for-nativesdk-gcc.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0016-handle-sysroot-support-for-nativesdk-gcc.patch
> deleted file mode 100644
> index 3b547195..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0016-handle-sysroot-support-for-nativesdk-gcc.patch
> +++ /dev/null
> @@ -1,510 +0,0 @@
> -From 4fbbd40d7db89cdbeaf93df1e1da692b1f80a5bc Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Mon, 7 Dec 2015 23:39:54 +0000
> -Subject: [PATCH] handle sysroot support for nativesdk-gcc
> -
> -Being able to build a nativesdk gcc is useful, particularly in cases
> -where the host compiler may be of an incompatible version (or a 32
> -bit compiler is needed).
> -
> -Sadly, building nativesdk-gcc is not straight forward. We install
> -nativesdk-gcc into a relocatable location and this means that its
> -library locations can change. "Normal" sysroot support doesn't help
> -in this case since the values of paths like "libdir" change, not just
> -base root directory of the system.
> -
> -In order to handle this we do two things:
> -
> -a) Add %r into spec file markup which can be used for injected paths
> -   such as SYSTEMLIBS_DIR (see gcc_multilib_setup()).
> -b) Add other paths which need relocation into a .gccrelocprefix section
> -   which the relocation code will notice and adjust automatically.
> -
> -Upstream-Status: Inappropriate
> -RP 2015/7/28
> -
> -Extend the gccrelocprefix support to musl config too, this ensures
> -that gcc will get right bits in SDK installations
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -
> -Added PREFIXVAR and EXEC_PREFIXVAR to support runtime relocation.  Without
> -these as part of the gccrelocprefix the system can't do runtime relocation
> -if the executable is moved.  (These paths were missed in the original
> -implementation.)
> -
> -Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
> ----
> - gcc/c-family/c-opts.cc    |  4 +--
> - gcc/config/linux.h        | 24 +++++++--------
> - gcc/config/rs6000/sysv4.h | 24 +++++++--------
> - gcc/cppdefault.cc         | 63 ++++++++++++++++++++++++---------------
> - gcc/cppdefault.h          | 13 ++++----
> - gcc/gcc.cc                | 20 +++++++++----
> - gcc/incpath.cc            | 12 ++++----
> - gcc/prefix.cc             |  6 ++--
> - 8 files changed, 94 insertions(+), 72 deletions(-)
> -
> -diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc
> -index a341a061758..83b0bef4dbb 100644
> ---- a/gcc/c-family/c-opts.cc
> -+++ b/gcc/c-family/c-opts.cc
> -@@ -1458,8 +1458,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain)
> -   size_t prefix_len, suffix_len;
> -
> -   suffix_len = strlen (suffix);
> --  prefix     = iprefix ? iprefix : cpp_GCC_INCLUDE_DIR;
> --  prefix_len = iprefix ? strlen (iprefix) : cpp_GCC_INCLUDE_DIR_len;
> -+  prefix     = iprefix ? iprefix : GCC_INCLUDE_DIRVAR;
> -+  prefix_len = iprefix ? strlen (iprefix) : strlen(GCC_INCLUDE_DIRVAR) - 7;
> -
> -   path = (char *) xmalloc (prefix_len + suffix_len + 1);
> -   memcpy (path, prefix, prefix_len);
> -diff --git a/gcc/config/linux.h b/gcc/config/linux.h
> -index 8a3cd4f2d34..58143dff731 100644
> ---- a/gcc/config/linux.h
> -+++ b/gcc/config/linux.h
> -@@ -134,53 +134,53 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> -  * Unfortunately, this is mostly duplicated from cppdefault.cc */
> - #if DEFAULT_LIBC == LIBC_MUSL
> - #define INCLUDE_DEFAULTS_MUSL_GPP                     \
> --    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,             \
> -+    { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,          \
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },         \
> --    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,                \
> -+    { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,     \
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },         \
> --    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,    \
> -+    { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1, \
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
> -
> - #ifdef LOCAL_INCLUDE_DIR
> - #define INCLUDE_DEFAULTS_MUSL_LOCAL                   \
> --    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },             \
> --    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
> -+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },          \
> -+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_LOCAL
> - #endif
> -
> - #ifdef PREFIX_INCLUDE_DIR
> - #define INCLUDE_DEFAULTS_MUSL_PREFIX                  \
> --    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
> -+    { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0},
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_PREFIX
> - #endif
> -
> - #ifdef CROSS_INCLUDE_DIR
> - #define INCLUDE_DEFAULTS_MUSL_CROSS                   \
> --    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
> -+    { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0},
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_CROSS
> - #endif
> -
> - #ifdef TOOL_INCLUDE_DIR
> - #define INCLUDE_DEFAULTS_MUSL_TOOL                    \
> --    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
> -+    { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0},
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_TOOL
> - #endif
> -
> - #ifdef GCC_INCLUDE_SUBDIR_TARGET
> - #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET           \
> --    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
> -+    { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0},
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
> - #endif
> -
> - #ifdef NATIVE_SYSTEM_HEADER_DIR
> - #define INCLUDE_DEFAULTS_MUSL_NATIVE                  \
> --    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },      \
> --    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
> -+    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 2 },   \
> -+    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 0 },
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_NATIVE
> - #endif
> -@@ -205,7 +205,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> -     INCLUDE_DEFAULTS_MUSL_TOOL                                \
> -     INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET                       \
> -     INCLUDE_DEFAULTS_MUSL_NATIVE                      \
> --    { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },           \
> -+    { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },                \
> -     { 0, 0, 0, 0, 0, 0 }                              \
> -   }
> - #endif
> -diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
> -index e5dd6538358..b496849b792 100644
> ---- a/gcc/config/rs6000/sysv4.h
> -+++ b/gcc/config/rs6000/sysv4.h
> -@@ -958,53 +958,53 @@ ncrtn.o%s"
> - /* Include order changes for musl, same as in generic linux.h.  */
> - #if DEFAULT_LIBC == LIBC_MUSL
> - #define INCLUDE_DEFAULTS_MUSL_GPP                     \
> --    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,             \
> -+    { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,          \
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },         \
> --    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,                \
> -+    { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,     \
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },         \
> --    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,    \
> -+    { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1, \
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
> -
> - #ifdef LOCAL_INCLUDE_DIR
> - #define INCLUDE_DEFAULTS_MUSL_LOCAL                   \
> --    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },             \
> --    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
> -+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },          \
> -+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_LOCAL
> - #endif
> -
> - #ifdef PREFIX_INCLUDE_DIR
> - #define INCLUDE_DEFAULTS_MUSL_PREFIX                  \
> --    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
> -+    { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0},
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_PREFIX
> - #endif
> -
> - #ifdef CROSS_INCLUDE_DIR
> - #define INCLUDE_DEFAULTS_MUSL_CROSS                   \
> --    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
> -+    { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0},
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_CROSS
> - #endif
> -
> - #ifdef TOOL_INCLUDE_DIR
> - #define INCLUDE_DEFAULTS_MUSL_TOOL                    \
> --    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
> -+    { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0},
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_TOOL
> - #endif
> -
> - #ifdef GCC_INCLUDE_SUBDIR_TARGET
> - #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET            \
> --    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
> -+    { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0},
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
> - #endif
> -
> - #ifdef NATIVE_SYSTEM_HEADER_DIR
> - #define INCLUDE_DEFAULTS_MUSL_NATIVE                  \
> --    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },      \
> --    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
> -+    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 2 },   \
> -+    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 0 },
> - #else
> - #define INCLUDE_DEFAULTS_MUSL_NATIVE
> - #endif
> -@@ -1029,7 +1029,7 @@ ncrtn.o%s"
> -     INCLUDE_DEFAULTS_MUSL_TOOL                                \
> -     INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET                       \
> -     INCLUDE_DEFAULTS_MUSL_NATIVE                      \
> --    { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },           \
> -+    { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },                \
> -     { 0, 0, 0, 0, 0, 0 }                              \
> -   }
> - #endif
> -diff --git a/gcc/cppdefault.cc b/gcc/cppdefault.cc
> -index 52cf14e92f8..d8977afc05e 100644
> ---- a/gcc/cppdefault.cc
> -+++ b/gcc/cppdefault.cc
> -@@ -35,6 +35,30 @@
> - # undef CROSS_INCLUDE_DIR
> - #endif
> -
> -+static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_INCLUDE_DIR;
> -+char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR;
> -+static char GPLUSPLUS_TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_TOOL_INCLUDE_DIR;
> -+static char GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_BACKWARD_INCLUDE_DIR;
> -+static char STANDARD_STARTFILE_PREFIX_2VAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET;
> -+#ifdef LOCAL_INCLUDE_DIR
> -+static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR;
> -+#endif
> -+#ifdef PREFIX_INCLUDE_DIR
> -+static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR;
> -+#endif
> -+#ifdef FIXED_INCLUDE_DIR
> -+static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR;
> -+#endif
> -+#ifdef CROSS_INCLUDE_DIR
> -+static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR;
> -+#endif
> -+#ifdef TOOL_INCLUDE_DIR
> -+static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR;
> -+#endif
> -+#ifdef NATIVE_SYSTEM_HEADER_DIR
> -+static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR;
> -+#endif
> -+
> - const struct default_include cpp_include_defaults[]
> - #ifdef INCLUDE_DEFAULTS
> - = INCLUDE_DEFAULTS;
> -@@ -42,17 +66,17 @@ const struct default_include cpp_include_defaults[]
> - = {
> - #ifdef GPLUSPLUS_INCLUDE_DIR
> -     /* Pick up GNU C++ generic include files.  */
> --    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,
> -+    { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
> - #endif
> - #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
> -     /* Pick up GNU C++ target-dependent include files.  */
> --    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,
> -+    { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
> - #endif
> - #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
> -     /* Pick up GNU C++ backward and deprecated include files.  */
> --    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,
> -+    { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,
> -       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
> - #endif
> - #ifdef GPLUSPLUS_LIBCXX_INCLUDE_DIR
> -@@ -62,23 +86,23 @@ const struct default_include cpp_include_defaults[]
> - #endif
> - #ifdef GCC_INCLUDE_DIR
> -     /* This is the dir for gcc's private headers.  */
> --    { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
> -+    { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 },
> - #endif
> - #ifdef GCC_INCLUDE_SUBDIR_TARGET
> -     /* This is the dir for gcc's private headers under the specified sysroot.  */
> --    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 },
> -+    { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 },
> - #endif
> - #ifdef LOCAL_INCLUDE_DIR
> -     /* /usr/local/include comes before the fixincluded header files.  */
> --    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
> --    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
> -+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },
> -+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
> - #endif
> - #ifdef PREFIX_INCLUDE_DIR
> --    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
> -+    { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 },
> - #endif
> - #ifdef FIXED_INCLUDE_DIR
> -     /* This is the dir for fixincludes.  */
> --    { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0,
> -+    { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0,
> -       /* A multilib suffix needs adding if different multilibs use
> -        different headers.  */
> - #ifdef SYSROOT_HEADERS_SUFFIX_SPEC
> -@@ -90,33 +114,24 @@ const struct default_include cpp_include_defaults[]
> - #endif
> - #ifdef CROSS_INCLUDE_DIR
> -     /* One place the target system's headers might be.  */
> --    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
> -+    { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 },
> - #endif
> - #ifdef TOOL_INCLUDE_DIR
> -     /* Another place the target system's headers might be.  */
> --    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
> -+    { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 },
> - #endif
> - #ifdef NATIVE_SYSTEM_HEADER_DIR
> -     /* /usr/include comes dead last.  */
> --    { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
> --    { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
> -+    { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
> -+    { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
> - #endif
> -     { 0, 0, 0, 0, 0, 0 }
> -   };
> - #endif /* no INCLUDE_DEFAULTS */
> -
> --#ifdef GCC_INCLUDE_DIR
> --const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR;
> --const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
> --#else
> --const char cpp_GCC_INCLUDE_DIR[] = "";
> --const size_t cpp_GCC_INCLUDE_DIR_len = 0;
> --#endif
> --
> - /* The configured prefix.  */
> --const char cpp_PREFIX[] = PREFIX;
> --const size_t cpp_PREFIX_len = sizeof PREFIX - 1;
> --const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX;
> -+char PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX;
> -+char EXEC_PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX;
> -
> - /* This value is set by cpp_relocated at runtime */
> - const char *gcc_exec_prefix;
> -diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
> -index fb97c0b5814..6267150facc 100644
> ---- a/gcc/cppdefault.h
> -+++ b/gcc/cppdefault.h
> -@@ -33,7 +33,8 @@
> -
> - struct default_include
> - {
> --  const char *const fname;    /* The name of the directory.  */
> -+  const char *fname;     /* The name of the directory.  */
> -+
> -   const char *const component;        /* The component containing the directory
> -                                  (see update_path in prefix.cc) */
> -   const char cplusplus;               /* When this is non-zero, we should only
> -@@ -55,17 +56,13 @@ struct default_include
> - };
> -
> - extern const struct default_include cpp_include_defaults[];
> --extern const char cpp_GCC_INCLUDE_DIR[];
> --extern const size_t cpp_GCC_INCLUDE_DIR_len;
> -+extern char GCC_INCLUDE_DIRVAR[] __attribute__ ((section (".gccrelocprefix")));
> -
> - /* The configure-time prefix, i.e., the value supplied as the argument
> -    to --prefix=.  */
> --extern const char cpp_PREFIX[];
> -+extern char PREFIXVAR[] __attribute__ ((section (".gccrelocprefix")));
> - /* The length of the configure-time prefix.  */
> --extern const size_t cpp_PREFIX_len;
> --/* The configure-time execution prefix.  This is typically the lib/gcc
> --   subdirectory of cpp_PREFIX.  */
> --extern const char cpp_EXEC_PREFIX[];
> -+extern char EXEC_PREFIXVAR[] __attribute__ ((section (".gccrelocprefix")));
> - /* The run-time execution prefix.  This is typically the lib/gcc
> -    subdirectory of the actual installation.  */
> - extern const char *gcc_exec_prefix;
> -diff --git a/gcc/gcc.cc b/gcc/gcc.cc
> -index aa4cf92fb78..5569a39a14a 100644
> ---- a/gcc/gcc.cc
> -+++ b/gcc/gcc.cc
> -@@ -252,6 +252,8 @@ FILE *report_times_to_file = NULL;
> - #endif
> - static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT;
> -
> -+static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR;
> -+
> - /* Nonzero means pass the updated target_system_root to the compiler.  */
> -
> - static int target_system_root_changed;
> -@@ -575,6 +577,7 @@ or with constant text in a single argument.
> -  %G     process LIBGCC_SPEC as a spec.
> -  %R     Output the concatenation of target_system_root and
> -         target_sysroot_suffix.
> -+ %r     Output the base path target_relocatable_prefix
> -  %S     process STARTFILE_SPEC as a spec.  A capital S is actually used here.
> -  %E     process ENDFILE_SPEC as a spec.  A capital E is actually used here.
> -  %C     process CPP_SPEC as a spec.
> -@@ -1627,10 +1630,10 @@ static const char *gcc_libexec_prefix;
> -    gcc_exec_prefix is set because, in that case, we know where the
> -    compiler has been installed, and use paths relative to that
> -    location instead.  */
> --static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
> --static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX;
> --static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX;
> --static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
> -+static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX;
> -+static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX;
> -+static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX;
> -+static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
> -
> - /* For native compilers, these are well-known paths containing
> -    components that may be provided by the system.  For cross
> -@@ -1638,9 +1641,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
> - static const char *md_exec_prefix = MD_EXEC_PREFIX;
> - static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
> - static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
> --static const char *const standard_startfile_prefix_1
> -+static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix")))
> -   = STANDARD_STARTFILE_PREFIX_1;
> --static const char *const standard_startfile_prefix_2
> -+static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix")))
> -   = STANDARD_STARTFILE_PREFIX_2;
> -
> - /* A relative path to be used in finding the location of tools
> -@@ -6676,6 +6679,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
> -             }
> -           break;
> -
> -+          case 'r':
> -+              obstack_grow (&obstack, target_relocatable_prefix,
> -+                    strlen (target_relocatable_prefix));
> -+            break;
> -+
> -         case 'S':
> -           value = do_spec_1 (startfile_spec, 0, NULL);
> -           if (value != 0)
> -diff --git a/gcc/incpath.cc b/gcc/incpath.cc
> -index c80f100f476..5ac03c08693 100644
> ---- a/gcc/incpath.cc
> -+++ b/gcc/incpath.cc
> -@@ -135,7 +135,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
> -   int relocated = cpp_relocated ();
> -   size_t len;
> -
> --  if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0)
> -+  if (iprefix && (len = strlen(GCC_INCLUDE_DIRVAR) - 7) != 0)
> -     {
> -       /* Look for directories that start with the standard prefix.
> -        "Translate" them, i.e. replace /usr/local/lib/gcc... with
> -@@ -150,7 +150,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
> -                now.  */
> -             if (sysroot && p->add_sysroot)
> -               continue;
> --            if (!filename_ncmp (p->fname, cpp_GCC_INCLUDE_DIR, len))
> -+            if (!filename_ncmp (p->fname, GCC_INCLUDE_DIRVAR, len))
> -               {
> -                 char *str = concat (iprefix, p->fname + len, NULL);
> -                 if (p->multilib == 1 && imultilib)
> -@@ -191,7 +191,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
> -             free (sysroot_no_trailing_dir_separator);
> -           }
> -         else if (!p->add_sysroot && relocated
> --                 && !filename_ncmp (p->fname, cpp_PREFIX, cpp_PREFIX_len))
> -+                 && !filename_ncmp (p->fname, PREFIXVAR, strlen(PREFIXVAR)))
> -           {
> -             static const char *relocated_prefix;
> -             char *ostr;
> -@@ -208,12 +208,12 @@ add_standard_paths (const char *sysroot, const char *iprefix,
> -                 dummy = concat (gcc_exec_prefix, "dummy", NULL);
> -                 relocated_prefix
> -                   = make_relative_prefix (dummy,
> --                                          cpp_EXEC_PREFIX,
> --                                          cpp_PREFIX);
> -+                                          EXEC_PREFIXVAR,
> -+                                          PREFIXVAR);
> -                 free (dummy);
> -               }
> -             ostr = concat (relocated_prefix,
> --                           p->fname + cpp_PREFIX_len,
> -+                           p->fname + strlen(PREFIXVAR),
> -                            NULL);
> -             str = update_path (ostr, p->component);
> -             free (ostr);
> -diff --git a/gcc/prefix.cc b/gcc/prefix.cc
> -index 096ed5afa3d..2526f0ecc39 100644
> ---- a/gcc/prefix.cc
> -+++ b/gcc/prefix.cc
> -@@ -72,7 +72,9 @@ License along with GCC; see the file COPYING3.  If not see
> - #include "prefix.h"
> - #include "common/common-target.h"
> -
> --static const char *std_prefix = PREFIX;
> -+char PREFIXVAR1[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX;
> -+
> -+static const char *std_prefix = PREFIXVAR1;
> -
> - static const char *get_key_value (char *);
> - static char *translate_name (char *);
> -@@ -212,7 +214,7 @@ translate_name (char *name)
> -       prefix = getenv (key);
> -
> -       if (prefix == 0)
> --      prefix = PREFIX;
> -+      prefix = PREFIXVAR1;
> -
> -       /* We used to strip trailing DIR_SEPARATORs here, but that can
> -        sometimes yield a result with no separator when one was coded
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
> deleted file mode 100644
> index 9b05da64..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
> +++ /dev/null
> @@ -1,99 +0,0 @@
> -From 33a1f07a4417247dc24819d4e583ca09f56d5a7b Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Mon, 7 Dec 2015 23:41:45 +0000
> -Subject: [PATCH] Search target sysroot gcc version specific dirs with
> - multilib.
> -
> -We install the gcc libraries (such as crtbegin.p) into
> -<sysroot><libdir>/<target-sys>/5.2.0/
> -which is a default search path for GCC (aka multi_suffix in the
> -code below). <target-sys> is 'machine' in gcc's terminology. We use
> -these directories so that multiple gcc versions could in theory
> -co-exist on target.
> -
> -We only want to build one gcc-cross-canadian per arch and have this work
> -for all multilibs. <target-sys> can be handled by mapping the multilib
> -<target-sys> to the one used by gcc-cross-canadian, e.g.
> -mips64-polkmllib32-linux
> -is symlinked to by mips64-poky-linux.
> -
> -The default gcc search path in the target sysroot for a "lib64" mutlilib
> -is:
> -
> -<sysroot>/lib32/mips64-poky-linux/5.2.0/
> -<sysroot>/lib32/../lib64/
> -<sysroot>/usr/lib32/mips64-poky-linux/5.2.0/
> -<sysroot>/usr/lib32/../lib64/
> -<sysroot>/lib32/
> -<sysroot>/usr/lib32/
> -
> -which means that the lib32 crtbegin.o will be found and the lib64 ones
> -will not which leads to compiler failures.
> -
> -This patch injects a multilib version of that path first so the lib64
> -binaries can be found first. With this change the search path becomes:
> -
> -<sysroot>/lib32/../lib64/mips64-poky-linux/5.2.0/
> -<sysroot>/lib32/mips64-poky-linux/5.2.0/
> -<sysroot>/lib32/../lib64/
> -<sysroot>/usr/lib32/../lib64/mips64-poky-linux/5.2.0/
> -<sysroot>/usr/lib32/mips64-poky-linux/5.2.0/
> -<sysroot>/usr/lib32/../lib64/
> -<sysroot>/lib32/
> -<sysroot>/usr/lib32/
> -
> -Upstream-Status: Pending
> -RP 2015/7/31
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/gcc.cc | 29 ++++++++++++++++++++++++++++-
> - 1 file changed, 28 insertions(+), 1 deletion(-)
> -
> -diff --git a/gcc/gcc.cc b/gcc/gcc.cc
> -index 5569a39a14a..4598f6cd7c9 100644
> ---- a/gcc/gcc.cc
> -+++ b/gcc/gcc.cc
> -@@ -2817,7 +2817,7 @@ for_each_path (const struct path_prefix *paths,
> -       if (path == NULL)
> -       {
> -         len = paths->max_len + extra_space + 1;
> --        len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len);
> -+        len += MAX ((suffix_len + multi_os_dir_len), multiarch_len);
> -         path = XNEWVEC (char, len);
> -       }
> -
> -@@ -2829,6 +2829,33 @@ for_each_path (const struct path_prefix *paths,
> -         /* Look first in MACHINE/VERSION subdirectory.  */
> -         if (!skip_multi_dir)
> -           {
> -+            if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir))
> -+              {
> -+                const char *this_multi;
> -+                size_t this_multi_len;
> -+
> -+                if (pl->os_multilib)
> -+                  {
> -+                    this_multi = multi_os_dir;
> -+                    this_multi_len = multi_os_dir_len;
> -+                  }
> -+                else
> -+                  {
> -+                    this_multi = multi_dir;
> -+                    this_multi_len = multi_dir_len;
> -+                  }
> -+
> -+                /* Look in multilib MACHINE/VERSION subdirectory first */
> -+                if (this_multi_len)
> -+                  {
> -+                    memcpy (path + len, this_multi, this_multi_len + 1);
> -+                    memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1);
> -+                    ret = callback (path, callback_info);
> -+                      if (ret)
> -+                        break;
> -+                  }
> -+              }
> -+
> -             memcpy (path + len, multi_suffix, suffix_len + 1);
> -             ret = callback (path, callback_info);
> -             if (ret)
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
> deleted file mode 100644
> index 56793e03..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
> +++ /dev/null
> @@ -1,84 +0,0 @@
> -From d7dc2861840e88a4592817a398a054a886c3f3ee Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Tue, 27 Jun 2017 18:10:54 -0700
> -Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets
> -
> -when -fstack-protector options are enabled we need to
> -link with ssp_shared on musl since it does not provide
> -the __stack_chk_fail_local() so essentially it provides
> -libssp but not libssp_nonshared something like
> -TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED
> - where-as for glibc the needed symbols
> -are already present in libc_nonshared library therefore
> -we do not need any library helper on glibc based systems
> -but musl needs the libssp_noshared from gcc
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/config/linux.h          |  7 +++++++
> - gcc/config/rs6000/linux.h   | 10 ++++++++++
> - gcc/config/rs6000/linux64.h | 10 ++++++++++
> - 3 files changed, 27 insertions(+)
> -
> -diff --git a/gcc/config/linux.h b/gcc/config/linux.h
> -index 58143dff731..d2409ccac26 100644
> ---- a/gcc/config/linux.h
> -+++ b/gcc/config/linux.h
> -@@ -208,6 +208,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
> -     { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },                \
> -     { 0, 0, 0, 0, 0, 0 }                              \
> -   }
> -+#ifdef TARGET_LIBC_PROVIDES_SSP
> -+#undef LINK_SSP_SPEC
> -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
> -+                     "|fstack-protector-strong|fstack-protector-explicit" \
> -+                     ":-lssp_nonshared}"
> -+#endif
> -+
> - #endif
> -
> - #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
> -diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
> -index 8c9039ac1e5..259cd485973 100644
> ---- a/gcc/config/rs6000/linux.h
> -+++ b/gcc/config/rs6000/linux.h
> -@@ -99,6 +99,16 @@
> -                                        " -m elf32ppclinux")
> - #endif
> -
> -+/* link libssp_nonshared.a with musl */
> -+#if DEFAULT_LIBC == LIBC_MUSL
> -+#ifdef TARGET_LIBC_PROVIDES_SSP
> -+#undef LINK_SSP_SPEC
> -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
> -+                     "|fstack-protector-strong|fstack-protector-explicit" \
> -+                     ":-lssp_nonshared}"
> -+#endif
> -+#endif
> -+
> - #undef LINK_OS_LINUX_SPEC
> - #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \
> -   %{!static-pie: \
> -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
> -index 364c1a5b155..e33d9ae98e0 100644
> ---- a/gcc/config/rs6000/linux64.h
> -+++ b/gcc/config/rs6000/linux64.h
> -@@ -372,6 +372,16 @@ extern int dot_symbols;
> -                                          " -m elf64ppc")
> - #endif
> -
> -+/* link libssp_nonshared.a with musl */
> -+#if DEFAULT_LIBC == LIBC_MUSL
> -+#ifdef TARGET_LIBC_PROVIDES_SSP
> -+#undef LINK_SSP_SPEC
> -+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
> -+                     "|fstack-protector-strong|fstack-protector-explicit" \
> -+                     ":-lssp_nonshared}"
> -+#endif
> -+#endif
> -+
> - #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
> -   %{!static-pie: \
> -     %{rdynamic:-export-dynamic} \
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0019-Re-introduce-spe-commandline-options.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0019-Re-introduce-spe-commandline-options.patch
> deleted file mode 100644
> index bb1699be..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0019-Re-introduce-spe-commandline-options.patch
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -From bf0d7c463e1fab62804556099b56319fe94be1eb Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Wed, 6 Jun 2018 12:10:22 -0700
> -Subject: [PATCH] Re-introduce spe commandline options
> -
> -This should ensure that we keep accepting
> -spe options
> -
> -Upstream-Status: Inappropriate [SPE port is removed from rs600 port]
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/config/rs6000/rs6000.opt | 13 +++++++++++++
> - 1 file changed, 13 insertions(+)
> -
> -diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
> -index 4931d781c4e..3fb87b6f7d5 100644
> ---- a/gcc/config/rs6000/rs6000.opt
> -+++ b/gcc/config/rs6000/rs6000.opt
> -@@ -348,6 +348,19 @@ mdebug=
> - Target RejectNegative Joined
> - -mdebug=      Enable debug output.
> -
> -+; PPC SPE ABI
> -+mspe
> -+Target Var(rs6000_spe) Save
> -+Generate SPE SIMD instructions on E500.
> -+
> -+mabi=spe
> -+Target RejectNegative Var(rs6000_spe_abi) Save
> -+Use the SPE ABI extensions.
> -+
> -+mabi=no-spe
> -+Target RejectNegative Var(rs6000_spe_abi, 0)
> -+Do not use the SPE ABI extensions.
> -+
> - ; Altivec ABI
> - mabi=altivec
> - Target RejectNegative Var(rs6000_altivec_abi) Save
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
> deleted file mode 100644
> index f3709208..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
> +++ /dev/null
> @@ -1,83 +0,0 @@
> -From a32c75b37209d6836eaaa943dc6b1207acba5d27 Mon Sep 17 00:00:00 2001
> -From: Szabolcs Nagy <nsz@port70.net>
> -Date: Sat, 24 Oct 2015 20:09:53 +0000
> -Subject: [PATCH] libgcc_s: Use alias for __cpu_indicator_init instead of
> - symver
> -
> -Adapter from
> -
> -https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html
> -
> -This fix was debated but hasnt been applied gcc upstream since
> -they expect musl to support '@' in symbol versioning which is
> -a sun/gnu versioning extention. This patch however avoids the
> -need for the '@' symbols at all
> -
> -libgcc/Changelog:
> -
> -2015-05-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
> -
> -       * config/i386/cpuinfo.c (__cpu_indicator_init_local): Add.
> -       (__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove.
> -
> -       * config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER.
> -
> -gcc/Changelog:
> -
> -2015-05-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
> -
> -       * config/i386/i386-expand.c (ix86_expand_builtin): Make __builtin_cpu_init
> -       call __cpu_indicator_init_local instead of __cpu_indicator_init.
> -
> -Upstream-Status: Pending
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/config/i386/i386-expand.cc | 4 ++--
> - libgcc/config/i386/cpuinfo.c   | 6 +++---
> - libgcc/config/i386/t-linux     | 2 +-
> - 3 files changed, 6 insertions(+), 6 deletions(-)
> -
> -diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
> -index 68978ef8dc2..0c71f36b572 100644
> ---- a/gcc/config/i386/i386-expand.cc
> -+++ b/gcc/config/i386/i386-expand.cc
> -@@ -12321,10 +12321,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
> -     {
> -     case IX86_BUILTIN_CPU_INIT:
> -       {
> --      /* Make it call __cpu_indicator_init in libgcc.  */
> -+      /* Make it call __cpu_indicator_init_local in libgcc.a.  */
> -       tree call_expr, fndecl, type;
> -       type = build_function_type_list (integer_type_node, NULL_TREE);
> --      fndecl = build_fn_decl ("__cpu_indicator_init", type);
> -+      fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
> -       call_expr = build_call_expr (fndecl, 0);
> -       return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
> -       }
> -diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
> -index dab1d98060f..cf824b4114a 100644
> ---- a/libgcc/config/i386/cpuinfo.c
> -+++ b/libgcc/config/i386/cpuinfo.c
> -@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
> -                            __cpu_features2);
> - }
> -
> --#if defined SHARED && defined USE_ELF_SYMVER
> --__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
> --__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
> -+#ifndef SHARED
> -+int __cpu_indicator_init_local (void)
> -+  __attribute__ ((weak, alias ("__cpu_indicator_init")));
> - #endif
> -diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
> -index 8506a635790..564296f788e 100644
> ---- a/libgcc/config/i386/t-linux
> -+++ b/libgcc/config/i386/t-linux
> -@@ -3,5 +3,5 @@
> - # t-slibgcc-elf-ver and t-linux
> - SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
> -
> --HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
> -+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
> - CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
> deleted file mode 100644
> index f5f04ae3..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
> +++ /dev/null
> @@ -1,182 +0,0 @@
> -From 4efc42b99c96b026f560b0918de7e237ac3dc8d1 Mon Sep 17 00:00:00 2001
> -From: Richard Purdie <richard.purdie@linuxfoundation.org>
> -Date: Tue, 10 Mar 2020 08:26:53 -0700
> -Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining
> - reproducibility
> -
> -Inserting line numbers into generated code means its not always reproducible wth
> -differing versions of host gcc. Void the issue by not adding these.
> -
> -Upstream-Status: Inappropriate [OE Reproducibility specific]
> -
> -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/gengtype.cc |  6 +++---
> - gcc/genmodes.cc | 32 ++++++++++++++++----------------
> - 2 files changed, 19 insertions(+), 19 deletions(-)
> -
> -diff --git a/gcc/gengtype.cc b/gcc/gengtype.cc
> -index 386ae1b0506..9762e914296 100644
> ---- a/gcc/gengtype.cc
> -+++ b/gcc/gengtype.cc
> -@@ -1006,7 +1006,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt,
> - /* Create a fake field with the given type and name.  NEXT is the next
> -    field in the chain.  */
> - #define create_field(next,type,name) \
> --    create_field_all (next,type,name, 0, this_file, __LINE__)
> -+    create_field_all (next,type,name, 0, this_file, 0)
> -
> - /* Like create_field, but the field is only valid when condition COND
> -    is true.  */
> -@@ -1039,7 +1039,7 @@ create_optional_field_ (pair_p next, type_p type, const char *name,
> - }
> -
> - #define create_optional_field(next,type,name,cond)    \
> --       create_optional_field_(next,type,name,cond,__LINE__)
> -+       create_optional_field_(next,type,name,cond,0)
> -
> - /* Reverse a linked list of 'struct pair's in place.  */
> - pair_p
> -@@ -5238,7 +5238,7 @@ main (int argc, char **argv)
> -       /* These types are set up with #define or else outside of where
> -          we can see them.  We should initialize them before calling
> -          read_input_list.  */
> --#define POS_HERE(Call) do { pos.file = this_file; pos.line = __LINE__; \
> -+#define POS_HERE(Call) do { pos.file = this_file; pos.line = 0; \
> -       Call;} while (0)
> -       POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos));
> -       POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos));
> -diff --git a/gcc/genmodes.cc b/gcc/genmodes.cc
> -index 59850bb070a..e187f8542a1 100644
> ---- a/gcc/genmodes.cc
> -+++ b/gcc/genmodes.cc
> -@@ -440,7 +440,7 @@ complete_all_modes (void)
> - }
> -
> - /* For each mode in class CLASS, construct a corresponding complex mode.  */
> --#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, __LINE__)
> -+#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, 0)
> - static void
> - make_complex_modes (enum mode_class cl,
> -                   const char *file, unsigned int line)
> -@@ -499,7 +499,7 @@ make_complex_modes (enum mode_class cl,
> -    having as many components as necessary.  ORDER is the sorting order
> -    of the mode, with smaller numbers indicating a higher priority.  */
> - #define VECTOR_MODES_WITH_PREFIX(PREFIX, C, W, ORDER) \
> --  make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, __LINE__)
> -+  make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, 0)
> - #define VECTOR_MODES(C, W) VECTOR_MODES_WITH_PREFIX (V, C, W, 0)
> - static void ATTRIBUTE_UNUSED
> - make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
> -@@ -552,7 +552,7 @@ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
> -    BYTESIZE bytes in total.  */
> - #define VECTOR_BOOL_MODE(NAME, COUNT, COMPONENT, BYTESIZE)            \
> -   make_vector_bool_mode (#NAME, COUNT, #COMPONENT, BYTESIZE,          \
> --                       __FILE__, __LINE__)
> -+                       __FILE__, 0)
> - static void ATTRIBUTE_UNUSED
> - make_vector_bool_mode (const char *name, unsigned int count,
> -                      const char *component, unsigned int bytesize,
> -@@ -574,7 +574,7 @@ make_vector_bool_mode (const char *name, unsigned int count,
> - /* Input.  */
> -
> - #define _SPECIAL_MODE(C, N) \
> --  make_special_mode (MODE_##C, #N, __FILE__, __LINE__)
> -+  make_special_mode (MODE_##C, #N, __FILE__, 0)
> - #define RANDOM_MODE(N) _SPECIAL_MODE (RANDOM, N)
> - #define CC_MODE(N) _SPECIAL_MODE (CC, N)
> -
> -@@ -587,7 +587,7 @@ make_special_mode (enum mode_class cl, const char *name,
> -
> - #define INT_MODE(N, Y) FRACTIONAL_INT_MODE (N, -1U, Y)
> - #define FRACTIONAL_INT_MODE(N, B, Y) \
> --  make_int_mode (#N, B, Y, __FILE__, __LINE__)
> -+  make_int_mode (#N, B, Y, __FILE__, 0)
> -
> - static void
> - make_int_mode (const char *name,
> -@@ -628,16 +628,16 @@ make_opaque_mode (const char *name,
> - }
> -
> - #define FRACT_MODE(N, Y, F) \
> --      make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, __LINE__)
> -+      make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, 0)
> -
> - #define UFRACT_MODE(N, Y, F) \
> --      make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, __LINE__)
> -+      make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, 0)
> -
> - #define ACCUM_MODE(N, Y, I, F) \
> --      make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, __LINE__)
> -+      make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, 0)
> -
> - #define UACCUM_MODE(N, Y, I, F) \
> --      make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, __LINE__)
> -+      make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, 0)
> -
> - /* Create a fixed-point mode by setting CL, NAME, BYTESIZE, IBIT, FBIT,
> -    FILE, and LINE.  */
> -@@ -658,7 +658,7 @@ make_fixed_point_mode (enum mode_class cl,
> -
> - #define FLOAT_MODE(N, Y, F)             FRACTIONAL_FLOAT_MODE (N, -1U, Y, F)
> - #define FRACTIONAL_FLOAT_MODE(N, B, Y, F) \
> --  make_float_mode (#N, B, Y, #F, __FILE__, __LINE__)
> -+  make_float_mode (#N, B, Y, #F, __FILE__, 0)
> -
> - static void
> - make_float_mode (const char *name,
> -@@ -675,7 +675,7 @@ make_float_mode (const char *name,
> - #define DECIMAL_FLOAT_MODE(N, Y, F)   \
> -       FRACTIONAL_DECIMAL_FLOAT_MODE (N, -1U, Y, F)
> - #define FRACTIONAL_DECIMAL_FLOAT_MODE(N, B, Y, F)     \
> --  make_decimal_float_mode (#N, B, Y, #F, __FILE__, __LINE__)
> -+  make_decimal_float_mode (#N, B, Y, #F, __FILE__, 0)
> -
> - static void
> - make_decimal_float_mode (const char *name,
> -@@ -690,7 +690,7 @@ make_decimal_float_mode (const char *name,
> - }
> -
> - #define RESET_FLOAT_FORMAT(N, F) \
> --  reset_float_format (#N, #F, __FILE__, __LINE__)
> -+  reset_float_format (#N, #F, __FILE__, 0)
> - static void ATTRIBUTE_UNUSED
> - reset_float_format (const char *name, const char *format,
> -                   const char *file, unsigned int line)
> -@@ -711,7 +711,7 @@ reset_float_format (const char *name, const char *format,
> -
> - /* __intN support.  */
> - #define INT_N(M,PREC)                         \
> --  make_int_n (#M, PREC, __FILE__, __LINE__)
> -+  make_int_n (#M, PREC, __FILE__, 0)
> - static void ATTRIBUTE_UNUSED
> - make_int_n (const char *m, int bitsize,
> -             const char *file, unsigned int line)
> -@@ -740,7 +740,7 @@ make_int_n (const char *m, int bitsize,
> - /* Partial integer modes are specified by relation to a full integer
> -    mode.  */
> - #define PARTIAL_INT_MODE(M,PREC,NAME)                         \
> --  make_partial_integer_mode (#M, #NAME, PREC, __FILE__, __LINE__)
> -+  make_partial_integer_mode (#M, #NAME, PREC, __FILE__, 0)
> - static void ATTRIBUTE_UNUSED
> - make_partial_integer_mode (const char *base, const char *name,
> -                          unsigned int precision,
> -@@ -767,7 +767,7 @@ make_partial_integer_mode (const char *base, const char *name,
> - /* A single vector mode can be specified by naming its component
> -    mode and the number of components.  */
> - #define VECTOR_MODE_WITH_PREFIX(PREFIX, C, M, N, ORDER) \
> --  make_vector_mode (MODE_##C, #PREFIX, #M, N, ORDER, __FILE__, __LINE__);
> -+  make_vector_mode (MODE_##C, #PREFIX, #M, N, ORDER, __FILE__, 0);
> - #define VECTOR_MODE(C, M, N) VECTOR_MODE_WITH_PREFIX(V, C, M, N, 0);
> - static void ATTRIBUTE_UNUSED
> - make_vector_mode (enum mode_class bclass,
> -@@ -814,7 +814,7 @@ make_vector_mode (enum mode_class bclass,
> -
> - /* Adjustability.  */
> - #define _ADD_ADJUST(A, M, X, C1, C2) \
> --  new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, __LINE__)
> -+  new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, 0)
> -
> - #define ADJUST_NUNITS(M, X)    _ADD_ADJUST (nunits, M, X, RANDOM, RANDOM)
> - #define ADJUST_BYTESIZE(M, X)  _ADD_ADJUST (bytesize, M, X, RANDOM, RANDOM)
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0023-libatomic-Do-not-enforce-march-on-aarch64.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0023-libatomic-Do-not-enforce-march-on-aarch64.patch
> deleted file mode 100644
> index 2f016598..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0023-libatomic-Do-not-enforce-march-on-aarch64.patch
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -From 52931ec7a708b58d68e69ce9eb99001ae9f099dd Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Wed, 13 May 2020 15:10:38 -0700
> -Subject: [PATCH] libatomic: Do not enforce march on aarch64
> -
> -OE passes the right options via gcc compiler cmdline via TUNE_CCARGS
> -this can conflict between -mcpu settings and -march setting here, since
> --mcpu will translate into an appropriate -march, lets depend on that
> -instead of setting it explicitly
> -
> -Upstream-Status: Inappropriate [OE-Specific]
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - libatomic/Makefile.am | 1 -
> - libatomic/Makefile.in | 1 -
> - 2 files changed, 2 deletions(-)
> -
> -diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
> -index d88515e4a03..e0e2f8b442a 100644
> ---- a/libatomic/Makefile.am
> -+++ b/libatomic/Makefile.am
> -@@ -125,7 +125,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS)))
> - ## On a target-specific basis, include alternates to be selected by IFUNC.
> - if HAVE_IFUNC
> - if ARCH_AARCH64_LINUX
> --IFUNC_OPTIONS      = -march=armv8-a+lse
> - libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS)))
> - endif
> - if ARCH_ARM_LINUX
> -diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
> -index 80d25653dc7..7377689ab34 100644
> ---- a/libatomic/Makefile.in
> -+++ b/libatomic/Makefile.in
> -@@ -434,7 +434,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files)))
> - libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
> -       _$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
> -       $(am__append_3) $(am__append_4)
> --@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv8-a+lse
> - @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64
> - @ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586
> - @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16 -mcx16
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0024-Fix-install-path-of-linux64.h.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0024-Fix-install-path-of-linux64.h.patch
> deleted file mode 100644
> index 555be623..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0024-Fix-install-path-of-linux64.h.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From 3e67c9c77e46132c252911bf1e5e4222dfd3aa34 Mon Sep 17 00:00:00 2001
> -From: Andrei Gherzan <andrei.gherzan@huawei.com>
> -Date: Wed, 22 Dec 2021 12:49:25 +0100
> -Subject: [PATCH] Fix install path of linux64.h
> -
> -We add linux64.h to tm includes[1] as a relative path to B. This patch
> -adapts the install path of linux64.h to match the include in tm.h.
> -
> -[1] 0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
> -
> -Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
> -
> -Upstream-Status: Inappropriate [configuration]
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/Makefile.in | 2 ++
> - 1 file changed, 2 insertions(+)
> -
> -diff --git a/gcc/Makefile.in b/gcc/Makefile.in
> -index 07fa63b6640..0def7394454 100644
> ---- a/gcc/Makefile.in
> -+++ b/gcc/Makefile.in
> -@@ -3706,6 +3706,8 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
> -         "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
> -         | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
> -           base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
> -+        */linux64.h ) \
> -+          base=`dirname $$path`;;\
> -         *) base=`basename $$path` ;; \
> -         esac; \
> -         dest=$(plugin_includedir)/$$base; \
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0026-rust-recursion-limit.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0026-rust-recursion-limit.patch
> deleted file mode 100644
> index e13a9962..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0026-rust-recursion-limit.patch
> +++ /dev/null
> @@ -1,93 +0,0 @@
> -From 9234cdca6ee88badfc00297e72f13dac4e540c79 Mon Sep 17 00:00:00 2001
> -From: Nick Clifton <nickc@redhat.com>
> -Date: Fri, 1 Jul 2022 15:58:52 +0100
> -Subject: [PATCH] Add a recursion limit to the demangle_const function in the
> - Rust demangler.
> -
> -libiberty/
> -       PR demangler/105039
> -       * rust-demangle.c (demangle_const): Add recursion limit.
> -
> -Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=9234cdca6ee88badfc00297e72f13dac4e540c79]
> -Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> ----
> - libiberty/rust-demangle.c | 29 ++++++++++++++++++++---------
> - 1 file changed, 20 insertions(+), 9 deletions(-)
> -
> -diff --git a/libiberty/rust-demangle.c b/libiberty/rust-demangle.c
> -index bb58d900e27..36afcfae278 100644
> ---- a/libiberty/rust-demangle.c
> -+++ b/libiberty/rust-demangle.c
> -@@ -126,7 +126,7 @@ parse_integer_62 (struct rust_demangler *rdm)
> -     return 0;
> -
> -   x = 0;
> --  while (!eat (rdm, '_'))
> -+  while (!eat (rdm, '_') && !rdm->errored)
> -     {
> -       c = next (rdm);
> -       x *= 62;
> -@@ -1148,6 +1148,15 @@ demangle_const (struct rust_demangler *rdm)
> -   if (rdm->errored)
> -     return;
> -
> -+  if (rdm->recursion != RUST_NO_RECURSION_LIMIT)
> -+    {
> -+      ++ rdm->recursion;
> -+      if (rdm->recursion > RUST_MAX_RECURSION_COUNT)
> -+      /* FIXME: There ought to be a way to report
> -+         that the recursion limit has been reached.  */
> -+      goto fail_return;
> -+    }
> -+
> -   if (eat (rdm, 'B'))
> -     {
> -       backref = parse_integer_62 (rdm);
> -@@ -1158,7 +1167,7 @@ demangle_const (struct rust_demangler *rdm)
> -           demangle_const (rdm);
> -           rdm->next = old_next;
> -         }
> --      return;
> -+      goto pass_return;
> -     }
> -
> -   ty_tag = next (rdm);
> -@@ -1167,7 +1176,7 @@ demangle_const (struct rust_demangler *rdm)
> -     /* Placeholder. */
> -     case 'p':
> -       PRINT ("_");
> --      return;
> -+      goto pass_return;
> -
> -     /* Unsigned integer types. */
> -     case 'h':
> -@@ -1200,18 +1209,20 @@ demangle_const (struct rust_demangler *rdm)
> -       break;
> -
> -     default:
> --      rdm->errored = 1;
> --      return;
> -+      goto fail_return;
> -     }
> -
> --  if (rdm->errored)
> --    return;
> --
> --  if (rdm->verbose)
> -+  if (!rdm->errored && rdm->verbose)
> -     {
> -       PRINT (": ");
> -       PRINT (basic_type (ty_tag));
> -     }
> -+
> -+ fail_return:
> -+  rdm->errored = 1;
> -+ pass_return:
> -+  if (rdm->recursion != RUST_NO_RECURSION_LIMIT)
> -+    -- rdm->recursion;
> - }
> -
> - static void
> ---
> -2.31.1
> -
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/hardcoded-paths.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/hardcoded-paths.patch
> deleted file mode 100644
> index f3485858..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/hardcoded-paths.patch
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -Avoid encoding build paths into sources used for floating point on powerpc.
> -(MACHINE=qemuppc bitbake libgcc).
> -
> -Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599882.html]
> -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> -
> -Index: gcc-12.1.0/libgcc/config/rs6000/t-float128
> -===================================================================
> ---- gcc-12.1.0.orig/libgcc/config/rs6000/t-float128
> -+++ gcc-12.1.0/libgcc/config/rs6000/t-float128
> -@@ -103,7 +103,7 @@ $(ibm128_dec_objs) : INTERNAL_CFLAGS +=
> - $(fp128_softfp_src) : $(srcdir)/soft-fp/$(subst -sw,,$(subst kf,tf,$@)) $(fp128_dep)
> -       @src="$(srcdir)/soft-fp/$(subst -sw,,$(subst kf,tf,$@))"; \
> -       echo "Create $@"; \
> --      (echo "/* file created from $$src */"; \
> -+      (echo "/* file created from `basename $$src` */"; \
> -        echo; \
> -        sed -f $(fp128_sed) < $$src) > $@
> -
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/prefix-map-realpath.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/prefix-map-realpath.patch
> deleted file mode 100644
> index 7f1a2dee..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/prefix-map-realpath.patch
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -Relative paths don't work with -fdebug-prefix-map and friends. This
> -can lead to paths which the user wanted to be remapped being missed.
> -Setting -fdebug-prefix-map to work with a relative path isn't practical
> -either.
> -
> -Instead, call gcc's realpath function on the incomming path name before
> -comparing it with the remapping. This means other issues like symlinks
> -are also accounted for and leads to a more consistent remapping experience.
> -
> -Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599885.html]
> -[Also https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599884.html]
> -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> -
> -
> -Index: gcc-12.1.0/gcc/file-prefix-map.cc
> -===================================================================
> ---- gcc-12.1.0.orig/gcc/file-prefix-map.cc
> -+++ gcc-12.1.0/gcc/file-prefix-map.cc
> -@@ -70,19 +70,28 @@ remap_filename (file_prefix_map *maps, c
> -   file_prefix_map *map;
> -   char *s;
> -   const char *name;
> -+  char *realname;
> -   size_t name_len;
> -
> -+  if (lbasename (filename) == filename)
> -+    return filename;
> -+
> -+  realname = lrealpath (filename);
> -+
> -   for (map = maps; map; map = map->next)
> --    if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
> -+    if (filename_ncmp (realname, map->old_prefix, map->old_len) == 0)
> -       break;
> --  if (!map)
> -+  if (!map) {
> -+    free (realname);
> -     return filename;
> --  name = filename + map->old_len;
> -+  }
> -+  name = realname + map->old_len;
> -   name_len = strlen (name) + 1;
> -
> -   s = (char *) ggc_alloc_atomic (name_len + map->new_len);
> -   memcpy (s, map->new_prefix, map->new_len);
> -   memcpy (s + map->new_len, name, name_len);
> -+  free (realname);
> -   return s;
> - }
> -
> -Index: gcc-12.1.0/libcpp/macro.cc
> -===================================================================
> ---- gcc-12.1.0.orig/libcpp/macro.cc
> -+++ gcc-12.1.0/libcpp/macro.cc
> -@@ -563,7 +563,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi
> -           if (!name)
> -             abort ();
> -         }
> --      if (pfile->cb.remap_filename)
> -+      if (pfile->cb.remap_filename && !pfile->state.in_directive)
> -         name = pfile->cb.remap_filename (name);
> -       len = strlen (name);
> -       buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> deleted file mode 100644
> index fa23e846..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> +++ /dev/null
> @@ -1,27 +0,0 @@
> -# gcc-target.inc in OE-Core has these 2 lines in do_install():
> -#
> -# | # Add unwind.h, it comes from libgcc which we don't want to build again
> -# | install ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
> -#
> -# When TCMODE="external-arm" libgcc is provided by external-arm-toolchain.bb
> -# And while it stages the necessary unwind.h file, it ends up in slightly
> -# different location. While this is a kludge, be very conservative - only
> -# copy the file for target build in recipe-specific sysroot, in external-arm
> -# toolchain mode and if the required file does not exist already.
> -
> -do_install:prepend:class-target () {
> -       if [ "${TCMODE}" = "external-arm" -a ! -f ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ]; then
> -               install -d ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> -               install ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> -       fi
> -}
> -
> -# When TCMODE="external-arm" and TARGET_SYS is different from EAT_TARGET_SYS,
> -# gcc installs additional aliases as ${TARGET_SYS}-${EAT_TARGET_SYS}-gcc, etc.
> -# Since those are not packaged and not too useful, let's remove them to avoid
> -# QA issues
> -do_install:append () {
> -       for f in g++ gcc gcc-ar gcc-ranlib gcc-nm; do
> -               rm -f ${D}${bindir}/${TARGET_SYS}-${EAT_TARGET_SYS}-$f
> -       done
> -}
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross-canadian_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross-canadian_arm-12.2.bb
> deleted file mode 100644
> index d4bf7bfa..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross-canadian_arm-12.2.bb
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/gcc-cross-canadian.inc
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross_arm-12.2.bb
> deleted file mode 100644
> index 0a8aa75b..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross_arm-12.2.bb
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/gcc-cross.inc
> -
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-crosssdk_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-crosssdk_arm-12.2.bb
> deleted file mode 100644
> index 0a9f98a1..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-crosssdk_arm-12.2.bb
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -require recipes-devtools/gcc/gcc-cross_${PV}.bb
> -require recipes-devtools/gcc/gcc-crosssdk.inc
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-runtime_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-runtime_arm-12.2.bb
> deleted file mode 100644
> index b755f555..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-runtime_arm-12.2.bb
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/gcc-runtime.inc
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-sanitizers_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-sanitizers_arm-12.2.bb
> deleted file mode 100644
> index e88ebe1a..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-sanitizers_arm-12.2.bb
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/gcc-sanitizers.inc
> -
> -# Building with thumb enabled on armv4t armv5t fails with
> -# sanitizer_linux.s:5749: Error: lo register required -- `ldr ip,[sp],#8'
> -ARM_INSTRUCTION_SET:armv4 = "arm"
> -ARM_INSTRUCTION_SET:armv5 = "arm"
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-source_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-source_arm-12.2.bb
> deleted file mode 100644
> index b890fa33..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-source_arm-12.2.bb
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/gcc-source.inc
> -
> -EXCLUDE_FROM_WORLD = "1"
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc_arm-12.2.bb
> deleted file mode 100644
> index 92967301..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc_arm-12.2.bb
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/gcc-target.inc
> -require recipes-devtools/gcc/gcc-arm-common.inc
> -
> -# Building with thumb enabled on armv4t armv5t fails with
> -# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs
> -# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output
> -ARM_INSTRUCTION_SET:armv4 = "arm"
> -ARM_INSTRUCTION_SET:armv5 = "arm"
> -
> -ARMFPARCHEXT:armv6 = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
> -ARMFPARCHEXT:armv7a = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
> -ARMFPARCHEXT:armv7ve = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
> -
> -BBCLASSEXTEND = "nativesdk"
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/libgcc-initial_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/libgcc-initial_arm-12.2.bb
> deleted file mode 100644
> index ca1159c5..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/libgcc-initial_arm-12.2.bb
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/libgcc-initial.inc
> -
> -# Building with thumb enabled on armv6t fails
> -ARM_INSTRUCTION_SET:armv6 = "arm"
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/libgcc_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/libgcc_arm-12.2.bb
> deleted file mode 100644
> index 35ac5dfe..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/libgcc_arm-12.2.bb
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/libgcc.inc
> -
> -# Building with thumb enabled on armv6t fails
> -ARM_INSTRUCTION_SET:armv6 = "arm"
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/libgfortran_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/libgfortran_arm-12.2.bb
> deleted file mode 100644
> index fe63d0a4..00000000
> --- a/meta-arm-toolchain/recipes-devtools/gcc/libgfortran_arm-12.2.bb
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -require recipes-devtools/gcc/gcc-${PV}.inc
> -require recipes-devtools/gcc/libgfortran.inc
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#4762): https://lists.yoctoproject.org/g/meta-arm/message/4762
> Mute This Topic: https://lists.yoctoproject.org/mt/99486546/1777089
> Group Owner: meta-arm+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-arm/unsub [sumit.garg@linaro.org]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Jon Mason June 14, 2023, 1:08 p.m. UTC | #2
On Mon, 12 Jun 2023 17:05:13 +0100, ross.burton@arm.com wrote:
> This recipe is a rebuild from source of the Arm GCC release, with
> patches from oe-core added to make it work well in our environment.
> 
> Most people are happy with the GCC in oe-core, and this release is often
> behind: at the time of writing oe-core has mainline GCC 13.1, but Arm
> GCC is 12.2.  Users who actually want the improvements in Arm GCC will
> likely want to use the binary toolchain so that they can have support
> from Arm, and they're welcome to do so via the "external-arm" binary
> toolchain.

Applied, thanks!

[1/1] arm-toolchain/gcc-arm-12.2: remove
      commit: 980f37d4d3d8eb034c08dd05a52866fa0fcaa5b0

Best regards,
diff mbox series

Patch

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0ae5c995..74105e65 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -85,7 +85,7 @@  update-repos:
 # Available options for building are
 #  DISTRO: [poky, poky-tiny]
 #  KERNEL: [linux-yocto, linux-yocto-dev, linux-yocto-rt]
-#  TOOLCHAINS: [gcc, clang, armgcc, external-gccarm]
+#  TOOLCHAINS: [gcc, clang, external-gccarm]
 #  TCLIBC: [glibc, musl]
 #  FIRMWARE: [u-boot, edk2]
 #  TS: [none, trusted-services]
@@ -149,8 +149,7 @@  n1sdp:
   extends: .build
   parallel:
     matrix:
-      - TOOLCHAINS: [gcc, armgcc]
-        TS: [none, n1sdp-ts]
+      - TS: [none, n1sdp-ts]
 
 qemu-generic-arm64:
   extends: .build
diff --git a/ci/armgcc.yml b/ci/armgcc.yml
deleted file mode 100644
index 9fb38cf2..00000000
--- a/ci/armgcc.yml
+++ /dev/null
@@ -1,6 +0,0 @@ 
-header:
-  version: 11
-
-local_conf_header:
-  cc: |
-    GCCVERSION = "arm-12.2"
diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
index 9ee05ed0..9830b95a 100644
--- a/meta-arm-toolchain/README.md
+++ b/meta-arm-toolchain/README.md
@@ -1,26 +1,11 @@ 
 meta-arm-toolchain Yocto Layer
 ==============================
 
-This layer contains recipes for GNU Arm toolchains which could either be built
-from source or pre-built toolchain binaries.
+This layer contains recipes for the prebuilt GNU Arm toolchains.
 
 Information regarding contributing, reporting bugs, etc can be found in the
 top-level meta-arm readme file.
 
-Source Arm toolchain for Linux development
-------------------------------------------
-
-Recipes for GNU Arm toolchain built from source are provided under
-``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
-toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
-conf file.
-
--  Eg. to use GNU Arm toolchain version ``9.2``
-   GCCVERSION = "arm-9.2"
-
-Pre-built Arm toolchain for Linux development
----------------------------------------------
-
 Recipes for pre-built GNU Arm toolchain for Linux development are provided under
 ``recipes-devtools/external-arm-toolchain/``.
 
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2.inc
deleted file mode 100644
index 06bd8fa6..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2.inc
+++ /dev/null
@@ -1,112 +0,0 @@ 
-require recipes-devtools/gcc/gcc-common.inc
-
-# Third digit in PV should be incremented after a minor release
-ARM_GCC_VERSION = "12.2"
-ARM_GCC_SUB_VERSION = "rel1"
-PV = "arm-${ARM_GCC_VERSION}"
-CVE_VERSION = "12.2"
-
-# BINV should be incremented to a revision after a minor gcc release
-
-BINV = "12.2.1"
-
-MMYY = "22.12"
-RELEASE = "20${MMYY}"
-PR = "r${RELEASE}"
-
-FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc-arm-${ARM_GCC_VERSION}:${FILE_DIRNAME}/gcc-arm-${ARM_GCC_VERSION}/backport:"
-
-DEPENDS =+ "mpfr gmp libmpc zlib flex-native"
-NATIVEDEPS = "mpfr-native gmp-native libmpc-native zlib-native flex-native zstd-native"
-
-LICENSE = "GPL-3.0-with-GCC-exception & GPL-3.0-only"
-
-LIC_FILES_CHKSUM = "\
-    file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-    file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \
-    file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \
-    file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
-    file://COPYING.RUNTIME;md5=fe60d87048567d4fe8c8a0ed2448bcc8 \
-"
-
-BASEURI ?= "https://developer.arm.com/-/media/Files/downloads/gnu/${ARM_GCC_VERSION}.${ARM_GCC_SUB_VERSION}/srcrel/arm-gnu-toolchain-src-snapshot-${ARM_GCC_VERSION}.${ARM_GCC_SUB_VERSION}.tar.xz"
-SRC_URI = "${BASEURI} \
-           file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
-           file://0002-gcc-poison-system-directories.patch \
-           file://0003-64-bit-multilib-hack.patch \
-           file://0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch \
-           file://0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch \
-           file://0006-cpp-honor-sysroot.patch \
-           file://0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch \
-           file://0008-libtool.patch \
-           file://0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch \
-           file://0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
-           file://0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch \
-           file://0013-Ensure-target-gcc-headers-can-be-included.patch \
-           file://0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch \
-           file://0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch \
-           file://0016-handle-sysroot-support-for-nativesdk-gcc.patch \
-           file://0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
-           file://0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
-           file://0019-Re-introduce-spe-commandline-options.patch \
-           file://0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch \
-           file://0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \
-           file://0023-libatomic-Do-not-enforce-march-on-aarch64.patch \
-           file://0024-Fix-install-path-of-linux64.h.patch \
-           file://0026-rust-recursion-limit.patch \
-           file://prefix-map-realpath.patch \
-           file://hardcoded-paths.patch \
-"
-SRC_URI[sha256sum] = "108b5e0786b988c7ce24b82187d8cf643fefbd8e3db24fa5f67e530e727d0c70"
-
-S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/arm-gnu-toolchain-src-snapshot-${ARM_GCC_VERSION}.${ARM_GCC_SUB_VERSION}"
-
-# For dev release snapshotting
-#S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${RELEASE}"
-#B = "${WORKDIR}/gcc-${PV}/build.${HOST_SYS}.${TARGET_SYS}"
-
-# Language Overrides
-FORTRAN = ""
-JAVA = ""
-
-SSP ?= "--disable-libssp"
-SSP:mingw32 = "--enable-libssp"
-
-EXTRA_OECONF_BASE = "\
-    ${SSP} \
-    --enable-libitm \
-    --enable-lto \
-    --disable-bootstrap \
-    --with-system-zlib \
-    ${@'--with-linker-hash-style=${LINKER_HASH_STYLE}' if '${LINKER_HASH_STYLE}' else ''} \
-    --enable-linker-build-id \
-    --with-ppl=no \
-    --with-cloog=no \
-    --enable-checking=release \
-    --enable-cheaders=c_global \
-    --without-isl \
-"
-
-EXTRA_OECONF_INITIAL = "\
-    --disable-libgomp \
-    --disable-libitm \
-    --disable-libquadmath \
-    --with-system-zlib \
-    --disable-lto \
-    --disable-plugin \
-    --enable-linker-build-id \
-    --enable-decimal-float=no \
-    --without-isl \
-    --disable-libssp \
-"
-
-EXTRA_OECONF:append_aarchilp32 = " --with-abi=ilp32"
-
-EXTRA_OECONF_PATHS = "\
-    --with-gxx-include-dir=/not/exist{target_includedir}/c++/${BINV} \
-    --with-sysroot=/not/exist \
-    --with-build-sysroot=${STAGING_DIR_TARGET} \
-"
-
-# Is a binutils 2.26 issue, not gcc
-CVE_CHECK_IGNORE += "CVE-2021-37322"
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
deleted file mode 100644
index 66e582ca..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
+++ /dev/null
@@ -1,39 +0,0 @@ 
-From 31f94ef5b43a984a98f0eebd2dcf1b53aa1d7bce Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 08:37:11 +0400
-Subject: [PATCH] gcc-4.3.1: ARCH_FLAGS_FOR_TARGET
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [embedded specific]
----
- configure    | 2 +-
- configure.ac | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure b/configure
-index 5dcaab14ae9..f76310a36bb 100755
---- a/configure
-+++ b/configure
-@@ -10165,7 +10165,7 @@ fi
- # for target_alias and gcc doesn't manage it consistently.
- target_configargs="--cache-file=./config.cache ${target_configargs}"
- 
--FLAGS_FOR_TARGET=
-+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
- case " $target_configdirs " in
-  *" newlib "*)
-   case " $target_configargs " in
-diff --git a/configure.ac b/configure.ac
-index 85977482aee..8b9097c7a45 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3346,7 +3346,7 @@ fi
- # for target_alias and gcc doesn't manage it consistently.
- target_configargs="--cache-file=./config.cache ${target_configargs}"
- 
--FLAGS_FOR_TARGET=
-+FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
- case " $target_configdirs " in
-  *" newlib "*)
-   case " $target_configargs " in
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0002-gcc-poison-system-directories.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0002-gcc-poison-system-directories.patch
deleted file mode 100644
index 5aa635b3..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0002-gcc-poison-system-directories.patch
+++ /dev/null
@@ -1,239 +0,0 @@ 
-From 99f1e61b2957226254a116fde7fd73bf07034012 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 8 Mar 2021 16:04:20 -0800
-Subject: [PATCH] gcc: poison-system-directories
-
-Add /sw/include and /opt/include based on the original
-zecke-no-host-includes.patch patch.  The original patch checked for
-/usr/include, /sw/include and /opt/include and then triggered a failure and
-aborted.
-
-Instead, we add the two missing items to the current scan.  If the user
-wants this to be a failure, they can add "-Werror=poison-system-directories".
-
-Upstream-Status: Pending
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/common.opt      |  4 ++++
- gcc/config.in       | 10 ++++++++++
- gcc/configure       | 19 +++++++++++++++++++
- gcc/configure.ac    | 16 ++++++++++++++++
- gcc/doc/invoke.texi |  9 +++++++++
- gcc/gcc.cc          | 15 ++++++++++++---
- gcc/incpath.cc      | 21 +++++++++++++++++++++
- 7 files changed, 91 insertions(+), 3 deletions(-)
-
-diff --git a/gcc/common.opt b/gcc/common.opt
-index 8a0dafc52..0357868e2 100644
---- a/gcc/common.opt
-+++ b/gcc/common.opt
-@@ -710,6 +710,10 @@ Wreturn-local-addr
- Common Var(warn_return_local_addr) Init(1) Warning
- Warn about returning a pointer/reference to a local or temporary variable.
- 
-+Wpoison-system-directories
-+Common Var(flag_poison_system_directories) Init(1) Warning
-+Warn for -I and -L options using system directories if cross compiling
-+
- Wshadow
- Common Var(warn_shadow) Warning
- Warn when one variable shadows another.  Same as -Wshadow=global.
-diff --git a/gcc/config.in b/gcc/config.in
-index 64c27c9cf..a693cb8a8 100644
---- a/gcc/config.in
-+++ b/gcc/config.in
-@@ -230,6 +230,16 @@
- #endif
- 
- 
-+/* Define to warn for use of native system header directories */
-+#ifndef USED_FOR_TARGET
-+#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-+#endif
-+/* Define to warn for use of native system header directories */
-+#ifndef USED_FOR_TARGET
-+#undef POISON_BY_DEFAULT
-+#endif
-+
-+
- /* Define if you want all operations on RTL (the basic data structure of the
-    optimizer and back end) to be checked for dynamic type safety at runtime.
-    This is quite expensive. */
-diff --git a/gcc/configure b/gcc/configure
-index 2b83acfb0..8bb97578c 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -1023,6 +1023,7 @@ enable_maintainer_mode
- enable_link_mutex
- enable_link_serialization
- enable_version_specific_runtime_libs
-+enable_poison_system_directories
- enable_plugin
- enable_host_shared
- enable_libquadmath_support
-@@ -1785,6 +1786,8 @@ Optional Features:
-   --enable-version-specific-runtime-libs
-                           specify that runtime libraries should be installed
-                           in a compiler-specific directory
-+  --enable-poison-system-directories
-+                          warn for use of native system header directories
-   --enable-plugin         enable plugin support
-   --enable-host-shared    build host code as shared libraries
-   --disable-libquadmath-support
-@@ -31996,6 +31999,22 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
- fi
- 
- 
-+# Check whether --enable-poison-system-directories was given.
-+if test "${enable_poison_system_directories+set}" = set; then :
-+  enableval=$enable_poison_system_directories;
-+else
-+  enable_poison_system_directories=no
-+fi
-+
-+if test "x${enable_poison_system_directories}" != "xno"; then
-+
-+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
-+if test "$enable_poison_system_directories" = "error"; then
-+$as_echo "#define POISON_BY_DEFAULT 1" >>confdefs.h
-+fi
-+
-+fi
-+
- # Substitute configuration variables
- 
- 
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index daf2a708c..6155b83a7 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -7435,6 +7435,22 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
-                 [specify that runtime libraries should be
-                  installed in a compiler-specific directory])])
- 
-+AC_ARG_ENABLE([poison-system-directories],
-+             AS_HELP_STRING([--enable-poison-system-directories],
-+                            [warn for use of native system header directories (no/yes/error)]),,
-+             [enable_poison_system_directories=no])
-+AC_MSG_NOTICE([poisoned directories $enable_poison_system_directories])
-+if test "x${enable_poison_system_directories}" != "xno"; then
-+  AC_MSG_NOTICE([poisoned directories enabled])
-+  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
-+           [1],
-+           [Define to warn for use of native system header directories])
-+  if test $enable_poison_system_directories = "error"; then
-+   AC_MSG_NOTICE([poisoned directories are fatal])
-+   AC_DEFINE([POISON_BY_DEFAULT], [1], [Define to make poison warnings errors])
-+  fi
-+fi
-+
- # Substitute configuration variables
- AC_SUBST(subdirs)
- AC_SUBST(srcdir)
-diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index ff6c338be..a8ebfa59a 100644
---- a/gcc/doc/invoke.texi
-+++ b/gcc/doc/invoke.texi
-@@ -379,6 +379,7 @@ Objective-C and Objective-C++ Dialects}.
- -Wpacked  -Wno-packed-bitfield-compat  -Wpacked-not-aligned  -Wpadded @gol
- -Wparentheses  -Wno-pedantic-ms-format @gol
- -Wpointer-arith  -Wno-pointer-compare  -Wno-pointer-to-int-cast @gol
-+-Wno-poison-system-directories @gol
- -Wno-pragmas  -Wno-prio-ctor-dtor  -Wredundant-decls @gol
- -Wrestrict  -Wno-return-local-addr  -Wreturn-type @gol
- -Wno-scalar-storage-order  -Wsequence-point @gol
-@@ -8029,6 +8030,14 @@ made up of data only and thus requires no special treatment.  But, for
- most targets, it is made up of code and thus requires the stack to be
- made executable in order for the program to work properly.
- 
-+@item -Wno-poison-system-directories
-+@opindex Wno-poison-system-directories
-+Do not warn for @option{-I} or @option{-L} options using system
-+directories such as @file{/usr/include} when cross compiling.  This
-+option is intended for use in chroot environments when such
-+directories contain the correct headers and libraries for the target
-+system rather than the host.
-+
- @item -Wfloat-equal
- @opindex Wfloat-equal
- @opindex Wno-float-equal
-diff --git a/gcc/gcc.cc b/gcc/gcc.cc
-index beefde7f6..4e6557b3c 100644
---- a/gcc/gcc.cc
-+++ b/gcc/gcc.cc
-@@ -1162,6 +1162,8 @@ proper position among the other output files.  */
-    "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
-    "%X %{o*} %{e*} %{N} %{n} %{r}\
-     %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
-+    %{Wno-poison-system-directories:--no-poison-system-directories} \
-+    %{Werror=poison-system-directories:--error-poison-system-directories} \
-     %{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \
-     VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
-     %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
-@@ -1257,8 +1259,11 @@ static const char *cpp_unique_options =
- static const char *cpp_options =
- "%(cpp_unique_options) %1 %{m*} %{std*&ansi&trigraphs} %{W*&pedantic*} %{w}\
-  %{f*} %{g*:%{%:debug-level-gt(0):%{g*}\
-- %{!fno-working-directory:-fworking-directory}}} %{O*}\
-- %{undef} %{save-temps*:-fpch-preprocess}";
-+ %{!fno-working-directory:-fworking-directory}}} %{O*}"
-+#ifdef POISON_BY_DEFAULT
-+ " %{!Wno-error=poison-system-directories:-Werror=poison-system-directories}"
-+#endif
-+ " %{undef} %{save-temps*:-fpch-preprocess}";
- 
- /* Pass -d* flags, possibly modifying -dumpdir, -dumpbase et al.
- 
-@@ -1287,7 +1292,11 @@ static const char *cc1_options =
-  %{coverage:-fprofile-arcs -ftest-coverage}\
-  %{fprofile-arcs|fprofile-generate*|coverage:\
-    %{!fprofile-update=single:\
--     %{pthread:-fprofile-update=prefer-atomic}}}";
-+     %{pthread:-fprofile-update=prefer-atomic}}}"
-+#ifdef POISON_BY_DEFAULT
-+ " %{!Wno-error=poison-system-directories:-Werror=poison-system-directories}"
-+#endif
-+  ;
- 
- static const char *asm_options =
- "%{-target-help:%:print-asm-header()} "
-diff --git a/gcc/incpath.cc b/gcc/incpath.cc
-index 622204a38..5ac03c086 100644
---- a/gcc/incpath.cc
-+++ b/gcc/incpath.cc
-@@ -26,6 +26,7 @@
- #include "intl.h"
- #include "incpath.h"
- #include "cppdefault.h"
-+#include "diagnostic-core.h"
- 
- /* Microsoft Windows does not natively support inodes.
-    VMS has non-numeric inodes.  */
-@@ -399,6 +400,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
- 	}
-       fprintf (stderr, _("End of search list.\n"));
-     }
-+
-+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-+  if (flag_poison_system_directories)
-+    {
-+       struct cpp_dir *p;
-+
-+       for (p = heads[INC_QUOTE]; p; p = p->next)
-+         {
-+          if ((!strncmp (p->name, "/usr/include", 12))
-+              || (!strncmp (p->name, "/usr/local/include", 18))
-+              || (!strncmp (p->name, "/usr/X11R6/include", 18))
-+              || (!strncmp (p->name, "/sw/include", 11))
-+              || (!strncmp (p->name, "/opt/include", 12)))
-+            warning (OPT_Wpoison_system_directories,
-+                     "include location \"%s\" is unsafe for "
-+                     "cross-compilation",
-+                     p->name);
-+         }
-+    }
-+#endif
- }
- 
- /* Use given -I paths for #include "..." but not #include <...>, and
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0003-64-bit-multilib-hack.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0003-64-bit-multilib-hack.patch
deleted file mode 100644
index e83f05b8..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0003-64-bit-multilib-hack.patch
+++ /dev/null
@@ -1,134 +0,0 @@ 
-From 34b861e7a4cfd7b1f0d2c0f8cf9bb0b0b81eb61a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:10:06 +0400
-Subject: [PATCH] 64-bit multilib hack.
-
-GCC has internal multilib handling code but it assumes a very specific rigid directory
-layout. The build system implementation of multilib layout is very generic and allows
-complete customisation of the library directories.
-
-This patch is a partial solution to allow any custom directories to be passed into gcc
-and handled correctly. It forces gcc to use the base_libdir (which is the current
-directory, "."). We need to do this for each multilib that is configured as we don't
-know which compiler options may be being passed into the compiler. Since we have a compiler
-per mulitlib at this point that isn't an issue.
-
-The one problem is the target compiler is only going to work for the default multlilib at
-this point. Ideally we'd figure out which multilibs were being enabled with which paths
-and be able to patch these entries with a complete set of correct paths but this we
-don't have such code at this point. This is something the target gcc recipe should do
-and override these platform defaults in its build config.
-
-Do same for riscv64, aarch64 & arc
-
-RP 15/8/11
-
-Upstream-Status: Inappropriate [OE-Specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
-Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/config/aarch64/t-aarch64-linux |  8 ++++----
- gcc/config/arc/t-multilib-linux    |  4 ++--
- gcc/config/i386/t-linux64          |  6 ++----
- gcc/config/mips/t-linux64          | 10 +++-------
- gcc/config/riscv/t-linux           |  6 ++++--
- gcc/config/rs6000/t-linux64        |  5 ++---
- 6 files changed, 17 insertions(+), 22 deletions(-)
-
-diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
-index d0cd546002a..f4056d68372 100644
---- a/gcc/config/aarch64/t-aarch64-linux
-+++ b/gcc/config/aarch64/t-aarch64-linux
-@@ -21,8 +21,8 @@
- LIB1ASMSRC   = aarch64/lib1funcs.asm
- LIB1ASMFUNCS = _aarch64_sync_cache_range
- 
--AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
--MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
--MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
-+#AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
-+#MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
-+#MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
- 
--MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
-+#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
-diff --git a/gcc/config/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux
-index ecb9ae6859f..12a164028d4 100644
---- a/gcc/config/arc/t-multilib-linux
-+++ b/gcc/config/arc/t-multilib-linux
-@@ -16,9 +16,9 @@
- # along with GCC; see the file COPYING3.  If not see
- # <http://www.gnu.org/licenses/>.
- 
--MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
-+#MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
- 
--MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
-+#MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
- 
- # Aliases:
- MULTILIB_MATCHES += mcpu?arc700=mA7
-diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
-index 5526ad0e6cc..fa51c88912b 100644
---- a/gcc/config/i386/t-linux64
-+++ b/gcc/config/i386/t-linux64
-@@ -32,7 +32,5 @@
- #
- comma=,
- MULTILIB_OPTIONS    = $(subst $(comma),/,$(TM_MULTILIB_CONFIG))
--MULTILIB_DIRNAMES   = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS)))
--MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu)
--MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu)
--MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
-+MULTILIB_DIRNAMES = . .
-+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
-diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64
-index 2fdd8e00407..04f2099250f 100644
---- a/gcc/config/mips/t-linux64
-+++ b/gcc/config/mips/t-linux64
-@@ -17,10 +17,6 @@
- # <http://www.gnu.org/licenses/>.
- 
- MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
--MULTILIB_DIRNAMES = n32 32 64
--MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el)
--MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft)
--MULTILIB_OSDIRNAMES = \
--	../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
--	../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
--	../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
-+MULTILIB_DIRNAMES = . . .
-+MULTILIB_OSDIRNAMES = ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
-+
-diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
-index 216d2776a18..e4d817621fc 100644
---- a/gcc/config/riscv/t-linux
-+++ b/gcc/config/riscv/t-linux
-@@ -1,3 +1,5 @@
- # Only XLEN and ABI affect Linux multilib dir names, e.g. /lib32/ilp32d/
--MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
--MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
-+#MULTILIB_DIRNAMES := $(patsubst rv32%,lib32,$(patsubst rv64%,lib64,$(MULTILIB_DIRNAMES)))
-+MULTILIB_DIRNAMES := . .
-+#MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
-+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
-diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
-index 47e0efd5764..05f5a3f188e 100644
---- a/gcc/config/rs6000/t-linux64
-+++ b/gcc/config/rs6000/t-linux64
-@@ -26,10 +26,9 @@
- # MULTILIB_OSDIRNAMES according to what is found on the target.
- 
- MULTILIB_OPTIONS    := m64/m32
--MULTILIB_DIRNAMES   := 64 32
-+MULTILIB_DIRNAMES   := . .
- MULTILIB_EXTRA_OPTS := 
--MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
--MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu)
-+MULTILIB_OSDIRNAMES := ../$(shell basename $(base_libdir)) ../$(shell basename $(base_libdir))
- 
- rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.cc
- 	$(COMPILE) $<
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
deleted file mode 100644
index e8f21634..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0004-Pass-CXXFLAGS_FOR_BUILD-in-a-couple-of-places-to-avo.patch
+++ /dev/null
@@ -1,64 +0,0 @@ 
-From 7f40f8321fb999e9b34d948724517d3fb0d26820 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Thu, 28 Oct 2021 11:33:40 +0100
-Subject: [PATCH] Pass CXXFLAGS_FOR_BUILD in a couple of places to avoid these
- errors.
-
-If CXXFLAGS contains something unsupported by the build CXX, we see build failures (e.g. using -fmacro-prefix-map for the target).
-
-2021-10-28 Richard Purdie <richard.purdie@linuxfoundation.org>
-
-ChangeLog:
-
-    * Makefile.in: Regenerate.
-    * Makefile.tpl: Add missing CXXFLAGS_FOR_BUILD overrides
-
-Upstream-Status: Pending [should be submittable]
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.in  | 2 ++
- Makefile.tpl | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/Makefile.in b/Makefile.in
-index 593495e1650..1d9c83cc566 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -176,6 +176,7 @@ BUILD_EXPORTS = \
- # built for the build system to override those in BASE_FLAGS_TO_PASS.
- EXTRA_BUILD_FLAGS = \
- 	CFLAGS="$(CFLAGS_FOR_BUILD)" \
-+	CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
- 	LDFLAGS="$(LDFLAGS_FOR_BUILD)"
- 
- # This is the list of directories to built for the host system.
-@@ -207,6 +208,7 @@ HOST_EXPORTS = \
- 	CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
- 	CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
- 	CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
-+	CXXFLAGS_FOR_BUILD="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS_FOR_BUILD; \
- 	DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
- 	DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \
- 	LD="$(LD)"; export LD; \
-diff --git a/Makefile.tpl b/Makefile.tpl
-index ef58fac2b9a..bab04f335c2 100644
---- a/Makefile.tpl
-+++ b/Makefile.tpl
-@@ -179,6 +179,7 @@ BUILD_EXPORTS = \
- # built for the build system to override those in BASE_FLAGS_TO_PASS.
- EXTRA_BUILD_FLAGS = \
- 	CFLAGS="$(CFLAGS_FOR_BUILD)" \
-+	CXXFLAGS="$(CXXFLAGS_FOR_BUILD)" \
- 	LDFLAGS="$(LDFLAGS_FOR_BUILD)"
- 
- # This is the list of directories to built for the host system.
-@@ -210,6 +211,7 @@ HOST_EXPORTS = \
- 	CPP_FOR_BUILD="$(CPP_FOR_BUILD)"; export CPP_FOR_BUILD; \
- 	CPPFLAGS_FOR_BUILD="$(CPPFLAGS_FOR_BUILD)"; export CPPFLAGS_FOR_BUILD; \
- 	CXX_FOR_BUILD="$(CXX_FOR_BUILD)"; export CXX_FOR_BUILD; \
-+	CXXFLAGS_FOR_BUILD="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS_FOR_BUILD; \
- 	DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
- 	DSYMUTIL="$(DSYMUTIL)"; export DSYMUTIL; \
- 	LD="$(LD)"; export LD; \
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
deleted file mode 100644
index e34eb2cf..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0005-Use-the-defaults.h-in-B-instead-of-S-and-t-oe-in-B.patch
+++ /dev/null
@@ -1,92 +0,0 @@ 
-From 5455fc1de74897a27c1199dc5611ec02243e24af Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:17:25 +0400
-Subject: [PATCH] Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}
-
-Use the defaults.h in ${B} instead of ${S}, and t-oe in ${B}, so that
-the source can be shared between gcc-cross-initial,
-gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-While compiling gcc-crosssdk-initial-x86_64 on some host, there is
-occasionally failure that test the existance of default.h doesn't
-work, the reason is tm_include_list='** defaults.h' rather than
-tm_include_list='** ./defaults.h'
-
-So we add the test condition for this situation.
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- gcc/Makefile.in  | 2 +-
- gcc/configure    | 4 ++--
- gcc/configure.ac | 4 ++--
- gcc/mkconfig.sh  | 4 ++--
- 4 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 31ff95500c9..a8277254696 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -553,7 +553,7 @@ TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@
- TARGET_SYSTEM_ROOT_DEFINE = @TARGET_SYSTEM_ROOT_DEFINE@
- 
- xmake_file=@xmake_file@
--tmake_file=@tmake_file@
-+tmake_file=@tmake_file@ ./t-oe
- TM_ENDIAN_CONFIG=@TM_ENDIAN_CONFIG@
- TM_MULTILIB_CONFIG=@TM_MULTILIB_CONFIG@
- TM_MULTILIB_EXCEPTIONS_CONFIG=@TM_MULTILIB_EXCEPTIONS_CONFIG@
-diff --git a/gcc/configure b/gcc/configure
-index dc2d59701ad..3fc0e2f5813 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -13381,8 +13381,8 @@ for f in $tm_file; do
-        tm_include_list="${tm_include_list} $f"
-        ;;
-     defaults.h )
--       tm_file_list="${tm_file_list} \$(srcdir)/$f"
--       tm_include_list="${tm_include_list} $f"
-+       tm_file_list="${tm_file_list} ./$f"
-+       tm_include_list="${tm_include_list} ./$f"
-        ;;
-     * )
-        tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 36ce78924de..46de496b256 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -2332,8 +2332,8 @@ for f in $tm_file; do
-        tm_include_list="${tm_include_list} $f"
-        ;;
-     defaults.h )
--       tm_file_list="${tm_file_list} \$(srcdir)/$f"
--       tm_include_list="${tm_include_list} $f"
-+       tm_file_list="${tm_file_list} ./$f"
-+       tm_include_list="${tm_include_list} ./$f"
-        ;;
-     * )
-        tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
-diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
-index 91cc43f69ff..8de33713cd8 100644
---- a/gcc/mkconfig.sh
-+++ b/gcc/mkconfig.sh
-@@ -77,7 +77,7 @@ if [ -n "$HEADERS" ]; then
-     if [ $# -ge 1 ]; then
- 	echo '#ifdef IN_GCC' >> ${output}T
- 	for file in "$@"; do
--	    if test x"$file" = x"defaults.h"; then
-+	    if test x"$file" = x"./defaults.h" -o x"$file" = x"defaults.h"; then
- 		postpone_defaults_h="yes"
- 	    else
- 		echo "# include \"$file\"" >> ${output}T
-@@ -106,7 +106,7 @@ esac
- 
- # If we postponed including defaults.h, add the #include now.
- if test x"$postpone_defaults_h" = x"yes"; then
--    echo "# include \"defaults.h\"" >> ${output}T
-+    echo "# include \"./defaults.h\"" >> ${output}T
- fi
- 
- # Add multiple inclusion protection guard, part two.
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0006-cpp-honor-sysroot.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0006-cpp-honor-sysroot.patch
deleted file mode 100644
index b08aecc7..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0006-cpp-honor-sysroot.patch
+++ /dev/null
@@ -1,53 +0,0 @@ 
-From abc3b82ab24169277f2090e9df1ceac3573142be Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:22:00 +0400
-Subject: [PATCH] cpp: honor sysroot.
-
-Currently, if the gcc toolchain is relocated and installed from sstate, then you try and compile
-preprocessed source (.i or .ii files), the compiler will try and access the builtin sysroot location
-rather than the --sysroot option specified on the commandline. If access to that directory is
-permission denied (unreadable), gcc will error.
-
-This happens when ccache is in use due to the fact it uses preprocessed source files.
-
-The fix below adds %I to the cpp-output spec macro so the default substitutions for -iprefix,
--isystem, -isysroot happen and the correct sysroot is used.
-
-[YOCTO #2074]
-
-RP 2012/04/13
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/cp/lang-specs.h | 2 +-
- gcc/gcc.cc          | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gcc/cp/lang-specs.h b/gcc/cp/lang-specs.h
-index f35c9fab76b..19ddc98ce7f 100644
---- a/gcc/cp/lang-specs.h
-+++ b/gcc/cp/lang-specs.h
-@@ -116,7 +116,7 @@ along with GCC; see the file COPYING3.  If not see
-   {".ii", "@c++-cpp-output", 0, 0, 0},
-   {"@c++-cpp-output",
-       "%{!E:%{!M:%{!MM:"
--      "  cc1plus -fpreprocessed %i %(cc1_options) %2"
-+      "  cc1plus -fpreprocessed %i %I %(cc1_options) %2"
-       "  %{!fsyntax-only:"
-       "    %{fmodule-only:%{!S:-o %g.s%V}}"
-       "    %{!fmodule-only:%{!fmodule-header*:%(invoke_as)}}}"
-diff --git a/gcc/gcc.cc b/gcc/gcc.cc
-index ce161d3c853..aa4cf92fb78 100644
---- a/gcc/gcc.cc
-+++ b/gcc/gcc.cc
-@@ -1476,7 +1476,7 @@ static const struct compiler default_compilers[] =
- 					   %W{o*:--output-pch=%*}}%V}}}}}}}", 0, 0, 0},
-   {".i", "@cpp-output", 0, 0, 0},
-   {"@cpp-output",
--   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
-+   "%{!M:%{!MM:%{!E:cc1 -fpreprocessed %i %I %(cc1_options) %{!fsyntax-only:%(invoke_as)}}}}", 0, 0, 0},
-   {".s", "@assembler", 0, 0, 0},
-   {"@assembler",
-    "%{!M:%{!MM:%{!E:%{!S:as %(asm_debug) %(asm_options) %i %A }}}}", 0, 0, 0},
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
deleted file mode 100644
index b59eed57..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0007-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ /dev/null
@@ -1,403 +0,0 @@ 
-From 4de00af67b57b5440bdf61ab364ad959ad0aeee7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:24:50 +0400
-Subject: [PATCH] Define GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
- relative to SYSTEMLIBS_DIR
-
-This patch defines GLIBC_DYNAMIC_LINKER and UCLIBC_DYNAMIC_LINKER
-relative to SYSTEMLIBS_DIR which can be set in generated headers
-This breaks the assumption of hardcoded multilib in gcc
-Change is only for the supported architectures in OE including
-SH, sparc, alpha for possible future support (if any)
-
-Removes the do_headerfix task in metadata
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate [OE configuration]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/config/aarch64/aarch64-linux.h |  4 ++--
- gcc/config/alpha/linux-elf.h       |  4 ++--
- gcc/config/arm/linux-eabi.h        |  6 +++---
- gcc/config/arm/linux-elf.h         |  2 +-
- gcc/config/i386/linux.h            |  4 ++--
- gcc/config/i386/linux64.h          | 12 ++++++------
- gcc/config/linux.h                 |  8 ++++----
- gcc/config/loongarch/gnu-user.h    |  4 ++--
- gcc/config/microblaze/linux.h      |  4 ++--
- gcc/config/mips/linux.h            | 18 +++++++++---------
- gcc/config/nios2/linux.h           |  4 ++--
- gcc/config/riscv/linux.h           |  4 ++--
- gcc/config/rs6000/linux64.h        | 15 +++++----------
- gcc/config/rs6000/sysv4.h          |  4 ++--
- gcc/config/s390/linux.h            |  8 ++++----
- gcc/config/sh/linux.h              |  4 ++--
- gcc/config/sparc/linux.h           |  2 +-
- gcc/config/sparc/linux64.h         |  4 ++--
- 18 files changed, 53 insertions(+), 58 deletions(-)
-
-diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index 5e4553d79f5..877e8841eb2 100644
---- a/gcc/config/aarch64/aarch64-linux.h
-+++ b/gcc/config/aarch64/aarch64-linux.h
-@@ -21,10 +21,10 @@
- #ifndef GCC_AARCH64_LINUX_H
- #define GCC_AARCH64_LINUX_H
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
-+#define GLIBC_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-linux-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
- 
- #undef MUSL_DYNAMIC_LINKER
--#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
-+#define MUSL_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1"
- 
- #undef  ASAN_CC1_SPEC
- #define ASAN_CC1_SPEC "%{%:sanitize(address):-funwind-tables}"
-diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
-index 17f16a55910..0a7be38fa63 100644
---- a/gcc/config/alpha/linux-elf.h
-+++ b/gcc/config/alpha/linux-elf.h
-@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3.  If not see
- #define EXTRA_SPECS \
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
- 
--#define GLIBC_DYNAMIC_LINKER	"/lib/ld-linux.so.2"
--#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#define GLIBC_DYNAMIC_LINKER	SYSTEMLIBS_DIR "ld-linux.so.2"
-+#define UCLIBC_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-uClibc.so.0"
- #if DEFAULT_LIBC == LIBC_UCLIBC
- #define CHOOSE_DYNAMIC_LINKER(G, U) "%{mglibc:" G ";:" U "}"
- #elif DEFAULT_LIBC == LIBC_GLIBC
-diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
-index 50cc0bc6d08..17c18b27145 100644
---- a/gcc/config/arm/linux-eabi.h
-+++ b/gcc/config/arm/linux-eabi.h
-@@ -65,8 +65,8 @@
-    GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
- 
- #undef  GLIBC_DYNAMIC_LINKER
--#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT "/lib/ld-linux.so.3"
--#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT "/lib/ld-linux-armhf.so.3"
-+#define GLIBC_DYNAMIC_LINKER_SOFT_FLOAT SYSTEMLIBS_DIR "ld-linux.so.3"
-+#define GLIBC_DYNAMIC_LINKER_HARD_FLOAT SYSTEMLIBS_DIR "ld-linux-armhf.so.3"
- #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
- 
- #define GLIBC_DYNAMIC_LINKER \
-@@ -89,7 +89,7 @@
- #define MUSL_DYNAMIC_LINKER_E "%{mbig-endian:eb}"
- #endif
- #define MUSL_DYNAMIC_LINKER \
--  "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
-+  SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
- 
- /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
-    use the GNU/Linux version, not the generic BPABI version.  */
-diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
-index df3da67c4f0..37456e9d5a4 100644
---- a/gcc/config/arm/linux-elf.h
-+++ b/gcc/config/arm/linux-elf.h
-@@ -60,7 +60,7 @@
- 
- #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
- 
- #define LINUX_TARGET_LINK_SPEC  "%{h*} \
-    %{static:-Bstatic} \
-diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
-index 5d99ee56d5b..a76022c9ccc 100644
---- a/gcc/config/i386/linux.h
-+++ b/gcc/config/i386/linux.h
-@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3.  If not see
- <http://www.gnu.org/licenses/>.  */
- 
- #define GNU_USER_LINK_EMULATION "elf_i386"
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
- 
- #undef MUSL_DYNAMIC_LINKER
--#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
-+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
-diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
-index 8681e36f10d..ddce49b6b60 100644
---- a/gcc/config/i386/linux64.h
-+++ b/gcc/config/i386/linux64.h
-@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
- #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
- 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
--#define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2"
-+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux-x86-64.so.2"
-+#define GLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-linux-x32.so.2"
- 
- #undef MUSL_DYNAMIC_LINKER32
--#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-i386.so.1"
-+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-i386.so.1"
- #undef MUSL_DYNAMIC_LINKER64
--#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-x86_64.so.1"
-+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-x86_64.so.1"
- #undef MUSL_DYNAMIC_LINKERX32
--#define MUSL_DYNAMIC_LINKERX32 "/lib/ld-musl-x32.so.1"
-+#define MUSL_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ld-musl-x32.so.1"
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 74f70793d90..4ce173384ef 100644
---- a/gcc/config/linux.h
-+++ b/gcc/config/linux.h
-@@ -99,10 +99,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-    GLIBC_DYNAMIC_LINKER must be defined for each target using them, or
-    GLIBC_DYNAMIC_LINKER32 and GLIBC_DYNAMIC_LINKER64 for targets
-    supporting both 32-bit and 64-bit compilation.  */
--#define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
--#define UCLIBC_DYNAMIC_LINKER32 "/lib/ld-uClibc.so.0"
--#define UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
--#define UCLIBC_DYNAMIC_LINKERX32 "/lib/ldx32-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64-uClibc.so.0"
-+#define UCLIBC_DYNAMIC_LINKERX32 SYSTEMLIBS_DIR "ldx32-uClibc.so.0"
- #define BIONIC_DYNAMIC_LINKER "/system/bin/linker"
- #define BIONIC_DYNAMIC_LINKER32 "/system/bin/linker"
- #define BIONIC_DYNAMIC_LINKER64 "/system/bin/linker64"
-diff --git a/gcc/config/loongarch/gnu-user.h b/gcc/config/loongarch/gnu-user.h
-index 664dc9206ad..082bd7cfc6f 100644
---- a/gcc/config/loongarch/gnu-user.h
-+++ b/gcc/config/loongarch/gnu-user.h
-@@ -31,11 +31,11 @@ along with GCC; see the file COPYING3.  If not see
- 
- #undef GLIBC_DYNAMIC_LINKER
- #define GLIBC_DYNAMIC_LINKER \
--  "/lib" ABI_GRLEN_SPEC "/ld-linux-loongarch-" ABI_SPEC ".so.1"
-+  SYSTEMLIBS_DIR "ld-linux-loongarch-" ABI_SPEC ".so.1"
- 
- #undef MUSL_DYNAMIC_LINKER
- #define MUSL_DYNAMIC_LINKER \
--  "/lib" ABI_GRLEN_SPEC "/ld-musl-loongarch-" ABI_SPEC ".so.1"
-+  SYSTEMLIBS_DIR "ld-musl-loongarch-" ABI_SPEC ".so.1"
- 
- #undef GNU_USER_TARGET_LINK_SPEC
- #define GNU_USER_TARGET_LINK_SPEC \
-diff --git a/gcc/config/microblaze/linux.h b/gcc/config/microblaze/linux.h
-index 5b1a365eda4..2e63df1ae9c 100644
---- a/gcc/config/microblaze/linux.h
-+++ b/gcc/config/microblaze/linux.h
-@@ -28,7 +28,7 @@
- #undef TLS_NEEDS_GOT
- #define TLS_NEEDS_GOT 1
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "/ld.so.1"
- #define UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
- 
- #if TARGET_BIG_ENDIAN_DEFAULT == 0 /* LE */
-@@ -38,7 +38,7 @@
- #endif
- 
- #undef MUSL_DYNAMIC_LINKER
--#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
-+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-microblaze" MUSL_DYNAMIC_LINKER_E ".so.1"
- 
- #undef  SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS \
-diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h
-index 230b7789bb8..d96d134bfcf 100644
---- a/gcc/config/mips/linux.h
-+++ b/gcc/config/mips/linux.h
-@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3.  If not see
- #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
- 
- #define GLIBC_DYNAMIC_LINKER32 \
--  "%{mnan=2008:/lib/ld-linux-mipsn8.so.1;:/lib/ld.so.1}"
-+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
- #define GLIBC_DYNAMIC_LINKER64 \
--  "%{mnan=2008:/lib64/ld-linux-mipsn8.so.1;:/lib64/ld.so.1}"
-+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
- #define GLIBC_DYNAMIC_LINKERN32 \
--  "%{mnan=2008:/lib32/ld-linux-mipsn8.so.1;:/lib32/ld.so.1}"
-+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-linux-mipsn8.so.1;:" SYSTEMLIBS_DIR "ld.so.1}"
- 
- #undef UCLIBC_DYNAMIC_LINKER32
- #define UCLIBC_DYNAMIC_LINKER32 \
--  "%{mnan=2008:/lib/ld-uClibc-mipsn8.so.0;:/lib/ld-uClibc.so.0}"
-+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
- #undef UCLIBC_DYNAMIC_LINKER64
- #define UCLIBC_DYNAMIC_LINKER64 \
--  "%{mnan=2008:/lib/ld64-uClibc-mipsn8.so.0;:/lib/ld64-uClibc.so.0}"
-+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld64-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld64-uClibc.so.0}"
- #define UCLIBC_DYNAMIC_LINKERN32 \
--  "%{mnan=2008:/lib32/ld-uClibc-mipsn8.so.0;:/lib32/ld-uClibc.so.0}"
-+  "%{mnan=2008:" SYSTEMLIBS_DIR "ld-uClibc-mipsn8.so.0;:" SYSTEMLIBS_DIR "ld-uClibc.so.0}"
- 
- #undef MUSL_DYNAMIC_LINKER32
- #define MUSL_DYNAMIC_LINKER32 \
--  "/lib/ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
-+  SYSTEMLIBS_DIR "ld-musl-mips%{mips32r6|mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
- #undef MUSL_DYNAMIC_LINKER64
- #define MUSL_DYNAMIC_LINKER64 \
--  "/lib/ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
-+  SYSTEMLIBS_DIR "ld-musl-mips64%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
- #define MUSL_DYNAMIC_LINKERN32 \
--  "/lib/ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
-+  SYSTEMLIBS_DIR "ld-musl-mipsn32%{mips64r6:r6}%{EL:el}%{msoft-float:-sf}.so.1"
- 
- #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
- #define GNU_USER_DYNAMIC_LINKERN32 \
-diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
-index f5dd813acad..7a13e1c9799 100644
---- a/gcc/config/nios2/linux.h
-+++ b/gcc/config/nios2/linux.h
-@@ -29,8 +29,8 @@
- #undef CPP_SPEC
- #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
--#define MUSL_DYNAMIC_LINKER  "/lib/ld-musl-nios2.so.1"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-nios2.so.1"
-+#define MUSL_DYNAMIC_LINKER  SYSTEMLIBS_DIR "ld-musl-nios2.so.1"
- 
- #undef LINK_SPEC
- #define LINK_SPEC LINK_SPEC_ENDIAN \
-diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
-index 38803723ba9..d5ef8a96a19 100644
---- a/gcc/config/riscv/linux.h
-+++ b/gcc/config/riscv/linux.h
-@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.  If not see
-     GNU_USER_TARGET_OS_CPP_BUILTINS();				\
-   } while (0)
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-riscv" XLEN_SPEC "-" ABI_SPEC ".so.1"
- 
- #define MUSL_ABI_SUFFIX \
-   "%{mabi=ilp32:-sf}" \
-@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.  If not see
-   "%{mabi=lp64d:}"
- 
- #undef MUSL_DYNAMIC_LINKER
--#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
-+#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-riscv" XLEN_SPEC MUSL_ABI_SUFFIX ".so.1"
- 
- /* Because RISC-V only has word-sized atomics, it requries libatomic where
-    others do not.  So link libatomic by default, as needed.  */
-diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index b2a7afabc73..364c1a5b155 100644
---- a/gcc/config/rs6000/linux64.h
-+++ b/gcc/config/rs6000/linux64.h
-@@ -339,24 +339,19 @@ extern int dot_symbols;
- #undef	LINK_OS_DEFAULT_SPEC
- #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
- 
--#define GLIBC_DYNAMIC_LINKER32 "%(dynamic_linker_prefix)/lib/ld.so.1"
--
-+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
- #ifdef LINUX64_DEFAULT_ABI_ELFv2
--#define GLIBC_DYNAMIC_LINKER64 \
--"%{mabi=elfv1:%(dynamic_linker_prefix)/lib64/ld64.so.1;" \
--":%(dynamic_linker_prefix)/lib64/ld64.so.2}"
-+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv1:" SYSTEMLIBS_DIR "ld64.so.1;:" SYSTEMLIBS_DIR "ld64.so.2}"
- #else
--#define GLIBC_DYNAMIC_LINKER64 \
--"%{mabi=elfv2:%(dynamic_linker_prefix)/lib64/ld64.so.2;" \
--":%(dynamic_linker_prefix)/lib64/ld64.so.1}"
-+#define GLIBC_DYNAMIC_LINKER64 "%{mabi=elfv2:" SYSTEMLIBS_DIR "ld64.so.2;:" SYSTEMLIBS_DIR "ld64.so.1}"
- #endif
- 
- #undef MUSL_DYNAMIC_LINKER32
- #define MUSL_DYNAMIC_LINKER32 \
--  "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
-+  SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
- #undef MUSL_DYNAMIC_LINKER64
- #define MUSL_DYNAMIC_LINKER64 \
--  "/lib/ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
-+  SYSTEMLIBS_DIR "ld-musl-powerpc64" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
- 
- #undef  DEFAULT_ASM_ENDIAN
- #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
-diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
-index 7e2519de5d4..a73954d9de5 100644
---- a/gcc/config/rs6000/sysv4.h
-+++ b/gcc/config/rs6000/sysv4.h
-@@ -779,10 +779,10 @@ GNU_USER_TARGET_CC1_SPEC
- 
- #define MUSL_DYNAMIC_LINKER_E ENDIAN_SELECT("","le","")
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld.so.1"
- #undef MUSL_DYNAMIC_LINKER
- #define MUSL_DYNAMIC_LINKER \
--  "/lib/ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
-+  SYSTEMLIBS_DIR "ld-musl-powerpc" MUSL_DYNAMIC_LINKER_E "%{msoft-float:-sf}.so.1"
- 
- #ifndef GNU_USER_DYNAMIC_LINKER
- #define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
-diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
-index d7b7e7a7b02..0139b4d06ca 100644
---- a/gcc/config/s390/linux.h
-+++ b/gcc/config/s390/linux.h
-@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3.  If not see
- #define MULTILIB_DEFAULTS { "m31" }
- #endif
- 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
--#define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
-+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld.so.1"
-+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld64.so.1"
- 
- #undef MUSL_DYNAMIC_LINKER32
--#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1"
-+#define MUSL_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-musl-s390.so.1"
- #undef MUSL_DYNAMIC_LINKER64
--#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1"
-+#define MUSL_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-musl-s390x.so.1"
- 
- #undef  LINK_SPEC
- #define LINK_SPEC \
-diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
-index d96d077c99e..7d27f9893ee 100644
---- a/gcc/config/sh/linux.h
-+++ b/gcc/config/sh/linux.h
-@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3.  If not see
- 
- #undef MUSL_DYNAMIC_LINKER
- #define MUSL_DYNAMIC_LINKER \
--  "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
-+  SYSTEMLIBS_DIR "ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
-   "%{mfdpic:-fdpic}.so.1"
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
- 
- #undef SUBTARGET_LINK_EMUL_SUFFIX
- #define SUBTARGET_LINK_EMUL_SUFFIX "%{mfdpic:_fd;:_linux}"
-diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
-index 6a809e9092d..60603765ad6 100644
---- a/gcc/config/sparc/linux.h
-+++ b/gcc/config/sparc/linux.h
-@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
-    When the -shared link option is used a final link is not being
-    done.  */
- 
--#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
- 
- #undef  LINK_SPEC
- #define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
-diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
-index d08a2ef96fe..e6955da0a5b 100644
---- a/gcc/config/sparc/linux64.h
-+++ b/gcc/config/sparc/linux64.h
-@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3.  If not see
-    When the -shared link option is used a final link is not being
-    done.  */
- 
--#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
--#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER32 SYSTEMLIBS_DIR "ld-linux.so.2"
-+#define GLIBC_DYNAMIC_LINKER64 SYSTEMLIBS_DIR "ld-linux.so.2"
- 
- #ifdef SPARC_BI_ARCH
- 
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0008-libtool.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0008-libtool.patch
deleted file mode 100644
index c9bc38cc..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0008-libtool.patch
+++ /dev/null
@@ -1,39 +0,0 @@ 
-From 5117519c1897a49b09fe7fff213b9c2ea15d37f5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:29:11 +0400
-Subject: [PATCH] libtool
-
-libstdc++ from gcc-runtime gets created with -rpath=/usr/lib/../lib for qemux86-64
-when running on am x86_64 build host.
-
-This patch stops this speading to libdir in the libstdc++.la file within libtool.
-Arguably, it shouldn't be passing this into libtool in the first place but
-for now this resolves the nastiest problems this causes.
-
-func_normal_abspath would resolve an empty path to `pwd` so we need
-to filter the zero case.
-
-RP 2012/8/24
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- ltmain.sh | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/ltmain.sh b/ltmain.sh
-index 70990740b6c..ee938056bef 100644
---- a/ltmain.sh
-+++ b/ltmain.sh
-@@ -6359,6 +6359,10 @@ func_mode_link ()
- 	func_warning "ignoring multiple \`-rpath's for a libtool library"
- 
-       install_libdir="$1"
-+      if test -n "$install_libdir"; then
-+	func_normal_abspath "$install_libdir"
-+	install_libdir=$func_normal_abspath_result
-+      fi
- 
-       oldlibs=
-       if test -z "$rpath"; then
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
deleted file mode 100644
index dd67b115..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ /dev/null
@@ -1,40 +0,0 @@ 
-From 32129f9682d0d27fc67af10f077ad2768935cbe6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:30:32 +0400
-Subject: [PATCH] gcc: armv4: pass fix-v4bx to linker to support EABI.
-
-The LINK_SPEC for linux gets overwritten by linux-eabi.h which
-means the value of TARGET_FIX_V4BX_SPEC gets lost and as a result
-the option is not passed to linker when chosing march=armv4
-This patch redefines this in linux-eabi.h and reinserts it
-for eabi defaulting toolchains.
-
-We might want to send it upstream.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
----
- gcc/config/arm/linux-eabi.h | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h
-index 17c18b27145..8eacb099317 100644
---- a/gcc/config/arm/linux-eabi.h
-+++ b/gcc/config/arm/linux-eabi.h
-@@ -91,10 +91,14 @@
- #define MUSL_DYNAMIC_LINKER \
-   SYSTEMLIBS_DIR "ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}%{mfdpic:-fdpic}.so.1"
- 
-+/* For armv4 we pass --fix-v4bx to linker to support EABI */
-+#undef TARGET_FIX_V4BX_SPEC
-+#define TARGET_FIX_V4BX_SPEC "%{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4: --fix-v4bx}"
-+
- /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
-    use the GNU/Linux version, not the generic BPABI version.  */
- #undef  LINK_SPEC
--#define LINK_SPEC EABI_LINK_SPEC					\
-+#define LINK_SPEC TARGET_FIX_V4BX_SPEC EABI_LINK_SPEC			\
-   LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC,				\
- 		       LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
- 
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
deleted file mode 100644
index 45edc62e..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0010-Use-the-multilib-config-files-from-B-instead-of-usin.patch
+++ /dev/null
@@ -1,99 +0,0 @@ 
-From bf85b8bbcb4b77725d4c22c1bb25a29f6ff21038 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 Mar 2013 09:33:04 +0400
-Subject: [PATCH] Use the multilib config files from ${B} instead of using the
- ones from ${S}
-
-Use the multilib config files from ${B} instead of using the ones from ${S}
-so that the source can be shared between gcc-cross-initial,
-gcc-cross-intermediate, gcc-cross, gcc-runtime, and also the sdk build.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Upstream-Status: Inappropriate [configuration]
----
- gcc/configure    | 22 ++++++++++++++++++----
- gcc/configure.ac | 22 ++++++++++++++++++----
- 2 files changed, 36 insertions(+), 8 deletions(-)
-
-diff --git a/gcc/configure b/gcc/configure
-index 3fc0e2f5813..2f0f0e057a9 100755
---- a/gcc/configure
-+++ b/gcc/configure
-@@ -13361,10 +13361,20 @@ done
- tmake_file_=
- for f in ${tmake_file}
- do
--	if test -f ${srcdir}/config/$f
--	then
--		tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
--	fi
-+  case $f in
-+    */t-linux64 )
-+       if test -f ./config/$f
-+       then
-+         tmake_file_="${tmake_file_} ./config/$f"
-+       fi
-+       ;;
-+    * )
-+       if test -f ${srcdir}/config/$f
-+       then
-+         tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
-+       fi
-+       ;;
-+  esac
- done
- tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
- 
-@@ -13375,6 +13385,10 @@ tm_file_list="options.h"
- tm_include_list="options.h insn-constants.h"
- for f in $tm_file; do
-   case $f in
-+    */linux64.h )
-+       tm_file_list="${tm_file_list} ./config/$f"
-+       tm_include_list="${tm_include_list} ./config/$f"
-+       ;;
-     ./* )
-        f=`echo $f | sed 's/^..//'`
-        tm_file_list="${tm_file_list} $f"
-diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 46de496b256..6155b83a732 100644
---- a/gcc/configure.ac
-+++ b/gcc/configure.ac
-@@ -2312,10 +2312,20 @@ done
- tmake_file_=
- for f in ${tmake_file}
- do
--	if test -f ${srcdir}/config/$f
--	then
--		tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
--	fi
-+  case $f in
-+    */t-linux64 )
-+       if test -f ./config/$f
-+       then
-+         tmake_file_="${tmake_file_} ./config/$f"
-+       fi
-+       ;;
-+    * )
-+       if test -f ${srcdir}/config/$f
-+       then
-+         tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
-+       fi
-+       ;;
-+  esac
- done
- tmake_file="${tmake_file_}${omp_device_property_tmake_file}"
- 
-@@ -2326,6 +2336,10 @@ tm_file_list="options.h"
- tm_include_list="options.h insn-constants.h"
- for f in $tm_file; do
-   case $f in
-+    */linux64.h )
-+       tm_file_list="${tm_file_list} ./config/$f"
-+       tm_include_list="${tm_include_list} ./config/$f"
-+       ;;
-     ./* )
-        f=`echo $f | sed 's/^..//'`
-        tm_file_list="${tm_file_list} $f"
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
deleted file mode 100644
index 352c6eec..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0011-Avoid-using-libdir-from-.la-which-usually-points-to-.patch
+++ /dev/null
@@ -1,28 +0,0 @@ 
-From e5463727ff028cee5e452da38f5b4c44d52e412e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 20 Feb 2015 09:39:38 +0000
-Subject: [PATCH] Avoid using libdir from .la which usually points to a host
- path
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Jonathan Liu <net147@gmail.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ltmain.sh | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/ltmain.sh b/ltmain.sh
-index ee938056bef..9ebc7e3d1e0 100644
---- a/ltmain.sh
-+++ b/ltmain.sh
-@@ -5628,6 +5628,9 @@ func_mode_link ()
- 	    absdir="$abs_ladir"
- 	    libdir="$abs_ladir"
- 	  else
-+	    # Instead of using libdir from .la which usually points to a host path,
-+	    # use the path the .la is contained in.
-+	    libdir="$abs_ladir"
- 	    dir="$libdir"
- 	    absdir="$libdir"
- 	  fi
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0013-Ensure-target-gcc-headers-can-be-included.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0013-Ensure-target-gcc-headers-can-be-included.patch
deleted file mode 100644
index 61e61ecc..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0013-Ensure-target-gcc-headers-can-be-included.patch
+++ /dev/null
@@ -1,113 +0,0 @@ 
-From 612801d426e75ff997cfabda380dbe52c2cbc532 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 20 Feb 2015 10:25:11 +0000
-Subject: [PATCH] Ensure target gcc headers can be included
-
-There are a few headers installed as part of the OpenEmbedded
-gcc-runtime target (omp.h, ssp/*.h). Being installed from a recipe
-built for the target architecture, these are within the target
-sysroot and not cross/nativesdk; thus they weren't able to be
-found by gcc with the existing search paths. Add support for
-picking up these headers under the sysroot supplied on the gcc
-command line in order to resolve this.
-
-Extend target gcc headers search to musl too
-
-Upstream-Status: Pending
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/Makefile.in           | 2 ++
- gcc/config/linux.h        | 8 ++++++++
- gcc/config/rs6000/sysv4.h | 8 ++++++++
- gcc/cppdefault.cc         | 4 ++++
- 4 files changed, 22 insertions(+)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index a8277254696..07fa63b6640 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -632,6 +632,7 @@ libexecdir = @libexecdir@
- 
- # Directory in which the compiler finds libraries etc.
- libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
-+libsubdir_target = $(target_noncanonical)/$(version)
- # Directory in which the compiler finds executables
- libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix)
- # Directory in which all plugin resources are installed
-@@ -3024,6 +3025,7 @@ CFLAGS-intl.o += -DLOCALEDIR=\"$(localedir)\"
- 
- PREPROCESSOR_DEFINES = \
-   -DGCC_INCLUDE_DIR=\"$(libsubdir)/include\" \
-+  -DGCC_INCLUDE_SUBDIR_TARGET=\"$(libsubdir_target)/include\" \
-   -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \
-   -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \
-   -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 4ce173384ef..8a3cd4f2d34 100644
---- a/gcc/config/linux.h
-+++ b/gcc/config/linux.h
-@@ -170,6 +170,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
- #define INCLUDE_DEFAULTS_MUSL_TOOL
- #endif
- 
-+#ifdef GCC_INCLUDE_SUBDIR_TARGET
-+#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET		\
-+    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
-+#endif
-+
- #ifdef NATIVE_SYSTEM_HEADER_DIR
- #define INCLUDE_DEFAULTS_MUSL_NATIVE			\
-     { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },	\
-@@ -196,6 +203,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-     INCLUDE_DEFAULTS_MUSL_PREFIX			\
-     INCLUDE_DEFAULTS_MUSL_CROSS				\
-     INCLUDE_DEFAULTS_MUSL_TOOL				\
-+    INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET			\
-     INCLUDE_DEFAULTS_MUSL_NATIVE			\
-     { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
-     { 0, 0, 0, 0, 0, 0 }				\
-diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
-index a73954d9de5..e5dd6538358 100644
---- a/gcc/config/rs6000/sysv4.h
-+++ b/gcc/config/rs6000/sysv4.h
-@@ -994,6 +994,13 @@ ncrtn.o%s"
- #define INCLUDE_DEFAULTS_MUSL_TOOL
- #endif
- 
-+#ifdef GCC_INCLUDE_SUBDIR_TARGET
-+#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET            \
-+    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
-+#else
-+#define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
-+#endif
-+
- #ifdef NATIVE_SYSTEM_HEADER_DIR
- #define INCLUDE_DEFAULTS_MUSL_NATIVE			\
-     { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },	\
-@@ -1020,6 +1027,7 @@ ncrtn.o%s"
-     INCLUDE_DEFAULTS_MUSL_PREFIX			\
-     INCLUDE_DEFAULTS_MUSL_CROSS				\
-     INCLUDE_DEFAULTS_MUSL_TOOL				\
-+    INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET			\
-     INCLUDE_DEFAULTS_MUSL_NATIVE			\
-     { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
-     { 0, 0, 0, 0, 0, 0 }				\
-diff --git a/gcc/cppdefault.cc b/gcc/cppdefault.cc
-index 7888300f277..52cf14e92f8 100644
---- a/gcc/cppdefault.cc
-+++ b/gcc/cppdefault.cc
-@@ -64,6 +64,10 @@ const struct default_include cpp_include_defaults[]
-     /* This is the dir for gcc's private headers.  */
-     { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
- #endif
-+#ifdef GCC_INCLUDE_SUBDIR_TARGET
-+    /* This is the dir for gcc's private headers under the specified sysroot.  */
-+    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 },
-+#endif
- #ifdef LOCAL_INCLUDE_DIR
-     /* /usr/local/include comes before the fixincluded header files.  */
-     { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
deleted file mode 100644
index 94308b2a..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0014-Don-t-search-host-directory-during-relink-if-inst_pr.patch
+++ /dev/null
@@ -1,35 +0,0 @@ 
-From 9ae49e7b88c208ab79ec9c2fc4a2fa8a3f1e85bb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 3 Mar 2015 08:21:19 +0000
-Subject: [PATCH] Don't search host directory during "relink" if $inst_prefix
- is provided
-
-http://lists.gnu.org/archive/html/libtool-patches/2011-01/msg00026.html
-
-Upstream-Status: Submitted
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ltmain.sh | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/ltmain.sh b/ltmain.sh
-index 9ebc7e3d1e0..7ea79fa8be6 100644
---- a/ltmain.sh
-+++ b/ltmain.sh
-@@ -6004,12 +6004,13 @@ func_mode_link ()
- 	      fi
- 	    else
- 	      # We cannot seem to hardcode it, guess we'll fake it.
-+	      # Default if $libdir is not relative to the prefix:
- 	      add_dir="-L$libdir"
--	      # Try looking first in the location we're being installed to.
-+
- 	      if test -n "$inst_prefix_dir"; then
- 		case $libdir in
- 		  [\\/]*)
--		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
-+		    add_dir="-L$inst_prefix_dir$libdir"
- 		    ;;
- 		esac
- 	      fi
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
deleted file mode 100644
index ce9635ce..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0015-libcc1-fix-libcc1-s-install-path-and-rpath.patch
+++ /dev/null
@@ -1,51 +0,0 @@ 
-From bf918db7117f41d3c04162095641165ca241707d Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Sun, 5 Jul 2015 20:25:18 -0700
-Subject: [PATCH] libcc1: fix libcc1's install path and rpath
-
-* Install libcc1.so and libcc1plugin.so into
-  $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version), as what we
-  had done to lto-plugin.
-* Fix bad RPATH iussue:
-  gcc-5.2.0: package gcc-plugins contains bad RPATH /patht/to/tmp/sysroots/qemux86-64/usr/lib64/../lib64 in file
- /path/to/gcc/5.2.0-r0/packages-split/gcc-plugins/usr/lib64/gcc/x86_64-poky-linux/5.2.0/plugin/libcc1plugin.so.0.0.0
- [rpaths]
-
-Upstream-Status: Inappropriate [OE configuration]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- libcc1/Makefile.am | 4 ++--
- libcc1/Makefile.in | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/libcc1/Makefile.am b/libcc1/Makefile.am
-index 6e3a34ff7e2..3f3f6391aba 100644
---- a/libcc1/Makefile.am
-+++ b/libcc1/Makefile.am
-@@ -40,8 +40,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
- 	    $(Wc)$(libiberty_normal)))
- libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
- 
--plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin
--cc1libdir = $(libdir)/$(libsuffix)
-+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
-+plugindir = $(cc1libdir)
- 
- if ENABLE_PLUGIN
- plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la
-diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in
-index f8f590d71e9..56462492045 100644
---- a/libcc1/Makefile.in
-+++ b/libcc1/Makefile.in
-@@ -396,8 +396,8 @@ libiberty = $(if $(wildcard $(libiberty_noasan)),$(Wc)$(libiberty_noasan), \
- 	    $(Wc)$(libiberty_normal)))
- 
- libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty))
--plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin
--cc1libdir = $(libdir)/$(libsuffix)
-+cc1libdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version)
-+plugindir = $(cc1libdir)
- @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la libcp1plugin.la
- @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la
- shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0016-handle-sysroot-support-for-nativesdk-gcc.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0016-handle-sysroot-support-for-nativesdk-gcc.patch
deleted file mode 100644
index 3b547195..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0016-handle-sysroot-support-for-nativesdk-gcc.patch
+++ /dev/null
@@ -1,510 +0,0 @@ 
-From 4fbbd40d7db89cdbeaf93df1e1da692b1f80a5bc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 7 Dec 2015 23:39:54 +0000
-Subject: [PATCH] handle sysroot support for nativesdk-gcc
-
-Being able to build a nativesdk gcc is useful, particularly in cases
-where the host compiler may be of an incompatible version (or a 32
-bit compiler is needed).
-
-Sadly, building nativesdk-gcc is not straight forward. We install
-nativesdk-gcc into a relocatable location and this means that its
-library locations can change. "Normal" sysroot support doesn't help
-in this case since the values of paths like "libdir" change, not just
-base root directory of the system.
-
-In order to handle this we do two things:
-
-a) Add %r into spec file markup which can be used for injected paths
-   such as SYSTEMLIBS_DIR (see gcc_multilib_setup()).
-b) Add other paths which need relocation into a .gccrelocprefix section
-   which the relocation code will notice and adjust automatically.
-
-Upstream-Status: Inappropriate
-RP 2015/7/28
-
-Extend the gccrelocprefix support to musl config too, this ensures
-that gcc will get right bits in SDK installations
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Added PREFIXVAR and EXEC_PREFIXVAR to support runtime relocation.  Without
-these as part of the gccrelocprefix the system can't do runtime relocation
-if the executable is moved.  (These paths were missed in the original
-implementation.)
-
-Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
----
- gcc/c-family/c-opts.cc    |  4 +--
- gcc/config/linux.h        | 24 +++++++--------
- gcc/config/rs6000/sysv4.h | 24 +++++++--------
- gcc/cppdefault.cc         | 63 ++++++++++++++++++++++++---------------
- gcc/cppdefault.h          | 13 ++++----
- gcc/gcc.cc                | 20 +++++++++----
- gcc/incpath.cc            | 12 ++++----
- gcc/prefix.cc             |  6 ++--
- 8 files changed, 94 insertions(+), 72 deletions(-)
-
-diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc
-index a341a061758..83b0bef4dbb 100644
---- a/gcc/c-family/c-opts.cc
-+++ b/gcc/c-family/c-opts.cc
-@@ -1458,8 +1458,8 @@ add_prefixed_path (const char *suffix, incpath_kind chain)
-   size_t prefix_len, suffix_len;
- 
-   suffix_len = strlen (suffix);
--  prefix     = iprefix ? iprefix : cpp_GCC_INCLUDE_DIR;
--  prefix_len = iprefix ? strlen (iprefix) : cpp_GCC_INCLUDE_DIR_len;
-+  prefix     = iprefix ? iprefix : GCC_INCLUDE_DIRVAR;
-+  prefix_len = iprefix ? strlen (iprefix) : strlen(GCC_INCLUDE_DIRVAR) - 7;
- 
-   path = (char *) xmalloc (prefix_len + suffix_len + 1);
-   memcpy (path, prefix, prefix_len);
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 8a3cd4f2d34..58143dff731 100644
---- a/gcc/config/linux.h
-+++ b/gcc/config/linux.h
-@@ -134,53 +134,53 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-  * Unfortunately, this is mostly duplicated from cppdefault.cc */
- #if DEFAULT_LIBC == LIBC_MUSL
- #define INCLUDE_DEFAULTS_MUSL_GPP			\
--    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,		\
-+    { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,		\
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },		\
--    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,		\
-+    { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,	\
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },		\
--    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,	\
-+    { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,	\
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
- 
- #ifdef LOCAL_INCLUDE_DIR
- #define INCLUDE_DEFAULTS_MUSL_LOCAL			\
--    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },		\
--    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
-+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },		\
-+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
- #else
- #define INCLUDE_DEFAULTS_MUSL_LOCAL
- #endif
- 
- #ifdef PREFIX_INCLUDE_DIR
- #define INCLUDE_DEFAULTS_MUSL_PREFIX			\
--    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
-+    { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0},
- #else
- #define INCLUDE_DEFAULTS_MUSL_PREFIX
- #endif
- 
- #ifdef CROSS_INCLUDE_DIR
- #define INCLUDE_DEFAULTS_MUSL_CROSS			\
--    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
-+    { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0},
- #else
- #define INCLUDE_DEFAULTS_MUSL_CROSS
- #endif
- 
- #ifdef TOOL_INCLUDE_DIR
- #define INCLUDE_DEFAULTS_MUSL_TOOL			\
--    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
-+    { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0},
- #else
- #define INCLUDE_DEFAULTS_MUSL_TOOL
- #endif
- 
- #ifdef GCC_INCLUDE_SUBDIR_TARGET
- #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET		\
--    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
-+    { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0},
- #else
- #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
- #endif
- 
- #ifdef NATIVE_SYSTEM_HEADER_DIR
- #define INCLUDE_DEFAULTS_MUSL_NATIVE			\
--    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },	\
--    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
-+    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 2 },	\
-+    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 0 },
- #else
- #define INCLUDE_DEFAULTS_MUSL_NATIVE
- #endif
-@@ -205,7 +205,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-     INCLUDE_DEFAULTS_MUSL_TOOL				\
-     INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET			\
-     INCLUDE_DEFAULTS_MUSL_NATIVE			\
--    { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
-+    { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },		\
-     { 0, 0, 0, 0, 0, 0 }				\
-   }
- #endif
-diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
-index e5dd6538358..b496849b792 100644
---- a/gcc/config/rs6000/sysv4.h
-+++ b/gcc/config/rs6000/sysv4.h
-@@ -958,53 +958,53 @@ ncrtn.o%s"
- /* Include order changes for musl, same as in generic linux.h.  */
- #if DEFAULT_LIBC == LIBC_MUSL
- #define INCLUDE_DEFAULTS_MUSL_GPP			\
--    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,		\
-+    { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,		\
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },		\
--    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,		\
-+    { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,	\
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },		\
--    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,	\
-+    { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,	\
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
- 
- #ifdef LOCAL_INCLUDE_DIR
- #define INCLUDE_DEFAULTS_MUSL_LOCAL			\
--    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },		\
--    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
-+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },		\
-+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
- #else
- #define INCLUDE_DEFAULTS_MUSL_LOCAL
- #endif
- 
- #ifdef PREFIX_INCLUDE_DIR
- #define INCLUDE_DEFAULTS_MUSL_PREFIX			\
--    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0},
-+    { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0},
- #else
- #define INCLUDE_DEFAULTS_MUSL_PREFIX
- #endif
- 
- #ifdef CROSS_INCLUDE_DIR
- #define INCLUDE_DEFAULTS_MUSL_CROSS			\
--    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0},
-+    { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0},
- #else
- #define INCLUDE_DEFAULTS_MUSL_CROSS
- #endif
- 
- #ifdef TOOL_INCLUDE_DIR
- #define INCLUDE_DEFAULTS_MUSL_TOOL			\
--    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0},
-+    { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0},
- #else
- #define INCLUDE_DEFAULTS_MUSL_TOOL
- #endif
- 
- #ifdef GCC_INCLUDE_SUBDIR_TARGET
- #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET            \
--    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0},
-+    { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0},
- #else
- #define INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET
- #endif
- 
- #ifdef NATIVE_SYSTEM_HEADER_DIR
- #define INCLUDE_DEFAULTS_MUSL_NATIVE			\
--    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 2 },	\
--    { NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
-+    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 2 },	\
-+    { NATIVE_SYSTEM_HEADER_DIRVAR, 0, 0, 0, 1, 0 },
- #else
- #define INCLUDE_DEFAULTS_MUSL_NATIVE
- #endif
-@@ -1029,7 +1029,7 @@ ncrtn.o%s"
-     INCLUDE_DEFAULTS_MUSL_TOOL				\
-     INCLUDE_DEFAULTS_MUSL_SUBDIR_TARGET			\
-     INCLUDE_DEFAULTS_MUSL_NATIVE			\
--    { GCC_INCLUDE_DIR, "GCC", 0, 1, 0, 0 },		\
-+    { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },		\
-     { 0, 0, 0, 0, 0, 0 }				\
-   }
- #endif
-diff --git a/gcc/cppdefault.cc b/gcc/cppdefault.cc
-index 52cf14e92f8..d8977afc05e 100644
---- a/gcc/cppdefault.cc
-+++ b/gcc/cppdefault.cc
-@@ -35,6 +35,30 @@
- # undef CROSS_INCLUDE_DIR
- #endif
- 
-+static char GPLUSPLUS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_INCLUDE_DIR;
-+char GCC_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GCC_INCLUDE_DIR;
-+static char GPLUSPLUS_TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_TOOL_INCLUDE_DIR;
-+static char GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = GPLUSPLUS_BACKWARD_INCLUDE_DIR;
-+static char STANDARD_STARTFILE_PREFIX_2VAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET;
-+#ifdef LOCAL_INCLUDE_DIR
-+static char LOCAL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = LOCAL_INCLUDE_DIR;
-+#endif
-+#ifdef PREFIX_INCLUDE_DIR
-+static char PREFIX_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX_INCLUDE_DIR;
-+#endif
-+#ifdef FIXED_INCLUDE_DIR
-+static char FIXED_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = FIXED_INCLUDE_DIR;
-+#endif
-+#ifdef CROSS_INCLUDE_DIR
-+static char CROSS_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = CROSS_INCLUDE_DIR;
-+#endif
-+#ifdef TOOL_INCLUDE_DIR
-+static char TOOL_INCLUDE_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = TOOL_INCLUDE_DIR;
-+#endif
-+#ifdef NATIVE_SYSTEM_HEADER_DIR
-+static char NATIVE_SYSTEM_HEADER_DIRVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = NATIVE_SYSTEM_HEADER_DIR;
-+#endif
-+
- const struct default_include cpp_include_defaults[]
- #ifdef INCLUDE_DEFAULTS
- = INCLUDE_DEFAULTS;
-@@ -42,17 +66,17 @@ const struct default_include cpp_include_defaults[]
- = {
- #ifdef GPLUSPLUS_INCLUDE_DIR
-     /* Pick up GNU C++ generic include files.  */
--    { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,
-+    { GPLUSPLUS_INCLUDE_DIRVAR, "G++", 1, 1,
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
- #endif
- #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
-     /* Pick up GNU C++ target-dependent include files.  */
--    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,
-+    { GPLUSPLUS_TOOL_INCLUDE_DIRVAR, "G++", 1, 1,
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
- #endif
- #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
-     /* Pick up GNU C++ backward and deprecated include files.  */
--    { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,
-+    { GPLUSPLUS_BACKWARD_INCLUDE_DIRVAR, "G++", 1, 1,
-       GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
- #endif
- #ifdef GPLUSPLUS_LIBCXX_INCLUDE_DIR
-@@ -62,23 +86,23 @@ const struct default_include cpp_include_defaults[]
- #endif
- #ifdef GCC_INCLUDE_DIR
-     /* This is the dir for gcc's private headers.  */
--    { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
-+    { GCC_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 },
- #endif
- #ifdef GCC_INCLUDE_SUBDIR_TARGET
-     /* This is the dir for gcc's private headers under the specified sysroot.  */
--    { STANDARD_STARTFILE_PREFIX_2 GCC_INCLUDE_SUBDIR_TARGET, "GCC", 0, 0, 1, 0 },
-+    { STANDARD_STARTFILE_PREFIX_2VAR, "GCC", 0, 0, 1, 0 },
- #endif
- #ifdef LOCAL_INCLUDE_DIR
-     /* /usr/local/include comes before the fixincluded header files.  */
--    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
--    { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
-+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 2 },
-+    { LOCAL_INCLUDE_DIRVAR, 0, 0, 1, 1, 0 },
- #endif
- #ifdef PREFIX_INCLUDE_DIR
--    { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
-+    { PREFIX_INCLUDE_DIRVAR, 0, 0, 1, 0, 0 },
- #endif
- #ifdef FIXED_INCLUDE_DIR
-     /* This is the dir for fixincludes.  */
--    { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0,
-+    { FIXED_INCLUDE_DIRVAR, "GCC", 0, 0, 0,
-       /* A multilib suffix needs adding if different multilibs use
- 	 different headers.  */
- #ifdef SYSROOT_HEADERS_SUFFIX_SPEC
-@@ -90,33 +114,24 @@ const struct default_include cpp_include_defaults[]
- #endif
- #ifdef CROSS_INCLUDE_DIR
-     /* One place the target system's headers might be.  */
--    { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
-+    { CROSS_INCLUDE_DIRVAR, "GCC", 0, 0, 0, 0 },
- #endif
- #ifdef TOOL_INCLUDE_DIR
-     /* Another place the target system's headers might be.  */
--    { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
-+    { TOOL_INCLUDE_DIRVAR, "BINUTILS", 0, 1, 0, 0 },
- #endif
- #ifdef NATIVE_SYSTEM_HEADER_DIR
-     /* /usr/include comes dead last.  */
--    { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
--    { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
-+    { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
-+    { NATIVE_SYSTEM_HEADER_DIRVAR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
- #endif
-     { 0, 0, 0, 0, 0, 0 }
-   };
- #endif /* no INCLUDE_DEFAULTS */
- 
--#ifdef GCC_INCLUDE_DIR
--const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR;
--const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
--#else
--const char cpp_GCC_INCLUDE_DIR[] = "";
--const size_t cpp_GCC_INCLUDE_DIR_len = 0;
--#endif
--
- /* The configured prefix.  */
--const char cpp_PREFIX[] = PREFIX;
--const size_t cpp_PREFIX_len = sizeof PREFIX - 1;
--const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX;
-+char PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX;
-+char EXEC_PREFIXVAR[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX;
- 
- /* This value is set by cpp_relocated at runtime */
- const char *gcc_exec_prefix;
-diff --git a/gcc/cppdefault.h b/gcc/cppdefault.h
-index fb97c0b5814..6267150facc 100644
---- a/gcc/cppdefault.h
-+++ b/gcc/cppdefault.h
-@@ -33,7 +33,8 @@
- 
- struct default_include
- {
--  const char *const fname;	/* The name of the directory.  */
-+  const char *fname;     /* The name of the directory.  */
-+
-   const char *const component;	/* The component containing the directory
- 				   (see update_path in prefix.cc) */
-   const char cplusplus;		/* When this is non-zero, we should only
-@@ -55,17 +56,13 @@ struct default_include
- };
- 
- extern const struct default_include cpp_include_defaults[];
--extern const char cpp_GCC_INCLUDE_DIR[];
--extern const size_t cpp_GCC_INCLUDE_DIR_len;
-+extern char GCC_INCLUDE_DIRVAR[] __attribute__ ((section (".gccrelocprefix")));
- 
- /* The configure-time prefix, i.e., the value supplied as the argument
-    to --prefix=.  */
--extern const char cpp_PREFIX[];
-+extern char PREFIXVAR[] __attribute__ ((section (".gccrelocprefix")));
- /* The length of the configure-time prefix.  */
--extern const size_t cpp_PREFIX_len;
--/* The configure-time execution prefix.  This is typically the lib/gcc
--   subdirectory of cpp_PREFIX.  */
--extern const char cpp_EXEC_PREFIX[];
-+extern char EXEC_PREFIXVAR[] __attribute__ ((section (".gccrelocprefix")));
- /* The run-time execution prefix.  This is typically the lib/gcc
-    subdirectory of the actual installation.  */
- extern const char *gcc_exec_prefix;
-diff --git a/gcc/gcc.cc b/gcc/gcc.cc
-index aa4cf92fb78..5569a39a14a 100644
---- a/gcc/gcc.cc
-+++ b/gcc/gcc.cc
-@@ -252,6 +252,8 @@ FILE *report_times_to_file = NULL;
- #endif
- static const char *target_system_root = DEFAULT_TARGET_SYSTEM_ROOT;
- 
-+static char target_relocatable_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = SYSTEMLIBS_DIR;
-+
- /* Nonzero means pass the updated target_system_root to the compiler.  */
- 
- static int target_system_root_changed;
-@@ -575,6 +577,7 @@ or with constant text in a single argument.
-  %G     process LIBGCC_SPEC as a spec.
-  %R     Output the concatenation of target_system_root and
-         target_sysroot_suffix.
-+ %r     Output the base path target_relocatable_prefix
-  %S     process STARTFILE_SPEC as a spec.  A capital S is actually used here.
-  %E     process ENDFILE_SPEC as a spec.  A capital E is actually used here.
-  %C     process CPP_SPEC as a spec.
-@@ -1627,10 +1630,10 @@ static const char *gcc_libexec_prefix;
-    gcc_exec_prefix is set because, in that case, we know where the
-    compiler has been installed, and use paths relative to that
-    location instead.  */
--static const char *const standard_exec_prefix = STANDARD_EXEC_PREFIX;
--static const char *const standard_libexec_prefix = STANDARD_LIBEXEC_PREFIX;
--static const char *const standard_bindir_prefix = STANDARD_BINDIR_PREFIX;
--static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
-+static char standard_exec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_EXEC_PREFIX;
-+static char standard_libexec_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_LIBEXEC_PREFIX;
-+static char standard_bindir_prefix[4096] __attribute__ ((section (".gccrelocprefix"))) = STANDARD_BINDIR_PREFIX;
-+static char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
- 
- /* For native compilers, these are well-known paths containing
-    components that may be provided by the system.  For cross
-@@ -1638,9 +1641,9 @@ static const char *const standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
- static const char *md_exec_prefix = MD_EXEC_PREFIX;
- static const char *md_startfile_prefix = MD_STARTFILE_PREFIX;
- static const char *md_startfile_prefix_1 = MD_STARTFILE_PREFIX_1;
--static const char *const standard_startfile_prefix_1
-+static char standard_startfile_prefix_1[4096] __attribute__ ((section (".gccrelocprefix")))
-   = STANDARD_STARTFILE_PREFIX_1;
--static const char *const standard_startfile_prefix_2
-+static char standard_startfile_prefix_2[4096] __attribute__ ((section (".gccrelocprefix")))
-   = STANDARD_STARTFILE_PREFIX_2;
- 
- /* A relative path to be used in finding the location of tools
-@@ -6676,6 +6679,11 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
- 	      }
- 	    break;
- 
-+          case 'r':
-+              obstack_grow (&obstack, target_relocatable_prefix,
-+		      strlen (target_relocatable_prefix));
-+            break;
-+
- 	  case 'S':
- 	    value = do_spec_1 (startfile_spec, 0, NULL);
- 	    if (value != 0)
-diff --git a/gcc/incpath.cc b/gcc/incpath.cc
-index c80f100f476..5ac03c08693 100644
---- a/gcc/incpath.cc
-+++ b/gcc/incpath.cc
-@@ -135,7 +135,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
-   int relocated = cpp_relocated ();
-   size_t len;
- 
--  if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0)
-+  if (iprefix && (len = strlen(GCC_INCLUDE_DIRVAR) - 7) != 0)
-     {
-       /* Look for directories that start with the standard prefix.
- 	 "Translate" them, i.e. replace /usr/local/lib/gcc... with
-@@ -150,7 +150,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
- 		 now.  */
- 	      if (sysroot && p->add_sysroot)
- 		continue;
--	      if (!filename_ncmp (p->fname, cpp_GCC_INCLUDE_DIR, len))
-+	      if (!filename_ncmp (p->fname, GCC_INCLUDE_DIRVAR, len))
- 		{
- 		  char *str = concat (iprefix, p->fname + len, NULL);
- 		  if (p->multilib == 1 && imultilib)
-@@ -191,7 +191,7 @@ add_standard_paths (const char *sysroot, const char *iprefix,
- 	      free (sysroot_no_trailing_dir_separator);
- 	    }
- 	  else if (!p->add_sysroot && relocated
--		   && !filename_ncmp (p->fname, cpp_PREFIX, cpp_PREFIX_len))
-+		   && !filename_ncmp (p->fname, PREFIXVAR, strlen(PREFIXVAR)))
- 	    {
-  	      static const char *relocated_prefix;
- 	      char *ostr;
-@@ -208,12 +208,12 @@ add_standard_paths (const char *sysroot, const char *iprefix,
- 		  dummy = concat (gcc_exec_prefix, "dummy", NULL);
- 		  relocated_prefix
- 		    = make_relative_prefix (dummy,
--					    cpp_EXEC_PREFIX,
--					    cpp_PREFIX);
-+					    EXEC_PREFIXVAR,
-+					    PREFIXVAR);
- 		  free (dummy);
- 		}
- 	      ostr = concat (relocated_prefix,
--			     p->fname + cpp_PREFIX_len,
-+			     p->fname + strlen(PREFIXVAR),
- 			     NULL);
- 	      str = update_path (ostr, p->component);
- 	      free (ostr);
-diff --git a/gcc/prefix.cc b/gcc/prefix.cc
-index 096ed5afa3d..2526f0ecc39 100644
---- a/gcc/prefix.cc
-+++ b/gcc/prefix.cc
-@@ -72,7 +72,9 @@ License along with GCC; see the file COPYING3.  If not see
- #include "prefix.h"
- #include "common/common-target.h"
- 
--static const char *std_prefix = PREFIX;
-+char PREFIXVAR1[4096] __attribute__ ((section (".gccrelocprefix"))) = PREFIX;
-+
-+static const char *std_prefix = PREFIXVAR1;
- 
- static const char *get_key_value (char *);
- static char *translate_name (char *);
-@@ -212,7 +214,7 @@ translate_name (char *name)
- 	prefix = getenv (key);
- 
-       if (prefix == 0)
--	prefix = PREFIX;
-+	prefix = PREFIXVAR1;
- 
-       /* We used to strip trailing DIR_SEPARATORs here, but that can
- 	 sometimes yield a result with no separator when one was coded
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
deleted file mode 100644
index 9b05da64..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0017-Search-target-sysroot-gcc-version-specific-dirs-with.patch
+++ /dev/null
@@ -1,99 +0,0 @@ 
-From 33a1f07a4417247dc24819d4e583ca09f56d5a7b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 7 Dec 2015 23:41:45 +0000
-Subject: [PATCH] Search target sysroot gcc version specific dirs with
- multilib.
-
-We install the gcc libraries (such as crtbegin.p) into
-<sysroot><libdir>/<target-sys>/5.2.0/
-which is a default search path for GCC (aka multi_suffix in the
-code below). <target-sys> is 'machine' in gcc's terminology. We use
-these directories so that multiple gcc versions could in theory
-co-exist on target.
-
-We only want to build one gcc-cross-canadian per arch and have this work
-for all multilibs. <target-sys> can be handled by mapping the multilib
-<target-sys> to the one used by gcc-cross-canadian, e.g.
-mips64-polkmllib32-linux
-is symlinked to by mips64-poky-linux.
-
-The default gcc search path in the target sysroot for a "lib64" mutlilib
-is:
-
-<sysroot>/lib32/mips64-poky-linux/5.2.0/
-<sysroot>/lib32/../lib64/
-<sysroot>/usr/lib32/mips64-poky-linux/5.2.0/
-<sysroot>/usr/lib32/../lib64/
-<sysroot>/lib32/
-<sysroot>/usr/lib32/
-
-which means that the lib32 crtbegin.o will be found and the lib64 ones
-will not which leads to compiler failures.
-
-This patch injects a multilib version of that path first so the lib64
-binaries can be found first. With this change the search path becomes:
-
-<sysroot>/lib32/../lib64/mips64-poky-linux/5.2.0/
-<sysroot>/lib32/mips64-poky-linux/5.2.0/
-<sysroot>/lib32/../lib64/
-<sysroot>/usr/lib32/../lib64/mips64-poky-linux/5.2.0/
-<sysroot>/usr/lib32/mips64-poky-linux/5.2.0/
-<sysroot>/usr/lib32/../lib64/
-<sysroot>/lib32/
-<sysroot>/usr/lib32/
-
-Upstream-Status: Pending
-RP 2015/7/31
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/gcc.cc | 29 ++++++++++++++++++++++++++++-
- 1 file changed, 28 insertions(+), 1 deletion(-)
-
-diff --git a/gcc/gcc.cc b/gcc/gcc.cc
-index 5569a39a14a..4598f6cd7c9 100644
---- a/gcc/gcc.cc
-+++ b/gcc/gcc.cc
-@@ -2817,7 +2817,7 @@ for_each_path (const struct path_prefix *paths,
-       if (path == NULL)
- 	{
- 	  len = paths->max_len + extra_space + 1;
--	  len += MAX (MAX (suffix_len, multi_os_dir_len), multiarch_len);
-+	  len += MAX ((suffix_len + multi_os_dir_len), multiarch_len);
- 	  path = XNEWVEC (char, len);
- 	}
- 
-@@ -2829,6 +2829,33 @@ for_each_path (const struct path_prefix *paths,
- 	  /* Look first in MACHINE/VERSION subdirectory.  */
- 	  if (!skip_multi_dir)
- 	    {
-+	      if (!(pl->os_multilib ? skip_multi_os_dir : skip_multi_dir))
-+	        {
-+	          const char *this_multi;
-+	          size_t this_multi_len;
-+
-+	          if (pl->os_multilib)
-+		    {
-+		      this_multi = multi_os_dir;
-+		      this_multi_len = multi_os_dir_len;
-+		    }
-+	          else
-+		    {
-+		      this_multi = multi_dir;
-+		      this_multi_len = multi_dir_len;
-+		    }
-+
-+	          /* Look in multilib MACHINE/VERSION subdirectory first */
-+	          if (this_multi_len)
-+	            {
-+		      memcpy (path + len, this_multi, this_multi_len + 1);
-+	              memcpy (path + len + this_multi_len, multi_suffix, suffix_len + 1);
-+	              ret = callback (path, callback_info);
-+	                if (ret)
-+		          break;
-+	            }
-+	        }
-+
- 	      memcpy (path + len, multi_suffix, suffix_len + 1);
- 	      ret = callback (path, callback_info);
- 	      if (ret)
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
deleted file mode 100644
index 56793e03..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0018-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch
+++ /dev/null
@@ -1,84 +0,0 @@ 
-From d7dc2861840e88a4592817a398a054a886c3f3ee Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 18:10:54 -0700
-Subject: [PATCH] Add ssp_nonshared to link commandline for musl targets
-
-when -fstack-protector options are enabled we need to
-link with ssp_shared on musl since it does not provide
-the __stack_chk_fail_local() so essentially it provides
-libssp but not libssp_nonshared something like
-TARGET_LIBC_PROVIDES_SSP_BUT_NOT_SSP_NONSHARED
- where-as for glibc the needed symbols
-are already present in libc_nonshared library therefore
-we do not need any library helper on glibc based systems
-but musl needs the libssp_noshared from gcc
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/config/linux.h          |  7 +++++++
- gcc/config/rs6000/linux.h   | 10 ++++++++++
- gcc/config/rs6000/linux64.h | 10 ++++++++++
- 3 files changed, 27 insertions(+)
-
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 58143dff731..d2409ccac26 100644
---- a/gcc/config/linux.h
-+++ b/gcc/config/linux.h
-@@ -208,6 +208,13 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-     { GCC_INCLUDE_DIRVAR, "GCC", 0, 1, 0, 0 },		\
-     { 0, 0, 0, 0, 0, 0 }				\
-   }
-+#ifdef TARGET_LIBC_PROVIDES_SSP
-+#undef LINK_SSP_SPEC
-+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
-+		       "|fstack-protector-strong|fstack-protector-explicit" \
-+		       ":-lssp_nonshared}"
-+#endif
-+
- #endif
- 
- #if (DEFAULT_LIBC == LIBC_UCLIBC) && defined (SINGLE_LIBC) /* uClinux */
-diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
-index 8c9039ac1e5..259cd485973 100644
---- a/gcc/config/rs6000/linux.h
-+++ b/gcc/config/rs6000/linux.h
-@@ -99,6 +99,16 @@
- 					 " -m elf32ppclinux")
- #endif
- 
-+/* link libssp_nonshared.a with musl */
-+#if DEFAULT_LIBC == LIBC_MUSL
-+#ifdef TARGET_LIBC_PROVIDES_SSP
-+#undef LINK_SSP_SPEC
-+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
-+		       "|fstack-protector-strong|fstack-protector-explicit" \
-+		       ":-lssp_nonshared}"
-+#endif
-+#endif
-+
- #undef LINK_OS_LINUX_SPEC
- #define LINK_OS_LINUX_SPEC LINK_OS_LINUX_EMUL " %{!shared: %{!static: \
-   %{!static-pie: \
-diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index 364c1a5b155..e33d9ae98e0 100644
---- a/gcc/config/rs6000/linux64.h
-+++ b/gcc/config/rs6000/linux64.h
-@@ -372,6 +372,16 @@ extern int dot_symbols;
- 					   " -m elf64ppc")
- #endif
- 
-+/* link libssp_nonshared.a with musl */
-+#if DEFAULT_LIBC == LIBC_MUSL
-+#ifdef TARGET_LIBC_PROVIDES_SSP
-+#undef LINK_SSP_SPEC
-+#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
-+		       "|fstack-protector-strong|fstack-protector-explicit" \
-+		       ":-lssp_nonshared}"
-+#endif
-+#endif
-+
- #define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
-   %{!static-pie: \
-     %{rdynamic:-export-dynamic} \
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0019-Re-introduce-spe-commandline-options.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0019-Re-introduce-spe-commandline-options.patch
deleted file mode 100644
index bb1699be..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0019-Re-introduce-spe-commandline-options.patch
+++ /dev/null
@@ -1,39 +0,0 @@ 
-From bf0d7c463e1fab62804556099b56319fe94be1eb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 6 Jun 2018 12:10:22 -0700
-Subject: [PATCH] Re-introduce spe commandline options
-
-This should ensure that we keep accepting
-spe options
-
-Upstream-Status: Inappropriate [SPE port is removed from rs600 port]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/config/rs6000/rs6000.opt | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt
-index 4931d781c4e..3fb87b6f7d5 100644
---- a/gcc/config/rs6000/rs6000.opt
-+++ b/gcc/config/rs6000/rs6000.opt
-@@ -348,6 +348,19 @@ mdebug=
- Target RejectNegative Joined
- -mdebug=	Enable debug output.
- 
-+; PPC SPE ABI
-+mspe
-+Target Var(rs6000_spe) Save
-+Generate SPE SIMD instructions on E500.
-+
-+mabi=spe
-+Target RejectNegative Var(rs6000_spe_abi) Save
-+Use the SPE ABI extensions.
-+
-+mabi=no-spe
-+Target RejectNegative Var(rs6000_spe_abi, 0)
-+Do not use the SPE ABI extensions.
-+
- ; Altivec ABI
- mabi=altivec
- Target RejectNegative Var(rs6000_altivec_abi) Save
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
deleted file mode 100644
index f3709208..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0020-libgcc_s-Use-alias-for-__cpu_indicator_init-instead-.patch
+++ /dev/null
@@ -1,83 +0,0 @@ 
-From a32c75b37209d6836eaaa943dc6b1207acba5d27 Mon Sep 17 00:00:00 2001
-From: Szabolcs Nagy <nsz@port70.net>
-Date: Sat, 24 Oct 2015 20:09:53 +0000
-Subject: [PATCH] libgcc_s: Use alias for __cpu_indicator_init instead of
- symver
-
-Adapter from
-
-https://gcc.gnu.org/ml/gcc-patches/2015-05/msg00899.html
-
-This fix was debated but hasnt been applied gcc upstream since
-they expect musl to support '@' in symbol versioning which is
-a sun/gnu versioning extention. This patch however avoids the
-need for the '@' symbols at all
-
-libgcc/Changelog:
-
-2015-05-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-	* config/i386/cpuinfo.c (__cpu_indicator_init_local): Add.
-	(__cpu_indicator_init@GCC_4.8.0, __cpu_model@GCC_4.8.0): Remove.
-
-	* config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Remove -DUSE_ELF_SYMVER.
-
-gcc/Changelog:
-
-2015-05-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
-
-	* config/i386/i386-expand.c (ix86_expand_builtin): Make __builtin_cpu_init
-	call __cpu_indicator_init_local instead of __cpu_indicator_init.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/config/i386/i386-expand.cc | 4 ++--
- libgcc/config/i386/cpuinfo.c   | 6 +++---
- libgcc/config/i386/t-linux     | 2 +-
- 3 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
-index 68978ef8dc2..0c71f36b572 100644
---- a/gcc/config/i386/i386-expand.cc
-+++ b/gcc/config/i386/i386-expand.cc
-@@ -12321,10 +12321,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
-     {
-     case IX86_BUILTIN_CPU_INIT:
-       {
--	/* Make it call __cpu_indicator_init in libgcc.  */
-+	/* Make it call __cpu_indicator_init_local in libgcc.a.  */
- 	tree call_expr, fndecl, type;
- 	type = build_function_type_list (integer_type_node, NULL_TREE);
--	fndecl = build_fn_decl ("__cpu_indicator_init", type);
-+	fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
- 	call_expr = build_call_expr (fndecl, 0);
- 	return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
-       }
-diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
-index dab1d98060f..cf824b4114a 100644
---- a/libgcc/config/i386/cpuinfo.c
-+++ b/libgcc/config/i386/cpuinfo.c
-@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
- 			     __cpu_features2);
- }
- 
--#if defined SHARED && defined USE_ELF_SYMVER
--__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0");
--__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0");
-+#ifndef SHARED
-+int __cpu_indicator_init_local (void)
-+  __attribute__ ((weak, alias ("__cpu_indicator_init")));
- #endif
-diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux
-index 8506a635790..564296f788e 100644
---- a/libgcc/config/i386/t-linux
-+++ b/libgcc/config/i386/t-linux
-@@ -3,5 +3,5 @@
- # t-slibgcc-elf-ver and t-linux
- SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver
- 
--HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS)
-+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
- CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
deleted file mode 100644
index f5f04ae3..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0021-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch
+++ /dev/null
@@ -1,182 +0,0 @@ 
-From 4efc42b99c96b026f560b0918de7e237ac3dc8d1 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Tue, 10 Mar 2020 08:26:53 -0700
-Subject: [PATCH] gentypes/genmodes: Do not use __LINE__ for maintaining
- reproducibility
-
-Inserting line numbers into generated code means its not always reproducible wth
-differing versions of host gcc. Void the issue by not adding these.
-
-Upstream-Status: Inappropriate [OE Reproducibility specific]
-
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/gengtype.cc |  6 +++---
- gcc/genmodes.cc | 32 ++++++++++++++++----------------
- 2 files changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/gcc/gengtype.cc b/gcc/gengtype.cc
-index 386ae1b0506..9762e914296 100644
---- a/gcc/gengtype.cc
-+++ b/gcc/gengtype.cc
-@@ -1006,7 +1006,7 @@ create_field_at (pair_p next, type_p type, const char *name, options_p opt,
- /* Create a fake field with the given type and name.  NEXT is the next
-    field in the chain.  */
- #define create_field(next,type,name) \
--    create_field_all (next,type,name, 0, this_file, __LINE__)
-+    create_field_all (next,type,name, 0, this_file, 0)
- 
- /* Like create_field, but the field is only valid when condition COND
-    is true.  */
-@@ -1039,7 +1039,7 @@ create_optional_field_ (pair_p next, type_p type, const char *name,
- }
- 
- #define create_optional_field(next,type,name,cond)	\
--       create_optional_field_(next,type,name,cond,__LINE__)
-+       create_optional_field_(next,type,name,cond,0)
- 
- /* Reverse a linked list of 'struct pair's in place.  */
- pair_p
-@@ -5238,7 +5238,7 @@ main (int argc, char **argv)
-       /* These types are set up with #define or else outside of where
-          we can see them.  We should initialize them before calling
-          read_input_list.  */
--#define POS_HERE(Call) do { pos.file = this_file; pos.line = __LINE__; \
-+#define POS_HERE(Call) do { pos.file = this_file; pos.line = 0; \
- 	Call;} while (0)
-       POS_HERE (do_scalar_typedef ("CUMULATIVE_ARGS", &pos));
-       POS_HERE (do_scalar_typedef ("REAL_VALUE_TYPE", &pos));
-diff --git a/gcc/genmodes.cc b/gcc/genmodes.cc
-index 59850bb070a..e187f8542a1 100644
---- a/gcc/genmodes.cc
-+++ b/gcc/genmodes.cc
-@@ -440,7 +440,7 @@ complete_all_modes (void)
- }
- 
- /* For each mode in class CLASS, construct a corresponding complex mode.  */
--#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, __LINE__)
-+#define COMPLEX_MODES(C) make_complex_modes (MODE_##C, __FILE__, 0)
- static void
- make_complex_modes (enum mode_class cl,
- 		    const char *file, unsigned int line)
-@@ -499,7 +499,7 @@ make_complex_modes (enum mode_class cl,
-    having as many components as necessary.  ORDER is the sorting order
-    of the mode, with smaller numbers indicating a higher priority.  */
- #define VECTOR_MODES_WITH_PREFIX(PREFIX, C, W, ORDER) \
--  make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, __LINE__)
-+  make_vector_modes (MODE_##C, #PREFIX, W, ORDER, __FILE__, 0)
- #define VECTOR_MODES(C, W) VECTOR_MODES_WITH_PREFIX (V, C, W, 0)
- static void ATTRIBUTE_UNUSED
- make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
-@@ -552,7 +552,7 @@ make_vector_modes (enum mode_class cl, const char *prefix, unsigned int width,
-    BYTESIZE bytes in total.  */
- #define VECTOR_BOOL_MODE(NAME, COUNT, COMPONENT, BYTESIZE)		\
-   make_vector_bool_mode (#NAME, COUNT, #COMPONENT, BYTESIZE,		\
--			 __FILE__, __LINE__)
-+			 __FILE__, 0)
- static void ATTRIBUTE_UNUSED
- make_vector_bool_mode (const char *name, unsigned int count,
- 		       const char *component, unsigned int bytesize,
-@@ -574,7 +574,7 @@ make_vector_bool_mode (const char *name, unsigned int count,
- /* Input.  */
- 
- #define _SPECIAL_MODE(C, N) \
--  make_special_mode (MODE_##C, #N, __FILE__, __LINE__)
-+  make_special_mode (MODE_##C, #N, __FILE__, 0)
- #define RANDOM_MODE(N) _SPECIAL_MODE (RANDOM, N)
- #define CC_MODE(N) _SPECIAL_MODE (CC, N)
- 
-@@ -587,7 +587,7 @@ make_special_mode (enum mode_class cl, const char *name,
- 
- #define INT_MODE(N, Y) FRACTIONAL_INT_MODE (N, -1U, Y)
- #define FRACTIONAL_INT_MODE(N, B, Y) \
--  make_int_mode (#N, B, Y, __FILE__, __LINE__)
-+  make_int_mode (#N, B, Y, __FILE__, 0)
- 
- static void
- make_int_mode (const char *name,
-@@ -628,16 +628,16 @@ make_opaque_mode (const char *name,
- }
- 
- #define FRACT_MODE(N, Y, F) \
--	make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, __LINE__)
-+	make_fixed_point_mode (MODE_FRACT, #N, Y, 0, F, __FILE__, 0)
- 
- #define UFRACT_MODE(N, Y, F) \
--	make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, __LINE__)
-+	make_fixed_point_mode (MODE_UFRACT, #N, Y, 0, F, __FILE__, 0)
- 
- #define ACCUM_MODE(N, Y, I, F) \
--	make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, __LINE__)
-+	make_fixed_point_mode (MODE_ACCUM, #N, Y, I, F, __FILE__, 0)
- 
- #define UACCUM_MODE(N, Y, I, F) \
--	make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, __LINE__)
-+	make_fixed_point_mode (MODE_UACCUM, #N, Y, I, F, __FILE__, 0)
- 
- /* Create a fixed-point mode by setting CL, NAME, BYTESIZE, IBIT, FBIT,
-    FILE, and LINE.  */
-@@ -658,7 +658,7 @@ make_fixed_point_mode (enum mode_class cl,
- 
- #define FLOAT_MODE(N, Y, F)             FRACTIONAL_FLOAT_MODE (N, -1U, Y, F)
- #define FRACTIONAL_FLOAT_MODE(N, B, Y, F) \
--  make_float_mode (#N, B, Y, #F, __FILE__, __LINE__)
-+  make_float_mode (#N, B, Y, #F, __FILE__, 0)
- 
- static void
- make_float_mode (const char *name,
-@@ -675,7 +675,7 @@ make_float_mode (const char *name,
- #define DECIMAL_FLOAT_MODE(N, Y, F)	\
- 	FRACTIONAL_DECIMAL_FLOAT_MODE (N, -1U, Y, F)
- #define FRACTIONAL_DECIMAL_FLOAT_MODE(N, B, Y, F)	\
--  make_decimal_float_mode (#N, B, Y, #F, __FILE__, __LINE__)
-+  make_decimal_float_mode (#N, B, Y, #F, __FILE__, 0)
- 
- static void
- make_decimal_float_mode (const char *name,
-@@ -690,7 +690,7 @@ make_decimal_float_mode (const char *name,
- }
- 
- #define RESET_FLOAT_FORMAT(N, F) \
--  reset_float_format (#N, #F, __FILE__, __LINE__)
-+  reset_float_format (#N, #F, __FILE__, 0)
- static void ATTRIBUTE_UNUSED
- reset_float_format (const char *name, const char *format,
- 		    const char *file, unsigned int line)
-@@ -711,7 +711,7 @@ reset_float_format (const char *name, const char *format,
- 
- /* __intN support.  */
- #define INT_N(M,PREC)				\
--  make_int_n (#M, PREC, __FILE__, __LINE__)
-+  make_int_n (#M, PREC, __FILE__, 0)
- static void ATTRIBUTE_UNUSED
- make_int_n (const char *m, int bitsize,
-             const char *file, unsigned int line)
-@@ -740,7 +740,7 @@ make_int_n (const char *m, int bitsize,
- /* Partial integer modes are specified by relation to a full integer
-    mode.  */
- #define PARTIAL_INT_MODE(M,PREC,NAME)				\
--  make_partial_integer_mode (#M, #NAME, PREC, __FILE__, __LINE__)
-+  make_partial_integer_mode (#M, #NAME, PREC, __FILE__, 0)
- static void ATTRIBUTE_UNUSED
- make_partial_integer_mode (const char *base, const char *name,
- 			   unsigned int precision,
-@@ -767,7 +767,7 @@ make_partial_integer_mode (const char *base, const char *name,
- /* A single vector mode can be specified by naming its component
-    mode and the number of components.  */
- #define VECTOR_MODE_WITH_PREFIX(PREFIX, C, M, N, ORDER) \
--  make_vector_mode (MODE_##C, #PREFIX, #M, N, ORDER, __FILE__, __LINE__);
-+  make_vector_mode (MODE_##C, #PREFIX, #M, N, ORDER, __FILE__, 0);
- #define VECTOR_MODE(C, M, N) VECTOR_MODE_WITH_PREFIX(V, C, M, N, 0);
- static void ATTRIBUTE_UNUSED
- make_vector_mode (enum mode_class bclass,
-@@ -814,7 +814,7 @@ make_vector_mode (enum mode_class bclass,
- 
- /* Adjustability.  */
- #define _ADD_ADJUST(A, M, X, C1, C2) \
--  new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, __LINE__)
-+  new_adjust (#M, &adj_##A, #A, #X, MODE_##C1, MODE_##C2, __FILE__, 0)
- 
- #define ADJUST_NUNITS(M, X)    _ADD_ADJUST (nunits, M, X, RANDOM, RANDOM)
- #define ADJUST_BYTESIZE(M, X)  _ADD_ADJUST (bytesize, M, X, RANDOM, RANDOM)
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0023-libatomic-Do-not-enforce-march-on-aarch64.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0023-libatomic-Do-not-enforce-march-on-aarch64.patch
deleted file mode 100644
index 2f016598..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0023-libatomic-Do-not-enforce-march-on-aarch64.patch
+++ /dev/null
@@ -1,42 +0,0 @@ 
-From 52931ec7a708b58d68e69ce9eb99001ae9f099dd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 May 2020 15:10:38 -0700
-Subject: [PATCH] libatomic: Do not enforce march on aarch64
-
-OE passes the right options via gcc compiler cmdline via TUNE_CCARGS
-this can conflict between -mcpu settings and -march setting here, since
--mcpu will translate into an appropriate -march, lets depend on that
-instead of setting it explicitly
-
-Upstream-Status: Inappropriate [OE-Specific]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libatomic/Makefile.am | 1 -
- libatomic/Makefile.in | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
-index d88515e4a03..e0e2f8b442a 100644
---- a/libatomic/Makefile.am
-+++ b/libatomic/Makefile.am
-@@ -125,7 +125,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix _$(s)_.lo,$(SIZEOBJS)))
- ## On a target-specific basis, include alternates to be selected by IFUNC.
- if HAVE_IFUNC
- if ARCH_AARCH64_LINUX
--IFUNC_OPTIONS	     = -march=armv8-a+lse
- libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS)))
- endif
- if ARCH_ARM_LINUX
-diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
-index 80d25653dc7..7377689ab34 100644
---- a/libatomic/Makefile.in
-+++ b/libatomic/Makefile.in
-@@ -434,7 +434,6 @@ M_SRC = $(firstword $(filter %/$(M_FILE), $(all_c_files)))
- libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
- 	_$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
- 	$(am__append_3) $(am__append_4)
--@ARCH_AARCH64_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv8-a+lse
- @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64
- @ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586
- @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16 -mcx16
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0024-Fix-install-path-of-linux64.h.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0024-Fix-install-path-of-linux64.h.patch
deleted file mode 100644
index 555be623..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0024-Fix-install-path-of-linux64.h.patch
+++ /dev/null
@@ -1,31 +0,0 @@ 
-From 3e67c9c77e46132c252911bf1e5e4222dfd3aa34 Mon Sep 17 00:00:00 2001
-From: Andrei Gherzan <andrei.gherzan@huawei.com>
-Date: Wed, 22 Dec 2021 12:49:25 +0100
-Subject: [PATCH] Fix install path of linux64.h
-
-We add linux64.h to tm includes[1] as a relative path to B. This patch
-adapts the install path of linux64.h to match the include in tm.h.
-
-[1] 0016-Use-the-multilib-config-files-from-B-instead-of-usin.patch
-
-Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/Makefile.in | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gcc/Makefile.in b/gcc/Makefile.in
-index 07fa63b6640..0def7394454 100644
---- a/gcc/Makefile.in
-+++ b/gcc/Makefile.in
-@@ -3706,6 +3706,8 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
- 	  "$(srcdir)"/config/* | "$(srcdir)"/common/config/* \
- 	  | "$(srcdir)"/c-family/* | "$(srcdir)"/*.def ) \
- 	    base=`echo "$$path" | sed -e "s|$$srcdirstrip/||"`;; \
-+	  */linux64.h ) \
-+	    base=`dirname $$path`;;\
- 	  *) base=`basename $$path` ;; \
- 	  esac; \
- 	  dest=$(plugin_includedir)/$$base; \
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0026-rust-recursion-limit.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0026-rust-recursion-limit.patch
deleted file mode 100644
index e13a9962..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/0026-rust-recursion-limit.patch
+++ /dev/null
@@ -1,93 +0,0 @@ 
-From 9234cdca6ee88badfc00297e72f13dac4e540c79 Mon Sep 17 00:00:00 2001
-From: Nick Clifton <nickc@redhat.com>
-Date: Fri, 1 Jul 2022 15:58:52 +0100
-Subject: [PATCH] Add a recursion limit to the demangle_const function in the
- Rust demangler.
-
-libiberty/
-	PR demangler/105039
-	* rust-demangle.c (demangle_const): Add recursion limit.
-
-Upstream-Status: Backport [https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=9234cdca6ee88badfc00297e72f13dac4e540c79]
-Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
----
- libiberty/rust-demangle.c | 29 ++++++++++++++++++++---------
- 1 file changed, 20 insertions(+), 9 deletions(-)
-
-diff --git a/libiberty/rust-demangle.c b/libiberty/rust-demangle.c
-index bb58d900e27..36afcfae278 100644
---- a/libiberty/rust-demangle.c
-+++ b/libiberty/rust-demangle.c
-@@ -126,7 +126,7 @@ parse_integer_62 (struct rust_demangler *rdm)
-     return 0;
- 
-   x = 0;
--  while (!eat (rdm, '_'))
-+  while (!eat (rdm, '_') && !rdm->errored)
-     {
-       c = next (rdm);
-       x *= 62;
-@@ -1148,6 +1148,15 @@ demangle_const (struct rust_demangler *rdm)
-   if (rdm->errored)
-     return;
- 
-+  if (rdm->recursion != RUST_NO_RECURSION_LIMIT)
-+    {
-+      ++ rdm->recursion;
-+      if (rdm->recursion > RUST_MAX_RECURSION_COUNT)
-+	/* FIXME: There ought to be a way to report
-+	   that the recursion limit has been reached.  */
-+	goto fail_return;
-+    }
-+
-   if (eat (rdm, 'B'))
-     {
-       backref = parse_integer_62 (rdm);
-@@ -1158,7 +1167,7 @@ demangle_const (struct rust_demangler *rdm)
-           demangle_const (rdm);
-           rdm->next = old_next;
-         }
--      return;
-+      goto pass_return;
-     }
- 
-   ty_tag = next (rdm);
-@@ -1167,7 +1176,7 @@ demangle_const (struct rust_demangler *rdm)
-     /* Placeholder. */
-     case 'p':
-       PRINT ("_");
--      return;
-+      goto pass_return;
- 
-     /* Unsigned integer types. */
-     case 'h':
-@@ -1200,18 +1209,20 @@ demangle_const (struct rust_demangler *rdm)
-       break;
- 
-     default:
--      rdm->errored = 1;
--      return;
-+      goto fail_return;
-     }
- 
--  if (rdm->errored)
--    return;
--
--  if (rdm->verbose)
-+  if (!rdm->errored && rdm->verbose)
-     {
-       PRINT (": ");
-       PRINT (basic_type (ty_tag));
-     }
-+
-+ fail_return:
-+  rdm->errored = 1;
-+ pass_return:
-+  if (rdm->recursion != RUST_NO_RECURSION_LIMIT)
-+    -- rdm->recursion;
- }
- 
- static void
--- 
-2.31.1
-
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/hardcoded-paths.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/hardcoded-paths.patch
deleted file mode 100644
index f3485858..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/hardcoded-paths.patch
+++ /dev/null
@@ -1,19 +0,0 @@ 
-Avoid encoding build paths into sources used for floating point on powerpc.
-(MACHINE=qemuppc bitbake libgcc).
-
-Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599882.html]
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Index: gcc-12.1.0/libgcc/config/rs6000/t-float128
-===================================================================
---- gcc-12.1.0.orig/libgcc/config/rs6000/t-float128
-+++ gcc-12.1.0/libgcc/config/rs6000/t-float128
-@@ -103,7 +103,7 @@ $(ibm128_dec_objs)	: INTERNAL_CFLAGS +=
- $(fp128_softfp_src) : $(srcdir)/soft-fp/$(subst -sw,,$(subst kf,tf,$@)) $(fp128_dep)
- 	@src="$(srcdir)/soft-fp/$(subst -sw,,$(subst kf,tf,$@))"; \
- 	echo "Create $@"; \
--	(echo "/* file created from $$src */"; \
-+	(echo "/* file created from `basename $$src` */"; \
- 	 echo; \
- 	 sed -f $(fp128_sed) < $$src) > $@
- 
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/prefix-map-realpath.patch b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/prefix-map-realpath.patch
deleted file mode 100644
index 7f1a2dee..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-12.2/prefix-map-realpath.patch
+++ /dev/null
@@ -1,63 +0,0 @@ 
-Relative paths don't work with -fdebug-prefix-map and friends. This
-can lead to paths which the user wanted to be remapped being missed.
-Setting -fdebug-prefix-map to work with a relative path isn't practical
-either.
-
-Instead, call gcc's realpath function on the incomming path name before
-comparing it with the remapping. This means other issues like symlinks
-are also accounted for and leads to a more consistent remapping experience.
-
-Upstream-Status: Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599885.html]
-[Also https://gcc.gnu.org/pipermail/gcc-patches/2022-August/599884.html]
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-
-Index: gcc-12.1.0/gcc/file-prefix-map.cc
-===================================================================
---- gcc-12.1.0.orig/gcc/file-prefix-map.cc
-+++ gcc-12.1.0/gcc/file-prefix-map.cc
-@@ -70,19 +70,28 @@ remap_filename (file_prefix_map *maps, c
-   file_prefix_map *map;
-   char *s;
-   const char *name;
-+  char *realname;
-   size_t name_len;
- 
-+  if (lbasename (filename) == filename)
-+    return filename;
-+
-+  realname = lrealpath (filename);
-+
-   for (map = maps; map; map = map->next)
--    if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0)
-+    if (filename_ncmp (realname, map->old_prefix, map->old_len) == 0)
-       break;
--  if (!map)
-+  if (!map) {
-+    free (realname);
-     return filename;
--  name = filename + map->old_len;
-+  }
-+  name = realname + map->old_len;
-   name_len = strlen (name) + 1;
- 
-   s = (char *) ggc_alloc_atomic (name_len + map->new_len);
-   memcpy (s, map->new_prefix, map->new_len);
-   memcpy (s + map->new_len, name, name_len);
-+  free (realname);
-   return s;
- }
- 
-Index: gcc-12.1.0/libcpp/macro.cc
-===================================================================
---- gcc-12.1.0.orig/libcpp/macro.cc
-+++ gcc-12.1.0/libcpp/macro.cc
-@@ -563,7 +563,7 @@ _cpp_builtin_macro_text (cpp_reader *pfi
- 	    if (!name)
- 	      abort ();
- 	  }
--	if (pfile->cb.remap_filename)
-+	if (pfile->cb.remap_filename && !pfile->state.in_directive)
- 	  name = pfile->cb.remap_filename (name);
- 	len = strlen (name);
- 	buf = _cpp_unaligned_alloc (pfile, len * 2 + 3);
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
deleted file mode 100644
index fa23e846..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
+++ /dev/null
@@ -1,27 +0,0 @@ 
-# gcc-target.inc in OE-Core has these 2 lines in do_install():
-#
-# | # Add unwind.h, it comes from libgcc which we don't want to build again
-# | install ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
-#
-# When TCMODE="external-arm" libgcc is provided by external-arm-toolchain.bb
-# And while it stages the necessary unwind.h file, it ends up in slightly
-# different location. While this is a kludge, be very conservative - only
-# copy the file for target build in recipe-specific sysroot, in external-arm
-# toolchain mode and if the required file does not exist already.
-
-do_install:prepend:class-target () {
-	if [ "${TCMODE}" = "external-arm" -a ! -f ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ]; then
-		install -d ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
-		install ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
-	fi
-}
-
-# When TCMODE="external-arm" and TARGET_SYS is different from EAT_TARGET_SYS,
-# gcc installs additional aliases as ${TARGET_SYS}-${EAT_TARGET_SYS}-gcc, etc.
-# Since those are not packaged and not too useful, let's remove them to avoid
-# QA issues
-do_install:append () {
-	for f in g++ gcc gcc-ar gcc-ranlib gcc-nm; do
-		rm -f ${D}${bindir}/${TARGET_SYS}-${EAT_TARGET_SYS}-$f
-	done
-}
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross-canadian_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross-canadian_arm-12.2.bb
deleted file mode 100644
index d4bf7bfa..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross-canadian_arm-12.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-cross-canadian.inc
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross_arm-12.2.bb
deleted file mode 100644
index 0a8aa75b..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-cross_arm-12.2.bb
+++ /dev/null
@@ -1,3 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-cross.inc
-
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-crosssdk_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-crosssdk_arm-12.2.bb
deleted file mode 100644
index 0a9f98a1..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-crosssdk_arm-12.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@ 
-require recipes-devtools/gcc/gcc-cross_${PV}.bb
-require recipes-devtools/gcc/gcc-crosssdk.inc
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-runtime_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-runtime_arm-12.2.bb
deleted file mode 100644
index b755f555..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-runtime_arm-12.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-runtime.inc
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-sanitizers_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-sanitizers_arm-12.2.bb
deleted file mode 100644
index e88ebe1a..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-sanitizers_arm-12.2.bb
+++ /dev/null
@@ -1,7 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-sanitizers.inc
-
-# Building with thumb enabled on armv4t armv5t fails with
-# sanitizer_linux.s:5749: Error: lo register required -- `ldr ip,[sp],#8'
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-source_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc-source_arm-12.2.bb
deleted file mode 100644
index b890fa33..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-source_arm-12.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-source.inc
-
-EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/gcc_arm-12.2.bb
deleted file mode 100644
index 92967301..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc_arm-12.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/gcc-target.inc
-require recipes-devtools/gcc/gcc-arm-common.inc
-
-# Building with thumb enabled on armv4t armv5t fails with
-# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs
-# | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output
-ARM_INSTRUCTION_SET:armv4 = "arm"
-ARM_INSTRUCTION_SET:armv5 = "arm"
-
-ARMFPARCHEXT:armv6 = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
-ARMFPARCHEXT:armv7a = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
-ARMFPARCHEXT:armv7ve = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}"
-
-BBCLASSEXTEND = "nativesdk"
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/libgcc-initial_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/libgcc-initial_arm-12.2.bb
deleted file mode 100644
index ca1159c5..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/libgcc-initial_arm-12.2.bb
+++ /dev/null
@@ -1,5 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/libgcc-initial.inc
-
-# Building with thumb enabled on armv6t fails
-ARM_INSTRUCTION_SET:armv6 = "arm"
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/libgcc_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/libgcc_arm-12.2.bb
deleted file mode 100644
index 35ac5dfe..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/libgcc_arm-12.2.bb
+++ /dev/null
@@ -1,5 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/libgcc.inc
-
-# Building with thumb enabled on armv6t fails
-ARM_INSTRUCTION_SET:armv6 = "arm"
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/libgfortran_arm-12.2.bb b/meta-arm-toolchain/recipes-devtools/gcc/libgfortran_arm-12.2.bb
deleted file mode 100644
index fe63d0a4..00000000
--- a/meta-arm-toolchain/recipes-devtools/gcc/libgfortran_arm-12.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@ 
-require recipes-devtools/gcc/gcc-${PV}.inc
-require recipes-devtools/gcc/libgfortran.inc