This is the error I&#39;m seeing:<blockquote style="margin:0 0 0 40px;border:none;padding:0px">Assertion failed in file mpid_nem_init.c at line 89: sizeof(MPID_nem_cell_rel_ptr_t) == 4</blockquote>
<div><div><br></div><div><br></div><div>This appears to be the important code from the pre-processed version of mpid_nem_init.c</div>
<div><br></div><div><br></div></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"># 11 &quot;/bglhome/usr1/jratt/src-sles10/mpich2/mpich2-1.1/src/openpa/src/primitives/opa_gcc_ppc.h&quot;<br>
typedef struct { volatile int v __attribute__ ((aligned (8))); } OPA_int_t;<br>typedef struct { void * volatile v __attribute__ ((aligned (8))); } OPA_ptr_t;<br><br># 188 &quot;../include/mpid_nem_datatypes.h&quot;<br>typedef struct MPID_nem_cell_rel_ptr<br>

{<br>    OPA_ptr_t p;<br>}<br>MPID_nem_cell_rel_ptr_t;<br><br># 135 mpid/ch3/include/mpidi_ch3_conf.h<br><br>#define SIZEOF_VOID_P 4<br><br># 85 mpid_nem_init.c<br>    /* The MPID_nem_cell_rel_ptr_t defined in mpid_nem_datatypes.h<br>

     * should only contain a pointer. Also, we don&#39;t support compilers<br>     * which add random padding to the start of the structure. The<br>     * below assert should blow up if any of these happens. */<br>    MPIU_Assert(sizeof(MPID_nem_cell_rel_ptr_t) == SIZEOF_VOID_P);</blockquote>

<div><div>
<div><div>
<div><br></div><div><br></div><div>Given the above code, the size of that type appears to be 8 in both GCC and XLC.  I see that the alignment is hard-coded to 8 in src/openpa/src/primitives/opa_gcc_ppc.h.  Changing that first line to an alignment of 4, the type size shrinks to 4 (correspondingly, increasing it to 16 increases the type size as well).</div>


<div><br></div><div>Changing the file to 4 and recompiling things allows a few simple tests to work fine--I haven&#39;t tried too much more.</div><div><br></div><div><br></div><div><br></div><div>Thanks,</div><div>Joe Ratterman</div>
<div><a href="mailto:jratt@us.ibm.com">jratt@us.ibm.com</a></div></div></div></div></div>