Paul, i am sorry i missed that.
and you are right, 1.8.1 and 1.8 from svn differs : from svn (config/ompi_setup_mpi_fortran.m4) # Per https://svn.open-mpi.org/trac/ompi/ticket/4590, if the # Fortran compiler doesn't support PROCEDURE in the way we # want/need, disable the mpi_f08 module. OMPI_FORTRAN_HAVE_PROCEDURE=0 AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 -a \ $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1], [ # Does the compiler support "procedure" OMPI_FORTRAN_CHECK_PROCEDURE( [OMPI_FORTRAN_HAVE_PROCEDURE=1], [OMPI_FORTRAN_HAVE_PROCEDURE=0 OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) 1.8.1 does not disqualify f08 bindings if PROCEDURE is not supported. /* for the sake of completion, in some cases, 1.8.1 *might* disqualify f08 bindings if PROCEDURE *is* supported : # Per https://svn.open-mpi.org/trac/ompi/ticket/4157, temporarily # disqualify the fortran compiler if it exhibits the behavior # described in that ticket. Short version: OMPI does something # non-Fortran that we don't have time to fix 1.7.4. So we just # disqualify Fortran compilers who actually enforce this issue, # and we'll fix OMPI to be Fortran-compliant after 1.7.4 AS_IF([test $OMPI_WANT_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ test $OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS -eq 1 && \ test $OMPI_FORTRAN_HAVE_PROCEDURE -eq 1 && \ test $OMPI_FORTRAN_HAVE_ABSTRACT -eq 1], [ # Check for ticket 4157 OMPI_FORTRAN_CHECK_TICKET_4157( [], [ # If we don't have this, don't build the mpi_f08 module OMPI_BUILD_FORTRAN_USEMPIF08_BINDINGS=0])]) from the sources and #4590, f08 binding is intentionally disabled since PGI compilers does not support PROCEDURE. i agree this is really bad for PGI users :-( Jeff, can you comment on that ? Cheers, Gilles On 2014/07/30 13:25, Paul Hargrove wrote: > Giles, > > If you look more carefully at the output I provided you will see that 1.8.1 > *does* test for PROCEDURE support and finds it lacking. BOTH outputs > include: > checking if Fortran compiler supports PROCEDURE... no > > However in the 1.8.1 case that is apparently not sufficient to disqualify > building the f08 module. > > The test does fail in both 1.8.1 and 1.8.2rc2. > Here is the related portion of config.log from one of them: > > configure:57708: checking if Fortran compiler supports PROCEDURE > configure:57735: pgf90 -c -g conftest.f90 >&5 PGF90-S-0155-Illegal > procedure interface - mpi_user_function (conftest.f90: 12) > PGF90-S-0155-Illegal procedure interface - mpi_user_function (conftest.f90: > 12) 0 inform, 0 warnings, 2 severes, 0 fatal for test_proc configure:57735: > $? = 2 configure: failed program was: | MODULE proc_mod | INTERFACE | > SUBROUTINE MPI_User_function | END SUBROUTINE | END INTERFACE | END MODULE > proc_mod | | PROGRAM test_proc | INTERFACE | SUBROUTINE binky(user_fn) | > USE proc_mod | PROCEDURE(MPI_User_function) :: user_fn | END SUBROUTINE | > END INTERFACE | END PROGRAM configure:57751: result: no > > Other than the line numbers the 1.8.1 and 1.8.2rc2 output are identical in > this respect. > > The test also fails run manually: > > {hargrove@hopper04 OMPI}$ pgf90 -c -g conftest.f90 PGF90-S-0155-Illegal > procedure interface - mpi_user_function (conftest.f90: 12) > PGF90-S-0155-Illegal procedure interface - mpi_user_function (conftest.f90: > 12) 0 inform, 0 warnings, 2 severes, 0 fatal for test_proc > {hargrove@hopper04 OMPI}$ pgf90 -V pgf90 13.10-0 64-bit target on x86-64 > Linux -tp shanghai The Portland Group - PGI Compilers and Tools Copyright > (c) 2013, NVIDIA CORPORATION. All rights reserved. > > -Paul > > On Tue, Jul 29, 2014 at 9:09 PM, Gilles Gouaillardet < > gilles.gouaillar...@iferc.org> wrote: > >> Paul, >> >> from the logs, the only difference i see is about Fortran PROCEDURE. >> >> openpmi 1.8 (svn checkout) does not build the usempif08 bindings if >> PROCEDURE is not supported. >> >> from the logs, openmpi 1.8.1 does not check whether PROCEDURE is supported >> or not >> >> here is the sample program to check PROCEDURE (from >> config/ompi_fortran_check_procedure.m4) >> >> MODULE proc_mod >> INTERFACE >> SUBROUTINE MPI_User_function >> END SUBROUTINE >> END INTERFACE >> END MODULE proc_mod >> >> PROGRAM test_proc >> INTERFACE >> SUBROUTINE binky(user_fn) >> USE proc_mod >> PROCEDURE(MPI_User_function) :: user_fn >> END SUBROUTINE >> END INTERFACE >> END PROGRAM >> >> i do not have a PGI license, could you please confirm the PGI compiler >> fails compiling the test above ? >> >> Cheers, >> >> Gilles >> >> On 2014/07/30 12:54, Paul Hargrove wrote: >> >> On Tue, Jul 29, 2014 at 6:38 PM, Paul Hargrove <phhargr...@lbl.gov> >> <phhargr...@lbl.gov> wrote: >> >> >> On Tue, Jul 29, 2014 at 6:33 PM, Paul Hargrove <phhargr...@lbl.gov> >> <phhargr...@lbl.gov> wrote: >> >> >> I am trying again with an explicit --enable-mpi-fortran=usempi at >> configure time to see what happens. >> >> >> Of course that should have said --enable-mpi-fortran=usempif08 >> >> >> I've switched to using PG13.6 for my testing. >> I find that even when I pass that flag I see that use_mpi_f08 is NOT >> enabled: >> >> checking Fortran compiler ignore TKR syntax... not cached; checking variants >> checking for Fortran compiler support of TYPE(*), DIMENSION(*)... no >> checking for Fortran compiler support of !DEC$ ATTRIBUTES NO_ARG_CHECK... no >> checking for Fortran compiler support of !$PRAGMA IGNORE_TKR... no >> checking for Fortran compiler support of !DIR$ IGNORE_TKR... yes >> checking Fortran compiler ignore TKR syntax... 1:real, dimension(*):!DIR$ >> IGNORE_TKR >> checking if Fortran compiler supports ISO_C_BINDING... yes >> checking if building Fortran 'use mpi' bindings... yes >> checking if Fortran compiler supports SUBROUTINE BIND(C)... yes >> checking if Fortran compiler supports TYPE, BIND(C)... yes >> checking if Fortran compiler supports TYPE(type), BIND(C, NAME="name")... >> yes >> checking if Fortran compiler supports PROCEDURE... no >> *checking if building Fortran 'use mpi_f08' bindings... no* >> >> Contrast that to openmpi-1.8.1 and the same compiler: >> >> checking Fortran compiler ignore TKR syntax... not cached; checking variants >> checking for Fortran compiler support of TYPE(*), DIMENSION(*)... no >> checking for Fortran compiler support of !DEC$ ATTRIBUTES NO_ARG_CHECK... no >> checking for Fortran compiler support of !$PRAGMA IGNORE_TKR... no >> checking for Fortran compiler support of !DIR$ IGNORE_TKR... yes >> checking Fortran compiler ignore TKR syntax... 1:real, dimension(*):!DIR$ >> IGNORE_TKR >> checking if building Fortran 'use mpi' bindings... yes >> checking if Fortran compiler supports ISO_C_BINDING... yes >> checking if Fortran compiler supports SUBROUTINE BIND(C)... yes >> checking if Fortran compiler supports TYPE, BIND(C)... yes >> checking if Fortran compiler supports TYPE(type), BIND(C, NAME="name")... >> yes >> checking if Fortran compiler supports optional arguments... yes >> checking if Fortran compiler supports PRIVATE... yes >> checking if Fortran compiler supports PROTECTED... yes >> checking if Fortran compiler supports ABSTRACT... yes >> checking if Fortran compiler supports ASYNCHRONOUS... yes >> checking if Fortran compiler supports PROCEDURE... no >> checking size of Fortran type(test_mpi_handle)... 4 >> checking Fortran compiler F08 assumed rank syntax... not cached; checking >> checking for Fortran compiler support of TYPE(*), DIMENSION(..)... no >> checking Fortran compiler F08 assumed rank syntax... no >> checking which mpi_f08 implementation to build... "good" compiler, no array >> subsections >> *checking if building Fortran 'use mpi_f08' bindings... yes* >> >> So, somewhere between 1.8.1 and 1.8.2rc2 something has happened in the >> configure logic to disqualify the pgf90 compiler. >> >> I also surprised to see 1.8.2rc2 performing *fewer* tests of FC then 1.8.1 >> did (unless they moved elsewhere?). >> >> In the end I cannot reproduce the originally reported problem for the >> simple reason that I instead see: >> >> {hargrove@hopper04 openmpi-1.8.2rc2-linux-x86_64-pgi-14.4}$ >> ./INST/bin/mpif90 ../test.f >> PGF90-F-0004-Unable to open MODULE file mpi_f08.mod (../test.f: 2) >> PGF90/x86-64 Linux 14.4-0: compilation aborted >> >> >> Tetsuya Mishima, >> >> Is it possible that your installation of 1.8.2rc2 was to the same prefix as >> an older build? >> It that is the case, you may have the mpi_f08.mod from the older build even >> though no f08 support is in the new build. >> >> >> -Paul >> >> >> >> >> >> _______________________________________________ >> devel mailing listde...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2014/07/15342.php >> >> >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2014/07/15343.php >> > > > > > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2014/07/15344.php