diff mbox series

[kirkstone,1/1] gcc: Refactor linker patches and fix linker on arm with usrmerge

Message ID 20230116075602.28926-2-pavel@zhukoff.net
State New, archived
Headers show
Series gcc: Refactor linker patches and fix linker on arm with usrmerg | expand

Commit Message

Pavel Zhukov Jan. 16, 2023, 7:56 a.m. UTC
Backport fix from master to allow gcc to use proper linker path for
musl [Yocto #14977].

Fixes:
| qemu-arm: Could not open '/lib/ld-musl-armhf.so.1': No such file or directory

Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
---
 meta/recipes-devtools/gcc/gcc-11.3.inc        |   1 -
 ...rm-add-armv9-a-architecture-to-march.patch |  89 +++---
 ...AMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 269 +++++++++++++-----
 ...s-fix-v4bx-to-linker-to-support-EABI.patch |  10 +-
 ...019-nios2-Define-MUSL_DYNAMIC_LINKER.patch |  25 --
 5 files changed, 245 insertions(+), 149 deletions(-)
 delete mode 100644 meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch

Comments

Khem Raj Jan. 16, 2023, 3:32 p.m. UTC | #1
On Sun, Jan 15, 2023 at 11:56 PM Pavel Zhukov <pavel@zhukoff.net> wrote:

> Backport fix from master to allow gcc to use proper linker path for
> musl [Yocto #14977].


Lgtm


>
> Fixes:
> | qemu-arm: Could not open '/lib/ld-musl-armhf.so.1': No such file or
> directory
>
> Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
> ---
>  meta/recipes-devtools/gcc/gcc-11.3.inc        |   1 -
>  ...rm-add-armv9-a-architecture-to-march.patch |  89 +++---
>  ...AMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 269 +++++++++++++-----
>  ...s-fix-v4bx-to-linker-to-support-EABI.patch |  10 +-
>  ...019-nios2-Define-MUSL_DYNAMIC_LINKER.patch |  25 --
>  5 files changed, 245 insertions(+), 149 deletions(-)
>  delete mode 100644
> meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
>
> diff --git a/meta/recipes-devtools/gcc/gcc-11.3.inc
> b/meta/recipes-devtools/gcc/gcc-11.3.inc
> index 27074a06ae..ab2ece3cce 100644
> --- a/meta/recipes-devtools/gcc/gcc-11.3.inc
> +++ b/meta/recipes-devtools/gcc/gcc-11.3.inc
> @@ -48,7 +48,6 @@ SRC_URI = "\
>
> file://0016-If-CXXFLAGS-contains-something-unsupported-by-the-bu.patch \
>             file://0017-handle-sysroot-support-for-nativesdk-gcc.patch \
>
> file://0018-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
> -           file://0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
>
> file://0020-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
>
> file://0021-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
>             file://0022-sync-gcc-stddef.h-with-musl.patch \
> diff --git
> a/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
> b/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
> index c38d1b9119..864c8b3017 100644
> ---
> a/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
> +++
> b/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
> @@ -43,10 +43,10 @@ Signed-off-by: Ruiqiang Hao <
> Ruiqiang.Hao@windriver.com>
>   gcc/testsuite/lib/target-supports.exp     |  3 ++-
>   9 files changed, 79 insertions(+), 8 deletions(-)
>
> -diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
> -index bcc9ebe9f..58d83829c 100644
> ---- a/gcc/config/arm/arm-cpus.in
> -+++ b/gcc/config/arm/arm-cpus.in
> +Index: gcc-11.3.0/gcc/config/arm/arm-cpus.in
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/arm-cpus.in
> ++++ gcc-11.3.0/gcc/config/arm/arm-cpus.in
>  @@ -132,6 +132,9 @@ define feature cmse
>   # Architecture rel 8.1-M.
>   define feature armv8_1m_main
> @@ -57,7 +57,7 @@ index bcc9ebe9f..58d83829c 100644
>   # Floating point and Neon extensions.
>   # VFPv1 is not supported in GCC.
>
> -@@ -293,6 +296,7 @@ define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv
> +@@ -293,6 +296,7 @@ define fgroup ARMv8m_base ARMv6m armv8 c
>   define fgroup ARMv8m_main ARMv7m armv8 cmse
>   define fgroup ARMv8r      ARMv8a
>   define fgroup ARMv8_1m_main ARMv8m_main armv8_1m_main
> @@ -87,10 +87,10 @@ index bcc9ebe9f..58d83829c 100644
>   begin arch iwmmxt
>    tune for iwmmxt
>    tune flags LDSCHED STRONG XSCALE
> -diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt
> -index 5692d4fb7..ae3dd9414 100644
> ---- a/gcc/config/arm/arm-tables.opt
> -+++ b/gcc/config/arm/arm-tables.opt
> +Index: gcc-11.3.0/gcc/config/arm/arm-tables.opt
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/arm-tables.opt
> ++++ gcc-11.3.0/gcc/config/arm/arm-tables.opt
>  @@ -380,10 +380,13 @@ EnumValue
>   Enum(arm_arch) String(armv8.1-m.main) Value(30)
>
> @@ -107,10 +107,10 @@ index 5692d4fb7..ae3dd9414 100644
>
>   Enum
>   Name(arm_fpu) Type(enum fpu_type)
> -diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
> -index 47c13a9e5..088c7725c 100644
> ---- a/gcc/config/arm/arm.h
> -+++ b/gcc/config/arm/arm.h
> +Index: gcc-11.3.0/gcc/config/arm/arm.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/arm.h
> ++++ gcc-11.3.0/gcc/config/arm/arm.h
>  @@ -456,7 +456,8 @@ enum base_architecture
>     BASE_ARCH_8A = 8,
>     BASE_ARCH_8M_BASE = 8,
> @@ -121,10 +121,10 @@ index 47c13a9e5..088c7725c 100644
>   };
>
>   /* The major revision number of the ARM Architecture implemented by the
> target.  */
> -diff --git a/gcc/config/arm/t-aprofile b/gcc/config/arm/t-aprofile
> -index 8574ac3e2..68e2251c7 100644
> ---- a/gcc/config/arm/t-aprofile
> -+++ b/gcc/config/arm/t-aprofile
> +Index: gcc-11.3.0/gcc/config/arm/t-aprofile
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/t-aprofile
> ++++ gcc-11.3.0/gcc/config/arm/t-aprofile
>  @@ -26,8 +26,8 @@
>
>   # Arch and FPU variants to build libraries with
> @@ -136,7 +136,7 @@ index 8574ac3e2..68e2251c7 100644
>
>   # ARMv7-A - build nofp, fp-d16 and SIMD variants
>
> -@@ -46,6 +46,11 @@ MULTILIB_REQUIRED   +=
> mthumb/march=armv8-a/mfloat-abi=soft
> +@@ -46,6 +46,11 @@ MULTILIB_REQUIRED   += mthumb/march=armv8-
>   MULTILIB_REQUIRED     += mthumb/march=armv8-a+simd/mfloat-abi=hard
>   MULTILIB_REQUIRED     += mthumb/march=armv8-a+simd/mfloat-abi=softfp
>
> @@ -148,7 +148,7 @@ index 8574ac3e2..68e2251c7 100644
>   # Matches
>
>   # Arch Matches
> -@@ -129,17 +134,29 @@ MULTILIB_MATCHES += march?armv8-a=march?armv8.6-a
> +@@ -129,17 +134,29 @@ MULTILIB_MATCHES += march?armv8-a=march?
>   MULTILIB_MATCHES      += $(foreach ARCH, $(v8_6_a_simd_variants), \
>                              march?armv8-a+simd=march?armv8.6-a$(ARCH))
>
> @@ -180,11 +180,11 @@ index 8574ac3e2..68e2251c7 100644
>  -                           $(foreach ARCH, armv7-a armv8-a, \
>  +                           $(foreach ARCH, armv7-a armv8-a armv9-a, \
>
>  mthumb/march.$(ARCH)/mfloat-abi.soft=m$(MODE)/march.$(ARCH)/mfloat-abi.softfp))
> -diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf
> -index d68def308..b3a900e8c 100644
> ---- a/gcc/config/arm/t-arm-elf
> -+++ b/gcc/config/arm/t-arm-elf
> -@@ -38,6 +38,8 @@ v7ve_fps     := vfpv3-d16 vfpv3 vfpv3-d16-fp16
> vfpv3-fp16 vfpv4 neon \
> +Index: gcc-11.3.0/gcc/config/arm/t-arm-elf
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/t-arm-elf
> ++++ gcc-11.3.0/gcc/config/arm/t-arm-elf
> +@@ -38,6 +38,8 @@ v7ve_fps     := vfpv3-d16 vfpv3 vfpv3-d16-fp
>   # it seems to work ok.
>   v8_fps                := simd fp16 crypto fp16+crypto dotprod fp16fml
>
> @@ -202,7 +202,7 @@ index d68def308..b3a900e8c 100644
>   # No floating point variants, require thumb1 softfp
>   all_nofp_t    := armv6-m armv6s-m armv8-m.base
>
> -@@ -110,6 +114,11 @@ MULTILIB_MATCHES     += $(foreach ARCH,
> $(all_v8_archs), \
> +@@ -110,6 +114,11 @@ MULTILIB_MATCHES     += $(foreach ARCH,
>                           $(foreach FPARCH, $(v8_fps), \
>                             march?armv7+fp=march?$(ARCH)+$(FPARCH)))
>
> @@ -214,11 +214,11 @@ index d68def308..b3a900e8c 100644
>   MULTILIB_MATCHES     += $(foreach ARCH, armv7e-m armv8-m.mainline, \
>                           march?armv7+fp=march?$(ARCH)+fp.dp)
>
> -diff --git a/gcc/config/arm/t-multilib b/gcc/config/arm/t-multilib
> -index ddc5033bf..d789b86ee 100644
> ---- a/gcc/config/arm/t-multilib
> -+++ b/gcc/config/arm/t-multilib
> -@@ -78,6 +78,8 @@ v8_4_a_simd_variants := $(call all_feat_combs, simd
> fp16 crypto i8mm bf16)
> +Index: gcc-11.3.0/gcc/config/arm/t-multilib
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/t-multilib
> ++++ gcc-11.3.0/gcc/config/arm/t-multilib
> +@@ -78,6 +78,8 @@ v8_4_a_simd_variants := $(call all_feat_
>   v8_5_a_simd_variants  := $(call all_feat_combs, simd fp16 crypto i8mm
> bf16)
>   v8_6_a_simd_variants  := $(call all_feat_combs, simd fp16 crypto i8mm
> bf16)
>   v8_r_nosimd_variants  := +crc
> @@ -227,7 +227,7 @@ index ddc5033bf..d789b86ee 100644
>
>   ifneq (,$(HAS_APROFILE))
>   include $(srcdir)/config/arm/t-aprofile
> -@@ -202,6 +204,16 @@ MULTILIB_MATCHES  += march?armv7=march?armv8.6-a
> +@@ -202,6 +204,16 @@ MULTILIB_MATCHES  += march?armv7=march?ar
>   MULTILIB_MATCHES      += $(foreach ARCH, $(v8_6_a_simd_variants), \
>                              march?armv7+fp=march?armv8.6-a$(ARCH))
>
> @@ -244,10 +244,10 @@ index ddc5033bf..d789b86ee 100644
>   endif         # Not APROFILE.
>
>   # Use Thumb libraries for everything.
> -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> -index 7184a62d0..9a712c0d6 100644
> ---- a/gcc/doc/invoke.texi
> -+++ b/gcc/doc/invoke.texi
> +Index: gcc-11.3.0/gcc/doc/invoke.texi
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/doc/invoke.texi
> ++++ gcc-11.3.0/gcc/doc/invoke.texi
>  @@ -19701,6 +19701,7 @@ Permissible names are:
>   @samp{armv7-m}, @samp{armv7e-m},
>   @samp{armv8-m.base}, @samp{armv8-m.main},
> @@ -256,10 +256,10 @@ index 7184a62d0..9a712c0d6 100644
>   @samp{iwmmxt} and @samp{iwmmxt2}.
>
>   Additionally, the following architectures, which lack support for the
> -diff --git a/gcc/testsuite/gcc.target/arm/multilib.exp
> b/gcc/testsuite/gcc.target/arm/multilib.exp
> -index 4b30025db..e3f06c316 100644
> ---- a/gcc/testsuite/gcc.target/arm/multilib.exp
> -+++ b/gcc/testsuite/gcc.target/arm/multilib.exp
> +Index: gcc-11.3.0/gcc/testsuite/gcc.target/arm/multilib.exp
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/testsuite/gcc.target/arm/multilib.exp
> ++++ gcc-11.3.0/gcc/testsuite/gcc.target/arm/multilib.exp
>  @@ -135,6 +135,14 @@ if {[multilib_config "aprofile"] } {
>         {-march=armv8.6-a+simd+fp16 -mfloat-abi=softfp}
> "thumb/v8-a+simd/softfp"
>         {-march=armv8.6-a+simd+fp16+nofp -mfloat-abi=softfp}
> "thumb/v8-a/nofp"
> @@ -275,10 +275,10 @@ index 4b30025db..e3f06c316 100644
>         {-mcpu=cortex-a53+crypto -mfloat-abi=hard} "thumb/v8-a+simd/hard"
>         {-mcpu=cortex-a53+nofp -mfloat-abi=softfp} "thumb/v8-a/nofp"
>         {-march=armv8-a+crc -mfloat-abi=hard -mfpu=vfp}
> "thumb/v8-a+simd/hard"
> -diff --git a/gcc/testsuite/lib/target-supports.exp
> b/gcc/testsuite/lib/target-supports.exp
> -index 857e57218..52e043917 100644
> ---- a/gcc/testsuite/lib/target-supports.exp
> -+++ b/gcc/testsuite/lib/target-supports.exp
> +Index: gcc-11.3.0/gcc/testsuite/lib/target-supports.exp
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/testsuite/lib/target-supports.exp
> ++++ gcc-11.3.0/gcc/testsuite/lib/target-supports.exp
>  @@ -4820,7 +4820,8 @@ foreach { armfunc armflag armdefs } {
>         v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
>                 __ARM_ARCH_8M_BASE__
> @@ -289,6 +289,3 @@ index 857e57218..52e043917 100644
>       eval [string map [list FUNC $armfunc FLAG $armflag DEFS $armdefs ] {
>         proc check_effective_target_arm_arch_FUNC_ok { } {
>             return [check_no_compiler_messages arm_arch_FUNC_ok assembly {
> ---
> -2.34.1
> -
> diff --git
> a/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
> b/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
> index ef19eef822..b3515c9734 100644
> ---
> a/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
> +++
> b/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
> @@ -1,4 +1,4 @@
> -From 84dd8ea4c982fc2c82af642293d29e9c1880de5b Mon Sep 17 00:00:00 2001
> +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
> @@ -12,28 +12,37 @@ 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>
> +
> +Refresh patch from master to deduplicate patches and fix arm linker
> +Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
>  ---
>   gcc/config/aarch64/aarch64-linux.h |  4 ++--
>   gcc/config/alpha/linux-elf.h       |  4 ++--
> - gcc/config/arm/linux-eabi.h        |  4 ++--
> + gcc/config/arm/linux-eabi.h        |  6 +++---
>   gcc/config/arm/linux-elf.h         |  2 +-
> - gcc/config/i386/linux.h            |  2 +-
> - gcc/config/i386/linux64.h          |  6 +++---
> + gcc/config/i386/linux.h            |  4 ++--
> + gcc/config/i386/linux64.h          | 12 ++++++------
>   gcc/config/linux.h                 |  8 ++++----
> - gcc/config/mips/linux.h            | 12 ++++++------
> - gcc/config/riscv/linux.h           |  2 +-
> + 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/sh/linux.h              |  2 +-
> + 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 ++--
> - 13 files changed, 31 insertions(+), 36 deletions(-)
> + 17 files changed, 53 insertions(+), 58 deletions(-)
>
> -diff --git a/gcc/config/aarch64/aarch64-linux.h
> b/gcc/config/aarch64/aarch64-linux.h
> -index 7f2529a2a1d..4bcae7f3110 100644
> ---- a/gcc/config/aarch64/aarch64-linux.h
> -+++ b/gcc/config/aarch64/aarch64-linux.h
> +Index: gcc-11.3.0/gcc/config/aarch64/aarch64-linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/aarch64/aarch64-linux.h
> ++++ gcc-11.3.0/gcc/config/aarch64/aarch64-linux.h
>  @@ -21,10 +21,10 @@
>   #ifndef GCC_AARCH64_LINUX_H
>   #define GCC_AARCH64_LINUX_H
> @@ -47,11 +56,11 @@ index 7f2529a2a1d..4bcae7f3110 100644
>
>   #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 c1dae8ca2cf..3ce2b76c1a4 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
> +Index: gcc-11.3.0/gcc/config/alpha/linux-elf.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/alpha/linux-elf.h
> ++++ gcc-11.3.0/gcc/config/alpha/linux-elf.h
> +@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3.
>   #define EXTRA_SPECS \
>   { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
>
> @@ -62,10 +71,10 @@ index c1dae8ca2cf..3ce2b76c1a4 100644
>   #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 85d0136e76e..6bd95855827 100644
> ---- a/gcc/config/arm/linux-eabi.h
> -+++ b/gcc/config/arm/linux-eabi.h
> +Index: gcc-11.3.0/gcc/config/arm/linux-eabi.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/linux-eabi.h
> ++++ gcc-11.3.0/gcc/config/arm/linux-eabi.h
>  @@ -65,8 +65,8 @@
>      GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
>
> @@ -77,10 +86,19 @@ index 85d0136e76e..6bd95855827 100644
>   #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
>
>   #define GLIBC_DYNAMIC_LINKER \
> -diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
> -index 0c1c4e70b6b..6bd643ade11 100644
> ---- a/gcc/config/arm/linux-elf.h
> -+++ b/gcc/config/arm/linux-elf.h
> +@@ -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.  */
> +Index: gcc-11.3.0/gcc/config/arm/linux-elf.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/linux-elf.h
> ++++ gcc-11.3.0/gcc/config/arm/linux-elf.h
>  @@ -60,7 +60,7 @@
>
>   #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
> @@ -90,11 +108,11 @@ index 0c1c4e70b6b..6bd643ade11 100644
>
>   #define LINUX_TARGET_LINK_SPEC  "%{h*} \
>      %{static:-Bstatic} \
> -diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
> -index 04b274f1654..7aafcf3ac2d 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
> +Index: gcc-11.3.0/gcc/config/i386/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/i386/linux.h
> ++++ gcc-11.3.0/gcc/config/i386/linux.h
> +@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3.
>   <http://www.gnu.org/licenses/>.  */
>
>   #define GNU_USER_LINK_EMULATION "elf_i386"
> @@ -102,12 +120,13 @@ index 04b274f1654..7aafcf3ac2d 100644
>  +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
>
>   #undef MUSL_DYNAMIC_LINKER
> - #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
> -diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
> -index b3822ced528..92d303e80d6 100644
> ---- a/gcc/config/i386/linux64.h
> -+++ b/gcc/config/i386/linux64.h
> -@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME
> respectively.  If not, see
> +-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
> ++#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
> +Index: gcc-11.3.0/gcc/config/i386/linux64.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/i386/linux64.h
> ++++ gcc-11.3.0/gcc/config/i386/linux64.h
> +@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTI
>   #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
>   #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
>
> @@ -119,12 +138,19 @@ index b3822ced528..92d303e80d6 100644
>  +#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"
> -diff --git a/gcc/config/linux.h b/gcc/config/linux.h
> -index 4e1db60fced..87efc5f69fe 100644
> ---- a/gcc/config/linux.h
> -+++ b/gcc/config/linux.h
> -@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME
> respectively.  If not, see
> +-#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"
> +Index: gcc-11.3.0/gcc/config/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/linux.h
> ++++ gcc-11.3.0/gcc/config/linux.h
> +@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTI
>      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.  */
> @@ -139,11 +165,33 @@ index 4e1db60fced..87efc5f69fe 100644
>   #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/mips/linux.h b/gcc/config/mips/linux.h
> -index 44a85e410d9..8d41b5574f6 100644
> ---- a/gcc/config/mips/linux.h
> -+++ b/gcc/config/mips/linux.h
> -@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3.  If not see
> +Index: gcc-11.3.0/gcc/config/microblaze/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/microblaze/linux.h
> ++++ gcc-11.3.0/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 \
> +Index: gcc-11.3.0/gcc/config/mips/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/mips/linux.h
> ++++ gcc-11.3.0/gcc/config/mips/linux.h
> +@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3.
>   #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
>
>   #define GLIBC_DYNAMIC_LINKER32 \
> @@ -170,11 +218,36 @@ index 44a85e410d9..8d41b5574f6 100644
>
>   #undef MUSL_DYNAMIC_LINKER32
>   #define MUSL_DYNAMIC_LINKER32 \
> -diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
> -index fce5b896e6e..03aa55cb5ab 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
> +-
> "/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 \
> +Index: gcc-11.3.0/gcc/config/nios2/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/nios2/linux.h
> ++++ gcc-11.3.0/gcc/config/nios2/linux.h
> +@@ -29,7 +29,7 @@
> + #undef CPP_SPEC
> + #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
> +
> +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
> ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-nios2.so.1"
> +
> + #undef LINK_SPEC
> + #define LINK_SPEC LINK_SPEC_ENDIAN \
> +Index: gcc-11.3.0/gcc/config/riscv/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/riscv/linux.h
> ++++ gcc-11.3.0/gcc/config/riscv/linux.h
> +@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.
>       GNU_USER_TARGET_OS_CPP_BUILTINS();                                \
>     } while (0)
>
> @@ -183,10 +256,19 @@ index fce5b896e6e..03aa55cb5ab 100644
>
>   #define MUSL_ABI_SUFFIX \
>     "%{mabi=ilp32:-sf}" \
> -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
> -index e3f2cd254f6..a11e01faa3d 100644
> ---- a/gcc/config/rs6000/linux64.h
> -+++ b/gcc/config/rs6000/linux64.h
> +@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.
> +   "%{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.  */
> +Index: gcc-11.3.0/gcc/config/rs6000/linux64.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/rs6000/linux64.h
> ++++ gcc-11.3.0/gcc/config/rs6000/linux64.h
>  @@ -336,24 +336,19 @@ extern int dot_symbols;
>   #undef        LINK_OS_DEFAULT_SPEC
>   #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
> @@ -217,12 +299,55 @@ index e3f2cd254f6..a11e01faa3d 100644
>
>   #undef  DEFAULT_ASM_ENDIAN
>   #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
> -diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
> -index 7558d2f7195..3aaa6c3a078 100644
> ---- a/gcc/config/sh/linux.h
> -+++ b/gcc/config/sh/linux.h
> -@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3.  If not see
> -   "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
> +Index: gcc-11.3.0/gcc/config/rs6000/sysv4.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/rs6000/sysv4.h
> ++++ gcc-11.3.0/gcc/config/rs6000/sysv4.h
> +@@ -780,10 +780,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
> +Index: gcc-11.3.0/gcc/config/s390/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/s390/linux.h
> ++++ gcc-11.3.0/gcc/config/s390/linux.h
> +@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3.
> + #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 \
> +Index: gcc-11.3.0/gcc/config/sh/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/sh/linux.h
> ++++ gcc-11.3.0/gcc/config/sh/linux.h
> +@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3.
> +
> + #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"
> @@ -230,11 +355,11 @@ index 7558d2f7195..3aaa6c3a078 100644
>
>   #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 2550d7ee8f0..a94f4cd8ba2 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);
> +Index: gcc-11.3.0/gcc/config/sparc/linux.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/sparc/linux.h
> ++++ gcc-11.3.0/gcc/config/sparc/linux.h
> +@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu
>      When the -shared link option is used a final link is not being
>      done.  */
>
> @@ -243,11 +368,11 @@ index 2550d7ee8f0..a94f4cd8ba2 100644
>
>   #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 95af8afa9b5..63127afb074 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
> +Index: gcc-11.3.0/gcc/config/sparc/linux64.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/sparc/linux64.h
> ++++ gcc-11.3.0/gcc/config/sparc/linux64.h
> +@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3.
>      When the -shared link option is used a final link is not being
>      done.  */
>
> diff --git
> a/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
> b/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
> index ac139542f1..0f94936140 100644
> ---
> a/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
> +++
> b/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
> @@ -18,13 +18,13 @@ 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 6bd95855827..77befab5da8 100644
> ---- a/gcc/config/arm/linux-eabi.h
> -+++ b/gcc/config/arm/linux-eabi.h
> +Index: gcc-11.3.0/gcc/config/arm/linux-eabi.h
> +===================================================================
> +--- gcc-11.3.0.orig/gcc/config/arm/linux-eabi.h
> ++++ gcc-11.3.0/gcc/config/arm/linux-eabi.h
>  @@ -91,10 +91,14 @@
>   #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"
>
>  +/* For armv4 we pass --fix-v4bx to linker to support EABI */
>  +#undef TARGET_FIX_V4BX_SPEC
> diff --git
> a/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
> b/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
> deleted file mode 100644
> index 76ebfd7f77..0000000000
> ---
> a/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -From 9ec4db8e910d9a51ae43f6b20d4bf1dac2d8cca8 Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem@gmail.com>
> -Date: Tue, 2 Feb 2016 10:26:10 -0800
> -Subject: [PATCH] nios2: Define MUSL_DYNAMIC_LINKER
> -
> -Upstream-Status: Backport [
> https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e5ddbbf992b909d8e38851bd3179d29389e6ac97
> ]
> -
> -Signed-off-by: Marek Vasut <marex@denx.de>
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ----
> - gcc/config/nios2/linux.h | 1 +
> - 1 file changed, 1 insertion(+)
> -
> -diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
> -index 08edf1521f6..15696d86241 100644
> ---- a/gcc/config/nios2/linux.h
> -+++ b/gcc/config/nios2/linux.h
> -@@ -30,6 +30,7 @@
> - #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"
> -
> - #undef LINK_SPEC
> - #define LINK_SPEC LINK_SPEC_ENDIAN \
> --
> 2.39.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#175962):
> https://lists.openembedded.org/g/openembedded-core/message/175962
> Mute This Topic: https://lists.openembedded.org/mt/96302818/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Khem Raj Jan. 16, 2023, 7:19 p.m. UTC | #2
On Mon, Jan 16, 2023 at 7:32 AM Khem Raj <raj.khem@gmail.com> wrote:
>
>
>
> On Sun, Jan 15, 2023 at 11:56 PM Pavel Zhukov <pavel@zhukoff.net> wrote:
>>
>> Backport fix from master to allow gcc to use proper linker path for
>> musl [Yocto #14977].
>
>
> Lgtm

Of the two, I think this seems to be closer to master and perhaps
easier to maintain in long run. So lets use this one.

>
>>
>>
>> Fixes:
>> | qemu-arm: Could not open '/lib/ld-musl-armhf.so.1': No such file or directory
>>
>> Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
>> ---
>>  meta/recipes-devtools/gcc/gcc-11.3.inc        |   1 -
>>  ...rm-add-armv9-a-architecture-to-march.patch |  89 +++---
>>  ...AMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch | 269 +++++++++++++-----
>>  ...s-fix-v4bx-to-linker-to-support-EABI.patch |  10 +-
>>  ...019-nios2-Define-MUSL_DYNAMIC_LINKER.patch |  25 --
>>  5 files changed, 245 insertions(+), 149 deletions(-)
>>  delete mode 100644 meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-11.3.inc b/meta/recipes-devtools/gcc/gcc-11.3.inc
>> index 27074a06ae..ab2ece3cce 100644
>> --- a/meta/recipes-devtools/gcc/gcc-11.3.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-11.3.inc
>> @@ -48,7 +48,6 @@ SRC_URI = "\
>>             file://0016-If-CXXFLAGS-contains-something-unsupported-by-the-bu.patch \
>>             file://0017-handle-sysroot-support-for-nativesdk-gcc.patch \
>>             file://0018-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
>> -           file://0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
>>             file://0020-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
>>             file://0021-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
>>             file://0022-sync-gcc-stddef.h-with-musl.patch \
>> diff --git a/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch b/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
>> index c38d1b9119..864c8b3017 100644
>> --- a/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
>> +++ b/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
>> @@ -43,10 +43,10 @@ Signed-off-by: Ruiqiang Hao <Ruiqiang.Hao@windriver.com>
>>   gcc/testsuite/lib/target-supports.exp     |  3 ++-
>>   9 files changed, 79 insertions(+), 8 deletions(-)
>>
>> -diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
>> -index bcc9ebe9f..58d83829c 100644
>> ---- a/gcc/config/arm/arm-cpus.in
>> -+++ b/gcc/config/arm/arm-cpus.in
>> +Index: gcc-11.3.0/gcc/config/arm/arm-cpus.in
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/arm-cpus.in
>> ++++ gcc-11.3.0/gcc/config/arm/arm-cpus.in
>>  @@ -132,6 +132,9 @@ define feature cmse
>>   # Architecture rel 8.1-M.
>>   define feature armv8_1m_main
>> @@ -57,7 +57,7 @@ index bcc9ebe9f..58d83829c 100644
>>   # Floating point and Neon extensions.
>>   # VFPv1 is not supported in GCC.
>>
>> -@@ -293,6 +296,7 @@ define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv
>> +@@ -293,6 +296,7 @@ define fgroup ARMv8m_base ARMv6m armv8 c
>>   define fgroup ARMv8m_main ARMv7m armv8 cmse
>>   define fgroup ARMv8r      ARMv8a
>>   define fgroup ARMv8_1m_main ARMv8m_main armv8_1m_main
>> @@ -87,10 +87,10 @@ index bcc9ebe9f..58d83829c 100644
>>   begin arch iwmmxt
>>    tune for iwmmxt
>>    tune flags LDSCHED STRONG XSCALE
>> -diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt
>> -index 5692d4fb7..ae3dd9414 100644
>> ---- a/gcc/config/arm/arm-tables.opt
>> -+++ b/gcc/config/arm/arm-tables.opt
>> +Index: gcc-11.3.0/gcc/config/arm/arm-tables.opt
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/arm-tables.opt
>> ++++ gcc-11.3.0/gcc/config/arm/arm-tables.opt
>>  @@ -380,10 +380,13 @@ EnumValue
>>   Enum(arm_arch) String(armv8.1-m.main) Value(30)
>>
>> @@ -107,10 +107,10 @@ index 5692d4fb7..ae3dd9414 100644
>>
>>   Enum
>>   Name(arm_fpu) Type(enum fpu_type)
>> -diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
>> -index 47c13a9e5..088c7725c 100644
>> ---- a/gcc/config/arm/arm.h
>> -+++ b/gcc/config/arm/arm.h
>> +Index: gcc-11.3.0/gcc/config/arm/arm.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/arm.h
>> ++++ gcc-11.3.0/gcc/config/arm/arm.h
>>  @@ -456,7 +456,8 @@ enum base_architecture
>>     BASE_ARCH_8A = 8,
>>     BASE_ARCH_8M_BASE = 8,
>> @@ -121,10 +121,10 @@ index 47c13a9e5..088c7725c 100644
>>   };
>>
>>   /* The major revision number of the ARM Architecture implemented by the target.  */
>> -diff --git a/gcc/config/arm/t-aprofile b/gcc/config/arm/t-aprofile
>> -index 8574ac3e2..68e2251c7 100644
>> ---- a/gcc/config/arm/t-aprofile
>> -+++ b/gcc/config/arm/t-aprofile
>> +Index: gcc-11.3.0/gcc/config/arm/t-aprofile
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/t-aprofile
>> ++++ gcc-11.3.0/gcc/config/arm/t-aprofile
>>  @@ -26,8 +26,8 @@
>>
>>   # Arch and FPU variants to build libraries with
>> @@ -136,7 +136,7 @@ index 8574ac3e2..68e2251c7 100644
>>
>>   # ARMv7-A - build nofp, fp-d16 and SIMD variants
>>
>> -@@ -46,6 +46,11 @@ MULTILIB_REQUIRED   += mthumb/march=armv8-a/mfloat-abi=soft
>> +@@ -46,6 +46,11 @@ MULTILIB_REQUIRED   += mthumb/march=armv8-
>>   MULTILIB_REQUIRED     += mthumb/march=armv8-a+simd/mfloat-abi=hard
>>   MULTILIB_REQUIRED     += mthumb/march=armv8-a+simd/mfloat-abi=softfp
>>
>> @@ -148,7 +148,7 @@ index 8574ac3e2..68e2251c7 100644
>>   # Matches
>>
>>   # Arch Matches
>> -@@ -129,17 +134,29 @@ MULTILIB_MATCHES += march?armv8-a=march?armv8.6-a
>> +@@ -129,17 +134,29 @@ MULTILIB_MATCHES += march?armv8-a=march?
>>   MULTILIB_MATCHES      += $(foreach ARCH, $(v8_6_a_simd_variants), \
>>                              march?armv8-a+simd=march?armv8.6-a$(ARCH))
>>
>> @@ -180,11 +180,11 @@ index 8574ac3e2..68e2251c7 100644
>>  -                           $(foreach ARCH, armv7-a armv8-a, \
>>  +                           $(foreach ARCH, armv7-a armv8-a armv9-a, \
>>                                mthumb/march.$(ARCH)/mfloat-abi.soft=m$(MODE)/march.$(ARCH)/mfloat-abi.softfp))
>> -diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf
>> -index d68def308..b3a900e8c 100644
>> ---- a/gcc/config/arm/t-arm-elf
>> -+++ b/gcc/config/arm/t-arm-elf
>> -@@ -38,6 +38,8 @@ v7ve_fps     := vfpv3-d16 vfpv3 vfpv3-d16-fp16 vfpv3-fp16 vfpv4 neon \
>> +Index: gcc-11.3.0/gcc/config/arm/t-arm-elf
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/t-arm-elf
>> ++++ gcc-11.3.0/gcc/config/arm/t-arm-elf
>> +@@ -38,6 +38,8 @@ v7ve_fps     := vfpv3-d16 vfpv3 vfpv3-d16-fp
>>   # it seems to work ok.
>>   v8_fps                := simd fp16 crypto fp16+crypto dotprod fp16fml
>>
>> @@ -202,7 +202,7 @@ index d68def308..b3a900e8c 100644
>>   # No floating point variants, require thumb1 softfp
>>   all_nofp_t    := armv6-m armv6s-m armv8-m.base
>>
>> -@@ -110,6 +114,11 @@ MULTILIB_MATCHES     += $(foreach ARCH, $(all_v8_archs), \
>> +@@ -110,6 +114,11 @@ MULTILIB_MATCHES     += $(foreach ARCH,
>>                           $(foreach FPARCH, $(v8_fps), \
>>                             march?armv7+fp=march?$(ARCH)+$(FPARCH)))
>>
>> @@ -214,11 +214,11 @@ index d68def308..b3a900e8c 100644
>>   MULTILIB_MATCHES     += $(foreach ARCH, armv7e-m armv8-m.mainline, \
>>                           march?armv7+fp=march?$(ARCH)+fp.dp)
>>
>> -diff --git a/gcc/config/arm/t-multilib b/gcc/config/arm/t-multilib
>> -index ddc5033bf..d789b86ee 100644
>> ---- a/gcc/config/arm/t-multilib
>> -+++ b/gcc/config/arm/t-multilib
>> -@@ -78,6 +78,8 @@ v8_4_a_simd_variants := $(call all_feat_combs, simd fp16 crypto i8mm bf16)
>> +Index: gcc-11.3.0/gcc/config/arm/t-multilib
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/t-multilib
>> ++++ gcc-11.3.0/gcc/config/arm/t-multilib
>> +@@ -78,6 +78,8 @@ v8_4_a_simd_variants := $(call all_feat_
>>   v8_5_a_simd_variants  := $(call all_feat_combs, simd fp16 crypto i8mm bf16)
>>   v8_6_a_simd_variants  := $(call all_feat_combs, simd fp16 crypto i8mm bf16)
>>   v8_r_nosimd_variants  := +crc
>> @@ -227,7 +227,7 @@ index ddc5033bf..d789b86ee 100644
>>
>>   ifneq (,$(HAS_APROFILE))
>>   include $(srcdir)/config/arm/t-aprofile
>> -@@ -202,6 +204,16 @@ MULTILIB_MATCHES  += march?armv7=march?armv8.6-a
>> +@@ -202,6 +204,16 @@ MULTILIB_MATCHES  += march?armv7=march?ar
>>   MULTILIB_MATCHES      += $(foreach ARCH, $(v8_6_a_simd_variants), \
>>                              march?armv7+fp=march?armv8.6-a$(ARCH))
>>
>> @@ -244,10 +244,10 @@ index ddc5033bf..d789b86ee 100644
>>   endif         # Not APROFILE.
>>
>>   # Use Thumb libraries for everything.
>> -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
>> -index 7184a62d0..9a712c0d6 100644
>> ---- a/gcc/doc/invoke.texi
>> -+++ b/gcc/doc/invoke.texi
>> +Index: gcc-11.3.0/gcc/doc/invoke.texi
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/doc/invoke.texi
>> ++++ gcc-11.3.0/gcc/doc/invoke.texi
>>  @@ -19701,6 +19701,7 @@ Permissible names are:
>>   @samp{armv7-m}, @samp{armv7e-m},
>>   @samp{armv8-m.base}, @samp{armv8-m.main},
>> @@ -256,10 +256,10 @@ index 7184a62d0..9a712c0d6 100644
>>   @samp{iwmmxt} and @samp{iwmmxt2}.
>>
>>   Additionally, the following architectures, which lack support for the
>> -diff --git a/gcc/testsuite/gcc.target/arm/multilib.exp b/gcc/testsuite/gcc.target/arm/multilib.exp
>> -index 4b30025db..e3f06c316 100644
>> ---- a/gcc/testsuite/gcc.target/arm/multilib.exp
>> -+++ b/gcc/testsuite/gcc.target/arm/multilib.exp
>> +Index: gcc-11.3.0/gcc/testsuite/gcc.target/arm/multilib.exp
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/testsuite/gcc.target/arm/multilib.exp
>> ++++ gcc-11.3.0/gcc/testsuite/gcc.target/arm/multilib.exp
>>  @@ -135,6 +135,14 @@ if {[multilib_config "aprofile"] } {
>>         {-march=armv8.6-a+simd+fp16 -mfloat-abi=softfp} "thumb/v8-a+simd/softfp"
>>         {-march=armv8.6-a+simd+fp16+nofp -mfloat-abi=softfp} "thumb/v8-a/nofp"
>> @@ -275,10 +275,10 @@ index 4b30025db..e3f06c316 100644
>>         {-mcpu=cortex-a53+crypto -mfloat-abi=hard} "thumb/v8-a+simd/hard"
>>         {-mcpu=cortex-a53+nofp -mfloat-abi=softfp} "thumb/v8-a/nofp"
>>         {-march=armv8-a+crc -mfloat-abi=hard -mfpu=vfp} "thumb/v8-a+simd/hard"
>> -diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
>> -index 857e57218..52e043917 100644
>> ---- a/gcc/testsuite/lib/target-supports.exp
>> -+++ b/gcc/testsuite/lib/target-supports.exp
>> +Index: gcc-11.3.0/gcc/testsuite/lib/target-supports.exp
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/testsuite/lib/target-supports.exp
>> ++++ gcc-11.3.0/gcc/testsuite/lib/target-supports.exp
>>  @@ -4820,7 +4820,8 @@ foreach { armfunc armflag armdefs } {
>>         v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
>>                 __ARM_ARCH_8M_BASE__
>> @@ -289,6 +289,3 @@ index 857e57218..52e043917 100644
>>       eval [string map [list FUNC $armfunc FLAG $armflag DEFS $armdefs ] {
>>         proc check_effective_target_arm_arch_FUNC_ok { } {
>>             return [check_no_compiler_messages arm_arch_FUNC_ok assembly {
>> ---
>> -2.34.1
>> -
>> diff --git a/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
>> index ef19eef822..b3515c9734 100644
>> --- a/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
>> +++ b/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
>> @@ -1,4 +1,4 @@
>> -From 84dd8ea4c982fc2c82af642293d29e9c1880de5b Mon Sep 17 00:00:00 2001
>> +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
>> @@ -12,28 +12,37 @@ 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>
>> +
>> +Refresh patch from master to deduplicate patches and fix arm linker
>> +Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
>>  ---
>>   gcc/config/aarch64/aarch64-linux.h |  4 ++--
>>   gcc/config/alpha/linux-elf.h       |  4 ++--
>> - gcc/config/arm/linux-eabi.h        |  4 ++--
>> + gcc/config/arm/linux-eabi.h        |  6 +++---
>>   gcc/config/arm/linux-elf.h         |  2 +-
>> - gcc/config/i386/linux.h            |  2 +-
>> - gcc/config/i386/linux64.h          |  6 +++---
>> + gcc/config/i386/linux.h            |  4 ++--
>> + gcc/config/i386/linux64.h          | 12 ++++++------
>>   gcc/config/linux.h                 |  8 ++++----
>> - gcc/config/mips/linux.h            | 12 ++++++------
>> - gcc/config/riscv/linux.h           |  2 +-
>> + 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/sh/linux.h              |  2 +-
>> + 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 ++--
>> - 13 files changed, 31 insertions(+), 36 deletions(-)
>> + 17 files changed, 53 insertions(+), 58 deletions(-)
>>
>> -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
>> -index 7f2529a2a1d..4bcae7f3110 100644
>> ---- a/gcc/config/aarch64/aarch64-linux.h
>> -+++ b/gcc/config/aarch64/aarch64-linux.h
>> +Index: gcc-11.3.0/gcc/config/aarch64/aarch64-linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/aarch64/aarch64-linux.h
>> ++++ gcc-11.3.0/gcc/config/aarch64/aarch64-linux.h
>>  @@ -21,10 +21,10 @@
>>   #ifndef GCC_AARCH64_LINUX_H
>>   #define GCC_AARCH64_LINUX_H
>> @@ -47,11 +56,11 @@ index 7f2529a2a1d..4bcae7f3110 100644
>>
>>   #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 c1dae8ca2cf..3ce2b76c1a4 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
>> +Index: gcc-11.3.0/gcc/config/alpha/linux-elf.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/alpha/linux-elf.h
>> ++++ gcc-11.3.0/gcc/config/alpha/linux-elf.h
>> +@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3.
>>   #define EXTRA_SPECS \
>>   { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
>>
>> @@ -62,10 +71,10 @@ index c1dae8ca2cf..3ce2b76c1a4 100644
>>   #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 85d0136e76e..6bd95855827 100644
>> ---- a/gcc/config/arm/linux-eabi.h
>> -+++ b/gcc/config/arm/linux-eabi.h
>> +Index: gcc-11.3.0/gcc/config/arm/linux-eabi.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/linux-eabi.h
>> ++++ gcc-11.3.0/gcc/config/arm/linux-eabi.h
>>  @@ -65,8 +65,8 @@
>>      GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
>>
>> @@ -77,10 +86,19 @@ index 85d0136e76e..6bd95855827 100644
>>   #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
>>
>>   #define GLIBC_DYNAMIC_LINKER \
>> -diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
>> -index 0c1c4e70b6b..6bd643ade11 100644
>> ---- a/gcc/config/arm/linux-elf.h
>> -+++ b/gcc/config/arm/linux-elf.h
>> +@@ -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.  */
>> +Index: gcc-11.3.0/gcc/config/arm/linux-elf.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/linux-elf.h
>> ++++ gcc-11.3.0/gcc/config/arm/linux-elf.h
>>  @@ -60,7 +60,7 @@
>>
>>   #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
>> @@ -90,11 +108,11 @@ index 0c1c4e70b6b..6bd643ade11 100644
>>
>>   #define LINUX_TARGET_LINK_SPEC  "%{h*} \
>>      %{static:-Bstatic} \
>> -diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
>> -index 04b274f1654..7aafcf3ac2d 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
>> +Index: gcc-11.3.0/gcc/config/i386/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/i386/linux.h
>> ++++ gcc-11.3.0/gcc/config/i386/linux.h
>> +@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3.
>>   <http://www.gnu.org/licenses/>.  */
>>
>>   #define GNU_USER_LINK_EMULATION "elf_i386"
>> @@ -102,12 +120,13 @@ index 04b274f1654..7aafcf3ac2d 100644
>>  +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
>>
>>   #undef MUSL_DYNAMIC_LINKER
>> - #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
>> -diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
>> -index b3822ced528..92d303e80d6 100644
>> ---- a/gcc/config/i386/linux64.h
>> -+++ b/gcc/config/i386/linux64.h
>> -@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>> +-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
>> ++#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
>> +Index: gcc-11.3.0/gcc/config/i386/linux64.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/i386/linux64.h
>> ++++ gcc-11.3.0/gcc/config/i386/linux64.h
>> +@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTI
>>   #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
>>   #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
>>
>> @@ -119,12 +138,19 @@ index b3822ced528..92d303e80d6 100644
>>  +#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"
>> -diff --git a/gcc/config/linux.h b/gcc/config/linux.h
>> -index 4e1db60fced..87efc5f69fe 100644
>> ---- a/gcc/config/linux.h
>> -+++ b/gcc/config/linux.h
>> -@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>> +-#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"
>> +Index: gcc-11.3.0/gcc/config/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/linux.h
>> ++++ gcc-11.3.0/gcc/config/linux.h
>> +@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTI
>>      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.  */
>> @@ -139,11 +165,33 @@ index 4e1db60fced..87efc5f69fe 100644
>>   #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/mips/linux.h b/gcc/config/mips/linux.h
>> -index 44a85e410d9..8d41b5574f6 100644
>> ---- a/gcc/config/mips/linux.h
>> -+++ b/gcc/config/mips/linux.h
>> -@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3.  If not see
>> +Index: gcc-11.3.0/gcc/config/microblaze/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/microblaze/linux.h
>> ++++ gcc-11.3.0/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 \
>> +Index: gcc-11.3.0/gcc/config/mips/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/mips/linux.h
>> ++++ gcc-11.3.0/gcc/config/mips/linux.h
>> +@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3.
>>   #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
>>
>>   #define GLIBC_DYNAMIC_LINKER32 \
>> @@ -170,11 +218,36 @@ index 44a85e410d9..8d41b5574f6 100644
>>
>>   #undef MUSL_DYNAMIC_LINKER32
>>   #define MUSL_DYNAMIC_LINKER32 \
>> -diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
>> -index fce5b896e6e..03aa55cb5ab 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
>> +-  "/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 \
>> +Index: gcc-11.3.0/gcc/config/nios2/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/nios2/linux.h
>> ++++ gcc-11.3.0/gcc/config/nios2/linux.h
>> +@@ -29,7 +29,7 @@
>> + #undef CPP_SPEC
>> + #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
>> +
>> +-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
>> ++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-nios2.so.1"
>> +
>> + #undef LINK_SPEC
>> + #define LINK_SPEC LINK_SPEC_ENDIAN \
>> +Index: gcc-11.3.0/gcc/config/riscv/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/riscv/linux.h
>> ++++ gcc-11.3.0/gcc/config/riscv/linux.h
>> +@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.
>>       GNU_USER_TARGET_OS_CPP_BUILTINS();                                \
>>     } while (0)
>>
>> @@ -183,10 +256,19 @@ index fce5b896e6e..03aa55cb5ab 100644
>>
>>   #define MUSL_ABI_SUFFIX \
>>     "%{mabi=ilp32:-sf}" \
>> -diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
>> -index e3f2cd254f6..a11e01faa3d 100644
>> ---- a/gcc/config/rs6000/linux64.h
>> -+++ b/gcc/config/rs6000/linux64.h
>> +@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.
>> +   "%{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.  */
>> +Index: gcc-11.3.0/gcc/config/rs6000/linux64.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/rs6000/linux64.h
>> ++++ gcc-11.3.0/gcc/config/rs6000/linux64.h
>>  @@ -336,24 +336,19 @@ extern int dot_symbols;
>>   #undef        LINK_OS_DEFAULT_SPEC
>>   #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
>> @@ -217,12 +299,55 @@ index e3f2cd254f6..a11e01faa3d 100644
>>
>>   #undef  DEFAULT_ASM_ENDIAN
>>   #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
>> -diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
>> -index 7558d2f7195..3aaa6c3a078 100644
>> ---- a/gcc/config/sh/linux.h
>> -+++ b/gcc/config/sh/linux.h
>> -@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3.  If not see
>> -   "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
>> +Index: gcc-11.3.0/gcc/config/rs6000/sysv4.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/rs6000/sysv4.h
>> ++++ gcc-11.3.0/gcc/config/rs6000/sysv4.h
>> +@@ -780,10 +780,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
>> +Index: gcc-11.3.0/gcc/config/s390/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/s390/linux.h
>> ++++ gcc-11.3.0/gcc/config/s390/linux.h
>> +@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3.
>> + #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 \
>> +Index: gcc-11.3.0/gcc/config/sh/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/sh/linux.h
>> ++++ gcc-11.3.0/gcc/config/sh/linux.h
>> +@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3.
>> +
>> + #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"
>> @@ -230,11 +355,11 @@ index 7558d2f7195..3aaa6c3a078 100644
>>
>>   #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 2550d7ee8f0..a94f4cd8ba2 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);
>> +Index: gcc-11.3.0/gcc/config/sparc/linux.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/sparc/linux.h
>> ++++ gcc-11.3.0/gcc/config/sparc/linux.h
>> +@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu
>>      When the -shared link option is used a final link is not being
>>      done.  */
>>
>> @@ -243,11 +368,11 @@ index 2550d7ee8f0..a94f4cd8ba2 100644
>>
>>   #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 95af8afa9b5..63127afb074 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
>> +Index: gcc-11.3.0/gcc/config/sparc/linux64.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/sparc/linux64.h
>> ++++ gcc-11.3.0/gcc/config/sparc/linux64.h
>> +@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3.
>>      When the -shared link option is used a final link is not being
>>      done.  */
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
>> index ac139542f1..0f94936140 100644
>> --- a/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
>> +++ b/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
>> @@ -18,13 +18,13 @@ 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 6bd95855827..77befab5da8 100644
>> ---- a/gcc/config/arm/linux-eabi.h
>> -+++ b/gcc/config/arm/linux-eabi.h
>> +Index: gcc-11.3.0/gcc/config/arm/linux-eabi.h
>> +===================================================================
>> +--- gcc-11.3.0.orig/gcc/config/arm/linux-eabi.h
>> ++++ gcc-11.3.0/gcc/config/arm/linux-eabi.h
>>  @@ -91,10 +91,14 @@
>>   #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"
>>
>>  +/* For armv4 we pass --fix-v4bx to linker to support EABI */
>>  +#undef TARGET_FIX_V4BX_SPEC
>> diff --git a/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
>> deleted file mode 100644
>> index 76ebfd7f77..0000000000
>> --- a/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
>> +++ /dev/null
>> @@ -1,25 +0,0 @@
>> -From 9ec4db8e910d9a51ae43f6b20d4bf1dac2d8cca8 Mon Sep 17 00:00:00 2001
>> -From: Khem Raj <raj.khem@gmail.com>
>> -Date: Tue, 2 Feb 2016 10:26:10 -0800
>> -Subject: [PATCH] nios2: Define MUSL_DYNAMIC_LINKER
>> -
>> -Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e5ddbbf992b909d8e38851bd3179d29389e6ac97]
>> -
>> -Signed-off-by: Marek Vasut <marex@denx.de>
>> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ----
>> - gcc/config/nios2/linux.h | 1 +
>> - 1 file changed, 1 insertion(+)
>> -
>> -diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
>> -index 08edf1521f6..15696d86241 100644
>> ---- a/gcc/config/nios2/linux.h
>> -+++ b/gcc/config/nios2/linux.h
>> -@@ -30,6 +30,7 @@
>> - #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"
>> -
>> - #undef LINK_SPEC
>> - #define LINK_SPEC LINK_SPEC_ENDIAN \
>> --
>> 2.39.0
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#175962): https://lists.openembedded.org/g/openembedded-core/message/175962
>> Mute This Topic: https://lists.openembedded.org/mt/96302818/1997914
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
diff mbox series

Patch

diff --git a/meta/recipes-devtools/gcc/gcc-11.3.inc b/meta/recipes-devtools/gcc/gcc-11.3.inc
index 27074a06ae..ab2ece3cce 100644
--- a/meta/recipes-devtools/gcc/gcc-11.3.inc
+++ b/meta/recipes-devtools/gcc/gcc-11.3.inc
@@ -48,7 +48,6 @@  SRC_URI = "\
            file://0016-If-CXXFLAGS-contains-something-unsupported-by-the-bu.patch \
            file://0017-handle-sysroot-support-for-nativesdk-gcc.patch \
            file://0018-Search-target-sysroot-gcc-version-specific-dirs-with.patch \
-           file://0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch \
            file://0020-Add-ssp_nonshared-to-link-commandline-for-musl-targe.patch \
            file://0021-Link-libgcc-using-LDFLAGS-not-just-SHLIB_LDFLAGS.patch \
            file://0022-sync-gcc-stddef.h-with-musl.patch \
diff --git a/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch b/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
index c38d1b9119..864c8b3017 100644
--- a/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
+++ b/meta/recipes-devtools/gcc/gcc/0004-arm-add-armv9-a-architecture-to-march.patch
@@ -43,10 +43,10 @@  Signed-off-by: Ruiqiang Hao <Ruiqiang.Hao@windriver.com>
  gcc/testsuite/lib/target-supports.exp     |  3 ++-
  9 files changed, 79 insertions(+), 8 deletions(-)
 
-diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
-index bcc9ebe9f..58d83829c 100644
---- a/gcc/config/arm/arm-cpus.in
-+++ b/gcc/config/arm/arm-cpus.in
+Index: gcc-11.3.0/gcc/config/arm/arm-cpus.in
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/arm-cpus.in
++++ gcc-11.3.0/gcc/config/arm/arm-cpus.in
 @@ -132,6 +132,9 @@ define feature cmse
  # Architecture rel 8.1-M.
  define feature armv8_1m_main
@@ -57,7 +57,7 @@  index bcc9ebe9f..58d83829c 100644
  # Floating point and Neon extensions.
  # VFPv1 is not supported in GCC.
  
-@@ -293,6 +296,7 @@ define fgroup ARMv8m_base ARMv6m armv8 cmse tdiv
+@@ -293,6 +296,7 @@ define fgroup ARMv8m_base ARMv6m armv8 c
  define fgroup ARMv8m_main ARMv7m armv8 cmse
  define fgroup ARMv8r      ARMv8a
  define fgroup ARMv8_1m_main ARMv8m_main armv8_1m_main
@@ -87,10 +87,10 @@  index bcc9ebe9f..58d83829c 100644
  begin arch iwmmxt
   tune for iwmmxt
   tune flags LDSCHED STRONG XSCALE
-diff --git a/gcc/config/arm/arm-tables.opt b/gcc/config/arm/arm-tables.opt
-index 5692d4fb7..ae3dd9414 100644
---- a/gcc/config/arm/arm-tables.opt
-+++ b/gcc/config/arm/arm-tables.opt
+Index: gcc-11.3.0/gcc/config/arm/arm-tables.opt
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/arm-tables.opt
++++ gcc-11.3.0/gcc/config/arm/arm-tables.opt
 @@ -380,10 +380,13 @@ EnumValue
  Enum(arm_arch) String(armv8.1-m.main) Value(30)
  
@@ -107,10 +107,10 @@  index 5692d4fb7..ae3dd9414 100644
  
  Enum
  Name(arm_fpu) Type(enum fpu_type)
-diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
-index 47c13a9e5..088c7725c 100644
---- a/gcc/config/arm/arm.h
-+++ b/gcc/config/arm/arm.h
+Index: gcc-11.3.0/gcc/config/arm/arm.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/arm.h
++++ gcc-11.3.0/gcc/config/arm/arm.h
 @@ -456,7 +456,8 @@ enum base_architecture
    BASE_ARCH_8A = 8,
    BASE_ARCH_8M_BASE = 8,
@@ -121,10 +121,10 @@  index 47c13a9e5..088c7725c 100644
  };
  
  /* The major revision number of the ARM Architecture implemented by the target.  */
-diff --git a/gcc/config/arm/t-aprofile b/gcc/config/arm/t-aprofile
-index 8574ac3e2..68e2251c7 100644
---- a/gcc/config/arm/t-aprofile
-+++ b/gcc/config/arm/t-aprofile
+Index: gcc-11.3.0/gcc/config/arm/t-aprofile
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/t-aprofile
++++ gcc-11.3.0/gcc/config/arm/t-aprofile
 @@ -26,8 +26,8 @@
  
  # Arch and FPU variants to build libraries with
@@ -136,7 +136,7 @@  index 8574ac3e2..68e2251c7 100644
  
  # ARMv7-A - build nofp, fp-d16 and SIMD variants
  
-@@ -46,6 +46,11 @@ MULTILIB_REQUIRED	+= mthumb/march=armv8-a/mfloat-abi=soft
+@@ -46,6 +46,11 @@ MULTILIB_REQUIRED	+= mthumb/march=armv8-
  MULTILIB_REQUIRED	+= mthumb/march=armv8-a+simd/mfloat-abi=hard
  MULTILIB_REQUIRED	+= mthumb/march=armv8-a+simd/mfloat-abi=softfp
  
@@ -148,7 +148,7 @@  index 8574ac3e2..68e2251c7 100644
  # Matches
  
  # Arch Matches
-@@ -129,17 +134,29 @@ MULTILIB_MATCHES	+= march?armv8-a=march?armv8.6-a
+@@ -129,17 +134,29 @@ MULTILIB_MATCHES	+= march?armv8-a=march?
  MULTILIB_MATCHES	+= $(foreach ARCH, $(v8_6_a_simd_variants), \
  			     march?armv8-a+simd=march?armv8.6-a$(ARCH))
  
@@ -180,11 +180,11 @@  index 8574ac3e2..68e2251c7 100644
 -			     $(foreach ARCH, armv7-a armv8-a, \
 +			     $(foreach ARCH, armv7-a armv8-a armv9-a, \
  			       mthumb/march.$(ARCH)/mfloat-abi.soft=m$(MODE)/march.$(ARCH)/mfloat-abi.softfp))
-diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf
-index d68def308..b3a900e8c 100644
---- a/gcc/config/arm/t-arm-elf
-+++ b/gcc/config/arm/t-arm-elf
-@@ -38,6 +38,8 @@ v7ve_fps	:= vfpv3-d16 vfpv3 vfpv3-d16-fp16 vfpv3-fp16 vfpv4 neon \
+Index: gcc-11.3.0/gcc/config/arm/t-arm-elf
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/t-arm-elf
++++ gcc-11.3.0/gcc/config/arm/t-arm-elf
+@@ -38,6 +38,8 @@ v7ve_fps	:= vfpv3-d16 vfpv3 vfpv3-d16-fp
  # it seems to work ok.
  v8_fps		:= simd fp16 crypto fp16+crypto dotprod fp16fml
  
@@ -202,7 +202,7 @@  index d68def308..b3a900e8c 100644
  # No floating point variants, require thumb1 softfp
  all_nofp_t	:= armv6-m armv6s-m armv8-m.base
  
-@@ -110,6 +114,11 @@ MULTILIB_MATCHES     += $(foreach ARCH, $(all_v8_archs), \
+@@ -110,6 +114,11 @@ MULTILIB_MATCHES     += $(foreach ARCH,
  			  $(foreach FPARCH, $(v8_fps), \
  			    march?armv7+fp=march?$(ARCH)+$(FPARCH)))
  
@@ -214,11 +214,11 @@  index d68def308..b3a900e8c 100644
  MULTILIB_MATCHES     += $(foreach ARCH, armv7e-m armv8-m.mainline, \
  			  march?armv7+fp=march?$(ARCH)+fp.dp)
  
-diff --git a/gcc/config/arm/t-multilib b/gcc/config/arm/t-multilib
-index ddc5033bf..d789b86ee 100644
---- a/gcc/config/arm/t-multilib
-+++ b/gcc/config/arm/t-multilib
-@@ -78,6 +78,8 @@ v8_4_a_simd_variants	:= $(call all_feat_combs, simd fp16 crypto i8mm bf16)
+Index: gcc-11.3.0/gcc/config/arm/t-multilib
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/t-multilib
++++ gcc-11.3.0/gcc/config/arm/t-multilib
+@@ -78,6 +78,8 @@ v8_4_a_simd_variants	:= $(call all_feat_
  v8_5_a_simd_variants	:= $(call all_feat_combs, simd fp16 crypto i8mm bf16)
  v8_6_a_simd_variants	:= $(call all_feat_combs, simd fp16 crypto i8mm bf16)
  v8_r_nosimd_variants	:= +crc
@@ -227,7 +227,7 @@  index ddc5033bf..d789b86ee 100644
  
  ifneq (,$(HAS_APROFILE))
  include $(srcdir)/config/arm/t-aprofile
-@@ -202,6 +204,16 @@ MULTILIB_MATCHES	+= march?armv7=march?armv8.6-a
+@@ -202,6 +204,16 @@ MULTILIB_MATCHES	+= march?armv7=march?ar
  MULTILIB_MATCHES	+= $(foreach ARCH, $(v8_6_a_simd_variants), \
  			     march?armv7+fp=march?armv8.6-a$(ARCH))
  
@@ -244,10 +244,10 @@  index ddc5033bf..d789b86ee 100644
  endif		# Not APROFILE.
  
  # Use Thumb libraries for everything.
-diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index 7184a62d0..9a712c0d6 100644
---- a/gcc/doc/invoke.texi
-+++ b/gcc/doc/invoke.texi
+Index: gcc-11.3.0/gcc/doc/invoke.texi
+===================================================================
+--- gcc-11.3.0.orig/gcc/doc/invoke.texi
++++ gcc-11.3.0/gcc/doc/invoke.texi
 @@ -19701,6 +19701,7 @@ Permissible names are:
  @samp{armv7-m}, @samp{armv7e-m},
  @samp{armv8-m.base}, @samp{armv8-m.main},
@@ -256,10 +256,10 @@  index 7184a62d0..9a712c0d6 100644
  @samp{iwmmxt} and @samp{iwmmxt2}.
  
  Additionally, the following architectures, which lack support for the
-diff --git a/gcc/testsuite/gcc.target/arm/multilib.exp b/gcc/testsuite/gcc.target/arm/multilib.exp
-index 4b30025db..e3f06c316 100644
---- a/gcc/testsuite/gcc.target/arm/multilib.exp
-+++ b/gcc/testsuite/gcc.target/arm/multilib.exp
+Index: gcc-11.3.0/gcc/testsuite/gcc.target/arm/multilib.exp
+===================================================================
+--- gcc-11.3.0.orig/gcc/testsuite/gcc.target/arm/multilib.exp
++++ gcc-11.3.0/gcc/testsuite/gcc.target/arm/multilib.exp
 @@ -135,6 +135,14 @@ if {[multilib_config "aprofile"] } {
  	{-march=armv8.6-a+simd+fp16 -mfloat-abi=softfp} "thumb/v8-a+simd/softfp"
  	{-march=armv8.6-a+simd+fp16+nofp -mfloat-abi=softfp} "thumb/v8-a/nofp"
@@ -275,10 +275,10 @@  index 4b30025db..e3f06c316 100644
  	{-mcpu=cortex-a53+crypto -mfloat-abi=hard} "thumb/v8-a+simd/hard"
  	{-mcpu=cortex-a53+nofp -mfloat-abi=softfp} "thumb/v8-a/nofp"
  	{-march=armv8-a+crc -mfloat-abi=hard -mfpu=vfp} "thumb/v8-a+simd/hard"
-diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
-index 857e57218..52e043917 100644
---- a/gcc/testsuite/lib/target-supports.exp
-+++ b/gcc/testsuite/lib/target-supports.exp
+Index: gcc-11.3.0/gcc/testsuite/lib/target-supports.exp
+===================================================================
+--- gcc-11.3.0.orig/gcc/testsuite/lib/target-supports.exp
++++ gcc-11.3.0/gcc/testsuite/lib/target-supports.exp
 @@ -4820,7 +4820,8 @@ foreach { armfunc armflag armdefs } {
  	v8m_base "-march=armv8-m.base -mthumb -mfloat-abi=soft"
  		__ARM_ARCH_8M_BASE__
@@ -289,6 +289,3 @@  index 857e57218..52e043917 100644
      eval [string map [list FUNC $armfunc FLAG $armflag DEFS $armdefs ] {
  	proc check_effective_target_arm_arch_FUNC_ok { } {
  	    return [check_no_compiler_messages arm_arch_FUNC_ok assembly {
--- 
-2.34.1
-
diff --git a/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch b/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
index ef19eef822..b3515c9734 100644
--- a/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
+++ b/meta/recipes-devtools/gcc/gcc/0006-Define-GLIBC_DYNAMIC_LINKER-and-UCLIBC_DYNAMIC_LINKE.patch
@@ -1,4 +1,4 @@ 
-From 84dd8ea4c982fc2c82af642293d29e9c1880de5b Mon Sep 17 00:00:00 2001
+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
@@ -12,28 +12,37 @@  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>
+
+Refresh patch from master to deduplicate patches and fix arm linker
+Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
 ---
  gcc/config/aarch64/aarch64-linux.h |  4 ++--
  gcc/config/alpha/linux-elf.h       |  4 ++--
- gcc/config/arm/linux-eabi.h        |  4 ++--
+ gcc/config/arm/linux-eabi.h        |  6 +++---
  gcc/config/arm/linux-elf.h         |  2 +-
- gcc/config/i386/linux.h            |  2 +-
- gcc/config/i386/linux64.h          |  6 +++---
+ gcc/config/i386/linux.h            |  4 ++--
+ gcc/config/i386/linux64.h          | 12 ++++++------
  gcc/config/linux.h                 |  8 ++++----
- gcc/config/mips/linux.h            | 12 ++++++------
- gcc/config/riscv/linux.h           |  2 +-
+ 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/sh/linux.h              |  2 +-
+ 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 ++--
- 13 files changed, 31 insertions(+), 36 deletions(-)
+ 17 files changed, 53 insertions(+), 58 deletions(-)
 
-diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index 7f2529a2a1d..4bcae7f3110 100644
---- a/gcc/config/aarch64/aarch64-linux.h
-+++ b/gcc/config/aarch64/aarch64-linux.h
+Index: gcc-11.3.0/gcc/config/aarch64/aarch64-linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/aarch64/aarch64-linux.h
++++ gcc-11.3.0/gcc/config/aarch64/aarch64-linux.h
 @@ -21,10 +21,10 @@
  #ifndef GCC_AARCH64_LINUX_H
  #define GCC_AARCH64_LINUX_H
@@ -47,11 +56,11 @@  index 7f2529a2a1d..4bcae7f3110 100644
  
  #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 c1dae8ca2cf..3ce2b76c1a4 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
+Index: gcc-11.3.0/gcc/config/alpha/linux-elf.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/alpha/linux-elf.h
++++ gcc-11.3.0/gcc/config/alpha/linux-elf.h
+@@ -23,8 +23,8 @@ along with GCC; see the file COPYING3.
  #define EXTRA_SPECS \
  { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
  
@@ -62,10 +71,10 @@  index c1dae8ca2cf..3ce2b76c1a4 100644
  #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 85d0136e76e..6bd95855827 100644
---- a/gcc/config/arm/linux-eabi.h
-+++ b/gcc/config/arm/linux-eabi.h
+Index: gcc-11.3.0/gcc/config/arm/linux-eabi.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/linux-eabi.h
++++ gcc-11.3.0/gcc/config/arm/linux-eabi.h
 @@ -65,8 +65,8 @@
     GLIBC_DYNAMIC_LINKER_DEFAULT and TARGET_DEFAULT_FLOAT_ABI.  */
  
@@ -77,10 +86,19 @@  index 85d0136e76e..6bd95855827 100644
  #define GLIBC_DYNAMIC_LINKER_DEFAULT GLIBC_DYNAMIC_LINKER_SOFT_FLOAT
  
  #define GLIBC_DYNAMIC_LINKER \
-diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
-index 0c1c4e70b6b..6bd643ade11 100644
---- a/gcc/config/arm/linux-elf.h
-+++ b/gcc/config/arm/linux-elf.h
+@@ -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.  */
+Index: gcc-11.3.0/gcc/config/arm/linux-elf.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/linux-elf.h
++++ gcc-11.3.0/gcc/config/arm/linux-elf.h
 @@ -60,7 +60,7 @@
  
  #define LIBGCC_SPEC "%{mfloat-abi=soft*:-lfloat} -lgcc"
@@ -90,11 +108,11 @@  index 0c1c4e70b6b..6bd643ade11 100644
  
  #define LINUX_TARGET_LINK_SPEC  "%{h*} \
     %{static:-Bstatic} \
-diff --git a/gcc/config/i386/linux.h b/gcc/config/i386/linux.h
-index 04b274f1654..7aafcf3ac2d 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
+Index: gcc-11.3.0/gcc/config/i386/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/i386/linux.h
++++ gcc-11.3.0/gcc/config/i386/linux.h
+@@ -20,7 +20,7 @@ along with GCC; see the file COPYING3.
  <http://www.gnu.org/licenses/>.  */
  
  #define GNU_USER_LINK_EMULATION "elf_i386"
@@ -102,12 +120,13 @@  index 04b274f1654..7aafcf3ac2d 100644
 +#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux.so.2"
  
  #undef MUSL_DYNAMIC_LINKER
- #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
-diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h
-index b3822ced528..92d303e80d6 100644
---- a/gcc/config/i386/linux64.h
-+++ b/gcc/config/i386/linux64.h
-@@ -27,9 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+-#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
++#define MUSL_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-musl-i386.so.1"
+Index: gcc-11.3.0/gcc/config/i386/linux64.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/i386/linux64.h
++++ gcc-11.3.0/gcc/config/i386/linux64.h
+@@ -27,13 +27,13 @@ see the files COPYING3 and COPYING.RUNTI
  #define GNU_USER_LINK_EMULATION64 "elf_x86_64"
  #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64"
  
@@ -119,12 +138,19 @@  index b3822ced528..92d303e80d6 100644
 +#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"
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 4e1db60fced..87efc5f69fe 100644
---- a/gcc/config/linux.h
-+++ b/gcc/config/linux.h
-@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+-#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"
+Index: gcc-11.3.0/gcc/config/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/linux.h
++++ gcc-11.3.0/gcc/config/linux.h
+@@ -94,10 +94,10 @@ see the files COPYING3 and COPYING.RUNTI
     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.  */
@@ -139,11 +165,33 @@  index 4e1db60fced..87efc5f69fe 100644
  #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/mips/linux.h b/gcc/config/mips/linux.h
-index 44a85e410d9..8d41b5574f6 100644
---- a/gcc/config/mips/linux.h
-+++ b/gcc/config/mips/linux.h
-@@ -22,20 +22,20 @@ along with GCC; see the file COPYING3.  If not see
+Index: gcc-11.3.0/gcc/config/microblaze/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/microblaze/linux.h
++++ gcc-11.3.0/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 \
+Index: gcc-11.3.0/gcc/config/mips/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/mips/linux.h
++++ gcc-11.3.0/gcc/config/mips/linux.h
+@@ -22,29 +22,29 @@ along with GCC; see the file COPYING3.
  #define GNU_USER_LINK_EMULATIONN32 "elf32%{EB:b}%{EL:l}tsmipn32"
  
  #define GLIBC_DYNAMIC_LINKER32 \
@@ -170,11 +218,36 @@  index 44a85e410d9..8d41b5574f6 100644
  
  #undef MUSL_DYNAMIC_LINKER32
  #define MUSL_DYNAMIC_LINKER32 \
-diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
-index fce5b896e6e..03aa55cb5ab 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
+-  "/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 \
+Index: gcc-11.3.0/gcc/config/nios2/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/nios2/linux.h
++++ gcc-11.3.0/gcc/config/nios2/linux.h
+@@ -29,7 +29,7 @@
+ #undef CPP_SPEC
+ #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
+ 
+-#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-nios2.so.1"
++#define GLIBC_DYNAMIC_LINKER SYSTEMLIBS_DIR "ld-linux-nios2.so.1"
+ 
+ #undef LINK_SPEC
+ #define LINK_SPEC LINK_SPEC_ENDIAN \
+Index: gcc-11.3.0/gcc/config/riscv/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/riscv/linux.h
++++ gcc-11.3.0/gcc/config/riscv/linux.h
+@@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.
      GNU_USER_TARGET_OS_CPP_BUILTINS();				\
    } while (0)
  
@@ -183,10 +256,19 @@  index fce5b896e6e..03aa55cb5ab 100644
  
  #define MUSL_ABI_SUFFIX \
    "%{mabi=ilp32:-sf}" \
-diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index e3f2cd254f6..a11e01faa3d 100644
---- a/gcc/config/rs6000/linux64.h
-+++ b/gcc/config/rs6000/linux64.h
+@@ -33,7 +33,7 @@ along with GCC; see the file COPYING3.
+   "%{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.  */
+Index: gcc-11.3.0/gcc/config/rs6000/linux64.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/rs6000/linux64.h
++++ gcc-11.3.0/gcc/config/rs6000/linux64.h
 @@ -336,24 +336,19 @@ extern int dot_symbols;
  #undef	LINK_OS_DEFAULT_SPEC
  #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
@@ -217,12 +299,55 @@  index e3f2cd254f6..a11e01faa3d 100644
  
  #undef  DEFAULT_ASM_ENDIAN
  #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
-diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
-index 7558d2f7195..3aaa6c3a078 100644
---- a/gcc/config/sh/linux.h
-+++ b/gcc/config/sh/linux.h
-@@ -64,7 +64,7 @@ along with GCC; see the file COPYING3.  If not see
-   "/lib/ld-musl-sh" MUSL_DYNAMIC_LINKER_E MUSL_DYNAMIC_LINKER_FP \
+Index: gcc-11.3.0/gcc/config/rs6000/sysv4.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/rs6000/sysv4.h
++++ gcc-11.3.0/gcc/config/rs6000/sysv4.h
+@@ -780,10 +780,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
+Index: gcc-11.3.0/gcc/config/s390/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/s390/linux.h
++++ gcc-11.3.0/gcc/config/s390/linux.h
+@@ -72,13 +72,13 @@ along with GCC; see the file COPYING3.
+ #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 \
+Index: gcc-11.3.0/gcc/config/sh/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/sh/linux.h
++++ gcc-11.3.0/gcc/config/sh/linux.h
+@@ -61,10 +61,10 @@ along with GCC; see the file COPYING3.
+ 
+ #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"
@@ -230,11 +355,11 @@  index 7558d2f7195..3aaa6c3a078 100644
  
  #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 2550d7ee8f0..a94f4cd8ba2 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);
+Index: gcc-11.3.0/gcc/config/sparc/linux.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/sparc/linux.h
++++ gcc-11.3.0/gcc/config/sparc/linux.h
+@@ -78,7 +78,7 @@ extern const char *host_detect_local_cpu
     When the -shared link option is used a final link is not being
     done.  */
  
@@ -243,11 +368,11 @@  index 2550d7ee8f0..a94f4cd8ba2 100644
  
  #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 95af8afa9b5..63127afb074 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
+Index: gcc-11.3.0/gcc/config/sparc/linux64.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/sparc/linux64.h
++++ gcc-11.3.0/gcc/config/sparc/linux64.h
+@@ -78,8 +78,8 @@ along with GCC; see the file COPYING3.
     When the -shared link option is used a final link is not being
     done.  */
  
diff --git a/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch b/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
index ac139542f1..0f94936140 100644
--- a/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
+++ b/meta/recipes-devtools/gcc/gcc/0009-gcc-armv4-pass-fix-v4bx-to-linker-to-support-EABI.patch
@@ -18,13 +18,13 @@  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 6bd95855827..77befab5da8 100644
---- a/gcc/config/arm/linux-eabi.h
-+++ b/gcc/config/arm/linux-eabi.h
+Index: gcc-11.3.0/gcc/config/arm/linux-eabi.h
+===================================================================
+--- gcc-11.3.0.orig/gcc/config/arm/linux-eabi.h
++++ gcc-11.3.0/gcc/config/arm/linux-eabi.h
 @@ -91,10 +91,14 @@
  #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"
  
 +/* For armv4 we pass --fix-v4bx to linker to support EABI */
 +#undef TARGET_FIX_V4BX_SPEC
diff --git a/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch b/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
deleted file mode 100644
index 76ebfd7f77..0000000000
--- a/meta/recipes-devtools/gcc/gcc/0019-nios2-Define-MUSL_DYNAMIC_LINKER.patch
+++ /dev/null
@@ -1,25 +0,0 @@ 
-From 9ec4db8e910d9a51ae43f6b20d4bf1dac2d8cca8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 2 Feb 2016 10:26:10 -0800
-Subject: [PATCH] nios2: Define MUSL_DYNAMIC_LINKER
-
-Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=e5ddbbf992b909d8e38851bd3179d29389e6ac97]
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gcc/config/nios2/linux.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/gcc/config/nios2/linux.h b/gcc/config/nios2/linux.h
-index 08edf1521f6..15696d86241 100644
---- a/gcc/config/nios2/linux.h
-+++ b/gcc/config/nios2/linux.h
-@@ -30,6 +30,7 @@
- #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"
- 
- #undef LINK_SPEC
- #define LINK_SPEC LINK_SPEC_ENDIAN \