From: Patrick Ohly Date: Wed, 29 Mar 2017 12:52:06 +0000 (+0200) Subject: ovmf: avoid linking with gold X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~21844 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ee548b9f6f2893caf6b5ade8c892f2968d4ec47;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git ovmf: avoid linking with gold Linking with gold fails due to an internal error in gold. The ovmf linker is gcc, which has a -fuse-ld=bfd option to choose the linker which (for ovmf) is known to work. Like the choice of the compilers, this is done in ovmf-native. To keep that recipe independent of DISTRO_FEATURES, choosing bfd is done unconditionally. Signed-off-by: Patrick Ohly Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb index 898c5b76af2..73fdfc6239e 100644 --- a/meta/recipes-core/ovmf/ovmf_git.bb +++ b/meta/recipes-core/ovmf/ovmf_git.bb @@ -98,6 +98,14 @@ fix_toolchain_append_class-native() { -e '/^LINKER/a LFLAGS += ${BUILD_LDFLAGS}\nCFLAGS += ${BUILD_CFLAGS}' \ ${S}/BaseTools/Source/C/Makefiles/app.makefile \ ${S}/BaseTools/Source/C/VfrCompile/GNUmakefile + # Linking with gold fails: + # internal error in do_layout, at ../../gold/object.cc:1821 + # make: *** [.../OUTPUT/Facs.acpi] Error 1 + # We intentionally hard-code the use of ld.bfd regardless of DISTRO_FEATURES + # to make ovmf-native reusable across distros. + sed -i \ + -e 's#^\(DEFINE GCC.*DLINK.*FLAGS *=\)#\1 -fuse-ld=bfd#' \ + ${S}/BaseTools/Conf/tools_def.template } GCC_VER="$(${CC} -v 2>&1 | tail -n1 | awk '{print $3}')"