[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] configure: use pkg-config for obtaining xen version
> -----Original Message----- > From: Juergen Gross [mailto:jgross@xxxxxxxx] > Sent: 27 March 2017 08:43 > To: qemu-devel@xxxxxxxxxx; xen-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Anthony Perard <anthony.perard@xxxxxxxxxx>; kraxel@xxxxxxxxxx; > sstabellini@xxxxxxxxxx; Paul Durrant <Paul.Durrant@xxxxxxxxxx>; Juergen > Gross <jgross@xxxxxxxx> > Subject: [PATCH v2] configure: use pkg-config for obtaining xen version > > 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. > > If configure is being called with dedicated flags for the Xen libraries > use those instead of the pkg-config output. This will avoid breaking > an in-tree Xen build of an old Xen version while a new Xen version is > installed on the build machine: pkg-config would pick up the installed > Xen config files as the Xen tree wouldn't contain any of them. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- > V2: - use pkg-config only if no Xen library paths have been specified via > --extra-ldflags > - keep test program for detecting Xen 4.9 This all looks plausible but it doesn't seem to be working for me when trying to build 4.8. I'm still getting a xen ctrl version of 40900... still trying to figure out why. Also, the whitespace changes later on in the patch should probably be split out. Paul > --- > configure | 155 ++++++++++++++++++++++++++++++++++-------------------- > -------- > 1 file changed, 86 insertions(+), 69 deletions(-) > > diff --git a/configure b/configure > index aabf098..c34b025 100755 > --- a/configure > +++ b/configure > @@ -1962,30 +1962,46 @@ fi > # xen probe > > if test "$xen" != "no" ; then > - xen_libs="-lxenstore -lxenctrl -lxenguest" > - xen_stable_libs="-lxenforeignmemory -lxengnttab -lxenevtchn" > + # Check whether Xen library path is specified via --extra-ldflags to avoid > + # overriding this setting with pkg-config output. If not, try pkg-config > + # to obtain all needed flags. > > - # First we test whether Xen headers and libraries are available. > - # If no, we are done and there is no Xen support. > - # If yes, more tests are run to detect the Xen version. > + if ! echo $EXTRA_LDFLAGS | grep tools/libxc > /dev/null && \ > + $pkg_config --exists xencontrol ; then > + xen_ctrl_version="$(printf '%d%02d%02d' \ > + $($pkg_config --modversion xencontrol | sed 's/\./ /g') )" > + xen=yes > + xen_pc="xencontrol xenstore xenguest xenforeignmemory xengnttab" > + xen_pc="$xen_pc xenevtchn xendevicemodel" > + QEMU_CFLAGS="$QEMU_CFLAGS $($pkg_config --cflags $xen_pc)" > + libs_softmmu="$($pkg_config --libs $xen_pc) $libs_softmmu" > + LDFLAGS="$($pkg_config --libs $xen_pc) $LDFLAGS" > + else > > - # Xen (any) > - cat > $TMPC <<EOF > + xen_libs="-lxenstore -lxenctrl -lxenguest" > + xen_stable_libs="-lxenforeignmemory -lxengnttab -lxenevtchn" > + > + # First we test whether Xen headers and libraries are available. > + # If no, we are done and there is no Xen support. > + # If yes, more tests are run to detect the Xen version. > + > + # Xen (any) > + cat > $TMPC <<EOF > #include <xenctrl.h> > int main(void) { > return 0; > } > EOF > - if ! compile_prog "" "$xen_libs" ; then > - # Xen not found > - if test "$xen" = "yes" ; then > - feature_not_found "xen" "Install xen devel" > - fi > - xen=no > + if ! compile_prog "" "$xen_libs" ; then > + # Xen not found > + if test "$xen" = "yes" ; then > + feature_not_found "xen" "Install xen devel" > + fi > + xen=no > > - # Xen unstable > - elif > - cat > $TMPC <<EOF && > + # Xen unstable > + elif > + cat > $TMPC <<EOF && > #undef XC_WANT_COMPAT_DEVICEMODEL_API > #define __XEN_TOOLS__ > #include <xendevicemodel.h> > @@ -1998,13 +2014,13 @@ int main(void) { > return 0; > } > EOF > - compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel" > - then > - xen_stable_libs="$xen_stable_libs -lxendevicemodel" > - xen_ctrl_version=40900 > - xen=yes > - elif > - cat > $TMPC <<EOF && > + compile_prog "" "$xen_libs $xen_stable_libs -lxendevicemodel" > + then > + xen_stable_libs="$xen_stable_libs -lxendevicemodel" > + xen_ctrl_version=40900 > + 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. > @@ -2054,12 +2070,12 @@ int main(void) { > return 0; > } > EOF > - compile_prog "" "$xen_libs $xen_stable_libs" > - then > - xen_ctrl_version=40800 > - xen=yes > - elif > - cat > $TMPC <<EOF && > + compile_prog "" "$xen_libs $xen_stable_libs" > + then > + xen_ctrl_version=40800 > + 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. > @@ -2105,12 +2121,12 @@ int main(void) { > return 0; > } > EOF > - compile_prog "" "$xen_libs $xen_stable_libs" > - then > - xen_ctrl_version=40701 > - xen=yes > - elif > - cat > $TMPC <<EOF && > + compile_prog "" "$xen_libs $xen_stable_libs" > + then > + xen_ctrl_version=40701 > + xen=yes > + elif > + cat > $TMPC <<EOF && > #include <xenctrl.h> > #include <stdint.h> > int main(void) { > @@ -2120,14 +2136,14 @@ int main(void) { > return 0; > } > EOF > - compile_prog "" "$xen_libs" > - then > - xen_ctrl_version=40700 > - xen=yes > + compile_prog "" "$xen_libs" > + then > + xen_ctrl_version=40700 > + xen=yes > > - # Xen 4.6 > - elif > - cat > $TMPC <<EOF && > + # Xen 4.6 > + elif > + cat > $TMPC <<EOF && > #include <xenctrl.h> > #include <xenstore.h> > #include <stdint.h> > @@ -2148,14 +2164,14 @@ int main(void) { > return 0; > } > EOF > - compile_prog "" "$xen_libs" > - then > - xen_ctrl_version=40600 > - xen=yes > + compile_prog "" "$xen_libs" > + then > + xen_ctrl_version=40600 > + xen=yes > > - # Xen 4.5 > - elif > - cat > $TMPC <<EOF && > + # Xen 4.5 > + elif > + cat > $TMPC <<EOF && > #include <xenctrl.h> > #include <xenstore.h> > #include <stdint.h> > @@ -2175,13 +2191,13 @@ int main(void) { > return 0; > } > EOF > - compile_prog "" "$xen_libs" > - then > - xen_ctrl_version=40500 > - xen=yes > + compile_prog "" "$xen_libs" > + then > + xen_ctrl_version=40500 > + xen=yes > > - elif > - cat > $TMPC <<EOF && > + elif > + cat > $TMPC <<EOF && > #include <xenctrl.h> > #include <xenstore.h> > #include <stdint.h> > @@ -2200,24 +2216,25 @@ int main(void) { > return 0; > } > EOF > - compile_prog "" "$xen_libs" > - then > - xen_ctrl_version=40200 > - xen=yes > + compile_prog "" "$xen_libs" > + then > + xen_ctrl_version=40200 > + xen=yes > > - else > - if test "$xen" = "yes" ; then > - feature_not_found "xen (unsupported version)" \ > - "Install a supported xen (xen 4.2 or newer)" > + else > + if test "$xen" = "yes" ; then > + feature_not_found "xen (unsupported version)" \ > + "Install a supported xen (xen 4.2 or newer)" > + fi > + xen=no > fi > - xen=no > - fi > > - if test "$xen" = yes; then > - if test $xen_ctrl_version -ge 40701 ; then > - libs_softmmu="$xen_stable_libs $libs_softmmu" > + if test "$xen" = yes; then > + if test $xen_ctrl_version -ge 40701 ; then > + libs_softmmu="$xen_stable_libs $libs_softmmu" > + fi > + libs_softmmu="$xen_libs $libs_softmmu" > fi > - libs_softmmu="$xen_libs $libs_softmmu" > fi > fi > > -- > 2.10.2 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |