[gnome-continuous-yocto/gnomeostree-3.28-rocko: 5386/8267] ovmf: avoid linking with gold



commit 8e7f76bd8ab5d7303e2f384ad35b87736cfdd935
Author: Patrick Ohly <patrick ohly intel com>
Date:   Wed Mar 29 14:52:06 2017 +0200

    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.
    
    (From OE-Core rev: 7ee548b9f6f2893caf6b5ade8c892f2968d4ec47)
    
    Signed-off-by: Patrick Ohly <patrick ohly intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 meta/recipes-core/ovmf/ovmf_git.bb |    8 ++++++++
 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 898c5b7..73fdfc6 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}')"


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]