I’m thinking I should write a simple C++ harness to call the block. That way, I 
can isolate a SWIG problem from a block/C++ issue. Should the SWIG link 
libraries (GR_SWIG_LIBRARIES) be different from the libraries used in the lib 
directory?
PWG
On Nov 14, 2016, at 10:05 PM, Garver, Paul W 
<[email protected]<mailto:[email protected]>> wrote:

Yes, gr-pwg is the OOT module.

nm on libpwg.so yields:


 nm libgnuradio-pwg.so | grep -i 
_ZN2gr7trellis26viterbi_algorithm_combinedIfhEEviiiRKSt6vectorIiSaIiEES6_RKS2_IS4_SaIS4_EESA_iiiiRKS2_IT_SaISB_EENS_7digital21trellis_metric_type_tEPKSB_PT0_
                 U 
_ZN2gr7trellis26viterbi_algorithm_combinedIfhEEviiiRKSt6vectorIiSaIiEES6_RKS2_IS4_SaIS4_EESA_iiiiRKS2_IT_SaISB_EENS_7digital21trellis_metric_type_tEPKSB_PT0_

It is undefined in libgnuradio-pwg, but libgnuradio-pwg links with 
libgnuradio-trellis, which provides the implementation as we saw before. I 
don't see an issue with this. What am I missing?

In lib/, the target_link_libraries looks like:
target_link_libraries(gnuradio-pwg ${Boost_LIBRARIES} ${GNURADIO_ALL_LIBRARIES})

GNURADIO_ALL_LIBRARIES=/usr/local/lib/libgnuradio-runtime.so/usr/local/lib/libgnuradio-pmt.so/usr/local/lib/libgnuradio-digital.so/usr/local/lib/libgnuradio-trellis.so

It does appear that GR_REQUIRED_COMPONENTS is properly updating cmake since 
gr-trellis lib is in the directive.

I grep'd through the entire gnuradio source tree and I can't find another 
instance (except gr-trellis in the viterbi_algorithm_combined blocks) calling 
viterbi_algorithm_combined().

Thanks for the suggestions. Still trying to track this one down; it has been 
very elusive!
PWG


________________________________
From: Discuss-gnuradio 
<[email protected]<mailto:[email protected]>>
 on behalf of Marcus Müller 
<[email protected]<mailto:[email protected]>>
Sent: Monday, November 14, 2016 5:16:13 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: [Discuss-gnuradio] Linking gr-digital in OOT Module (Success on 
OSX, fails on Linux)

Good spotting, Cinaed!

judging from his initials, I'd guess gr-pwg is Paul's OOT module. Point
is that libgnuradio-pwg contains a reference to, but no implementation
of, the missing symbol, which is
_ZN2gr7trellis26viterbi_algorithm_combinedIfhEEviiiRKSt6vectorIiSaIiEES6_RKS2_IS4_SaIS4_EESA_iiiiRKS2_IT_SaISB_EENS_7digital21trellis_metric_type_tEPKSB_PT0_

or to put it more "readable" (ha, ha.) in C++ terms:

void gr::trellis::viterbi_algorithm_combined<float, unsigned char>(int, int, 
int, std::vector<int, std::allocator<int> > const&, std::vector<int, 
std::allocator<int> > const&, std::vector<std::vector<int, std::allocator<int> 
>, std::allocator<std::vector<int, std::allocator<int> > > > const&, 
std::vector<std::vector<int, std::allocator<int> >, 
std::allocator<std::vector<int, std::allocator<int> > > > const&, int, int, 
int, int, std::vector<float, std::allocator<float> > const&, 
gr::digital::trellis_metric_type_t, float const*, unsigned char*)

or omitting standard template arguments and trying to format things:

void
gr::trellis::viterbi_algorithm_combined <float, unsigned char> (
        int,
        int,
        int,
        std::vector<int> const&,
        std::vector<int> const&,
        std::vector< std::vector<int> > const&,
        std::vector< std::vector<int> > const&,
        int,
        int,
        int,
        int,
        std::vector<float> const&,
        gr::digital::trellis_metric_type_t,
        float const*,
        unsigned char*)


Anyway, the question is why linking doesn't look like it should.
Just to get this out of the way: Paul, what does your
lib/CMakeLists.txt's "target_link_libraries" directive look like, exactly?

Best regards,
Marcus

On 14.11.2016 22:38, Cinaed Simson wrote:
> On 11/14/2016 06:34 AM, Garver, Paul W wrote:
>> objdump -t /usr/local/lib/libgnuradio-trellis-3.7.11git.so.0.0.0
> Isn't this a different library from the previous error message, namely
>
>> ImportError: /usr/local/lib/libgnuradio-pwg-1.0.0git.so.0.0.0:
> undefined symbol:
>
> On Linux, I don't have the library libgnuradio-pwg - should I?
>
> I have libgnuradio-trellis.
>
> -- Cinaed
>
> _______________________________________________
> Discuss-gnuradio mailing list
> [email protected]<mailto:[email protected]>
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


_______________________________________________
Discuss-gnuradio mailing list
[email protected]<mailto:[email protected]>
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
[email protected]<mailto:[email protected]>
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to