[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