| 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()): |