[Top][All Lists]

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

Re: [Qemu-devel] [PATCH RESEND] xen: limit pkg-config to PKG_CONFIG_PATH

From: Juergen Gross
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
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

On 24/03/17 20:34, Paul Durrant wrote:
>> -----Original Message-----
>> From: Qemu-devel [mailto:qemu-devel-
>> address@hidden On Behalf Of Paul Durrant
>> Sent: 24 March 2017 19:18
>> To: 'Stefano Stabellini' <address@hidden>; Juergen Gross
>> <address@hidden>
>> Cc: Anthony Perard <address@hidden>; xen-
>> address@hidden; address@hidden
>> Subject: Re: [Qemu-devel] [PATCH RESEND] xen: limit pkg-config to
>> PKG_CONFIG_PATH for xen libraries
>>> -----Original Message-----
>>> From: Stefano Stabellini [mailto:address@hidden
>>> Sent: 24 March 2017 19:12
>>> To: Juergen Gross <address@hidden>
>>> Cc: Paul Durrant <address@hidden>; address@hidden;
>> xen-
>>> address@hidden; Anthony Perard
>> <address@hidden>;
>>> Stefano Stabellini <address@hidden>
>>> 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
>>> 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 <address@hidden>
>>> 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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]