]> 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>
Sat, 3 Sep 2016 22:45:46 +0000 (23:45 +0100)
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]

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

index 526be55f7b649295f7b0c340d4c6444c2abfee3d..9791e214342ddb6aa185a418c11198fa8f81f34b 100644 (file)
@@ -82,6 +82,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";;