Adding MPI back to Boost

Sean Farley sean at macports.org
Sun Dec 14 10:21:51 PST 2014


Ryan Schmidt writes:

> On Dec 14, 2014, at 11:41 AM, Sean Farley wrote:
>
>> Ryan Schmidt writes:
>> 
>>> On Dec 14, 2014, at 2:28 AM, Sean Farley wrote:
>>> 
>>>> So, I've added support into the compilers portgroup for working with
>>>> the compiler.blacklist variable but that doesn't fix the issue that Ryan
>>>> tried to fix with r125939:
>>>> 
>>>> https://trac.macports.org/changeset/125939
>>>> 
>>>> It seems instead that the fix is just to remove the gcc variants:
>>>> 
>>>> mpi.setup -gcc
>>>> 
>>>> Is there anything wrong with this proposed fix? If no one objects, I'll
>>>> push my changesets which 1) add blacklist support to the compilers
>>>> portgroup and 2) add mpi portgroup to boost (but remove gcc variants).
>>> 
>>> Right, using gcc variants causes the use of libstdc++ which causes the problem on Mavericks and later.
>>> 
>>> So, without gcc variants, what variants remain?
>> 
>> clang 3.x and all versions of dragonegg. Multiple that set with all the
>> mpi choices, too.
>
> So, this would add clang33, clang34, clang35 variants, for example? But these would be different from the clang 3.x provided by Xcode in some way? The MacPorts clang ports would be able to use MPI somehow, while Xcode clang would not?

... ?

First of all, for the sake of completeness, the list of variants would
be:

$ port info boost
boost @1.56.0_2 (devel)
Variants:             clang31, clang32, clang33, clang34, clang35, debug, mpich, mpich_devel, [+]no_single, [+]no_static, openmpi, openmpi_devel, python25, python26, [+]python27, python31, python32, python33, python34, regex_match_extra, universal

The reason I wrote the mpi and compilers portgroup was because there was
no way to make sure the same compiler for both is selected. For example,

$ port install boost +clang35 +mpich

will install mpich (built with clang35 compilers) and boost (built with
clang35 compilers).

The clang provided by Xcode can be used, of course, which is the
default:

$ port install boost +mpich

will install mpich (built with Xcode compilers) and boost (built with
Xcode compilers). This will change depending on the OS version.

Perhaps you're missing that MPI is a library that provide compiler
*wrappers*? If a package needs MPI then that package is compiled with:

CC=mpicc
CXX=mpicxx
FC=mpifort
etc.


More information about the macports-dev mailing list