Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] PGI 8.0-4 doesn't like ompi/mca/op/op.h
From: Prentice Bisbal (prentice_at_[hidden])
Date: 2009-03-13 09:11:55


I was able to compile 1.3.0 with PGI 8.0-3 on January 27th. If that
helps anyone.

--
Prentice
George Bosilca wrote:
> Apparently, the PGI compiler (version 8) doesn't recognize restrict as a
> keyword in a function prototype if the associated argument is not named.
> There is one obvious solution: remove the restrict keyword but I don't
> think it's the right one.
> 
> Can you try to replace
>> typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void *restrict,
>>                                                      void *restrict,
>>                                                      void *restrict,
>> int *,
>>                                                      struct
>> ompi_datatype_t **,
>>                                                      struct
>> ompi_op_base_module_1_0_0_t *);
> 
> by typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void *restrict
> in1,
>>                                                      void *restrict in2,
>>                                                      void *restrict
>> out, int *,
>>                                                      struct
>> ompi_datatype_t **,
>>                                                      struct
>> ompi_op_base_module_1_0_0_t *);
> 
> Thanks,
>   george.
> 
> On Mar 11, 2009, at 15:52 , Mostyn Lewis wrote:
> 
>> Compiling SVN r20757 with PGI 8.0-4 failed doing ompi_info with
>>
>> "../../../.././ompi/mca/op/op.h", line 264: error: duplicate parameter
>> name
>>                                                        void *restrict,
>>                                                              ^
>>
>> "../../../.././ompi/mca/op/op.h", line 265: error: duplicate parameter
>> name
>>                                                        void *restrict,
>> int *,
>>                                                              ^
>>
>> 2 errors detected in the compilation of
>> "../../../.././ompi/tools/ompi_info/components.cc".
>> make[2]: *** [components.o] Error 2
>> make[2]: Leaving directory
>> `/tmp/o/openmpi-1.4a1r20757_svn/build/ompi/tools/ompi_info'
>>
>> Code is:
>>
>> /*
>> * Typedef for 3-buffer (two input and one output) op functions.
>> */
>> typedef void (*ompi_op_base_3buff_handler_fn_1_0_0_t)(void *restrict,
>>                                                      void *restrict,
>>                                                      void *restrict,
>> int *,
>>                                                      struct
>> ompi_datatype_t **,
>>                                                      struct
>> ompi_op_base_module_1_0_0_t *);
>>
>> DM