Skip to content

Commit 7af49eb

Browse files
author
rhc54
authored
Merge pull request #2521 from rhc54/topic/rml
Resolve a duplicate symbol issue when the rml/ofi component is enabled
2 parents 40d94fd + d8f262e commit 7af49eb

File tree

4 files changed

+28
-51
lines changed

4 files changed

+28
-51
lines changed

orte/mca/rml/base/base.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,22 @@ typedef struct {
184184
} orte_rml_recv_request_t;
185185
OBJ_CLASS_DECLARATION(orte_rml_recv_request_t);
186186

187+
/* define a structure for sending a message to myself */
188+
typedef struct {
189+
opal_object_t object;
190+
opal_event_t ev;
191+
orte_rml_tag_t tag;
192+
struct iovec* iov;
193+
int count;
194+
opal_buffer_t *buffer;
195+
union {
196+
orte_rml_callback_fn_t iov;
197+
orte_rml_buffer_callback_fn_t buffer;
198+
} cbfunc;
199+
void *cbdata;
200+
} orte_self_send_xfer_t;
201+
OBJ_CLASS_DECLARATION(orte_self_send_xfer_t);
202+
187203
#define ORTE_RML_POST_MESSAGE(p, t, s, b, l) \
188204
do { \
189205
orte_rml_recv_t *msg; \

orte/mca/rml/base/rml_base_frame.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,18 @@ void orte_rml_recv_callback(int status, orte_process_name_t* sender,
252252

253253

254254
/*** RML CLASS INSTANCES ***/
255+
static void xfer_cons(orte_self_send_xfer_t *xfer)
256+
{
257+
xfer->iov = NULL;
258+
xfer->cbfunc.iov = NULL;
259+
xfer->buffer = NULL;
260+
xfer->cbfunc.buffer = NULL;
261+
xfer->cbdata = NULL;
262+
}
263+
OBJ_CLASS_INSTANCE(orte_self_send_xfer_t,
264+
opal_object_t,
265+
xfer_cons, NULL);
266+
255267
static void send_cons(orte_rml_send_t *ptr)
256268
{
257269
ptr->retries = 0;

orte/mca/rml/ofi/rml_ofi_send.c

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -73,32 +73,6 @@ OBJ_CLASS_INSTANCE(ofi_recv_msg_queue_t,
7373
ofi_recv_msg_queue_cons, ofi_recv_msg_queue_des);
7474

7575

76-
typedef struct {
77-
opal_object_t object;
78-
opal_event_t ev;
79-
orte_rml_tag_t tag;
80-
struct iovec* iov;
81-
int count;
82-
opal_buffer_t *buffer;
83-
union {
84-
orte_rml_callback_fn_t iov;
85-
orte_rml_buffer_callback_fn_t buffer;
86-
} cbfunc;
87-
void *cbdata;
88-
} orte_self_send_xfer_t;
89-
static void xfer_cons(orte_self_send_xfer_t *xfer)
90-
{
91-
xfer->iov = NULL;
92-
xfer->cbfunc.iov = NULL;
93-
xfer->buffer = NULL;
94-
xfer->cbfunc.buffer = NULL;
95-
xfer->cbdata = NULL;
96-
}
97-
OBJ_CLASS_INSTANCE(orte_self_send_xfer_t,
98-
opal_object_t,
99-
xfer_cons, NULL);
100-
101-
10276
static void send_self_exe(int fd, short args, void* data)
10377
{
10478
orte_self_send_xfer_t *xfer = (orte_self_send_xfer_t*)data;

orte/mca/rml/oob/rml_oob_send.c

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -35,31 +35,6 @@
3535
#include "orte/mca/rml/rml_types.h"
3636
#include "rml_oob.h"
3737

38-
typedef struct {
39-
opal_object_t object;
40-
opal_event_t ev;
41-
orte_rml_tag_t tag;
42-
struct iovec* iov;
43-
int count;
44-
opal_buffer_t *buffer;
45-
union {
46-
orte_rml_callback_fn_t iov;
47-
orte_rml_buffer_callback_fn_t buffer;
48-
} cbfunc;
49-
void *cbdata;
50-
} orte_self_send_xfer_t;
51-
static void xfer_cons(orte_self_send_xfer_t *xfer)
52-
{
53-
xfer->iov = NULL;
54-
xfer->cbfunc.iov = NULL;
55-
xfer->buffer = NULL;
56-
xfer->cbfunc.buffer = NULL;
57-
xfer->cbdata = NULL;
58-
}
59-
OBJ_CLASS_INSTANCE(orte_self_send_xfer_t,
60-
opal_object_t,
61-
xfer_cons, NULL);
62-
6338
static void send_self_exe(int fd, short args, void* data)
6439
{
6540
orte_self_send_xfer_t *xfer = (orte_self_send_xfer_t*)data;

0 commit comments

Comments
 (0)