diff mbox

[4/5] configure: detect presence of libxendevicemodel

Message ID 1487861635-17560-5-git-send-email-paul.durrant@citrix.com
State New
Headers show

Commit Message

Paul Durrant Feb. 23, 2017, 2:53 p.m. UTC
This patch adds code in configure to set CONFIG_XEN_CTRL_INTERFACE_VERSION
to a new value of 490 if libxendevicemodel is present in the build
environment.

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
---
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Anthony Perard <anthony.perard@citrix.com>
---
 configure | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

Comments

Anthony PERARD March 1, 2017, 5:17 p.m. UTC | #1
On Thu, Feb 23, 2017 at 02:53:54PM +0000, Paul Durrant wrote:
> This patch adds code in configure to set CONFIG_XEN_CTRL_INTERFACE_VERSION
> to a new value of 490 if libxendevicemodel is present in the build
> environment.
> 
> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> ---
> Cc: Stefano Stabellini <sstabellini@kernel.org>
> Cc: Anthony Perard <anthony.perard@citrix.com>
> ---
>  configure | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)
> 
> diff --git a/configure b/configure
> index 8e8f18d..fc1e12b 100755
> --- a/configure
> +++ b/configure
> @@ -1980,6 +1980,25 @@ EOF
>    # Xen unstable
>    elif
>        cat > $TMPC <<EOF &&
> +#undef XC_WANT_COMPAT_DEVICEMODEL_API
> +#define __XEN_TOOLS__

Isn't __XEN_TOOLS__ supposed to be reserved for some to tools inside
xen.git?

Also it seems to be the only time this define is used in your patch
series.

