https://github.com/python/cpython/commit/e6f8e0a035f4cbeffb331d90c295ab5894852c39
commit: e6f8e0a035f4cbeffb331d90c295ab5894852c39
branch: main
author: Adam Turner <[email protected]>
committer: AA-Turner <[email protected]>
date: 2025-05-06T00:58:47+01:00
summary:
GH-132983: Build ``_zstd`` on Windows (#133366)
files:
A Modules/_zstd/clinic/zstddict.c.h
A Modules/_zstd/zstddict.c
A PCbuild/_zstd.vcxproj
A PCbuild/_zstd.vcxproj.filters
D Modules/_zstd/clinic/zdict.c.h
D Modules/_zstd/zdict.c
M Misc/externals.spdx.json
M Modules/Setup
M Modules/Setup.stdlib.in
M PCbuild/get_externals.bat
M PCbuild/pcbuild.proj
M PCbuild/pcbuild.sln
M PCbuild/python.props
M PCbuild/readme.txt
M PCbuild/regen.targets
M Tools/msi/freethreaded/freethreaded_files.wxs
M Tools/msi/lib/lib_files.wxs
M configure
M configure.ac
diff --git a/Misc/externals.spdx.json b/Misc/externals.spdx.json
index 13be10ca039286..69f3beec82ed34 100644
--- a/Misc/externals.spdx.json
+++ b/Misc/externals.spdx.json
@@ -190,6 +190,27 @@
"name": "zlib-ng",
"primaryPackagePurpose": "SOURCE",
"versionInfo": "2.2.4"
+ },
+ {
+ "SPDXID": "SPDXRef-PACKAGE-zstd",
+ "checksums": [
+ {
+ "algorithm": "SHA256",
+ "checksumValue":
"f24b52470d12f466e9fa4fcc94e6c530625ada51d7b36de7fdc6ed7e6f499c8e"
+ }
+ ],
+ "downloadLocation":
"https://github.com/python/cpython-source-deps/archive/refs/tags/zstd-1.5.7.tar.gz",
+ "externalRefs": [
+ {
+ "referenceCategory": "SECURITY",
+ "referenceLocator":
"cpe:2.3:a:facebook:zstandard:1.5.7:*:*:*:*:*:*:*",
+ "referenceType": "cpe23Type"
+ }
+ ],
+ "licenseConcluded": "NOASSERTION",
+ "name": "zstd",
+ "primaryPackagePurpose": "SOURCE",
+ "versionInfo": "1.5.7"
}
],
"spdxVersion": "SPDX-2.3"
diff --git a/Modules/Setup b/Modules/Setup
index 81f364abd479cb..a066982df1ae86 100644
--- a/Modules/Setup
+++ b/Modules/Setup
@@ -200,8 +200,8 @@ PYTHONPATH=$(COREPYTHONPATH)
#_dbm _dbmmodule.c -lgdbm_compat -DUSE_GDBM_COMPAT
#_gdbm _gdbmmodule.c -lgdbm
#_lzma _lzmamodule.c -llzma
-#_zstd _zstd/_zstdmodule.c -lzstd -I$(srcdir)/Modules/_zstd
#_uuid _uuidmodule.c -luuid
+#_zstd _zstd/_zstdmodule.c -lzstd -I$(srcdir)/Modules/_zstd
#zlib zlibmodule.c -lz
# The readline module also supports libeditline (-leditline).
diff --git a/Modules/Setup.stdlib.in b/Modules/Setup.stdlib.in
index 8b676ca69b081b..3a38a60a152e8c 100644
--- a/Modules/Setup.stdlib.in
+++ b/Modules/Setup.stdlib.in
@@ -69,7 +69,7 @@
@MODULE_BINASCII_TRUE@binascii binascii.c
@MODULE__BZ2_TRUE@_bz2 _bz2module.c
@MODULE__LZMA_TRUE@_lzma _lzmamodule.c
-@MODULE__ZSTD_TRUE@_zstd _zstd/_zstdmodule.c _zstd/zdict.c _zstd/compressor.c
_zstd/decompressor.c
+@MODULE__ZSTD_TRUE@_zstd _zstd/_zstdmodule.c _zstd/zstddict.c
_zstd/compressor.c _zstd/decompressor.c
@MODULE_ZLIB_TRUE@zlib zlibmodule.c
# dbm/gdbm
diff --git a/Modules/_zstd/clinic/zdict.c.h b/Modules/_zstd/clinic/zstddict.c.h
similarity index 100%
rename from Modules/_zstd/clinic/zdict.c.h
rename to Modules/_zstd/clinic/zstddict.c.h
diff --git a/Modules/_zstd/zdict.c b/Modules/_zstd/zstddict.c
similarity index 99%
rename from Modules/_zstd/zdict.c
rename to Modules/_zstd/zstddict.c
index 28ab964a6caa87..a19224c4a6403b 100644
--- a/Modules/_zstd/zdict.c
+++ b/Modules/_zstd/zstddict.c
@@ -136,7 +136,7 @@ _zstd_ZstdDict___init___impl(ZstdDict *self, PyObject
*dict_content,
}
#define clinic_state() (get_zstd_state(type))
-#include "clinic/zdict.c.h"
+#include "clinic/zstddict.c.h"
#undef clinic_state
PyDoc_STRVAR(ZstdDict_dictid_doc,
diff --git a/PCbuild/_zstd.vcxproj b/PCbuild/_zstd.vcxproj
new file mode 100644
index 00000000000000..b53f93a6af8d11
--- /dev/null
+++ b/PCbuild/_zstd.vcxproj
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="PGInstrument|ARM">
+ <Configuration>PGInstrument</Configuration>
+ <Platform>ARM</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="PGInstrument|ARM64">
+ <Configuration>PGInstrument</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="PGInstrument|Win32">
+ <Configuration>PGInstrument</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="PGInstrument|x64">
+ <Configuration>PGInstrument</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="PGUpdate|ARM">
+ <Configuration>PGUpdate</Configuration>
+ <Platform>ARM</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="PGUpdate|ARM64">
+ <Configuration>PGUpdate</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="PGUpdate|Win32">
+ <Configuration>PGUpdate</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="PGUpdate|x64">
+ <Configuration>PGUpdate</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM">
+ <Configuration>Release</Configuration>
+ <Platform>ARM</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{07029b86-f3e9-443e-86fb-78aa6d47fed1}</ProjectGuid>
+ <RootNamespace>_zstd</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="python.props" />
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Label="Configuration" />
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <PropertyGroup>
+ <TargetExt>$(PyStdlibPydExt)</TargetExt>
+ </PropertyGroup>
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label="LocalAppDataPlatform" />
+ <Import Project="pyproject.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <ItemDefinitionGroup>
+ <ClCompile>
+
<PreprocessorDefinitions>WIN32;ZSTD_MULTITHREAD=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+
<AdditionalIncludeDirectories>$(zstdDir)lib\;$(zstdDir)lib\common;$(zstdDir)lib\compress;$(zstdDir)lib\decompress;$(zstdDir)lib\dictBuilder;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Modules\_zstd\_zstdmodule.c" />
+ <ClCompile Include="..\Modules\_zstd\compressor.c" />
+ <ClCompile Include="..\Modules\_zstd\decompressor.c" />
+ <ClCompile Include="..\Modules\_zstd\zstddict.c" />
+ <ClCompile Include="$(zstdDir)lib\common\debug.c" />
+ <ClCompile Include="$(zstdDir)lib\common\entropy_common.c" />
+ <ClCompile Include="$(zstdDir)lib\common\error_private.c" />
+ <ClCompile Include="$(zstdDir)lib\common\fse_decompress.c" />
+ <ClCompile Include="$(zstdDir)lib\common\pool.c" />
+ <ClCompile Include="$(zstdDir)lib\common\threading.c" />
+ <ClCompile Include="$(zstdDir)lib\common\xxhash.c" />
+ <ClCompile Include="$(zstdDir)lib\common\zstd_common.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\fse_compress.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\hist.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\huf_compress.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_compress.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_literals.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_sequences.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_superblock.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_double_fast.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_fast.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_lazy.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_ldm.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_opt.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_preSplit.c" />
+ <ClCompile Include="$(zstdDir)lib\compress\zstdmt_compress.c" />
+ <ClCompile Include="$(zstdDir)lib\decompress\huf_decompress.c" />
+ <ClCompile Include="$(zstdDir)lib\decompress\zstd_ddict.c" />
+ <ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress.c" />
+ <ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress_block.c" />
+ <ClCompile Include="$(zstdDir)lib\dictBuilder\cover.c" />
+ <ClCompile Include="$(zstdDir)lib\dictBuilder\divsufsort.c" />
+ <ClCompile Include="$(zstdDir)lib\dictBuilder\fastcover.c" />
+ <ClCompile Include="$(zstdDir)lib\dictBuilder\zdict.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Modules\_zstd\_zstdmodule.h" />
+ <ClInclude Include="..\Modules\_zstd\buffer.h" />
+ <ClInclude Include="$(zstdDir)lib\common\bitstream.h" />
+ <ClInclude Include="$(zstdDir)lib\common\error_private.h" />
+ <ClInclude Include="$(zstdDir)lib\common\fse.h" />
+ <ClInclude Include="$(zstdDir)lib\common\huf.h" />
+ <ClInclude Include="$(zstdDir)lib\common\mem.h" />
+ <ClInclude Include="$(zstdDir)lib\common\pool.h" />
+ <ClInclude Include="$(zstdDir)lib\common\threading.h" />
+ <ClInclude Include="$(zstdDir)lib\common\xxhash.h" />
+ <ClInclude Include="$(zstdDir)lib\common\zstd_internal.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_compress.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_literals.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_sequences.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_superblock.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_cwksp.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_double_fast.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_fast.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_lazy.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_ldm.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_opt.h" />
+ <ClInclude Include="$(zstdDir)lib\compress\zstdmt_compress.h" />
+ <ClInclude Include="$(zstdDir)lib\decompress\zstd_ddict.h" />
+ <ClInclude Include="$(zstdDir)lib\zstd.h" />
+ <ClInclude Include="$(zstdDir)lib\zstd_errors.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\PC\python_nt.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="pythoncore.vcxproj">
+ <Project>{cf7ac3d1-e2df-41d2-bea6-1e2556cdea26}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
diff --git a/PCbuild/_zstd.vcxproj.filters b/PCbuild/_zstd.vcxproj.filters
new file mode 100644
index 00000000000000..d4d36063c85d09
--- /dev/null
+++ b/PCbuild/_zstd.vcxproj.filters
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files">
+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files">
+
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files\zstd">
+
<UniqueIdentifier>{971714e1-ff37-4240-87bf-a36f6afe764f}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Source Files\zstd">
+
<UniqueIdentifier>{deb43fb6-fa77-4c93-a333-85785fe5f68d}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\Modules\_zstd\_zstdmodule.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Modules\_zstd\compressor.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Modules\_zstd\decompressor.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\Modules\_zstd\zstddict.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\common\debug.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\common\entropy_common.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\common\error_private.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\common\fse_decompress.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\common\pool.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\common\threading.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\common\xxhash.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\common\zstd_common.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\fse_compress.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\hist.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\huf_compress.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_compress.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_literals.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_sequences.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_compress_superblock.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_double_fast.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_fast.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_lazy.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_ldm.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_opt.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstd_preSplit.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\compress\zstdmt_compress.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\decompress\huf_decompress.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\decompress\zstd_ddict.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\decompress\zstd_decompress_block.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\dictBuilder\cover.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\dictBuilder\divsufsort.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\dictBuilder\fastcover.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ <ClCompile Include="$(zstdDir)lib\dictBuilder\zdict.c">
+ <Filter>Source Files\zstd</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\Modules\_zstd\_zstdmodule.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\Modules\_zstd\buffer.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\zstd.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\zstd_errors.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\bitstream.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\error_private.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\fse.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\huf.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\mem.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\pool.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\threading.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\xxhash.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\common\zstd_internal.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_compress.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_literals.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_sequences.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_compress_superblock.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_cwksp.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_double_fast.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_fast.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_lazy.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_ldm.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstd_opt.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\compress\zstdmt_compress.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ <ClInclude Include="$(zstdDir)lib\decompress\zstd_ddict.h">
+ <Filter>Header Files\zstd</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\PC\python_nt.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project>
diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat
index 49ace616793d8e..e29054f5734d49 100644
--- a/PCbuild/get_externals.bat
+++ b/PCbuild/get_externals.bat
@@ -61,6 +61,7 @@ if NOT "%IncludeTkinterSrc%"=="false" set
libraries=%libraries% tcl-core-8.6.15.
if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tk-8.6.15.0
set libraries=%libraries% xz-5.2.5
set libraries=%libraries% zlib-ng-2.2.4
+set libraries=%libraries% zstd-1.5.7
for %%e in (%libraries%) do (
if exist "%EXTERNALS_DIR%\%%e" (
diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj
index da603eed1b332f..7a5327bf016cea 100644
--- a/PCbuild/pcbuild.proj
+++ b/PCbuild/pcbuild.proj
@@ -69,7 +69,7 @@
<ExtensionModules
Include="_asyncio;_decimal;_elementtree;_multiprocessing;_overlapped;pyexpat;_queue;_remote_debugging;select;unicodedata;winsound;_uuid;_wmi;_zoneinfo"
/>
<ExtensionModules Include="_ctypes" Condition="$(IncludeCTypes)" />
<!-- Extension modules that require external sources -->
- <ExternalModules Include="_bz2;_lzma;_sqlite3" />
+ <ExternalModules Include="_bz2;_lzma;_sqlite3;_zstd" />
<!-- venv launchers -->
<Projects Include="venvlauncher.vcxproj;venvwlauncher.vcxproj" />
<!-- _ssl will build _socket as well, which may cause conflicts in
parallel builds -->
diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln
index 45e46095c9942e..7296ea75301157 100644
--- a/PCbuild/pcbuild.sln
+++ b/PCbuild/pcbuild.sln
@@ -11,6 +11,7 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python",
"python.vcxproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}"
ProjectSection(ProjectDependencies) = postProject
{01FDF29A-40A1-46DF-84F5-85EBBD2A2410} =
{01FDF29A-40A1-46DF-84F5-85EBBD2A2410}
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1} =
{07029B86-F3E9-443E-86FB-78AA6D47FED1}
{0E9791DB-593A-465F-98BC-681011311617} =
{0E9791DB-593A-465F-98BC-681011311617}
{0E9791DB-593A-465F-98BC-681011311618} =
{0E9791DB-593A-465F-98BC-681011311618}
{12728250-16EC-4DC6-94D7-E21DD88947F8} =
{12728250-16EC-4DC6-94D7-E21DD88947F8}
@@ -165,6 +166,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") =
"zlib-ng", "zlib-ng.vcxproj"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_remote_debugging",
"_remote_debugging.vcxproj", "{4D7C112F-3083-4D9E-9754-9341C14D9B39}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_zstd", "_zstd.vcxproj",
"{07029B86-F3E9-443E-86FB-78AA6D47FED1}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
@@ -1750,6 +1753,38 @@ Global
{4D7C112F-3083-4D9E-9754-9341C14D9B39}.Release|Win32.Build.0 =
Release|Win32
{4D7C112F-3083-4D9E-9754-9341C14D9B39}.Release|x64.ActiveCfg =
Release|x64
{4D7C112F-3083-4D9E-9754-9341C14D9B39}.Release|x64.Build.0 =
Release|x64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|ARM.ActiveCfg =
Debug|ARM
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|ARM.Build.0 =
Debug|ARM
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|ARM64.ActiveCfg =
Debug|ARM64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|ARM64.Build.0 =
Debug|ARM64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|Win32.ActiveCfg =
Debug|Win32
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|Win32.Build.0 =
Debug|Win32
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|x64.ActiveCfg =
Debug|x64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Debug|x64.Build.0 =
Debug|x64
+
{07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|ARM.ActiveCfg =
PGInstrument|ARM
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|ARM.Build.0
= PGInstrument|ARM
+
{07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|ARM64.ActiveCfg =
PGInstrument|ARM64
+
{07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|ARM64.Build.0 =
PGInstrument|ARM64
+
{07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|Win32.ActiveCfg =
PGInstrument|Win32
+
{07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|Win32.Build.0 =
PGInstrument|Win32
+
{07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|x64.ActiveCfg =
PGInstrument|x64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGInstrument|x64.Build.0
= PGInstrument|x64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|ARM.ActiveCfg =
PGUpdate|ARM
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|ARM.Build.0 =
PGUpdate|ARM
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|ARM64.ActiveCfg
= PGUpdate|ARM64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|ARM64.Build.0 =
PGUpdate|ARM64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|Win32.ActiveCfg
= PGUpdate|Win32
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|Win32.Build.0 =
PGUpdate|Win32
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|x64.ActiveCfg =
PGUpdate|x64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.PGUpdate|x64.Build.0 =
PGUpdate|x64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|ARM.ActiveCfg =
Release|ARM
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|ARM.Build.0 =
Release|ARM
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|ARM64.ActiveCfg
= Release|ARM64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|ARM64.Build.0 =
Release|ARM64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|Win32.ActiveCfg
= Release|Win32
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|Win32.Build.0 =
Release|Win32
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|x64.ActiveCfg =
Release|x64
+ {07029B86-F3E9-443E-86FB-78AA6D47FED1}.Release|x64.Build.0 =
Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/PCbuild/python.props b/PCbuild/python.props
index 7cb9ad8e65b56e..ddc7696d2762fe 100644
--- a/PCbuild/python.props
+++ b/PCbuild/python.props
@@ -87,6 +87,7 @@
<nasmDir Condition="$(nasmDir) ==
''">$(ExternalsDir)\nasm-2.11.06\</nasmDir>
<zlibDir Condition="$(zlibDir) == ''">$(ExternalsDir)\zlib-1.3.1\</zlibDir>
<zlibNgDir Condition="$(zlibNgDir) ==
''">$(ExternalsDir)\zlib-ng-2.2.4\</zlibNgDir>
+ <zstdDir Condition="$(zstdDir) == ''">$(ExternalsDir)\zstd-1.5.7\</zstdDir>
</PropertyGroup>
<PropertyGroup>
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index 3bf215d907c52c..01e19aabdecdc7 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -262,6 +262,10 @@ zlib-ng
Sources for zlib-ng are imported unmodified into our source
repository at https://github.com/python/cpython-source-deps.
+_zstd
+ Python wrapper for version 1.5.7 of the Zstandard compression library
+ Homepage:
+ https://facebook.github.io/zstd/
Getting External Sources
diff --git a/PCbuild/regen.targets b/PCbuild/regen.targets
index e7822a126c6304..3ad17737807235 100644
--- a/PCbuild/regen.targets
+++ b/PCbuild/regen.targets
@@ -157,7 +157,8 @@
<_LicenseSources Include="$(PySourcePath)LICENSE;
$(PySourcePath)PC\crtlicense.txt;
$(bz2Dir)LICENSE;
- $(libffiDir)LICENSE;" />
+ $(libffiDir)LICENSE;
+ $(zstdDir)\LICENSE;" />
<_LicenseSources Include="$(opensslOutDir)LICENSE.txt"
Condition="Exists('$(opensslOutDir)LICENSE.txt')" />
<_LicenseSources Include="$(opensslOutDir)LICENSE"
Condition="!Exists('$(opensslOutDir)LICENSE.txt')" />
<_LicenseSources Include="$(tcltkDir)tcllicense.terms;
diff --git a/Tools/msi/freethreaded/freethreaded_files.wxs
b/Tools/msi/freethreaded/freethreaded_files.wxs
index b3ce28e7aedc84..86d9a8b83f6535 100644
--- a/Tools/msi/freethreaded/freethreaded_files.wxs
+++ b/Tools/msi/freethreaded/freethreaded_files.wxs
@@ -103,7 +103,7 @@
</ComponentGroup>
</Fragment>
- <?define
exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo;_testcapi;_ctypes_test;_testbuffer;_testimportmultiple;_testmultiphase;_testsinglephase;_testconsole;_testinternalcapi;_testclinic;_testclinic_limited;_tkinter
?>
+ <?define
exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo;_zstd;_testcapi;_ctypes_test;_testbuffer;_testimportmultiple;_testmultiphase;_testsinglephase;_testconsole;_testinternalcapi;_testclinic;_testclinic_limited;_tkinter
?>
<Fragment>
<DirectoryRef Id="Lib_venv_scripts_nt__freethreaded" />
diff --git a/Tools/msi/lib/lib_files.wxs b/Tools/msi/lib/lib_files.wxs
index b8e16b5fe238a0..8439518bcbd804 100644
--- a/Tools/msi/lib/lib_files.wxs
+++ b/Tools/msi/lib/lib_files.wxs
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
- <?define
exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo
?>
+ <?define
exts=pyexpat;select;unicodedata;winsound;_bz2;_elementtree;_socket;_ssl;_ctypes;_hashlib;_multiprocessing;_lzma;_decimal;_overlapped;_sqlite3;_asyncio;_queue;_uuid;_wmi;_zoneinfo;_zstd
?>
<Fragment>
<DirectoryRef Id="Lib_venv_scripts_nt" />
diff --git a/configure b/configure
index a1069509406a34..383b8b53b57d92 100755
--- a/configure
+++ b/configure
@@ -29769,9 +29769,9 @@ SRCDIRS="\
Modules/_testinternalcapi \
Modules/_testlimitedcapi \
Modules/_xxtestfuzz \
+ Modules/_zstd \
Modules/cjkcodecs \
Modules/expat \
- Modules/_zstd \
Objects \
Objects/mimalloc \
Objects/mimalloc/prim \
diff --git a/configure.ac b/configure.ac
index 4efd0328691d19..2c77f3ae9fee58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7119,9 +7119,9 @@ SRCDIRS="\
Modules/_testinternalcapi \
Modules/_testlimitedcapi \
Modules/_xxtestfuzz \
+ Modules/_zstd \
Modules/cjkcodecs \
Modules/expat \
- Modules/_zstd \
Objects \
Objects/mimalloc \
Objects/mimalloc/prim \
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]