[mpich-discuss] Compile error in MPICH2 1.1b1 with external PMPI library

Joe Ratterman jratt0 at gmail.com
Mon May 11 16:07:40 CDT 2009


First, the MPICH2 configure system believes that the IBM XL compiler does
not support weak aliases (which it does).  I think that it worked in 1.0.4,
but it doesn't in 1.0.7 or later.  That isn't a big problem, but causes this
other error: "MPIR_Barrier_or_coll_fn" doesn't exist in any library.  This
is the function declaration: PMPI_LOCAL inline int
MPIR_Barrier_or_coll_fn(MPID_Comm *comm_ptr )

For our XL-based build (static only), barrier.c is compiled twice & the
relevant symbol dumps are below.
    +  barrier.o with PMPI_Barrier() as a real function that calls out to
various helper functions, such as MPIR_Barrier, which are also in the file.
    +  _barrier.o with MPI_Barrier() as a real function (same as above, only
the name changed) that calls out to various helper functions, such as
MPIR_Barrier, which are NOT in the file, as they are #ifdef'ed out of the
source code used to do the compile.

(P)MPI_Barrier() calls "MPIR_Barrier_or_coll_fn", whose source code was
removed from the barrier.o file.  There is no out-of-line version, since it
is supposed to be an inline.  We were able to fix the problem by removing
the "inline".  This seems like the right choice, though it would be possible
to move the function so that the code is included in both versions.


*_barrier.o:*
*00000000 T MPI_Barrier*
         U MPID_Comm_builtin
         U MPID_Comm_direct
         U MPID_Comm_mem
         U MPIR_Barrier
         U MPIR_Barrier_inter
*         U MPIR_Barrier_or_coll_fn*
         U MPIR_Bcast_or_coll_fn
         U MPIR_Comm_is_node_aware
         U MPIR_Err_return_comm
         U MPIR_ThreadInfo
         U MPIR_ThreadSingle
         U MPIU_Handle_get_ptr_indirect
         U pthread_getspecific
         U pthread_setspecific

*barrier.o:*
         U MPIC_Sendrecv
         U MPID_Comm_builtin
         U MPID_Comm_direct
         U MPID_Comm_mem
00000000 T MPIR_Barrier
00000180 T MPIR_Barrier_inter
         U MPIR_Bcast_inter
         U MPIR_Bcast_or_coll_fn
         U MPIR_Comm_is_node_aware
         U MPIR_Err_create_code
         U MPIR_Err_return_comm
         U MPIR_Setup_intercomm_localcomm
         U MPIR_ThreadInfo
         U MPIR_ThreadSingle
         U MPIU_Handle_get_ptr_indirect
*000003a0 T PMPI_Barrier*
         U pthread_getspecific
         U pthread_setspecific


Thanks,
Joe Ratterman
jratt at us.ibm.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20090511/d0a3a772/attachment.htm>


More information about the mpich-discuss mailing list