[OE-core] [PATCH v2] cross-canadian/libgcc: fix aarch64's multilib SDK
Lei, Maohui
leimaohui at cn.fujitsu.com
Tue Jul 31 07:29:14 UTC 2018
> Please test this patch with musl target preferably arm/aarch64 and also
> ppc/glibc by generating SDKs
Ok, I'll test it.
Best regards.
Lei
> -----Original Message-----
> From: Khem Raj [mailto:raj.khem at gmail.com]
> Sent: Friday, July 27, 2018 11:31 AM
> To: Robert Yang; Lei, Maohui; openembedded-core at lists.openembedded.org
> Subject: Re: [OE-core] [PATCH v2] cross-canadian/libgcc: fix aarch64's multilib
> SDK
>
>
>
> On 7/25/18 1:04 AM, Robert Yang wrote:
> > Hi Maohui,
> >
> > Thanks for sending it, I do think that oe-core needs this patch.
> >
> > // Robert
> >
> > On 06/26/2018 06:27 AM, Lei Maohui wrote:
> >> The arm toolchain has a "-gnueabi" suffix, but aarch64 doesn't, this
> >> makes multilib sdk doesn't work, there will be error as following:
> >>
> >> .../usr/libexec/armeb-poky-linux-gux-linux-gnueabi/7.3.0/real-ld:
> >> cannot find crtbeginS.o: No such file or directo
> >> .../usr/libexec/armeb-poky-linux-gux-linux-gnueabi/7.3.0/real-ld:
> >> cannot find -lgcc
> >> .../usr/libexec/armeb-poky-linux-gux-linux-gnueabi/7.3.0/real-ld:
> >> cannot find -lgcc
> >> collect2: error: ld returned 1 exit status
> >>
>
> Please test this patch with musl target preferably arm/aarch64 and also
> ppc/glibc by generating SDKs
>
> >> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> >> Signed-off-by: Lei Maohui <leimaohui at cn.fujitsu.com>
> >> ---
> >> meta/recipes-devtools/gcc/libgcc-common.inc | 23
> >> +++++++++++++++++------
> >> 1 file changed, 17 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/meta/recipes-devtools/gcc/libgcc-common.inc
> >> b/meta/recipes-devtools/gcc/libgcc-common.inc
> >> index 848a476..a49fc98 100644
> >> --- a/meta/recipes-devtools/gcc/libgcc-common.inc
> >> +++ b/meta/recipes-devtools/gcc/libgcc-common.inc
> >> @@ -145,11 +145,22 @@ fakeroot python do_extra_symlinks() {
> >> if bb.data.inherits_class('nativesdk', d):
> >> return
> >> - targetsys = d.getVar('BASETARGET_SYS')
> >> + base_targetsys = d.getVar('BASETARGET_SYS')
> >> + targetsys = d.getVar('TARGET_SYS')
> >> +
> >> + if base_targetsys != targetsys:
> >> + dest = d.getVar('D') + d.getVar('libdir') + '/' +
> >> +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')
> >> + abie = d.getVar('ABIEXTENSION')
> >> + 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)
> >> - if targetsys != d.getVar('TARGET_SYS'):
> >> - dest = d.getVar('D') + d.getVar('libdir') + '/' + targetsys
> >> - src = d.getVar('TARGET_SYS')
> >> - if not os.path.lexists(dest) and
> >> os.path.lexists(d.getVar('D') + d.getVar('libdir')):
> >> - os.symlink(src, dest)
> >> }
> >>
More information about the Openembedded-core
mailing list