From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 5 Jun 2026 12:41:19 +0000 (+0200) Subject: [3.15] gh-150907: Fix dynamic_annotations.h when built with C++ and Valgrind (GH... X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=85e75a73d4f8e3cf28db97fe15ffdf28eb1f5641;p=thirdparty%2FPython%2Fcpython.git [3.15] gh-150907: Fix dynamic_annotations.h when built with C++ and Valgrind (GH-150914) (#150962) gh-150907: Fix dynamic_annotations.h when built with C++ and Valgrind (GH-150914) Add extern "C++" scope for the C++ template. Fix test_cppext when Python is built with --with-valgrind. (cherry picked from commit c32501261aeeb0cc1ad1c53b6be9790ff1d23215) Co-authored-by: Victor Stinner --- diff --git a/Include/dynamic_annotations.h b/Include/dynamic_annotations.h index 4d4def9bf898..5290319dd762 100644 --- a/Include/dynamic_annotations.h +++ b/Include/dynamic_annotations.h @@ -461,6 +461,7 @@ int RunningOnValgrind(void); #if DYNAMIC_ANNOTATIONS_ENABLED != 0 && defined(__cplusplus) +extern "C++" { /* _Py_ANNOTATE_UNPROTECTED_READ is the preferred way to annotate racey reads. Instead of doing @@ -476,6 +477,8 @@ int RunningOnValgrind(void); _Py_ANNOTATE_IGNORE_READS_END(); return res; } +} + /* Apply _Py_ANNOTATE_BENIGN_RACE_SIZED to a static variable. */ #define _Py_ANNOTATE_BENIGN_RACE_STATIC(static_var, description) \ namespace { \ diff --git a/Misc/NEWS.d/next/C_API/2026-06-04-14-26-17.gh-issue-150907.CA91_B.rst b/Misc/NEWS.d/next/C_API/2026-06-04-14-26-17.gh-issue-150907.CA91_B.rst new file mode 100644 index 000000000000..f58b248f3a0b --- /dev/null +++ b/Misc/NEWS.d/next/C_API/2026-06-04-14-26-17.gh-issue-150907.CA91_B.rst @@ -0,0 +1,2 @@ +Fix ``dynamic_annotations.h`` header file when built with C++ and Valgrind: +add ``extern "C++" scope`` for the C++ template. Patch by Victor Stinner.