Re: Bump MIN_WINNT to 0x0600 (Vista) as minimal runtime in 16~

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Juan José Santamaría Flecha <juanjo.santamaria@gmail.com>
Cc: Thomas Munro <thomas.munro@gmail.com>, Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-05-27T03:53:11Z
Lists: pgsql-hackers
On Thu, May 26, 2022 at 10:17:08AM +0200, Juan José Santamaría Flecha wrote:
> There have been a couple of discussions involving not only Windows
> version10, but also the Release id:
> 
> https://commitfest.postgresql.org/38/3347/

This mentions 0x0A00, aka Windows 10, for atomic rename support.

> https://commitfest.postgresql.org/38/3530/

Similarly 0x0A00, aka Windows 10, for fdatasync().

> https://www.postgresql.org/message-id/6389b5a88e114bee85593af2853c08cd%40dental-vision.de

And Windows 10 1703, for large pages.

> Maybe this thread can push those others forward.

Post Windows 8, the most annoying part is that manifests are required
to be able to check at run-time on which version you are running with
routines like IsWindowsXXOrGreater() if you compiled with a threshold
of MIN_WINNT lower than the version you expect compatibility for.
And each one of those things would mean cutting a lot of past support
if we want to eliminate the manifest part.  Windows 8 ends its support
in 2023, it seems, so that sounds short even for PG16.
--
Michael

Commits

  1. doc: Fix incorrect version list for Windows SDK

  2. Replace loading of ldap_start_tls_sA() by direct function call

  3. Replace load of functions by direct calls for some WIN32

  4. Cleanup more code and comments related to Windows NT4 (XP days)

  5. Make Windows 10 the minimal runtime requirement for WIN32