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:
@@ -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
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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<>())
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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(); })
|
||||
|
||||
Reference in New Issue
Block a user