From 063db62aab4041ac47798e7e48b27b2f2bef21c5 Mon Sep 17 00:00:00 2001 From: xdegaye Date: Fri, 20 Apr 2018 17:03:49 +0200 Subject: bpo-32232: by default, Setup modules are no longer built with -DPy_BUILD_CORE (GH-6489) Setup modules are no longer built with -DPy_BUILD_CORE by default, as using that flag may now require including additional internal-only header files. Instead, only the modules that specifically need it use that setting. --- Makefile.pre.in | 3 +- .../Build/2018-04-17-00-38-19.bpo-32232.o7G_UO.rst | 3 ++ Modules/Setup.dist | 38 +++++++++++----------- Modules/makesetup | 2 +- 4 files changed, 25 insertions(+), 21 deletions(-) create mode 100644 Misc/NEWS.d/next/Build/2018-04-17-00-38-19.bpo-32232.o7G_UO.rst diff --git a/Makefile.pre.in b/Makefile.pre.in index 916f030..3a7324f 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -106,7 +106,8 @@ ARFLAGS= @ARFLAGS@ # Extra C flags added for building the interpreter object files. CFLAGSFORSHARED=@CFLAGSFORSHARED@ # C flags used for building the interpreter object files -PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE +PY_STDMODULE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) +PY_CORE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE # Strict or non-strict aliasing flags used to compile dtoa.c, see above CFLAGS_ALIASING=@CFLAGS_ALIASING@ diff --git a/Misc/NEWS.d/next/Build/2018-04-17-00-38-19.bpo-32232.o7G_UO.rst b/Misc/NEWS.d/next/Build/2018-04-17-00-38-19.bpo-32232.o7G_UO.rst new file mode 100644 index 0000000..fea0b60 --- /dev/null +++ b/Misc/NEWS.d/next/Build/2018-04-17-00-38-19.bpo-32232.o7G_UO.rst @@ -0,0 +1,3 @@ +By default, modules configured in `Modules/Setup` are no longer built with +`-DPy_BUILD_CORE`. Instead, modules that specifically need that preprocessor +definition include it in their individual entries. diff --git a/Modules/Setup.dist b/Modules/Setup.dist index a833774..da2404a 100644 --- a/Modules/Setup.dist +++ b/Modules/Setup.dist @@ -104,33 +104,33 @@ PYTHONPATH=$(COREPYTHONPATH) # This only contains the minimal set of modules required to run the # setup.py script in the root of the Python source tree. -posix posixmodule.c # posix (UNIX) system calls -errno errnomodule.c # posix (UNIX) errno values -pwd pwdmodule.c # this is needed to find out the user's home dir - # if $HOME is not set -_sre _sre.c # Fredrik Lundh's new regular expressions -_codecs _codecsmodule.c # access to the builtin codecs and codec registry -_weakref _weakref.c # weak references -_functools _functoolsmodule.c # Tools for working with functions and callable objects -_operator _operator.c # operator.add() and similar goodies -_collections _collectionsmodule.c # Container types -_abc _abc.c # Abstract base classes -itertools itertoolsmodule.c # Functions creating iterators for efficient looping -atexit atexitmodule.c # Register functions to be run at interpreter-shutdown -_signal signalmodule.c -_stat _stat.c # stat.h interface -time timemodule.c # -lm # time operations and variables -_thread _threadmodule.c # low-level threading interface +posix -DPy_BUILD_CORE posixmodule.c # posix (UNIX) system calls +errno errnomodule.c # posix (UNIX) errno values +pwd pwdmodule.c # this is needed to find out the user's home dir + # if $HOME is not set +_sre _sre.c # Fredrik Lundh's new regular expressions +_codecs _codecsmodule.c # access to the builtin codecs and codec registry +_weakref _weakref.c # weak references +_functools -DPy_BUILD_CORE _functoolsmodule.c # Tools for working with functions and callable objects +_operator _operator.c # operator.add() and similar goodies +_collections _collectionsmodule.c # Container types +_abc _abc.c # Abstract base classes +itertools itertoolsmodule.c # Functions creating iterators for efficient looping +atexit atexitmodule.c # Register functions to be run at interpreter-shutdown +_signal -DPy_BUILD_CORE signalmodule.c +_stat _stat.c # stat.h interface +time -DPy_BUILD_CORE timemodule.c # -lm # time operations and variables +_thread -DPy_BUILD_CORE _threadmodule.c # low-level threading interface # access to ISO C locale support _locale _localemodule.c # -lintl # Standard I/O baseline -_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 +_io -DPy_BUILD_CORE -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 # The zipimport module is always imported at startup. Having it as a # builtin module avoids some bootstrapping problems and reduces overhead. -zipimport zipimport.c +zipimport -DPy_BUILD_CORE zipimport.c # faulthandler module faulthandler faulthandler.c diff --git a/Modules/makesetup b/Modules/makesetup index 31faf86..020b199 100755 --- a/Modules/makesetup +++ b/Modules/makesetup @@ -233,7 +233,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | case $doconfig in no) cc="$cc \$(CCSHARED) \$(PY_CFLAGS) \$(PY_CPPFLAGS)";; *) - cc="$cc \$(PY_CORE_CFLAGS)";; + cc="$cc \$(PY_STDMODULE_CFLAGS)";; esac rule="$obj: $src; $cc $cpps -c $src -o $obj" echo "$rule" >>$rulesf -- cgit v0.12