Really appreciate you having looked into this!
Unfortunately, I can't see a way to resolve this for the general public. It looks more to me like a PGI bug, frankly - not supporting code in a system-level include makes no sense to me. But I confess this seems to be PGI's mode of operation as I've seen similar issues with their compilers under other OS's as well.
We obviously cannot replace Mac's if.h with the PGI-custom version, nor can we distribute the PGI-custom version for use in that situation. So until/unless PGI fixes their problem, I think this has to be a one-off solution.
Again, thanks for looking into it. Glad that it works for you!
On Mar 3, 2011, at 1:28 PM, David Robertson wrote:
> Sorry for the delay but I wanted to make sure PGI was ok with me sharing their workaround.
> Further conversation with PGI tech support has yielded a solution. The opal/util/if.c file has the following around line 63:
> #include <net/if.h>
> Here is the explanation I have from PGI:
> <<<<< Start Quote
> For 64-bit only there might be an issue of 'not running/crashing'
> when it tries to establish the connection.
> The reason is probably because a source file includes <net/if.h>.
> <net/if.h> has some source code that we don't support , namely
> #pragma pack(4)
> I think currently ignore it.
> The file is: opal/util/if.c that includes <net/if.h>.
> You may succeed by including the attached pgi.h instead of <net/if.h>.
> End Quote >>>>>
> I followed this advise along with editing the share/openmpi/mpif*-wrapper-data.txt files to have full paths to the static libraries instead of just -lmpi_f90, -lmpi_f77, -lmpi, etc.
> users mailing list