1. 18 Apr, 2014 1 commit
    • Wesley Bland's avatar
      Makes sure that the status object is always defined · cdd8e0b7
      Wesley Bland authored
      
      
      In the MPIC_Sendrecv functions, the status object should always be defined
      since we use it internally. This won't have any impact on performance since
      the default is always to have FT collectives turned on anyway, but it will
      prevent a crash when someone overwrites that default.
      
      Fixes #2026
      Signed-off-by: Sangmin Seo's avatarSangmin Seo <sseo@anl.gov>
      cdd8e0b7
  2. 15 Apr, 2014 3 commits
    • Pavan Balaji's avatar
      Create a dummy function that calls all ROMIO public symbols. · ffcc4904
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      All ROMIO public symbols are being added into the libromio convenience
      library, which is LIBADD'ed into libmpi.  The correct behavior would
      be for libtool to add -Wl,--whole-archive to the link line, thus
      forcing all symbols in libromio to end up in libmpi.  However, in some
      cases, this is not working out correctly.  For example, with the
      Absoft compiler, the linker flags were being reordered thus causing
      the -Wl,--whole-archive flag to not correspond to libromio.
      Consequently, only symbols that were used from within the other
      functions of libmpi were being included.
      
      For example, Absoft's linker reordering is below:
      
      ----8<----
      % af77 -v -shared -fPIC src/mpi/attr/.libs/lib_libmpi_la-attrutil.o src/mpi_t/.libs/lib_libmpi_la-pvar_write.o \
        -Wl,--whole-archive src/mpi/romio/.libs/libromio.a -Wl,--no-whole-archive  \
        -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/src/mpl/.libs \
        -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/src/openpa/src/.libs \
        -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/install/lib \
        -L/sandbox/balaji/build-absoft/src/mpl -L/sandbox/balaji/build-absoft/src/openpa/src \
        /sandbox/balaji/build-absoft/src/mpl/.libs/libmpl.so /sandbox/balaji/build-absoft/src/openpa/src/.libs/libopa.so \
        -lrt -lpthread  -O0   -Wl,-soname -Wl,libmpi.so.12 -o lib/.libs/libmpi.so.12.0.0
      
      gcc src/mpi/attr/.libs/lib_libmpi_la-attrutil.o src/mpi_t/.libs/lib_libmpi_la-pvar_write.o \
          /sandbox/balaji/build-absoft/src/mpl/.libs/libmpl.so /sandbox/balaji/build-absoft/src/openpa/src/.libs/libopa.so \
          -L/soft/com/packages/absoft11.0/shlib64 -Wl,--whole-archive -Wl,--no-whole-archive \
          -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/src/mpl/.libs \
          -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/src/openpa/src/.libs \
          -Wl,-rpath -Wl,/sandbox/balaji/build-absoft/install/lib \
          -L/sandbox/balaji/build-absoft/src/mpl -L/sandbox/balaji/build-absoft/src/openpa/src \
          -Wl,-soname -Wl,libmpi.so.12 -shared -o lib/.libs/libmpi.so.12.0.0 src/mpi/romio/.libs/libromio.a \
          -lrt -lpthread -laf90math -lafio -lamisc -laf77math -lm -lmv
      ----8<----
      
      In the past, we got lucky in two ways:
      
      1. We were including all the Fortran 77 symbols into libmpi.  Since
      the Fortran symbols were calling the C ROMIO symbols, those ROMIO
      symbols were pulled in even without -Wl,--whole-archive.
      
      2. The problem only showed up with absoft and nag, both of which are
      Fortran-only compilers.  If a C compiler has this issue, it should
      have shown up when Fortran support is disabled.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      ffcc4904
    • Pavan Balaji's avatar
      Cleanup the symbol management to go into the right library. · 2957c845
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      We were adding both the ROMIO MPI_ and PMPI_ symbols into the
      external_libs variable, which end up in the same library.  This patch
      separates them out.  It also cleans up the variables to which other
      libtool libraries (such as the debug library) are added.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      2957c845
    • Pavan Balaji's avatar
      Add an explicit application dependency on the profiling library. · 5661cf2b
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      We were not explicitly linking the application binaries to libpmpi
      earlier.  This works fine when the application uses the MPI_ symbols,
      but not when the application uses the PMPI_ symbols.  On mac, where a
      separate profiling library is built, we were using -flat_namespace to
      supress this issue.  But on other platforms, without this flag, the
      issue showed up when passing --disable-weak-symbols.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      5661cf2b
  3. 14 Apr, 2014 4 commits
  4. 11 Apr, 2014 7 commits
  5. 10 Apr, 2014 3 commits
  6. 07 Apr, 2014 2 commits
  7. 03 Apr, 2014 1 commit
  8. 02 Apr, 2014 5 commits
  9. 01 Apr, 2014 11 commits
    • Pavan Balaji's avatar
      Add backward compatibility symlinks. · daa5a151
      Pavan Balaji authored
      
      
      Create symlinks for libmpich and friends, for applications that might
      still be relying on those names.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      daa5a151
    • Pavan Balaji's avatar
      Merge libmpif77 and libmpifort. · 6f421a8b
      Pavan Balaji authored
      
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      6f421a8b
    • Pavan Balaji's avatar
      Updated the CHANGES file with library management changes. · adf6ddf6
      Pavan Balaji authored
      No reviewer.
      adf6ddf6
    • Pavan Balaji's avatar
    • Pavan Balaji's avatar
      Use library dependencies. · 4adb3207
      Pavan Balaji authored
      
      
      When the conditions are right, we use libtool's interlibrary
      dependencies to only link the application with the minimum set of
      libraries required.  Those libraries will pull in the other required
      libraries on demand.  That way, the application library dependencies
      would be minimal, allowing us to add/remove extra libraries in the
      future.
      
      The "conditions are not right" when one of the following is true:
      
      1. MPICH shared library builds are disabled.
      
      2. libtool doesn't support interlibrary dependencies on this platform.
      
      3. The user passed -static or -mpich-alllibs to the command line.
      
      4. Interlibrary dependency tracking is explicitly disabled at
      configure time.
      
      Fixes #2040.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      4adb3207
    • Pavan Balaji's avatar
      Reorder library names in pkg-config. · da256e24
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      We moved the symbols around in libmpi and libpmpi.  pkg-config should
      match this.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      da256e24
    • Pavan Balaji's avatar
      Move symbols to correct libraries. · 9c337914
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      Maintain a list of files that go into each library.  If a particular
      binding is not enabled, the list variable still exists, but will just
      be empty.  This simplifies the management of which files/symbols go
      into which library.
      
      Move all MPI_ symbols to the libmpi library and all other symbols to
      the libpmpi library.  All Fortran 77 symbols go into libmpif77.so,
      while C symbols go into libmpi.so.  There are some exceptions, such as
      status_f2c, which are handled by the Fortran code but used in C.  Our
      Fortran 90 build only creates a few symbols and uses the f77 symbols
      for everything else.  These few symbols go into libmpifort.so.
      
      Also update compiler wrappers to link to correct libraries.  mpif77
      should now link with libmpif77.  mpif90 links with both libmpifort and
      libmpif77, since our F90 build still keeps the core Fortran library
      symbols in libf77.
      
      We completely ignored the F77 library earlier.  This was OK because
      all of the Fortran symbols were ending up in libmpi.  Now that we have
      separated out the symbols to the right library, we now need to link to
      libmpif77 as well.
      
      Also added inter-library dependencies.
      
      libmpi has a dependency on several internal libraries: libmpl, libopa.
      libmpicxx did not have a dependency on libmpi, added.
      libmpif77 did not have a dependency on libmpi, added.
      libmpifort did not have a dependency on libmpi, added.
      
      This dependency model is sufficient for C and F77, but not for C++ and
      F90.  The C and F77 libraries contain all the symbols the application
      relies on, but the F90 and C++ libraries don't.  In the case of F90,
      symbols such as mpi_bcast are missing and are borrowed from the F77
      library.  In the case of C++, mpicxx.h contains calls directly to C
      functions (such as MPI_Reduce_local), which get embedded into the
      application.
      
      Fixes #2023.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      9c337914
    • Pavan Balaji's avatar
      Make binding automake conditional names consistent. · be23b0d8
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      Rename BUILD_CXX_LIB to BUILD_CXX_BINDING.  Rename BUILD_F90_LIB to
      BUILD_FC_BINDING.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      be23b0d8
    • Pavan Balaji's avatar
      Use CPPFLAGS for preprocessor macros. · 88083800
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      88083800
    • Pavan Balaji's avatar
      Rename mpich libraries. · 42fe2ccf
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      The following library names are used to make the naming consistent
      across the ABI compatibility group:
      
      C libraries: libmpi.* and libpmpi.*
      C++ library: libmpicxx.*
      F77 libraries: libmpif77.*
      F90+ library: libmpifort.*
      
      This patch also gets rid of the FWRAPNAME variable, which is a
      duplicate of MPIFLIBNAME.  Similarly, FCWRAPNAME is removed and a new
      variable MPIFCLIBNAME is added, so it's consistent with the other
      names.
      
      PMPIFLIBNAME, which was unused, is no longer present.
      
      Fixes #2039.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      42fe2ccf
    • Pavan Balaji's avatar
      Incorrect placement of the MPIR_Comm_split_type_impl symbol. · 0ab70e76
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      This symbol should go into libmpich, not libpmpich.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      0ab70e76
  10. 28 Mar, 2014 2 commits
  11. 27 Mar, 2014 1 commit