Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] PkgSrc build of 1.8.1 gives a portability error
From: Gilles Gouaillardet (gilles.gouaillardet_at_[hidden])
Date: 2014-07-17 01:16:36


Kevin,

thanks for providing the patch.

i pushed it into the trunk :
https://svn.open-mpi.org/trac/ompi/changeset/32253
and made a CMR so it can be available in v1.8.2 :
https://svn.open-mpi.org/trac/ompi/ticket/4793

Thanks,

Gilles

On 2014/07/17 13:32, Kevin Buckley wrote:
> I have been informed, by the PkgSrc build process, of the following
>
> ---8<---------8<---------8<---------8<---------8<---------8<---------8<---------8<---------8<------
> => Checking for portability problems in extracted files
> ERROR: [check-portability.awk] => Found test ... == ...:
> ERROR: [check-portability.awk] configure: if test "$enable_oshmem" ==
> "yes" -a "$ompi_fortran_happy" == "1" -a \
>
> Explanation:
> ===========================================================================
> The "test" command, as well as the "[" command, are not required to know
> the "==" operator. Only a few implementations like bash and some
> versions of ksh support it.
>
> When you run "test foo == foo" on a platform that does not support the
> "==" operator, the result will be "false" instead of "true". This can
> lead to unexpected behavior.
>
> There are two ways to fix this error message. If the file that contains
> the "test ==" is needed for building the package, you should create a
> patch for it, replacing the "==" operator with "=". If the file is not
> needed, add its name to the CHECK_PORTABILITY_SKIP variable in the
> package Makefile.
> ===========================================================================
>
> ---8<---------8<---------8<---------8<---------8<---------8<---------8<---------8<---------8<------
>
> Obviously, the file that needs to be patched is really
>
> configure.ac
>
> and not
>
> configure
>
> but anyroad, the place at which the oshmen stanza has used the "non-portable"
> double-equals construct is shown in the following attempted patch
>
>
> ---8<---------8<---------8<---------8<---------8<---------8<---------8<---------8<---------8<------
> --- configure.ac.orig 2014-04-22 14:51:44.000000000 +0000
> +++ configure.ac
> @@ -611,8 +611,8 @@ m4_ifdef([project_ompi], [OMPI_SETUP_MPI
> ])
>
> AM_CONDITIONAL(OSHMEM_BUILD_FORTRAN_BINDINGS,
> - [test "$enable_oshmem" == "yes" -a "$ompi_fortran_happy" == "1" -a \
> - "$OMPI_WANT_FORTRAN_BINDINGS" == "1" -a \
> + [test "$enable_oshmem" = "yes" -a "$ompi_fortran_happy" = "1" -a \
> + "$OMPI_WANT_FORTRAN_BINDINGS" = "1" -a \
> "$enable_oshmem_fortran" != "no"])
>
> # checkpoint results
> ---8<---------8<---------8<---------8<---------8<---------8<---------8<---------8<---------8<------
>
>