That's not good enough - you have to use PGI's hacked version of if.h instead.
Hence my comment that we can't fix this for the general case. On Mar 11, 2011, at 1:43 PM, Jeff Squyres wrote: > David -- > > If you can come up with a configure-esque test for detecting that we're on a > system that has this bad condition, we can add an #if around the #include. > > For example, if you can write a short test that verifies that <net/if.h> is > there, but it doesn't work, and further, if we're using the broken version of > PGI on Mac OS X, then we can AC_DEFINE something to skip including that file > in opal/util/if.h. > > > > On Mar 3, 2011, at 4:22 PM, Ralph Castain wrote: > >> 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! >> Ralph >> >> >> On Mar 3, 2011, at 1:28 PM, David Robertson wrote: >> >>> UPDATE: >>> >>> 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. >>> >>> Dave >>> <pgi.h>_______________________________________________ >>> users mailing list >>> us...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/users >> >> >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users