I'm working on new versions of the sigrok ports (libserialport, libsigrok, libsigrokdecode and pulseview being the critical bits). While the C things all build and seem to work with little problem, the GUI package - pulseview - fails to link with a bunch of references to undefined variables. Those seem to be not only things from the sigrok libraries, but some standard parts of C++ as well. I'm don't generally do much C++ or Qt work, so am out of my depth. Figures that the thing that doesn't work is the thing I have the least ability to fix.
Anyway, here's the link command and the errors it generates. There were no errors before that during the build. If someone can provide a clue as to what might be missing, or what to tell cmake, to get this to work, I'd appreciate it. The old 0.3.0 port does build, but examining it hasn't turned up anything that works. Plugging in C++ libraries, using -pthread, and trying different ways to get to the clang c++ compiler all result in linker errors. Please leave my address in the Cc: list, as I'm not subscribed. /usr/bin/CC -fPIC -O2 -g -DNDEBUG CMakeFiles/pulseview.dir/main.cpp.o CMakeFiles/pulseview.dir/pv/application.cpp.o CMakeFiles/pulseview.dir/pv/devicemanager.cpp.o CMakeFiles/pulseview.dir/pv/mainwindow.cpp.o CMakeFiles/pulseview.dir/pv/session.cpp.o CMakeFiles/pulseview.dir/pv/storesession.cpp.o CMakeFiles/pulseview.dir/pv/util.cpp.o CMakeFiles/pulseview.dir/pv/binding/binding.cpp.o CMakeFiles/pulseview.dir/pv/binding/inputoutput.cpp.o CMakeFiles/pulseview.dir/pv/binding/device.cpp.o CMakeFiles/pulseview.dir/pv/data/analog.cpp.o CMakeFiles/pulseview.dir/pv/data/analogsegment.cpp.o CMakeFiles/pulseview.dir/pv/data/logic.cpp.o CMakeFiles/pulseview.dir/pv/data/logicsegment.cpp.o CMakeFiles/pulseview.dir/pv/data/signaldata.cpp.o CMakeFiles/pulseview.dir/pv/data/segment.cpp.o CMakeFiles/pulseview.dir/pv/devices/device.cpp.o CMakeFiles/pulseview.dir/pv/devices/file.cpp.o CMakeFiles/pulseview.dir/pv/devices/hardwaredevice.cpp.o CMakeFiles/pulseview.dir/pv/devices/inputfile.cpp.o CMakeFiles/pulseview.dir/pv/devices/sessionfile.cpp.o CMakeFiles/pulseview.dir/pv/dialogs/about.cpp.o CMakeFiles/pulseview.dir/pv/dialogs/connect.cpp.o CMakeFiles/pulseview.dir/pv/dialogs/inputoutputoptions.cpp.o CMakeFiles/pulseview.dir/pv/dialogs/storeprogress.cpp.o CMakeFiles/pulseview.dir/pv/popups/deviceoptions.cpp.o CMakeFiles/pulseview.dir/pv/popups/channels.cpp.o CMakeFiles/pulseview.dir/pv/prop/bool.cpp.o CMakeFiles/pulseview.dir/pv/prop/double.cpp.o CMakeFiles/pulseview.dir/pv/prop/enum.cpp.o CMakeFiles/pulseview.dir/pv/prop/int.cpp.o CMakeFiles/pulseview.dir/pv/prop/property.cpp.o CMakeFiles/pulseview.dir/pv/prop/string.cpp.o CMakeFiles/pulseview.dir/pv/toolbars/mainbar.cpp.o CMakeFiles/pulseview.dir/pv/view/analogsignal.cpp.o CMakeFiles/pulseview.dir/pv/view/cursor.cpp.o CMakeFiles/pulseview.dir/pv/view/cursorpair.cpp.o CMakeFiles/pulseview.dir/pv/view/flag.cpp.o CMakeFiles/pulseview.dir/pv/view/header.cpp.o CMakeFiles/pulseview.dir/pv/view/marginwidget.cpp.o CMakeFiles/pulseview.dir/pv/view/logicsignal.cpp.o CMakeFiles/pulseview.dir/pv/view/rowitem.cpp.o CMakeFiles/pulseview.dir/pv/view/ruler.cpp.o CMakeFiles/pulseview.dir/pv/view/signal.cpp.o CMakeFiles/pulseview.dir/pv/view/signalscalehandle.cpp.o CMakeFiles/pulseview.dir/pv/view/timeitem.cpp.o CMakeFiles/pulseview.dir/pv/view/timemarker.cpp.o CMakeFiles/pulseview.dir/pv/view/trace.cpp.o CMakeFiles/pulseview.dir/pv/view/tracegroup.cpp.o CMakeFiles/pulseview.dir/pv/view/tracepalette.cpp.o CMakeFiles/pulseview.dir/pv/view/tracetreeitem.cpp.o CMakeFiles/pulseview.dir/pv/view/tracetreeitemowner.cpp.o CMakeFiles/pulseview.dir/pv/view/triggermarker.cpp.o CMakeFiles/pulseview.dir/pv/view/view.cpp.o CMakeFiles/pulseview.dir/pv/view/viewitem.cpp.o CMakeFiles/pulseview.dir/pv/view/viewitemowner.cpp.o CMakeFiles/pulseview.dir/pv/view/viewitempaintparams.cpp.o CMakeFiles/pulseview.dir/pv/view/viewport.cpp.o CMakeFiles/pulseview.dir/pv/view/viewwidget.cpp.o CMakeFiles/pulseview.dir/pv/widgets/colourbutton.cpp.o CMakeFiles/pulseview.dir/pv/widgets/colourpopup.cpp.o CMakeFiles/pulseview.dir/pv/widgets/devicetoolbutton.cpp.o CMakeFiles/pulseview.dir/pv/widgets/exportmenu.cpp.o CMakeFiles/pulseview.dir/pv/widgets/hidingmenubar.cpp.o CMakeFiles/pulseview.dir/pv/widgets/importmenu.cpp.o CMakeFiles/pulseview.dir/pv/widgets/popup.cpp.o CMakeFiles/pulseview.dir/pv/widgets/popuptoolbutton.cpp.o CMakeFiles/pulseview.dir/pv/widgets/sweeptimingwidget.cpp.o CMakeFiles/pulseview.dir/pv/widgets/timestampspinbox.cpp.o CMakeFiles/pulseview.dir/pv/widgets/wellarray.cpp.o CMakeFiles/pulseview.dir/signalhandler.cpp.o CMakeFiles/pulseview.dir/pv/binding/decoder.cpp.o CMakeFiles/pulseview.dir/pv/data/decoderstack.cpp.o CMakeFiles/pulseview.dir/pv/data/decode/annotation.cpp.o CMakeFiles/pulseview.dir/pv/data/decode/decoder.cpp.o CMakeFiles/pulseview.dir/pv/data/decode/row.cpp.o CMakeFiles/pulseview.dir/pv/data/decode/rowdata.cpp.o CMakeFiles/pulseview.dir/pv/view/decodetrace.cpp.o CMakeFiles/pulseview.dir/pv/widgets/decodergroupbox.cpp.o CMakeFiles/pulseview.dir/pv/widgets/decodermenu.cpp.o CMakeFiles/pulseview.dir/pv/moc_mainwindow.cpp.o CMakeFiles/pulseview.dir/pv/moc_session.cpp.o CMakeFiles/pulseview.dir/pv/moc_storesession.cpp.o CMakeFiles/pulseview.dir/pv/binding/moc_device.cpp.o CMakeFiles/pulseview.dir/pv/dialogs/moc_about.cpp.o CMakeFiles/pulseview.dir/pv/dialogs/moc_connect.cpp.o CMakeFiles/pulseview.dir/pv/dialogs/moc_inputoutputoptions.cpp.o CMakeFiles/pulseview.dir/pv/dialogs/moc_storeprogress.cpp.o CMakeFiles/pulseview.dir/pv/popups/moc_channels.cpp.o CMakeFiles/pulseview.dir/pv/popups/moc_deviceoptions.cpp.o CMakeFiles/pulseview.dir/pv/prop/moc_bool.cpp.o CMakeFiles/pulseview.dir/pv/prop/moc_double.cpp.o CMakeFiles/pulseview.dir/pv/prop/moc_enum.cpp.o CMakeFiles/pulseview.dir/pv/prop/moc_int.cpp.o CMakeFiles/pulseview.dir/pv/prop/moc_property.cpp.o CMakeFiles/pulseview.dir/pv/prop/moc_string.cpp.o CMakeFiles/pulseview.dir/pv/toolbars/moc_mainbar.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_analogsignal.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_cursor.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_flag.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_header.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_logicsignal.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_marginwidget.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_rowitem.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_ruler.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_signal.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_signalscalehandle.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_timeitem.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_timemarker.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_trace.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_tracegroup.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_tracetreeitem.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_triggermarker.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_view.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_viewitem.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_viewport.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_viewwidget.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_colourbutton.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_colourpopup.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_devicetoolbutton.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_exportmenu.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_hidingmenubar.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_importmenu.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_popup.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_popuptoolbutton.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_sweeptimingwidget.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_timestampspinbox.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_wellarray.cpp.o CMakeFiles/pulseview.dir/moc_signalhandler.cpp.o CMakeFiles/pulseview.dir/pv/data/moc_decoderstack.cpp.o CMakeFiles/pulseview.dir/pv/view/moc_decodetrace.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_decodergroupbox.cpp.o CMakeFiles/pulseview.dir/pv/widgets/moc_decodermenu.cpp.o CMakeFiles/pulseview.dir/qrc_pulseview.cpp.o -o pulseview -L/usr/local/lib /usr/local/lib/libboost_filesystem.so /usr/local/lib/libboost_system.so /usr/local/lib/libboost_thread.so /usr/local/lib/libboost_unit_test_framework.so /usr/local/lib/libQt5Svg.so.5.5.1 -lpthread -lsigrokcxx -lsigrok -lglibmm-2.4 -lgobject-2.0 -lsigc-2.0 -lsigrokdecode -lglib-2.0 -lintl /usr/local/lib/libQt5Widgets.so.5.5.1 /usr/local/lib/libQt5Gui.so.5.5.1 /usr/local/lib/libQt5Core.so.5.5.1 -Wl,-rpath,/usr/local/lib: -Wl,-rpath-link,/usr/local/lib 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) *** Error code 1 Stop. make[2]: stopped in /export/mwm/src/external/pulseview *** Error code 1 Stop. make[1]: stopped in /export/mwm/src/external/pulseview *** Error code 1 Stop. make: stopped in /export/mwm/src/external/pulseview _______________________________________________ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"