commit:     e380cf8427ba5f3c073491bdf88488c04beeff6b
Author:     Dmitry Torokhov <dtor <AT> chromium <DOT> org>
AuthorDate: Fri Oct 25 16:55:14 2019 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Dec 11 20:41:31 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e380cf84

sys-libs/efivar: fix compiling makeguids on older hosts

This imports a fix for build failures when compiling on older hosts for
a newer microarchitectures.

Closes: https://bugs.gentoo.org/702584
Signed-off-by: Dmitry Torokhov <dtor <AT> chromium.org>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/13435

 .../{efivar-37.ebuild => efivar-37-r1.ebuild}      |  4 +++
 .../efivar-37-makeguids_fix_host_compile.patch     | 36 ++++++++++++++++++++++
 2 files changed, 40 insertions(+)

diff --git a/sys-libs/efivar/efivar-37.ebuild 
b/sys-libs/efivar/efivar-37-r1.ebuild
similarity index 92%
rename from sys-libs/efivar/efivar-37.ebuild
rename to sys-libs/efivar/efivar-37-r1.ebuild
index f9a608e46d2..878309f4b43 100644
--- a/sys-libs/efivar/efivar-37.ebuild
+++ b/sys-libs/efivar/efivar-37-r1.ebuild
@@ -19,6 +19,10 @@ DEPEND="${RDEPEND}
        virtual/pkgconfig
 "
 
+PATCHES=(
+       "${FILESDIR}/${P}-makeguids_fix_host_compile.patch"
+)
+
 src_prepare() {
        default
        sed -i -e 's/-Werror //' gcc.specs || die

diff --git a/sys-libs/efivar/files/efivar-37-makeguids_fix_host_compile.patch 
b/sys-libs/efivar/files/efivar-37-makeguids_fix_host_compile.patch
new file mode 100644
index 00000000000..f0172eb612e
--- /dev/null
+++ b/sys-libs/efivar/files/efivar-37-makeguids_fix_host_compile.patch
@@ -0,0 +1,36 @@
+From 81346196bb262156fd436c78323d161af61dd6c1 Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <[email protected]>
+Date: Tue, 6 Aug 2019 09:22:25 -0700
+Subject: [PATCH] Make sure makeguids helper is compiled for the host's arch
+
+Currently makeguids is compiled with the same flags/settings as the rest
+of the package, which does not work in case of cross-compiles when arch
+of the build host and the target host are different. Let's force
+compiling for the native host arch to avoid this issue.
+
+Note that this is not a full cross-compile solution as this does not
+account for potential differences in host/target compilers (versions,
+clang vs gcc, etc), but it removes one of the issue with package build
+aborting due to invalid instruction on the host.
+
+Signed-off-by: Dmitry Torokhov <[email protected]>
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index addfaa0..3729d2b 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -52,7 +52,7 @@ include/efivar/efivar-guids.h : makeguids guids.txt
+       ./makeguids guids.txt guids.bin names.bin \
+               guid-symbols.c include/efivar/efivar-guids.h
+ 
+-makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT
++makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT -march=native
+ makeguids : LIBS=dl
+ makeguids : $(MAKEGUIDS_SOURCES)
+ makeguids : CCLD=$(CCLD_FOR_BUILD)
+-- 
+2.23.0.866.gb869b98d4c-goog
+

Reply via email to