> +#include <xendevicemodel.h>
> +int main(void) {
> +  xendevicemodel_handle *xd;
> +
> +  xd = xendevicemodel_open(0, 0);
> +  xendevicemodel_close(xd);
> +
> +  return 0;
> +}
> +EOF
> +      compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel"
> +    then
> +    xen_stable_libs="$xen_stable_libs -lxendevicemodel"
> +    xen_ctrl_version=490
> +    xen=yes
> +  elif
> +      cat > $TMPC <<EOF &&
>  /*
>   * If we have stable libs the we don't want the libxc compat
>   * layers, regardless of what CFLAGS we may have been given.
> -- 
> 2.1.4
>
Paul Durrant March 2, 2017, 9:06 a.m. UTC | #2
> -----Original Message-----
> From: Anthony PERARD [mailto:anthony.perard@citrix.com]
> Sent: 01 March 2017 17:18
> To: Paul Durrant <Paul.Durrant@citrix.com>
> Cc: xen-devel@lists.xenproject.org; qemu-devel@nongnu.org; Stefano
> Stabellini <sstabellini@kernel.org>
> Subject: Re: [PATCH 4/5] configure: detect presence of libxendevicemodel
> 
> On Thu, Feb 23, 2017 at 02:53:54PM +0000, Paul Durrant wrote:
> > This patch adds code in configure to set
> CONFIG_XEN_CTRL_INTERFACE_VERSION
> > to a new value of 490 if libxendevicemodel is present in the build
> > environment.
> >
> > Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> > ---
> > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > Cc: Anthony Perard <anthony.perard@citrix.com>
> > ---
> >  configure | 19 +++++++++++++++++++
> >  1 file changed, 19 insertions(+)
> >
> > diff --git a/configure b/configure
> > index 8e8f18d..fc1e12b 100755
> > --- a/configure
> > +++ b/configure
> > @@ -1980,6 +1980,25 @@ EOF
> >    # Xen unstable
> >    elif
> >        cat > $TMPC <<EOF &&
> > +#undef XC_WANT_COMPAT_DEVICEMODEL_API
> > +#define __XEN_TOOLS__
> 
> Isn't __XEN_TOOLS__ supposed to be reserved for some to tools inside
> xen.git?
> 
> Also it seems to be the only time this define is used in your patch
> series.
>
No. QEMU falls under the definition of 'tools' as far as Xen goes and the hypercalls and xendevicemodel API are protected by that. The reason you don't see it elsewhere is that xenctrl.h defines it. (See http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/libxc/include/xenctrl.h;hb=HEAD#l27).
I think that's a little underhand so I thought I'd make the new code in configure more transparent. I can change it to just include xenctrl.h before xendevicemodel.h if you'd prefer.

  Paul

> > +#include <xendevicemodel.h>
> > +int main(void) {
> > +  xendevicemodel_handle *xd;
> > +
> > +  xd = xendevicemodel_open(0, 0);
> > +  xendevicemodel_close(xd);
> > +
> > +  return 0;
> > +}
> > +EOF
> > +      compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel"
> > +    then
> > +    xen_stable_libs="$xen_stable_libs -lxendevicemodel"
> > +    xen_ctrl_version=490
> > +    xen=yes
> > +  elif
> > +      cat > $TMPC <<EOF &&
> >  /*
> >   * If we have stable libs the we don't want the libxc compat
> >   * layers, regardless of what CFLAGS we may have been given.
> > --
> > 2.1.4
> >
> 
> --
> Anthony PERARD
Anthony PERARD March 2, 2017, 10:54 a.m. UTC | #3
On Thu, Mar 02, 2017 at 09:06:43AM +0000, Paul Durrant wrote:
> > -----Original Message-----
> > From: Anthony PERARD [mailto:anthony.perard@citrix.com]
> > Sent: 01 March 2017 17:18
> > To: Paul Durrant <Paul.Durrant@citrix.com>
> > Cc: xen-devel@lists.xenproject.org; qemu-devel@nongnu.org; Stefano
> > Stabellini <sstabellini@kernel.org>
> > Subject: Re: [PATCH 4/5] configure: detect presence of libxendevicemodel
> > 
> > On Thu, Feb 23, 2017 at 02:53:54PM +0000, Paul Durrant wrote:
> > > This patch adds code in configure to set
> > CONFIG_XEN_CTRL_INTERFACE_VERSION
> > > to a new value of 490 if libxendevicemodel is present in the build
> > > environment.
> > >
> > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> > > ---
> > > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > > Cc: Anthony Perard <anthony.perard@citrix.com>
> > > ---
> > >  configure | 19 +++++++++++++++++++
> > >  1 file changed, 19 insertions(+)
> > >
> > > diff --git a/configure b/configure
> > > index 8e8f18d..fc1e12b 100755
> > > --- a/configure
> > > +++ b/configure
> > > @@ -1980,6 +1980,25 @@ EOF
> > >    # Xen unstable
> > >    elif
> > >        cat > $TMPC <<EOF &&
> > > +#undef XC_WANT_COMPAT_DEVICEMODEL_API
> > > +#define __XEN_TOOLS__
> > 
> > Isn't __XEN_TOOLS__ supposed to be reserved for some to tools inside
> > xen.git?
> > 
> > Also it seems to be the only time this define is used in your patch
> > series.
> >
> No. QEMU falls under the definition of 'tools' as far as Xen goes and the hypercalls and xendevicemodel API are protected by that. The reason you don't see it elsewhere is that xenctrl.h defines it. (See http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/libxc/include/xenctrl.h;hb=HEAD#l27).
> I think that's a little underhand so I thought I'd make the new code in configure more transparent. I can change it to just include xenctrl.h before xendevicemodel.h if you'd prefer.

I guess that is fine with __XEN_TOOLS__.
You can add my
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
Paul Durrant March 2, 2017, 10:55 a.m. UTC | #4
> -----Original Message-----
> From: Anthony PERARD [mailto:anthony.perard@citrix.com]
> Sent: 02 March 2017 10:55
> To: Paul Durrant <Paul.Durrant@citrix.com>
> Cc: xen-devel@lists.xenproject.org; qemu-devel@nongnu.org; Stefano
> Stabellini <sstabellini@kernel.org>
> Subject: Re: [PATCH 4/5] configure: detect presence of libxendevicemodel
> 
> On Thu, Mar 02, 2017 at 09:06:43AM +0000, Paul Durrant wrote:
> > > -----Original Message-----
> > > From: Anthony PERARD [mailto:anthony.perard@citrix.com]
> > > Sent: 01 March 2017 17:18
> > > To: Paul Durrant <Paul.Durrant@citrix.com>
> > > Cc: xen-devel@lists.xenproject.org; qemu-devel@nongnu.org; Stefano
> > > Stabellini <sstabellini@kernel.org>
> > > Subject: Re: [PATCH 4/5] configure: detect presence of
> libxendevicemodel
> > >
> > > On Thu, Feb 23, 2017 at 02:53:54PM +0000, Paul Durrant wrote:
> > > > This patch adds code in configure to set
> > > CONFIG_XEN_CTRL_INTERFACE_VERSION
> > > > to a new value of 490 if libxendevicemodel is present in the build
> > > > environment.
> > > >
> > > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
> > > > ---
> > > > Cc: Stefano Stabellini <sstabellini@kernel.org>
> > > > Cc: Anthony Perard <anthony.perard@citrix.com>
> > > > ---
> > > >  configure | 19 +++++++++++++++++++
> > > >  1 file changed, 19 insertions(+)
> > > >
> > > > diff --git a/configure b/configure
> > > > index 8e8f18d..fc1e12b 100755
> > > > --- a/configure
> > > > +++ b/configure
> > > > @@ -1980,6 +1980,25 @@ EOF
> > > >    # Xen unstable
> > > >    elif
> > > >        cat > $TMPC <<EOF &&
> > > > +#undef XC_WANT_COMPAT_DEVICEMODEL_API
> > > > +#define __XEN_TOOLS__
> > >
> > > Isn't __XEN_TOOLS__ supposed to be reserved for some to tools inside
> > > xen.git?
> > >
> > > Also it seems to be the only time this define is used in your patch
> > > series.
> > >
> > No. QEMU falls under the definition of 'tools' as far as Xen goes and the
> hypercalls and xendevicemodel API are protected by that. The reason you
> don't see it elsewhere is that xenctrl.h defines it. (See
> http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/libxc/include/xenc
> trl.h;hb=HEAD#l27).
> > I think that's a little underhand so I thought I'd make the new code in
> configure more transparent. I can change it to just include xenctrl.h before
> xendevicemodel.h if you'd prefer.
> 
> I guess that is fine with __XEN_TOOLS__.
> You can add my
> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>

Cool. Thanks,

  Paul

> 
> --
> Anthony PERARD
Jürgen Groß March 2, 2017, 11:01 a.m. UTC | #5
On 02/03/17 11:54, Anthony PERARD wrote:
> On Thu, Mar 02, 2017 at 09:06:43AM +0000, Paul Durrant wrote:
>>> -----Original Message-----
>>> From: Anthony PERARD [mailto:anthony.perard@citrix.com]
>>> Sent: 01 March 2017 17:18
>>> To: Paul Durrant <Paul.Durrant@citrix.com>
>>> Cc: xen-devel@lists.xenproject.org; qemu-devel@nongnu.org; Stefano
>>> Stabellini <sstabellini@kernel.org>
>>> Subject: Re: [PATCH 4/5] configure: detect presence of libxendevicemodel
>>>
>>> On Thu, Feb 23, 2017 at 02:53:54PM +0000, Paul Durrant wrote:
>>>> This patch adds code in configure to set
>>> CONFIG_XEN_CTRL_INTERFACE_VERSION
>>>> to a new value of 490 if libxendevicemodel is present in the build
>>>> environment.
>>>>
>>>> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
>>>> ---
>>>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>>>> Cc: Anthony Perard <anthony.perard@citrix.com>
>>>> ---
>>>>  configure | 19 +++++++++++++++++++
>>>>  1 file changed, 19 insertions(+)
>>>>
>>>> diff --git a/configure b/configure
>>>> index 8e8f18d..fc1e12b 100755
>>>> --- a/configure
>>>> +++ b/configure
>>>> @@ -1980,6 +1980,25 @@ EOF
>>>>    # Xen unstable
>>>>    elif
>>>>        cat > $TMPC <<EOF &&
>>>> +#undef XC_WANT_COMPAT_DEVICEMODEL_API
>>>> +#define __XEN_TOOLS__
>>>
>>> Isn't __XEN_TOOLS__ supposed to be reserved for some to tools inside
>>> xen.git?
>>>
>>> Also it seems to be the only time this define is used in your patch
>>> series.
>>>
>> No. QEMU falls under the definition of 'tools' as far as Xen goes and the hypercalls and xendevicemodel API are protected by that. The reason you don't see it elsewhere is that xenctrl.h defines it. (See http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/libxc/include/xenctrl.h;hb=HEAD#l27).
>> I think that's a little underhand so I thought I'd make the new code in configure more transparent. I can change it to just include xenctrl.h before xendevicemodel.h if you'd prefer.
> 
> I guess that is fine with __XEN_TOOLS__.
> You can add my
> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
> 

Sorry for jumping in only now:

Wouldn't it be better to base qemu's configure modification for support
of Xen 4.9 (and newer) on my just posted series introducing pkg-config?

I'm just about to expand this series to all of Xen's libraries and I
already have a qemu patch at hand supporting this new scheme.


Juergen
Paul Durrant March 2, 2017, 11:06 a.m. UTC | #6
> -----Original Message-----

> From: Juergen Gross [mailto:jgross@suse.com]

> Sent: 02 March 2017 11:01

> To: Anthony Perard <anthony.perard@citrix.com>; Paul Durrant

> <Paul.Durrant@citrix.com>

> Cc: xen-devel@lists.xenproject.org; Stefano Stabellini

> <sstabellini@kernel.org>; qemu-devel@nongnu.org

> Subject: Re: [Xen-devel] [PATCH 4/5] configure: detect presence of

> libxendevicemodel

> 

> On 02/03/17 11:54, Anthony PERARD wrote:

> > On Thu, Mar 02, 2017 at 09:06:43AM +0000, Paul Durrant wrote:

> >>> -----Original Message-----

> >>> From: Anthony PERARD [mailto:anthony.perard@citrix.com]

> >>> Sent: 01 March 2017 17:18

> >>> To: Paul Durrant <Paul.Durrant@citrix.com>

> >>> Cc: xen-devel@lists.xenproject.org; qemu-devel@nongnu.org; Stefano

> >>> Stabellini <sstabellini@kernel.org>

> >>> Subject: Re: [PATCH 4/5] configure: detect presence of

> libxendevicemodel

> >>>

> >>> On Thu, Feb 23, 2017 at 02:53:54PM +0000, Paul Durrant wrote:

> >>>> This patch adds code in configure to set

> >>> CONFIG_XEN_CTRL_INTERFACE_VERSION

> >>>> to a new value of 490 if libxendevicemodel is present in the build

> >>>> environment.

> >>>>

> >>>> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>

> >>>> ---

> >>>> Cc: Stefano Stabellini <sstabellini@kernel.org>

> >>>> Cc: Anthony Perard <anthony.perard@citrix.com>

> >>>> ---

> >>>>  configure | 19 +++++++++++++++++++

> >>>>  1 file changed, 19 insertions(+)

> >>>>

> >>>> diff --git a/configure b/configure

> >>>> index 8e8f18d..fc1e12b 100755

> >>>> --- a/configure

> >>>> +++ b/configure

> >>>> @@ -1980,6 +1980,25 @@ EOF

> >>>>    # Xen unstable

> >>>>    elif

> >>>>        cat > $TMPC <<EOF &&

> >>>> +#undef XC_WANT_COMPAT_DEVICEMODEL_API

> >>>> +#define __XEN_TOOLS__

> >>>

> >>> Isn't __XEN_TOOLS__ supposed to be reserved for some to tools inside

> >>> xen.git?

> >>>

> >>> Also it seems to be the only time this define is used in your patch

> >>> series.

> >>>

> >> No. QEMU falls under the definition of 'tools' as far as Xen goes and the

> hypercalls and xendevicemodel API are protected by that. The reason you

> don't see it elsewhere is that xenctrl.h defines it. (See

> http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/libxc/include/xenc

> trl.h;hb=HEAD#l27).

> >> I think that's a little underhand so I thought I'd make the new code in

> configure more transparent. I can change it to just include xenctrl.h before

> xendevicemodel.h if you'd prefer.

> >

> > I guess that is fine with __XEN_TOOLS__.

> > You can add my

> > Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>

> >

> 

> Sorry for jumping in only now:

> 

> Wouldn't it be better to base qemu's configure modification for support

> of Xen 4.9 (and newer) on my just posted series introducing pkg-config?

> 

> I'm just about to expand this series to all of Xen's libraries and I

> already have a qemu patch at hand supporting this new scheme.


Ok, but I'm at v2 and I was literally just about to post. I guess it will also be pretty trivial to change configure after this change has been applied.

  Paul

> 

> 

> Juergen
Jürgen Groß March 2, 2017, 11:26 a.m. UTC | #7
On 02/03/17 12:06, Paul Durrant wrote:
>> -----Original Message-----
>> From: Juergen Gross [mailto:jgross@suse.com]
>> Sent: 02 March 2017 11:01
>> To: Anthony Perard <anthony.perard@citrix.com>; Paul Durrant
>> <Paul.Durrant@citrix.com>
>> Cc: xen-devel@lists.xenproject.org; Stefano Stabellini
>> <sstabellini@kernel.org>; qemu-devel@nongnu.org
>> Subject: Re: [Xen-devel] [PATCH 4/5] configure: detect presence of
>> libxendevicemodel
>>
>> On 02/03/17 11:54, Anthony PERARD wrote:
>>> On Thu, Mar 02, 2017 at 09:06:43AM +0000, Paul Durrant wrote:
>>>>> -----Original Message-----
>>>>> From: Anthony PERARD [mailto:anthony.perard@citrix.com]
>>>>> Sent: 01 March 2017 17:18
>>>>> To: Paul Durrant <Paul.Durrant@citrix.com>
>>>>> Cc: xen-devel@lists.xenproject.org; qemu-devel@nongnu.org; Stefano
>>>>> Stabellini <sstabellini@kernel.org>
>>>>> Subject: Re: [PATCH 4/5] configure: detect presence of
>> libxendevicemodel
>>>>>
>>>>> On Thu, Feb 23, 2017 at 02:53:54PM +0000, Paul Durrant wrote:
>>>>>> This patch adds code in configure to set
>>>>> CONFIG_XEN_CTRL_INTERFACE_VERSION
>>>>>> to a new value of 490 if libxendevicemodel is present in the build
>>>>>> environment.
>>>>>>
>>>>>> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
>>>>>> ---
>>>>>> Cc: Stefano Stabellini <sstabellini@kernel.org>
>>>>>> Cc: Anthony Perard <anthony.perard@citrix.com>
>>>>>> ---
>>>>>>  configure | 19 +++++++++++++++++++
>>>>>>  1 file changed, 19 insertions(+)
>>>>>>
>>>>>> diff --git a/configure b/configure
>>>>>> index 8e8f18d..fc1e12b 100755
>>>>>> --- a/configure
>>>>>> +++ b/configure
>>>>>> @@ -1980,6 +1980,25 @@ EOF
>>>>>>    # Xen unstable
>>>>>>    elif
>>>>>>        cat > $TMPC <<EOF &&
>>>>>> +#undef XC_WANT_COMPAT_DEVICEMODEL_API
>>>>>> +#define __XEN_TOOLS__
>>>>>
>>>>> Isn't __XEN_TOOLS__ supposed to be reserved for some to tools inside
>>>>> xen.git?
>>>>>
>>>>> Also it seems to be the only time this define is used in your patch
>>>>> series.
>>>>>
>>>> No. QEMU falls under the definition of 'tools' as far as Xen goes and the
>> hypercalls and xendevicemodel API are protected by that. The reason you
>> don't see it elsewhere is that xenctrl.h defines it. (See
>> http://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=tools/libxc/include/xenc
>> trl.h;hb=HEAD#l27).
>>>> I think that's a little underhand so I thought I'd make the new code in
>> configure more transparent. I can change it to just include xenctrl.h before
>> xendevicemodel.h if you'd prefer.
>>>
>>> I guess that is fine with __XEN_TOOLS__.
>>> You can add my
>>> Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
>>>
>>
>> Sorry for jumping in only now:
>>
>> Wouldn't it be better to base qemu's configure modification for support
>> of Xen 4.9 (and newer) on my just posted series introducing pkg-config?
>>
>> I'm just about to expand this series to all of Xen's libraries and I
>> already have a qemu patch at hand supporting this new scheme.
> 
> Ok, but I'm at v2 and I was literally just about to post. I guess it will also be pretty trivial to change configure after this change has been applied.

Sure, this will work.

Its your decision. :-)


Juergen
diff mbox

Patch

diff --git a/configure b/configure
index 8e8f18d..fc1e12b 100755
--- a/configure
+++ b/configure
@@ -1980,6 +1980,25 @@  EOF
   # Xen unstable
   elif
       cat > $TMPC <<EOF &&
+#undef XC_WANT_COMPAT_DEVICEMODEL_API
+#define __XEN_TOOLS__
+#include <xendevicemodel.h>
+int main(void) {
+  xendevicemodel_handle *xd;
+
+  xd = xendevicemodel_open(0, 0);
+  xendevicemodel_close(xd);
+
+  return 0;
+}
+EOF
+      compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel"
+    then
+    xen_stable_libs="$xen_stable_libs -lxendevicemodel"
+    xen_ctrl_version=490
+    xen=yes
+  elif
+      cat > $TMPC <<EOF &&
 /*
  * If we have stable libs the we don't want the libxc compat
  * layers, regardless of what CFLAGS we may have been given.