The following bug has been logged on the website:
Bug reference: 16336
Logged by: Mario Emmenlauer
Email address: mario@emmenlauer.de
PostgreSQL version: 12.2
Operating system: Windows 10 with Visual Studio 2019.5.2
Description:
I've recently upgraded Visual Studio from 2019.3 to 2019.5.2. This broke
my
build of PostgreSQL. First I tried 11.5 which fails with the same errors,
and now
version 12.2 (from which I report this issue).
First, in order to build with VS2019.5.2, I needed to make a small change
to
`src/tools/msvc/gendef.pl` because dumpbin fails for me when using
backward
slashes. So after the line
my $tmpfile = "$ARGV[0]/tmp.sym";
I added:
$tmpfile =~ s@\\@/@g;
The build then continues, but later fails with 0 Warning(s), 2922 Error(s).
The
errors are due to undefined symbols. I did not change my build from
VS2019.3,
and I can also not reproduce the issue in VS2017, so it must be related to
the
upgrade of Visual Studio. I include a few of the undefined symbols here,
but
not the full list, for brevity:
```
Creating library Debug/plpgsql/plpgsql.lib and object
Debug/plpgsql/plpgsql.exp
pl_comp.obj : error LNK2019: unresolved external symbol pg_snprintf
referenced in function do_compile [C:\gitlabci\postgres\plpgsql.vcxproj]
pl_gram.obj : error LNK2001: unresolved external symbol pg_snprintf
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_scanner.obj : error LNK2001: unresolved external symbol errstart
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_comp.obj : error LNK2001: unresolved external symbol errstart
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_exec.obj : error LNK2001: unresolved external symbol errstart
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_gram.obj : error LNK2001: unresolved external symbol errstart
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_handler.obj : error LNK2001: unresolved external symbol errstart
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_scanner.obj : error LNK2001: unresolved external symbol errfinish
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_comp.obj : error LNK2001: unresolved external symbol errfinish
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_exec.obj : error LNK2001: unresolved external symbol errfinish
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_gram.obj : error LNK2001: unresolved external symbol errfinish
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_handler.obj : error LNK2001: unresolved external symbol errfinish
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_scanner.obj : error LNK2001: unresolved external symbol errcode
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_comp.obj : error LNK2001: unresolved external symbol errcode
[C:\gitlabci\postgres\plpgsql.vcxproj]
pl_exec.obj : error LNK2001: unresolved external symbol errcode
[C:\gitlabci\postgres\plpgsql.vcxproj]
[...]
```