Hi richard I have sent a new patch to fix toolchain for arm multilib #8642 (From OE-Core rev: b6253350fb86d8e54792905342a5892af570d526) Last patch is indeed not in master.
Zheng Ruoqin -----Original Message----- From: Richard Purdie [mailto:[email protected]] Sent: Tuesday, March 14, 2017 3:32 PM To: Zheng, Ruoqin/郑 若钦 <[email protected]>; [email protected] Subject: Re: [OE-core] [jethro][PATCH] sdk: arm toolchain patch for multilib On Wed, 2017-03-15 at 00:00 +0800, zhengrq wrote: > The arm toolchain has a "-gnueabi" suffix, but aarch64 doesn't,this > makes multilib sdk doesn't work, for example: > > MACHINE = qemuarm64 > require conf/multilib.conf > MULTILIBS = "multilib:lib32" > DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon" > > $ bitbake core-image-minimal -cpopulate_sdk > > Then extract SDK, the environment-setup-armv7a-vfp-neon- > pokymllib32-linux-gnueabi doesn't work since: > * The CC is arm-pokymllib32-linux-gnueabi-gcc which doesn't exist, > the patch for cross-canadian.bbclass fixes problem. > * Need aarch64-poky-linux/usr/lib/arm-poky-linux-linux-gnueabi > which doesn't exist, the patch for libgcc-common.inc fixes the > problem. > > [YOCTO #8616] > > Signed-off-by: Robert Yang <[email protected]> > Signed-off-by: Lei Maohui <[email protected]> > Signed-off-by: Zheng Ruoqin <[email protected]> I'm not seeing any patch in master which sets GNUEABI_SUFFIX unless I'm missing something? Which patch are you backporting to jethro here? Don't you really want http://git.yoctoproject.org/cgit.cgi/poky/commit/ ?id=b6253350fb86d8e54792905342a5892af570d526 ? and perhaps you mean #8642 or #10054? Cheers, Richard > meta/classes/cross-canadian.bbclass | 3 +++ > meta/recipes-devtools/gcc/libgcc-common.inc | 25 ++++++++++++++++++- > ------ > meta/recipes-devtools/gcc/libgcc.inc | 2 +- > 3 files changed, 22 insertions(+), 8 deletions(-) > > diff --git a/meta/classes/cross-canadian.bbclass > b/meta/classes/cross-canadian.bbclass > index ea17f09..458185d 100644 > --- a/meta/classes/cross-canadian.bbclass > +++ b/meta/classes/cross-canadian.bbclass > @@ -18,6 +18,7 @@ PACKAGE_ARCH = "${SDK_ARCH}-${SDKPKGSUFFIX}" > CANADIANEXTRAOS = "linux-uclibc linux-musl" > CANADIANEXTRAVENDOR = "" > MODIFYTOS ??= "1" > +GNUEABI_SUFFIX = "" > python () { > archs = d.getVar('PACKAGE_ARCHS', True).split() > sdkarchs = [] > @@ -69,6 +70,7 @@ python () { > d.appendVar("CANADIANEXTRAOS", " linux-gnun32 linux- > uclibcn32 linux-musln32") > if tarch == "arm" or tarch == "armeb": > d.setVar("TARGET_OS", "linux-gnueabi") > + d.setVar("GNUEABI_SUFFIX", "-gnueabi") > else: > d.setVar("TARGET_OS", "linux") > > @@ -167,6 +169,7 @@ SHLIBSWORKDIR = "${PKGDATA_DIR}/nativesdk- > shlibs2" > cross_canadian_bindirlinks () { > for i in linux ${CANADIANEXTRAOS} > do > + i="$i${GNUEABI_SUFFIX}" > for v in ${CANADIANEXTRAVENDOR} > do > d=${D}${bindir}/../${TARGET_ARCH}$v-$i > diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc > b/meta/recipes-devtools/gcc/libgcc-common.inc > index b09ea65..46f8cfd 100644 > --- a/meta/recipes-devtools/gcc/libgcc-common.inc > +++ b/meta/recipes-devtools/gcc/libgcc-common.inc > @@ -134,11 +134,22 @@ BASETARGET_SYS = > "${TARGET_ARCH}${ORIG_TARGET_VENDOROS}" > > addtask extra_symlinks after do_multilib_install before do_package > do_populate_sysroot > fakeroot python do_extra_symlinks() { > - targetsys = d.getVar('BASETARGET_SYS', True) > - > - if targetsys != d.getVar('TARGET_SYS', True): > - dest = d.getVar('D', True) + d.getVar('libdir', True) + '/' > + targetsys > - src = d.getVar('TARGET_SYS', True) > - if not os.path.lexists(dest) and > os.path.lexists(d.getVar('D', True) + d.getVar('libdir', True)): > - os.symlink(src, dest) > + base_targetsys = d.getVar('BASETARGET_SYS', True) > + targetsys = d.getVar('TARGET_SYS', True) > + > + if base_targetsys != targetsys: > + dest = d.getVar('D', True) + d.getVar('libdir', True) + '/' > + base_targetsys > + dest_list = [dest] > + # For multilib like aarch64 + arm, need 2 symlinks: > + # 1) BASETARGET_SYS as usual > + # 2) BASETARGET_SYS + "-gnueabi" for multilib > + libce = d.getVar('LIBCEXTENSION', True) > + abie = d.getVar('ABIEXTENSION', True) > + if abie and libce and targetsys.endswith(libce + abie): > + dest_list.append(dest + libce + abie) > + src = targetsys > + for dir in dest_list: > + if not os.path.lexists(dir) and > os.path.lexists(d.getVar('D', True) + d.getVar('libdir', True)): > + os.symlink(src, dir) > } > + > diff --git a/meta/recipes-devtools/gcc/libgcc.inc b/meta/recipes- > devtools/gcc/libgcc.inc index 95fa3f4..f6a0a8c 100644 > --- a/meta/recipes-devtools/gcc/libgcc.inc > +++ b/meta/recipes-devtools/gcc/libgcc.inc > @@ -17,7 +17,7 @@ LICENSE_${PN}-dbg = "GPL-3.0-with-GCC-exception" > > FILES_${PN}-dev = "\ > ${base_libdir}/libgcc*.so \ > - ${@base_conditional('BASETARGET_SYS', '${TARGET_SYS}', '', > '${libdir}/${BASETARGET_SYS}', d)} \ > + ${@base_conditional('BASETARGET_SYS', '${TARGET_SYS}', '', > '${libdir}/${BASETARGET_SYS}*', d)} \ > ${libdir}/${TARGET_SYS}/${BINV}* \ > " > > -- > 2.7.4 > > > -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
