Skip to content

Commit 92dec54

Browse files
author
Xavier de Gaye
committed
Issue #28046: get_sysconfigdata_name() uses the _PYTHON_SYSCONFIGDATA_NAME
environment variable that is defined when cross-compiling.
1 parent ef71d20 commit 92dec54

File tree

4 files changed

+14
-31
lines changed

4 files changed

+14
-31
lines changed

‎Lib/distutils/sysconfig.py‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -418,11 +418,12 @@ def expand_makefile_vars(s, vars):
418418
def _init_posix():
419419
"""Initialize the module as appropriate for POSIX systems."""
420420
# _sysconfigdata is generated at build time, see the sysconfig module
421-
name = '_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
421+
name = os.environ.get('_PYTHON_SYSCONFIGDATA_NAME',
422+
'_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
422423
abi=sys.abiflags,
423424
platform=sys.platform,
424425
multiarch=getattr(sys.implementation, '_multiarch', ''),
425-
)
426+
))
426427
_temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
427428
build_time_vars = _temp.build_time_vars
428429
global _config_vars

‎Lib/sysconfig.py‎

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -342,19 +342,13 @@ def get_makefile_filename():
342342
return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile')
343343

344344

345-
def _get_sysconfigdata_name(vars=None):
346-
if vars is None:
347-
return '_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
348-
abi=sys.abiflags,
349-
platform=sys.platform,
350-
multiarch=getattr(sys.implementation, '_multiarch', ''),
351-
)
352-
else:
353-
return '_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
354-
abi=vars['ABIFLAGS'],
355-
platform=vars['MACHDEP'],
356-
multiarch=vars.get('MULTIARCH', ''),
357-
)
345+
def _get_sysconfigdata_name():
346+
return os.environ.get('_PYTHON_SYSCONFIGDATA_NAME',
347+
'_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
348+
abi=sys.abiflags,
349+
platform=sys.platform,
350+
multiarch=getattr(sys.implementation, '_multiarch', ''),
351+
))
358352

359353

360354
def _generate_posix_vars():
@@ -397,7 +391,7 @@ def _generate_posix_vars():
397391
# _sysconfigdata module manually and populate it with the build vars.
398392
# This is more than sufficient for ensuring the subsequent call to
399393
# get_platform() succeeds.
400-
name = _get_sysconfigdata_name(vars)
394+
name = _get_sysconfigdata_name()
401395
if 'darwin' in sys.platform:
402396
import types
403397
module = types.ModuleType(name)

‎configure‎

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,6 @@ infodir
784784
docdir
785785
oldincludedir
786786
includedir
787-
runstatedir
788787
localstatedir
789788
sharedstatedir
790789
sysconfdir
@@ -895,7 +894,6 @@ datadir='${datarootdir}'
895894
sysconfdir='${prefix}/etc'
896895
sharedstatedir='${prefix}/com'
897896
localstatedir='${prefix}/var'
898-
runstatedir='${localstatedir}/run'
899897
includedir='${prefix}/include'
900898
oldincludedir='/usr/include'
901899
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1148,15 +1146,6 @@ do
11481146
| -silent | --silent | --silen | --sile | --sil)
11491147
silent=yes ;;
11501148

1151-
-runstatedir | --runstatedir | --runstatedi | --runstated \
1152-
| --runstate | --runstat | --runsta | --runst | --runs \
1153-
| --run | --ru | --r)
1154-
ac_prev=runstatedir ;;
1155-
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
1156-
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
1157-
| --run=* | --ru=* | --r=*)
1158-
runstatedir=$ac_optarg ;;
1159-
11601149
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
11611150
ac_prev=sbindir ;;
11621151
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1294,7 +1283,7 @@ fi
12941283
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
12951284
datadir sysconfdir sharedstatedir localstatedir includedir \
12961285
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
1297-
libdir localedir mandir runstatedir
1286+
libdir localedir mandir
12981287
do
12991288
eval ac_val=\$$ac_var
13001289
# Remove trailing slashes.
@@ -1447,7 +1436,6 @@ Fine tuning of the installation directories:
14471436
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
14481437
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
14491438
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
1450-
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
14511439
--libdir=DIR object code libraries [EPREFIX/lib]
14521440
--includedir=DIR C header files [PREFIX/include]
14531441
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -2940,7 +2928,7 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; }
29402928
fi
29412929
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $interp" >&5
29422930
$as_echo "$interp" >&6; }
2943-
PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib '$interp
2931+
PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp
29442932
fi
29452933
# Used to comment out stuff for rebuilding generated files
29462934
GENERATED_COMMENT='#'

‎configure.ac‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ if test "$cross_compiling" = yes; then
7878
AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
7979
fi
8080
AC_MSG_RESULT($interp)
81-
PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib '$interp
81+
PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp
8282
fi
8383
# Used to comment out stuff for rebuilding generated files
8484
GENERATED_COMMENT='#'

0 commit comments

Comments
 (0)