<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 6/21/19 6:21 PM, Martin Jansa wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CA+chaQfqW9kGqSUqSW7WrdW014-veA9Oyp6K7V8=+b+Q900tkA@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">Hi,
        <div><br>
        </div>
        <div>see the fix here:</div>
        <div><a
href="http://lists.openembedded.org/pipermail/openembedded-core/2019-June/283928.html"
            moz-do-not-send="true">http://lists.openembedded.org/pipermail/openembedded-core/2019-June/283928.html</a><br>
        </div>
        <div><br>
        </div>
        <div>I think it doesn't need additional explanation.</div>
        <div><br>
        </div>
        <div>Any aarch64/arm multilib configuration should trigger this
          (or anything where TARGET_OS isn't just "linux").</div>
      </div>
    </blockquote>
    Thanks.<br>
    <blockquote type="cite"
cite="mid:CA+chaQfqW9kGqSUqSW7WrdW014-veA9Oyp6K7V8=+b+Q900tkA@mail.gmail.com">
      <div dir="ltr">
        <div><br>
        </div>
        <div>Regards,</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Fri, Jun 21, 2019 at 11:08
          AM Changqing Li &lt;<a
            href="mailto:changqing.li@windriver.com"
            moz-do-not-send="true">changqing.li@windriver.com</a>&gt;
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
          On 6/21/19 4:32 PM, Martin Jansa wrote:<br>
          &gt; On Tue, Jun 18, 2019 at 03:46:56PM +0800, <a
            href="mailto:changqing.li@windriver.com" target="_blank"
            moz-do-not-send="true">changqing.li@windriver.com</a> wrote:<br>
          &gt;&gt; From: Changqing Li &lt;<a
            href="mailto:changqing.li@windriver.com" target="_blank"
            moz-do-not-send="true">changqing.li@windriver.com</a>&gt;<br>
          &gt;&gt;<br>
          &gt;&gt; The SDK was unable to find the C++ header pieces
          correctly since it's<br>
          &gt;&gt; using a generic compiler, not one specifically
          targeting the multilib<br>
          &gt;&gt; vendor prefix and default tune.  This adds the right
          mapping to ensure<br>
          &gt;&gt; SDKs work as expected. And fix problem in below
          configurations:<br>
          &gt;&gt;<br>
          &gt;&gt; multilib configuration 1:<br>
          &gt;&gt; MACHINE="qemumips64"<br>
          &gt;&gt; MULTILIBS ?= "multilib:lib32 multilib:libn32"<br>
          &gt;&gt; DEFAULTTUNE_virtclass-multilib-lib32 ?= "mips"<br>
          &gt;&gt; DEFAULTTUNE_virtclass-multilib-libn32 ?= "mips64-n32"<br>
          &gt;&gt; MULTILIB_GLOBAL_VARIANTS_append = " libn32"<br>
          &gt;&gt; require conf/multilib.conf<br>
          &gt;&gt;<br>
          &gt;&gt; ignoring nonexistent directory
"&lt;path&gt;/sysroots/mips64-poky-linux/usr/include/c++/8.2.0/mips64-poky-linux/32<br>
          &gt;&gt;<br>
          &gt;&gt; multilib configuration 2:<br>
          &gt;&gt; MACHINE="qemumips64"<br>
          &gt;&gt; MULTILIBS = 'multilib:lib64 multilib:lib32'<br>
          &gt;&gt; DEFAULTTUNE = 'mips64-n32'<br>
          &gt;&gt; DEFAULTTUNE_virtclass-multilib-lib64 = 'mips64'<br>
          &gt;&gt; DEFAULTTUNE_virtclass-multilib-lib32 = 'mips32r2'<br>
          &gt;&gt; require conf/multilib.conf<br>
          &gt;&gt;<br>
          &gt;&gt; For this configuration:<br>
          &gt;&gt; for target gcc-runtime, need to create symlink like
          mips64-poly-linux --&gt; mips64-poky-linux-gnu32<br>
          &gt;&gt; for target lib64-gcc-runtime, need to create symlink
          like mips64-poly-linux/32 --&gt; mips64-pokymllib64-linux<br>
          &gt;&gt; in order to avoid conflict during populate_sdk,
          create symlink for subfoler bits/ext for target gcc-runtime,<br>
          &gt;&gt; this is ugly, but seems no better way to cover all
          kinds of configuration.<br>
          &gt;&gt;<br>
          &gt;&gt; single lib configuration:<br>
          &gt;&gt; MACHINE="qemumips64"<br>
          &gt;&gt; DEFAULTTUNE = "mips64-n32"<br>
          &gt; This seems to be causing:<br>
          &gt;<br>
          &gt; ln: failed to create symbolic link
'work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/image/usr/include/c++/9.1.0/arm-oe-linux-gnueabi/bits':
          No such file or directory<br>
          &gt; WARNING: exit code 1 from a shell command.<br>
          &gt; ERROR: Function failed: do_install (log file is located
          at
work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/temp/log.do_install.31049)<br>
          &gt;<br>
          &gt; There is only empty directory without the -gnueabi
          suffix:<br>
          &gt;
work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/image/usr/include/c++/9.1.0/arm-oe-linux/<br>
          &gt;<br>
          &gt; and<br>
          &gt;<br>
          &gt;
work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/image/usr/include/c++/9.1.0/arm-oemllib32-linux-gnueabi/<br>
          &gt; bits  ext<br>
          <br>
          Could you send your configuration like this? Thanks.<br>
          <br>
          MACHINE="qemumips64"<br>
          MULTILIBS = 'multilib:lib64 multilib:lib32'<br>
          DEFAULTTUNE = 'mips64-n32'<br>
          DEFAULTTUNE_virtclass-multilib-lib64 = 'mips64'<br>
          DEFAULTTUNE_virtclass-multilib-lib32 = 'mips32r2'<br>
          require conf/multilib.conf<br>
          <br>
          &gt;&gt; Signed-off-by: Changqing Li &lt;<a
            href="mailto:changqing.li@windriver.com" target="_blank"
            moz-do-not-send="true">changqing.li@windriver.com</a>&gt;<br>
          &gt;&gt; ---<br>
          &gt;&gt;   meta/recipes-devtools/gcc/gcc-runtime.inc | 29
          +++++++++++++++++------------<br>
          &gt;&gt;   1 file changed, 17 insertions(+), 12 deletions(-)<br>
          &gt;&gt;<br>
          &gt;&gt; diff --git
          a/meta/recipes-devtools/gcc/gcc-runtime.inc
          b/meta/recipes-devtools/gcc/gcc-runtime.inc<br>
          &gt;&gt; index 3d03d8e..ba767e1 100644<br>
          &gt;&gt; --- a/meta/recipes-devtools/gcc/gcc-runtime.inc<br>
          &gt;&gt; +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc<br>
          &gt;&gt; @@ -86,10 +86,6 @@ do_install () {<br>
          &gt;&gt;      if [ -d ${D}${infodir} ]; then<br>
          &gt;&gt;              rmdir --ignore-fail-on-non-empty -p
          ${D}${infodir}<br>
          &gt;&gt;      fi<br>
          &gt;&gt; -    if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != ""
          -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}"
          ]; then<br>
          &gt;&gt; -            ln -s ${TARGET_SYS}
