vlog: Logging option '--syslog-target' needs one argument.
[cascardo/ovs.git] / tests / atlocal.in
index 60f3dbf..a3ddde4 100644 (file)
@@ -52,10 +52,24 @@ fi
 # Enable malloc debugging features.
 case `uname` in
 Linux)
-    MALLOC_CHECK_=2
-    MALLOC_PERTURB_=165
-    export MALLOC_CHECK_
-    export MALLOC_PERTURB_
+    MALLOC_PERTURB_=165; export MALLOC_PERTURB_
+
+    # Before glibc 2.11, the feature enabled by MALLOC_CHECK_ was not
+    # thread-safe.  See https://bugzilla.redhat.com/show_bug.cgi?id=585674 and
+    # in particular the patch attached there, which was applied to glibc CVS as
+    # "Restore locking in free_check." between 1.11 and 1.11.1.
+    vswitchd=$abs_top_builddir/vswitchd/ovs-vswitchd
+    glibc=`ldd $vswitchd | sed -n 's/^ libc\.[^ ]* => \([^ ]*\) .*/\1/p'`
+    glibc_version=`$glibc | sed -n '1s/.*version \([0-9]\{1,\}\.[0-9]\{1,\}\).*/\1/p'`
+    case $glibc_version in
+        2.[0-9] | 2.1[01]) mcheck=disabled ;;
+        *) mcheck=enabled ;;
+    esac
+    if test $mcheck = enabled; then
+        MALLOC_CHECK_=2; export MALLOC_CHECK_
+    else
+        echo >&2 "glibc $glibc_version detected, disabling memory checking"
+    fi
     ;;
 FreeBSD)
     case `uname -r` in