Autoconf test for incompatible version of flex
This patch adds an autoconf test to check for the new incompatible version of
flex.
--- programs.m4.~1.12.~ 2003-05-06 19:33:52.000000000 -0400
+++ programs.m4 2003-07-04 20:45:47.000000000 -0400
@@ -30,6 +30,10 @@
pgac_broken_flex=$pgac_candidate
continue
fi
+ if $pgac_candidate --version | grep ' 2\.5\.[[3-9][0-9]]$' >/dev/null 2>&1; then
+ pgac_new_flex=$pgac_candidate
+ continue
+ fi
pgac_cv_path_flex=$pgac_candidate
break 2
@@ -49,6 +53,12 @@
*** The Flex version 2.5.3 you have at $pgac_broken_flex contains a bug. You
*** should get version 2.5.4 or later.])
fi
+ if test -n "$pgac_new_flex"; then
+ AC_MSG_WARN([
+*** The Flex version you have at $pgac_new_flex is a version PostgreSQL does
+*** not support. There were major incompatible API changes in this release of
+*** Flex. To compile PostgreSQL you should get version no later than 2.5.4a.])
+ fi
AC_MSG_WARN([
*** Without Flex you will not be able to build PostgreSQL from CVS or
--
greg
Greg Stark <gsstark@mit.edu> writes:
This patch adds an autoconf test to check for the new incompatible version of
flex.
It seems unlikely that we should cause configure to reject all future
versions of flex... .31 may be broken but I think we should assume that
they'l fix it.
regards, tom lane
Tom Lane <tgl@sss.pgh.pa.us> writes:
Greg Stark <gsstark@mit.edu> writes:
This patch adds an autoconf test to check for the new incompatible version of
flex.It seems unlikely that we should cause configure to reject all future
versions of flex... .31 may be broken but I think we should assume that
they'l fix it.
I inquired about this problem elsewhere, it's not a bug, it's an API change.
Until postgres "ports" to the new API it won't work with newer versions of
Flex.
From the Debian maintainer of the flex package
(http://bugs.debian.org/199776):
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 versionsThis is not a single short lived change.
I understand that this requires all packages using lex to
massage their lexers to conform to the new behaviour of flex; but the
gains in reduced complexity of the scanner and reentrancy and
standards compliance are well worth it.
--
greg
Greg Stark <gsstark@mit.edu> writes:
I inquired about this problem elsewhere, it's not a bug, it's an API change.
Until postgres "ports" to the new API it won't work with newer versions of
Flex.
If their intent was to break things, why wasn't this called flex 3.0?
Or at least 2.6? Calling it a minor version bump has to violate a
truth-in-advertising law or two.
regards, tom lane
Tom Lane <tgl@sss.pgh.pa.us> writes:
Greg Stark <gsstark@mit.edu> writes:
I inquired about this problem elsewhere, it's not a bug, it's an API change.
Until postgres "ports" to the new API it won't work with newer versions of
Flex.If their intent was to break things, why wasn't this called flex 3.0?
Or at least 2.6? Calling it a minor version bump has to violate a
truth-in-advertising law or two.
Or something else like "glex", since it doesn't really look much like flex any
more... I don't know whether it will be possible to port to the new API and
still have postgresql compile with the old API.
Incidentally, for anyone else compiling on debian there's a flex-old package.
I can't install it because of some other dependencies, so i just reverted to
the old flex.
--
greg
[ followup to old message ]
Greg Stark <gsstark@mit.edu> writes:
This patch adds an autoconf test to check for the new incompatible version of
flex.
Peter E. claims that CVS tip does work with flex 2.5.31 --- so we
shouldn't need this patch anymore.
regards, tom lane
Yes, that was my conclusion too.
---------------------------------------------------------------------------
Tom Lane wrote:
[ followup to old message ]
Greg Stark <gsstark@mit.edu> writes:
This patch adds an autoconf test to check for the new incompatible version of
flex.Peter E. claims that CVS tip does work with flex 2.5.31 --- so we
shouldn't need this patch anymore.regards, tom lane
---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend
--
Bruce Momjian | http://candle.pha.pa.us
pgman@candle.pha.pa.us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073