diff options
author | John Naylor | 2022-09-06 04:41:58 +0000 |
---|---|---|
committer | John Naylor | 2022-09-09 05:31:41 +0000 |
commit | b086a47a270fba133969e78f1fb9e264725d97ae (patch) | |
tree | cf280575aec027f770f2f7e0a9a56684537cf924 | |
parent | 96683db880cab7791006fcc13416d67f6230a2f7 (diff) |
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/[email protected]
-rw-r--r-- | config/programs.m4 | 8 | ||||
-rwxr-xr-x | configure | 6 | ||||
-rw-r--r-- | contrib/cube/cubeparse.y | 5 | ||||
-rw-r--r-- | contrib/seg/segparse.y | 5 | ||||
-rw-r--r-- | doc/src/sgml/install-windows.sgml | 2 | ||||
-rw-r--r-- | doc/src/sgml/installation.sgml | 2 | ||||
-rw-r--r-- | src/backend/bootstrap/bootparse.y | 5 | ||||
-rw-r--r-- | src/backend/parser/gram.y | 5 | ||||
-rw-r--r-- | src/backend/replication/repl_gram.y | 5 | ||||
-rw-r--r-- | src/backend/replication/syncrep_gram.y | 5 | ||||
-rw-r--r-- | src/backend/utils/adt/jsonpath_gram.y | 5 | ||||
-rw-r--r-- | src/pl/plpgsql/src/pl_gram.y | 5 | ||||
-rw-r--r-- | src/tools/msvc/pgbison.pl | 2 |
13 files changed, 18 insertions, 42 deletions
diff --git a/config/programs.m4 b/config/programs.m4 index e7908d8793..bcdfbc3a51 100644 --- a/config/programs.m4 +++ b/config/programs.m4 @@ -22,8 +22,8 @@ fi # PGAC_PATH_BISON # --------------- # Look for Bison, set the output variable BISON to its path if found. -# Reject versions before 1.875 (they have bugs or capacity limits). -# Note we do not accept other implementations of yacc. +# Reject versions before 2.3 (the earliest version in the buildfarm +# as of 2022). Note we do not accept other implementations of yacc. AC_DEFUN([PGAC_PATH_BISON], [PGAC_PATH_PROGS(BISON, bison) @@ -31,11 +31,11 @@ AC_DEFUN([PGAC_PATH_BISON], if test "$BISON"; then pgac_bison_version=`$BISON --version 2>/dev/null | sed q` 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 AC_MSG_WARN([ *** 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="" fi # Bison >=3.0 issues warnings about %name-prefix="base_yy", instead @@ -10218,14 +10218,14 @@ if test "$BISON"; then 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: 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 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** 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: *** 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="" fi # Bison >=3.0 issues warnings about %name-prefix="base_yy", instead diff --git a/contrib/cube/cubeparse.y b/contrib/cube/cubeparse.y index 6cceae8e99..977dcba965 100644 --- a/contrib/cube/cubeparse.y +++ b/contrib/cube/cubeparse.y @@ -15,10 +15,7 @@ /* * 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 - * memory leaks if we error out during parsing. Note this only works with - * 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. + * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree diff --git a/contrib/seg/segparse.y b/contrib/seg/segparse.y index 637eacd1a6..1d2adbbec8 100644 --- a/contrib/seg/segparse.y +++ b/contrib/seg/segparse.y @@ -13,10 +13,7 @@ /* * 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 - * memory leaks if we error out during parsing. Note this only works with - * 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. + * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index 11e153578c..499fd59bf0 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -219,7 +219,7 @@ $ENV{MSBFLAGS}="/m"; <para> <productname>Bison</productname> and <productname>Flex</productname> are 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. </para> diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 70d188e2bc..7f7f8428e1 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -315,7 +315,7 @@ su - postgres 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 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. </para> </listitem> diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y index c45ddde67f..e6d62d81c1 100644 --- a/src/backend/bootstrap/bootparse.y +++ b/src/backend/bootstrap/bootparse.y @@ -36,10 +36,7 @@ /* * 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 - * memory leaks if we error out during parsing. Note this only works with - * 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. + * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 0492ff9a66..ea33784316 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -103,10 +103,7 @@ /* * 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 - * memory leaks if we error out during parsing. Note this only works with - * 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. + * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree diff --git a/src/backend/replication/repl_gram.y b/src/backend/replication/repl_gram.y index b343f108d3..8ff6ab362f 100644 --- a/src/backend/replication/repl_gram.y +++ b/src/backend/replication/repl_gram.y @@ -29,10 +29,7 @@ Node *replication_parse_result; /* * 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 - * memory leaks if we error out during parsing. Note this only works with - * 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. + * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree diff --git a/src/backend/replication/syncrep_gram.y b/src/backend/replication/syncrep_gram.y index 4fc3647da1..c18ddb2e9b 100644 --- a/src/backend/replication/syncrep_gram.y +++ b/src/backend/replication/syncrep_gram.y @@ -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, * 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 - * 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. + * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree diff --git a/src/backend/utils/adt/jsonpath_gram.y b/src/backend/utils/adt/jsonpath_gram.y index 35a79ca965..7e28853a57 100644 --- a/src/backend/utils/adt/jsonpath_gram.y +++ b/src/backend/utils/adt/jsonpath_gram.y @@ -45,10 +45,7 @@ static JsonPathParseItem *makeItemLikeRegex(JsonPathParseItem *expr, /* * 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 - * memory leaks if we error out during parsing. Note this only works with - * 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. + * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree diff --git a/src/pl/plpgsql/src/pl_gram.y b/src/pl/plpgsql/src/pl_gram.y index 0b8aea9504..f7cf2b4b89 100644 --- a/src/pl/plpgsql/src/pl_gram.y +++ b/src/pl/plpgsql/src/pl_gram.y @@ -39,10 +39,7 @@ /* * 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 - * memory leaks if we error out during parsing. Note this only works with - * 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. + * memory leaks if we error out during parsing. */ #define YYMALLOC palloc #define YYFREE pfree diff --git a/src/tools/msvc/pgbison.pl b/src/tools/msvc/pgbison.pl index 3974c30d96..60935adbaa 100644 --- a/src/tools/msvc/pgbison.pl +++ b/src/tools/msvc/pgbison.pl @@ -16,7 +16,7 @@ do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl'; my ($bisonver) = `bison -V`; # grab first line $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 "echo Attempting to build without.\n"; |