mirror of https://github.com/python/cpython
bpo-45573: Move mandatory core modules to Modules/Setup.bootstrap (GH-29616)
This commit is contained in:
parent
d64659d8cd
commit
7e44dc0ba7
|
@ -910,10 +910,12 @@ Makefile Modules/config.c: Makefile.pre \
|
||||||
$(MAKESETUP) \
|
$(MAKESETUP) \
|
||||||
$(srcdir)/Modules/Setup \
|
$(srcdir)/Modules/Setup \
|
||||||
Modules/Setup.local \
|
Modules/Setup.local \
|
||||||
|
$(srcdir)/Modules/Setup.bootstrap \
|
||||||
Modules/Setup.stdlib
|
Modules/Setup.stdlib
|
||||||
$(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
|
$(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
|
||||||
-s Modules \
|
-s Modules \
|
||||||
Modules/Setup.local \
|
Modules/Setup.local \
|
||||||
|
$(srcdir)/Modules/Setup.bootstrap \
|
||||||
$(srcdir)/Modules/Setup
|
$(srcdir)/Modules/Setup
|
||||||
@mv config.c Modules
|
@mv config.c Modules
|
||||||
@echo "The Makefile was updated, you may need to re-run make."
|
@echo "The Makefile was updated, you may need to re-run make."
|
||||||
|
@ -2167,6 +2169,7 @@ libainstall: @DEF_MAKE_RULE@ python-config
|
||||||
$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
|
$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
|
||||||
$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
|
$(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
|
||||||
$(INSTALL_DATA) $(srcdir)/Modules/Setup $(DESTDIR)$(LIBPL)/Setup
|
$(INSTALL_DATA) $(srcdir)/Modules/Setup $(DESTDIR)$(LIBPL)/Setup
|
||||||
|
$(INSTALL_DATA) $(srcdir)/Modules/Setup.bootstrap $(DESTDIR)$(LIBPL)/Setup.bootstrap
|
||||||
$(INSTALL_DATA) Modules/Setup.stdlib $(DESTDIR)$(LIBPL)/Setup.stdlib
|
$(INSTALL_DATA) Modules/Setup.stdlib $(DESTDIR)$(LIBPL)/Setup.stdlib
|
||||||
$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
|
$(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
|
||||||
$(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
|
$(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Mandatory core modules, that are required to bootstrap Python, are now in
|
||||||
|
``Modules/Setup.bootstrap``.
|
|
@ -111,31 +111,8 @@ PYTHONPATH=$(COREPYTHONPATH)
|
||||||
|
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# Built-in modules required to get a functioning interpreter;
|
# Built-in modules required to get a functioning interpreter are listed in
|
||||||
# cannot be built as shared!
|
# Modules/Setup.bootstrap.
|
||||||
|
|
||||||
_collections _collectionsmodule.c
|
|
||||||
_abc _abc.c
|
|
||||||
_codecs _codecsmodule.c
|
|
||||||
_functools _functoolsmodule.c
|
|
||||||
_io -I$(srcdir)/Modules/_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c
|
|
||||||
_locale _localemodule.c
|
|
||||||
_operator _operator.c
|
|
||||||
_signal signalmodule.c
|
|
||||||
_sre _sre.c
|
|
||||||
_stat _stat.c
|
|
||||||
_symtable symtablemodule.c
|
|
||||||
_thread _threadmodule.c
|
|
||||||
_tracemalloc _tracemalloc.c # See bpo-35053 as to why this is built in.
|
|
||||||
_weakref _weakref.c
|
|
||||||
atexit atexitmodule.c
|
|
||||||
errno errnomodule.c
|
|
||||||
faulthandler faulthandler.c
|
|
||||||
itertools itertoolsmodule.c
|
|
||||||
posix posixmodule.c
|
|
||||||
pwd pwdmodule.c
|
|
||||||
time timemodule.c
|
|
||||||
|
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# The rest of the modules listed in this file are all commented out by
|
# The rest of the modules listed in this file are all commented out by
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
# -*- makefile -*-
|
||||||
|
|
||||||
|
# ---
|
||||||
|
# Built-in modules required to get a functioning interpreter;
|
||||||
|
# cannot be built as shared!
|
||||||
|
|
||||||
|
# module C APIs are used in core
|
||||||
|
atexit atexitmodule.c
|
||||||
|
faulthandler faulthandler.c
|
||||||
|
posix posixmodule.c
|
||||||
|
_signal signalmodule.c
|
||||||
|
_tracemalloc _tracemalloc.c
|
||||||
|
|
||||||
|
# modules used by importlib, deepfreeze, freeze, runpy, and sysconfig
|
||||||
|
_codecs _codecsmodule.c
|
||||||
|
_collections _collectionsmodule.c
|
||||||
|
errno errnomodule.c
|
||||||
|
_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c
|
||||||
|
itertools itertoolsmodule.c
|
||||||
|
_sre _sre.c
|
||||||
|
_thread _threadmodule.c
|
||||||
|
time timemodule.c
|
||||||
|
_weakref _weakref.c
|
||||||
|
|
||||||
|
# commonly used core modules
|
||||||
|
_abc _abc.c
|
||||||
|
_functools _functoolsmodule.c
|
||||||
|
_locale _localemodule.c
|
||||||
|
_operator _operator.c
|
||||||
|
_stat _stat.c
|
||||||
|
_symtable symtablemodule.c
|
||||||
|
|
||||||
|
# for systems without $HOME env, used by site._getuserbase()
|
||||||
|
pwd pwdmodule.c
|
|
@ -29,6 +29,9 @@
|
||||||
############################################################################
|
############################################################################
|
||||||
# Modules that should always be present (POSIX and Windows):
|
# Modules that should always be present (POSIX and Windows):
|
||||||
|
|
||||||
|
# needs libm and on some platforms librt
|
||||||
|
@MODULE__DATETIME_TRUE@_datetime _datetimemodule.c
|
||||||
|
|
||||||
# _decimal uses libmpdec
|
# _decimal uses libmpdec
|
||||||
# either static libmpdec.a from Modules/_decimal/libmpdec or libmpdec.so
|
# either static libmpdec.a from Modules/_decimal/libmpdec or libmpdec.so
|
||||||
# with ./configure --with-system-libmpdec
|
# with ./configure --with-system-libmpdec
|
||||||
|
|
|
@ -634,6 +634,12 @@ MODULE_PYEXPAT_FALSE
|
||||||
MODULE_PYEXPAT_TRUE
|
MODULE_PYEXPAT_TRUE
|
||||||
MODULE_OSSAUDIODEV_FALSE
|
MODULE_OSSAUDIODEV_FALSE
|
||||||
MODULE_OSSAUDIODEV_TRUE
|
MODULE_OSSAUDIODEV_TRUE
|
||||||
|
MODULE__DATETIME_FALSE
|
||||||
|
MODULE__DATETIME_TRUE
|
||||||
|
MODULE_TIME_FALSE
|
||||||
|
MODULE_TIME_TRUE
|
||||||
|
MODULE__IO_FALSE
|
||||||
|
MODULE__IO_TRUE
|
||||||
TEST_MODULES
|
TEST_MODULES
|
||||||
LIBRARY_DEPS
|
LIBRARY_DEPS
|
||||||
STATIC_LIBPYTHON
|
STATIC_LIBPYTHON
|
||||||
|
@ -19456,6 +19462,52 @@ MODULE_BLOCK=
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if true; then
|
||||||
|
MODULE__IO_TRUE=
|
||||||
|
MODULE__IO_FALSE='#'
|
||||||
|
else
|
||||||
|
MODULE__IO_TRUE='#'
|
||||||
|
MODULE__IO_FALSE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
as_fn_append MODULE_BLOCK "MODULE__IO_CFLAGS=-I\$(srcdir)/Modules/_io$as_nl"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if true; then
|
||||||
|
MODULE_TIME_TRUE=
|
||||||
|
MODULE_TIME_FALSE='#'
|
||||||
|
else
|
||||||
|
MODULE_TIME_TRUE='#'
|
||||||
|
MODULE_TIME_FALSE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
as_fn_append MODULE_BLOCK "MODULE_TIME_LDFLAGS=$TIMEMODULE_LIB$as_nl"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if true; then
|
||||||
|
MODULE__DATETIME_TRUE=
|
||||||
|
MODULE__DATETIME_FALSE='#'
|
||||||
|
else
|
||||||
|
MODULE__DATETIME_TRUE='#'
|
||||||
|
MODULE__DATETIME_FALSE=
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
as_fn_append MODULE_BLOCK "MODULE__DATETIME_LDFLAGS=$TIMEMODULE_LIB $LIBM$as_nl"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module ossaudiodev" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module ossaudiodev" >&5
|
||||||
$as_echo_n "checking for stdlib extension module ossaudiodev... " >&6; }
|
$as_echo_n "checking for stdlib extension module ossaudiodev... " >&6; }
|
||||||
case $py_stdlib_not_available in #(
|
case $py_stdlib_not_available in #(
|
||||||
|
@ -19828,6 +19880,18 @@ LTLIBOBJS=$ac_ltlibobjs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if test -z "${MODULE__IO_TRUE}" && test -z "${MODULE__IO_FALSE}"; then
|
||||||
|
as_fn_error $? "conditional \"MODULE__IO\" was never defined.
|
||||||
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test -z "${MODULE_TIME_TRUE}" && test -z "${MODULE_TIME_FALSE}"; then
|
||||||
|
as_fn_error $? "conditional \"MODULE_TIME\" was never defined.
|
||||||
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
fi
|
||||||
|
if test -z "${MODULE__DATETIME_TRUE}" && test -z "${MODULE__DATETIME_FALSE}"; then
|
||||||
|
as_fn_error $? "conditional \"MODULE__DATETIME\" was never defined.
|
||||||
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
fi
|
||||||
if test -z "${MODULE_OSSAUDIODEV_TRUE}" && test -z "${MODULE_OSSAUDIODEV_FALSE}"; then
|
if test -z "${MODULE_OSSAUDIODEV_TRUE}" && test -z "${MODULE_OSSAUDIODEV_FALSE}"; then
|
||||||
as_fn_error $? "conditional \"MODULE_OSSAUDIODEV\" was never defined.
|
as_fn_error $? "conditional \"MODULE_OSSAUDIODEV\" was never defined.
|
||||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||||
|
@ -21068,7 +21132,7 @@ fi
|
||||||
echo "creating Makefile" >&6
|
echo "creating Makefile" >&6
|
||||||
$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
|
$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
|
||||||
-s Modules \
|
-s Modules \
|
||||||
Modules/Setup.local $srcdir/Modules/Setup
|
Modules/Setup.local $srcdir/Modules/Setup.bootstrap $srcdir/Modules/Setup
|
||||||
mv config.c Modules
|
mv config.c Modules
|
||||||
|
|
||||||
if test -z "$PKG_CONFIG"; then
|
if test -z "$PKG_CONFIG"; then
|
||||||
|
|
24
configure.ac
24
configure.ac
|
@ -6030,6 +6030,28 @@ AC_DEFUN([PY_STDLIB_MOD], [
|
||||||
m4_popdef([modstate])dnl
|
m4_popdef([modstate])dnl
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl Define simple, always enabled stdlib extension module
|
||||||
|
dnl PY_STDLIB_MOD_SIMPLE([NAME], [CFLAGS], [LDFLAGS])
|
||||||
|
dnl cflags and ldflags are optional
|
||||||
|
AC_DEFUN([PY_STDLIB_MOD_SIMPLE], [
|
||||||
|
m4_pushdef([modcond], [MODULE_]m4_toupper([$1]))dnl
|
||||||
|
AM_CONDITIONAL(modcond, [true])
|
||||||
|
m4_ifval([$2], [
|
||||||
|
_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_CFLAGS], [$2])
|
||||||
|
])
|
||||||
|
m4_ifval([$3], [
|
||||||
|
_MODULE_BLOCK_ADD([MODULE_]m4_toupper([$1])[_LDFLAGS], [$3])
|
||||||
|
])
|
||||||
|
m4_popdef([modcond])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl static modules in Modules/Setup.bootstrap
|
||||||
|
PY_STDLIB_MOD_SIMPLE([_io], [-I\$(srcdir)/Modules/_io], [])
|
||||||
|
PY_STDLIB_MOD_SIMPLE([time], [], [$TIMEMODULE_LIB])
|
||||||
|
|
||||||
|
dnl always enabled extension modules
|
||||||
|
PY_STDLIB_MOD_SIMPLE([_datetime], [], [$TIMEMODULE_LIB $LIBM])
|
||||||
|
|
||||||
dnl platform specific extensions
|
dnl platform specific extensions
|
||||||
PY_STDLIB_MOD([ossaudiodev],
|
PY_STDLIB_MOD([ossaudiodev],
|
||||||
[], [test "$ac_cv_header_linux_soundcard_h" = yes -o "$ac_cv_header_sys_soundcard_h" = yes])
|
[], [test "$ac_cv_header_linux_soundcard_h" = yes -o "$ac_cv_header_sys_soundcard_h" = yes])
|
||||||
|
@ -6062,7 +6084,7 @@ fi
|
||||||
echo "creating Makefile" >&AS_MESSAGE_FD
|
echo "creating Makefile" >&AS_MESSAGE_FD
|
||||||
$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
|
$SHELL $srcdir/Modules/makesetup -c $srcdir/Modules/config.c.in \
|
||||||
-s Modules \
|
-s Modules \
|
||||||
Modules/Setup.local $srcdir/Modules/Setup
|
Modules/Setup.local $srcdir/Modules/Setup.bootstrap $srcdir/Modules/Setup
|
||||||
mv config.c Modules
|
mv config.c Modules
|
||||||
|
|
||||||
if test -z "$PKG_CONFIG"; then
|
if test -z "$PKG_CONFIG"; then
|
||||||
|
|
13
setup.py
13
setup.py
|
@ -1006,13 +1006,9 @@ class PyBuildExt(build_ext):
|
||||||
if lib:
|
if lib:
|
||||||
time_libs.append(lib)
|
time_libs.append(lib)
|
||||||
|
|
||||||
# time operations and variables
|
|
||||||
self.add(Extension('time', ['timemodule.c'],
|
|
||||||
libraries=time_libs))
|
|
||||||
# libm is needed by delta_new() that uses round() and by accum() that
|
# libm is needed by delta_new() that uses round() and by accum() that
|
||||||
# uses modf().
|
# uses modf().
|
||||||
self.add(Extension('_datetime', ['_datetimemodule.c'],
|
self.addext(Extension('_datetime', ['_datetimemodule.c']))
|
||||||
libraries=['m']))
|
|
||||||
# zoneinfo module
|
# zoneinfo module
|
||||||
self.add(Extension('_zoneinfo', ['_zoneinfo.c']))
|
self.add(Extension('_zoneinfo', ['_zoneinfo.c']))
|
||||||
# random number generator implemented in C
|
# random number generator implemented in C
|
||||||
|
@ -1034,8 +1030,6 @@ class PyBuildExt(build_ext):
|
||||||
self.add(Extension('_opcode', ['_opcode.c']))
|
self.add(Extension('_opcode', ['_opcode.c']))
|
||||||
# asyncio speedups
|
# asyncio speedups
|
||||||
self.add(Extension("_asyncio", ["_asynciomodule.c"]))
|
self.add(Extension("_asyncio", ["_asynciomodule.c"]))
|
||||||
# _abc speedups
|
|
||||||
self.add(Extension("_abc", ["_abc.c"]))
|
|
||||||
# _queue module
|
# _queue module
|
||||||
self.add(Extension("_queue", ["_queuemodule.c"]))
|
self.add(Extension("_queue", ["_queuemodule.c"]))
|
||||||
# _statistics module
|
# _statistics module
|
||||||
|
@ -1054,8 +1048,6 @@ class PyBuildExt(build_ext):
|
||||||
libs = ['bsd']
|
libs = ['bsd']
|
||||||
self.add(Extension('fcntl', ['fcntlmodule.c'],
|
self.add(Extension('fcntl', ['fcntlmodule.c'],
|
||||||
libraries=libs))
|
libraries=libs))
|
||||||
# pwd(3)
|
|
||||||
self.add(Extension('pwd', ['pwdmodule.c']))
|
|
||||||
# grp(3)
|
# grp(3)
|
||||||
if not VXWORKS:
|
if not VXWORKS:
|
||||||
self.add(Extension('grp', ['grpmodule.c']))
|
self.add(Extension('grp', ['grpmodule.c']))
|
||||||
|
@ -1510,6 +1502,9 @@ class PyBuildExt(build_ext):
|
||||||
self.configure_compiler()
|
self.configure_compiler()
|
||||||
self.init_inc_lib_dirs()
|
self.init_inc_lib_dirs()
|
||||||
|
|
||||||
|
# Some C extensions are built by entries in Modules/Setup.bootstrap.
|
||||||
|
# These are extensions are required to bootstrap the interpreter or
|
||||||
|
# build process.
|
||||||
self.detect_simple_extensions()
|
self.detect_simple_extensions()
|
||||||
if TEST_EXTENSIONS:
|
if TEST_EXTENSIONS:
|
||||||
self.detect_test_extensions()
|
self.detect_test_extensions()
|
||||||
|
|
Loading…
Reference in New Issue