Hi everybody,

we tried to install openmpi with Sun cc on Linux. IT required some 
patches. I add the necessary pathces here. I hope you can include 
those.

Cheerio,
Luis

diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi.c 
openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi.c
--- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi.c        2007-04-19 
18:30:54.000000000 +0200
+++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi.c        2007-05-09 
14:33:24.000000000 +0200
@@ -463,7 +463,7 @@
     mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*)descriptor; 
     frag->endpoint = endpoint; 
     frag->hdr->tag = tag; 
-    frag->sr_desc.opcode = VAPI_SEND;
+    frag->desc.sr_desc.opcode = VAPI_SEND;
     return mca_btl_mvapi_endpoint_send(endpoint, frag);
 }

@@ -481,7 +481,7 @@

     /* setup for queued requests */
     frag->endpoint = endpoint;
-    frag->sr_desc.opcode = VAPI_RDMA_WRITE; 
+    frag->desc.sr_desc.opcode = VAPI_RDMA_WRITE; 

     /* check for a send wqe */
     if (OPAL_THREAD_ADD32(&endpoint->sd_wqe_lp,-1) < 0) {
@@ -494,12 +494,12 @@
     /* post descriptor */
     } else {

-        frag->sr_desc.remote_qp = endpoint->rem_info.rem_qp_num_lp; 
-        frag->sr_desc.remote_addr = (VAPI_virt_addr_t) 
frag->base.des_dst->seg_addr.lval; 
-        frag->sr_desc.r_key = frag->base.des_dst->seg_key.key32[0]; 
+        frag->desc.sr_desc.remote_qp = endpoint->rem_info.rem_qp_num_lp; 
+        frag->desc.sr_desc.remote_addr = (VAPI_virt_addr_t) 
frag->base.des_dst->seg_addr.lval; 
+        frag->desc.sr_desc.r_key = frag->base.des_dst->seg_key.key32[0]; 
         frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) 
frag->base.des_src->seg_addr.pval; 
         frag->sg_entry.len  = frag->base.des_src->seg_len; 
-        if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, 
&frag->sr_desc)) {
+        if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, 
&frag->desc.sr_desc)) {
             rc =  OMPI_ERROR; 
         } else { 
             rc = OMPI_SUCCESS; 
@@ -531,7 +531,7 @@
     mca_btl_mvapi_frag_t* frag = (mca_btl_mvapi_frag_t*) descriptor; 

     frag->endpoint = endpoint;
-    frag->sr_desc.opcode = VAPI_RDMA_READ; 
+    frag->desc.sr_desc.opcode = VAPI_RDMA_READ; 

    /* check for a send wqe */
     if (OPAL_THREAD_ADD32(&endpoint->sd_wqe_lp,-1) < 0) {
@@ -555,13 +555,13 @@

     } else {

-        frag->sr_desc.remote_qp = endpoint->rem_info.rem_qp_num_lp; 
-        frag->sr_desc.remote_addr = (VAPI_virt_addr_t) 
frag->base.des_src->seg_addr.lval; 
-        frag->sr_desc.r_key = frag->base.des_src->seg_key.key32[0]; 
+        frag->desc.sr_desc.remote_qp = endpoint->rem_info.rem_qp_num_lp; 
+        frag->desc.sr_desc.remote_addr = (VAPI_virt_addr_t) 
frag->base.des_src->seg_addr.lval; 
+        frag->desc.sr_desc.r_key = frag->base.des_src->seg_key.key32[0]; 
         frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) 
frag->base.des_dst->seg_addr.pval; 
         frag->sg_entry.len  = frag->base.des_dst->seg_len; 

-        if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, 
&frag->sr_desc)) {
+        if(VAPI_OK != VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, 
&frag->desc.sr_desc)) {
             rc =  OMPI_ERROR; 
         } else { 
             rc = OMPI_SUCCESS; 
diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c 
openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c
--- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c       2007-04-19 
18:30:54.000000000 +0200
+++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_endpoint.c       
2007-05-09 14:45:31.000000000 +0200
@@ -143,7 +143,7 @@
         }
     } 

-    frag->sr_desc.remote_qkey = 0; 
+    frag->desc.sr_desc.remote_qkey = 0; 
     frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->hdr; 
     frag->sg_entry.len =
         frag->segment.seg_len + sizeof(mca_btl_mvapi_header_t) + 
@@ -153,14 +153,14 @@
         mca_btl_mvapi_footer_t* ftr =
             (mca_btl_mvapi_footer_t*)(((char*)frag->segment.seg_addr.pval) +
                                        frag->segment.seg_len);
-        frag->sr_desc.opcode = VAPI_RDMA_WRITE;
+        frag->desc.sr_desc.opcode = VAPI_RDMA_WRITE;
         MCA_BTL_MVAPI_RDMA_FRAG_SET_SIZE(ftr, frag->sg_entry.len);
         MCA_BTL_MVAPI_RDMA_MAKE_LOCAL(ftr);
 #ifdef OMPI_ENABLE_DEBUG
         ftr->seq = endpoint->eager_rdma_remote.seq++;
 #endif
