[Lldb-commits] [lldb] r335236 - ScriptInterpreterPython cleanup

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 21 07:09:15 PDT 2018


Author: labath
Date: Thu Jun 21 07:09:15 2018
New Revision: 335236

URL: http://llvm.org/viewvc/llvm-project?rev=335236&view=rev
Log:
ScriptInterpreterPython cleanup

Instead of #ifdef-ing the contents of all files in the plugin for all
non-python builds, just disable the plugin at the cmake level. Also,
remove spurious extra linking of the Python plugin in liblldb. This
plugin is already included as a part of LLDB_ALL_PLUGINS variable.

Modified:
    lldb/trunk/source/API/CMakeLists.txt
    lldb/trunk/source/Plugins/ScriptInterpreter/CMakeLists.txt
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
    lldb/trunk/source/Plugins/ScriptInterpreter/Python/lldb-python.h

Modified: lldb/trunk/source/API/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/CMakeLists.txt?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/API/CMakeLists.txt (original)
+++ lldb/trunk/source/API/CMakeLists.txt Thu Jun 21 07:09:15 2018
@@ -108,11 +108,6 @@ if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND
     PROPERTY COMPILE_FLAGS " -Wno-sequence-point -Wno-cast-qual")
 endif ()
 
-target_link_libraries(liblldb PRIVATE
-  lldbPluginScriptInterpreterNone
-  lldbPluginScriptInterpreterPython
-  )
-
 set_target_properties(liblldb
   PROPERTIES
   VERSION ${LLDB_VERSION}

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/CMakeLists.txt?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/CMakeLists.txt (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/CMakeLists.txt Thu Jun 21 07:09:15 2018
@@ -1,2 +1,4 @@
 add_subdirectory(None)
-add_subdirectory(Python)
+if (NOT LLDB_DISABLE_PYTHON)
+  add_subdirectory(Python)
+endif()

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/CMakeLists.txt Thu Jun 21 07:09:15 2018
@@ -1,4 +1,4 @@
-if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows" AND NOT LLDB_DISABLE_PYTHON)
+if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
   # Call a python script to gather the arch-specific libdir for
   # modules like the lldb module.
   execute_process(

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp Thu Jun 21 07:09:15 2018
@@ -1,5 +1,4 @@
-//===-- PythonDataObjects.cpp ------------------------------------*- C++
-//-*-===//
+//===-- PythonDataObjects.cpp -----------------------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -8,12 +7,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifdef LLDB_DISABLE_PYTHON
-
-// Python is disabled in this build
-
-#else
-
 #include "PythonDataObjects.h"
 #include "ScriptInterpreterPython.h"
 
@@ -1035,5 +1028,3 @@ bool PythonFile::GetUnderlyingFile(File
   file.SetOptions(PythonFile::GetOptionsFromMode(py_mode.GetString()));
   return file.IsValid();
 }
-
-#endif

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h Thu Jun 21 07:09:15 2018
@@ -10,8 +10,6 @@
 #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONDATAOBJECTS_H
 #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONDATAOBJECTS_H
 
-#ifndef LLDB_DISABLE_PYTHON
-
 // LLDB Python header must be included first
 #include "lldb-python.h"
 
@@ -470,5 +468,3 @@ public:
 } // namespace lldb_private
 
 #endif
-
-#endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONDATAOBJECTS_H

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.cpp Thu Jun 21 07:09:15 2018
@@ -7,8 +7,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLDB_DISABLE_PYTHON
-
 // LLDB Python header must be included first
 #include "lldb-python.h"
 
@@ -166,5 +164,3 @@ std::string PythonExceptionState::ReadBa
 
   return retval;
 }
-
-#endif

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/PythonExceptionState.h Thu Jun 21 07:09:15 2018
@@ -10,8 +10,6 @@
 #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONEXCEPTIONSTATE_H
 #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_PYTHONEXCEPTIONSTATE_H
 
-#ifndef LLDB_DISABLE_PYTHON
-
 #include "PythonDataObjects.h"
 
 namespace lldb_private {
@@ -53,5 +51,3 @@ private:
 }
 
 #endif
-
-#endif

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp Thu Jun 21 07:09:15 2018
@@ -7,12 +7,6 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifdef LLDB_DISABLE_PYTHON
-
-// Python is disabled in this build
-
-#else
-
 // LLDB Python header must be included first
 #include "lldb-python.h"
 
@@ -3191,30 +3185,18 @@ void ScriptInterpreterPython::AddToSysPa
   PyRun_SimpleString(statement.c_str());
 }
 
