The following 1-line change fixes this.
Alternatively, a single cast to type uintptr_t is probably sufficient.
--- openmpi-1.7rc6/orte/mca/oob/ud/oob_ud.h~ 2013-01-25 18:03:20.000000000 -0800
+++ openmpi-1.7rc6/orte/mca/oob/ud/oob_ud.h 2013-01-25 18:03:37.000000000 -0800
@@ -90,7 +90,7 @@ static inline void mca_oob_ud_fill_recv_
static inline void mca_oob_ud_fill_sge (struct ibv_sge *sge, void *addr,
uint32_t length, uint32_t lkey)
{
- sge->addr = (uint64_t)addr;
+ sge->addr = (uint64_t)(uintptr_t)addr;
sge->length = length;
sge->lkey = lkey;
}