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