diff --git a/config/ompi_check_mvapi.m4 b/config/ompi_check_mvapi.m4 index 46b1a696b0..6707e17daf 100644 --- a/config/ompi_check_mvapi.m4 +++ b/config/ompi_check_mvapi.m4 @@ -38,15 +38,39 @@ AC_DEFUN([OMPI_CHECK_MVAPI],[ AS_IF([test "$HAVE_POSIX_THREADS" != "1"], [AC_MSG_WARN([POSIX threads not enabled. May not be able to link with mvapi])]) + + ompi_check_mvapi$1_save_CFLAGS="$CFLAGS" + + #ugly hack for topspin which stores include files in include/vapi + AS_IF([test -d "$ompi_check_mvapi_dir/include/vapi"], + [CPPFLAGS="$CPPFLAGS -I $ompi_check_mvapi_dir/include/vapi" + $1_CPPFLAGS="$$1_CPPFLAGS -I $ompi_check_mvapi_dir/include/vapi"]) + + #some mellanox vapi implemenations only need lvapi and lmosal OMPI_CHECK_PACKAGE([$1], - [vapi.h], - [vapi], - [VAPI_open_hca], - [-lmosal -lmpga -lmtl_common], - [$ompi_check_mvapi_dir], - [$ompi_check_mvapi_libdir], - [ompi_check_mvapi_happy="yes"], - [ompi_check_mvapi_happy="no"]) + [vapi.h], + [vapi], + [VAPI_open_hca], + [-lmosal], + [$ompi_check_mvapi_dir], + [$ompi_check_mvapi_libdir], + [ompi_check_mvapi_happy="yes"], + [ompi_check_mvapi_happy="no"]) + + #if needed use both lmpga and lmtl_common + AS_IF([test "$ompi_check_mvapi_happy" = "no"], + [OMPI_CHECK_PACKAGE([$1], + [vapi.h], + [vapi], + [VAPI_open_hca], + [-lmosal -lmpga -lmtl_common], + [$ompi_check_mvapi_dir], + [$ompi_check_mvapi_libdir], + [ompi_check_mvapi_happy="yes"], + [ompi_check_mvapi_happy="no"])]) + + + CPPFLAGS="$ompi_check_vapi$1_save_CFLAGS" AS_IF([test "$ompi_check_mvapi_happy" = "yes"], [$2], diff --git a/ompi/class/ompi_free_list.c b/ompi/class/ompi_free_list.c index cbd22f0b59..9d8c0d991a 100644 --- a/ompi/class/ompi_free_list.c +++ b/ompi/class/ompi_free_list.c @@ -75,7 +75,7 @@ int ompi_free_list_grow(ompi_free_list_t* flist, size_t num_elements) unsigned char* ptr; size_t i; size_t mod; - mca_mpool_base_registration_t* user_out; + mca_mpool_base_registration_t* user_out = NULL; if (flist->fl_max_to_alloc > 0 && flist->fl_num_allocated + num_elements > flist->fl_max_to_alloc) return OMPI_ERR_TEMP_OUT_OF_RESOURCE; @@ -97,7 +97,10 @@ int ompi_free_list_grow(ompi_free_list_t* flist, size_t num_elements) item->user_data = user_out; if (NULL != flist->fl_elem_class) { OBJ_CONSTRUCT_INTERNAL(item, flist->fl_elem_class); + } else { + OBJ_CONSTRUCT(&item->super, opal_list_item_t); } + opal_list_append(&(flist->super), &(item->super)); ptr += flist->fl_elem_size; } diff --git a/ompi/mca/btl/openib/btl_openib_component.c b/ompi/mca/btl/openib/btl_openib_component.c index eeca74bc86..662576202d 100644 --- a/ompi/mca/btl/openib/btl_openib_component.c +++ b/ompi/mca/btl/openib/btl_openib_component.c @@ -492,8 +492,8 @@ mca_btl_base_module_t** mca_btl_openib_component_init(int *num_btl_modules, int mca_btl_openib_component_progress() { - uint32_t i, ne; - int count = 0; + uint32_t i; + int count = 0,ne; mca_btl_openib_frag_t* frag; mca_btl_openib_endpoint_t* endpoint; /* Poll for completions */