-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Temporarily restore support for Win7 / Server 2008 R2 #4857
Temporarily restore support for Win7 / Server 2008 R2 #4857
Conversation
This reverts commit 0be5257. Conflict resolutions: * yvals_core.h + GH 4742 dropped `_STL_WIN32_WINNT_WIN7`, then GH 4751 dropped `_STL_WIN32_WINNT_WINBLUE`. * atomic_wait.cpp + GH 4742 dropped `_ATOMIC_WAIT_ON_ADDRESS_STATICALLY_AVAILABLE` machinery, then GH 4751 dropped `__std_atomic_compare_exchange_128_fallback`.
Conflict resolutions: We want to remove `DEFINEFUNCTIONPOINTER`/`STOREFUNCTIONPOINTER` for `GetCurrentPackageId` next to where the machinery for `GetSystemTimePreciseAsFileTime` is being restored.
We don't need to mention the `GetSystemTimeAsFileTime` fallback for Win7 here.
This made it self-contained (instead of centralized in test_atomic_wait.hpp). This also made it not bother to verify the API level. `__std_atomic_set_api_level` exists for test purposes only, and our dev/test machines are all modern.
No changes other than dropping the duplicate banner and `#pragma once`. This obviously duplicates test code, but will make removal simpler. Note divergence: GH 4221 (merged 2024-01-17, before GH 4742 removed Win7 on 2024-06-24) added compile-only test coverage for incomplete types to `P1135R6_atomic_wait` only. There's no need to replicate that coverage.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thank you!
A PR that was fraught with pain and sorrow😶🌫️... |
Windows Server 2008 R2 is still supported ->Grandfathered[7] Premium Assurance security update support until January 13, 2026.[8][9] August Updates -> |
🗺️ Overview
My ultrabosses have decided that dropping support for targeting Win7 / Server 2008 R2 in VS 2022 17.12 is too aggressive, so I'm being required to restore it. However, dropping support has been approved for the 18.0 Preview 1 release (whenever that will happen, and whatever its major version branding will be), so this restoration is temporary.
Windows 7 and Server 2008 R2 are insecure operating systems, which haven't been receiving security updates for many months. Targeting them is making the world a worse place.
📜 Commits
atomic_ref<16 bytes>
#4751:yvals_core.h
, we dropped_STL_WIN32_WINNT_WIN7
, then we dropped_STL_WIN32_WINNT_WINBLUE
.atomic_wait.cpp
, we dropped_ATOMIC_WAIT_ON_ADDRESS_STATICALLY_AVAILABLE
machinery, then we dropped__std_atomic_compare_exchange_128_fallback
.GetCurrentPackageId
.DEFINEFUNCTIONPOINTER
/STOREFUNCTIONPOINTER
forGetCurrentPackageId
next to where the machinery forGetSystemTimePreciseAsFileTime
has been re-added.system_clock
comment change.GetSystemTimeAsFileTime
fallback for Win7 here.P1135R6_atomic_wait
test changes.test_atomic_wait.hpp
).__std_atomic_set_api_level
exists for test purposes only, and our dev/test machines are all modern.P1135R6_atomic_wait_vista
toP1135R6_atomic_wait_win7
.test_atomic_wait.hpp
intoP1135R6_atomic_wait_win7
.#pragma once
.<atomic>
: ADL-proof implementation ofatomic
andatomic_ref
#4221 (merged 2024-01-17, before we removed Win7 on 2024-06-24) added compile-only test coverage for incomplete types toP1135R6_atomic_wait
only. There's no need to replicate that coverage.Making
P1135R6_atomic_wait
andP1135R6_atomic_wait_win7
independent obviously duplicates test code, but will make final removal simpler (in 18.0p1).I will need to revert some of MSVC-PR-559637's internal changes, specifically "NON-GitHub: Link
src/vctools/PDB
binaries againstsynchronization.lib
."