mirror of
https://github.com/postgres/postgres.git
synced 2025-07-15 19:21:59 +03:00
Bump minimum version of Bison to 2.3
Since the retirement of some older buildfarm members, the oldest Bison that gets regular testing is 2.3. MacOS ships that version, and will continue doing so for the forseeable future because of Apple's policy regarding GPLv3. While Mac users could use a package manager to install a newer version, there is no compelling reason to force them do so at this time. Reviewed by Andres Freund Discussion: https://www.postgresql.org/message-id/1097762.1662145681@sss.pgh.pa.us
This commit is contained in:
@ -22,8 +22,8 @@ fi
|
|||||||
# PGAC_PATH_BISON
|
# PGAC_PATH_BISON
|
||||||
# ---------------
|
# ---------------
|
||||||
# Look for Bison, set the output variable BISON to its path if found.
|
# Look for Bison, set the output variable BISON to its path if found.
|
||||||
# Reject versions before 1.875 (they have bugs or capacity limits).
|
# Reject versions before 2.3 (the earliest version in the buildfarm
|
||||||
# Note we do not accept other implementations of yacc.
|
# as of 2022). Note we do not accept other implementations of yacc.
|
||||||
|
|
||||||
AC_DEFUN([PGAC_PATH_BISON],
|
AC_DEFUN([PGAC_PATH_BISON],
|
||||||
[PGAC_PATH_PROGS(BISON, bison)
|
[PGAC_PATH_PROGS(BISON, bison)
|
||||||
@ -31,11 +31,11 @@ AC_DEFUN([PGAC_PATH_BISON],
|
|||||||
if test "$BISON"; then
|
if test "$BISON"; then
|
||||||
pgac_bison_version=`$BISON --version 2>/dev/null | sed q`
|
pgac_bison_version=`$BISON --version 2>/dev/null | sed q`
|
||||||
AC_MSG_NOTICE([using $pgac_bison_version])
|
AC_MSG_NOTICE([using $pgac_bison_version])
|
||||||
if echo "$pgac_bison_version" | $AWK '{ if ([$]4 < 1.875) exit 0; else exit 1;}'
|
if echo "$pgac_bison_version" | $AWK '{ if ([$]4 < 2.3) exit 0; else exit 1;}'
|
||||||
then
|
then
|
||||||
AC_MSG_WARN([
|
AC_MSG_WARN([
|
||||||
*** The installed version of Bison, $BISON, is too old to use with PostgreSQL.
|
*** The installed version of Bison, $BISON, is too old to use with PostgreSQL.
|
||||||
*** Bison version 1.875 or later is required, but this is $pgac_bison_version.])
|
*** Bison version 2.3 or later is required, but this is $pgac_bison_version.])
|
||||||
BISON=""
|
BISON=""
|
||||||
fi
|
fi
|
||||||
# Bison >=3.0 issues warnings about %name-prefix="base_yy", instead
|
# Bison >=3.0 issues warnings about %name-prefix="base_yy", instead
|
||||||
|
6
configure
vendored
6
configure
vendored
@ -10218,14 +10218,14 @@ if test "$BISON"; then
|
|||||||
pgac_bison_version=`$BISON --version 2>/dev/null | sed q`
|
pgac_bison_version=`$BISON --version 2>/dev/null | sed q`
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: using $pgac_bison_version" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: using $pgac_bison_version" >&5
|
||||||
$as_echo "$as_me: using $pgac_bison_version" >&6;}
|
$as_echo "$as_me: using $pgac_bison_version" >&6;}
|
||||||
if echo "$pgac_bison_version" | $AWK '{ if ($4 < 1.875) exit 0; else exit 1;}'
|
if echo "$pgac_bison_version" | $AWK '{ if ($4 < 2.3) exit 0; else exit 1;}'
|
||||||
then
|
then
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
|
||||||
*** The installed version of Bison, $BISON, is too old to use with PostgreSQL.
|
*** The installed version of Bison, $BISON, is too old to use with PostgreSQL.
|
||||||
*** Bison version 1.875 or later is required, but this is $pgac_bison_version." >&5
|
*** Bison version 2.3 or later is required, but this is $pgac_bison_version." >&5
|
||||||
$as_echo "$as_me: WARNING:
|
$as_echo "$as_me: WARNING:
|
||||||
*** The installed version of Bison, $BISON, is too old to use with PostgreSQL.
|
*** The installed version of Bison, $BISON, is too old to use with PostgreSQL.
|
||||||
*** Bison version 1.875 or later is required, but this is $pgac_bison_version." >&2;}
|
*** Bison version 2.3 or later is required, but this is $pgac_bison_version." >&2;}
|
||||||
BISON=""
|
BISON=""
|
||||||
fi
|
fi
|
||||||
# Bison >=3.0 issues warnings about %name-prefix="base_yy", instead
|
# Bison >=3.0 issues warnings about %name-prefix="base_yy", instead
|
||||||
|
@ -15,10 +15,7 @@
|
|||||||
/*
|
/*
|
||||||
* Bison doesn't allocate anything that needs to live across parser calls,
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
||||||
* so we can easily have it use palloc instead of malloc. This prevents
|
* so we can easily have it use palloc instead of malloc. This prevents
|
||||||
* memory leaks if we error out during parsing. Note this only works with
|
* memory leaks if we error out during parsing.
|
||||||
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
|
||||||
* if possible, so there's not really much problem anyhow, at least if
|
|
||||||
* you're building with gcc.
|
|
||||||
*/
|
*/
|
||||||
#define YYMALLOC palloc
|
#define YYMALLOC palloc
|
||||||
#define YYFREE pfree
|
#define YYFREE pfree
|
||||||
|
@ -13,10 +13,7 @@
|
|||||||
/*
|
/*
|
||||||
* Bison doesn't allocate anything that needs to live across parser calls,
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
||||||
* so we can easily have it use palloc instead of malloc. This prevents
|
* so we can easily have it use palloc instead of malloc. This prevents
|
||||||
* memory leaks if we error out during parsing. Note this only works with
|
* memory leaks if we error out during parsing.
|
||||||
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
|
||||||
* if possible, so there's not really much problem anyhow, at least if
|
|
||||||
* you're building with gcc.
|
|
||||||
*/
|
*/
|
||||||
#define YYMALLOC palloc
|
#define YYMALLOC palloc
|
||||||
#define YYFREE pfree
|
#define YYFREE pfree
|
||||||
|
@ -219,7 +219,7 @@ $ENV{MSBFLAGS}="/m";
|
|||||||
<para>
|
<para>
|
||||||
<productname>Bison</productname> and <productname>Flex</productname> are
|
<productname>Bison</productname> and <productname>Flex</productname> are
|
||||||
required to build from Git, but not required when building from a release
|
required to build from Git, but not required when building from a release
|
||||||
file. Only <productname>Bison</productname> 1.875 or versions 2.2 and later
|
file. Only <productname>Bison</productname> versions 2.3 and later
|
||||||
will work. <productname>Flex</productname> must be version 2.5.31 or later.
|
will work. <productname>Flex</productname> must be version 2.5.31 or later.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -315,7 +315,7 @@ su - postgres
|
|||||||
are needed to build from a Git checkout, or if you changed the actual
|
are needed to build from a Git checkout, or if you changed the actual
|
||||||
scanner and parser definition files. If you need them, be sure
|
scanner and parser definition files. If you need them, be sure
|
||||||
to get <application>Flex</application> 2.5.31 or later and
|
to get <application>Flex</application> 2.5.31 or later and
|
||||||
<application>Bison</application> 1.875 or later. Other <application>lex</application>
|
<application>Bison</application> 2.3 or later. Other <application>lex</application>
|
||||||
and <application>yacc</application> programs cannot be used.
|
and <application>yacc</application> programs cannot be used.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -36,10 +36,7 @@
|
|||||||
/*
|
/*
|
||||||
* Bison doesn't allocate anything that needs to live across parser calls,
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
||||||
* so we can easily have it use palloc instead of malloc. This prevents
|
* so we can easily have it use palloc instead of malloc. This prevents
|
||||||
* memory leaks if we error out during parsing. Note this only works with
|
* memory leaks if we error out during parsing.
|
||||||
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
|
||||||
* if possible, so there's not really much problem anyhow, at least if
|
|
||||||
* you're building with gcc.
|
|
||||||
*/
|
*/
|
||||||
#define YYMALLOC palloc
|
#define YYMALLOC palloc
|
||||||
#define YYFREE pfree
|
#define YYFREE pfree
|
||||||
|
@ -103,10 +103,7 @@
|
|||||||
/*
|
/*
|
||||||
* Bison doesn't allocate anything that needs to live across parser calls,
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
||||||
* so we can easily have it use palloc instead of malloc. This prevents
|
* so we can easily have it use palloc instead of malloc. This prevents
|
||||||
* memory leaks if we error out during parsing. Note this only works with
|
* memory leaks if we error out during parsing.
|
||||||
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
|
||||||
* if possible, so there's not really much problem anyhow, at least if
|
|
||||||
* you're building with gcc.
|
|
||||||
*/
|
*/
|
||||||
#define YYMALLOC palloc
|
#define YYMALLOC palloc
|
||||||
#define YYFREE pfree
|
#define YYFREE pfree
|
||||||
|
@ -29,10 +29,7 @@ Node *replication_parse_result;
|
|||||||
/*
|
/*
|
||||||
* Bison doesn't allocate anything that needs to live across parser calls,
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
||||||
* so we can easily have it use palloc instead of malloc. This prevents
|
* so we can easily have it use palloc instead of malloc. This prevents
|
||||||
* memory leaks if we error out during parsing. Note this only works with
|
* memory leaks if we error out during parsing.
|
||||||
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
|
||||||
* if possible, so there's not really much problem anyhow, at least if
|
|
||||||
* you're building with gcc.
|
|
||||||
*/
|
*/
|
||||||
#define YYMALLOC palloc
|
#define YYMALLOC palloc
|
||||||
#define YYFREE pfree
|
#define YYFREE pfree
|
||||||
|
@ -26,10 +26,7 @@ static SyncRepConfigData *create_syncrep_config(const char *num_sync,
|
|||||||
/*
|
/*
|
||||||
* Bison doesn't allocate anything that needs to live across parser calls,
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
||||||
* so we can easily have it use palloc instead of malloc. This prevents
|
* so we can easily have it use palloc instead of malloc. This prevents
|
||||||
* memory leaks if we error out during parsing. Note this only works with
|
* memory leaks if we error out during parsing.
|
||||||
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
|
||||||
* if possible, so there's not really much problem anyhow, at least if
|
|
||||||
* you're building with gcc.
|
|
||||||
*/
|
*/
|
||||||
#define YYMALLOC palloc
|
#define YYMALLOC palloc
|
||||||
#define YYFREE pfree
|
#define YYFREE pfree
|
||||||
|
@ -45,10 +45,7 @@ static JsonPathParseItem *makeItemLikeRegex(JsonPathParseItem *expr,
|
|||||||
/*
|
/*
|
||||||
* Bison doesn't allocate anything that needs to live across parser calls,
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
||||||
* so we can easily have it use palloc instead of malloc. This prevents
|
* so we can easily have it use palloc instead of malloc. This prevents
|
||||||
* memory leaks if we error out during parsing. Note this only works with
|
* memory leaks if we error out during parsing.
|
||||||
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
|
||||||
* if possible, so there's not really much problem anyhow, at least if
|
|
||||||
* you're building with gcc.
|
|
||||||
*/
|
*/
|
||||||
#define YYMALLOC palloc
|
#define YYMALLOC palloc
|
||||||
#define YYFREE pfree
|
#define YYFREE pfree
|
||||||
|
@ -39,10 +39,7 @@
|
|||||||
/*
|
/*
|
||||||
* Bison doesn't allocate anything that needs to live across parser calls,
|
* Bison doesn't allocate anything that needs to live across parser calls,
|
||||||
* so we can easily have it use palloc instead of malloc. This prevents
|
* so we can easily have it use palloc instead of malloc. This prevents
|
||||||
* memory leaks if we error out during parsing. Note this only works with
|
* memory leaks if we error out during parsing.
|
||||||
* bison >= 2.0. However, in bison 1.875 the default is to use alloca()
|
|
||||||
* if possible, so there's not really much problem anyhow, at least if
|
|
||||||
* you're building with gcc.
|
|
||||||
*/
|
*/
|
||||||
#define YYMALLOC palloc
|
#define YYMALLOC palloc
|
||||||
#define YYFREE pfree
|
#define YYFREE pfree
|
||||||
|
@ -16,7 +16,7 @@ do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl';
|
|||||||
my ($bisonver) = `bison -V`; # grab first line
|
my ($bisonver) = `bison -V`; # grab first line
|
||||||
$bisonver = (split(/\s+/, $bisonver))[3]; # grab version number
|
$bisonver = (split(/\s+/, $bisonver))[3]; # grab version number
|
||||||
|
|
||||||
unless ($bisonver eq '1.875' || $bisonver ge '2.2')
|
unless ($bisonver ge '2.3')
|
||||||
{
|
{
|
||||||
print "WARNING! Bison install not found, or unsupported Bison version.\n";
|
print "WARNING! Bison install not found, or unsupported Bison version.\n";
|
||||||
print "echo Attempting to build without.\n";
|
print "echo Attempting to build without.\n";
|
||||||
|
Reference in New Issue
Block a user