qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Juergen Gross <jgross@suse.com>
To: Paul Durrant <Paul.Durrant@citrix.com>,
	'Stefano Stabellini' <sstabellini@kernel.org>
Cc: Anthony Perard <anthony.perard@citrix.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"kraxel@redhat.com" <kraxel@redhat.com>
Subject: Re: [Qemu-devel] [Xen-devel] [PATCH 2/2] configure: use pkg-config for obtaining xen version
Date: Fri, 24 Mar 2017 16:54:41 +0100	[thread overview]
Message-ID: <0103d60e-cd96-ab48-70fb-f75ba1273f39@suse.com> (raw)
In-Reply-To: <20f2b3ce-218b-4d61-6af1-8c70b751ed18@suse.com>

On 24/03/17 16:51, Juergen Gross wrote:
> On 24/03/17 16:44, Paul Durrant wrote:
>>> -----Original Message-----
>>> From: Juergen Gross [mailto:jgross@suse.com]
>>> Sent: 24 March 2017 15:35
>>> To: Paul Durrant <Paul.Durrant@citrix.com>; 'Stefano Stabellini'
>>> <sstabellini@kernel.org>
>>> Cc: Anthony Perard <anthony.perard@citrix.com>; xen-
>>> devel@lists.xenproject.org; qemu-devel@nongnu.org; kraxel@redhat.com
>>> Subject: Re: [Xen-devel] [PATCH 2/2] configure: use pkg-config for obtaining
>>> xen version
>>>
>>> On 24/03/17 16:12, Paul Durrant wrote:
>>>>> -----Original Message-----
>>>>> From: Stefano Stabellini [mailto:sstabellini@kernel.org]
>>>>> Sent: 22 March 2017 18:22
>>>>> To: Juergen Gross <jgross@suse.com>
>>>>> Cc: Stefano Stabellini <sstabellini@kernel.org>; qemu-
>>> devel@nongnu.org;
>>>>> xen-devel@lists.xenproject.org; Anthony Perard
>>>>> <anthony.perard@citrix.com>; kraxel@redhat.com; Paul Durrant
>>>>> <Paul.Durrant@citrix.com>
>>>>> Subject: Re: [PATCH 2/2] configure: use pkg-config for obtaining xen
>>> version
>>>>>
>>>>> On Wed, 22 Mar 2017, Juergen Gross wrote:
>>>>>> On 21/03/17 19:54, Stefano Stabellini wrote:
>>>>>>> On Tue, 21 Mar 2017, Juergen Gross wrote:
>>>>>>>> On 17/03/17 19:33, Stefano Stabellini wrote:
>>>>>>>>> On Fri, 17 Mar 2017, Juergen Gross wrote:
>>>>>>>>>> On 16/03/17 21:20, Stefano Stabellini wrote:
>>>>>>>>>>> On Thu, 16 Mar 2017, Juergen Gross wrote:
>>>>>>>>>>>> Instead of trying to guess the Xen version to use by compiling
>>>>> various
>>>>>>>>>>>> test programs first just ask the system via pkg-config. Only if it
>>>>>>>>>>>> can't return the version fall back to the test program scheme.
>>>>>>>>>>>
>>>>>>>>>>> That's OK, but why did you remove the Xen unstable test?
>>>>>>>>>>
>>>>>>>>>> >From Xen 4.9 on pkg-config will return the needed information.
>>>>> There is
>>>>>>>>>> no longer a need for a test program to determine the Xen version.
>>>>> After
>>>>>>>>>> all this was the main objective of my series adding the pkg-config
>>>>>>>>>> files to Xen.
>>>>>>>>>
>>>>>>>>> I was going to say something like "yeah, but is pkg-config always
>>>>>>>>> available?" In reality, QEMU already has pkg-config as build
>>>>>>>>> dependency, so I guess there is no problem with that.
>>>>>>>>>
>>>>>>>>> Please add a note about this to the commit message.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Okay.
>>>>>>>
>>>>>>> Sorry to point this out only now, and I realize that it might be
>>>>>>> unimportant for production builds, but it is important to me, and
>>>>>>> developers in general, to be able to test a single QEMU tree against a
>>>>>>> number of Xen trees (all releases from 4.3 onward).
>>>>>>>
>>>>>>> With this change (specifically dropping the 4.9 build test), out of tree
>>>>>>> builds don't work anymore. I would like to be able to do:
>>>>>>>
>>>>>>> ./configure --enable-xen --target-list=i386-softmmu \
>>>>>>>                 --extra-cflags="-I$DIR/tools/include \
>>>>>>>                 -I$DIR/tools/libs/toollog/include \
>>>>>>>                 -I$DIR/tools/libs/evtchn/include \
>>>>>>>                 -I$DIR/tools/libs/gnttab/include \
>>>>>>>                 -I$DIR/tools/libs/foreignmemory/include \
>>>>>>>                 -I$DIR/tools/libs/devicemodel/include \
>>>>>>>                 -I$DIR/tools/libxc/include \
>>>>>>>                 -I$DIR/tools/xenstore/include \
>>>>>>>                 -I$DIR/tools/xenstore/compat/include" \
>>>>>>>                 --extra-ldflags="-L$DIR/tools/libxc \
>>>>>>>                 -L$DIR/tools/xenstore \
>>>>>>>                 -L$DIR/tools/libs/evtchn \
>>>>>>>                 -L$DIR/tools/libs/gnttab \
>>>>>>>                 -L$DIR/tools/libs/foreignmemory \
>>>>>>>                 -L$DIR/tools/libs/devicemodel \
>>>>>>>                 -Wl,-rpath-link=$DIR/tools/libs/toollog \
>>>>>>>                 -Wl,-rpath-link=$DIR/tools/libs/evtchn \
>>>>>>>                 -Wl,-rpath-link=$DIR/tools/libs/gnttab \
>>>>>>>                 -Wl,-rpath-link=$DIR/tools/libs/call \
>>>>>>>                 -Wl,-rpath-link=$DIR/tools/libs/foreignmemory \
>>>>>>>                 -Wl,-rpath-link=$DIR/tools/libs/devicemodel" \
>>>>>>>             --disable-kvm
>>>>>>> make
>>>>>>>
>>>>>>> And the make should succeed. Is there a way to do that with pkg-
>>> config?
>>>>>>
>>>>>> Sure, for Xen 4.9 just do:
>>>>>>
>>>>>> PKG_CONFIG_PATH=$(DIR)/tools/pkg-config ./configure \
>>>>>> 		--enable-xen --target-list=i386-softmmu \
>>>>>> 		--disable-kvm
>>>>>> make
>>>>>
>>>>> Yes, that works, thanks! I committed it to my next branch adding
>>>>> "pkg-config, which is already a build dependency of QEMU, will be used
>>>>> exclusively to determine the Xen version from Xen 4.9 onward." to the
>>>>> commit message.
>>>>
>>>> A further question...
>>>>
>>>> I have a xen tree which I've been using to build and install master against
>>> my own checked out QEMU repo. No problem with that. I've now reverted
>>> my tree to 4.7.0 and cannot build tools (even after a make distclean) because
>>> QEMU's configure is still getting up a xen_ctrl_version of 40900. This is
>>> because pkg-config is still finding a 4.9.0 xencontrol package? Where is it
>>> getting this from?
>>>
>>> Hmm, could it be you have Xen unstable installed on your machine?
>>
>> I do indeed. I build on my test machine.
>>
>>>
>>> Didn't think of this problem. I can think of 3 solutions:
>>>
>>> a) delete the xencontrol.pc file (on my system under
>>>    /usr/share/pkgconfig/ )
>>>
>>
>> I just found mine using pkg-config --debug... /usr/local/share/pkgconfig for me
>>
>>> b) we add a patch to qemu to test an environment variable whether
>>>    pkg-config should be ignored for Xen version detection
>>>
>>> c) set the environment variable PKG_CONFIG_LIBDIR to a local directory
>>>    and copy all but the xen*.pc files from /usr/share/pkgconfig/ (or
>>>    your correct directory) to it (or link them to avoid missing updates)
>>>
>>> OTOH this is something you have to be aware of for other packages as
>>> well: mixing the build environment and the target environment can lead
>>> to bad results. Now Xen has been added to the list.
>>>
>>
>> That's a change in behaviour that I, and probably others, have long been used to. What we really want, presumably, is to have pkg-config just look under tools/pkgconfig when querying for the version of xencontrol. Could that not be done by simply setting PKG_CONFIG_LIBDIR in QEMU's configure script, or would it still mean picking up installed libraries before ones just built?
> 
> I guess this would break qemu's configure badly as it wouldn't find all
> the other library informations it is looking for via pkg-config.

