Temporarily restore support for Win7 / Server 2008 R2#4857
Merged
StephanTLavavej merged 6 commits intomicrosoft:mainfrom Jul 24, 2024
Merged
Temporarily restore support for Win7 / Server 2008 R2#4857StephanTLavavej merged 6 commits intomicrosoft:mainfrom
StephanTLavavej merged 6 commits intomicrosoft:mainfrom
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.
Contributor
|
A PR that was fraught with pain and sorrow😶🌫️... |
This was referenced Jul 24, 2024
|
Windows Server 2008 R2 is still supported ->Grandfathered[7] Premium Assurance security update support until January 13, 2026.[8][9] August Updates -> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🗺️ 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."