Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] MPI_IN_PLACE not working for Fortran-compiled code linked with mpicc on Mac OS X
From: Dave Goodell (goodell_at_[hidden])
Date: 2013-01-04 11:46:53


On Jan 4, 2013, at 2:55 AM CST, Torbjörn Björkman wrote:

> It seems that a very old bug (svn.open-mpi.org/trac/ompi/ticket/1982) is playing up when linking fortran code with mpicc on Mac OS X 10.6 and the Macports distribution openmpi @1.6.3_0+gcc44. I got it working by reading up on this discussion thread:
> http://www.open-mpi.org/community/lists/users/2011/11/17862.php
> and applying the fix given there, add '-Wl,-commons,use_dylibs', to the c compiler flags solves the problem.

I'm not an Open MPI developer (or user, really), but in MPICH we also had to ensure that we passed both "-Wl,-commons,use_dylibs" *and* "-Wl,-flat_namespace" in the end. For MPI users that do not use Fortran (and therefore don't need common blocks to work correctly between the app and the library), we provide a "--enable-two-level-namespace" configure option to allow users to generate two-level namespace dylibs instead. Some combinations of third-party dylibs will require two-level namespaced MPI dylibs.

I don't know if Open MPI is using "-Wl,-flat_namespace" or not, but this is something else that any investigation should probably check.

For reference on the later MPICH discoveries about dynamically linking common symbols on Darwin: http://trac.mpich.org/projects/mpich/ticket/1590

-Dave