mirror of
https://github.com/ceph/ceph
synced 2025-02-07 10:53:30 +00:00
cython 0.29 introduced a check which prevents multiple python subinterpreters from loading the same module: https://github.com/cython/cython/commit/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 <tserong@suse.com> |
||
---|---|---|
.. | ||
AddCephTest.cmake | ||
BuildBoost.cmake | ||
Buildc-ares.cmake | ||
BuildDPDK.cmake | ||
BuildFIO.cmake | ||
BuildQatDrv.cmake | ||
BuildRocksDB.cmake | ||
BuildSPDK.cmake | ||
CheckCxxAtomic.cmake | ||
CheckYasm.cmake | ||
CTags.cmake | ||
Distutils.cmake | ||
Findaio.cmake | ||
Findbabeltrace.cmake | ||
FindBacktrace.cmake | ||
Findblkid.cmake | ||
FindBoost.cmake | ||
Findc-ares.cmake | ||
FindCUnit.cmake | ||
FindCython.cmake | ||
Finddpdk.cmake | ||
Findfcgi.cmake | ||
Findfio.cmake | ||
Findfmt.cmake | ||
Findfuse.cmake | ||
FindGMock.cmake | ||
Findgperftools.cmake | ||
FindGSSApi.cmake | ||
FindJeMalloc.cmake | ||
Findkeyutils.cmake | ||
Findleveldb.cmake | ||
FindLTTngUST.cmake | ||
FindLZ4.cmake | ||
FindNSPR.cmake | ||
FindNSS.cmake | ||
FindOATH.cmake | ||
FindOpenLdap.cmake | ||
FindPython3Interp.cmake | ||
FindPython3Libs.cmake | ||
Findqatzip.cmake | ||
Findrdmacm.cmake | ||
FindRocksDB.cmake | ||
FindSanitizers.cmake | ||
Findsnappy.cmake | ||
FindStdFilesystem_test.cc | ||
FindStdFilesystem.cmake | ||
Findudev.cmake | ||
Finduuid.cmake | ||
Findverbs.cmake | ||
Findxfs.cmake | ||
Findxio.cmake | ||
Findzfs.cmake | ||
GetGitRevisionDescription.cmake | ||
GetGitRevisionDescription.cmake.in | ||
patch-dpdk-conf.sh | ||
SIMDExt.cmake |