[bitc-dev] Build Problem with DoxyLexer.l
James Graves
ansible at xnet.com
Mon Feb 20 18:31:02 EST 2006
On Mon, Feb 20, 2006 at 05:27:20PM -0500, Jonathan S. Shapiro wrote:
> What architecture are you compiling for?
32-bit x86.
> On our machines, we are using flex 2.5.4. Since your version is later
> I'm wondering if something got broken in later versions of flex. Looking
> at the output being generated here, yy_push_state is definitely not
> defined twice by my flex.
>
> Since the highest version of flex known to FSF is flex-2.5.4a, I find
> the "2.5.31" version number a bit suspicious...
The 2.5.4a release is from 1997, BTW. I don't know where exactly the
2.5.31 upstream is coming from in Debian.
It looks like they are deliberately breaking backwards compatibility
with the newer versions of flex. There is an old-flex package I can
try, which is based on the 2.5.4a release.
Here's the /usr/share/doc/flex/NEWS.Debian.gz file for the recent
version:
flex (2.5.31-17) unstable; urgency=low
* This version of Flex is a major upgrade from previous versions. There
have been extensive changes. These changes require source changes in
lex input files. The new direction flex is taking is to incorporate
new functionality at the expense of POSIX or backward
compatibility. This can also be considered part of the gcc migration
process; flex has been updated (the buggy, rickety set of patches
required to make it work with gcc was dumped in favour of a well
engineered upstream migration).
* Flex scanners are now reenterant, you may have multiple scanners in
the same program with differing sets of defaults, and they play
nicer with modern C and C++ compilers. C++ scanners are compatible
with recent c++ compilers (conform to ANSI C++, gcc 3.2), supports
bison variables yylval and yylloc. Some variables have been
renamed. Flex generates C99 defs now, see YY_TRADITIONAL_FUNC_DEFS.
yylineno is present in all scanners. yylineno is per-buffer in
reentrant scanners. Flex tries its best to output only the relevant
portions of the skeleton when generating a scanner, thus avoiding as
much conditional compilation as possible
* The signature of all functions has changed. flex has new command line
options, and option parsing has changed (now also supports POSIX
conventions optionally). Handles POSIXLY_CORRECT environment
variable. Various i18n translations are included in the
distribution. Flex now works with recent bison versions. The new
scanners do not polllute the global name space, and thus macros that
used to be available to user code are no longer present.
* Flex has gained an extensive new test suite run at build time to test
for regressions.
* The flip side is that Flex no longer conforms to the POSIX lex
behaviour, and the scanners require conforming implementations when
flex is used in ANSI C mode. Flex has broken backwards
compatibility. This is not a bug, but done deliberately, by
design.
* The package flex-old provides the same behaviour as version 2.5.4a of
Flex.
* Please make sure you are prepared for these changes in Flex
before continuing with its upgrade.
-- Manoj Srivastava <srivasta at debian.org> Fri, 31 Oct 2003 21:53:16 -0600
James Graves
More information about the bitc-dev
mailing list