scons: Track swig packages when loading embedded swig code
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 28 Jun 2016 07:50:00 +0000 (03:50 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 28 Jun 2016 07:50:00 +0000 (03:50 -0400)
commit50e9d0df51247f4aeafe63cdab2a0f53a09cc8e4
treea18ea042820119cfcf1d97f7070ed782816c39d9
parent9c8710430eb671b5e89f291b9f0a10b6156ac633
scons: Track swig packages when loading embedded swig code

This patch changes how the embedded swig code is loaded to ensure that
gem5 works with swig 3.0.9. For Python 2.7 and above, swig 3.0.9 now
relies on importlib, and actually looks in the appropriate packages,
even for the wrapped C code. However, the swig wrapper does not
explicitly place the module in the right package (it just calls
Py_InitModule), and we have to take explicit action to ensure that the
swig code can be loaded. This patch adds the information to the
generated wrappers and the appropriate calls to set the context as
part of the swig initialisation.

Previous versions of swig used to fall back on looking in the global
namespace for the wrappers (and still do for Python 2.6), but
technically things should not work without the functionality in this
patch.
src/SConscript
src/sim/init.cc
src/sim/init.hh