[mvapich-discuss] Compilation error for mvapich2-2.0.1 with disabled C++ bindings.

Chris Green greenc at fnal.gov
Tue Jan 13 16:36:35 EST 2015


Hi,

We are attempting to build a non-C++ mvapich2 that can be used safely by 
people writing C++ code using multiple compilers. Using the following 
configuration line on SLF6.6 (Scientific Linux Fermi -- a close 
derivative of RHEL6.6), with the OS-provided InfiniBand support and 
development libraries:

./configure --prefix=/usr/local/mvapich2-2.0.1 --enable-fast=O3,ndebug --enable-f77 --enable-fc \
             --disable-cxx --enable-romio --enable-versioning --enable-threads=runtime \
             --enable-registration-cache --enable-rsh --enable-shared --enable-static \
             --enable-yield=sched_yield --enable-rdma-cm

a subsequent compilation fails attempting to compile 
src/mpi/coll/ch3_shmem_coll.c with:

<snip/>
make[2]: Entering directory `/home/greenc/work/cet-is/sources/ssi-build/mvapich-ssi-build/mvapich2-2.0.1'
   CC       src/mpi/coll/ch3_shmem_coll.lo
src/mpi/coll/ch3_shmem_coll.c: In function 'mv2_shm_zcpy_reduce':
src/mpi/coll/ch3_shmem_coll.c:3829:33: error: 'is_cxx_uop' undeclared (first use in this function)
                        datatype, is_cxx_uop);
                                  ^
src/mpi/coll/ch3_shmem_coll.c:3829:33: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [src/mpi/coll/ch3_shmem_coll.lo] Error 1
<snip/>

The following is the minimum patch required for successful compilation:

  [greenc at woof] ~/work/cet-is/sources/ssi-build/mvapich-ssi-build/mvapich2-2.0.1/src/mpi/coll $ diff -bu ch3_shmem_coll.c{~,}
--- ch3_shmem_coll.c~   2014-10-29 13:07:22.000000000 -0500
+++ ch3_shmem_coll.c    2015-01-13 13:33:25.406662528 -0600
@@ -3826,7 +3826,13 @@
                                                                                                                            
         /* Now, do the intra-node shm-slot reduction */
         mv2_shm_tree_reduce(shmem, in_buf, len, count, intra_node_root, uop,
-                      datatype, is_cxx_uop);
+                      datatype,
+#ifdef HAVE_CXX_BINDING
+                      is_cxx_uop
+#else
+                      0
+#endif
+);

         shmem->queue[shmem->local_rank].shm_slots[windex]->psn = shmem->write;
         shmem->queue[shmem->local_rank].shm_slots[windex]->tail_psn = (volatile uint32_t *)
@@ -3901,7 +3907,13 @@
         }
      } else {
         mv2_shm_tree_reduce(shmem, in_buf, len, count, intra_node_root, uop,
-                      datatype, is_cxx_uop);
+                      datatype,
+#ifdef HAVE_CXX_BINDING
+                      is_cxx_uop
+#else
+                      0
+#endif
+);
         shmem->queue[shmem->local_rank].shm_slots[windex]->psn = shmem->write;
      }

We believe this is a clear-cut error and simple fix, but if we do in 
fact have something wrong with our configure line, we'd be grateful for 
the education.

Thanks,
Chris.

-- 
Chris Green <greenc at fnal.gov>, FNAL CS/SCD/ADSS/SSI/SSD;
'phone (630) 840-2167; Skype: chris.h.green;
IM: greenc at jabber.fnal.gov, chissgreen (AIM, Yahoo),
chissg at hotmail.com (MSNM), chris.h.green (Google Talk).



More information about the mvapich-discuss mailing list