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
next prev parent 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).