From fb1172e52eb3d73325723d9f4085ea224eb026a0 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 25 May 2025 18:12:12 -0700 Subject: [PATCH] gcc: Fix riscv32 multilib issues in non-multilib toolchain GCC RISC-V multilib does not map to OE's mutlilib concept extend the fix [1] done for RISCV64 to RISCV32 as well [1] https://git.openembedded.org/openembedded-core/commit/?id=3081f62c18fcee642ab43efa717c8f71d51ae587 (From OE-Core rev: c9b310ad363a41dfa515308780a3f8fde67d8fdc) Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- meta/recipes-devtools/gcc/gcc-multilib-config.inc | 2 ++ meta/recipes-devtools/gcc/gcc-runtime.inc | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/meta/recipes-devtools/gcc/gcc-multilib-config.inc b/meta/recipes-devtools/gcc/gcc-multilib-config.inc index d9959364c3..1a4169f91a 100644 --- a/meta/recipes-devtools/gcc/gcc-multilib-config.inc +++ b/meta/recipes-devtools/gcc/gcc-multilib-config.inc @@ -149,6 +149,7 @@ python gcc_multilib_setup() { 'i686' : ['gcc/config/i386/t-linux64'], 'mips' : ['gcc/config/mips/t-linux64'], 'mips64' : ['gcc/config/mips/t-linux64'], + 'riscv32' : ['gcc/config/riscv/t-linux-multilib'], 'riscv64' : ['gcc/config/riscv/t-linux-multilib'], 'powerpc' : ['gcc/config/rs6000/t-linux64'], 'powerpc64' : ['gcc/config/rs6000/t-linux64'], @@ -166,6 +167,7 @@ python gcc_multilib_setup() { 'powerpc64' : ['gcc/config/linux.h', 'gcc/config/rs6000/linux64.h'], 'aarch64' : ['gcc/config/linux.h', 'gcc/config/aarch64/aarch64-linux.h', 'gcc/config/arm/linux-eabi.h'], 'arm' : ['gcc/config/linux.h', 'gcc/config/aarch64/aarch64-linux.h', 'gcc/config/arm/linux-eabi.h'], + 'riscv32' : ['gcc/config/linux.h'], 'riscv64' : ['gcc/config/linux.h'], } diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc index fe1f43b2fd..c4e1c5b9a5 100644 --- a/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -144,7 +144,7 @@ do_install:append:class-target () { ln -sf ../${X86ARCH32}${TARGET_VENDOR}-${TARGET_OS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}/32 fi - if [ "${TARGET_ARCH}" = "riscv64" -a "${MULTILIB_VARIANTS}" = "" ]; then + if [ "${TARGET_ARCH}" = "riscv32" -o "${TARGET_ARCH}" = "riscv64" ] && [ -z "${MULTILIB_VARIANTS}" ]; then mv ${D}${includedir}/c++/${BINV}/${TARGET_SYS}/bits/* ${D}${includedir}/c++/${BINV}/bits mv ${D}${includedir}/c++/${BINV}/${TARGET_SYS}/ext/* ${D}${includedir}/c++/${BINV}/ext fi