diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2020-06-17 07:50:57 -0400 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2020-06-17 07:50:57 -0400 |
commit | b9e67f2840ce0d8859d96e7f8df8fe9584af5eba (patch) | |
tree | ed3b7284ff15c802583f6409b9c71b3739642d15 /gcc/ada/socket.c | |
parent | 1957047ed1c94bf17cf993a2b1866965f493ba87 (diff) | |
parent | 56638b9b1853666f575928f8baf17f70e4ed3517 (diff) | |
download | gcc-b9e67f2840ce0d8859d96e7f8df8fe9584af5eba.zip gcc-b9e67f2840ce0d8859d96e7f8df8fe9584af5eba.tar.gz gcc-b9e67f2840ce0d8859d96e7f8df8fe9584af5eba.tar.bz2 |
Merge from trunk at:
commit 56638b9b1853666f575928f8baf17f70e4ed3517
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date: Wed Jun 17 00:16:36 2020 +0000
Daily bump.
Diffstat (limited to 'gcc/ada/socket.c')
-rw-r--r-- | gcc/ada/socket.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gcc/ada/socket.c b/gcc/ada/socket.c index 6ca9d50..dd73c6a 100644 --- a/gcc/ada/socket.c +++ b/gcc/ada/socket.c @@ -6,7 +6,7 @@ * * * C Implementation File * * * - * Copyright (C) 2003-2019, Free Software Foundation, Inc. * + * Copyright (C) 2003-2020, Free Software Foundation, Inc. * * * * GNAT is free software; you can redistribute it and/or modify it under * * terms of the GNU General Public License as published by the Free Soft- * @@ -803,10 +803,24 @@ int __gnat_minus_500ms() { #if defined (_WIN32) // Windows Server 2019 and Windows 8.0 do not need 500 millisecond socket // timeout correction. - return !(IsWindows8OrGreater() && !IsWindowsServer() - || IsWindowsVersionOrGreater(10, 0, 17763)); + if (IsWindowsServer()) { + OSVERSIONINFO osvi; + ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); + osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + // Documentation proposes to use IsWindowsVersionOrGreater(10, 0, 17763) + // but it does not compare by the build number (last parameter). See + // regression test for RC03-012 in fixedbugs, there are some code to + // investigate Windows version API behavior. + GetVersionEx(&osvi); + return osvi.dwMajorVersion < 10 + || osvi.dwMajorVersion == 10 + && osvi.dwMinorVersion == 0 + && osvi.dwBuildNumber < 17763; + } else { + return !IsWindows8OrGreater(); + } #else - return 0; + return 0; #endif } |