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