Osx 10.10

Michael,

A few months ago, I upgraded to OSX 10.10.1 Yosemite.
My existing install of GnuRadio 3.7.5 continued to work,
but today I tried to recompile an OOT module and it
failed. Something about a library incompatibility
change between Mountain Lion and Mavericks.

So I did a port selfupdate and tried to upgrade to
3.7.7.1. The build failed, with:

—> Computing dependencies for swig
—> Building swig
Error: org.macports.build for port swig returned: command execution
failed

The log file shows:


:info:build In file included from /usr/local/include/sys/file.h:26:
:info:build /usr/local/include/sys/Conf.h:28:12: fatal error: ‘iosfwd’
file not found
:info:build # include
:info:build ^

Is this a known problem?

@(^.^)@ Ed

Mike,

After spending the better part of 8 hrs doing the whole migration
procedure, as specified at the link you provided, I’m pretty much
worse off than before. The restore script failed when building a
component (this time TCL instead of swig) with the same error.

“fatal error: ‘iosfwd’ file not found”

And of course, now all my ports are wiped out.

In digging into it, it seems to be somehow related to a mix of
different variants requested for the same port. In particular,
requests that have and don’t have the +universal, but are otherwise
identical.

I may try editing my “myports.txt” file to omit all but the most recent
versions of each port and try again. Failing that, the only course
I see is to wipe everything again and start installing them one by one,
by hand. :((

Any suggestions would be welcome.

@(^.^)@ Ed

Hi Ed - Sorry to hear of your troubles migrating / upgrading MacPorts.
Yes, it can be a real pain. If you stick with default variants, then
most of the ports will be downloaded as pre-compiled binary. If you just
use MacPorts for GNU Radio related ports, then the easier way is to:

  1. wipe all MP stuff (“sudo port -f uninstall installed”);
  2. “sudo port reclaim” and answer yes, to remove binary / tarball cruft;
  3. “sudo port selfupdate”
  4. install the ports you want (without dependencies; those will be taken
    care of now, hopefully correctly).

The header ‘iosfwd’ provides the I/O stream Forward Declarations, so it
should be available in any C++ header install (whether clang or gcc, old
or new, Apple or MacPorts). Maybe your install is trying to mix C++
runtime libraries and headers? That would not be good.

You might want to check your MacPorts conf file to make sure it’s still
appropriate for your new OS.

I -highly- recommend not using +universal unless you have to, by default
or otherwise; most ports work with it but some critical ones don’t yet
(e.g., NumPy, SciPy).

Hope this helps! - MLD

Hi Ed - When updating to a new major OS version (e.g., 10.[5-9] →
10.10), you’ll need to reinstall MacPorts. The recommended migration
procedure when using MacPorts is found at <
http://trac.macports.org/wiki/Migration >. I, personally, just start
from an empty disk, install the OS, migrate over my login & anything
else necessary, install MacPorts & selfupdate, then install GNU Radio
and other ports that I need. In this manner, I’m guaranteed that the
install is correct for the new OS, without any cruft.

It is certainly possible that programs compiled on 10.9 will still work
on 10.10, if the ABI usage is compatible. But, there’s no guarantee.
Further, as you found out, updating doesn’t always work. Hence the
reason for a clean migration as per the wiki page above.

Hope this helps! - MLD

Mu saga continues unhappily.

Cleared out everything again with

sudo port-f uninstall installed
sudo port clean all

Already had done a “sudo port selfupdate” on Wednesday, so port and
my tree are up to date.

Checked the macports.conf file and didn’t see anything egregious.

Then, starting with a blank slate, entered a single line:

sudo port install gnuradio
+docs+grc+jack+orc+portaudio+python27+qtgui+sdl+swig+uhd+wavelet+wxgui-full

This ran for an hour or so before failing while building swig (again)!
Excerpt from the log follows:


:info:build make[1]: Entering directory
/opt/local/var/macports/build/_opt_local_var_macports_sources_distfiles.macports.org_ports_devel_swig/swig/work/swig-3.0.5/CCache' :info:build /usr/bin/clang -Os -arch x86_64 -Wall -W -I. -c -o ccache.o ccache.c :info:build /usr/bin/clang -Os -arch x86_64 -Wall -W -I. -c -o mdfour.o mdfour.c :info:build /usr/bin/clang -Os -arch x86_64 -Wall -W -I. -c -o hash.o hash.c :info:build /usr/bin/clang -Os -arch x86_64 -Wall -W -I. -c -o execute.o execute.c :info:build /usr/bin/clang -Os -arch x86_64 -Wall -W -I. -c -o util.o util.c :info:build /usr/bin/clang -Os -arch x86_64 -Wall -W -I. -c -o args.o args.c :info:build /usr/bin/clang -Os -arch x86_64 -Wall -W -I. -c -o stats.o stats.c :info:build make[1]: Entering directory/opt/local/var/macports/build/_opt_local_var_macports_sources_distfiles.macports.org_ports_devel_swig/swig/work/swig-3.0.5/Source’
:info:build /Applications/Xcode.app/Contents/Developer/usr/bin/make
all-am
:info:build In file included from args.c:21:
:info:build In file included from ./ccache.h:28:
:info:build In file included from /usr/local/include/sys/file.h:26:
:info:build /usr/local/include/sys/Conf.h:28:12: fatal error: ‘iosfwd’
file not found
:info:build # include
:info:build ^

Help!

@(^.^)@ Ed

Hi Ed - Sorry to hear of your continued suffering. I should have spotted
this the first run around: the error is for “/usr/local/include” … so,
it looks like you have some cruft left over in /usr/local ! If you go to
that directory & look around, maybe you can just “rm -rf” everything in
it? After cleaning up /usr/local, you’ll want to “sudo port clean swig”
before trying to install GNU Radio again (just in case). Continuing to
hope this helps! - MLD