Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: [OMPI devel] trunk - broken logic for oshmem:bindings:fort
From: Paul Hargrove (phhargrove_at_[hidden])
Date: 2014-01-09 01:38:54


Building the trunk on FreeBSD-9/x86-64, and using gmake to work around the
non-portable examples/Makefile, I *still* encounter issues with shmemfort
when running "gmake" in the examples subdirectory:

$ gmake
mpicc -g hello_c.c -o hello_c
mpicc -g ring_c.c -o ring_c
mpicc -g connectivity_c.c -o connectivity_c
gmake[1]: Entering directory
`/usr/home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/BLD/examples'
shmemcc -g hello_oshmem_c.c -o hello_oshmem
gmake[1]: Leaving directory
`/usr/home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/BLD/examples'
gmake[1]: Entering directory
`/usr/home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/BLD/examples'
shmemcc -g ring_oshmem_c.c -o ring_oshmem
gmake[1]: Leaving directory
`/usr/home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/BLD/examples'
gmake[1]: Entering directory
`/usr/home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/BLD/examples'
shmemfort -g hello_oshmemfh.f90 -o hello_oshmemfh
--------------------------------------------------------------------------
No underlying compiler was specified in the wrapper compiler data file
(e.g., mpicc-wrapper-data.txt)
--------------------------------------------------------------------------
gmake[1]: *** [hello_oshmemfh] Error 1
gmake[1]: Leaving directory
`/usr/home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/BLD/examples'
gmake[1]: Entering directory
`/usr/home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/BLD/examples'
shmemfort -g ring_oshmemfh.f90 -o ring_oshmemfh
--------------------------------------------------------------------------
No underlying compiler was specified in the wrapper compiler data file
(e.g., mpicc-wrapper-data.txt)
--------------------------------------------------------------------------
gmake[1]: *** [ring_oshmemfh] Error 1
gmake[1]: Leaving directory
`/usr/home/phargrov/OMPI/openmpi-trunk-freebsd9-amd64/BLD/examples'
gmake: *** [mpi] Error 2

If one looks at the logic in the Makefile, one sees use of shmem_info to
determine if the fortran bindings are available. Running that utility
manually I see:
$ oshmem_info --parsable | grep bindings
bindings:c:yes
bindings:cxx:no
bindings:mpif.h:no
bindings:use_mpi:no
bindings:use_mpi:size:deprecated-ompi-info-value
bindings:use_mpi_f08:no
bindings:use_mpi_f08:compliance:The mpi_f08 module was not built
bindings:use_mpi_f08:subarrays-supported:no
bindings:java:no
oshmem:bindings:c:yes
oshmem:bindings:fort:yes

This already looks suspicious because it reports fortran bindings for
oshmem but not for MPI.
Well, there is *no* fortran compiler on this system. Quoting from the
configure output:
*** Fortran compiler
checking for gfortran... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for ifort... no
checking for ifc... no
checking for efc... no
checking for pgfortran... no
checking for pgf95... no
checking for lf95... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for epcf90... no
checking whether we are using the GNU Fortran compiler... no
checking whether accepts -g... no
checking whether ln -s works... yes
configure: WARNING: *** All Fortran MPI bindings disabled (could not find
compiler)

So, why "oshmem:bindings:fort:yes"?
The AM_CONDITIONAL "OSHMEM_WANT_FORTRAN_BINDINGS" is somehow "true" despite
the lack of a fortran compiler. So, I assume something is busted
in config/oshmem_configure_options.m4.

-Paul

-- 
Paul H. Hargrove                          PHHargrove_at_[hidden]
Future Technologies Group
Computer and Data Sciences Department     Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900