diff mbox series

[1/2] gcc-target: Disable multilibs on riscv32/riscv64 targets

Message ID 20250404020948.3903214-1-raj.khem@gmail.com
State New
Headers show
Series [1/2] gcc-target: Disable multilibs on riscv32/riscv64 targets | expand

Commit Message

Khem Raj April 4, 2025, 2:09 a.m. UTC
It builds a default multilib set know-how into compiler even-though  we do
not have any multilib on target gcc. It alters the c++ standard header paths
to multilib specific subdirs e.g.

ignoring nonexistent directory "/usr/lib/gcc/riscv32-yoe-linux/15.0.1/../../../../include/c++/15.0.1/riscv32-yoe-linux/rv32imafdc/ilp32d"

as a result it will not find the c++ headers because gcc-runtime has
installed them in ( disabled multilib assumption)

"/usr/lib/gcc/riscv32-yoe-linux/15.0.1/../../../../include/c++/15.0.1/riscv32-yoe-linux/"

Therefore disable multilib during configure to match the runtime installation
options.

Without this GCC on target is not able to compile simple C++ programs

e.g.

g++  -Wall -W -O2 -c -o arg_parser.o arg_parser.cc
In file included from /usr/include/c++/15.0.1/cstring:47,
                 from arg_parser.cc:20:
/usr/include/c++/15.0.1/bits/version.h:51:10: fatal error: bits/c++config.h: No such file or directory
   51 | #include <bits/c++config.h>
      |          ^~~~~~~~~~~~~~~~~~

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-devtools/gcc/gcc-target.inc | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/meta/recipes-devtools/gcc/gcc-target.inc b/meta/recipes-devtools/gcc/gcc-target.inc
index 6b47c10413a..6acf5a9604b 100644
--- a/meta/recipes-devtools/gcc/gcc-target.inc
+++ b/meta/recipes-devtools/gcc/gcc-target.inc
@@ -1,4 +1,7 @@ 
 GCCMULTILIB = "--enable-multilib"
+GCCMULTILIB:riscv32 = "--disable-multilib"
+GCCMULTILIB:riscv64 = "--disable-multilib"
+
 require gcc-configure-common.inc
 
 EXTRA_OECONF_PATHS = "\