[Python-checkins] bpo-38960: DTrace build fix for FreeBSD. (GH-17451)

Petr Viktorin webhook-mailer at python.org
Tue Jan 28 07:53:37 EST 2020


https://github.com/python/cpython/commit/aabdeb766b7fa581e7de01f3c953b12792f0736d
commit: aabdeb766b7fa581e7de01f3c953b12792f0736d
branch: master
author: David Carlier <dcarlier at afilias.info>
committer: Petr Viktorin <encukou at gmail.com>
date: 2020-01-28T13:53:32+01:00
summary:

bpo-38960: DTrace build fix for FreeBSD. (GH-17451)

DTrace build fix for FreeBSD.

- allowing passing an extra flag as it need to define the arch size.
- casting some probe's arguments.

files:
A Misc/NEWS.d/next/Core and Builtins/2019-12-03-16-41-22.bpo-38960.kvoFM0.rst
M Python/ceval.c
M Python/import.c
M Python/sysmodule.c
M configure
M configure.ac

diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-03-16-41-22.bpo-38960.kvoFM0.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-03-16-41-22.bpo-38960.kvoFM0.rst
new file mode 100644
index 0000000000000..50d4b6c286843
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-12-03-16-41-22.bpo-38960.kvoFM0.rst	
@@ -0,0 +1 @@
+Fix DTrace build issues on FreeBSD. Patch by David Carlier.
diff --git a/Python/ceval.c b/Python/ceval.c
index 2c0a23dfdd291..2770dc6d08dd2 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -5447,7 +5447,7 @@ dtrace_function_entry(PyFrameObject *f)
     funcname = PyUnicode_AsUTF8(f->f_code->co_name);
     lineno = PyCode_Addr2Line(f->f_code, f->f_lasti);
 
-    PyDTrace_FUNCTION_ENTRY(filename, funcname, lineno);
+    PyDTrace_FUNCTION_ENTRY((char *)filename, (char *)funcname, lineno);
 }
 
 static void
@@ -5461,7 +5461,7 @@ dtrace_function_return(PyFrameObject *f)
     funcname = PyUnicode_AsUTF8(f->f_code->co_name);
     lineno = PyCode_Addr2Line(f->f_code, f->f_lasti);
 
-    PyDTrace_FUNCTION_RETURN(filename, funcname, lineno);
+    PyDTrace_FUNCTION_RETURN((char *)filename, (char *)funcname, lineno);
 }
 
 /* DTrace equivalent of maybe_call_line_trace. */
@@ -5493,7 +5493,7 @@ maybe_dtrace_line(PyFrameObject *frame,
         co_name = PyUnicode_AsUTF8(frame->f_code->co_name);
         if (!co_name)
             co_name = "?";
-        PyDTrace_LINE(co_filename, co_name, line);
+        PyDTrace_LINE((char *)co_filename, (char *)co_name, line);
     }
     *instr_prev = frame->f_lasti;
 }
diff --git a/Python/import.c b/Python/import.c
index 045b6d0a9bf6f..2e5f78382ed44 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -1762,14 +1762,14 @@ import_find_and_load(PyThreadState *tstate, PyObject *abs_name)
     }
 
     if (PyDTrace_IMPORT_FIND_LOAD_START_ENABLED())
-        PyDTrace_IMPORT_FIND_LOAD_START(PyUnicode_AsUTF8(abs_name));
+        PyDTrace_IMPORT_FIND_LOAD_START((char *)PyUnicode_AsUTF8(abs_name));
 
     mod = _PyObject_CallMethodIdObjArgs(interp->importlib,
                                         &PyId__find_and_load, abs_name,
                                         interp->import_func, NULL);
 
     if (PyDTrace_IMPORT_FIND_LOAD_DONE_ENABLED())
-        PyDTrace_IMPORT_FIND_LOAD_DONE(PyUnicode_AsUTF8(abs_name),
+        PyDTrace_IMPORT_FIND_LOAD_DONE((char *)PyUnicode_AsUTF8(abs_name),
                                        mod != NULL);
 
     if (import_time) {
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 9f866a2a3d2fa..17e79603c29f4 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -204,7 +204,7 @@ PySys_Audit(const char *event, const char *argFormat, ...)
 
     /* Dtrace USDT point */
     if (dtrace) {
-        PyDTrace_AUDIT(event, (void *)eventArgs);
+        PyDTrace_AUDIT((char *)event, (void *)eventArgs);
     }
 
     /* Call interpreter hooks */
diff --git a/configure b/configure
index 85120e498d1fa..595c129814d29 100755
--- a/configure
+++ b/configure
@@ -11386,7 +11386,6 @@ $as_echo "$with_dtrace" >&6; }
 
 
 DTRACE=
-DFLAGS=
 DTRACE_HEADERS=
 DTRACE_OBJS=
 
@@ -11452,7 +11451,7 @@ if ${ac_cv_dtrace_link+:} false; then :
 else
               ac_cv_dtrace_link=no
             echo 'BEGIN{}' > conftest.d
-            "$DTRACE" -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \
+            "$DTRACE" "$DFLAGS" -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \
                 ac_cv_dtrace_link=yes
 
 fi
diff --git a/configure.ac b/configure.ac
index ab8e1b7d27ac2..fee605eec2aa5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3500,7 +3500,6 @@ AC_SUBST(DFLAGS)
 AC_SUBST(DTRACE_HEADERS)
 AC_SUBST(DTRACE_OBJS)
 DTRACE=
-DFLAGS=
 DTRACE_HEADERS=
 DTRACE_OBJS=
 
@@ -3521,7 +3520,7 @@ then
         [ac_cv_dtrace_link], [dnl
             ac_cv_dtrace_link=no
             echo 'BEGIN{}' > conftest.d
-            "$DTRACE" -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \
+            "$DTRACE" "$DFLAGS" -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \
                 ac_cv_dtrace_link=yes
       ])
     if test "$ac_cv_dtrace_link" = "yes"; then



More information about the Python-checkins mailing list