https://github.com/python/cpython/commit/d16f455cd8cabbc1e7bd2369cdb8718c30ab8957
commit: d16f455cd8cabbc1e7bd2369cdb8718c30ab8957
branch: main
author: Chris Eibl <138194463+chris-e...@users.noreply.github.com>
committer: zooba <steve.do...@microsoft.com>
date: 2025-03-24T16:21:57Z
summary:

GH-131521: Uses correct build flags for zlib-ng on Windows (GH-131526)

Do not enable AdvancedVectorExtensions2 for all *.c files, so that the 
resulting binary can be executed on older CPUs, too. Also enable 
AdvancedVectorExtensions512 where necessary, and add the ClangCL flags required 
to enable vector extensions.

files:
M PCbuild/zlib-ng.vcxproj

diff --git a/PCbuild/zlib-ng.vcxproj b/PCbuild/zlib-ng.vcxproj
index 12a87d890d92ae..de1698ae718473 100644
--- a/PCbuild/zlib-ng.vcxproj
+++ b/PCbuild/zlib-ng.vcxproj
@@ -90,6 +90,7 @@
   <ItemDefinitionGroup>
     <ClCompile>
       <AdditionalOptions>%(AdditionalOptions) /utf-8 
/w34242</AdditionalOptions>
+      <AdditionalOptions Condition="$(SupportPGO) and $(Configuration) == 
'PGUpdate' and $(PlatformToolset) == 'ClangCL'">%(AdditionalOptions) 
-fno-profile-instr-use</AdditionalOptions>
       <DisableSpecificWarnings>4206;4054;4324</DisableSpecificWarnings>
       <LanguageStandard_C>stdc11</LanguageStandard_C>
       <PrecompiledHeader>NotUsing</PrecompiledHeader>
@@ -97,7 +98,7 @@
       
<PreprocessorDefinitions>%(PreprocessorDefinitions);ZLIB_COMPAT;WITH_GZFILEOP;NO_FSEEKO;HAVE_BUILTIN_ASSUME_ALIGNED;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;</PreprocessorDefinitions>
       <PreprocessorDefinitions Condition="$(Platform) == 'Win32' or 
$(Platform) == 
'x64'">%(PreprocessorDefinitions);X86_FEATURES;X86_HAVE_XSAVE_INTRIN;X86_SSE2;X86_SSSE3;X86_SSE42;X86_PCLMULQDQ_CRC;X86_AVX2;X86_AVX512;X86_AVX512VNNI;X86_VPCLMULQDQ_CRC</PreprocessorDefinitions>
       <PreprocessorDefinitions Condition="$(Configuration) == 
'Debug'">%(PreprocessorDefinitions);ZLIB_DEBUG</PreprocessorDefinitions>
-      <EnableEnhancedInstructionSet Condition="$(Platform) == 'Win32' or 
$(Platform) == 'x64'">AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+      <PreprocessorDefinitions Condition="$(PlatformToolset) == 
'ClangCL'">%(PreprocessorDefinitions);HAVE_BUILTIN_CTZ</PreprocessorDefinitions>
     </ClCompile>
   </ItemDefinitionGroup>
   <ItemGroup>
@@ -141,18 +142,44 @@
     <ClCompile Include="$(zlibNgDir)\arch\x86\chunkset_sse2.c" />
     <ClCompile Include="$(zlibNgDir)\arch\x86\compare256_sse2.c" />
     <ClCompile Include="$(zlibNgDir)\arch\x86\slide_hash_sse2.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_ssse3.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\chunkset_ssse3.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_sse42.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\crc32_pclmulqdq.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\slide_hash_avx2.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\chunkset_avx2.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\compare256_avx2.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_avx2.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_avx512.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\chunkset_avx512.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_avx512_vnni.c" />
-    <ClCompile Include="$(zlibNgDir)\arch\x86\crc32_vpclmulqdq.c" />
+    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_ssse3.c">
+      <AdditionalOptions Condition="$(PlatformToolset) == 
'ClangCL'">%(AdditionalOptions) -mssse3</AdditionalOptions>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\chunkset_ssse3.c">
+      <AdditionalOptions Condition="$(PlatformToolset) == 
'ClangCL'">%(AdditionalOptions) -mssse3</AdditionalOptions>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_sse42.c">
+      <AdditionalOptions Condition="$(PlatformToolset) == 
'ClangCL'">%(AdditionalOptions) -msse4.2</AdditionalOptions>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\crc32_pclmulqdq.c">
+      <AdditionalOptions Condition="$(PlatformToolset) == 
'ClangCL'">%(AdditionalOptions) -mssse3 -mpclmul</AdditionalOptions>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\slide_hash_avx2.c">
+      
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\chunkset_avx2.c">
+      
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\compare256_avx2.c">
+      
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_avx2.c">
+      
<EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_avx512.c">
+      
<EnableEnhancedInstructionSet>AdvancedVectorExtensions512</EnableEnhancedInstructionSet>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\chunkset_avx512.c">
+      
<EnableEnhancedInstructionSet>AdvancedVectorExtensions512</EnableEnhancedInstructionSet>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\adler32_avx512_vnni.c">
+      
<EnableEnhancedInstructionSet>AdvancedVectorExtensions512</EnableEnhancedInstructionSet>
+      <AdditionalOptions Condition="$(PlatformToolset) == 
'ClangCL'">%(AdditionalOptions) -mavx512vnni</AdditionalOptions>
+    </ClCompile>
+    <ClCompile Include="$(zlibNgDir)\arch\x86\crc32_vpclmulqdq.c">
+      
<EnableEnhancedInstructionSet>AdvancedVectorExtensions512</EnableEnhancedInstructionSet>
+      <AdditionalOptions Condition="$(PlatformToolset) == 
'ClangCL'">%(AdditionalOptions) -mvpclmulqdq</AdditionalOptions>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\PC\zconf.h" />

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to