-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Temporarily restore support for Win7 / Server 2008 R2 #4857
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
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_AVAILABLEmachinery, then we dropped__std_atomic_compare_exchange_128_fallback.GetCurrentPackageId.DEFINEFUNCTIONPOINTER/STOREFUNCTIONPOINTERforGetCurrentPackageIdnext to where the machinery forGetSystemTimePreciseAsFileTimehas been re-added.system_clockcomment change.GetSystemTimeAsFileTimefallback for Win7 here.P1135R6_atomic_waittest changes.test_atomic_wait.hpp).__std_atomic_set_api_levelexists for test purposes only, and our dev/test machines are all modern.P1135R6_atomic_wait_vistatoP1135R6_atomic_wait_win7.test_atomic_wait.hppintoP1135R6_atomic_wait_win7.#pragma once.<atomic>: ADL-proof implementation ofatomicandatomic_ref#4221 (merged 2024-01-17, before we removed Win7 on 2024-06-24) added compile-only test coverage for incomplete types toP1135R6_atomic_waitonly. There's no need to replicate that coverage.Making
P1135R6_atomic_waitandP1135R6_atomic_wait_win7independent 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/PDBbinaries againstsynchronization.lib."