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: Mark Potts (potts_at_[hidden])
Date: 2009-03-12 19:09:53


All,
    I don't know PGI's compilers, but is it possible that since "restrict"
    was supposedly introduced as a C99 feature that it is not supported
    by default by their C compiler? This would explain the wording of
    the error message which indicates interpretation of "restrict" as a
    variable name.

    Perhaps, like gcc, there is a -std=c99 option for the PGI compiler?

         regards,

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
>> _______________________________________________
>> 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

-- 
***********************************
 >> Mark J. Potts, PhD
 >>
 >> HPC Applications Inc.
 >> phone: 410-992-8360 Bus
 >>        410-313-9318 Home
 >>        443-418-4375 Cell
 >> email: potts_at_[hidden]
 >>        potts_at_[hidden]
***********************************