Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] Mac OS X Static PGI
From: Ralph Castain (rhc_at_[hidden])
Date: 2011-03-11 16:34:56


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
>>> users_at_[hidden]
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>>
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users