We have been trying to make DMTCP work for MPI jobs on our HPC cluster. With 
--enable-infiniband-support at configure stage, we got the compile errors at 
make stage:

gcc -std=gnu99 -I../../jalib -I../../include  -g -O2 -fPIC -c -o 
infinibandwrappers.o  infinibandwrappers.c
infinibandwrappers.c:89:5: error: conflicting types for ‘ibv_query_port’
int ibv_query_port(struct ibv_context *context, uint8_t port_num,
     ^
In file included from ibvctx.h:30:0,
                 from infinibandwrappers.c:11:
/usr/include/infiniband/verbs.h:2020:5: note: previous declaration of 
‘ibv_query_port’ was here
int ibv_query_port(struct ibv_context *context, uint8_t port_num,
     ^
infinibandwrappers.c:125:10: error: conflicting types for ‘ibv_get_device_guid’
uint64_t ibv_get_device_guid(struct ibv_device *device)
          ^
In file included from ibvctx.h:30:0,
                 from infinibandwrappers.c:11:
/usr/include/infiniband/verbs.h:1977:8: note: previous declaration of 
‘ibv_get_device_guid’ was here
__be64 ibv_get_device_guid(struct ibv_device *device);
        ^
make: *** [infinibandwrappers.o] Error 1


It seems that the following lines in file infinibandwrappers.c gave the 
problem. The #undef seems not working for some reason. Please advise.
#undef ibv_query_port

#ifndef ibv_query_port
int ibv_query_port(struct ibv_context *context, uint8_t port_num,
                   struct ibv_port_attr *port_attr)
{
  DMTCP_PLUGIN_DISABLE_CKPT();

  int rslt = _query_port(context, port_num, port_attr);

  DMTCP_PLUGIN_ENABLE_CKPT();
  return rslt;
}
#endif


Thanks,

Zhiwei

_______________________________________________
Dmtcp-forum mailing list
Dmtcp-forum@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dmtcp-forum

Reply via email to