Hi,
I just finished building 1.8.6 and master on our cluster and noticed that
for both, XRC support wasn't being detected because it didn't detect the
IBV_SRQT_XRC declaration:
checking whether IBV_SRQT_XRC is declared... (cached) no
...
checking if ConnectX XRC support is enabled... no
checking if ConnectIB XRC support is enabled... no
Both of these builds had --enable-openib-connectx-xrc. Having a look in the
config.log, I found this:
configure:191690: checking whether IBV_SRQT_XRC is declared
configure:191690: gcc -std=gnu99 -c -O3 -DNDEBUG -finline-functions
-fno-strict-aliasing -pthread
-I/short/z00/bjm900/build/openmpi/openmpi-1.8.6/opal/mca/hwloc/hwloc191/hwlo
c/include
-I/short/z00/bjm900/build/openmpi/openmpi-1.8.6/build/gnu/opal/mca/hwloc/hwl
oc191/hwloc/include
-I/short/z00/bjm900/build/openmpi/openmpi-1.8.6/opal/mca/event/libevent2021/
libevent
-I/short/z00/bjm900/build/openmpi/openmpi-1.8.6/opal/mca/event/libevent2021/
libevent/include
-I/short/z00/bjm900/build/openmpi/openmpi-1.8.6/build/gnu/opal/mca/event/lib
event2021/libevent/include conftest.c >&5
conftest.c: In function 'main':
conftest.c:718: error: 'IBV_SRQT_XRC' undeclared (first use in this
function)
conftest.c:718: error: (Each undeclared identifier is reported only once
conftest.c:718: error: for each function it appears in.)
configure:191690: $? = 1
If you have a look at the test program, the failure is because it forgets to
include the infiniband/verbs.h header, and sure enough the configure script
bears this out:
ac_fn_c_check_decl "$LINENO" "IBV_SRQT_XRC"
"ac_cv_have_decl_IBV_SRQT_XRC" "$ac_includes_default"
Changing "$ac_includes_default" to "#include <infiniband/verbs.h>" and
reconfiguring allows it to detect this declaration and then enable support
for XRC:
checking whether IBV_SRQT_XRC is declared... (cached) yes
...
checking if ConnectX XRC support is enabled... yes
checking if ConnectIB XRC support is enabled... yes
Cheers,
Ben