[Lldb-commits] [lldb] 2af0e2f - Revert "Push down the swig module to avoid an import cycle" (#129714)

via lldb-commits lldb-commits at lists.llvm.org
Tue Mar 4 06:24:06 PST 2025


Author: David Spickett
Date: 2025-03-04T14:24:02Z
New Revision: 2af0e2f3e6c761ecd3f2dd31d0ae844572fcdce0

URL: https://github.com/llvm/llvm-project/commit/2af0e2f3e6c761ecd3f2dd31d0ae844572fcdce0
DIFF: https://github.com/llvm/llvm-project/commit/2af0e2f3e6c761ecd3f2dd31d0ae844572fcdce0.diff

LOG: Revert "Push down the swig module to avoid an import cycle" (#129714)

Reverts llvm/llvm-project#129135 due to buildbot test failures.

Definitely caused remote Linux to Windows failures
(https://lab.llvm.org/buildbot/#/builders/197/builds/2712), may be the
cause of Windows on Arm failures
https://lab.llvm.org/buildbot/#/builders/141/builds/6744.

Added: 
    

Modified: 
    lldb/bindings/python/CMakeLists.txt
    lldb/bindings/python/python.swig

Removed: 
    


################################################################################
diff  --git a/lldb/bindings/python/CMakeLists.txt b/lldb/bindings/python/CMakeLists.txt
index c4bf74e094f00..69306a384e0b1 100644
--- a/lldb/bindings/python/CMakeLists.txt
+++ b/lldb/bindings/python/CMakeLists.txt
@@ -59,10 +59,8 @@ endfunction()
 function(finish_swig_python swig_target lldb_python_bindings_dir lldb_python_target_dir)
   # Add a Post-Build Event to copy over Python files and create the symlink to
   # liblldb.so for the Python API(hardlink on Windows).
-  # Note that Swig-generated code is located one level deeper in the `native`
-  # module, in order to avoid cyclic importing.
   add_custom_target(${swig_target} ALL VERBATIM
-    COMMAND ${CMAKE_COMMAND} -E make_directory ${lldb_python_target_dir}/native/
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${lldb_python_target_dir}
     DEPENDS ${lldb_python_bindings_dir}/lldb.py
     COMMENT "Python script sym-linking LLDB Python API")
 
@@ -76,8 +74,6 @@ function(finish_swig_python swig_target lldb_python_bindings_dir lldb_python_tar
       "${LLDB_SOURCE_DIR}/source/Interpreter/embedded_interpreter.py"
       "${lldb_python_target_dir}")
 
-  create_python_package(${swig_target} ${lldb_python_target_dir} "native" FILES)
-
   # Distribute the examples as python packages.
   create_python_package(
     ${swig_target}
@@ -145,7 +141,7 @@ function(finish_swig_python swig_target lldb_python_bindings_dir lldb_python_tar
   endif()
   set(LIBLLDB_SYMLINK_OUTPUT_FILE "_lldb${LLDB_PYTHON_EXT_SUFFIX}")
   create_relative_symlink(${swig_target} ${LIBLLDB_SYMLINK_DEST}
-                          ${lldb_python_target_dir}/native/ ${LIBLLDB_SYMLINK_OUTPUT_FILE})
+                          ${lldb_python_target_dir} ${LIBLLDB_SYMLINK_OUTPUT_FILE})
 
 
   if (NOT WIN32)

diff  --git a/lldb/bindings/python/python.swig b/lldb/bindings/python/python.swig
index f1b156624e8d8..278c0eed2bab2 100644
--- a/lldb/bindings/python/python.swig
+++ b/lldb/bindings/python/python.swig
@@ -50,12 +50,7 @@ Older swig versions will simply ignore this setting.
     import $module
 except ImportError:
     # Relative import should work if we are being loaded by Python.
-    # The cpython module built by swig is pushed one level down into
-    # the native submodule, because at this point the interpreter
-    # is still constructing the lldb module itself.
-    # Simply importing anything using `from . import` constitutes
-    # a cyclic importing.
-    from .native import $module"
+    from . import $module"
 %enddef
 
 // The name of the module to be created.


        


More information about the lldb-commits mailing list