[master] 791706d Disable the PCRE JIT compiler by default
Tollef Fog Heen
tfheen at varnish-cache.org
Tue Sep 4 08:18:08 CEST 2012
commit 791706d8e535fe1573a6ea5cd515113ddacbac52
Author: Tollef Fog Heen <tfheen at varnish-software.com>
Date: Tue Sep 4 08:16:50 2012 +0200
Disable the PCRE JIT compiler by default
The JIT compiler is broken on some versions of PCRE, at least on i386,
so disable it by default. It can be enabled using --enable-pcre-jit
to configure.
Fixes #1191
diff --git a/configure.ac b/configure.ac
index e831b31..87fdaf6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -531,6 +531,17 @@ fi
AC_DEFINE_UNQUOTED([VCC_CC],"$VCC_CC",[C compiler command line for VCL code])
+# --enable-pcre-jit
+AC_ARG_ENABLE(pcre-jit,
+ AS_HELP_STRING([--enable-pcre-jit],
+ [use the PCRE JIT compiler (default is NO)]),
+ ,
+ [enable_pcre_jit=no])
+
+if test "$enable_pcre_jit" = yes; then
+ AC_DEFINE([USE_PCRE_JIT],[1],[use the PCRE JIT compiler])
+fi
+
# Stupid automake needs this
VTC_TESTS="$(cd $srcdir/bin/varnishtest && echo tests/*.vtc)"
AC_SUBST(VTC_TESTS)
diff --git a/lib/libvarnish/vre.c b/lib/libvarnish/vre.c
index 2fce5c7..c7eccfa 100644
--- a/lib/libvarnish/vre.c
+++ b/lib/libvarnish/vre.c
@@ -37,8 +37,10 @@
#include "vre.h"
-#ifndef PCRE_STUDY_JIT_COMPILE
-#define PCRE_STUDY_JIT_COMPILE 0
+#if USE_PCRE_JIT
+#define VRE_STUDY_JIT_COMPILE PCRE_STUDY_JIT_COMPILE
+#else
+#define VRE_STUDY_JIT_COMPILE 0
#endif
#if PCRE_MAJOR < 8 || (PCRE_MAJOR == 8 && PCRE_MINOR < 20)
@@ -78,7 +80,7 @@ VRE_compile(const char *pattern, int options,
VRE_free(&v);
return (NULL);
}
- v->re_extra = pcre_study(v->re, PCRE_STUDY_JIT_COMPILE, errptr);
+ v->re_extra = pcre_study(v->re, VRE_STUDY_JIT_COMPILE, errptr);
if (*errptr != NULL) {
VRE_free(&v);
return (NULL);
More information about the varnish-commit
mailing list