From: Kefu Chai Date: Wed, 28 Apr 2021 15:22:32 +0000 (+0800) Subject: cmake: disable "variable tracking" when building rados python binding X-Git-Tag: v17.1.0~2104^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F41071%2Fhead;p=ceph.git cmake: disable "variable tracking" when building rados python binding to silence the warning like: /home/jenkins-build/build/workspace/ceph-pull-requests/build/src/pybind/rados/rados.c: In function '__pyx_pymod_exec_rados': /home/jenkins-build/build/workspace/ceph-pull-requests/build/src/pybind/rados/rados.c:78903:30: note: variable tracking size limit exceeded with '-fvar-tracking-assignments', retrying without 78903 | static CYTHON_SMALL_CODE int __pyx_pymod_exec_rados(PyObject *__pyx_pyinit_module) | ^~~~~~~~~~~~~~~~~~~~~~ cc: warning: /usr/bin/cc: linker input file unused because linking not done Signed-off-by: Kefu Chai --- diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake index ff01aaf818a..cd17e500a17 100644 --- a/cmake/modules/Distutils.cmake +++ b/cmake/modules/Distutils.cmake @@ -55,6 +55,10 @@ function(distutils_add_cython_module target name src) # Note: this is reproduced in distutils_install_cython_module list(APPEND cflags -D'void0=dead_function\(void\)') list(APPEND cflags -D'__Pyx_check_single_interpreter\(ARG\)=ARG \#\# 0') + cmake_parse_arguments(DU "DISABLE_VTA" "" "" ${ARGN}) + if(DU_DISABLE_VTA AND HAS_VTA) + list(APPEND cflags -fno-var-tracking-assignments) + endif() set(PY_CC ${compiler_launcher} ${CMAKE_C_COMPILER} ${c_compiler_arg1} ${cflags}) set(PY_CXX ${compiler_launcher} ${CMAKE_CXX_COMPILER} ${cxx_compiler_arg1}) set(PY_LDSHARED ${link_launcher} ${CMAKE_C_COMPILER} ${c_compiler_arg1} "-shared") @@ -97,12 +101,17 @@ function(distutils_install_cython_module name) get_property(link_launcher GLOBAL PROPERTY RULE_LAUNCH_LINK) set(PY_CC "${compiler_launcher} ${CMAKE_C_COMPILER}") set(PY_LDSHARED "${link_launcher} ${CMAKE_C_COMPILER} -shared") + cmake_parse_arguments(DU "DISABLE_VTA" "" "" ${ARGN}) + if(DU_DISABLE_VTA AND HAS_VTA) + set(CFLAG_DISABLE_VTA -fno-var-tracking-assignments) + endif() install(CODE " set(ENV{CC} \"${PY_CC}\") set(ENV{LDSHARED} \"${PY_LDSHARED}\") set(ENV{CPPFLAGS} \"-iquote${CMAKE_SOURCE_DIR}/src/include -D'void0=dead_function\(void\)' \ - -D'__Pyx_check_single_interpreter\(ARG\)=ARG \#\# 0'\") + -D'__Pyx_check_single_interpreter\(ARG\)=ARG \#\# 0' \ + ${CFLAG_DISABLE_VTA}\") set(ENV{LDFLAGS} \"-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\") set(ENV{CYTHON_BUILD_DIR} \"${CMAKE_CURRENT_BINARY_DIR}\") set(ENV{CEPH_LIBDIR} \"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\") diff --git a/src/pybind/rados/CMakeLists.txt b/src/pybind/rados/CMakeLists.txt index 0cd19d03174..fe700fb0bcc 100644 --- a/src/pybind/rados/CMakeLists.txt +++ b/src/pybind/rados/CMakeLists.txt @@ -1,5 +1,7 @@ distutils_add_cython_module(cython_rados rados - ${CMAKE_CURRENT_SOURCE_DIR}/rados.pyx) + ${CMAKE_CURRENT_SOURCE_DIR}/rados.pyx + DISABLE_VTA) add_dependencies(cython_rados rados) -distutils_install_cython_module(cython_rados) +distutils_install_cython_module(cython_rados + DISABLE_VTA)