diff mbox

QEMU build breakage on ARM against Xen 4.9 caused by libxendevicemodel

Message ID alpine.DEB.2.10.1704191552450.31486@sstabellini-ThinkPad-X260 (mailing list archive)
State New, archived
Headers show

Commit Message

Stefano Stabellini April 19, 2017, 11:02 p.m. UTC
On Wed, 19 Apr 2017, Paul Durrant wrote:
> > -----Original Message-----
> > From: Stefano Stabellini [mailto:sstabellini@kernel.org]
> > Sent: 18 April 2017 18:41
> > To: Paul Durrant <Paul.Durrant@citrix.com>
> > Cc: 'Stefano Stabellini' <sstabellini@kernel.org>; qemu-devel@nongnu.org;
> > Anthony Perard <anthony.perard@citrix.com>; Wei Liu
> > <wei.liu2@citrix.com>; jgross@suse.com; julien.grall@arm.com; xen-
> > devel@lists.xenproject.org
> > Subject: RE: QEMU build breakage on ARM against Xen 4.9 caused by
> > libxendevicemodel
> > 
> > On Tue, 18 Apr 2017, Paul Durrant wrote:
> > > > -----Original Message-----
> > > > From: Stefano Stabellini [mailto:sstabellini@kernel.org]
> > > > Sent: 15 April 2017 01:40
> > > > To: Stefano Stabellini <sstabellini@kernel.org>
> > > > Cc: Paul Durrant <Paul.Durrant@citrix.com>; qemu-devel@nongnu.org;
> > > > Anthony Perard <anthony.perard@citrix.com>; Wei Liu
> > > > <wei.liu2@citrix.com>; jgross@suse.com; julien.grall@arm.com; xen-
> > > > devel@lists.xenproject.org
> > > > Subject: Re: QEMU build breakage on ARM against Xen 4.9 caused by
> > > > libxendevicemodel
> > > >
> > > > On Fri, 14 Apr 2017, Stefano Stabellini wrote:
> > > > > Hi Paul,
> > > > >
> > > > > The following commit in my qemu "next" branch breaks the build on
> > arm
> > > > > and arm64:
> > > > >
> > > > > commit 670271647ad15e9d937ced7a72c892349c709216
> > > > > Author: Paul Durrant <paul.durrant@citrix.com>
> > > > > Date:   Tue Mar 7 10:55:34 2017 +0000
> > > > >
> > > > >     xen: use libxendevicemodel when available
> > > > >
> > > > > See the appended build log. Sorry for not realizing it sooner.
> > > >
> > > > As I imagined, this bug is easy to solve. It is reproducible on x86 too,
> > > > if you pass -DXC_WANT_COMPAT_DEVICEMODEL_API=1 to configure
> > and
> > > > forcefully disable Xen 4.9 detection in the configure script.
> > > >
> > > > If QEMU detects xen_ctrl_version = 480, the build will fail against Xen
> > > > 4.9, even when -DXC_WANT_COMPAT_DEVICEMODEL_API=1 is
> > specified.
> > > >
> > > > The appended patch solves the problem. However, Xen 4.9 detection
> > and
> > > > compilation remain broken.
> > >
> > > Ok, that fix looks fine to me.
> > 
> > I merged this change into "use libxendevicemodel when available" in my
> > next branch.
> > 
> > Are you going to take care of getting the QEMU build on ARM to work
> > against Xen 4.9 (properly detecting 4.9, without
> > -DXC_WANT_COMPAT_DEVICEMODEL_API=1)?
> > 
> 
> I can take a look once I get access to some h/w. Since the 4.9 detection should merely be based upon the presence of libxendevicemodel, I can't really imagine why ARM should behave any differently to x86.

I managed to find the time to do some debugging. You are right that is
not anything major. The bug is due to a missing -lxencall in the QEMU
configure script, I wonder why it works on x86.

Comments

