GR 3.7.2.1 on OSX 10.8 (Mountain Lion)

Hi Michael,

A short while ago, I installed 3.7.2.1 from your macports
implementation. The install went without trouble, and
I’ve been composing and running flowgraphs from GRC
with no issues.

I recently tried to port one of my custom blocks up to
the 3.7 api, and I encountered problems. In order
to try and eliminate as much as possible, I tried creating
a new gr-howto module, as per the tutorial. It succeeds
the cmake but fails make during the link stage.

The first few errors emitted are

[ 5%] Building CXX object
lib/CMakeFiles/gnuradio-howto.dir/square_ff_impl.cc.o
Linking CXX shared library libgnuradio-howto.dylib
Undefined symbols for architecture x86_64:
“pmt::dict_has_key(boost::intrusive_ptrpmt::pmt_base const&,
boost::intrusive_ptrpmt::pmt_base const&)”, referenced from:

gr::basic_block::has_msg_port(boost::intrusive_ptrpmt::pmt_base) in
square_ff_impl.cc.o
“pmt::intrusive_ptr_add_ref(pmt::pmt_base*)”, referenced from:

gr::basic_block::dispatch_msg(boost::intrusive_ptrpmt::pmt_base,
boost::intrusive_ptrpmt::pmt_base) in square_ff_impl.cc.o
std::map<boost::intrusive_ptrpmt::pmt_base,
boost::function<void (boost::intrusive_ptrpmt::pmt_base)>,
pmt::comparator,
std::allocator<std::pair<boost::intrusive_ptrpmt::pmt_base const,
boost::function<void (boost::intrusive_ptrpmt::pmt_base)> > >

::operator[](boost::intrusive_ptrpmt::pmt_base const&) in
square_ff_impl.cc.o

====================

It would seem to be a boost problem. Port shows me as
having boost 1.55.0 installed.

The same exact module makes fine on a different system
running 3.7.2.1 under Ubuntu 12.04lts.

Any ideas? Thanks!

@(^.^)@ Ed

Hi Ed - I’m glad to hear that GNU Radio 3.7.2.1 installed without issues
using MacPorts for you. 3.7.3 was released not long ago, and contains
some nice fixes – especially for audio on OSX. You can
{{{
sudo port selfupdate
sudo port upgrade outdated
}}}
to get it (and, everything else that’s been updated since then).

Given the link error, it looks like PMT is not being included in the
link. I think this is still an issue on OSX, looking at the current
gr-newmod/CMakeLists.txt file. You’ll want to change line 93 from:
{{{
set(GR_REQUIRED_COMPONENTS RUNTIME)
}}}
to
{{{
set(GR_REQUIRED_COMPONENTS RUNTIME PMT)
}}}
and, that might do the trick. Hopefully that’s it. Obviously, if you
need any other GR components you’ll need them on this line too. But,
PMT is generally required along with RUNTIME when building on OSX (this
is not the case for most/all Linux).

Let me know if this works for you, and I’ll figure out a way to add it
into that file appropriately. - MLD