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

Re: [Xen-devel] QEMU build breakage on ARM against Xen 4.9 caused by libxendevicemodel



> -----Original Message-----
> From: Stefano Stabellini [mailto:sstabellini@xxxxxxxxxx]
> Sent: 20 April 2017 00:02
> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
> Cc: 'Stefano Stabellini' <sstabellini@xxxxxxxxxx>; qemu-devel@xxxxxxxxxx;
> Anthony Perard <anthony.perard@xxxxxxxxxx>; Wei Liu
> <wei.liu2@xxxxxxxxxx>; jgross@xxxxxxxx; julien.grall@xxxxxxx; xen-
> devel@xxxxxxxxxxxxxxxxxxxx
> 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@xxxxxxxxxx]
> > > Sent: 18 April 2017 18:41
> > > To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
> > > Cc: 'Stefano Stabellini' <sstabellini@xxxxxxxxxx>; qemu-
> devel@xxxxxxxxxx;
> > > Anthony Perard <anthony.perard@xxxxxxxxxx>; Wei Liu
> > > <wei.liu2@xxxxxxxxxx>; jgross@xxxxxxxx; julien.grall@xxxxxxx; xen-
> > > devel@xxxxxxxxxxxxxxxxxxxx
> > > 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@xxxxxxxxxx]
> > > > > Sent: 15 April 2017 01:40
> > > > > To: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> > > > > Cc: Paul Durrant <Paul.Durrant@xxxxxxxxxx>; qemu-
> devel@xxxxxxxxxx;
> > > > > Anthony Perard <anthony.perard@xxxxxxxxxx>; Wei Liu
> > > > > <wei.liu2@xxxxxxxxxx>; jgross@xxxxxxxx; julien.grall@xxxxxxx; xen-
> > > > > devel@xxxxxxxxxxxxxxxxxxxx
> > > > > 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@xxxxxxxxxx>
> > > > > > 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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.