From 705b50fe39c579e60849c0767037cc9683d4907e Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 19 Nov 2013 18:01:04 +0000 Subject: * wincap.cc (wincapc::init): Fix dwMinorVersion for Windows 8.1 and Server 2012. Explain why this is necessary. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/wincap.cc | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 970ce44da..a92e0c6d7 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2013-11-19 Corinna Vinschen + + * wincap.cc (wincapc::init): Fix dwMinorVersion for Windows 8.1 and + Server 2012. Explain why this is necessary. + 2013-11-19 Corinna Vinschen * autoload.cc (IdnToAscii): Define. diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc index d84679df5..9a4708c3c 100644 --- a/winsup/cygwin/wincap.cc +++ b/winsup/cygwin/wincap.cc @@ -197,6 +197,15 @@ wincapc::init () case 1: caps = &wincap_7; break; + case 2: + /* Hack for Windows 8.1 and Server 2012R2: If the executable is + missing a Windows 8.1 mainfest, the OS returns dwMinorVersion + 2, as if it's running on Windows 8 or Server 2012. The + correct dwMinorVersion is 3 for 8.1/2012R2, though, so we're + fixing this up here. */ + if (version.dwBuildNumber >= 9200) + version.dwMinorVersion = 3; + /*FALLTHRU*/ default: caps = &wincap_8; break; -- cgit v1.2.3