[OE-core] [PATCH v2] cross-canadian/libgcc: fix aarch64's multilib SDK
Robert Yang
liezhi.yang at windriver.com
Wed Jul 25 08:04:46 UTC 2018
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
>
> 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