Hi Oliver, I think there are at least two different issues here. One of them can be fixed by applying this patch: https://gem5-review.googlesource.com/c/public/gem5/+/14818
The other one has to do with PyTrafficGen and a quick fix for you is to remove the macro M5_LOCAL from the declaration in src/cpu/testers/traffic_gen/pygen.hh . This however will create issues if you try to compile with gcc. Nikos On 13/12/2018 02:36, Oliver wrote: > hi all, > > On a brand new macOS install, with python27 (activated through conda) and > default clang, against the head of git master branch: > > $ scons build/X86/gem5.opt -j 16 > > This is the error message at the final linking stage, any idea? TIA. > > > Undefined symbols for architecture x86_64: > "PyTrafficGen::start(pybind11::object)", referenced from: > module_init(pybind11::module&) in lib.o.partial > "typeinfo for PyTrafficGen", referenced from: > pybind11::detail::type_caster_base<PyTrafficGen>::cast(PyTrafficGen > const*, pybind11::return_value_policy, pybind11::handle) in lib.o.partial > pybind11::class_<PyTrafficGen, BaseTrafficGen, > std::__1::unique_ptr<PyTrafficGen, pybind11::nodelete> >> ::class_<>(pybind11::handle, char const*) in lib.o.partial > pybind11::class_<PyTrafficGen, BaseTrafficGen, > std::__1::unique_ptr<PyTrafficGen, pybind11::nodelete> >> ::init_instance(pybind11::detail::instance*, void const*) in lib.o.partial > void > pybind11::cpp_function::initialize<pybind11::cpp_function::cpp_function<std::__1::shared_ptr<BaseGen>, > PyTrafficGen, unsigned long long, pybind11::name, pybind11::is_method, > pybind11::sibling>(std::__1::shared_ptr<BaseGen> (PyTrafficGen::*)(unsigned > long long), pybind11::name const&, pybind11::is_method const&, > pybind11::sibling const&)::'lambda'(PyTrafficGen*, unsigned long long), > std::__1::shared_ptr<BaseGen>, PyTrafficGen*, unsigned long long, > pybind11::name, pybind11::is_method, > pybind11::sibling>(std::__1::shared_ptr<BaseGen>&&, PyTrafficGen > (*)(unsigned long long), pybind11::name const&, pybind11::is_method const&, > pybind11::sibling > const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) > const in lib.o.partial > void > pybind11::cpp_function::initialize<pybind11::cpp_function::cpp_function<std::__1::shared_ptr<BaseGen>, > PyTrafficGen, unsigned long long, unsigned long long, unsigned long long, > unsigned long long, unsigned long long, unsigned long long, unsigned char, > unsigned long long, pybind11::name, pybind11::is_method, > pybind11::sibling>(std::__1::shared_ptr<BaseGen> (PyTrafficGen::*)(unsigned > long long, unsigned long long, unsigned long long, unsigned long long, > unsigned long long, unsigned long long, unsigned char, unsigned long long), > pybind11::name const&, pybind11::is_method const&, pybind11::sibling > const&)::'lambda'(PyTrafficGen*, unsigned long long, unsigned long long, > unsigned long long, unsigned long long, unsigned long long, unsigned long > long, unsigned char, unsigned long long), std::__1::shared_ptr<BaseGen>, > PyTrafficGen*, unsigned long long, unsigned long long, unsigned long long, > unsigned long long, unsigned long long, unsigned long long, unsigned char, > unsigned long long, pybind11::name, pybind11::is_method, > pybind11::sibling>(std::__1::shared_ptr<BaseGen>&&, PyTrafficGen > (*)(unsigned long long, unsigned long long, unsigned long long, unsigned > long long, unsigned long long, unsigned long long, unsigned char, unsigned > long long), pybind11::name const&, pybind11::is_method const&, > pybind11::sibling > const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) > const in lib.o.partial > void > pybind11::cpp_function::initialize<pybind11::cpp_function::cpp_function<std::__1::shared_ptr<BaseGen>, > PyTrafficGen, unsigned long long, unsigned long long, unsigned long long, > unsigned long long, unsigned long long, unsigned long long, unsigned char, > unsigned long long, unsigned int, unsigned int, unsigned int, unsigned int, > unsigned int, unsigned int, pybind11::name, pybind11::is_method, > pybind11::sibling>(std::__1::shared_ptr<BaseGen> (PyTrafficGen::*)(unsigned > long long, unsigned long long, unsigned long long, unsigned long long, > unsigned long long, unsigned long long, unsigned char, unsigned long long, > unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, > unsigned int), pybind11::name const&, pybind11::is_method const&, > pybind11::sibling const&)::'lambda'(PyTrafficGen*, unsigned long long, > unsigned long long, unsigned long long, unsigned long long, unsigned long > long, unsigned long long, unsigned char, unsigned long long, unsigned int, > unsigned int, unsigned int, unsigned int, unsigned int, unsigned int), > std::__1::shared_ptr<BaseGen>, PyTrafficGen*, unsigned long long, unsigned > long long, unsigned long long, unsigned long long, unsigned long long, > unsigned long long, unsigned char, unsigned long long, unsigned int, > unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, > pybind11::name, pybind11::is_method, > pybind11::sibling>(std::__1::shared_ptr<BaseGen>&&, PyTrafficGen > (*)(unsigned long long, unsigned long long, unsigned long long, unsigned > long long, unsigned long long, unsigned long long, unsigned char, unsigned > long long, unsigned int, unsigned int, unsigned int, unsigned int, unsigned > int, unsigned int), pybind11::name const&, pybind11::is_method const&, > pybind11::sibling > const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) > const in lib.o.partial > void > pybind11::cpp_function::initialize<pybind11::cpp_function::cpp_function<std::__1::shared_ptr<BaseGen>, > PyTrafficGen, unsigned long long, unsigned long long, unsigned long long, > unsigned long long, unsigned long long, unsigned long long, unsigned char, > unsigned long long, unsigned int, unsigned int, unsigned int, unsigned int, > unsigned int, unsigned int, unsigned int, pybind11::name, > pybind11::is_method, pybind11::sibling>(std::__1::shared_ptr<BaseGen> > (PyTrafficGen::*)(unsigned long long, unsigned long long, unsigned long > long, unsigned long long, unsigned long long, unsigned long long, unsigned > char, unsigned long long, unsigned int, unsigned int, unsigned int, > unsigned int, unsigned int, unsigned int, unsigned int), pybind11::name > const&, pybind11::is_method const&, pybind11::sibling > const&)::'lambda'(PyTrafficGen*, unsigned long long, unsigned long long, > unsigned long long, unsigned long long, unsigned long long, unsigned long > long, unsigned char, unsigned long long, unsigned int, unsigned int, > unsigned int, unsigned int, unsigned int, unsigned int, unsigned int), > std::__1::shared_ptr<BaseGen>, PyTrafficGen*, unsigned long long, unsigned > long long, unsigned long long, unsigned long long, unsigned long long, > unsigned long long, unsigned char, unsigned long long, unsigned int, > unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, > unsigned int, pybind11::name, pybind11::is_method, > pybind11::sibling>(std::__1::shared_ptr<BaseGen>&&, PyTrafficGen > (*)(unsigned long long, unsigned long long, unsigned long long, unsigned > long long, unsigned long long, unsigned long long, unsigned char, unsigned > long long, unsigned int, unsigned int, unsigned int, unsigned int, unsigned > int, unsigned int, unsigned int), pybind11::name const&, > pybind11::is_method const&, pybind11::sibling > const&)::'lambda'(pybind11::detail::function_call&)::operator()(pybind11::detail::function_call&) > const in lib.o.partial > ... > "_sc_main", referenced from: > sc_gem5::ScMainFiber::main() in lib.o.partial > ld: symbol(s) not found for architecture x86_64 > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > scons: *** [build/X86/gem5.opt] Error 1 > scons: building terminated because of errors. > IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
