Re: pgsql: pg_rewind: Allow writing recovery configuration

From: Andres Freund <andres(at)anarazel(dot)de>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: Re: pgsql: pg_rewind: Allow writing recovery configuration
Date: 2019-09-30 19:20:13
Message-ID: 20190930192013.r3wievljua2n3tbb@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Hi,

On 2019-09-30 17:11:09 +0000, Alvaro Herrera wrote:
> pg_rewind: Allow writing recovery configuration
>
> This is provided with a new switch --write-recovery-conf and reuses the
> pg_basebackup code.
>
> Author: Paul Guo, Jimmy Yih, Ashwin Agrawal
> Reviewed-by: Alexey Kondratov, Michaël Paquier, Álvaro Herrera
> Discussion: https://postgr.es/m/CAEET0ZEffUkXc48pg2iqARQgGRYDiiVxDu+yYek_bTwJF+q=Uw@mail.gmail.com

This currently fails on windows under mingw:
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=jacana&dt=2019-09-30%2018%3A00%3A36

Sep 30 14:11:02 ccache x86_64-w64-mingw32-gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -g -O2 pg_rewind.o parsexlog.o xlogreader.o datapagemap.o timeline.o fetch.o file_ops.o copy_fetch.o libpq_fetch.o filemap.o win32ver.o -L../../../src/port -L../../../src/common -L../../../src/common -lpgcommon -L../../../src/port -lpgport -L../../../src/interfaces/libpq -lpq -L../../../src/fe_utils -lpgfeutils -Wl,--allow-multiple-definition -Wl,--disable-auto-import -L/c/prog/3p64/lib -L/c/prog/3p64/lib -L/c/prog/3p64/openssl-win64/lib/VC -Wl,--as-needed -lpgcommon -lpgport -lintl -lxslt -lxml2 -lz -lws2_32 -lm -lws2_32 -o pg_rewind.exe
Sep 30 14:11:02 ../../../src/fe_utils/libpgfeutils.a(recovery_gen.o): In function `GenerateRecoveryConfig':
Sep 30 14:11:02 c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/fe_utils/recovery_gen.c:33: undefined reference to `createPQExpBuffer'
Sep 30 14:11:02 c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.build/../pgsql/src/fe_utils/recovery_gen.c:44: undefined reference to `PQserverVersion'

I assume the issue is that the specified link order is:
LDFLAGS_INTERNAL += $(libpq_pgport) -L$(top_builddir)/src/fe_utils -lpgfeutils
but pgfeutils introduces a dependency on symbols from libpq that weren't
needed at the time libpq was linked. Therefore they aren't included
inthe resulting library.

I'll reorder them.

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Alvaro Herrera 2019-09-30 19:27:27 Re: pgsql: pg_rewind: Allow writing recovery configuration
Previous Message Tom Lane 2019-09-30 18:31:39 pgsql: Doc: improve PREPARE documentation, cross-referencing to plan_ca