Second attempt to silence SSL compile failures on hamerkop.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 6 Nov 2021 16:43:18 +0000 (12:43 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 6 Nov 2021 16:43:18 +0000 (12:43 -0400)
commit1241fcbd7e649414f09f9858ba73e63975dcff64
tree3951e029303c5125a74a0ddc99b58f52cc2627a1
parent05e6e78c1840d07154a4b52092178a2d1ad39445
Second attempt to silence SSL compile failures on hamerkop.

After further investigation, it seems the cause of the problem
is our recent decision to start defining WIN32_LEAN_AND_MEAN.
That causes <windows.h> to no longer include <wincrypt.h>, which
means that the OpenSSL headers are unable to prevent conflicts
with that header by #undef'ing the conflicting macros.  Apparently,
some other system header that be-secure-openssl.c #includes after
the OpenSSL headers is pulling in <wincrypt.h>.  It's obscure just
where that happens and why we're not seeing it on other Windows
buildfarm animals.  However, it should work to move the OpenSSL
#includes to the end of the list.  For the sake of future-proofing,
do likewise in fe-secure-openssl.c.  In passing, remove useless
double inclusions of <openssl/ssl.h>.

Thanks to Thomas Munro for running down the relevant information.

Discussion: https://postgr.es/m/1051867.1635720347@sss.pgh.pa.us
src/backend/libpq/be-secure-openssl.c
src/interfaces/libpq/fe-secure-openssl.c