]> code.ossystems Code Review - openembedded-core.git/commitdiff
gcc-runtime.inc: add CPP support for mips64-n32 tune
authorJuro Bystricky <juro.bystricky@intel.com>
Mon, 29 Aug 2016 22:45:36 +0000 (15:45 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 8 Nov 2016 23:03:19 +0000 (23:03 +0000)
This patch fixes the problem where the CPP compiler cannot find include files.
The compiler is configured to look for the files in places that do not exist.
When querying the CPP for search paths, we observe messages such as these:

multilib configuration:

MACHINE="qemumips64"
require conf/multilib.conf
MULTILIBS = "multilib:lib64 multilib:lib32"
DEFAULTTUNE = "mips64-n32"
DEFAULTTUNE_virtclass-multilib-lib64 = "mips64"
DEFAULTTUNE_virtclass-multilib-lib32 = "mips32r2"

ignoring nonexistent directory "<path>/sysroots/mips64-n32-poky-linux-gnun32/usr/include/c++/6.2.0/mips64-poky-linux/32

single lib configuration:
MACHINE="qemumips64"
DEFAULTTUNE = "mips64-n32"
ignoring nonexistent directory "<path>/sysroots/mips64-n32-poky-linux-gnun32/usr/include/c++/6.2.0/mips64-poky-linux/

To fix this, create a symlink of the name CPP expects and point it to the corresponding "gnun32" directory.

[YOCTO#10142]

(From OE-Core rev: 55115f90f909d27599c686852e73df321ad1edff)

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
meta/recipes-devtools/gcc/gcc-runtime.inc

index 99f50f8066cd73272c2b8bd9727027bf05925f72..fd624e271195e99ba006feff6b9ee82fae889436 100644 (file)
@@ -80,6 +80,16 @@ do_install_append_class-target () {
        if [ "${TARGET_OS}" = "linux-gnuspe" ]; then
                ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
        fi
+
+       if [ "${TARGET_OS}" = "linux-gnun32" ]; then
+               if [ "${MULTILIBS}" != "" ]; then
+                       mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux
+                       ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux/32
+               else
+                       ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
+               fi
+       fi
+
        if [ "${TCLIBC}" != "glibc" ]; then
                case "${TARGET_OS}" in
                        "linux-musl" | "linux-uclibc" | "linux-*spe") extra_target_os="linux";;