ext: Update pybind11 to version 2.6.2.

This should help reduce warning spew when building with newer compilers.
The pybind11::module type has been renamed pybind11::module_ to avoid
conflicts with c++20 modules, according to the pybind11 changelog, so
this CL also updates gem5 source to use the new type. There is
supposedly an alias pybind11::module which is for compatibility, but we
still get linker errors without changing to pybind11::module_.

Change-Id: I0acb36215b33e3a713866baec43f5af630c356ee
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/40255
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Gabe Black
2021-01-31 06:07:28 -08:00
parent f0924fc39b
commit c4aaf373aa
227 changed files with 13789 additions and 4474 deletions

View File

@@ -45,7 +45,7 @@ namespace
{
void
arm_fast_model_pybind(pybind11::module &m_internal)
arm_fast_model_pybind(pybind11::module_ &m_internal)
{
auto arm_fast_model = m_internal.def_submodule("arm_fast_model");
arm_fast_model

View File

@@ -79,11 +79,11 @@ PyTrafficGen::nextGenerator()
}
void
pybind_init_tracers(py::module &m_native)
pybind_init_tracers(py::module_ &m_native)
{
using namespace pybind11::literals;
py::module m = m_native.def_submodule("trace");
py::module_ m = m_native.def_submodule("trace");
py::class_<BaseGen, std::shared_ptr<BaseGen>> c_base(m, "BaseGen");
}

View File

@@ -731,9 +731,9 @@ class MetaSimObject(type):
code('''namespace py = pybind11;
static void
module_init(py::module &m_internal)
module_init(py::module_ &m_internal)
{
py::module m = m_internal.def_submodule("param_${cls}");
py::module_ m = m_internal.def_submodule("param_${cls}");
''')
code.indent()
if cls._base:

View File

@@ -1403,9 +1403,9 @@ const char *${name}Strings[static_cast<int>(${name}::Num_${name})] =
namespace py = pybind11;
static void
module_init(py::module &m_internal)
module_init(py::module_ &m_internal)
{
py::module m = m_internal.def_submodule("enum_${name}");
py::module_ m = m_internal.def_submodule("enum_${name}");
''')
if cls.is_class:

View File

@@ -73,7 +73,7 @@ SimObject *
PybindSimObjectResolver::resolveSimObject(const std::string &name)
{
// TODO
py::module m = py::module::import("m5.SimObject");
py::module_ m = py::module_::import("m5.SimObject");
auto f = m.attr("resolveSimObject");
return f(name).cast<SimObject *>();
@@ -95,9 +95,9 @@ const bool flag_NDEBUG = false;
const bool flag_TRACING_ON = TRACING_ON;
static void
init_drain(py::module &m_native)
init_drain(py::module_ &m_native)
{
py::module m = m_native.def_submodule("drain");
py::module_ m = m_native.def_submodule("drain");
py::enum_<DrainState>(m, "DrainState")
.value("Running", DrainState::Running)
@@ -127,9 +127,9 @@ init_drain(py::module &m_native)
}
static void
init_serialize(py::module &m_native)
init_serialize(py::module_ &m_native)
{
py::module m = m_native.def_submodule("serialize");
py::module_ m = m_native.def_submodule("serialize");
py::class_<Serializable, std::unique_ptr<Serializable, py::nodelete>>(
m, "Serializable")
@@ -140,9 +140,9 @@ init_serialize(py::module &m_native)
}
static void
init_range(py::module &m_native)
init_range(py::module_ &m_native)
{
py::module m = m_native.def_submodule("range");
py::module_ m = m_native.def_submodule("range");
py::class_<AddrRange>(m, "AddrRange")
.def(py::init<>())
@@ -175,9 +175,9 @@ init_range(py::module &m_native)
}
static void
init_net(py::module &m_native)
init_net(py::module_ &m_native)
{
py::module m = m_native.def_submodule("net");
py::module_ m = m_native.def_submodule("net");
py::class_<Net::EthAddr>(m, "EthAddr")
.def(py::init<>())
@@ -201,17 +201,17 @@ init_net(py::module &m_native)
}
static void
init_loader(py::module &m_native)
init_loader(py::module_ &m_native)
{
py::module m = m_native.def_submodule("loader");
py::module_ m = m_native.def_submodule("loader");
m.def("setInterpDir", &Loader::setInterpDir);
}
void
pybind_init_core(py::module &m_native)
pybind_init_core(py::module_ &m_native)
{
py::module m_core = m_native.def_submodule("core");
py::module_ m_core = m_native.def_submodule("core");
py::class_<Cycles>(m_core, "Cycles")
.def(py::init<>())

View File

@@ -76,9 +76,9 @@ ignore(const char *expr)
}
void
pybind_init_debug(py::module &m_native)
pybind_init_debug(py::module_ &m_native)
{
py::module m_debug = m_native.def_submodule("debug");
py::module_ m_debug = m_native.def_submodule("debug");
m_debug
.def("getAllFlagsVersion", []() { return Debug::allFlagsVersion; })
@@ -116,7 +116,7 @@ pybind_init_debug(py::module &m_native)
;
py::module m_trace = m_native.def_submodule("trace");
py::module_ m_trace = m_native.def_submodule("trace");
m_trace
.def("output", &output)
.def("ignore", &ignore)

View File

@@ -99,9 +99,9 @@ class PyEvent : public Event
};
void
pybind_init_event(py::module &m_native)
pybind_init_event(py::module_ &m_native)
{
py::module m = m_native.def_submodule("event");
py::module_ m = m_native.def_submodule("event");
m.def("simulate", &simulate,
py::arg("ticks") = MaxTick);

View File

@@ -35,9 +35,9 @@ namespace
{
void
objectfile_pybind(py::module &m_internal)
objectfile_pybind(py::module_ &m_internal)
{
py::module m = m_internal.def_submodule("object_file");
py::module_ m = m_internal.def_submodule("object_file");
py::class_<Loader::ObjectFile>(m, "ObjectFile")
.def("get_arch", [](const Loader::ObjectFile &obj) {

View File

@@ -40,10 +40,10 @@
#include "pybind11/pybind11.h"
void pybind_init_core(pybind11::module &m_native);
void pybind_init_debug(pybind11::module &m_native);
void pybind_init_core(pybind11::module_ &m_native);
void pybind_init_debug(pybind11::module_ &m_native);
void pybind_init_event(pybind11::module &m_native);
void pybind_init_stats(pybind11::module &m_native);
void pybind_init_event(pybind11::module_ &m_native);
void pybind_init_stats(pybind11::module_ &m_native);
#endif

View File

@@ -78,23 +78,23 @@ namespace Stats {
void
pythonDump()
{
py::module m = py::module::import("m5.stats");
py::module_ m = py::module_::import("m5.stats");
m.attr("dump")();
}
void
pythonReset()
{
py::module m = py::module::import("m5.stats");
py::module_ m = py::module_::import("m5.stats");
m.attr("reset")();
}
}
void
pybind_init_stats(py::module &m_native)
pybind_init_stats(py::module_ &m_native)
{
py::module m = m_native.def_submodule("stats");
py::module_ m = m_native.def_submodule("stats");
m
.def("initSimStats", &Stats::initSimStats)

View File

@@ -151,7 +151,7 @@ EmbeddedPython::initAll()
}
EmbeddedPyBind::EmbeddedPyBind(const char *_name,
void (*init_func)(py::module &),
void (*init_func)(py::module_ &),
const char *_base)
: initFunc(init_func), registered(false), name(_name), base(_base)
{
@@ -159,14 +159,14 @@ EmbeddedPyBind::EmbeddedPyBind(const char *_name,
}
EmbeddedPyBind::EmbeddedPyBind(const char *_name,
void (*init_func)(py::module &))
void (*init_func)(py::module_ &))
: initFunc(init_func), registered(false), name(_name), base("")
{
getMap()[_name] = this;
}
void
EmbeddedPyBind::init(py::module &m)
EmbeddedPyBind::init(py::module_ &m)
{
if (!registered) {
initFunc(m);
@@ -198,7 +198,7 @@ EmbeddedPyBind::initAll()
{
std::list<EmbeddedPyBind *> pending;
py::module m_m5 = py::module("_m5");
py::module_ m_m5 = py::module_("_m5");
m_m5.attr("__package__") = py::cast("_m5");
pybind_init_core(m_m5);

View File

@@ -82,11 +82,11 @@ class EmbeddedPyBind
{
public:
EmbeddedPyBind(const char *_name,
void (*init_func)(pybind11::module &),
void (*init_func)(pybind11::module_ &),
const char *_base);
EmbeddedPyBind(const char *_name,
void (*init_func)(pybind11::module &));
void (*init_func)(pybind11::module_ &));
#if PY_MAJOR_VERSION >= 3
static PyObject *initAll();
@@ -95,10 +95,10 @@ class EmbeddedPyBind
#endif
private:
void (*initFunc)(pybind11::module &);
void (*initFunc)(pybind11::module_ &);
bool depsReady() const;
void init(pybind11::module &m);
void init(pybind11::module_ &m);
bool registered;
const std::string name;

View File

@@ -33,9 +33,9 @@ namespace
{
void
sim_pybind(pybind11::module &m_internal)
sim_pybind(pybind11::module_ &m_internal)
{
pybind11::module m = m_internal.def_submodule("sim");
pybind11::module_ m = m_internal.def_submodule("sim");
pybind11::class_<
Port, std::unique_ptr<Port, pybind11::nodelete>>(m, "Port")
.def("bind", &Port::bind)

View File

@@ -60,9 +60,9 @@ python_ready(pybind11::args args)
}
void
systemc_pybind(pybind11::module &m_internal)
systemc_pybind(pybind11::module_ &m_internal)
{
pybind11::module m = m_internal.def_submodule("systemc");
pybind11::module_ m = m_internal.def_submodule("systemc");
m.def("python_ready", &python_ready);
for (auto ptr = firstInitFunc(); ptr; ptr = ptr->next)
ptr->run(m);

View File

@@ -48,7 +48,7 @@ struct PythonInitFunc
PythonInitFunc();
~PythonInitFunc() {}
virtual void run(pybind11::module &systemc) = 0;
virtual void run(pybind11::module_ &systemc) = 0;
};
} // namespace sc_gem5

View File

@@ -94,7 +94,7 @@ sc_main_result_str()
struct InstallScMain : public ::sc_gem5::PythonInitFunc
{
void
run(pybind11::module &systemc) override
run(pybind11::module_ &systemc) override
{
systemc.def("sc_main", &sc_main);
systemc.def("sc_main_result_code", &sc_main_result_code);

View File

@@ -36,7 +36,7 @@ namespace
struct InstallScTime : public ::sc_gem5::PythonInitFunc
{
void
run(pybind11::module &systemc) override
run(pybind11::module_ &systemc) override
{
pybind11::class_<sc_core::sc_time> sc_time(systemc, "sc_time");
sc_time

View File

@@ -34,7 +34,7 @@ namespace
struct InstallTlmGlobalQuantum : public ::sc_gem5::PythonInitFunc
{
void
run(pybind11::module &systemc) override
run(pybind11::module_ &systemc) override
{
pybind11::class_<tlm::tlm_global_quantum>(
systemc, "tlm_global_quantum")

View File

@@ -678,9 +678,9 @@ StatTest::run()
}
static void
stattest_init_pybind(py::module &m_internal)
stattest_init_pybind(py::module_ &m_internal)
{
py::module m = m_internal.def_submodule("stattest");
py::module_ m = m_internal.def_submodule("stattest");
m
.def("stattest_init", []() { __stattest().init(); })