Subject: Re: [PATCH 3/3] mingw: bump the minimum Windows version to Vista

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Wed, 10 Oct 2018 16:08:14 +0200

On Wed, Oct 03 2018, Johannes Schindelin via GitGitGadget wrote:

> Quite some time ago, a last plea to the XP users out there who want to
> see Windows XP support in Git for Windows, asking them to get engaged
> and help, vanished into the depths of the universe.
>
> We tried for a long time to play nice with the last remaining XP users
> who somehow manage to build Git from source, but a recent update of
> mingw-w64 (7.0.0.5233.e0c09544 -> 7.0.0.5245.edf66197) finally dropped
> the last sign of XP support, and Git for Windows' SDK is no longer able
> to build core Git's `master` branch as a consequence. (Git for Windows'
> `master` branch already bumped the minimum Windows version to Vista a
> while ago, so it is fine.)
>
> It is time to require Windows Vista or later to build Git from source.
> This, incidentally, lets us use quite a few nice new APIs.
>
> It also means that we no longer need the inet_pton() and inet_ntop()
> emulation, which is nice.

Earlier in this series you add a:

#if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x600
...
#endif

Shouldn't that now be something like:

#if defined(_WIN32_WINNT)
#if _WIN32_WINNT >= 0x600
...
#else
#error "You need at least Windows Vista to build Git!"
#endif
#endif

Or do we catch users building on non-supported versions earlier somehow
(i.e. not just with a flood of compilation errors).

> diff --git a/config.mak.uname b/config.mak.uname
> index e47af72e01..8acdeb71fd 100644
> --- a/config.mak.uname
> +++ b/config.mak.uname
> @@ -381,8 +381,6 @@ ifeq ($(uname_S),Windows)
>  	NO_PYTHON = YesPlease
>  	BLK_SHA1 = YesPlease
>  	ETAGS_TARGET = ETAGS
> -	NO_INET_PTON = YesPlease
> -	NO_INET_NTOP = YesPlease
>  	NO_POSIX_GOODIES = UnfortunatelyYes
>  	NATIVE_CRLF = YesPlease
>  	DEFAULT_HELP_FORMAT = html
> @@ -529,8 +527,6 @@ ifneq (,$(findstring MINGW,$(uname_S)))
>  	NO_REGEX = YesPlease
>  	NO_PYTHON = YesPlease
>  	ETAGS_TARGET = ETAGS
> -	NO_INET_PTON = YesPlease
> -	NO_INET_NTOP = YesPlease
>  	NO_POSIX_GOODIES = UnfortunatelyYes
>  	DEFAULT_HELP_FORMAT = html
>  	COMPAT_CFLAGS += -DNOGDI -Icompat -Icompat/win32

So before we were defining NO_INET_{PTON,NTOP} because XP needed it, but
doing so on all Windows versions, is there other compat stuff there
that's just catering to the lowest common denominator, and if so
shouldn't that be version checked against the NT version?

Both of the above are just questions I was curious about since I saw
your <[email-masked]>, and
shouldn't bee seen as bumping this to "this needs a re-roll" or it
should be delayed in getting to master.