From 4c124cadcc2023856686317de3d0304dcb2349bd Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 21 Aug 2023 15:58:45 -0700 Subject: go-runtime: Use BFD linker when LLD is default system linker on aarch64 go linker is not able to link subsequent binaries e.g. gosu with lld produced libstd.so and crashes. This is just seen on arm64 Signed-off-by: Khem Raj --- conf/nonclangable.conf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/conf/nonclangable.conf b/conf/nonclangable.conf index d34b6b6..7bfe1d9 100644 --- a/conf/nonclangable.conf +++ b/conf/nonclangable.conf @@ -564,4 +564,9 @@ LDFLAGS:append:pn-libffi:x86:toolchain-clang = "${@bb.utils.contains('DISTRO_FEA LDFLAGS:append:pn-libffi:arm:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -Wl,--undefined-version', '', d)}" LDFLAGS:append:pn-elfutils:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -Wl,--undefined-version', '', d)}" +# Avoid's go linker crash as reported in https://github.com/golang/go/issues/61872 +# it happens when libstd.so is linked with lld for aarch64 +LDFLAGS:append:pn-go-runtime:toolchain-clang:aarch64 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd', '', d)}" +LDFLAGS:remove:pn-go-runtime:toolchain-clang:aarch64 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '-fuse-ld=lld', '', d)}" + LD:pn-gnu-efi:toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', d)}" -- cgit v1.2.3-54-g00ecf