Whoops!  We forgot to instantiate these -- thanks for catching that.

I have just committed fixes to both the trunk and the v1.0 branch. This also prompted the addition of the following text in the README file:

-----
- Open MPI will build bindings suitable for all common forms of
  Fortran 77 compiler symbol mangling on platforms that support it
  (e.g., Linux).  On platforms that do not support weak symbols (e.g.,
  OS X), Open MPI will build Fortran 77 bindings just for the compiler
  that Open MPI was configured with.

  Hence, on platforms that support it, if you configure Open MPI with
  a Fortran 77 compiler that uses one symbol mangling scheme, you can
  successfully compile and link MPI Fortran 77 applications with a
  Fortran 77 compiler that uses a different symbol mangling scheme.

  NOTE: For platforms that support the multi-Fortran-compiler bindings
  (i.e., weak symbols are supported), due to limitations in the MPI
  standard and in Fortran compilers, it is not possible to hide these
  differences in all cases.  Specifically, the following two cases may
  not be portable between different Fortran compilers:

  1. The C constants MPI_F_STATUS_IGNORE and MPI_F_STATUSES_IGNORE
     will only compare properly to Fortran applications that were
     created with Fortran compilers that that use the same
     name-mangling scheme as the Fortran compiler that Open MPI was
     configured with.

  2. Fortran compilers may have different values for the logical
     .TRUE. constant.  As such, any MPI function that uses the fortran
     LOGICAL type may only get .TRUE. values back that correspond to
     the the .TRUE. value of the Fortran compiler that Open MPI was
     configured with.

  You can use the ompi_info command to see the Fortran compiler that
  Open MPI was configured with.
-----


On Nov 22, 2005, at 12:49 AM, Anthony Chan wrote:


Hi

Linking the following program with mpicc from openmpi-1.0 compiled
with gcc-4.0 on a IA32 linux box

*************************
#include <stdio.h>
#include "mpi.h"

int main() {

int argc; char **argv;

MPI_Fint *f_status;
                       ;
        MPI_Init(&argc, &argv);

f_status = MPI_F_STATUS_IGNORE;
f_status = MPI_F_STATUSES_IGNORE;

        MPI_Finalize();

    ; return 0; }
**************************

with command "<openmpi-1.0>/bin/mpicc ts_MPI_F_STATUS_IGNORE.c" produces unresolved references of MPI_F_STATUS(ES)_IGNORE (which are both defined
in mpi.h).

Here is ompi_info:

Open MPI: 1.0r8189    Open MPI SVN revision: r8189
                Open RTE: 1.0r8189
   Open RTE SVN revision: r8189
                    OPAL: 1.0r8189
       OPAL SVN revision: r8189
...
 Configured architecture: i686-pc-linux-gnu
              C bindings: yes
            C++ bindings: yes
      Fortran77 bindings: yes (all)
      Fortran90 bindings: yes
              C compiler: /soft/apps/packages/gcc-4.0.0/bin/gcc-4.0
     C compiler absolute: /soft/apps/packages/gcc-4.0.0/bin/gcc-4.0
            C++ compiler: /soft/apps/packages/gcc-4.0.0/bin/g++-4.0
   C++ compiler absolute: /soft/apps/packages/gcc-4.0.0/bin/g++-4.0
Fortran77 compiler: /soft/apps/packages/gcc-4.0.0/bin/gfortran-4.0 Fortran77 compiler abs: /soft/apps/packages/gcc-4.0.0/bin/gfortran-4.0 Fortran90 compiler: /soft/apps/packages/gcc-4.0.0/bin/gfortran-4.0 Fortran90 compiler abs: /soft/apps/packages/gcc-4.0.0/bin/gfortran-4.0
             C profiling: yes
           C++ profiling: yes
     Fortran77 profiling: yes
     Fortran90 profiling: yes
          C++ exceptions: no
          Thread support: posix (mpi: no, progress: no)
  Internal debug support: no
     MPI parameter check: runtime
Memory profiling support: no
Memory debugging support: no
         libltdl support: 1
...


A.Chan
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users


--
{+} Jeff Squyres
{+} The Open MPI Project
{+} http://www.open-mpi.org/

Reply via email to