config/pcre: Improved support for cross-compiling

This commit changes the logic used to determine if pcre_jit_exec is
available from a run-time to a compile-time check.
pull/5356/head
Jeff Lucovsky 6 years ago committed by Victor Julien
parent ff29345527
commit 3e8db21ef3

@ -793,32 +793,33 @@ return 0;
if test "x$pcre_jit_works" = "xyes"; then
AC_MSG_CHECKING(for PCRE JIT EXEC support usability)
AC_RUN_IFELSE([AC_LANG_PROGRAM([[
#include <pcre.h>
#include <string.h>
]],
[[
const char *error;
int err_offset;
pcre *re = pcre_compile("(a|b|c|d)", 0, &error, &err_offset,NULL);
pcre_extra *study = pcre_study(re, PCRE_STUDY_JIT_COMPILE, &error);
if (study == NULL)
exit(EXIT_FAILURE);
pcre_jit_stack *stack = pcre_jit_stack_alloc(32*1024,40*1024);
if (stack == 0)
exit(EXIT_FAILURE);
int ret = pcre_jit_exec(re, study, "apple", 5, 0, 0, NULL, 0, stack);
if (ret != 0)
exit(EXIT_FAILURE);
exit(EXIT_SUCCESS);
]])],[ pcre_jit_exec_works=yes ],[:]
)
if test "x$pcre_jit_exec_works" != "xyes"; then
AC_MSG_CHECKING(for PCRE JIT exec availability)
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[
#include <pcre.h>
#include <string.h>
],
[
const char *error;
int err_offset;
pcre *re = pcre_compile("(a|b|c|d)", 0, &error, &err_offset,NULL);
pcre_extra *study = pcre_study(re, PCRE_STUDY_JIT_COMPILE, &error);
if (study == NULL)
exit(EXIT_FAILURE);
pcre_jit_stack *stack = pcre_jit_stack_alloc(32*1024,40*1024);
if (stack == 0)
exit(EXIT_FAILURE);
int ret = pcre_jit_exec(re, study, "apple", 5, 0, 0, NULL, 0, stack);
exit(ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
])],
[pcre_jit_exec_available="yes" ],
[pcre_jit_exec_available="no" ])
if test "x$pcre_jit_exec_available" != "xyes"; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
AC_DEFINE([PCRE_HAVE_JIT_EXEC], [1], [Pcre with JIT compiler support enabled supporting pcre_jit_exec])
AC_DEFINE([PCRE_HAVE_JIT_EXEC], [1], [PCRE with JIT compiler support enabled supporting pcre_jit_exec])
fi
else
AC_MSG_RESULT(no)

Loading…
Cancel
Save