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

Reply via email to