Issue #28046: get_sysconfigdata_name() uses the _PYTHON_SYSCONFIGDATA_NAME

environment variable that is defined when cross-compiling.
This commit is contained in:
Xavier de Gaye 2016-09-11 22:22:24 +02:00
parent ef71d20548
commit 92dec548ff
4 changed files with 14 additions and 31 deletions

View file

@ -342,19 +342,13 @@ def get_makefile_filename():
return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile')
def _get_sysconfigdata_name(vars=None):
if vars is None:
return '_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
abi=sys.abiflags,
platform=sys.platform,
multiarch=getattr(sys.implementation, '_multiarch', ''),
)
else:
return '_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
abi=vars['ABIFLAGS'],
platform=vars['MACHDEP'],
multiarch=vars.get('MULTIARCH', ''),
)
def _get_sysconfigdata_name():
return os.environ.get('_PYTHON_SYSCONFIGDATA_NAME',
'_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
abi=sys.abiflags,
platform=sys.platform,
multiarch=getattr(sys.implementation, '_multiarch', ''),
))
def _generate_posix_vars():
@ -397,7 +391,7 @@ def _generate_posix_vars():
# _sysconfigdata module manually and populate it with the build vars.
# This is more than sufficient for ensuring the subsequent call to
# get_platform() succeeds.
name = _get_sysconfigdata_name(vars)
name = _get_sysconfigdata_name()
if 'darwin' in sys.platform:
import types
module = types.ModuleType(name)