Hey folks

I have been fighting the build system for the last two days and discovered 
something a little bothersome. It appears that there are only two ways to build 
OMPI:

* with all three of libevent, hwloc, and pmix internal

* with all three of libevent, hwloc, and pmix external

In other words, you cannot mix internal/external combinations of these three 
packages - their headers intertwine. If you try, you'll get a flood of errors 
about redefining various constants, such as;

In file included from 
/Users/rhc/openmpi/foobar/opal/mca/pmix/pmix-internal.h:20,
                 from ../src/pmix/pmix-internal.h:34,
                 from ../src/util/proc_info.h:45,
                 from pmix/pmix.c:33:
/Users/rhc/openmpi/foobar/opal/include/opal_config.h:1315: warning: 
"HWLOC_VERSION_RELEASE" redefined
 1315 | #define HWLOC_VERSION_RELEASE 1
      | 
In file included from /Users/rhc/hwloc/build/v2.0.4/include/hwloc.h:56,
                 from ../src/hwloc/hwloc-internal.h:29,
                 from ../src/util/proc_info.h:44,
                 from pmix/pmix.c:33:
/Users/rhc/hwloc/build/v2.0.4/include/hwloc/autogen/config.h:18: note: this is 
the location of the previous definition
   18 | #define HWLOC_VERSION_RELEASE 4


I think the time has come to ask ourselves: should we simplify things and just 
give one option for these packages? Either you build them ALL internal, or you 
build them ALL external?

Ralph

Reply via email to