Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
cmake: remove cython 0.29's subinterpreter check
cython 0.29 introduced a check which prevents multiple python subinterpreters from loading the same module: cython/cython@7e27c7c Unfortunately, this completely breaks ceph-mgr. Until we can figure out a better long term solution, this commit removes cython's subinterpreter check, via some careful abuse of the C preprocessor. This works because when cython is invoked, it first generates some C code, then compiles it. We know it's going to generate C code including: int __Pyx_check_single_interpreter(void) { ... } and: if (__Pyx_check_single_interpreter()) return NULL; So, we can do the following: #define void0 dead_function(void) #define __Pyx_check_single_interpreter(ARG)=ARG ## 0 This replaces the call to __Pyx_check_single_interpreter() with a literal 0, removing the subinterpreter check. The void0 dead_function(void) thing is necessary because the __Pyx_check_single_interpreter() macro also clobbers that function definition, so we need to make sure it's replaced with something that works as a function definition. Fixes: https://tracker.ceph.com/issues/37472 Signed-off-by: Tim Serong <[email protected]>
- Loading branch information