Bump the minimum supported MSVC version to VS2019

This aligns with https://github.com/google/oss-policies-info/pull/8 and
https://github.com/grpc/grpc/pull/32614. VS2019 adds a C11 mode, which
is useful for us, because it means stdalign.h works correctly.

Also bump the minimum Windows SDK to
https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/.
If you have a new MSVC, CMake will enable C11 mode by default. But if
C11 mode is enabled but your Windows SDK is too old, things break.

After this change, the CI will include some redundant configurations.
All the VS2017 configurations will start testing on VS2019, so the
VS2019-specific configurations won't do anything. I'll follow this up
with a change to bump those to VS2022, where we're currently missing
coverage.

Update-Note: BoringSSL now requires VS2019 or later and no longer
supports VS2017. VS2017 has been past its "mainstream end date" for over
a year now, per
https://learn.microsoft.com/en-us/lifecycle/products/visual-studio-2017

Change-Id: I3f359e8ea7c9428ddaa9fcc4ffead2ef903398be
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/59665
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
This commit is contained in:
David Benjamin 2023-05-05 15:53:48 -04:00 committed by Boringssl LUCI CQ
parent a972b78d1b
commit 2aae3f58b4
3 changed files with 4 additions and 9 deletions

View File

@ -32,9 +32,9 @@ most recent stable version of each tool.
* C and C++ compilers with C++14 support are required. If using a C compiler
other than MSVC, C11 support is also requried. On Windows, MSVC from
Visual Studio 2017 or later with Platform SDK 8.1 or later are supported,
but newer versions are recommended. Recent versions of GCC (6.1+) and Clang
should work on non-Windows platforms, and maybe on Windows too.
Visual Studio 2019 or later with Windows 10 SDK 2104 or later are supported,
but using the latest versions is recommended. Recent versions of GCC (6.1+)
and Clang should work on non-Windows platforms, and maybe on Windows too.
* The most recent stable version of [Go](https://golang.org/dl/) is required.
Note Go is exempt from the five year support window. If not found by CMake,

View File

@ -203,11 +203,6 @@ elseif(MSVC)
set(MSVC_DISABLED_WARNINGS_LIST
"C4100" # 'exarg' : unreferenced formal parameter
"C4127" # conditional expression is constant
# C4204 and C4221 are C89-only restrictions which were dropped in C99, but
# VS2017 warns about it. They can be removed when we require VS2019.
"C4204" # nonstandard extension used: non-constant aggregate initializer
"C4221" # nonstandard extension used : 'identifier' : cannot be
# initialized using address of automatic variable
"C4244" # 'function' : conversion from 'int' to 'uint8_t',
# possible loss of data
"C4267" # conversion from 'size_t' to 'int', possible loss of data

View File

@ -19,7 +19,7 @@ vars = {
'checkout_sde': False,
'checkout_nasm': False,
'checkout_libcxx': False,
'vs_version': '2017',
'vs_version': '2019',
# Run the following command to see the latest builds in CIPD:
# cipd describe PACKAGE_NAME -version latest