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&#39;t in 1.0.7 or later.  That isn&#39;t a big problem, but causes this other error: &quot;MPIR_Barrier_or_coll_fn&quot; doesn&#39;t exist in any library.  This is the function declaration:<div>


<div>PMPI_LOCAL inline int MPIR_Barrier_or_coll_fn(MPID_Comm *comm_ptr )</div><div><br></div></div><div>For our XL-based build (static only), barrier.c is compiled twice &amp; the relevant symbol dumps are below.<br>    +  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.<br>


    +  _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&#39;ed out of the source code used to do the compile.<br>


<br>(P)MPI_Barrier() calls &quot;MPIR_Barrier_or_coll_fn&quot;, 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 &quot;inline&quot;.  This seems like the right choice, though it would be possible to move the function so that the code is included in both versions.</div>


<div><br></div><div><br></div><div><div><b><font face="&#39;courier new&#39;, monospace">_barrier.o:</font></b></div><div><font color="#ff0000"><b><font face="&#39;courier new&#39;, monospace">00000000 T MPI_Barrier</font></b></font></div>

<div><font face="&#39;courier new&#39;, monospace">         U MPID_Comm_builtin</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPID_Comm_direct</font></div>

<div><font face="&#39;courier new&#39;, monospace">         U MPID_Comm_mem</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPIR_Barrier</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPIR_Barrier_inter</font></div><div><b><font color="#ff0000"><font face="&#39;courier new&#39;, monospace">         U MPIR_Barrier_or_coll_fn</font></font></b></div>

<div><font face="&#39;courier new&#39;, monospace">         U MPIR_Bcast_or_coll_fn</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPIR_Comm_is_node_aware</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPIR_Err_return_comm</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPIR_ThreadInfo</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPIR_ThreadSingle</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPIU_Handle_get_ptr_indirect</font></div><div><font face="&#39;courier new&#39;, monospace">         U pthread_getspecific</font></div>

<div><font face="&#39;courier new&#39;, monospace">         U pthread_setspecific</font></div><div><font face="&#39;courier new&#39;, monospace"><br></font></div><div><b><font face="&#39;courier new&#39;, monospace">barrier.o:</font></b></div>

<div><font face="&#39;courier new&#39;, monospace">         U MPIC_Sendrecv</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPID_Comm_builtin</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPID_Comm_direct</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPID_Comm_mem</font></div>

<div><font face="&#39;courier new&#39;, monospace">00000000 T MPIR_Barrier</font></div><div><font face="&#39;courier new&#39;, monospace">00000180 T MPIR_Barrier_inter</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPIR_Bcast_inter</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPIR_Bcast_or_coll_fn</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPIR_Comm_is_node_aware</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPIR_Err_create_code</font></div>

<div><font face="&#39;courier new&#39;, monospace">         U MPIR_Err_return_comm</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPIR_Setup_intercomm_localcomm</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPIR_ThreadInfo</font></div><div><font face="&#39;courier new&#39;, monospace">         U MPIR_ThreadSingle</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U MPIU_Handle_get_ptr_indirect</font></div><div>
<b><font color="#ff0000"><font face="&#39;courier new&#39;, monospace">000003a0 T PMPI_Barrier</font></font></b></div><div><font face="&#39;courier new&#39;, monospace">         U pthread_getspecific</font></div>
<div><font face="&#39;courier new&#39;, monospace">         U pthread_setspecific</font></div><div><br></div><div><br></div><div>Thanks,</div><div>
Joe Ratterman</div><div><a href="mailto:jratt@us.ibm.com" target="_blank">jratt@us.ibm.com</a></div><div><br></div></div>