|
- diff -Naur Python-3.8.0-orig/configure.ac Python-3.8.0/configure.ac
- --- Python-3.8.0-orig/configure.ac 2019-10-22 10:02:29.123698700 +0300
- +++ Python-3.8.0/configure.ac 2019-10-22 10:02:56.595346900 +0300
- @@ -598,6 +598,65 @@
- AC_DEFINE(_INCLUDE__STDC_A1_SOURCE, 1, Define to include mbstate_t for mbrtowc)
- fi
-
- +# On 'semi-native' build systems (MSYS*/Cygwin targeting MinGW-w64)
- +# _sysconfigdata.py will contain paths that are correct only in the
- +# build environment. This means external modules will fail to build
- +# without setting up the same env and also that the build of Python
- +# itself will fail as the paths are not correct for the host tools.
- +#
- +# Also, getpath.c uses GetModuleFileNameW (replacing \ with /) and
- +# compares that with the define VPATH (passed in via command-line)
- +# to determine whether it's the build- or the installed-Python.
- +#
- +# To work around these issues a set of _b2h variables are created:
- +# VPATH_b2h, prefix_b2h, srcdir_b2h, abs_srcdir_b2h
- +# and abs_builddir_b2h
- +# .. where b2h stands for build to host. sysconfig.py replaces path
- +# prefixes matching the non-b2h versions with the b2h equivalents.
- +#
- +# (note this assumes the host compilers are native and *not* cross
- +# - in the 'semi-native' scenario only that is.)
- +
- +AC_DEFUN([ABS_PATH_HOST],
- +[$1=$(cd $$2 && pwd)
- + case $build_os in
- + mingw*)
- + case $host_os in
- + mingw*) $1=$(cd $$2 && pwd -W) ;;
- + *) ;;
- + esac
- + ;;
- + cygwin*)
- + case $host_os in
- + mingw*) $1=$(cygpath -w -m $$2) ;;
- + *) ;;
- + esac
- + ;;
- + esac
- +AC_SUBST([$1])
- +])
- +
- +AC_MSG_CHECKING(absolute host location of VPATH)
- +ABS_PATH_HOST([VPATH_b2h],[srcdir])
- +AC_MSG_RESULT([$VPATH_b2h])
- +
- +AC_MSG_CHECKING(absolute host location of prefix)
- +ABS_PATH_HOST([prefix_b2h],[prefix])
- +AC_MSG_RESULT([$prefix_b2h])
- +
- +AC_MSG_CHECKING(absolute host location of srcdir)
- +ABS_PATH_HOST([srcdir_b2h],[srcdir])
- +AC_MSG_RESULT([$srcdir_b2h])
- +
- +AC_MSG_CHECKING(absolute host location of abs_srcdir)
- +ABS_PATH_HOST([abs_srcdir_b2h],[srcdir])
- +AC_MSG_RESULT([$abs_srcdir_b2h])
- +
- +my_builddir=.
- +AC_MSG_CHECKING(Absolute host location of abs_builddir)
- +ABS_PATH_HOST([abs_builddir_b2h],[my_builddir])
- +AC_MSG_RESULT([$abs_builddir_b2h])
- +
- AC_MSG_CHECKING([for init system calls])
- AC_SUBST(INITSYS)
- case $host in
- diff -Naur Python-3.8.0-orig/Lib/sysconfig.py Python-3.8.0/Lib/sysconfig.py
- --- Python-3.8.0-orig/Lib/sysconfig.py 2019-10-22 10:02:09.342863900 +0300
- +++ Python-3.8.0/Lib/sysconfig.py 2019-10-22 10:02:57.000947600 +0300
- @@ -329,6 +329,14 @@
- if isinstance(v, str):
- done[k] = v.strip()
-
- + # any keys that have one with the same name suffixed with _b2h
- + # need to be replaced with the value of the _b2h key.
- + # This converts from MSYS*/Cygwin paths to Windows paths.
- + for k, v in dict(done).items():
- + if isinstance(k, str):
- + if k.endswith("_b2h"):
- + done[k[:-4]]=v
- +
- # save the results in the global dictionary
- vars.update(done)
- return vars
- diff -Naur Python-3.8.0-orig/Makefile.pre.in Python-3.8.0/Makefile.pre.in
- --- Python-3.8.0-orig/Makefile.pre.in 2019-10-22 10:01:28.376191900 +0300
- +++ Python-3.8.0/Makefile.pre.in 2019-10-22 10:02:57.390948300 +0300
- @@ -137,6 +137,13 @@
- # Install prefix for data files
- datarootdir= @datarootdir@
-
- +# Locations needed for semi-native fixup of sysconfig.
- +srcdir_b2h= @srcdir_b2h@
- +VPATH_b2h= @VPATH_b2h@
- +abs_srcdir_b2h= @abs_srcdir_b2h@
- +abs_builddir_b2h= @abs_builddir_b2h@
- +prefix_b2h= @prefix_b2h@
- +
- # Expanded directories
- BINDIR= @bindir@
- LIBDIR= @libdir@
|