Request for comments: mpi and using multiple compilers

Ryan Schmidt ryandesign at macports.org
Sat Jul 20 19:49:01 PDT 2013


On Jul 20, 2013, at 18:28, Sean Farley wrote:

> I'm looking for comments and feedback for two new port groups:
> multiple compilers [1] and mpi [2]. My goal is to unify all the gcc4X
> variants and mpich / openmpi variants scattered throughout the port
> tree.
> 
> Here's a summary of the port groups:
> 
> - provide variants for all compilers

I'm still pretty uneasy about this. Ports currently do a wide variety of things in their gcc variants, from setting variables and configure args, to a difference between whether the port builds with that gcc port's gcc and g++ compilers as well, or only with its fortran compiler. How will you accommodate all the variations?

Also, I think it needs to be up to each individual port to specify which gcc variants to create. Not all ports are compatible with all gcc versions. Or perhaps I just have a unique perspective on that due to pdftk, which has some severe problems in that regard. Or rather, it's that pdftk doesn't use fortran, it uses java, and perhaps it's gcc's java compiler that has severe problems. For example, gcc46 doesn't contain the java compiler at all because we could never get it to work with that version. gcc43 doesn't have the java compiler on Tiger. If other ports generally don't care, then maybe it's not important, and the portgroup can provide all gcc variants, and pdftk can simply continue to create variants manually and not use the portgroup.


> (should there be a way to blacklist?)

Setting compiler.blacklist as needed seems sufficient.


> - provide mpi variants e.g. netcdf [3]

I have no opinion on this.


> * Should there be a default compiler (i.e. +clang)? Currently, I have
> this implemented but maybe it could be removed.

I can't think of a reason why there should be a clang variant or variants. If a port cannot be compiled with gcc or llvm-gcc-4.2 or the old version of clang on Snow Leopard, then depend on the newest stable version on those OS versions.

The reason why we offer gcc variants is when a port needs to build with fortran or java. Clang ports don't provide fortran or java compilers.

https://trac.macports.org/wiki/PortfileRecipes#gcc




More information about the macports-dev mailing list