Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: Reese Faucette (reese_at_[hidden])
Date: 2006-12-07 16:49:38


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,