From bed0e8e9ab6c8690b85a5e921406262c2eb41e05 Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt <mikael@djurfeldt.com> Date: Mon, 2 Dec 2019 14:24:57 +0100 Subject: [PATCH] Use MPI_Comm_create_errhandler if available --- configure.ac | 9 ++++++++- ros/adapters/Makefile.am | 5 ++--- src/music/music-config.hh.in | 3 ++- testsuite/sanitytests/multiport.cc | 6 +++++- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 89b97d7..08d2613 100644 --- a/configure.ac +++ b/configure.ac @@ -222,7 +222,7 @@ dnl Must use $CXX, not $MPI_CXX, here CXX="$CXX $MPI_CXXFLAGS" LIBS="$LIBS $MPI_LDFLAGS" -AC_CHECK_FUNCS([rts_get_personality ompi_comm_free]) +AC_CHECK_FUNCS([rts_get_personality ompi_comm_free MPI_Comm_create_errhandler]) AC_MSG_CHECKING([for MPI::Init_thread method]) ac_have_cxx_mpi_init_thread=no @@ -288,6 +288,12 @@ else MUSIC_HAVE_LONG_LONG=0 fi +if test $ac_cv_func_MPI_Comm_create_errhandler = yes; then + MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER=1 +else + MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER=0 +fi + if test "$prefix" = NONE; then PKGDATADIR=`eval echo $ac_default_prefix/share/$PACKAGE-$PACKAGE_VERSION` else @@ -378,6 +384,7 @@ AC_SUBST(MPI_CFLAGS) AC_SUBST(MPI_LDFLAGS) AC_SUBST(MUSIC_HAVE_SIZE_T) AC_SUBST(MUSIC_HAVE_LONG_LONG) +AC_SUBST(MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER) AC_SUBST(MUSIC_USE_MPI) AC_SUBST(MUSIC_ISENDWAITALL) AC_SUBST(MUSIC_ANYSOURCE) diff --git a/ros/adapters/Makefile.am b/ros/adapters/Makefile.am index 4e3817e..05b33f6 100644 --- a/ros/adapters/Makefile.am +++ b/ros/adapters/Makefile.am @@ -2,10 +2,10 @@ bin_PROGRAMS = connect_adapter ros_sensor_adapter ros_command_adapter # look for ros in the common paths -LD_ROS_PATH = -L/opt/ros/kinetic/lib/ \ +LD_ROS_PATH = -L/opt/ros/melodic/lib/ \ -L/opt/ros/jade/lib/ -INC_ROS_PATH = -I/opt/ros/kinetic/include \ +INC_ROS_PATH = -I/opt/ros/melodic/include \ -I/opt/ros/jade/include AM_CXXFLAGS = $(INC_ROS_PATH) -I$(top_srcdir) -I$(top_srcdir)/src -I$(top_builddir)/src @MPI_CXXFLAGS@ @@ -13,7 +13,6 @@ AM_LDFLAGS = $(top_builddir)/mpidep/libmpidep.la @MPI_LDFLAGS@ \ $(top_builddir)/src/libmusic.la \ $(top_builddir)/src/libmusic-c.la \ $(LD_ROS_PATH) - connect_adapter_SOURCES = connect.h connect.cpp connect_adapter_LDADD = -lgsl -lgslcblas -ljsoncpp diff --git a/src/music/music-config.hh.in b/src/music/music-config.hh.in index 6a5cc72..5998aee 100644 --- a/src/music/music-config.hh.in +++ b/src/music/music-config.hh.in @@ -2,7 +2,7 @@ /* * This file is part of MUSIC. - * Copyright (C) 2008 INCF + * Copyright (C) 2008, 2019 INCF * * MUSIC is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +20,7 @@ #define MUSIC_HAVE_SIZE_T @MUSIC_HAVE_SIZE_T@ #define MUSIC_HAVE_LONG_LONG @MUSIC_HAVE_LONG_LONG@ +#define MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER @MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER@ #define MUSIC_USE_MPI @MUSIC_USE_MPI@ #define MUSIC_ISENDWAITALL @MUSIC_ISENDWAITALL@ #define MUSIC_ANYSOURCE @MUSIC_ANYSOURCE@ diff --git a/testsuite/sanitytests/multiport.cc b/testsuite/sanitytests/multiport.cc index 00fbcc3..118f12e 100644 --- a/testsuite/sanitytests/multiport.cc +++ b/testsuite/sanitytests/multiport.cc @@ -1,6 +1,6 @@ /* * This file is part of MUSIC. - * Copyright (C) 2008, 2009 INCF + * Copyright (C) 2008, 2009, 2019 INCF * * MUSIC is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -377,7 +377,11 @@ main (int argc, char *argv[]) { MUSIC::Setup* setup = new MUSIC::Setup (argc, argv); MPI_Errhandler errh; +#if MUSIC_HAVE_MPI_COMM_CREATE_ERRHANDLER + MPI_Comm_create_errhandler (errhandler, &errh); +#else MPI_Errhandler_create (errhandler, &errh); +#endif MPI_Comm_set_errhandler (MPI_COMM_WORLD, errh); MPI::Intracomm comm = setup->communicator (); -- GitLab