mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-26 20:10:35 -09:00
package/pkg-golang: use ld.bfd instead of ld.gold on aarch64
Go forces use of the Gold linker on aarch64 due to a bug in BFD that is fixed in Binutils >= 2.41 (that includes all versions provided by Buildroot). Forcing Gold will break with toolchains that don't provide it (like the Buildroot toolchains), so override the flag and use BFD. This override should be removed if Go stops forcing Gold, and may have to be adapted if the set of available linkers changes (e.g. with a future Binutils update). See: https://github.com/golang/go/issues/22040 Fixes: http://autobuild.buildroot.org/results/a59/a59bc999e9620ff6b9d97138a2de898aadc07529 Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de> Reviewed-by: Yann E. MORIN <yann.morin@orange.com> [Romain: add autobuild reference] Signed-off-by: Romain Naour <romain.naour@smile.fr>
This commit is contained in:
committed by
Romain Naour
parent
dcb5d1d918
commit
838a269b87
@@ -118,6 +118,16 @@ $(2)_EXTLDFLAGS += -static
|
||||
$(2)_TAGS += osusergo netgo
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_aarch64),y)
|
||||
# Go forces use of the Gold linker on aarch64 due to a bug in BFD that
|
||||
# is fixed in Binutils >= 2.41 (that includes all versions provided by
|
||||
# Buildroot). Forcing Gold will break with toolchains that don't
|
||||
# provide it (like the Buildroot toolchains), so override the flag and
|
||||
# use BFD.
|
||||
# See: https://github.com/golang/go/issues/22040
|
||||
$(2)_EXTLDFLAGS += -fuse-ld=bfd
|
||||
endif
|
||||
|
||||
ifneq ($$($(2)_EXTLDFLAGS),)
|
||||
$(2)_LDFLAGS += -extldflags '$$($(2)_EXTLDFLAGS)'
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user