public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Mark Hatle <mark.hatle@windriver.com>
To: <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] gcc-runtime.inc: add CPP support for mips64-n32 tune
Date: Tue, 30 Aug 2016 10:24:16 +0800	[thread overview]
Message-ID: <91bed634-2b94-5920-65bc-d0844bc6f01d@windriver.com> (raw)
In-Reply-To: <1472510736-3148-2-git-send-email-juro.bystricky@intel.com>

On 8/30/16 6:45 AM, Juro Bystricky wrote:
> 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>
> ---
>  meta/recipes-devtools/gcc/gcc-runtime.inc | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
> index 526be55..9791e21 100644
> --- a/meta/recipes-devtools/gcc/gcc-runtime.inc
> +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
> @@ -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
> +

It would be better if you can query the compiler that was produced for the path
it is expecting.  (Often you can run it and capture the result with a specific
command.  Then use that path as the input.  Simply verify if the expected C++
path and the compiler path are the same, if not setup the link -- they are the
same continue on.)

There may be a more simple solution however then all of this.

In the environment file for the SDK, you can add the CPP_INCLUDE variable and
set it to the right value... this will require a change to the environment setup
and a way to known the right value and the end location.

BTW I believe the problem is the difference between the SDK view and the
host/cross compile view of the multilibs and such.  Something gets out of sync
and needs to be manually fixed.

--Mark

>  	if [ "${TCLIBC}" != "glibc" ]; then
>  		case "${TARGET_OS}" in
>  			"linux-musl" | "linux-uclibc" | "linux-*spe") extra_target_os="linux";;
> 



  reply	other threads:[~2016-08-30  2:24 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-29 22:45 [PATCH 0/1] MIPS tune mips64-n32 Juro Bystricky
2016-08-29 22:45 ` [PATCH 1/1] gcc-runtime.inc: add CPP support for mips64-n32 tune Juro Bystricky
2016-08-30  2:24   ` Mark Hatle [this message]
2016-08-30 15:47     ` Bystricky, Juro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=91bed634-2b94-5920-65bc-d0844bc6f01d@windriver.com \
    --to=mark.hatle@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox