Firma Microsoft naprawia nieprawidłowo uruchomiony blok PopCnt, ale wymagania systemu Windows 11 24H2 mogą pozostać
W ciągu ostatnich kilku tygodni w Internecie zawrzało w związku z możliwą nadchodzącą zmianą wymagań systemowych systemu Windows 11 24H2, w ramach której Microsoft najwyraźniej chce, aby PopCnt, instrukcja oparta na SSE 4.2, stała się obowiązkowa w następnej wersji systemu Windows 11, wersja 24H2. Oznaczało to, że starsze procesory nie uruchamiały kompilacji Canary 25905 , a obejścia, takie jak to, w którym zastosowano pojedynczą sztuczkę z poleceniem, również nie działały.
Chociaż wówczas nie było to jeszcze wiadome, PopCnt był również najwyraźniej przyczyną wadliwych aplikacji Microsoft Store w systemie Windows 10, w związku z czym stare procesory nie mogły uruchamiać się w tych systemach, co często prowadziło do „Błądu systemu plików (-2147219196)”.
Inżynier firmy Microsoft, Mahmoud G. Saleh, który jest głównym menedżerem ds. inżynierii oprogramowania w MSVC (Microsoft Visual C++), potwierdził później, że problem był związany z błędnym pakietem bibliotek Visual C++ (VCLibs). Oni napisali :
Cześć, zespół Visual C++ zidentyfikował problem jako regresję w pakiecie frameworka vclibs, od którego zależy aplikacja Zdjęcia i inne aplikacje. Problem dotyczy komputerów ze starszym sprzętem (nie obsługującym instrukcji SSE 4.2). Firma Microsoft pracuje obecnie nad weryfikacją rozwiązania i oczekuje się, że wkrótce zostanie ono udostępnione klientom, których to dotyczy.
Podniesienie tego problemu należy się Masahiro Takegami , który w listopadzie ubiegłego roku zauważył błąd związany z PopCnt w swoim procesorze Intel Core 2 Quad Q6600. Problem został najwyraźniej wprowadzony wraz z aktualizacją programu Visual Studio w wersji 17.8.0.
Najnowsza wersja programu Visual Studio 2022, wersja 17.9.1, rozwiązuje ten problem wraz z kilkoma innymi błędami. Pełny dziennik zmian znajduje się poniżej:
Podsumowanie nowości w tej wersji programu Visual Studio 2022 w wersji 17.9.1
- Zaktualizowano zestaw narzędzi MSVC 16.11 do wersji 16.11.34 (14.29.30154.0) dla klientów korzystających z zestawu narzędzi C++ 16.11 z wersją VS 17.9.
- Naprawiono błąd, w wyniku którego plik libconcrt.lib używany podczas łączenia statycznego mógł zawierać instrukcję SSE 4.2, która była nielegalna w starszych systemach X64.
- Dodano obsługę char8_t jako typu wbudowanego dla C++ 20 z opcją /clr.
Chociaż powinno to rozwiązać problem z kodem VS, a także problem z działaniem aplikacji na starszych procesorach , wydaje się mało prawdopodobne, że starsze chipy będą działać w systemie Windows 11 24H2. Plik instalacyjny wersji systemu Windows 11 najwyraźniej zaczął wyświetlać komunikat „ Procesor tego komputera nie obsługuje funkcji krytycznej (PopCnt) ”, gdy użytkownicy próbują zainstalować wersję 24H2 na takich systemach. Komunikat sugeruje, że Microsoft może świadomie wprowadzać tę zmianę.
Dodaj komentarz