[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