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>
Subject: Re: [Qemu-devel] [PATCH RESEND] xen: limit pkg-config to PKG_CONFIG_PATH for xen libraries
Date: Mon, 27 Mar 2017 07:45:42 +0200	[thread overview]
Message-ID: <f18632d1-dba1-084d-893c-aca6176754b6@suse.com> (raw)
In-Reply-To: <4334f125a9174a2e99e5b6f1228da2cd@AMSPEX02CL03.citrite.net>

On 24/03/17 20:34, Paul Durrant wrote:
>> -----Original Message-----
>> From: Qemu-devel [mailto:qemu-devel-
>> bounces+paul.durrant=citrix.com@nongnu.org] On Behalf Of Paul Durrant
>> Sent: 24 March 2017 19:18
>> To: 'Stefano Stabellini' <sstabellini@kernel.org>; Juergen Gross
>> <jgross@suse.com>
>> Cc: Anthony Perard <anthony.perard@citrix.com>; xen-
>> devel@lists.xenproject.org; qemu-devel@nongnu.org
>> Subject: Re: [Qemu-devel] [PATCH RESEND] xen: limit pkg-config to
>> PKG_CONFIG_PATH for xen libraries
>>
>>> -----Original Message-----
>>> From: Stefano Stabellini [mailto:sstabellini@kernel.org]
>>> Sent: 24 March 2017 19:12
>>> To: Juergen Gross <jgross@suse.com>
>>> Cc: Paul Durrant <Paul.Durrant@citrix.com>; qemu-devel@nongnu.org;
>> xen-
>>> devel@lists.xenproject.org; Anthony Perard
>> <anthony.perard@citrix.com>;
>>> Stefano Stabellini <sstabellini@kernel.org>
>>> Subject: Re: [PATCH RESEND] xen: limit pkg-config to PKG_CONFIG_PATH
>> for
>>> xen libraries
>>>
>>> On Fri, 24 Mar 2017, Juergen Gross wrote:
>>>> On 24/03/17 18:20, Paul Durrant wrote:
>>>>> The Xen tools Makefile has been modified to set PKG_CONFIG_PATH
>>> such that
>>>>> use of pkg-config in QEMU configure finds the newly built Xen libraries.
>>>>> However, because older versions of Xen do not set
>> PKG_CONFIG_PATH
>>> in the
>>>>> Makefile, the QEMU configure script will pick up any Xen libraries that
>>> may
>>>>> be installed in the build system rather than the newly built ones. Thus,
>>>>> if Xen 4.9 is built and installed it becomes impossible to build tools for
>>>>> an older version of Xen on the same system (without manual de-
>>> installtion).
>>>>>
>>>>> This patch modifies configure to set PKG_CONFIG_LIBDIR to empty
>> when
>>>>> looking for Xen libraries to ensure the search is limited only to
>>>>> PKG_CONFIG_PATH. This makes sure that, for versions of Xen prior to
>>> 4.9,
>>>>> pkg-config fails to find the Xen libraries an approriately falls back to
>>>>> previous methods of probing.
>>>>>
>>>>> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
>>>
>>> Paul, thanks for spotting this. I didn't spot it because I don't have
>>> Xen installed in my build environment, but we should not rely on that.
>>>
>>>
>>>> NAK. You are breaking normal qemu build with installed Xen pkg-config
>>>> files.
>>>
>>> The normal QEMU build, done as part of the xen-unstable build, is
>>> actually done without Xen being installed in the system. So, if I am not
>>> mistaken, the current mechanism also breaks the following entirely
>>> legitimate scenario:
>>>
>>> - user has 4.9 installed on her system
>>> - user git clones xen 4.10
>>> - user build xen 4.10
>>>   - as part of the xen build, qemu is cloned and built
>>>   - the qemu configure script picks up the pkgconfig file from
>>>     /usr/share and misconfigure the xen version, setting it to 4.9
>>>     instead of 4.10
>>>   - the qemu build fails
>>> - the xen build fails
>>>
>>> Am I right?
>>>
>>
>> I think the above would actually work because the 4.10 files would be found
>> before the 4.9 files. What fails is installing 4.9 and then trying to build 4.8.
> 
> I should qualify that with saying 'trying to build 4.8 with a newer QEMU (i.e. one that has a configure which knows about pkg-config).
> I still think that's a legitimate use-case though.

To sum it up we have to care about the following scenarios:

a) Xen in-tree build, Xen >= 4.9
b) Xen in-tree build, Xen < 4.9
c) build out-of-Xen-tree

combined with any of:

1) no Xen installed on build machine
2) Xen >= 4.9 installed
3) Xen < 4.9 installed

1) + c) is not supported, all other combinations should work.

I suggest the following modifications of my patch:

- keep the test program for detection of Xen 4.9
- scan the extra ldflags for special mentioning of tools/libxc
  to detect Xen in-tree build < 4.9 (will detect 4.9, too, but
  this is no problem), set xen_in_tree_old if found
- if xen_in_tree_old found, don't use pkg-config for Xen version
  detection and flags
- otherwise try pkg-config first

This should cover all cases we need.


Juergen

  reply	other threads:[~2017-03-27  5:45 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-24 17:20 [Qemu-devel] [PATCH RESEND] xen: limit pkg-config to PKG_CONFIG_PATH for xen libraries Paul Durrant
2017-03-24 18:44 ` Juergen Gross
2017-03-24 19:11   ` Stefano Stabellini
2017-03-24 19:17     ` Paul Durrant
2017-03-24 19:34       ` Paul Durrant
2017-03-27  5:45         ` Juergen Gross [this message]
2017-03-27  8:01           ` Paul Durrant

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=f18632d1-dba1-084d-893c-aca6176754b6@suse.com \
    --to=jgross@suse.com \
    --cc=Paul.Durrant@citrix.com \
    --cc=anthony.perard@citrix.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).