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


Reply via email to