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?)
This commit is contained in:
Lukas Tribus 2013-04-15 00:41:40 +02:00 committed by Willy Tarreau
parent 667c2a3d2a
commit d9bdccda55

View File

@ -292,13 +292,20 @@ void display_build_opts()
#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