BUG/MINOR: jit: don't rely on USE flag to detect support
Since ea68d36 we show whether JIT is enabled, based on the USE-flag
(USE_PCRE_JIT). This is too naive; libpcre may be built without JIT
support (which is the default).
Fix this by calling pcre_config(), which has the accurate information
we are looking for.
Example of a libpcre without JIT support after this patch:
> ./haproxy -vv | grep PCRE
> OPTIONS = USE_STATIC_PCRE=1 USE_PCRE_JIT=1
> Built with PCRE version : 8.32 2012-11-30
> PCRE library supports JIT : no (libpcre build without JIT?)
diff --git a/src/haproxy.c b/src/haproxy.c
index d4c1189..da7a625 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -292,13 +292,20 @@
#ifdef USE_PCRE
printf("Built with PCRE version : %s", pcre_version());
- printf("\nPCRE library supports JIT : "
-#ifndef USE_PCRE_JIT
- "no (USE_PCRE_JIT not set)"
+ printf("\nPCRE library supports JIT : ");
+#ifdef USE_PCRE_JIT
+ {
+ int r;
+ pcre_config(PCRE_CONFIG_JIT, &r);
+ if (r)
+ printf("yes");
+ else
+ printf("no (libpcre build without JIT?)");
+ }
#else
- "yes"
+ printf("no (USE_PCRE_JIT not set)");
#endif
- "\n");
+ printf("\n");
#else
printf("Built without PCRE support (using libc's regex instead)\n");
#endif