mirror of
https://github.com/intel/llvm.git
synced 2026-01-17 06:40:01 +08:00
Fix double import of _lldb module.
Fix llvm.org/pr39054: - Register _lldb as a built-in module during initialization of script interpreter, - Reverse the order of imports in __init__.py: first try to import by absolute name, which will find the built-in module in the context of lldb (and other hosts that embed liblldb), then try relative import, in case the module is being imported from Python interpreter. This works for SWIG>=3.0.11; before that, SWIG did not support custom module import code. Differential revision: https://reviews.llvm.org/D52404 llvm-svn: 344474
This commit is contained in:
@@ -41,12 +41,12 @@ Older swig versions will simply ignore this setting.
|
||||
*/
|
||||
%define MODULEIMPORT
|
||||
"try:
|
||||
# Try a relative import first
|
||||
from . import $module
|
||||
# Try an absolute import first. If we're being loaded from lldb,
|
||||
# _lldb should be a built-in module.
|
||||
import $module
|
||||
except ImportError:
|
||||
# Maybe absolute import will work (if we're being loaded from lldb, it
|
||||
# should).
|
||||
import $module"
|
||||
# Relative import should work if we are being loaded by Python.
|
||||
from . import $module"
|
||||
%enddef
|
||||
// These versions will not generate working python modules, so error out early.
|
||||
#if SWIG_VERSION >= 0x030009 && SWIG_VERSION < 0x030011
|
||||
|
||||
@@ -132,6 +132,9 @@ public:
|
||||
|
||||
InitializePythonHome();
|
||||
|
||||
// Register _lldb as a built-in module.
|
||||
PyImport_AppendInittab("_lldb", g_swig_init_callback);
|
||||
|
||||
// Python < 3.2 and Python >= 3.2 reversed the ordering requirements for
|
||||
// calling `Py_Initialize` and `PyEval_InitThreads`. < 3.2 requires that you
|
||||
// call `PyEval_InitThreads` first, and >= 3.2 requires that you call it last.
|
||||
|
||||
Reference in New Issue
Block a user