Re: pg_config.h.win32 missing a set of flags from pg_config.h.inadded in v11 development - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: pg_config.h.win32 missing a set of flags from pg_config.h.inadded in v11 development
Date
Msg-id 20180614014952.GC1597@paquier.xyz
Whole thread Raw
In response to Re: pg_config.h.win32 missing a set of flags from pg_config.h.inadded in v11 development  (Andrew Dunstan <andrew.dunstan@2ndquadrant.com>)
Responses Re: pg_config.h.win32 missing a set of flags from pg_config.h.inadded in v11 development
List pgsql-hackers
On Wed, Jun 13, 2018 at 08:55:46PM -0400, Andrew Dunstan wrote:
> I installed 1.1.0h and got errors you can see on the buildfarm. I've now
> installed 1.0.2o and everything is good.

Good thing you tested that.  I have just used the LTS 1.0.2 for my
tests.  And there are a couple of problems here.

HAVE_BIO_GET_DATA is neither defined nor enforced in pg_config.h.win32,
and BIO_get_data has been introduced in 1.1.0, so that explains the
failures as you would need to add it in the config files.  I imagine
that most folks packaging Postgres on Windows simply rely on 1.0.2 (I
do!) which is why we have not seen reports of those failures...

A second failure is related to HAVE_BIO_METH_NEW, with all routine sets
like BIO_meth_set_write & co new as of OpenSSL 1.1.0.  The configure
check uses BIO_meth_new().

A third problem is related to HAVE_ASN1_STRING_GET0_DATA, but I don't
see a complain in the buildfarm logs, which is interesting, but that's
already present in pg_config.h.win32.

A fourth problem is with HAVE_OPENSSL_INIT_SSL, which is missing in
pg_config.h.win32.

We claim support for OpenSSL 1.1.0 down to 9.4 per bb132cdd, so I think
that we should document all those flags even in back-branches.  Thoughts
of people here?

For now, I would suggest to keep a track of HAVE_BIO_GET_DATA,
HAVE_BIO_METH_NEW and others in pg_config.h.win32 but mark them as
undef.  Anybody shipping Windows stuff also likely patch lightly the
MSVC scripts (I do for some paths!), so they could always enforce those
flags if building with OpenSSL 1.1.0...  Documenting them is really
important as well.  So attached is an updated patch which should be
applied on HEAD to close the gap and close this open item with all the
gaps mentioned in the commit message.  I'd like to document (but
disable!) as well the OpenSSL 1.1.0 flags down to 9.4 as that's where we
claim support of this version as bb132cd missed the shot.  This would
break Windows MSVC builds linking to OpenSSL 1.0.1 or older, so the
buildfarm will likely turn red here or there.

Thoughts?
--
Michael

Attachment

pgsql-hackers by date:

Previous
From: "Tsunakawa, Takayuki"
Date:
Subject: RE: [Proposal] Table-level Transparent Data Encryption (TDE) andKey Management Service (KMS)
Next
From: Michael Paquier
Date:
Subject: Re: Partitioning with temp tables is broken