Patchwork [V3] Add --disable-bridge-helper configure flag

login
register
mail settings
Submitter Fabien Chouteau
Date July 11, 2012, 2:17 p.m.
Message ID <1342016228-2822-1-git-send-email-chouteau@adacore.com>
Download mbox | patch
Permalink /patch/170474/
State New
Headers show

Comments

Fabien Chouteau - July 11, 2012, 2:17 p.m.
Bridge helper uses ioctl's not available on old Linux versions, we add
this flag to disable the build.

Signed-off-by: Fabien Chouteau <chouteau@adacore.com>
---
 Makefile  |    2 +-
 configure |   42 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 1 deletion(-)

Patch

diff --git a/Makefile b/Makefile
index 34d6a9e..c50ec5e 100644
--- a/Makefile
+++ b/Makefile
@@ -37,7 +37,7 @@  $(call set-vpath, $(SRC_PATH))
 
 LIBS+=-lz $(LIBS_TOOLS)
 
-HELPERS-$(CONFIG_LINUX) = qemu-bridge-helper$(EXESUF)
+HELPERS-$(CONFIG_BRIDGE_HELPER) = qemu-bridge-helper$(EXESUF)
 
 ifdef BUILD_DOCS
 DOCS=qemu-doc.html qemu-tech.html qemu.1 qemu-img.1 qemu-nbd.8 QMP/qmp-commands.txt
diff --git a/configure b/configure
index 500fe24..0a3b990 100755
--- a/configure
+++ b/configure
@@ -195,6 +195,7 @@  zlib="yes"
 guest_agent="yes"
 libiscsi=""
 coroutine=""
+bridge_helper=""
 
 # parse CC options first
 for opt do
@@ -824,6 +825,10 @@  for opt do
   ;;
   --disable-guest-agent) guest_agent="no"
   ;;
+  --enable-bridge-helper) bridge_helper="yes"
+  ;;
+  --disable-bridge-helper) bridge_helper="no"
+  ;;
   *) echo "ERROR: unknown option $opt"; show_help="yes"
   ;;
   esac
@@ -1110,6 +1115,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-bridge-helper   enable building of the qemu-bridge-helper"
+echo "  --disable-bridge-helper  disable building of the qemu-bridge-helper"
 echo ""
 echo "NOTE: The object files are built at the place where configure is launched"
 exit 1
@@ -2869,6 +2876,37 @@  if compile_prog "" "" ; then
     has_environ=yes
 fi
 
+########################################
+# check ioctl for qemu-bridge-helper
+
+if  test "$bridge_helper" != "no" \
+    && test "$linux" = "yes"     \
+    && test "$static" = "no";
+then
+    cat > $TMPC << EOF
+#include <linux/sockios.h>
+int main(void){
+    /* Check that SIOCBRADDIF is defined */
+    return SIOCBRADDIF;
+}
+EOF
+
+    if compile_prog "" "" ; then
+        bridge_helper="yes"
+    else
+        if test "$bridge_helper" = "yes"; then
+            echo
+            echo "Error: linux/sockios.h check failed"
+            echo "Cannot compile qemu-bridge-helper."
+            echo
+            exit 1
+        else
+            echo "Disabling qemu-bridge-helper due to missing ioctl support"
+            bridge_helper="no"
+        fi
+    fi
+fi
+
 ##########################################
 # End of CC checks
 # After here, no more $cc or $ld runs
@@ -3896,6 +3934,10 @@  if test "$tcg_interpreter" = "yes" ; then
   echo "CONFIG_TCI_DIS=y"  >> $libdis_config_mak
 fi
 
+if test "$bridge_helper" = "yes"; then
+    echo "CONFIG_BRIDGE_HELPER=y" >> $config_host_mak
+fi
+
 case "$ARCH" in
 alpha)
   # Ensure there's only a single GP