oshmem: disable if no spmls build
This patch disables the oshmem layer if there are no SPMLs that will build. With the limited set of SPMLs available to support oshmem, many builds end up installing an oshmem library that we know will not work. There has been a bit of customer confusion over oshmem, hopefully this will lead customers in the right direction. Signed-off-by: Brian Barrett <bbarrett@amazon.com>
This commit is contained in:
parent
22bdf85299
commit
9fff40647d
3
NEWS
3
NEWS
@ -59,6 +59,9 @@ Master (not on release branches yet)
|
||||
------------------------------------
|
||||
|
||||
- Fix rank-by algorithms to properly rank by object and span
|
||||
- Do not build Open SHMEM layer when there are no SPMLs available.
|
||||
Currently, this means the Open SHMEM layer will only build if
|
||||
a MXM or UCX library is found.
|
||||
|
||||
3.1.0 -- May, 2018
|
||||
------------------
|
||||
|
@ -76,8 +76,10 @@ EOF
|
||||
|
||||
if test "$project_oshmem_amc" = "true" ; then
|
||||
echo "Build Open SHMEM support: yes"
|
||||
else
|
||||
elif test -z "$project_oshmem_amc" ; then
|
||||
echo "Build Open SHMEM support: no"
|
||||
else
|
||||
echo "Build Open SHMEM support: $project_oshmem_amc"
|
||||
fi
|
||||
|
||||
if test $WANT_DEBUG = 0 ; then
|
||||
|
21
configure.ac
21
configure.ac
@ -272,8 +272,8 @@ m4_ifndef([project_ompi], [project_ompi_amc=false])
|
||||
AS_IF([test "$enable_orte" != "no"], [project_orte_amc=true], [project_orte_amc=false])
|
||||
m4_ifndef([project_orte], [project_orte_amc=false])
|
||||
|
||||
AS_IF([test "$enable_oshmem" != "no"], [project_oshmem_amc=true], [project_oshmem_amc=false])
|
||||
m4_ifndef([project_oshmem], [project_oshmem_amc=false])
|
||||
AS_IF([test "$enable_oshmem" != "no"], [project_oshmem_amc=true], [project_oshmem_amc="no (disabled)"])
|
||||
m4_ifndef([project_oshmem], [project_oshmem_amc="no (not available)"])
|
||||
|
||||
if test "$enable_binaries" = "no" && test "$enable_dist" = "yes"; then
|
||||
AC_MSG_WARN([--disable-binaries is incompatible with --enable dist])
|
||||
@ -1106,6 +1106,23 @@ OPAL_MCA
|
||||
|
||||
m4_ifdef([project_ompi], [OMPI_REQUIRE_ENDPOINT_TAG_FINI])
|
||||
|
||||
# Last minute disable of OpenSHMEM if we didn't find any oshmem SPMLs
|
||||
if test "$project_oshmem_amc" = "true" && test $OSHMEM_FOUND_WORKING_SPML -eq 0 ; then
|
||||
# We don't have an spml that will work, so oshmem wouldn't be able
|
||||
# to run an application. Therefore, don't build the oshmem layer.
|
||||
if test "$enable_oshmem" != "no" && test -n "$enable_oshmem"; then
|
||||
AC_MSG_WARN([No spml found, so OpenSHMEM layer will be non functional.])
|
||||
AC_MSG_ERROR([Aborting because OpenSHMEM requested, but can not build.])
|
||||
else
|
||||
AC_MSG_WARN([No spml found. Will not build OpenSHMEM layer.])
|
||||
project_oshmem_amc="false (no spml)"
|
||||
# now for the hard part, remove project from list that will
|
||||
# run. This is a hack, but it works as long as the project
|
||||
# remains named "oshmem".
|
||||
MCA_PROJECT_SUBDIRS=`echo "$MCA_PROJECT_SUBDIRS" | sed -e 's/oshmem//'`
|
||||
fi
|
||||
fi
|
||||
|
||||
# checkpoint results
|
||||
AC_CACHE_SAVE
|
||||
|
||||
|
@ -16,4 +16,10 @@ AC_DEFUN([MCA_oshmem_spml_CONFIG],[
|
||||
|
||||
# this is a direct callable component, so set that up.
|
||||
MCA_SETUP_DIRECT_CALL($1, $2)
|
||||
|
||||
if test -z "$MCA_$1_$2_DSO_COMPONENTS" && test -z "$MCA_$1_$2_STATIC_COMPONENTS"; then
|
||||
OSHMEM_FOUND_WORKING_SPML=0
|
||||
else
|
||||
OSHMEM_FOUND_WORKING_SPML=1
|
||||
fi
|
||||
])
|
||||
|
Loading…
Reference in New Issue
Block a user