${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}<br>
          &gt;&gt; -    fi<br>
          &gt;&gt; -<br>
          &gt;&gt;   }<br>
          &gt;&gt;   <br>
          &gt;&gt;   do_install_append_class-target () {<br>
          &gt;&gt; @@ -98,20 +94,29 @@ do_install_append_class-target ()
          {<br>
          &gt;&gt;      fi<br>
          &gt;&gt;   <br>
          &gt;&gt;      if [ "${TARGET_OS}" = "linux-gnun32" ]; then<br>
          &gt;&gt; -            if [ "${MULTILIBS}" != "" ]; then<br>
          &gt;&gt; -                    mkdir
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux<br>
          &gt;&gt; -                    ln -s ../${TARGET_SYS}
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-pokymllib64-linux/32<br>
          &gt;&gt; +            if [
          "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a
          "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ];
          then<br>
          &gt;&gt; +                    mkdir
${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux<br>
          &gt;&gt; +                    ln -s ../${TARGET_SYS}
${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/32<br>
          &gt;&gt; +            elif [ "${MULTILIB_VARIANTS}" != "" ];
          then<br>
          &gt;&gt; +                    mkdir
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux<br>
          &gt;&gt; +                    ln -s ../${TARGET_SYS}
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32<br>
          &gt;&gt;              else<br>
          &gt;&gt;                      ln -s ${TARGET_SYS}
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux<br>
          &gt;&gt;              fi<br>
          &gt;&gt; -    fi<br>
          &gt;&gt; -    if [ "${TARGET_OS}" = "linux-gnux32" ]; then<br>
          &gt;&gt; -            if [ "${MULTILIBS}" != "" ]; then<br>
          &gt;&gt; -                    mkdir
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux<br>
          &gt;&gt; -                    ln -s ../${TARGET_SYS}
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}-poky-linux/x32<br>
          &gt;&gt; +    elif [ "${TARGET_OS}" = "linux-gnux32" ]; then<br>
          &gt;&gt; +            if [
          "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a
          "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ];
          then<br>
          &gt;&gt; +                    mkdir
${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux<br>
          &gt;&gt; +                    ln -s ../${TARGET_SYS}
${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux/x32<br>
          &gt;&gt; +            elif [ "${MULTILIB_VARIANTS}" != "" ];
          then<br>
          &gt;&gt; +                    mkdir
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux<br>
          &gt;&gt; +                    ln -s ../${TARGET_SYS}
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux/32<br>
          &gt;&gt;              else<br>
          &gt;&gt;                      ln -s ${TARGET_SYS}
          ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux<br>
          &gt;&gt;              fi<br>
          &gt;&gt; +    elif [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" !=
          "" -a "${TARGET_VENDOR}" !=
          "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then<br>
          &gt;&gt; +            mkdir
${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-linux<br>
          &gt;&gt; +            ln -s ../${TARGET_SYS}/bits
${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/bits<br>
          &gt;&gt; +            ln -s ../${TARGET_SYS}/ext
${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}/ext<br>
          &gt;&gt;      fi<br>
          &gt;&gt;   <br>
          &gt;&gt;      if [ "${TCLIBC}" != "glibc" ]; then<br>
          &gt;&gt; -- <br>
          &gt;&gt; 2.7.4<br>
          &gt;&gt;<br>
          &gt;&gt; -- <br>
          &gt;&gt; _______________________________________________<br>
          &gt;&gt; Openembedded-core mailing list<br>
          &gt;&gt; <a
            href="mailto:Openembedded-core@lists.openembedded.org"
            target="_blank" moz-do-not-send="true">Openembedded-core@lists.openembedded.org</a><br>
          &gt;&gt; <a
            href="http://lists.openembedded.org/mailman/listinfo/openembedded-core"
            rel="noreferrer" target="_blank" moz-do-not-send="true">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
          <br>
          -- <br>
          BRs<br>
          <br>
          Sandy(Li Changqing)<br>
          <br>
        </blockquote>
      </div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
BRs

Sandy(Li Changqing)</pre>
  </body>
</html>