Re: pg_dump versus ancient server versions

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pg_dump versus ancient server versions
Дата
Msg-id 3794414.1639072240@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: pg_dump versus ancient server versions  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: pg_dump versus ancient server versions  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
[ mostly for the archives' sake ]

I wrote:
> I ran a new set of experiments concerning building back branches
> on modern platforms, this time trying Fedora 35 (gcc 11.2.1)
> on x86_64.  I widened the scope of the testing a bit by adding
> "--enable-nls --with-perl" and running check-world not just the
> core tests.  Salient results:

> * 9.1 fails with "conflicting types for 'base_yylex'", much as
> I saw on macOS except it's a hard error on this compiler.

I poked a little harder at what might be needed to get 9.1 compiled
on modern platforms.  It looks like the base_yylex issue is down
to newer versions of flex doing things differently.  We fixed
that in the v10 era via 72b1e3a21 (Build backend/parser/scan.l and
interfaces/ecpg/preproc/pgc.l standalone) and 92fb64983 (Use "%option
prefix" to set API names in ecpg's lexer), which were later back-patched
as far down as 9.2.  It might not be out of the question to back-patch
those further, but the 9.2 patches don't apply cleanly to 9.1, so some
effort would be needed.

Worrisomely, I also noted warnings like

parse_coerce.c:791:67: warning: array subscript 1 is above array bounds of 'Oid[1]' {aka 'unsigned int[1]'}
[-Warray-bounds]
  791 |                 Assert(nargs < 2 || procstruct->proargtypes.values[1] == INT4OID);
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~

which remind me that 9.1 lacks 8137f2c32 (Hide most variable-length fields
from Form_pg_* structs).  We did stick -fno-aggressive-loop-optimizations
into 9.1 and older branches back in 2015, but I don't have a lot of
confidence that that'd be sufficient to prevent misoptimizations in
current-vintage compilers.  Back-patching 8137f2c32 and all the follow-on
work is very clearly not something to consider, so dialing down the -O
level might be necessary if you were interested in making this go.

In short then, there is a really large gap between 9.1 and 9.2 in terms
of how hard they are to build on current toolchains.  It's kind of
fortunate that Peter proposed 9.2 rather than some earlier cutoff.
In any case, I've completely lost interest in trying to move the
keep-it-buildable cutoff to any earlier than 9.2; it doesn't look
like the effort-to-benefit ratio would be attractive at all.

            regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Mark Dilger
Дата:
Сообщение: Re: Non-superuser subscription owners
Следующее
От: Colin Gilbert
Дата:
Сообщение: Re: Appetite for Frama-C annotations?