From fcb06dcf29ac9492f37108cfbf665d058f7f6d0d Mon Sep 17 00:00:00 2001
From: William Pitcock <nenolod@dereferenced.org>
Date: Thu, 18 May 2017 20:16:57 +0000
Subject: [PATCH] main/xen: fix ifunc usage on qemu-xen domain model

---
 main/xen/APKBUILD                      |  5 ++++-
 main/xen/xenqemu-configure-ifunc.patch | 11 +++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)
 create mode 100644 main/xen/xenqemu-configure-ifunc.patch

diff --git a/main/xen/APKBUILD b/main/xen/APKBUILD
index f4c13b07be40..9eb8fddd0b82 100644
--- a/main/xen/APKBUILD
+++ b/main/xen/APKBUILD
@@ -3,7 +3,7 @@
 # Maintainer: William Pitcock <nenolod@dereferenced.org>
 pkgname=xen
 pkgver=4.8.1
-pkgrel=0
+pkgrel=1
 pkgdesc="Xen hypervisor"
 url="http://www.xen.org/"
 arch="x86_64 armhf"
@@ -115,6 +115,8 @@ source="http://bits.xensource.com/oss-xen/release/$pkgver/$pkgname-$pkgver.tar.g
 
 	xenstore_client_transaction_fix.patch
 
+	xenqemu-configure-ifunc.patch
+
 	xenstored.initd
 	xenstored.confd
 	xenconsoled.initd
@@ -333,6 +335,7 @@ f095ea373f36381491ad36f0662fb4f53665031973721256b23166e596318581da7cbb0146d0beb2
 79cb1b6b81b17cb87a064dfe3548949dfb80f64f203cac11ef327102b7a25794549ce2d9c019ebf05f752214da8e05065e9219d069e679c0ae5bee3d090c685e  xen-hotplug-lockfd.patch
 e76816c6ad0e91dc5f81947f266da3429b20e6d976c3e8c41202c6179532eec878a3f0913921ef3ac853c5dbad8082da3c9cd53b65081910516feb492577b7fc  xen-fd-is-file.c
 69dfa60628ca838678862383528654ecbdf4269cbb5c9cfb6b84d976202a8dea85d711aa65a52fa1b477fb0b30604ca70cf1337192d6fb9388a08bbe7fe56077  xenstore_client_transaction_fix.patch
+e0dd7069968d51574d6e5603d5738494b112bfda085bc75f10102658be3b2901d8d253c52927c707668e1cdb62d12c101213e42cd72d9b307fa83d1355a7526a  xenqemu-configure-ifunc.patch
 52c43beb2596d645934d0f909f2d21f7587b6898ed5e5e7046799a8ed6d58f7a09c5809e1634fa26152f3fd4f3e7cfa07da7076f01b4a20cc8f5df8b9cb77e50  xenstored.initd
 093f7fbd43faf0a16a226486a0776bade5dc1681d281c5946a3191c32d74f9699c6bf5d0ab8de9d1195a2461165d1660788e92a3156c9b3c7054d7b2d52d7ff0  xenstored.confd
 3c86ed48fbee0af4051c65c4a3893f131fa66e47bf083caf20c9b6aa4b63fdead8832f84a58d0e27964bc49ec8397251b34e5be5c212c139f556916dc8da9523  xenconsoled.initd
diff --git a/main/xen/xenqemu-configure-ifunc.patch b/main/xen/xenqemu-configure-ifunc.patch
new file mode 100644
index 000000000000..a201e141e6d1
--- /dev/null
+++ b/main/xen/xenqemu-configure-ifunc.patch
@@ -0,0 +1,11 @@
+--- ./tools/qemu-xen/configure.orig
++++ ./tools/qemu-xen/configure
+@@ -1805,7 +1805,7 @@
+ EOF
+   if compile_object "" ; then
+       if has readelf; then
+-          if readelf --syms $TMPO 2>/dev/null |grep -q "IFUNC.*foo"; then
++          if readelf --syms $TMPO 2>/dev/null |grep -q "IFUNC.*foo" && ldd $TMPO >/dev/null 2>&1; then
+               avx2_opt="yes"
+           fi
+       fi
-- 
GitLab