On 6/21/19 6:21 PM, Martin Jansa wrote:
Hi,

see the fix here:
http://lists.openembedded.org/pipermail/openembedded-core/2019-June/283928.html

I think it doesn't need additional explanation.

Any aarch64/arm multilib configuration should trigger this (or anything where TARGET_OS isn't just "linux").
Thanks.

Regards,

On Fri, Jun 21, 2019 at 11:08 AM Changqing Li <[email protected] <mailto:[email protected]>> wrote:


    On 6/21/19 4:32 PM, Martin Jansa wrote:
    > On Tue, Jun 18, 2019 at 03:46:56PM +0800,
    [email protected] <mailto:[email protected]> wrote:
    >> From: Changqing Li <[email protected]
    <mailto:[email protected]>>
    >>
    >> 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'
    >> 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"
    > This seems to be causing:
    >
    > 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
    > WARNING: exit code 1 from a shell command.
    > 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)
    >
    > There is only empty directory without the -gnueabi suffix:
    >
    
work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/image/usr/include/c++/9.1.0/arm-oe-linux/
    >
    > and
    >
    >
    
work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/image/usr/include/c++/9.1.0/arm-oemllib32-linux-gnueabi/
    > bits  ext

    Could you send your configuration like this? Thanks.

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

    >> Signed-off-by: Changqing Li <[email protected]
    <mailto:[email protected]>>
    >> ---
    >>   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
    >> [email protected]
    <mailto:[email protected]>
    >> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- BRs

    Sandy(Li Changqing)

--
BRs

Sandy(Li Changqing)

-- 
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to