aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChangqing Li <changqing.li@windriver.com>2020-08-14 14:35:23 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-15 11:43:51 +0100
commit509022ea8db314dd9d010a478fd84d0234905c6b (patch)
tree21ba6485eb010a8e2125484678d9bcb2d1473660
parent5c117379dec1e33216fcbaf49d2b6130adf54bc1 (diff)
downloadopenembedded-core-contrib-509022ea8db314dd9d010a478fd84d0234905c6b.tar.gz
openembedded-core-contrib-509022ea8db314dd9d010a478fd84d0234905c6b.tar.bz2
openembedded-core-contrib-509022ea8db314dd9d010a478fd84d0234905c6b.zip
gcc-runtime.inc: fix m32 compile fail with x86-64 compiler
configuration: MACHINE ??= "qemux86-64" require conf/multilib.conf MULTILIBS ?= "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 ?= "core2-32" IMAGE_INSTALL_append = " packagegroup-core-buildessential lib32-libstdc++ lib32-libstdc++-dev" m32 compile failed on target: cmd: gcc -m32 -v test.cpp -o test output: GGC heuristics: --param ggc-min-expand=45 --param ggc-min-heapsize=29590 ignoring nonexistent directory "/usr/lib64/gcc/x86_64-poky-linux/10.1.0/../../../../include/c++/10.1.0/x86_64-poky-linux/32" ignoring nonexistent directory "/usr/lib64/x86_64-poky-linux/10.1.0/include" ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/usr/lib64/gcc/x86_64-poky-linux/10.1.0/../../../../x86_64-poky-linux/include" /usr/lib64/gcc/x86_64-poky-linux/10.1.0/../../../../include/c++/10.1.0 /usr/lib64/gcc/x86_64-poky-linux/10.1.0/../../../../include/c++/10.1.0/backward /usr/lib64/gcc/x86_64-poky-linux/10.1.0/include /usr/lib64/gcc/x86_64-poky-linux/10.1.0/include-fixed /usr/include End of search list. GNU C++14 (GCC) version 10.1.0 (x86_64-poky-linux) compiled by GNU C version 10.1.0, GMP version 6.2.0, MPFR version 4.1.0, MPC version 1.1.0, isl version none GGC heuristics: --param ggc-min-expand=45 --param ggc-min-heapsize=29590 Compiler executable checksum: bc3b2f3a33dad80e30112cf1235bf631 In file included from test.cpp:1: /usr/include/c++/10.1.0/iostream:38:10: fatal error: bits/c++config.h: No such file or directory 38 | #include <bits/c++config.h> | ^~~~~~~~~~~~~~~~~~ cannot find header since /usr/lib64/gcc/x86_64-poky-linux/10.1.0/x86_64-poky-linux/32 is missing fixed by link it to ../i686-poky-linux Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-devtools/gcc/gcc-runtime.inc4
1 files changed, 4 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
index df1432e68d0..9dcce265369 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -138,6 +138,10 @@ do_install_append_class-target () {
ln -s ../${TARGET_SYS}/ext ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/ext
fi
+ if [ "${TARGET_ARCH}" == "x86_64" -a "${MULTILIB_VARIANTS}" != "" ];then
+ ln -sf ../${X86ARCH32}${TARGET_VENDOR}-${TARGET_OS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}/32
+ fi
+
if [ "${TCLIBC}" != "glibc" ]; then
case "${TARGET_OS}" in
"linux-musl" | "linux-*spe") extra_target_os="linux";;