Closed
Description
On master HEAD, when compiling with the RHEL 6 gcc 4.4.7 compiler, I get a bunch of these kinds of warnings when compiling the pmix2x component:
In file included from /home/jsquyres/git/ompi/opal/include/opal/sys/atomic.h:153,
from /home/jsquyres/git/ompi/opal/threads/thread_usage.h:30,
from /home/jsquyres/git/ompi/opal/class/opal_object.h:126,
from /home/jsquyres/git/ompi/opal/mca/event/libevent2022/libevent2022.h:50,
from /home/jsquyres/git/ompi/opal/mca/pmix/pmix2x/pmix/src/include/types.h:45,
from /home/jsquyres/git/ompi/opal/mca/pmix/pmix2x/pmix/src/include/pmix_globals.h:26,
from /home/jsquyres/git/ompi/opal/mca/pmix/pmix2x/pmix/src/mca/pnet/pnet.h:35,
from /home/jsquyres/git/ompi/opal/mca/pmix/pmix2x/pmix/src/mca/pnet/base/base.h:42,
from base/pnet_base_select.c:28:
/home/jsquyres/git/ompi/opal/include/opal/sys/sync_builtin/atomic.h:48:1: warning: "MB" redefined
It turns that that both OPAL and PMIX define this macro:
- OPAL: https://github.com/open-mpi/ompi/blob/master/opal/include/opal/sys/sync_builtin/atomic.h#L48
- PMIx: https://github.com/open-mpi/ompi/blob/master/opal/mca/pmix/pmix2x/pmix/src/atomics/sys/sync_builtin/atomic.h#L49
I don't know offhand where MB
is used in the code base, but I'm guessing that both OPAL and PMIX should prefix this macro to avoid the name conflict.
Just doing a spot check in a few places, it looks like OPAL doesn't prefix this macro anywhere, but it looks like PMIX does prefix it in at least some places. Perhaps this was just one place in PMIX that got missed...?