aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2017-03-29 14:52:06 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-30 10:03:56 +0100
commit7ee548b9f6f2893caf6b5ade8c892f2968d4ec47 (patch)
treeb652b13648ab9e40d7f41918f1dba24695617a79
parent6d6d0737a29bbf3dcd231bfefe13784ed16dd55a (diff)
downloadopenembedded-core-contrib-7ee548b9f6f2893caf6b5ade8c892f2968d4ec47.tar.gz
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 <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-core/ovmf/ovmf_git.bb8
1 files changed, 8 insertions, 0 deletions
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 898c5b76af..73fdfc6239 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}')"