Patchwork [v5,1/2] qemu: Add a config option for GlusterFS as block backend

login
register
mail settings
Submitter Bharata B Rao
Date Aug. 8, 2012, 8:52 a.m.
Message ID <20120808085248.GA16508@in.ibm.com>
Download mbox | patch
Permalink /patch/175885/
State New
Headers show

Comments

Bharata B Rao - Aug. 8, 2012, 8:52 a.m.
On Tue, Aug 07, 2012 at 08:15:03PM +0000, Blue Swirl wrote:
> On Tue, Aug 7, 2012 at 8:00 AM, Bharata B Rao
> <bharata@linux.vnet.ibm.com> wrote:
> > qemu: Add a config option for GlusterFS as block backend
> >
> > From: Bharata B Rao <bharata@linux.vnet.ibm.com>
> >
> > GlusterFS support in QEMU depends on libgfapi, libgfrpc and
> > libgfxdr provided by GlusterFS.
> >
> > Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
> > ---
> >
> >  configure |   34 ++++++++++++++++++++++++++++++++++
> >  1 files changed, 34 insertions(+), 0 deletions(-)
> >
> >
> > diff --git a/configure b/configure
> > index 027a718..5bcf6d5 100755
> > --- a/configure
> > +++ b/configure
> > @@ -824,6 +824,10 @@ for opt do
> >    ;;
> >    --disable-guest-agent) guest_agent="no"
> >    ;;
> > +  --disable-glusterfs) glusterfs="no"
> 
> This is the first use of $glusterfs. Please define the default value,
> the rationale is given at the start of configure:
> # Default value for a variable defining feature "foo".
> #  * foo="no"  feature will only be used if --enable-foo arg is given
> #  * foo=""    feature will be searched for, and if found, will be used
> #              unless --disable-foo is given
> #  * foo="yes" this value will only be set by --enable-foo flag.
> #              feature will searched for,
> #              if not found, configure exits with error
> 
> I think "" would match other features.

The current behaviour matches foo="", but its always better to explicitly
specify that. I am including the changed 1/2 patch here since its a very
small change. If maintainers want the changed patch to come out afresh, I can
spin out a new v6.

Regards,
Bharata.

qemu: Add a config option for GlusterFS as block backend

From: Bharata B Rao <bharata@linux.vnet.ibm.com>

GlusterFS support in QEMU depends on libgfapi, libgfrpc and
libgfxdr provided by GlusterFS.

Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
---

 configure |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

Patch

diff --git a/configure b/configure
index 280726c..adbc6b7 100755
--- a/configure
+++ b/configure
@@ -195,6 +195,7 @@  zlib="yes"
 guest_agent="yes"
 libiscsi=""
 coroutine=""
+glusterfs=""
 
 # parse CC options first
 for opt do
@@ -824,6 +825,10 @@  for opt do
   ;;
   --disable-guest-agent) guest_agent="no"
   ;;
+  --disable-glusterfs) glusterfs="no"
+  ;;
+  --enable-glusterfs) glusterfs="yes"
+  ;;
   *) echo "ERROR: unknown option $opt"; show_help="yes"
   ;;
   esac
@@ -1112,6 +1117,8 @@  echo "  --disable-guest-agent    disable building of the QEMU Guest Agent"
 echo "  --enable-guest-agent     enable building of the QEMU Guest Agent"
 echo "  --with-coroutine=BACKEND coroutine backend. Supported options:"
 echo "                           gthread, ucontext, sigaltstack, windows"
+echo "  --enable-glusterfs       enable GlusterFS backend"
+echo "  --disable-glusterfs      disable GlusterFS backend"
 echo ""
 echo "NOTE: The object files are built at the place where configure is launched"
 exit 1
@@ -2277,6 +2284,29 @@  EOF
   fi
 fi
 
+##########################################
+# glusterfs probe
+if test "$glusterfs" != "no" ; then
+  cat > $TMPC <<EOF
+#include <glusterfs/api/glfs.h>
+int main(void) {
+    (void) glfs_new("volume");
+    return 0;
+}
+EOF
+  glusterfs_libs="-lgfapi -lgfrpc -lgfxdr"
+  if compile_prog "" "$glusterfs_libs" ; then
+    glusterfs=yes
+    libs_tools="$glusterfs_libs $libs_tools"
+    libs_softmmu="$glusterfs_libs $libs_softmmu"
+  else
+    if test "$glusterfs" = "yes" ; then
+      feature_not_found "GlusterFS backend support"
+    fi
+    glusterfs=no
+  fi
+fi
+
 #
 # Check for xxxat() functions when we are building linux-user
 # emulator.  This is done because older glibc versions don't
@@ -3102,6 +3132,7 @@  echo "OpenGL support    $opengl"
 echo "libiscsi support  $libiscsi"
 echo "build guest agent $guest_agent"
 echo "coroutine backend $coroutine_backend"
+echo "GlusterFS support $glusterfs"
 
 if test "$sdl_too_old" = "yes"; then
 echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -3439,6 +3470,10 @@  if test "$has_environ" = "yes" ; then
   echo "CONFIG_HAS_ENVIRON=y" >> $config_host_mak
 fi
 
+if test "$glusterfs" = "yes" ; then
+  echo "CONFIG_GLUSTERFS=y" >> $config_host_mak
+fi
+
 # USB host support
 case "$usb" in
 linux)