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: Jeff Squyres (jsquyres_at_[hidden])
Date: 2009-03-12 23:09:34


It's odd because PGI 7.0 and 7.1 compile OMPI just fine (don't know
about PGI 7.2).

On Mar 12, 2009, at 7:09 PM, Mark Potts wrote:

> 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]
> ***********************************
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Jeff Squyres
Cisco Systems