Skip to content

Commit 2f233f6

Browse files
authored
Merge pull request python#11 from paulmon/win-arm32-pip
pip requires distutils
2 parents 6657d0d + 7bac6bc commit 2f233f6

11 files changed

+62
-8
lines changed

Lib/distutils/tests/test_bdist.py

+5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
"""Tests for distutils.command.bdist."""
22
import os
3+
import platform
34
import unittest
45
from test.support import run_unittest
56

67
from distutils.command.bdist import bdist
78
from distutils.tests import support
89

910

11+
SKIP_MESSAGE = (None if platform.win32_editionId() != 'IoTUAP' else
12+
"These tests don't work on windows arm32")
13+
14+
@unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE)
1015
class BuildTestCase(support.TempdirManager,
1116
unittest.TestCase):
1217

Lib/distutils/tests/test_bdist_msi.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
"""Tests for distutils.command.bdist_msi."""
2+
import platform
23
import sys
34
import unittest
45
from test.support import run_unittest
56
from distutils.tests import support
67

78

8-
@unittest.skipUnless(sys.platform == 'win32', 'these tests require Windows')
9+
SKIP_MESSAGE = (None if sys.platform == "win32" and platform.win32_editionId() != 'IoTUAP' else
10+
"These tests require Windows x86 or x64. ARM is not supported")
11+
12+
@unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE)
913
class BDistMSITestCase(support.TempdirManager,
1014
support.LoggingSilencer,
1115
unittest.TestCase):

Lib/distutils/tests/test_bdist_wininst.py

+5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
"""Tests for distutils.command.bdist_wininst."""
2+
import platform
23
import unittest
34
from test.support import run_unittest
45

56
from distutils.command.bdist_wininst import bdist_wininst
67
from distutils.tests import support
78

9+
SKIP_MESSAGE = (None if platform.win32_editionId() != 'IoTUAP' else
10+
"These tests don't work on windows arm32")
11+
12+
@unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE)
813
class BuildWinInstTestCase(support.TempdirManager,
914
support.LoggingSilencer,
1015
unittest.TestCase):

Lib/distutils/tests/test_build_ext.py

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import sys
22
import os
3+
import platform
34
from io import StringIO
45
import textwrap
56

@@ -21,6 +22,10 @@
2122
ALREADY_TESTED = False
2223

2324

25+
SKIP_MESSAGE = (None if platform.win32_editionId() != 'IoTUAP' else
26+
"These tests don't work on windows arm32")
27+
28+
@unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE)
2429
class BuildExtTestCase(TempdirManager,
2530
LoggingSilencer,
2631
unittest.TestCase):

Lib/distutils/tests/test_msvc9compiler.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Tests for distutils.msvc9compiler."""
2+
import platform
23
import sys
34
import unittest
45
import os
@@ -90,7 +91,7 @@
9091
</dependency>
9192
</assembly>"""
9293

93-
if sys.platform=="win32":
94+
if sys.platform=="win32" and platform.win32_editionId() != 'IoTUAP':
9495
from distutils.msvccompiler import get_build_version
9596
if get_build_version()>=8.0:
9697
SKIP_MESSAGE = None

