Bug 8616 - arm64's multilib SDK is broken
Summary: arm64's multilib SDK is broken
Status: VERIFIED DUPLICATE of bug 10054
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: 2.1
Hardware: x86 arm64
: Medium+ major
Target Milestone: 2.2 M1
Assignee: Juro Bystricky
QA Contact: Yi Zhao
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2015-10-30 01:47 UTC by Robert Yang
Modified: 2016-09-09 16:04 UTC (History)
9 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Yang 2015-10-30 01:47:30 UTC
YP 2.0 also has this problem:

MACHINE ?= "qemuarm64"

require conf/multilib.conf
MULTILIBS ?= "multilib:lib32" 
DEFAULTTUNE_virtclass-multilib-lib32 ?= "armv7at-neon"

$ bitbake core-image-minimal -cpopulate_sdk

extract the sdk, 64bit works well, but 32bit doesn't:

$ ls environment-setup-* -1
environment-setup-aarch64-poky-linux
environment-setup-armv7a-vfp-neon-pokymllib32-linux-gnueabi
environment-setup-core2-64-poky-linux
environment-setup-x86-pokymllib32-linux

Note there are core2-64 and x86, this was because I had built qemux86-64's SDK, this might be another problem.

The environment-setup-aarch64-poky-linux works and can build hello.c, but environment-setup-armv7a-vfp-neon-pokymllib32-linux-gnueabi can't, in environment-setup-armv7a-vfp-neon-pokymllib32-linux-gnueabi:

 CC="arm-pokymllib32-linux-gnueabi-gcc foo.."

But there is no arm-pokymllib32-linux-gnueabi-gcc. and:

$ find sysroots/x86_64-pokysdk-linux/usr/bin/ -name '*-gcc'
sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux-musl/aarch64-poky-linux-musl-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/i686-pokymllib32-linux-musl/i686-pokymllib32-linux-musl-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/arm-pokymllib32-linux-musl/arm-pokymllib32-linux-musl-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-pokymllib32-linux-uclibcx32/x86_64-pokymllib32-linux-uclibcx32-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-pokymllib32-linux/x86_64-pokymllib32-linux-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux-uclibc/x86_64-poky-linux-uclibc-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/i686-poky-linux/i686-poky-linux-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/i686-pokymllib32-linux-uclibc/i686-pokymllib32-linux-uclibc-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-uclibc/arm-poky-linux-uclibc-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-pokymllib32-linux-muslx32/x86_64-pokymllib32-linux-muslx32-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/arm-pokymllib32-linux-uclibc/arm-pokymllib32-linux-uclibc-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-musl/arm-poky-linux-musl-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux/arm-poky-linux-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-pokymllib32-linux-uclibc/x86_64-pokymllib32-linux-uclibc-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/arm-pokymllib32-linux/arm-pokymllib32-linux-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-pokymllib32-linux-musl/x86_64-pokymllib32-linux-musl-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-pokymllib32-linux-gnux32/x86_64-pokymllib32-linux-gnux32-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux-muslx32/x86_64-poky-linux-muslx32-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/i686-pokymllib32-linux/i686-pokymllib32-linux-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux-gnux32/x86_64-poky-linux-gnux32-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-pokymllib32-linux-musl/aarch64-pokymllib32-linux-musl-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/i686-poky-linux-uclibc/i686-poky-linux-uclibc-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux-musl/x86_64-poky-linux-musl-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux-uclibcx32/x86_64-poky-linux-uclibcx32-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-pokymllib32-linux/aarch64-pokymllib32-linux-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-pokymllib32-linux-uclibc/aarch64-pokymllib32-linux-uclibc-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/i686-poky-linux-musl/i686-poky-linux-musl-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux-uclibc/aarch64-poky-linux-uclibc-gcc
sysroots/x86_64-pokysdk-linux/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc
Comment 1 Robert Yang 2015-10-30 02:54:49 UTC
I think that this is because arm64 doesn't support multilib ? In gcc-5.2.0-r0/gcc-5.2.0/gcc/config:
$ find | grep t-linux64
./sparc/t-linux64
./rs6000/t-linux64lebe
./rs6000/t-linux64le
./rs6000/t-linux64
./rs6000/t-linux64bele
./mips/t-linux64
./i386/t-linux64
./s390/t-linux64
Comment 2 Ross Burton 2016-06-30 15:25:38 UTC
Marking as duplicate of 8638.

*** This bug has been marked as a duplicate of bug 8638 ***
Comment 3 Jose Perez C 2016-07-29 15:50:59 UTC
Duplicated Bug
Comment 4 Juro Bystricky 2016-08-11 15:44:40 UTC
This is not a duplicate of 8638, (but it looks like a duplicate of 10054).
The issue here is that environment setup file for the 32 bit GCC refers to a GCC which does not exist (or it exists, but under a different name).
Additionally, the problem seems to be still there for 2.2 master.
Comment 5 Saul Wold 2016-08-25 14:57:11 UTC
Really a duplicate of 10054

*** This bug has been marked as a duplicate of bug 10054 ***
Comment 6 Jose Perez C 2016-09-09 16:04:55 UTC
verified duplicate