Aah, wait, you mean just for the Xen query?

This might complicate things for my qemu stubdom plans...


Juergen

  reply	other threads:[~2017-03-24 15:54 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-16 14:19 [Qemu-devel] [PATCH 0/2] xen: use pkg-config for configure Juergen Gross
2017-03-16 14:19 ` [Qemu-devel] [PATCH 1/2] xen: use 5 digit xen versions Juergen Gross
2017-03-16 20:19   ` Stefano Stabellini
2017-03-16 14:19 ` [Qemu-devel] [PATCH 2/2] configure: use pkg-config for obtaining xen version Juergen Gross
2017-03-16 20:20   ` Stefano Stabellini
2017-03-17  4:49     ` Juergen Gross
2017-03-17 18:33       ` Stefano Stabellini
2017-03-21  5:34         ` Juergen Gross
2017-03-21 18:54           ` Stefano Stabellini
2017-03-22  5:02             ` Juergen Gross
2017-03-22 18:21               ` Stefano Stabellini
2017-03-24 15:12                 ` Paul Durrant
2017-03-24 15:24                   ` Paul Durrant
2017-03-24 15:34                   ` [Qemu-devel] [Xen-devel] " Juergen Gross
2017-03-24 15:44                     ` Paul Durrant
2017-03-24 15:51                       ` Juergen Gross
2017-03-24 15:54                         ` Juergen Gross [this message]
2017-03-24 15:56                           ` Paul Durrant
2017-03-24 16:42                           ` Paul Durrant
2017-03-24 18:43                             ` Juergen Gross

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0103d60e-cd96-ab48-70fb-f75ba1273f39@suse.com \
    --to=jgross@suse.com \
    --cc=Paul.Durrant@citrix.com \
    --cc=anthony.perard@citrix.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).