Re: BUG #15789: libpq compilation with OpenSSL 1.1.1b fails on Windows with Visual Studio 2017

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
Cc: Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>, serpashk@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2019-06-25T08:08:11Z
Lists: pgsql-bugs

Attachments

On Mon, Jun 24, 2019 at 01:44:18PM +0200, Juan José Santamaría Flecha wrote:
> The updated patches include:
> 
> 1. Comments for AddLibrary.
> 2. The function GetOpenSSLVersion returns: major, minor and fix numbers.
> 3. The version check will default to 1.1.X behaviour for 1.Y.X
> versions if Y > 0.

Thanks for the new patch set!  I have been looking at that in depths
and I have adjusted the whole logic a bit here and there.  At the end
I found the logic changed in AddLibrary more confusing because the
debugging suffix may change depending on if we use a release-quality
build or not, so I have kept the original interface, and completed it
with a logic allowing the scripts to grab all the libraries it
expects.  This has a small gain when using a non-debug installation as
the library names are the same for Win32 and Win64 for >= 1.1.0.

Also, your patch was not working with other versions of MSVC as the
new routine got stuck into the 2017 class, so I had to move it, and I
found that it was cleaner to just make it return a string made of the
3 first digits and to do direct string comparisons.

Please note that it is not necessary to create versions for the
back-branches yet.  If necessary, I'll do that myself, but first let's
make sure that we agree about the shape of the patch for HEAD.
Attached is an updated version which I would be fine to commit.  I
have tested it with compilation linking to OpenSSL 1.0.2 and 1.1.0 on
Win32 and the build is able to complete.  This applies on HEAD only,
where I have run all my tests.  The patch is properly indented.

What do you think?
--
Michael

Commits

  1. Add support for OpenSSL 1.1.0 and newer versions in MSVC scripts