blob: d4753273a04e2e143b918cb54e06140fe051461b [file] [log] [blame]
diff -Naur Python-3.8.0-orig/Lib/distutils/sysconfig.py Python-3.8.0/Lib/distutils/sysconfig.py
--- Python-3.8.0-orig/Lib/distutils/sysconfig.py 2019-10-22 10:01:10.872961200 +0300
+++ Python-3.8.0/Lib/distutils/sysconfig.py 2019-10-22 10:02:18.890080700 +0300
@@ -65,6 +65,17 @@
python_build = _python_build()
+def _posix_build():
+ # GCC[mingw*] use posix build system
+ # Check for cross builds explicitly
+ host_platform = os.environ.get("_PYTHON_HOST_PLATFORM")
+ if host_platform:
+ if host_platform.startswith('mingw'):
+ return True
+ return os.name == 'posix' or \
+ (os.name == "nt" and 'GCC' in sys.version)
+posix_build = _posix_build()
+
# Calculate the build qualifier flags if they are defined. Adding the flags
# to the include and lib directories only makes sense for an installation, not
# an in-source build.
@@ -98,7 +109,7 @@
"""
if prefix is None:
prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX
- if os.name == "posix":
+ if posix_build:
if python_build:
# Assume the executable is in the build directory. The
# pyconfig.h file should be in the same directory. Since
@@ -145,7 +156,7 @@
else:
prefix = plat_specific and EXEC_PREFIX or PREFIX
- if os.name == "posix":
+ if posix_build:
libpython = os.path.join(prefix,
"lib", "python" + get_python_version())
if standard_lib:
@@ -255,7 +266,7 @@
def get_config_h_filename():
"""Return full pathname of installed pyconfig.h file."""
if python_build:
- if os.name == "nt":
+ if os.name == "nt" and not posix_build:
inc_dir = os.path.join(_sys_home or project_base, "PC")
else:
inc_dir = _sys_home or project_base
@@ -461,6 +472,9 @@
def _init_nt():
+ if posix_build:
+ _init_posix()
+ return
"""Initialize the module as appropriate for NT"""
g = {}
# set basic install directories
@@ -510,7 +524,7 @@
# Always convert srcdir to an absolute path
srcdir = _config_vars.get('srcdir', project_base)
- if os.name == 'posix':
+ if posix_build:
if python_build:
# If srcdir is a relative path (typically '.' or '..')
# then it should be interpreted relative to the directory
@@ -529,7 +543,7 @@
# Normally it is relative to the build directory. However, during
# testing, for example, we might be running a non-installed python
# from a different directory.
- if python_build and os.name == "posix":
+ if python_build and posix_build:
base = project_base
if (not os.path.isabs(_config_vars['srcdir']) and
base != os.getcwd()):