Hi Mike, If you run "make VERBOSE=1", it will show the actual commands invoked.
Looking at the linker errors, all the missing stuff should be in libsigrokcxx, which you obviously have present at /usr/local/lib/libsigrokcxx.so. But there are undefined references coming up from that to some C++ standard bits. Those may in turn be causing all the rest of the problems. My guess is that there are some extra linker arguments needed to get the correct libstdc++ symbols linked in on FreeBSD. If you post the full command line that's failing we can have a look and see if there's something obvious missing from it. Regards, Martin On Sun, Jul 10, 2016 at 07:28:35PM +0000, Mike Meyer wrote: > > I'm trying to build the current repositories on FreeBSD as part of > updating the port, and everything is working fine until it tries to link > pulseview. In particular, libserialport, libsigrok, libsigrokdecode and > sigrok-cli all build and install with no issues. "make check" also works > for them, though doesn't appear to run any tests. > "cmake ." for pulseview doesn't report any problems. Make seems to run > clean unitl it gets to this: > [ 54%] Linking CXX executable pulseview > at which point the link fails with a bunch of undefined references (at > end). From the looks of things, libsigrok isn't getting linked in > properly. And possibly some C++ library is missing as well. I can't really > debug this without knowing what command it's make is runnin, and the final > comment about "use -v to see invocation" is no help, as "make -v" just > gets a usage message, and if I knew the command that make was running, I > wouldn't need to see the invocation. > The Pulseview port installs 0.3.0, and doesn't patch anything in the > distribution. That indeed builds and installs fine if I install the > appropriate version of libsigrok. That it fails to compile against the > current version is unsurprising. > At this point, I'd like some guidance on how to figure out what's broken > in the build. I suspect there are other files you need the contents of, > but have no idea what they would be. > Thanks, > Mike > CMakeFiles/pulseview.dir/pv/devicemanager.cpp.o: In function > `pv::DeviceManager::driver_scan(std::__1::shared_ptr<sigrok::Driver>, > std::__1::map<sigrok::ConfigKey const*, Glib::VariantBase, > std::__1::less<sigrok::ConfigKey const*>, > std::__1::allocator<std::__1::pair<sigrok::ConfigKey const* const, > Glib::VariantBase> > >)': > /export/mwm/src/external/pulseview/pv/devicemanager.cpp:98: undefined > reference to `sigrok::Driver::scan(std::__1::map<sigrok::ConfigKey const*, > Glib::VariantBase, std::__1::less<sigrok::ConfigKey const*>, > std::__1::allocator<std::__1::pair<sigrok::ConfigKey const* const, > Glib::VariantBase> > >)' > CMakeFiles/pulseview.dir/pv/session.cpp.o: In function > `pv::Session::set_device(std::__1::shared_ptr<pv::devices::Device>)': > /export/mwm/src/external/pulseview/pv/session.cpp:173: undefined reference > to `sigrok::Session::add_datafeed_callback(std::__1::function<void > ()(std::__1::shared_ptr<sigrok::Device>, > std::__1::shared_ptr<sigrok::Packet>)>)' > CMakeFiles/pulseview.dir/pv/storesession.cpp.o: In function > `pv::StoreSession::start()': > /export/mwm/src/external/pulseview/pv/storesession.cpp:191: undefined > reference to > `sigrok::OutputFormat::create_output(std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> >, > std::__1::shared_ptr<sigrok::Device>, > std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, > std::__1::allocator<char> >, Glib::VariantBase, > std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, > std::__1::allocator<char> > >, > std::__1::allocator<std::__1::pair<std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> > const, > Glib::VariantBase> > >)' > /export/mwm/src/external/pulseview/pv/storesession.cpp:192: undefined > reference to > `sigrok::Context::create_meta_packet(std::__1::map<sigrok::ConfigKey > const*, Glib::VariantBase, std::__1::less<sigrok::ConfigKey const*>, > std::__1::allocator<std::__1::pair<sigrok::ConfigKey const* const, > Glib::VariantBase> > >)' > /export/mwm/src/external/pulseview/pv/storesession.cpp:195: undefined > reference to > `sigrok::Output::receive(std::__1::shared_ptr<sigrok::Packet>)' > CMakeFiles/pulseview.dir/pv/storesession.cpp.o: In function > > `pv::StoreSession::store_proc(std::__1::vector<std::__1::shared_ptr<sigrok::Channel>, > std::__1::allocator<std::__1::shared_ptr<sigrok::Channel> > >, > std::__1::vector<std::__1::shared_ptr<pv::data::AnalogSegment>, > std::__1::allocator<std::__1::shared_ptr<pv::data::AnalogSegment> > >, > std::__1::shared_ptr<pv::data::LogicSegment>)': > /export/mwm/src/external/pulseview/pv/storesession.cpp:270: undefined > reference to > > `sigrok::Context::create_analog_packet(std::__1::vector<std::__1::shared_ptr<sigrok::Channel>, > std::__1::allocator<std::__1::shared_ptr<sigrok::Channel> > >, float*, > unsigned int, sigrok::Quantity const*, sigrok::Unit const*, > std::__1::vector<sigrok::QuantityFlag const*, > std::__1::allocator<sigrok::QuantityFlag const*> >)' > /export/mwm/src/external/pulseview/pv/storesession.cpp:275: undefined > reference to > `sigrok::Output::receive(std::__1::shared_ptr<sigrok::Packet>)' > /export/mwm/src/external/pulseview/pv/storesession.cpp:288: undefined > reference to > `sigrok::Output::receive(std::__1::shared_ptr<sigrok::Packet>)' > CMakeFiles/pulseview.dir/pv/devices/hardwaredevice.cpp.o: In function > `pv::devices::HardwareDevice::open()': > /export/mwm/src/external/pulseview/pv/devices/hardwaredevice.cpp:118: > undefined reference to > `sigrok::Session::add_device(std::__1::shared_ptr<sigrok::Device>)' > CMakeFiles/pulseview.dir/pv/devices/inputfile.cpp.o: In function > `pv::devices::InputFile::open()': > /export/mwm/src/external/pulseview/pv/devices/inputfile.cpp:52: undefined > reference to > > `sigrok::InputFormat::create_input(std::__1::map<std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> >, > Glib::VariantBase, std::__1::less<std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> > >, > std::__1::allocator<std::__1::pair<std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> > const, > Glib::VariantBase> > >)' > /export/mwm/src/external/pulseview/pv/devices/inputfile.cpp:75: undefined > reference to > `sigrok::Session::add_device(std::__1::shared_ptr<sigrok::Device>)' > CMakeFiles/pulseview.dir/pv/devices/sessionfile.cpp.o: In function > `pv::devices::SessionFile::open()': > /export/mwm/src/external/pulseview/pv/devices/sessionfile.cpp:42: > undefined reference to > `sigrok::Context::load_session(std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> >)' > CMakeFiles/pulseview.dir/pv/dialogs/connect.cpp.o: In function > > `pv::dialogs::Connect::populate_serials(std::__1::shared_ptr<sigrok::Driver>)': > /export/mwm/src/external/pulseview/pv/dialogs/connect.cpp:178: undefined > reference to > `sigrok::Context::serials(std::__1::shared_ptr<sigrok::Driver>) const' > CMakeFiles/pulseview.dir/pv/view/logicsignal.cpp.o: In function > `pv::view::LogicSignal::modify_trigger()': > /export/mwm/src/external/pulseview/pv/view/logicsignal.cpp:426: undefined > reference to `sigrok::Context::create_trigger(std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> >)' > /export/mwm/src/external/pulseview/pv/view/logicsignal.cpp:440: undefined > reference to > `sigrok::TriggerStage::add_match(std::__1::shared_ptr<sigrok::Channel>, > sigrok::TriggerMatchType const*)' > /export/mwm/src/external/pulseview/pv/view/logicsignal.cpp:452: undefined > reference to > `sigrok::TriggerStage::add_match(std::__1::shared_ptr<sigrok::Channel>, > sigrok::TriggerMatchType const*)' > /export/mwm/src/external/pulseview/pv/view/logicsignal.cpp:455: undefined > reference to > `sigrok::Session::set_trigger(std::__1::shared_ptr<sigrok::Trigger>)' > CMakeFiles/pulseview.dir/pv/view/signal.cpp.o: In function > `pv::view::Signal::set_name(QString)': > /export/mwm/src/external/pulseview/pv/view/signal.cpp:83: undefined > reference to `sigrok::Channel::set_name(std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> >)' > /usr/local/lib/libsigrokcxx.so: undefined reference to `typeinfo for > std::bad_weak_ptr@GLIBCXX_3.4.15' > /usr/local/lib/libsigrokcxx.so: undefined reference to > `std::bad_weak_ptr::~bad_weak_ptr()@GLIBCXX_3.4.15' > /usr/local/lib/libsigrokcxx.so: undefined reference to `vtable for > std::bad_weak_ptr@GLIBCXX_3.4.15' > /usr/local/lib/libsigrokcxx.so: undefined reference to > `std::__throw_bad_function_call()@GLIBCXX_3.4.14' > c++: error: linker command failed with exit code 1 (use -v to see > invocation) > ------------------------------------------------------------------------------ > Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San > Francisco, CA to explore cutting-edge tech and listen to tech luminaries > present their vision of the future. This family event has something for > everyone, including kids. Get more information and register today. > http://sdm.link/attshape > _______________________________________________ > sigrok-devel mailing list > sigrok-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sigrok-devel ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports.http://sdm.link/zohodev2dev _______________________________________________ sigrok-devel mailing list sigrok-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sigrok-devel