[Python-checkins] bpo-37351: Removes libpython38.a from standard Windows distribution (GH-14276)

Steve Dower webhook-mailer at python.org
Sat Jun 22 17:08:07 EDT 2019


https://github.com/python/cpython/commit/fa23bd286fb7719bd7601da0b713457589f5536f
commit: fa23bd286fb7719bd7601da0b713457589f5536f
branch: 3.8
author: Steve Dower <steve.dower at python.org>
committer: GitHub <noreply at github.com>
date: 2019-06-22T14:08:02-07:00
summary:

bpo-37351: Removes libpython38.a from standard Windows distribution (GH-14276)

files:
A Misc/NEWS.d/next/Windows/2019-06-20-12-50-32.bpo-37351.asTnVW.rst
M Doc/whatsnew/3.8.rst
M Tools/msi/README.txt
M Tools/msi/dev/dev.wixproj
M Tools/msi/dev/dev.wxs
M Tools/msi/dev/dev_files.wxs

diff --git a/Doc/whatsnew/3.8.rst b/Doc/whatsnew/3.8.rst
index 86d092c3b29d..5ec3b4f46374 100644
--- a/Doc/whatsnew/3.8.rst
+++ b/Doc/whatsnew/3.8.rst
@@ -1458,6 +1458,25 @@ Changes in the C API
 * The functions :c:func:`PyNode_AddChild` and :c:func:`PyParser_AddToken` now accept
   two additional ``int`` arguments *end_lineno* and *end_col_offset*.
 
+.. highlight:: shell
+
+* The :file:`libpython38.a` file to allow MinGW tools to link directly against
+  :file:`python38.dll` is no longer included in the regular Windows distribution.
+  If you require this file, it may be generated with the ``gendef`` and
+  ``dlltool`` tools, which are part of the MinGW binutils package::
+
+      gendef python38.dll > tmp.def
+      dlltool --dllname python38.dll --def tmp.def --output-lib libpython38.a
+
+  The location of an installed :file:`pythonXY.dll` will depend on the
+  installation options and the version and language of Windows. See
+  :ref:`using-on-windows` for more information. The resulting library should be
+  placed in the same directory as :file:`pythonXY.lib`, which is generally the
+  :file:`libs` directory under your Python installation.
+
+.. highlight:: python3
+
+
 CPython bytecode changes
 ------------------------
 
diff --git a/Misc/NEWS.d/next/Windows/2019-06-20-12-50-32.bpo-37351.asTnVW.rst b/Misc/NEWS.d/next/Windows/2019-06-20-12-50-32.bpo-37351.asTnVW.rst
new file mode 100644
index 000000000000..df2efd4a9a41
--- /dev/null
+++ b/Misc/NEWS.d/next/Windows/2019-06-20-12-50-32.bpo-37351.asTnVW.rst
@@ -0,0 +1 @@
+Removes libpython38.a from standard Windows distribution.
diff --git a/Tools/msi/README.txt b/Tools/msi/README.txt
index 07ea9f744bd0..f5656b971b3c 100644
--- a/Tools/msi/README.txt
+++ b/Tools/msi/README.txt
@@ -159,9 +159,7 @@ The following properties may be passed when building these projects.
 
   /p:BuildForRelease=(true|false)
     When true, adds extra verification to ensure a complete installer is
-    produced. For example, binutils is required when building for a release
-    to generate MinGW-compatible libraries, and the build will be aborted if
-    this fails. Defaults to false.
+    produced. Defaults to false.
 
   /p:ReleaseUri=(any URI)
     Used to generate unique IDs for the installers to allow side-by-side
diff --git a/Tools/msi/dev/dev.wixproj b/Tools/msi/dev/dev.wixproj
index c6e3bcf709c6..4052e4b53682 100644
--- a/Tools/msi/dev/dev.wixproj
+++ b/Tools/msi/dev/dev.wixproj
@@ -7,12 +7,6 @@
         <OutputType>Package</OutputType>
     </PropertyGroup>
     <Import Project="..\msi.props" />
-    <PropertyGroup>
-        <DefineConstants Condition="$(BuildForRelease) and $(SuppressMinGWLib) == ''">
-            $(DefineConstants);
-            IncludeMinGWLib=1;
-        </DefineConstants>
-    </PropertyGroup>
     <ItemGroup>
         <Compile Include="dev.wxs" />
         <Compile Include="dev_files.wxs" />
@@ -31,20 +25,5 @@
         </InstallFiles>
     </ItemGroup>
 
-    <Target Name="BuildMinGWLib"
-            Inputs="$(BuildPath)$(PyDllName).dll"
-            Outputs="$(BuildPath)lib$(PyDllName).a"
-            AfterTargets="PrepareForBuild"
-            Condition="$(BuildForRelease) and $(SuppressMinGWLib) == ''">
-        <!-- Build libpython##.a as part of this project. This requires gendef and dlltool on the path. -->
-        <PropertyGroup>
-            <_DllToolOpts>-m i386 --as-flags=--32</_DllToolOpts>
-            <_DllToolOpts Condition="$(Platform) == 'x64'">-m i386:x86-64</_DllToolOpts>
-        </PropertyGroup>
-
-        <Exec Command='gendef - "$(BuildPath)$(PyDllName).dll" > "$(IntermediateOutputPath)mingwlib.def"' ContinueOnError="false" />
-        <Exec Command='dlltool --dllname $(PyDllName).dll --def "$(IntermediateOutputPath)mingwlib.def" --output-lib "$(BuildPath)lib$(PyDllName).a" $(_DllToolOpts)' />
-    </Target>
-
     <Import Project="..\msi.targets" />
 </Project>
diff --git a/Tools/msi/dev/dev.wxs b/Tools/msi/dev/dev.wxs
index a09e139c428b..23a710df87d5 100644
--- a/Tools/msi/dev/dev.wxs
+++ b/Tools/msi/dev/dev.wxs
@@ -10,9 +10,6 @@
             <ComponentGroupRef Id="dev_include" />
             <ComponentGroupRef Id="dev_pyconfig" />
             <ComponentGroupRef Id="dev_libs" />
-<?ifdef IncludeMinGWLib ?>
-            <ComponentGroupRef Id="dev_mingw" />
-<?endif ?>
             <ComponentRef Id="OptionalFeature" />
         </Feature>
     </Product>
diff --git a/Tools/msi/dev/dev_files.wxs b/Tools/msi/dev/dev_files.wxs
index 9654d2e3e600..21f9c848cc6b 100644
--- a/Tools/msi/dev/dev_files.wxs
+++ b/Tools/msi/dev/dev_files.wxs
@@ -29,14 +29,4 @@
             </Component>
         </ComponentGroup>
     </Fragment>
-    
-    <?ifdef IncludeMinGWLib ?>
-    <Fragment>
-        <ComponentGroup Id="dev_mingw">
-            <Component Id="libs_libpython.a" Directory="libs" Guid="*">
-                <File Id="libs_libpython.a" Name="libpython$(var.MajorVersionNumber)$(var.MinorVersionNumber).a" KeyPath="yes" />
-            </Component>
-        </ComponentGroup>
-    </Fragment>
-    <?endif ?>
 </Wix>



More information about the Python-checkins mailing list