Lib/distutils/tests/test_msvccompiler.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Tests for distutils._msvccompiler."""
2+
import platform
23
import sys
34
import unittest
45
import os
@@ -8,7 +9,7 @@
89
from test.support import run_unittest
910

1011

11-
SKIP_MESSAGE = (None if sys.platform == "win32" else
12+
SKIP_MESSAGE = (None if sys.platform == "win32" and platform.win32_editionId() != 'IoTUAP' else
1213
"These tests are only for win32")
1314

1415
@unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE)

Lib/distutils/tests/test_sysconfig.py

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
"""Tests for distutils.sysconfig."""
22
import os
3+
import platform
34
import shutil
45
import subprocess
56
import sys
@@ -168,6 +169,7 @@ def test_SO_in_vars(self):
168169
self.assertIsNotNone(vars['SO'])
169170
self.assertEqual(vars['SO'], vars['EXT_SUFFIX'])
170171

172+
@unittest.skipIf(platform.win32_editionId() == 'IoTUAP', "API not present on Windows 10 IoT Core")
171173
def test_customize_compiler_before_get_config_vars(self):
172174
# Issue #21923: test that a Distribution compiler
173175
# instance can be called without an explicit call to

PCbuild/_distutils_findvs.vcxproj

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|ARM">
5+
<Configuration>Debug</Configuration>
6+
<Platform>ARM</Platform>
7+
</ProjectConfiguration>
48
<ProjectConfiguration Include="Debug|Win32">
59
<Configuration>Debug</Configuration>
610
<Platform>Win32</Platform>
@@ -9,6 +13,10 @@
913
<Configuration>Debug</Configuration>
1014
<Platform>x64</Platform>
1115
</ProjectConfiguration>
16+
<ProjectConfiguration Include="PGInstrument|ARM">
17+
<Configuration>PGInstrument</Configuration>
18+
<Platform>ARM</Platform>
19+
</ProjectConfiguration>
1220
<ProjectConfiguration Include="PGInstrument|Win32">
1321
<Configuration>PGInstrument</Configuration>
1422
<Platform>Win32</Platform>
@@ -17,6 +25,10 @@
1725
<Configuration>PGInstrument</Configuration>
1826
<Platform>x64</Platform>
1927
</ProjectConfiguration>
28+
<ProjectConfiguration Include="PGUpdate|ARM">
29+
<Configuration>PGUpdate</Configuration>
30+
<Platform>ARM</Platform>
31+
</ProjectConfiguration>
2032
<ProjectConfiguration Include="PGUpdate|Win32">
2133
<Configuration>PGUpdate</Configuration>
2234
<Platform>Win32</Platform>
@@ -25,6 +37,10 @@
2537
<Configuration>PGUpdate</Configuration>
2638
<Platform>x64</Platform>
2739
</ProjectConfiguration>
40+
<ProjectConfiguration Include="Release|ARM">
41+
<Configuration>Release</Configuration>
42+
<Platform>ARM</Platform>
43+
</ProjectConfiguration>
2844
<ProjectConfiguration Include="Release|Win32">
2945
<Configuration>Release</Configuration>
3046
<Platform>Win32</Platform>
@@ -61,7 +77,7 @@
6177
</PropertyGroup>
6278
<ItemDefinitionGroup>
6379
<Link>
64-
<AdditionalDependencies>version.lib;ole32.lib;oleaut32.lib;Microsoft.VisualStudio.Setup.Configuration.Native.lib;%(AdditionalDependencies)</AdditionalDependencies>
80+
<AdditionalDependencies>version.lib;ole32.lib;oleaut32.lib;%(AdditionalDependencies)</AdditionalDependencies>
6581
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(PySourcePath)PC\external\$(PlatformToolset)\$(ArchName)</AdditionalLibraryDirectories>
6682
</Link>
6783
</ItemDefinitionGroup>

PCbuild/pcbuild.sln

+4-2
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,8 @@ Global
992992
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|Win32.Build.0 = Release|Win32
993993
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.ActiveCfg = Release|x64
994994
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.Build.0 = Release|x64
995-
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|ARM.ActiveCfg = Debug|Win32
995+
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|ARM.ActiveCfg = Debug|ARM
996+
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|ARM.Build.0 = Debug|ARM
996997
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|Win32.ActiveCfg = Debug|Win32
997998
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|Win32.Build.0 = Debug|Win32
998999
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|x64.ActiveCfg = Debug|x64
@@ -1007,7 +1008,8 @@ Global
10071008
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGUpdate|Win32.Build.0 = PGUpdate|Win32
10081009
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGUpdate|x64.ActiveCfg = PGUpdate|x64
10091010
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGUpdate|x64.Build.0 = PGUpdate|x64
1010-
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|ARM.ActiveCfg = Release|Win32
1011+
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|ARM.ActiveCfg = Release|ARM
1012+
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|ARM.Build.0 = Release|ARM
10111013
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|Win32.ActiveCfg = Release|Win32
10121014
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|Win32.Build.0 = Release|Win32
10131015
{41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|x64.ActiveCfg = Release|x64

Python/ceval.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1625,7 +1625,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
16251625
exc = POP(); /* exc */
16261626
/* fall through */
16271627
case 0:
1628-
#ifdef _M_ARM
1628+
#if defined(_M_ARM) && !defined(DEBUG)
16291629
// work around optimizer problem on windows arm32
16301630
if (oparg == 2)
16311631
{

Tools/winiot/sync_win_iot.py

+14-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
}
4141

4242
EXCLUDE_FILE_FROM_LIBRARY = {
43-
'bdist_wininst.py',
43+
#'bdist_wininst.py',
4444
}
4545

4646
EXCLUDE_FILE_FROM_LIBS = {
@@ -107,6 +107,13 @@ def include_in_lib(p):
107107
suffix = p.suffix.lower()
108108
return suffix not in {'.pyc', '.pyo', '.exe'}
109109

110+
def include_in_libs(p):
111+
# if is_debug(p):
112+
# print ('include_in_libs: {} is debug'.format(p))
113+
# return False
114+
115+
return p.stem.lower() not in EXCLUDE_FILE_FROM_LIBS
116+
110117
def include_in_tools(p):
111118
if p.is_dir() and p.name.lower() in {'scripts', 'i18n', 'pynche', 'demo', 'parser'}:
112119
return True
@@ -122,7 +129,10 @@ def include_in_tools(p):
122129
('/', '$source', '{}.dll'.format(BASE_NAME), is_not_debug),
123130
('DLLs/', '$source', '*.pyd', is_not_debug),
124131
('DLLs/', '$source', '*.dll', is_not_python),
132+
('include/', 'include', '*.h', None),
133+
('include/', 'PC', 'pyconfig.h', None),
125134
('Lib/', 'Lib', '**/*', include_in_lib),
135+
('libs/', '$source', '*.lib', include_in_libs),
126136
('Tools/', 'Tools', '**/*', include_in_tools),
127137
]
128138

@@ -131,9 +141,12 @@ def include_in_tools(p):
131141
('/', '$source', 'pythonw_d.exe', is_debug),
132142
('/', '$source', 'python{}_d.dll'.format(sys.version_info.major), is_debug),
133143
('/', '$source', '{}_d.dll'.format(BASE_NAME), is_debug),
144+
('include/', 'include', '*.h', None),
145+
('include/', 'PC', 'pyconfig.h', None),
134146
('DLLs/', '$source', '*.pyd', is_debug),
135147
('DLLs/', '$source', '*.dll', is_not_python),
136148
('Lib/', 'Lib', '**/*', include_in_lib),
149+
('libs/', '$source', '*.lib', include_in_libs),
137150
('Tools/', 'Tools', '**/*', include_in_tools),
138151
]
139152

0 commit comments

Comments
 (0)