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

Dave Goodell goodell at mcs.anl.gov
Mon May 11 16:33:19 CDT 2009


I've filed ticket #593 for tracking this issue.  Anyone who is  
interested may follow along here: https://trac.mcs.anl.gov/projects/mpich2/ticket/593

-Dave

On May 11, 2009, at 4:07 PM, Joe Ratterman wrote:

> 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
>



More information about the mpich-discuss mailing list