From 644b66f83d5251cdf2a6d592e067595f60c90b71 Mon Sep 17 00:00:00 2001 From: Christopher Clark Date: Sun, 17 Sep 2017 18:22:33 -0700 Subject: xen: patch to fix ARM libxc missing variable init Fix Xen 4.9.0 build error on ARM architecture with gcc 7: Import upstream Xen patch 88bfbf90e35f1213f9967a97dee0b2039f9998a4 Error was: xc_dom_arm.c:229:31: error: 'domctl.u.address_size.size' may be used uninitialized in this function [-Werror=maybe-uninitialized] Signed-off-by: Christopher Clark Signed-off-by: Bruce Ashfield --- ...x-libxc-xc_dom_arm-missing-initialization.patch | 36 ++++++++++++++++++++++ recipes-extended/xen/xen_4.9.0.bb | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 recipes-extended/xen/files/fix-libxc-xc_dom_arm-missing-initialization.patch diff --git a/recipes-extended/xen/files/fix-libxc-xc_dom_arm-missing-initialization.patch b/recipes-extended/xen/files/fix-libxc-xc_dom_arm-missing-initialization.patch new file mode 100644 index 00000000..05016a7a --- /dev/null +++ b/recipes-extended/xen/files/fix-libxc-xc_dom_arm-missing-initialization.patch @@ -0,0 +1,36 @@ +commit 88bfbf90e35f1213f9967a97dee0b2039f9998a4 +Author: Bernd Kuhls +Date: Sat Aug 19 16:21:42 2017 +0200 + + tools/libxc/xc_dom_arm: add missing variable initialization + + The variable domctl.u.address_size.size may remain uninitialized if + guest_type is not one of xen-3.0-aarch64 or xen-3.0-armv7l. And the + code precisely checks if this variable is still 0 to decide if the + guest type is supported or not. + + This fixes the following build failure with gcc 7.x: + + xc_dom_arm.c:229:31: error: 'domctl.u.address_size.size' may be used uninitialized in this function [-Werror=maybe-uninitialized] + if ( domctl.u.address_size.size == 0 ) + + Patch originally taken from + https://www.mail-archive.com/xen-devel@lists.xen.org/msg109313.html. + + Signed-off-by: Bernd Kuhls + Signed-off-by: Thomas Petazzoni + Acked-by: Wei Liu + +diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c +index e7d4bd0..e669fb0 100644 +--- a/tools/libxc/xc_dom_arm.c ++++ b/tools/libxc/xc_dom_arm.c +@@ -223,6 +223,8 @@ static int set_mode(xc_interface *xch, domid_t domid, char *guest_type) + + domctl.domain = domid; + domctl.cmd = XEN_DOMCTL_set_address_size; ++ domctl.u.address_size.size = 0; ++ + for ( i = 0; i < ARRAY_SIZE(types); i++ ) + if ( !strcmp(types[i].guest, guest_type) ) + domctl.u.address_size.size = types[i].size; diff --git a/recipes-extended/xen/xen_4.9.0.bb b/recipes-extended/xen/xen_4.9.0.bb index 0b209362..8e9c8024 100644 --- a/recipes-extended/xen/xen_4.9.0.bb +++ b/recipes-extended/xen/xen_4.9.0.bb @@ -1,7 +1,9 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" require xen.inc SRC_URI = " \ https://downloads.xenproject.org/release/xen/${PV}/xen-${PV}.tar.gz \ + file://fix-libxc-xc_dom_arm-missing-initialization.patch \ " SRC_URI[md5sum] = "f0a753637630f982dfbdb64121fd71e1" -- cgit v1.2.3-54-g00ecf