Re: [pcre-dev] pcretest in 8.20

Top Page
Delete this message
Author: Philip Hazel
Date:  
To: xgl001
CC: pcre-dev
Subject: Re: [pcre-dev] pcretest in 8.20
On Thu, 3 Nov 2011, xgl001 wrote:

> A minor issue is that pcretest.c does not build without SUPPORT_JIT
> having been defined.


It does for me. Several of my standard tests that I run before release
do builds without JIT. I have just tried manually, and it happily builds
like this:

$ ./pcretest -C
PCRE version 8.20 2011-10-21
Compiled with
  UTF-8 support
  Unicode properties support
  No just-in-time compiler support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack         


> It gets unresolved externals in linkage for the new JIT methods that
> were not included when the base library was built.


What environment are you running in? What were your other configuration
options? Perhaps there's some odd interaction that is causing this.

> Pcretest.c has one #ifdef condition for indicating SUPPORT_JIT but more may be needed.
> Perhaps something like this DIFF would suffice:
> ============================
> 588a589
> > #ifdef SUPPORT_JIT
> 592a594
> > #endif
> 2503a2506
> > #ifdef SUPPORT_JIT
> 2511a2515
> > #endif
> 3093a3098
> > #ifdef SUPPORT_JIT
> 3094a3100
> > #endif
> ============================


The design of the JIT interface is supposed to be such that a program
does not need to know whether JIT is available or not; dummy functions
are provided that do nothing when JIT support is not compiled. Something
has clearly gone wrong with this in your environment. It would be good
to figure out what it is.

Did you have a previous version of PCRE installed? If you try to compile
the 8.20 pcretest.c with a previous version of PCRE, it might behave
like that.

Philip

--
Philip Hazel