Merge pull request #5533 from jsquyres/pr/fix-libevent-hwloc-gwlargflappbt
Fix internal/external hwloc and libevent
Этот коммит содержится в:
Коммит
f1346cba42
@ -14,9 +14,9 @@
|
|||||||
#
|
#
|
||||||
AC_DEFUN([MCA_opal_event_libevent2022_PRIORITY], [80])
|
AC_DEFUN([MCA_opal_event_libevent2022_PRIORITY], [80])
|
||||||
|
|
||||||
#
|
dnl
|
||||||
# Force this component to compile in static-only mode
|
dnl Force this component to compile in static-only mode
|
||||||
#
|
dnl
|
||||||
AC_DEFUN([MCA_opal_event_libevent2022_COMPILE_MODE], [
|
AC_DEFUN([MCA_opal_event_libevent2022_COMPILE_MODE], [
|
||||||
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
|
AC_MSG_CHECKING([for MCA component $2:$3 compile mode])
|
||||||
$4="static"
|
$4="static"
|
||||||
@ -24,7 +24,8 @@ AC_DEFUN([MCA_opal_event_libevent2022_COMPILE_MODE], [
|
|||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN([MCA_opal_event_libevent2022_POST_CONFIG], [
|
AC_DEFUN([MCA_opal_event_libevent2022_POST_CONFIG], [
|
||||||
AM_CONDITIONAL(OPAL_EVENT_HAVE_THREAD_SUPPORT, test "$enable_event_thread_support" = "yes")
|
AM_CONDITIONAL(OPAL_EVENT_HAVE_THREAD_SUPPORT,
|
||||||
|
[test "$enable_event_thread_support" = "yes"])
|
||||||
AS_IF([test "$1" = "1"],
|
AS_IF([test "$1" = "1"],
|
||||||
[ # Build libevent/include/event2/event-config.h. If we
|
[ # Build libevent/include/event2/event-config.h. If we
|
||||||
# don't do it here, then libevent's Makefile.am will build
|
# don't do it here, then libevent's Makefile.am will build
|
||||||
@ -34,8 +35,8 @@ AC_DEFUN([MCA_opal_event_libevent2022_POST_CONFIG], [
|
|||||||
# copied from libevent's Makefile.am.
|
# copied from libevent's Makefile.am.
|
||||||
|
|
||||||
AC_CONFIG_COMMANDS([opal/mca/event/libevent2022/libevent/include/event2/event-config.h],
|
AC_CONFIG_COMMANDS([opal/mca/event/libevent2022/libevent/include/event2/event-config.h],
|
||||||
[libevent_basedir="opal/mca/event/libevent2022"
|
[opal_event_libevent2022_basedir="opal/mca/event/libevent2022"
|
||||||
libevent_file="$libevent_basedir/libevent/include/event2/event-config.h"
|
libevent_file="$opal_event_libevent2022_basedir/libevent/include/event2/event-config.h"
|
||||||
rm -f "$libevent_file.new"
|
rm -f "$libevent_file.new"
|
||||||
cat > "$libevent_file.new" <<EOF
|
cat > "$libevent_file.new" <<EOF
|
||||||
/* event2/event-config.h
|
/* event2/event-config.h
|
||||||
@ -55,7 +56,7 @@ EOF
|
|||||||
|
|
||||||
sed -e 's/#define /#define _EVENT_/' \
|
sed -e 's/#define /#define _EVENT_/' \
|
||||||
-e 's/#undef /#undef _EVENT_/' \
|
-e 's/#undef /#undef _EVENT_/' \
|
||||||
-e 's/#ifndef /#ifndef _EVENT_/' < "$libevent_basedir/libevent/config.h" >> "$libevent_file.new"
|
-e 's/#ifndef /#ifndef _EVENT_/' < "$opal_event_libevent2022_basedir/libevent/config.h" >> "$libevent_file.new"
|
||||||
echo "#endif" >> "$libevent_file.new"
|
echo "#endif" >> "$libevent_file.new"
|
||||||
|
|
||||||
# Only make a new .h libevent_file if the
|
# Only make a new .h libevent_file if the
|
||||||
@ -74,7 +75,7 @@ EOF
|
|||||||
|
|
||||||
# Add some stuff to CPPFLAGS so that the rest of the source
|
# Add some stuff to CPPFLAGS so that the rest of the source
|
||||||
# tree can be built
|
# tree can be built
|
||||||
libevent_file=$libevent_basedir/libevent
|
libevent_file=$opal_event_libevent2022_basedir/libevent
|
||||||
CPPFLAGS="-I$OPAL_TOP_SRCDIR/$libevent_file -I$OPAL_TOP_SRCDIR/$libevent_file/include $CPPFLAGS"
|
CPPFLAGS="-I$OPAL_TOP_SRCDIR/$libevent_file -I$OPAL_TOP_SRCDIR/$libevent_file/include $CPPFLAGS"
|
||||||
AS_IF([test "$OPAL_TOP_BUILDDIR" != "$OPAL_TOP_SRCDIR"],
|
AS_IF([test "$OPAL_TOP_BUILDDIR" != "$OPAL_TOP_SRCDIR"],
|
||||||
[CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$libevent_file/include $CPPFLAGS"])
|
[CPPFLAGS="-I$OPAL_TOP_BUILDDIR/$libevent_file/include $CPPFLAGS"])
|
||||||
@ -82,10 +83,13 @@ EOF
|
|||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
# MCA_event_libevent2022_CONFIG([action-if-can-compile],
|
dnl MCA_event_libevent2022_CONFIG([action-if-can-compile],
|
||||||
# [action-if-cant-compile])
|
dnl [action-if-cant-compile])
|
||||||
# ------------------------------------------------
|
dnl ------------------------------------------------
|
||||||
AC_DEFUN([MCA_opal_event_libevent2022_CONFIG],[
|
AC_DEFUN([MCA_opal_event_libevent2022_CONFIG],[
|
||||||
|
AC_CONFIG_FILES([opal/mca/event/libevent2022/Makefile])
|
||||||
|
opal_event_libevent2022_basedir="opal/mca/event/libevent2022"
|
||||||
|
|
||||||
# We know that the external event component will be configured
|
# We know that the external event component will be configured
|
||||||
# before this one because of its priority. This component is only
|
# before this one because of its priority. This component is only
|
||||||
# needed if the external component was not successful in selecting
|
# needed if the external component was not successful in selecting
|
||||||
@ -93,18 +97,37 @@ AC_DEFUN([MCA_opal_event_libevent2022_CONFIG],[
|
|||||||
AC_MSG_CHECKING([if event external component succeeded])
|
AC_MSG_CHECKING([if event external component succeeded])
|
||||||
AS_IF([test "$opal_event_external_support" = "yes"],
|
AS_IF([test "$opal_event_external_support" = "yes"],
|
||||||
[AC_MSG_RESULT([yes])
|
[AC_MSG_RESULT([yes])
|
||||||
AC_MSG_NOTICE([event:external succeeded, so this component will be skipped])
|
AC_MSG_NOTICE([event:external succeeded, so this component will be configured, but then will be skipped])
|
||||||
$2],
|
MCA_opal_event_libevent2022_FAKE_CONFIG($2)],
|
||||||
[AC_MSG_RESULT([no])
|
[AC_MSG_RESULT([no])
|
||||||
AC_MSG_NOTICE([event:external failed, so this component will be used])
|
AC_MSG_NOTICE([event:external failed, so this component will be used])
|
||||||
MCA_opal_event_libevent2022_BACKEND_CONFIG($1, $2)])
|
MCA_opal_event_libevent2022_REAL_CONFIG($1, $2)])
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN([MCA_opal_event_libevent2022_BACKEND_CONFIG],[
|
dnl
|
||||||
OPAL_VAR_SCOPE_PUSH([CFLAGS_save CPPFLAGS_save libevent_file event_args libevent_happy])
|
dnl This macro is invoked when event:external is going to be used (and
|
||||||
|
dnl this component is *not* going to be used).
|
||||||
|
dnl
|
||||||
|
dnl $1: action if this component can compile
|
||||||
|
dnl (we still invoke $1 so that "make distclean" and friends will work)
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([MCA_opal_event_libevent2022_FAKE_CONFIG],[
|
||||||
|
MCA_opal_event_libevent2022_SUB_CONFIGURE([], [], [])
|
||||||
|
AC_MSG_NOTICE([remember: event:external will be used; this component was configured, but will be skipped])
|
||||||
|
$1
|
||||||
|
])
|
||||||
|
|
||||||
AC_CONFIG_FILES([opal/mca/event/libevent2022/Makefile])
|
dnl
|
||||||
libevent_basedir="opal/mca/event/libevent2022"
|
dnl This macro has a bunch of side effects. It is only meant to be
|
||||||
|
dnl invoked when this component is going to be used (i.e., when
|
||||||
|
dnl event:external is *not* going to be used). If this macro is invoked
|
||||||
|
dnl when event:external is used, Terrible Things will happen.
|
||||||
|
dnl
|
||||||
|
dnl $1: action if this component can compile
|
||||||
|
dnl $2: action if this component cannot compile
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([MCA_opal_event_libevent2022_REAL_CONFIG],[
|
||||||
|
OPAL_VAR_SCOPE_PUSH([CFLAGS_save CPPFLAGS_save libevent_file event_args libevent_happy])
|
||||||
|
|
||||||
CFLAGS_save="$CFLAGS"
|
CFLAGS_save="$CFLAGS"
|
||||||
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"
|
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"
|
||||||
@ -174,14 +197,14 @@ AC_DEFUN([MCA_opal_event_libevent2022_BACKEND_CONFIG],[
|
|||||||
|
|
||||||
AC_MSG_RESULT([$event_args])
|
AC_MSG_RESULT([$event_args])
|
||||||
|
|
||||||
|
# Invoke the embedded configure script.
|
||||||
# We define "random" to be "opal_random" so that Libevent will not
|
# We define "random" to be "opal_random" so that Libevent will not
|
||||||
# use random(3) internally (and potentially unexpectedly perturb
|
# use random(3) internally (and potentially unexpectedly perturb
|
||||||
# values returned by rand(3) to the application).
|
# values returned by rand(3) to the application).
|
||||||
|
|
||||||
CPPFLAGS="$CPPFLAGS -Drandom=opal_random"
|
CPPFLAGS="$CPPFLAGS -Drandom=opal_random"
|
||||||
OPAL_CONFIG_SUBDIR([$libevent_basedir/libevent],
|
MCA_opal_event_libevent2022_SUB_CONFIGURE([$event_args],
|
||||||
[$event_args $opal_subdir_args 'CPPFLAGS=$CPPFLAGS'],
|
[libevent_happy="yes"],
|
||||||
[libevent_happy="yes"], [libevent_happy="no"])
|
[libevent_happy="no"])
|
||||||
if test "$libevent_happy" = "no"; then
|
if test "$libevent_happy" = "no"; then
|
||||||
AC_MSG_WARN([Event library failed to configure])
|
AC_MSG_WARN([Event library failed to configure])
|
||||||
AC_MSG_ERROR([Cannot continue])
|
AC_MSG_ERROR([Cannot continue])
|
||||||
@ -199,26 +222,34 @@ AC_DEFUN([MCA_opal_event_libevent2022_BACKEND_CONFIG],[
|
|||||||
# the value in the generated libevent/config.h (NOT
|
# the value in the generated libevent/config.h (NOT
|
||||||
# libevent/include/event2/event-config.h!). Otherwise, set it to
|
# libevent/include/event2/event-config.h!). Otherwise, set it to
|
||||||
# 0.
|
# 0.
|
||||||
libevent_file=$libevent_basedir/libevent/config.h
|
libevent_file=$opal_event_libevent2022_basedir/libevent/config.h
|
||||||
|
|
||||||
# If we are not building the internal libevent, then indicate that
|
AS_IF([test "$libevent_happy" = "yes" && test -r $libevent_file],
|
||||||
# this component should not be built. NOTE: we still did all the
|
[OPAL_HAVE_WORKING_EVENTOPS=`grep HAVE_WORKING_EVENTOPS $libevent_file | awk '{print [$]3 }'`
|
||||||
# above configury so that all the proper GNU Autotools
|
$1],
|
||||||
# infrastructure is setup properly (e.g., w.r.t. SUBDIRS=libevent in
|
[$2
|
||||||
# this directory's Makefile.am, we still need the Autotools "make
|
OPAL_HAVE_WORKING_EVENTOPS=0])
|
||||||
# distclean" infrastructure to work properly).
|
|
||||||
|
|
||||||
AS_IF([test "$with_libevent" != "internal" && test -n "$with_libevent" && test "$with_libevent" != "yes"],
|
|
||||||
[AC_MSG_WARN([using an external libevent; disqualifying this component])
|
|
||||||
libevent_happy=no],
|
|
||||||
|
|
||||||
[AS_IF([test "$libevent_happy" = "yes" && test -r $libevent_file],
|
|
||||||
[OPAL_HAVE_WORKING_EVENTOPS=`grep HAVE_WORKING_EVENTOPS $libevent_file | awk '{print [$]3 }'`
|
|
||||||
$1],
|
|
||||||
[$2
|
|
||||||
OPAL_HAVE_WORKING_EVENTOPS=0])
|
|
||||||
]
|
|
||||||
)
|
|
||||||
|
|
||||||
OPAL_VAR_SCOPE_POP
|
OPAL_VAR_SCOPE_POP
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl Call configure in the embedded libevent.
|
||||||
|
dnl
|
||||||
|
dnl We still do this so that all the proper GNU Autotools
|
||||||
|
dnl infrastructure is setup properly (e.g., w.r.t. SUBDIRS=libevent in
|
||||||
|
dnl this directorys Makefile.am, we still need the Autotools "make
|
||||||
|
dnl distclean" infrastructure to work properly).
|
||||||
|
dnl
|
||||||
|
dnl $1: extra configure arguments
|
||||||
|
dnl $2: action on success
|
||||||
|
dnl $3: action on failure
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([MCA_opal_event_libevent2022_SUB_CONFIGURE],[
|
||||||
|
# We define "random" to be "opal_random" so that Libevent will not
|
||||||
|
# use random(3) internally (and potentially unexpectedly perturb
|
||||||
|
# values returned by rand(3) to the application).
|
||||||
|
|
||||||
|
OPAL_CONFIG_SUBDIR([$opal_event_libevent2022_basedir/libevent],
|
||||||
|
[$1 $opal_subdir_args 'CPPFLAGS=$CPPFLAGS'],
|
||||||
|
[$2], [$3])
|
||||||
|
])
|
||||||
|
@ -69,21 +69,6 @@ AC_DEFUN([MCA_opal_hwloc_hwloc201_POST_CONFIG],[
|
|||||||
# MCA_hwloc_hwloc201_CONFIG([action-if-found], [action-if-not-found])
|
# MCA_hwloc_hwloc201_CONFIG([action-if-found], [action-if-not-found])
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
AC_DEFUN([MCA_opal_hwloc_hwloc201_CONFIG],[
|
AC_DEFUN([MCA_opal_hwloc_hwloc201_CONFIG],[
|
||||||
# We know that the external hwloc component will be configured
|
|
||||||
# before this one because of its priority. This component is only
|
|
||||||
# needed if the external component was not successful in selecting
|
|
||||||
# itself.
|
|
||||||
AC_MSG_CHECKING([if hwloc external component succeeded])
|
|
||||||
AS_IF([test "$opal_hwloc_external_support" = "yes"],
|
|
||||||
[AC_MSG_RESULT([yes])
|
|
||||||
AC_MSG_NOTICE([hwloc:external succeeded, so this component will be skipped])
|
|
||||||
$2],
|
|
||||||
[AC_MSG_RESULT([no])
|
|
||||||
AC_MSG_NOTICE([hwloc:external failed, so this component will be used])
|
|
||||||
MCA_opal_hwloc_hwloc201_BACKEND_CONFIG($1, $2)])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([MCA_opal_hwloc_hwloc201_BACKEND_CONFIG],[
|
|
||||||
# Hwloc needs to know if we have Verbs support
|
# Hwloc needs to know if we have Verbs support
|
||||||
AC_REQUIRE([OPAL_CHECK_VERBS_DIR])
|
AC_REQUIRE([OPAL_CHECK_VERBS_DIR])
|
||||||
|
|
||||||
@ -91,6 +76,17 @@ AC_DEFUN([MCA_opal_hwloc_hwloc201_BACKEND_CONFIG],[
|
|||||||
|
|
||||||
OPAL_VAR_SCOPE_PUSH([HWLOC_VERSION opal_hwloc_hwloc201_save_CPPFLAGS opal_hwloc_hwloc201_save_LDFLAGS opal_hwloc_hwloc201_save_LIBS opal_hwloc_hwloc201_save_cairo opal_hwloc_hwloc201_save_xml opal_hwloc_hwloc201_save_mode opal_hwloc_hwloc201_basedir opal_hwloc_hwloc201_file opal_hwloc_hwloc201_save_cflags CPPFLAGS_save LIBS_save opal_hwloc_external])
|
OPAL_VAR_SCOPE_PUSH([HWLOC_VERSION opal_hwloc_hwloc201_save_CPPFLAGS opal_hwloc_hwloc201_save_LDFLAGS opal_hwloc_hwloc201_save_LIBS opal_hwloc_hwloc201_save_cairo opal_hwloc_hwloc201_save_xml opal_hwloc_hwloc201_save_mode opal_hwloc_hwloc201_basedir opal_hwloc_hwloc201_file opal_hwloc_hwloc201_save_cflags CPPFLAGS_save LIBS_save opal_hwloc_external])
|
||||||
|
|
||||||
|
# We know that the external hwloc component will be configured
|
||||||
|
# before this one because of its priority. This component is only
|
||||||
|
# needed if the external component was not successful in selecting
|
||||||
|
# itself. Print out a message explaining this.
|
||||||
|
AC_MSG_CHECKING([if hwloc external component succeeded])
|
||||||
|
AS_IF([test "$opal_hwloc_external_support" = "yes"],
|
||||||
|
[AC_MSG_RESULT([yes])
|
||||||
|
AC_MSG_NOTICE([hwloc:external succeeded, so this component will be configured, but then will be skipped])],
|
||||||
|
[AC_MSG_RESULT([no])
|
||||||
|
AC_MSG_NOTICE([hwloc:external failed, so this component will be used])])
|
||||||
|
|
||||||
# default to this component not providing support
|
# default to this component not providing support
|
||||||
opal_hwloc_hwloc201_basedir=opal/mca/hwloc/hwloc201
|
opal_hwloc_hwloc201_basedir=opal/mca/hwloc/hwloc201
|
||||||
opal_hwloc_hwloc201_support=no
|
opal_hwloc_hwloc201_support=no
|
||||||
@ -99,8 +95,6 @@ AC_DEFUN([MCA_opal_hwloc_hwloc201_BACKEND_CONFIG],[
|
|||||||
opal_hwloc_hwloc201_save_LDFLAGS=$LDFLAGS
|
opal_hwloc_hwloc201_save_LDFLAGS=$LDFLAGS
|
||||||
opal_hwloc_hwloc201_save_LIBS=$LIBS
|
opal_hwloc_hwloc201_save_LIBS=$LIBS
|
||||||
|
|
||||||
HWLOC_SET_SYMBOL_PREFIX([opal_hwloc201_])
|
|
||||||
|
|
||||||
# save XML or graphical options
|
# save XML or graphical options
|
||||||
opal_hwloc_hwloc201_save_cairo=$enable_cairo
|
opal_hwloc_hwloc201_save_cairo=$enable_cairo
|
||||||
opal_hwloc_hwloc201_save_xml=$enable_xml
|
opal_hwloc_hwloc201_save_xml=$enable_xml
|
||||||
@ -143,6 +137,12 @@ AC_DEFUN([MCA_opal_hwloc_hwloc201_BACKEND_CONFIG],[
|
|||||||
AS_IF([test -n "$opal_datatype_cuda_CPPFLAGS"],
|
AS_IF([test -n "$opal_datatype_cuda_CPPFLAGS"],
|
||||||
[CPPFLAGS="$CPPFLAGS $opal_datatype_cuda_CPPFLAGS"])
|
[CPPFLAGS="$CPPFLAGS $opal_datatype_cuda_CPPFLAGS"])
|
||||||
|
|
||||||
|
# Only set the symbol prefix if this component is being used
|
||||||
|
# (i.e., if the external component is not being used).
|
||||||
|
AS_IF([test "$opal_hwloc_external_support" = "no"],
|
||||||
|
[HWLOC_SET_SYMBOL_PREFIX([opal_hwloc201_])])
|
||||||
|
|
||||||
|
# Do the bulk of the hwloc core setup
|
||||||
HWLOC_SETUP_CORE([opal/mca/hwloc/hwloc201/hwloc],
|
HWLOC_SETUP_CORE([opal/mca/hwloc/hwloc201/hwloc],
|
||||||
[AC_MSG_CHECKING([whether hwloc configure succeeded])
|
[AC_MSG_CHECKING([whether hwloc configure succeeded])
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
@ -202,8 +202,8 @@ AC_DEFUN([MCA_opal_hwloc_hwloc201_BACKEND_CONFIG],[
|
|||||||
# infrastructure is setup properly (e.g., w.r.t. SUBDIRS=hwloc in
|
# infrastructure is setup properly (e.g., w.r.t. SUBDIRS=hwloc in
|
||||||
# this directory's Makefile.am, we still need the Autotools "make
|
# this directory's Makefile.am, we still need the Autotools "make
|
||||||
# distclean" infrastructure to work properly).
|
# distclean" infrastructure to work properly).
|
||||||
AS_IF([test "$opal_hwloc_external" = "yes"],
|
AS_IF([test "$opal_hwloc_external_support" = "yes"],
|
||||||
[AC_MSG_WARN([using an external hwloc; disqualifying this component])
|
[AC_MSG_NOTICE([using an external hwloc; disqualifying this component])
|
||||||
opal_hwloc_hwloc201_support=no],
|
opal_hwloc_hwloc201_support=no],
|
||||||
[AC_DEFINE([HAVE_DECL_HWLOC_OBJ_OSDEV_COPROC], [1])
|
[AC_DEFINE([HAVE_DECL_HWLOC_OBJ_OSDEV_COPROC], [1])
|
||||||
AC_DEFINE([HAVE_HWLOC_TOPOLOGY_DUP], [1])])
|
AC_DEFINE([HAVE_HWLOC_TOPOLOGY_DUP], [1])])
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user