On Sun, Jan 15, 2023 at 11:56 PM Pavel Zhukov <pa...@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 <pa...@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....@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.k...@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.k...@gmail.com>
> +
>  Upstream-Status: Inappropriate [OE configuration]
>  Signed-off-by: Khem Raj <raj.k...@gmail.com>
> +
> +Refresh patch from master to deduplicate patches and fix arm linker
> +Signed-off-by: Pavel Zhukov <pa...@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.k...@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 <ma...@denx.de>
> -Signed-off-by: Khem Raj <raj.k...@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 (#175998): 
https://lists.openembedded.org/g/openembedded-core/message/175998
Mute This Topic: https://lists.openembedded.org/mt/96302818/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to