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=u...@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


Reply via email to