patch 9.0.1716: Windows build with python 3.12 and clang fails

5 views
Skip to first unread message

Christian Brabandt

unread,
Aug 15, 2023, 5:00:12 PM8/15/23
to vim...@googlegroups.com
patch 9.0.1716: Windows build with python 3.12 and clang fails

Commit: https://github.com/vim/vim/commit/15a0a0281a060fd5968ca2f3c80e750137106adb
Author: Zdenek Dohnal <zdo...@redhat.com>
Date: Tue Aug 15 22:52:01 2023 +0200

patch 9.0.1716: Windows build with python 3.12 and clang fails

Problem: Windows build with python 3.12 and clang fails
Solution: Remove the PyBool_Type function pointer for python 3.12

Clang on Win doesn't like non-static functions in static struct with
Python 3.12 - removing the new obfuscated function and protecting the
old PyBool function for older Pythons fixes the issue.

closes: #12800

Signed-off-by: Christian Brabandt <c...@256bit.org>
Co-authored-by: Zdenek Dohnal <zdo...@redhat.com>

diff --git a/src/if_python3.c b/src/if_python3.c
index 0a0d31e69..e4d4a90ed 100644
--- a/src/if_python3.c
+++ b/src/if_python3.c
@@ -628,9 +628,8 @@ static struct
{"PyStdPrinter_Type", (PYTHON_PROC*)&py3_PyStdPrinter_Type},
{"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type},
{"PyFloat_Type", (PYTHON_PROC*)&py3_PyFloat_Type},
+# if PY_VERSION_HEX < 0x030c00b0
{"PyBool_Type", (PYTHON_PROC*)&py3_PyBool_Type},
-# if PY_VERSION_HEX >= 0x030c00b0
- {"PyLong_Type", (PYTHON_PROC*)&py3_PyLong_Type},
# endif
{"PyNumber_Check", (PYTHON_PROC*)&py3_PyNumber_Check},
{"PyNumber_Long", (PYTHON_PROC*)&py3_PyNumber_Long},
diff --git a/src/version.c b/src/version.c
index c759da9c8..80bd77d64 100644
--- a/src/version.c
+++ b/src/version.c
@@ -695,6 +695,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1716,
/**/
1715,
/**/
Reply all
Reply to author
Forward
0 new messages