Skip to content

OPAL and PMIX define the same "MB" macro #3830

Closed
@jsquyres

Description

@jsquyres

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:

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...?

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions