All of lore.kernel.org
 help / color / mirror / Atom feed
From: Changqing Li <changqing.li@windriver.com>
To: Khem Raj <raj.khem@gmail.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH V3] gcc-runtime: fix C++ header mapping for n32/x32 tune
Date: Wed, 19 Jun 2019 10:05:20 +0800	[thread overview]
Message-ID: <0dbaef96-781e-e2cf-f85f-5240c22a58bd@windriver.com> (raw)
In-Reply-To: <CAMKF1sqnCrE8G52LQHMeC-E_6uaH_NVN+Eg7+irdbBPM1fxHRw@mail.gmail.com>


On 6/18/19 11:59 PM, Khem Raj wrote:
> On Tue, Jun 18, 2019 at 12:47 AM <changqing.li@windriver.com> wrote:
>> From: Changqing Li <changqing.li@windriver.com>
>>
>> The SDK was unable to find the C++ header pieces correctly since it's
>> using a generic compiler, not one specifically targeting the multilib
>> vendor prefix and default tune.  This adds the right mapping to ensure
>> SDKs work as expected. And fix problem in below configurations:
>>
>> multilib configuration 1:
>> MACHINE="qemumips64"
>> MULTILIBS ?= "multilib:lib32 multilib:libn32"
>> DEFAULTTUNE_virtclass-multilib-lib32 ?= "mips"
>> DEFAULTTUNE_virtclass-multilib-libn32 ?= "mips64-n32"
>> MULTILIB_GLOBAL_VARIANTS_append = " libn32"
>> require conf/multilib.conf
>>
>> ignoring nonexistent directory "<path>/sysroots/mips64-poky-linux/usr/include/c++/8.2.0/mips64-poky-linux/32
>>
>> multilib configuration 2:
>> MACHINE="qemumips64"
>> MULTILIBS = 'multilib:lib64 multilib:lib32'
> machine is already 64bit so default lib config will be 64bit, what is
> multilib:lib64 for here ?

This config is get from autobuilder.

machine is set to qemumips64, but DEFAULTTUNE is set to mips64-n32,

so this should be why use multilib:lib64.

>
>> DEFAULTTUNE = 'mips64-n32'
>> DEFAULTTUNE_virtclass-multilib-lib64 = 'mips64'
>> DEFAULTTUNE_virtclass-multilib-lib32 = 'mips32r2'
>> require conf/multilib.conf
>>
>> For this configuration:
>> for target gcc-runtime, need to create symlink like mips64-poly-linux --> mips64-poky-linux-gnu32
>> for target lib64-gcc-runtime, need to create symlink like mips64-poly-linux/32 --> mips64-pokymllib64-linux
>> in order to avoid conflict during populate_sdk, create symlink for subfoler bits/ext for target gcc-runtime,
>> this is ugly, but seems no better way to cover all kinds of configuration.
>>
>> single lib configuration:
>> MACHINE="qemumips64"
>> DEFAULTTUNE = "mips64-n32"
>>
>> Signed-off-by: Changqing Li <changqing.li@windriver.com>
>> ---
>>   meta/recipes-devtools/gcc/gcc-runtime.inc | 29 +++++++++++++++++------------
>>   1 file changed, 17 insertions(+), 12 deletions(-)
>>
>> diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
>> index 3d03d8e..ba767e1 100644
>> --- a/meta/recipes-devtools/gcc/gcc-runtime.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
>> @@ -86,10 +86,6 @@ do_install () {
>>          if [ -d ${D}${infodir} ]; then
>>                  rmdir --ignore-fail-on-non-empty -p ${D}${infodir}
>>          fi
>> -       if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
>> -               ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}
>> -       fi
>> -
>>   }
>>
>>   do_install_append_class-target () {
>> @@ -98,20 +94,29 @@ do_install_append_class-target () {
>>          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
>> +               if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
>> +                       mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux
>> +                       ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/32
>> +               elif [ "${MULTILIB_VARIANTS}" != "" ]; then
>> +                       mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
>> +                       ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32
>>                  else
>>                          ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
>>                  fi
>> -       fi
>> -       if [ "${TARGET_OS}" = "linux-gnux32" ]; then
>> -               if [ "${MULTILIBS}" != "" ]; then
>> -                       mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux
>> -                       ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux/x32
>> +       elif [ "${TARGET_OS}" = "linux-gnux32" ]; then
>> +               if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
>> +                       mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux
>> +                       ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/x32
>> +               elif [ "${MULTILIB_VARIANTS}" != "" ]; then
>> +                       mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
>> +                       ln -s ../${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32
>>                  else
>>                          ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
>>                  fi
>> +       elif [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
>> +               mkdir ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux
>> +               ln -s ../${TARGET_SYS}/bits ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/bits
>> +               ln -s ../${TARGET_SYS}/ext ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/ext
>>          fi
>>
>>          if [ "${TCLIBC}" != "glibc" ]; then
>> --
>> 2.7.4
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
BRs

Sandy(Li Changqing)



  reply	other threads:[~2019-06-19  2:06 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-30  8:02 [PATCH] gcc-runtime: fix C++ header mapping for n32/x32 tune changqing.li
2019-01-30  8:28 ` Changqing Li
2019-01-30 16:51 ` Khem Raj
2019-01-30 21:56 ` Richard Purdie
2019-02-12  5:10   ` [PATCH V2] " changqing.li
2019-02-14 11:19     ` Richard Purdie
2019-02-19  7:05       ` Changqing Li
2019-04-28  8:34         ` Changqing Li
2019-06-18  7:46       ` [PATCH V3] " changqing.li
2019-06-18 15:59         ` Khem Raj
2019-06-19  2:05           ` Changqing Li [this message]
2019-06-21  8:32         ` Martin Jansa
2019-06-21  9:02           ` [PATCH] gcc-runtime.inc: create the correct directory before creating the symlinks in it Martin Jansa
2019-06-21  9:08           ` [PATCH V3] gcc-runtime: fix C++ header mapping for n32/x32 tune Changqing Li
2019-06-21 10:21             ` Martin Jansa
2019-06-24  1:01               ` Changqing Li

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=0dbaef96-781e-e2cf-f85f-5240c22a58bd@windriver.com \
    --to=changqing.li@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.