-        frag->sr_desc.r_key = (VAPI_rkey_t)endpoint->eager_rdma_remote.rkey;
-        frag->sr_desc.remote_addr = (VAPI_virt_addr_t)
+        frag->desc.sr_desc.r_key = 
(VAPI_rkey_t)endpoint->eager_rdma_remote.rkey;
+        frag->desc.sr_desc.remote_addr = (VAPI_virt_addr_t)
             endpoint->eager_rdma_remote.base.lval +
             endpoint->eager_rdma_remote.head *
             mvapi_btl->eager_rdma_frag_size +
@@ -168,17 +168,17 @@
             sizeof(mca_btl_mvapi_header_t) +
             frag->size +
             sizeof(mca_btl_mvapi_footer_t);
-        frag->sr_desc.remote_addr -= frag->sg_entry.len;
+        frag->desc.sr_desc.remote_addr -= frag->sg_entry.len;
         MCA_BTL_MVAPI_RDMA_NEXT_INDEX (endpoint->eager_rdma_remote.head);
     } else {
-        frag->sr_desc.opcode = VAPI_SEND;
+        frag->desc.sr_desc.opcode = VAPI_SEND;
     }


     if(frag->sg_entry.len <= mvapi_btl->ib_inline_max) { 
-        ret = EVAPI_post_inline_sr(mvapi_btl->nic, qp_hndl, &frag->sr_desc); 
+        ret = EVAPI_post_inline_sr(mvapi_btl->nic, qp_hndl, 
&frag->desc.sr_desc); 
     } else { 
-        ret = VAPI_post_sr(mvapi_btl->nic, qp_hndl, &frag->sr_desc); 
+        ret = VAPI_post_sr(mvapi_btl->nic, qp_hndl, &frag->desc.sr_desc); 
     }

     if(VAPI_OK != ret) {
@@ -1072,15 +1072,15 @@
     OPAL_THREAD_ADD32(&endpoint->rd_credits_lp, -frag->hdr->credits);
     ((mca_btl_mvapi_control_header_t *)frag->segment.seg_addr.pval)->type = 
MCA_BTL_MVAPI_CONTROL_NOOP;

-    frag->sr_desc.opcode = VAPI_SEND; 
+    frag->desc.sr_desc.opcode = VAPI_SEND; 
     frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->hdr; 
     frag->sg_entry.len = sizeof(mca_btl_mvapi_header_t) +
         sizeof(mca_btl_mvapi_control_header_t);

     if(sizeof(mca_btl_mvapi_header_t) <= mvapi_btl->ib_inline_max) {
-        ret = EVAPI_post_inline_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, 
&frag->sr_desc);
+        ret = EVAPI_post_inline_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, 
&frag->desc.sr_desc);
     } else {
-        ret = VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, 
&frag->sr_desc);
+        ret = VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_lp, 
&frag->desc.sr_desc);
     }
     if(ret != VAPI_SUCCESS) {
         OPAL_THREAD_ADD32(&endpoint->sd_credits_lp, -1);
@@ -1151,15 +1151,15 @@
     ((mca_btl_mvapi_control_header_t *)frag->segment.seg_addr.pval)->type = 
MCA_BTL_MVAPI_CONTROL_NOOP;


-    frag->sr_desc.opcode = VAPI_SEND; 
+    frag->desc.sr_desc.opcode = VAPI_SEND; 
     frag->sg_entry.addr = (VAPI_virt_addr_t) (MT_virt_addr_t) frag->hdr; 
     frag->sg_entry.len = sizeof(mca_btl_mvapi_header_t) +
         sizeof(mca_btl_mvapi_control_header_t);

     if(sizeof(mca_btl_mvapi_header_t) <= mvapi_btl->ib_inline_max) {
-        ret = EVAPI_post_inline_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_hp, 
&frag->sr_desc);
+        ret = EVAPI_post_inline_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_hp, 
&frag->desc.sr_desc);
     } else {
-        ret = VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_hp, 
&frag->sr_desc);
+        ret = VAPI_post_sr(mvapi_btl->nic, endpoint->lcl_qp_hndl_hp, 
&frag->desc.sr_desc);
     }
     if(ret != VAPI_SUCCESS) {
         OPAL_THREAD_ADD32(&endpoint->sd_credits_lp, -1);
diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h 
openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h
--- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h       2007-04-19 
18:30:54.000000000 +0200
+++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_endpoint.h       
2007-05-09 14:38:43.000000000 +0200
@@ -234,7 +234,7 @@
         frag->sg_entry.len = frag->size + \
             ((unsigned char*) frag->segment.seg_addr.pval-  \
              (unsigned char*) frag->hdr);  \
-       desc_post[i] = frag->rr_desc; \
+       desc_post[i] = frag->desc.rr_desc; \
     }\
     rc = EVAPI_post_rr_list( nic, \
                              qp, \
diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_frag.c 
openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_frag.c
--- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_frag.c   2007-04-19 
18:30:54.000000000 +0200
+++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_frag.c   2007-05-09 
14:47:38.000000000 +0200
@@ -43,12 +43,12 @@
     frag->base.des_dst = NULL;
     frag->base.des_dst_cnt = 0;

-    frag->sr_desc.comp_type = VAPI_SIGNALED; 
-    frag->sr_desc.opcode = VAPI_SEND; 
-    frag->sr_desc.remote_qkey = 0; 
-    frag->sr_desc.sg_lst_len = 1; 
-    frag->sr_desc.sg_lst_p = &frag->sg_entry; 
-    frag->sr_desc.id = (VAPI_virt_addr_t) (MT_virt_addr_t) frag; 
+    frag->desc.sr_desc.comp_type = VAPI_SIGNALED; 
+    frag->desc.sr_desc.opcode = VAPI_SEND; 
+    frag->desc.sr_desc.remote_qkey = 0; 
+    frag->desc.sr_desc.sg_lst_len = 1; 
+    frag->desc.sr_desc.sg_lst_p = &frag->sg_entry; 
+    frag->desc.sr_desc.id = (VAPI_virt_addr_t) (MT_virt_addr_t) frag; 

 }