-// void
-// ScriptInterpreterPython::Terminate ()
-//{
-//    // We are intentionally NOT calling Py_Finalize here (this would be the
-//    logical place to call it).  Calling
-//    // Py_Finalize here causes test suite runs to seg fault:  The test suite
-//    runs in Python.  It registers
-//    // SBDebugger::Terminate to be called 'at_exit'.  When the test suite
-//    Python harness finishes up, it calls
-//    // Py_Finalize, which calls all the 'at_exit' registered functions.
-//    SBDebugger::Terminate calls Debugger::Terminate,
-//    // which calls lldb::Terminate, which calls ScriptInterpreter::Terminate,
-//    which calls
-//    // ScriptInterpreterPython::Terminate.  So if we call Py_Finalize here, we
-//    end up with Py_Finalize being called from
-//    // within Py_Finalize, which results in a seg fault.
-//    //
-//    // Since this function only gets called when lldb is shutting down and
-//    going away anyway, the fact that we don't
-//    // actually call Py_Finalize should not cause any problems (everything
-//    should shut down/go away anyway when the
-//    // process exits).
-//    //
-////    Py_Finalize ();
-//}
-
-#endif // #ifdef LLDB_DISABLE_PYTHON
+// We are intentionally NOT calling Py_Finalize here (this would be the logical
+// place to call it).  Calling Py_Finalize here causes test suite runs to seg
+// fault:  The test suite runs in Python.  It registers SBDebugger::Terminate to
+// be called 'at_exit'.  When the test suite Python harness finishes up, it
+// calls Py_Finalize, which calls all the 'at_exit' registered functions.
+// SBDebugger::Terminate calls Debugger::Terminate, which calls lldb::Terminate,
+// which calls ScriptInterpreter::Terminate, which calls
+// ScriptInterpreterPython::Terminate.  So if we call Py_Finalize here, we end
+// up with Py_Finalize being called from within Py_Finalize, which results in a
+// seg fault. Since this function only gets called when lldb is shutting down
+// and going away anyway, the fact that we don't actually call Py_Finalize
+// should not cause any problems (everything should shut down/go away anyway
+// when the process exits).
+//
+// void ScriptInterpreterPython::Terminate() { Py_Finalize (); }

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h Thu Jun 21 07:09:15 2018
@@ -10,12 +10,6 @@
 #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTINTERPRETERPYTHON_H
 #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTINTERPRETERPYTHON_H
 
-#ifdef LLDB_DISABLE_PYTHON
-
-// Python is disabled in this build
-
-#else
-
 // C Includes
 // C++ Includes
 #include <memory>
@@ -571,6 +565,4 @@ protected:
 
 } // namespace lldb_private
 
-#endif // LLDB_DISABLE_PYTHON
-
 #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTINTERPRETERPYTHON_H

Modified: lldb/trunk/source/Plugins/ScriptInterpreter/Python/lldb-python.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/lldb-python.h?rev=335236&r1=335235&r2=335236&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ScriptInterpreter/Python/lldb-python.h (original)
+++ lldb/trunk/source/Plugins/ScriptInterpreter/Python/lldb-python.h Thu Jun 21 07:09:15 2018
@@ -1,5 +1,4 @@
-//===-- lldb-python.h --------------------------------------------*- C++
-//-*-===//
+//===-- lldb-python.h -------------------------------------------*- C++ -*-===//
 //
 //                     The LLVM Compiler Infrastructure
 //
@@ -14,9 +13,6 @@
 // Python.h needs to be included before any system headers in order to avoid
 // redefinition of macros
 
-#ifdef LLDB_DISABLE_PYTHON
-// Python is disabled in this build
-#else
 #include "llvm/Support/Compiler.h"
 #if defined(_WIN32)
 // If anyone #includes Host/PosixApi.h later, it will try to typedef pid_t.  We
@@ -36,6 +32,5 @@
 
 // Include python for non windows machines
 #include <Python.h>
-#endif // LLDB_DISABLE_PYTHON
 
 #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_LLDB_PYTHON_H




More information about the lldb-commits mailing list