Paul Durrant April 20, 2017, 8:02 a.m. UTC | #1
> -----Original Message-----
> From: Stefano Stabellini [mailto:sstabellini@kernel.org]
> Sent: 20 April 2017 00:02
> To: Paul Durrant <Paul.Durrant@citrix.com>
> Cc: 'Stefano Stabellini' <sstabellini@kernel.org>; qemu-devel@nongnu.org;
> Anthony Perard <anthony.perard@citrix.com>; Wei Liu
> <wei.liu2@citrix.com>; jgross@suse.com; julien.grall@arm.com; xen-
> devel@lists.xenproject.org
> Subject: RE: QEMU build breakage on ARM against Xen 4.9 caused by
> libxendevicemodel
> 
> On Wed, 19 Apr 2017, Paul Durrant wrote:
> > > -----Original Message-----
> > > From: Stefano Stabellini [mailto:sstabellini@kernel.org]
> > > Sent: 18 April 2017 18:41
> > > To: Paul Durrant <Paul.Durrant@citrix.com>
> > > Cc: 'Stefano Stabellini' <sstabellini@kernel.org>; qemu-
> devel@nongnu.org;
> > > Anthony Perard <anthony.perard@citrix.com>; Wei Liu
> > > <wei.liu2@citrix.com>; jgross@suse.com; julien.grall@arm.com; xen-
> > > devel@lists.xenproject.org
> > > Subject: RE: QEMU build breakage on ARM against Xen 4.9 caused by
> > > libxendevicemodel
> > >
> > > On Tue, 18 Apr 2017, Paul Durrant wrote:
> > > > > -----Original Message-----
> > > > > From: Stefano Stabellini [mailto:sstabellini@kernel.org]
> > > > > Sent: 15 April 2017 01:40
> > > > > To: Stefano Stabellini <sstabellini@kernel.org>
> > > > > Cc: Paul Durrant <Paul.Durrant@citrix.com>; qemu-
> devel@nongnu.org;
> > > > > Anthony Perard <anthony.perard@citrix.com>; Wei Liu
> > > > > <wei.liu2@citrix.com>; jgross@suse.com; julien.grall@arm.com; xen-
> > > > > devel@lists.xenproject.org
> > > > > Subject: Re: QEMU build breakage on ARM against Xen 4.9 caused by
> > > > > libxendevicemodel
> > > > >
> > > > > On Fri, 14 Apr 2017, Stefano Stabellini wrote:
> > > > > > Hi Paul,
> > > > > >
> > > > > > The following commit in my qemu "next" branch breaks the build on
> > > arm
> > > > > > and arm64:
> > > > > >
> > > > > > commit 670271647ad15e9d937ced7a72c892349c709216
> > > > > > Author: Paul Durrant <paul.durrant@citrix.com>
> > > > > > Date:   Tue Mar 7 10:55:34 2017 +0000
> > > > > >
> > > > > >     xen: use libxendevicemodel when available
> > > > > >
> > > > > > See the appended build log. Sorry for not realizing it sooner.
> > > > >
> > > > > As I imagined, this bug is easy to solve. It is reproducible on x86 too,
> > > > > if you pass -DXC_WANT_COMPAT_DEVICEMODEL_API=1 to configure
> > > and
> > > > > forcefully disable Xen 4.9 detection in the configure script.
> > > > >
> > > > > If QEMU detects xen_ctrl_version = 480, the build will fail against Xen
> > > > > 4.9, even when -DXC_WANT_COMPAT_DEVICEMODEL_API=1 is
> > > specified.
> > > > >
> > > > > The appended patch solves the problem. However, Xen 4.9 detection
> > > and
> > > > > compilation remain broken.
> > > >
> > > > Ok, that fix looks fine to me.
> > >
> > > I merged this change into "use libxendevicemodel when available" in my
> > > next branch.
> > >
> > > Are you going to take care of getting the QEMU build on ARM to work
> > > against Xen 4.9 (properly detecting 4.9, without
> > > -DXC_WANT_COMPAT_DEVICEMODEL_API=1)?
> > >
> >
> > I can take a look once I get access to some h/w. Since the 4.9 detection
> should merely be based upon the presence of libxendevicemodel, I can't
> really imagine why ARM should behave any differently to x86.
> 
> I managed to find the time to do some debugging. You are right that is
> not anything major. The bug is due to a missing -lxencall in the QEMU
> configure script, I wonder why it works on x86.

Yes, that's weird. libxendevicemodel does depend on libxencall for the case when the privcmd driver in dom0 does not support the new DM_OP ioctl, but that dependency should be there regardless of architecture.

> 
> diff --git a/configure b/configure
> index 99d6cbc..363a126 100755
> --- a/configure
> +++ b/configure
> @@ -2027,9 +2027,9 @@ int main(void) {
>    return 0;
>  }
>  EOF
> -        compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel"
> +        compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel -
> lxencall"
>        then
> -      xen_stable_libs="$xen_stable_libs -lxendevicemodel"
> +      xen_stable_libs="$xen_stable_libs -lxendevicemodel -lxencall"
>        xen_ctrl_version=40900
>        xen=yes
>      elif

I think xencall should be part of the base xen_stable_libs anyway.

Cheers,

   Paul
diff mbox

Patch

diff --git a/configure b/configure
index 99d6cbc..363a126 100755
--- a/configure
+++ b/configure
@@ -2027,9 +2027,9 @@  int main(void) {
   return 0;
 }
 EOF
-        compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel"
+        compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel -lxencall"
       then
-      xen_stable_libs="$xen_stable_libs -lxendevicemodel"
+      xen_stable_libs="$xen_stable_libs -lxendevicemodel -lxencall"
       xen_ctrl_version=40900
       xen=yes
     elif