[Lldb-commits] [lldb] r303627 - Add support for new (3.0.11+) swigs

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Tue May 23 03:55:18 PDT 2017

Author: labath
Date: Tue May 23 05:55:17 2017
New Revision: 303627

URL: http://llvm.org/viewvc/llvm-project?rev=303627&view=rev
Add support for new (3.0.11+) swigs

A change in swig 3.0.9 has caused it to generate modules incompatible
with us using them as __init__.py (bug #769). Swig 3.0.11 adds a setting to help
fix this problem, so use that. Support for older versions of swig remains

Reviewers: zturner

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D33409


Modified: lldb/trunk/scripts/lldb.swig
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/lldb.swig?rev=303627&r1=303626&r2=303627&view=diff
--- lldb/trunk/scripts/lldb.swig (original)
+++ lldb/trunk/scripts/lldb.swig Tue May 23 05:55:17 2017
@@ -31,8 +31,24 @@ o SBLineEntry: Specifies an association
       and a source file location. SBCompileUnit contains SBLineEntry(s)."
+Since version 3.0.9, swig's logic for importing the native module has changed in
+a way that is incompatible with our usage of the python module as __init__.py
+(See swig bug #769).  Fortunately, since version 3.0.11, swig provides a way for
+us to override the module import logic to suit our needs. This does that.
+Older swig versions will simply ignore this setting.
+"from . import $module"
+// These versions will not generate working python modules, so error out early.
+#if SWIG_VERSION >= 0x030009 && SWIG_VERSION < 0x030011
+#error Swig versions 3.0.9 and 3.0.10 are incompatible with lldb.
 // The name of the module to be created.
-%module(docstring=DOCSTRING) lldb
+%module(docstring=DOCSTRING, moduleimport=MODULEIMPORT) lldb
 // Parameter types will be used in the autodoc string.
 %feature("autodoc", "1");

More information about the lldb-commits mailing list