@@ -104,44 +104,58 @@ AC_DEFUN([OMPI_CHECK_UCX],[
104104 old_CPPFLAGS= " $CPPFLAGS "
105105 AS_IF([test -n " $ompi_check_ucx_dir " ],
106106 [CPPFLAGS= " $CPPFLAGS -I$ompi_check_ucx_dir /include" ])
107- AC_CHECK_DECLS([ucp_tag_send_nbr],
108- [AC_DEFINE([HAVE_UCP_TAG_SEND_NBR],[1],
109- [have ucp_tag_send_nbr ()])], [],
110- [# include <ucp/api/ucp.h>])
111- AC_CHECK_DECLS([ucp_ep_flush_nb, ucp_worker_flush_nb,
112- ucp_request_check_status, ucp_put_nb, ucp_get_nb,
113- ucp_put_nbx, ucp_get_nbx, ucp_atomic_op_nbx],
114- [], [],
115- [# include <ucp/api/ucp.h>])
116- AC_CHECK_DECLS([ucm_test_events,
117- ucm_test_external_events],
118- [], [],
119- [# include <ucm/api/ucm.h>])
120- AC_CHECK_DECLS([UCP_ATOMIC_POST_OP_AND,
121- UCP_ATOMIC_POST_OP_OR,
122- UCP_ATOMIC_POST_OP_XOR,
123- UCP_ATOMIC_FETCH_OP_FAND,
124- UCP_ATOMIC_FETCH_OP_FOR,
125- UCP_ATOMIC_FETCH_OP_FXOR,
126- UCP_PARAM_FIELD_ESTIMATED_NUM_PPN],
127- [], [],
128- [# include <ucp/api/ucp.h>])
129- AC_CHECK_DECLS([UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS],
130- [AC_DEFINE([HAVE_UCP_WORKER_ADDRESS_FLAGS], [1],
131- [have worker address attribute])], [],
132- [# include <ucp/api/ucp.h>])
133- AC_CHECK_DECLS([UCP_ATTR_FIELD_MEMORY_TYPES],
134- [AC_DEFINE([HAVE_UCP_ATTR_MEMORY_TYPES], [1],
135- [have memory types attribute])], [],
136- [# include <ucp/api/ucp.h>])
137- AC_CHECK_DECLS([ucp_tag_send_nbx,
138- ucp_tag_send_sync_nbx,
139- ucp_tag_recv_nbx],
140- [], [],
141- [# include <ucp/api/ucp.h>])
142- AC_CHECK_TYPES([ucp_request_param_t],
143- [], [],
144- [[# include <ucp/api/ucp.h>]])
107+ # Turn off UCX version v1.8 due to issue #8321
108+ AC_MSG_CHECKING([UCX version])
109+ AC_PREPROC_IFELSE([AC_LANG_PROGRAM([# include <ucp/api/ucp_version.h>
110+ # if (UCP_API_MAJOR == 1) && (UCP_API_MINOR == 8)
111+ # error "Invalid version"
112+ # endif], [])],
113+ [AC_MSG_RESULT([ok (not 1.8.x)])],
114+ [AC_MSG_RESULT([bad (1.8.x)])
115+ AC_MSG_WARN([UCX support skipped because version 1.8.x was found, which has a known catastrophic issue.])
116+ AC_MSG_WARN([Please upgrade to UCX version 1.9 or higher.])
117+ ompi_check_ucx_happy= no])
118+ AS_IF([test " $ompi_check_ucx_happy " = yes],
119+ [
120+ AC_CHECK_DECLS([ucp_tag_send_nbr],
121+ [AC_DEFINE([HAVE_UCP_TAG_SEND_NBR],[1],
122+ [have ucp_tag_send_nbr ()])], [],
123+ [# include <ucp/api/ucp.h>])
124+ AC_CHECK_DECLS([ucp_ep_flush_nb, ucp_worker_flush_nb,
125+ ucp_request_check_status, ucp_put_nb, ucp_get_nb,
126+ ucp_put_nbx, ucp_get_nbx, ucp_atomic_op_nbx],
127+ [], [],
128+ [# include <ucp/api/ucp.h>])
129+ AC_CHECK_DECLS([ucm_test_events,
130+ ucm_test_external_events],
131+ [], [],
132+ [# include <ucm/api/ucm.h>])
133+ AC_CHECK_DECLS([UCP_ATOMIC_POST_OP_AND,
134+ UCP_ATOMIC_POST_OP_OR,
135+ UCP_ATOMIC_POST_OP_XOR,
136+ UCP_ATOMIC_FETCH_OP_FAND,
137+ UCP_ATOMIC_FETCH_OP_FOR,
138+ UCP_ATOMIC_FETCH_OP_FXOR,
139+ UCP_PARAM_FIELD_ESTIMATED_NUM_PPN],
140+ [], [],
141+ [# include <ucp/api/ucp.h>])
142+ AC_CHECK_DECLS([UCP_WORKER_ATTR_FIELD_ADDRESS_FLAGS],
143+ [AC_DEFINE([HAVE_UCP_WORKER_ADDRESS_FLAGS], [1],
144+ [have worker address attribute])], [],
145+ [# include <ucp/api/ucp.h>])
146+ AC_CHECK_DECLS([UCP_ATTR_FIELD_MEMORY_TYPES],
147+ [AC_DEFINE([HAVE_UCP_ATTR_MEMORY_TYPES], [1],
148+ [have memory types attribute])], [],
149+ [# include <ucp/api/ucp.h>])
150+ AC_CHECK_DECLS([ucp_tag_send_nbx,
151+ ucp_tag_send_sync_nbx,
152+ ucp_tag_recv_nbx],
153+ [], [],
154+ [# include <ucp/api/ucp.h>])
155+ AC_CHECK_TYPES([ucp_request_param_t],
156+ [], [],
157+ [[# include <ucp/api/ucp.h>]])
158+ ])
145159 CPPFLAGS= $old_CPPFLAGS
146160
147161 OPAL_SUMMARY_ADD([[Transports]],[[Open UCX]],[$1 ],[$ompi_check_ucx_happy ])])])
0 commit comments