]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-94404: Use module CFLAGS before PY_STDMODULE_CFLAGS (GH-94413)
authorChristian Heimes <christian@python.org>
Wed, 29 Jun 2022 13:44:14 +0000 (15:44 +0200)
committerGitHub <noreply@github.com>
Wed, 29 Jun 2022 13:44:14 +0000 (15:44 +0200)
``PY_STDMODULE_CFLAGS`` may contain include directories with system
headers. This can break compiling with built-in libmpdec.

Makefile.pre.in
Misc/NEWS.d/next/Build/2022-06-29-08-58-31.gh-issue-94404.3MadM6.rst
Modules/makesetup

index 3601d8a8775c69dcadb4405f36f96cfb07676f4a..14e7f6035578bea662912e87885517cbd6a42397 100644 (file)
@@ -829,7 +829,7 @@ python.worker.js: $(srcdir)/Tools/wasm/python.worker.js
 
 ##########################################################################
 # Build static libmpdec.a
-LIBMPDEC_CFLAGS=$(PY_STDMODULE_CFLAGS) $(CCSHARED) @LIBMPDEC_CFLAGS@
+LIBMPDEC_CFLAGS=@LIBMPDEC_CFLAGS@ $(PY_STDMODULE_CFLAGS) $(CCSHARED)
 
 # for setup.py
 DECIMAL_CFLAGS=@LIBMPDEC_CFLAGS@
@@ -887,7 +887,7 @@ $(LIBMPDEC_A): $(LIBMPDEC_OBJS)
 
 ##########################################################################
 # Build static libexpat.a
-LIBEXPAT_CFLAGS=$(PY_STDMODULE_CFLAGS) $(CCSHARED) @LIBEXPAT_CFLAGS@
+LIBEXPAT_CFLAGS=@LIBEXPAT_CFLAGS@ $(PY_STDMODULE_CFLAGS) $(CCSHARED)
 
 # for setup.py
 EXPAT_CFLAGS=@LIBEXPAT_CFLAGS@
index 519a5ce81c980cacb2393647f2fda20a7a664a4b..c7c47533c54ae26389da3b23cb3cdb72d2d76337 100644 (file)
@@ -1,2 +1,3 @@
 ``makesetup`` now works around an issue with sed on macOS and uses correct
-CFLAGS for object files that end up in a shared extension.
+CFLAGS for object files that end up in a shared extension. Module CFLAGS
+are used before PY_STDMODULE_CFLAGS to avoid clashes with system headers.
index a45b7de5215ce5280e869e0b19a25580eac974af..08303814c8c9112f5d8f601c2a42bfc6177a0c0c 100755 (executable)
@@ -260,13 +260,14 @@ sed -e 's/[       ]*#.*//' -e '/^[        ]*$/d' |
                        \$*) ;;
                        *) src='$(srcdir)/'"$srcdir/$src";;
                        esac
+                       # custom flags first, PY_STDMODULE_CFLAGS may contain -I with system libmpdec
                        case $doconfig in
-                       no)     cc="$cc \$(PY_STDMODULE_CFLAGS) \$(CCSHARED)";;
+                       no)     cc="$cc $cpps \$(PY_STDMODULE_CFLAGS) \$(CCSHARED)";;
                        *)
-                               cc="$cc \$(PY_BUILTIN_MODULE_CFLAGS)";;
+                               cc="$cc $cpps \$(PY_BUILTIN_MODULE_CFLAGS)";;
                        esac
                        # force rebuild when header file or module build flavor (static/shared) is changed
-                       rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(PYTHON_HEADERS) Modules/config.c; $cc $cpps -c $src -o $obj"
+                       rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(PYTHON_HEADERS) Modules/config.c; $cc -c $src -o $obj"
                        echo "$rule" >>$rulesf
                done
                case $doconfig in