]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc-runtime.inc: fix m32 compile fail with x86-64 compiler
authorChangqing Li <changqing.li@windriver.com>
Fri, 14 Aug 2020 06:35:23 +0000 (14:35 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 15 Aug 2020 10:43:51 +0000 (11:43 +0100)
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>
meta/recipes-devtools/gcc/gcc-runtime.inc

index df1432e68d0189715a309a548fc734e9d34539dd..9dcce2653690f1c5f4493fc7cb2b3309f551e7a4 100644 (file)
@@ -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";;