This is due to a problem in (void *)->(uint64_t_ conversion in OMPI.  The 
following patch fixes the problem, as would an appropriate cast of pval, I 
suspect.  The problem is an inappropriate use of ompi_ptr_t.  I would guess 
that other uses of lval might be suspect also (such as in the Portals code), 
since lval might be undefined after assigning pval on a 32 bit system.

After applying this patch, HPCC runs fine on OSX.

regards,
-reese

--- ompi/mca/btl/gm/btl_gm.c
+++ ompi/mca/btl/gm/btl_gm.c
@@ -774,7 +774,11 @@
     /* post the put descriptor */
     gm_put(gm_btl->port,
         des->des_src->seg_addr.pval,
+#if GM_SIZEOF_VOID_P == 4
+        des->des_dst->seg_addr.ival,
+#else
         des->des_dst->seg_addr.lval,
+#endif
         des->des_src->seg_len,
         GM_LOW_PRIORITY,
         endpoint->endpoint_addr.node_id,
@@ -816,7 +820,11 @@
     /* post the put descriptor */
     gm_put(gm_btl->port,
         des->des_src->seg_addr.pval,
+#if GM_SIZEOF_VOID_P == 4
+        des->des_dst->seg_addr.ival,
+#else
         des->des_dst->seg_addr.lval,
+#endif
         des->des_src->seg_len,
         GM_LOW_PRIORITY,
         endpoint->endpoint_addr.node_id,
@@ -919,7 +927,11 @@

     /* post get put descriptor */
     gm_get(gm_btl->port,
+#if GM_SIZEOF_VOID_P == 4
+        des->des_dst->seg_addr.ival,
+#else
         des->des_dst->seg_addr.lval,
+#endif
         des->des_src->seg_addr.pval,
         des->des_src->seg_len,
         GM_LOW_PRIORITY,
@@ -962,7 +974,11 @@

     /* post get put descriptor */
     gm_get(gm_btl->port,
+#if GM_SIZEOF_VOID_P == 4
+        des->des_dst->seg_addr.ival,
+#else
         des->des_dst->seg_addr.lval,
+#endif
         des->des_src->seg_addr.pval,
         des->des_src->seg_len,
         GM_LOW_PRIORITY,

Reply via email to