]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr: Define PY_SSIZE_T_CLEAN ahead of every Python.h 47616/head
authorPete Zaitcev <zaitcev@redhat.com>
Wed, 15 Dec 2021 05:04:34 +0000 (23:04 -0600)
committerKefu Chai <tchaikov@gmail.com>
Tue, 16 Aug 2022 08:17:05 +0000 (16:17 +0800)
Building on Fedora 35 with Python 3.10 makes vstart to loop
forever, throwing the following message:

 Error EINVAL: SystemError: PY_SSIZE_T_CLEAN macro must be
 defined for '#' formats

I followed the hint in the following document:
 https://docs.python.org/3/c-api/intro.html

It says "recommended" to always define PY_SSIZE_T_CLEAN,
but as you can see it is actually required in our case.

Fixes: https://tracker.ceph.com/issues/53441
Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
(cherry picked from commit 389054888f2aa782f73564125ec7a1ef0212d536)

src/mgr/CMakeLists.txt

index a53d1d8c2a0a5fd45eac95762dbcfa335679fa14..b11c40c42bc922e20c9622e86d4c4a77dbe5c422 100644 (file)
@@ -34,6 +34,7 @@ if(WITH_MGR)
     mgr_commands.cc
     $<TARGET_OBJECTS:mgr_cap_obj>)
   add_executable(ceph-mgr ${mgr_srcs})
+  target_compile_definitions(ceph-mgr PRIVATE PY_SSIZE_T_CLEAN)
   if(WITH_LIBCEPHSQLITE)
     target_link_libraries(ceph-mgr cephsqlite SQLite3::SQLite3)
   endif()