[mpich2-dev] Announcing the availability of MPICH2-1.0.7rc2

Joseph Ratterman jratt at us.ibm.com
Mon Mar 24 20:26:29 CDT 2008


We downloaded the RC2 release and merged it into our code base.  When 
building the tests, we found that the Fortran underscoring in the main 
MPICH2 code did not match the settings in the tests directory.  This 
caused the build to fail. 
We set our FFLAGS with these options:
FFLAGS='-g -Wall -O3 -mcpu=450fp2 -mstrict-align -fno-strict-aliasing 
-fno-underscoring'
MPI_FFLAGS='-Wall -fno-underscoring'

The detailed analysis is below, but the problem was in the 
mpich2/test/mpi/configure.in file, which blanked the FFLAGS variable out. 
This doesn't make sense for us, since we want to have *fewer* flags in the 
generated mpif77 scripts than are used to compile the objects.  The 
test-compile in configure is done with the raw gfortran program, so it 
needs the flags to get the expected answer.  Later, the tests directory is 
built with the mpif77 script that does include the "-fno-underscoring" 
option and the Fortran object files have fewer underscores than the c 
objects.  Therefore, the Fortran tests that mixed c and Fortran language 
objects failed to match up correctly.

What was the reason for this change--is it needed on some system?  Other 
than our solution of removing the new lines from the configure file, do 
you have a "correct" way for us to solve the build error?






Looking at the config.log files from the two directories, it seems that 
the FFLAGS variable is missing in the tests dir.

./build/mpich2/dcmf/config.log:257:configure:6471: checking for Fortran 77 
name mangling
./build/mpich2/dcmf/config.log-258-configure:6496: 
/bgsys/drivers/DRV120_2008-080320P/ppc/gnu-linux/bin/powerpc-bgp-linux-gfortran 
-c -g -Wall -O3 -mcpu=450fp2 -mstrict-align -fno-strict-aliasing 
-fno-underscoring conftest.f 1>&5

./build/mpich2/dcmf/test/mpi/config.log:452:configure:5740: checking for 
Fortran 77 name mangling
./build/mpich2/dcmf/test/mpi/config.log-453-configure:5765: 
/bgsys/drivers/DRV120_2008-080320P/ppc/gnu-linux/bin/powerpc-bgp-linux-gfortran 
-c  conftest.f 1>&5


After looking through the changes, This appears to be the problem.  After 
removing the added lines, the test is run correctly and gets the expected 
result.

diff --git a/lib/mpi/mpich2/test/mpi/configure.in 
b/lib/mpi/mpich2/test/mpi/configure.in
index 9f57971..9542183 100644
--- a/lib/mpi/mpich2/test/mpi/configure.in
+++ b/lib/mpi/mpich2/test/mpi/configure.in
@@ -123,6 +123,14 @@ if test "$enable_threads" = "multiple" ; then
     threadsdir="threads"
 fi
 
+# If it is building with MPICH2, set xFLAGS to null, as mpiXX contains 
xFLAGS.
+if test "$FROM_MPICH2" = "yes" ; then
+    CFLAGS=""
+    CXXFLAGS=""
+    FFLAGS=""
+    F90FLAGS=""
+fi
+
 PAC_LOAD_BASE_CACHE
 
 PAC_VPATH_CHECK()




This is the code that generates the test compile commands shown at the 
top:
AC_DEFUN(PAC_PROG_F77_NAME_MANGLE,[
AC_CACHE_CHECK([for Fortran 77 name mangling],
pac_cv_prog_f77_name_mangle,
[
   # Check for strange behavior of Fortran.  For example, some FreeBSD
   # systems use f2c to implement f77, and the version of f2c that they 
   # use generates TWO (!!!) trailing underscores
   # Currently, WDEF is not used but could be...
   #
   # Eventually, we want to be able to override the choices here and
   # force a particular form.  This is particularly useful in systems
   # where a Fortran compiler option is used to force a particular
   # external name format (rs6000 xlf, for example).
   rm -f conftest*
   cat > conftest.f <<EOF
       subroutine MY_name( i )
       return
       end
EOF
   # This is the ac_compile line used if LANG_FORTRAN77 is selected
   if test "X$ac_fcompile" = "X" ; then
       ac_fcompile='${F77-f77} -c $FFLAGS conftest.f 1>&AC_FD_CC'
   fi









Pavan Balaji <balaji at mcs.anl.gov> 
Sent by: owner-mpich2-dev at mcs.anl.gov
03/21/08 07:32 PM
Please respond to
mpich2-dev at mcs.anl.gov


To
mpich2-dev at mcs.anl.gov, mpich-discuss at mcs.anl.gov, 
mvapich-core at cse.ohio-state.edu, Edric.Ellis at mathworks.co.uk, 
mpich-ms at mcs.anl.gov, dcmf at lists.anl-external.org, knaak at cray.com, 
seppo at totalviewtech.com, yann.kalemkarian at bull.net, Satish Balay 
<balay at mcs.anl.gov>, Dinesh Kaushik <kaushik at mcs.anl.gov>, 
mpi-users at mcs.anl.gov
cc
mpich2-core at mcs.anl.gov
Subject
[mpich2-dev] Announcing the availability of MPICH2-1.0.7rc2






Hi all,

The second release candidate for the next release of MPICH2 (1.0.7) is 
available from 
http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/mpich2-1.0.7rc2.tar.gz
. 
Please try it out and let us know if you encounter any problems. The 
major changes since 1.0.6p1 are highlighted below.

(Windows binaries are available from 
http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/mpich2-1.0.7rc2-win32-ia32.msi 

and 
http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/mpich2-1.0.7rc2-win64-x86-64.msi
)

Regards,
The MPICH2 Team

---------------------------------------------------------------------
Main changes in 1.0.7
=====================

  # OVERALL: Initial ROMIO device for BlueGene/P (the ADI device is also 
added but is not configurable at this time).

  # OVERALL: Major clean up for the propagation of user-defined and 
other MPICH2 flags throughout the code.

  # OVERALL: Support for STI Cell Broadband Engine.

  # OVERALL: Added datatype free hooks to be used by devices 
independently.

  # OVERALL: Added device-specific timer support.

  # OVERALL: make uninstall works cleanly now.

  # ROMIO: Support to take hints from a config file

  # ROMIO: more tests and bug fixes for nonblocking I/O

  # PM/PMI: Added support to use PMI Clique functionality for process 
managers that support it.

  # PM/PMI: Added SLURM support to configure to make it transparent to 
users.

  # PM/PMI: SMPD Singleton Init support.

  # WINDOWS: Fortran 90 support added.

  # SCTP: Added MPICH_SCTP_NAGLE_ON support.

  # MPE: Updated MPE logging API so that it is thread-safe (through 
global mutex).

  # MPE: Added infrastructure to piggyback argument data to MPI states.

  # DOCS: Documentation creation now works correctly for VPATH builds.

  # Many other bug fixes, memory leak fixes and code cleanup. A full 
list of changes is available using:
    svn log -r100:HEAD
https://svn.mcs.anl.gov/repos/mpi/mpich2/branches/release/MPICH2_1_0_7
-------------------------------------------------------------------

-- 
Pavan Balaji
http://www.mcs.anl.gov/~balaji


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.mcs.anl.gov/mailman/private/mpich2-dev/attachments/20080324/be6d008c/attachment.htm>


More information about the mpich2-dev mailing list