mirror of
https://github.com/python/cpython
synced 2024-09-16 00:17:02 +00:00
bpo-45582: Fix test_embed failure during a PGO build on Windows (GH-30014)
This defines VPATH differently in PGO instrumentation builds, to account for a different default output directory. It also adds sys._vpath on Windows to make the value available to sysconfig so that it can be used in tests.
This commit is contained in:
parent
036bbb1d1b
commit
3f398a77d3
|
@ -616,6 +616,7 @@ def get_config_vars(*args):
|
||||||
|
|
||||||
if os.name == 'nt':
|
if os.name == 'nt':
|
||||||
_init_non_posix(_CONFIG_VARS)
|
_init_non_posix(_CONFIG_VARS)
|
||||||
|
_CONFIG_VARS['VPATH'] = sys._vpath
|
||||||
if os.name == 'posix':
|
if os.name == 'posix':
|
||||||
_init_posix(_CONFIG_VARS)
|
_init_posix(_CONFIG_VARS)
|
||||||
# For backward compatibility, see issue19555
|
# For backward compatibility, see issue19555
|
||||||
|
|
|
@ -1300,11 +1300,16 @@ def test_init_pybuilddir(self):
|
||||||
def test_init_pybuilddir_win32(self):
|
def test_init_pybuilddir_win32(self):
|
||||||
# Test path configuration with pybuilddir.txt configuration file
|
# Test path configuration with pybuilddir.txt configuration file
|
||||||
|
|
||||||
with self.tmpdir_with_python(r'PCbuild\arch') as tmpdir:
|
vpath = sysconfig.get_config_var("VPATH")
|
||||||
|
subdir = r'PCbuild\arch'
|
||||||
|
if os.path.normpath(vpath).count(os.sep) == 2:
|
||||||
|
subdir = os.path.join(subdir, 'instrumented')
|
||||||
|
|
||||||
|
with self.tmpdir_with_python(subdir) as tmpdir:
|
||||||
# The prefix is dirname(executable) + VPATH
|
# The prefix is dirname(executable) + VPATH
|
||||||
prefix = os.path.normpath(os.path.join(tmpdir, r'..\..'))
|
prefix = os.path.normpath(os.path.join(tmpdir, vpath))
|
||||||
# The stdlib dir is dirname(executable) + VPATH + 'Lib'
|
# The stdlib dir is dirname(executable) + VPATH + 'Lib'
|
||||||
stdlibdir = os.path.normpath(os.path.join(tmpdir, r'..\..\Lib'))
|
stdlibdir = os.path.normpath(os.path.join(tmpdir, vpath, 'Lib'))
|
||||||
|
|
||||||
filename = os.path.join(tmpdir, 'pybuilddir.txt')
|
filename = os.path.join(tmpdir, 'pybuilddir.txt')
|
||||||
with open(filename, "w", encoding="utf8") as fp:
|
with open(filename, "w", encoding="utf8") as fp:
|
||||||
|
|
|
@ -187,7 +187,7 @@
|
||||||
|
|
||||||
elif os_name == 'nt':
|
elif os_name == 'nt':
|
||||||
BUILDDIR_TXT = 'pybuilddir.txt'
|
BUILDDIR_TXT = 'pybuilddir.txt'
|
||||||
BUILD_LANDMARK = r'..\..\Modules\Setup.local'
|
BUILD_LANDMARK = f'{VPATH}\\Modules\\Setup.local'
|
||||||
DEFAULT_PROGRAM_NAME = f'python'
|
DEFAULT_PROGRAM_NAME = f'python'
|
||||||
STDLIB_SUBDIR = 'Lib'
|
STDLIB_SUBDIR = 'Lib'
|
||||||
STDLIB_LANDMARKS = [f'{STDLIB_SUBDIR}\\os.py', f'{STDLIB_SUBDIR}\\os.pyc']
|
STDLIB_LANDMARKS = [f'{STDLIB_SUBDIR}\\os.py', f'{STDLIB_SUBDIR}\\os.pyc']
|
||||||
|
|
|
@ -226,7 +226,9 @@
|
||||||
<ClCompile Include="..\Python\structmember.c" />
|
<ClCompile Include="..\Python\structmember.c" />
|
||||||
<ClCompile Include="..\Python\suggestions.c" />
|
<ClCompile Include="..\Python\suggestions.c" />
|
||||||
<ClCompile Include="..\Python\symtable.c" />
|
<ClCompile Include="..\Python\symtable.c" />
|
||||||
<ClCompile Include="..\Python\sysmodule.c" />
|
<ClCompile Include="..\Python\sysmodule.c">
|
||||||
|
<PreprocessorDefinitions>VPATH="$(PyVPath)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\Python\thread.c" />
|
<ClCompile Include="..\Python\thread.c" />
|
||||||
<ClCompile Include="..\Python\traceback.c" />
|
<ClCompile Include="..\Python\traceback.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -53,6 +53,10 @@
|
||||||
<BuildPath Condition="!HasTrailingSlash($(BuildPath))">$(BuildPath)\</BuildPath>
|
<BuildPath Condition="!HasTrailingSlash($(BuildPath))">$(BuildPath)\</BuildPath>
|
||||||
<BuildPath Condition="$(Configuration) == 'PGInstrument'">$(BuildPath)instrumented\</BuildPath>
|
<BuildPath Condition="$(Configuration) == 'PGInstrument'">$(BuildPath)instrumented\</BuildPath>
|
||||||
|
|
||||||
|
<!-- VPATH definition (escaped) -->
|
||||||
|
<PyVPath Condition="$(Configuration) != 'PGInstrument'">..\\..</PyVPath>
|
||||||
|
<PyVPath Condition="$(Configuration) == 'PGInstrument'">..\\..\\..</PyVPath>
|
||||||
|
|
||||||
<!-- Directories of external projects. tcltk is handled in tcltk.props -->
|
<!-- Directories of external projects. tcltk is handled in tcltk.props -->
|
||||||
<ExternalsDir>$(EXTERNALS_DIR)</ExternalsDir>
|
<ExternalsDir>$(EXTERNALS_DIR)</ExternalsDir>
|
||||||
<ExternalsDir Condition="$(ExternalsDir) == ''">$([System.IO.Path]::GetFullPath(`$(PySourcePath)externals`))</ExternalsDir>
|
<ExternalsDir Condition="$(ExternalsDir) == ''">$([System.IO.Path]::GetFullPath(`$(PySourcePath)externals`))</ExternalsDir>
|
||||||
|
|
|
@ -115,7 +115,7 @@
|
||||||
PREFIX=NULL;
|
PREFIX=NULL;
|
||||||
EXEC_PREFIX=NULL;
|
EXEC_PREFIX=NULL;
|
||||||
VERSION=NULL;
|
VERSION=NULL;
|
||||||
VPATH="..\\..";
|
VPATH="$(PyVPath)";
|
||||||
PYDEBUGEXT="$(PyDebugExt)";
|
PYDEBUGEXT="$(PyDebugExt)";
|
||||||
PLATLIBDIR="DLLs";
|
PLATLIBDIR="DLLs";
|
||||||
%(PreprocessorDefinitions)
|
%(PreprocessorDefinitions)
|
||||||
|
@ -519,7 +519,9 @@
|
||||||
<ClCompile Include="..\Python\suggestions.c" />
|
<ClCompile Include="..\Python\suggestions.c" />
|
||||||
<ClCompile Include="..\Python\structmember.c" />
|
<ClCompile Include="..\Python\structmember.c" />
|
||||||
<ClCompile Include="..\Python\symtable.c" />
|
<ClCompile Include="..\Python\symtable.c" />
|
||||||
<ClCompile Include="..\Python\sysmodule.c" />
|
<ClCompile Include="..\Python\sysmodule.c">
|
||||||
|
<PreprocessorDefinitions>VPATH="$(PyVPath)";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\Python\thread.c" />
|
<ClCompile Include="..\Python\thread.c" />
|
||||||
<ClCompile Include="..\Python\traceback.c" />
|
<ClCompile Include="..\Python\traceback.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -2823,6 +2823,8 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict)
|
||||||
goto type_init_failed;
|
goto type_init_failed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SET_SYS_FROM_STRING("_vpath", VPATH);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* float repr style: 0.03 (short) vs 0.029999999999999999 (legacy) */
|
/* float repr style: 0.03 (short) vs 0.029999999999999999 (legacy) */
|
||||||
|
|
Loading…
Reference in a new issue