@@ -61,11 +61,11 @@
     frag->base.des_src = NULL;
     frag->base.des_src_cnt = 0;

-    frag->rr_desc.comp_type = VAPI_SIGNALED; 
-    frag->rr_desc.opcode = VAPI_RECEIVE; 
-    frag->rr_desc.sg_lst_len = 1; 
-    frag->rr_desc.sg_lst_p = &frag->sg_entry; 
-    frag->rr_desc.id = (VAPI_virt_addr_t) (MT_virt_addr_t) frag; 
+    frag->desc.rr_desc.comp_type = VAPI_SIGNALED; 
+    frag->desc.rr_desc.opcode = VAPI_RECEIVE; 
+    frag->desc.rr_desc.sg_lst_len = 1; 
+    frag->desc.rr_desc.sg_lst_p = &frag->sg_entry; 
+    frag->desc.rr_desc.id = (VAPI_virt_addr_t) (MT_virt_addr_t) frag; 


 }
diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_frag.h 
openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_frag.h
--- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi_frag.h   2007-04-19 
18:30:54.000000000 +0200
+++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi_frag.h   2007-05-09 
14:31:08.000000000 +0200
@@ -92,7 +92,7 @@
     union{ 
         VAPI_rr_desc_t rr_desc; 
         VAPI_sr_desc_t sr_desc; 
-    }; 
+    } desc; 
     VAPI_sg_lst_entry_t sg_entry;  
     mca_btl_mvapi_header_t *hdr;
     mca_btl_mvapi_footer_t *ftr;
@@ -165,7 +165,7 @@

 #define MCA_BTL_IB_FRAG_PROGRESS(frag) \
 do { \
-    switch(frag->sr_desc.opcode) { \
+    switch(frag->desc.sr_desc.opcode) { \
     case VAPI_SEND: \
         if(OMPI_SUCCESS !=  mca_btl_mvapi_endpoint_send(frag->endpoint, frag)) 
{ \
             BTL_ERROR(("error in posting pending send\n")); \
@@ -186,7 +186,7 @@
         } \
         break; \
     default: \
-        BTL_ERROR(("error in posting pending operation, invalide opcode %d\n", 
frag->sr_desc.opcode)); \
+        BTL_ERROR(("error in posting pending operation, invalide opcode %d\n", 
frag->desc.sr_desc.opcode)); \
         break; \
     } \
 } while (0)
diff -Naur openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi.h 
openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi.h
--- openmpi-1.2.1/ompi/mca/btl/mvapi/btl_mvapi.h        2007-04-19 
18:30:54.000000000 +0200
+++ openmpi-1.2.1_patched/ompi/mca/btl/mvapi/btl_mvapi.h        2007-05-09 
14:37:23.000000000 +0200
@@ -260,7 +260,7 @@
         frag->sg_entry.len = frag->size + \
             ((unsigned char*) frag->segment.seg_addr.pval-  \
              (unsigned char*) frag->hdr);  \
-       desc_post[i] = frag->rr_desc; \
+       desc_post[i] = frag->desc.rr_desc; \
     }\
     ret = VAPI_post_srq( nic, \
                          srq_hndl, \


-- 
                             \\\\\\
                             (-0^0-)
--------------------------oOO--(_)--OOo-----------------------------

 Luis Kornblueh                           Tel. : +49-40-41173289
 Max-Planck-Institute for Meteorology     Fax. : +49-40-41173298
 Bundesstr. 53              
 D-20146 Hamburg                   Email: luis.kornbl...@zmaw.de
 Federal Republic of Germany                                               

Reply via email to