]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-131865: Properly apply exported CFLAGS for dtrace/systemtap builds (#131866)
authorstratakis <cstratak@redhat.com>
Mon, 31 Mar 2025 17:53:49 +0000 (19:53 +0200)
committerGitHub <noreply@github.com>
Mon, 31 Mar 2025 17:53:49 +0000 (17:53 +0000)
When using --with-dtrace the resulting object file could be missing
specific CFLAGS exported by the build system due to the systemtap
script using specific defaults.

Exporting the CC and CFLAGS variables before the dtrace invocation
allows us to properly apply CFLAGS exported by the build system
even when cross-compiling.

The fix does not affect the dtrace invocation on Solaris/macOS.

Makefile.pre.in
Misc/NEWS.d/next/Build/2025-03-31-19-22-41.gh-issue-131865.PIJy7X.rst [new file with mode: 0644]

index 9658bfa44b98e456a0883cc2ae3d9358bda15c8d..2102f9cfe882bd84952b37c6dc2a6322911a27c4 100644 (file)
@@ -2090,7 +2090,7 @@ Python/frozen.o: $(FROZEN_FILES_OUT)
 # an include guard, so we can't use a pipeline to transform its output.
 Include/pydtrace_probes.h: $(srcdir)/Include/pydtrace.d
        $(MKDIR_P) Include
-       $(DTRACE) $(DFLAGS) -o $@ -h -s $<
+       CC="$(CC)" CFLAGS="$(CFLAGS)" $(DTRACE) $(DFLAGS) -o $@ -h -s $<
        : sed in-place edit with POSIX-only tools
        sed 's/PYTHON_/PyDTrace_/' $@ > $@.tmp
        mv $@.tmp $@
@@ -2100,7 +2100,7 @@ Python/gc.o: $(srcdir)/Include/pydtrace.h
 Python/import.o: $(srcdir)/Include/pydtrace.h
 
 Python/pydtrace.o: $(srcdir)/Include/pydtrace.d $(DTRACE_DEPS)
-       $(DTRACE) $(DFLAGS) -o $@ -G -s $< $(DTRACE_DEPS)
+       CC="$(CC)" CFLAGS="$(CFLAGS)" $(DTRACE) $(DFLAGS) -o $@ -G -s $< $(DTRACE_DEPS)
 
 Objects/typeobject.o: Objects/typeslots.inc
 
diff --git a/Misc/NEWS.d/next/Build/2025-03-31-19-22-41.gh-issue-131865.PIJy7X.rst b/Misc/NEWS.d/next/Build/2025-03-31-19-22-41.gh-issue-131865.PIJy7X.rst
new file mode 100644 (file)
index 0000000..a287e0b
--- /dev/null
@@ -0,0 +1,2 @@
+The DTrace build now properly passes the ``CC`` and ``CFLAGS`` variables
+to the ``dtrace`` command when utilizing SystemTap on Linux.