| Gregory (Grisha) Trubetskoy 2005-08-18, 5:47 pm |
|
OK, here is the flex scoop - as the the docs point out, anything before
2.5.31 is not reentrant and I think even uses a slightly different
interface so older flex won't even process the psp_parser.l file
correctly.
Looking at Fedora Core 4, it still has flex 2.5.4a. (Note that 2.5.31 >
2.5.4 because 31 > 4 - I for a while had trouble seeing that for some
reason), so the new flex is still not commonplace.
So until reentrant flex becomes commonplace, the solution was to include
a pre-parsed psp_parser.c so that you woudln't need flex at all to compile
mod_python. Looks like this still should be the case.
The ./configure should just print a warning that if flex is not found or
too old, should you need to rebuild psp_parser.c you will need to get the
right version of flex.
Grisha
On Thu, 18 Aug 2005, Jim Gallacher wrote:
> Graham Dumpleton wrote:
>
> This is explained in the html docs, but didn't make it into the README. I
> wasn't sure if the WARNING was the right idea,
>
>
>
> See doc-html/inst-configure.html:
>
> """ Attempts to locate flex and determine its version. If flex cannot be
> found in your PATH configure will fail. If the wrong version is found
> configure will generate a warning. You can generally ignore this warning
> unless you need to re-create src/psp_parser.c.
>
> The parser used by psp (See 4.9) is written in C generated using flex. This
> requires a reentrant version of flex which at this time is 2.5.31. Most
> platforms however ship with version 2.5.4 which is not suitable, so a
> pre-generated copy of psp_parser.c is included with the source. If you do
> need to compile src/psp_parser.c you must get the correct flex version.
>
> If the first flex binary in the path is not suitable or not the one desired
> you can specify an alternative location with the --with-flex option, e.g:
>
> $ ./configure --with-flex=/usr/local/bin/flex
>
> """
>
> I'll copy this into the README as well.
>
> In 3.1.x the path to flex was hard coded to /usr/local/bin, which caused
> compilation to fail and required the user to edit the Makefile manually.
> Other than the detection of the flex path, the behaviour is the same as
> 3.1.x. The previous warning about needing the correct flex version was just a
> comment in the Makefile. Any suggestions on how to make this clearer are
> welcome.
>
>
> No, see html docs snippet above.
>
> No time to look at the rest. Will comment tonight.
>
> Jim
>
>
|