Closed
Description
Hi,
Enabling --enable-mpi-cxx leads to:
make[2]: Entering directory '/home/mckinstry/openmpi-2.0.1/ompi/mpi/cxx'
/bin/bash ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../../opal/include -I../../../ompi/include -I../../../oshmem/include -I../../../opal/mca/hwloc/hwloc1112/hwloc/include/private/autogen -I../../../opal/mca/hwloc/hwloc1112/hwloc/include/hwloc/autogen -I../../../ompi/mpiext/cuda/c -DOMPI_BUILDING_CXX_BINDINGS_LIBRARY=1 -DOMPI_SKIP_MPICXX=1 -I../../.. -I../../../orte/include -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr//include -I/home/mckinstry/openmpi-2.0.1/opal/mca/event/libevent2022/libevent -I/home/mckinstry/openmpi-2.0.1/opal/mca/event/libevent2022/libevent/include -DNDEBUG -g -O2 -fdebug-prefix-map=/home/mckinstry/openmpi-2.0.1=. -fstack-protector-strong -Wformat -Werror=format-security -finline-functions -pthread -c -o mpicxx.lo mpicxx.cc
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../../opal/include -I../../../ompi/include -I../../../oshmem/include -I../../../opal/mca/hwloc/hwloc1112/hwloc/include/private/autogen -I../../../opal/mca/hwloc/hwloc1112/hwloc/include/hwloc/autogen -I../../../ompi/mpiext/cuda/c -DOMPI_BUILDING_CXX_BINDINGS_LIBRARY=1 -DOMPI_SKIP_MPICXX=1 -I../../.. -I../../../orte/include -Wdate-time -D_FORTIFY_SOURCE=2 -I/usr//include -I/home/mckinstry/openmpi-2.0.1/opal/mca/event/libevent2022/libevent -I/home/mckinstry/openmpi-2.0.1/opal/mca/event/libevent2022/libevent/include -DNDEBUG -g -O2 -fdebug-prefix-map=/home/mckinstry/openmpi-2.0.1=. -fstack-protector-strong -Wformat -Werror=format-security -finline-functions -pthread -c mpicxx.cc -fPIC -DPIC -o .libs/mpicxx.o
In file included from ../../../opal/class/opal_object.h:128:0,
from ../../../ompi/errhandler/errhandler.h:32,
from mpicxx.cc:37:
../../../opal/threads/thread_usage.h: In function 'int32_t opal_thread_swap_32(volatile int32_t*, int32_t)':
../../../opal/threads/thread_usage.h:134:76: error: 'opal_atomic_swap_32' was not declared in this scope
return opal_atomic_swap_ ## suffix ((volatile type *) ptr, newvalue); \
This fails because in opal/include/opal/sys/atomic.h:
#if defined(c_plusplus) || defined(__cplusplus)
/* We no longer support inline assembly for C++ as OPAL is a C-only interface */
#define opal_atomic_swap_32 0
#define OPAL_DEC_INLINE_ASSEMBLY 0
#define OPAL_XLC_INLINE_ASSEMBLY 0
and opal_atomic_swap_32 is conditionally only included if opal_atomic_swap_32 is set